From 689f36370d85a43fba6d7329290b5d2086b61fb4 Mon Sep 17 00:00:00 2001 From: Sam James Date: Wed, 28 Dec 2022 20:04:57 +0000 Subject: app-alternatives/sh: support sys-apps/busybox Note that we have to check for CONFIG_FEATURE_SH_STANDALONE=y to avoid busybox preferring internal applets over commands in PATH. See https://web.archive.org/web/20221206223848/https://busybox.net/FAQ.html#standalone_shell. Closes: https://bugs.gentoo.org/888781 Signed-off-by: Sam James --- app-alternatives/sh/sh-0.ebuild | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'app-alternatives/sh') diff --git a/app-alternatives/sh/sh-0.ebuild b/app-alternatives/sh/sh-0.ebuild index 4cd530a89d9c..682533efb3bf 100644 --- a/app-alternatives/sh/sh-0.ebuild +++ b/app-alternatives/sh/sh-0.ebuild @@ -5,6 +5,7 @@ EAPI=8 ALTERNATIVES=( bash:app-shells/bash + busybox:sys-apps/busybox dash:app-shells/dash ksh:app-shells/ksh "lksh:app-shells/mksh[lksh]" @@ -20,6 +21,19 @@ 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 } -- cgit v1.2.3-65-gdbad