[OE-core] [PATCH 1/3] opkg: avoid running postinst scripts twice when using systemd

Christopher Larson kergoth at gmail.com
Tue Jun 5 22:17:28 UTC 2018


Would love to see this merged, this is a long-standing issue.

On Tue, May 15, 2018 at 7:05 AM Stefan Agner <stefan at agner.ch> wrote:

> From: Stefan Agner <stefan.agner at toradex.com>
>
> 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.
>
> Signed-off-by: Stefan Agner <stefan.agner at toradex.com>
> ---
>  meta/recipes-devtools/opkg/opkg/opkg-configure.service | 17
> -----------------
>  meta/recipes-devtools/opkg/opkg_0.3.6.bb               | 14
> --------------
>  2 files changed, 31 deletions(-)
>  delete mode 100644 meta/recipes-devtools/opkg/opkg/opkg-configure.service
>
> diff --git a/meta/recipes-devtools/opkg/opkg/opkg-configure.service
> b/meta/recipes-devtools/opkg/opkg/opkg-configure.service
> deleted file mode 100644
> index 432c3ddc28..0000000000
> --- a/meta/recipes-devtools/opkg/opkg/opkg-configure.service
> +++ /dev/null
> @@ -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=- at SYSCONFDIR@/default/postinst
> -ExecStart=- at 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
> diff --git a/meta/recipes-devtools/opkg/opkg_0.3.6.bb
> b/meta/recipes-devtools/opkg/opkg_0.3.6.bb
> index 70f20af739..579b51166c 100644
> --- a/meta/recipes-devtools/opkg/opkg_0.3.6.bb
> +++ b/meta/recipes-devtools/opkg/opkg_0.3.6.bb
> @@ -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, at BASE_BINDIR@,${base_bindir},g' \
> -                       -e 's, at SYSCONFDIR@,${sysconfdir},g' \
> -                       -e 's, at BINDIR@,${bindir},g' \
> -                       -e 's, at 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"
>
> --
> 2.13.6
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>


-- 
Christopher Larson
kergoth at gmail dot com
Founder - BitBake, OpenEmbedded, OpenZaurus
Senior Software Engineer, Mentor Graphics
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20180605/6c4a30f6/attachment-0002.html>


More information about the Openembedded-core mailing list