From 23c36b0fbf8335223b8b163e492a5a03f621780a Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 4 Sep 2008 21:52:34 +0000 Subject: rootfs_rpm.bbclass: Fixup broken symlinks due to fakechroot and run any leftover postinstalls on real hardware at first boot git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5143 311d38ba-8fff-0310-9ca6-ca027cbcb966 --- meta/classes/rootfs_rpm.bbclass | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'meta/classes') diff --git a/meta/classes/rootfs_rpm.bbclass b/meta/classes/rootfs_rpm.bbclass index 6339a21476..4059a43af8 100644 --- a/meta/classes/rootfs_rpm.bbclass +++ b/meta/classes/rootfs_rpm.bbclass @@ -69,6 +69,15 @@ EOF fakechroot yum ${YUMARGS} -y install ${PACKAGE_INSTALL} fi + # Symlinks created under fakeroot are wrong, now we have to fix them... + cd ${IMAGE_ROOTFS} + for f in `find . -type l -print` + do + link=`readlink $f | sed -e 's#${IMAGE_ROOTFS}##'` + rm $f + ln -s $link $f + done + export D=${IMAGE_ROOTFS} export OFFLINE_ROOT=${IMAGE_ROOTFS} export IPKG_OFFLINE_ROOT=${IMAGE_ROOTFS} @@ -86,10 +95,29 @@ EOF for i in ${IMAGE_ROOTFS}/etc/rpm-postinsts/*.sh; do if [ -f $i ] && sh $i; then - rm $i + # rm $i + mv $i $i.done fi done + install -d ${IMAGE_ROOTFS}/${sysconfdir}/rcS.d + # Stop $i getting expanded below... + i=\$i + cat > ${IMAGE_ROOTFS}${sysconfdir}/rcS.d/S98configure << EOF +#!/bin/sh +for i in /etc/rpm-postinsts/*.sh; do + echo "Running postinst $i..." + if [ -f $i ] && sh $i; then + # rm $i + mv $i $i.done + else + echo "ERROR: postinst $i failed." + fi +done +rm -f ${sysconfdir}/rcS.d/S98configure +EOF + chmod 0755 ${IMAGE_ROOTFS}${sysconfdir}/rcS.d/S98configure + install -d ${IMAGE_ROOTFS}/${sysconfdir} echo ${BUILDNAME} > ${IMAGE_ROOTFS}/${sysconfdir}/version -- cgit v1.2.3