release-notes-snapcraft-6-0¶
The team behind Snapcraft is pleased to announce the release of Snapcraft 6.0.
Among its many updates, fixes and additions, the following are what we consider its highlights:
Snapcraft is itself now built on the core20 base snap
Building on core20 means we now support RISC-V (riscv64)
Experimental –offline mode for snap building without a network connection
For general details, including installation instructions, see Snapcraft overview, or take a look at Snapcraft release notes for other Snapcraft releases.
RISC-V support¶
Ubuntu 20.04 LTS introduced support for a new family of CPU architectures, riscv64. At the same time, the support for i386 was reduced to a skeleton list of 32-bit compatibility libraries. This means that the Snapcraft migration to core20 includes the addition of riscv64 and the removal of i386 in the list of supported build and run architectures.
This does not means i386 compatibility is lost, however:
Snapcraft already maintains two tracks in parallel; the mainstream version in the latest track, starting with version 5.x, and the legacy track 4.x, specifically designed for use with developers and publishers who require the use of ESM base (core), and cannot migrate to the newer bases. The legacy track supports core, and the i386 architecture.
Similarly, builds for core20 are already configured not to use and build for the i386 architecture, which reduces any potential disruption in development workflows for those already building their snaps with core20.
The change primarily impacts those publishers and developers who are building their snaps with core18 and are targeting the i386 architecture. However, much as we did with the introduction of the ESM support for Ubuntu 16.04 LTS, we want to make the change as seamless as possible. Indeed, the 32-bit compatibility libraries remain in the Ubuntu 20.04 archives, and are not affected by this migration.
Offline mode¶
By default, Snapcraft requires network connectivity to both source the Multipass or LXD images used to host the build environment, and to populate the build environment with whatever dependencies, source repositories, binaries, and other packages are required to build the snap.
It may sometimes be necessary, or helpful, to build snaps without this network dependency, such as when needing Aeroplane mode on a laptop, or in areas with restricted bandwidth. For those situations, Snapcraft has a (currently experimental) offline mode.
See Snapcraft offline mode for further details.
Full list of changes¶
schema: add “microk8s” to the list of allowed system users by @mardy in #3545
schema: add environment support for hooks (CRAFT-424) by @cjp256 in #3565
lint: disable new shellcheck warnings (CRAFT-482) by @cjp256 in #3574
snaps: eliminate extra call to query snap info (CRAFT-479) by @cjp256 in #3573
extensions: preload bindtextdomain from content snap if it exists by @kenvandine in #3569
cli & providers: pass part names for lifecycle commands (CRAFT-481) by @cjp256 in #3572
ROS V2 plugins: resolve conditional dependencies by @artivis in #3570
cli: add experimental –offline option (CRAFT-480) by @cjp256 in #3577
snap: move base to core20 (CRAFT-509) by @sergiusens in #3579
github: update snapcore/action-build dep by @sergiusens in #3582
environment-setup-local: do not build rust by @xnox in #3580
packaging: load the correct libraries on riscv64 by @xnox in #3581
build providers: snapcraft’s new base is core20 (CRAFT-544) by @sergiusens in #3583
repo: use host state for apt cache (CRAFT-488) by @cmatsuoka in #3585
yaml: detect and log warning on duplicate keys in snapcraft.yaml (CRAFT-553) by @cjp256 in #3518
lifecycle: init with core20 (CRAFT-517) by @sergiusens in #3587
snap: patch patchelf on riscv64 (CRAFT-566) by @sergiusens in #3588
snap: correct patch apply for patchelf by @sergiusens in #3589
snap: correct patch path quotes by @sergiusens in #3590
extensions: conditionally prepend to LIBVA_DRIVERS_PATH instead of overriding it by @oSoMoN in #3591
Ported font rendering fix from the desktop helpers. by @kenvandine in #3586
extensions/desktop: do not export a fixed QT_QPA_PLATFORM_THEME by @sergiusens in #3594
lifecycle, providers: skip network operations in offline mode (CRAFT-587) by @cmatsuoka in #3593