opkg: avoid running postinst scripts twice when using systemd

OpenEmbedded has a built-in mechanism to run postinst scripts offline
at build time or, if necessary, on first boot (delayed execution). If
the latter is the case and systemd is in use, two services end up
doing the same thing:
- opkg-configure.service starts "opkg configure" directly.
- run-postinsts.service starts "/usr/sbin/run-postinsts" which runs
  postinst scripts stored in /etc/ipk-postinsts/ or "opkg configure"
  if package management is installed.

Since the run-postinsts.service is also used in cases where no
package management is in use, it is the primary means of handling
postinsts.

Get rid of the opkg-configure.service to avoid duplicate opkg
configure execution.

(From OE-Core rev: 23dcf7ea3af84721fac126a2b2f0f100f7266368)

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Stefan Agner
2018-05-16 11:13:50 +02:00
committed by Richard Purdie
parent 917282c41b
commit dcef944e33
2 changed files with 0 additions and 31 deletions

View File

@@ -1,17 +0,0 @@
[Unit]
Description=Opkg 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@/opkg configure > $LOGFILE 2>&1; else @BINDIR@/opkg configure; fi"
ExecStartPost=@BASE_BINDIR@/systemctl --no-reload disable opkg-configure.service
StandardOutput=syslog
RemainAfterExit=No
[Install]
WantedBy=basic.target
WantedBy=sysinit.target

View File

@@ -12,7 +12,6 @@ DEPENDS = "libarchive"
PE = "1"
SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz \
file://opkg-configure.service \
file://opkg.conf \
file://0001-opkg_conf-create-opkg.lock-in-run-instead-of-var-run.patch \
"
@@ -22,8 +21,6 @@ SRC_URI[sha256sum] = "f607f0e61be8cf8a3bbd0d2dccd9ec9e9b6c21dd4307b671c600d6eeaf
inherit autotools pkgconfig systemd
SYSTEMD_SERVICE_${PN} = "opkg-configure.service"
target_localstatedir := "${localstatedir}"
OPKGLIBDIR = "${target_localstatedir}/lib"
@@ -46,16 +43,6 @@ do_install_append () {
# We need to create the lock directory
install -d ${D}${OPKGLIBDIR}/opkg
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)};then
install -d ${D}${systemd_unitdir}/system
install -m 0644 ${WORKDIR}/opkg-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/opkg-configure.service
fi
}
RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} opkg-arch-config libarchive"
@@ -68,7 +55,6 @@ RPROVIDES_${PN} = "opkg-collateral"
PACKAGES =+ "libopkg"
FILES_libopkg = "${libdir}/*.so.* ${OPKGLIBDIR}/opkg/"
FILES_${PN} += "${systemd_unitdir}/system/"
BBCLASSEXTEND = "native nativesdk"