KDE neon live/installable images
Our images are built with build.neon.kde.org using the scripts in pangea-tooling nci/imager imager.rb starts a new containment and runs build.sh and copies the result to the web site dir for images.neon.kde.org
build.sh is run in the containment and installs the packages needed, sets some variables and runs ubuntu-defaults-image
ubuntu-defaults-image is a script copied from ubuntu-defaults-builder, an Ubuntu script intended to make locale specific ubuntu derived images (we ignore the template for meta package and locale stuff).
It uses Ubuntu’s fork of Debian’s live-build, it’s quite an old fork (3.0~ from August 2012) with lots of Ubuntu specific patches
live-build uses livecd-rootfs, Ubuntu hooks (/usr/share/livecd-rootfs/live-build/ubuntu-core/) to build the squashfs live filesystem
Bits we need to fork and customise
- ubuntu-defaults-image is adapted to read our hooks and ignore the kubuntu-desktop meta package, this can probably be done away with
- config-hooks/20_package_list.sh adds and removes some packages compared to kubuntu meta packages and tasks, this can probably be done away with
- config-hooks/apt.conf.sh adds apt debugging and no language pack settings
- config-hooks/repo.sh adds neon repo
- https://code.launchpad.net/~kdeneon/livecd-rootfs-neon/trunk is a branch of lp:livecd-rootfs/trunk it adds code to use our meta packages when PROJECT is set to neon
- neon:neon/seeds makes the neon-desktop and neon-live metapackages. Kubuntu uses a kubuntu-live apt task but our archive doesn’t support tasks so we use metapackages instead.
- https://launchpad.net/ubiquity-neon has our branch of ubiquity (branched from wily tag) with a few changes to remove branding
- base-files sets important files including lsb-release
- plymouth theme is now from Plasma breeze-plymouth
- grub theme is now from Plasma breeze-grub
- TODO: get neon-live installed, syslinux theme, set ubuntu archive to a mirror on live cd and installed image, set grub entry to be neon, make source images, sign images, make zsync work, archive old images, make working directory different for different jobs
live-build (at least the version we use) does not support UEFI so our images do not support UEFI
The latest Debian Live images have no UEFI in them so it hasn't been added there (and live-build is largely unmaintained).
Development versions of Tanglu include UEFI support, investigate how it does this.
Netrunner Kubuntu version does include UEFI support, it’s just a remaster of Kubuntu so I think copies Kubuntu’s stuff verbatim https://github.com/NeptuneOS/remaster-kit/blob/master/usr/share/remaster-kit/functions#L200 https://github.com/netrunner/build-scripts
Ubuntu images get their livefs built on Launchpad (using a not very well documented and somewhat incomplete coded part of Launchpad which I think it only useable by this team for this purpose) https://launchpad.net/~ubuntu-cdimage/+livefs/ubuntu/xenial/kubuntu/ which are seem to be built with livefs-rootfs (says launchpad code ./lib/lp/soyuz/templates/livefs-new.pt).
Then the ISO images are made by some magic proprietary script which takes the live image and adds its own stuff including UEFI support. This is probably a hidden fork of live-build. http://people.canonical.com/~ubuntu-archive/cd-build-logs/kubuntu/xenial/
Goodness knows, needs stuff signed by a key approved by microsoft