Jump to content

Neon/InstallableImages

From KDE Community Wiki
Revision as of 15:11, 5 May 2016 by Riddell (talk | contribs)

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 depot and 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/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 xenial 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
  • syslinux theme is our own theme, TODO document how this works
  • TODO: 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

UEFI Support:

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/

SecureBoot Support

Goodness knows, needs stuff signed by a key approved by microsoft