# Installing executables
mkdir -p $(DESTDIR)/sbin
- cp bin/live-getty bin/live-login bin/live-snapshot $(DESTDIR)/sbin
+ cp bin/live-getty bin/live-login bin/live-new-uuid bin/live-snapshot $(DESTDIR)/sbin
mkdir -p $(DESTDIR)/usr/share/live-initramfs
cp bin/live-preseed bin/live-reconfigure $(DESTDIR)/usr/share/live-initramfs
--- /dev/null
+#!/bin/sh
+# -*- coding: utf-8 -*-
+#
+# «casper-new-uuid» - Creates and injects new UUIDs for casper disks
+#
+# Create new UUIDs for disks to prevent conflicts and booting the wrong casper
+# directory. Particularly useful in creating recovery disks that need to be
+# able to also work with recovery partitioning schemes.
+#
+# Copyright (C) 2008, Dell Inc.
+#
+# Author:
+# - Mario Limonciello <Mario_Limonciello@Dell.com>
+#
+# This script is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free
+# Software Foundation; either version 2 of the License, or at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this application; if not, write to the Free Software Foundation, Inc., 51
+# Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+##################################################################################
+
+set -e
+
+help() {
+ echo
+ echo "USAGE: $0 initrd.gz <path-to-new-initrd.gz> <path-to-new-casper-uuid> "
+ echo
+ echo "initrd.gz is the absolute path to the original gzipped initramfs"
+ echo "<path-to-new-initrd.gz> is the destination directory for the new gzipped initramfs"
+ echo "<path-to-new-casper-uuid> is the destination directory for the new casper-uuid-TYPE "
+ echo
+ echo "if either path is absent, they will end up in the current directory "
+ echo "TYPE is determined by an already existing casper-uuid-* or by 'uname -s'"
+}
+
+if [ "$#" = "0" ] || [ "x$1" = x-h ] || [ "x$1" = x--help ]; then
+ help
+ exit 3
+fi
+
+CWD=`pwd`
+TEMPDIR=`mktemp -d /tmp/uuid-XXXXXX`
+TYPE=`uname -r | cut -d '-' -f 3`
+
+if [ -z "$2" ] || [ ! -d "$2" ] || [ "$2" = "." ]; then
+ GZIPDIR="$CWD"
+else
+ GZIPDIR="$2"
+fi
+
+if [ -z "$3" ] || [ ! -d "$3" ] || [ "$3" = "." ]; then
+ CASPERDIR="$CWD"
+else
+ CASPERDIR="$3"
+fi
+
+cd "$TEMPDIR"
+zcat "$1" | cpio -id
+uuidgen -r > conf/uuid.conf
+find . | cpio --quiet --dereference -o -H newc | gzip > "$GZIPDIR/initrd.gz"
+if [ "$(ls "$CASPERDIR/casper-uuid"-* >/dev/null 2>&1 | wc -l)" = 1 ]; then
+ cp conf/uuid.conf "$CASPERDIR/casper-uuid"-*
+else
+ cp conf/uuid.conf "$CASPERDIR/casper-uuid-$TYPE"
+fi
+cd "$CWD"
+rm -rf "$TEMPDIR"
ext2|ext3)
DU_DIM="$(du -ks ${SNAP_COW} | cut -f1)"
REAL_DIM="$(expr ${DU_DIM} + ${DU_DIM} / 20)" # Just 5% more to be sure, need something more sophistcated here...
- genext2fs --size-in-blocks=${REAL_DIM} --reserved-blocks=0 --root="${SNAP_COW}" "${DEST}"
+ genext2fs --size-in-blocks=${REAL_DIM} --reserved-percentage=0 --root="${SNAP_COW}" "${DEST}"
;;
jffs2)
+casper (1.130) hardy; urgency=low
+
+ * Handle use of debian-installer/language for locale selection
+ (LP: #213930).
+
+ -- Colin Watson <cjwatson@ubuntu.com> Sat, 12 Apr 2008 00:30:10 +0100
+
+casper (1.129) hardy; urgency=low
+
+ * Add COPYING file with GPL text (LP: #211923).
+ * Add casper-new-uuid script to simplify UUID regeneration process,
+ contributed by Mario Limonciello of Dell (LP: #209847).
+ * Update casper-snapshot for genext2fs --reserved-blocks =>
+ --reserved-percentage option change (LP: #202048). Add a Breaks as the
+ most lightweight available method of documenting that we need genext2fs
+ >= 1.4.1 for this.
+
+ -- Colin Watson <cjwatson@ubuntu.com> Thu, 10 Apr 2008 01:45:47 +0100
+
casper (1.128) hardy; urgency=low
[ Luke Yelavich ]
cp /usr/share/initramfs-tools/scripts/live-functions "${DESTDIR}"/scripts
cp /usr/share/initramfs-tools/scripts/live-helpers "${DESTDIR}"/scripts
+# klibc dependencies
+for hidden_klibc_dep_library in libacl libblkid libuuid libdevmapper libattr
+do
+ cp -a /lib/${hidden_klibc_dep_library}.so.* "${DESTDIR}"/lib
+done
+
# Handling other stuff
# Configuration: keymap (usefull when using encryption)
copy_exec /sbin/losetup /sbin
manual_add_modules loop
manual_add_modules squashfs
-manual_add_modules unlzma
manual_add_modules sqlzma
+manual_add_modules unlzma
# Filesystem: unionfs/aufs
manual_add_modules unionfs
then
copy_exec /usr/bin/wget /bin
fi
-
-# Fix missing klibc deps
-for hidden_klibc_dep_library in libacl libblkid libuuid libdevmapper libattr
-do
- cp -a /lib/${hidden_klibc_dep_library}.so.* ${DESTDIR}/lib
-done
export LIVE_MEDIA_TIMEOUT
;;
+ language=*|debian-installer/language=*)
+ language=${x#debian-installer/language=}
+ locale="$(lang2locale "$language")"
+ set_locale="true"
+ ;;
+
locale=*|debian-installer/locale=*)
LOCALE="${ARGUMENT#*=}"
export LOCALE
eval export "${STRING}"="${VALUE}"
}
+
+lang2locale() {
+ langpart="${1%%_*}"
+ if [ "$1" != "C" ]; then
+ # Match the language code with 3rd field in languagelist
+ line=$(grep -v "^#" /root/usr/share/localechooser/languagelist | cut -f3,4,5 -d\; | grep -v ';C$' | grep "^$langpart;")
+ if [ -n "$line" ]; then
+ if [ "$(echo "$line" | grep -c '')" -gt 1 ]; then
+ # More than one match; try matching the
+ # country as well.
+ countrypart="${1#*_}"
+ if [ "$countrypart" = "$1" ]; then
+ countryline="$(echo "$line" | head -n1)"
+ echo "${countryline##*;}"
+ return
+ fi
+ countrypart="${countrypart%%[@.]*}"
+ countryline="$(echo "$line" | grep ";$countrypart;" | head -n1 || true)"
+ if [ "$countryline" ]; then
+ echo "${countryline##*;}"
+ return
+ fi
+ fi
+ echo "${line##*;}"
+ fi
+ else
+ echo "C"
+ fi
+}