blob: 0c27f5c1566a2e4416e3f1d6298ae778dc1cde4d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
ALTERNATIVES=(
bash:app-shells/bash
busybox:sys-apps/busybox
dash:app-shells/dash
ksh:app-shells/ksh
"lksh:app-shells/mksh[lksh]"
mksh:app-shells/mksh
)
inherit app-alternatives
DESCRIPTION="/bin/sh (POSIX shell) symlink"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
RDEPEND="
!app-eselect/eselect-sh
"
pkg_setup() {
if [[ -z ${ROOT} ]] && use busybox ; then
# Needed to avoid busybox preferring internal applets over PATH lookups.
# https://web.archive.org/web/20221206223848/https://busybox.net/FAQ.html#standalone_shell.
if busybox bbconfig | grep -q "CONFIG_FEATURE_SH_STANDALONE=y" ; then
ewarn "busybox is configured with CONFIG_FEATURE_SH_STANDALONE=y!"
ewarn "This is not a safe configuration for busybox as /bin/sh."
ewarn "Please use savedconfig to disable CONFIG_FEATURE_SH_STANDALONE on busybox."
die "Aborting due to unsafe Busybox configuration (CONFIG_FEATURE_SH_STANDALONE=y)!"
fi
fi
}
src_install() {
dosym "$(get_alternative)" /bin/sh || die
}
pkg_postrm() {
# make sure we don't leave the user without /bin/sh, since it's not
# been owned by any other package
if [[ ! -h ${EROOT}/bin/sh ]]; then
ln -s bash "${EROOT}/bin/sh" || die
fi
}
|