busybox: Allow running from within the Nix store

This enables running the busybox program directly from the Nix store
(i.e. as /nix/store/<hash>-busybox). We need this for the stdenv
bootstrap.
This commit is contained in:
Eelco Dolstra 2014-10-29 13:34:46 +01:00
parent 423e923182
commit 3b2177b769
2 changed files with 18 additions and 0 deletions

View File

@ -0,0 +1,16 @@
Allow BusyBox to be invoked as "<something>-busybox". This is
necessary when it's run from the Nix store as <hash>-busybox during
stdenv bootstrap.
diff -ru -x '*~' busybox-1.22.1-orig/libbb/appletlib.c busybox-1.22.1/libbb/appletlib.c
--- busybox-1.22.1-orig/libbb/appletlib.c 2014-01-09 19:15:44.000000000 +0100
+++ busybox-1.22.1/libbb/appletlib.c 2014-10-29 09:53:01.232052068 +0100
@@ -764,7 +764,7 @@
int applet = find_applet_by_name(name);
if (applet >= 0)
run_applet_no_and_exit(applet, argv);
- if (strncmp(name, "busybox", 7) == 0)
+ if (strstr(name, "busybox") != 0)
exit(busybox_main(argv));
}

View File

@ -28,6 +28,8 @@ stdenv.mkDerivation rec {
sha256 = "12v7nri79v8gns3inmz4k24q7pcnwi00hybs0wddfkcy1afh42xf";
};
patches = [ ./busybox-in-store.patch ];
configurePhase = ''
export KCONFIG_NOTIMESTAMP=1
make ${if enableMinimal then "allnoconfig" else "defconfig"}