diff options
Diffstat (limited to 'meta/recipes-devtools/run-postinsts')
3 files changed, 23 insertions, 16 deletions
diff --git a/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts b/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts index f84a7e18c8..1f3e692029 100755 --- a/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts +++ b/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts @@ -72,29 +72,34 @@ exec_postinst_scriptlets() { else echo "ERROR: postinst $i failed." [ "$POSTINST_LOGGING" = "1" ] && eval echo "ERROR: postinst $i failed." $append_log - remove_pi_dir=0 + remove_rcsd_link=0 fi done } -remove_pi_dir=1 +remove_rcsd_link=1 if $pm_installed; then case $pm in "ipk") - eval opkg configure $append_log + if ! `fcntl-lock --wait 30 /run/opkg.lock true`; then + eval echo "Unable to obtain the opkg lock, deadlock?" $append_log + fi + if ! eval "opkg configure $append_log"; then + exit 1 + fi ;; "deb") - eval dpkg --configure -a $append_log + if ! eval "eval dpkg --configure -a $append_log"; then + exit 1 + fi ;; esac else exec_postinst_scriptlets fi -# since all postinstalls executed successfully, remove the postinstalls directory -# and the rcS.d link -if [ $remove_pi_dir = 1 ]; then - rm -rf $pi_dir +# since all postinstalls executed successfully, remove the rcS.d link +if [ $remove_rcsd_link = 1 ]; then remove_rcsd_link fi diff --git a/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts.service b/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts.service index 7f72f3388a..b6b81d5c1a 100644 --- a/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts.service +++ b/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts.service @@ -1,7 +1,7 @@ [Unit] Description=Run pending postinsts DefaultDependencies=no -After=systemd-remount-fs.service systemd-tmpfiles-setup.service tmp.mount +After=systemd-remount-fs.service systemd-tmpfiles-setup.service tmp.mount ldconfig.service Before=sysinit.target [Service] diff --git a/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb b/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb index 85b3fc867e..e3d63df852 100644 --- a/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb +++ b/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb @@ -1,6 +1,6 @@ SUMMARY = "Runs postinstall scripts on first boot of the target device" +DESCRIPTION = "${SUMMARY}" SECTION = "devel" -PR = "r10" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" @@ -12,10 +12,12 @@ S = "${WORKDIR}" inherit allarch systemd update-rc.d +RDEPENDS:${PN} = "util-linux-fcntl-lock" + INITSCRIPT_NAME = "run-postinsts" INITSCRIPT_PARAMS = "start 99 S ." -SYSTEMD_SERVICE_${PN} = "run-postinsts.service" +SYSTEMD_SERVICE:${PN} = "run-postinsts.service" do_configure() { : @@ -27,18 +29,18 @@ do_compile () { do_install() { install -d ${D}${sbindir} - install -m 0755 ${WORKDIR}/run-postinsts ${D}${sbindir}/ + install -m 0755 ${S}/run-postinsts ${D}${sbindir}/ install -d ${D}${sysconfdir}/init.d/ - install -m 0755 ${WORKDIR}/run-postinsts.init ${D}${sysconfdir}/init.d/run-postinsts + install -m 0755 ${S}/run-postinsts.init ${D}${sysconfdir}/init.d/run-postinsts - install -d ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/run-postinsts.service ${D}${systemd_unitdir}/system/ + install -d ${D}${systemd_system_unitdir}/ + install -m 0644 ${S}/run-postinsts.service ${D}${systemd_system_unitdir}/ sed -i -e 's:#SYSCONFDIR#:${sysconfdir}:g' \ -e 's:#SBINDIR#:${sbindir}:g' \ -e 's:#BASE_BINDIR#:${base_bindir}:g' \ -e 's:#LOCALSTATEDIR#:${localstatedir}:g' \ ${D}${sbindir}/run-postinsts \ - ${D}${systemd_unitdir}/system/run-postinsts.service + ${D}${systemd_system_unitdir}/run-postinsts.service } |