Accepting request 841839 from Base:System

- Update to upstream version 3.3:
  * [COMPATIBILITY] Document how the UUID fields are interpreted.
  * [PORTABILITY] Don't use memcpy on /dev/mem on arm64.
  * Add bios-revision, firmware-revision and system-sku-number to -s option.
  * Use the most appropriate unit for cache size.
  * Decode system slot base bus width and peers.
  * Obsoletes dmidecode-add-enumerated-values-from-smbios-3.3.0.patch,
    dmidecode-add-logical-non-volatile-device.patch,
    dmidecode-allow-overriding-build-settings-from-env.patch,
    dmidecode-dont-choke-on-invalid-processor-voltage.patch,
    dmidecode-fix-formatting-of-tpm-table-output.patch,
    dmidecode-fix-redfish-hostname-print-length.patch,
    dmidecode-fix-system-slot-information-for-pcie-ssd.patch,
    dmidecode-fix-the-alignment-of-type-25-name.patch,
    dmidecode-only-scan-dev-mem-for-entry-point-on-x86.patch, and
    dmidecode-print-type-33-name-unconditionally.patch.

OBS-URL: https://build.opensuse.org/request/show/841839
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/dmidecode?expand=0&rev=40
This commit is contained in:
Dominique Leuenberger 2020-10-18 14:26:42 +00:00 committed by Git OBS Bridge
commit 8630e42132
16 changed files with 24 additions and 481 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:077006fa2da0d06d6383728112f2edef9684e9c8da56752e97cd45a11f838edd
size 54440

Binary file not shown.

3
dmidecode-3.3.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:82c737a780614c38a783e8055340d295e332fb12c7f418b5d21a0797d3fb1455
size 56372

BIN
dmidecode-3.3.tar.xz.sig Normal file

Binary file not shown.

View File

