[SCM] live-config branch, debian-next, updated. debian/2.0_a3-1-11-g41004cf

Daniel Baumann daniel at debian.org
Wed Jun 2 19:41:06 UTC 2010


The following commit has been merged in the debian-next branch:
commit 41004cf7b9a07d57cd41ed0c3bfcff1af86cb630
Author: Daniel Baumann <daniel at debian.org>
Date:   Wed Jun 2 21:34:30 2010 +0200

    Adding checks to ensure that scripts are not re-run with persistency.

diff --git a/Makefile b/Makefile
index 54388a7..4116543 100644
--- a/Makefile
+++ b/Makefile
@@ -41,6 +41,7 @@ install:
 	# Installing scripts
 	mkdir -p $(DESTDIR)/lib/live
 	cp -r scripts/config.sh scripts/config $(DESTDIR)/lib/live
+	mkdir -p $(DESTDIR)/var/lib/live/config
 
 	# Installing docs
 	mkdir -p $(DESTDIR)/usr/share/doc/live-config
@@ -66,6 +67,8 @@ uninstall:
 	# Uninstalling scripts
 	rm -rf $(DESTDIR)/lib/live/config.sh $(DESTDIR)/lib/live/config
 	rmdir --ignore-fail-on-non-empty $(DESTDIR)/lib/live || true
+	rmdir --ignore-fail-on-non-empty $(DESTDIR)/var/lib/live/config || true
+	rmdir --ignore-fail-on-non-empty $(DESTDIR)/var/lib/live || true
 
 	# Uninstalling docs
 	rm -rf $(DESTDIR)/usr/share/doc/live-config
diff --git a/scripts/config/001-hostname b/scripts/config/001-hostname
index a91f85f..82c456a 100755
--- a/scripts/config/001-hostname
+++ b/scripts/config/001-hostname
@@ -2,8 +2,9 @@
 
 Hostname ()
 {
-	# Checking if package is installed
-	if [ -z "${LIVE_HOSTNAME}" ]
+	# Checking if package is installed or already configured
+	if [ -z "${LIVE_HOSTNAME}" ] || \
+	   [ -e /var/lib/live/config/hostname ]
 	then
 		return
 	fi
@@ -43,6 +44,9 @@ EOF
 	fi
 
 	hostname "${LIVE_HOSTNAME}"
+
+	# Creating state file
+	touch /var/lib/live/config/hostname
 }
 
 Hostname
