Sindbad~EG File Manager
Current Path : /var/lib/dpkg/info/ |
|
Current File : /var/lib/dpkg/info/snapd.postrm |
#!/bin/sh
set -e
# "powerpc" is not supported unfortunately, do nothing here#
if [ "$DPKG_MAINTSCRIPT_ARCH" = powerpc ]; then
exit 0
fi
systemctl_stop() {
unit="$1"
echo "Stopping unit $unit"
systemctl stop -q "$unit" || true
for i in $(seq 20); do
echo "Waiting until unit $unit is stopped [attempt $i]"
if ! systemctl is-active -q "$unit"; then
echo "$unit is stopped."
return
fi
sleep .1
done
}
if [ "$1" = "purge" ]; then
# Undo any bind mounts to /snap and /var/snap that resulted from parallel
# installs for classic snaps or LP:#1668659 (for /snap only, that bug can't
# happen in trusty -- and doing this would mess up snap.mount.service there)
for mp in /snap /var/snap; do
if grep -q " $mp $mp" /proc/self/mountinfo; then
umount -l "$mp" || true
fi
done
units=$(systemctl list-unit-files --full | grep '^snap[-.]' | cut -f1 -d ' ' | grep -vF snap.mount.service || true)
mounts=$(echo "$units" | grep '^snap[-.].*\.mount$' || true)
services=$(echo "$units" | grep '^snap[-.].*\.service$' || true)
slices=$(echo "$units" | grep '^snap[-.].*\.slice$' || true)
for unit in $services $mounts $slices; 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 "Stopping $unit"
systemctl_stop "$unit"
# if it is a mount unit, we can find the snap name in the mount
# unit (we just ignore unit files)
snap=$(grep 'Where=/snap/' "/etc/systemd/system/$unit"|cut -f3 -d/)
rev=$(grep 'Where=/snap/' "/etc/systemd/system/$unit"|cut -f4 -d/)
if [ -n "$snap" ]; then
echo "Removing snap $snap and revision $rev"
# aliases
if [ -d /snap/bin ]; then
find /snap/bin -maxdepth 1 -lname "$snap" -delete
find /snap/bin -maxdepth 1 -lname "$snap.*" -delete
fi
# generated binaries
rm -f "/snap/bin/$snap"
rm -f "/snap/bin/$snap".*
# snap mount dir
# we pass -d (clean up loopback devices) for trusty compatibility
umount -d -l "/snap/$snap/$rev" 2> /dev/null || true
rm -rf --one-file-system "/snap/$snap/$rev"
rm -f "/snap/$snap/current"
# snap data dir
rm -rf --one-file-system "/var/snap/$snap/$rev"
rm -rf --one-file-system "/var/snap/$snap/common"
rm -f "/var/snap/$snap/current"
# opportunistic remove (may fail if there are still revisions left
for d in "/snap/$snap" "/var/snap/$snap"; do
if [ -d "$d" ]; then
rmdir --ignore-fail-on-non-empty "$d" || true
fi
done
# udev rules
find /etc/udev/rules.d -name "*-snap.${snap}.rules" -execdir rm -f "{}" \;
# dbus policy files
if [ -d /etc/dbus-1/system.d ]; then
find /etc/dbus-1/system.d -name "snap.${snap}.*.conf" -execdir rm -f "{}" \;
fi
# modules
rm -f "/etc/modules-load.d/snap.${snap}.conf"
rm -f "/etc/modprobe.d/snap.${snap}.conf"
# timer and socket units
find /etc/systemd/system -name "snap.${snap}.*.timer" -o -name "snap.${snap}.*.socket" | while read -r f; do
systemctl_stop "$(basename "$f")"
rm -f "$f"
done
# user services, sockets, and timers - we make no attempt to stop any of them.
# TODO: ask snapd to ask each snapd.session-agent.service to stop snaps
# user-session services and stop itself.
find /etc/systemd/user -name "snap.${snap}.*.timer" -o -name "snap.${snap}.*.socket" -o -name "snap.${snap}.*.service" | while read -r f; do
rm -f "$f"
done
fi
echo "Removing $unit"
rm -f "/etc/systemd/system/$unit"
rm -f "/etc/systemd/system/multi-user.target.wants/$unit"
rm -f "/etc/systemd/system/snapd.mounts.target.wants/$unit"
done
# Remove empty ".wants/" directory created by enabling mount units
rmdir "/etc/systemd/system/snapd.mounts.target.wants" || true
# Units may have been removed do a reload
systemctl -q daemon-reload || true
# snapd session-agent
rm -f /etc/systemd/user/snapd.session-agent.socket
rm -f /etc/systemd/user/snapd.session-agent.service
rm -f /etc/systemd/user/sockets.target.wants/snapd.session-agent.socket
# dbus activation configuration
rm -f /etc/dbus-1/session.d/snapd.session-services.conf
rm -f /etc/dbus-1/system.d/snapd.system-services.conf
# generated readme files
rm -f "/snap/README"
echo "Discarding preserved snap namespaces"
# opportunistic as those might not be actually mounted
if [ -d /run/snapd/ns ]; then
if [ "$(find /run/snapd/ns/ -name "*.mnt" | wc -l)" -gt 0 ]; then
for mnt in /run/snapd/ns/*.mnt; do
umount -l "$mnt" || true
rm -f "$mnt"
done
fi
find /run/snapd/ns/ \( -name '*.fstab' -o -name '*.user-fstab' -o -name '*.info' \) -delete
umount -l /run/snapd/ns/ || true
fi
# inside containers we have a generator that creates a bind mount to /snap
if [ -e /run/systemd/container ]; then
echo "Unmount /snap inside a container"
umount /snap || true
fi
echo "Final directory cleanup"
for d in "/snap/bin" "/snap" "/var/snap"; do
# Force remove due to directories for old revisions could still exist
rm -rf --one-file-system "$d" || true
if [ -d "$d" ]; then
echo "Cannot remove directory $d"
fi
done
echo "Removing extra snap-confine apparmor rules"
rm -f /etc/apparmor.d/snap.core.*.usr.lib.snapd.snap-confine
echo "Removing snapd cache"
rm -rf /var/cache/snapd/*
echo "Removing snapd state"
rm -rf /var/lib/snapd
fi
# Automatically added by dh_installdeb/11.1.6ubuntu1
dpkg-maintscript-helper rm_conffile /etc/sudoers.d/99-snapd.conf 2.50~ -- "$@"
# End automatically added section
# Automatically added by dh_installdeb/11.1.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/11.1.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/11.1.6ubuntu1
dpkg-maintscript-helper rm_conffile /etc/grub.d/09_snappy 1.7.3ubuntu1 -- "$@"
# End automatically added section
# Automatically added by dh_systemd_start/11.1.6ubuntu1
if [ -d /run/systemd/system ]; then
systemctl --system daemon-reload >/dev/null || true
fi
# End automatically added section
# Automatically added by dh_systemd_start/11.1.6ubuntu1
if [ -d /run/systemd/system ]; then
systemctl --system daemon-reload >/dev/null || true
fi
# End automatically added section
# Automatically added by dh_systemd_start/11.1.6ubuntu1
if [ -d /run/systemd/system ]; then
systemctl --system daemon-reload >/dev/null || true
fi
# End automatically added section
# Automatically added by dh_systemd_enable/11.1.6ubuntu1
if [ "$1" = "remove" ]; then
if [ -x "/usr/bin/deb-systemd-helper" ]; then
deb-systemd-helper mask 'snapd.aa-prompt-listener.service' 'snapd.apparmor.service' 'snapd.autoimport.service' 'snapd.core-fixup.service' 'snapd.recovery-chooser-trigger.service' 'snapd.seeded.service' 'snapd.service' 'snapd.snap-repair.timer' 'snapd.socket' 'snapd.system-shutdown.service' >/dev/null || true
fi
fi
if [ "$1" = "purge" ]; then
if [ -x "/usr/bin/deb-systemd-helper" ]; then
deb-systemd-helper purge 'snapd.aa-prompt-listener.service' 'snapd.apparmor.service' 'snapd.autoimport.service' 'snapd.core-fixup.service' 'snapd.recovery-chooser-trigger.service' 'snapd.seeded.service' 'snapd.service' 'snapd.snap-repair.timer' 'snapd.socket' 'snapd.system-shutdown.service' >/dev/null || true
deb-systemd-helper unmask 'snapd.aa-prompt-listener.service' 'snapd.apparmor.service' 'snapd.autoimport.service' 'snapd.core-fixup.service' 'snapd.recovery-chooser-trigger.service' 'snapd.seeded.service' 'snapd.service' 'snapd.snap-repair.timer' 'snapd.socket' 'snapd.system-shutdown.service' >/dev/null || true
fi
fi
# End automatically added section
# Automatically added by dh_apparmor/2.12-4ubuntu5.1
if [ "$1" = "purge" ] && ! [ -e "/etc/apparmor.d/usr.lib.snapd.snap-confine.real" ] ; then
rm -f "/etc/apparmor.d/disable/usr.lib.snapd.snap-confine.real" || true
rm -f "/etc/apparmor.d/force-complain/usr.lib.snapd.snap-confine.real" || true
rm -f "/etc/apparmor.d/local/usr.lib.snapd.snap-confine.real" || true
rmdir /etc/apparmor.d/disable 2>/dev/null || true
rmdir /etc/apparmor.d/local 2>/dev/null || true
rmdir /etc/apparmor.d 2>/dev/null || true
fi
# End automatically added section
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists