diff options
author | Mike Gilbert <floppym@gentoo.org> | 2018-05-24 15:27:50 -0400 |
---|---|---|
committer | William Hubbs <williamh@gentoo.org> | 2018-06-05 15:35:33 -0500 |
commit | d09566dc69f7806142d67955f8d05383d60d0622 (patch) | |
tree | 3244f16f08a5995fa85a0dd0888f59fdfb4aea61 /app-shells | |
parent | media-sound/quodlibet: drop old version (diff) | |
download | gentoo-d09566dc69f7806142d67955f8d05383d60d0622.tar.gz gentoo-d09566dc69f7806142d67955f8d05383d60d0622.tar.bz2 gentoo-d09566dc69f7806142d67955f8d05383d60d0622.zip |
app-shells/zsh: check for /usr/sbin in ROOTPATH before using it
The maintainer, radhermit@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
Diffstat (limited to 'app-shells')
-rw-r--r-- | app-shells/zsh/files/zprofile-4 | 42 | ||||
-rw-r--r-- | app-shells/zsh/zsh-5.5.1-r1.ebuild (renamed from app-shells/zsh/zsh-5.5.1.ebuild) | 2 | ||||
-rw-r--r-- | 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 000000000000..6402ca718d38 --- /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 index 4c17da09db4a..9f6dc303d882 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 f53a6be7a4d6..9f6dc303d882 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 |