SwitchToLiveBuild

Differences between revisions 2 and 3
Revision 2 as of 2011-05-23 13:21:39
Size: 4028
Editor: 82-69-40-219
Comment:
Revision 3 as of 2011-05-23 13:23:13
Size: 4086
Editor: 82-69-40-219
Comment:
Deletions are marked like this. Additions are marked like this.
Line 30: Line 30:
{{{
Line 33: Line 32:
  vmlinuz/initramfs ([[http://bugs.debian.org/627665]])
  /etc/adjtime
  /etc/resolv.conf
 * vmlinuz/initramfs ([[http://bugs.debian.org/627665]])
 * /etc/adjtime
 * /etc/resolv.conf
Line 39: Line 38:
  /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]])
  /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
  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?)
 * /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]])
 * /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
 * 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 61: Line 60:
  /etc/apt/sources.list rather shorter in live-build
  /etc/hostname is localhost.localdomain in live-build (OK)
  /etc/kernel-img.conf shorter in live-build
  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?)
  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
  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
  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
 * /etc/apt/sources.list rather shorter in live-build
 * /etc/hostname is localhost.localdomain in live-build (OK)
 * /etc/kernel-img.conf shorter in live-build
 * 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?)
 * 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
 * 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
 * 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
Line 82: Line 81:
  --linux-packages
}}}
 * --linux-packages (especially on non-i386)

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.

Notes

Current differences on i386 (live-build 3.0~a17-1):

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

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

  • /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)

  • /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
  • 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?)

Other changes:

  • /etc/apt/sources.list rather shorter in live-build
  • /etc/hostname is localhost.localdomain in live-build (OK)
  • /etc/kernel-img.conf shorter in live-build
  • 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?)
  • 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
  • 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
  • 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

More configuration required:

  • --linux-packages (especially on non-i386)


CategorySpec

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