Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock

Please unblock package intel-microcode

Unfortunately, both amd64-microcode and intel-microcode can trigger a very
nasty bug in initramfs-tools that renders the initramfs unusable, and
therefore may make the system unbootable.

It will only happen when initramfs-tools is incapable of creating ORDER
files (e.g. because of noexec $TMPDIR or noexec /tmp with $TMPDIR unset),
so it should be pretty rare.  But still, the consequences are dire...
kinda like some of the processor errata the packages fix, I suppose :-)

This has bitten an user of intel-microcode.  Please refer to bug #689301
and #688794.

This upload works around the bug in initramfs-tools, which is the safest
way to go about it (especially considering backports).

It also fixes the previous microcode update(!): Intel did a very strange
upstream release, even naming the microcode bundle "v2", which they had
never done before.  They added microcode for seriously enterprise-class
hardware (Xeon E7) and updated again the same microcodes they had updated in
the previous release (for very widely used i5 and i7/Xeon E5 processors).

The file removals (see difstat) are a safe reduction of the size of the
*source* package, and don't change *anything* on the binary packages (I have
triple-checked this), as all microcodes in those files were superseded.

Cleaned up debdiff attached (without the microcode-*.dat hunks), because the
full debdiff is ~10MiB due to the file removals.

diffstat:
 changelog                      |    9 
 debian/changelog               |   25 
 debian/initramfs.init-premount |    3 
 debian/rules                   |    7 
 microcode-20080401.dat         |24693 --------------------------------
 microcode-20090330.dat         |25910 ----------------------------------
 microcode-20090927.dat         |28154 -------------------------------------
 microcode-20100209.dat         |30272 ---------------------------------------
 microcode-20110428.dat         |27177 -----------------------------------
 microcode-20111110.dat         |28971 --------------------------------------
 microcode-20120606.dat         |30317 ---------------------------------------
 microcode-20120606.v2.dat      |31086 +++++++++++++++++++++++++++++++++++++++++
 12 files changed, 31127 insertions(+), 195497 deletions(-)

