[kernel] r15575 - in dists/trunk/linux-2.6/debian: . bin config config/alpha config/amd64 config/amd64/xen config/armel config/featureset-openvz config/featureset-xen config/hppa config/i386 config/i386/xen config/ia64 config/kernelarch-x86 config/mips config/powerpc config/sparc po templates templates/image.plain.bug templates/temp.headers.plain templates/temp.image.plain

Bastian Blank waldi at alioth.debian.org
Tue Apr 27 17:48:14 UTC 2010


Author: waldi
Date: Tue Apr 27 17:48:06 2010
New Revision: 15575

Log:
Merge /dists/sid/linux-2.6 (2.6.32-11).

Added:
   dists/trunk/linux-2.6/debian/config/featureset-openvz/config
      - copied unchanged from r15489, dists/sid/linux-2.6/debian/config/featureset-openvz/config
   dists/trunk/linux-2.6/debian/config/featureset-openvz/defines
      - copied unchanged from r15489, dists/sid/linux-2.6/debian/config/featureset-openvz/defines
   dists/trunk/linux-2.6/debian/po/
      - copied from r15489, dists/sid/linux-2.6/debian/po/
   dists/trunk/linux-2.6/debian/templates/temp.headers.plain/
      - copied from r15489, dists/sid/linux-2.6/debian/templates/temp.headers.plain/
Replaced:
   dists/trunk/linux-2.6/debian/NEWS   (props changed)
      - copied unchanged from r15489, dists/sid/linux-2.6/debian/NEWS
   dists/trunk/linux-2.6/debian/linux-base.postinst   (props changed)
      - copied unchanged from r15489, dists/sid/linux-2.6/debian/linux-base.postinst
   dists/trunk/linux-2.6/debian/linux-base.templates   (props changed)
      - copied unchanged from r15489, dists/sid/linux-2.6/debian/linux-base.templates
Modified:
   dists/trunk/linux-2.6/debian/   (props changed)
   dists/trunk/linux-2.6/debian/README.source
   dists/trunk/linux-2.6/debian/bin/buildcheck.py
   dists/trunk/linux-2.6/debian/bin/gencontrol.py
   dists/trunk/linux-2.6/debian/bin/test-patches
   dists/trunk/linux-2.6/debian/changelog
   dists/trunk/linux-2.6/debian/config/alpha/config
   dists/trunk/linux-2.6/debian/config/amd64/defines
   dists/trunk/linux-2.6/debian/config/amd64/xen/defines
   dists/trunk/linux-2.6/debian/config/armel/config.iop32x
   dists/trunk/linux-2.6/debian/config/armel/config.kirkwood
   dists/trunk/linux-2.6/debian/config/config
   dists/trunk/linux-2.6/debian/config/defines
   dists/trunk/linux-2.6/debian/config/featureset-xen/config
   dists/trunk/linux-2.6/debian/config/featureset-xen/defines
   dists/trunk/linux-2.6/debian/config/hppa/config
   dists/trunk/linux-2.6/debian/config/i386/defines
   dists/trunk/linux-2.6/debian/config/i386/xen/defines
   dists/trunk/linux-2.6/debian/config/ia64/config
   dists/trunk/linux-2.6/debian/config/kernelarch-x86/config
   dists/trunk/linux-2.6/debian/config/kernelarch-x86/config-arch-32
   dists/trunk/linux-2.6/debian/config/mips/config.4kc-malta
   dists/trunk/linux-2.6/debian/config/mips/config.5kc-malta
   dists/trunk/linux-2.6/debian/config/mips/config.sb1a-bcm91480b
   dists/trunk/linux-2.6/debian/config/powerpc/config
   dists/trunk/linux-2.6/debian/config/sparc/config
   dists/trunk/linux-2.6/debian/rules.real
   dists/trunk/linux-2.6/debian/templates/control.xen-linux-system.in
   dists/trunk/linux-2.6/debian/templates/image.plain.bug/include-network
   dists/trunk/linux-2.6/debian/templates/temp.image.plain/templates

Copied: dists/trunk/linux-2.6/debian/NEWS (from r15489, dists/sid/linux-2.6/debian/NEWS)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/trunk/linux-2.6/debian/NEWS	Tue Apr 27 17:48:06 2010	(r15575, copy of r15489, dists/sid/linux-2.6/debian/NEWS)
@@ -0,0 +1,35 @@
+linux-2.6 (2.6.32-11) unstable; urgency=low
+
+  * This release replaces the old IDE (PATA) drivers with new drivers
+    using 'libata' on all architectures.  This change was previously made
+    for the i386 and amd64 architectures.
+
+    The automatic upgrade code does not support the configuration files
+    of many of the boot loaders used on other architectures, so you may
+    be prompted to make changes manually.
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Sat, 20 Mar 2010 05:48:31 +0000
+
+linux-2.6 (2.6.32-10) unstable; urgency=low
+
+  * The old IDE (PATA) drivers are no longer developed.  Most PATA
+    controllers used in PCs (i386 and amd64 architectures) can be handled
+    by new drivers using 'libata', which is already used for SATA
+    controllers.  This release enables all the new drivers that are
+    considered stable and disables the old drivers that they replace.
+    Other architectures should not be affected.
+
+    While the old drivers presented device names beginning with 'hd',
+    libata makes PATA drives appear as SCSI devices and presents device
+    names beginning with 'sd' (hard drive), 'sr' (optical) or 'st' (tape).
+    In a system that already has other SCSI or SCSI-like devices, names
+    may change unpredictably.
+
+    During the upgrade from earlier versions, you will be prompted to
+    update configuration files which refer to device names that may
+    change.  You can choose to do this yourself or to follow an automatic
+    upgrade process.  Unfortunately the automatic upgrade process does not
+    cover tape drives.  All changed configuration files are backed up with
+    a suffix of '.old' (or '^old' in one case).
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Tue, 16 Mar 2010 04:15:37 +0000

Modified: dists/trunk/linux-2.6/debian/README.source
==============================================================================
--- dists/trunk/linux-2.6/debian/README.source	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/README.source	Tue Apr 27 17:48:06 2010	(r15575)
@@ -11,10 +11,15 @@
    This will produce ../orig/linux-2.6_<version>.orig.tar.gz
    (e.g. linux-2.6_2.6.26~rc3.orig.tar.gz).
 
+   (genorig.py requires the python and unifdef packages to be
+    installed)
+
 3) Unpack linux-2.6-<version>.orig.tar.gz, cd into the new directory,
    and do a 'svn export' to get the debian/ subdirectory.
    Alternatively unpack using "make -f debian/rules orig".
 
+   (the orig target of the Makefiles requires rsync)
+
 Applying patches to the Debian kernel tree
 ==========================================
 
@@ -55,6 +60,12 @@
 The same syntax applies for specifing the patches, but an additional
 argument is needed which specifies the featureset the patch applies to.
 
+
+If you want to generate a source tree with all patches applied, run
+make -f debian/rules source-all
+
+The resulting source can be found below debian/build.
+
 Kernel config files
 ===================
 Configuration files are constructed dynamically from a number of config

Modified: dists/trunk/linux-2.6/debian/bin/buildcheck.py
==============================================================================
--- dists/trunk/linux-2.6/debian/bin/buildcheck.py	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/bin/buildcheck.py	Tue Apr 27 17:48:06 2010	(r15575)
@@ -13,33 +13,22 @@
 
 class CheckAbi(object):
     class SymbolInfo(object):
-        def __init__(self, symbol):
+        def __init__(self, symbol, symbol_ref=None):
             self.symbol = symbol
+            self.symbol_ref = symbol_ref or symbol
 
         def write(self, out, ignored):
             info = []
             if ignored:
                 info.append("ignored")
-            for i in ('module', 'version', 'export'):
-                info.append("%s: %s" % (i, getattr(self.symbol, i)))
-            out.write("%-48s %s\n" % (self.symbol.name, ", ".join(info)))
-
-    class SymbolChangeInfo(object):
-        def __init__(self, symbol_ref, symbol_new):
-            self.symbol_ref, self.symbol_new = symbol_ref, symbol_new
-
-        def write(self, out, ignored):
-            info = []
-            if ignored:
-                info.append("ignored")
-            for i in ('module', 'version', 'export'):
-                d_ref = getattr(self.symbol_ref, i)
-                d_new = getattr(self.symbol_new, i)
-                if d_ref != d_new:
-                    info.append("%s: %s -> %s" % (i, d_ref, d_new))
+            for name in ('module', 'version', 'export'):
+                data = getattr(self.symbol, name)
+                data_ref = getattr(self.symbol_ref, name)
+                if data != data_ref:
+                    info.append("%s: %s -> %s" % (name, data_ref, data))
                 else:
-                    info.append("%s: %s" % (i, d_new))
-            out.write("%-48s %s\n" % (self.symbol_new.name, ", ".join(info)))
+                    info.append("%s: %s" % (name, data))
+            out.write("%-48s %s\n" % (self.symbol.name, ", ".join(info)))
 
     def __init__(self, config, dir, arch, featureset, flavour):
         self.config = config
@@ -64,7 +53,7 @@
 
         symbols, add, change, remove = self._cmp(ref, new)
 
-        ignore = self._ignore(symbols.keys())
+        ignore = self._ignore(symbols)
 
         add_effective = add - ignore
         change_effective = change - ignore
@@ -84,23 +73,17 @@
 
         if add:
             out.write("\nAdded symbols:\n")
-            t = list(add)
-            t.sort()
-            for name in t:
+            for name in sorted(add):
                 symbols[name].write(out, name in ignore)
 
         if change:
             out.write("\nChanged symbols:\n")
-            t = list(change)
-            t.sort()
-            for name in t:
+            for name in sorted(change):
                 symbols[name].write(out, name in ignore)
 
         if remove:
             out.write("\nRemoved symbols:\n")
-            t = list(remove)
-            t.sort()
-            for name in t:
+            for name in sorted(remove):
                 symbols[name].write(out, name in ignore)
 
         return ret
@@ -125,7 +108,7 @@
 
             if s_ref != s_new:
                 change.add(name)
-                symbols[name] = self.SymbolChangeInfo(s_ref, s_new)
+                symbols[name] = self.SymbolInfo(s_new, s_ref)
 
         for name in ref_names - new_names:
             remove.add(name)
@@ -133,20 +116,34 @@
 
         return symbols, add, change, remove
 
-    def _ignore(self, all):
+    def _ignore(self, symbols):
         # TODO: let config merge this lists
         configs = []
         configs.append(self.config.get(('abi', self.arch, self.featureset, self.flavour), {}))
         configs.append(self.config.get(('abi', self.arch, None, self.flavour), {}))
         configs.append(self.config.get(('abi', self.arch, self.featureset), {}))
         configs.append(self.config.get(('abi', self.arch), {}))
+        configs.append(self.config.get(('abi', None, self.featureset), {}))
         configs.append(self.config.get(('abi',), {}))
+
         ignores = set()
         for config in configs:
             ignores.update(config.get('ignore-changes', []))
+
         filtered = set()
-        for m in ignores:
-            filtered.update(fnmatch.filter(all, m))
+        for ignore in ignores:
+            type = 'symbolmatch'
+            if ':' in ignore:
+                type, ignore = ignore.split(':')
+            if type == 'symbolmatch':
+                filtered.update(fnmatch.filter(symbols.iterkeys(), ignore))
+            elif type == 'module':
+                for symbol in symbols.itervalues():
+                    symbol = symbol.symbol
+                    if symbol.module == ignore:
+                        filtered.add(symbol.name)
+            else:
+                raise NotImplementedError
         return filtered
  
 

Modified: dists/trunk/linux-2.6/debian/bin/gencontrol.py
==============================================================================
--- dists/trunk/linux-2.6/debian/bin/gencontrol.py	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/bin/gencontrol.py	Tue Apr 27 17:48:06 2010	(r15575)
@@ -143,8 +143,11 @@
 
         desc_parts = self.config.get_merge('description', arch, featureset, flavour, 'parts')
         if desc_parts:
+            # XXX: Workaround, we need to support multiple entries of the same name
+            parts = list(set(desc_parts))
+            parts.sort()
             desc = image_fields['Description']
-            for part in desc_parts[::-1]:
+            for part in parts:
                 desc.append(config_entry_description['part-long-' + part])
                 desc.append_short(config_entry_description.get('part-short-' + part, ''))
 
@@ -155,6 +158,7 @@
             image = self.templates["control.image.type-standalone"]
             build_modules = False
         elif config_entry_image['type'] == 'plain-xen':
+            raise RuntimeError
             image = self.templates["control.image.type-modulesextra"]
             build_modules = True
             config_entry_xen = self.config.merge('xen', arch, featureset, flavour)
@@ -174,6 +178,15 @@
             image = self.templates["control.image.type-%s" % config_entry_image['type']]
             #image = self.templates["control.image.type-modulesinline"]
 
+        config_entry_xen = self.config.merge('xen', arch, featureset, flavour)
+        if config_entry_xen.get('dom0-support', False):
+            p = self.process_packages(self.templates['control.xen-linux-system'], vars)
+            l = PackageRelationGroup()
+            for xen_flavour in config_entry_xen['flavours']:
+                l.append("xen-hypervisor-%s" % xen_flavour)
+            p[0]['Depends'].append(l)
+            packages_dummy.extend(p)
+
         vars.setdefault('desc', None)
 
         packages_own.append(self.process_real_image(image[0], image_fields, vars))

Modified: dists/trunk/linux-2.6/debian/bin/test-patches
==============================================================================
--- dists/trunk/linux-2.6/debian/bin/test-patches	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/bin/test-patches	Tue Apr 27 17:48:06 2010	(r15575)
@@ -8,7 +8,7 @@
 kernelabi="$(uname -r)"
 ff="${kernelabi#+([^-])-@(trunk|+([0-9]))-}"
 if [ "x$ff" != "x$kernelabi" ]; then
-    flavour="${ff#@(vserver|xen)-}"
+    flavour="${ff#@(openvz|vserver|xen)-}"
     if [ "x$flavour" != "x$ff" ]; then
 	featureset="${ff%-$flavour}"
     else

Modified: dists/trunk/linux-2.6/debian/changelog
==============================================================================
--- dists/trunk/linux-2.6/debian/changelog	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/changelog	Tue Apr 27 17:48:06 2010	(r15575)
@@ -105,6 +105,157 @@
 
  -- maximilian attems <maks at debian.org>  Thu, 25 Feb 2010 15:21:38 +0100
 
