[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#700798: marked as done (live-tools/3.0.19-1)



Your message dated Fri, 01 Mar 2013 13:05:56 +0000
with message-id <8767bfc502b52c237c5a102441c302eb@mail.adsl.funky-badger.org>
and subject line Re: Bug#700798: unblock: live-tools/3.0.18-1
has caused the Debian Bug report #700798,
regarding live-tools/3.0.19-1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
700798: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=700798
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package live-tools

The version in wheezy had some issues (see #685752 which this request
supercedes and I will now close) with upgradability that, while not
typical use cases (live-tools would normally only be installed on a live
system and subsequently not upgraded) were nevertheless show-stoppers
for the wheezy release.  Those issues have have since been resolved. We
consider this release to be the only supportable version for the
lifetime of wheezy.

I have attached a cleaned up diff which lists at the top the specific
cleanups performed to make review easier.

unblock live-tools/3.0.18-1

-- System Information:
Debian Release: 7.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.7-trunk-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
This is a diff 3.0.3-1..3.0.18-1:
  * without manpage translation changes
  * with filenames adjusted to account for file renames providing a minimal diff

diff -Naurp live-tools.orig/bin/live-persistence live-tools/bin/live-persistence
--- live-tools.orig/bin/live-persistence	1970-01-01 01:00:00.000000000 +0100
+++ live-tools/bin/live-persistence	2013-02-15 10:42:34.619868805 +0100
@@ -0,0 +1,482 @@
+#!/bin/sh
+
+## live-tools(7) - System Support Scripts
+##
+## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
+## This is free software, and you are welcome to redistribute it
+## under certain conditions; see COPYING for details.
+
+
+set -e
+
+# We're gonna mess with stderr's file descriptor below, so we save a
+# reference to it in fd 3 if we want to print to stderr
+exec 3>&2
+
+error ()
+{
+	echo "error: ${@}" >&3
+	exit 1
+}
+
+# Exit if user is unprivileged
+if [ "$(id -u)" -ne 0 ]
+then
+	echo "E: need root privileges" >&3
+
+	exit 1
+fi
+
+# Exit if live-boot is not installed
+if [ ! -e /lib/live/boot ]
+then
+	echo "E: live-boot not installed" >&3
+
+	exit 1
+fi
+
+# import Cmdline_old()
+. /lib/live/boot/9990-cmdline-old || error 'Could not source /lib/live/boot/9990-cmdline-old'
+
+# Set variable names needed by get_custom_mounts() etc.,
+# and now initialized by live-boot in a file that we certainly
+# don't want to source.
+persistence_list="persistence.conf"
+old_persistence_list="live-persistence.conf"
+custom_overlay_label="persistence"
+export persistence_list old_persistence_list custom_overlay_label
+
+# This will import the following functions and variables used below:
+#   activate_custom_mounts()
+#   get_custom_mounts()
+#   open_luks_device()
+#   probe_for_gpt_name()
+#   removable_dev()
+#   removable_usb_dev()
+#   storage_devices()
+#   where_is_mounted()
+. /lib/live/boot/9990-misc-helpers.sh || error 'Could not source /lib/live/boot/9990-misc-helpers.sh'
+
+usage ()
+{
+	echo "Usage: live-persistence [OPTION]... list [LABEL]...
+List (on stdout) all partitions with names among LABEL(s) that are compatible
+with live-boot's overlay persistence, and that are adhering to live-boot's
+persistence filters (e.g. persistence-media). If no LABEL is given the default
+in live-boot is used ('${custom_overlay_label}').
+   or: live-persistence [OPTION]... activate VOLUME...
+Activates persistence on the given VOLUME(s) (specified via block device).
+Successes and failures are written to stdout. There are no checks for whether
+the given volumes adhere to live-boot's options.
+   or: live-persistence [OPTION]... close VOLUME...
+Deactivates persistence on the given VOLUME(s) (specified via block device).
+
+Note: The 'activate' and 'stop' actions only support partition-backed volumes
+(e.g. /dev/sda2), not file-backed persistent volumes.
+
+Kernel command-line options are parsed just like in live-boot and have the same
+effect (see live-boot(7) for more information).
+
+Most options correspond to the persistence-* options of live-boot, and will
+override the corresponging options parsed from the kernel command-line.
+
+General options:
+  -h, --help            display this help and exit
+  -l, --log-file=FILE   log the execution trace to FILE
+
+Options affecting the 'list' action:
+  -e, --encryption=LIST override 'persistence-encryption'
+  -m, --media=VALUE     override 'persistence-media'
+  -g, --gpt-only        only list GPT partitions
+
+Options affecting the 'activate' action:
+  -r, --read-only       enable 'persistence-read-only'
+  -w, --read-write      disable 'persistence-read-only'
+  -u, --union=VALUE     override 'union'"
+}
+
+warning ()
+{
+	echo "warning: ${@}" >&3
+}
+
+dbus_udisks_get_attribute ()
+{
+	dev="${1}"
+	attribute="${2}"
+	re='^[[:space:]]*variant[[:space:]]\+string[[:space:]]\+"\(.*\)"$'
+
+	dbus-send --system --print-reply --dest=org.freedesktop.UDisks \
+		/org/freedesktop/UDisks/devices/$(basename ${dev}) \
+		org.freedesktop.DBus.Properties.Get \
+		string:org.freedesktop.UDisks.Device \
+		string:"${attribute}" | \
+		grep -e "${re}" | sed "s|${re}|\1|"
+}
+
+# We override the following two functions from live-helpers since old
+# blkid (i.e. util-linux and libblkid1) doesn't support GPT. We use dbus
+# instead (which should be available in user-space).
+get_gpt_name ()
+{
+	dev="${1}"
+
+	dbus_udisks_get_attribute ${dev} partition-label
+}
+
+is_gpt_device ()
+{
+	dev="${1}"
+
+	[ "$(dbus_udisks_get_attribute ${dev} partition-scheme)" = "gpt" ]
+}
+
+# We override live-boot's logging facilities to get more useful error messages
+log_warning_msg ()
+{
+	warning ${@}
+}
+
+# We override live-boot's panic() since it does a lot of crazy stuff
+panic ()
+{
+	error ${@}
+}
+
+# Fix persistent ~/.gconf sub-dirs; activate_custom_mounts() creates
+# empty dirs up to its mountpoint, but the file %gconf.xml has to be
+# present in each of ~/.gconf's subdirs to make them valid. Hence we
+# have a problem with a persistent ~/.gconf/X/Y if ~/.gconf/X was
+# created by activate_custom_mounts() since it would lack its
+# %gconf.xml file, making ~/.gconf/X/Y invalid. This functions makes
+# sure that all subdirs of ~/.gconf contain %gconf.xml.
+fix_gconf_dirs ()
+{
+	for home in /home/*
+	do
+		if [ ! -e "${home}/.gconf" ]
+		then
+			continue
+		fi
+
+		ownership=$(stat -c "%u:%g" "${home}")
+
+		find "${home}/.gconf" -type d | while IFS="" read -r dir
+		do
+			conf="${dir}/%gconf.xml"
+
+			if [ ! -e "${conf}" ]
+			then
+				touch "${conf}"
+				chown ${ownership} "${conf}"
+			fi
+		done
+	done
+}
+
+list_volumes ()
+{
+	labels=${@}
+	whitelistdev=""
+
+	case "${PERSISTENCE_MEDIA}" in
+		removable)
+			whitelistdev="$(removable_dev)"
+
+			[ -z "${whitelistdev}" ] && return
+			;;
+		removable-usb)
+			whitelistdev="$(removable_usb_dev)"
+
+			[ -z "${whitelistdev}" ] && return
+			;;
+		*)
+			whitelistdev=""
+			;;
+	esac
+
+	volumes=$(find_persistence_media "${labels}" "${whitelistdev}")
+
+	for vol in $volumes
+	do
+		# drop the "$label=" prefix
+		vol=${vol#*=}
+
+		if [ -n "${GPT_PARTITIONS_ONLY}" ] && ! is_gpt_device ${vol}
+		then
+			continue
+		fi
+
+		echo $vol
+	done
+
+	exit 0
+}
+
+activate_volumes ()
+{
+	volumes=${@}
+	ret=0
+	open_volumes=""
+	successes=""
+	failures=""
+
+	# required by open_luks_device()
+	exec 6>&1
+
+	for vol in ${volumes}
+	do
+		if [ ! -b "${vol}" ]
+		then
+			warning "${vol} is not a block device"
+
+			failures="${failures} ${vol}"
+			ret=1
+
+			continue
+		fi
+
+		luks_vol=""
+
+		if /sbin/cryptsetup isLuks ${vol} >/dev/null
+		then
+			if luks_vol=$(open_luks_device "${vol}")
+			then
+				open_volumes="${open_volumes} ${luks_vol}"
+			else
+				failures="${failures} ${vol}"
+			fi
+		else
+			open_volumes="${open_volumes} ${vol}"
+		fi
+	done
+
+	custom_mounts="$(mktemp /tmp/custom_mounts-XXXXXX.list)"
+
+	get_custom_mounts ${custom_mounts} ${open_volumes}
+
+	if [ -s "${custom_mounts}" ]
+	then
+		activate_custom_mounts ${custom_mounts} >/dev/null
+		fix_gconf_dirs
+	fi
+
+	rm -f ${custom_mounts}
+
+	for vol in ${open_volumes}
+	do
+		if grep -qe "^${vol}\>" /proc/mounts
+		then
+			successes="${successes} ${vol}"
+		else
+			failures="${failures} ${vol}"
+			ret=1
+		fi
+	done
+
+	if [ -n "${successes}" ]
+	then
+		echo "Successes:"
+
+		for vol in ${successes}
+		do
+			echo "  - ${vol}"
+		done
+	fi
+
+	if [ -n "${failures}" ]
+	then
+		echo "Failures:"
+
+		for vol in ${failures}
+		do
+			echo "  - ${vol}"
+		done
+	fi
+
+	exit ${ret}
+}
+
+is_mounted_readonly ()
+{
+	grep -q "${1} [^ ]* [^ ]* \([^ ]*,\)\?ro\(,[^ ]*\)\?" /proc/mounts
+}
+
+get_readonly_link_dir ()
+{
+	# XXX: Probably only supports UNIONTYPE=aufs
+	mount | grep ":${1}=" | cut -d' ' -f3
+}
+
+close_volumes ()
+{
+	volumes=${@}
+	custom_mounts="$(mktemp /tmp/custom_mounts-XXXXXX.list)"
+
+	get_custom_mounts ${custom_mounts} ${volumes}
+
+	while read device source dest options # < ${custom_mounts}
+	do
+		if is_in_comma_sep_list link ${options}
+		then
+			# 'link' type persistence isn't mounted on
+			# $dest but in read-only mode it has a special
+			# mount we need to take care of. However, in
+			# both cases we just leave all created links
+			# in a broken state.
+			# We can't just check PERSISTENCE_READONLY
+			# since that's something one can change with
+			# the activate action, so we check if $device
+			# is mounted read-only instead.
+			if is_mounted_readonly ${device}
+			then
+				umount "$(get_readonly_link_dir "${source}")"
+			fi
+		else
+			umount ${dest}
+		fi
+	done < ${custom_mounts}
+
+	rm -f ${custom_mounts}
+
+	for vol in ${volumes}
+	do
+		backing=$(where_is_mounted ${vol})
+
+		umount ${backing}
+	done
+}
+
+Main ()
+{
+	# tracing get's activated by Cmdline_old() if "debug" is in
+	# /proc/cmdline which will flood stderr, which we don't want
+	exec 2>"/dev/null"
+
+	# parse the kernel cmdline for live-boot's configuration as defaults
+	Cmdline_old
+
+	# disable tracing if enabled by Cmdline_old()
+	set +x
+	exec 2>&3
+
+	PERSISTENCE="true"
+	NOPERSISTENCE=""
+	export PERSISTENCE NOPERSISTENCE
+
+	# FIXME: we don't yet support file-backed custom persistence
+	PERSISTENCE_STORAGE="filesystem"
+	export PERSISTENCE_STORAGE
+
+	# Should be set empty since live-boot already changed root for us
+	rootmnt=""
+	export rootmnt
+
+	SHORTOPTS="e:,g,h,l:,m:,r,w,u:"
+	LONGOPTS="encryption:,gpt-only,help,log-file:,media:,read-only,read-write,union:"
+	OPTS=$(getopt -o ${SHORTOPTS} --longoptions ${LONGOPTS} -n "live-persistence" -- "$@")
+
+	if [ "$?" -ne 0 ]
+	then
+		echo "Try 'live-persistence --help' for more information."
+		exit 1
+	fi
+
+	eval set -- "$OPTS"
+
+	while [ $# -gt 0 ]
+	do
+		case $1 in
+			-e|--encryption)
+				shift
+				export PERSISTENCE_ENCRYPTION="${1}"
+				;;
+
+			-g|--gpt-only)
+				GPT_PARTITIONS_ONLY="true"
+				;;
+
+			-h|--help)
+				usage
+				exit 0
+				;;
+
+			-l|--log-file)
+				shift
+				DEBUG_LOG_FILE="${1}"
+				;;
+
+			-m|--media)
+				shift
+				export PERSISTENCE_MEDIA="${1}"
+				;;
+
+			-r|--read-only)
+				export PERSISTENCE_READONLY="true"
+				;;
+
+			-w|--read-write)
+				export PERSISTENCE_READONLY=""
+				;;
+
+			-u|--union)
+				shift
+				export UNIONTYPE="${1}"
+				;;
+
+			--)
+				shift
+				break
+				;;
+
+			*)
+				error "unrecognized option: ${1}"
+				;;
+		esac
+		shift
+	done
+
+	if [ -n "${DEBUG_LOG_FILE}" ]
+	then
+		exec 2>"${DEBUG_LOG_FILE}"
+		set -x
+	fi
+
+	action="${1}"
+	shift
+
+	case "${action}" in
+		list)
+			labels=${@}
+
+			if [ -z "${labels}" ]
+			then
+				# use default label in live-boot
+				labels=${custom_overlay_label}
+			fi
+
+			list_volumes ${labels}
+			;;
+
+		activate|close)
+			volumes=${@}
+
+			if [ -z "${volumes}" ]
+			then
+				error "you must specify at least one volume"
+			fi
+
+			${action}_volumes "${volumes}"
+			;;
+
+		"")
+			error "no action specified"
+			;;
+
+		*)
+			error "unrecognized action: ${action}"
+			;;
+	esac
+}
+
+Main ${@}
diff -Naurp live-tools.orig/bin/live-system live-tools/bin/live-system
--- live-tools.orig/bin/live-system	2013-02-15 10:42:48.227306079 +0100
+++ live-tools/bin/live-system	2013-02-15 09:38:30.324657057 +0100
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 ## live-tools(7) - System Support Scripts
-## Copyright (C) 2006-2012 Daniel Baumann <daniel@debian.org>
+## Copyright (C) 2006-2013 Daniel Baumann <daniel@debian.org>
 ##
 ## This program is free software: you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -51,9 +51,9 @@ if grep -qs "boot=live" /proc/cmdline
 then
 	[ "${_VERBOSE}" ] && echo -n " yes, this is a debian-live based system"
 
-	if [ -d /live/image/install ]
+	if [ -d /lib/live/mount/medium/install ]
 	then
-		if ls /live/image/install/pool/main/l/live-installer/live-installer_*.udeb > /dev/null 2>&1
+		if ls /lib/live/mount/medium/install/pool/main/l/live-installer/live-installer_*.udeb > /dev/null 2>&1
 		then
 			[ "${_VERBOSE}" ] && echo " with debian-installer (live) support."
 		else
diff -Naurp live-tools.orig/bin/live-toram live-tools/bin/live-toram
--- live-tools.orig/bin/live-toram	2013-02-15 10:42:48.227306079 +0100
+++ live-tools/bin/live-toram	2013-02-15 09:38:30.324657057 +0100
@@ -1,9 +1,9 @@
 #!/bin/sh
 
 ## live-tools(7) - System Support Scripts
-## Copyright (C) 2006-2012 Daniel Baumann <daniel@debian.org>
+## Copyright (C) 2006-2013 Daniel Baumann <daniel@debian.org>
 ##
-## live-tools comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
+## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
 ## This is free software, and you are welcome to redistribute it
 ## under certain conditions; see COPYING for details.
 
@@ -23,16 +23,16 @@ done
 # Assemble filesystems
 if [ -z "${_MODULE}" ]
 then
-	_FILESYSTEMS="/live/image/live/filesystem.squashfs"
+	_FILESYSTEMS="/lib/live/mount/medium/live/filesystem.squashfs"
 else
 	for _FILESYSTEM in _MODULE
 	do
-		_FILESYSTEMS="${_FILESYSTEMS} /live/image/live/${_FILESYSTEM}"
+		_FILESYSTEMS="${_FILESYSTEMS} /lib/live/mount/medium/live/${_FILESYSTEM}"
 	done
 fi
 
 # Exit if system is not debian-live based system
-if [ ! -d /live/image ]
+if [ ! -d /lib/live/mount/medium ]
 then
 	echo "E: live-toram only works on Debian Live based systems."
 
@@ -77,15 +77,15 @@ case ${@} in
 		if [ $_MEMORY -lt $_SIZE ]
 		then
 			echo "E: not enough free memory available."
-			echo "I: images need ${_SIZE}kB, free memory is ${_MEMORY}kB."
+			echo "I: filesystems need ${_SIZE}kB, free memory is ${_MEMORY}kB."
 
 			exit 1
 		fi
 		;;
 esac
 
-# Copying image to memory
-echo "P: Copying images to memory."
+# Copying filesystems to memory
+echo "P: Copying filesystems to memory."
 echo "I: This may take a while..."
 
 # FIXME: doesn't work with multiple filesystems
@@ -109,12 +109,12 @@ EOF
 done
 
 # Unmounting live media
-_DEVICE="$(awk '/\/live\/image / { print $1 }' /proc/mounts)"
+_DEVICE="$(awk '/\/lib\/live\/medium / { print $1 }' /proc/mounts)"
 
-if [ -d /live/image ]
+if [ -d /lib/live/mount/medium ]
 then
-	umount /live/image
-	rmdir --ignore-fail-on-non-empty /live/image || true
+	umount /lib/live/mount/medium
+	rmdir --ignore-fail-on-non-empty /lib/live/mount/medium || true
 fi
 
 # Ejecting live media if it is not an optical device
diff -Naurp live-tools.orig/bin/live-update-initramfs live-tools/bin/live-update-initramfs
--- live-tools.orig/bin/live-update-initramfs	1970-01-01 01:00:00.000000000 +0100
+++ live-tools/bin/live-update-initramfs	2013-02-15 09:38:30.324657057 +0100
@@ -0,0 +1,88 @@
+#!/bin/sh
+
+## live-tools(7) - System Support Scripts
+## Copyright (C) 2006-2013 Daniel Baumann <daniel@debian.org>
+##
+## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
+## This is free software, and you are welcome to redistribute it
+## under certain conditions; see COPYING for details.
+
+
+set -e
+
+if [ ! -e /usr/sbin/update-initramfs.orig.initramfs-tools ]
+then
+	echo "E: /usr/sbin/update-initramfs.orig.initramfs-tools - command not found"
+	echo "E: On Debian based systems, update-initramfs from initramfs-tools"
+	echo "E: can be installed with:"
+	echo "E:   apt-get install initramfs-tools"
+
+	exit 1
+fi
+
+if grep -qs "boot=live" /proc/cmdline
+then
+	if grep -qs "\/lib\/live\/mount\/medium" /proc/mounts
+	then
+		# live system with live media mounted as /lib/live/mount/medium
+		_DEVICE="$(awk '/\/lib\/live\/mount\/medium/ { print $1 }' /proc/mounts)"
+
+		mount -o remount,rw ${_DEVICE} > /dev/null 2>&1 || true
+
+		if touch /lib/live/mount/medium/.test > /dev/null 2>&1
+		then
+			_READ_WRITE="true"
+
+			rm -f /lib/live/mount/medium/.test
+		else
+			_READ_WRITE="false"
+		fi
+	else
+		# live system without live media mounted as /lib/live/mount/medium
+		echo "I: update-initramfs is disabled (live system is running without media mounted on /lib/live/mount/medium)."
+
+		exit 0
+	fi
+else
+	# non-live system
+	/usr/sbin/update-initramfs.orig.initramfs-tools "${@}"
+
+	exit "${?}"
+fi
+
+case "${_READ_WRITE}" in
+	true)
+		# Updating initramfs
+		/usr/sbin/update-initramfs.orig.initramfs-tools "${@}"
+
+		# FIXME: needs to exclude initrd backup files
+		if [ "$(ls /boot/initrd.img-* | wc -l)" -gt 1 ]
+		then
+			_NUMBER="1"
+
+			for _INITRD in /boot/initrd.img-*
+			do
+				_VERSION="$(basename ${_INITRD} | sed -e 's|initrd.img-||')"
+
+				cp /boot/vmlinuz-${_VERSION} /lib/live/mount/medium/live/vmlinuz${_NUMBER}.new
+				cp /boot/initrd.img-${_VERSION} /lib/live/mount/medium/live/initrd${_NUMBER}.img.new
+
+				mv /lib/live/mount/medium/live/vmlinuz${_NUMBER}.new /lib/live/mount/medium/live/vmlinuz${_NUMBER}
+				mv /lib/live/mount/medium/live/initrd${_NUMBER}.img.new /lib/live/mount/medium/live/initrd${_NUMBER}.img
+
+				_NUMBER="$((${_NUMBER} + 1))"
+			done
+		else
+			cp /boot/vmlinuz-* /lib/live/mount/medium/live/vmlinuz.new
+			cp /boot/initrd.img-* /lib/live/mount/medium/live/initrd.img.new
+
+			mv /lib/live/mount/medium/live/vmlinuz.new /lib/live/mount/medium/live/vmlinuz
+			mv /lib/live/mount/medium/live/initrd.img.new /lib/live/mount/medium/live/initrd.img
+		fi
+		;;
+
+	false)
+		echo "I: update-initramfs is disabled (live system is running on read-only media)."
+		exit 0
+		;;
+esac
diff -Naurp live-tools.orig/bin/live-update-initramfs-uuid live-tools/bin/live-update-initramfs-uuid
--- live-tools.orig/bin/live-update-initramfs-uuid	1970-01-01 01:00:00.000000000 +0100
+++ live-tools/bin/live-update-initramfs-uuid	2013-02-15 09:38:30.324657057 +0100
@@ -0,0 +1,84 @@
+#!/bin/sh
+
+## live-tools(7) - System Support Scripts
+## Copyright (C) 2006-2013 Daniel Baumann <daniel@debian.org>
+##
+## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
+## This is free software, and you are welcome to redistribute it
+## under certain conditions; see COPYING for details.
+
+
+set -e
+
+_OLD_INITRD="${1}"
+_NEW_INITRD="${2}"
+_NEW_UUID="${3}"
+
+if [ -z "${_OLD_INITRD}" ]
+then
+	echo "Usage: ${0} OLD_INITRD [NEW_INITRD] [NEW_UUID|NEW_UUID.conf]"
+	exit 1
+fi
+
+_TMPDIR="$(mktemp -d -t live-update-initramfs-uuid.XXXXXXXX)"
+
+trap "rm -rf ${_TMPDIR}" EXIT HUP INT QUIT TERM
+
+case "${_INITRD}" in
+	*.gz)
+		_COMPRESSION="gzip"
+		;;
+
+	*.bz2)
+		_COMPRESSION="bzip2"
+		;;
+
+	*.lzma)
+		_COMPRESSION="lzma"
+		;;
+
+	*.lz)
+		_COMPRESSION="lzip"
+		;;
+
+	*.xz)
+		_COMPRESSION="xz"
+		;;
+esac
+
+if [ ! -x "$(which ${_COMPRESSION} 2> /dev/null)" ]
+then
+	echo "E: ${_COMPRESSION} - no such program"
+	exit 1
+fi
+
+if [ -e "${_NEW_UUID}" ]
+then
+	# uuid from user specified file
+	_NEW_UUID="$(cat ${_NEW_UUID})"
+fi
+
+if [ -z "${_NEW_UUID}" ]
+then
+	# uuid neither from file (or file is empty),
+	# nor specified as argument
+	_NEW_UUID="$(uuidgen -r)"
+fi
+
+cd "${_TMPDIR}"
+
+${_COMPRESSION} -c -d "${_OLD_INITRD}" | cpio -id
+
+echo "${_NEW_UUID}" > conf/uuid.conf
+
+
+find . | cpio --quiet -R 0:0 -o -H newc | ${_COMPRESSION} -c > "/tmp/$(basename ${_OLD_INITRD})"
+
+cd "${OLDPWD}"
+
+if [ -n "${_NEW_UUID}" ]
+then
+	mv "/tmp/$(basename ${_OLD_INITRD})" "${_NEW_INITRD}"
+else
+	mv "/tmp/$(basename ${_OLD_INITRD})" ./
+fi
diff -Naurp live-tools.orig/bin/live-uptime live-tools/bin/live-uptime
--- live-tools.orig/bin/live-uptime	2013-02-15 10:42:48.227306079 +0100
+++ live-tools/bin/live-uptime	2013-02-15 09:38:30.324657057 +0100
@@ -1,20 +1,30 @@
 #!/bin/sh
 
 ## live-tools(7) - System Support Scripts
-## Copyright (C) 2006-2012 Daniel Baumann <daniel@debian.org>
+## Copyright (C) 2006-2013 Daniel Baumann <daniel@debian.org>
 ##
-## live-tools comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
+## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
 ## This is free software, and you are welcome to redistribute it
 ## under certain conditions; see COPYING for details.
 
 
 set -e
 
-_UPTIME="$(/usr/bin/uptime.procps)"
+if [ ! -e /usr/bin/uptime.orig.procps ]
+then
+	echo "E: /usr/bin/uptime.orig.procps - command not found"
+	echo "E: On Debian based systems, uptime from procps"
+	echo "E: can be installed with:"
+	echo "E:   apt-get install procps"
+
+	exit 1
+fi
+
+_UPTIME="$(/usr/bin/uptime.orig.procps)"
 
 _DATE_HOST="$(date +%s)"
 
-_DATE_LXC="$(stat /dev/pts | awk '/^Change: / { print $2, $3 }')"
+_DATE_LXC="$(stat -c %z /dev/pts)"
 _DATE_LXC="$(date +%s -d"${_DATE_LXC}")"
 
 _UPTIME_LXC="$((${_DATE_HOST} - ${_DATE_LXC}))"
diff -Naurp live-tools.orig/debian/changelog live-tools/debian/changelog
--- live-tools.orig/debian/changelog	2013-02-15 10:42:48.227306079 +0100
+++ live-tools/debian/changelog	2013-02-15 10:42:34.619868805 +0100
@@ -1,3 +1,191 @@
+live-tools (3.0.18-1) unstable; urgency=low
+
+  * Updating manpage year handling for 2013.
+  * Dropping dpkg compression level.
+
+ -- Daniel Baumann <daniel@debian.org>  Thu, 14 Feb 2013 19:28:54 +0100
+
+live-tools (3.0.17-1) unstable; urgency=low
+
+  [ chals ]
+  * Updating Catalan translation of live-tools man page in respect to
+    live-persistence.
+  * Updating Spanish translation of live-tools man page in respect to
+    live-persistence.
+  * Updating French translation of live-tools man page in respect to live-
+    persistence.
+
+  [ Daniel Baumann ]
+  * Updating year in all copyright notices.
+
+ -- Daniel Baumann <daniel@debian.org>  Wed, 02 Jan 2013 12:32:09 +0100
+
+live-tools (3.0.16-1) unstable; urgency=low
+
+  [ Daniel Baumann ]
+  * Correcting spelling typo in bug script.
+
+  [ Richard Nelson ]
+  * Update manpage with an entry for live-persistence.
+
+  [ Daniel Baumann ]
+  * Simplified wording of live-persistence short description in live-tools
+    manpage.
+  * Updating German live-tools manpage translation.
+  * Using simpler stat call on /dev/pts in live-uptime as suggested by
+    Javier Barroso <javibarroso@gmail.com> (Closes: #696173).
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 17 Dec 2012 21:00:16 +0100
+
+live-tools (3.0.15-1) unstable; urgency=low
+
+  [ Tails developers ]
+  * Adding a script for enabling persistence during post-initramfs time.
+
+  [ Daniel Baumann ]
+  * First pass coding style updates on live-persistence.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 10 Dec 2012 20:25:52 +0100
+
+live-tools (3.0.14-1) unstable; urgency=low
+
+  * Correcting initrd pathes in live-update-initramfs.
+  * Adding dpkg-source local options.
+
+ -- Daniel Baumann <daniel@debian.org>  Fri, 30 Nov 2012 16:58:53 +0100
+
+live-tools (3.0.13-1) unstable; urgency=low
+
+  [ Daniel Baumann ]
+  * Updating file paths for /lib/live/mount.
+  * Renaming /lib/live/mount/image to /lib/live/mount/medium.
+  * Updating package description.
+  * Adding note about wrappers that replace existing commands in live-
+    tools manpage, thanks to Ben Armstrong
+    <synrg@sanctuary.nslug.ns.ca>.
+  * Adding dedicated manpage for live-uptime.
+  * Adding dedicated manpage for live-update-initramfs.
+  * Synchronising po headers for manpage translations.
+  * Improving a bunch of formating and typo issues in manpages.
+
+  [ Ben Armstrong ]
+  * Improving manpage wording.
+
+  [ Daniel Baumann ]
+  * Making wording in live-update-initramfs a bit more precise wrt/ what
+    files are being taken care of.
+  * And another manpage typo fixed.
+
+  [ Ben Armstrong ]
+  * Fixing cleanup of diversion by old live-tools. (Closes: #685810)
+
+  [ chals ]
+  * Running make rebuild to update the dates.
+  * Updating the Spanish translation of the man pages.
+  * Updating the Catalan translation of the man pages.
+
+  [ Daniel Baumann ]
+  * Adjusting coding style in preinst when removing divertions.
+
+  [ chals ]
+  * Updating the French translation of the man pages.
+
+ -- Daniel Baumann <daniel@debian.org>  Wed, 07 Nov 2012 15:14:24 +0100
+
+live-tools (3.0.12-1) unstable; urgency=low
+
+  * Updating to standards version 3.9.4.
+
+ -- Daniel Baumann <daniel@debian.org>  Sun, 30 Sep 2012 17:10:48 +0200
+
+live-tools (3.0.11-1) unstable; urgency=low
+
+  * Moving remaining stuff from /live to /lib/live to avoid further
+    namespace pollution.
+
+ -- Daniel Baumann <daniel@debian.org>  Thu, 27 Sep 2012 12:35:28 +0200
+
+live-tools (3.0.10-1) unstable; urgency=low
+
+  * Removing old diversion from live-tools 3.0.3 on upgrade (Closes:
+    #685810).
+  * Adding Catalan to automatic date translation in manpages.
+  * Adding rewritten live-update-initramfs-uuid from live-boot.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 24 Sep 2012 10:30:48 +0200
+
+live-tools (3.0.9-1) unstable; urgency=low
+
+  * Also correcting uptime symlink to refer to live-uptime /bin instead
+    of /usr/bin.
+  * Adding warning messages if the necessary tools are not installed.
+  * Dropping old conflicts against linux-container, not needed anymore.
+  * Renaming divertion of uptime from procps to
+    /usr/bin/uptime.orig.procps to workaround the nasty auto-alternative
+    in procps.
+  * Renaming divertion for update-initramfs too in order to be
+    consistent with the uptime divertion, eventhouhg it is not required
+    for the the update-initramfs divertion.
+  * Dropping pre-depends on initramfs-tools and procps, they are not
+    required anymore as the conditional alternatives usage on procps has
+    been workarounded.
+
+ -- Daniel Baumann <daniel@debian.org>  Thu, 16 Aug 2012 12:08:24 +0200
+
+live-tools (3.0.8-1) unstable; urgency=low
+
+  * Moving symlink from /usr/bin to /bin where live-update-initramfs
+    actually resides now (Closes: #684423).
+
+ -- Daniel Baumann <daniel@debian.org>  Fri, 10 Aug 2012 22:27:08 +0200
+
+live-tools (3.0.7-1) unstable; urgency=low
+
+  * Handling non-live usages of live-update-initramfs by falling back to
+    update-initramfs.
+  * Return in cases of non-live systems with return value from update-
+    initramfs.
+  * Covering cases of live systems where live media is not mounted on
+    /live/image in live-update-initramfs.
+
+ -- Daniel Baumann <daniel@debian.org>  Sun, 05 Aug 2012 13:19:15 +0200
+
+live-tools (3.0.6-1) unstable; urgency=low
+
+  * Adding pre-depends to procps and initramfs-tools (Closes: #682574).
+
+ -- Daniel Baumann <daniel@debian.org>  Sat, 04 Aug 2012 15:46:46 +0200
+
+live-tools (3.0.5-1) unstable; urgency=low
+
+  [ Daniel Baumann ]
+  * Adding live-update-initramfs script.
+
+  [ chals ]
+  * Adding initial Spanish translation of the man page.
+  * Adding initial French translation of the man page.
+  * Adding initial Catalan translation of the man page.
+  * Fixing several typos in the French translation of the man page.
+
+  [ Daniel Baumann ]
+  * Removing references to jessie-only live-debconfig in manpages.
+
+ -- Daniel Baumann <daniel@debian.org>  Fri, 03 Aug 2012 12:37:28 +0200
+
+live-tools (3.0.4-1) unstable; urgency=low
+
+  * Using common source tree layout for all live packages.
+  * Completing uninstall target in toplevel Makefile.
+  * Unifying copyright headers to use same GPL blurbs.
+  * Adding reference to live-debconfig in live-config manpage.
+  * Using dynamic year in automatic manpage date translation rather than
+    a hardcoded one.
+  * Moving executables from /usr/bin to /bin as they potentially need to
+    be arround before /usr is available.
+  * Also diverting uptime manpage from procps (Closes: #682574).
+
+ -- Daniel Baumann <daniel@debian.org>  Tue, 24 Jul 2012 21:43:48 +0200
+
 live-tools (3.0.3-1) unstable; urgency=low
 
   [ Evgeni Golov ]
diff -Naurp live-tools.orig/debian/control live-tools/debian/control
--- live-tools.orig/debian/control	2013-02-15 10:42:48.227306079 +0100
+++ live-tools/debian/control	2013-02-15 10:42:34.619868805 +0100
@@ -4,7 +4,7 @@ Priority: optional
 Maintainer: Debian Live Project <debian-live@lists.debian.org>
 Uploaders: Daniel Baumann <daniel@debian.org>
 Build-Depends: debhelper (>= 9)
-Standards-Version: 3.9.3
+Standards-Version: 3.9.4
 Homepage: http://live.debian.net/devel/live-tools/
 Vcs-Browser: http://live.debian.net/gitweb/?p=live-tools.git
 Vcs-Git: git://live.debian.net/git/live-tools.git
@@ -12,7 +12,6 @@ Vcs-Git: git://live.debian.net/git/live-
 Package: live-tools
 Architecture: all
 Depends: ${misc:Depends}
-Conflicts: linux-container (<< 2)
-Suggests: debian-installer-launcher, perl, rsync
-Description: Debian Live - System Support Scripts
- live-tools contains additional support scripts for Debian Live systems.
+Suggests: debian-installer-launcher, perl, rsync, uuid-runtime
+Description: Live System Support Scripts
+ live-tools contains additional support scripts for live systems.
diff -Naurp live-tools.orig/debian/copyright live-tools/debian/copyright
--- live-tools.orig/debian/copyright	2013-02-15 10:42:48.227306079 +0100
+++ live-tools/debian/copyright	2013-02-15 09:38:30.332656750 +0100
@@ -4,7 +4,7 @@ Upstream-Contact: Debian Live Project <d
 Source: http://live.debian.net/archive/packages/live-tools/
 
 Files: *
-Copyright: 2006-2012 Daniel Baumann <daniel@debian.org>
+Copyright: 2006-2013 Daniel Baumann <daniel@debian.org>
 License: GPL-3+
 
 License: GPL-3+
diff -Naurp live-tools.orig/debian/live-tools.bug-presubj live-tools/debian/live-tools.bug-presubj
--- live-tools.orig/debian/live-tools.bug-presubj	2013-02-15 10:42:48.227306079 +0100
+++ live-tools/debian/live-tools.bug-presubj	2013-02-15 09:38:30.336656596 +0100
@@ -1,9 +1,9 @@
 Before submitting a bug report against live-tools, please make sure
-that you have read our guidlines for Debian Live bug reports:
+that you have read our guidelines for Debian Live bug reports:
 
   http://live.debian.net/manual/
 
-By providing the required information as outlined in the guidlines makes
+By providing the required information as outlined in the guidelines makes
 sure that we can optimally reproduce and fix bugs, not doing so wastes a
 lot of time for both the maintainers and the submitters.
 
diff -Naurp live-tools.orig/debian/live-tools.links live-tools/debian/live-tools.links
--- live-tools.orig/debian/live-tools.links	2013-02-15 10:42:48.227306079 +0100
+++ live-tools/debian/live-tools.links	2013-02-15 09:38:30.336656596 +0100
@@ -1,9 +1,13 @@
-/usr/share/man/man7/live-tools.7.gz	/usr/share/man/man1/live-system.1.gz
-/usr/share/man/man7/live-tools.7.gz	/usr/share/man/man1/live-toram.1.gz
-/usr/share/man/man7/live-tools.7.gz	/usr/share/man/man1/live-uptime.1.gz
+/usr/share/man/man7/live-tools.7.gz		/usr/share/man/man1/live-system.1.gz
+/usr/share/man/man7/live-tools.7.gz		/usr/share/man/man1/live-toram.1.gz
 
-/usr/share/man/de/man7/live-tools.7.gz	/usr/share/man/de/man1/live-system.1.gz
-/usr/share/man/de/man7/live-tools.7.gz	/usr/share/man/de/man1/live-toram.1.gz
-/usr/share/man/de/man7/live-tools.7.gz	/usr/share/man/de/man1/live-uptime.1.gz
+/usr/share/man/de/man7/live-tools.7.gz		/usr/share/man/de/man1/live-system.1.gz
+/usr/share/man/de/man7/live-tools.7.gz		/usr/share/man/de/man1/live-toram.1.gz
 
-/usr/bin/live-uptime			/usr/bin/uptime
+# initramfs-tools: update-initramfs
+/bin/live-update-initramfs			/usr/sbin/update-initramfs
+/usr/share/man/man7/live-update-initramfs.7.gz	/usr/share/man/man8/update-initramfs.8.gz
+
+# procps: uptime
+/bin/live-uptime				/usr/bin/uptime
+/usr/share/man/man1/live-uptime.1.gz		/usr/share/man/man1/uptime.1.gz
diff -Naurp live-tools.orig/debian/live-tools.postrm live-tools/debian/live-tools.postrm
--- live-tools.orig/debian/live-tools.postrm	2013-02-15 10:42:48.227306079 +0100
+++ live-tools/debian/live-tools.postrm	2013-02-15 09:38:30.336656596 +0100
@@ -4,7 +4,13 @@ set -e
 
 case "${1}" in
 	remove)
-		dpkg-divert --package live-tools --quiet --remove --rename --divert /usr/bin/uptime.procps /usr/bin/uptime
+		# initramfs-tools: update-initramfs
+		dpkg-divert --package live-tools --quiet --remove --rename --divert /usr/sbin/update-initramfs.orig.initramfs-tools /usr/sbin/update-initramfs
+		dpkg-divert --package live-tools --quiet --remove --rename --divert /usr/share/man/man8/update-initramfs.orig.initramfs-tools.8.gz /usr/share/man/man8/update-initramfs.8.gz
+
+		# procps: uptime
+		dpkg-divert --package live-tools --quiet --remove --rename --divert /usr/bin/uptime.orig.procps /usr/bin/uptime
+		dpkg-divert --package live-tools --quiet --remove --rename --divert /usr/share/man/man1/uptime.orig.procps.1.gz /usr/share/man/man1/uptime.1.gz
 		;;
 
 	purge|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
diff -Naurp live-tools.orig/debian/live-tools.preinst live-tools/debian/live-tools.preinst
--- live-tools.orig/debian/live-tools.preinst	2013-02-15 10:42:48.227306079 +0100
+++ live-tools/debian/live-tools.preinst	2013-02-15 10:42:34.619868805 +0100
@@ -4,7 +4,28 @@ set -e
 
 case "${1}" in
 	install|upgrade)
-		dpkg-divert --package live-tools --quiet --add --rename --divert /usr/bin/uptime.procps /usr/bin/uptime
+		# removing old diversions from live-tools <= 3.0.8
+		_PACKAGE="$(dpkg-divert --listpackage /usr/bin/uptime)"
+		_DIVERSION="$(dpkg-divert --truename /usr/bin/uptime)"
+
+		if [ "${_PACKAGE}" = "live-tools" ] && [ "${_DIVERSION}" = "/usr/bin/uptime.procps" ]
+		then
+			dpkg-divert --package live-tools --quiet --remove --divert /usr/bin/uptime.procps /usr/bin/uptime
+		fi
+
+		# initramfs-tools: update-initramfs
+		dpkg-divert --package live-tools --quiet --add --rename --divert /usr/sbin/update-initramfs.orig.initramfs-tools /usr/sbin/update-initramfs
+		dpkg-divert --package live-tools --quiet --add --rename --divert /usr/share/man/man8/update-initramfs.orig.initramfs-tools.8.gz /usr/share/man/man8/update-initramfs.8.gz
+
+		# procps: uptime
+		dpkg-divert --package live-tools --quiet --add --rename --divert /usr/bin/uptime.orig.procps /usr/bin/uptime
+		dpkg-divert --package live-tools --quiet --add --rename --divert /usr/share/man/man1/uptime.orig.procps.1.gz /usr/share/man/man1/uptime.1.gz
+
+		# renaming old diversions from live-tools <= 3.0.8
+		if [ "${_PACKAGE}" = "live-tools" ] && [ "${_DIVERSION}" = "/usr/bin/uptime.procps" ] && [ -e /usr/bin/uptime.procps ]
+		then
+			mv /usr/bin/uptime.procps /usr/bin/uptime.orig.procps
+		fi
 		;;
 
 	abort-upgrade)
diff -Naurp live-tools.orig/debian/rules live-tools/debian/rules
--- live-tools.orig/debian/rules	2013-02-15 10:42:48.227306079 +0100
+++ live-tools/debian/rules	2013-02-15 09:38:30.336656596 +0100
@@ -10,4 +10,4 @@ override_dh_auto_install:
 	rm -f debian/live-tools/usr/share/doc/live-tools/COPYING
 
 override_dh_builddeb:
-	dh_builddeb -- -Zxz -z9
+	dh_builddeb -- -Zxz
diff -Naurp live-tools.orig/debian/source/local-options live-tools/debian/source/local-options
--- live-tools.orig/debian/source/local-options	1970-01-01 01:00:00.000000000 +0100
+++ live-tools/debian/source/local-options	2013-02-15 09:38:30.336656596 +0100
@@ -0,0 +1 @@
+abort-on-upstream-changes
diff -Naurp live-tools.orig/debian/source/options live-tools/debian/source/options
--- live-tools.orig/debian/source/options	2013-02-15 10:42:48.227306079 +0100
+++ live-tools/debian/source/options	2013-02-15 09:38:30.336656596 +0100
@@ -1,2 +1 @@
 compression = xz
-compression-level = 9
diff -Naurp live-tools.orig/Makefile live-tools/Makefile
--- live-tools.orig/Makefile	2013-02-15 10:42:48.227306079 +0100
+++ live-tools/Makefile	2013-02-15 09:38:30.324657057 +0100
@@ -1,9 +1,9 @@
 # Makefile
 
 ## live-tools(7) - System Support Scripts
-## Copyright (C) 2006-2012 Daniel Baumann <daniel@debian.org>
+## Copyright (C) 2006-2013 Daniel Baumann <daniel@debian.org>
 ##
-## live-tools comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
+## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
 ## This is free software, and you are welcome to redistribute it
 ## under certain conditions; see COPYING for details.
 
@@ -12,7 +12,7 @@ SHELL := sh -e
 
 LANGUAGES = $(shell cd manpages/po && ls)
 
-SCRIPTS = scripts/*
+SCRIPTS = bin/*
 
 all: build
 
@@ -49,8 +49,8 @@ build:
 
 install:
 	# Installing scripts
-	mkdir -p $(DESTDIR)/usr
-	cp -r scripts $(DESTDIR)/usr/bin
+	mkdir -p $(DESTDIR)/bin
+	cp -r bin/* $(DESTDIR)/bin
 
 	# Installing docs
 	mkdir -p $(DESTDIR)/usr/share/doc/live-tools
@@ -74,23 +74,32 @@ install:
 
 uninstall:
 	# Uninstalling scripts
-	for SCRIPT in scripts/*; \
+	for SCRIPT in bin/*; \
 	do \
-		rm -f $(DESTDIR)/usr/$$(basename $${SCRIPT}); \
+		rm -f $(DESTDIR)/bin/$$(basename $${SCRIPT}); \
 	done
 
-	rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/bin > /dev/null 2>&1 || true
-	rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr > /dev/null 2>&1 || true
+	rmdir --ignore-fail-on-non-empty $(DESTDIR)/bin > /dev/null 2>&1 || true
 	rmdir --ignore-fail-on-non-empty $(DESTDIR) > /dev/null 2>&1 || true
 
 	# Uninstalling docs
 	rm -rf $(DESTDIR)/usr/share/doc/live-tools
 
+	rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/doc > /dev/null 2>&1 || true
+	rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share > /dev/null 2>&1 || true
+	rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr > /dev/null 2>&1 || true
+	rmdir --ignore-fail-on-non-empty $(DESTDIR) > /dev/null 2>&1 || true
+
 	# Uninstalling manpages
 	for MANPAGE in manpages/en/*; \
 	do \
 		SECTION="$$(basename $${MANPAGE} | awk -F. '{ print $$2 }')"; \
 		rm -f $(DESTDIR)/usr/share/man/man$${SECTION}/$$(basename $${MANPAGE} .en.$${SECTION}).$${SECTION}; \
+		rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/man/man$${SECTION} > /dev/null 2>&1 || true; \
+		rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/man > /dev/null 2>&1 || true; \
+		rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share > /dev/null 2>&1 || true; \
+		rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr > /dev/null 2>&1 || true; \
+		rmdir --ignore-fail-on-non-empty $(DESTDIR) > /dev/null 2>&1 || true; \
 	done
 
 	for LANGUAGE in $(LANGUAGES); \
@@ -99,11 +108,17 @@ uninstall:
 		do \
 			SECTION="$$(basename $${MANPAGE} | awk -F. '{ print $$3 }')"; \
 			rm -f $(DESTDIR)/usr/share/man/$${LANGUAGE}/man$${SECTION}/$$(basename $${MANPAGE} .$${LANGUAGE}.$${SECTION}).$${SECTION}; \
+			rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/man/$${LANGUAGE}/man$${SECTION} > /dev/null 2>&1 || true; \
+			rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/man/$${LANGUAGE} > /dev/null 2>&1 || true; \
+			rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/man > /dev/null 2>&1 || true; \
+			rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share > /dev/null 2>&1 || true; \
+			rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr > /dev/null 2>&1 || true; \
+			rmdir --ignore-fail-on-non-empty $(DESTDIR) > /dev/null 2>&1 || true; \
 		done; \
 	done
 
 clean:
 
-distclean:
+distclean: clean
 
 reinstall: uninstall install
diff -Naurp live-tools.orig/manpages/bin/update-version.sh live-tools/manpages/bin/update-version.sh
--- live-tools.orig/manpages/bin/update-version.sh	2013-02-15 10:42:48.227306079 +0100
+++ live-tools/manpages/bin/update-version.sh	2013-02-15 09:38:30.324657057 +0100
@@ -1,9 +1,9 @@
 #!/bin/sh
 
 ## live-tools(7) - System Support Scripts
-## Copyright (C) 2006-2012 Daniel Baumann <daniel@debian.org>
+## Copyright (C) 2006-2013 Daniel Baumann <daniel@debian.org>
 ##
-## live-tools comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
+## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
 ## This is free software, and you are welcome to redistribute it
 ## under certain conditions; see COPYING for details.
 
@@ -29,13 +29,15 @@ do
 done
 
 # European date format
-for _LANGUAGE in de es fr it
+for _LANGUAGE in ca de es fr it
 do
 	if ls po/${_LANGUAGE}/*.po > /dev/null 2>&1
 	then
 		for _FILE in po/${_LANGUAGE}/*.po
 		do
-			sed -i -e "s|^msgstr .*.2012\"$|msgstr \"${DAY}.${MONTH}.${YEAR}\"|g" "${_FILE}"
+			sed -i  -e "s|^msgstr .*.2013-.*$|msgstr \"${DAY}.${MONTH}.${YEAR}\"|g" \
+				-e "s|^msgstr .*.2013\"$|msgstr \"${DAY}.${MONTH}.${YEAR}\"|g" \
+			"${_FILE}"
 		done
 	fi
 done
@@ -45,6 +47,8 @@ if ls po/pt_BR/*.po > /dev/null 2>&1
 then
 	for _FILE in po/pt_BR/*.po
 	do
-		sed -i -e "s|^msgstr .*-2012\"$|msgstr \"${DAY}-${MONTH}-${YEAR}\"|g" "${_FILE}"
+		sed -i  -e "s|^msgstr .*.2013-.*$|msgstr \"${DAY}-${MONTH}-${YEAR}\"|g" \
+			-e "s|^msgstr .*-2013\"$|msgstr \"${DAY}-${MONTH}-${YEAR}\"|g" \
+		"${_FILE}"
 	done
 fi
diff -Naurp live-tools.orig/manpages/en/live-tools.7 live-tools/manpages/en/live-tools.7
--- live-tools.orig/manpages/en/live-tools.7	2013-02-15 10:42:48.227306079 +0100
+++ live-tools/manpages/en/live-tools.7	2013-02-15 10:42:34.619868805 +0100
@@ -1,12 +1,12 @@
 .\" live-tools(7) - System Support Scripts
-.\" Copyright (C) 2006-2012 Daniel Baumann <daniel@debian.org>
+.\" Copyright (C) 2006-2013 Daniel Baumann <daniel@debian.org>
 .\"
-.\" live-tools comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
+.\" This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
 .\" This is free software, and you are welcome to redistribute it
 .\" under certain conditions; see COPYING for details.
 .\"
 .\"
-.TH LIVE\-TOOLS 7 2012\-07\-05 3.0.3-1 "Debian Live Project"
+.TH LIVE\-TOOLS 7 2013\-02\-14 3.0.18-1 "Debian Live Project"
 
 .SH NAME
 \fBlive\-tools\fR \- System Support Scripts
@@ -17,12 +17,18 @@
 .SH TOOLS
 \fBlive\-tools\fR currently contains the following tools.
 
+.IP "\fBlive\-update\-initramfs\fR(8)" 4
+writes out updated kernel and initrd images to the live media. This wrapper replaces the update\-initramfs command provided by the initramfs\-tools package.
+.IP "\fBlive\-update\-initramfs\-uuid\fR" 4
+updates UUID in an existing initramfs image.
 .IP "\fBlive\-toram\fR" 4
 copies running system to RAM in order to eject the live media.
 .IP "\fBlive\-system\fR" 4
 determines if running system is a debian-live based system.
-.IP "\fBlive\-uptime\fR" 4
-tells how long the system has been running (works with LXC).
+.IP "\fBlive\-uptime\fR(1)" 4
+tells how long the system has been running (works with LXC). This wrapper replaces the uptime command provided by the procps package.
+.IP "\fBlive\-persistence\fR(1)" 4
+switches a non\-persistent system to using persistence at runtime.
 
 .SH SEE ALSO
 \fIlive\-boot\fR(7)
diff -Naurp live-tools.orig/manpages/en/live-update-initramfs.8 live-tools/manpages/en/live-update-initramfs.8
--- live-tools.orig/manpages/en/live-update-initramfs.8	1970-01-01 01:00:00.000000000 +0100
+++ live-tools/manpages/en/live-update-initramfs.8	2013-02-15 10:42:34.619868805 +0100
@@ -0,0 +1,29 @@
+.\" live-tools(7) - System Support Scripts
+.\" Copyright (C) 2006-2013 Daniel Baumann <daniel@debian.org>
+.\"
+.\" This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
+.\" This is free software, and you are welcome to redistribute it
+.\" under certain conditions; see COPYING for details.
+.\"
+.\"
+.TH LIVE\-TOOLS 8 2013\-02\-14 3.0.18-1 "Debian Live Project"
+
+.SH NAME
+\fBlive\-update\-initramfs\fR \- writes out updated kernel and initrd images to the live media.
+
+.SH DESCRIPTION
+\fBlive\-update\-initramfs\fR is a wrapper replacing the update\-initramfs command provided by the initramfs-tools package.
+.PP
+In live\-systems with a persistence layer, \fBlive\-update\-initramfs\fR will write out updated kernel and initrd images to the live media. This allows kernel upgrades from within the live\-system through apt\-get without needing to manually synchronise kernel and initrd to the live\-medium. \fBlive\-update\-initramfs\fR passes through all command-line arguments to the original update\-initramfs command; see \fIupdate\-initramfs.orig.initramfs\-tools\fR(8) for more information about the options of the original update\-initramfs command.
+
+.SH SEE ALSO
+\fIlive\-tools\fR(7)
+
+.SH HOMEPAGE
+More information about live\-update\-initramfs and the Debian Live project can be found on the homepage at <\fIhttp://live.debian.net/\fR> and in the manual at <\fIhttp://live.debian.net/manual/\fR>.
+
+.SH BUGS
+Bugs can be reported by submitting a bugreport for the live\-tools package in the Debian Bug Tracking System at <\fIhttp://bugs.debian.org/\fR> or by writing a mail to the Debian Live mailing list at <\fIdebian\-live@lists.debian.org\fR>.
+
+.SH AUTHOR
+live\-update\-initramfs was written by Daniel Baumann <\fIdaniel@debian.org\fR>.
diff -Naurp live-tools.orig/manpages/en/live-uptime.1 live-tools/manpages/en/live-uptime.1
--- live-tools.orig/manpages/en/live-uptime.1	1970-01-01 01:00:00.000000000 +0100
+++ live-tools/manpages/en/live-uptime.1	2013-02-15 10:42:34.619868805 +0100
@@ -0,0 +1,29 @@
+.\" live-tools(7) - System Support Scripts
+.\" Copyright (C) 2006-2013 Daniel Baumann <daniel@debian.org>
+.\"
+.\" This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
+.\" This is free software, and you are welcome to redistribute it
+.\" under certain conditions; see COPYING for details.
+.\"
+.\"
+.TH LIVE\-TOOLS 1 2013\-02\-14 3.0.18-1 "Debian Live Project"
+
+.SH NAME
+\fBlive\-uptime\fR \- Tell how long the system has been running (works with LXC).
+
+.SH DESCRIPTION
+\fBlive\-uptime\fR is a wrapper replacing the uptime command provided by the procps package.
+.PP
+\fBlive\-uptime\fR displays the correct uptime when a system is being used in a Linux Container (LXC), where the original uptime command shows the host uptime for all containers. \fBlive\-uptime\fR passes through all command-line arguments to the original uptime command; see \fIuptime.orig.procps\fR(1) for more information about the options of the original uptime command.
+
+.SH SEE ALSO
+\fIlive\-tools\fR(7)
+
+.SH HOMEPAGE
+More information about live\-uptime and the Debian Live project can be found on the homepage at <\fIhttp://live.debian.net/\fR> and in the manual at <\fIhttp://live.debian.net/manual/\fR>.
+
+.SH BUGS
+Bugs can be reported by submitting a bugreport for the live\-tools package in the Debian Bug Tracking System at <\fIhttp://bugs.debian.org/\fR> or by writing a mail to the Debian Live mailing list at <\fIdebian\-live@lists.debian.org\fR>.
+
+.SH AUTHOR
+live\-uptime was written by Daniel Baumann <\fIdaniel@debian.org\fR>.
diff -Naurp live-tools.orig/manpages/Makefile live-tools/manpages/Makefile
--- live-tools.orig/manpages/Makefile	2013-02-15 10:42:48.227306079 +0100
+++ live-tools/manpages/Makefile	2013-02-15 09:38:30.324657057 +0100
@@ -1,9 +1,9 @@
 # Makefile
 
 ## live-tools(7) - System Support Scripts
-## Copyright (C) 2006-2012 Daniel Baumann <daniel@debian.org>
+## Copyright (C) 2006-2013 Daniel Baumann <daniel@debian.org>
 ##
-## live-tools comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
+## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
 ## This is free software, and you are welcome to redistribute it
 ## under certain conditions; see COPYING for details.
 
diff -Naurp live-tools.orig/manpages/po4a.cfg live-tools/manpages/po4a.cfg
--- live-tools.orig/manpages/po4a.cfg	2013-02-15 10:42:48.227306079 +0100
+++ live-tools/manpages/po4a.cfg	2013-02-15 09:38:30.328656903 +0100
@@ -1,3 +1,5 @@
-[po4a_langs] de
+[po4a_langs] ca de es fr
 [po4a_paths] pot/$master.pot $lang:po/$lang/$master.po
 [type: man] en/live-tools.7 $lang:$lang/live-tools.$lang.7
+[type: man] en/live-update-initramfs.8 $lang:$lang/live-update-initramfs.$lang.8
+[type: man] en/live-uptime.1 $lang:$lang/live-uptime.$lang.1
diff -Naurp live-tools.orig/VERSION live-tools/VERSION
--- live-tools.orig/VERSION	2013-02-15 10:42:48.227306079 +0100
+++ live-tools/VERSION	2013-02-15 10:42:34.619868805 +0100
@@ -1 +1 @@
-3.0.3-1
+3.0.18-1

--- End Message ---
--- Begin Message ---
On 25.02.2013 14:31, Ben Armstrong wrote:
On 02/24/2013 04:46 PM, Adam D. Barratt wrote:
--- live-tools.orig/bin/live-update-initramfs 1970-01-01 01:00:00.000000000 +0100 +++ live-tools/bin/live-update-initramfs 2013-02-15 09:38:30.324657057 +0100
[...]
+		# FIXME: needs to exclude initrd backup files
+		if [ "$(ls /boot/initrd.img-* | wc -l)" -gt 1 ]
+		then
+			_NUMBER="1"
+
+			for _INITRD in /boot/initrd.img-*

"FIXME"s in apparently final(ish) code always make me slightly wary.
What's the real-world effect of the loop picking up backup files?
[...]
- any initrd/kernel pairs for kernel versions preceding encountering the
initrd backup will have been successfully copied (at least the first
"real" initrd/kernel will have been copied)

That's something, at least.

[...]
Possible user recovery:

- removal of the backup files (I have not seen any of these. Who creates
such files?) should allow live-update-initramfs to operate properly

initramfs-tools creates them, if appropriately configured. It used to do so by default, but that appears to have changed during the squeeze cycle.

Based on the interdiff, .19-1 unblocked.

Regards,

Adam

--- End Message ---

Reply to: