[kernel] r15470 - dists/sid/linux-2.6/debian

Ben Hutchings benh at alioth.debian.org
Fri Apr 2 07:54:22 UTC 2010


Author: benh
Date: Fri Apr  2 07:54:11 2010
New Revision: 15470

Log:
linux-base: Never attempt disk ID conversion during a fresh installation (Closes: #576243)

Modified:
   dists/sid/linux-2.6/debian/changelog
   dists/sid/linux-2.6/debian/linux-base.postinst

Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog	Fri Apr  2 05:38:26 2010	(r15469)
+++ dists/sid/linux-2.6/debian/changelog	Fri Apr  2 07:54:11 2010	(r15470)
@@ -15,7 +15,9 @@
     thanks to Michael Gilbert (Closes: #569724)
   * rt2860sta: Fix argument to linux_pci_unmap_single() (Closes: #575726)
   * nouveau: nv50: Implement ctxprog/state generation
-  * linux-base: Fix the condition for reconfiguration
+  * linux-base: Fix the conditions for attempting disk ID conversion
+    - Always if $DEBCONF_RECONFIGURE is set
+    - Never during a fresh installation (Closes: #576243)
 
   [ maximilian attems]
   * [alpha, hppa] Disable oprofile as tracing code is unsupported here.

Modified: dists/sid/linux-2.6/debian/linux-base.postinst
==============================================================================
--- dists/sid/linux-2.6/debian/linux-base.postinst	Fri Apr  2 05:38:26 2010	(r15469)
+++ dists/sid/linux-2.6/debian/linux-base.postinst	Fri Apr  2 07:54:11 2010	(r15470)
@@ -1384,6 +1384,22 @@
     return $AptPkg::Config::_config->system->versioning->compare(@_);
 }
 
+# No upgrade work is necessary during a fresh system installation.
+# But since linux-base is a new dependency of linux-image-* and did
+# not exist until needed for the libata transition, we cannot simply
+# test whether this is a fresh installation of linux-base.  Instead,
+# we test:
+# - does /etc/fstab exist yet (this won't even work without it), and
+# - are any linux-image-* packages installed yet?
+sub is_fresh_installation {
+    if (-f '/etc/fstab') {
+	for (`dpkg-query 2>/dev/null --showformat '\${status}\\n' -W 'linux-image-*'`) {
+	    return 0 if / installed\n$/;
+	}
+    }
+    return 1;
+}
+
 my $deb_arch = `dpkg --print-architecture`;
 chomp $deb_arch;
 
@@ -1391,7 +1407,8 @@
     my $libata_transition_ver =
 	($deb_arch eq 'i386' || $deb_arch eq 'amd64') ? '2.6.32-10' : '2.6.32-11';
     if ($ARGV[0] eq 'reconfigure' || defined($ENV{DEBCONF_RECONFIGURE}) ||
-	compare_versions($ARGV[1], $libata_transition_ver) < 0) {
+	(!is_fresh_installation() &&
+	 compare_versions($ARGV[1], $libata_transition_ver) < 0)) {
 	DebianKernel::DiskId::transition();
     }
 }



More information about the Kernel-svn-changes mailing list