Shared content example - ubuntu-app-platform

Timo Jyrinki timo.jyrinki at gmail.com
Fri Nov 11 14:46:15 UTC 2016


Hi,

I hinted at this earlier but 'ubuntu-app-platform' (name bikeshedded a
few times) is now there offering a huge amount of libraries via
content interface. We're using it for some builds of for example
Calculator, Calendar and other apps, dropping the size of those from
50+MB to even under 1MB.

It's used for the use case of using a same version of Qt (5.6.1) and
certain Ubuntu libraries on disk space constrained devices for several
(sn)apps, but it might also serve you as an example of how you could
share content similarly between your own snaps.

How it works is that there is now a snap in the store and an
associated cloud part 'desktop-ubuntu-app-platform' (see documentation
at the bottom of https://wiki.ubuntu.com/snapcraft/parts) that one can
use to easily plug into the platform offered by ubuntu-app-platform.
The extremely simple example produces 1MB snap
(https://code.launchpad.net/~timo-jyrinki/+snap/uitk-gallery/+build/9676/+files/uitk-gallery_0.1_amd64.snap)
that uses the hundreds of megabytes of shared libraries from the
platform snap.

Since this might be interesting approach to share libraries or other
content between several snap in general, I invite you to look at the
slot side maintained by the Ubuntu SDK team -
https://git.launchpad.net/ubuntu-app-platform/tree/snapcraft.yaml -
and the plug side of the simple(st) example -
http://bazaar.launchpad.net/~timo-jyrinki/+junk/uitk-gallery/view/head:/snapcraft.yaml

I hope this could help people interested in similar content sharing
use cases. Note that it's useful to define the "default-provider"
already even though the functionality of the field (automatic
downloading of the providing snap) is not yet implemented.

-Timo




More information about the Snapcraft mailing list