shadow-sysroot: Simplfy login.defs installation

Currently if shadow-sysroot is installed from a sstate package,
shadow_sysroot_sstate_postinst is looking in ${D} for login.defs which
isn't a valid for an install from sstate.

The easiest and most correct way to fix this is to override the standard
sysroot_stage_all function to install the files correctly and then
sstate installs work as expected. This simplifies the code as an added
bonus.

(From OE-Core rev: 6437e7315a0f2e077f9d69e4b65b48280ea8edbc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2012-01-26 12:42:58 +00:00
parent f54a443aa7
commit 238a47d800
1 changed files with 3 additions and 13 deletions

View File

@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://login.defs_shadow-sysroot;md5=25e2f2de4dfc8f966ac5cdf
DEPENDS = "base-passwd"
PR = "r0"
PR = "r1"
# The sole purpose of this recipe is to provide the /etc/login.defs
# file for the target sysroot - needed so the shadow-native utilities
@ -19,22 +19,12 @@ SRC_URI[md5sum] = "b8608d8294ac88974f27b20f991c0e79"
SRC_URI[sha256sum] = "633f5bb4ea0c88c55f3642c97f9d25cbef74f82e0b4cf8d54e7ad6f9f9caa778"
S = "${WORKDIR}"
SSTATEPOSTINSTFUNCS += "shadow_sysroot_sstate_postinst"
do_install() {
install -d ${D}${sysconfdir}
install -p -m 755 ${S}/login.defs_shadow-sysroot ${D}${sysconfdir}/login.defs
}
shadow_sysroot_sstate_postinst() {
if [ "${BB_CURRENTTASK}" = "populate_sysroot" -o "${BB_CURRENTTASK}" = "populate_sysroot_setscene" ]
then
# Staging does not copy ${sysconfdir} files into the
# target sysroot, so we need to do so manually. We
# put this file in the target sysroot so it can be
# used by recipes which use custom user/group
# permissions.
install -d -m 755 ${STAGING_DIR_TARGET}${sysconfdir}
install -p -m 644 ${D}${sysconfdir}/login.defs ${STAGING_DIR_TARGET}/${sysconfdir}/login.defs
fi
sysroot_stage_all() {
sysroot_stage_dir ${D} ${SYSROOT_DESTDIR}
}