mirror of
https://git.yoctoproject.org/poky
synced 2026-06-01 00:59:48 +00:00
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:
@@ -14,7 +14,13 @@ S = "${WORKDIR}/${BPN}-${PV}"
|
|||||||
|
|
||||||
PARALLEL_MAKE = ""
|
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"
|
export PERL = "${bindir}/perl"
|
||||||
PERL_class-native = "${STAGING_BINDIR_NATIVE}/perl-native/perl"
|
PERL_class-native = "${STAGING_BINDIR_NATIVE}/perl-native/perl"
|
||||||
@@ -48,11 +54,22 @@ do_install_append () {
|
|||||||
mv ${D}${bindir}/update-alternatives ${D}${sbindir}
|
mv ${D}${bindir}/update-alternatives ${D}${sbindir}
|
||||||
sed -i -e 's|^#!.*${bindir}/perl-native.*/perl|#!/usr/bin/env perl|' ${D}${bindir}/dpkg-*
|
sed -i -e 's|^#!.*${bindir}/perl-native.*/perl|#!/usr/bin/env perl|' ${D}${bindir}/dpkg-*
|
||||||
fi
|
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} () {
|
pkg_postinst_${PN} () {
|
||||||
#!/bin/sh
|
#!/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
|
install -d $D${sysconfdir}/rcS.d
|
||||||
|
|
||||||
# this happens at S98 where our good 'ole packages script used to run
|
# this happens at S98 where our good 'ole packages script used to run
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=dpkg first boot configure
|
||||||
|
DefaultDependencies=no
|
||||||
|
After=systemd-remount-fs.service systemd-tmpfiles-setup.service tmp.mount
|
||||||
|
Before=sysinit.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
EnvironmentFile=-@SYSCONFDIR@/default/postinst
|
||||||
|
ExecStart=-@BASE_BINDIR@/sh -c " if [ $POSTINST_LOGGING = '1' ]; then @BINDIR@/dpkg --configure -a > $LOGFILE 2>&1; else @BINDIR@/dpkg --configure -a; fi"
|
||||||
|
ExecStartPost=@BASE_BINDIR@/systemctl disable dpkg-configure.service
|
||||||
|
StandardOutput=syslog
|
||||||
|
RemainAfterExit=No
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=basic.target
|
||||||
|
WantedBy=sysinit.target
|
||||||
@@ -9,6 +9,7 @@ SRC_URI += "file://noman.patch \
|
|||||||
file://remove-tar-no-timestamp.patch \
|
file://remove-tar-no-timestamp.patch \
|
||||||
file://fix-abs-redefine.patch \
|
file://fix-abs-redefine.patch \
|
||||||
file://arch_pm.patch \
|
file://arch_pm.patch \
|
||||||
|
file://dpkg-configure.service \
|
||||||
"
|
"
|
||||||
|
|
||||||
SRC_URI[md5sum] = "cc25086e1e3bd9512a95f14cfe9002e1"
|
SRC_URI[md5sum] = "cc25086e1e3bd9512a95f14cfe9002e1"
|
||||||
|
|||||||
Reference in New Issue
Block a user