Skip to content

Instantly share code, notes, and snippets.

@sparkiegeek
Forked from glower/snapd-staging.sh
Created April 10, 2019 13:23
Show Gist options
  • Select an option

  • Save sparkiegeek/bcdaf4b988faa2a94bed8ec18e4fbfe3 to your computer and use it in GitHub Desktop.

Select an option

Save sparkiegeek/bcdaf4b988faa2a94bed8ec18e4fbfe3 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