commit:     d09566dc69f7806142d67955f8d05383d60d0622
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Thu May 24 19:27:50 2018 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Tue Jun  5 20:35:33 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d09566dc

app-shells/zsh: check for /usr/sbin in ROOTPATH before using it

The maintainer, radhermit <AT> gentoo.org, authorized me to fix this bug
(williamh).

Closes: https://bugs.gentoo.org/656400
Closes: https://github.com/gentoo/gentoo/pull/8550
Closes: https://github.com/gentoo/gentoo/pull/8566

 app-shells/zsh/files/zprofile-4                    | 42 ++++++++++++++++++++++
 .../zsh/{zsh-5.5.1.ebuild => zsh-5.5.1-r1.ebuild}  |  2 +-
 app-shells/zsh/zsh-9999.ebuild                     | 11 ++----
 3 files changed, 45 insertions(+), 10 deletions(-)

diff --git a/app-shells/zsh/files/zprofile-4 b/app-shells/zsh/files/zprofile-4
new file mode 100644
index 00000000000..6402ca718d3
--- /dev/null
+++ b/app-shells/zsh/files/zprofile-4
@@ -0,0 +1,42 @@
+# /etc/zsh/zprofile
+
+# Load environment settings from profile.env, which is created by
+# env-update from the files in /etc/env.d
+if [ -e /etc/profile.env ] ; then
+       . /etc/profile.env
+fi
+
+# You should override these in your ~/.zprofile (or equivalent) for per-user
+# settings.  For system defaults, you can add a new file in /etc/profile.d/.
+export EDITOR=${EDITOR:-/bin/nano}
+export PAGER=${PAGER:-/usr/bin/less}
+
+# 077 would be more secure, but 022 is generally quite realistic
+umask 022
+
+# Set up PATH depending on whether we're root or a normal user.
+# There's no real reason to exclude sbin paths from the normal user,
+# but it can make tab-completion easier when they aren't in the
+# user's PATH to pollute the executable namespace.
+#
+# It is intentional in the following line to use || instead of -o.
+# This way the evaluation can be short-circuited and calling whoami is
+# avoided.
+if [ "$EUID" = "0" ] || [ "$USER" = "root" ] ; then
+       # Check to make sure ROOTPATH is sane before we use it.
+       # https://bugs.gentoo.org/656400
+       if [[ :${ROOTPATH}: == *:@GENTOO_PORTAGE_EPREFIX@/usr/sbin:* ]]; then
+               PATH="${ROOTPATH}"
+       fi
+fi
+export PATH
+unset ROOTPATH
+
+shopts=$-
+setopt nullglob
+for sh in /etc/profile.d/*.sh ; do
+       [ -r "$sh" ] && . "$sh"
+done
+unsetopt nullglob
+set -$shopts
+unset sh shopts

diff --git a/app-shells/zsh/zsh-5.5.1.ebuild 
b/app-shells/zsh/zsh-5.5.1-r1.ebuild
similarity index 98%
rename from app-shells/zsh/zsh-5.5.1.ebuild
rename to app-shells/zsh/zsh-5.5.1-r1.ebuild
index 4c17da09db4..9f6dc303d88 100644
--- a/app-shells/zsh/zsh-5.5.1.ebuild
+++ b/app-shells/zsh/zsh-5.5.1-r1.ebuild
@@ -139,7 +139,7 @@ src_install() {
 
        insinto /etc/zsh
        export PREFIX_QUOTE_CHAR='"' PREFIX_EXTRA_REGEX="/EUID/s,0,${EUID},"
-       newins "$(prefixify_ro "${FILESDIR}"/zprofile-3)" zprofile
+       newins "$(prefixify_ro "${FILESDIR}"/zprofile-4)" zprofile
 
        keepdir /usr/share/zsh/site-functions
        insinto /usr/share/zsh/${PV%_*}/functions/Prompts

diff --git a/app-shells/zsh/zsh-9999.ebuild b/app-shells/zsh/zsh-9999.ebuild
index f53a6be7a4d..9f6dc303d88 100644
--- a/app-shells/zsh/zsh-9999.ebuild
+++ b/app-shells/zsh/zsh-9999.ebuild
@@ -57,14 +57,6 @@ src_prepare() {
                eapply "${FILESDIR}"/${PN}-5.3-init.d-gentoo.diff
        fi
 
-       cp "${FILESDIR}"/zprofile-2 "${T}"/zprofile || die
-       eprefixify "${T}"/zprofile || die
-       if use prefix ; then
-               sed -i -e 's|@ZSH_PREFIX@||' -e '/@ZSH_NOPREFIX@/d' 
"${T}"/zprofile || die
-       else
-               sed -i -e 's|@ZSH_NOPREFIX@||' -e '/@ZSH_PREFIX@/d' -e 's|""||' 
"${T}"/zprofile || die
-       fi
-
        eapply_user
 
        if [[ ${PV} == 9999* ]] ; then
@@ -146,7 +138,8 @@ src_install() {
        emake DESTDIR="${D}" install $(usex doc "install.info" "")
 
        insinto /etc/zsh
-       doins "${T}"/zprofile
+       export PREFIX_QUOTE_CHAR='"' PREFIX_EXTRA_REGEX="/EUID/s,0,${EUID},"
+       newins "$(prefixify_ro "${FILESDIR}"/zprofile-4)" zprofile
 
        keepdir /usr/share/zsh/site-functions
        insinto /usr/share/zsh/${PV%_*}/functions/Prompts

Reply via email to