diff options
-rwxr-xr-x | meta/recipes-devtools/dpkg/run-postinsts/run-postinsts | 36 | ||||
-rw-r--r-- | meta/recipes-devtools/dpkg/run-postinsts/run-postinsts.awk | 30 | ||||
-rwxr-xr-x | meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts | 47 | ||||
-rw-r--r-- | meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb (renamed from meta/recipes-devtools/dpkg/run-postinsts_1.0.bb) | 7 |
4 files changed, 50 insertions, 70 deletions
diff --git a/meta/recipes-devtools/dpkg/run-postinsts/run-postinsts b/meta/recipes-devtools/dpkg/run-postinsts/run-postinsts deleted file mode 100755 index 5f6442cbe3f..00000000000 --- a/meta/recipes-devtools/dpkg/run-postinsts/run-postinsts +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -# -# Copyright 2007 Openedhand Ltd. -# -# Author: Richard Purdie <rpurdie@openedhand.com> -# - -PKGSYSTEM=/var/lib/dpkg - -if [ ! -e $PKGSYSTEM/status ]; then - if [ -e /var/lib/opkg/status ]; then - PKGSYSTEM=/var/lib/opkg - else - echo "No package system found" - exit 1 - fi -fi - -STAMP=$PKGSYSTEM/postinsts-done -STATFILE=$PKGSYSTEM/status -STATFILE2=$PKGSYSTEM/status2 - -if [ -e $STAMP ]; then - exit 0 -fi - -awk -f /usr/share/run-postinsts/run-postinsts.awk $STATFILE > $STATFILE2 -if [ $? = 0 ]; then - mv $STATFILE2 $STATFILE - touch $STAMP - exit 0 -else - rm -f $STATFILE2 - rm -f $STAMP - exit 1 -fi diff --git a/meta/recipes-devtools/dpkg/run-postinsts/run-postinsts.awk b/meta/recipes-devtools/dpkg/run-postinsts/run-postinsts.awk deleted file mode 100644 index cbc8d1a1095..00000000000 --- a/meta/recipes-devtools/dpkg/run-postinsts/run-postinsts.awk +++ /dev/null @@ -1,30 +0,0 @@ -# -# Copyright 2007 Openedhand Ltd. -# -# Author: Richard Purdie <rpurdie@openedhand.com> -# -# Rather hacky proof of concept -# - -BEGIN { - rc=system("test -d /var/lib/dpkg/info/") - if (rc==0) - pkgdir="/var/lib/dpkg/info" - else - pkgdir="/var/lib/opkg/info" - package="" -} -/Package:.*/ { - package = substr($0, 10) -} -/Status:.*unpacked.*/ { - print "Configuring: " package > "/dev/stderr" - ret = system(pkgdir "/" package ".postinst 1>&2") - if (ret == 0) - $0 = gensub("unpacked", "installed", 1) - else - print "Postinstall failed for " package > "/dev/stderr" -} -{ - print $0 -} diff --git a/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts b/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts new file mode 100755 index 00000000000..2593066da0f --- /dev/null +++ b/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts @@ -0,0 +1,47 @@ +#!/bin/sh +# +# Copyright 2007 Openedhand Ltd. +# +# Author: Richard Purdie <rpurdie@openedhand.com> +# + +# The following script will run all the scriptlets found in #SYSCONFDIR#/deb-postinsts or +# #SYSCONFDIR#/ipk-postinsts + +pi_dir="" +for pm in rpm deb ipk; do + if [ -d "#SYSCONFDIR#/${pm}-postinsts" ]; then + pi_dir=#SYSCONFDIR#/${pm}-postinsts + break + fi +done + +[ -z "$pi_dir" ] && exit 0 + +[ -e #SYSCONFDIR#/default/postinst ] && . #SYSCONFDIR#/default/postinst + +remove_pi_dir=1 +for i in `ls $pi_dir`; do + i=$pi_dir/$i + echo "Running postinst $i..." + if [ -x $i ]; then + if [ "$POSTINST_LOGGING" = "1" ]; then + sh -c $i >>$LOGFILE 2&>1 + else + sh -c $i + fi + rm $i + else + echo "ERROR: postinst $i failed." + remove_pi_dir=0 + fi +done + +# since all postinstalls executed successfully, remove the postinstalls directory +# and the rcS.d link +if [ $remove_pi_dir = 1 ]; then + rm -rf $pi_dir + if [ -n "`which update-rc.d`" ]; then + update-rc.d -f run-postinsts remove + fi +fi diff --git a/meta/recipes-devtools/dpkg/run-postinsts_1.0.bb b/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb index 4c9b2fd75a0..5dd1709ff56 100644 --- a/meta/recipes-devtools/dpkg/run-postinsts_1.0.bb +++ b/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb @@ -1,11 +1,11 @@ -DESCRIPTION = "Run postinstall scripts on device using awk" +DESCRIPTION = "Run postinstall scripts on device" SECTION = "devel" PR = "r9" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \ file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" -SRC_URI = "file://run-postinsts file://run-postinsts.awk" +SRC_URI = "file://run-postinsts" INITSCRIPT_NAME = "run-postinsts" INITSCRIPT_PARAMS = "start 98 S ." @@ -24,6 +24,5 @@ do_install() { install -d ${D}${sysconfdir}/init.d/ install -m 0755 ${WORKDIR}/run-postinsts ${D}${sysconfdir}/init.d/ - install -d ${D}${datadir}/${BPN}/ - install -m 0644 ${WORKDIR}/run-postinsts.awk ${D}${datadir}/${BPN}/ + sed -i -e 's:#SYSCONFDIR#:${sysconfdir}:g' ${D}${sysconfdir}/init.d/run-postinsts } |