diff --git a/sys/base/busybox/files/busybox.initramfs b/sys/base/busybox/files/busybox.initramfs new file mode 100755 index 00000000..8312d08b --- /dev/null +++ b/sys/base/busybox/files/busybox.initramfs @@ -0,0 +1,39 @@ +#!/bin/sh + +# This hook copies busybox binary into the initramfs directory +# and creates all necessary links to it. +# It should be placed last into the hooks directory, in order to +# not overwrite commands which are provided by other means. + +set -e + +case "${1:-}" in + prereqs) echo ""; exit 0;; +esac + +BB_BIN=/bin/busybox + +[ n = "$BUSYBOX" ] && exit 0 + +[ -r /usr/share/initramfs-tools/hook-functions ] || exit 0 +. /usr/share/initramfs-tools/hook-functions + +if [ -f $DESTDIR/bin/sh ] && cmp -s $DESTDIR/bin/sh $BB_BIN ; then + # initramfs copies busybox into /bin/sh, undo this + rm -f $DESTDIR/bin/sh +fi +rm -f $DESTDIR/bin/busybox # for compatibility with old initramfs +copy_exec $BB_BIN /bin/busybox + +for alias in $($BB_BIN --list-long); do + alias="${alias#/}" + case "$alias" in + # strip leading /usr, we don't use it + usr/*) alias="${alias#usr/}" ;; + */*) ;; + *) alias="bin/$alias" ;; # make it into /bin + esac + + [ -e "$DESTDIR/$alias" ] || \ + ln "$DESTDIR/bin/busybox" "$DESTDIR/$alias" +done diff --git a/sys/base/busybox/busybox.sysconf b/sys/base/busybox/files/busybox.sysconf similarity index 100% rename from sys/base/busybox/busybox.sysconf rename to sys/base/busybox/files/busybox.sysconf diff --git a/sys/base/busybox/ympbuild b/sys/base/busybox/ympbuild index 962eef6a..080bd9b7 100644 --- a/sys/base/busybox/ympbuild +++ b/sys/base/busybox/ympbuild @@ -9,11 +9,12 @@ maintainer='sulincix' license=('GPLv3') arch=(x86_64) source=("https://busybox.net/downloads/busybox-$version.tar.bz2" - "busybox.sysconf" - + "files/busybox.sysconf" + "files/busybox.initramfs" ) md5sums=("585949b1dd4292b604b7d199866e9913" "SKIP" + "SKIP" ) group=(sys.base) @@ -30,8 +31,10 @@ build(){ } package(){ - mkdir -p ${DESTDIR}/bin/ ${DESTDIR}/etc/sysconf.d + mkdir -p ${DESTDIR}/bin/ ${DESTDIR}/etc/sysconf.d ${DESTDIR}/usr/share/initramfs-tools/{hooks,conf-hooks.d}/ install busybox ${DESTDIR}/bin/busybox install ../busybox.sysconf ${DESTDIR}/etc/sysconf.d/busybox + install ../busybox.initramfs ${DESTDIR}/usr/share/initramfs-tools/hooks/zz-busybox + echo "BUSYBOXDIR=/bin" > ${DESTDIR}/usr/share/initramfs-tools/conf-hooks.d/busybox }