[oe] [PATCH 46/70] rootfs_rpm.bbclass: Fixup broken symlinks due to fakechroot and run any leftover postinstalls on real hardware at first boot (from Poky)

Marcin Juszkiewicz openembedded at haerwu.biz
Wed Mar 4 15:53:01 UTC 2009


From: Richard Purdie <richard at openedhand.com>

git-svn-id: https://svn.o-hand.com/repos/poky@5143 311d38ba-8fff-0310-9ca6-ca027cbcb966
---
 classes/rootfs_rpm.bbclass |   30 +++++++++++++++++++++++++++++-
 1 files changed, 29 insertions(+), 1 deletions(-)

diff --git a/classes/rootfs_rpm.bbclass b/classes/rootfs_rpm.bbclass
index b2d6762..acd7a06 100644
--- a/classes/rootfs_rpm.bbclass
+++ b/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
 
-- 
1.6.1.3







More information about the Openembedded-devel mailing list