SwitchToLiveBuild

Differences between revisions 7 and 11 (spanning 4 versions)
Revision 7 as of 2011-05-23 15:18:32
Size: 4337
Editor: 82-69-40-219
Comment:
Revision 11 as of 2011-06-13 22:47:00
Size: 4021
Editor: 82-69-40-219
Comment:
Deletions are marked like this. Additions are marked like this.
Line 28: Line 28:
=== Notes === === Outstanding differences ===
Line 30: Line 30:
Current differences on i386 (live-build 3.0~a17-1):

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

 * vmlinuz/initramfs ([[http://bugs.debian.org/627665]])
 * /etc/adjtime (OK)
 * /etc/resolv.conf
(i386, live-build 3.0~a21-1ubuntu1)
Line 40: Line 34:
 * /etc/apt/trusted.gpg~ (OK)
 * /etc/group- (OK)
 * /etc/gshadow- (OK)
 * /etc/hosts (OK)
 * /etc/shadow- (OK)
 * /etc/udev/rules.d/70-persistent-net.rules (OK)
 * /sbin/initctl ([[http://bugs.debian.org/627406]])
Line 52: Line 39:
 * apt-xapian-index (maybe that package needs adjusting?)
 * /var/lib/dpkg/available-old (OK)
 * /var/lib/dpkg/diversions-old (OK)
 * /var/lib/dpkg/statoverride-old (OK)
 * /var/lib/dpkg/status-old (OK)
 * /var/lib/mlocate/mlocate.db ([[http://bugs.debian.org/627332]])
 * /var/log/apt/term.log (OK)
Line 62: Line 42:
 * /etc/apt/sources.list rather shorter in live-build
 * /etc/hostname is localhost.localdomain in live-build (OK)
Line 65: Line 43:
 * different set of updates applied (OK)
 * debconf/frontend not marked seen in live-build (OK)
 * dictionaries-common/default-wordlist marked seen in live-build (don't care?)
Line 76: Line 51:
 * lots of English locales added to /var/lib/belocs/hashfile in live-build (OK)
 * zh_CN.utf8, zh_SG.utf8 added to /var/lib/belocs/list in live-build (OK)
 * linux-image-2.6.38-8-generic, linux-base removed from /var/run/reboot-required.pkgs in live-build (don't care)
 * compress initramfs with lzma ([[http://bugs.debian.org/627677]])
Line 81: Line 52:
More configuration required: === Signed-off differences ===
Line 83: Line 54:
 * --linux-packages (especially on non-i386) (i386, live-build 3.0~a21-1ubuntu1)

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

 * /etc/adjtime
 * /etc/resolv.conf (empty, so harmless)

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

 * /etc/apt/trusted.gpg~
 * /etc/group-
 * /etc/gshadow-
 * /etc/hosts
 * /etc/shadow-
 * /etc/udev/rules.d/70-persistent-net.rules
 * /var/lib/dpkg/available-old
 * /var/lib/dpkg/diversions-old
 * /var/lib/dpkg/statoverride-old
 * /var/lib/dpkg/status-old
 * /var/log/apt/term.log

Other changes:

 * /etc/apt/sources.list rather shorter in live-build
 * /etc/hostname is localhost.localdomain in live-build
 * different set of updates applied
 * debconf/frontend not marked seen in live-build
 * dictionaries-common/default-wordlist marked seen in live-build (don't care?)
 * lots of English locales added to /var/lib/belocs/hashfile in live-build
 * zh_CN.utf8, zh_SG.utf8 added to /var/lib/belocs/list in live-build
 * linux-image-2.6.38-8-generic, linux-base removed from /var/run/reboot-required.pkgs in live-build
Line 86: Line 87:
CategorySpec  CategorySpec

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:

  • /usr/lib/firefox-4.0.1/dictionaries/DicOOo.sxw
  • /usr/lib/firefox-4.0.1/dictionaries/en-GB.aff
  • /usr/lib/firefox-4.0.1/dictionaries/en-GB.dic
  • /usr/lib/firefox-4.0.1/dictionaries/en-US.aff
  • /usr/lib/firefox-4.0.1/dictionaries/en-US.dic

Other changes:

  • /etc/kernel-img.conf shorter in live-build
  • nvidia-common/obsolete-driver not set to false in live-build (why was it?)
  • gettext-base Auto-Installed: 0 in live-build
  • iso-codes Auto-Installed: 0 in live-build
  • libfreetype6 Auto-Installed: 0 in live-build
  • libfuse2 Auto-Installed: 0 in live-build
  • linux-headers-2.6.38-8 Auto-Installed: 1 in livecd-rootfs
  • linux-headers-2.6.38-8-generic Auto-Installed: 1 in livecd-rootfs
  • uuid-runtime Auto-Installed: 0 in live-build

Signed-off differences

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

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

  • /etc/adjtime
  • /etc/resolv.conf (empty, so harmless)

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

  • /etc/apt/trusted.gpg~
  • /etc/group-
  • /etc/gshadow-
  • /etc/hosts
  • /etc/shadow-
  • /etc/udev/rules.d/70-persistent-net.rules
  • /var/lib/dpkg/available-old
  • /var/lib/dpkg/diversions-old
  • /var/lib/dpkg/statoverride-old
  • /var/lib/dpkg/status-old
  • /var/log/apt/term.log

Other changes:

  • /etc/apt/sources.list rather shorter in live-build
  • /etc/hostname is localhost.localdomain in live-build
  • different set of updates applied
  • debconf/frontend not marked seen in live-build
  • dictionaries-common/default-wordlist marked seen in live-build (don't care?)
  • lots of English locales added to /var/lib/belocs/hashfile in live-build
  • zh_CN.utf8, zh_SG.utf8 added to /var/lib/belocs/list in live-build
  • linux-image-2.6.38-8-generic, linux-base removed from /var/run/reboot-required.pkgs in live-build


FoundationsTeam/Specs/SwitchToLiveBuild (last edited 2011-06-13 22:47:00 by 82-69-40-219)