summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabio Erculiani <lxnay@gentoo.org>2009-12-04 23:26:34 +0000
committerFabio Erculiani <lxnay@gentoo.org>2009-12-04 23:26:34 +0000
commit4cd93ee619e77e798906cdb2ad65e55e6357b15e (patch)
treed9d8f0dd0046e922b6bebdcc36ba07cdbde25f53 /sys-apps/shadow
parentFix LICENSE (bug #177815). (diff)
downloadgentoo-2-4cd93ee619e77e798906cdb2ad65e55e6357b15e.tar.gz
gentoo-2-4cd93ee619e77e798906cdb2ad65e55e6357b15e.tar.bz2
gentoo-2-4cd93ee619e77e798906cdb2ad65e55e6357b15e.zip
Fix invalid environment variables reset, close bug #283725, thanks to myself for reporting, thanks to parafin for providing a working patch
(Portage version: 2.2_rc46/cvs/Linux x86_64)
Diffstat (limited to 'sys-apps/shadow')
-rw-r--r--sys-apps/shadow/ChangeLog10
-rw-r--r--sys-apps/shadow/files/shadow-4.1.4.2-env-reset-keep-locale.patch12
-rw-r--r--sys-apps/shadow/shadow-4.1.3.1.ebuild187
-rw-r--r--sys-apps/shadow/shadow-4.1.4.2-r1.ebuild (renamed from sys-apps/shadow/shadow-4.1.4.1.ebuild)4
-rw-r--r--sys-apps/shadow/shadow-4.1.4.2.ebuild187
5 files changed, 24 insertions, 376 deletions
diff --git a/sys-apps/shadow/ChangeLog b/sys-apps/shadow/ChangeLog
index 0575d45d5142..6357f0318c7d 100644
--- a/sys-apps/shadow/ChangeLog
+++ b/sys-apps/shadow/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for sys-apps/shadow
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/shadow/ChangeLog,v 1.228 2009/07/24 18:26:53 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/shadow/ChangeLog,v 1.229 2009/12/04 23:26:34 lxnay Exp $
+
+*shadow-4.1.4.2-r1 (04 Dec 2009)
+
+ 04 Dec 2009; Fabio Erculiani <lxnay@gentoo.org> -shadow-4.1.3.1.ebuild,
+ -shadow-4.1.4.1.ebuild, -shadow-4.1.4.2.ebuild, +shadow-4.1.4.2-r1.ebuild,
+ +files/shadow-4.1.4.2-env-reset-keep-locale.patch:
+ Fix invalid environment variables reset, close bug #283725, thanks to
+ myself for reporting, thanks to parafin for providing a working patch
*shadow-4.1.4.2 (24 Jul 2009)
diff --git a/sys-apps/shadow/files/shadow-4.1.4.2-env-reset-keep-locale.patch b/sys-apps/shadow/files/shadow-4.1.4.2-env-reset-keep-locale.patch
new file mode 100644
index 000000000000..919640e6dd3d
--- /dev/null
+++ b/sys-apps/shadow/files/shadow-4.1.4.2-env-reset-keep-locale.patch
@@ -0,0 +1,12 @@
+diff -ur shadow-4.1.4.2/libmisc/env.c shadow-4.1.4.2-patched/libmisc/env.c
+--- shadow-4.1.4.2/libmisc/env.c 2009-04-28 00:07:56.000000000 +0400
++++ shadow-4.1.4.2-patched/libmisc/env.c 2009-12-04 16:12:42.000000000 +0300
+@@ -251,7 +251,7 @@
+ if (strncmp (*cur, *bad, strlen (*bad)) != 0) {
+ continue;
+ }
+- if (strchr (*cur, '/') != NULL) {
++ if (strchr (*cur, '/') == NULL) {
+ continue; /* OK */
+ }
+ for (move = cur; NULL != *move; move++) {
diff --git a/sys-apps/shadow/shadow-4.1.3.1.ebuild b/sys-apps/shadow/shadow-4.1.3.1.ebuild
deleted file mode 100644
index 99ff69c222be..000000000000
--- a/sys-apps/shadow/shadow-4.1.3.1.ebuild
+++ /dev/null
@@ -1,187 +0,0 @@
-# Copyright 1999-2009 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/shadow/shadow-4.1.3.1.ebuild,v 1.2 2009/08/23 10:45:45 vapier Exp $
-
-inherit eutils libtool toolchain-funcs pam multilib
-
-DESCRIPTION="Utilities to deal with user accounts"
-HOMEPAGE="http://shadow.pld.org.pl/ http://pkg-shadow.alioth.debian.org/"
-SRC_URI="ftp://pkg-shadow.alioth.debian.org/pub/pkg-shadow/shadow-${PV}.tar.bz2"
-
-LICENSE="BSD GPL-2"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
-IUSE="audit cracklib nls pam selinux skey"
-
-RDEPEND="audit? ( sys-process/audit )
- cracklib? ( >=sys-libs/cracklib-2.7-r3 )
- pam? ( virtual/pam )
- !sys-apps/pam-login
- !app-admin/nologin
- skey? ( sys-auth/skey )
- selinux? ( >=sys-libs/libselinux-1.28 )
- nls? ( virtual/libintl )"
-DEPEND="${RDEPEND}
- nls? ( sys-devel/gettext )"
-RDEPEND="${RDEPEND}
- pam? ( >=sys-auth/pambase-20080219.1 )"
-
-src_unpack() {
- unpack ${A}
- cd "${S}"
- epatch "${FILESDIR}"/${PN}-4.1.3-dots-in-usernames.patch #22920
- elibtoolize
- epunt_cxx
-}
-
-src_compile() {
- tc-is-cross-compiler && export ac_cv_func_setpgrp_void=yes
- econf \
- --without-group-name-max-length \
- --enable-shared=no \
- --enable-static=yes \
- $(use_with audit) \
- $(use_with cracklib libcrack) \
- $(use_with pam libpam) \
- $(use_with skey) \
- $(use_with selinux) \
- $(use_enable nls) \
- $(use_with elibc_glibc nscd)
- emake || die "compile problem"
-}
-
-set_login_opt() {
- local comment="" opt=$1 val=$2
- [[ -z ${val} ]] && comment="#"
- sed -i -r \
- -e "/^#?${opt}/s:.*:${comment}${opt} ${val}:" \
- "${D}"/etc/login.defs
- local res=$(grep "^${comment}${opt}" "${D}"/etc/login.defs)
- einfo ${res:-Unable to find ${opt} in /etc/login.defs}
-}
-
-src_install() {
- emake DESTDIR="${D}" suidperms=4711 install || die "install problem"
- dosym useradd /usr/sbin/adduser
-
- # Remove libshadow and libmisc; see bug 37725 and the following
- # comment from shadow's README.linux:
- # Currently, libshadow.a is for internal use only, so if you see
- # -lshadow in a Makefile of some other package, it is safe to
- # remove it.
- rm -f "${D}"/{,usr/}$(get_libdir)/lib{misc,shadow}.{a,la}
-
- insinto /etc
- # Using a securetty with devfs device names added
- # (compat names kept for non-devfs compatibility)
- insopts -m0600 ; doins "${FILESDIR}"/securetty
- if ! use pam ; then
- insopts -m0600
- doins etc/login.access etc/limits
- fi
- # Output arch-specific cruft
- case $(tc-arch) in
- ppc*) echo "hvc0" >> "${D}"/etc/securetty
- echo "hvsi0" >> "${D}"/etc/securetty
- echo "ttyPSC0" >> "${D}"/etc/securetty;;
- hppa) echo "ttyB0" >> "${D}"/etc/securetty;;
- arm) echo "ttyFB0" >> "${D}"/etc/securetty;;
- sh) echo "ttySC0" >> "${D}"/etc/securetty
- echo "ttySC1" >> "${D}"/etc/securetty;;
- esac
-
- # needed for 'adduser -D'
- insinto /etc/default
- insopts -m0600
- doins "${FILESDIR}"/default/useradd
-
- # move passwd to / to help recover broke systems #64441
- mv "${D}"/usr/bin/passwd "${D}"/bin/
- dosym /bin/passwd /usr/bin/passwd
-
- cd "${S}"
- insinto /etc
- insopts -m0644
- newins etc/login.defs login.defs
-
- if ! use pam ; then
- set_login_opt MAIL_CHECK_ENAB no
- set_login_opt SU_WHEEL_ONLY yes
- set_login_opt CRACKLIB_DICTPATH /usr/$(get_libdir)/cracklib_dict
- set_login_opt LOGIN_RETRIES 3
- set_login_opt ENCRYPT_METHOD SHA512
- else
- dopamd "${FILESDIR}/pam.d-include/"{su,passwd,shadow}
-
- newpamd "${FILESDIR}/login.pamd.2" login
-
- for x in chage chsh chfn chpasswd newusers \
- user{add,del,mod} group{add,del,mod} ; do
- newpamd "${FILESDIR}"/pam.d-include/shadow ${x}
- done
-
- # comment out login.defs options that pam hates
- local opt
- for opt in \
- CHFN_AUTH \
- CRACKLIB_DICTPATH \
- ENV_HZ \
- ENVIRON_FILE \
- FAILLOG_ENAB \
- FTMP_FILE \
- LASTLOG_ENAB \
- MAIL_CHECK_ENAB \
- MOTD_FILE \
- NOLOGINS_FILE \
- OBSCURE_CHECKS_ENAB \
- PASS_ALWAYS_WARN \
- PASS_CHANGE_TRIES \
- PASS_MIN_LEN \
- PORTTIME_CHECKS_ENAB \
- QUOTAS_ENAB \
- SU_WHEEL_ONLY
- do
- set_login_opt ${opt}
- done
-
- sed -i -f "${FILESDIR}"/login_defs_pam.sed \
- "${D}"/etc/login.defs
-
- # remove manpages that pam will install for us
- # and/or don't apply when using pam
- find "${D}"/usr/share/man \
- '(' -name 'limits.5*' -o -name 'suauth.5*' ')' \
- -exec rm {} \;
- fi
-
- # Remove manpages that are handled by other packages
- find "${D}"/usr/share/man \
- '(' -name id.1 -o -name passwd.5 -o -name getspnam.3 ')' \
- -exec rm {} \;
-
- cd "${S}"
- dodoc ChangeLog NEWS TODO
- newdoc README README.download
- cd doc
- dodoc HOWTO README* WISHLIST *.txt
-}
-
-pkg_preinst() {
- rm -f "${ROOT}"/etc/pam.d/system-auth.new \
- "${ROOT}/etc/login.defs.new"
-
- use pam && pam_epam_expand "${D}"/etc/pam.d/login
-}
-
-pkg_postinst() {
- # Enable shadow groups (we need ROOT=/ here, as grpconv only
- # operate on / ...).
- if [[ ${ROOT} == / && ! -f /etc/gshadow ]] ; then
- if grpck -r 2>/dev/null ; then
- grpconv
- else
- ewarn "Running 'grpck' returned errors. Please run it by hand, and then"
- ewarn "run 'grpconv' afterwards!"
- fi
- fi
-}
diff --git a/sys-apps/shadow/shadow-4.1.4.1.ebuild b/sys-apps/shadow/shadow-4.1.4.2-r1.ebuild
index 2ca635ba216f..a80cd80de651 100644
--- a/sys-apps/shadow/shadow-4.1.4.1.ebuild
+++ b/sys-apps/shadow/shadow-4.1.4.2-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/shadow/shadow-4.1.4.1.ebuild,v 1.2 2009/08/23 10:45:45 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/shadow/shadow-4.1.4.2-r1.ebuild,v 1.1 2009/12/04 23:26:34 lxnay Exp $
inherit eutils libtool toolchain-funcs pam multilib
@@ -29,6 +29,8 @@ RDEPEND="${RDEPEND}
src_unpack() {
unpack ${A}
cd "${S}"
+ # See Gentoo bug #283725
+ epatch "${FILESDIR}/${P}-env-reset-keep-locale.patch"
epatch "${FILESDIR}"/${PN}-4.1.3-dots-in-usernames.patch #22920
elibtoolize
epunt_cxx
diff --git a/sys-apps/shadow/shadow-4.1.4.2.ebuild b/sys-apps/shadow/shadow-4.1.4.2.ebuild
deleted file mode 100644
index a6feebbdfe67..000000000000
--- a/sys-apps/shadow/shadow-4.1.4.2.ebuild
+++ /dev/null
@@ -1,187 +0,0 @@
-# Copyright 1999-2009 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/shadow/shadow-4.1.4.2.ebuild,v 1.2 2009/08/23 10:45:45 vapier Exp $
-
-inherit eutils libtool toolchain-funcs pam multilib
-
-DESCRIPTION="Utilities to deal with user accounts"
-HOMEPAGE="http://shadow.pld.org.pl/ http://pkg-shadow.alioth.debian.org/"
-SRC_URI="ftp://pkg-shadow.alioth.debian.org/pub/pkg-shadow/shadow-${PV}.tar.bz2"
-
-LICENSE="BSD GPL-2"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
-IUSE="audit cracklib nls pam selinux skey"
-
-RDEPEND="audit? ( sys-process/audit )
- cracklib? ( >=sys-libs/cracklib-2.7-r3 )
- pam? ( virtual/pam )
- !sys-apps/pam-login
- !app-admin/nologin
- skey? ( sys-auth/skey )
- selinux? ( >=sys-libs/libselinux-1.28 )
- nls? ( virtual/libintl )"
-DEPEND="${RDEPEND}
- nls? ( sys-devel/gettext )"
-RDEPEND="${RDEPEND}
- pam? ( >=sys-auth/pambase-20080219.1 )"
-
-src_unpack() {
- unpack ${A}
- cd "${S}"
- epatch "${FILESDIR}"/${PN}-4.1.3-dots-in-usernames.patch #22920
- elibtoolize
- epunt_cxx
-}
-
-src_compile() {
- tc-is-cross-compiler && export ac_cv_func_setpgrp_void=yes
- econf \
- --without-group-name-max-length \
- --enable-shared=no \
- --enable-static=yes \
- $(use_with audit) \
- $(use_with cracklib libcrack) \
- $(use_with pam libpam) \
- $(use_with skey) \
- $(use_with selinux) \
- $(use_enable nls) \
- $(use_with elibc_glibc nscd)
- emake || die "compile problem"
-}
-
-set_login_opt() {
- local comment="" opt=$1 val=$2
- [[ -z ${val} ]] && comment="#"
- sed -i -r \
- -e "/^#?${opt}/s:.*:${comment}${opt} ${val}:" \
- "${D}"/etc/login.defs
- local res=$(grep "^${comment}${opt}" "${D}"/etc/login.defs)
- einfo ${res:-Unable to find ${opt} in /etc/login.defs}
-}
-
-src_install() {
- emake DESTDIR="${D}" suidperms=4711 install || die "install problem"
- dosym useradd /usr/sbin/adduser
-
- # Remove libshadow and libmisc; see bug 37725 and the following
- # comment from shadow's README.linux:
- # Currently, libshadow.a is for internal use only, so if you see
- # -lshadow in a Makefile of some other package, it is safe to
- # remove it.
- rm -f "${D}"/{,usr/}$(get_libdir)/lib{misc,shadow}.{a,la}
-
- insinto /etc
- # Using a securetty with devfs device names added
- # (compat names kept for non-devfs compatibility)
- insopts -m0600 ; doins "${FILESDIR}"/securetty
- if ! use pam ; then
- insopts -m0600
- doins etc/login.access etc/limits
- fi
- # Output arch-specific cruft
- case $(tc-arch) in
- ppc*) echo "hvc0" >> "${D}"/etc/securetty
- echo "hvsi0" >> "${D}"/etc/securetty
- echo "ttyPSC0" >> "${D}"/etc/securetty;;
- hppa) echo "ttyB0" >> "${D}"/etc/securetty;;
- arm) echo "ttyFB0" >> "${D}"/etc/securetty;;
- sh) echo "ttySC0" >> "${D}"/etc/securetty
- echo "ttySC1" >> "${D}"/etc/securetty;;
- esac
-
- # needed for 'adduser -D'
- insinto /etc/default
- insopts -m0600
- doins "${FILESDIR}"/default/useradd
-
- # move passwd to / to help recover broke systems #64441
- mv "${D}"/usr/bin/passwd "${D}"/bin/
- dosym /bin/passwd /usr/bin/passwd
-
- cd "${S}"
- insinto /etc
- insopts -m0644
- newins etc/login.defs login.defs
-
- if ! use pam ; then
- set_login_opt MAIL_CHECK_ENAB no
- set_login_opt SU_WHEEL_ONLY yes
- set_login_opt CRACKLIB_DICTPATH /usr/$(get_libdir)/cracklib_dict
- set_login_opt LOGIN_RETRIES 3
- set_login_opt ENCRYPT_METHOD SHA512
- else
- dopamd "${FILESDIR}/pam.d-include/"{su,passwd,shadow}
-
- newpamd "${FILESDIR}/login.pamd.2" login
-
- for x in chage chsh chfn chpasswd newusers \
- user{add,del,mod} group{add,del,mod} ; do
- newpamd "${FILESDIR}"/pam.d-include/shadow ${x}
- done
-
- # comment out login.defs options that pam hates
- local opt
- for opt in \
- CHFN_AUTH \
- CRACKLIB_DICTPATH \
- ENV_HZ \
- ENVIRON_FILE \
- FAILLOG_ENAB \
- FTMP_FILE \
- LASTLOG_ENAB \
- MAIL_CHECK_ENAB \
- MOTD_FILE \
- NOLOGINS_FILE \
- OBSCURE_CHECKS_ENAB \
- PASS_ALWAYS_WARN \
- PASS_CHANGE_TRIES \
- PASS_MIN_LEN \
- PORTTIME_CHECKS_ENAB \
- QUOTAS_ENAB \
- SU_WHEEL_ONLY
- do
- set_login_opt ${opt}
- done
-
- sed -i -f "${FILESDIR}"/login_defs_pam.sed \
- "${D}"/etc/login.defs
-
- # remove manpages that pam will install for us
- # and/or don't apply when using pam
- find "${D}"/usr/share/man \
- '(' -name 'limits.5*' -o -name 'suauth.5*' ')' \
- -exec rm {} \;
- fi
-
- # Remove manpages that are handled by other packages
- find "${D}"/usr/share/man \
- '(' -name id.1 -o -name passwd.5 -o -name getspnam.3 ')' \
- -exec rm {} \;
-
- cd "${S}"
- dodoc ChangeLog NEWS TODO
- newdoc README README.download
- cd doc
- dodoc HOWTO README* WISHLIST *.txt
-}
-
-pkg_preinst() {
- rm -f "${ROOT}"/etc/pam.d/system-auth.new \
- "${ROOT}/etc/login.defs.new"
-
- use pam && pam_epam_expand "${D}"/etc/pam.d/login
-}
-
-pkg_postinst() {
- # Enable shadow groups (we need ROOT=/ here, as grpconv only
- # operate on / ...).
- if [[ ${ROOT} == / && ! -f /etc/gshadow ]] ; then
- if grpck -r 2>/dev/null ; then
- grpconv
- else
- ewarn "Running 'grpck' returned errors. Please run it by hand, and then"
- ewarn "run 'grpconv' afterwards!"
- fi
- fi
-}