Snapcraft 2.40 has landed in Ubuntu's main repositories

Mar 26, 2018 13:08 GMT  ·  By

Canonical's Snapcraft team announced over the weekend the release of Snapcraft 2.40, an incremental update to the open-source tool used for packaging Linux apps as Snaps for Ubuntu other Snap-enabled GNU/Linux distros.

Snapcraft 2.40 comes with a bunch of goodies for application developers who want to package their apps as Snaps for easy deployment across multiple Linux-based operating systems, including Ubuntu, Debian, Linux Mint, Fedora, OpenSuSE, Arch Linux, Solus, and Gentoo Linux.

Among the new features and improvements implemented in this release, we can mention initial support for bases to possibly target a new core base snap, for example, which is done by adding the "base: 'newcore'" entry to your snapcraft.yaml configuration file (where 'newcore' represents the new core base snap version).

"You should ideally be running snapcraft from 18.04 to test this feature. Keep in mind that there is still no transparent cleanbuild or project container support for this and enabled to get the feature rolling end to end for eager developers wanting to target this new core base," said Sergio Schvezov, Software Engineer at Canonical.

AppStream integration and elf mangling improvements

The elf mangling functionality that can be triggered when there's a newer version of the build environment than a given base or when setting the confinement mode to "classic," has been improved in Snapcraft 2.40 with better detection of the DT_NEEDED environment variable, as well as better error handling of non-elf files.

The architecture detection of elf files was improved as well, along with the list of RPATH, which makes elf files better use the $ORIGIN variable for quicker relocation. Optimizations are also present in the code for the extraction of the correct linker and Snapcraft's lifecycle execution for the discovery of DT_NEEDED environment variables.

The AppStream integration was improved as well to allow devs to use "common-id" under a Snap app's entry when extracting the information with the information extraction feature, with the desktop file and icon provisioned automatically. This is also useful for proper deduplication of apps on the Snap Store.

Other than that, the catkin plugin received support for recursive rosinstall files and better handling of profile scripts distributed by the used ROS stack, Snapcraft's bash completion script can now work with the Snap, and it's now possible to run either the "snapcraft version" or "snapcraft --version" commands to see the installed Snapcraft version.

Snapcraft 2.40 is coming soon to a GNU/Linux distribution near you if you plan on packaging your Linux apps in Canonical's Snap universal binary format, but it should be available shortly in the main software repositories of supported Ubuntu releases. OS maintainers can download the source tarball from GitHub.