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: