Browse Source

fix apply-live-updates failing because of /lib symlink

Since cp won't copy a directory over a symlink, any updates that were
supposed to go into e.g. /lib would get dropped if you had /updates/lib
as an actual directory, but the target system had /lib->/usr/lib.
master
Will Woods 13 years ago committed by Harald Hoyer
parent
commit
b43d651511
  1. 20
      modules.d/90dmsquash-live/apply-live-updates.sh

20
modules.d/90dmsquash-live/apply-live-updates.sh

@ -1,9 +1,17 @@ @@ -1,9 +1,17 @@
#!/bin/sh
if [ -b /dev/mapper/live-rw ]; then
if [ -d /updates ]; then
echo "Applying updates to live image..."

. /tmp/root.info

if [ -b /dev/mapper/live-rw ] && [ -d /updates ]; then
info "Applying updates to live image..."
# avoid overwriting symlinks (e.g. /lib -> /usr/lib) with directories
(
cd /updates
/bin/cp -a -t $NEWROOT .
cd -
fi
find . -depth -type d | while read dir; do
[ -d "$NEWROOT/$dir" ] || mkdir -p "$NEWROOT/$dir"
done
find . -depth \! -type d | while read file; do
cp -a "$file" "$NEWROOT/$file"
done
)
fi

Loading…
Cancel
Save