summaryrefslogtreecommitdiff
path: root/doc/internal/howto-update-snap.markdown
blob: 91e778679e4c2f522f123ae9f52bb1fd8a0288fa (plain) (blame)
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
46
How to re-build snap against up-to-date packages
------------------------------------------------

The snap's owner (currently Alexander Batischev) might receive an email from
the Snap Store saying:

> Subject: newsboat contains outdated Ubuntu packages
>
> A scan of this snap shows that it was built with packages from the Ubuntu
> archive that have since received security updates. The following lists new
> USNs for affected binary packages in each snap revision:
>
> [snip]
>
> Simply rebuilding the snap will pull in the new security updates and resolve
> this. If your snap also contains vendored code, now might be a good time to
> review it for any needed updates.

This document outlines how to rebuild the snap and push it out.

You'll need:
- a machine with Snap installed (I'm using a virtual machine running Ubuntu 20.04);
- login and password for the snap's owner account.

1. Navigate to your local clone of Newsboat.
2. Check out the latest release tag: `git checkout r2.20.1`.
3. Submit a remote build for all architectures mentioned in the email:

    $ snapcraft remote-build --build-on=s390x,ppc64el,arm64,armhf,amd64

4. Wait for the build to finish. It will create .snap files in the current
   directory.

5. If it doesn't exist yet, create _~/snapcraft.cred_ file:

    $ snapcraft export-login ~/snapcraft.cred

6. Load the credentials into an environment variable:

    $ export SNAPCRAFT_STORE_CREDENTIALS=$(cat ~/snapcraft.cred)

5. Upload built snaps to the Store, releasing them into all channels:

    $ for i in *.snap; do snapcraft upload --release=beta,candidate,stable $i ; done

6. Remove built snaps: `rm -f *.snap *.snap.xdelta3 newsboat*txt`.