1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
#!/bin/sh
set -e
case "$1" in
configure)
# ensure /var/lib/snapd/lib/gl is cleared
if dpkg --compare-versions "$2" lt-nl "2.0.7"; then
ldconfig
fi
# Ensure that we undo the damage done by the snap.mount unit that was present
# in snapd 2.31.
#
# We found that update scripts make systemd stop inactive mount units and this
# in turn stops all the units that depend on it so when the snap.mount unit is
# stopped all the per-snap mount units gets stopped along with them. The 2.31
# release was only out briefly in xenial-proposed and bionic but to keep the
# affected users safe let's start all the per-snap mount units so that snaps no
# longer appear as broken after update.
if dpkg --compare-versions "$2" ge-nl "2.31" && \
dpkg --compare-versions "$2" lt-nl "2.32"; then
units=$(systemctl list-unit-files --full | grep '^snap[-.]' | cut -f1 -d ' ' | grep -vF snap.mount.service || true)
mounts=$(echo "$units" | grep '^snap[-.].*\.mount$' || true)
for unit in $mounts; do
# ensure its really a snap mount unit or systemd unit
if ! grep -q 'What=/var/lib/snapd/snaps/' "/etc/systemd/system/$unit" && ! grep -q 'X-Snappy=yes' "/etc/systemd/system/$unit"; then
echo "Skipping non-snapd systemd unit $unit"
continue
fi
echo "Starting $unit"
deb-systemd-invoke start "$unit" || true
done
fi
# Ensure that the void directory has correct permissions.
chmod 111 /var/lib/snapd/void
# ensure required caps on snap-confine
setcap -q - /usr/lib/snapd/snap-confine < /usr/lib/snapd/snap-confine.caps
;;
esac
#DEBHELPER#
|