@ -1,133 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Date: Wed, 23 Oct 2019 12:44:13 +0200
Subject: dmidecode: Add enumerated values from SMBIOS 3.3.0
Git-commit: 3fa833fd78ff5eb74f9459e061e26e063ed648d5
Patch-mainline: yes
References: bsc#1153533
Add all the enumerated values from the SMBIOS 3.3.0 specification
update that was released last month.
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Reviewed-by: Jerry Hoemann <jerry.hoemann@hpe.com>
---
dmidecode.c | 44 +++++++++++++++++++++++++++++++++++---------
1 file changed, 35 insertions(+), 9 deletions(-)
--- a/dmidecode.c
+++ b/dmidecode.c
@@ -932,6 +932,10 @@ static const char *dmi_processor_family(
{ 0x140, "WinChip" },
{ 0x15E, "DSP" },
{ 0x1F4, "Video Processor" },
+
+ { 0x200, "RV32" },
+ { 0x201, "RV64" },
+ { 0x202, "RV128" },
};
/*
* Note to developers: when adding entries to this list, check if
@@ -1815,6 +1819,9 @@ static const char *dmi_slot_type(u8 code
"PCI Express Mini 52-pin without bottom-side keep-outs",
"PCI Express Mini 76-pin" /* 0x23 */
};
+ static const char *type_0x30[] = {
+ "CXL FLexbus 1.0" /* 0x30 */
+ };
static const char *type_0xA0[] = {
"PC-98/C20", /* 0xA0 */
"PC-98/C24",
@@ -1838,7 +1845,14 @@ static const char *dmi_slot_type(u8 code
"PCI Express 3 x2",
"PCI Express 3 x4",
"PCI Express 3 x8",
- "PCI Express 3 x16" /* 0xB6 */
+ "PCI Express 3 x16",
+ out_of_spec, /* 0xB7 */
+ "PCI Express 4",
+ "PCI Express 4 x1",
+ "PCI Express 4 x2",
+ "PCI Express 4 x4",
+ "PCI Express 4 x8",
+ "PCI Express 4 x16" /* 0xBD */
};
/*
* Note to developers: when adding entries to these lists, check if
@@ -1847,7 +1861,9 @@ static const char *dmi_slot_type(u8 code
if (code >= 0x01 && code <= 0x23)
return type[code - 0x01];
- if (code >= 0xA0 && code <= 0xB6)
+ if (code == 0x30)
+ return type_0x30[code - 0x30];
+ if (code >= 0xA0 && code <= 0xBD)
return type_0xA0[code - 0xA0];
return out_of_spec;
}
@@ -1951,6 +1967,12 @@ static void dmi_slot_id(u8 code1, u8 cod
case 0xB4: /* PCI Express 3 */
case 0xB5: /* PCI Express 3 */
case 0xB6: /* PCI Express 3 */
+ case 0xB8: /* PCI Express 4 */
+ case 0xB9: /* PCI Express 4 */
+ case 0xBA: /* PCI Express 4 */
+ case 0xBB: /* PCI Express 4 */
+ case 0xBC: /* PCI Express 4 */
+ case 0xBD: /* PCI Express 4 */
printf("%sID: %u\n", prefix, code1);
break;
case 0x07: /* PCMCIA */
@@ -2292,12 +2314,13 @@ static const char *dmi_memory_array_loca
"PC-98/C20 Add-on Card", /* 0xA0 */
"PC-98/C24 Add-on Card",
"PC-98/E Add-on Card",
- "PC-98/Local Bus Add-on Card" /* 0xA3 */
+ "PC-98/Local Bus Add-on Card",
+ "CXL Flexbus 1.0" /* 0xA4 */
};
if (code >= 0x01 && code <= 0x0A)
return location[code - 0x01];
- if (code >= 0xA0 && code <= 0xA3)
+ if (code >= 0xA0 && code <= 0xA4)
return location_0xA0[code - 0xA0];
return out_of_spec;
}
@@ -2420,10 +2443,11 @@ static const char *dmi_memory_device_for
"RIMM",
"SODIMM",
"SRIMM",
- "FB-DIMM" /* 0x0F */
+ "FB-DIMM",
+ "Die" /* 0x10 */
};
- if (code >= 0x01 && code <= 0x0F)
+ if (code >= 0x01 && code <= 0x10)
return form_factor[code - 0x01];
return out_of_spec;
}
@@ -2472,10 +2496,12 @@ static const char *dmi_memory_device_typ
"LPDDR2",
"LPDDR3",
"LPDDR4",
- "Logical non-volatile device" /* 0x1F */
+ "Logical non-volatile device",
+ "HBM",
+ "HBM2" /* 0x21 */
};
- if (code >= 0x01 && code <= 0x1F)
+ if (code >= 0x01 && code <= 0x21)
return type[code - 0x01];
return out_of_spec;
}
@@ -2531,7 +2557,7 @@ static void dmi_memory_technology(u8 cod
"NVDIMM-N",
"NVDIMM-F",
"NVDIMM-P",
- "Intel persistent memory" /* 0x07 */
+ "Intel Optane DC persistent memory" /* 0x07 */
};
if (code >= 0x01 && code <= 0x07)
printf(" %s", technology[code - 0x01]);

View File

@ -1,34 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Date: Wed, 16 Jan 2019 09:04:55 +0100
Subject: dmidecode: Add "Logical non-volatile device" to the memory device types
Git-commit: 74dfb854b8199ddb0a27e89296fa565f4706cb9d
Patch-mainline: yes
References: bsc#1120149
When adding support for non-volative memory, we forgot to add
"Logical non-volatile device" to the list of memory types. This
causes NVDIMM modules to show up as <OUT OF SPEC>. Fix the problem
by adding the missing enumerated value.
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Reviewed-by: Jerry Hoemann <jerry.hoemann@hpe.com>
---
dmidecode.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/dmidecode.c
+++ b/dmidecode.c
@@ -2469,10 +2469,11 @@ static const char *dmi_memory_device_typ
"LPDDR",
"LPDDR2",
"LPDDR3",
- "LPDDR4" /* 0x1E */
+ "LPDDR4",
+ "Logical non-volatile device" /* 0x1F */
};
- if (code >= 0x01 && code <= 0x1E)
+ if (code >= 0x01 && code <= 0x1F)
return type[code - 0x01];
return out_of_spec;
}

View File

@ -1,51 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
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 <jdelvare@suse.de>
---
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

View File

@ -1,33 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
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 <jdelvare@suse.de>
---
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");
}
}

View File

