[oe-commits] Bryan Evenson : base-files: Check for /run and /var/ lock softlinks on upgrade

git at git.openembedded.org git at git.openembedded.org
Mon Apr 20 15:22:14 UTC 2015


Module: openembedded-core.git
Branch: master-next
Commit: 272805f064848f14306b1ed2648a7760017ee318
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=272805f064848f14306b1ed2648a7760017ee318

Author: Bryan Evenson <bevenson at melinkcorp.com>
Date:   Tue Apr 14 17:08:15 2015 -0400

base-files: Check for /run and /var/lock softlinks on upgrade

Commit ea647cd9eebdc3e3121b84074519c4bb305adac9 moved the locations
of /run and /var/lock to match the FHS 3 draft specifications.
However, the install doesn't remove the existing directories.
As a result, upgrading a system may result in /run as a softlink
to /var/run and /var/run as a softlink to /run, creating a circular
link.

During pre-install, check for the existence of the old softlinks and
remove them so the new directories can be installed.

Signed-off-by: Bryan Evenson <bevenson at melinkcorp.com>

---

 meta/recipes-core/base-files/base-files_3.0.14.bb | 24 +++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/meta/recipes-core/base-files/base-files_3.0.14.bb b/meta/recipes-core/base-files/base-files_3.0.14.bb
index f2d254e..e16fe72 100644
--- a/meta/recipes-core/base-files/base-files_3.0.14.bb
+++ b/meta/recipes-core/base-files/base-files_3.0.14.bb
@@ -69,6 +69,29 @@ hostname = "${MACHINE}"
 
 BASEFILESISSUEINSTALL ?= "do_install_basefilesissue"
 
+# In previous versions of base-files, /run was a softlink to /var/run and the
+# directory was located in /var/volatlie/run.  Also, /var/lock was a softlink
+# to /var/volatile/lock which is where the real directory was located.  Now,
+# /run and /run/lock are the real directories.  If we are upgrading, we may
+# need to remove the symbolic links first before we create the directories.
+# Otherwise the directory creation will fail and we will have circular symbolic
+# links.
+# 
+pkg_preinst_${PN} () {
+    #!/bin/sh -e
+    if [ x"$D" = "x" ]; then
+        if [ -h "/var/lock" ]; then
+            # Remove the symbolic link
+            rm -f /var/lock
+        fi
+
+        if [ -h "/run" ]; then
+            # Remove the symbolic link
+            rm -f /run
+        fi
+    fi     
+}
+
 do_install () {
 	for d in ${dirs755}; do
 		install -m 0755 -d ${D}$d
@@ -82,6 +105,7 @@ do_install () {
 	for d in ${volatiles}; do
 		ln -sf volatile/$d ${D}${localstatedir}/$d
 	done
+
 	ln -snf ../run ${D}${localstatedir}/run
 	ln -snf ../run/lock ${D}${localstatedir}/lock
 



More information about the Openembedded-commits mailing list