Skip to content

Instantly share code, notes, and snippets.

@glower
Created April 10, 2019 12:52
Show Gist options
  • Save glower/a40a220ad3f3a1c37ec8bec9fdc3645f to your computer and use it in GitHub Desktop.
Save glower/a40a220ad3f3a1c37ec8bec9fdc3645f to your computer and use it in GitHub Desktop.
Build snapd for staging in a lxd container
#!/bin/sh
# use this script in a fresh lxd container
set -ex
tmp=$(mktemp -d)
cd "$tmp"
echo "get golang"
curl -O https://storage.googleapis.com/golang/go1.11.2.linux-amd64.tar.gz
tar -xvf go1.11.2.linux-amd64.tar.gz
sudo mv go /usr/local
export GOPATH=$(pwd)
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
echo "get snapd source"
git clone https://github.com/snapcore/snapd src/github.com/snapcore/snapd
cd src/github.com/snapcore/snapd
sudo apt-get -y build-dep ./
go get -u github.com/kardianos/govendor
govendor sync
cd -
echo "build binaries with staging keys"
go build -tags withstagingkeys -o snap-stg github.com/snapcore/snapd/cmd/snap
go build -tags withstagingkeys -o snapd-stg github.com/snapcore/snapd/cmd/snapd
sudo systemctl stop snapd.service snapd.socket
sudo cp -f snapd-stg /usr/lib/snapd/snapd
sudo cp -f snap-stg /usr/bin/snap
# just in case, remove all local snapd keys
sudo rm -rf /var/lib/snapd/assertions/asserts-v0
sudo rm -f /var/lib/snapd/state.json
sudo mv /usr/lib/snapd/snap-seccomp /usr/lib/snapd/snap-seccomp.tmp
cd ${GOPATH}/src/github.com/snapcore/snapd/cmd/snap-seccomp
go build -i -v
sudo cp snap-seccomp /usr/lib/snapd/
# customize environment
sudo su -c 'echo "SNAPPY_USE_STAGING_STORE=1" >> /etc/environment'
sudo su -c 'echo "SNAPD_DEBUG_HTTP=7" >> /etc/environment'
sudo su -c 'echo "SNAPPY_TESTING=1" >> /etc/environment'
sudo systemctl start snapd.service snapd.socket
echo "done, you can use snap with staging now"
snap search
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment