Summary

Ubuntu live CD builds have always been based on an in-house tool called livecd-rootfs. Since we started Ubuntu, Debian has also been working on live CDs, and has a tool called live-build which is capable of building Ubuntu images as well. There is little sense in maintaining two separate tools, so since live-build is more flexible we should switch to it.

Release Note

Live CD images are now built using live-build, making it easier for users to build customised images.

Rationale

Aside from general flexibility, live-build is also used by Canonical's OEM Services team, so switching to it provides internal benefits as well.

Implementation

The main work involved in switching to live-build is to analyse the differences between a filesystem image created by livecd-rootfs and one created by live-build in detail, and reconcile all of them either by adjusting live-build configuration, by changing live-build itself, or by signing off on the difference as one we don't need to care about.

Following this, we need to invent a way to pass live-build configuration across from the cdimage builder (because the ISO9660 wrapping will still be done on a single central machine, while live filesystems need to be built on machines of the appropriate architecture), and to run the appropriate build commands. For the time being, the BuildLiveCD script in livecd-rootfs will live on as a wrapper script for this, calling lb config and lb build to do the actual work. This may change in the future.

The required arguments to lb config will reside in cdimage code, since updating BuildLiveCD requires a sysadmin RT ticket and it will be useful to have an immediate way to make configuration changes.

Outstanding differences

(i386, live-build 3.0~a21-1ubuntu1)

Present in livecd-rootfs and not in live-build:

Other changes:

Signed-off differences

(i386, live-build 3.0~a21-1ubuntu1)

Present in live-build and not in livecd-rootfs:

Present in livecd-rootfs and not in live-build:

Other changes:


FoundationsTeam/Specs/SwitchToLiveBuild (last edited 2011-06-13 22:47:00 by cjwatson)