From c61463a45441315b0006a28bb9f6069a393a8309 Mon Sep 17 00:00:00 2001 From: Joshua Lock Date: Fri, 4 Sep 2015 15:59:39 +0100 Subject: busybox: fixes for when base_bindir != /bin * Replace all hard-coded paths with variables * Run sed over busybox.links.* to replace /bin with ${base_bindir} Signed-off-by: Joshua Lock Signed-off-by: Richard Purdie --- meta/recipes-core/busybox/busybox.inc | 49 +++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc index 0769d92c50..ed8f9fe766 100644 --- a/meta/recipes-core/busybox/busybox.inc +++ b/meta/recipes-core/busybox/busybox.inc @@ -178,6 +178,9 @@ do_install () { if [ "${base_sbindir}" != "/sbin" ]; then sed -i "s:^/sbin/:${base_sbindir}/:" busybox.links* fi + if [ "${base_bindir}" != "/bin" ]; then + sed -i "s:^/bin/:${base_bindir}/:" busybox.links* + fi install -d ${D}${sysconfdir}/init.d @@ -338,10 +341,10 @@ python do_package_prepend () { return if os.path.exists('%s/etc/busybox.links' % (dvar)): - set_alternative_vars("/etc/busybox.links", "/bin/busybox") + set_alternative_vars("${sysconfdir}/busybox.links", "${base_bindir}/busybox") else: - set_alternative_vars("/etc/busybox.links.nosuid", "/bin/busybox.nosuid") - set_alternative_vars("/etc/busybox.links.suid", "/bin/busybox.suid") + set_alternative_vars("${sysconfdir}/busybox.links.nosuid", "${base_bindir}/busybox.nosuid") + set_alternative_vars("${sysconfdir}/busybox.links.suid", "${base_bindir}/busybox.suid") } pkg_postinst_${PN} () { @@ -353,22 +356,22 @@ pkg_postinst_${PN} () { if test "x$D" = "x"; then # Remove busybox.nosuid if it's a symlink, because this situation indicates # that we're installing or upgrading to a one-binary busybox. - if test -h /bin/busybox.nosuid; then - rm -f /bin/busybox.nosuid + if test -h ${base_bindir}/busybox.nosuid; then + rm -f ${base_bindir}/busybox.nosuid fi for suffix in "" ".nosuid" ".suid"; do - if test -e /etc/busybox.links$suffix; then + if test -e ${sysconfdir}/busybox.links$suffix; then while read link; do if test ! -e "$link"; then case "$link" in /*/*/*) - to="../../bin/busybox$suffix" + to="../..${base_bindir}/busybox$suffix" ;; /bin/*) to="busybox$suffix" ;; /*/*) - to="../bin/busybox$suffix" + to="..${base_bindir}/busybox$suffix" ;; esac # we can use busybox here because even if we are using splitted busybox @@ -376,7 +379,7 @@ pkg_postinst_${PN} () { busybox rm -f $link busybox ln -s $to $link fi - done < /etc/busybox.links$suffix + done < ${sysconfdir}/busybox.links$suffix fi done fi @@ -387,19 +390,19 @@ pkg_prerm_${PN} () { # providing its files, this will make update-alternatives work, but the update-rc.d part # for syslog, httpd and/or udhcpd will fail if there is no other package providing sh tmpdir=`mktemp -d /tmp/busyboxrm-XXXXXX` - ln -s /bin/busybox $tmpdir/[ - ln -s /bin/busybox $tmpdir/test - ln -s /bin/busybox $tmpdir/head - ln -s /bin/busybox $tmpdir/sh - ln -s /bin/busybox $tmpdir/basename - ln -s /bin/busybox $tmpdir/echo - ln -s /bin/busybox $tmpdir/mv - ln -s /bin/busybox $tmpdir/ln - ln -s /bin/busybox $tmpdir/dirname - ln -s /bin/busybox $tmpdir/rm - ln -s /bin/busybox $tmpdir/sed - ln -s /bin/busybox $tmpdir/sort - ln -s /bin/busybox $tmpdir/grep + ln -s ${base_bindir}/busybox $tmpdir/[ + ln -s ${base_bindir}/busybox $tmpdir/test + ln -s ${base_bindir}/busybox $tmpdir/head + ln -s ${base_bindir}/busybox $tmpdir/sh + ln -s ${base_bindir}/busybox $tmpdir/basename + ln -s ${base_bindir}/busybox $tmpdir/echo + ln -s ${base_bindir}/busybox $tmpdir/mv + ln -s ${base_bindir}/busybox $tmpdir/ln + ln -s ${base_bindir}/busybox $tmpdir/dirname + ln -s ${base_bindir}/busybox $tmpdir/rm + ln -s ${base_bindir}/busybox $tmpdir/sed + ln -s ${base_bindir}/busybox $tmpdir/sort + ln -s ${base_bindir}/busybox $tmpdir/grep export PATH=$PATH:$tmpdir } @@ -407,7 +410,7 @@ pkg_prerm_${PN}-syslog () { # remove syslog if test "x$D" = "x"; then if test "$1" = "upgrade" -o "$1" = "remove"; then - /etc/init.d/syslog stop + ${sysconfdir}/init.d/syslog stop fi fi } -- cgit 1.2.3-korg