gentoo/app-alternatives/sh/sh-0.ebuild
Fabian Groffen 2d25fad95c
*/*: drop *-linux keywords
Bug: https://bugs.gentoo.org/473598
Bug: https://bugs.gentoo.org/720224
Signed-off-by: Fabian Groffen <grobian@gentoo.org>
2025-12-19 10:51:55 +01:00

48 lines
1.4 KiB
Bash

# Copyright 2022-2025 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 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-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
}