Skip to contentSkip to conversation

Change some applets dirs to make them FHS and LSB compliance

PATCH In review [email protected] 1 participant 3 messages Nov 15, 2012 – Nov 30, 2012

lore
Share & tools
lore
#0 lore raw

cover Change some applets dirs to make them FHS and LSB compliance

From: Roy.Li <[email protected]>

The following changes since commit b53ea6687b6201c8c5ab5cb0d2a845ef7e7b2abe:

sstate: Bump version number to deal with layout fixes (2012-11-14 23:37:26 +0000)

are available in the git repository at:
git://git.pokylinux.org/poky-contrib roy/change-applets-dir
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=roy/change-applets-dir

Roy.Li (1):
Change some applets dirs to make them FHS and LSB compliance

 meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb        |    6 +-
 meta/recipes-connectivity/iproute2/iproute2.inc    |    2 +-
 .../iproute2/iproute2_3.5.1.bb                     |    2 +-
 ...-several-applets-to-different-install-dir.patch |  174 ++++++++++++++++++++
 meta/recipes-core/busybox/busybox_1.20.2.bb        |    5 +-
 meta/recipes-core/kbd/kbd_1.15.2.bb                |    9 +-
 meta/recipes-core/tinylogin/tinylogin_1.4.bb       |   22 ++-
 meta/recipes-core/util-linux/util-linux.inc        |    5 +-
 meta/recipes-core/util-linux/util-linux_2.21.2.bb  |    2 +-
 9 files changed, 214 insertions(+), 13 deletions(-)
 create mode 100644 meta/recipes-core/busybox/busybox-1.20.2/Move-several-applets-to-different-install-dir.patch
Signature · 1 line
1.7.4.1
#1 lore raw

PATCH 1/1 Change some applets dirs to make them FHS and LSB compliance

From: Roy.Li <[email protected]>

Change some applets dirs to make them FHS and LSB compliance by backporting patch dac8e79a190fcfe (Move several applets to different install dir) and adjusting alternatives in several bb files, the result is below:

	ip: /bin/-->/sbin/
	adduser deluser addgroup delgroup: /bin/-->/usr/sbin/
	fdformat: /usr/bin/-->/usr/sbin/
	kbd_mode: /usr/bin/-->/bin/
	rtcwake: /usr/bin/-->/usr/sbin/
	readahead: /usr/bin/-->/usr/sbin/

The patch dac8e79a190fcfe also changes the below applets dirs, but these applets are not enabled in our busybox, or the change for these applets dirs in patch dac8e79a190fcfe maybe not good, so do not update their alternatives.
killall5 arping chat ether-wake ifplugd ipaddr iproute iprule iptunnel

---
 meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb        |    6 +-
 meta/recipes-connectivity/iproute2/iproute2.inc    |    2 +-
 .../iproute2/iproute2_3.5.1.bb                     |    2 +-
 ...-several-applets-to-different-install-dir.patch |  174 ++++++++++++++++++++
 meta/recipes-core/busybox/busybox_1.20.2.bb        |    5 +-
 meta/recipes-core/kbd/kbd_1.15.2.bb                |    9 +-
 meta/recipes-core/tinylogin/tinylogin_1.4.bb       |   22 ++-
 meta/recipes-core/util-linux/util-linux.inc        |    5 +-
 meta/recipes-core/util-linux/util-linux_2.21.2.bb  |    2 +-
 9 files changed, 214 insertions(+), 13 deletions(-)
 create mode 100644 meta/recipes-core/busybox/busybox-1.20.2/Move-several-applets-to-different-install-dir.patch
meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb +5 -1
index faa0e4e..a8f3314 100644
@@ -14,7 +14,7 @@ SRC_URI = "http://pm-utils.freedesktop.org/releases/pm-utils-${PV}.tar.gz"
 SRC_URI[md5sum] = "1742a556089c36c3a89eb1b957da5a60"
 SRC_URI[sha256sum] = "8ed899032866d88b2933a1d34cc75e8ae42dcde20e1cc21836baaae3d4370c0b"
 
-inherit pkgconfig autotools
+inherit pkgconfig autotools update-alternatives
 
 RDEPENDS_${PN} = "grep"
 