+linux-2.6 (2.6.32-11) unstable; urgency=low
+
+  [ Ben Hutchings ]
+  * [sparc] Provide io{read,write}{16,32}be() (Closes: #574421)
+  * Use libata-based drivers for most PATA controllers on all architectures
+    (previously applied only to x86)
+  * linux-base: Fix bugs and improve libata transition code:
+    - Handle duplicates in /etc/udev/rules.d/70-persistent-cd.rules
+      (Closes: #574630)
+    - Always attempt conversion if $DEBCONF_RECONFIGURE is set
+    - Never attempt conversion during a fresh installation (Closes: #576243)
+    - Convert disk IDs in crypttab (Closes: #575056)
+    - Redirect stdin and stdout of child processes to avoid interfering with
+      debconf (Closes: #574987)
+    - Report when hdparm.conf or mdadm.conf may need to be updated
+      (Closes: #576442)
+    - Where a device has both a UUID and a label, prefer to identify it by
+      UUID, consistent with fresh installations
+    - Do not use device labels including certain unsafe characters
+      (Closes: #576537)
+  * iwlwifi: Fix repeated warnings about tfds_in_queue (Closes: #574526)
+  * eeepc-laptop: Disable CPU speed control on 701 and 702 since it can
+    cause the system to hang (Closes: #559578)
+  * eeepc-laptop: Disable wireless hotplug on 1005HA, 1201N and 1005PE
+    since it disconnects the wrong device (Closes: #573607)
+  * linux-headers-*: Support postinst hooks in /etc/kernel/header_postinst.d,
+    thanks to Michael Gilbert (Closes: #569724)
+  * rt2860sta: Fix argument to linux_pci_unmap_single() (Closes: #575726)
+  * nouveau: nv50: Implement ctxprog/state generation
+  * phylib: Support PHY module autoloading (Closes: #553024)
+  * [x86] Add ramzswap driver (Closes: #573912)
+
+  [ maximilian attems]
+  * [alpha, hppa] Disable oprofile as tracing code is unsupported here.
+    (closes: #574368)
+  * Update openvz patch to 14a9729fab67. (closes: #574598, #575189)
+  * [x86]: Disable FB_INTEL. (closes: #447575, #503766, #574401)
+  * ssb: do not read SPROM if it does not exist.
+  * ssb: Avoid null pointer dereference by aboves.
+  * Add stable 2.6.32.11.
+    - MIPS: Cleanup forgotten label_module_alloc in tlbex.c (Closes: #571305) 	
+    - ath5k: fix setup for CAB queue (closes: #576213)
+    - NFS: Prevent another deadlock in nfs_release_page() (Closes: #574348)
+  * Revert to keep ABI:
+    - hrtimer: Tune hrtimer_interrupt hang logic
+
+  [ Moritz Muehlenhoff ]
+  * Add support for sh4 architecture, patch by Nobuhiro Iwamatsu
+  (Closes: #569034)
+
+  [ Bastian Blank ]
+  * Update Xen patch.
+    - Fix free interrupt problem on uni-processor machines.
+
+  [ Ian Campbell ]
+  * Include Xen hypervisor in reportbug "related to" list.
+
+ -- maximilian attems <maks at debian.org>  Mon, 05 Apr 2010 20:31:15 +0200
+
+linux-2.6 (2.6.32-10) unstable; urgency=low
+  
+  * The "Big Bang" release
+
+  [ maximilian attems]
+  * tcp: fix ICMP-RTO war.
+  * Add stable 2.6.32.10.
+    - net/via-rhine: Fix scheduling while atomic bugs (closes: #549606)
+    - HID: remove TENX iBuddy from blacklist (Closes: #551312)
+    - USB: SIS USB2VGA DRIVER: support KAIREN's USB VGA adaptor
+      USB20SVGA-MB-PLUS (Closes: #565857)
+  * Bump ABI to 4.
+  * [x86] Add openvz flavour.
+    - adds ppp support (closes: #550975)
+  * Prevent nouveau from autoloading until xserver-xorg-video-nouveau lands.
+ 
+  [ Moritz Muehlenhoff ]
+  * Enable CONFIG_KEYS_DEBUG_PROC_KEYS (Closes: #400932)
+  * Amend README.source with documentation on how to generate a 
+    source tree with all patches applied (Closes: #509156)
+  * Document needed packages for preparatory packaging
+    steps (Closes: #548028)
+
+  [ Aurelien Jarno ]
+  * Fix signal stack alignement on sparc64 (Closes: #569797)
+  
+  [ Bastian Blank ]
+  * Add support for Xen dom0 into its featureset.
+    (Closes: #499745, #503857, #504805, #505545, #506118, #507785, #509085,
+     #509733, #511963, #513835, #514511, #516223, #516374, #516635, #517048,
+     #519586, #520702, #522452, #524571, #524596, #526695, #533132, #533432,
+     #534880, #534978, #541227, #542299, #542614, #543489, #544525, #548345,
+     #554564, #554621, #559175, #559634)
+  * [alpha, amd64, i386, amd64, powerpc] Make all AGP driver built-in to
+    workaround race-condition between DRM and AGP.
+
+  [ Ben Hutchings ]
+  * drm: Apply all changes from 2.6.33 and 2.6.33.1:
+    - Add nouveau driver
+    - i915: Fix disappearing mouse pointer (Closes: #551330)
+    - i915: Restore video overlay support (Closes: #560033)
+    - i915: Fix DDC on some systems by clearing BIOS GMBUS (Closes: #567747)
+    - radeon: Enable KMS support
+  * qla2xxx: Disable MSI/MSI-X on some chips or as selected by module parameter
+    (Closes: #572322)
+    - MSI is disabled on QLA24xx chips other than QLA2432 (MSI-X already was)
+    - MSI-X is disabled if qlx2enablemsix=2
+    - MSI and MSI-X are disabled if qlx2enablemsix=0
+  * [sparc64] Make prom entry spinlock NMI safe (Closes: #572442)
+  * firmware: Correct copyright information and add source for CIS files
+  * Fix first line of kernel-doc for a few functions so that they get valid
+    manual pages
+  * Remove /usr/include/drm from linux-libc-dev; let libdrm-dev provide it
+    again
+  * [x86] Enable rtl8192su driver using external firmware
+  * [x86] Use libata-based drivers for most PATA controllers (Closes: #444182):
+    - pata_triflex replaces triflex
+    - pata_atiixp replaces atiixp
+    - pata_ns87415 replaces ns87415
+    - pata_sc1200 replaces sc1200
+    - pata_cs5536 replaces cs5536
+    - pata_amd replaces amd74xx
+    - pata_sis replaces sis5513
+    - pata_rz1000 replaces rz1000
+    - pata_efar replaces slc90e66
+    - pata_pdc202xx_old replaces pdc202xx_old
+    - pata_pdc2027x replaces pdc202xx_new
+    - pata_cs5520 replaces cs5520
+    - pata_cs5530 replaces cs5530
+    - pata_cmd64x replaces cmd64x
+    - pata_sil680 replaces siimage
+    - pata_ali replaces alim15x3
+    - pata_via replaces via82cxxx
+    - pata_serverworks replaces serverworks
+    - pata_artop replaces aec62xx
+    - pata_it821x replaces it821x
+    - ata_piix, pata_oldpiix, pata_mpiix mostly replace piix
+    - ata_generic, pata_ns87410, pata_netcell replace ide-pci-generic
+  * linux-base: Add libata transition script
+  * Hide sensitive information when including network configuration in bug
+    reports and running a different kernel version
+
+  [ Martin Michlmayr ]
+  * Add some ARM patches from git:
+    - Update mach types
+    - eSATA SheevaPlug: basic board support
+    - eSATA SheevaPlug: configure SoC SATA interface
+    - eSATA SheevaPlug: correlate MPP to SD CD and SD WP
+  * [armel/kirkwood] Enable MACH_ESATA_SHEEVAPLUG.
+
+ -- maximilian attems <maks at debian.org>  Tue, 16 Mar 2010 23:39:05 +0100
+
 linux-2.6 (2.6.32-9) unstable; urgency=high
 
   [ Ben Hutchings ]

Modified: dists/trunk/linux-2.6/debian/config/alpha/config
==============================================================================
--- dists/trunk/linux-2.6/debian/config/alpha/config	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/config/alpha/config	Tue Apr 27 17:48:06 2010	(r15575)
@@ -1,7 +1,7 @@
 ##
 ## file: arch/Kconfig
 ##
-CONFIG_OPROFILE=m
+# CONFIG_OPROFILE is not set
 
 ##
 ## file: arch/alpha/Kconfig
@@ -167,10 +167,10 @@
 ##
 ## file: drivers/char/agp/Kconfig
 ##
-CONFIG_AGP=m
-CONFIG_AGP_SIS=m
-CONFIG_AGP_VIA=m
-CONFIG_AGP_ALPHA_CORE=m
+#. Workaround
+CONFIG_AGP=y
+#. Workaround
+CONFIG_AGP_ALPHA_CORE=y
 
 ##
 ## file: drivers/char/ipmi/Kconfig
@@ -200,6 +200,14 @@
 CONFIG_DRM_SIS=m
 
 ##
+## file: drivers/gpu/drm/nouveau/Kconfig
+##
+CONFIG_DRM_NOUVEAU=m
+# CONFIG_DRM_NOUVEAU_BACKLIGHT is not set
+# CONFIG_DRM_NOUVEAU_DEBUG is not set
+CONFIG_DRM_I2C_CH7006=m
+
+##
 ## file: drivers/hid/usbhid/Kconfig
 ##
 CONFIG_USB_HID=m

Modified: dists/trunk/linux-2.6/debian/config/amd64/defines
==============================================================================
--- dists/trunk/linux-2.6/debian/config/amd64/defines	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/config/amd64/defines	Tue Apr 27 17:48:06 2010	(r15575)
@@ -1,5 +1,6 @@
 [base]
 featuresets:
+ openvz
  vserver
  xen
 flavours:

Modified: dists/trunk/linux-2.6/debian/config/amd64/xen/defines
==============================================================================
--- dists/trunk/linux-2.6/debian/config/amd64/xen/defines	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/config/amd64/xen/defines	Tue Apr 27 17:48:06 2010	(r15575)
@@ -5,7 +5,6 @@
 [image]
 initramfs-generators: initramfs-tools 
 suggests: grub
-type: plain-xen
 
 [xen]
 flavours: amd64

Modified: dists/trunk/linux-2.6/debian/config/armel/config.iop32x
==============================================================================
--- dists/trunk/linux-2.6/debian/config/armel/config.iop32x	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/config/armel/config.iop32x	Tue Apr 27 17:48:06 2010	(r15575)
@@ -73,7 +73,23 @@
 CONFIG_SATA_ULI=m
 CONFIG_SATA_VIA=m
 CONFIG_SATA_VITESSE=m
-# CONFIG_PATA_ARTOP is not set
+CONFIG_PATA_ALI=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_CS5530=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_VIA=m
 
 ##
 ## file: drivers/block/Kconfig
@@ -216,29 +232,29 @@
 CONFIG_BLK_DEV_IDETAPE=m
 CONFIG_IDE_GENERIC=m
 CONFIG_BLK_DEV_OFFBOARD=y
-CONFIG_BLK_DEV_GENERIC=m
+# CONFIG_BLK_DEV_GENERIC is not set
 CONFIG_BLK_DEV_OPTI621=m
-CONFIG_BLK_DEV_AEC62XX=m
-CONFIG_BLK_DEV_ALI15X3=m
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
 # CONFIG_BLK_DEV_AMD74XX is not set
-CONFIG_BLK_DEV_CMD64X=m
-CONFIG_BLK_DEV_TRIFLEX=m
+# CONFIG_BLK_DEV_CMD64X is not set
+# CONFIG_BLK_DEV_TRIFLEX is not set
 CONFIG_BLK_DEV_CY82C693=m
-CONFIG_BLK_DEV_CS5520=m
-CONFIG_BLK_DEV_CS5530=m
+# CONFIG_BLK_DEV_CS5520 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
 CONFIG_BLK_DEV_HPT366=m
-CONFIG_BLK_DEV_SC1200=m
+# CONFIG_BLK_DEV_SC1200 is not set
 CONFIG_BLK_DEV_PIIX=m
-CONFIG_BLK_DEV_IT821X=m
-CONFIG_BLK_DEV_NS87415=m
-CONFIG_BLK_DEV_PDC202XX_OLD=m
-CONFIG_BLK_DEV_PDC202XX_NEW=m
-CONFIG_BLK_DEV_SVWKS=m
-CONFIG_BLK_DEV_SIIMAGE=m
+# CONFIG_BLK_DEV_IT821X is not set
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+# CONFIG_BLK_DEV_SVWKS is not set
+# CONFIG_BLK_DEV_SIIMAGE is not set
 CONFIG_BLK_DEV_SL82C105=m
-CONFIG_BLK_DEV_SLC90E66=m
+# CONFIG_BLK_DEV_SLC90E66 is not set
 CONFIG_BLK_DEV_TRM290=m
-CONFIG_BLK_DEV_VIA82CXXX=m
+# CONFIG_BLK_DEV_VIA82CXXX is not set
 
 ##
 ## file: drivers/input/gameport/Kconfig

Modified: dists/trunk/linux-2.6/debian/config/armel/config.kirkwood
==============================================================================
--- dists/trunk/linux-2.6/debian/config/armel/config.kirkwood	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/config/armel/config.kirkwood	Tue Apr 27 17:48:06 2010	(r15575)
@@ -58,6 +58,7 @@
 CONFIG_MACH_RD88F6192_NAS=y
 CONFIG_MACH_RD88F6281=y
 CONFIG_MACH_SHEEVAPLUG=y
+CONFIG_MACH_ESATA_SHEEVAPLUG=y
 CONFIG_MACH_TS219=y
 CONFIG_MACH_TS41X=y
 CONFIG_MACH_OPENRD=y

Modified: dists/trunk/linux-2.6/debian/config/config
==============================================================================
--- dists/trunk/linux-2.6/debian/config/config	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/config/config	Tue Apr 27 17:48:06 2010	(r15575)
@@ -125,7 +125,7 @@
 # CONFIG_PATA_HPT3X2N is not set
 # CONFIG_PATA_HPT3X3 is not set
 # CONFIG_PATA_ISAPNP is not set
-# CONFIG_PATA_IT821X is not set
+CONFIG_PATA_IT821X=m
 # CONFIG_PATA_IT8213 is not set
 CONFIG_PATA_JMICRON=m
 # CONFIG_PATA_LEGACY is not set
@@ -330,15 +330,15 @@
 CONFIG_DRM_SAVAGE=m
 
 ##
-## file: drivers/gpu/drm/radeon/Kconfig
+## file: drivers/gpu/drm/nouveau/Kconfig
 ##
-# CONFIG_DRM_RADEON_KMS is not set
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
 
 ##
 ## file: drivers/gpu/drm/radeon/Kconfig
 ##
-CONFIG_DRM_NOUVEAU=m
-CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+# CONFIG_DRM_RADEON_KMS is not set
 
 ##
 ## file: drivers/gpu/drm/vmwgfx/Kconfig
@@ -459,7 +459,7 @@
 # CONFIG_BLK_DEV_JMICRON is not set
 CONFIG_BLK_DEV_IT8172=m
 CONFIG_BLK_DEV_IT8213=m
-CONFIG_BLK_DEV_IT821X=m
+# CONFIG_BLK_DEV_IT821X is not set
 CONFIG_BLK_DEV_TC86C001=m
 
 ##
@@ -2255,11 +2255,6 @@
 # CONFIG_LINE6_USB is not set
 
 ##
-## file: drivers/staging/mimio/Kconfig
-##
-# CONFIG_INPUT_MIMIO is not set
-
-##
 ## file: drivers/staging/otus/Kconfig
 ##
 # CONFIG_OTUS is not set
@@ -2586,7 +2581,7 @@
 # CONFIG_FB_UVESA is not set
 # CONFIG_FB_NVIDIA_DEBUG is not set
 # CONFIG_FB_INTEL_DEBUG is not set
-CONFIG_FB_INTEL_I2C=y
+# CONFIG_FB_INTEL_I2C is not set
 CONFIG_FB_S3=m
 CONFIG_FB_VIA=m
 CONFIG_FB_3DFX=m
@@ -3951,7 +3946,7 @@
 ## file: security/Kconfig
 ##
 CONFIG_KEYS=y
-# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 CONFIG_SECURITY=y
 CONFIG_SECURITY_NETWORK=y
 CONFIG_SECURITY_NETWORK_XFRM=y
@@ -4111,5 +4106,6 @@
 ##
 ## file: unknown
 ##
+# CONFIG_INPUT_MIMIO is not set
 CONFIG_LBD=y
 

Modified: dists/trunk/linux-2.6/debian/config/defines
==============================================================================
--- dists/trunk/linux-2.6/debian/config/defines	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/config/defines	Tue Apr 27 17:48:06 2010	(r15575)
@@ -20,9 +20,13 @@
 compiler: gcc-4.3
 featuresets:
  none
+ openvz
  vserver
  xen
 
+[featureset-openvz_base]
+enabled: false
+
 [featureset-vserver_base]
 enabled: false
 
@@ -37,10 +41,6 @@
 initramfs-generators: initramfs-tools initramfs-fallback
 type: plain
 
-[xen]
-versions:
- 3.2-1
-
 [commands-image-initramfs-generators]
 initramfs-tools: update-initramfs
 

Copied: dists/trunk/linux-2.6/debian/config/featureset-openvz/config (from r15489, dists/sid/linux-2.6/debian/config/featureset-openvz/config)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/trunk/linux-2.6/debian/config/featureset-openvz/config	Tue Apr 27 17:48:06 2010	(r15575, copy of r15489, dists/sid/linux-2.6/debian/config/featureset-openvz/config)
@@ -0,0 +1,29 @@
+CONFIG_VZ_FAIRSCHED=y
+CONFIG_VE=y
+CONFIG_VE_CALLS=m
+CONFIG_VE_NETDEV=m
+CONFIG_VE_ETHDEV=m
+CONFIG_VZ_DEV=m
+CONFIG_VE_IPTABLES=y
+CONFIG_VZ_WDOG=m
+CONFIG_VZ_CHECKPOINT=m
+CONFIG_SIM_FS=m
+CONFIG_VZ_QUOTA=m
+# CONFIG_VZ_QUOTA_UNLOAD is not set
+CONFIG_VZ_QUOTA_UGID=y
+CONFIG_SYSRQ_DEBUG=y
+CONFIG_BEANCOUNTERS=y
+CONFIG_BC_RSS_ACCOUNTING=y
+CONFIG_BC_IO_ACCOUNTING=y
+CONFIG_BC_IO_SCHED=y
+CONFIG_BC_SWAP_ACCOUNTING=y
+CONFIG_BC_PROC=y
+# CONFIG_BC_DEBUG is not set
+
+# CONFIG_SYSFS_DEPRECATED is not set
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+# CONFIG_SYSFS_DEPRECATED_DYN is not set
+
+# buggy
+# CONFIG_NF_CONNTRACK_IPV6 is not set
+

Copied: dists/trunk/linux-2.6/debian/config/featureset-openvz/defines (from r15489, dists/sid/linux-2.6/debian/config/featureset-openvz/defines)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/trunk/linux-2.6/debian/config/featureset-openvz/defines	Tue Apr 27 17:48:06 2010	(r15575, copy of r15489, dists/sid/linux-2.6/debian/config/featureset-openvz/defines)
@@ -0,0 +1,10 @@
+[abi]
+ignore-changes: *
+
+[description]
+part-long-openvz: This kernel includes support for OpenVZ container-based virtualization.
+part-short-openvz: OpenVZ support
+parts: openvz
+
+[image]
+depends: vzctl

Modified: dists/trunk/linux-2.6/debian/config/featureset-xen/config
==============================================================================
--- dists/trunk/linux-2.6/debian/config/featureset-xen/config	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/config/featureset-xen/config	Tue Apr 27 17:48:06 2010	(r15575)
@@ -1,20 +1,11 @@
-CONFIG_XEN=y
-CONFIG_XEN_PRIVILEGED_GUEST=y
+CONFIG_XEN_DOM0=y
 CONFIG_XEN_BACKEND=y
 CONFIG_XEN_BLKDEV_BACKEND=y
 CONFIG_XEN_BLKDEV_TAP=m
-CONFIG_XEN_BLKDEV_FRONTEND=y
-CONFIG_HVC_XEN=y
 CONFIG_XEN_NETDEV_BACKEND=y
-CONFIG_XEN_NETDEV_FRONTEND=y
-CONFIG_XEN_NETDEV_LOOPBACK=m
 CONFIG_XEN_PCIDEV_BACKEND=y
 CONFIG_XEN_PCIDEV_BACKEND_VPCI=y
-CONFIG_XEN_PCIDEV_FRONTEND=y
-# CONFIG_XEN_DISABLE_SERIAL is not set
-CONFIG_XEN_SCSI_BACKEND=m
-CONFIG_XEN_SCSI_FRONTEND=m
-# CONFIG_XEN_COMPAT_030002_AND_LATER is not set
-# CONCIF_XEN_COMPAT_030004_AND_LATER is not set
-CONFIG_XEN_COMPAT_030100_AND_LATER=y
-# CONFIG_XEN_COMPAT_LATEST_ONLY is not set
+# CONFIG_XEN_PCIDEV_BACKEND_PASS is not set
+# CONFIG_XEN_PCIDEV_BACKEND_SLOT is not set
+# CONFIG_XEN_PCIDEV_BE_DEBUG is not set
+CONFIG_XEN_GNTDEV=y

Modified: dists/trunk/linux-2.6/debian/config/featureset-xen/defines
==============================================================================
--- dists/trunk/linux-2.6/debian/config/featureset-xen/defines	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/config/featureset-xen/defines	Tue Apr 27 17:48:06 2010	(r15575)
@@ -1,5 +1,8 @@
 [description]
-part-long-xenold: This kernel only runs on a Xen hypervisor.
+parts: xen
+part-long-xen: This kernel also runs on a Xen hypervisor.
  It supports both privileged (dom0) and unprivileged (domU) operation.
-part-short-xenold: oldstyle Xen support
-parts: xenold
+part-short-xen: Xen dom0 support
+
+[xen]
+dom0-support: true

Modified: dists/trunk/linux-2.6/debian/config/hppa/config
==============================================================================
--- dists/trunk/linux-2.6/debian/config/hppa/config	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/config/hppa/config	Tue Apr 27 17:48:06 2010	(r15575)
@@ -1,7 +1,7 @@
 ##
 ## file: arch/Kconfig
 ##
-CONFIG_OPROFILE=m
+# CONFIG_OPROFILE is not set
 
 ##
 ## file: arch/parisc/Kconfig

Modified: dists/trunk/linux-2.6/debian/config/i386/defines
==============================================================================
--- dists/trunk/linux-2.6/debian/config/i386/defines	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/config/i386/defines	Tue Apr 27 17:48:06 2010	(r15575)
@@ -1,5 +1,6 @@
 [base]
 featuresets:
+ openvz
  vserver
  xen
 flavours:

Modified: dists/trunk/linux-2.6/debian/config/i386/xen/defines
==============================================================================
--- dists/trunk/linux-2.6/debian/config/i386/xen/defines	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/config/i386/xen/defines	Tue Apr 27 17:48:06 2010	(r15575)
@@ -5,7 +5,6 @@
 [image]
 initramfs-generators: initramfs-tools
 suggests: grub
-type: plain-xen
 
 [xen]
 flavours:

Modified: dists/trunk/linux-2.6/debian/config/ia64/config
==============================================================================
--- dists/trunk/linux-2.6/debian/config/ia64/config	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/config/ia64/config	Tue Apr 27 17:48:06 2010	(r15575)
@@ -52,6 +52,23 @@
 ## file: drivers/ata/Kconfig
 ##
 CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_CS5530=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_VIA=m
 
 ##
 ## file: drivers/block/Kconfig
@@ -102,12 +119,14 @@
 ##
 ## file: drivers/char/agp/Kconfig
 ##
-CONFIG_AGP=m
-CONFIG_AGP_SIS=m
-CONFIG_AGP_VIA=m
-CONFIG_AGP_I460=m
-CONFIG_AGP_HP_ZX1=m
-CONFIG_AGP_SGI_TIOCA=m
+#. Workaround
+CONFIG_AGP=y
+#. Workaround
+CONFIG_AGP_I460=y
+#. Workaround
+CONFIG_AGP_HP_ZX1=y
+#. Workaround
+CONFIG_AGP_SGI_TIOCA=y
 
 ##
 ## file: drivers/char/ipmi/Kconfig
@@ -136,6 +155,14 @@
 CONFIG_DRM_SIS=m
 
 ##
+## file: drivers/gpu/drm/nouveau/Kconfig
+##
+CONFIG_DRM_NOUVEAU=m
+# CONFIG_DRM_NOUVEAU_BACKLIGHT is not set
+# CONFIG_DRM_NOUVEAU_DEBUG is not set
+CONFIG_DRM_I2C_CH7006=m
+
+##
 ## file: drivers/hid/usbhid/Kconfig
 ##
 CONFIG_USB_HID=m
@@ -221,28 +248,28 @@
 CONFIG_BLK_DEV_IDETAPE=m
 CONFIG_IDE_GENERIC=m
 # CONFIG_BLK_DEV_IDEPNP is not set
-CONFIG_BLK_DEV_GENERIC=m
+# CONFIG_BLK_DEV_GENERIC is not set
 CONFIG_BLK_DEV_OPTI621=m
-CONFIG_BLK_DEV_AEC62XX=m
-CONFIG_BLK_DEV_ALI15X3=m
-CONFIG_BLK_DEV_AMD74XX=m
-CONFIG_BLK_DEV_CMD64X=m
-CONFIG_BLK_DEV_TRIFLEX=m
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+# CONFIG_BLK_DEV_CMD64X is not set
+# CONFIG_BLK_DEV_TRIFLEX is not set
 CONFIG_BLK_DEV_CY82C693=m
-CONFIG_BLK_DEV_CS5520=m
-CONFIG_BLK_DEV_CS5530=m
+# CONFIG_BLK_DEV_CS5520 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
 CONFIG_BLK_DEV_HPT366=m
-CONFIG_BLK_DEV_SC1200=m
+# CONFIG_BLK_DEV_SC1200 is not set
 CONFIG_BLK_DEV_PIIX=m
-CONFIG_BLK_DEV_NS87415=m
-CONFIG_BLK_DEV_PDC202XX_OLD=m
-CONFIG_BLK_DEV_PDC202XX_NEW=m
-CONFIG_BLK_DEV_SVWKS=m
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+# CONFIG_BLK_DEV_SVWKS is not set
 CONFIG_BLK_DEV_SGIIOC4=m
-CONFIG_BLK_DEV_SIIMAGE=m
-CONFIG_BLK_DEV_SLC90E66=m
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
 CONFIG_BLK_DEV_TRM290=m
-CONFIG_BLK_DEV_VIA82CXXX=m
+# CONFIG_BLK_DEV_VIA82CXXX is not set
 
 ##
 ## file: drivers/ieee1394/Kconfig

Modified: dists/trunk/linux-2.6/debian/config/kernelarch-x86/config
==============================================================================
--- dists/trunk/linux-2.6/debian/config/kernelarch-x86/config	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/config/kernelarch-x86/config	Tue Apr 27 17:48:06 2010	(r15575)
@@ -34,7 +34,6 @@
 CONFIG_MICROCODE_AMD=y
 CONFIG_X86_MSR=m
 CONFIG_X86_CPUID=m
-# CONFIG_X86_CPU_DEBUG is not set
 CONFIG_NODES_SHIFT=6
 # CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
 CONFIG_X86_RESERVE_LOW_64K=y
@@ -285,11 +284,16 @@
 ##
 ## file: drivers/char/agp/Kconfig
 ##
-CONFIG_AGP=m
-CONFIG_AGP_AMD64=m
-CONFIG_AGP_INTEL=m
-CONFIG_AGP_SIS=m
-CONFIG_AGP_VIA=m
+#. Workaround
+CONFIG_AGP=y
+#. Workaround
+CONFIG_AGP_AMD64=y
+#. Workaround
+CONFIG_AGP_INTEL=y
+#. Workaround
+CONFIG_AGP_SIS=y
+#. Workaround
+CONFIG_AGP_VIA=y
 
 ##
 ## file: drivers/char/hw_random/Kconfig
@@ -388,6 +392,14 @@
 CONFIG_DRM_SIS=m
 
 ##
+## file: drivers/gpu/drm/nouveau/Kconfig
+##
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+# CONFIG_DRM_NOUVEAU_DEBUG is not set
+CONFIG_DRM_I2C_CH7006=m
+
+##
 ## file: drivers/hid/usbhid/Kconfig
 ##
 CONFIG_USB_HID=m
@@ -480,11 +492,30 @@
 # CONFIG_BLK_DEV_CMD640_ENHANCED is not set
 CONFIG_BLK_DEV_IDEPNP=y
 # CONFIG_BLK_DEV_OFFBOARD is not set
+# CONFIG_BLK_DEV_GENERIC is not set
 CONFIG_BLK_DEV_OPTI621=m
+# CONFIG_BLK_DEV_RZ1000 is not set
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+# CONFIG_BLK_DEV_ATIIXP is not set
+# CONFIG_BLK_DEV_CMD64X is not set
+# CONFIG_BLK_DEV_TRIFLEX is not set
 CONFIG_BLK_DEV_CY82C693=m
+# CONFIG_BLK_DEV_CS5520 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
 CONFIG_BLK_DEV_HPT366=m
+# CONFIG_BLK_DEV_SC1200 is not set
 CONFIG_BLK_DEV_PIIX=m
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+# CONFIG_BLK_DEV_SVWKS is not set
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SIS5513 is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
 CONFIG_BLK_DEV_TRM290=m
+# CONFIG_BLK_DEV_VIA82CXXX is not set
 
 ##
 ## file: drivers/input/Kconfig
@@ -1209,7 +1240,7 @@
 # CONFIG_FB_RIVA_DEBUG is not set
 CONFIG_FB_LE80578=m
 CONFIG_FB_CARILLO_RANCH=m
-CONFIG_FB_INTEL=m
+# CONFIG_FB_INTEL is not set
 CONFIG_FB_MATROX=m
 CONFIG_FB_MATROX_MILLENIUM=y
 CONFIG_FB_MATROX_MYSTIQUE=y
@@ -1498,4 +1529,5 @@
 ##
 # CONFIG_KVM_TRACE is not set
 CONFIG_NUMA_MIGRATE_IRQ_DESC=y
+# CONFIG_X86_CPU_DEBUG is not set
 

Modified: dists/trunk/linux-2.6/debian/config/kernelarch-x86/config-arch-32
==============================================================================
--- dists/trunk/linux-2.6/debian/config/kernelarch-x86/config-arch-32	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/config/kernelarch-x86/config-arch-32	Tue Apr 27 17:48:06 2010	(r15575)
@@ -83,7 +83,7 @@
 ## file: drivers/ata/Kconfig
 ##
 # CONFIG_PATA_CS5535 is not set
-# CONFIG_PATA_CS5536 is not set
+CONFIG_PATA_CS5536=m
 
 ##
 ## file: drivers/atm/Kconfig
@@ -125,12 +125,18 @@
 ##
 ## file: drivers/char/agp/Kconfig
 ##
-CONFIG_AGP_ALI=m
-CONFIG_AGP_ATI=m
-CONFIG_AGP_AMD=m
-CONFIG_AGP_NVIDIA=m
-CONFIG_AGP_SWORKS=m
-CONFIG_AGP_EFFICEON=m
+#. Workaround
+CONFIG_AGP_ALI=y
+#. Workaround
+CONFIG_AGP_ATI=y
+#. Workaround
+CONFIG_AGP_AMD=y
+#. Workaround
+CONFIG_AGP_NVIDIA=y
+#. Workaround
+CONFIG_AGP_SWORKS=y
+#. Workaround
+CONFIG_AGP_EFFICEON=y
 
 ##
 ## file: drivers/crypto/Kconfig
@@ -148,7 +154,7 @@
 ## file: drivers/ide/Kconfig
 ##
 CONFIG_BLK_DEV_CS5535=m
-CONFIG_BLK_DEV_CS5536=m
+# CONFIG_BLK_DEV_CS5536 is not set
 # CONFIG_BLK_DEV_4DRIVES is not set
 # CONFIG_BLK_DEV_ALI14XX is not set
 # CONFIG_BLK_DEV_DTC2278 is not set

Modified: dists/trunk/linux-2.6/debian/config/mips/config.4kc-malta
==============================================================================
--- dists/trunk/linux-2.6/debian/config/mips/config.4kc-malta	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/config/mips/config.4kc-malta	Tue Apr 27 17:48:06 2010	(r15575)
@@ -120,7 +120,7 @@
 CONFIG_SATA_AHCI=y
 CONFIG_SATA_SIL24=y
 # CONFIG_SATA_SVW is not set
-# CONFIG_ATA_PIIX is not set
+CONFIG_ATA_PIIX=y
 CONFIG_SATA_MV=y
 # CONFIG_SATA_NV is not set
 # CONFIG_PDC_ADMA is not set
@@ -132,7 +132,15 @@
 # CONFIG_SATA_ULI is not set
 # CONFIG_SATA_VIA is not set
 # CONFIG_SATA_VITESSE is not set
-# CONFIG_ATA_GENERIC is not set
+CONFIG_PATA_CMD64X=y
+CONFIG_ATA_GENERIC=y
+CONFIG_PATA_MPIIX=y
+CONFIG_PATA_OLDPIIX=y
+CONFIG_PATA_NETCELL=y
+CONFIG_PATA_NS87410=y
+CONFIG_PATA_PDC_OLD=y
+CONFIG_PATA_PDC2027X=y
+CONFIG_PATA_SIL680=y
 
 ##
 ## file: drivers/atm/Kconfig
@@ -260,6 +268,14 @@
 CONFIG_DRM_SAVAGE=m
 
 ##
+## file: drivers/gpu/drm/nouveau/Kconfig
+##
+CONFIG_DRM_NOUVEAU=m
+# CONFIG_DRM_NOUVEAU_BACKLIGHT is not set
+# CONFIG_DRM_NOUVEAU_DEBUG is not set
+CONFIG_DRM_I2C_CH7006=m
+
+##
 ## file: drivers/hwmon/Kconfig
 ##
 CONFIG_HWMON=y
@@ -352,12 +368,12 @@
 # CONFIG_IDE_TASK_IOCTL is not set
 CONFIG_IDE_GENERIC=y
 # CONFIG_BLK_DEV_OFFBOARD is not set
-CONFIG_BLK_DEV_GENERIC=y
+# CONFIG_BLK_DEV_GENERIC is not set
 # CONFIG_BLK_DEV_OPTI621 is not set
 # CONFIG_BLK_DEV_AEC62XX is not set
 # CONFIG_BLK_DEV_ALI15X3 is not set
 # CONFIG_BLK_DEV_AMD74XX is not set
-CONFIG_BLK_DEV_CMD64X=y
+# CONFIG_BLK_DEV_CMD64X is not set
 # CONFIG_BLK_DEV_TRIFLEX is not set
 # CONFIG_BLK_DEV_CY82C693 is not set
 # CONFIG_BLK_DEV_CS5520 is not set
@@ -368,10 +384,10 @@
 CONFIG_BLK_DEV_PIIX=y
 # CONFIG_BLK_DEV_IT821X is not set
 # CONFIG_BLK_DEV_NS87415 is not set
-CONFIG_BLK_DEV_PDC202XX_OLD=y
-CONFIG_BLK_DEV_PDC202XX_NEW=y
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
 # CONFIG_BLK_DEV_SVWKS is not set
-CONFIG_BLK_DEV_SIIMAGE=y
+# CONFIG_BLK_DEV_SIIMAGE is not set
 # CONFIG_BLK_DEV_SLC90E66 is not set
 # CONFIG_BLK_DEV_TRM290 is not set
 # CONFIG_BLK_DEV_VIA82CXXX is not set

Modified: dists/trunk/linux-2.6/debian/config/mips/config.5kc-malta
==============================================================================
--- dists/trunk/linux-2.6/debian/config/mips/config.5kc-malta	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/config/mips/config.5kc-malta	Tue Apr 27 17:48:06 2010	(r15575)
@@ -105,7 +105,7 @@
 CONFIG_SATA_AHCI=y
 CONFIG_SATA_SIL24=y
 # CONFIG_SATA_SVW is not set
-# CONFIG_ATA_PIIX is not set
+CONFIG_ATA_PIIX=y
 CONFIG_SATA_MV=y
 # CONFIG_SATA_NV is not set
 # CONFIG_PDC_ADMA is not set
@@ -118,7 +118,15 @@
 # CONFIG_SATA_VIA is not set
 # CONFIG_SATA_VITESSE is not set
 CONFIG_SATA_INIC162X=m
-# CONFIG_ATA_GENERIC is not set
+CONFIG_PATA_CMD64X=y
+CONFIG_ATA_GENERIC=y
+CONFIG_PATA_MPIIX=y
+CONFIG_PATA_OLDPIIX=y
+CONFIG_PATA_NETCELL=y
+CONFIG_PATA_NS87410=y
+CONFIG_PATA_PDC_OLD=y
+CONFIG_PATA_PDC2027X=y
+CONFIG_PATA_SIL680=y
 
 ##
 ## file: drivers/atm/Kconfig
@@ -245,6 +253,14 @@
 CONFIG_DRM_SAVAGE=m
 
 ##
+## file: drivers/gpu/drm/nouveau/Kconfig
+##
+CONFIG_DRM_NOUVEAU=m
+# CONFIG_DRM_NOUVEAU_BACKLIGHT is not set
+# CONFIG_DRM_NOUVEAU_DEBUG is not set
+CONFIG_DRM_I2C_CH7006=m
+
+##
 ## file: drivers/hwmon/Kconfig
 ##
 CONFIG_HWMON=y
@@ -343,12 +359,12 @@
 CONFIG_IDE_GENERIC=y
 CONFIG_IDEPCI_PCIBUS_ORDER=y
 # CONFIG_BLK_DEV_OFFBOARD is not set
-CONFIG_BLK_DEV_GENERIC=y
+# CONFIG_BLK_DEV_GENERIC is not set
 # CONFIG_BLK_DEV_OPTI621 is not set
 # CONFIG_BLK_DEV_AEC62XX is not set
 # CONFIG_BLK_DEV_ALI15X3 is not set
 # CONFIG_BLK_DEV_AMD74XX is not set
-CONFIG_BLK_DEV_CMD64X=y
+# CONFIG_BLK_DEV_CMD64X is not set
 # CONFIG_BLK_DEV_TRIFLEX is not set
 # CONFIG_BLK_DEV_CY82C693 is not set
 # CONFIG_BLK_DEV_CS5520 is not set
@@ -359,10 +375,10 @@
 CONFIG_BLK_DEV_PIIX=y
 # CONFIG_BLK_DEV_IT821X is not set
 # CONFIG_BLK_DEV_NS87415 is not set
-CONFIG_BLK_DEV_PDC202XX_OLD=y
-CONFIG_BLK_DEV_PDC202XX_NEW=y
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
 # CONFIG_BLK_DEV_SVWKS is not set
-CONFIG_BLK_DEV_SIIMAGE=y
+# CONFIG_BLK_DEV_SIIMAGE is not set
 # CONFIG_BLK_DEV_SLC90E66 is not set
 # CONFIG_BLK_DEV_TRM290 is not set
 # CONFIG_BLK_DEV_VIA82CXXX is not set

Modified: dists/trunk/linux-2.6/debian/config/mips/config.sb1a-bcm91480b
==============================================================================
--- dists/trunk/linux-2.6/debian/config/mips/config.sb1a-bcm91480b	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/config/mips/config.sb1a-bcm91480b	Tue Apr 27 17:48:06 2010	(r15575)
@@ -136,6 +136,21 @@
 CONFIG_SATA_ULI=m
 CONFIG_SATA_VIA=m
 CONFIG_SATA_VITESSE=m
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CS5530=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_VIA=m
 
 ##
 ## file: drivers/block/Kconfig
@@ -283,26 +298,26 @@
 # CONFIG_BLK_DEV_OFFBOARD is not set
 # CONFIG_BLK_DEV_GENERIC is not set
 # CONFIG_BLK_DEV_OPTI621 is not set
-CONFIG_BLK_DEV_AEC62XX=m
-CONFIG_BLK_DEV_ALI15X3=m
-CONFIG_BLK_DEV_AMD74XX=m
-CONFIG_BLK_DEV_CMD64X=m
-CONFIG_BLK_DEV_TRIFLEX=m
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+# CONFIG_BLK_DEV_CMD64X is not set
+# CONFIG_BLK_DEV_TRIFLEX is not set
 CONFIG_BLK_DEV_CY82C693=m
 # CONFIG_BLK_DEV_CS5520 is not set
-CONFIG_BLK_DEV_CS5530=m
+# CONFIG_BLK_DEV_CS5530 is not set
 CONFIG_BLK_DEV_HPT366=m
-CONFIG_BLK_DEV_SC1200=m
+# CONFIG_BLK_DEV_SC1200 is not set
 CONFIG_BLK_DEV_PIIX=m
-CONFIG_BLK_DEV_IT821X=m
-CONFIG_BLK_DEV_NS87415=m
-CONFIG_BLK_DEV_PDC202XX_OLD=m
-CONFIG_BLK_DEV_PDC202XX_NEW=m
-CONFIG_BLK_DEV_SVWKS=m
-CONFIG_BLK_DEV_SIIMAGE=m
-CONFIG_BLK_DEV_SLC90E66=m
+# CONFIG_BLK_DEV_IT821X is not set
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+# CONFIG_BLK_DEV_SVWKS is not set
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
 CONFIG_BLK_DEV_TRM290=m
-CONFIG_BLK_DEV_VIA82CXXX=m
+# CONFIG_BLK_DEV_VIA82CXXX is not set
 
 ##
 ## file: drivers/infiniband/Kconfig

Modified: dists/trunk/linux-2.6/debian/config/powerpc/config
==============================================================================
--- dists/trunk/linux-2.6/debian/config/powerpc/config	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/config/powerpc/config	Tue Apr 27 17:48:06 2010	(r15575)
@@ -152,10 +152,10 @@
 ##
 ## file: drivers/char/agp/Kconfig
 ##
-CONFIG_AGP=m
-CONFIG_AGP_SIS=m
-CONFIG_AGP_VIA=m
-CONFIG_AGP_UNINORTH=m
+#. Workaround
+CONFIG_AGP=y
+#. Workaround
+CONFIG_AGP_UNINORTH=y
 
 ##
 ## file: drivers/char/ipmi/Kconfig
@@ -178,6 +178,14 @@
 # CONFIG_DRM_SIS is not set
 
 ##
+## file: drivers/gpu/drm/nouveau/Kconfig
+##
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+# CONFIG_DRM_NOUVEAU_DEBUG is not set
+CONFIG_DRM_I2C_CH7006=m
+
+##
 ## file: drivers/hid/usbhid/Kconfig
 ##
 CONFIG_USB_HID=m

Modified: dists/trunk/linux-2.6/debian/config/sparc/config
==============================================================================
--- dists/trunk/linux-2.6/debian/config/sparc/config	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/config/sparc/config	Tue Apr 27 17:48:06 2010	(r15575)
@@ -57,6 +57,14 @@
 CONFIG_DRM_MGA=m
 
 ##
+## file: drivers/gpu/drm/nouveau/Kconfig
+##
+CONFIG_DRM_NOUVEAU=m
+# CONFIG_DRM_NOUVEAU_BACKLIGHT is not set
+# CONFIG_DRM_NOUVEAU_DEBUG is not set
+CONFIG_DRM_I2C_CH7006=m
+
+##
 ## file: drivers/hid/usbhid/Kconfig
 ##
 CONFIG_USB_HID=y

Copied: dists/trunk/linux-2.6/debian/linux-base.postinst (from r15489, dists/sid/linux-2.6/debian/linux-base.postinst)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/trunk/linux-2.6/debian/linux-base.postinst	Tue Apr 27 17:48:06 2010	(r15575, copy of r15489, dists/sid/linux-2.6/debian/linux-base.postinst)
@@ -0,0 +1,1539 @@
+#!/usr/bin/perl
+
+# Copyright 2009-2010 Ben Hutchings
+#
+# 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
+# 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 program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+use strict;
+use warnings;
+use AptPkg::Config;
+use Debconf::Client::ConfModule ':all';
+use FileHandle;
+use POSIX ();
+use UUID;
+
+# Since debconf clients get their standard input and output redirected
+# to the debconf front-end, we need to redirect them again before
+# running any other program.
+sub _system {
+    my $pid = fork();
+    die "$!" unless defined($pid);
+    if ($pid == 0) {
+       # </dev/null
+       POSIX::close(0);
+       POSIX::open('/dev/null', POSIX::O_RDONLY) or die "$!";
+       # >&2
+       POSIX::dup2(2, 1) or die "$!";
+       exec(@_);
+       exit(255); # usual exit code for failed exec
+    } else {
+       waitpid($pid, 0);
+       # The built-in system() function does this substitution
+       if (POSIX::WIFEXITED($?) && POSIX::WEXITSTATUS($?) == 255) {
+	   return -1;
+       } else {
+	   return $?;
+       }
+    }
+}
+
+package DebianKernel::DiskId;
+
+### utility
+
+sub id_to_path {
+    my ($id) = @_;
+    $id =~ m|^/|
+	or $id =~ s{^(LABEL|UUID)=}{'/dev/disk/by-' . lc($1) . '/'}e
+	or die "Could not map id $id to path";
+    return $id;
+}
+
+### /etc/fstab
+
+sub fstab_next {
+    # Based on my_getmntent() in mount_mntent.c
+
+    my ($file) = @_;
+    my $text = <$file>;
+    unless (defined($text)) {
+	return ();
+    }
+
+    my $line = $text;
+    $line =~ s/\r?\n$//;
+    $line =~ s/^[ \t]*//;
+    if ($line =~ /^(#|$)/) {
+	return ($text);
+    } else {
+	return ($text,
+		map({ s/\\([0-7][0-7][0-7])/chr(oct($1) & 0xff)/eg; $_; }
+		    split(/[ \t]+/, $line)));
+    }
+}
+
+sub fstab_list {
+    my ($file) = @_;
+    my @bdevs;
+    while (1) {
+	my ($text, $bdev) = fstab_next($file);
+	last unless defined($text);
+	if (defined($bdev)) {
+	    push @bdevs, $bdev;
+	}
+    }
+    return @bdevs;
+}
+
+sub fstab_update {
+    my ($old, $new, $map) = @_;
+    while (1) {
+	my ($text, $bdev) = fstab_next($old);
+	last unless defined($text);
+	if (defined($bdev) && defined(my $id = $map->{$bdev})) {
+	    $text =~ s/^(\s*\S+)(.*)/# $1$2\n$id$2/;
+	}
+	$new->print("$text");
+    }
+}
+
+### Kernel parameters
+
+sub kernel_list {
+    my ($cmd_line) = @_;
+    return ($cmd_line =~ /\broot=(\S+)/) ? ($1) : ();
+}
+
+sub kernel_update {
+    my ($cmd_line, $map) = @_;
+    if ($cmd_line =~ /\broot=(\S+)/ && defined(my $id = $map->{$1})) {
+	$cmd_line =~ s/\broot=(\S+)/root=$id/;
+	return $cmd_line;
+    } else {
+	return undef;
+    }
+}
+
+### shell script variable assignment
+
+# Maintains enough context to find statement boundaries, and can parse
+# variable definitions that do not include substitutions.  I think.
+
+sub shellvars_next {
+    my ($file) = @_;
+    my $text = '';
+    my @context = ('');
+    my $first = 1;
+    my $in_value = 0;
+    my ($name, $value);
+    my $unhandled = 0;
+
+  LINE:
+    while (<$file>) {
+	$text .= $_;
+
+	# variable assignment
+	if ($first && m/^\s*([A-Za-z_][A-Za-z0-9_]*)=/g) {
+	    $name = $1;
+	    $value = '';
+	    $in_value = 1;
+	}
+
+	while (/\G(.*?)([#`'"(){}\s]|\\.|\$[({]?)/gs) {
+	    my $end_pos = pos;
+	    my $special = $2;
+
+	    if ($in_value) {
+		# add non-special characters to the value verbatim
+		$value .= $1;
+	    }
+
+	    if ($context[$#context] eq '') {
+		# space outside quotes or brackets ends the value
+		if ($special =~ /^\s/) {
+		    $in_value = 0;
+		    if ($special eq "\n") {
+			last LINE;
+		    }
+		}
+		# something else after the value means this is a command
+		# with an environment override, not a variable definition
+		elsif (defined($name) && !$in_value) {
+		    $unhandled = 1;
+		}
+	    }
+
+	    # in single-quoted string
+	    if ($context[$#context] eq "'") {
+		# only the terminating single-quote is special
+		if ($special eq "'") {
+		    pop @context;
+		} else {
+		    $value .= $special;
+		}
+	    }
+	    # backslash escape
+	    elsif ($special =~ /^\\/) {
+		if ($in_value && $special ne "\\\n") {
+		    $value .= substr($special, 1, 1);
+		}
+	    }
+	    # in backtick substitution
+	    elsif ($context[$#context] eq '`') {
+		# backtick does not participate in nesting, so only the
+		# terminating backtick should be considered special
+		if ($special eq '`') {
+		    pop @context;
+		}
+	    }
+	    # comment
+	    elsif ($context[$#context] !~ /^['"]/ && $special eq '#') {
+		# ignore rest of the physical line, except the new-line
+		pos = $end_pos;
+		/\G.*/g;
+		next;
+	    }
+	    # start of backtick substitution
+	    elsif ($special eq '`') {
+		push @context, '`';
+		$unhandled = 1;
+	    }
+	    # start of single/double-quoted string
+	    elsif ($special =~ /^['"]/ && $context[$#context] !~ /^['"]/) {
+		push @context, $special;
+	    }
+	    # end of double-quoted string
+	    elsif ($special eq '"' && $context[$#context] eq '"') {
+		pop @context;
+	    }
+	    # open bracket
+	    elsif ($special =~ /^\$?\(/) {
+		push @context, ')';
+		$unhandled = 1;
+	    } elsif ($special =~ /^\$\{/) {
+		push @context, '}';
+		$unhandled = 1;
+	    }
+	    # close bracket
+	    elsif ($special =~ /^[)}]/ && $special eq $context[$#context]) {
+		pop @context;
+	    }
+	    # variable substitution
+	    elsif ($special eq '$') {
+		$unhandled = 1;
+	    }
+	    # not a special character in this context (or a syntax error)
+	    else {
+		if ($in_value) {
+		    $value .= $special;
+		}
+	    }
+
+	    pos = $end_pos;
+	}
+
+	$first = 0;
+    }
+
+    if ($text eq '') {
+	return ();
+    } elsif ($unhandled) {
+	return ($text);
+    } else {
+	return ($text, $name, $value);
+    }
+}
+
+sub shellvars_quote {
+    my ($value) = @_;
+    $value =~ s/'/'\''/g;
+    return "'$value'";
+}
+
+### GRUB 1 (grub-legacy) config
+
+sub grub1_parse {
+    my ($file) = @_;
+    my @results = ();
+    my $text = '';
+    my $in_auto = 0;
+    my $in_opts = 0;
+
+    while (<$file>) {
+	if ($in_opts && /^\# (\w+)=(.*)/) {
+	    push @results, [$text];
+	    $text = '';
+	    push @results, [$_, $1, $2];
+	} else {
+	    $text .= $_;
+	    if ($_ eq "### BEGIN AUTOMAGIC KERNELS LIST\n") {
+		$in_auto = 1;
+	    } elsif ($_ eq "### END DEBIAN AUTOMAGIC KERNELS LIST\n") {
+		$in_auto = 0;
+	    } elsif ($_ eq "## ## Start Default Options ##\n") {
+		$in_opts = $in_auto;
+	    } elsif ($_ eq "## ## End Default Options ##\n") {
+		$in_opts = 0;
+	    }
+	}
+    }
+
+    if ($text ne '') {
+	push @results, [$text];
+    }
+
+    return @results;
+}
+
+sub grub1_list {
+    my ($file) = @_;
+    my %options;
+    for (grub1_parse($file)) {
+	my ($text, $name, $value) = @$_;
+	next unless defined($name);
+	$options{$name} = $value;
+    }
+
+    my @bdevs;
+    if (exists($options{kopt_2_6})) {
+	push @bdevs, kernel_list($options{kopt_2_6});
+    } elsif (exists($options{kopt})) {
+	push @bdevs, kernel_list($options{kopt});
+    }
+    if (exists($options{xenkopt})) {
+	push @bdevs, kernel_list($options{xenkopt});
+    }
+    return @bdevs;
+}
+
+sub grub1_update {
+    my ($old, $new, $map) = @_;
+
+    my %options;
+    for (grub1_parse($old)) {
+	my ($text, $name, $value) = @$_;
+	next unless defined($name);
+	$options{$name} = $value;
+    }
+
+    $old->seek(0, 0);
+    for (grub1_parse($old)) {
+	my ($text, $name, $value) = @$_;
+	if (defined($name) && 
+	    ($name eq 'kopt_2_6' ||
+	     ($name eq 'kopt' && !exists($options{kopt_2_6})) ||
+	     $name eq 'xenkopt')) {
+	    if (defined(my $new_value = kernel_update($value, $map))) {
+		$text = "## $name=$value\n# $name=$new_value\n";
+	    }
+	}
+	$new->print($text);
+    }
+}
+
+sub grub1_post {
+    _system('update-grub');
+}
+
+### GRUB 2 config
+
+sub grub2_list {
+    my ($file) = @_;
+    my @bdevs;
+
+    while (1) {
+	my ($text, $name, $value) = shellvars_next($file);
+	last unless defined($text);
+	if (defined($name) && $name =~ /^GRUB_CMDLINE_LINUX(?:_DEFAULT)?$/) {
+	    push @bdevs, kernel_list($value);
+	}
+    }
+
+    return @bdevs;
+}
+
+sub grub2_update {
+    my ($old, $new, $map) = @_;
+    my @bdevs;
+
+    while (1) {
+	my ($text, $name, $value) = shellvars_next($old);
+	last unless defined($text);
+	if (defined($name) && $name =~ /^GRUB_CMDLINE_LINUX(?:_DEFAULT)?$/ &&
+	    defined(my $new_value = kernel_update($value, $map))) {
+	    $text =~ s/^/# /gm;
+	    $text .= sprintf("%s=%s\n", $name, shellvars_quote($new_value));
+	}
+	$new->print($text);
+    }
+}
+
+sub grub2_post {
+    _system('grub-mkconfig', '-o', '/boot/grub/grub.cfg');
+}
+
+### LILO
+
+sub lilo_tokenize {
+    # Based on cfg_get_token() and next() in cfg.c.
+    # Line boundaries are *not* significant (except as white space) so
+    # we tokenize the whole file at once.
+
+    my ($file) = @_;
+    my @tokens = ();
+    my $text = '';
+    my $token;
+    my $in_quote = 0;
+
+    while (<$file>) {
+	# If this is the continuation of a multi-line quote, skip
+	# leading space and push back the necessary context.
+	if ($in_quote) {
+	    s/^[ \t]*/"/;
+	    $text .= $&;
+	}
+
+	pos = 0;
+	while (/\G \s* (?:\#.*)?
+                (?: (=) |
+                    " ((?:[^"] | \\[\\"n])*) (" | \\\r?\n) |
+                    ((?:[^\s\#="\\] | \\[^\r\n])+) (\\\r?\n)?)?
+               /gsx) {
+	    my $cont;
+	    my $new_text = $&;
+
+	    if (defined($1)) {
+		# equals sign
+		$text = $new_text;
+		$token = $1;
+		$cont = 0;
+	    } elsif (defined($2)) {
+		# quoted text
+		if (!$in_quote) {
+		    $text = $new_text;
+		    $token = $2;
+		} else {
+		    $text .= substr($new_text, 1); # remove the quote again; ick
+		    $token .= ' ' . $2;
+		}
+		$cont = $3 ne '"';
+	    } elsif (defined($4)) {
+		# unquoted word
+		if (!defined($token)) {
+		    $token = '';
+		}
+		$text .= $new_text;
+		$token .= $4;
+		$cont = defined($5);
+	    } else {
+		$text .= $new_text;
+		$cont = $new_text eq '';
+	    }
+
+	    if (!$cont) {
+		if ($text =~ /(?:^|[^\\])\$/) {
+		    # unhandled expansion
+		    $token = undef;
+		} elsif (defined($token)) {
+		    if ($in_quote) {
+			$token =~ s/\\(.)/$1 eq 'n' ? "\n" : $1/eg;
+		    } else {
+			$token =~ s/\\(.)/$1/g;
+		    }
+		}
+		push @tokens, [$text, $token];
+		$text = '';
+		$token = undef;
+		$in_quote = 0;
+	    }
+	}
+    }
+
+    return @tokens;
+}
+
+sub lilo_list {
+    my ($file) = @_;
+    my @bdevs = ();
+    my @tokens = lilo_tokenize($file);
+    my $i = 0;
+    my $in_generic = 1; # global or image=/vmlinuz or image=/vmlinuz.old
+
+    while ($i <= $#tokens) {
+	# Configuration items are either <name> "=" <value> or <name> alone.
+	if ($#tokens - $i >= 2 &&
+	    defined($tokens[$i + 1][1]) && $tokens[$i + 1][1] eq '=') {
+	    my ($name, $value) = ($tokens[$i][1], $tokens[$i + 2][1]);
+	    if (defined($name) && defined($value)) {
+		if ($name eq 'image') {
+		    $in_generic = ($value =~ m|^/vmlinuz(?:\.old)?$|);
+		} elsif ($in_generic) {
+		    if ($name =~ /^(?:boot|root)$/) {
+			push @bdevs, $value;
+		    } elsif ($name =~ /^(?:addappend|append|literal)$/) {
+			push @bdevs, kernel_list($value);
+		    }
+		}
+	    }
+	    $i += 3;
+	} else {
+	    $i += 1;
+	}
+    }
+
+    return @bdevs;
+}
+
+sub lilo_update {
+    my ($old, $new, $map) = @_;
+    my @tokens = lilo_tokenize($old);
+    my $i = 0;
+    my $in_generic = 1; # global or image=/vmlinuz or image=/vmlinuz.old
+
+    while ($i <= $#tokens) {
+	my $text = $tokens[$i][0];
+
+	if ($#tokens - $i >= 2 &&
+	    defined($tokens[$i + 1][1]) && $tokens[$i + 1][1] eq '=') {
+	    my ($name, $value) = ($tokens[$i][1], $tokens[$i + 2][1]);
+	    my $new_value;
+	    if (defined($name) && defined($value)) {
+		if ($name eq 'image') {
+		    $in_generic = ($value =~ m|^/vmlinuz(?:\.old)?$|);
+		} elsif ($in_generic) {
+		    if ($name eq 'boot') {
+			# 'boot' is used directly by the lilo command, which
+			# doesn't use libblkid
+			$new_value = $map->{$value} && id_to_path($map->{$value});
+		    } elsif ($name eq 'root') {
+			# 'root' adds a root parameter to the kernel command
+			# line
+			$new_value = $map->{$value};
+		    } elsif ($name =~ /^(?:addappend|append|literal)$/) {
+			# These are all destined for the kernel command line
+			# in some way
+			$new_value = kernel_update($value, $map);
+		    }
+		}
+	    }
+	    if (defined($new_value)) {
+		$new_value =~ s/\\/\\\\/g;
+		$text = "\n# $name = $value\n$name = \"$new_value\"\n";
+	    } else {
+		$text .= $tokens[$i + 1][0] . $tokens[$i + 2][0];
+	    }
+	    $i += 3;
+	} else {
+	    $i += 1;
+	}
+
+	$new->print($text);
+    }
+}
+
+sub lilo_post {
+    _system('lilo');
+}
+
+### SILO
+
+sub silo_post {
+    _system('silo');
+}
+
+### ELILO
+
+sub elilo_post {
+    _system('elilo');
+}
+
+### extlinux
+
+sub extlinux_old_path {
+    for ('/boot/extlinux', '/boot/boot/exlinux', '/extlinux') {
+	if (-e) {
+	    return "$_/options.cfg";
+	}
+    }
+    return undef;
+}
+
+sub extlinux_old_list {
+    my ($file) = @_;
+    while (<$file>) {
+	if (/^## ROOT=(.*)/) {
+	    return kernel_list($1);
+	}
+    }
+    return ();
+}
+
+sub extlinux_old_update {
+    my ($old, $new, $map) = @_;
+    while (<$old>) {
+	my $text = $_;
+	if (/^## ROOT=(.*)/) {
+	    my $new_params = kernel_update($1, $map);
+	    if (defined($new_params)) {
+		$text = "## $text" . "## ROOT=$new_params\n";
+	    }
+	}
+	$new->print($text);
+    }
+}
+
+sub extlinux_new_list {
+    my ($file) = @_;
+    while (<$file>) {
+	if (/^# ROOT=(.*)/) {
+	    return kernel_list($1);
+	}
+    }
+    return ();
+}
+
+sub extlinux_new_update {
+    my ($old, $new, $map) = @_;
+    while (<$old>) {
+	my $text = $_;
+	if (/^# ROOT=(.*)/) {
+	    my $new_params = kernel_update($1, $map);
+	    if (defined($new_params)) {
+		$text = "## $text" . "# ROOT=$new_params\n";
+	    }
+	}
+	$new->print($text);
+    }
+}
+
+sub extlinux_post {
+    _system('update-extlinux');
+}
+
+# udev persistent-cd
+
+sub udev_next {
+    my ($file) = @_;
+    my @results = ();
+
+    # Based on parse_file() and get_key() in udev-rules.c
+    while (1) {
+	my $text = <$file>;
+	last if !defined($text) || $text eq '';
+
+	if ($text =~ /^\s*(?:#|$)/) {
+	    push @results, [$text];
+	} else {
+	    my $end_pos = 0;
+	    while ($text =~ /\G [\s,]* ((?:[^\s=+!:]|[+!:](?!=))+)
+                         \s* ([=+!:]?=) "([^"]*)"/gx) {
+		push @results, [$&, $1, $2, $3];
+		$end_pos = pos($text);
+	    }
+	    push @results, [substr($text, $end_pos)];
+	    last if $text !~ /\\\n$/;
+	}
+    }
+
+    return @results;
+}
+
+sub udev_parse_symlink_rule {
+    my ($path, $symlink);
+    for (@_) {
+	my ($text, $key, $op, $value) = @$_;
+	next if !defined($key);
+	if ($key eq 'ENV{ID_PATH}' && $op eq '==') {
+	    $path = $value;
+	} elsif ($key eq 'SYMLINK' && $op eq '+=') {
+	    $symlink = $value;
+	}
+    }
+    return ($path, $symlink);
+}
+
+# Find symlink rules using IDE device paths that aren't matched by rules
+# using the corresponding SCSI device path.  Return an array containing
+# the corresponding path for each rule where this is the case and undef
+# for all other rules.
+sub udev_cd_find_unmatched_ide_rules {
+    my ($file) = @_;
+    my %wanted_rule;
+    my @unmatched;
+    my $i = 0;
+
+    while (1) {
+	my @keys = udev_next($file);
+	last if $#keys < 0;
+
+	my ($path, $symlink) = udev_parse_symlink_rule(@keys);
+	if (defined($path) && defined($symlink)) {
+	    if ($path =~ /-ide-\d+:\d+$/) {
+		# libata uses the PATA controller and device numbers
+		# as SCSI host number and bus id.  Channel number and
+		# LUN are always 0.  The parent device path should
+		# stay the same.
+		$path =~ s/-ide-(\d+):(\d+)$/-scsi-$1:0:$2:0/;
+		my $rule_key =  $path . ' ' . $symlink;
+		if (!exists($wanted_rule{$rule_key})) {
+		    $wanted_rule{$rule_key} = $i;
+		    $unmatched[$i] = $path;
+		}
+	    } elsif ($path =~ /-scsi-\d+:\d+:\d+:\d+$/) {
+		my $rule_key =  $path . ' ' . $symlink;
+		my $j = $wanted_rule{$rule_key};
+		if (defined($j) && $j >= 0) {
+		    $unmatched[$j] = undef;
+		}
+		$wanted_rule{$rule_key} = -1;
+	    }
+	}
+
+	++$i;
+    }
+
+    return @unmatched;
+}
+
+sub udev_cd_needs_update {
+    my ($file) = @_;
+    my %paths;
+    for (udev_cd_find_unmatched_ide_rules($file)) {
+	if (defined($_)) {
+	    $paths{$_} = 1;
+	}
+    }
+    return join('\n', map({"+ PATH=$_"} keys(%paths)));
+}
+
+sub udev_cd_update {
+    my ($old, $new) = @_; # ignore map
+
+    # Find which rules we will need to copy and edit, then rewind
+    my @unmatched = udev_cd_find_unmatched_ide_rules($old);
+    $old->seek(0, 0);
+
+    my $i = 0;
+    while (1) {
+	my @keys = udev_next($old);
+	last if $#keys < 0;
+
+	my $old_text = '';
+	my $new_text = '';
+
+	for (@keys) {
+	    my ($text, $key, $op, $value) = @$_;
+	    $old_text .= $text;
+	    next unless defined($unmatched[$i]) && defined($key);
+
+	    if ($key eq 'ENV{ID_PATH}' && $op eq '==') {
+		my $value = $unmatched[$i];
+		$new_text .= ", $key$op\"$value\"";
+	    } else {
+		$new_text .= $text;
+	    }
+	}
+
+	$new->print($old_text);
+	if ($unmatched[$i]) {
+	    $new->print($new_text . "\n");
+	}
+
+	++$i;
+    }
+}
+
+# initramfs-tools resume
+
+sub initramfs_resume_list {
+    my ($file) = @_;
+    my @results = ();
+
+    while (1) {
+	my ($text, $name, $value) = shellvars_next($file);
+	last unless defined($text);
+	if (defined($name) && $name eq 'RESUME') {
+	    $results[0] = $value;
+	}
+    }
+
+    return @results;
+}
+
+sub initramfs_resume_update {
+    my ($old, $new, $map) = @_;
+
+    while (1) {
+	my ($text, $name, $value) = shellvars_next($old);
+	last unless defined($text);
+	if (defined($name) && $name eq 'RESUME' &&
+	    defined(my $new_value = $map->{$value})) {
+	    $text =~ s/^/# /gm;
+	    $text .= sprintf("%s=%s\n", $name, shellvars_quote($new_value));
+	}
+	$new->print($text);
+    }
+}
+
+# uswsusp resume
+
+sub uswsusp_next {
+    # Based on parse_line() in config_parser.c
+
+    my ($file) = @_;
+    my $text = <$file>;
+
+    if (!defined($text) || $text eq '') {
+	return ();
+    }
+
+    local $_ = $text;
+    s/^\s*(?:#.*)?//;
+    s/\s*$//;
+
+    if ($text =~ /^([\w ]*\w)[ \t]*[:=][ \t]*(.+)$/) {
+	return ($text, $1, $2);
+    } else {
+	return ($text);
+    }
+}
+
+sub uswsusp_resume_list {
+    my ($file) = @_;
+    my @results = ();
+
+    while (1) {
+	my ($text, $name, $value) = uswsusp_next($file);
+	last unless defined($text);
+	if (defined($name) && $name eq 'resume device') {
+	    $results[0] = $value;
+	}
+    }
+
+    return @results;
+}
+
+sub uswsusp_resume_update {
+    my ($old, $new, $map) = @_;
+
+    while (1) {
+	my ($text, $name, $value) = uswsusp_next($old);
+	last unless defined($text);
+	if (defined($name) && $name eq 'resume device' &&
+	    defined(my $new_value = $map->{$value})) {
+	    $text =~ s/^/# /gm;
+	    $text .= sprintf("%s = %s\n", $name, id_to_path($new_value));
+	}
+	$new->print($text);
+    }
+}
+
+# cryptsetup
+
+sub cryptsetup_next {
+    my ($file) = @_;
+    my $text = <$file>;
+    unless (defined($text)) {
+	return ();
+    }
+
+    my $line = $text;
+    if ($line =~ /^\s*(#|$)/) {
+	return ($text);
+    } else {
+	$line =~ s/\s*$//;
+	$line =~ s/^\s*//;
+	return ($text, split(/\s+/, $line, 4));
+    }
+}
+
+sub cryptsetup_list {
+    my ($file) = @_;
+    my (@results) = ();
+
+    while (1) {
+	my ($text, undef, $src) = cryptsetup_next($file);
+	last unless defined($text);
+	if (defined($src)) {
+	    push @results, $src;
+	}
+    }
+
+    return @results;
+}
+
+sub cryptsetup_update {
+    my ($old, $new, $map) = @_;
+
+    while (1) {
+	my ($text, $dst, $src, $key, $opts) = cryptsetup_next($old);
+	last unless defined($text);
+	if (defined($src) && defined($map->{$src})) {
+	    $text = "# $text" . join(' ', $dst, $map->{$src}, $key, $opts);
+	}
+	$new->print($text);
+    }
+}
+
+# hdparm
+
+sub hdparm_list {
+    my ($file) = @_;
+    my (@results) = ();
+
+    # I really can't be bothered to parse this mess.  Just see if
+    # there's anything like a device name on a non-comment line.
+    while (<$file>) {
+	if (!/^\s*#/) {
+	    push @results, grep({m|^/dev/|} split(/\s+/));
+	}
+    }
+
+    return @results;
+}
+
+### list of all configuration files and functions
+
+my @config_files = ({packages => 'mount',
+		     path => '/etc/fstab',
+		     list => \&fstab_list,
+		     update => \&fstab_update},
+		    {packages => 'grub grub-legacy',
+		     path => '/boot/grub/menu.lst',
+		     list => \&grub1_list,
+		     update => \&grub1_update,
+		     post_update => \&grub1_post,
+		     is_boot_loader => 1},
+		    {packages => 'grub-common',
+		     path => '/etc/default/grub',
+		     list => \&grub2_list,
+		     update => \&grub2_update,
+		     post_update => \&grub2_post,
+		     is_boot_loader => 1},
+		    {packages => 'lilo',
+		     path => '/etc/lilo.conf',
+		     list => \&lilo_list,
+		     update => \&lilo_update,
+		     post_update => \&lilo_post,
+		     is_boot_loader => 1},
+		    {packages => 'silo',
+		     path => '/etc/silo.conf',
+		     list => \&lilo_list,
+		     update => \&lilo_update,
+		     post_update => \&silo_post,
+		     is_boot_loader => 1},
+		    {packages => 'quik',
+		     path => '/etc/quik.conf',
+		     list => \&lilo_list,
+		     update => \&lilo_update,
+		     is_boot_loader => 1},
+		    {packages => 'yaboot',
+		     path => '/etc/yaboot.conf',
+		     list => \&lilo_list,
+		     update => \&lilo_update,
+		     is_boot_loader => 1},
+		    {packages => 'elilo',
+		     path => '/etc/elilo.conf',
+		     list => \&lilo_list,
+		     update => \&lilo_update,
+		     post_update => \&elilo_post,
+		     is_boot_loader => 1},
+		    {packages => 'extlinux',
+		     path => extlinux_old_path(),
+		     list => \&extlinux_old_list,
+		     update => \&extlinux_old_update,
+		     post_update => \&extlinux_post,
+		     is_boot_loader => 1},
+		    {packages => 'extlinux',
+		     path => '/etc/default/extlinux',
+		     list => \&extlinux_new_list,
+		     update => \&extlinux_new_update,
+		     post_update => \&extlinux_post,
+		     is_boot_loader => 1},
+		    {packages => 'udev',
+		     path => '/etc/udev/rules.d/70-persistent-cd.rules',
+		     needs_update => \&udev_cd_needs_update,
+		     update => \&udev_cd_update},
+		    {packages => 'initramfs-tools',
+		     path => '/etc/initramfs-tools/conf.d/resume',
+		     list => \&initramfs_resume_list,
+		     update => \&initramfs_resume_update,
+		     # udev will source all files in this directory,
+		     # with few exceptions.  Such as including a '^'.
+		     suffix => '^old'},
+		    {packages => 'uswsusp',
+		     path => '/etc/uswsusp.conf',
+		     list => \&uswsusp_resume_list,
+		     update => \&uswsusp_resume_update},
+		    {packages => 'cryptsetup',
+		     path => '/etc/crypttab',
+		     list => \&cryptsetup_list,
+		     update => \&cryptsetup_update},
+		    # mdadm.conf requires manual update because it may
+		    # contain wildcards.
+		    {packages => 'mdadm',
+		     path => '/etc/mdadm/mdadm.conf'},
+		    # hdparm.conf requires manual update because it
+		    # (1) refers to whole disks (2) might not work
+		    # properly with the new drivers (3) is in a very
+		    # special format.
+		    {packages => 'hdparm',
+		     path => '/etc/hdparm.conf',
+		     list => \&hdparm_list});
+
+### Filesystem labels and UUIDs
+
+sub ext2_set_label {
+    my ($bdev, $label) = @_;
+    _system('tune2fs', '-L', $label, $bdev) == 0 or die "tune2fs failed: $?";
+}
+sub ext2_set_uuid {
+    my ($bdev, $uuid) = @_;
+    _system('tune2fs', '-U', $uuid, $bdev) == 0 or die "tune2fs failed: $?";
+}
+
+sub jfs_set_label {
+    my ($bdev, $label) = @_;
+    _system('jfs_tune', '-L', $label, $bdev) == 0 or die "jfs_tune failed: $?";
+}
+sub jfs_set_uuid {
+    my ($bdev, $uuid) = @_;
+    _system('jfs_tune', '-U', $uuid, $bdev) == 0 or die "jfs_tune failed: $?";
+}
+
+sub fat_set_label {
+    my ($bdev, $label) = @_;
+    _system('dosfslabel', $bdev, $label) == 0 or die "dosfslabel failed: $?";
+}
+
+sub ntfs_set_label {
+    my ($bdev, $label) = @_;
+    _system('ntfslabel', $bdev, $label) == 0 or die "ntfslabel failed: $?";
+}
+
+sub reiserfs_set_label {
+    my ($bdev, $label) = @_;
+    _system('reiserfstune', '--label', $label, $bdev)
+	or die "reiserfstune failed: $?";
+}
+sub reiserfs_set_uuid {
+    my ($bdev, $uuid) = @_;
+    _system('reiserfstune', '--uuid', $uuid, $bdev)
+	or die "reiserfstune failed: $?";
+}
+
+# There is no command to relabel swap, and we mustn't run mkswap if
+# the partition is already in use.  Thankfully the header format is
+# pretty simple; it starts with this structure:
+# struct swap_header_v1_2 {
+# 	char	      bootbits[1024];    /* Space for disklabel etc. */
+# 	unsigned int  version;
+# 	unsigned int  last_page;
+# 	unsigned int  nr_badpages;
+# 	unsigned char uuid[16];
+# 	char	      volume_name[16];
+# 	unsigned int  padding[117];
+# 	unsigned int  badpages[1];
+# };
+# and has the signature 'SWAPSPACE2' at the end of the first page.
+use constant { SWAP_SIGNATURE => 'SWAPSPACE2',
+	       SWAP_UUID_OFFSET => 1036, SWAP_UUID_LEN => 16,
+	       SWAP_LABEL_OFFSET => 1052, SWAP_LABEL_LEN => 16 };
+sub _swap_set_field {
+    my ($bdev, $offset, $value) = @_;
+    my $pagesize = POSIX::sysconf(POSIX::_SC_PAGESIZE) or die "$!";
+    my ($length, $signature);
+
+    my $fd = POSIX::open($bdev, POSIX::O_RDWR);
+    defined($fd) or die "$!";
+
+    # Check the signature
+    POSIX::lseek($fd, $pagesize - length(SWAP_SIGNATURE), POSIX::SEEK_SET);
+    $length = POSIX::read($fd, $signature, length(SWAP_SIGNATURE));
+    if (!defined($length) || $signature ne SWAP_SIGNATURE) {
+	POSIX::close($fd);
+	die "swap signature not found on $bdev";
+    }
+
+    # Set the field
+    POSIX::lseek($fd, $offset, POSIX::SEEK_SET);
+    $length = POSIX::write($fd, $value, length($value));
+    if (!defined($length) || $length != length($value)) {
+	my $error = "$!";
+	POSIX::close($fd);
+	die $error;
+    }
+
+    POSIX::close($fd);
+}
+sub swap_set_label {
+    my ($bdev, $label) = @_;
+    _swap_set_field($bdev, SWAP_LABEL_OFFSET, pack('Z' . SWAP_LABEL_LEN, $label));
+}
+sub swap_set_uuid {
+    my ($bdev, $uuid) = @_;
+    my $uuid_bin;
+    if (UUID::parse($uuid, $uuid_bin) != 0 ||
+	length($uuid_bin) != SWAP_UUID_LEN) {
+	die "internal error: invalid UUID string";
+    }
+    _swap_set_field($bdev, SWAP_UUID_OFFSET, $uuid_bin);
+}
+
+sub ufs_set_label {
+    my ($bdev, $label) = @_;
+    _system('tunefs.ufs', '-L', $label, $bdev) or die "tunefs.ufs failed: $?";
+}
+
+sub xfs_set_label {
+    my ($bdev, $label) = @_;
+    _system('xfs_admin', '-L', $label, $bdev) or die "xfs_admin failed: $?";
+}
+sub xfs_set_uuid {
+    my ($bdev, $uuid) = @_;
+    _system('xfs_admin', '-U', $uuid, $bdev) or die "xfs_admin failed: $?";
+}
+
+my %filesystem_types = (
+    ext2     => { label_len => 16,             set_label => \&ext2_set_label,
+		  set_uuid  => \&ext2_set_uuid },
+    ext3     => { label_len => 16,             set_label => \&ext2_set_label,
+		  set_uuid  => \&ext2_set_uuid },
+    ext4     => { label_len => 16,             set_label => \&ext2_set_label,
+		  set_uuid  => \&ext2_set_uuid },
+    jfs      => { label_len => 16,             set_label => \&jfs_set_label,
+		  set_uuid  => \&jfs_set_uuid },
+    msdos    => { label_len => 11,             set_label => \&fat_set_label },
+    ntfs     => { label_len => 128,            set_label => \&ntfs_set_label },
+    reiserfs => { label_len => 16,             set_label => \&reiserfs_set_label,
+		  set_uuid  => \&reiserfs_set_uuid },
+    swap     => { label_len => SWAP_LABEL_LEN, set_label => \&swap_set_label,
+		  set_uuid  => \&swap_set_uuid },
+    ufs      => { label_len => 32,             set_label => \&ufs_set_label },
+    vfat     => { label_len => 11,             set_label => \&fat_set_label },
+    xfs      => { label_len => 12,             set_label => \&xfs_set_label,
+		  set_uuid  => \&xfs_set_uuid }
+    );
+
+my %bdev_map;
+my %id_map;
+
+sub scan_config_files {
+    my @configs;
+
+    # Find all IDE/SCSI disks mentioned in configurations
+    for my $config (@config_files) {
+	# Is the file present?
+	my $path = $config->{path};
+	if (!defined($path)) {
+	    next;
+	}
+	my $file = new FileHandle($path, 'r');
+	if (!defined($file)) {
+	    if ($! == POSIX::ENOENT) {
+		next;
+	    }
+	    die "$!";
+	}
+
+	# Are any of the related packages wanted or installed?
+	my $wanted = 0;
+	my $installed = 0;
+	my $packages = $config->{packages};
+	for (`dpkg-query 2>/dev/null --showformat '\${status}\\n' -W $packages`)
+	{
+	    $wanted = 1 if /^install /;
+	    $installed = 1 if / installed\n$/;
+	}
+	if (!$wanted && !$installed) {
+	    next;
+	}
+
+	my @matched_bdevs = ();
+	my $id_map_text;
+	my $needs_update;
+
+	if (exists($config->{needs_update})) {
+	    $id_map_text = &{$config->{needs_update}}($file);
+	    $needs_update = defined($id_map_text) && $id_map_text ne '';
+	} elsif (exists($config->{list})) {
+	    for my $bdev (&{$config->{list}}($file)) {
+		if ($bdev =~ m{^/dev/(?:[hs]d[a-z]\d*|s(?:cd|r)\d+)$} &&
+		    -b $bdev) {
+		    $bdev_map{$bdev} = {};
+		    push @matched_bdevs, $bdev;
+		}
+	    }
+	    $needs_update = @matched_bdevs > 0;
+	} else {
+	    # Needs manual update
+	    $needs_update = 1;
+	}
+
+	push @configs, {config => $config,
+			devices => \@matched_bdevs,
+			id_map_text => $id_map_text,
+			installed => $installed,
+			needs_update => $needs_update};
+    }
+
+    my $fstab = new FileHandle('/etc/fstab', 'r') or die "$!";
+    while (1) {
+	my ($text, $bdev, $path, $type) = fstab_next($fstab);
+	last unless defined($text);
+	if (defined($type) && exists($bdev_map{$bdev})) {
+	    $bdev_map{$bdev}->{path} = $path;
+	    $bdev_map{$bdev}->{type} = $type;
+	}
+    }
+    $fstab->close();
+
+    return @configs;
+}
+
+sub add_tag {
+    # Map disks to labels/UUIDs and vice versa.  Include all disks in
+    # the reverse mapping so we can detect ambiguity.
+    my ($bdev, $name, $value, $new) = @_;
+    my $id = "$name=$value";
+    push @{$id_map{$id}}, $bdev;
+    if (exists($bdev_map{$bdev})) {
+	$bdev_map{$bdev}->{$name} = $value;
+	push @{$bdev_map{$bdev}->{ids}}, $id;
+    }
+    if ($new) {
+	$bdev_map{$bdev}->{new_id} = $id;
+    }
+}
+
+sub scan_devices {
+    for (`blkid -o device`) {
+	chomp;
+	my $bdev = $_;
+	for (`blkid -o udev -s LABEL -s UUID '$bdev'`) {
+	    if (/^ID_FS_(LABEL|UUID)_ENC=(.+)\n$/) {
+		add_tag($bdev, $1, $2);
+	    }
+	}
+    }
+
+    # Discard all labels and UUIDs(!) that are ambiguous.
+    # Discard all labels with 'unsafe' characters (escaped by blkid using
+    # backslashes) as they will not be usable in all configuration files.
+    # Sort each device's IDs in reverse lexical order so that UUIDs are
+    # preferred.
+    for my $bdev (keys(%bdev_map)) {
+	@{$bdev_map{$bdev}->{ids}} =
+	    sort({$b cmp $a}
+		 grep({ @{$id_map{$_}} == 1 && $_ !~ /\\/ }
+		      @{$bdev_map{$bdev}->{ids}}));
+    }
+
+    # Add persistent aliases for CD/DVD/BD drives
+    my $cd_rules =
+	new FileHandle('/etc/udev/rules.d/70-persistent-cd.rules', 'r');
+    while (defined($cd_rules)) {
+	my @keys = udev_next($cd_rules);
+	last if $#keys < 0;
+
+	my ($path, $symlink) = udev_parse_symlink_rule(@keys);
+	if (defined($path) && defined($symlink)) {
+	    $symlink =~ s{^(?!/)}{/dev/};
+	    my $bdev = readlink($symlink) or next;
+	    $bdev =~ s{^(?!/)}{/dev/};
+	    if (exists($bdev_map{$bdev})) {
+		push @{$bdev_map{$bdev}->{ids}}, $symlink;
+	    }
+	}
+    }
+}
+
+sub assign_new_ids {
+    my $hostname = (POSIX::uname())[1];
+
+    # For all devices that have no alternate device ids, suggest setting
+    # UUIDs, labelling them based on fstab or just using a generic label.
+    for my $bdev (keys(%bdev_map)) {
+	next if $#{$bdev_map{$bdev}->{ids}} >= 0;
+
+	my $type = $bdev_map{$bdev}->{type};
+	next unless defined($type) && exists($filesystem_types{$type});
+
+	if (defined($filesystem_types{$type}->{set_uuid})) {
+	    my ($uuid_bin, $uuid);
+	    UUID::generate($uuid_bin);
+	    UUID::unparse($uuid_bin, $uuid);
+	    add_tag($bdev, 'UUID', $uuid, 1);
+	    next;
+	}
+
+	my $label_len = $filesystem_types{$type}->{len};
+	my $label;
+	use bytes; # string lengths are in bytes
+
+	if (defined($bdev_map{$bdev}->{path})) {
+	    # Convert path/type to label; prepend hostname if possible;
+	    # append numeric suffix if necessary.
+
+	    my $base;
+	    if ($bdev_map{$bdev}->{path} =~ m|^/|) {
+		$base = $bdev_map{$bdev}->{path};
+	    } else {
+		$base = $bdev_map{$bdev}->{type};
+	    }
+	    $base =~ s/[^\w]+/-/g;
+	    $base =~ s/^-//g;
+	    $base =~ s/-$//g;
+
+	    my $n = 0;
+	    my $suffix = '';
+	    do {
+		$label = "$hostname-$base$suffix";
+		if (length($label) > $label_len) {
+		    $label = substr($base, 0, $label_len - length($suffix))
+			. $suffix;
+		}
+		$n++;
+		$suffix = "-$n";
+	    } while (exists($id_map{"LABEL=$label"}));
+	} else {
+	    my $n = 0;
+	    my $suffix;
+	    do {
+		$n++;
+		$suffix = "-$n";
+		$label = substr($hostname, 0, $label_len - length($suffix))
+		    . $suffix;
+	    } while (exists($id_map{"LABEL=$label"}));
+	}
+
+	add_tag($bdev, 'LABEL', $label, 1);
+    }
+}
+
+sub set_new_ids {
+    for my $bdev (keys(%bdev_map)) {
+	my $bdev_info = $bdev_map{$bdev};
+	if ($bdev_info->{new_id}) {
+	    my ($name, $value) = split(/=/, $bdev_info->{new_id}, 2);
+	    my $setter;
+	    if ($name eq 'UUID') {
+		$setter = $filesystem_types{$bdev_info->{type}}->{set_uuid};
+	    } elsif ($name eq 'LABEL') {
+		$setter = $filesystem_types{$bdev_info->{type}}->{set_label};
+	    }
+	    defined($setter) or die "internal error: invalid new_id type";
+	    &{$setter}($bdev, $value);
+	}
+    }
+}
+
+sub update_config {
+    my %map;
+    for my $bdev (keys(%bdev_map)) {
+	$map{$bdev} = $bdev_map{$bdev}->{ids}->[0];
+    }
+
+    for my $match (@_) {
+	# Generate a new config
+	my $path = $match->{config}->{path};
+	my $old = new FileHandle($path, 'r') or die "$!";
+	my $new = new FileHandle("$path.new", POSIX::O_WRONLY | POSIX::O_CREAT,
+				 0600)
+	    or die "$!";
+	&{$match->{config}->{update}}($old, $new, \%map);
+	$old->close();
+	$new->close();
+
+	# New config should have same permissions as the old
+	my (undef, undef, $mode, undef, $uid, $gid) = stat($path) or die "$!";
+	chown($uid, $gid, "$path.new") or die "$!";
+	chmod($mode & 07777, "$path.new") or die "$!";
+
+	# Back up the old config and replace with the new
+	my $old_path = $path . ($match->{config}->{suffix} || '.old');
+	unlink($old_path);
+	link($path, $old_path) or die "$!";
+	rename("$path.new", $path) or die "$!";
+
+	# If the package is installed, run the post-update function
+	if ($match->{installed} && $match->{config}->{post_update}) {
+	    &{$match->{config}->{post_update}}();
+	}
+    }
+}
+
+sub transition {
+    use Debconf::Client::ConfModule ':all';
+
+    %bdev_map = ();
+    %id_map = ();
+
+    my @found_configs = scan_config_files();
+    my @matched_configs = grep({$_->{needs_update}} @found_configs);
+    my @auto_configs = grep({defined($_->{config}->{update})} @matched_configs);
+    my $found_boot_loader =
+	grep({$_->{config}->{is_boot_loader} && $_->{installed}} @found_configs);
+
+    # We can skip all of this if we didn't find any configuration
+    # files that need conversion and we found the configuration file
+    # for an installed boot loader.
+    if (!@matched_configs && $found_boot_loader) {
+	return;
+    }
+
+    my ($question, $answer, $ret, $seen);
+
+    $question = 'linux-base/disk-id-convert-auto';
+    ($ret, $seen) = input('high', $question);
+    if ($ret && $ret != 30) {
+	die "Error setting debconf question $question: $seen";
+    }
+    ($ret, $seen) = go();
+    if ($ret && $ret != 30) {
+	die "Error asking debconf question $question: $seen";
+    }
+    ($ret, $answer) = get($question);
+    die "Error retrieving answer for $question: $answer" if $ret;
+
+    if (@auto_configs && $answer eq 'true') {
+	scan_devices();
+	assign_new_ids();
+
+	if (grep({$bdev_map{$_}->{new_id}} keys(%bdev_map))) {
+	    $question = 'linux-base/disk-id-convert-plan';
+	    ($ret, $seen) = subst($question, 'relabel',
+				  join("\\n",
+				       map({sprintf("%s: %s",
+						    $_, $bdev_map{$_}->{new_id})}
+					   grep({$bdev_map{$_}->{new_id}}
+						keys(%bdev_map)))));
+	    die "Error setting debconf substitutions in $question: $seen" if $ret;
+	} else {
+	    $question = 'linux-base/disk-id-convert-plan-no-relabel';
+	}
+	($ret, $seen) = subst($question, 'id_map',
+			      join("\\n",
+				   map({sprintf("%s: %s", $_, $bdev_map{$_}->{ids}->[0])}
+				       grep({@{$bdev_map{$_}->{ids}}}
+					    keys(%bdev_map))),
+				   grep({defined}
+					map({$_->{id_map_text}} @auto_configs))));
+	die "Error setting debconf substitutions in $question: $seen" if $ret;
+	($ret, $seen) = subst($question, 'files',
+			      join(', ',
+				   map({$_->{config}->{path}} @auto_configs)));
+	die "Error setting debconf substitutions in $question: $seen" if $ret;
+	($ret, $seen) = input('high', $question);
+	if ($ret && $ret != 30) {
+	    die "Error setting debconf question $question: $seen";
+	}
+	($ret, $seen) = go();
+	if ($ret && $ret != 30) {
+	    die "Error asking debconf question $question: $seen";
+	}
+	($ret, $answer) = get($question);
+	die "Error retrieving answer for $question: $answer" if $ret;
+    
+	if ($answer eq 'true') {
+	    set_new_ids();
+	    update_config(@auto_configs);
+	}
+    }
+
+    my @unconv_files = ();
+    for my $match (@matched_configs) {
+	if (!defined($match->{config}->{update})) {
+	    push @unconv_files, $match->{config}->{path};
+	} else {
+	    my @unconv_bdevs = grep({!exists($bdev_map{$_}->{ids}) ||
+					 @{$bdev_map{$_}->{ids}} == 0}
+				    @{$match->{devices}});
+	    if (@unconv_bdevs) {
+		push @unconv_files, sprintf('%s: %s', $match->{config}->{path},
+					    join(', ', at unconv_bdevs));
+	    }
+	}
+    }
+    if (@unconv_files) {
+	$question = 'linux-base/disk-id-manual';
+	($ret, $seen) = subst($question, 'unconverted',
+			      join("\\n", @unconv_files));
+	die "Error setting debconf substitutions in $question: $seen" if $ret;
+	($ret, $seen) = input('high', $question);
+	if ($ret && $ret != 30) {
+	    die "Error setting debconf note $question: $seen";
+	}
+	($ret, $seen) = go();
+	if ($ret && $ret != 30) {
+	    die "Error showing debconf note $question: $seen";
+	}
+    }
+
+    # Also note whether some (unknown) boot loader configuration file
+    # must be manually converted.
+    if (!$found_boot_loader) {
+	$question = 'linux-base/disk-id-manual-boot-loader';
+	($ret, $seen) = input('high', $question);
+	if ($ret && $ret != 30) {
+	    die "Error setting debconf note $question: $seen";
+	}
+	($ret, $seen) = go();
+	if ($ret && $ret != 30) {
+	    die "Error showing debconf note $question: $seen";
+	}
+    }
+}
+
+package main;
+
+capb('escape');
+
+sub compare_versions {
+    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;
+
+if ($deb_arch ne 's390') {
+    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}) ||
+	(!is_fresh_installation() &&
+	 compare_versions($ARGV[1], $libata_transition_ver) < 0)) {
+	DebianKernel::DiskId::transition();
+    }
+}
+
+exec("set -e\nset -- @ARGV\n" . << 'EOF');
+#DEBHELPER#
+EOF

Copied: dists/trunk/linux-2.6/debian/linux-base.templates (from r15489, dists/sid/linux-2.6/debian/linux-base.templates)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/trunk/linux-2.6/debian/linux-base.templates	Tue Apr 27 17:48:06 2010	(r15575, copy of r15489, dists/sid/linux-2.6/debian/linux-base.templates)
@@ -0,0 +1,60 @@
+Template: linux-base/disk-id-convert-auto
+Type: boolean
+Default: true
+_Description: Update disk device ids in system configuration?
+ The new Linux kernel version provides different drivers for some
+ PATA (IDE) controllers.  The names of some hard disk, CD-ROM and
+ tape devices may change.
+ .
+ You are recommended to identify disk devices in configuration files
+ by label or UUID (unique identifier) rather than by device name,
+ which will work with both old and new kernel versions.  Your system
+ configuration can be updated automatically in most cases.
+
+Template: linux-base/disk-id-convert-plan
+Type: boolean
+Default: true
+_Description: Apply these configuration changes to disk device ids?
+ These devices will be assigned UUIDs or labels:
+ .
+ ${relabel}
+ .
+ These configuration files will be updated:
+ .
+ ${files}
+ .
+ The device ids will be changed as follows:
+ .
+ ${id_map}
+
+Template: linux-base/disk-id-convert-plan-no-relabel
+Type: boolean
+Default: true
+_Description: Apply these configuration changes to disk device ids?
+ These configuration files will be updated:
+ .
+ ${files}
+ .
+ The device ids will be changed as follows:
+ .
+ ${id_map}
+
+Template: linux-base/disk-id-manual
+Type: note
+_Description: Please check these configuration files before rebooting
+ These configuration files still use some device names that may
+ change when using the new kernel:
+ .
+ ${unconverted}
+
+Template: linux-base/disk-id-manual-boot-loader
+Type: note
+_Description: Check the boot loader configuration before rebooting
+ The boot loader configuration for this system was not recognised.  These
+ settings in the configuration may need to be updated:
+ .
+  * The root device id passed as a kernel parameter
+  * The boot device id used to install and update the boot loader
+ .
+ We recommend that you identify these devices by UUID or label, except that
+ on MIPS systems this is not supported for the root device.

Modified: dists/trunk/linux-2.6/debian/rules.real
==============================================================================
--- dists/trunk/linux-2.6/debian/rules.real	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/rules.real	Tue Apr 27 17:48:06 2010	(r15575)
@@ -154,6 +154,12 @@
 	dh_md5sums
 	dh_builddeb -- $(BUILDDEB_ARGS)
 
+install-dummy:
+	dh_testdir
+	dh_testroot
+	dh_prep
+	$(MAKE_SELF) install-base
+
 install-doc: PACKAGE_NAME = linux-doc-$(VERSION)
 install-doc: DIR = $(BUILD_DIR)/build-doc
 install-doc: SOURCE_DIR = $(BUILD_DIR)/source
@@ -263,6 +269,12 @@
 	ln -s /usr/src/$(PACKAGE_NAME) $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/build
 	ln -s /usr/src/$(PACKAGE_NAME_COMMON) $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/source
 
+	install -d $(PACKAGE_DIR)/DEBIAN
+	sed -e 's/=V/$(REAL_VERSION)/g' \
+	  debian/templates/temp.headers.plain/postinst \
+	  > $(PACKAGE_DIR)/DEBIAN/postinst
+	chmod 755 $(PACKAGE_DIR)/DEBIAN/postinst
+
 	+$(MAKE_SELF) install-base
 
 install-libc-dev_$(ARCH): PACKAGE_NAME = linux-libc-dev

Modified: dists/trunk/linux-2.6/debian/templates/control.xen-linux-system.in
==============================================================================
--- dists/trunk/linux-2.6/debian/templates/control.xen-linux-system.in	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/templates/control.xen-linux-system.in	Tue Apr 27 17:48:06 2010	(r15575)
@@ -1,5 +1,5 @@
 Package: xen-linux-system- at upstreamversion@@abiname@@localversion@
 Depends: linux-image- at upstreamversion@@abiname@@localversion@ (= ${binary:Version})
-Description: XEN system with Linux @upstreamversion@ image on @class@
+Description: Xen system with Linux @upstreamversion@ on @class@
  This package depends on the binary Linux image and hypervisors.
 

Modified: dists/trunk/linux-2.6/debian/templates/image.plain.bug/include-network
==============================================================================
--- dists/trunk/linux-2.6/debian/templates/image.plain.bug/include-network	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/templates/image.plain.bug/include-network	Tue Apr 27 17:48:06 2010	(r15575)
@@ -1,7 +1,4 @@
-add_network() {
-  yesno "Include network configuration and status from this computer? " nop
-  test $REPLY = yep || return 0
-
+_add_etc_network_interfaces() {
   echo '** Network interface configuration:' >&3
   # Hide passwords/keys
   awk '$1 ~ /key|pass|^wpa-(anonymous|identity|phase|pin|private|psk)/ { gsub(".", "*", $2); }
@@ -9,6 +6,13 @@
        !/^[[:space:]]*\#/ { print; }
       ' </etc/network/interfaces >&3
   echo >&3
+}
+
+add_network() {
+  yesno "Include network configuration and status from this computer? " nop
+  test $REPLY = yep || return 0
+
+  _add_etc_network_interfaces
   echo '** Network status:' >&3
   if command -v ip >/dev/null; then
     echo '*** IP interfaces and addresses:' >&3
@@ -36,7 +40,5 @@
   yesno "Include network configuration from this computer? " nop
   test $REPLY = yep || return 0
 
-  echo '** Network interface configuration:' >&3
-  cat /etc/network/interfaces >&3
-  echo >&3
+  _add_etc_network_interfaces
 }

Modified: dists/trunk/linux-2.6/debian/templates/temp.image.plain/templates
==============================================================================
--- dists/trunk/linux-2.6/debian/templates/temp.image.plain/templates	Tue Apr 27 17:47:14 2010	(r15574)
+++ dists/trunk/linux-2.6/debian/templates/temp.image.plain/templates	Tue Apr 27 17:48:06 2010	(r15575)
@@ -1,7 +1,7 @@
 Template: =ST-image-=V/postinst/depmod-error-initrd-=V
 Type: boolean
 Default: false
-Description: Abort installation after depmod error?
+_Description: Abort installation after depmod error?
  The 'depmod' command exited with the exit code ${exit_value}
  (${SIGNAL}${CORE}).
  .
@@ -16,7 +16,7 @@
 Template: shared/kernel-image/really-run-bootloader
 Type: boolean
 Default: true
-Description: Run the default boot loader?
+_Description: Run the default boot loader?
  The default boot loader for this architecture is $loader, which is
  present.
  .
@@ -32,7 +32,7 @@
 
 Template: =ST-image-=V/postinst/bootloader-test-error-=V
 Type: note
-Description: Error running the boot loader in test mode
+_Description: Error running the boot loader in test mode
  An error occurred while running the ${loader} boot loader in test mode.
  .
  A log is available in ${temp_file_name}. Please edit /etc/${loader}.conf
@@ -41,7 +41,7 @@
 
 Template: =ST-image-=V/postinst/bootloader-error-=V
 Type: note
-Description: Error running the boot loader
+_Description: Error running the boot loader
  An error occurred while running the ${loader} boot loader.
  .
  A log is available in ${temp_file_name}. Please edit /etc/${loader}.conf
@@ -51,7 +51,7 @@
 Template: =ST-image-=V/prerm/removing-running-kernel-=V
 Type: boolean
 Default: true
-Description: Abort kernel removal?
+_Description: Abort kernel removal?
  You are running a kernel (version ${running}) and attempting to remove
  the same version.
  .
@@ -66,7 +66,7 @@
 Template: =ST-image-=V/prerm/would-invalidate-boot-loader-=V
 Type: boolean
 Default: true
-Description: Abort kernel removal?
+_Description: Abort kernel removal?
  This system uses a valid /etc/${loader}.conf file that mentions
  ${kimage}-=V. Removing =ST-image-=V will invalidate
  that file.
@@ -80,7 +80,7 @@
 
 Template: =ST-image-=V/postinst/missing-firmware-=V
 Type: note
-Description: Required firmware files may be missing
+_Description: Required firmware files may be missing
  This system is currently running Linux ${runningversion} and you are
  installing Linux ${version}.  In the new version some of the drivers
  used on this system may require additional firmware files:



More information about the Kernel-svn-changes mailing list