Snapcraft extensions enable snap developers to easily incorporate a set of common requirements into a snap.
A snap developer creating a GTK 3 application snap, for example, can use the gnome-3-28
extension to expose the GTK 3 libraries to a snap at build and runtime without the snap developer needing specific deep knowledge about GTK 3.
Extensions help:
For a full list of supported extensions, see Supported extensions.
For more details on the snap building process, see Creating a snap.
All extensions are included with Snapcraft and can be listed with the following command:
$ snapcraft extensions
Extension name Supported bases
---------------- -----------------
gnome-3-28 core18
kde-neon core18
...
See Supported Extensions for the full list of extensions.
Make sure to use the latest version of Snapcraft to see all available extensions. Install it from the Snap Store.
Further information about any specific extension can be obtained by typing snapcraft extension
followed by the extension name:
$ snapcraft extension gnome-3-28
This extension eases creation of snaps that integrate with GNOME 3.28
...
Extensions modify the snapcraft.yaml
definition before a build. You can use the expand-extensions
command from your project’s root directory to see how the snapcraft.yaml
file will look with the extensions applied.
$ snapcraft expand-extensions
name: foliate
...
layout:
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/webkit2gtk-4.0:
bind: $SNAP/gnome-platform/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/webkit2gtk-4.0
/usr/share/xml/iso-codes:
bind: $SNAP/gnome-platform/usr/share/xml/iso-codes
apps:
foliate:
command: usr/bin/com.github.johnfactotum.Foliate
plugs:
- gsettings
- home
- desktop
- desktop-legacy
- wayland
- x11
slots:
- dbus-daemon
common-id: com.github.johnfactotum.Foliate.desktop
desktop: usr/share/applications/com.github.johnfactotum.Foliate.desktop
command-chain:
- snap/command-chain/desktop-launch
...
Last updated 4 months ago. Help improve this document in the forum.