@@ -25,3 +25,7 @@ do_configure_prepend () {
 FILES_${PN} += "${libdir}/${BPN}/*"
 FILES_${PN}-dbg += "${libdir}/${BPN}/bin/.debug \
 		    ${datadir}/doc/pm-utils/README.debugging"
+
+ALTERNATIVE_${PN} = "readahead"
+ALTERNATIVE_LINK_NAME[readahead] = "${sbindir}/readahead"
+ALTERNATIVE_TARGET[readahead] = "${libdir}/${BPN}/power.d/readahead"
meta/recipes-connectivity/iproute2/iproute2.inc +1 -1
index d8b1a17..e3fc9e8 100644
@@ -31,7 +31,7 @@ FILES_${PN}-dbg += "${libdir}/tc/.debug"
 
 ALTERNATIVE_${PN} = "ip"
 ALTERNATIVE_TARGET[ip] = "${base_sbindir}/ip.${BPN}"
-ALTERNATIVE_LINK_NAME[ip] = "${base_bindir}/ip"
+ALTERNATIVE_LINK_NAME[ip] = "${base_sbindir}/ip"
 ALTERNATIVE_PRIORITY = "100"
 
 PARALLEL_MAKE = ""
meta/recipes-connectivity/iproute2/iproute2_3.5.1.bb +1 -1
index c1e9bd3..643f0e3 100644
@@ -1,6 +1,6 @@
 require iproute2.inc
 
-PR = "r1"
+PR = "r2"
 
 SRC_URI = "${KERNELORG_MIRROR}/linux/utils/net/${BPN}/${BPN}-${PV}.tar.xz \
            file://configure-cross.patch"
meta/recipes-core/busybox/busybox-1.20.2/Move-several-applets-to-different-install-dir.patch new file +174 -0

174 lines not on this page · raw message

meta/recipes-core/busybox/busybox_1.20.2.bb +3 -2
index 3e628d2..69c3dc8 100644
@@ -1,5 +1,5 @@
 require busybox.inc
-PR = "r4"
+PR = "r5"
 
 SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
            file://B921600.patch \
@@ -27,7 +27,8 @@ SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
            file://busybox-mkfs-minix-tests_bigendian.patch \
            file://fix-for-spurious-testsuite-failure.patch \
            file://busybox-1.20.2-kernel_ver.patch \
-           file://stat-usr-bin.patch"
+           file://stat-usr-bin.patch \
+           file://Move-several-applets-to-different-install-dir.patch"
 
 SRC_URI[tarball.md5sum] = "e025414bc6cd79579cc7a32a45d3ae1c"
 SRC_URI[tarball.sha256sum] = "eb13ff01dae5618ead2ef6f92ba879e9e0390f9583bd545d8789d27cf39b6882"
meta/recipes-core/kbd/kbd_1.15.2.bb +7 -2
index 79ea468..c1d89af 100644
@@ -10,7 +10,7 @@ RREPLACES_${PN} = "console-tools"
 RPROVIDES_${PN} = "console-tools"
 RCONFLICTS_${PN} = "console-tools"
 
-PR = "r4"
+PR = "r5"
 
 SRC_URI="${KERNELORG_MIRROR}/linux/utils/kbd/kbd-1.15.2.tar.bz2"
 SRC_URI[md5sum] = "e850eb91e4d3b94b194efe8e953204c5"
@@ -25,6 +25,11 @@ FILES_${PN}-unimaps = "${datadir}/unimaps"
 
 inherit update-alternatives
 
+do_install_append() {
+    install -d ${D}${base_bindir}/
+    mv ${D}/${bindir}/kbd_mode ${D}/${base_bindir}/
+}
 
-ALTERNATIVE_${PN} = "chvt deallocvt fgconsole openvt"
+ALTERNATIVE_${PN} = "chvt deallocvt fgconsole openvt kbd_mode"
 ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE_LINK_NAME[kbd_mode] = "${base_bindir}/kbd_mode"
meta/recipes-core/tinylogin/tinylogin_1.4.bb +18 -4
index aaed92a..b270f31 100644
@@ -7,7 +7,7 @@ and groups on an embedded system."
 HOMEPAGE = "http://tinylogin.busybox.net/"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM="file://LICENSE;md5=f1060fa3a366f098b5b1d8c2077ba269"
-PR = "r9"
+PR = "r10"
 
 inherit update-alternatives
 
@@ -33,11 +33,25 @@ do_install () {
 	install -d ${D}${base_bindir}
 	install -m 4755 tinylogin ${D}${base_bindir}/tinylogin
 	for i in `cat tinylogin.links`; do
-		mkdir -p ${D}/`dirname $i`
-		ln -sf /bin/tinylogin ${D}$i
+		case `basename $i` in
+			adduser|addgroup|deluser|delgroup)   
+				;;
+			*)
+				mkdir -p ${D}/`dirname $i`
+				ln -sf /bin/tinylogin ${D}$i
+				;;
+		esac
 	done
 }
 
-ALTERNATIVE_${PN} = "getty"
+ALTERNATIVE_${PN} = "getty adduser addgroup deluser delgroup"
+
 ALTERNATIVE_LINK_NAME[getty] = "${base_sbindir}/getty"
 ALTERNATIVE_PRIORITY = "80"
+
+ALTERNATIVE_TARGET = "${base_bindir}/tinylogin"
+
+ALTERNATIVE_LINK_NAME[adduser] = "${sbindir}/adduser"
+ALTERNATIVE_LINK_NAME[addgroup] = "${sbindir}/addgroup"
+ALTERNATIVE_LINK_NAME[deluser] = "${sbindir}/deluser"
+ALTERNATIVE_LINK_NAME[delgroup] = "${sbindir}/delgroup"
meta/recipes-core/util-linux/util-linux.inc +4 -1
index f2f9a04..147c65f 100644
@@ -133,7 +133,7 @@ ALTERNATIVE_PRIORITY = "100"
 
 ALTERNATIVE_${PN}  = "dmesg kill more reset mkswap blockdev pivot_root"
 ALTERNATIVE_${PN} += "mkfs.minix hexdump last logger mesg renice wall"
-ALTERNATIVE_${PN} += "setsid chrt flock hwclock"
+ALTERNATIVE_${PN} += "setsid chrt flock hwclock rtcwake fdformat"
 
 ALTERNATIVE_LINK_NAME[dmesg] = "${base_bindir}/dmesg"
 ALTERNATIVE_LINK_NAME[kill] = "${base_bindir}/kill"
@@ -145,6 +145,9 @@ ALTERNATIVE_LINK_NAME[blockdev] = "${base_sbindir}/blockdev"
 ALTERNATIVE_LINK_NAME[pivot_root] = "${base_sbindir}/pivot_root"
 ALTERNATIVE_LINK_NAME[mkfs.minix] = "${base_sbindir}/mkfs.minix"
 
+ALTERNATIVE_LINK_NAME[fdformat] = "${sbindir}/fdformat"
+ALTERNATIVE_LINK_NAME[rtcwake] = "${sbindir}/rtcwake"
+
 # There seems to be problem, atleast on nslu2, with these, untill they are
 # fixed the busybox ones have higher priority
 ALTERNATIVE_PRIORITY[hwclock] = "10"
meta/recipes-core/util-linux/util-linux_2.21.2.bb +1 -1
index 24bed27..ebf1bd2 100644
@@ -1,5 +1,5 @@
 MAJOR_VERSION = "2.21"
-PR = "r6"
+PR = "r7"
 require util-linux.inc
 
 # note that `lscpu' is under GPLv3+
Signature · 1 line
1.7.4.1
#2 lore raw

Any comments?

Quoted 381 lines · On 2012年11月15日 10:47, [email protected] wrote:

From: Roy.Li <[email protected]>

Change some applets dirs to make them FHS and LSB compliance by backporting patch dac8e79a190fcfe (Move several applets to different install dir) and adjusting alternatives in several bb files, the result is below:

	ip: /bin/-->/sbin/
	adduser deluser addgroup delgroup: /bin/-->/usr/sbin/
	fdformat: /usr/bin/-->/usr/sbin/
	kbd_mode: /usr/bin/-->/bin/
	rtcwake: /usr/bin/-->/usr/sbin/
	readahead: /usr/bin/-->/usr/sbin/

The patch dac8e79a190fcfe also changes the below applets dirs, but these applets are not enabled in our busybox, or the change for these applets dirs in patch dac8e79a190fcfe maybe not good, so do not update their alternatives.
killall5 arping chat ether-wake ifplugd ipaddr iproute iprule iptunnel

---
  meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb        |    6 +-
  meta/recipes-connectivity/iproute2/iproute2.inc    |    2 +-
  .../iproute2/iproute2_3.5.1.bb                     |    2 +-
  ...-several-applets-to-different-install-dir.patch |  174 ++++++++++++++++++++
  meta/recipes-core/busybox/busybox_1.20.2.bb        |    5 +-
  meta/recipes-core/kbd/kbd_1.15.2.bb                |    9 +-
  meta/recipes-core/tinylogin/tinylogin_1.4.bb       |   22 ++-
  meta/recipes-core/util-linux/util-linux.inc        |    5 +-
  meta/recipes-core/util-linux/util-linux_2.21.2.bb  |    2 +-
  9 files changed, 214 insertions(+), 13 deletions(-)

create mode 100644 meta/recipes-core/busybox/busybox-1.20.2/Move-several-applets-to-different-install-dir.patch

meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb +5 -1
index faa0e4e..a8f3314 100644
@@ -14,7 +14,7 @@ SRC_URI = "http://pm-utils.freedesktop.org/releases/pm-utils-${PV}.tar.gz"
  SRC_URI[md5sum] = "1742a556089c36c3a89eb1b957da5a60"
  SRC_URI[sha256sum] = "8ed899032866d88b2933a1d34cc75e8ae42dcde20e1cc21836baaae3d4370c0b"
 
-inherit pkgconfig autotools
+inherit pkgconfig autotools update-alternatives
 
  RDEPENDS_${PN} = "grep"
 
