Development
This page explains how to build, test, and release the Antennas snap from source. Its only necessary for software developers who want to contribute to the project. The vast majority of users will likely want to just install the Antennas snap that was published to the official snap store using the Getting Started guide.
Build System
It is recommended that you have a dedicated Raspberry Pi to build the Antennas snap. Ideally, the build pi would be a Raspberry Pi 5 with at least 4gb of RAM and 32gb storage.
Install an operating system on your build system. I recommend installing Ubuntu Desktop 26.04 LTS.
Important
This snap must be built and run on the
arm64architecture. If you build the snap, or any parts, for a different architecture, you will receive a runtime error similar to this:cannot execute binary file: Exec format error.
Build tools
Install the snapcraft snap:
sudo snap install --classic snapcraft
Snapcraft needs to use one of two build providers: Multipass or LXD. Multipass hasn’t historically worked well with arm64 whereas LXD has. LXD is now the default build provider on linux.
Snapcraft will automatically try to install and configure LXD if you run it, or you can do so manually:
sudo snap install lxd
sudo lxd init --auto
Then add the lxd group to your user so you can run it as a non-root user:
sudo usermod -a -G lxd ${USER}
You must restart your computer for the new group assignment to take effect
Building
Run snapcraft clean && snapcraft pack --verbose for a fresh build. If you are sure you only changed a specific part, you can clean only that part with snapcraft clean part to save time on subsequent builds.
Installing and Testing
It is recommended that you have a dedicated Raspberry Pi to test this snap that is not the build system.
Transfer the built snap from your “build pi” to the “test pi” with sftp.
If you have previously installed this snap, remove it:
sudo snap remove --purge antennas
Since you are installing the snap we built locally, and not signed/asserted by the snap store, you must install it with the dangerous flag:
sudo snap install --dangerous ./antennas_1_arm64.snap
Tip: Add some aliases to your test pi’s ~/.bashrc (reconnect via ssh for changes to take effect):
alias resnap="reinstall && repermission && repassword && reenable"
alias reinstall="sudo snap remove --purge antennas && sudo snap install --dangerous antennas_1_arm64.snap"
alias repermission="sudo snap connect antennas:firewall-control && sudo snap connect antennas:network-control"
alias repassword="sudo antennas.config set --country-code=us --wifi-ssid=Test --wifi-password"
alias reenable="sudo snap start --enable antennas"
Releasing
After building the latest version and testing it, run:
snapcraft upload --release beta,stable --verbose antennas_1_arm64.snap
You may also choose to just upload to beta and then promote to stable later.