@ -1,34 +0,0 @@
From: Deomid rojer Ryabkov <rojer9@fb.com>
Date: Mon, 26 Aug 2019 14:20:15 +0200
Subject: Fix formatting of TPM table output
Git-commit: 1d0db85949a5bdd96375f6131d393a11204302a6
Patch-mainline: yes
Added missing newlines.
Fixes: 48a8132058a0 ("dmidecode: Add support for structure type 43 (TPM Device)")
---
dmidecode.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- dmidecode-3.2.orig/dmidecode.c 2019-08-26 14:35:26.209257695 +0200
+++ dmidecode-3.2/dmidecode.c 2019-08-26 14:35:28.271284010 +0200
@@ -4991,7 +4991,7 @@ static void dmi_decode(const struct dmi_
printf("\tVendor ID:");
dmi_tpm_vendor_id(data + 0x04);
printf("\n");
- printf("\tSpecification Version: %d.%d", data[0x08], data[0x09]);
+ printf("\tSpecification Version: %d.%d\n", data[0x08], data[0x09]);
switch (data[0x08])
{
case 0x01:
@@ -5014,7 +5014,7 @@ static void dmi_decode(const struct dmi_
*/
break;
}
- printf("\tDescription: %s", dmi_string(h, data[0x12]));
+ printf("\tDescription: %s\n", dmi_string(h, data[0x12]));
printf("\tCharacteristics:\n");
dmi_tpm_characteristics(QWORD(data + 0x13), "\t\t");
if (h->length < 0x1F) break;

View File

@ -1,28 +0,0 @@
From: Charles Rose <Charles.Rose@dell.com>
Date: Mon, 22 Oct 2018 09:48:02 +0200
Subject: dmidecode: Fix Redfish Hostname print length
Git-commit: fde47bb227b8fa817c88d7e10a8eb771c46de1df
Patch-mainline: yes
References: bsc#1112755
Redfish Hostname prints beyond hlen characters. Fix it.
Signed-off-by: Charles Rose <charles.rose@dell.com>
Fixes: 78539b06117c ("dmidecode: Parse Modern Management Controller blocks")
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Jean Delvare <jdelvare@suse.de>
---
dmidecode.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/dmidecode.c
+++ b/dmidecode.c
@@ -3609,7 +3609,7 @@ static void dmi_parse_protocol_record(co
hname = out_of_spec;
hlen = strlen(out_of_spec);
}
- printf("%s\t\tRedfish Service Hostname: %*s\n", prefix, hlen, hname);
+ printf("%s\t\tRedfish Service Hostname: %.*s\n", prefix, hlen, hname);
}
/*

View File

@ -1,32 +0,0 @@
From: Prabhakar pujeri <Prabhakar.Pujeri@dell.com>
Date: Tue, 15 Oct 2019 14:24:46 +0200
Subject: dmidecode: Fix System Slot Information for PCIe SSD
Git-commit: fd08479625b5845e4d725ab628628f7ebfccc407
Patch-mainline: yes
Output for type 9 show <out of spec> for PCIe SSD. SMBIOS spec table
48 describes 2.5" and 3.5" PCIe SSD formats.
Signed-off-by: Prabhakar pujeri <prabhakar.pujeri@dell.com>
Signed-off-by: Jean Delvare <jdelvare@suse.de>
---
dmidecode.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
--- a/dmidecode.c
+++ b/dmidecode.c
@@ -1900,10 +1900,12 @@ static const char *dmi_slot_length(u8 co
"Other", /* 0x01 */
"Unknown",
"Short",
- "Long" /* 0x04 */
+ "Long",
+ "2.5\" drive form factor",
+ "3.5\" drive form factor" /* 0x06 */
};
- if (code >= 0x01 && code <= 0x04)
+ if (code >= 0x01 && code <= 0x06)
return length[code - 0x01];
return out_of_spec;
}

View File

@ -1,24 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
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 <jdelvare@suse.de>
---
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);

View File

