Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 729184

Summary: sys-apps/busybox USE=make-symlinks should disable FEATURE_SH_STANDALONE mode
Product: Gentoo Linux Reporter: Erik Dannenberg <erik.dannenberg>
Component: Current packagesAssignee: Embedded Gentoo Team <embedded>
Status: RESOLVED FIXED    
Severity: normal CC: jsmolic
Priority: Normal Keywords: PullRequest
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://github.com/gentoo/gentoo/pull/22038
Whiteboard:
Package list:
Runtime testing required: ---

Description Erik Dannenberg 2020-06-22 14:50:04 UTC
Currently the created symlinks are never used as the ebuild always enables the following busybox features:

CONFIG_FEATURE_PREFER_APPLETS
CONFIG_FEATURE_SH_STANDALONE

This bypasses all PATH lookups for busybox builtins.

I use busybox as base for my Docker images which works great for most cases, however sometimes the builtins have missing arguments or other incompatibilities that break other applications that depend on them. It is not feasable to hack the application to use the complete binary path to the original util (sed, ar, etc). In such cases it would be great if I could just delete a symlink, effectively disabling that builtin.

A tested patch for the official ebuild that resolves the issue can be found here:

https://github.com/edannenberg/kubler-overlay/commit/60ce3dedea54489d84ff894b6b7da4b586883921
Comment 1 Larry the Git Cow gentoo-dev 2021-08-26 22:52:09 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5c8d34c127412c5d8b4fd3dc13e970f265be211c

commit 5c8d34c127412c5d8b4fd3dc13e970f265be211c
Author:     Jakov Smolic <jakov.smolic@sartura.hr>
AuthorDate: 2021-08-19 17:21:00 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2021-08-26 22:50:13 +0000

    sys-apps/busybox: Disable standalone shell mode with USE=make-symlinks
    
    * Busybox has by default enabled CONFIG_FEATURE_PREFER_APPLETS
      and CONFIG_FEATURE_SH_STANDALONE which means it will
      bypass all PATH lookups and use its builtin applets.
      This is problematic as we sometimes might want to use the
      original program instead of Busybox applets, so let's
      disable those two options when building with USE=make-symlinks.
      This also enables users to disable a builtin by deleting the
      corresponding symlink.
    
    Closes: https://bugs.gentoo.org/729184
    Signed-off-by: Jakov Smolic <jakov.smolic@sartura.hr>
    Closes: https://github.com/gentoo/gentoo/pull/22038
    Signed-off-by: Sam James <sam@gentoo.org>

 .../{busybox-1.33.1-r1.ebuild => busybox-1.33.1-r2.ebuild}        | 8 ++++++++
 sys-apps/busybox/busybox-9999.ebuild                              | 8 ++++++++
 2 files changed, 16 insertions(+)