325 lines
16 KiB
Bash
Executable File
325 lines
16 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
# "powerpc" is not supported unfortunately, do nothing here#
|
|
if [ "$DPKG_MAINTSCRIPT_ARCH" = powerpc ]; then
|
|
exit 0
|
|
fi
|
|
|
|
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
|
|
|
|
# In commit 0dce4704a5d (2017-03-28, snapd v2.23.6) we renamed
|
|
# /etc/apparmor.d/usr.lib.snap-confine to usr.lib.snap-confine.real
|
|
# to fix LP: #1673247 - however some people (developers?) still have
|
|
# the old usr.lib.snap-confine file. This seems to be loaded instead
|
|
# of the correct usr.lib.snap-confine.real profile. To fix this we
|
|
# use the rather blunt approach to rename the file forcefully.
|
|
if test -f /etc/apparmor.d/usr.lib.snapd.snap-confine && test -f /etc/apparmor.d/usr.lib.snapd.snap-confine.real; then
|
|
mv /etc/apparmor.d/usr.lib.snapd.snap-confine /etc/apparmor.d/usr.lib.snapd.snap-confine.dpkg-bak
|
|
fi
|
|
|
|
# Ensure that the void directory has correct permissions.
|
|
chmod 111 /var/lib/snapd/void
|
|
|
|
# Ubuntu 20.04 had a incorrect seed directory during development.
|
|
#
|
|
# This was causing hangs in the postinst when systemctl tries to
|
|
# start snapd.seeded.service which will wait for snapd to finish
|
|
# seeding (which will never happen because seeding is broken).
|
|
# See LP: 1868706
|
|
# This snippet detect this incorrect seed and disables it.
|
|
if [ -e /var/lib/snapd/seed/seed.yaml ] && [ "$(snap debug state --is-seeded /var/lib/snapd/state.json)" = "false" ]; then
|
|
if ! snap debug validate-seed /var/lib/snapd/seed/seed.yaml; then
|
|
echo "Found incorrect seed, disabling it"
|
|
mv /var/lib/snapd/seed /var/lib/snapd/seed.disabled
|
|
fi
|
|
fi
|
|
|
|
# ensure "snap userd" is restarted
|
|
if dpkg --compare-versions "$2" lt-nl "2.45.2"; then
|
|
pkill -f "snap userd" || true
|
|
fi
|
|
esac
|
|
|
|
# Automatically added by dh_apparmor/3.0.4-2ubuntu2
|
|
if [ "$1" = "configure" ]; then
|
|
APP_PROFILE="/etc/apparmor.d/usr.lib.snapd.snap-confine.real"
|
|
if [ -f "$APP_PROFILE" ]; then
|
|
# Add the local/ include
|
|
LOCAL_APP_PROFILE="/etc/apparmor.d/local/usr.lib.snapd.snap-confine.real"
|
|
|
|
test -e "$LOCAL_APP_PROFILE" || {
|
|
mkdir -p `dirname "$LOCAL_APP_PROFILE"`
|
|
install --mode 644 /dev/null "$LOCAL_APP_PROFILE"
|
|
}
|
|
|
|
# Reload the profile, including any abstraction updates
|
|
if aa-enabled --quiet 2>/dev/null; then
|
|
apparmor_parser -r -T -W "$APP_PROFILE" || true
|
|
fi
|
|
fi
|
|
fi
|
|
# End automatically added section
|
|
# Automatically added by dh_systemd_enable/13.6ubuntu1
|
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
|
# This will only remove masks created by d-s-h on package removal.
|
|
deb-systemd-helper unmask 'snapd.aa-prompt-listener.service' >/dev/null || true
|
|
|
|
# was-enabled defaults to true, so new installations run enable.
|
|
if deb-systemd-helper --quiet was-enabled 'snapd.aa-prompt-listener.service'; then
|
|
# Enables the unit on first installation, creates new
|
|
# symlinks on upgrades if the unit file has changed.
|
|
deb-systemd-helper enable 'snapd.aa-prompt-listener.service' >/dev/null || true
|
|
else
|
|
# Update the statefile to add new symlinks (if any), which need to be
|
|
# cleaned up on purge. Also remove old symlinks.
|
|
deb-systemd-helper update-state 'snapd.aa-prompt-listener.service' >/dev/null || true
|
|
fi
|
|
fi
|
|
# End automatically added section
|
|
# Automatically added by dh_systemd_enable/13.6ubuntu1
|
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
|
# This will only remove masks created by d-s-h on package removal.
|
|
deb-systemd-helper unmask 'snapd.apparmor.service' >/dev/null || true
|
|
|
|
# was-enabled defaults to true, so new installations run enable.
|
|
if deb-systemd-helper --quiet was-enabled 'snapd.apparmor.service'; then
|
|
# Enables the unit on first installation, creates new
|
|
# symlinks on upgrades if the unit file has changed.
|
|
deb-systemd-helper enable 'snapd.apparmor.service' >/dev/null || true
|
|
else
|
|
# Update the statefile to add new symlinks (if any), which need to be
|
|
# cleaned up on purge. Also remove old symlinks.
|
|
deb-systemd-helper update-state 'snapd.apparmor.service' >/dev/null || true
|
|
fi
|
|
fi
|
|
# End automatically added section
|
|
# Automatically added by dh_systemd_enable/13.6ubuntu1
|
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
|
# This will only remove masks created by d-s-h on package removal.
|
|
deb-systemd-helper unmask 'snapd.autoimport.service' >/dev/null || true
|
|
|
|
# was-enabled defaults to true, so new installations run enable.
|
|
if deb-systemd-helper --quiet was-enabled 'snapd.autoimport.service'; then
|
|
# Enables the unit on first installation, creates new
|
|
# symlinks on upgrades if the unit file has changed.
|
|
deb-systemd-helper enable 'snapd.autoimport.service' >/dev/null || true
|
|
else
|
|
# Update the statefile to add new symlinks (if any), which need to be
|
|
# cleaned up on purge. Also remove old symlinks.
|
|
deb-systemd-helper update-state 'snapd.autoimport.service' >/dev/null || true
|
|
fi
|
|
fi
|
|
# End automatically added section
|
|
# Automatically added by dh_systemd_enable/13.6ubuntu1
|
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
|
# This will only remove masks created by d-s-h on package removal.
|
|
deb-systemd-helper unmask 'snapd.core-fixup.service' >/dev/null || true
|
|
|
|
# was-enabled defaults to true, so new installations run enable.
|
|
if deb-systemd-helper --quiet was-enabled 'snapd.core-fixup.service'; then
|
|
# Enables the unit on first installation, creates new
|
|
# symlinks on upgrades if the unit file has changed.
|
|
deb-systemd-helper enable 'snapd.core-fixup.service' >/dev/null || true
|
|
else
|
|
# Update the statefile to add new symlinks (if any), which need to be
|
|
# cleaned up on purge. Also remove old symlinks.
|
|
deb-systemd-helper update-state 'snapd.core-fixup.service' >/dev/null || true
|
|
fi
|
|
fi
|
|
# End automatically added section
|
|
# Automatically added by dh_systemd_enable/13.6ubuntu1
|
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
|
# This will only remove masks created by d-s-h on package removal.
|
|
deb-systemd-helper unmask 'snapd.recovery-chooser-trigger.service' >/dev/null || true
|
|
|
|
# was-enabled defaults to true, so new installations run enable.
|
|
if deb-systemd-helper --quiet was-enabled 'snapd.recovery-chooser-trigger.service'; then
|
|
# Enables the unit on first installation, creates new
|
|
# symlinks on upgrades if the unit file has changed.
|
|
deb-systemd-helper enable 'snapd.recovery-chooser-trigger.service' >/dev/null || true
|
|
else
|
|
# Update the statefile to add new symlinks (if any), which need to be
|
|
# cleaned up on purge. Also remove old symlinks.
|
|
deb-systemd-helper update-state 'snapd.recovery-chooser-trigger.service' >/dev/null || true
|
|
fi
|
|
fi
|
|
# End automatically added section
|
|
# Automatically added by dh_systemd_enable/13.6ubuntu1
|
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
|
# This will only remove masks created by d-s-h on package removal.
|
|
deb-systemd-helper unmask 'snapd.seeded.service' >/dev/null || true
|
|
|
|
# was-enabled defaults to true, so new installations run enable.
|
|
if deb-systemd-helper --quiet was-enabled 'snapd.seeded.service'; then
|
|
# Enables the unit on first installation, creates new
|
|
# symlinks on upgrades if the unit file has changed.
|
|
deb-systemd-helper enable 'snapd.seeded.service' >/dev/null || true
|
|
else
|
|
# Update the statefile to add new symlinks (if any), which need to be
|
|
# cleaned up on purge. Also remove old symlinks.
|
|
deb-systemd-helper update-state 'snapd.seeded.service' >/dev/null || true
|
|
fi
|
|
fi
|
|
# End automatically added section
|
|
# Automatically added by dh_systemd_enable/13.6ubuntu1
|
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
|
# This will only remove masks created by d-s-h on package removal.
|
|
deb-systemd-helper unmask 'snapd.service' >/dev/null || true
|
|
|
|
# was-enabled defaults to true, so new installations run enable.
|
|
if deb-systemd-helper --quiet was-enabled 'snapd.service'; then
|
|
# Enables the unit on first installation, creates new
|
|
# symlinks on upgrades if the unit file has changed.
|
|
deb-systemd-helper enable 'snapd.service' >/dev/null || true
|
|
else
|
|
# Update the statefile to add new symlinks (if any), which need to be
|
|
# cleaned up on purge. Also remove old symlinks.
|
|
deb-systemd-helper update-state 'snapd.service' >/dev/null || true
|
|
fi
|
|
fi
|
|
# End automatically added section
|
|
# Automatically added by dh_systemd_enable/13.6ubuntu1
|
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
|
# This will only remove masks created by d-s-h on package removal.
|
|
deb-systemd-helper unmask 'snapd.snap-repair.timer' >/dev/null || true
|
|
|
|
# was-enabled defaults to true, so new installations run enable.
|
|
if deb-systemd-helper --quiet was-enabled 'snapd.snap-repair.timer'; then
|
|
# Enables the unit on first installation, creates new
|
|
# symlinks on upgrades if the unit file has changed.
|
|
deb-systemd-helper enable 'snapd.snap-repair.timer' >/dev/null || true
|
|
else
|
|
# Update the statefile to add new symlinks (if any), which need to be
|
|
# cleaned up on purge. Also remove old symlinks.
|
|
deb-systemd-helper update-state 'snapd.snap-repair.timer' >/dev/null || true
|
|
fi
|
|
fi
|
|
# End automatically added section
|
|
# Automatically added by dh_systemd_enable/13.6ubuntu1
|
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
|
# This will only remove masks created by d-s-h on package removal.
|
|
deb-systemd-helper unmask 'snapd.socket' >/dev/null || true
|
|
|
|
# was-enabled defaults to true, so new installations run enable.
|
|
if deb-systemd-helper --quiet was-enabled 'snapd.socket'; then
|
|
# Enables the unit on first installation, creates new
|
|
# symlinks on upgrades if the unit file has changed.
|
|
deb-systemd-helper enable 'snapd.socket' >/dev/null || true
|
|
else
|
|
# Update the statefile to add new symlinks (if any), which need to be
|
|
# cleaned up on purge. Also remove old symlinks.
|
|
deb-systemd-helper update-state 'snapd.socket' >/dev/null || true
|
|
fi
|
|
fi
|
|
# End automatically added section
|
|
# Automatically added by dh_systemd_enable/13.6ubuntu1
|
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
|
# This will only remove masks created by d-s-h on package removal.
|
|
deb-systemd-helper unmask 'snapd.system-shutdown.service' >/dev/null || true
|
|
|
|
# was-enabled defaults to true, so new installations run enable.
|
|
if deb-systemd-helper --quiet was-enabled 'snapd.system-shutdown.service'; then
|
|
# Enables the unit on first installation, creates new
|
|
# symlinks on upgrades if the unit file has changed.
|
|
deb-systemd-helper enable 'snapd.system-shutdown.service' >/dev/null || true
|
|
else
|
|
# Update the statefile to add new symlinks (if any), which need to be
|
|
# cleaned up on purge. Also remove old symlinks.
|
|
deb-systemd-helper update-state 'snapd.system-shutdown.service' >/dev/null || true
|
|
fi
|
|
fi
|
|
# End automatically added section
|
|
# Automatically added by dh_installinit/13.6ubuntu1
|
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
|
# In case this system is running systemd, we need to ensure that all
|
|
# necessary tmpfiles (if any) are created before starting.
|
|
if [ -z "${DPKG_ROOT:-}" ] && [ -d /run/systemd/system ] ; then
|
|
systemd-tmpfiles --create snapd.conf >/dev/null || true
|
|
fi
|
|
fi
|
|
# End automatically added section
|
|
# Automatically added by dh_systemd_start/13.6ubuntu1
|
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
|
if [ -d /run/systemd/system ]; then
|
|
systemctl --system daemon-reload >/dev/null || true
|
|
if [ -n "$2" ]; then
|
|
_dh_action=restart
|
|
else
|
|
_dh_action=start
|
|
fi
|
|
deb-systemd-invoke $_dh_action 'snapd.socket' >/dev/null || true
|
|
fi
|
|
fi
|
|
# End automatically added section
|
|
# Automatically added by dh_systemd_start/13.6ubuntu1
|
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
|
if [ -d /run/systemd/system ]; then
|
|
systemctl --system daemon-reload >/dev/null || true
|
|
if [ -n "$2" ]; then
|
|
_dh_action=restart
|
|
else
|
|
_dh_action=start
|
|
fi
|
|
deb-systemd-invoke $_dh_action 'snapd.service' >/dev/null || true
|
|
fi
|
|
fi
|
|
# End automatically added section
|
|
# Automatically added by dh_systemd_start/13.6ubuntu1
|
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
|
if [ -d /run/systemd/system ]; then
|
|
systemctl --system daemon-reload >/dev/null || true
|
|
if [ -n "$2" ]; then
|
|
_dh_action=restart
|
|
else
|
|
_dh_action=start
|
|
fi
|
|
deb-systemd-invoke $_dh_action 'snapd.aa-prompt-listener.service' 'snapd.apparmor.service' 'snapd.autoimport.service' 'snapd.core-fixup.service' 'snapd.failure.service' 'snapd.mounts-pre.target' 'snapd.mounts.target' 'snapd.recovery-chooser-trigger.service' 'snapd.seeded.service' 'snapd.snap-repair.service' 'snapd.snap-repair.timer' 'snapd.system-shutdown.service' >/dev/null || true
|
|
fi
|
|
fi
|
|
# End automatically added section
|
|
# Automatically added by dh_installdeb/13.6ubuntu1
|
|
dpkg-maintscript-helper rm_conffile /etc/grub.d/09_snappy 1.7.3ubuntu1 -- "$@"
|
|
# End automatically added section
|
|
# Automatically added by dh_installdeb/13.6ubuntu1
|
|
dpkg-maintscript-helper rm_conffile /etc/ld.so.conf.d/snappy.conf 2.0.7~ -- "$@"
|
|
# End automatically added section
|
|
# Automatically added by dh_installdeb/13.6ubuntu1
|
|
dpkg-maintscript-helper rm_conffile /etc/apparmor.d/usr.lib.snapd.snap-confine 2.23.6~ -- "$@"
|
|
# End automatically added section
|
|
# Automatically added by dh_installdeb/13.6ubuntu1
|
|
dpkg-maintscript-helper rm_conffile /etc/sudoers.d/99-snapd.conf 2.50~ -- "$@"
|
|
# End automatically added section
|
|
|