From 84e0754eb18aaa1d5b46ffe38a5c9c065eaa64915ef319cd980e4333c9e8e05e Mon Sep 17 00:00:00 2001 From: Jean Delvare Date: Tue, 21 Apr 2020 10:36:12 +0000 Subject: [PATCH] Accepting request 796018 from home:jdelvare:branches:Base:System 3 recommended fixes from upstream: - dmidecode-print-type-33-name-unconditionally.patch: Print type 33 name unconditionally. - dmidecode-dont-choke-on-invalid-processor-voltage.patch: Don't choke on invalid processor voltage. - dmidecode-fix-the-alignment-of-type-25-name.patch: Fix the alignment of type 25 name. Build fix: - dmidecode-allow-overriding-build-settings-from-env.patch: Fix the build system so that the compilation flags passed by OBS are added to the ones dmidecode needs, instead of overriding them entirely. - dmidecode.spec: Pass the CFLAGS through the environment, instead of as a parameter. OBS-URL: https://build.opensuse.org/request/show/796018 OBS-URL: https://build.opensuse.org/package/show/Base:System/dmidecode?expand=0&rev=56 --- ...w-overriding-build-settings-from-env.patch | 51 +++++++++++++++++++ ...t-choke-on-invalid-processor-voltage.patch | 33 ++++++++++++ ...de-fix-the-alignment-of-type-25-name.patch | 24 +++++++++ ...e-print-type-33-name-unconditionally.patch | 26 ++++++++++ dmidecode.changes | 19 +++++++ dmidecode.spec | 14 +++-- 6 files changed, 164 insertions(+), 3 deletions(-) create mode 100644 dmidecode-allow-overriding-build-settings-from-env.patch create mode 100644 dmidecode-dont-choke-on-invalid-processor-voltage.patch create mode 100644 dmidecode-fix-the-alignment-of-type-25-name.patch create mode 100644 dmidecode-print-type-33-name-unconditionally.patch diff --git a/dmidecode-allow-overriding-build-settings-from-env.patch b/dmidecode-allow-overriding-build-settings-from-env.patch new file mode 100644 index 0000000..ce2ca3e --- /dev/null +++ b/dmidecode-allow-overriding-build-settings-from-env.patch @@ -0,0 +1,51 @@ +From: Jean Delvare +Date: Fri, 17 Apr 2020 17:14:15 +0200 +Subject: Allow overriding build settings from the environment +Git-commit: 5b3c8e9950262fc941bb5b3b3a1275720d47d62d +Patch-mainline: yes + +Let packagers pass their own CC, CFLAGS and LDFLAGS settings. The +settings which are specific to dmidecode are appended later so that +they are applied no matter what. + +This should fix bug #55805: +https://savannah.nongnu.org/bugs/?55805 + +Signed-off-by: Jean Delvare +--- + Makefile | 17 +++++++++-------- + 1 file changed, 9 insertions(+), 8 deletions(-) + +--- a/Makefile ++++ b/Makefile +@@ -12,8 +12,13 @@ + # (at your option) any later version. + # + +-CC = gcc +-CFLAGS = -W -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual \ ++CC ?= gcc ++# Base CFLAGS can be overridden by environment ++CFLAGS ?= -O2 ++# When debugging, disable -O2 and enable -g ++#CFLAGS ?= -g ++ ++CFLAGS += -W -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual \ + -Wcast-align -Wwrite-strings -Wmissing-prototypes -Winline -Wundef + + # Let lseek and mmap support 64-bit wide offsets +@@ -22,12 +27,8 @@ CFLAGS += -D_FILE_OFFSET_BITS=64 + #CFLAGS += -DBIGENDIAN + #CFLAGS += -DALIGNMENT_WORKAROUND + +-# When debugging, disable -O2 and enable -g. +-CFLAGS += -O2 +-#CFLAGS += -g +- +-# Pass linker flags here +-LDFLAGS = ++# Pass linker flags here (can be set from environment too) ++LDFLAGS ?= + + DESTDIR = + prefix = /usr/local diff --git a/dmidecode-dont-choke-on-invalid-processor-voltage.patch b/dmidecode-dont-choke-on-invalid-processor-voltage.patch new file mode 100644 index 0000000..b51984b --- /dev/null +++ b/dmidecode-dont-choke-on-invalid-processor-voltage.patch @@ -0,0 +1,33 @@ +From: Jean Delvare +Date: Mon, 23 Mar 2020 16:47:23 +0100 +Subject: dmidecode: Don't choke on invalid processor voltage +Git-commit: 5bb7eb173b72256f70c6b3f3916d7a444be93340 +Patch-mainline: yes + +If the processor voltage encoding has some of the reserved bits set +and none of the proper bits set, print it as "Unknown" instead of an +empty field. + +Signed-off-by: Jean Delvare +--- + dmidecode.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/dmidecode.c ++++ b/dmidecode.c +@@ -1186,13 +1186,13 @@ static void dmi_processor_voltage(u8 cod + + if (code & 0x80) + printf(" %.1f V", (float)(code & 0x7f) / 10); ++ else if ((code & 0x07) == 0x00) ++ printf(" Unknown"); + else + { + for (i = 0; i <= 2; i++) + if (code & (1 << i)) + printf(" %s", voltage[i]); +- if (code == 0x00) +- printf(" Unknown"); + } + } + diff --git a/dmidecode-fix-the-alignment-of-type-25-name.patch b/dmidecode-fix-the-alignment-of-type-25-name.patch new file mode 100644 index 0000000..4ebb723 --- /dev/null +++ b/dmidecode-fix-the-alignment-of-type-25-name.patch @@ -0,0 +1,24 @@ +From: Jean Delvare +Date: Mon, 23 Mar 2020 16:47:30 +0100 +Subject: dmidecode: Fix the alignment of type 25 name +Git-commit: 557c3c373a9992d45d4358a6a2ccf53b03276f39 +Patch-mainline: yes + +No tabulation needed before DMI structure names. + +Signed-off-by: Jean Delvare +--- + dmidecode.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/dmidecode.c ++++ b/dmidecode.c +@@ -4629,7 +4629,7 @@ static void dmi_decode(const struct dmi_ + break; + + case 25: /* 7.26 System Power Controls */ +- printf("\tSystem Power Controls\n"); ++ printf("System Power Controls\n"); + if (h->length < 0x09) break; + printf("\tNext Scheduled Power-on:"); + dmi_power_controls_power_on(data + 0x04); diff --git a/dmidecode-print-type-33-name-unconditionally.patch b/dmidecode-print-type-33-name-unconditionally.patch new file mode 100644 index 0000000..9db0fa4 --- /dev/null +++ b/dmidecode-print-type-33-name-unconditionally.patch @@ -0,0 +1,26 @@ +From: Jean Delvare +Date: Mon, 23 Mar 2020 16:47:20 +0100 +Subject: dmidecode: Print type 33 name unconditionally +Git-commit: 65438a7ec0f4cddccf810136da6f280bd148af71 +Patch-mainline: yes + +Even if a type 33 structure is too short, we can still display its +type name as we do for all other structure types. + +Signed-off-by: Jean Delvare +--- + dmidecode.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/dmidecode.c ++++ b/dmidecode.c +@@ -4786,8 +4786,8 @@ static void dmi_decode(const struct dmi_ + break; + + case 33: /* 7.34 64-bit Memory Error Information */ +- if (h->length < 0x1F) break; + printf("64-bit Memory Error Information\n"); ++ if (h->length < 0x1F) break; + printf("\tType: %s\n", + dmi_memory_error_type(data[0x04])); + printf("\tGranularity: %s\n", diff --git a/dmidecode.changes b/dmidecode.changes index 9365562..bb12e99 100644 --- a/dmidecode.changes +++ b/dmidecode.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Tue Apr 21 08:17:46 UTC 2020 - Jean Delvare + +3 recommended fixes from upstream: +- dmidecode-print-type-33-name-unconditionally.patch: Print type 33 + name unconditionally. +- dmidecode-dont-choke-on-invalid-processor-voltage.patch: Don't + choke on invalid processor voltage. +- dmidecode-fix-the-alignment-of-type-25-name.patch: Fix the + alignment of type 25 name. + +Build fix: +- dmidecode-allow-overriding-build-settings-from-env.patch: Fix the + build system so that the compilation flags passed by OBS are + added to the ones dmidecode needs, instead of overriding them + entirely. +- dmidecode.spec: Pass the CFLAGS through the environment, instead + of as a parameter. + ------------------------------------------------------------------- Wed Oct 23 13:31:26 UTC 2019 - Jean Delvare diff --git a/dmidecode.spec b/dmidecode.spec index 23b9842..3db8a75 100644 --- a/dmidecode.spec +++ b/dmidecode.spec @@ -1,7 +1,7 @@ # # spec file for package dmidecode # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -22,7 +22,7 @@ Release: 0 Summary: DMI table decoder License: GPL-2.0-or-later Group: System/Console -Url: http://www.nongnu.org/dmidecode/ +URL: http://www.nongnu.org/dmidecode/ Source0: http://download.savannah.gnu.org/releases/%{name}/%{name}-%{version}.tar.xz Source1: http://download.savannah.gnu.org/releases/%{name}/%{name}-%{version}.tar.xz.sig # https://savannah.nongnu.org/project/memberlist-gpgkeys.php?group=dmidecode @@ -33,6 +33,10 @@ Patch3: dmidecode-only-scan-dev-mem-for-entry-point-on-x86.patch Patch4: dmidecode-fix-formatting-of-tpm-table-output.patch Patch5: dmidecode-fix-system-slot-information-for-pcie-ssd.patch Patch6: dmidecode-add-enumerated-values-from-smbios-3.3.0.patch +Patch7: dmidecode-print-type-33-name-unconditionally.patch +Patch8: dmidecode-dont-choke-on-invalid-processor-voltage.patch +Patch9: dmidecode-fix-the-alignment-of-type-25-name.patch +Patch10: dmidecode-allow-overriding-build-settings-from-env.patch Provides: pmtools:%{_sbindir}/dmidecode Obsoletes: pmtools < 20071117 BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -61,9 +65,13 @@ the BIOS told it to. %patch4 -p1 %patch5 -p1 %patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 %build -make CFLAGS="%{optflags}" %{?_smp_mflags} +CFLAGS="%{optflags}" make %{?_smp_mflags} %install install -dm 755 %{buildroot}%{_sbindir}