aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/busybox/busybox.inc
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/busybox/busybox.inc')
-rw-r--r--recipes/busybox/busybox.inc28
1 files changed, 28 insertions, 0 deletions
diff --git a/recipes/busybox/busybox.inc b/recipes/busybox/busybox.inc
index 29893dabb8..59653e011d 100644
--- a/recipes/busybox/busybox.inc
+++ b/recipes/busybox/busybox.inc
@@ -23,6 +23,8 @@ SRC_URI = "\
file://hwclock-default \
file://ifupdown-spurious-environ.patch \
file://mount.busybox \
+ file://passwd \
+ file://shadow \
file://syslog \
file://syslog.conf \
file://udhcpscript.patch \
@@ -34,6 +36,7 @@ SRC_URI_append_nylon = " file://xargs-double-size.patch"
export EXTRA_CFLAGS = "${CFLAGS}"
EXTRA_OEMAKE_append = " CROSS=${HOST_PREFIX}"
PACKAGES =+ "${PN}-mountall ${PN}-httpd ${PN}-syslog ${PN}-udhcpd"
+PACKAGES =+ "${PN}-passwd ${PN}-shadow"
# We need this RRECOMMENDS_${PN} because libc dlopens libgcc
# and shlib mechanism can not detect it because its not
@@ -47,6 +50,8 @@ RDEPENDS_${PN} += "${PN}-mountall"
RRECOMMENDS_${PN} += "libgcc ${PN}-syslog"
FILES_${PN}-httpd = "${sysconfdir}/init.d/busybox-httpd /srv/www"
+FILES_${PN}-passwd = "${sysconfdir}/passwd.${PN}"
+FILES_${PN}-shadow = "${sysconfdir}/shadow.${PN}"
FILES_${PN}-syslog = "${sysconfdir}/init.d/syslog.${PN} ${sysconfdir}/syslog.conf"
FILES_${PN}-udhcpd = "${sysconfdir}/init.d/busybox-udhcpd"
@@ -64,6 +69,8 @@ CONFFILES_${PN}-syslog = "${sysconfdir}/syslog.conf"
INITSCRIPT_PARAMS_${PN}-syslog_slugos = "start 20 ."
RDEPENDS_${PN}-httpd += "${PN}"
+RDEPENDS_${PN}-passwd += "${PN}"
+RDEPENDS_${PN}-shadow += "${PN}-passwd"
RDEPENDS_${PN}-syslog += "${PN}"
RDEPENDS_${PN}-udhcpd += "${PN}"
@@ -177,6 +184,12 @@ do_install () {
fi
fi
+ if grep -q "CONFIG_PASSWD=y" ${WORKDIR}/defconfig; then
+ install -m 0644 ${WORKDIR}/passwd ${D}${sysconfdir}/passwd.${PN}
+ if grep -q "CONFIG_FEATURE_SHADOWPASSWDS=y" ${WORKDIR}/defconfig; then
+ install -m 0640 ${WORKDIR}/shadow ${D}${sysconfdir}/shadow.${PN}
+ fi
+ fi
if grep -q "CONFIG_SYSLOGD=y" ${WORKDIR}/defconfig; then
install -m 0755 ${WORKDIR}/syslog ${D}${sysconfdir}/init.d/syslog.${PN}
install -m 644 ${WORKDIR}/syslog.conf ${D}${sysconfdir}/
@@ -260,6 +273,21 @@ pkg_prerm_${PN}-mountall () {
update-alternatives --remove default_mountall mountall.${PN}
}
+pkg_postinst_${PN}-passwd () {
+ update-alternatives --install ${sysconfdir}/passwd default_passwd passwd.${PN} 50
+}
+pkg_prerm_${PN}-passwd () {
+ update-alternatives --remove default_passwd passwd.${PN}
+}
+
+pkg_postinst_${PN}-shadow () {
+ update-alternatives --install ${sysconfdir}/shadow default_shadow shadow.${PN} 50
+}
+pkg_prerm_${PN}-shadow () {
+ update-alternatives --remove default_shadow shadow.${PN}
+}
+
+
pkg_postinst_${PN}-syslog () {
update-alternatives --install ${sysconfdir}/init.d/syslog syslog-init syslog.${PN} 50