Skip to content

Commit

Permalink
app-shells/zsh: check for /usr/sbin in ROOTPATH before using it
Browse files Browse the repository at this point in the history
The maintainer, [email protected], authorized me to fix this bug
(williamh).

Closes: https://bugs.gentoo.org/656400
Closes: gentoo#8550
Closes: gentoo#8566
  • Loading branch information
floppym authored and williamh committed Jun 5, 2018
1 parent b6b22e3 commit d09566d
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 10 deletions.
42 changes: 42 additions & 0 deletions app-shells/zsh/files/zprofile-4
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
11 changes: 2 additions & 9 deletions app-shells/zsh/zsh-9999.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit d09566d

Please sign in to comment.