Permalink
Cannot retrieve contributors at this time
Fetching contributors…
| #!/bin/sh | |
| set -eu | |
| ROOT=$SNAP_COMMON/classic | |
| if [ -d $ROOT ]; then | |
| echo "classic already enabled" | |
| exit 1 | |
| fi | |
| if [ $(id -u) -ne 0 ]; then | |
| echo "This script needs to be called as root" >&2 | |
| exit 1 | |
| fi | |
| CORE="" | |
| if [ -e /snap/core/current ]; then | |
| CORE="core" | |
| elif [ -e /snap/ubuntu-core/current ]; then | |
| CORE="ubuntu-core" | |
| else | |
| echo "Cannot find core snap" | |
| exit 1 | |
| fi | |
| # FIXME: confinement will prevent this | |
| echo "Creating classic environment" | |
| VERSION="$(/bin/readlink /snap/${CORE}/current)" | |
| SNAPROOT="/var/lib/snapd/snaps/${CORE}_${VERSION}.snap" | |
| /usr/bin/unsquashfs -d $ROOT $SNAPROOT | |
| mkdir $ROOT/snappy | |
| # call the enable.sh script and make sure we have | |
| # DNS resolution available (needed by apt update) | |
| mkdir -p $ROOT/run/resolvconf | |
| cp /run/resolvconf/resolv.conf $ROOT/run/resolvconf/ | |
| sudo chroot $ROOT /var/lib/classic/enable.sh | |
| rm -rf $ROOT/run/resolvconf | |
| # copy important config | |
| for f in hostname timezone localtime; do | |
| cp -a /etc/writable/$f $ROOT/etc/writable | |
| done | |
| for f in hosts; do | |
| cp -a /etc/$f $ROOT/etc/ | |
| done | |
| # don't start services in the chroot on apt-get install | |
| cat <<EOF > "$ROOT/usr/sbin/policy-rc.d" | |
| #!/bin/sh | |
| while true; do | |
| case "\$1" in | |
| -*) shift ;; | |
| makedev) exit 0;; | |
| x11-common) exit 0;; | |
| *) exit 101;; | |
| esac | |
| done | |
| EOF | |
| chmod 755 "$ROOT/usr/sbin/policy-rc.d" | |
| # workaround bug in livecd-rootfs | |
| chmod 1777 "$ROOT/tmp" |