@@ -25,3 +25,7 @@ do_configure_prepend () {
  FILES_${PN} += "${libdir}/${BPN}/*"
  FILES_${PN}-dbg += "${libdir}/${BPN}/bin/.debug \
  		    ${datadir}/doc/pm-utils/README.debugging"
+
+ALTERNATIVE_${PN} = "readahead"
+ALTERNATIVE_LINK_NAME[readahead] = "${sbindir}/readahead"
+ALTERNATIVE_TARGET[readahead] = "${libdir}/${BPN}/power.d/readahead"
meta/recipes-connectivity/iproute2/iproute2.inc +1 -1
index d8b1a17..e3fc9e8 100644
@@ -31,7 +31,7 @@ FILES_${PN}-dbg += "${libdir}/tc/.debug"
 
  ALTERNATIVE_${PN} = "ip"
  ALTERNATIVE_TARGET[ip] = "${base_sbindir}/ip.${BPN}"
-ALTERNATIVE_LINK_NAME[ip] = "${base_bindir}/ip"
+ALTERNATIVE_LINK_NAME[ip] = "${base_sbindir}/ip"
  ALTERNATIVE_PRIORITY = "100"
 
  PARALLEL_MAKE = ""
meta/recipes-connectivity/iproute2/iproute2_3.5.1.bb +1 -1
index c1e9bd3..643f0e3 100644
@@ -1,6 +1,6 @@
  require iproute2.inc
 
-PR = "r1"
+PR = "r2"
 
  SRC_URI = "${KERNELORG_MIRROR}/linux/utils/net/${BPN}/${BPN}-${PV}.tar.xz \
             file://configure-cross.patch"
meta/recipes-core/busybox/busybox-1.20.2/Move-several-applets-to-different-install-dir.patch new file +174 -0
new file mode 100644
index 0000000..2ec57cd
@@ -0,0 +1,174 @@
+Move several applets to different install dir:
+
+Upstream-Status: Backport
+dac8e79a190fcfedb9c9054034a521e84c7bec72
+
+Moved to [/usr]/sbin:
+addgroup, adduser, delgroup, deluser,
+arping, chat, ether-wake, fdformat, ifplugd,
+ip, ipaddr, iplink, iproute, iprule, iptunnel,
+killall5, readahead, rtcwake, tftpd, add-shell, remove-shell, powertop.
+
+Moved to /bin for /usr/bin: kbd_mode.
+
+Signed-off-by: Denys Vlasenko <[email protected]>
+---
+ include/applets.src.h         |   40 ++++++++++++++++++++--------------------
+ loginutils/add-remove-shell.c |    4 ++--
+ procps/powertop.c             |    2 +-
+ 3 files changed, 23 insertions(+), 23 deletions(-)
+
+diff --git a/include/applets.src.h b/include/applets.src.h
+index 02b995b..867b19e 100644
+--- a/include/applets.src.h
++++ b/include/applets.src.h
+@@ -70,12 +70,12 @@ INSERT
+ IF_TEST(APPLET_NOFORK([,  test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
+ IF_TEST(APPLET_NOFORK([[, test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
+ IF_ACPID(APPLET(acpid, BB_DIR_SBIN, BB_SUID_DROP))
+-IF_ADDGROUP(APPLET(addgroup, BB_DIR_BIN, BB_SUID_DROP))
+-IF_ADDUSER(APPLET(adduser, BB_DIR_BIN, BB_SUID_DROP))
++IF_ADDGROUP(APPLET(addgroup, BB_DIR_USR_SBIN, BB_SUID_DROP))
++IF_ADDUSER(APPLET(adduser, BB_DIR_USR_SBIN, BB_SUID_DROP))
+ IF_ADJTIMEX(APPLET(adjtimex, BB_DIR_SBIN, BB_SUID_DROP))
+ IF_AR(APPLET(ar, BB_DIR_USR_BIN, BB_SUID_DROP))
+ IF_ARP(APPLET(arp, BB_DIR_SBIN, BB_SUID_DROP))
+-IF_ARPING(APPLET(arping, BB_DIR_USR_BIN, BB_SUID_DROP))
++IF_ARPING(APPLET(arping, BB_DIR_USR_SBIN, BB_SUID_DROP))
+ IF_AWK(APPLET_NOEXEC(awk, awk, BB_DIR_USR_BIN, BB_SUID_DROP, awk))
+ IF_BASENAME(APPLET_NOFORK(basename, basename, BB_DIR_USR_BIN, BB_SUID_DROP, basename))
+ IF_BBCONFIG(APPLET(bbconfig, BB_DIR_BIN, BB_SUID_DROP))
+@@ -86,7 +86,7 @@ IF_BZIP2(APPLET(bzip2, BB_DIR_USR_BIN, BB_SUID_DROP))
+ IF_CAL(APPLET(cal, BB_DIR_USR_BIN, BB_SUID_DROP))
+ IF_CAT(APPLET_NOFORK(cat, cat, BB_DIR_BIN, BB_SUID_DROP, cat))
+ IF_CATV(APPLET(catv, BB_DIR_BIN, BB_SUID_DROP))
+-IF_CHAT(APPLET(chat, BB_DIR_USR_BIN, BB_SUID_DROP))
++IF_CHAT(APPLET(chat, BB_DIR_USR_SBIN, BB_SUID_DROP))
+ IF_CHATTR(APPLET(chattr, BB_DIR_BIN, BB_SUID_DROP))
+ IF_CHCON(APPLET(chcon, BB_DIR_USR_BIN, BB_SUID_DROP))
+ IF_CHGRP(APPLET_NOEXEC(chgrp, chgrp, BB_DIR_BIN, BB_SUID_DROP, chgrp))
+@@ -111,8 +111,8 @@ IF_CUT(APPLET_NOEXEC(cut, cut, BB_DIR_USR_BIN, BB_SUID_DROP, cut))
+ IF_DC(APPLET(dc, BB_DIR_USR_BIN, BB_SUID_DROP))
+ IF_DD(APPLET_NOEXEC(dd, dd, BB_DIR_BIN, BB_SUID_DROP, dd))
+ IF_DEALLOCVT(APPLET(deallocvt, BB_DIR_USR_BIN, BB_SUID_DROP))
+-IF_DELGROUP(APPLET_ODDNAME(delgroup, deluser, BB_DIR_BIN, BB_SUID_DROP, delgroup))
+-IF_DELUSER(APPLET(deluser, BB_DIR_BIN, BB_SUID_DROP))
++IF_DELGROUP(APPLET_ODDNAME(delgroup, deluser, BB_DIR_USR_SBIN, BB_SUID_DROP, delgroup))
++IF_DELUSER(APPLET(deluser, BB_DIR_USR_SBIN, BB_SUID_DROP))
+ IF_DEVFSD(APPLET(devfsd, BB_DIR_SBIN, BB_SUID_DROP))
+ IF_DEVMEM(APPLET(devmem, BB_DIR_SBIN, BB_SUID_DROP))
+ IF_DF(APPLET(df, BB_DIR_BIN, BB_SUID_DROP))
+@@ -136,7 +136,7 @@ IF_EJECT(APPLET(eject, BB_DIR_USR_BIN, BB_SUID_DROP))
+ IF_ENV(APPLET_NOEXEC(env, env, BB_DIR_USR_BIN, BB_SUID_DROP, env))
+ IF_ENVDIR(APPLET_ODDNAME(envdir, chpst, BB_DIR_USR_BIN, BB_SUID_DROP, envdir))
+ IF_ENVUIDGID(APPLET_ODDNAME(envuidgid, chpst, BB_DIR_USR_BIN, BB_SUID_DROP, envuidgid))
+-IF_ETHER_WAKE(APPLET_ODDNAME(ether-wake, ether_wake, BB_DIR_USR_BIN, BB_SUID_DROP, ether_wake))
++IF_ETHER_WAKE(APPLET_ODDNAME(ether-wake, ether_wake, BB_DIR_USR_SBIN, BB_SUID_DROP, ether_wake))
+ IF_EXPAND(APPLET(expand, BB_DIR_USR_BIN, BB_SUID_DROP))
+ IF_EXPR(APPLET(expr, BB_DIR_USR_BIN, BB_SUID_DROP))
+ IF_FAKEIDENTD(APPLET(fakeidentd, BB_DIR_USR_SBIN, BB_SUID_DROP))
+@@ -144,7 +144,7 @@ IF_FALSE(APPLET_NOFORK(false, false, BB_DIR_BIN, BB_SUID_DROP, false))
+ IF_FBSET(APPLET(fbset, BB_DIR_USR_SBIN, BB_SUID_DROP))
+ IF_FBSPLASH(APPLET(fbsplash, BB_DIR_SBIN, BB_SUID_DROP))
+ IF_FDFLUSH(APPLET_ODDNAME(fdflush, freeramdisk, BB_DIR_BIN, BB_SUID_DROP, fdflush))
+-IF_FDFORMAT(APPLET(fdformat, BB_DIR_USR_BIN, BB_SUID_DROP))
++IF_FDFORMAT(APPLET(fdformat, BB_DIR_USR_SBIN, BB_SUID_DROP))
+ IF_FDISK(APPLET(fdisk, BB_DIR_SBIN, BB_SUID_DROP))
+ IF_FGCONSOLE(APPLET(fgconsole, BB_DIR_USR_BIN, BB_SUID_DROP))
+ /* Benefits from suid root: better access to /dev/BLOCKDEVs: */
+@@ -182,7 +182,7 @@ IF_HWCLOCK(APPLET(hwclock, BB_DIR_SBIN, BB_SUID_DROP))
+ IF_IFCONFIG(APPLET(ifconfig, BB_DIR_SBIN, BB_SUID_DROP))
+ IF_IFUPDOWN(APPLET_ODDNAME(ifdown, ifupdown, BB_DIR_SBIN, BB_SUID_DROP, ifdown))
+ IF_IFENSLAVE(APPLET(ifenslave, BB_DIR_SBIN, BB_SUID_DROP))
+-IF_IFPLUGD(APPLET(ifplugd, BB_DIR_USR_BIN, BB_SUID_DROP))
++IF_IFPLUGD(APPLET(ifplugd, BB_DIR_USR_SBIN, BB_SUID_DROP))
+ IF_IFUPDOWN(APPLET_ODDNAME(ifup, ifupdown, BB_DIR_SBIN, BB_SUID_DROP, ifup))
+ IF_INETD(APPLET(inetd, BB_DIR_USR_SBIN, BB_SUID_DROP))
+ IF_INOTIFYD(APPLET(inotifyd, BB_DIR_SBIN, BB_SUID_DROP))
+@@ -193,20 +193,20 @@ IF_IONICE(APPLET(ionice, BB_DIR_BIN, BB_SUID_DROP))
+  || ENABLE_FEATURE_IP_LINK \
+  || ENABLE_FEATURE_IP_TUNNEL \
+  || ENABLE_FEATURE_IP_RULE
+-IF_IP(APPLET(ip, BB_DIR_BIN, BB_SUID_DROP))
++IF_IP(APPLET(ip, BB_DIR_SBIN, BB_SUID_DROP))
+ #endif
+-IF_IPADDR(APPLET(ipaddr, BB_DIR_BIN, BB_SUID_DROP))
++IF_IPADDR(APPLET(ipaddr, BB_DIR_SBIN, BB_SUID_DROP))
+ IF_IPCALC(APPLET(ipcalc, BB_DIR_BIN, BB_SUID_DROP))
+ IF_IPCRM(APPLET(ipcrm, BB_DIR_USR_BIN, BB_SUID_DROP))
+ IF_IPCS(APPLET(ipcs, BB_DIR_USR_BIN, BB_SUID_DROP))
+-IF_IPLINK(APPLET(iplink, BB_DIR_BIN, BB_SUID_DROP))
+-IF_IPROUTE(APPLET(iproute, BB_DIR_BIN, BB_SUID_DROP))
+-IF_IPRULE(APPLET(iprule, BB_DIR_BIN, BB_SUID_DROP))
+-IF_IPTUNNEL(APPLET(iptunnel, BB_DIR_BIN, BB_SUID_DROP))
+-IF_KBD_MODE(APPLET(kbd_mode, BB_DIR_USR_BIN, BB_SUID_DROP))
++IF_IPLINK(APPLET(iplink, BB_DIR_SBIN, BB_SUID_DROP))
++IF_IPROUTE(APPLET(iproute, BB_DIR_SBIN, BB_SUID_DROP))
++IF_IPRULE(APPLET(iprule, BB_DIR_SBIN, BB_SUID_DROP))
++IF_IPTUNNEL(APPLET(iptunnel, BB_DIR_SBIN, BB_SUID_DROP))
++IF_KBD_MODE(APPLET(kbd_mode, BB_DIR_BIN, BB_SUID_DROP))
+ IF_KILL(APPLET(kill, BB_DIR_BIN, BB_SUID_DROP))
+ IF_KILLALL(APPLET_ODDNAME(killall, kill, BB_DIR_USR_BIN, BB_SUID_DROP, killall))
+-IF_KILLALL5(APPLET_ODDNAME(killall5, kill, BB_DIR_USR_BIN, BB_SUID_DROP, killall5))
++IF_KILLALL5(APPLET_ODDNAME(killall5, kill, BB_DIR_USR_SBIN, BB_SUID_DROP, killall5))
+ IF_KLOGD(APPLET(klogd, BB_DIR_SBIN, BB_SUID_DROP))
+ IF_LAST(APPLET(last, BB_DIR_USR_BIN, BB_SUID_DROP))
+ //IF_LENGTH(APPLET_NOFORK(length, length, BB_DIR_USR_BIN, BB_SUID_DROP, length))
+@@ -288,7 +288,7 @@ IF_PWD(APPLET_NOFORK(pwd, pwd, BB_DIR_BIN, BB_SUID_DROP, pwd))
+ IF_RAIDAUTORUN(APPLET(raidautorun, BB_DIR_SBIN, BB_SUID_DROP))
+ IF_RDATE(APPLET(rdate, BB_DIR_USR_SBIN, BB_SUID_DROP))
+ IF_RDEV(APPLET(rdev, BB_DIR_USR_SBIN, BB_SUID_DROP))
+-IF_READAHEAD(APPLET(readahead, BB_DIR_USR_BIN, BB_SUID_DROP))
++IF_READAHEAD(APPLET(readahead, BB_DIR_USR_SBIN, BB_SUID_DROP))
+ IF_READLINK(APPLET(readlink, BB_DIR_USR_BIN, BB_SUID_DROP))
+ IF_READPROFILE(APPLET(readprofile, BB_DIR_USR_SBIN, BB_SUID_DROP))
+ IF_REALPATH(APPLET(realpath, BB_DIR_USR_BIN, BB_SUID_DROP))
+@@ -303,7 +303,7 @@ IF_RMDIR(APPLET_NOFORK(rmdir, rmdir, BB_DIR_BIN, BB_SUID_DROP, rmdir))
+ IF_ROUTE(APPLET(route, BB_DIR_SBIN, BB_SUID_DROP))
+ IF_RPM(APPLET(rpm, BB_DIR_BIN, BB_SUID_DROP))
+ IF_RPM2CPIO(APPLET(rpm2cpio, BB_DIR_USR_BIN, BB_SUID_DROP))
+-IF_RTCWAKE(APPLET(rtcwake, BB_DIR_USR_BIN, BB_SUID_DROP))
++IF_RTCWAKE(APPLET(rtcwake, BB_DIR_USR_SBIN, BB_SUID_DROP))
+ IF_RUN_PARTS(APPLET_ODDNAME(run-parts, run_parts, BB_DIR_USR_BIN, BB_SUID_DROP, run_parts))
+ IF_RUNCON(APPLET(runcon, BB_DIR_USR_BIN, BB_SUID_DROP))
+ IF_RUNLEVEL(APPLET(runlevel, BB_DIR_SBIN, BB_SUID_DROP))
+@@ -365,7 +365,7 @@ IF_TELNETD(APPLET(telnetd, BB_DIR_USR_SBIN, BB_SUID_DROP))
+ IF_TEST(APPLET_NOFORK(test, test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
+ #if ENABLE_FEATURE_TFTP_GET || ENABLE_FEATURE_TFTP_PUT
+ IF_TFTP(APPLET(tftp, BB_DIR_USR_BIN, BB_SUID_DROP))
+-IF_TFTPD(APPLET(tftpd, BB_DIR_USR_BIN, BB_SUID_DROP))
++IF_TFTPD(APPLET(tftpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
+ #endif
+ IF_TIME(APPLET(time, BB_DIR_USR_BIN, BB_SUID_DROP))
+ IF_TIMEOUT(APPLET(timeout, BB_DIR_USR_BIN, BB_SUID_DROP))
+diff --git a/loginutils/add-remove-shell.c b/loginutils/add-remove-shell.c
+index 9a14544..e492b6e 100644
+--- a/loginutils/add-remove-shell.c
++++ b/loginutils/add-remove-shell.c
+@@ -8,8 +8,8 @@
+  * for details.
+  */
+
+-//applet:IF_ADD_SHELL(   APPLET_ODDNAME(add-shell   , add_remove_shell, BB_DIR_USR_BIN, BB_SUID_DROP, add_shell   ))
+-//applet:IF_REMOVE_SHELL(APPLET_ODDNAME(remove-shell, add_remove_shell, BB_DIR_USR_BIN, BB_SUID_DROP, remove_shell))
++//applet:IF_ADD_SHELL(   APPLET_ODDNAME(add-shell   , add_remove_shell, BB_DIR_USR_SBIN, BB_SUID_DROP, add_shell   ))
++//applet:IF_REMOVE_SHELL(APPLET_ODDNAME(remove-shell, add_remove_shell, BB_DIR_USR_SBIN, BB_SUID_DROP, remove_shell))
+
+ //kbuild:lib-$(CONFIG_ADD_SHELL)    += add-remove-shell.o
+ //kbuild:lib-$(CONFIG_REMOVE_SHELL) += add-remove-shell.o
+diff --git a/procps/powertop.c b/procps/powertop.c
+index 008cdfc..b4c45ed 100644
+--- a/procps/powertop.c
++++ b/procps/powertop.c
+@@ -9,7 +9,7 @@
+  * Licensed under GPLv2, see file LICENSE in this source tree.
+  */
+
+-//applet:IF_POWERTOP(APPLET(powertop, BB_DIR_BIN, BB_SUID_DROP))
++//applet:IF_POWERTOP(APPLET(powertop, BB_DIR_USR_SBIN, BB_SUID_DROP))
+
+ //kbuild:lib-$(CONFIG_POWERTOP) += powertop.o
+
+--
+1.7.5.4
+
meta/recipes-core/busybox/busybox_1.20.2.bb +3 -2
index 3e628d2..69c3dc8 100644
@@ -1,5 +1,5 @@
  require busybox.inc
-PR = "r4"
+PR = "r5"
 
  SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
             file://B921600.patch \
@@ -27,7 +27,8 @@ SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
             file://busybox-mkfs-minix-tests_bigendian.patch \
             file://fix-for-spurious-testsuite-failure.patch \
             file://busybox-1.20.2-kernel_ver.patch \
-           file://stat-usr-bin.patch"
+           file://stat-usr-bin.patch \
+           file://Move-several-applets-to-different-install-dir.patch"
 
  SRC_URI[tarball.md5sum] = "e025414bc6cd79579cc7a32a45d3ae1c"
  SRC_URI[tarball.sha256sum] = "eb13ff01dae5618ead2ef6f92ba879e9e0390f9583bd545d8789d27cf39b6882"
meta/recipes-core/kbd/kbd_1.15.2.bb +7 -2
index 79ea468..c1d89af 100644
@@ -10,7 +10,7 @@ RREPLACES_${PN} = "console-tools"
  RPROVIDES_${PN} = "console-tools"
  RCONFLICTS_${PN} = "console-tools"
 
-PR = "r4"
+PR = "r5"
 
  SRC_URI="${KERNELORG_MIRROR}/linux/utils/kbd/kbd-1.15.2.tar.bz2"
  SRC_URI[md5sum] = "e850eb91e4d3b94b194efe8e953204c5"
@@ -25,6 +25,11 @@ FILES_${PN}-unimaps = "${datadir}/unimaps"
 
  inherit update-alternatives
 
+do_install_append() {
+    install -d ${D}${base_bindir}/
+    mv ${D}/${bindir}/kbd_mode ${D}/${base_bindir}/
+}
 
-ALTERNATIVE_${PN} = "chvt deallocvt fgconsole openvt"
+ALTERNATIVE_${PN} = "chvt deallocvt fgconsole openvt kbd_mode"
  ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE_LINK_NAME[kbd_mode] = "${base_bindir}/kbd_mode"
meta/recipes-core/tinylogin/tinylogin_1.4.bb +18 -4
index aaed92a..b270f31 100644
@@ -7,7 +7,7 @@ and groups on an embedded system."
  HOMEPAGE = "http://tinylogin.busybox.net/"
  LICENSE = "GPLv2"
  LIC_FILES_CHKSUM="file://LICENSE;md5=f1060fa3a366f098b5b1d8c2077ba269"
-PR = "r9"
+PR = "r10"
 
  inherit update-alternatives
 
@@ -33,11 +33,25 @@ do_install () {
  	install -d ${D}${base_bindir}
  	install -m 4755 tinylogin ${D}${base_bindir}/tinylogin
  	for i in `cat tinylogin.links`; do
-		mkdir -p ${D}/`dirname $i`
-		ln -sf /bin/tinylogin ${D}$i
+		case `basename $i` in
+			adduser|addgroup|deluser|delgroup)
+				;;
+			*)
+				mkdir -p ${D}/`dirname $i`
+				ln -sf /bin/tinylogin ${D}$i
+				;;
+		esac
  	done
  }
 
-ALTERNATIVE_${PN} = "getty"
+ALTERNATIVE_${PN} = "getty adduser addgroup deluser delgroup"
+
  ALTERNATIVE_LINK_NAME[getty] = "${base_sbindir}/getty"
  ALTERNATIVE_PRIORITY = "80"
+
+ALTERNATIVE_TARGET = "${base_bindir}/tinylogin"
+
+ALTERNATIVE_LINK_NAME[adduser] = "${sbindir}/adduser"
+ALTERNATIVE_LINK_NAME[addgroup] = "${sbindir}/addgroup"
+ALTERNATIVE_LINK_NAME[deluser] = "${sbindir}/deluser"
+ALTERNATIVE_LINK_NAME[delgroup] = "${sbindir}/delgroup"
meta/recipes-core/util-linux/util-linux.inc +4 -1
index f2f9a04..147c65f 100644
@@ -133,7 +133,7 @@ ALTERNATIVE_PRIORITY = "100"
 
  ALTERNATIVE_${PN}  = "dmesg kill more reset mkswap blockdev pivot_root"
  ALTERNATIVE_${PN} += "mkfs.minix hexdump last logger mesg renice wall"
-ALTERNATIVE_${PN} += "setsid chrt flock hwclock"
+ALTERNATIVE_${PN} += "setsid chrt flock hwclock rtcwake fdformat"
 
  ALTERNATIVE_LINK_NAME[dmesg] = "${base_bindir}/dmesg"
  ALTERNATIVE_LINK_NAME[kill] = "${base_bindir}/kill"
@@ -145,6 +145,9 @@ ALTERNATIVE_LINK_NAME[blockdev] = "${base_sbindir}/blockdev"
  ALTERNATIVE_LINK_NAME[pivot_root] = "${base_sbindir}/pivot_root"
  ALTERNATIVE_LINK_NAME[mkfs.minix] = "${base_sbindir}/mkfs.minix"
 
+ALTERNATIVE_LINK_NAME[fdformat] = "${sbindir}/fdformat"
+ALTERNATIVE_LINK_NAME[rtcwake] = "${sbindir}/rtcwake"
+
  # There seems to be problem, atleast on nslu2, with these, untill they are
  # fixed the busybox ones have higher priority
  ALTERNATIVE_PRIORITY[hwclock] = "10"
meta/recipes-core/util-linux/util-linux_2.21.2.bb +1 -1
index 24bed27..ebf1bd2 100644
@@ -1,5 +1,5 @@
  MAJOR_VERSION = "2.21"
-PR = "r6"
+PR = "r7"
  require util-linux.inc
 
  # note that `lscpu' is under GPLv3+
Signature · 2 lines
Best Reagrds,
Roy | RongQing Li