Development
This document serves the purpose of gathering all the useful information regarding the construction of and development of the ubuntu-core flavor.
Overview
Every ubuntu-core image is composed of a defined set of snaps. The following section gives a quick overview of what each snap is about and includes a handy list of links for the given project.
The base (core) snap
This is the base filesystem with all the bare-essential libraries and tools for any system to work. Like the core snap, this is required to be present on any 18 core-enabled system. Basically it has to offer any crucial functionality that is needed for a minimal system to function and cannot be easily installed through separate snaps.
- Owner: Foundations Team
core18 for core series 18
LP project: https://code.launchpad.net/snap-core18
Snap recipe: https://code.launchpad.net/~ubuntu-core-service/+snap/core18
core16 for core series 16
LP project: https://code.launchpad.net/snap-core16
Snap recipe: https://code.launchpad.net/~ubuntu-core-service/+snap/core16
The gadget snap
Each supported device has its own gadget snap. Gadget snaps are what defines the device, carrying binaries for the bootloader, declaring the partition layout etc.
- Owner: Foundations Team
pi - universal gadget snap for all supported Raspberry Pi devices (pi2, pi3, cm3)
LP project: https://code.launchpad.net/snap-pi
Snap recipe: https://code.launchpad.net/~canonical-foundations/+snap/pi
dragonboard - the Dragonboard device
LP project: https://code.launchpad.net/snap-dragonboard
Snap recipe 18: https://code.launchpad.net/~canonical-foundations/+snap/dragonboard-18
Snap recipe 16: https://code.launchpad.net/~canonical-foundations/+snap/dragonboard
pc - gadget snap for amd64 and i386 devices
LP project: https://code.launchpad.net/snap-pc
Snap recipe amd64 18: https://code.launchpad.net/~canonical-foundations/+snap/pc-amd64-18
Snap recipe i386 18: https://code.launchpad.net/~canonical-foundations/+snap/pc-i386-18
Snap recipe amd64 16: https://code.launchpad.net/~canonical-foundations/+snap/pc-amd64-16
Snap recipe i386 16: https://code.launchpad.net/~canonical-foundations/+snap/pc-i386-16
There following gadget snaps are only used for the 16 series. Even though some of those repositories have 18 branches and/or include some snaps in the 18 track, they do not participate in any of the core18 images and should only be used for core16 (core):
The snapd snap
The snap offering snapd itself. This was once part of the core snap but it has been ripped out as a separate snap since recently.
- Owner: Snapd Team
Code branch: https://github.com/snapcore/snapd
The kernel snap
- Owner: Kernel Team
pi-kernel - the generic Raspberry Pi kernel for all supported Pi devices (pi2, pi3, cm3)
dragonboard-kernel
pc-kernel
For core16 only (not used for core18), legacy snaps:
pi2-kernel - the generic Raspberry Pi kernel, now renamed to pi-kernel.