summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Purdie <richard@openedhand.com>2007-11-05 16:08:56 +0000
committerRichard Purdie <richard@openedhand.com>2007-11-05 16:08:56 +0000
commit87c422828e1b8d2256e73924e8509e28708d8731 (patch)
tree64602b20a9c06c3afe1e4290ce55458fc678c142
parent139d1570605aeef3238a173ca90d81bb791d6b8a (diff)
downloadopenembedded-core-87c422828e1b8d2256e73924e8509e28708d8731.tar.gz
openembedded-core-87c422828e1b8d2256e73924e8509e28708d8731.tar.bz2
openembedded-core-87c422828e1b8d2256e73924e8509e28708d8731.tar.xz
openembedded-core-87c422828e1b8d2256e73924e8509e28708d8731.zip
Add run-postinsts. This runs any remaining postinstall scripts without needing ipkg/dpkg. Currently ipkg specific but this should be easy to change
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@3069 311d38ba-8fff-0310-9ca6-ca027cbcb966
-rwxr-xr-xmeta/packages/meta/run-postinsts/run-postinsts26
-rw-r--r--meta/packages/meta/run-postinsts/run-postinsts.awk25
-rw-r--r--meta/packages/meta/run-postinsts_1.0.bb30
3 files changed, 81 insertions, 0 deletions
diff --git a/meta/packages/meta/run-postinsts/run-postinsts b/meta/packages/meta/run-postinsts/run-postinsts
new file mode 100755
index 000000000..334a39b78
--- /dev/null
+++ b/meta/packages/meta/run-postinsts/run-postinsts
@@ -0,0 +1,26 @@
+#!/bin/sh
+#
+# Copyright 2007 Openedhand Ltd.
+#
+# Author: Richard Purdie <rpurdie@openedhand.com>
+#
+
+PKGSYSTEM=/usr/lib/ipkg
+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/packages/meta/run-postinsts/run-postinsts.awk b/meta/packages/meta/run-postinsts/run-postinsts.awk
new file mode 100644
index 000000000..1532577b6
--- /dev/null
+++ b/meta/packages/meta/run-postinsts/run-postinsts.awk
@@ -0,0 +1,25 @@
+#
+# Copyright 2007 Openedhand Ltd.
+#
+# Author: Richard Purdie <rpurdie@openedhand.com>
+#
+# Rather hacky proof of concept
+#
+
+BEGIN {
+ package=""
+}
+/Package:.*/ {
+ package = substr($0, 10)
+}
+/Status:.*unpacked.*/ {
+ print "Configuring: " package > "/dev/stderr"
+ ret = system("/usr/lib/ipkg/info/" 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/packages/meta/run-postinsts_1.0.bb b/meta/packages/meta/run-postinsts_1.0.bb
new file mode 100644
index 000000000..b095adc90
--- /dev/null
+++ b/meta/packages/meta/run-postinsts_1.0.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "Run postinstall scripts on device using awk"
+SECTION = "devel"
+PR = "r0"
+
+SRC_URI = "file://run-postinsts file://run-postinsts.awk"
+
+INITSCRIPT_NAME = "run-postinsts"
+INITSCRIPT_PARAMS = "start 98 S ."
+
+inherit update-rc.d
+
+do_configure() {
+ :
+}
+
+do_compile () {
+ :
+}
+
+do_install() {
+ install -d ${D}${sysconfdir}/init.d/
+ install -m 0755 ${WORKDIR}/run-postinsts ${D}${sysconfdir}/init.d/
+
+ install -d ${D}${datadir}/${PN}/
+ install -m 0644 ${WORKDIR}/run-postinsts.awk ${D}${datadir}/${PN}/
+}
+
+do_stage () {
+ :
+}