From 075f0b2c889410844352d8ac6e9d12b704d8565e Mon Sep 17 00:00:00 2001 From: Bryan Evenson Date: Tue, 14 Apr 2015 17:08:15 -0400 Subject: 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. (From OE-Core rev: c1ee31acf509b054453f19cab162dadc295e10a4) Signed-off-by: Bryan Evenson Signed-off-by: Richard Purdie --- meta/recipes-core/base-files/base-files_3.0.14.bb | 24 +++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'meta') 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 f2d254e6bd..e16fe722b8 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 -- cgit v1.2.3-54-g00ecf