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

Bug#687784: unblock: iucode-tool/0.8.3-1



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

Please unblock package iucode-tool

Version 0.8.3-1 fixes an annoying regression that triggers on, e.g., AMD
systems, when --scan-system is used.  This potentially installs 1.4MiB worth
of useless microcode to the initramfs when none should be installed.

This woud fix #686176 in Wheezy.

I switched to Debian Wheezy upstream, so the upstream diff 0.8.2..0.8.3 has
a lot of autotools noise.  This doesn't affect the Debian build in any way,
because the Debian package removes all autogenerated files and retools at
every build, overwriting these files.

Diffstat for the complete diff (with autotools noise):

 ChangeLog               |    8 
 Makefile.in             |  122 ++++++++---
 README                  |   18 -
 aclocal.m4              |   72 ++++--
 config.guess            |  262 +++++++++++++------------
 config.sub              |  218 +++++++++++++--------
 configure               |  498 +++++++++++++++++++++++++-----------------------
 configure.ac            |    2 
 debian/changelog        |   11 +
 depcomp                 |  190 ++++++++++++------
 install-sh              |   29 +-
 iucode_tool.c           |   68 +++---
 iucode_tool_config.h.in |    5 
 missing                 |   53 -----
 14 files changed, 915 insertions(+), 641 deletions(-)

Abridged debdiff (without the autotools noise) attached.


unblock iucode-tool/0.8.3-1

