Skip to content

Instantly share code, notes, and snippets.

@maxiberta
Forked from glower/snapd-staging.sh
Last active October 4, 2019 14:22
Show Gist options
  • Save maxiberta/5fb47645b0d32137e13f5046ff330eb6 to your computer and use it in GitHub Desktop.
Save maxiberta/5fb47645b0d32137e13f5046ff330eb6 to your computer and use it in GitHub Desktop.
Build snapd for staging in a lxd container
#!/bin/bash
# use this script in a fresh lxd container
set -ex
tmp=$(mktemp -d)
cd "$tmp"
sudo apt update
sudo apt install golang-go
export GOPATH=$(pwd)
export PATH=$PATH:$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 -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 mv /usr/lib/snapd/snapd{,.orig}
sudo mv /usr/bin/snap{,.orig}
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{,.orig}
cd ${GOPATH}/src/github.com/snapcore/snapd/cmd/snap-seccomp
go build -i -v
sudo cp snap-seccomp /usr/lib/snapd/
cd -
# customize environment
sudo su -c 'echo "SNAPPY_USE_STAGING_STORE=1" >> /etc/environment'
sudo su -c 'echo "SNAPD_DEBUG=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