File: snapd.postinst

package info (click to toggle)
snapd 2.71-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 79,536 kB
  • sloc: ansic: 16,114; sh: 16,105; python: 9,941; makefile: 1,890; exp: 190; awk: 40; xml: 22
file content (45 lines) | stat: -rw-r--r-- 1,872 bytes parent folder | download | duplicates (2)
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#