-- 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.28+ (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 iucode-tool-0.8.2/aclocal.m4 iucode-tool-0.8.3/aclocal.m4
diff -Nru iucode-tool-0.8.2/ChangeLog iucode-tool-0.8.3/ChangeLog
--- iucode-tool-0.8.2/ChangeLog	2012-07-29 00:14:54.000000000 -0300
+++ iucode-tool-0.8.3/ChangeLog	2012-08-27 21:26:57.000000000 -0300
@@ -1,3 +1,11 @@
+2012-08-26, iucode_tool v0.8.3
+
+  * Fix regression introduced in 0.8.2 that caused all microcodes
+    to be selected by --scan-system on a box with unsupported
+    processors (e.g. non-Intel)
+  * Update README: Intel has some microcode update information in
+    some public processor specification update documents
+
 2012-07-28, iucode_tool v0.8.2
 
   * Update documentation and manpages for the new microcode
diff -Nru iucode-tool-0.8.2/config.guess iucode-tool-0.8.3/config.guess
diff -Nru iucode-tool-0.8.2/config.sub iucode-tool-0.8.3/config.sub
diff -Nru iucode-tool-0.8.2/configure iucode-tool-0.8.3/configure
diff -Nru iucode-tool-0.8.2/configure.ac iucode-tool-0.8.3/configure.ac
--- iucode-tool-0.8.2/configure.ac	2012-07-29 00:05:29.000000000 -0300
+++ iucode-tool-0.8.3/configure.ac	2012-08-27 21:26:57.000000000 -0300
@@ -16,7 +16,7 @@
 dnl along with this program; if not, write to the Free Software
 dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-AC_INIT([iucode_tool], [0.8.2])
+AC_INIT([iucode_tool], [0.8.3])
 
 AC_PREREQ([2.61])
 AC_CONFIG_SRCDIR([iucode_tool.c])
diff -Nru iucode-tool-0.8.2/debian/changelog iucode-tool-0.8.3/debian/changelog
--- iucode-tool-0.8.2/debian/changelog	2012-07-29 10:06:55.000000000 -0300
+++ iucode-tool-0.8.3/debian/changelog	2012-08-27 21:29:36.000000000 -0300
@@ -1,3 +1,14 @@
+iucode-tool (0.8.3-1) unstable; urgency=low
+
+  * New upstream release
+    + Fix regression introduced in 0.8.2 that caused all microcodes
+      to be selected by --scan-system on a box with unsupported
+      processors (e.g. non-Intel)
+    + Update README: Intel has some microcode update information in
+      some public processor specification update documents
+
+ -- Henrique de Moraes Holschuh <hmh@debian.org>  Sun, 26 Aug 2012 18:38:54 -0300
+
 iucode-tool (0.8.2-1) unstable; urgency=low
 
   * New upstream release
diff -Nru iucode-tool-0.8.2/depcomp iucode-tool-0.8.3/depcomp
diff -Nru iucode-tool-0.8.2/install-sh iucode-tool-0.8.3/install-sh
diff -Nru iucode-tool-0.8.2/iucode_tool.c iucode-tool-0.8.3/iucode_tool.c
--- iucode-tool-0.8.2/iucode_tool.c	2012-07-28 23:13:16.000000000 -0300
+++ iucode-tool-0.8.3/iucode_tool.c	2012-08-27 21:26:57.000000000 -0300
@@ -1524,6 +1524,7 @@
 
 	int cpuid_fd = -1;
 	unsigned int i = 0;
+	unsigned int ncpu = 0;
 	int rc = 0;
 
 	while (1) {
@@ -1557,37 +1558,34 @@
 		close(cpuid_fd);
 		cpuid_fd = -1;
 
+		ncpu++;
+
 		/* Is it a supported Intel processor ? */
-		if (cpuid_buf[0] == 0 || /* we need cpuid(1) to exist */
-		    cpuid_buf[1] != 0x756e6547 || /* "Genu" */
-		    cpuid_buf[3] != 0x49656e69 || /* "ineI" */
-		    cpuid_buf[2] != 0x6c65746e) { /* "ntel" */
-			/* no, abort search (no error if it is the first) */
-			if (i) {
-				print_err("mix of supported and unsupported "
-					  "processors!");
+		if (cpuid_buf[0] > 0 && /* we need cpuid(1) to exist */
+		    cpuid_buf[1] == 0x756e6547 && /* "Genu" */
+		    cpuid_buf[3] == 0x49656e69 && /* "ineI" */
+		    cpuid_buf[2] == 0x6c65746e) { /* "ntel" */
+			/*
+			 * Get main processor signature from cpuid(1) EAX
+			 * and add it as a filter.
+			 */
+			switch (add_filter_to_list(cpuid_buf[4], 0, 0, &uc_cpu)) {
+			case ENOMEM:
+				print_err("out of memory");
 				rc = 1;
 				goto err_out;
-			} else {
-				rc = 0;
-				goto err_out;
+			case EEXIST:
+				break;
+			default:
+				print_msg(1, "system has processor(s) with signature 0x%08x",
+					  cpuid_buf[4]);
+			}
+		} else {
+			if (!uc_cpu) {
+				/* shortcut search, assume none will be found */
+				print_msg(2, "non-Intel processor found, skipping scan");
+				break;
 			}
-		}
-
-		/*
-		 * Get main processor signature from cpuid(1) EAX
-		 * and add it as a filter.
-		 */
-		switch (add_filter_to_list(cpuid_buf[4], 0, 0, &uc_cpu)) {
-		case ENOMEM:
-			print_err("out of memory");
-			rc = 1;
-			goto err_out;
-		case EEXIST:
-			break;
-		default:
-			print_msg(1, "system has processor(s) with signature 0x%08x",
-				  cpuid_buf[4]);
 		}
 
 		i++;
@@ -1601,17 +1599,21 @@
 	 * if we managed to scan, so we will include all microcodes if cpuid is not
 	 * available, and no other microcode selection option was used
 	 */
-	if (uc_cpu) {
-		filter_list_allow = 0;
+	if (i == 0 && ncpu == 0) {
+		print_err("cpuid kernel driver unavailable, cannot scan system processor signatures");
+		rc = 0;
+		goto err_out;
+	}
+
+	/* we managed to scan, do not select every microcode by default */
+	filter_list_allow = 0;
 
+	if (uc_cpu) {
 		/* tie linked lists */
 		add_filter_list_to_list(&uc_filter_list, uc_cpu);
 		uc_cpu = NULL;
-
-		print_msg(2, "checked the signature of %u processor(s)", i);
-	} else {
-		print_err("cpuid kernel driver unavailable, cannot scan system processor signatures");
 	}
+	print_msg(2, "checked the signature of %u processor(s)", ncpu);
 
 err_out:
 	if (cpuid_fd != -1)
diff -Nru iucode-tool-0.8.2/iucode_tool_config.h.in iucode-tool-0.8.3/iucode_tool_config.h.in
diff -Nru iucode-tool-0.8.2/Makefile.in iucode-tool-0.8.3/Makefile.in
diff -Nru iucode-tool-0.8.2/missing iucode-tool-0.8.3/missing
diff -Nru iucode-tool-0.8.2/README iucode-tool-0.8.3/README
--- iucode-tool-0.8.2/README	2012-07-29 00:04:10.000000000 -0300
+++ iucode-tool-0.8.3/README	2012-08-27 21:26:57.000000000 -0300
@@ -2,8 +2,8 @@
 
 	iucode_tool - Intel® 64 and IA-32 processor microcode tool
 
-			       Version 0.8.2
-			      July 28th, 2012
+			       Version 0.8.3
+			     August 26th, 2012
 
 
 Intel® 64 and IA-32 processors (x86_64 and i686 processors) are capable of
@@ -36,9 +36,6 @@
 same data file (microcode bundle) is used to distribute microcode updates
 for all Intel i686 and X86_64 processor models.
 
-Unfortunately, Intel did not see fit to disclose to the general public any
-information whatsoever about which errata each microcode update fixes.
-
 
 Updating the processor microcode:
 
@@ -144,11 +141,12 @@
 
 About the Intel-supplied .dat file:
 
-Unfortunately, Intel does not publish any information whatsoever about
-changes to the intel-microcode.dat distribution, at least not to the
-general public (microcode-related information seems to be available to
-either some Intel partners or to some restricted developer channels,
-though).
+Unfortunately, as of August 2012, Intel still does not usually publish any
+information about changes to the intel-microcode.dat distribution to the
+general public.  Such information may be available through restricted
+developer and partner channels, though.  A few specific processor
+specification updates now carry public information about the errata fixed by
+the latest microcode revision, which is a step in the right direction.
 
 Intel removes microcode from their public distribution regularly.  One can
 theorize that removals of microcode updates for very old processors that

Reply to: