[SCM] debian-live/live-helper branch, master, updated. 1.0_a32-1-11-g48eb8f7

Daniel Baumann daniel at debian.org
Mon Oct 29 10:57:47 UTC 2007


The branch, master has been updated
       via  48eb8f7ba78bd308e98346428b6c7d69a42eccc9 (commit)
       via  4f3f3c45b0b10375199723fce6447641324ffb15 (commit)
       via  c71e0d5517c7028060c8d50bb6b426b6ff1469ae (commit)
       via  b01e3ff7695f039426e590c95b9d3af936bbe2c8 (commit)
       via  c7e50a404e1dff95187ca4422b49dda80179fd44 (commit)
       via  00aa1d0c28de2895246a70c2beb09cd1e7e6cd13 (commit)
      from  acff181e6333020449a067803b348ccd55668721 (commit)


- Shortlog ------------------------------------------------------------
48eb8f7 Preparing live-helper 1.0~a34-1.
4f3f3c4 Releasing live-helper 1.0~a33-1.
c71e0d5 fix lh_chroot_sources to actually install *.deb from config/chroot_sources
b01e3ff Added feature to exclude paths from the root filesystem.
c7e50a4 Remove ".img" from kernel image file name.
00aa1d0 add exposedroot option which exposes the root fs as ro

Summary of changes:
 Makefile                                |    6 ++--
 debian/changelog                        |   25 +++++++++++++++++++-
 functions/common.sh                     |    2 +-
 functions/defaults.sh                   |    3 ++
 helpers/lh_binary_chroot                |   15 ++++++++++++
 helpers/lh_binary_grub                  |    5 ++++
 helpers/lh_binary_syslinux              |   10 ++++++-
 helpers/lh_binary_yaboot                |    5 ++++
 helpers/lh_chroot_hacks                 |   39 +++++++++++++++++++++++++++++++
 helpers/lh_chroot_hosts                 |    5 ++-
 helpers/lh_chroot_sources               |    2 +-
 helpers/lh_config                       |   12 ++++++++-
 manpages/lh_binary.de.1                 |    2 +-
 manpages/lh_binary.en.1                 |    2 +-
 manpages/lh_bootstrap.de.1              |    2 +-
 manpages/lh_bootstrap.en.1              |    2 +-
 manpages/lh_bootstrap_cdebootstrap.de.1 |    2 +-
 manpages/lh_bootstrap_cdebootstrap.en.1 |    2 +-
 manpages/lh_bootstrap_debootstrap.de.1  |    2 +-
 manpages/lh_bootstrap_debootstrap.en.1  |    2 +-
 manpages/lh_build.de.1                  |    2 +-
 manpages/lh_build.en.1                  |    2 +-
 manpages/lh_chroot.de.1                 |    2 +-
 manpages/lh_chroot.en.1                 |    2 +-
 manpages/lh_clean.de.1                  |    2 +-
 manpages/lh_clean.en.1                  |    2 +-
 manpages/lh_config.de.1                 |    2 +-
 manpages/lh_config.en.1                 |    2 +-
 manpages/lh_source.de.1                 |    2 +-
 manpages/lh_source.en.1                 |    2 +-
 manpages/lh_testroot.de.1               |    2 +-
 manpages/lh_testroot.en.1               |    2 +-
 manpages/live-helper.de.7               |    2 +-
 manpages/live-helper.en.7               |    2 +-
 34 files changed, 140 insertions(+), 33 deletions(-)
-----------------------------------------------------------------------
Details of changes:

commit 48eb8f7ba78bd308e98346428b6c7d69a42eccc9
Author: Daniel Baumann <daniel at debian.org>
Date:   Mon Oct 29 11:57:24 2007 +0100

    Preparing live-helper 1.0~a34-1.

