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

Bug#479431: [PATCH] now tested



Attached patchset is tested, and worked ok for upgrading a beta2 netinst
system to current testing.

I want to let the security and release teams know about this change
before applying it.

-- 
see shy jo
From f799c15bb58a2f1a4d895710e481f8d97afc2fcc Mon Sep 17 00:00:00 2001
From: Joey Hess <joey@kodama.kitenet.net>
Date: Thu, 26 Jun 2008 15:47:50 -0400
Subject: [PATCH] Move redundant error handling code into a function.

---
 packages/pkgsel/debian/changelog |    6 ++++
 packages/pkgsel/debian/postinst  |   49 +++++++++++++++----------------------
 2 files changed, 26 insertions(+), 29 deletions(-)

diff --git a/packages/pkgsel/debian/changelog b/packages/pkgsel/debian/changelog
index 61fc410..a6debbd 100644
--- a/packages/pkgsel/debian/changelog
+++ b/packages/pkgsel/debian/changelog
@@ -1,3 +1,9 @@
+pkgsel (0.21) UNRELEASED; urgency=low
+
+  * Move redundant error handling code into a function.
+
+ -- Joey Hess <joeyh@debian.org>  Thu, 26 Jun 2008 15:46:48 -0400
+
 pkgsel (0.20) unstable; urgency=low
 
   [ Updated translations ]
diff --git a/packages/pkgsel/debian/postinst b/packages/pkgsel/debian/postinst
index a7d1284..24dce2b 100755
--- a/packages/pkgsel/debian/postinst
+++ b/packages/pkgsel/debian/postinst
@@ -20,6 +20,23 @@ cleanup () {
 	done
 }
 
