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.
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.
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 ...
These extensions are available in the latest version of Snapcraft.