diff --git a/Makefile b/Makefile
index f1da96f..61a5e38 100644
--- a/Makefile
+++ b/Makefile
@@ -91,9 +91,9 @@ uninstall:
 update:
 	set -e; for FILE in functions/*.sh examples/cron/*.sh manpages/*.de.* manpages/*.en.*; \
 	do \
-		sed -i	-e 's/2007\\-10\\-22/2007\\-10\\-29/' \
-			-e 's/22.10.2007/29.10.2007/' \
-			-e 's/1.0~a33/1.0~a34/' \
+		sed -i	-e 's/2007\\-10\\-29/2007\\-11\\-05/' \
+			-e 's/29.10.2007/05.11.2007/' \
+			-e 's/1.0~a34/1.0~a35/' \
 		$$FILE; \
 	done
 
diff --git a/debian/changelog b/debian/changelog
index d9eed79..c65d6d6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+live-helper (1.0~a34-1) UNRELEASED; urgency=medium
+
+  * New upstream release.
+
+ -- Daniel Baumann <daniel at debian>  Mon, 29 Oct 2007 00:00:00 +0100
+
 live-helper (1.0~a33-1) unstable; urgency=medium
 
   [ Daniel Baumann ]
diff --git a/functions/common.sh b/functions/common.sh
index 14959a1..2ebf086 100755
--- a/functions/common.sh
+++ b/functions/common.sh
@@ -10,4 +10,4 @@
 set -e
 
 PROGRAM="$(basename ${0})"
-VERSION="1.0~a33"
+VERSION="1.0~a34"
diff --git a/manpages/lh_binary.de.1 b/manpages/lh_binary.de.1
index 503fde9..ac80675 100644
--- a/manpages/lh_binary.de.1
+++ b/manpages/lh_binary.de.1
@@ -1,4 +1,4 @@
-.TH LH_BINARY 1 "22.10.2007" "1.0~a33" "live\-helper"
+.TH LH_BINARY 1 "29.10.2007" "1.0~a34" "live\-helper"
 
 .SH NAME
 lh_binary \- Meta\-Helper f\[:u]r lh_binary_*
diff --git a/manpages/lh_binary.en.1 b/manpages/lh_binary.en.1
index 5175e9c..762c065 100644
--- a/manpages/lh_binary.en.1
+++ b/manpages/lh_binary.en.1
@@ -1,4 +1,4 @@
-.TH LH_BINARY 1 "2007\-10\-22" "1.0~a33" "live\-helper"
+.TH LH_BINARY 1 "2007\-10\-29" "1.0~a34" "live\-helper"
 
 .SH NAME
 lh_binary \- meta\-helper for lh_binary_*
diff --git a/manpages/lh_bootstrap.de.1 b/manpages/lh_bootstrap.de.1
index f3b36b1..32ff0c5 100644
--- a/manpages/lh_bootstrap.de.1
+++ b/manpages/lh_bootstrap.de.1
@@ -1,4 +1,4 @@
-.TH LH_BOOTSTRAP 1 "22.10.2007" "1.0~a33" "live\-helper"
+.TH LH_BOOTSTRAP 1 "29.10.2007" "1.0~a34" "live\-helper"
 
 .SH NAME
 lh_bootstrap \- Meta\-Helper f\[:u]r lh_bootstrap_*
diff --git a/manpages/lh_bootstrap.en.1 b/manpages/lh_bootstrap.en.1
index ccdc8ac..3b55720 100644
--- a/manpages/lh_bootstrap.en.1
+++ b/manpages/lh_bootstrap.en.1
@@ -1,4 +1,4 @@
-.TH LH_BOOTSTRAP 1 "2007\-10\-22" "1.0~a33" "live\-helper"
+.TH LH_BOOTSTRAP 1 "2007\-10\-29" "1.0~a34" "live\-helper"
 
 .SH NAME
 lh_bootstrap \- meta\-helper for lh_bootstrap_*
diff --git a/manpages/lh_bootstrap_cdebootstrap.de.1 b/manpages/lh_bootstrap_cdebootstrap.de.1
index bf77961..e5094db 100644
--- a/manpages/lh_bootstrap_cdebootstrap.de.1
+++ b/manpages/lh_bootstrap_cdebootstrap.de.1
@@ -1,4 +1,4 @@
-.TH LH_BOOTSTRAP_CDEBOOTSTRAP 1 "22.10.2007" "1.0~a33" "live\-helper"
+.TH LH_BOOTSTRAP_CDEBOOTSTRAP 1 "29.10.2007" "1.0~a34" "live\-helper"
 
 .SH NAME
 lh_bootstrap_cdebootstrap \- erstellt ein Debian-System mit \fIcdebootstrap\fR(1)
diff --git a/manpages/lh_bootstrap_cdebootstrap.en.1 b/manpages/lh_bootstrap_cdebootstrap.en.1
index 1be522c..8c23bec 100644
--- a/manpages/lh_bootstrap_cdebootstrap.en.1
+++ b/manpages/lh_bootstrap_cdebootstrap.en.1
@@ -1,4 +1,4 @@
-.TH LH_BOOTSTRAP_CDEBOOTSTRAP 1 "2007\-10\-22" "1.0~a33" "live\-helper"
+.TH LH_BOOTSTRAP_CDEBOOTSTRAP 1 "2007\-10\-29" "1.0~a34" "live\-helper"
 
 .SH NAME
 lh_bootstrap_cdebootstrap \- bootstrap a Debian system with \fIcdebootstrap\fR(1)
diff --git a/manpages/lh_bootstrap_debootstrap.de.1 b/manpages/lh_bootstrap_debootstrap.de.1
index ddac30a..bf1bcc9 100644
--- a/manpages/lh_bootstrap_debootstrap.de.1
+++ b/manpages/lh_bootstrap_debootstrap.de.1
@@ -1,4 +1,4 @@
-.TH LH_BOOTSTRAP_DEBOOTSTRAP 1 "22.10.2007" "1.0~a33" "live\-helper"
+.TH LH_BOOTSTRAP_DEBOOTSTRAP 1 "29.10.2007" "1.0~a34" "live\-helper"
 
 .SH NAME
 lh_bootstrap_debootstrap \- erstellt ein Debian-System mit \fIdebootstrap\fR(8)
diff --git a/manpages/lh_bootstrap_debootstrap.en.1 b/manpages/lh_bootstrap_debootstrap.en.1
index c0a5938..243aa96 100644
--- a/manpages/lh_bootstrap_debootstrap.en.1
+++ b/manpages/lh_bootstrap_debootstrap.en.1
@@ -1,4 +1,4 @@
-.TH LH_BOOTSTRAP_DEBOOTSTRAP 1 "2007\-10\-22" "1.0~a33" "live\-helper"
+.TH LH_BOOTSTRAP_DEBOOTSTRAP 1 "2007\-10\-29" "1.0~a34" "live\-helper"
 
 .SH NAME
 lh_bootstrap_debootstrap \- bootstrap a Debian system with \fIdebootstrap\fR(8)
diff --git a/manpages/lh_build.de.1 b/manpages/lh_build.de.1
index 4b3038a..7537862 100644
--- a/manpages/lh_build.de.1
+++ b/manpages/lh_build.de.1
@@ -1,4 +1,4 @@
-.TH LH_BUILD 1 "22.10.2007" "1.0~a33" "live\-helper"
+.TH LH_BUILD 1 "29.10.2007" "1.0~a34" "live\-helper"
 
 .SH NAME
 lh_build \- erstellen eines Live-Systemes
diff --git a/manpages/lh_build.en.1 b/manpages/lh_build.en.1
index f5bd8d0..be7be02 100644
--- a/manpages/lh_build.en.1
+++ b/manpages/lh_build.en.1
@@ -1,4 +1,4 @@
-.TH LH_BUILD 1 "2007\-10\-22" "1.0~a33" "live\-helper"
+.TH LH_BUILD 1 "2007\-10\-29" "1.0~a34" "live\-helper"
 
 .SH NAME
 lh_build \- building a live system
diff --git a/manpages/lh_chroot.de.1 b/manpages/lh_chroot.de.1
index 3cf3632..9f71ac5 100644
--- a/manpages/lh_chroot.de.1
+++ b/manpages/lh_chroot.de.1
@@ -1,4 +1,4 @@
-.TH LH_CHROOT 1 "22.10.2007" "1.0~a33" "live\-helper"
+.TH LH_CHROOT 1 "29.10.2007" "1.0~a34" "live\-helper"
 
 .SH NAME
 lh_chroot \- Meta\-Helper f\[:u]r lh_chroot_*
diff --git a/manpages/lh_chroot.en.1 b/manpages/lh_chroot.en.1
index cb866d4..bf22fa2 100644
--- a/manpages/lh_chroot.en.1
+++ b/manpages/lh_chroot.en.1
@@ -1,4 +1,4 @@
-.TH LH_CHROOT 1 "2007\-10\-22" "1.0~a33" "live\-helper"
+.TH LH_CHROOT 1 "2007\-10\-29" "1.0~a34" "live\-helper"
 
 .SH NAME
 lh_chroot \- meta\-helper for lh_chroot_*
diff --git a/manpages/lh_clean.de.1 b/manpages/lh_clean.de.1
index 88818f8..deaf321 100644
--- a/manpages/lh_clean.de.1
+++ b/manpages/lh_clean.de.1
@@ -1,4 +1,4 @@
-.TH LH_CLEAN 1 "22.10.2007" "1.0~a33" "live\-helper"
+.TH LH_CLEAN 1 "29.10.2007" "1.0~a34" "live\-helper"
 
 .SH NAME
 lh_clean \- r\[:a]umt das Build-Verzeichnis auf
diff --git a/manpages/lh_clean.en.1 b/manpages/lh_clean.en.1
index 29f7d36..20a7af1 100644
--- a/manpages/lh_clean.en.1
+++ b/manpages/lh_clean.en.1
@@ -1,4 +1,4 @@
-.TH LH_CLEAN 1 "2007\-10\-22" "1.0~a33" "live\-helper"
+.TH LH_CLEAN 1 "2007\-10\-29" "1.0~a34" "live\-helper"
 
 .SH NAME
 lh_clean \- clean up system build directories
diff --git a/manpages/lh_config.de.1 b/manpages/lh_config.de.1
index 2cdf7b7..ac4d177 100644
--- a/manpages/lh_config.de.1
+++ b/manpages/lh_config.de.1
@@ -1,4 +1,4 @@
-.TH LH_CONFIG 1 "22.10.2007" "1.0~a33" "live\-helper"
+.TH LH_CONFIG 1 "29.10.2007" "1.0~a34" "live\-helper"
 
 .SH NAME
 lh_config \- erstellt live-helper(7) Konfiguration
diff --git a/manpages/lh_config.en.1 b/manpages/lh_config.en.1
index e952f0c..1c5efd0 100644
--- a/manpages/lh_config.en.1
+++ b/manpages/lh_config.en.1
@@ -1,4 +1,4 @@
-.TH LH_CONFIG 1 "2007\-10\-22" "1.0~a33" "live\-helper"
+.TH LH_CONFIG 1 "2007\-10\-29" "1.0~a34" "live\-helper"
 
 .SH NAME
 lh_config \- create configuration for live-helper(7)
diff --git a/manpages/lh_source.de.1 b/manpages/lh_source.de.1
index bd2d97f..5d1e6c6 100644
--- a/manpages/lh_source.de.1
+++ b/manpages/lh_source.de.1
@@ -1,4 +1,4 @@
-.TH LH_SOURCE 1 "22.10.2007" "1.0~a33" "live\-helper"
+.TH LH_SOURCE 1 "29.10.2007" "1.0~a34" "live\-helper"
 
 .SH NAME
 lh_source \- Meta\-Helper f\[:u]r lh_source_*
diff --git a/manpages/lh_source.en.1 b/manpages/lh_source.en.1
index 946a878..bb9480a 100644
--- a/manpages/lh_source.en.1
+++ b/manpages/lh_source.en.1
@@ -1,4 +1,4 @@
-.TH LH_SOURCE 1 "2007\-10\-22" "1.0~a33" "live\-helper"
+.TH LH_SOURCE 1 "2007\-10\-29" "1.0~a34" "live\-helper"
 
 .SH NAME
 lh_source \- meta\-helper for lh_source_*
diff --git a/manpages/lh_testroot.de.1 b/manpages/lh_testroot.de.1
index 892d25a..35e9312 100644
--- a/manpages/lh_testroot.de.1
+++ b/manpages/lh_testroot.de.1
@@ -1,4 +1,4 @@
-.TH LH_TESTROOT 1 "22.10.2007" "1.0~a33" "live\-helper"
+.TH LH_TESTROOT 1 "29.10.2007" "1.0~a34" "live\-helper"
 
 .SH NAME
 lh_testroot \- stellt sicher dass das System als root gebaut wird
diff --git a/manpages/lh_testroot.en.1 b/manpages/lh_testroot.en.1
index 0ed382b..47e4a30 100644
--- a/manpages/lh_testroot.en.1
+++ b/manpages/lh_testroot.en.1
@@ -1,4 +1,4 @@
-.TH LH_TESTROOT 1 "2007\-10\-22" "1.0~a33" "live\-helper"
+.TH LH_TESTROOT 1 "2007\-10\-29" "1.0~a34" "live\-helper"
 
 .SH NAME
 lh_testroot \- ensure that a system is built as root
diff --git a/manpages/live-helper.de.7 b/manpages/live-helper.de.7
index 68abb61..6a8a68b 100644
--- a/manpages/live-helper.de.7
+++ b/manpages/live-helper.de.7
@@ -1,4 +1,4 @@
-.TH LIVE\-HELPER 7 "22.10.2007" "1.0~a33" "live\-helper"
+.TH LIVE\-HELPER 7 "29.10.2007" "1.0~a34" "live\-helper"
 
 .SH NAME
 live\-helper \- Debian Live Helper-Programme
diff --git a/manpages/live-helper.en.7 b/manpages/live-helper.en.7
index 559a821..bbdf9ea 100644
--- a/manpages/live-helper.en.7
+++ b/manpages/live-helper.en.7
@@ -1,4 +1,4 @@
-.TH LIVE\-HELPER 7 "2007\-10\-22" "1.0~a33" "live\-helper"
+.TH LIVE\-HELPER 7 "2007\-10\-29" "1.0~a34" "live\-helper"
 
 .SH NAME
 live\-helper \- Debian Live helper programs

commit 4f3f3c45b0b10375199723fce6447641324ffb15
Author: Daniel Baumann <daniel at debian.org>
Date:   Mon Oct 29 11:55:19 2007 +0100

    Releasing live-helper 1.0~a33-1.

diff --git a/debian/changelog b/debian/changelog
index 8fd06ec..d9eed79 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,23 @@
-live-helper (1.0~a33-1) UNRELEASED; urgency=medium
+live-helper (1.0~a33-1) unstable; urgency=medium
 
+  [ Daniel Baumann ]
   * New upstream release.
+  * Preparing live-helper 1.0~a33-1.
+  * Adding cryptsetup.
+  * Removing ubuntu support.
+  * Removing mkisofs support.
+  * Setting default union filesystem to for etch to unionfs.
+
+  [ Alex Owen ]
+  * fix lh_chroot_sources to actually install *.deb from
+    config/chroot_sources
+
+  [ Jesse Hathaway ]
+  * add exposedroot option which exposes the root fs as ro
+
+  [ Maarten ter Huurne ]
+  * Remove ".img" from kernel image file name.
+  * Added feature to exclude paths from the root filesystem.
 
  -- Daniel Baumann <daniel at debian>  Mon, 22 Oct 2007 00:00:00 +0200
 

commit c71e0d5517c7028060c8d50bb6b426b6ff1469ae
Author: Alex Owen <r.alex.owen at gmail.com>
Date:   Sun Oct 14 22:37:49 2007 +0100

    fix lh_chroot_sources to actually install *.deb from config/chroot_sources

diff --git a/helpers/lh_chroot_sources b/helpers/lh_chroot_sources
index 632daf6..f1bab8e 100755
--- a/helpers/lh_chroot_sources
+++ b/helpers/lh_chroot_sources
@@ -142,7 +142,7 @@ case "${1}" in
 				for PACKAGE in config/chroot_sources/*.deb
 				do
 					cp ${PACKAGE} chroot/root
-					Chroot "dpkg -i $(basename ${PACKAGE})"
+					Chroot "dpkg -i /root/$(basename ${PACKAGE})"
 					rm -f chroot/root/$(basename ${PACKAGE})
 				done
 			fi

commit b01e3ff7695f039426e590c95b9d3af936bbe2c8
Author: Maarten ter Huurne <maarten at treewalker.org>
Date:   Sun Oct 28 03:14:42 2007 +0100

    Added feature to exclude paths from the root filesystem.
    
    To make the root filesystem as small as possible, it can be useful to exclude
    certain files or directories. This is now possible by using the file
    config/binary_rootfs/exclude, which contains a whitespace separated list of
    file paths to exclude; wildcards are allowed. These paths are removed from the
    chroot copy before the root filesystem is built.

diff --git a/helpers/lh_binary_chroot b/helpers/lh_binary_chroot
index f6615e1..50d3d67 100755
--- a/helpers/lh_binary_chroot
+++ b/helpers/lh_binary_chroot
@@ -78,6 +78,21 @@ ${LH_ROOT_COMMAND} rm -rf chroot.tmp
 ${LH_ROOT_COMMAND} cp -a chroot chroot.tmp
 ${LH_ROOT_COMMAND} mv chroot.tmp chroot/chroot
 
+if [ -f config/binary_rootfs/exclude ]
+then
+	# Read exclude file and expand wildcards.
+	for EXCLUDE in `cat config/binary_rootfs/exclude`
+	do
+		if [ -e chroot/chroot/"${EXCLUDE}" ]
+		then
+			# Run "rm" inside the chroot so it cannot possibly remove host files.
+			Chroot "rm -r chroot/${EXCLUDE}"
+		else
+			Echo_warning "Excluded path does not exist: ${EXCLUDE}"
+		fi
+	done
+fi
+
 if [ -n "${LH_ROOT_COMMAND}" ]
 then
 	${LH_ROOT_COMMAND} chown -R $(whoami):$(whoami) chroot

commit c7e50a404e1dff95187ca4422b49dda80179fd44
Author: Maarten ter Huurne <maarten at treewalker.org>
Date:   Sat Oct 27 03:13:29 2007 +0200

    Remove ".img" from kernel image file name.
    
    When an ISO is created with the kernel image file name ending in ".img", the
    ISO will not boot. In Qemu, the following error will be shown:
    
            FATAL: Int13 eltorito call with AX=4C00
    
    This means a non-implemented BIOS entry was called. In VMware and on real
    hardware there is a different error message:
    
            Cannot load disk image (invalid file)?
    
    Removing the ".img" part of the file name solves this.

diff --git a/helpers/lh_binary_syslinux b/helpers/lh_binary_syslinux
index a6eb400..9e85f46 100755
--- a/helpers/lh_binary_syslinux
+++ b/helpers/lh_binary_syslinux
@@ -102,9 +102,10 @@ Syslinux_live_entry ()
    then
       num=$(ls -1 ${KERNEL_PATH}|grep 'vmlinuz.\.img$'|wc -l)
       num=$(($num +1))
-      mv ${KERNEL_PATH}/${KERNEL} ${KERNEL_PATH}/vmlinuz${num}.img
+      # Note: ISOLINUX will not find the kernel if the name ends in ".img".
+      mv ${KERNEL_PATH}/${KERNEL} ${KERNEL_PATH}/vmlinuz${num}
       mv ${KERNEL_PATH}/${INITRD} ${KERNEL_PATH}/initrd${num}.img
-      KERNEL=vmlinuz${num}.img
+      KERNEL=vmlinuz${num}
       INITRD=initrd${num}.img
    fi
 

commit 00aa1d0c28de2895246a70c2beb09cd1e7e6cd13
Author: Jesse Hathaway <jesse at mbuki-mvuki.org>
Date:   Tue Oct 23 16:56:43 2007 -0400

    add exposedroot option which exposes the root fs as ro
    
    This option allows you to expose the root read only.  Using
    this option a person could upgrade the root filesystem or
    add packages without requiring the user to reboot. The root
    filesystem could be kept on an nfs volume or some other
    persistent medium. Multiple clients could then be booted off
    the same root fs. I used LTSP as a template to determine which
    directories to make rw.

diff --git a/functions/defaults.sh b/functions/defaults.sh
index 715e568..8a876f0 100755
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -298,6 +298,9 @@ Set_defaults ()
 	# Setting chroot filesystem
 	LH_CHROOT_FILESYSTEM="${LH_CHROOT_FILESYSTEM:-squashfs}"
 
+	# Setting whether to expose root filesystem as read only
+	LH_EXPOSED_ROOT="${LH_EXPOSED_ROOT:-disabled}"
+
 	# Setting union filesystem
 	if [ -z "${LH_UNION_FILESYSTEM}" ]
 	then
diff --git a/helpers/lh_binary_grub b/helpers/lh_binary_grub
index 9ba3286..1c05962 100755
--- a/helpers/lh_binary_grub
+++ b/helpers/lh_binary_grub
@@ -178,6 +178,11 @@ then
 	LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} union=${LH_UNION_FILESYSTEM}"
 fi
 
+if [ "${LH_EXPOSED_ROOT}" != "disabled" ]
+then
+	LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} exposedroot"
+fi
+
 LH_BOOTAPPEND_LIVE="$(echo ${LH_BOOTAPPEND_LIVE} | sed -e 's/  //')"
 
 # Parameters are listed at: linux/Documentation/kernel-parameters.txt
diff --git a/helpers/lh_binary_syslinux b/helpers/lh_binary_syslinux
index 68fa0f3..a6eb400 100755
--- a/helpers/lh_binary_syslinux
+++ b/helpers/lh_binary_syslinux
@@ -403,6 +403,11 @@ then
 	LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} union=${LH_UNION_FILESYSTEM}"
 fi
 
+if [ "${LH_EXPOSED_ROOT}" != "disabled" ]
+then
+	LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} exposedroot"
+fi
+
 if [ "${LH_BINARY_IMAGES}" = "net" ]
 then
 	case "${LH_NET_FILESYSTEM}" in
diff --git a/helpers/lh_binary_yaboot b/helpers/lh_binary_yaboot
index 8cffb3f..93fc0bb 100755
--- a/helpers/lh_binary_yaboot
+++ b/helpers/lh_binary_yaboot
@@ -186,6 +186,11 @@ then
 	LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} union=${LH_UNION_FILESYSTEM}"
 fi
 
+if [ "${LH_EXPOSED_ROOT}" != "disabled" ]
+then
+	LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} exposedroot"
+fi
+
 LH_BOOTAPPEND_LIVE="$(echo ${LH_BOOTAPPEND_LIVE} | sed -e 's/  //')"
 
 # Parameters are listed at: linux/Documentation/kernel-parameters.txt
diff --git a/helpers/lh_chroot_hacks b/helpers/lh_chroot_hacks
index da2be17..6eaef4f 100755
--- a/helpers/lh_chroot_hacks
+++ b/helpers/lh_chroot_hacks
@@ -111,5 +111,44 @@ then
 	chown -R --quiet 999:999 chroot/home/${LH_USERNAME}
 fi
 
+if [ "${LH_EXPOSED_ROOT}" = "enabled" ]
+then
+	# Make sure RW dirs exist so that the initramfs script has
+	# a directory in which to bind the tmpfs filesystems
+	COW_DIRS='/tmp /var/tmp /var/lock /var/run /var/lib/live /var/log
+		/var/spool /home /live'
+	for DIR in ${COW_DIRS}; do
+		mkdir -p chroot${DIR}
+	done
+
+	# Config files which need to be RW
+	CONFIG_FILES='/etc/hostname /etc/hosts /etc/resolv.conf /etc/fstab
+		/etc/live.conf /etc/network/interfaces /etc/X11/xorg.conf
+		/etc/udev/rules.d/z25_persistent-net.rules
+		/etc/udev/rules.d/z25_persistent-cd.rules'
+
+	# Where we will store RW config files
+	RW_DIR='/var/lib/live'
+
+	for FILE_PATH in ${CONFIG_FILES}
+	do
+		# Touch files in case they don't yet exist
+		FILE_DIR=$(dirname ${FILE_PATH})
+		mkdir -p chroot${FILE_DIR}
+		touch chroot${FILE_PATH}
+		FILE_NAME=$(basename ${FILE_PATH})
+		mkdir -p chroot${RW_DIR}${FILE_DIR}
+		mv chroot${FILE_PATH} chroot${RW_DIR}${FILE_DIR}
+		# Create a symbolic link to RW config file
+		RELATIVE_PATH=$(echo ${FILE_DIR}|sed 's/[^\/]\+/../g; s/^\///g')
+		ln -s ${RELATIVE_PATH}${RW_DIR}${FILE_PATH} chroot${FILE_PATH}
+	done
+
+	# Mount doesn't write to a symlink so use /proc/mounts instead,
+	# see debian bug #154438 for more info
+	rm chroot/etc/mtab
+	ln -s /proc/mounts chroot/etc/mtab
+fi
+
 # Creating stage file
 Create_stagefile .stage/chroot_hacks
diff --git a/helpers/lh_chroot_hosts b/helpers/lh_chroot_hosts
index c4d633e..8480383 100755
--- a/helpers/lh_chroot_hosts
+++ b/helpers/lh_chroot_hosts
@@ -87,8 +87,9 @@ EOF
 			# Restore hosts file
 			mv chroot/etc/hosts.orig chroot/etc/hosts
 		else
-			# Remove hosts file
-			rm -f chroot/etc/hosts
+			# Blank out hosts file, don't remove in case
+			# its a symlink, as in the case of exposedroot mode
+			cat /dev/null > chroot/etc/hosts
 		fi
 
 		# Removing stage file
diff --git a/helpers/lh_config b/helpers/lh_config
index 5fc2f7c..c702b7d 100755
--- a/helpers/lh_config
+++ b/helpers/lh_config
@@ -96,12 +96,13 @@ USAGE="${PROGRAM} [--apt apt|aptitude]\n\
 \t    [--tasks TASK]\n\
 \t    [--templates PATH]\n\
 \t    [--union-filesystem aufs|unionfs]\n\
+\t    [--exposed-root enabled|disabled]\n\
 \t    [--username NAME]\n\
 \t    [--verbose]"
 
 Local_arguments ()
 {
-	ARGUMENTS="$(getopt --longoptions apt:,apt-ftp-proxy:,apt-http-proxy:,apt-pdiffs:,apt-pipeline:,apt-recommends:,apt-secure:,bootstrap:,cache:,cache-indices:,cache-packages:,cache-stages:,debconf-frontend:,debconf-nowarnings:,debconf-priority:,genisoimage:,initramfs:,losetup:,mode:,root-command:,tasksel:,includes:,templates:,architecture:,bootstrap-config:,bootstrap-flavour:,bootstrap-keyring:,distribution:,mirror-bootstrap:,mirror-bootstrap-security:,mirror-binary:,mirror-binary-security:,sections:,chroot-filesystem:,union-filesystem:,hooks:,interactive:,keyring-packages:,language:,linux-flavours:,linux-packages:,packages:,packages-lists:,tasks:,security:,symlinks:,sysvinit:,binary-images:,binary-indices:,bootappend-install:,bootappend-live:,bootloader:,chroot-build:,debian-installer:,debian-installer-daily:,encryption:,grub-splash:,hostname:,iso-application:,iso-preparer:,iso-publisher:,iso-volume:,memtest:,net-filesystem:,net-mountoptions:,net-path:,net-server:,syslinux-splash:,syslinux-timeout:,username:,source:,source-images:,breakpoints,conffile:,debug,force,help,quiet,usage,verbose,version --name=${PROGRAM} --options a:f:d:m:l:k:p:b:e:s:c:huv --shell sh -- "${@}")"
+	ARGUMENTS="$(getopt --longoptions apt:,apt-ftp-proxy:,apt-http-proxy:,apt-pdiffs:,apt-pipeline:,apt-recommends:,apt-secure:,bootstrap:,cache:,cache-indices:,cache-packages:,cache-stages:,debconf-frontend:,debconf-nowarnings:,debconf-priority:,genisoimage:,initramfs:,losetup:,mode:,root-command:,tasksel:,includes:,templates:,architecture:,bootstrap-config:,bootstrap-flavour:,bootstrap-keyring:,distribution:,mirror-bootstrap:,mirror-bootstrap-security:,mirror-binary:,mirror-binary-security:,sections:,chroot-filesystem:,union-filesystem:,exposed-root:,hooks:,interactive:,keyring-packages:,language:,linux-flavours:,linux-packages:,packages:,packages-lists:,tasks:,security:,symlinks:,sysvinit:,binary-images:,binary-indices:,bootappend-install:,bootappend-live:,bootloader:,chroot-build:,debian-installer:,debian-installer-daily:,encryption:,grub-splash:,hostname:,iso-application:,iso-preparer:,iso-publisher:,iso-volume:,memtest:,net-filesystem:,net-mountoptions:,net-path:,net-server:,syslinux-splash:,syslinux-timeout:,username:,source:,source-images:,breakpoints,conffile:,debug,force,help,quiet,usage,verbose,version --name=${PROGRAM} --options a:f:d:m:l:k:p:b:e:s:c:huv --shell sh -- "${@}")"
 
 	if [ "${?}" != "0" ]
 	then
@@ -317,6 +318,11 @@ Local_arguments ()
 				shift 2
 				;;
 
+			--exposed-root)
+				LH_EXPOSED_ROOT="${2}"
+				shift 2
+				;;
+
 			--hooks)
 				LH_HOOKS="${2}"
 				shift 2
@@ -773,6 +779,10 @@ LH_CHROOT_FILESYSTEM="${LH_CHROOT_FILESYSTEM}"
 # (Default: ${LH_UNION_FILESYSTEM}
 LH_UNION_FILESYSTEM="${LH_UNION_FILESYSTEM}"
 
+# \$LH_EXPOSED_ROOT: expose root as read only
+# (Default: ${LH_EXPOSED_ROOT})
+LH_EXPOSED_ROOT="${LH_EXPOSED_ROOT}"
+
 # \$LH_HOOKS: set hook commands
 # (Default: empty)
 LH_HOOKS="${LH_HOOKS}"

-- 
debian-live/live-helper



More information about the debian-live-changes mailing list