+aptfailed () {
+	ret=$?
+	if [ "$ret" != 0 ]; then
+		# In case packages failed to install, try to clean up.
+		in-target dpkg --configure -a || true
+
+		# TODO useful error message here (for ret != 30)
+		db_progress INFO pkgsel/progress/cleanup
+		if ! cleanup; then
+			log "cleanup failed"
+		fi
+		db_progress STOP
+		load_install_cd
+		exit $ret
+	fi
+}
+
 load_install_cd() {
 	if [ "$REMOUNT_CD" ]; then
 		load-install-cd "/target" || true
@@ -82,47 +99,21 @@ else
 fi
 
 db_progress INFO pkgsel/progress/tasksel
-ret=0
-in-target sh -c "$config tasksel --new-install --debconf-apt-progress='--from 5 --to $tasksel_end --logstderr'" || ret=$?
-if [ "$ret" != 0 ]; then
-	# In case packages failed to install, try to clean up.
-	in-target dpkg --configure -a || true
-	
-	# TODO useful error message here (for ret != 30)
-	db_progress INFO pkgsel/progress/cleanup
-	if ! cleanup; then
-		log "cleanup failed"
-	fi
-	db_progress STOP
-	load_install_cd
-	exit $ret
-fi
+in-target sh -c "$config tasksel --new-install --debconf-apt-progress='--from 5 --to $tasksel_end --logstderr'" || aptfailed
 
 db_get pkgsel/include
 if [ "$RET" ]; then
 	# Allow comma-separation so that this can more easily be preseeded
 	# at the kernel command line.
 	RET="$(printf '%s' "$RET" | sed 's/,/ /g')"
-	in-target sh -c "$config debconf-apt-progress --from 90 --to 95 --logstderr -- aptitude -q --without-recommends -y install -- $RET" || ret=$?
-	if [ "$ret" != 0 ]; then
-		# In case packages failed to install, try to clean up.
-		in-target dpkg --configure -a || true
-
-		# TODO useful error message here (for ret != 30)
-		db_progress INFO pkgsel/progress/cleanup
-		if ! cleanup; then
-			log "cleanup failed"
-		fi
-		db_progress STOP
-		load_install_cd
-		exit $ret
-	fi
+	in-target sh -c "$config debconf-apt-progress --from 90 --to 95 --logstderr -- aptitude -q --without-recommends -y install -- $RET" || aptfailed
 fi
 
 db_progress INFO pkgsel/progress/cleanup
 if ! cleanup; then
 	log "cleanup failed"
 fi
+
 db_progress STEP 2
 
 if [ -x /target/usr/bin/scrollkeeper-update ]; then
-- 
1.5.5.4

From 1e53f0c64f113a68f1b17e7d109547e11b1104dd Mon Sep 17 00:00:00 2001
From: Joey Hess <joey@kodama.kitenet.net>
Date: Thu, 26 Jun 2008 15:59:13 -0400
Subject: [PATCH] Add a call to aptitude safe-upgrade before running tasksel

So that security fixes not present on install CDs will be pulled in.
Closes: #479431

* debconf prompts during the upgrade will be provied to d-i
* dpkg is forced to install new verisons of conffiles
---
 packages/pkgsel/debian/changelog        |    5 +++++
 packages/pkgsel/debian/pkgsel.templates |    6 ++++++
 packages/pkgsel/debian/postinst         |    5 ++++-
 3 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/packages/pkgsel/debian/changelog b/packages/pkgsel/debian/changelog
index a6debbd..164c92e 100644
--- a/packages/pkgsel/debian/changelog
+++ b/packages/pkgsel/debian/changelog
@@ -1,6 +1,11 @@
 pkgsel (0.21) UNRELEASED; urgency=low
 
   * Move redundant error handling code into a function.
+  * Add a call to aptitude safe-upgrade before running tasksel,
+    so that security fixes not present on install CDs will be pulled in.
+    Closes: #479431
+  * debconf prompts during the upgrade will be provied to d-i
+  * dpkg is forced to install new verisons of conffiles
 
  -- Joey Hess <joeyh@debian.org>  Thu, 26 Jun 2008 15:46:48 -0400
 
diff --git a/packages/pkgsel/debian/pkgsel.templates b/packages/pkgsel/debian/pkgsel.templates
index 88f990e..f794f8c 100644
--- a/packages/pkgsel/debian/pkgsel.templates
+++ b/packages/pkgsel/debian/pkgsel.templates
@@ -13,6 +13,12 @@ Type: text
 # The text is used when pkgsel is launched, before it installs packages
 _Description: Setting up...
 
+Template: pkgsel/progress/upgrade
+Type: text
+# This appears in a progress bar when running pkgsel
+# The text is used when upgrading already installed packages.
+_Description: Upgrading software...
+
 Template: pkgsel/progress/tasksel
 Type: text
 # This appears in a progress bar when running pkgsel
diff --git a/packages/pkgsel/debian/postinst b/packages/pkgsel/debian/postinst
index 24dce2b..fabace1 100755
--- a/packages/pkgsel/debian/postinst
+++ b/packages/pkgsel/debian/postinst
@@ -91,6 +91,9 @@ if [ -d "$partsdir" ]; then
 	done
 fi
 
+db_progress INFO pkgsel/progress/upgrade
+in-target sh -c "$config debconf-apt-progress --from 5 --to 10 --logstderr -- aptitude safe-upgrade -o DPkg::options=--force-confnew" || aptfailed
+
 db_get pkgsel/include
 if [ "$RET" ]; then
 	tasksel_end=90
@@ -99,7 +102,7 @@ else
 fi
 
 db_progress INFO pkgsel/progress/tasksel
-in-target sh -c "$config tasksel --new-install --debconf-apt-progress='--from 5 --to $tasksel_end --logstderr'" || aptfailed
+in-target sh -c "$config tasksel --new-install --debconf-apt-progress='--from 10 --to $tasksel_end --logstderr'" || aptfailed
 
 db_get pkgsel/include
 if [ "$RET" ]; then
-- 
1.5.5.4

From aeb46b7630a91f0d3161f4ba4db4a28ef0db1f97 Mon Sep 17 00:00:00 2001
From: Joey Hess <joey@kodama.kitenet.net>
Date: Fri, 27 Jun 2008 16:06:22 -0400
Subject: [PATCH] fixes from fjp review

---
 packages/pkgsel/debian/changelog |    6 +++---
 packages/pkgsel/debian/postinst  |    2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/packages/pkgsel/debian/changelog b/packages/pkgsel/debian/changelog
index 164c92e..f638989 100644
--- a/packages/pkgsel/debian/changelog
+++ b/packages/pkgsel/debian/changelog
@@ -2,9 +2,9 @@ pkgsel (0.21) UNRELEASED; urgency=low
 
   * Move redundant error handling code into a function.
   * Add a call to aptitude safe-upgrade before running tasksel,
-    so that security fixes not present on install CDs will be pulled in.
-    Closes: #479431
-  * debconf prompts during the upgrade will be provied to d-i
+    so that security fixes not present on install CDs (or mirrors) 
+    will be pulled in. Closes: #479431
+  * debconf prompts during the upgrade will be provided to d-i
   * dpkg is forced to install new verisons of conffiles
 
  -- Joey Hess <joeyh@debian.org>  Thu, 26 Jun 2008 15:46:48 -0400
diff --git a/packages/pkgsel/debian/postinst b/packages/pkgsel/debian/postinst
index fabace1..106c60e 100755
--- a/packages/pkgsel/debian/postinst
+++ b/packages/pkgsel/debian/postinst
@@ -92,7 +92,7 @@ if [ -d "$partsdir" ]; then
 fi
 
 db_progress INFO pkgsel/progress/upgrade
-in-target sh -c "$config debconf-apt-progress --from 5 --to 10 --logstderr -- aptitude safe-upgrade -o DPkg::options=--force-confnew" || aptfailed
+in-target sh -c "$config debconf-apt-progress --from 5 --to 10 --logstderr -- aptitude -q --without-recommends -y safe-upgrade -o DPkg::options=--force-confnew" || aptfailed
 
 db_get pkgsel/include
 if [ "$RET" ]; then
-- 
1.5.5.4

From b15e9ae15cfc1c5585de5ee6185d1633c60ff06e Mon Sep 17 00:00:00 2001
From: Joey Hess <joey@kodama.kitenet.net>
Date: Fri, 27 Jun 2008 16:12:04 -0400
Subject: [PATCH] add upgrade preseed

This could be converted to a low priority question if desired.
---
 manual/en/appendix/preseed.xml          |    3 +++
 packages/pkgsel/debian/pkgsel.templates |    5 +++++
 packages/pkgsel/debian/postinst         |   14 ++++++++++----
 3 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/manual/en/appendix/preseed.xml b/manual/en/appendix/preseed.xml
index 8b66922..e20afa7 100644
--- a/manual/en/appendix/preseed.xml
+++ b/manual/en/appendix/preseed.xml
@@ -1262,6 +1262,9 @@ to be used easily on the kernel command line as well.
 
 # Individual additional packages to install
 #d-i pkgsel/include string openssh-server build-essential
+# Whether to upgrade packages after debootstrap.
+# Allowed values: none, safe-upgrade, full-upgrade
+#d-i pkgsel/upgrade select none
 
 # Some versions of the installer can report back on what software you have
 # installed, and what software you use. The default is not to report back,
diff --git a/packages/pkgsel/debian/pkgsel.templates b/packages/pkgsel/debian/pkgsel.templates
index f794f8c..5ef43cd 100644
--- a/packages/pkgsel/debian/pkgsel.templates
+++ b/packages/pkgsel/debian/pkgsel.templates
@@ -13,6 +13,11 @@ Type: text
 # The text is used when pkgsel is launched, before it installs packages
 _Description: Setting up...
 
+Template: pkgsel/upgrade
+Type: select
+Choices: none, safe-upgrade, full-upgrade
+Description: preseed setting for type of upgrade to perform
+
 Template: pkgsel/progress/upgrade
 Type: text
 # This appears in a progress bar when running pkgsel
diff --git a/packages/pkgsel/debian/postinst b/packages/pkgsel/debian/postinst
index 106c60e..7aeae39 100755
--- a/packages/pkgsel/debian/postinst
+++ b/packages/pkgsel/debian/postinst
@@ -91,18 +91,24 @@ if [ -d "$partsdir" ]; then
 	done
 fi
 
-db_progress INFO pkgsel/progress/upgrade
-in-target sh -c "$config debconf-apt-progress --from 5 --to 10 --logstderr -- aptitude -q --without-recommends -y safe-upgrade -o DPkg::options=--force-confnew" || aptfailed
-
 db_get pkgsel/include
 if [ "$RET" ]; then
 	tasksel_end=90
 else
 	tasksel_end=95
 fi
+db_get pkgsel/upgrade
+if [ "$RET" = none ]; then
+	tasksel_start=5
+else
+	upgrade_type="$RET"
+	db_progress INFO pkgsel/progress/upgrade
+	in-target sh -c "$config debconf-apt-progress --from 5 --to 10 --logstderr -- aptitude -q --without-recommends -y -o DPkg::options=--force-confnew '$UPGRADE_TYPE'" || aptfailed
+	tasksel_start=10
+fi
 
 db_progress INFO pkgsel/progress/tasksel
-in-target sh -c "$config tasksel --new-install --debconf-apt-progress='--from 10 --to $tasksel_end --logstderr'" || aptfailed
+in-target sh -c "$config tasksel --new-install --debconf-apt-progress='--from $tasksel_start --to $tasksel_end --logstderr'" || aptfailed
 
 db_get pkgsel/include
 if [ "$RET" ]; then
-- 
1.5.5.4

From cd0c0e0b8499a44243d82de9e2d688156bd415b3 Mon Sep 17 00:00:00 2001
From: Joey Hess <joey@kodama.kitenet.net>
Date: Sat, 28 Jun 2008 15:48:26 -0400
Subject: [PATCH] typo

---
 packages/pkgsel/debian/postinst |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/packages/pkgsel/debian/postinst b/packages/pkgsel/debian/postinst
index 7aeae39..4bb2a97 100755
--- a/packages/pkgsel/debian/postinst
+++ b/packages/pkgsel/debian/postinst
@@ -103,7 +103,7 @@ if [ "$RET" = none ]; then
 else
 	upgrade_type="$RET"
 	db_progress INFO pkgsel/progress/upgrade
-	in-target sh -c "$config debconf-apt-progress --from 5 --to 10 --logstderr -- aptitude -q --without-recommends -y -o DPkg::options=--force-confnew '$UPGRADE_TYPE'" || aptfailed
+	in-target sh -c "$config debconf-apt-progress --from 5 --to 10 --logstderr -- aptitude -q --without-recommends -y -o DPkg::options=--force-confnew '$upgrade_type'" || aptfailed
 	tasksel_start=10
 fi
 
-- 
1.5.5.4

From d42d757e7196981d26b242214ad28870b53134d7 Mon Sep 17 00:00:00 2001
From: Joey Hess <joey@kodama.kitenet.net>
Date: Sat, 28 Jun 2008 15:52:56 -0400
Subject: [PATCH] move upgrade to before pre-pkgsel

Specifically, I want it to run before the popcon question, because this
way there's not a long wait for the upgrade in between the popcon and tasksel
questions.

This also avoids needing to upgrade a few things like popcon and
laptop-detect, which can't hurt.

Moving the upgrade into a pre-pkgsel script itself would be conceptually
cleaner, but such scripts have no way to fail the whole pkgsel run, which
needs to happen if an upgrade fails. Also, the code sets variables that are
used later in pkgsel.
---
 packages/pkgsel/debian/postinst |   19 ++++++++++---------
 1 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/packages/pkgsel/debian/postinst b/packages/pkgsel/debian/postinst
index 4bb2a97..14a2f22 100755
--- a/packages/pkgsel/debian/postinst
+++ b/packages/pkgsel/debian/postinst
@@ -70,6 +70,16 @@ if [ -e /var/lib/install-cd.id ]; then
 	REMOUNT_CD=1
 fi
 
+db_get pkgsel/upgrade
+if [ "$RET" = none ]; then
+	tasksel_start=5
+else
+	upgrade_type="$RET"
+	db_progress INFO pkgsel/progress/upgrade
+	in-target sh -c "$config debconf-apt-progress --from 5 --to 10 --logstderr -- aptitude -q --without-recommends -y -o DPkg::options=--force-confnew '$upgrade_type'" || aptfailed
+	tasksel_start=10
+fi
+
 partsdir="/usr/lib/pre-pkgsel.d"
 if [ -d "$partsdir" ]; then
 	for script in `ls "$partsdir"/* 2>/dev/null`; do
@@ -97,15 +107,6 @@ if [ "$RET" ]; then
 else
 	tasksel_end=95
 fi
-db_get pkgsel/upgrade
-if [ "$RET" = none ]; then
-	tasksel_start=5
-else
-	upgrade_type="$RET"
-	db_progress INFO pkgsel/progress/upgrade
-	in-target sh -c "$config debconf-apt-progress --from 5 --to 10 --logstderr -- aptitude -q --without-recommends -y -o DPkg::options=--force-confnew '$upgrade_type'" || aptfailed
-	tasksel_start=10
-fi
 
 db_progress INFO pkgsel/progress/tasksel
 in-target sh -c "$config tasksel --new-install --debconf-apt-progress='--from $tasksel_start --to $tasksel_end --logstderr'" || aptfailed
-- 
1.5.5.4

Attachment: signature.asc
Description: Digital signature


Reply to: