summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xmeta/recipes-devtools/dpkg/run-postinsts/run-postinsts36
-rw-r--r--meta/recipes-devtools/dpkg/run-postinsts/run-postinsts.awk30
-rwxr-xr-xmeta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts47
-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 5f6442cbe3..0000000000
--- a/meta/recipes-devtools/dpkg/run-postinsts/run-postinsts
+++ /dev/null
@@ -1,36 +0,0 @@
1#!/bin/sh
2#
3# Copyright 2007 Openedhand Ltd.
4#
5# Author: Richard Purdie <rpurdie@openedhand.com>
6#
7
8PKGSYSTEM=/var/lib/dpkg
9
10if [ ! -e $PKGSYSTEM/status ]; then
11 if [ -e /var/lib/opkg/status ]; then
12 PKGSYSTEM=/var/lib/opkg
13 else
14 echo "No package system found"
15 exit 1
16 fi
17fi
18
19STAMP=$PKGSYSTEM/postinsts-done
20STATFILE=$PKGSYSTEM/status
21STATFILE2=$PKGSYSTEM/status2
22
23if [ -e $STAMP ]; then
24 exit 0
25fi
26
27awk -f /usr/share/run-postinsts/run-postinsts.awk $STATFILE > $STATFILE2
28if [ $? = 0 ]; then
29 mv $STATFILE2 $STATFILE
30 touch $STAMP
31 exit 0
32else
33 rm -f $STATFILE2
34 rm -f $STAMP
35 exit 1
36fi
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 cbc8d1a109..0000000000
--- a/meta/recipes-devtools/dpkg/run-postinsts/run-postinsts.awk
+++ /dev/null
@@ -1,30 +0,0 @@
1#
2# Copyright 2007 Openedhand Ltd.
3#
4# Author: Richard Purdie <rpurdie@openedhand.com>
5#
6# Rather hacky proof of concept
7#
8
9BEGIN {
10 rc=system("test -d /var/lib/dpkg/info/")
11 if (rc==0)
12 pkgdir="/var/lib/dpkg/info"
13 else
14 pkgdir="/var/lib/opkg/info"
15 package=""
16}
17/Package:.*/ {
18 package = substr($0, 10)
19}
20/Status:.*unpacked.*/ {
21 print "Configuring: " package > "/dev/stderr"
22 ret = system(pkgdir "/" package ".postinst 1>&2")
23 if (ret == 0)
24 $0 = gensub("unpacked", "installed", 1)
25 else
26 print "Postinstall failed for " package > "/dev/stderr"
27}
28{
29 print $0
30}
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 0000000000..2593066da0
--- /dev/null
+++ b/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts
@@ -0,0 +1,47 @@
1#!/bin/sh
2#
3# Copyright 2007 Openedhand Ltd.
4#
5# Author: Richard Purdie <rpurdie@openedhand.com>
6#
7
8# The following script will run all the scriptlets found in #SYSCONFDIR#/deb-postinsts or
9# #SYSCONFDIR#/ipk-postinsts
10
11pi_dir=""
12for pm in rpm deb ipk; do
13 if [ -d "#SYSCONFDIR#/${pm}-postinsts" ]; then
14 pi_dir=#SYSCONFDIR#/${pm}-postinsts
15 break
16 fi
17done
18
19[ -z "$pi_dir" ] && exit 0
20
21[ -e #SYSCONFDIR#/default/postinst ] && . #SYSCONFDIR#/default/postinst
22
23remove_pi_dir=1
24for i in `ls $pi_dir`; do
25 i=$pi_dir/$i
26 echo "Running postinst $i..."
27 if [ -x $i ]; then
28 if [ "$POSTINST_LOGGING" = "1" ]; then
29 sh -c $i >>$LOGFILE 2&>1
30 else
31 sh -c $i
32 fi
33 rm $i
34 else
35 echo "ERROR: postinst $i failed."
36 remove_pi_dir=0
37 fi
38done
39
40# since all postinstalls executed successfully, remove the postinstalls directory
41# and the rcS.d link
42if [ $remove_pi_dir = 1 ]; then
43 rm -rf $pi_dir
44 if [ -n "`which update-rc.d`" ]; then
45 update-rc.d -f run-postinsts remove
46 fi
47fi
diff --git a/meta/recipes-devtools/dpkg/run-postinsts_1.0.bb b/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb
index 4c9b2fd75a..5dd1709ff5 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 @@
1DESCRIPTION = "Run postinstall scripts on device using awk" 1DESCRIPTION = "Run postinstall scripts on device"
2SECTION = "devel" 2SECTION = "devel"
3PR = "r9" 3PR = "r9"
4LICENSE = "MIT" 4LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \ 5LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
6 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" 6 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
7 7
8SRC_URI = "file://run-postinsts file://run-postinsts.awk" 8SRC_URI = "file://run-postinsts"
9 9
10INITSCRIPT_NAME = "run-postinsts" 10INITSCRIPT_NAME = "run-postinsts"
11INITSCRIPT_PARAMS = "start 98 S ." 11INITSCRIPT_PARAMS = "start 98 S ."
@@ -24,6 +24,5 @@ do_install() {
24 install -d ${D}${sysconfdir}/init.d/ 24 install -d ${D}${sysconfdir}/init.d/
25 install -m 0755 ${WORKDIR}/run-postinsts ${D}${sysconfdir}/init.d/ 25 install -m 0755 ${WORKDIR}/run-postinsts ${D}${sysconfdir}/init.d/
26 26
27 install -d ${D}${datadir}/${BPN}/ 27 sed -i -e 's:#SYSCONFDIR#:${sysconfdir}:g' ${D}${sysconfdir}/init.d/run-postinsts
28 install -m 0644 ${WORKDIR}/run-postinsts.awk ${D}${datadir}/${BPN}/
29} 28}