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
This commit is contained in:
Richard Purdie 2007-11-05 16:08:56 +00:00
parent 139d157060
commit 87c422828e
3 changed files with 81 additions and 0 deletions

View File

@ -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

View File

@ -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
}

View File

@ -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 () {
:
}