useradd.bbclass: avoid do_rootfs error for debian package backend
If /etc/login.defs is treated as a configuration file, then we would meet errors at do_rootfs time telling us that useradd/groupadd cannot execute correctly. This is because the dpkg handles config file specially, the login.defs is temporarily renamed as login.defs.dpkg-new. How ubuntu deals the user/group adding problem? They do it at postinst of the package. And, the postinst script of a package would possibly do `chown' of its files or directories. The above strategy is not suitable for OE. Because we do chown in do_install and add user/group in preinst scripts of the packages. That's why we need this patch so that do_rootfs don't fail. (From OE-Core rev: d98e5ec575f542b3afaabd96b07ae9a21e1c22f4) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
3d7c798dff
commit
9973ce1703
|
@ -24,6 +24,16 @@ if test "x$D" != "x"; then
|
|||
# Installing into a sysroot
|
||||
SYSROOT="$D"
|
||||
OPT="--root $D"
|
||||
|
||||
# Make sure login.defs is there, this is to make debian package backend work
|
||||
# correctly while doing rootfs.
|
||||
# The problem here is that if /etc/login.defs is treated as a config file for
|
||||
# shadow package, then while performing preinsts for packages that depend on
|
||||
# shadow, there might only be /etc/login.def.dpkg-new there in root filesystem.
|
||||
if [ ! -e $D${sysconfdir}/login.defs -a -e $D${sysconfdir}/login.defs.dpkg-new ]; then
|
||||
cp $D${sysconfdir}/login.defs.dpkg-new $D${sysconfdir}/login.defs
|
||||
fi
|
||||
|
||||
# user/group lookups should match useradd/groupadd --root
|
||||
export PSEUDO_PASSWD="$SYSROOT:${STAGING_DIR_NATIVE}"
|
||||
fi
|
||||
|
|
Loading…
Reference in New Issue