diff --git a/scripts/config/002-user-setup b/scripts/config/002-user-setup
index f37f493..a18be25 100755
--- a/scripts/config/002-user-setup
+++ b/scripts/config/002-user-setup
@@ -2,8 +2,9 @@
 
 User_setup ()
 {
-	# Checking if package is installed
-	if [ ! -e /var/lib/dpkg/info/user-setup.list ]
+	# Checking if package is installed or already configured
+	if [ ! -e /var/lib/dpkg/info/user-setup.list ] || \
+	   [ -e /var/lib/live/config/user-setup ]
 	then
 		return
 	fi
@@ -15,7 +16,7 @@ User_setup ()
 
 Configure_user_setup ()
 {
-	# Checking if if package is already configured
+	# Checking if if package is already configured differently
 	if grep -q "^${LIVE_USERNAME}" /etc/passwd
 	then
 		return
@@ -46,6 +47,9 @@ EOF
 	/usr/lib/user-setup/user-setup-apply 2>&1 \
 	| grep -v "Shadow passwords are now on"
 	set -e
+
+	# Creating state file
+	touch /var/lib/live/config/user-setup
 }
 
 User_setup
diff --git a/scripts/config/003-sudo b/scripts/config/003-sudo
index 2adea3b..bcfefc6 100755
--- a/scripts/config/003-sudo
+++ b/scripts/config/003-sudo
@@ -2,8 +2,9 @@
 
 Sudo ()
 {
-	# Checking if package is installed
-	if [ ! -e /var/lib/dpkg/info/sudo.list ]
+	# Checking if package is installed or already configured
+	if [ ! -e /var/lib/dpkg/info/sudo.list ] || \
+	   [ -e /var/lib/live/config/sudo ]
 	then
 		return
 	fi
@@ -15,7 +16,7 @@ Sudo ()
 
 Configure_sudo ()
 {
-	# Checking if if package is already configured
+	# Checking if if package is already configured differently
 	if grep -q "^${LIVE_USERNAME}" /etc/sudoers
 	then
 		return
@@ -45,6 +46,9 @@ EOF
 	then
 		sudo -u "${LIVE_USERNAME}" sh -c "umask 0077 && mkdir -p /home/${LIVE_USERNAME}/.kde/share/apps/konsole && sed -e's/Exec=su.*$/Exec=sudo -i/' /usr/share/apps/konsole/su.desktop > /home/${LIVE_USERNAME}/.kde/share/apps/konsole/su.desktop"
 	fi
+
+	# Creating state file
+	touch /var/lib/live/config/sudo
 }
 
 Sudo
diff --git a/scripts/config/004-locales b/scripts/config/004-locales
index 5e09465..36d077f 100755
--- a/scripts/config/004-locales
+++ b/scripts/config/004-locales
@@ -2,8 +2,9 @@
 
 Locales ()
 {
-	# Checking if package is installed
-	if [ ! -e /var/lib/dpkg/info/locales.list ]
+	# Checking if package is installed or already configured
+	if [ ! -e /var/lib/dpkg/info/locales.list ] || \
+	   [ -e /var/lib/live/config/locales ]
 	then
 		return
 	fi
@@ -85,6 +86,9 @@ Configure_locales ()
 	sed -i -e "s|# ${LANG} ${_CODEPAGE}|${LANG} ${_CODEPAGE}|" /etc/locale.gen
 
 	locale-gen --keep-existing > /dev/null 2>&1
+
+	# Creating state file
+	touch /var/lib/live/config/locales
 }
 
 Locales
diff --git a/scripts/config/005-tzdata b/scripts/config/005-tzdata
index 5b8a6d3..e2c3bfe 100755
--- a/scripts/config/005-tzdata
+++ b/scripts/config/005-tzdata
@@ -2,8 +2,9 @@
 
 Tzdata ()
 {
-	# Checking if package is installed
-	if [ ! -e /var/lib/dpkg/info/tzdata.list ]
+	# Checking if package is installed or already configured
+	if [ ! -e /var/lib/dpkg/info/tzdata.list ] || \
+	   [ -e /var/lib/live/tzdata ]
 	then
 		return
 	fi
@@ -40,6 +41,9 @@ EOF
 	then
 		sed -i -e "s|UTC=.*|UTC=${LIVE_UTC}|" /etc/default/rcS
 	fi
+
+	# Creating state file
+	touch /var/lib/live/config/tzdata
 }
 
 Tzdata
diff --git a/scripts/config/006-gdm b/scripts/config/006-gdm
index e9ba78c..3f22090 100755
--- a/scripts/config/006-gdm
+++ b/scripts/config/006-gdm
@@ -2,8 +2,9 @@
 
 Gdm ()
 {
-	# Checking if package is installed
-	if [ ! -e /var/lib/dpkg/info/gdm.list ]
+	# Checking if package is installed or already configured
+	if [ ! -e /var/lib/dpkg/info/gdm.list ] || \
+	   [ -e /var/lib/live/config/gdm ]
 	then
 		return
 	fi
@@ -15,7 +16,7 @@ Gdm ()
 
 Configure_gdm ()
 {
-	# Checking if if package is already configured
+	# Checking if if package is already configured differently
 	if grep -qs AutomaticLoginEnable /etc/gdm/gdm.conf
 	then
 		return
@@ -28,6 +29,9 @@ TimedLogin=${LIVE_USERNAME}\n\
 TimedLoginDelay=10"
 
 	sed -i -e "s|\[daemon\]|\[daemon\]\n${_GDM_OPTIONS}|" /etc/gdm/gdm.conf
+
+	# Creating state file
+	touch /var/lib/live/config/gdm
 }
 
 Gdm
diff --git a/scripts/config/007-gdm3 b/scripts/config/007-gdm3
index 25b8e52..07b006d 100755
--- a/scripts/config/007-gdm3
+++ b/scripts/config/007-gdm3
@@ -2,8 +2,9 @@
 
 Gdm3 ()
 {
-	# Checking if package is installed
-	if [ ! -e /var/lib/dpkg/info/gdm3.list ]
+	# Checking if package is installed or already configured
+	if [ ! -e /var/lib/dpkg/info/gdm3.list ] || \
+	   [ -e /var/lib/live/config/gdm3 ]
 	then
 		return
 	fi
@@ -15,7 +16,7 @@ Gdm3 ()
 
 Configure_gdm3 ()
 {
-	# Checking if if package is already configured
+	# Checking if if package is already configured differently
 	if grep -qs AutomaticLoginEnable /etc/gdm3/daemon.conf
 	then
 		return
@@ -28,6 +29,9 @@ TimedLogin=${LIVE_USERNAME}\n\
 TimedLoginDelay=10"
 
 	sed -i -e "s|\[daemon\]|\[daemon\]\n${_GDM3_OPTIONS}|" /etc/gdm3/daemon.conf
+
+	# Creating state file
+	touch /var/lib/live/config/gdm3
 }
 
 Gdm3
diff --git a/scripts/config/008-kdm b/scripts/config/008-kdm
index 1fa834c..f8fe330 100755
--- a/scripts/config/008-kdm
+++ b/scripts/config/008-kdm
@@ -2,8 +2,9 @@
 
 Kdm ()
 {
-	# Checking if package is installed
-	if [ ! -e /var/lib/dpkg/info/kdm.list ]
+	# Checking if package is installed or already configured
+	if [ ! -e /var/lib/dpkg/info/kdm.list ] || \
+	   [ -e /var/lib/live/config/kdm ]
 	then
 		return
 	fi
@@ -48,6 +49,9 @@ Configure_kdm ()
 				/etc/kde3/kdm/kdmrc
 		fi
 	fi
+
+	# Creating state file
+	touch /var/lib/live/config/kdm
 }
 
 Kdm
diff --git a/scripts/config/009-lxdm b/scripts/config/009-lxdm
index 7c4871c..71bf4f4 100755
--- a/scripts/config/009-lxdm
+++ b/scripts/config/009-lxdm
@@ -2,8 +2,9 @@
 
 Lxdm ()
 {
-	# Checking if package is installed
-	if [ ! -e /var/lib/dpkg/info/lxdm.list ]
+	# Checking if package is installed or already configured
+	if [ ! -e /var/lib/dpkg/info/lxdm.list ] || \
+	   [ -e /var/lib/live/config/lxdm ]
 	then
 		return
 	fi
@@ -21,6 +22,9 @@ Configure_lxdm ()
 			  -e "s|^#?session.*\$|session|" \
 		/etc/lxdm/lxdm.conf
 	fi
+
+	# Creating state file
+	touch /var/lib/live/config/lxdm
 }
 
 Lxdm
diff --git a/scripts/config/010-nodm b/scripts/config/010-nodm
index d7b8a9c..b00978c 100755
--- a/scripts/config/010-nodm
+++ b/scripts/config/010-nodm
@@ -2,8 +2,9 @@
 
 Nodm ()
 {
-	# Checking if package is installed
-	if [ ! -e /var/lib/dpkg/info/nodm.list ]
+	# Checking if package is installed or already configured
+	if [ ! -e /var/lib/dpkg/info/nodm.list ] || \
+	   [ -e /var/lib/live/config/nodm ]
 	then
 		return
 	fi
@@ -25,6 +26,9 @@ EOF
 	rm -f /tmp/debconf.live
 
 	dpkg-reconfigure -f non-interactive -p critical nodm
+
+	# Creating state file
+	touch /var/lib/live/config/nodm
 }
 
 Nodm
diff --git a/scripts/config/100-apport b/scripts/config/100-apport
index 226ed55..914c233 100755
--- a/scripts/config/100-apport
+++ b/scripts/config/100-apport
@@ -2,8 +2,9 @@
 
 Apport ()
 {
-	# Checking if package is installed
-	if [ ! -e /var/lib/dpkg/info/apport.list ]
+	# Checking if package is installed or already configured
+	if [ ! -e /var/lib/dpkg/info/apport.list ] || \
+	   [ -e /var/lib/live/apport ]
 	then
 		return
 	fi
@@ -17,6 +18,9 @@ Configure_apport ()
 {
 	# Enabling detection of crashes
 	sed -i -e 's|enabled=0|enabled=1|' /etc/default/apport
+
+	# Creating state file
+	touch /var/lib/live/config/apport
 }
 
 Apport
diff --git a/scripts/config/101-gnome-panel-data b/scripts/config/101-gnome-panel-data
index 4250f99..885787c 100755
--- a/scripts/config/101-gnome-panel-data
+++ b/scripts/config/101-gnome-panel-data
@@ -2,8 +2,9 @@
 
 Gnome_panel_data ()
 {
-	# Checking if package is installed
-	if [ ! -e /var/lib/dpkg/info/gnome-panel-data.list ]
+	# Checking if package is installed or already configured
+	if [ ! -e /var/lib/dpkg/info/gnome-panel-data.list ] || \
+	   [ -e /var/lib/live/config/gnome-panel-data ]
 	then
 		return
 	fi
@@ -16,6 +17,9 @@ Gnome_panel_data ()
 Configure_gnome_panel_data ()
 {
 	sudo -u "${LIVE_USERNAME}" gconftool-2 -s -t bool /apps/panel/global/disable_lock_screen true
+
+	# Creating state file
+	touch /var/lib/live/config/gnome-panel-data
 }
 
 Gnome_panel_data
diff --git a/scripts/config/102-gnome-power-manager b/scripts/config/102-gnome-power-manager
index 66c6835..4bd907e 100755
--- a/scripts/config/102-gnome-power-manager
+++ b/scripts/config/102-gnome-power-manager
@@ -2,8 +2,9 @@
 
 Gnome_power_manager ()
 {
-	# Checking if package is installed
-	if [ ! -e /var/lib/dpkg/info/gnome-power-manager.list ]
+	# Checking if package is installed or already configured
+	if [ ! -e /var/lib/dpkg/info/gnome-power-manager.list ] || \
+	   [ -e /var/lib/live/config/gnome-power-manager ]
 	then
 		return
 	fi
@@ -18,6 +19,9 @@ Configure_gnome_power_manager ()
 	# Not authorizing the user to hibernate the computer
 	# (might damage existing swap partitions).
 	sudo -u "${LIVE_USERNAME}" gconftool-2 -s -t bool /apps/gnome-power-manager/general/can_hibernate false
+
+	# Creating state file
+	touch /var/lib/live/config/gnome-power-manager
 }
 
 Gnome_power_manager
diff --git a/scripts/config/103-gnome-screensaver b/scripts/config/103-gnome-screensaver
index b10a291..7dcb950 100755
--- a/scripts/config/103-gnome-screensaver
+++ b/scripts/config/103-gnome-screensaver
@@ -2,8 +2,9 @@
 
 Gnome_screensaver ()
 {
-	# Checking if package is installed
-	if [ ! -e /var/lib/dpkg/info/gnome-screensaver.list ]
+	# Checking if package is installed or already configured
+	if [ ! -e /var/lib/dpkg/info/gnome-screensaver.list ] || \
+	   [ -e /var/lib/live/config/gnome-screensaver ]
 	then
 		return
 	fi
@@ -17,6 +18,9 @@ Configure_gnome_screensaver ()
 {
 	# Disabling to lock the screen when the screensaver goes active.
 	sudo -u "${LIVE_USERNAME}" gconftool-2 -t bool -s /apps/gnome-screensaver/lock_enabled false
+
+	# Creating state file
+	touch /var/lib/live/config/gnome-screensaver
 }
 
 Gnome_screensaver
diff --git a/scripts/config/104-initramfs-tools b/scripts/config/104-initramfs-tools
index 7e6051d..8695102 100755
--- a/scripts/config/104-initramfs-tools
+++ b/scripts/config/104-initramfs-tools
@@ -2,8 +2,9 @@
 
 Initramfs_tools ()
 {
-	# Checking if package is installed
-	if [ ! -e /var/lib/dpkg/info/initramfs-tools.list ]
+	# Checking if package is installed or already configured
+	if [ ! -e /var/lib/dpkg/info/initramfs-tools.list ] || \
+	   [ -e /var/lib/live/config/initramfs-tools ]
 	then
 		return
 	fi
@@ -15,7 +16,7 @@ Initramfs_tools ()
 
 Configure_update_initramfs ()
 {
-	# Checking if apckage is already configured
+	# Checking if apckage is already configured differently
 	if [ -e /usr/sbin/update-initramfs.debian ]
 	then
 		return
@@ -63,6 +64,9 @@ EOF
 fi
 
 	chmod 0755 /usr/sbin/update-initramfs
+
+	# Creating state file
+	touch /var/lib/live/config/initramfs-tools
 }
 
 Initramfs_tools
diff --git a/scripts/config/105-kaboom b/scripts/config/105-kaboom
index 326fdf9..b25ba99 100755
--- a/scripts/config/105-kaboom
+++ b/scripts/config/105-kaboom
@@ -2,8 +2,9 @@
 
 Kaboom ()
 {
-	# Checking if package is installed
-	if [ ! -e /var/lib/dpkg/info/kaboom.list ]
+	# Checking if package is installed or already configured
+	if [ ! -e /var/lib/dpkg/info/kaboom.list ] || \
+	   [ -e /var/lib/live/config/kaboom ]
 	then
 		return
 	fi
@@ -17,6 +18,9 @@ Configure_kaboom ()
 {
 	mkdir -p /home/${LIVE_USERNAME}/.local
 	touch /home/${LIVE_USERNAME}/.local/kaboom
+
+	# Creating state file
+	touch /var/lib/live/config/kaboom
 }
 
 Kaboom
diff --git a/scripts/config/106-kde-services b/scripts/config/106-kde-services
index 21fbba1..bcd6f06 100755
--- a/scripts/config/106-kde-services
+++ b/scripts/config/106-kde-services
@@ -2,9 +2,10 @@
 
 Kde_services ()
 {
-	# Checking if package is installed
+	# Checking if package is installed or already configured
 	# we're only checking for KDE4 here (FIXME).
-	if [ ! -e /usr/share/kde4 ]
+	if [ ! -e /usr/share/kde4 ] || \
+	   [ -e /var/lib/live/config/kde-services ]
 	then
 		return
 	fi
@@ -27,6 +28,9 @@ Configure_kde_services ()
 	rm -f /usr/share/kde4/services/kded/freespacenotifier.desktop
 	rm -f /usr/share/kde4/services/plasma-runner-contacts.desktop  # starts akonadi
 	rm -f /usr/share/kde4/services/kded/notificationhelper.desktop
+
+	# Creating state file
+	touch /var/lib/live/config/kde-services
 }
 
 Kde_services
diff --git a/scripts/config/107-kpersonalizer b/scripts/config/107-kpersonalizer
index d964018..f87ec3c 100755
--- a/scripts/config/107-kpersonalizer
+++ b/scripts/config/107-kpersonalizer
@@ -2,8 +2,9 @@
 
 Kpersonalizer ()
 {
-	# Checking if package is installed
-	if [ ! -e /var/lib/dpkg/info/kpersonalizer.list ]
+	# Checking if package is installed or already configured
+	if [ ! -e /var/lib/dpkg/info/kpersonalizer.list ] || \
+	   [ -e /var/lib/live/config/kpersonalizer ]
 	then
 		return
 	fi
@@ -15,7 +16,7 @@ Kpersonalizer ()
 
 Configure_kpersonalizer ()
 {
-	# Checking if apckage is already configured
+	# Checking if apckage is already configured differently
 	if grep -qs FirstLogin /etc/kde3/kpersonalizerrc
 	then
 		return
@@ -26,6 +27,8 @@ cat > /etc/kde3/kpersonalizerrc << EOF
 FirstLogin=false
 EOF
 
+	# Creating state file
+	touch /var/lib/live/config/kpersonalizer
 }
 
 Kpersonalizer
diff --git a/scripts/config/108-live-installer-launcher b/scripts/config/108-live-installer-launcher
index 6d1ff09..e6afac5 100755
--- a/scripts/config/108-live-installer-launcher
+++ b/scripts/config/108-live-installer-launcher
@@ -2,8 +2,9 @@
 
 Live_installer_launcher ()
 {
-	# Checking if package is installed
-	if [ ! -e /var/lib/dpkg/info/live-installer-launcher.list ]
+	# Checking if package is installed or already configured
+	if [ ! -e /var/lib/dpkg/info/live-installer-launcher.list ] || \
+	   [ -e /var/lib/live/config/live-installer-launcher ]
 	then
 		return
 	fi
@@ -16,6 +17,9 @@ Live_installer_launcher ()
 Configure_live_installer_launcher ()
 {
 	install -D -o ${LIVE_USERNAME} -g ${LIVE_USERNAME} /usr/share/applications/live-installer-launcher.desktop /home/${LIVE_USERNAME}/Desktop/live-installer-launcher.desktop
+
+	# Creating state file
+	touch /var/lib/live/config/live-installer-launcher
 }
 
 Live_installer_launcher
diff --git a/scripts/config/109-module-init-tools b/scripts/config/109-module-init-tools
index 3f92610..4e3c1fc 100755
--- a/scripts/config/109-module-init-tools
+++ b/scripts/config/109-module-init-tools
@@ -5,7 +5,11 @@ Module_init_tools ()
 	# Checking if package is installed
 	case "$(dpkg --print-architecture)" in
 		powerpc|ppc64)
-
+			# Checking if package is already configured
+			if [ -e /var/lib/live/config/module-init-tools ]
+			then
+				return
+			fi
 			;;
 
 		*)
@@ -20,7 +24,7 @@ Module_init_tools ()
 
 Configure_module_init_tools ()
 {
-	# Checking if apckage is already configured
+	# Checking if apckage is already configured differently
 	if grep -qs "snd_powermac" /etc/modules
 	then
 		return
@@ -28,6 +32,9 @@ Configure_module_init_tools ()
 
 	# Preconfiguring /etc/modules
 	echo "snd_powermac" >> /etc/modules
+
+	# Creating state file
+	touch /var/lib/live/config/module-init-tools
 }
 
 Module_init_tools
diff --git a/scripts/config/110-policykit b/scripts/config/110-policykit
index b2f4bcd..378474d 100755
--- a/scripts/config/110-policykit
+++ b/scripts/config/110-policykit
@@ -3,7 +3,8 @@
 Policykit ()
 {
 	# Checking if package is installed
-	if [ ! -e /var/lib/dpkg/info/policykit-1.list ]
+	if [ ! -e /var/lib/dpkg/info/policykit-1.list ] || \
+	   [ -e /var/lib/live/config/policykit ]
 	then
 		return
 	fi
@@ -63,6 +64,8 @@ ResultInactive=no
 ResultActive=yes
 EOF
 
+	# Creating state file
+	touch /var/lib/live/config/policykit
 }
 
 Policykit
diff --git a/scripts/config/111-sslcert b/scripts/config/111-sslcert
index d058abe..d5ceedf 100755
--- a/scripts/config/111-sslcert
+++ b/scripts/config/111-sslcert
@@ -18,7 +18,7 @@ Configure_sslcert ()
 {
 	make-ssl-cert generate-default-snakeoil --force-overwrite
 
-	mkdir -p /var/lib/live/config
+	# Creating state file
 	touch /var/lib/live/config/sslcert
 }
 
diff --git a/scripts/config/112-update-notifier b/scripts/config/112-update-notifier
index 5d9b615..252e457 100755
--- a/scripts/config/112-update-notifier
+++ b/scripts/config/112-update-notifier
@@ -3,7 +3,8 @@
 Update_notifier ()
 {
 	# Checking if package is installed
-	if [ ! -e /var/lib/dpkg/info/update-notifier.list ]
+	if [ ! -e /var/lib/dpkg/info/update-notifier.list ] || \
+	   [ -e /var/lib/live/config/update-notifier ]
 	then
 		return
 	fi
@@ -30,6 +31,9 @@ Configure_update_notifier ()
 	# For KDE, adept_notifier's only useful function at the moment is an
 	# 'apt-get update' equivalent, so we disable it entirely.
 	rm -f /usr/share/autostart/adept_notifier_auto.desktop
+
+	# Creating state file
+	touch /var/lib/live/config/update-notifier
 }
 
 Update_notifier

-- 
live-config



More information about the debian-live-changes mailing list