Re: Status of gfxboot

2009-09-07 Thread Colin Watson
On Thu, Sep 03, 2009 at 09:58:21PM +0200, Daniel Baumann wrote:
> gfxboot-theme-ubuntu needs a small patch (attached) to adjust to the
> renaming of the userland executables.

Thanks, I've applied a similar patch in gfxboot-theme-ubuntu 0.8.4.

> I'll look into creating a gfxboot-theme-debian using a newer version of
> the bootsplash graphic redesigned[3] by pixelgirl. When there's
> something to show off, I'll post again an update so others can express
> their opinions.

As I mentioned on IRC, if gfxboot-theme-debian is based on
gfxboot-theme-ubuntu (and, given the amount of effort required to write
a theme from scratch, I'd be surprised if it weren't), please make sure
that you share gfxboot-theme-ubuntu's revision control history. I can
provide you with a git mirror of the bzr branch; just let me know where
I should put it.

-- 
Colin Watson   [cjwat...@debian.org]


-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Bug#588306: live-initramfs: Unreachable code in do_netmount

2010-07-07 Thread Colin Watson
Package: live-initramfs
Version: 1.236.2-1
Severity: normal
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu maverick

do_netmount is called in exactly one place:

if [ ! -z "${NETBOOT}" ] || [ ! -z "${FETCH}" ] || [ ! -z "${HTTPFS}" ] 
|| [ ! -z "${FTPFS}" ]
then
if do_netmount

That function then contains code guarded by this conditional:

if [ -z "${NETBOOT}" ] && [ -z "${FETCH}" ] && \
   [ -z "${HTTPFS}" ] && [ -z "${FTPFS}" ]
then

That code can therefore never be called.  When is it supposed to be run?

-- 
Colin Watson   [cjwat...@ubuntu.com]



-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100707084906.gs21...@riva.ucam.org



Bug#588307: live-initramfs: Unreachable code in Arguments

2010-07-07 Thread Colin Watson
Package: live-initramfs
Version: 1.236.2-1
Severity: normal
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu maverick

The Arguments function contains this code:

ethdevice=*)
DEVICE="${ARGUMENT#ethdevice=}"
export DEVICE
;;

ethdevice=*)
ETHDEVICE="${ARGUMENT#ethdevice=}"
export ETHDEVICE
;;

Only the first pattern will be matched.  The second is therefore
unreachable code.

-- 
Colin Watson   [cjwat...@ubuntu.com]



-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100707085156.gt21...@riva.ucam.org



Bug#603974: Info provided, help needed!

2011-01-25 Thread Colin Watson
On Tue, Jan 25, 2011 at 12:11:53PM +0100, Marco Amadori wrote:
> This bug seems to rely on two missing bits on two packages (patches included).
> 
> the package "live-build" does not include console-setup-udeb in the cdrom 
> "pool/" directory and live-installer do not "Depends:" on console-setup-udeb.
> 
> So the "/target" system have default "/etc/default/keyboard" file instead of 
> a 
> proper one.

Here's an alternative approach which I think is neater, because it
follows along with Daniel's previous attempt to fix this bug.  The
attached patch series reconfigures keyboard-configuration as well as
console-setup, and rearranges things a bit so that it actually
reconfigures effectively based on the information kbd-chooser provides
to /target in its post-base-installer hook.

So far I've only done a single test of this with a British English
keymap, but it worked fine for that case.  I plan to also test some
scenario where console-setup would normally use a different codeset to
see if that works.

Please review and comment.  I can go ahead and push these patches to
master if people like them.

> Fixing those two above mentioned quirks is not enough it seems, because the 
> resulting target, although having a proper configuration file, still needs a 
> "setupcon" after reboot in order to have things working.

I did not have this problem in my test.  (I don't think it would be
release-critical even if I did; this sort of problem is often a boot
race and likely only affects the console, not X.)

Cheers,

-- 
Colin Watson       [cjwat...@debian.org]
>From 8fd2fdf36ca109c85ed9f5113a497e9cec91e910 Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Wed, 26 Jan 2011 01:31:21 +
Subject: [PATCH 1/3] Move console-setup hook from live-installer.d to post-base-installer.d, so that it can pick up the value of debian-installer/keymap set by kbd-chooser's post-base-installer hook.

---
 debian/changelog   |8 ++
 debian/live-installer.install  |1 +
 live-installer.d/console-setup |   24 
 .../25live-installer-console-setup |   24 
 4 files changed, 33 insertions(+), 24 deletions(-)
 delete mode 100755 live-installer.d/console-setup
 create mode 100755 post-base-installer.d/25live-installer-console-setup

diff --git a/debian/changelog b/debian/changelog
index 01e8ea4..bc38ffd 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+live-installer (30) UNRELEASED; urgency=low
+
+  * Move console-setup hook from live-installer.d to post-base-installer.d,
+    so that it can pick up the value of debian-installer/keymap set by
+kbd-chooser's post-base-installer hook.
+
+ -- Colin Watson   Wed, 26 Jan 2011 01:30:15 +
+
 live-installer (29) unstable; urgency=low
 
   [ Otavio Salvador ]
diff --git a/debian/live-installer.install b/debian/live-installer.install
index d96b1cd..6f6a5ba 100644
--- a/debian/live-installer.install
+++ b/debian/live-installer.install
@@ -1,3 +1,4 @@
 live-installer.d	/usr/lib
+post-base-installer.d	/usr/lib
 finish-install.d	/usr/lib
 support/*		/lib/live-installer
diff --git a/live-installer.d/console-setup b/live-installer.d/console-setup
deleted file mode 100755
index 0ab0b5b..000
--- a/live-installer.d/console-setup
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh -e
-
-# Unfortunately, we can't use in-target here as this doesn't allow to set the
-# debconf frontend to noninteractive.
-
-. /lib/chroot-setup.sh
-
-if ! chroot_setup; then
-	logger -t live-installer -- "Unexpected error; command not executed: '$@'"
-	exit 1
-fi
-
-DEBIAN_FRONTEND=noninteractive
-export DEBIAN_FRONTEND
-
-# Reconfigure console-setup
-if [ -e /target/var/lib/dpkg/info/console-setup.postinst ]; then
-	log-output -t live-installer chroot /target \
-	dpkg-reconfigure --no-reload console-setup
-
-	chroot /target setupcon --save-only
-fi
-
-chroot_cleanup
diff --git a/post-base-installer.d/25live-installer-console-setup b/post-base-installer.d/25live-installer-console-setup
new file mode 100755
index 000..0ab0b5b
--- /dev/null
+++ b/post-base-installer.d/25live-installer-console-setup
@@ -0,0 +1,24 @@
+#!/bin/sh -e
+
+# Unfortunately, we can't use in-target here as this doesn't allow to set the
+# debconf frontend to noninteractive.
+
+. /lib/chroot-setup.sh
+
+if ! chroot_setup; then
+	logger -t live-installer -- "Unexpected error; command not executed: '$@'"
+	exit 1
+fi
+
+DEBIAN_FRONTEND=noninteractive
+export DEBIAN_FRONTEND
+
+# Reconfigure console-setup
+if [ -e /target/var/lib/dpkg/info/console-setup.postinst ]; then
+	log-output -t live-installer chroot /target \
+	dpkg-reconfigure --no-reload console-setup
+
+	chroot /target setupco

Re: Bug#603974: Info provided, help needed!

2011-01-26 Thread Colin Watson
On Wed, Jan 26, 2011 at 09:36:58AM +0100, Marco Amadori wrote:
> In data Wednesday 26 January 2011 02:43:12, Colin Watson ha scritto:
> > Please review and comment.  I can go ahead and push these patches to
> > master if people like them.
> 
> Your patches are working on my test environment too. I like them and yes, 
> please push them.
> 
> They are fixing this bug, many thanks for that quick and neat job.

No problem.  I hope this covers everything ... for the record, I've
tested British English and Russian, and Marco's tested Italian (and
Arabic?).

> If I understand also what I read on IRC, this imply that "console-setup-udeb" 
> is not required to be available on pool/ directory at all, or maybe just for 
> the GTK+ installer, right?

It shouldn't be needed in pool/ at all, as far as I know.  For the GTK+
installer, console-setup-udeb is built into the initrd so it isn't
needed in pool/.

-- 
Colin Watson   [cjwat...@debian.org]


-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110126110556.gh29...@riva.ucam.org



Bug#604783: needs to have entries for regular installer

2011-01-26 Thread Colin Watson
On Tue, Jan 25, 2011 at 06:52:17PM +0100, Daniel Baumann wrote:
> On 01/25/2011 10:01 AM, Julien Cristau wrote:
> > - live-installer is not removed yet, I was still hoping you'd want it in
> >   squeeze so you would do something about the serious bugs you filed
> 
> recently i realized that for some particular things in debian, it's
> better not to argue, so i stop trying.
> 
> > - if this bug is wishlist for 3.x, why is it serious for 2.x?
> 
> it was our own release goal for 2.x to have proper installers. as this
> apparently isn't going to happen, i'll might try again for 3.x.

As Philip pointed out, I fixed live-installer's RC bug (the one not
tagged squeeze-ignore, anyway) in unstable in consultation with Marco
Amadori, along with the progress bar issue.  I don't know of anything
else that would require live-installer to be dropped from squeeze.

What needs to change to make sure live-installer is still included on
the images?  Is it just a matter of not uploading a change you've made,
or does something need to be reverted?

-- 
Colin Watson   [cjwat...@debian.org]



-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110126124548.ga7...@master.debian.org



Bug#604783: needs to have entries for regular installer

2011-01-26 Thread Colin Watson
On Wed, Jan 26, 2011 at 02:09:45PM +0100, joseangon wrote:
> Another thing I was talking to Octavio, is the theme that creates and fstab
> for usb-hdd means:

Surely this should be a separate bug report, instead of you piggybacking
on this one ...

In any case, is this RC for squeeze?  It's not clear that we have time
to change this, particularly since your proposed patch is against
partman-target and thus would affect (and need to be tested with)
installation modes other than live-installer.

-- 
Colin Watson   [cjwat...@debian.org]



-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110126132018.gi29...@riva.ucam.org



Bug#626900: live-build: add support for Ubuntu oneiric

2011-05-16 Thread Colin Watson
Package: live-build
Version: 3.0~a16-1
Severity: wishlist
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric

The obvious six-monthly release bump.  Patch attached.

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From 16163c8945af9873cd40989568acfbeb0136c7a5 Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Mon, 16 May 2011 10:04:54 +0100
Subject: [PATCH] Add support for Ubuntu oneiric.

---
 functions/releases.sh |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/functions/releases.sh b/functions/releases.sh
index 1911359..cdddf95 100755
--- a/functions/releases.sh
+++ b/functions/releases.sh
@@ -26,3 +26,4 @@ RELEASE_karmic="9.10"
 RELEASE_lucid="10.04" # LTS
 RELEASE_maverick="10.10"
 RELEASE_natty="11.04"
+RELEASE_oneiric="11.10"
-- 
1.7.4.1



Bug#626905: live-build: incorrectly documents that -m == --mirror-bootstrap

2011-05-16 Thread Colin Watson
Package: live-build
Version: 3.0~a16-1
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric

Part of lb_config(1) incorrectly documents that -m is synonymous with
both --parent-mirror-bootstrap and --mirror-bootstrap.  Only the first
is true.  The attached patch corrects this.

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From 68e7bb22ecb1b76d3a84c9ad0cc4587a10ab9f2c Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Mon, 16 May 2011 10:50:13 +0100
Subject: [PATCH] Fix documentation of -m in lb_config(1).

---
 manpages/de/lb_config.de.1|2 +-
 manpages/en/lb_config.1   |2 +-
 manpages/po/de/lb_config.1.po |2 +-
 manpages/pot/lb_config.1.pot  |2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/manpages/de/lb_config.de.1 b/manpages/de/lb_config.de.1
index 3212dae..869f364 100644
--- a/manpages/de/lb_config.de.1
+++ b/manpages/de/lb_config.de.1
@@ -618,7 +618,7 @@ configured in the final image. By default,
 sets the location of the mirror that will be used to fetch the debian
 installer images. By default, this points to the same mirror used to build
 the live system, i.e. the value of \-\-parent\-mirror\-bootstrap.
-.IP "\-m|\fB\-\-mirror\-bootstrap\fP \fIURL\fP" 4
+.IP "\fB\-\-mirror\-bootstrap\fP \fIURL\fP" 4
 sets the location of the debian package mirror that should be used to
 bootstrap the derivative from. This defaults to
 http://ftp.de.debian.org/debian/ which may not be a good default if you live
diff --git a/manpages/en/lb_config.1 b/manpages/en/lb_config.1
index badbfa1..7d781d7 100644
--- a/manpages/en/lb_config.1
+++ b/manpages/en/lb_config.1
@@ -403,7 +403,7 @@ sets the location of the debian volatile package mirror that should end up confi
 sets the location of the debian backports package mirror that should end up configured in the final image. By default, 'http://backports.debian.org/debian-backports/' is used.
 .IP "\fB\-\-parent\-mirror\-debian\-installer\fR \fIURL\fR" 4
 sets the location of the mirror that will be used to fetch the debian installer images. By default, this points to the same mirror used to build the live system, i.e. the value of \-\-parent\-mirror\-bootstrap.
-.IP "\-m|\fB\-\-mirror\-bootstrap\fR \fIURL\fR" 4
+.IP "\fB\-\-mirror\-bootstrap\fR \fIURL\fR" 4
 sets the location of the debian package mirror that should be used to bootstrap the derivative from. This defaults to http://ftp.de.debian.org/debian/ which may not be a good default if you live outside of Europe.
 .IP "\fB\-\-mirror\-chroot\fR \fIURL\fR" 4
 sets the location of the debian package mirror that will be used to fetch the packages of the derivative in order to build the live system. By default, this is set to the value of \-\-mirror\-bootstrap.
diff --git a/manpages/po/de/lb_config.1.po b/manpages/po/de/lb_config.1.po
index f828ec7..681035b 100644
--- a/manpages/po/de/lb_config.1.po
+++ b/manpages/po/de/lb_config.1.po
@@ -2374,7 +2374,7 @@ msgstr ""
 #. type: IP
 #: en/lb_config.1:406
 #, no-wrap
-msgid "-m|B<--mirror-bootstrap> I"
+msgid "B<--mirror-bootstrap> I"
 msgstr ""
 
 #. type: Plain text
diff --git a/manpages/pot/lb_config.1.pot b/manpages/pot/lb_config.1.pot
index 13ff952..e26e6aa 100644
--- a/manpages/pot/lb_config.1.pot
+++ b/manpages/pot/lb_config.1.pot
@@ -2374,7 +2374,7 @@ msgstr ""
 #. type: IP
 #: en/lb_config.1:406
 #, no-wrap
-msgid "-m|B<--mirror-bootstrap> I"
+msgid "B<--mirror-bootstrap> I"
 msgstr ""
 
 #. type: Plain text
-- 
1.7.4.1



Bug#626900: live-build: add support for Ubuntu oneiric

2011-05-16 Thread Colin Watson
On Mon, May 16, 2011 at 12:00:18PM +0200, Daniel Baumann wrote:
> On 05/16/2011 11:34 AM, Colin Watson wrote:
> >The obvious six-monthly release bump.
> 
> this was already done in git some time ago, uploading today or tomorrow.
> 
> http://live.debian.net/gitweb?p=live-build.git;a=commitdiff;h=efc490377260699c8b31770bf4913c96d930e34e

Oh, I checked out from git and didn't notice the debian-next branch.
Thanks.

The comments in that commit are wrong, though.  LTS means "Long Term
Support", and only applies to dapper, hardy, and lucid so far, not
maverick or natty.  Perhaps you meant to write EOL?  Those releases will
also be more likely to reach end of life at the relevant number of
months from the release date, rather than at the start of the month.

Cheers,

-- 
Colin Watson   [cjwat...@ubuntu.com]



-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110516112634.gf23...@riva.ucam.org



Bug#626940: live-build: support installing tasks using apt-get

2011-05-16 Thread Colin Watson
Package: live-build
Version: 3.0~a16-1
Severity: wishlist
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric

apt-get has had the ability to install tasks itself for a few years now.
We use this in Ubuntu since it means we only need aptitude or tasksel if
we need more interactivity; for simply installing packages that contain
a given entry in their Task field, apt-get is more lightweight.  The
attached patch adds support for this to live-build, and makes it the
default for Ubuntu.

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From 04a63bfd70861dc6399a93a6b2f5c9c72729561c Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Mon, 16 May 2011 15:03:56 +0100
Subject: [PATCH] Allow installing tasks using apt-get, and do so by default for Ubuntu.

---
 functions/defaults.sh |   10 +-
 manpages/en/lb_config.1   |4 ++--
 scripts/build/lb_chroot_tasks |   13 +
 scripts/build/lb_config   |2 +-
 4 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/functions/defaults.sh b/functions/defaults.sh
index 4c0518a..cbdf1af 100755
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -214,7 +214,15 @@ Set_defaults ()
 	fi
 
 	# Setting tasksel
-	LB_TASKSEL="${LB_TASKSEL:-tasksel}"
+	case "${LB_MODE}" in
+		ubuntu)
+			LB_TASKSEL="${LB_TASKSEL:-apt}"
+			;;
+
+		*)
+			LB_TASKSEL="${LB_TASKSEL:-tasksel}"
+			;;
+	esac
 
 	# Setting root directory
 	case "${LB_MODE}" in
diff --git a/manpages/en/lb_config.1 b/manpages/en/lb_config.1
index 8e82782..07d7ab6 100644
--- a/manpages/en/lb_config.1
+++ b/manpages/en/lb_config.1
@@ -223,7 +223,7 @@
 .br
 	[\fB\-\-syslinux\-menu\fR true|false]
 .br
-	[\fB\-\-tasksel\fR aptitude|tasksel]
+	[\fB\-\-tasksel\fR apt|aptitude|tasksel]
 .br
 	[\fB\-\-tasks\fR \fITASK\fR|"\fITASKS\fR"]
 .br
@@ -476,7 +476,7 @@ defines the file of the syslinux splash graphic that should be used instead of t
 defines the timeout the syslinux bootloader should wait for input from the user at the bootprompt prior booting the default kernel. This defaults to 0 which means it will wait forever.
 .IP "\fB\-\-syslinux\-menu\fR true|false" 4
 defines if syslinux should be make use of the vgamenu capabilities or not.
-.IP "\fB\-\-tasksel\fR aptitude|tasksel" 4
+.IP "\fB\-\-tasksel\fR apt|aptitude|tasksel" 4
 selects which program is used to install tasks. By default, this is set to tasksel.
 .IP "\fB\-\-tasks\fR \fITASK\fR|""\fITASKS\fR""" 4
 defines one or more package tasks to be installed in the live system. This is a quick and convenient way to get a reasonable default selection of packages suitable for most users when building an image, but it results in quite big images. If you want to have finer grained package selections,  local package lists should be used instead.
diff --git a/scripts/build/lb_chroot_tasks b/scripts/build/lb_chroot_tasks
index 72db9f6..477d755 100755
--- a/scripts/build/lb_chroot_tasks
+++ b/scripts/build/lb_chroot_tasks
@@ -45,6 +45,10 @@ then
 
 	# Checking depends
 	case "${LB_TASKSEL}" in
+		apt)
+			Check_package chroot/usr/bin/apt-get apt
+			;;
+
 		aptitude)
 			Check_package chroot/usr/bin/aptitude aptitude
 			;;
@@ -59,6 +63,15 @@ then
 
 	# Installing tasks
 	case "${LB_TASKSEL}" in
+		apt)
+			APT_TASKS=
+			for TASK in ${LB_TASKS}
+			do
+APT_TASKS="${APT_TASKS:+$APT_TASKS }$TASK^"
+			done
+			Chroot chroot "apt-get ${APT_OPTIONS} install ${APT_TASKS}"
+			;;
+
 		aptitude)
 			Chroot chroot "aptitude ${APTITUDE_OPTIONS} install ${LB_TASKS}"
 			;;
diff --git a/scripts/build/lb_config b/scripts/build/lb_config
index c3ae0eb..0e36240 100755
--- a/scripts/build/lb_config
+++ b/scripts/build/lb_config
@@ -135,7 +135,7 @@ USAGE="${PROGRAM}   [--apt apt|aptitude]\n\
 \t[--source true|false]\n\
 \t[-s|--source-images iso|net|tar|usb-hdd]\n\
 \t[--syslinux-theme THEME_SUFFIX]\n\
-\t[--tasksel aptitude|tasksel]\n\
+\t[--tasksel apt|aptitude|tasksel]\n\
 \t[--tasks TASK|\"TASKS\"]\n\
 \t[--templates PATH]\n\
 \t[--virtual-root-size MB]\n\
-- 
1.7.4.1



Bug#627183: live-build: minimal hook doesn't seem appropriate for Ubuntu

2011-05-18 Thread Colin Watson
Package: live-build
Version: 3.0~a16-1
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric

In Ubuntu, we have a task called "minimal" which is what debootstrap
installs, and our old live filesystem builder passes 'minimal^' as one
of the arguments to 'apt-get install'.  I'd like to keep doing this
after we switch to live-build - it's organisationally useful for us to
have this as a task.

However, live-build wants to run the minimal hook if you ask it to
install the minimal task, which strips out several things that we
consider should be installed.  In Debian I assume this isn't a problem
because there's no task called "minimal", but it would be quite a hassle
for us to rename our existing task now.

There doesn't seem to be any way to exclude a hook that happens to match
a task name, and since hooks get a stripped environment I wasn't able to
check LB_MODE in the hook itself either.  Would something like the
attached patch be agreeable to you, or would you prefer some different
approach?

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From 1274f14611533d72b09c4a52c4ad4daeac765de6 Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Wed, 18 May 2011 14:37:14 +0100
Subject: [PATCH] Don't run minimal hook for Ubuntu.

---
 functions/defaults.sh |6 ++
 scripts/build/lb_chroot_hooks |6 ++
 2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/functions/defaults.sh b/functions/defaults.sh
index 2aa677f..8526335 100755
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -575,6 +575,12 @@ Set_defaults ()
 
 	# LB_HOOKS
 
+	case "${LB_MODE}" in
+		ubuntu)
+			LB_EXCLUDE_HOOKS="${LB_EXCLUDE_HOOKS:-minimal}"
+			;;
+	esac
+
 	# Setting interactive shell/X11/Xnest
 	LB_INTERACTIVE="${LB_INTERACTIVE:-false}"
 
diff --git a/scripts/build/lb_chroot_hooks b/scripts/build/lb_chroot_hooks
index 3a15956..cb5296f 100755
--- a/scripts/build/lb_chroot_hooks
+++ b/scripts/build/lb_chroot_hooks
@@ -43,6 +43,12 @@ HOOKS="$(echo ${LB_HOOKS} ${LB_PACKAGE_LISTS} ${LB_TASKS} | sed -e 's| |\n|g' |
 
 for HOOK in ${HOOKS}
 do
+	case " ${LB_EXCLUDE_HOOKS} " in
+		*" ${HOOK} "*)
+			continue
+			;;
+	esac
+
 	if [ -f ${LB_BASE:-/usr/share/live/build}/hooks/"${HOOK}" ]
 	then
 		# Copying hook
-- 
1.7.4.1



Bug#627183: live-build: minimal hook doesn't seem appropriate for Ubuntu

2011-05-19 Thread Colin Watson
On Wed, May 18, 2011 at 07:47:51PM +0200, Daniel Baumann wrote:
> On 05/18/2011 03:43 PM, Colin Watson wrote:
> >it would be quite a hassle for us to rename our existing task now.
> 
> it's not nice to rename it for debian too; however..
> 
> >There doesn't seem to be any way to exclude a hook that happens to match
> >a task name, and since hooks get a stripped environment I wasn't able to
> >check LB_MODE in the hook itself either.  Would something like the
> >attached patch be agreeable to you, or would you prefer some different
> >approach?
> 
> ..i think it's worse to have l-b behave differently in that aspect
> depending on if its building debian or ubuntu.

Hmm.  OK, perhaps ...

> any suggestion for a new name for 'minimal'?

There's substantial overlap with 'stripped'.  Maybe 'reduced' or
'cleaned' or something.

Another approach would be to note that since there's no equivalent of
#include in package lists for tasks, it's more reasonable to use a
'minimal' task directly, and so 'minimal' could be excluded from
LB_HOOKS if it came from LB_TASKS.  That wouldn't need to be
distribution-specific since there's no 'minimal' task for Debian.

Alternatively: we really only install the 'minimal' task as a safety
net, since debootstrap should already install all the same packages.  If
you think that all of these options are too nasty, then we could just
drop the safety net and not bother to tell live-build to install the
'minimal' task, in which case we could close this bug.

Let me know what you prefer?

-- 
Colin Watson   [cjwat...@ubuntu.com]



-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110519152616.gx23...@riva.ucam.org



Bug#627332: update mlocate database?

2011-05-19 Thread Colin Watson
Package: live-build
Version: 3.0~a17-1
Severity: wishlist
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric

Our current Ubuntu live filesystem builder updates the mlocate database
in the squashfs.  This is convenient because you get to use locate in
the live session without having to wait for updatedb, and because after
you install the system it doesn't have to do very much work to update
the locate database (particularly true with mlocate versus previous
versions of locate).

The trade-off is that the database takes a bit of space; it's about half
a megabyte compressed here for a 700 megabyte squashfs.  However, this
should scale with the size of the image, so I think it's reasonably
tolerable.

Do you think that it would be OK to do this by default (see attached
patch), or do you want it to be more configurable?  I'd appreciate some
guidance on this, as I haven't quite got a feel yet for what you
consider to be good practice in live-build.

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From bca7bc8bf750ed00b85edfa228405dde89cbaee8 Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Thu, 19 May 2011 14:42:43 +0100
Subject: [PATCH] Update the mlocate database.

---
 scripts/build/lb_chroot_hacks |8 
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/scripts/build/lb_chroot_hacks b/scripts/build/lb_chroot_hacks
index 2a58c0f..194d667 100755
--- a/scripts/build/lb_chroot_hacks
+++ b/scripts/build/lb_chroot_hacks
@@ -189,6 +189,14 @@ Chroot chroot "${UPDATE_INITRAMFS_OPTIONS} update-initramfs -k all -t -u"
 # people might do in local hooks, and there might be no initrds at all.
 find chroot/boot -name 'initrd*' -print0 | xargs -r -0 chmod go+r
 
+# Update the mlocate database.  It's convenient for this to be already up to
+# date on the live system, and it means that if the live system is later
+# installed to a hard disk then less work will be required after
+# installation.
+if [ -x chroot/usr/bin/updatedb.mlocate ]; then
+	Chroot chroot updatedb.mlocate
+fi
+
 # Remove build systems clock drift
 echo "0.0 0 0.0" > chroot/etc/adjtime
 
-- 
1.7.4.1



Bug#627332: update mlocate database?

2011-05-19 Thread Colin Watson
On Thu, May 19, 2011 at 10:01:22PM +0200, intrigeri wrote:
> Colin Watson wrote (19 May 2011 16:04:17 GMT) :
> > Do you think that it would be OK to do this by default (see attached
> > patch), or do you want it to be more configurable?
> 
> I'm no live-build maintainer, but any proposal of adding more to
> lb_chroot_hacks makes me a bit nervous and think of other ways to
> achieve the same result.

Sure, I understand the caution; I'm also willing to consider local
hooks, but given that what I'm doing is attempting to convert the
official Ubuntu live CD builds to live-build, I'd really rather get to
the point where 'lb config --mode ubuntu ' is as close as
possible to the output we have with our previous system, without the
need for custom hooks.  Thus, I'm going through the differences between
filesystems generated by the two systems and trying to resolve them.

> E.g. wouldn't it be nicer to add a (low-priority, disabled by default)
> debconf option to mlocate, that would update the mlocate db in
> mlocate.postinst when it is enabled? This way, everyone (rather than
> Debian Live users only) would get a way to opt-in for the
> "ready-to-work mlocate once installed" functionality by preseeding the
> package. Some Debian Derivatives might want to enable it.

There's no particular guarantee that mlocate.postinst runs sufficiently
late in the process for the locate database to be reasonably complete
(it would probably be after the bulk of files have been unpacked, but it
would really be better if this were done as close to the end as
possible).  Triggers don't really offer the right interface either, and
in any case doing something like 'interest /' in a triggers file would
likely slow the whole process down unreasonably.

Cheers,

-- 
Colin Watson   [cjwat...@debian.org]



-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110519203953.gz23...@riva.ucam.org



Bug#627406: duplicate deconfiguration in lb_binary if build-with-chroot is false

2011-05-20 Thread Colin Watson
Package: live-build
Version: 3.0~a17-1
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric

The conditions for installing and removing various things at the start
and end of lb_binary don't quite match up in the case where
build-with-chroot is false.  The effect of this in my build, which I
noticed when diffing the chroot left behind by livecd-rootfs with that
left behind by live-build, is that /sbin/initctl gets entirely removed
from the chroot.  It seems to me that the install/remove conditions
should match.  The attached patch fixes this.

(The builder that builds Ubuntu live filesystems always does so in a
current chroot matching the release it's building, so there's no point
in using another nested chroot in our case.)

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From 7ecd0f223115cd51d8880564b6371681574c3dd5 Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Fri, 20 May 2011 12:39:59 +0100
Subject: [PATCH] Fix duplicate deconfiguration of apt, upstart, and sysv-rc if build-with-chroot is false.

---
 scripts/build/lb_binary |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/scripts/build/lb_binary b/scripts/build/lb_binary
index 0b48941..738363d 100755
--- a/scripts/build/lb_binary
+++ b/scripts/build/lb_binary
@@ -93,15 +93,15 @@ if [ "${LB_BUILD_WITH_CHROOT}" = "true" ]
 then
 	# Deconfiguring chroot
 	rm -f .stage/chroot_sources
+	lb chroot_apt remove ${*}
+	lb chroot_upstart remove ${*}
+	lb chroot_sysv-rc remove ${*}
 	lb chroot_hostname remove ${*}
 	lb chroot_resolv remove ${*}
 	lb chroot_hosts remove ${*}
 fi
 
-lb chroot_apt remove ${*}
-lb chroot_sysv-rc remove ${*}
 lb chroot_sysfs remove ${*}
-lb chroot_upstart remove ${*}
 lb chroot_selinuxfs remove ${*}
 lb chroot_proc remove ${*}
 lb chroot_devpts remove ${*}
-- 
1.7.4.1



Bug#627439: handling Ubuntu's multiple manifest scheme

2011-05-20 Thread Colin Watson
Package: live-build
Version: 3.0~a17-1
Severity: wishlist
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu oneiric

I'm looking for some guidance on one of the remaining major pieces
involved in making live-build usable for official Ubuntu live filesystem
builds.

Most package installation in our current live filesystem builds is done
in two stages.  The first corresponds to the packages that should be
copied to an installed system when installing from the live CD, and the
second corresponds to the packages that may need to be removed from the
installed system: this includes live CD boot infrastructure, the
installer itself, and other bits and pieces such as language packs.  At
the end of the first stage, we write out filesystem.manifest-desktop; at
the end of the second stage, we write out filesystem.manifest.

After copying files to disk, the installer takes the set of packages in
filesystem.manifest but not in filesystem.manifest-desktop, eliminates
any packages from that set that some bit of the installer explicitly
asked to keep (for example, we might as well keep the language packs
corresponding to the user's language rather than making them reinstall
them from the network), and removes that set of packages from disk.

live-build doesn't currently support this kind of two-stage installation
except by means of local hooks, and as explained in
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=627332#25 I would like
to find a way to do this without local hooks.  I'm happy to do the
implementation work, but do you have any ideas on a nice way to do this
within the structure of live-build?

There is of course the possibility of not bothering with a two-stage
installation, and instead computing filesystem.manifest-desktop
independently.  I'm reluctant to take this approach because it would
carry risk of archive skew and/or simple coding errors resulting in
filesystem.manifest-desktop not matching what apt would have installed
at that point in a hypothetical two-stage installation; but it's an
option if you think this just won't fit.

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]



-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110520162545.gp23...@riva.ucam.org



Bug#627665: option to remove kernel+initrd from compressed filesystem

2011-05-23 Thread Colin Watson
Package: live-build
Version: 3.0~a17-1
Severity: wishlist
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric

On the Ubuntu live CDs, we have a hack to save some space: rather than
shipping the kernel and initrd both in the ISO9660 filesystem (for
booting) and in the squashfs (for installing), we remove the duplicate
copies from the squashfs, and our installer is smart enough to copy
those files from the ISO9660 filesystem if it needs to.  This saves us
17MiB or so of CD space at the cost of a small amount of code
complexity.

We'll be able to get rid of this hack once we switch to GRUB as our CD
boot loader, since it can read files out of the squashfs directly; but
even so it seems like something other folks might find useful,
particularly if they're creating a live CD that isn't intended to be
installable.

The attached patch adds 'lb config --binary-remove-linux true'.  Feel
free to rename the option if some other name would fit better, though.

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From dfaac39fe91755c5cfc7e34b85d52633df5bfd0c Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Mon, 23 May 2011 13:12:01 +0100
Subject: [PATCH] Add an option to remove the kernel and initrd from the compressed filesystem.

---
 functions/defaults.sh   |2 ++
 manpages/en/lb_config.1 |4 
 scripts/build/lb_binary_linux-image |6 ++
 scripts/build/lb_config |   12 +++-
 4 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/functions/defaults.sh b/functions/defaults.sh
index 8526335..a1e5c83 100755
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -826,6 +826,8 @@ Set_defaults ()
 			;;
 	esac
 
+	LB_BINARY_REMOVE_LINUX="${LB_BINARY_REMOVE_LINUX:-false}"
+
 	# Setting apt indices
 	case "${LB_MODE}" in
 		progress)
diff --git a/manpages/en/lb_config.1 b/manpages/en/lb_config.1
index 88fcc9b..5e247b4 100644
--- a/manpages/en/lb_config.1
+++ b/manpages/en/lb_config.1
@@ -33,6 +33,8 @@
 .br
 	[\fB\-\-binary\-filesystem\fR fat16|fat32|ext2]
 .br
+	[\fB\-\-binary\-remove\-linux\fR true|false]
+.br
 	[\fB\-\-bootappend\-install\fR \fIPARAMETER\fR|\fI"PARAMETERS"\fR]
 .br
 	[\fB\-\-bootappend\-live\fR \fIPARAMETER\fR|\fI"PARAMETERS"\fR]
@@ -281,6 +283,8 @@ defines the architecture of the to be build image. By default, this is set to th
 defines the image type to build. By default, for images using syslinux this is set to iso\-hybrid to build CD/DVD images that may also be used like usb\-hdd images, for non\-syslinux images, it defaults to iso.
 .IP "\fB\-\-binary\-filesystem\fR fat16|fat32|ext2" 4
 defines the filesystem to be used in the image type. This only has an effect if the selected binary image type does allow to choose a filesystem. For example, when selection iso the resulting CD/DVD has always the filesystem ISO9660. When building usb\-hdd images for usb sticks, this is active. Note that it defaults to fat16 on all architectures except sparc where it defaults to ext2. Also note that if you choose fat16 and your resulting binary image gets bigger than 2GB, the binary filesystem automatically gets switched to fat32.
+.IP "\fB\-\-binary\-remove\-linux\fR true|false" 4
+defines if the Linux kernel and initrd should be removed from the filesystem (they will still be published in the binary output directory). This is useful to reduce image size if the image is not meant to be installable, or if the installer is intelligent enough to copy the kernel and initrd from the top-level image rather than from the compressed filesystem. Default is false.
 .IP "\fB\-\-bootappend\-install\fR \fIPARAMETER\fR|""\fIPARAMETERS\fR""" 4
 sets boot parameters specific to debian\-installer, if included.
 .IP "\fB\-\-bootappend\-live\fR \fIPARAMETER\fR|""\fIPARAMETERS\fR""" 4
diff --git a/scripts/build/lb_binary_linux-image b/scripts/build/lb_binary_linux-image
index cac19d8..c5a8cc6 100755
--- a/scripts/build/lb_binary_linux-image
+++ b/scripts/build/lb_binary_linux-image
@@ -76,6 +76,12 @@ mkdir -p "${DESTDIR}"
 cp chroot/boot/"${LINUX}"-* "${DESTDIR}"
 cp chroot/boot/initrd.img-* "${DESTDIR}"
 
+if [ "${LB_BINARY_REMOVE_LINUX}" = true ]
+then
+	rm -f chroot/boot/"${LINUX}"-*
+	rm -f chroot/boot/initrd.img-*
+fi
+
 case "${LB_INITRAMFS}" in
 	live-boot)
 		if [ -e chroot/usr/share/doc/live-boot/parameters.txt ]
diff --git a/scripts/build/lb_config b/scripts/build/lb_config
index 0e36240..a2f90eb 100755
--- a/scripts/build/lb_config
+++ b/scripts/build/lb_config
@@ -41,6 +41,7 @@ USAGE="${PROGRAM}   [--apt apt|aptitude]\n\
 \t[-a|--architectures ARCHITECTURE]\n\
 \t[-b|--binary-images iso|iso-hybrid|net|tar|usb-hdd]\n\
 \t[--binary-filesystem 

Bug#627677: alternative initramfs compressor

2011-05-23 Thread Colin Watson
Package: live-build
Version: 3.0~a17-1
Severity: wishlist
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric

We compress the initramfs on the Ubuntu live CD with LZMA to save a bit
of space.  Here's a patch to allow live-build to do this.

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From 71d20b7f5a057c0e234fc1080d61a8840d9e0ad6 Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Mon, 23 May 2011 15:43:59 +0100
Subject: [PATCH] Add --initramfs-compression option.

---
 functions/defaults.sh |4 
 manpages/en/lb_config.1   |4 
 scripts/build/lb_chroot_hacks |   25 +
 scripts/build/lb_config   |   12 +++-
 4 files changed, 44 insertions(+), 1 deletions(-)

diff --git a/functions/defaults.sh b/functions/defaults.sh
index a1e5c83..b6824b7 100755
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -84,6 +84,8 @@ Set_defaults ()
 
 	LZIP_OPTIONS="${LZIP_OPTIONS:---best}"
 
+	LZMA_OPTIONS="${LZMA_OPTIONS:---best}"
+
 	# Setting apt recommends
 	case "${LB_MODE}" in
 		emdebian|progress)
@@ -153,6 +155,8 @@ Set_defaults ()
 			;;
 	esac
 
+	LB_INITRAMFS_COMPRESSION="${LB_INITRAMFS_COMPRESSION:-gzip}"
+
 	# Setting initsystem
 	case "${LB_MODE}" in
 		ubuntu)
diff --git a/manpages/en/lb_config.1 b/manpages/en/lb_config.1
index 5e247b4..a8a9c6f 100644
--- a/manpages/en/lb_config.1
+++ b/manpages/en/lb_config.1
@@ -111,6 +111,8 @@
 .br
 	[\fB\-\-initramfs\fR auto|none|live\-boot|casper]
 .br
+	[\fB\-\-initramfs\-compression\fR bzip2|gzip|lzma]
+.br
 	[\fB\-\-initsystem\fR sysvinit|runit|systemd|upstart|none]
 .br
 	[\fB\-\-interactive\fR shell]
@@ -361,6 +363,8 @@ sets the hostname of the live system.
 sets the path to the includes that live\-build is going to use, e.g. additional minimal documentation that you want to have on all live systems. By default, this is set to /usr/share/live/build/includes/. Choose none to disable inclusion of documentation.
 .IP "\fB\-\-initramfs\fR auto|none|live\-boot|casper" 4
 sets the name of package that contains the live system specific initramfs modification. By default, auto is used, which means that at build time of the image rather than on configuration time, the value will be expanded to casper when building ubuntu systems, to live\-boot for all other systems. Using 'none' is useful if the resulting system image should not be a live image (experimental).
+.IP "\fB\-\-initramfs\-compression\fR bzip2|gzip|lzma]
+defines the compression program to be used to compress the initramfs. Defaults to gzip.
 .IP "\fB\-\-interactive\fR shell" 4
 defines if after the chroot stage and before the beginning of the binary stage, a interactive shell login should be spawned in the chroot in order to allow you to do manual customizations. Once you close the shell with logout or exit, the build will continue as usual. Note that it's strongly discouraged to use this for anything else than testing. Modifications that should be present in all builds of a live system should be properly made through hooks. Everything else destroys the beauty of being able to completely automatise the build process and making it non interactive. By default, this is of course false.
 .IP "\fB\-\-isohybrid\-options\fR \fIOPTION\fR|""\fIOPTIONS\fR""" 4
diff --git a/scripts/build/lb_chroot_hacks b/scripts/build/lb_chroot_hacks
index 194d667..12279fd 100755
--- a/scripts/build/lb_chroot_hacks
+++ b/scripts/build/lb_chroot_hacks
@@ -183,6 +183,31 @@ esac
 
 Chroot chroot "${UPDATE_INITRAMFS_OPTIONS} update-initramfs -k all -t -u"
 
+# We probably ought to use COMPRESS= in a temporary file in
+# /etc/initramfs-tools/conf.d/ instead, but it's hard to pass options that
+# way.
+case "${LB_INITRAMFS_COMPRESSION}" in
+	gzip)
+		;;
+
+	bzip2)
+		for INITRAMFS in $(find chroot/boot -name 'initrd*'); do
+			zcat "${INITRAMFS}" | bzip2 -c ${BZIP2_OPTIONS} > "${INITRAMFS}.new"
+			mv "${INITRAMFS}.new" "${INITRAMFS}"
+		done
+		;;
+
+	lzma)
+		# We probably ought to use COMPRESS= in a temporary file in
+		# /etc/initramfs-tools/conf.d/ instead, but it's hard to
+		# pass options that way.
+		for INITRAMFS in $(find chroot/boot -name 'initrd*'); do
+			zcat "${INITRAMFS}" | lzma -c ${LZMA_OPTIONS} > "${INITRAMFS}.new"
+			mv "${INITRAMFS}.new" "${INITRAMFS}"
+		done
+		;;
+esac
+
 # Ensure readable permissions on initramfs. loop-aes-utils sets umask to
 # protect GPG keys, which live-build does not support.
 # Note: Use find rather than chmod on the wildcard, one never knows what
diff --git a/scripts/build/lb_config b/scripts/build/lb_config
index a2f90eb..f2c6bdc 100755
--- a/scripts/build/lb_config
+++ b/scripts/build/l

Bug#627665: option to remove kernel+initrd from compressed filesystem

2011-05-23 Thread Colin Watson
On Mon, May 23, 2011 at 01:19:20PM +0100, Colin Watson wrote:
> The attached patch adds 'lb config --binary-remove-linux true'.  Feel
> free to rename the option if some other name would fit better, though.

I realised that making this work involved moving lb_binary_linux-image
before lb_binary_rootfs.  This doesn't seem to have any ill effects that
I can detect from reading the code, so I've attached an updated patch
that does this too.

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From 2acebebb81869948ca302a9bd5a75a0e13730f4d Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Mon, 23 May 2011 13:12:01 +0100
Subject: [PATCH] Add an option to remove the kernel and initrd from the compressed filesystem.

---
 functions/defaults.sh   |2 ++
 manpages/en/lb_config.1 |4 
 scripts/build/lb_binary |2 +-
 scripts/build/lb_binary_linux-image |6 ++
 scripts/build/lb_config |   12 +++-
 5 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/functions/defaults.sh b/functions/defaults.sh
index 8526335..a1e5c83 100755
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -826,6 +826,8 @@ Set_defaults ()
 			;;
 	esac
 
+	LB_BINARY_REMOVE_LINUX="${LB_BINARY_REMOVE_LINUX:-false}"
+
 	# Setting apt indices
 	case "${LB_MODE}" in
 		progress)
diff --git a/manpages/en/lb_config.1 b/manpages/en/lb_config.1
index 88fcc9b..5e247b4 100644
--- a/manpages/en/lb_config.1
+++ b/manpages/en/lb_config.1
@@ -33,6 +33,8 @@
 .br
 	[\fB\-\-binary\-filesystem\fR fat16|fat32|ext2]
 .br
+	[\fB\-\-binary\-remove\-linux\fR true|false]
+.br
 	[\fB\-\-bootappend\-install\fR \fIPARAMETER\fR|\fI"PARAMETERS"\fR]
 .br
 	[\fB\-\-bootappend\-live\fR \fIPARAMETER\fR|\fI"PARAMETERS"\fR]
@@ -281,6 +283,8 @@ defines the architecture of the to be build image. By default, this is set to th
 defines the image type to build. By default, for images using syslinux this is set to iso\-hybrid to build CD/DVD images that may also be used like usb\-hdd images, for non\-syslinux images, it defaults to iso.
 .IP "\fB\-\-binary\-filesystem\fR fat16|fat32|ext2" 4
 defines the filesystem to be used in the image type. This only has an effect if the selected binary image type does allow to choose a filesystem. For example, when selection iso the resulting CD/DVD has always the filesystem ISO9660. When building usb\-hdd images for usb sticks, this is active. Note that it defaults to fat16 on all architectures except sparc where it defaults to ext2. Also note that if you choose fat16 and your resulting binary image gets bigger than 2GB, the binary filesystem automatically gets switched to fat32.
+.IP "\fB\-\-binary\-remove\-linux\fR true|false" 4
+defines if the Linux kernel and initrd should be removed from the filesystem (they will still be published in the binary output directory). This is useful to reduce image size if the image is not meant to be installable, or if the installer is intelligent enough to copy the kernel and initrd from the top-level image rather than from the compressed filesystem. Default is false.
 .IP "\fB\-\-bootappend\-install\fR \fIPARAMETER\fR|""\fIPARAMETERS\fR""" 4
 sets boot parameters specific to debian\-installer, if included.
 .IP "\fB\-\-bootappend\-live\fR \fIPARAMETER\fR|""\fIPARAMETERS\fR""" 4
diff --git a/scripts/build/lb_binary b/scripts/build/lb_binary
index 738363d..fb10ed0 100755
--- a/scripts/build/lb_binary
+++ b/scripts/build/lb_binary
@@ -54,12 +54,12 @@ then
 fi
 
 # Building root filesystem
+lb binary_linux-image ${*}
 lb binary_rootfs ${*}
 lb binary_manifest ${*}
 
 # Prepare images
 lb binary_local-packagelists ${*}
-lb binary_linux-image ${*}
 lb binary_debian-installer ${*}
 lb binary_memtest ${*}
 lb binary_grub ${*}
diff --git a/scripts/build/lb_binary_linux-image b/scripts/build/lb_binary_linux-image
index cac19d8..c5a8cc6 100755
--- a/scripts/build/lb_binary_linux-image
+++ b/scripts/build/lb_binary_linux-image
@@ -76,6 +76,12 @@ mkdir -p "${DESTDIR}"
 cp chroot/boot/"${LINUX}"-* "${DESTDIR}"
 cp chroot/boot/initrd.img-* "${DESTDIR}"
 
+if [ "${LB_BINARY_REMOVE_LINUX}" = true ]
+then
+	rm -f chroot/boot/"${LINUX}"-*
+	rm -f chroot/boot/initrd.img-*
+fi
+
 case "${LB_INITRAMFS}" in
 	live-boot)
 		if [ -e chroot/usr/share/doc/live-boot/parameters.txt ]
diff --git a/scripts/build/lb_config b/scripts/build/lb_config
index 0e36240..a2f90eb 100755
--- a/scripts/build/lb_config
+++ b/scripts/build/lb_config
@@ -41,6 +41,7 @@ USAGE="${PROGRAM}   [--apt apt|aptitude]\n\
 \t[-a|--architectures ARCHITECTURE]\n\
 \t[-b|--binary-images iso|iso-hybrid|net|tar|usb-hdd]\n\
 \t[--binary-filesystem fat16|fat32|ext2]\n\
+\t[--binary-remove-linux true|false]\n\

Bug#627716: update apt-xapian-index

2011-05-23 Thread Colin Watson
Package: live-build
Version: 3.0~a17-1
Severity: wishlist
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric

apt-xapian-index.postinst (in Debian, and in Ubuntu with minor
modifications) contains the following code:

case "$1" in
configure)
# Just checking the main directory with -d should prevent the indexing
# to be started while an indexing is already going on, as the first
# thing that update-apt-xapian-index does is to create the directory if
# it is missing
if [ ! -d /var/lib/apt-xapian-index ]
then
if [ ! -x /usr/sbin/policy-rc.d ] || /usr/sbin/policy-rc.d 
apt-xapian-index start
then
echo "apt-xapian-index: Building new index in 
background..."
# Ensure that we can use our module. See #537376
update-python-modules -p
nice /usr/sbin/update-apt-xapian-index --quiet &
fi
fi
;;
esac

This is of course effectively disabled in live-build due to policy-rc.d.
Extending live-build's policy-rc.d to allow 'apt-xapian-index start'
doesn't look like a great idea either, as that would run
update-apt-xapian-index in the background which will race with package
installation completing and mksquashfs (or whatever) starting.

I care about this because Ubuntu's Software Center uses
apt-xapian-index, and that's quite prominent in our UI these days so
it'll be fairly obvious if the index isn't up to date.

Could we just update this as a hack, along the lines of the attached
patch?

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From 8aa53bce90f42e203321f68fa5f87233c32b36be Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Mon, 23 May 2011 20:51:18 +0100
Subject: [PATCH] Update the Apt Xapian index.

---
 scripts/build/lb_chroot_hacks |8 
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/scripts/build/lb_chroot_hacks b/scripts/build/lb_chroot_hacks
index 12279fd..4c26deb 100755
--- a/scripts/build/lb_chroot_hacks
+++ b/scripts/build/lb_chroot_hacks
@@ -222,6 +222,14 @@ if [ -x chroot/usr/bin/updatedb.mlocate ]; then
 	Chroot chroot updatedb.mlocate
 fi
 
+# Update the Apt Xapian index.  The package would do this itself, but (a) it
+# checks policy-rc.d which says it isn't allowed to, and (b) it wants to
+# build the index in the background which will be racy in the context of
+# live-build.
+if [ -x chroot/usr/sbin/update-apt-xapian-index ]; then
+	Chroot chroot /usr/sbin/update-apt-xapian-index --force --quiet
+fi
+
 # Remove build systems clock drift
 echo "0.0 0 0.0" > chroot/etc/adjtime
 
-- 
1.7.4.1



Bug#627677: alternative initramfs compressor

2011-05-24 Thread Colin Watson
On Tue, May 24, 2011 at 05:41:44PM +0200, intrigeri wrote:
> Colin Watson wrote (23 May 2011 14:47:18 GMT) :
> > +   # We probably ought to use COMPRESS= in a temporary file in
> > +   # /etc/initramfs-tools/conf.d/ instead, but it's hard to
> > +   # pass options that way.
> 
> If this is your only reason to decompress / recompress the ramdisks
> (implicitly depending on those being compressed using gzip in the
> first place), wouldn't it be better to make initramfs-tools support a
> COMPRESS_OPTIONS option + indeed use its conf.d/ to set COMPRESS=,
> rather than adding the same options to live-build?

It probably would, which is why I added a comment; but live-build will
need it at least for a while anyway, to support older distributions.
(And there isn't much difference in code size.)

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=592519 has been filed
for a while requesting the change you suggest.  I've CCed that bug to
indicate the link.

-- 
Colin Watson   [cjwat...@ubuntu.com]



-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110524163851.ge23...@riva.ucam.org



Bug#627887: add support for jasper initramfs system

2011-05-25 Thread Colin Watson
Package: live-build
Version: 3.0~a17-1
Severity: wishlist
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric

The Ubuntu ARM team wrote a system called jasper whose job is to help
with booting preinstalled ext2/ext3 ARM images:

Description: Configure a preinstalled ext2/3 system image
 Jasper is a tool to configure preinstalled ext2/3 images that were
 created using the ubuntu infrastructure from the initramfs.
 Such as armel omap3/4 images in Ubuntu 10.10 and beyond.
 .
 It grows the system partition of a preinstalled ext2/3 image to the
 full size of the SD card, configures fstab, loopback networking, adds
 the UUID to the kernel cmdline and properly sets up flash-kernel for
 the kernel package post installation scripts.

It's supported by livecd-rootfs, so I needed to add support for it to
live-build as well.  From live-build's point of view, I think it
basically counts as a new initramfs system, with the wrinkles that there
shouldn't be a boot=jasper parameter (it extends the default boot=local
instead) and I don't think it needs to do the user creation bits.

Patch attached.  What do you think?

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From 7ed79bd4b34c58919c22e3fc502022a12b1a0b63 Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Wed, 25 May 2011 09:55:29 +0100
Subject: [PATCH] Add support for jasper initramfs system.

---
 manpages/en/lb_config.1 |4 ++--
 scripts/build/lb_binary_grub|   10 +-
 scripts/build/lb_binary_grub2   |   10 +-
 scripts/build/lb_binary_linux-image |4 
 scripts/build/lb_binary_manifest|5 +
 scripts/build/lb_binary_memtest |4 
 scripts/build/lb_binary_net |4 
 scripts/build/lb_binary_rootfs  |4 
 scripts/build/lb_binary_silo|7 ++-
 scripts/build/lb_binary_yaboot  |   10 +-
 scripts/build/lb_chroot_hacks   |6 +-
 scripts/build/lb_config |2 +-
 12 files changed, 62 insertions(+), 8 deletions(-)

diff --git a/manpages/en/lb_config.1 b/manpages/en/lb_config.1
index a8a9c6f..a579ff6 100644
--- a/manpages/en/lb_config.1
+++ b/manpages/en/lb_config.1
@@ -109,7 +109,7 @@
 .br
 	[\fB\-\-includes\fR \fIPATH\fR]
 .br
-	[\fB\-\-initramfs\fR auto|none|live\-boot|casper]
+	[\fB\-\-initramfs\fR auto|none|live\-boot|casper|jasper]
 .br
 	[\fB\-\-initramfs\-compression\fR bzip2|gzip|lzma]
 .br
@@ -361,7 +361,7 @@ sets the hostname of the live system.
 \fBlb config\fR by default reads system defaults from /etc/live/build.conf and /etc/live/build.d when generating a new live system config directory. This is useful if you want to set global settings, such as mirror locations, and don't want to specify them all of the time.
 .IP "\fB\-\-includes\fR \fIPATH|none\fR" 4
 sets the path to the includes that live\-build is going to use, e.g. additional minimal documentation that you want to have on all live systems. By default, this is set to /usr/share/live/build/includes/. Choose none to disable inclusion of documentation.
-.IP "\fB\-\-initramfs\fR auto|none|live\-boot|casper" 4
+.IP "\fB\-\-initramfs\fR auto|none|live\-boot|casper|jasper" 4
 sets the name of package that contains the live system specific initramfs modification. By default, auto is used, which means that at build time of the image rather than on configuration time, the value will be expanded to casper when building ubuntu systems, to live\-boot for all other systems. Using 'none' is useful if the resulting system image should not be a live image (experimental).
 .IP "\fB\-\-initramfs\-compression\fR bzip2|gzip|lzma]
 defines the compression program to be used to compress the initramfs. Defaults to gzip.
diff --git a/scripts/build/lb_binary_grub b/scripts/build/lb_binary_grub
index d796750..7f70090 100755
--- a/scripts/build/lb_binary_grub
+++ b/scripts/build/lb_binary_grub
@@ -68,7 +68,7 @@ Grub_live_entry ()
 	APPEND="${4}"
 
 	LINUX_LIVE="${LINUX_LIVE}\ntitle\t\tDebian GNU/Linux - ${LABEL}"
-	LINUX_LIVE="${LINUX_LIVE}\nkernel\t\t/${KERNEL} boot=${INITFS} config LB_BOOTAPPEND_LIVE ${APPEND}"
+	LINUX_LIVE="${LINUX_LIVE}\nkernel\t\t/${KERNEL} ${INITFS:+boot=${INITFS} }config LB_BOOTAPPEND_LIVE ${APPEND}"
 	LINUX_LIVE="${LINUX_LIVE}\ninitrd\t\t/${INITRD}"
 }
 
@@ -125,6 +125,10 @@ case "${LB_INITRAMFS}" in
 	live-boot)
 		INITFS="live"
 		;;
+
+	*)
+		INITFS=""
+		;;
 esac
 
 # Setting destination directory
@@ -135,6 +139,10 @@ case "${LB_BINARY_IMAGES}" in
 DESTDIR_LIVE="binary/casper"
 ;;
 
+			jasper)
+DESTDIR_LIVE="binary/jasper"
+;;
+
 			live-boot)
 DESTDIR_LIVE="binary/live"
 ;;
diff --git a/scripts/build/lb_binary_grub2 b/scripts/build/lb_binary_grub2
index 8f076b2..

Bug#627887: add support for jasper initramfs system

2011-05-25 Thread Colin Watson
On Wed, May 25, 2011 at 10:01:10AM +0100, Colin Watson wrote:
> The Ubuntu ARM team wrote a system called jasper whose job is to help
> with booting preinstalled ext2/ext3 ARM images:
> 
> Description: Configure a preinstalled ext2/3 system image
>  Jasper is a tool to configure preinstalled ext2/3 images that were
>  created using the ubuntu infrastructure from the initramfs.
>  Such as armel omap3/4 images in Ubuntu 10.10 and beyond.
>  .
>  It grows the system partition of a preinstalled ext2/3 image to the
>  full size of the SD card, configures fstab, loopback networking, adds
>  the UUID to the kernel cmdline and properly sets up flash-kernel for
>  the kernel package post installation scripts.
> 
> It's supported by livecd-rootfs, so I needed to add support for it to
> live-build as well.  From live-build's point of view, I think it
> basically counts as a new initramfs system, with the wrinkles that there
> shouldn't be a boot=jasper parameter (it extends the default boot=local
> instead) and I don't think it needs to do the user creation bits.
> 
> Patch attached.  What do you think?

Oliver suggested that it would be better to use '--initramfs none
--packages jasper', or similar.  This still needs parts of this patch,
though, as there are too many places that only ever expect LB_INITRAMFS
to be casper or live-boot, e.g. the output directory calculation in
lb_binary_rootfs.

Let me know how you'd prefer to proceed here, and I can send an updated
patch.

-- 
Colin Watson   [cjwat...@ubuntu.com]



-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110525103212.ga5...@riva.ucam.org



Bug#627902: ext2/ext3 case in lb_binary_rootfs fails with --build-with-chroot false

2011-05-25 Thread Colin Watson
Package: live-build
Version: 3.0~a17-1
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric

If you try to use '--chroot-filesystem ext3 --build-with-chroot false',
then the build fails with:

  du: cannot access `chroot/chroot': No such file or directory
  expr: non-integer argument
  genext2fs: too few blocks. Note: options have changed, see --help or the man 
page.

Patch attached to make it run du on the right path.

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From 98aacab652dad1a7115f340e16560a3d04c3db4e Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Wed, 25 May 2011 11:32:52 +0100
Subject: [PATCH] Fix ext2/ext3 case in lb_binary_rootfs to work with --build-with-chroot false.

---
 scripts/build/lb_binary_rootfs |   11 ++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/scripts/build/lb_binary_rootfs b/scripts/build/lb_binary_rootfs
index 2e3e34e..ce007e3 100755
--- a/scripts/build/lb_binary_rootfs
+++ b/scripts/build/lb_binary_rootfs
@@ -100,7 +100,16 @@ case "${LB_CHROOT_FILESYSTEM}" in
 			rm -f binary/${INITFS}/filesystem.${LB_CHROOT_FILESYSTEM}
 		fi
 
-		DU_DIM="$(du -ks chroot/chroot | cut -f1)"
+		case "${LB_BUILD_WITH_CHROOT}" in
+			true)
+DU_DIM="$(du -ks chroot/chroot | cut -f1)"
+;;
+
+			false)
+DU_DIM="$(du -ks chroot | cut -f1)"
+;;
+		esac
+
 		REAL_DIM="$(Calculate_partition_size ${DU_DIM} ${LB_CHROOT_FILESYSTEM})"
 
 		RESERVED_PERCENTAGE="--reserved-percentage"
-- 
1.7.4.1



Bug#627887: add support for jasper initramfs system

2011-06-07 Thread Colin Watson
On Wed, May 25, 2011 at 11:32:12AM +0100, Colin Watson wrote:
> Oliver suggested that it would be better to use '--initramfs none
> --packages jasper', or similar.  This still needs parts of this patch,
> though, as there are too many places that only ever expect LB_INITRAMFS
> to be casper or live-boot, e.g. the output directory calculation in
> lb_binary_rootfs.
> 
> Let me know how you'd prefer to proceed here, and I can send an updated
> patch.

How about this patch?  This should make '--initramfs none' generally
work more consistently, mostly by filling in a few entries in case
statements.

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From 448eddbbc3eef31b8b368ec04e100ae1b42f7769 Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Mon, 6 Jun 2011 13:58:44 +0100
Subject: [PATCH] Make --initramfs none work more consistently.

---
 scripts/build/lb_binary_grub |   10 +-
 scripts/build/lb_binary_grub2|   10 +-
 scripts/build/lb_binary_manifest |5 +
 scripts/build/lb_binary_memtest  |4 
 scripts/build/lb_binary_net  |4 
 scripts/build/lb_binary_rootfs   |4 
 scripts/build/lb_binary_silo |7 ++-
 scripts/build/lb_binary_yaboot   |   10 +-
 scripts/build/lb_chroot_hacks|6 +-
 9 files changed, 55 insertions(+), 5 deletions(-)

diff --git a/scripts/build/lb_binary_grub b/scripts/build/lb_binary_grub
index ee14bd9..39aca30 100755
--- a/scripts/build/lb_binary_grub
+++ b/scripts/build/lb_binary_grub
@@ -68,7 +68,7 @@ Grub_live_entry ()
 	APPEND="${4}"
 
 	LINUX_LIVE="${LINUX_LIVE}\ntitle\t\tDebian GNU/Linux - ${LABEL}"
-	LINUX_LIVE="${LINUX_LIVE}\nkernel\t\t/${KERNEL} boot=${INITFS} config LB_BOOTAPPEND_LIVE ${APPEND}"
+	LINUX_LIVE="${LINUX_LIVE}\nkernel\t\t/${KERNEL} ${INITFS:+boot=${INITFS} }config LB_BOOTAPPEND_LIVE ${APPEND}"
 	LINUX_LIVE="${LINUX_LIVE}\ninitrd\t\t/${INITRD}"
 }
 
@@ -125,6 +125,10 @@ case "${LB_INITRAMFS}" in
 	live-boot)
 		INITFS="live"
 		;;
+
+	*)
+		INITFS=""
+		;;
 esac
 
 # Setting destination directory
@@ -138,6 +142,10 @@ case "${LB_BINARY_IMAGES}" in
 			live-boot)
 DESTDIR_LIVE="binary/live"
 ;;
+
+			*)
+DESTDIR_LIVE="binary/boot"
+;;
 		esac
 
 		DESTDIR_INSTALL="binary/install"
diff --git a/scripts/build/lb_binary_grub2 b/scripts/build/lb_binary_grub2
index 8f076b2..b029891 100755
--- a/scripts/build/lb_binary_grub2
+++ b/scripts/build/lb_binary_grub2
@@ -68,7 +68,7 @@ Grub_live_entry ()
 	APPEND="${4}"
 
 	LINUX_LIVE="${LINUX_LIVE}\nmenuentry \"Debian GNU/Linux - ${LABEL}\" {"
-	LINUX_LIVE="${LINUX_LIVE}\nlinux\t\t/${KERNEL} boot=${INITFS} config LB_BOOTAPPEND_LIVE ${APPEND}"
+	LINUX_LIVE="${LINUX_LIVE}\nlinux\t\t/${KERNEL} ${INITFS:+boot=${INITFS} }config LB_BOOTAPPEND_LIVE ${APPEND}"
 	LINUX_LIVE="${LINUX_LIVE}\ninitrd\t\t/${INITRD}"
 	LINUX_LIVE="${LINUX_LIVE}\n}"
 }
@@ -99,6 +99,10 @@ case "${LB_INITRAMFS}" in
 	live-boot)
 		INITFS="live"
 		;;
+
+	*)
+		INITFS=""
+		;;
 esac
 
 # Setting destination directory
@@ -112,6 +116,10 @@ case "${LB_BINARY_IMAGES}" in
 			live-boot)
 DESTDIR_LIVE="binary/live"
 ;;
+
+			*)
+DESTDIR_LIVE="binary/live"
+;;
 		esac
 
 		DESTDIR_INSTALL="binary/install"
diff --git a/scripts/build/lb_binary_manifest b/scripts/build/lb_binary_manifest
index 4b49133..0ae9051 100755
--- a/scripts/build/lb_binary_manifest
+++ b/scripts/build/lb_binary_manifest
@@ -53,6 +53,11 @@ case "${LB_INITRAMFS}" in
 		INITFS="live"
 		SUFFIX="packages"
 		;;
+
+	*)
+		INITFS="boot"
+		SUFFIX="packages"
+		;;
 esac
 
 # Add filesystem.packages
diff --git a/scripts/build/lb_binary_memtest b/scripts/build/lb_binary_memtest
index a539ee6..8155b14 100755
--- a/scripts/build/lb_binary_memtest
+++ b/scripts/build/lb_binary_memtest
@@ -87,6 +87,10 @@ case "${LB_INITRAMFS}" in
 	live-boot)
 		DESTDIR="binary/live"
 		;;
+
+	*)
+		DESTDIR="binary/boot"
+		;;
 esac
 
 Check_multiarchitectures
diff --git a/scripts/build/lb_binary_net b/scripts/build/lb_binary_net
index 9cac050..133a203 100755
--- a/scripts/build/lb_binary_net
+++ b/scripts/build/lb_binary_net
@@ -69,6 +69,10 @@ then
 		live-boot)
 			ORIGDIR="binary/live"
 			;;
+
+		*)
+			ORIGDIR="binary/boot"
+			;;
 	esac
 
 	# Find defaults
diff --git a/scripts/build/lb_binary_rootfs b/scripts/build/lb_binary_rootfs
index 85785fc..417c381 100755
--- a/scripts/build/lb_binary_rootfs
+++ b/scripts/build/lb_binary_rootfs
@@ -56,6 +56,10 @@ case "${LB_INITRAMFS}" in
 	live-boot)
 		INITFS="live"
 		;;
+
+	*)
+		INITFS="boot"
+		;

Bug#629533: use mkfs.ext2/mkfs.ext3 instead of genext2fs

2011-06-07 Thread Colin Watson
Package: live-build
Version: 3.0~a18-1
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric

genext2fs doesn't work very well with even moderately large filesystems.
It wants to allocate memory roughly equivalent to the size of the
filesystem it's creating.  On my 2GB test filesystem, it runs out of
memory even on my fairly well-provisioned laptop; on an ARM build
machine, I expect that using it would be thoroughly infeasible.

The attached patch converts live-build to use mkfs.ext2/mkfs.ext3
instead.

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From 0d598fbff7f17f87a19450686c2e514ec03a4992 Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Tue, 7 Jun 2011 14:46:25 +0100
Subject: [PATCH] Use mkfs.ext2/mkfs.ext2 instead of genext2fs.

---
 debian/control |2 +-
 debian/live-build.bug-script   |2 +-
 scripts/build/lb_binary_rootfs |   31 ---
 scripts/build/lb_source_debian |1 -
 4 files changed, 26 insertions(+), 10 deletions(-)

diff --git a/debian/control b/debian/control
index 57d60e6..3d00d98 100644
--- a/debian/control
+++ b/debian/control
@@ -16,7 +16,7 @@ Depends: ${misc:Depends}, debootstrap | cdebootstrap | cdebootstrap-static
 Recommends: cpio, gettext-base, gnu-fdisk
 Suggests:
  dosfstools, genisoimage, memtest86+ | memtest86, mtools, parted,
- squashfs-tools | genext2fs | mtd-tools, sudo | fakeroot, syslinux | grub,
+ squashfs-tools | mtd-tools, sudo | fakeroot, syslinux | grub,
  uuid-runtime, win32-loader
 Description: Debian Live - System Build Scripts
  live-build contains the scripts that build a Debian Live system image from a
diff --git a/debian/live-build.bug-script b/debian/live-build.bug-script
index c0e56f0..0cf407a 100644
--- a/debian/live-build.bug-script
+++ b/debian/live-build.bug-script
@@ -6,7 +6,7 @@ DEFAULT_SETTINGS="/etc/live/build.conf"
 dpkg -l debootstrap cdebootstrap
 
 # Checking suggests
-dpkg -l dosfstools genisoimage memtest86+ memtest86 mtools parted squashfs-tools genext2fs mtd-tools sudo fakeroot syslinux grub uuid-runtime win32-loader
+dpkg -l dosfstools genisoimage memtest86+ memtest86 mtools parted squashfs-tools mtd-tools sudo fakeroot syslinux grub uuid-runtime win32-loader
 
 if [ -e "${DEFAULT_SETTINGS}" ]; then
 	echo "Contents of ${DEFAULT_SETTINGS}:"
diff --git a/scripts/build/lb_binary_rootfs b/scripts/build/lb_binary_rootfs
index 417c381..70a6dc7 100755
--- a/scripts/build/lb_binary_rootfs
+++ b/scripts/build/lb_binary_rootfs
@@ -90,7 +90,7 @@ done
 case "${LB_CHROOT_FILESYSTEM}" in
 	ext2|ext3)
 		# Checking depends
-		Check_package chroot/usr/bin/genext2fs genext2fs
+		Check_package chroot/sbin/mkfs.ext2 e2fsprogs
 
 		# Restoring cache
 		Restore_cache cache/packages_binary
@@ -106,21 +106,30 @@ case "${LB_CHROOT_FILESYSTEM}" in
 
 		case "${LB_BUILD_WITH_CHROOT}" in
 			true)
-DU_DIM="$(du -ks chroot/chroot | cut -f1)"
+DU_DIM="$(du -ms chroot/chroot | cut -f1)"
+INODES="$(find chroot/chroot | wc -l)"
 ;;
 
 			false)
-DU_DIM="$(du -ks chroot | cut -f1)"
+DU_DIM="$(du -ms chroot | cut -f1)"
+INODES="$(find chroot | wc -l)"
 ;;
 		esac
 
 		REAL_DIM="$(Calculate_partition_size ${DU_DIM} ${LB_CHROOT_FILESYSTEM})"
-
-		RESERVED_PERCENTAGE="--reserved-percentage"
+		REAL_INODES="$(Calculate_partition_size ${INODES} ${LB_CHROOT_FILESYSTEM})"
 
 		case "${LB_BUILD_WITH_CHROOT}" in
 			true)
-Chroot chroot "genext2fs --size-in-blocks=${REAL_DIM} ${RESERVED_PERCENTAGE}=0 --root=chroot filesystem.${LB_CHROOT_FILESYSTEM}"
+dd if=/dev/zero of=chroot/filesystem.${LB_CHROOT_FILESYSTEM} bs=1024k count=0 seek=${REAL_DIM}
+Chroot chroot "mkfs.${LB_CHROOT_FILESYSTEM} -F -b 1024 -N ${REAL_INODES} -m 0 filesystem.${LB_CHROOT_FILESYSTEM}"
+
+mkdir -p filesystem.tmp
+${LB_ROOT_COMMAND} mount -o loop chroot/filesystem.${LB_CHROOT_FILESYSTEM} filesystem.tmp
+cp -a chroot/chroot/* filesystem.tmp
+
+${LB_ROOT_COMMAND} umount filesystem.tmp
+rmdir filesystem.tmp
 
 # Move image
 mv chroot/filesystem.${LB_CHROOT_FILESYSTEM} binary/${INITFS}
@@ -177,7 +186,15 @@ case "${LB_CHROOT_FILESYSTEM}" in
 ;;
 
 			false)
-genext2fs --size-in-blocks=${REAL_DIM} ${RESERVED_PERCENTAGE}=0 --root=chroot binary/${INITFS}/filesystem.${LB_CHROOT_FILESYSTEM}
+dd if=/dev/zero of=binary/${INITFS}/filesystem.${LB_CHROOT_FILESYSTEM} bs=1024k count=0 seek=${REAL_DIM}
+mkfs.${LB_CHROOT_FILESYSTEM} -F -b 1024 -N ${REAL_INODES} -m 0 binary/${INITFS}/filesystem.${LB_CHROOT_FILESYSTEM}
+
+mkdir -p filesystem.tmp
+${LB_ROOT_COMMAND} mount -o loop binary/${INITFS}/filesystem.${LB_CHROOT_FILESYSTEM} filesystem.tmp
+cp -a chroot/* filesystem.tmp
+
+${

Bug#627887: add support for jasper initramfs system

2011-06-08 Thread Colin Watson
On Wed, Jun 08, 2011 at 10:10:18AM +0200, Daniel Baumann wrote:
> On 06/07/2011 03:39 PM, Colin Watson wrote:
> > This should make '--initramfs none' generally
> > work more consistently, mostly by filling in a few entries in case
> > statements.
> 
> applied, thanks.
> 
> for the case of jasper, does it require any special treatment, or is all
> that lb is doing with '--initramfs none' already enough?

I'm still verifying (and probably won't be *entirely* certain until we
make the switch in production ...), but at this point I think that
'--initramfs none --packages jasper' is enough to make it work.  Thanks.

-- 
Colin Watson   [cjwat...@ubuntu.com]



-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110608095054.gl23...@riva.ucam.org



Bug#629637: add option to create swap file in image

2011-06-08 Thread Colin Watson
Package: live-build
Version: 3.0~a18-1
Severity: wishlist
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric

livecd-rootfs has a facility to create an empty swap file on ext2/ext3
images, which Ubuntu's boot scripts then deal with using or deleting as
appropriate at the first boot.  Apparently this cuts three minutes off
the boot time of our preinstalled (jasper-based) images on ARM.

This seems like a sufficiently useful facility (at least relative to
ext2/ext3 images) that it would be nice to have it as options rather
than hooks.  Patch attached.

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From 5ae2040d7c8470d7488993e0069d827e56aa8be5 Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Wed, 8 Jun 2011 11:30:29 +0100
Subject: [PATCH] Add --swap-file-path and --swap-file-size options.

---
 functions/defaults.sh |3 +++
 manpages/en/lb_config.1   |4 
 scripts/build/lb_chroot_hacks |5 +
 scripts/build/lb_config   |   22 +-
 4 files changed, 33 insertions(+), 1 deletions(-)

diff --git a/functions/defaults.sh b/functions/defaults.sh
index e26f1ac..7c9d288 100755
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -1102,6 +1102,9 @@ Set_defaults ()
 			;;
 	esac
 
+	# Setting swap file
+	LB_SWAP_FILE_SIZE="${LB_SWAP_FILE_SIZE:-512}"
+
 	## config/source
 
 	# Setting source option
diff --git a/manpages/en/lb_config.1 b/manpages/en/lb_config.1
index f1204b0..9e2f858 100644
--- a/manpages/en/lb_config.1
+++ b/manpages/en/lb_config.1
@@ -474,6 +474,10 @@ defines if the security repositories specified in the security mirror options sh
 defines if a corresponding source image to the binary image should be build. By default this is false because most people do not require this and would require to download quite a few source packages. However, once you start distributing your live image, you should make sure you build it with a source image alongside.
 .IP "\-s|\fB\-\-source\-images\fR iso|net|tar|usb\-hdd" 4
 defines the image type for the source image. Default is tar.
+.IP "\fB\-\-swap\-file\-path\fR \fIPATH\fR" 4
+defines the path to a swap file to create in the binary image. Default is not to create a swap file.
+.IP "\fB\-\-swap\-file\-size\fR \fIMB\fR" 4
+defines what size in megabytes the swap file should be, if one is to be created. Default is 512MB.
 .IP "\fB\-\-syslinux\-splash\fR \fIFILE\fR" 4
 defines the file of the syslinux splash graphic that should be used instead of the default one.
 .IP "\fB\-\-syslinux\-timeout\fR \fISECONDS\fR" 4
diff --git a/scripts/build/lb_chroot_hacks b/scripts/build/lb_chroot_hacks
index bbb39ce..f9e11dd 100755
--- a/scripts/build/lb_chroot_hacks
+++ b/scripts/build/lb_chroot_hacks
@@ -314,6 +314,11 @@ then
 	ln -s /proc/mounts chroot/etc/mtab
 fi
 
+if [ "${LB_SWAP_FILE_PATH}" ]; then
+	dd if=/dev/zero of="chroot/${LB_SWAP_FILE_PATH}" bs=1024k count="${LB_SWAP_FILE_SIZE}"
+	mkswap "chroot/${LB_SWAP_FILE_PATH}"
+fi
+
 # Show popular warnings
 if [ -e chroot/etc/init.d/resolvconf ]
 then
diff --git a/scripts/build/lb_config b/scripts/build/lb_config
index 2f49557..f129255 100755
--- a/scripts/build/lb_config
+++ b/scripts/build/lb_config
@@ -135,6 +135,8 @@ USAGE="${PROGRAM}   [--apt apt|aptitude]\n\
 \t[--security true|false]\n\
 \t[--source true|false]\n\
 \t[-s|--source-images iso|net|tar|usb-hdd]\n\
+\t[--swap-file-path PATH]\n\
+\t[--swap-file-size MB]\n\
 \t[--syslinux-theme THEME_SUFFIX]\n\
 \t[--tasksel apt|aptitude|tasksel]\n\
 \t[--tasks TASK|\"TASKS\"]\n\
@@ -166,7 +168,7 @@ Local_arguments ()
 		grub-splash:,hostname:,isohybrid-options:,iso-application:,iso-preparer:,iso-publisher:,
 		iso-volume:,jffs2-eraseblock:,memtest:,net-root-filesystem:,net-root-mountoptions:,
 		net-root-path:,net-root-server:,net-cow-filesystem:,net-cow-mountoptions:,net-cow-path:,
-		net-cow-server:,net-tarball:,syslinux-theme:,
+		net-cow-server:,net-tarball:,swap-file-path:,swap-file-size:,syslinux-theme:,
 		username:,win32-loader:,source:,source-images:,breakpoints,conffile:,debug,force,
 		help,ignore-system-defaults,quiet,usage,verbose,version"
 	# Remove spaces added by indentation
@@ -754,6 +756,16 @@ Local_arguments ()
 shift 2
 ;;
 
+			--swap-file-path)
+LB_SWAP_FILE_PATH="${2}"
+shift 2
+;;
+
+			--swap-file-size)
+LB_SWAP_FILE_SIZE="${2}"
+shift 2
+;;
+
 			--syslinux-theme)
 LB_SYSLINUX_THEME="${2}"
 shift 2
@@ -1375,6 +1387,14 @@ LB_NET_COW_SERVER="${LB_NET_COW_SERVER}"
 # (Default: ${LB_NET_TARBALL})
 LB_NET_TARBALL="${LB_NET_TARBALL}"
 
+# \$LB_SWAP_FILE_PATH: set swap file path
+# (Default: ${LB_SWAP_FILE_PATH})
+LB_SWAP_FILE_PATH="${LB_SWAP_FILE_PATH}"

Bug#627439: handling Ubuntu's multiple manifest scheme

2011-06-10 Thread Colin Watson
On Fri, May 20, 2011 at 05:25:45PM +0100, Colin Watson wrote:
> live-build doesn't currently support this kind of two-stage installation
> except by means of local hooks, and as explained in
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=627332#25 I would like
> to find a way to do this without local hooks.  I'm happy to do the
> implementation work, but do you have any ideas on a nice way to do this
> within the structure of live-build?

I've ended up with the attached patch for now.  How does this look?  As
discussed on IRC, I guess you'll want a different way to handle package
lists; I'm only using tasks and a couple of individual packages, so I'm
not really well-placed to judge how package lists might work here.

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From e8c24f24dcce3828875736995b1b5d2ed86b62f5 Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Fri, 10 Jun 2011 11:59:51 +0100
Subject: [PATCH] Add --live-package-lists, --live-packages, and --live-tasks
 options for Ubuntu.

---
 manpages/en/lb_config.1|   12 +
 scripts/build/lb_chroot|   18 +++
 scripts/build/lb_chroot_initramfs  |   52 
 scripts/build/lb_chroot_install-packages   |   22 +++-
 scripts/build/lb_chroot_linux-image|   12 -
 scripts/build/lb_chroot_local-packagelists |   26 --
 scripts/build/lb_chroot_local-packages |   24 +++--
 scripts/build/lb_chroot_manifest   |   73 
 scripts/build/lb_chroot_packagelists   |   26 --
 scripts/build/lb_chroot_packages   |   26 --
 scripts/build/lb_chroot_tasks  |   30 +---
 scripts/build/lb_clean |2 +-
 scripts/build/lb_config|   33 -
 13 files changed, 311 insertions(+), 45 deletions(-)
 create mode 100755 scripts/build/lb_chroot_initramfs
 create mode 100755 scripts/build/lb_chroot_manifest

diff --git a/manpages/en/lb_config.1 b/manpages/en/lb_config.1
index 9e2f858..542ebfa 100644
--- a/manpages/en/lb_config.1
+++ b/manpages/en/lb_config.1
@@ -135,6 +135,12 @@
 .br
 	[\fB\-\-linux\-packages\fR \fI"PACKAGES"\fR]
 .br
+	[\fB\-\-live\-package\-lists\fR \fILIST\fR|\fI"LISTS"\fR]
+.br
+	[\fB\-\-live\-packages\fR \fIPACKAGE\fR|\fI"PACKAGES"\fR]
+.br
+	[\fB\-\-live\-tasks\fR \fITASK\fR|"\fITASKS\fR"]
+.br
 	[\fB\-\-losetup\fR losetup|losetup.orig]
 .br
 	[\fB\-\-memtest\fR memtest86+|memtest86|none]
@@ -383,6 +389,12 @@ sets the language of a live system by installing l10n related packages. It doesn
 sets the kernel flavours to be installed. Note that in case you specify more than that the first will be configured the default kernel that gets booted.
 .IP "\fB\-\-linux\-packages\fR ""\fIPACKAGES\fR""" 4
 sets the internal name of the kernel packages naming scheme. If you use debian kernel packages, you will not have to adjust it. If you decide to use custom kernel packages that do not follow the debian naming scheme, remember to set this option to the stub of the packages only (for debian this is linux\-image\-2.6), so that \fISTUB\fR-\fIFLAVOUR\fR results in a valid package name (for debian e.g. linux\-image\-2.6\-486). Preferably you use the meta package name, if any, for the stub, so that your configuration is ABI independent. Also don't forget that you have to include stubs of the binary modules packages for unionfs or aufs, and squashfs if you built them out-of-tree.
+.IP "\fB\-\-live\-package\-lists\fR \fILIST\fR|""\fILISTS\fR""" 4
+defines which lists available in /usr/share/live/build/lists should be used for the second installation pass. By default, no lists are used. Note that in case you have local package lists, you don't need to list them here. Putting them into config/chroot_local-packagelists is enough (the filename needs to have the .list suffix though). Packages installed in the first pass rather than the second will be listed in a separate manifest file (ending in "\-desktop"); an installer which is aware of this can arrange for only packages from the first pass to end up on an installed system.
+.IP "\fB\-\-live\-packages\fR \fIPACKAGE\fR|""\fIPACKAGES\fR""" 4
+defines one or more packages to be installed in the live system for the second installation pass. This is a quick and convenient place to add a few packages when building an image (limited by the max length of shell). Packages that should be permanently installed should be put into a local packages list.
+.IP "\fB\-\-live\-tasks\fR \fITASK\fR|""\fITASKS\fR""" 4
+defines one or more package tasks to be installed in the live system for the second installation pass. This is a quick and convenient way to get a r

Bug#630032: correct default powerpc kernel flavours for Ubuntu

2011-06-10 Thread Colin Watson
Package: live-build
Version: 3.0~a18-1
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric

live-build defaults to using the powerpc and powerpc64 kernel flavours.
However, there's no powerpc64 kernel flavour in Ubuntu, only powerpc,
powerpc-smp, and powerpc64-smp.  livecd-rootfs uses powerpc and
powerpc64-smp by default, which I think is reasonable.  Patch attached.

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From 8039e96eca5429d18811acec25e91d3fce8b572a Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Fri, 10 Jun 2011 14:34:00 +0100
Subject: [PATCH] Use powerpc and powerpc64-smp kernel flavours by default for
 Ubuntu, as there is no powerpc64 flavour.

---
 functions/defaults.sh |   12 
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/functions/defaults.sh b/functions/defaults.sh
index 7c9d288..5375475 100755
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -673,6 +673,18 @@ Set_defaults ()
 	exit 1
 	;;
 
+ubuntu)
+	case "${LIST}" in
+		stripped|minimal)
+			LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-powerpc}"
+		;;
+
+		*)
+			LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-powerpc powerpc64-smp}"
+			;;
+	esac
+	;;
+
 *)
 	case "${LIST}" in
 		stripped|minimal)
-- 
1.7.5.3



Bug#630043: use dpkg --force-unsafe-io if available

2011-06-10 Thread Colin Watson
Package: live-build
Version: 3.0~a18-1
Severity: wishlist
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric

The --force-unsafe-io option was introduced in dpkg 1.15.8.6 (see
#584254).  It's useful for cases where it doesn't matter if unpacked
files are properly preserved across power failures, and live image
builds were one of the main use cases we were thinking about: in the
case of an interrupted live image build, you'd just 'lb clean' and start
again.  Thus, it seems sensible to use it across the board if it's
available.  Patch attached.

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From b94c12fdc9a2a19b52317181316c5fe0f5b7584e Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Fri, 10 Jun 2011 15:57:32 +0100
Subject: [PATCH] Use dpkg --force-unsafe-io if available.

---
 scripts/build/lb_chroot_dpkg |   11 +++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/scripts/build/lb_chroot_dpkg b/scripts/build/lb_chroot_dpkg
index 64c8085..819dbda 100755
--- a/scripts/build/lb_chroot_dpkg
+++ b/scripts/build/lb_chroot_dpkg
@@ -53,6 +53,14 @@ EOF
 
 		chmod 755 chroot/sbin/start-stop-daemon
 
+		# Disable dpkg syncing
+		if echo 'dpkg --compare-versions "$(dpkg-query -W --showformat="\${Version}" dpkg)" ge 1.15.8.6' | Chroot chroot sh
+		then
+			cat > chroot/etc/dpkg/dpkg.cfg.d/live-build << EOF
+force-unsafe-io
+EOF
+		fi
+
 		# Manual hacks for special packages
 
 		# samhain
@@ -95,6 +103,9 @@ EOF
 			mv chroot/sbin/start-stop-daemon.orig chroot/sbin/start-stop-daemon
 		fi
 
+		# Remove dpkg sync configuration
+		rm -f chroot/etc/dpkg/dpkg.cfg.d/live-build
+
 		# Removing stage file
 		rm -f .stage/chroot_dpkg
 		;;
-- 
1.7.5.3



Bug#630080: some Ubuntu mirror defaults are incorrect

2011-06-10 Thread Colin Watson
Package: live-build
Version: 3.0~a18-1
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric

Standard practice in Ubuntu is to use security.ubuntu.com for *-security
and archive.ubuntu.com for *-updates (the latter of which is "volatile"
in live-build terms, although that's really a pretty inaccurate
mapping).  However, live-build has the defaults the wrong way round in a
few places, leading to this sources.list in the binary image:

  deb http://archive.ubuntu.com/ubuntu/ natty main restricted
  deb http://archive.ubuntu.com/ubuntu/ natty-security main restricted
  deb http://security.ubuntu.com/ubuntu/ natty-updates main restricted

That's just weird.  I would expect:

  deb http://archive.ubuntu.com/ubuntu/ natty main restricted
  deb http://security.ubuntu.com/ubuntu/ natty-security main restricted
  deb http://archive.ubuntu.com/ubuntu/ natty-updates main restricted

The attached patch fixes the defaults.

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From 179b4f3635e9922783773b3e378fd61a28efbb0f Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Fri, 10 Jun 2011 17:41:07 +0100
Subject: [PATCH] Fix incorrect Ubuntu defaults for security and volatile
 mirrors.

---
 functions/defaults.sh |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/functions/defaults.sh b/functions/defaults.sh
index 5375475..0e6a34c 100755
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -385,7 +385,7 @@ Set_defaults ()
 		ubuntu)
 			case "${LB_ARCHITECTURES}" in
 amd64|i386)
-	LB_PARENT_MIRROR_CHROOT_VOLATILE="${LB_PARENT_MIRROR_CHROOT_VOLATILE:-http://security.ubuntu.com/ubuntu/}";
+	LB_PARENT_MIRROR_CHROOT_VOLATILE="${LB_PARENT_MIRROR_CHROOT_VOLATILE:-http://archive.ubuntu.com/ubuntu/}";
 	;;
 
 *)
@@ -471,7 +471,7 @@ Set_defaults ()
 		ubuntu)
 			case "${LB_ARCHITECTURES}" in
 amd64|i386)
-	LB_PARENT_MIRROR_BINARY_SECURITY="${LB_PARENT_MIRROR_BINARY_SECURITY:-http://archive.ubuntu.com/ubuntu/}";
+	LB_PARENT_MIRROR_BINARY_SECURITY="${LB_PARENT_MIRROR_BINARY_SECURITY:-http://security.ubuntu.com/ubuntu/}";
 	;;
 
 *)
@@ -498,7 +498,7 @@ Set_defaults ()
 		ubuntu)
 			case "${LB_ARCHITECTURES}" in
 amd64|i386)
-	LB_PARENT_MIRROR_BINARY_VOLATILE="${LB_PARENT_MIRROR_BINARY_VOLATILE:-http://security.ubuntu.com/ubuntu/}";
+	LB_PARENT_MIRROR_BINARY_VOLATILE="${LB_PARENT_MIRROR_BINARY_VOLATILE:-http://archive.ubuntu.com/ubuntu/}";
 	;;
 
 *)
-- 
1.7.5.3



Bug#630088: hook to remove GNOME icon cache

2011-06-10 Thread Colin Watson
Package: live-build
Version: 3.0~a18-1
Severity: wishlist
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric

The Kubuntu developers don't want to ship icon-theme.cache files;
apparently they're mainly GNOME-specific and can be rather large.  The
attached hook can be set up to remove them.  Feel free to rename it - I
wasn't sure what kind of namespacing you wanted to use.

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From 82775076288542fa9258b079fdc75479b3a735ee Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Fri, 10 Jun 2011 18:17:57 +0100
Subject: [PATCH] Add Kubuntu hook to remove GNOME icon cache.

---
 examples/hooks/kubuntu_chroot_icon-theme.sh |8 
 1 files changed, 8 insertions(+), 0 deletions(-)
 create mode 100755 examples/hooks/kubuntu_chroot_icon-theme.sh

diff --git a/examples/hooks/kubuntu_chroot_icon-theme.sh b/examples/hooks/kubuntu_chroot_icon-theme.sh
new file mode 100755
index 000..0aaa653
--- /dev/null
+++ b/examples/hooks/kubuntu_chroot_icon-theme.sh
@@ -0,0 +1,8 @@
+#! /bin/sh
+
+# This is a hook for live-build(7) to remove the GNOME icon cache for
+# Kubuntu builds.
+# To enable it, copy or symlink this hook into your config/chroot_local-hooks
+# directory.
+
+rm -f /usr/share/icons/*/icon-theme.cache
-- 
1.7.5.3