@ -1,62 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Date: Mon, 26 Aug 2019 14:20:15 +0200
Subject: dmidecode: Only scan /dev/mem for entry point on x86
Git-commit: e12ec26e19e02281d3e7258c3aabb88a5cf5ec1d
Patch-mainline: yes
x86 is the only architecture which can have a DMI entry point scanned
from /dev/mem. Do not attempt it on other architectures, because not
only it can't work, but it can even cause the system to reboot.
This fixes support request #109697:
https://savannah.nongnu.org/support/?109697
---
dmidecode.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
--- dmidecode-3.2.orig/dmidecode.c 2019-08-26 14:35:22.767213766 +0200
+++ dmidecode-3.2/dmidecode.c 2019-08-26 14:35:26.209257695 +0200
@@ -2,7 +2,7 @@
* DMI Decode
*
* Copyright (C) 2000-2002 Alan Cox <alan@redhat.com>
- * Copyright (C) 2002-2018 Jean Delvare <jdelvare@suse.de>
+ * Copyright (C) 2002-2019 Jean Delvare <jdelvare@suse.de>
*
* 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
@@ -5535,7 +5535,7 @@ int main(int argc, char * const argv[])
off_t fp;
size_t size;
int efi;
- u8 *buf;
+ u8 *buf = NULL;
/*
* We don't want stdout and stderr to be mixed up if both are
@@ -5639,7 +5639,7 @@ int main(int argc, char * const argv[])
printf("Failed to get SMBIOS data from sysfs.\n");
}
- /* Next try EFI (ia64, Intel-based Mac) */
+ /* Next try EFI (ia64, Intel-based Mac, arm64) */
efi = address_from_efi(&fp);
switch (efi)
{
@@ -5672,6 +5672,7 @@ int main(int argc, char * const argv[])
goto done;
memory_scan:
+#if defined __i386__ || defined __x86_64__
if (!(opt.flags & FLAG_QUIET))
printf("Scanning %s for entry point.\n", opt.devmem);
/* Fallback to memory scan (x86, x86_64) */
@@ -5714,6 +5715,7 @@ int main(int argc, char * const argv[])
}
}
}
+#endif
done:
if (!found && !(opt.flags & FLAG_QUIET))

View File

@ -1,26 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
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 <jdelvare@suse.de>
---
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",

View File

@ -1,3 +1,23 @@
-------------------------------------------------------------------
Wed Oct 14 15:53:32 UTC 2020 - Jean Delvare <jdelvare@suse.de>
- Update to upstream version 3.3:
* [COMPATIBILITY] Document how the UUID fields are interpreted.
* [PORTABILITY] Don't use memcpy on /dev/mem on arm64.
* Add bios-revision, firmware-revision and system-sku-number to -s option.
* Use the most appropriate unit for cache size.
* Decode system slot base bus width and peers.
* Obsoletes dmidecode-add-enumerated-values-from-smbios-3.3.0.patch,
dmidecode-add-logical-non-volatile-device.patch,
dmidecode-allow-overriding-build-settings-from-env.patch,
dmidecode-dont-choke-on-invalid-processor-voltage.patch,
dmidecode-fix-formatting-of-tpm-table-output.patch,
dmidecode-fix-redfish-hostname-print-length.patch,
dmidecode-fix-system-slot-information-for-pcie-ssd.patch,
dmidecode-fix-the-alignment-of-type-25-name.patch,
dmidecode-only-scan-dev-mem-for-entry-point-on-x86.patch, and
dmidecode-print-type-33-name-unconditionally.patch.
-------------------------------------------------------------------
Tue Apr 21 08:17:46 UTC 2020 - Jean Delvare <jdelvare@suse.de>

View File

@ -17,7 +17,7 @@
Name: dmidecode
Version: 3.2
Version: 3.3
Release: 0
Summary: DMI table decoder
License: GPL-2.0-or-later
@ -27,16 +27,6 @@ Source0: http://download.savannah.gnu.org/releases/%{name}/%{name}-%{vers
Source1: http://download.savannah.gnu.org/releases/%{name}/%{name}-%{version}.tar.xz.sig
# https://savannah.nongnu.org/project/memberlist-gpgkeys.php?group=dmidecode
Source2: %{name}.keyring
Patch1: dmidecode-fix-redfish-hostname-print-length.patch
Patch2: dmidecode-add-logical-non-volatile-device.patch
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
@ -59,16 +49,6 @@ the BIOS told it to.
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%build
CFLAGS="%{optflags}" make %{?_smp_mflags}