dpkg: use systemd service for first boot configuration

Use a systemd service file for first boot configuration for dpkg
based images which has 'package-management' in its IMAGE_FEATURES.

[YOCTO #5719]

(From OE-Core rev: 56490921d267b784118df43cbd107925c8b94200)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Chen Qi
2014-01-24 04:47:37 -05:00
committed by Richard Purdie
parent 1ec04bb215
commit b3bb9c770b
3 changed files with 37 additions and 2 deletions

View File

@@ -14,7 +14,13 @@ S = "${WORKDIR}/${BPN}-${PV}"
PARALLEL_MAKE = ""
inherit autotools gettext perlnative pkgconfig
inherit autotools gettext perlnative pkgconfig systemd
python () {
if not oe.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d):
pn = d.getVar('PN', True)
d.setVar('SYSTEMD_SERVICE_%s' % (pn), 'dpkg-configure.service')
}
export PERL = "${bindir}/perl"
PERL_class-native = "${STAGING_BINDIR_NATIVE}/perl-native/perl"
@@ -48,11 +54,22 @@ do_install_append () {
mv ${D}${bindir}/update-alternatives ${D}${sbindir}
sed -i -e 's|^#!.*${bindir}/perl-native.*/perl|#!/usr/bin/env perl|' ${D}${bindir}/dpkg-*
fi
if ${@base_contains('DISTRO_FEATURES','sysvinit','false','true',d)};then
install -d ${D}${systemd_unitdir}/system
install -m 0644 ${WORKDIR}/dpkg-configure.service ${D}${systemd_unitdir}/system/
sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
-e 's,@SYSCONFDIR@,${sysconfdir},g' \
-e 's,@BINDIR@,${bindir},g' \
-e 's,@SYSTEMD_UNITDIR@,${systemd_unitdir},g' \
${D}${systemd_unitdir}/system/dpkg-configure.service
fi
}
pkg_postinst_${PN} () {
#!/bin/sh
if [ "x$D" != "x" ] && [ -f $D/var/lib/dpkg/status ]; then
if ${@base_contains('DISTRO_FEATURES','sysvinit','true','false',d)} && \
[ "x$D" != "x" ] && [ -f $D/var/lib/dpkg/status ]; then
install -d $D${sysconfdir}/rcS.d
# this happens at S98 where our good 'ole packages script used to run