Bug#630089: timestamped build logs?

2011-06-10 Thread Colin Watson
Package: live-build
Version: 3.0~a18-1
Severity: wishlist
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu oneiric

It might be nice to have timestamped build logs.  That would make it
easy to see which parts of a build were taking a long time and thus work
out targets for optimisation.  We did this in livecd-rootfs a while back
and it was quite helpful.

For example, perhaps the lb wrapper script could (be configured to)
print the current time before starting a command?

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]



-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110610172700.gz23...@riva.ucam.org



Bug#630043: use dpkg --force-unsafe-io if available

2011-06-11 Thread Colin Watson
On Sat, Jun 11, 2011 at 01:36:18PM +0200, Daniel Baumann wrote:
> On 06/10/2011 05:02 PM, Colin Watson wrote:
> >The --force-unsafe-io option was introduced in dpkg 1.15.8.6 (see
> >#584254).  It's useful for cases where it doesn't matter if unpacked
> >files are properly preserved across power failures, and live image
> >builds were one of the main use cases we were thinking about: in the
> >case of an interrupted live image build, you'd just 'lb clean' and start
> >again.  Thus, it seems sensible to use it across the board if it's
> >available.  Patch attached.
> 
> applied but without the version check, we're supporting >=squeeze
> only anyway.

That will break Ubuntu maverick and earlier; not that I'm going to be
using live-build for those, but I believe Cody Somerville does.

-- 
Colin Watson   [cjwat...@ubuntu.com]



-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/2011064553.gb23...@riva.ucam.org



Bug#630043: use dpkg --force-unsafe-io if available

2011-06-11 Thread Colin Watson
On Sat, Jun 11, 2011 at 01:51:33PM +0200, Daniel Baumann wrote:
> On 06/11/2011 01:45 PM, Colin Watson wrote:
> >That will break Ubuntu maverick and earlier; not that I'm going to be
> >using live-build for those, but I believe Cody Somerville does.
> 
> cody doesn't use live-build directly, he's hand-picking to his own
> bzr branch somewhere. shouldn't be a problem to skip 01a5160.

Fair enough, then.

-- 
Colin Watson   [cjwat...@debian.org]



-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110611120410.gc23...@riva.ucam.org



Bug#630350: divert flash-kernel aside while building the chroot

2011-06-13 Thread Colin Watson
Package: live-build
Version: 3.0~a20-1
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric

On ARM systems with flash-kernel installed, update-initramfs (at least;
possibly the kernel too) will try to install the new kernel and
initramfs into flash.  While this is fine for normal systems, it's not a
sane thing to do when building a live filesystem for another machine.
The simplest way to avoid this seems to be to divert flash-kernel aside
while building the chroot.  Patch attached.

(livecd-rootfs did this by setting a FLASH_KERNEL_SKIP=1 environment
variable, but that's difficult to support in live-build because of the
way the Chroot function cleans the environment, and in any case a
diversion is much neater.)

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From 8d0ba280480ac80928633fe631dfa6c87dc791d7 Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Mon, 13 Jun 2011 10:24:37 +0100
Subject: [PATCH] Divert flash-kernel aside while building the chroot.

---
 scripts/build/lb_chroot_dpkg |8 
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/scripts/build/lb_chroot_dpkg b/scripts/build/lb_chroot_dpkg
index 25795a3..3194c04 100755
--- a/scripts/build/lb_chroot_dpkg
+++ b/scripts/build/lb_chroot_dpkg
@@ -70,6 +70,10 @@ EOF
 			touch /var/state/samhain/samhain_file
 		fi
 
+		# flash-kernel
+		Chroot chroot dpkg-divert --rename --add /usr/sbin/flash-kernel
+		ln -s /bin/true chroot/usr/sbin/flash-kernel
+
 		# Creating stage file
 		Create_stagefile .stage/chroot_dpkg
 		;;
@@ -85,6 +89,10 @@ EOF
 
 		# Manual hacks for special packages
 
+		# flash-kernel
+		rm -f chroot/usr/sbin/flash-kernel
+		Chroot chroot dpkg-divert --rename --remove /usr/sbin/flash-kernel
+
 		# samhain
 		if [ -e /var/state/samhain/samhain_file.orig ]
 		then
-- 
1.7.5.3



Bug#627665: option to remove kernel+initrd from compressed filesystem

2011-06-13 Thread Colin Watson
On Mon, Jun 13, 2011 at 08:21:52PM +0200, Daniel Baumann wrote:
> Adding an own option just for excluding the kernel and initrd seems like
> not worth it; rather, the already existing config/chroot_rootfs/excludes
> should be used. that solves the task of excluding files in a generic way.

That would work better if lb_rootfs passed -wildcards to mksquashfs.  As
it is, the excludes file is a poor fit for this because it doesn't
support wildcards when building a squashfs; the exact kernel/initrd
filenames change often.

(Note that the excludes file *does* support wildcards if squashfs isn't
being used.)

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From a6a3be14ab3238f515af2928006a446e14d44fdb Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Mon, 13 Jun 2011 19:36:30 +0100
Subject: [PATCH] Pass -wildcards to mksquashfs if using an excludes file.

---
 scripts/build/lb_binary_rootfs |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/scripts/build/lb_binary_rootfs b/scripts/build/lb_binary_rootfs
index 70a6dc7..754a7c2 100755
--- a/scripts/build/lb_binary_rootfs
+++ b/scripts/build/lb_binary_rootfs
@@ -357,7 +357,7 @@ case "${LB_CHROOT_FILESYSTEM}" in
 then
 	cp config/binary_rootfs/excludes chroot/excludes
 
-	MKSQUASHFS_OPTIONS="${MKSQUASHFS_OPTIONS} -ef /excludes"
+	MKSQUASHFS_OPTIONS="${MKSQUASHFS_OPTIONS} -wildcards -ef /excludes"
 fi
 
 # Create image
@@ -425,7 +425,7 @@ case "${LB_CHROOT_FILESYSTEM}" in
 			false)
 if [ -e config/binary_rootfs/excludes ]
 then
-	MKSQUASHFS_OPTIONS="${MKSQUASHFS_OPTIONS} -ef config/binary_rootfs/excludes"
+	MKSQUASHFS_OPTIONS="${MKSQUASHFS_OPTIONS} -wildcards -ef config/binary_rootfs/excludes"
 fi
 
 mksquashfs chroot binary/${INITFS}/filesystem.squashfs ${MKSQUASHFS_OPTIONS}
-- 
1.7.5.4



Ubuntu live filesystem builds moved to live-build

2011-06-13 Thread Colin Watson
I've moved Ubuntu's live filesystem build process over from our original
custom shell script in livecd-rootfs to the newer live-build system from
Debian (formerly called live-helper).  Thanks in particular to Daniel
Baumann for guidance and for speedy upstream patch integration, and to
LaMont Jones for deployment assistance.

This only affects Oneiric and later releases.  Live filesystem builds
for previous releases will continue to use livecd-rootfs.

Developers who have not needed to modify livecd-rootfs in the past
should have no more need to modify it now than before; it still uses
tasks in much the same way to decide which packages should be installed.
However, people working on Ubuntu live filesystems will need to know how
the new build process is laid out.  I needed to have somewhere to put
configuration anyway, so I repurposed the livecd-rootfs package for
that, using auto/* files along the lines of
http://live.debian.net/manual/en/html/managing-a-configuration.html.  I
expect that the exact details may change here as we gain more experience
with live-build.  Briefly, the current way to reproduce an Ubuntu live
filesystem build is to do this in a scratch directory:

  Once only:
$ mkdir -p auto
$ ln -sf /usr/share/livecd-rootfs/live-build/auto/* auto/

  Each time:
$ export PROJECT=ubuntu SUITE=oneiric ARCH=i386
$ sudo lb clean
$ lb config
$ sudo lb build

There were a handful of changes in ubiquity 2.7.6 to cope with slight
differences in manifest files and sources.list generation.  These only
make a difference if you're producing installable live CDs.

If you are modifying the live build process for Ubuntu, please remember
that we are now working with an upstream codebase: the days of hacking a
couple of special-purpose lines into livecd-rootfs are over.  While we
do have three outstanding patches against upstream right now, they have
all been submitted as Debian bug reports (if it's any guide, there were
seven outstanding when I started drafting this mail!), and my goal is,
if at all possible, to be using an unpatched version of live-build from
Debian by the time we release Oneiric.  Instead of perpetrating
Ubuntu-specific hacks, please consider these alternatives:

 * live-build has lots and lots of options, and in many cases you can do
   what you need by tweaking those.

 * Patch live-build to do what you need, send your patch as a Debian
   bug, and engage in upstream discussion if necessary.  Note that, if
   need be, you can guard your code with [ "${LB_MODE}" = ubuntu ].

 * If necessary, there are various hook script facilities that you can
   use: for example, scripts in config/chroot_local-hooks/ are run in
   the chroot near the end of the chroot build process.  Try to keep
   this to a minimum, though; I'm trying to avoid using hook scripts in
   builds for Ubuntu proper, as it would be better for live-build to do
   the right thing out of the box without the need for hooks.  Right
   now, the only hook script I'm using is one to remove icon-theme.cache
   from Kubuntu images.

If you have any questions about the Ubuntu integration here, please ask.

Cheers,

-- 
Colin Watson   [cjwat...@ubuntu.com]


-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110613223838.gl23...@riva.ucam.org



Bug#630464: --architectures armel fails unconditionally

2011-06-14 Thread Colin Watson
Package: live-build
Version: 3.0~a21-1
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric

functions/defaults.sh exits 1 in the '--architectures armel' case,
saying that you need to use -k/--linux-flavours.  It should only do this
if --linux-flavours wasn't passed.  Patch attached.

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From 7a59a2f54831167f6b352cd616cf51ed4d652bd6 Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Tue, 14 Jun 2011 09:02:30 +0100
Subject: [PATCH] Make --architectures armel only fail if --linux-flavours was
 not passed.

---
 functions/defaults.sh |8 +---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/functions/defaults.sh b/functions/defaults.sh
index 4379704..915c90f 100755
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -593,9 +593,11 @@ Set_defaults ()
 	# Setting linux flavour string
 	case "${LB_ARCHITECTURES}" in
 		armel)
-			Echo_error "There is no default kernel flavour defined for your architecture."
-			Echo_error "Please configure it manually with 'lb config -k FLAVOUR'."
-			exit 1
+			if [ -z "$LB_LINUX_FLAVOURS" ]; then
+Echo_error "There is no default kernel flavour defined for your architecture."
+Echo_error "Please configure it manually with 'lb config -k FLAVOUR'."
+exit 1
+			fi
 			;;
 
 		amd64)
-- 
1.7.5.4



Re: Ubuntu live filesystem builds moved to live-build

2011-06-14 Thread Colin Watson
On Tue, Jun 14, 2011 at 08:52:19AM +0200, Daniel Baumann wrote:
> On 06/14/2011 12:38 AM, Colin Watson wrote:
> > I've moved Ubuntu's live filesystem build process over from our original
> > custom shell script in livecd-rootfs to the newer live-build system from
> > Debian (formerly called live-helper).
> 
> nice; would you mind having ubuntu listed on
> live.debian.net/project/downstream ?

That would be lovely, thanks.  Here's a patch, with text from
http://www.debian.org/misc/children-distros:

diff --git a/project/downstream.mdwn b/project/downstream.mdwn
index af589d1..db5ce5d 100644
--- a/project/downstream.mdwn
+++ b/project/downstream.mdwn
@@ -246,6 +246,16 @@ More information:
 
  * [Homepage](http://www.supergrubdisk.org/rescatux/)
 
+## Ubuntu
+
+[Ubuntu](http://www.ubuntu.com/) is a Linux distribution that starts with the 
breadth of Debian and adds regular releases (every six months), a clear focus 
on the user and usability (it should "Just Work", TM) and a commitment to 
security updates with 18 months of support for every release. Ubuntu ships with 
the latest GNOME and KDE releases as well as a selection of server and desktop 
software that makes for a comfortable desktop experience off a single 
installation CD.
+
+Ubuntu is sponsored by [Canonical Ltd.](http://www.canonical.com/)
+
+More information:
+
+  * [Homepage](http://www.ubuntu.com/)
+
 ## Voyage
 
 [Voyage](http://linux.voyage.hk/) is best run on a x86 embedded platforms such 
as PC Engines ALIX/WRAP and Soekris 45xx/48xx boards.

> >  * If necessary, there are various hook script facilities that you can
> >use: for example, scripts in config/chroot_local-hooks/ are run in
> >the chroot near the end of the chroot build process.  Try to keep
> >this to a minimum, though; I'm trying to avoid using hook scripts in
> >builds for Ubuntu proper, as it would be better for live-build to do
> >the right thing out of the box without the need for hooks.
> 
> let me reaffirm: we'll include any ubuntu modification happily, hooks
> really should only be used for specific private modification, any
> 'generic' image (like debian or ubuntu; in contrast to a specific image
> for a specific institution with hardcoded local defaults) should be
> buildable by using live-builds defaults for that distribution. that way,
> we can make sure that it's as easy and simple as possible for people to
> build customized images on top of debian or ubuntu.

Right - in fact I was uncomfortable with even the Kubuntu hook.  I'm not
sure how to represent that well; it doesn't fit nicely into the
--parent-distribution/--distribution scheme, because it's not a
full-archive derivative but more a different package selection out of
the same archive.

> >now, the only hook script I'm using is one to remove icon-theme.cache
> >from Kubuntu images.
> 
> this, and the other two outstanding additions (apt-xapian, mlocate) are
> blocked until the internals are a bit updated in live-build to scale
> nicer for more distributions and more distro specific hooks (adding it
> right now would just clutter it some more). anyhow, that should happen
> within the next 1 or at latest 2 weeks (#630395).

Yes, I noticed the blocking bug you added.  Thanks.

-- 
Colin Watson   [cjwat...@ubuntu.com]


-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110614084626.gc11...@riva.ucam.org



Bug#630604: LB_PARENT_ARCHIVE_AREAS default handling is wrong

2011-06-15 Thread Colin Watson
Package: live-build
Version: 3.0~a21-1
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric

--parent-archive-areas seems to be broken, because the default for
LB_PARENT_ARCHIVE_AREAS checks whether LB_ARCHIVE_AREAS is already set,
not whether LB_PARENT_ARCHIVE_AREAS is already set.  Patch attached.

(Or is --parent-archive-areas deprecated?  I notice that it isn't
documented.  But then, why does the LB_MODE=progress case do
LB_PARENT_ARCHIVE_AREAS="${LB_PARENT_ARCHIVE_AREAS:-main}"?)

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From c9a8f67ca04635069263ff735ff6e69897e8380b Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Wed, 15 Jun 2011 15:15:34 +0100
Subject: [PATCH] Fix default for LB_PARENT_ARCHIVE_AREAS.

---
 functions/defaults.sh |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/functions/defaults.sh b/functions/defaults.sh
index 67b34e4..d026996 100755
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -550,12 +550,12 @@ Set_defaults ()
 			;;
 
 		ubuntu)
-			LB_PARENT_ARCHIVE_AREAS="${LB_ARCHIVE_AREAS:-main restricted}"
+			LB_PARENT_ARCHIVE_AREAS="${LB_PARENT_ARCHIVE_AREAS:-main restricted}"
 			LB_ARCHIVE_AREAS="${LB_ARCHIVE_AREAS:-${LB_PARENT_ARCHIVE_AREAS}}"
 			;;
 
 		*)
-			LB_PARENT_ARCHIVE_AREAS="${LB_ARCHIVE_AREAS:-main}"
+			LB_PARENT_ARCHIVE_AREAS="${LB_PARENT_ARCHIVE_AREAS:-main}"
 			LB_ARCHIVE_AREAS="${LB_ARCHIVE_AREAS:-${LB_PARENT_ARCHIVE_AREAS}}"
 			;;
 	esac
-- 
1.7.5.4



Bug#631281: add hook to remove .pyc files

2011-06-22 Thread Colin Watson
n/runtime.d/*.rtupdate',
  'post-rtupdate', python, python)

if osextras.find_on_path_root(self.target, 'py3versions'):
supported = subprocess.Popen(
['chroot', self.target, 'py3versions', '-s'],
stdout=subprocess.PIPE).communicate()[0].rstrip('\n')
for python in supported.split():
cachedpython = cache['%s-minimal' % python]
if not cachedpython.is_installed:
continue
version = cachedpython.installed.version
run_hooks('/usr/share/python3/runtime.d/*.rtinstall',
  'rtinstall', python, '', version)
        run_hooks('/usr/share/python3/runtime.d/*.rtupdate',
  'pre-rtupdate', python, python)
        run_hooks('/usr/share/python3/runtime.d/*.rtupdate',
  'rtupdate', python, python)
run_hooks('/usr/share/python3/runtime.d/*.rtupdate',
  'post-rtupdate', python, python)
finally:
install_misc.chroot_cleanup(self.target)

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]
>From b9ed5879f2f293dbde9d4ee8af7a1c495028abcf Mon Sep 17 00:00:00 2001
From: Colin Watson 
Date: Wed, 22 Jun 2011 15:20:17 +0100
Subject: [PATCH] Add hook to remove .pyc files.

---
 examples/hooks/all_chroot_pyc-purge.sh |7 +++
 scripts/build/lb_chroot_hacks  |2 +-
 2 files changed, 8 insertions(+), 1 deletions(-)
 create mode 100755 examples/hooks/all_chroot_pyc-purge.sh

diff --git a/examples/hooks/all_chroot_pyc-purge.sh b/examples/hooks/all_chroot_pyc-purge.sh
new file mode 100755
index 000..e74820a
--- /dev/null
+++ b/examples/hooks/all_chroot_pyc-purge.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+# This is a hook for live-build(7) to remove byte-compiled Python modules.
+# To enable it, copy or symlink this hook into your config/chroot_local-hooks
+# directory.
+
+find /usr -name \*.pyc -print0 | xargs -0r rm -f
diff --git a/scripts/build/lb_chroot_hacks b/scripts/build/lb_chroot_hacks
index f9e11dd..3f1e582 100755
--- a/scripts/build/lb_chroot_hacks
+++ b/scripts/build/lb_chroot_hacks
@@ -227,7 +227,7 @@ fi
 # build the index in the background which will be racy in the context of
 # live-build.
 if [ -x chroot/usr/sbin/update-apt-xapian-index ]; then
-	Chroot chroot /usr/sbin/update-apt-xapian-index --force --quiet
+	Chroot chroot PYTHONDONTWRITEBYTECODE=1 /usr/sbin/update-apt-xapian-index --force --quiet
 fi
 
 # Remove build systems clock drift
-- 
1.7.5.4



Bug#630089: timestamped build logs?

2012-01-12 Thread Colin Watson
On Sat, Jun 11, 2011 at 01:39:44PM +0200, Daniel Baumann wrote:
> On 06/10/2011 07:27 PM, Colin Watson wrote:
> >For example, perhaps the lb wrapper script could (be configured to)
> >print the current time before starting a command?
> 
> patch welcome :)

Sorry for the delay.  How about this?  You have to set _VERBOSE="true"
by hand since 'lb config' comments it out, but I think that's OK, and it
makes this patch about as minimally intrusive as I could manage.

diff --git a/scripts/build/lb b/scripts/build/lb
index 58c1d12..03b7b47 100755
--- a/scripts/build/lb
+++ b/scripts/build/lb
@@ -39,21 +39,26 @@ case "${1}" in
;;
 
*)
+   Read_conffiles config/common
+
COMMAND="lb_${1}"
shift
 
if [ -x "${LB_BASE}/scripts/build/${COMMAND}" ]
then
-   LB=1 exec "${LB_BASE}/scripts/build/${COMMAND}" "${@}"
+   SCRIPT="${LB_BASE}/scripts/build/${COMMAND}"
elif [ -x /usr/share/live/build/scripts/build/${COMMAND} ]
then
-   LB=1 exec 
/usr/share/live/build/scripts/build/"${COMMAND}" "${@}"
+   SCRIPT=/usr/share/live/build/scripts/build/"${COMMAND}"
elif [ -x "$(which ${COMMAND} 2>/dev/null)" ]
then
-   LB=1 exec "${COMMAND}" "${@}"
+   SCRIPT="${COMMAND}"
else
Echo_error "no such script"
exit 1
    fi
+
+   Echo_verbose "%s: Running %s" "$(date -R)" "${COMMAND} ${@}"
+   LB=1 exec "${SCRIPT}" "${@}"
;;
 esac

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]



-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/20120112171404.gn9...@riva.dynamic.greenend.org.uk



Bug#630089: timestamped build logs?

2012-01-12 Thread Colin Watson
On Thu, Jan 12, 2012 at 06:56:48PM +0100, Daniel Baumann wrote:
> On 01/12/2012 06:14 PM, Colin Watson wrote:
> > Echo_verbose "%s: Running %s" "$(date -R)" "${COMMAND} ${@}"
> 
> this will produce rather longish-imho-not-eye-friendly messages in the
> style of
> 
>   Thu, 12 Jan 2012 18:52:01 +0100 Running lb foo --verbose
> 
> i'd prefere something shorter, like:
> 
>   [2012-01-12 18:51:35] lb foo --verbose

Fair enough.

> maybe we could even use that by default, what do you think?

Oh, well that certainly simplifies things if you're happy with that, and
I expect I'd find that useful.  Updated patch follows.

diff --git a/scripts/build/lb b/scripts/build/lb
index 58c1d12..4bb76cb 100755
--- a/scripts/build/lb
+++ b/scripts/build/lb
@@ -44,16 +44,19 @@ case "${1}" in
 
if [ -x "${LB_BASE}/scripts/build/${COMMAND}" ]
then
-   LB=1 exec "${LB_BASE}/scripts/build/${COMMAND}" "${@}"
+   SCRIPT="${LB_BASE}/scripts/build/${COMMAND}"
elif [ -x /usr/share/live/build/scripts/build/${COMMAND} ]
then
-   LB=1 exec 
/usr/share/live/build/scripts/build/"${COMMAND}" "${@}"
+   SCRIPT=/usr/share/live/build/scripts/build/"${COMMAND}"
elif [ -x "$(which ${COMMAND} 2>/dev/null)" ]
then
-   LB=1 exec "${COMMAND}" "${@}"
+   SCRIPT="${COMMAND}"
else
Echo_error "no such script"
exit 1
fi
+
+   Echo "[%s] %s" "$(date +'%F %T')" "${COMMAND} ${*}"
+   LB=1 exec "${SCRIPT}" "${@}"
;;
 esac

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]



-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/20120112183657.go9...@riva.dynamic.greenend.org.uk



Re: Questions regarding diversion of flash-kernel while building chroot

2012-03-02 Thread Colin Watson
On Fri, Mar 02, 2012 at 12:50:36AM -0500, Cody A.W. Somerville wrote:
> I was curious why it is necessary to use dpkg-divert to temporarily
> disable /usr/sbin/flash-kernel per your patch accepted to live-build
> upstream but not start-stop-daemon which is instead just moved aside
> with mv a few lines above. Is it to properly handle the case where
> the file is updated via package upgrade? If so, I assume the other
> instances like start-stop-daemon need to be fixed to use dpkg-divert
> as well?

start-stop-daemon is installed as part of the base system, before
lb_chroot_dpkg runs.  flash-kernel is not, and if it's going to be
installed then it will be installed after flash-kernel.  This means that
the requirements are different.

I'm not sure whether it's possible for dpkg to be upgraded in the
context of a live-build run.  If it is, then start-stop-daemon needs to
be handled using dpkg-divert; otherwise, it isn't necessary.

> Additionally, I see you symlink /bin/true from outside the chroot to
> act as a dummy /usr/sbin/flash-kernel.

No, symlinks don't work that way.  The result of 'ln -s /bin/true
chroot/usr/sbin/flash-kernel' is that chroot/usr/sbin/flash-kernel
becomes a symlink inode with the text '/bin/true', which is resolved at
the point when it's opened, not before.  If you open
/usr/sbin/flash-kernel inside the chroot, then you'll get /bin/true
inside the chroot.

It's not possible to create a symlink that will result in the contents
of a file outside the chroot when opened inside the chroot.

> This is problematic if the (E)ABI between the host system and chroot
> system are incompatible (eg. armel host and armhf chroot) as the
> binary will not be executable and thus most likely cause the build to
> fail if flash-kernel is called. I've filed bug #661871 in Debian BTS
> regarding this.

IMO this bug should be closed as invalid.

Cheers,

-- 
Colin Watson   [cjwat...@ubuntu.com]


-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/20120302203834.gd5...@riva.dynamic.greenend.org.uk



Bug#685534: live-build: chroot hooks broken

2012-08-21 Thread Colin Watson
Package: live-build
Version: 3.0~a57-1
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch quantal

LB_CHROOT_HOOKS doesn't work, because lb_chroot_hooks looks for the
wrong file names.  Here's a patch.

diff --git a/scripts/build/lb_chroot_hooks b/scripts/build/lb_chroot_hooks
index 0ccfe2b..9d781f4 100755
--- a/scripts/build/lb_chroot_hooks
+++ b/scripts/build/lb_chroot_hooks
@@ -54,7 +54,7 @@ for _HOOK in ${LB_CHROOT_HOOKS}
 do
for LOCATION in "${LIVE_BUILD}/hooks" /usr/share/live/build/hooks
do
-   if [ -e "${LOCATION}/hooks/???-${_HOOK}.binary" ]
+   if [ -e "${LOCATION}/hooks/???-${_HOOK}.chroot" ]
then
mkdir -p chroot/root/lb_chroot_hooks
cp "${LOCATION}"/hooks/???-"${_HOOK}".chroot 
chroot/root/lb_chroot_hooks

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]


-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/20120821173330.gd8...@riva.dynamic.greenend.org.uk



Bug#685534: live-build: chroot hooks broken

2012-08-22 Thread Colin Watson
On Tue, Aug 21, 2012 at 06:33:30PM +0100, Colin Watson wrote:
> LB_CHROOT_HOOKS doesn't work, because lb_chroot_hooks looks for the
> wrong file names.  Here's a patch.

It was actually more broken than I thought.  Wildcard expansion inside
quotes isn't going to work; it was looking inside an extra level of
"hooks/" directories; and the "continue" effectively at the end of a
for-loop body was entirely pointless, so I removed it (if you want to
put it back, it probably ought to be something like "break 2" instead).

Index: b/scripts/build/lb_chroot_hooks
===
--- a/scripts/build/lb_chroot_hooks
+++ b/scripts/build/lb_chroot_hooks
@@ -54,12 +54,14 @@
 do
for LOCATION in "${LIVE_BUILD}/hooks" /usr/share/live/build/hooks
do
-   if [ -e "${LOCATION}/hooks/???-${_HOOK}.binary" ]
-   then
-   mkdir -p chroot/root/lb_chroot_hooks
-   cp "${LOCATION}"/hooks/???-"${_HOOK}".chroot 
chroot/root/lb_chroot_hooks
-   continue
-   fi
+   for FILE in "${LOCATION}"/???-"${_HOOK}".chroot
+   do
+   if [ -e "${FILE}" ]
+   then
+   mkdir -p chroot/root/lb_chroot_hooks
+   cp "${FILE}" chroot/root/lb_chroot_hooks
+   fi
+   done
done
 done
 
Index: b/scripts/build/lb_binary_hooks
===
--- a/scripts/build/lb_binary_hooks
+++ b/scripts/build/lb_binary_hooks
@@ -43,17 +43,18 @@
 # Running hooks
 for _HOOK in ${LB_BINARY_HOOKS}
 do
-   for LOCATION in "${LIVE_BUILD}/hooks" 
/usr/share/live/build/hooks
+   for LOCATION in "${LIVE_BUILD}/hooks" /usr/share/live/build/hooks
+   do
+   for FILE in "${LOCATION}"/???-"${_HOOK}".binary
do
-   if [ -e "${LOCATION}/hooks/???-${_HOOK}.binary" ]
+   if [ -e "${FILE}" ]
then
cd binary
-   ./"${LOCATION}/hooks/???-${_HOOK}.binary" || { 
Echo_error "${_HOOK} failed (exit non-zero). You should check for errors."; 
exit 1 ;}
+   ./"${FILE}" || { Echo_error "${_HOOK} failed 
(exit non-zero). You should check for errors."; exit 1 ;}
cd "${OLDPWD}"
-
-   continue
fi
done
+   done
 done
 
 ## Processing local hooks

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]


-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/20120822123653.ga21...@riva.dynamic.greenend.org.uk



Bug#685669: live-build: wrong default for LB_PARENT_MIRROR_BINARY_VOLATILE with LB_MODE=ubuntu

2012-08-23 Thread Colin Watson
Package: live-build
Version: 3.0~a57-1ubuntu1
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch quantal

With LB_MODE=ubuntu, the final fallback setting for
LB_PARENT_MIRROR_BINARY_VOLATILE is the value of LB_PARENT_MIRROR, which
is mentioned nowhere else.  I believe this ought to be
LB_PARENT_MIRROR_BINARY instead.

Index: b/functions/defaults.sh
===
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -596,7 +596,7 @@
;;
esac
 
-   
LB_PARENT_MIRROR_BINARY_VOLATILE="${LB_PARENT_MIRROR_BINARY_VOLATILE:-${LB_PARENT_MIRROR}}"
+   
LB_PARENT_MIRROR_BINARY_VOLATILE="${LB_PARENT_MIRROR_BINARY_VOLATILE:-${LB_PARENT_MIRROR_BINARY}}"
;;
 
    *)

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]


-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/20120823081952.gh8...@riva.dynamic.greenend.org.uk



Bug#685675: live-build: minimal and standard are not valid debootstrap variants

2012-08-23 Thread Colin Watson
Package: live-build
Version: 3.0~a57-1
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch quantal

As of commit 81fb4294538a7204232d3e76195a778df0ee3ee1, lb config
--bootstrap-flavour=minimal causes debootstrap to be invoked with
--variant=minimal, which produces "E: unsupported variant".  This should
be --variant=minbase instead.

Index: b/scripts/build/lb_bootstrap_debootstrap
===
--- a/scripts/build/lb_bootstrap_debootstrap
+++ b/scripts/build/lb_bootstrap_debootstrap
@@ -84,7 +84,18 @@
false)
if [ -n "${LB_BOOTSTRAP_FLAVOUR}" ]
then
-   DEBOOTSTRAP_OPTIONS="${DEBOOTSTRAP_OPTIONS} 
--variant=${LB_BOOTSTRAP_FLAVOUR}"
+   case "${LB_BOOTSTRAP_FLAVOUR}" in
+   minimal)
+   
DEBOOTSTRAP_OPTIONS="${DEBOOTSTRAP_OPTIONS} --variant=minbase"
+   ;;
+
+   standard)
+   ;;
+
+   *)
+   
DEBOOTSTRAP_OPTIONS="${DEBOOTSTRAP_OPTIONS} --variant=${LB_BOOTSTRAP_FLAVOUR}"
+   ;;
+   esac
        fi
;;
 esac

Thanks,

-- 
Colin Watson   [cjwat...@ubuntu.com]


-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/20120823090734.gi8...@riva.dynamic.greenend.org.uk



Re: Livecd-rootfs

2013-10-24 Thread Colin Watson
On Thu, Oct 24, 2013 at 10:01:25AM -0600, Sandeep G.R wrote:
>  I am using livecd-roofs to create a Ubuntu file system for powerpc
> 64bit. i have untar the livecd-rootfs and run the command.
> 
> root@Sandeep:/home/sda-14/Downloads/livecd-rootfs-precise#./livecd.sh -a
> powerpc -i ext3

livecd.sh is no longer supported.  Use the method outlined in
https://lists.ubuntu.com/archives/ubuntu-devel/2011-June/033458.html.

-- 
Colin Watson   [cjwat...@ubuntu.com]


-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20131024163610.gl16...@riva.ucam.org



Re: Bug#1091366: debian-installer: No graphical mode in sid

2024-12-25 Thread Colin Watson
On Tue, Dec 24, 2024 at 08:19:00PM +0100, Cyril Brulebois wrote:
> With cdebconf udebs reverted to their testing version (changing only that,
> feeding them via localudebs after deb-reversion), the problem goes away.

Oops, very sorry about that!  The test that Gioele added for whether
debconf is installed looked correct, but on closer inspection I found
that cdebconf installs /usr/share/debconf/frontend as a symlink to
/usr/lib/cdebconf/debconf.  (I'd like to remove that as I don't think it
really makes a lot of sense, but there's a reference to it in
installer/build/Makefile right now.)

This patch makes things work again.  I'll upload this, and the
equivalent in debconf.

diff --git a/debian/changelog b/debian/changelog
index df5661a5..ef9d7720 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+cdebconf (0.276) UNRELEASED; urgency=medium
+
+  * Fix detection of whether debconf is installed (closes: #1091366).
+
+ -- Colin Watson   Wed, 25 Dec 2024 23:26:21 +
+
 cdebconf (0.275) unstable; urgency=medium
 
   [ Gioele Barabucci ]
diff --git a/src/client/confmodule.in b/src/client/confmodule.in
index 3efc6a5a..26ef5a1a 100644
--- a/src/client/confmodule.in
+++ b/src/client/confmodule.in
@@ -9,8 +9,11 @@ _DEBCONF_IMPL=
 if [ "${DEBCONF_USE_CDEBCONF:-}" ]; then
# Use cdebconf if explicitly requested.
_DEBCONF_IMPL=cdebconf
-elif [ -x /usr/share/debconf/frontend ]; then
-   # Fall back to debconf, but only if installed.
+elif [ -x /usr/share/debconf/frontend ] && \
+ [ ! -h /usr/share/debconf/frontend ]; then
+   # Fall back to debconf, but only if installed.  (cdebconf currently
+   # installs /usr/share/debconf/frontend as a symlink to
+   # /usr/lib/cdebconf/debconf.)
_DEBCONF_IMPL=debconf
 else
# Last resort: use cdebconf although not explicitly requested.

-- 
Colin Watson (he/him)  [cjwat...@debian.org]