unblock intel-microcode/1.20120606.v2.2

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'testing-proposed-updates'), (500, 
'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.31+ (SMP w/8 CPU cores)
Locale: LANG=pt_BR.UTF-8, LC_CTYPE=pt_BR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

-- 
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh
diff -Nru intel-microcode-1.20120606.6/changelog 
intel-microcode-1.20120606.v2.2/changelog
--- intel-microcode-1.20120606.6/changelog      2012-07-15 18:44:22.000000000 
-0300
+++ intel-microcode-1.20120606.v2.2/changelog   2012-10-08 20:57:05.000000000 
-0300
@@ -1,3 +1,12 @@
+2012-06-06-v2 (2012-10-01):
+  * Updated Microcodes:
+    sig 0x000206d6, pf mask 0x6d, 2012-05-22, rev 0x0619, size 16384
+    sig 0x000206d7, pf mask 0x6d, 2012-05-22, rev 0x070d, size 16384
+    sig 0x000306a9, pf mask 0x12, 2012-07-16, rev 0x0013, size 11264
+
+  * Updated Microcodes (recently removed):
+    sig 0x000206f2, pf mask 0x05, 2012-04-12, rev 0x0036, size 12288
+
 2012-06-06:
   * New Microcodes:
     sig 0x00020661, pf mask 0x02, 2011-07-18, rev 0x0105, size 5120
diff -Nru intel-microcode-1.20120606.6/debian/changelog 
intel-microcode-1.20120606.v2.2/debian/changelog
--- intel-microcode-1.20120606.6/debian/changelog       2012-09-04 
20:04:54.000000000 -0300
+++ intel-microcode-1.20120606.v2.2/debian/changelog    2012-10-09 
08:01:08.000000000 -0300
@@ -1,3 +1,28 @@
+intel-microcode (1.20120606.v2.2) unstable; urgency=medium
+
+  * initramfs: work around initramfs-tools bug #688794.
+    Use "_" in place of "+-." for the initramfs script name.  This works
+    around a PANIC during boot when the initramfs was created in a system
+    with noexec $TMPDIR.
+
+ -- Henrique de Moraes Holschuh <h...@debian.org>  Tue, 09 Oct 2012 07:43:37 
-0300
+
+intel-microcode (1.20120606.v2.1) unstable; urgency=medium
+
+  * New upstream microcode data file 20120606-v2 (2012-10-01)
+    + Updated Microcodes:
+      sig 0x000206d6, pf mask 0x6d, 2012-05-22, rev 0x0619, size 16384
+      sig 0x000206d7, pf mask 0x6d, 2012-05-22, rev 0x070d, size 16384
+      sig 0x000306a9, pf mask 0x12, 2012-07-16, rev 0x0013, size 11264
+    + Updated Microcodes (recently removed):
+      sig 0x000206f2, pf mask 0x05, 2012-04-12, rev 0x0036, size 12288
+  * Remove from the source package some unused upstream microcode bundles,
+    which were completely superseded by later ones: microcode-20080401.dat,
+    microcode-20090330.dat, microcode-20090927.dat, microcode-20100209.dat,
+    microcode-20110428.dat, microcode-20111110.dat.
+
+ -- Henrique de Moraes Holschuh <h...@debian.org>  Mon, 08 Oct 2012 14:56:17 
-0300
+
 intel-microcode (1.20120606.6) unstable; urgency=medium
 
   * debian/control: conflicts with microcode.ctl (<< 1.18~0)
diff -Nru intel-microcode-1.20120606.6/debian/initramfs.init-premount 
intel-microcode-1.20120606.v2.2/debian/initramfs.init-premount
--- intel-microcode-1.20120606.6/debian/initramfs.init-premount 2012-07-29 
15:11:12.000000000 -0300
+++ intel-microcode-1.20120606.v2.2/debian/initramfs.init-premount      
2012-10-09 07:37:19.000000000 -0300
@@ -9,7 +9,7 @@
 
 # dependencies: firmware loader, microcode kernel support (built-in/module)
 
-PREREQ="udev"
+PREREQ=""
 
 prereqs()
 {
@@ -28,6 +28,7 @@
 
 # we don't need to run twice
 [ -e ${0%/*}/amd64-microcode ] && exit 0
+[ -e ${0%/*}/amd64_microcode ] && exit 0
 
 # module load will already have caused the microcode to be fetched
 { while read -r module trash ; do [ "x$module" = "xmicrocode" ] && exit 0 ; 
done } < /proc/modules
diff -Nru intel-microcode-1.20120606.6/debian/rules 
intel-microcode-1.20120606.v2.2/debian/rules
--- intel-microcode-1.20120606.6/debian/rules   2012-08-11 19:39:28.000000000 
-0300
+++ intel-microcode-1.20120606.v2.2/debian/rules        2012-10-09 
07:35:15.000000000 -0300
@@ -21,6 +21,9 @@
 IUCODE_FILE := intel-microcode-64.bin
 endif
 
+# Work around Debian bug #688794
+INITRAMFS_NAME := $(subst -,_,$(subst +,_,$(subst .,_,$(PACKAGE))))
+
 build-indep:
 
 build-arch: build
@@ -45,10 +48,10 @@
 
        mkdir -p "$(PKGDIR)/usr/share/initramfs-tools/hooks"
        install -m 755 "$(DEBDIR)/initramfs.hook" \
-               "$(PKGDIR)/usr/share/initramfs-tools/hooks/$(PACKAGE)"
+               "$(PKGDIR)/usr/share/initramfs-tools/hooks/$(INITRAMFS_NAME)"
        mkdir -p "$(PKGDIR)/usr/share/initramfs-tools/scripts/init-premount"
        install -m 755 "$(DEBDIR)/initramfs.init-premount" \
-               
"$(PKGDIR)/usr/share/initramfs-tools/scripts/init-premount/$(PACKAGE)"
+               
"$(PKGDIR)/usr/share/initramfs-tools/scripts/init-premount/$(INITRAMFS_NAME)"
        mkdir -p "$(PKGDIR)/etc/kernel/preinst.d"
        install -m 755 "$(DEBDIR)/$(PACKAGE).kpreinst" \
                "$(PKGDIR)/etc/kernel/preinst.d/$(PACKAGE)"
diff -Nru intel-microcode-1.20120606.6/microcode-20080401.dat 
intel-microcode-1.20120606.v2.2/microcode-20080401.dat
diff -Nru intel-microcode-1.20120606.6/microcode-20090330.dat 
intel-microcode-1.20120606.v2.2/microcode-20090330.dat
diff -Nru intel-microcode-1.20120606.6/microcode-20090927.dat 
intel-microcode-1.20120606.v2.2/microcode-20090927.dat
diff -Nru intel-microcode-1.20120606.6/microcode-20100209.dat 
intel-microcode-1.20120606.v2.2/microcode-20100209.dat
diff -Nru intel-microcode-1.20120606.6/microcode-20110428.dat 
intel-microcode-1.20120606.v2.2/microcode-20110428.dat
diff -Nru intel-microcode-1.20120606.6/microcode-20111110.dat 
intel-microcode-1.20120606.v2.2/microcode-20111110.dat
diff -Nru intel-microcode-1.20120606.6/microcode-20120606.dat 
intel-microcode-1.20120606.v2.2/microcode-20120606.dat
diff -Nru intel-microcode-1.20120606.6/microcode-20120606.v2.dat 
intel-microcode-1.20120606.v2.2/microcode-20120606.v2.dat

Reply via email to