Sync from SUSE:SLFO:Main dmidecode revision e2af8bdac138a565262e1a43bff7630d

This commit is contained in:
Adrian Schröter 2024-05-03 12:05:57 +02:00
commit fc3389d61d
9 changed files with 1294 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

View File

@ -0,0 +1,25 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: Use -DALIGNMENT_WORKAROUND on arm as well
Git-commit: a85ed8540993f4cba831e1d1d0224ba6640d9c4b
The arm build log shows a lot warnings about casts increasing the
required alignment of target type. This suggests that this
architecture needs to use the slower byte access which is enabled by
-DALIGNMENT_WORKAROUND.
Signed-off-by: Jean Delvare <jdelvare@suse.de>
---
config.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- dmidecode-3.5.orig/config.h
+++ dmidecode-3.5/config.h
@@ -22,7 +22,7 @@
#endif
/* Use memory alignment workaround or not */
-#ifdef __ia64__
+#if defined(__ia64__) || defined(__arm__)
#define ALIGNMENT_WORKAROUND
#endif

BIN
dmidecode-3.5.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

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

Binary file not shown.

370
dmidecode.changes Normal file
View File

@ -0,0 +1,370 @@
-------------------------------------------------------------------
Thu Apr 27 10:55:57 UTC 2023 - Jean Delvare <jdelvare@suse.de>
Fix a potential regression:
- use-read_file-to-read-from-dump.patch: Fix an old harmless bug
which would prevent root from using the --from-dump option since
the latest security fixes.
-------------------------------------------------------------------
Mon Apr 3 10:04:57 UTC 2023 - Jean Delvare <jdelvare@suse.de>
- dmioem-hpe-oem-record-237-firmware-change.patch: Fix the decoding
of the last field of HPE OEM record type 237 (DIMM Vendor
Information).
-------------------------------------------------------------------
Mon Mar 20 10:27:24 UTC 2023 - Jean Delvare <jdelvare@suse.de>
- arm-use-alignment-workaround.patch: Fix the massive build
warnings on armv7l.
-------------------------------------------------------------------
Thu Mar 16 12:26:11 UTC 2023 - Jean Delvare <jdelvare@suse.de>
- Update to upstream version 3.5:
* Decode HPE OEM records 216, 224, 230, 238 and 242.
* Fortify entry point length checks.
* Add a --no-quirks option.
* Drop the CPUID exception list.
* Do not let --dump-bin overwrite an existing file.
* Ensure /dev/mem is a character device file.
* Obsoletes news-fix-typo.patch and
dmioem-fix-segmentation-fault-in-dmi_hp_240_attr.patch.
-------------------------------------------------------------------
Fri Sep 9 10:00:42 UTC 2022 - Jean Delvare <jdelvare@suse.de>
2 recommended fixes from upstream:
- news-fix-typo.patch: We ship the NEWS file so avoid including a
typo in it.
- dmioem-fix-segmentation-fault-in-dmi_hp_240_attr.patch: Passing
NULL to a %s printf conversion specifier is illegal, and can
result in a segmentation fault. Current version of glibc doesn't
mind, but alternative, past or future libc implementations could
crash, so let's fix it.
-------------------------------------------------------------------
Mon Jun 27 15:48:12 UTC 2022 - Jean Delvare <jdelvare@suse.de>
- Update to upstream version 3.4:
* Support for SMBIOS 3.4.0. This includes new memory device types, new
processor upgrades, new slot types and characteristics, decoding of memory
module extended speed, new system slot types, new processor characteristics
and new format of Processor ID.
* Support for SMBIOS 3.5.0. This includes new processor upgrades, BIOS
characteristics, new slot characteristics, new on-board device types, new
pointing device interface types, and a new record type (type 45 -
Firmware Inventory Information).
* Decode HPE OEM records 194, 199, 203, 236, 237, 238 ans 240.
* Bug fixes:
Fix OEM vendor name matching
* Minor improvements:
Skip details of uninstalled memory modules
Don't display the raw CPU ID in quiet mode
Improve the formatting of the manual pages
* Obsoletes dmidecode-fix-crash-with-u-option.patch and
dmidecode-fix-the-condition-error-in-ascii_filter.patch.
-------------------------------------------------------------------
Fri Jan 22 14:58:16 UTC 2021 - Jean Delvare <jdelvare@suse.de>
2 recommended fixes from upstream:
- dmidecode-fix-the-condition-error-in-ascii_filter.patch:
dmidecode: Fix the condition error in ascii_filter.
- dmidecode-fix-crash-with-u-option.patch: dmidecode: Fix crash
with -u option.
-------------------------------------------------------------------
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>
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 <jdelvare@suse.de>
1 recommended fixe from upstream:
- dmidecode-fix-system-slot-information-for-pcie-ssd.patch: Fix
System Slot Information for PCIe SSD.
Partial support for SMBIOS 3.3.0:
- dmidecode-add-enumerated-values-from-smbios-3.3.0.patch: Add
enumerated values from SMBIOS 3.3.0 (bsc#1153533).
-------------------------------------------------------------------
Mon Aug 26 12:35:42 UTC 2019 - Jean Delvare <jdelvare@suse.de>
2 recommended fixes from upstream:
- dmidecode-only-scan-dev-mem-for-entry-point-on-x86.patch: Only
scan /dev/mem for entry point on x86 (fixes reboot on ARM64).
- dmidecode-fix-formatting-of-tpm-table-output.patch: Fix
formatting of TPM table output (missing newlines).
-------------------------------------------------------------------
Wed Jan 16 09:23:52 UTC 2019 - jdelvare@suse.de
- dmidecode-add-logical-non-volatile-device.patch: Add "Logical
non-volatile device" to the memory device types (bsc#1120149).
- Use %doc directly on files instead of installing them explicitly.
-------------------------------------------------------------------
Mon Jan 14 16:32:30 CET 2019 - jdelvare@suse.de
- Don't overwrite the path of license (boo#1121851).
-------------------------------------------------------------------
Mon Oct 22 14:51:29 CEST 2018 - jdelvare@suse.de
- dmidecode-fix-redfish-hostname-print-length.patch: Fix Redfish
Hostname print length (bsc#1112755).
-------------------------------------------------------------------
Mon Sep 17 13:01:40 CEST 2018 - jdelvare@suse.de
- Update to upstream version 3.2 (FATE#326044):
* [COMPATIBILITY] The UUID is now displayed using lowercase
letters, per RFC 4122 (#53569). You must ensure that any code
parsing it is case-insensitive.
* Support for SMBIOS 3.2.0. This includes new processor names,
new socket and port connector types, new system slot state and
property, and support for non-volatile memory (NVDIMM).
* Support for Redfish management controllers.
* A new command line option to query a specific structure by its
handle.
* A new command line option to query the system family string.
* Support for 3 ThinkPad-specific structures (patch #9642).
* Support for HPE's new company name.
* Support UEFI on FreeBSD.
* Important bug fixes:
Fix firmware version of TPM device
Fix the HPE UEFI feature flag check
* (biosdecode) A new command line option to fully decode PIR
information (support request #109339).
* Obsoletes dmioem-reflect-hpe-new-company-name.patch,
dmidecode-fix-tpm-device-firmware-version.patch, and
dmioem-fix-hpe-type-219-uefi-flag.patch.
* CHANGELOG is gone, package more compact NEWS file instead.
- Reenable signature checking.
- Use %license for LICENSE file.
-------------------------------------------------------------------
Tue Apr 17 09:54:57 UTC 2018 - jdelvare@suse.de
- dmioem-reflect-hpe-new-company-name.patch: Reflect HPE's new
company name.
- dmidecode-fix-tpm-device-firmware-version.patch: Fix firmware
version of TPM device.
- dmioem-fix-hpe-type-219-uefi-flag.patch: Fix the reporting of
HP/HPE UEFI feature.
-------------------------------------------------------------------
Mon Jul 17 14:43:37 CEST 2017 - jdelvare@suse.de
- Add missing bug numbers and FATE references in changes file
(bsc#1041670).
-------------------------------------------------------------------
Wed May 24 13:50:05 UTC 2017 - jdelvare@suse.de
- Update to upstream version 3.1:
* Support for SMBIOS 3.1.0 and 3.1.1. This includes new chassis
types, new processor family names, new processor family upgrade
names, and new slot types, as well as support of larger BIOS
ROM sizes and cache sizes, and a new structure type (43, TPM
Device.)
* A new command line option to query OEM strings.
* All error messages are now printed on stderr (#47274, #48158.)
* Fixes a crash with SIGBUS (#46066.)
* Various minor fixes, improvements and cleanups.
* Obsoletes dmidecode-01-add-no-sysfs-option-description-to-h-output.patch,
dmidecode-02-fix-no-smbios-nor-dmi-entry-point-found-on-smbios3.patch,
dmidecode-03-let-read_file-return-the-actual-data-size.patch,
dmidecode-04-use-read_file-to-read-the-dmi-table-from-sysfs.patch,
dmidecode-05-use-dword-for-structure-table-maximum-size-in-smbios3.patch,
dmidecode-06-hide-irrelevant-fixup-message.patch, and
dmidecode-07-only-decode-one-dmi-table.patch.
-------------------------------------------------------------------
Fri Jan 20 13:18:38 CET 2017 - jdelvare@suse.de
- dmidecode-07-only-decode-one-dmi-table.patch: Only decode one
DMI table.
https://savannah.nongnu.org/bugs/?50022
-------------------------------------------------------------------
Tue May 3 14:10:41 UTC 2016 - jdelvare@suse.de
- dmidecode-01-add-no-sysfs-option-description-to-h-output.patch:
Add "--no-sysfs" option description to -h output.
- dmidecode-02-fix-no-smbios-nor-dmi-entry-point-found-on-smbios3.patch:
Fix 'No SMBIOS nor DMI entry point found' on SMBIOS3.
- dmidecode-03-let-read_file-return-the-actual-data-size.patch:
Let read_file return the actual data size.
- dmidecode-04-use-read_file-to-read-the-dmi-table-from-sysfs.patch:
Use read_file() to read the DMI table from sysfs.
https://savannah.nongnu.org/bugs/?46176
- dmidecode-05-use-dword-for-structure-table-maximum-size-in-smbios3.patch:
Use DWORD for Structure table maximum size in SMBIOS3.
- dmidecode-06-hide-irrelevant-fixup-message.patch:
Hide irrelevant fixup message.
http://savannah.nongnu.org/support/?109024
-------------------------------------------------------------------
Thu Sep 3 10:57:15 CEST 2015 - jdelvare@suse.de
- Update to upstream version 3.0 (FATE#320746, FATE#320773):
* Adds support for SMBIOS 3.0. This includes a new (64-bit) entry
point format and new enumerated values for recent hardware.
* Adds support for the new kernel interface (as of Linux v4.2) as
an alternative to relying on /dev/mem to access the entry point
and DMI table.
* Adds decoding of Acer-specific DMI type 170 and HP-specific DMI
types 212, 219 and 233.
* Obsoletes dmidecode-1.173-drop-cast.patch,
dmidecode-1.175-fix-SMBIOS-2.8.0.patch,
dmidecode-1.176-SMBIOS-2.8-is-supported.patch,
dmidecode-1.177-decode-pcie3-slot-id.patch,
dmidecode-1.181-decode-CPUID-recent-AMD.patch, and
dmidecode-1.182-decode-ddr4-memory-type.patch.
* Various minor fixes and clean-ups.
* Skip the SMBIOS version comparison in quiet mode (bsc#974862).
-------------------------------------------------------------------
Sun Feb 22 09:07:28 UTC 2015 - meissner@suse.com
- dmidecode.keyring was empty, reference the savannah keyring.
but the tarball is signed by someone unknown without gpg signatures,
so no keyring for now.
-------------------------------------------------------------------
Fri Feb 20 20:55:12 UTC 2015 - mpluskal@suse.com
- Cleanup spec file with spec-cleaner
- Add gpg signature
-------------------------------------------------------------------
Mon Oct 13 14:00:09 CEST 2014 - jdelvare@suse.de
- dmidecode-1.181-decode-CPUID-recent-AMD.patch: Decode the CPUID
of recent AMD processors (DMI type 4).
- dmidecode-1.182-decode-ddr4-memory-type.patch: Add support for
DDR4 memory type (DMI type 17) (bsc#955705).
https://savannah.nongnu.org/bugs/?43370
-------------------------------------------------------------------
Mon Jan 13 17:31:16 CET 2014 - jdelvare@suse.de
- dmidecode-1.176-SMBIOS-2.8-is-supported.patch: Bump
SUPPORTED_SMBIOS_VER so that SMBIOS 2.8 implementations don't
trigger a warning.
- dmidecode-1.177-decode-pcie3-slot-id.patch: Decode ID of PCI
Express 3 slots (DMI type 9.)
https://savannah.nongnu.org/bugs/?40178
-------------------------------------------------------------------
Fri Apr 26 12:37:12 UTC 2013 - guillaume@opensuse.org
- Enable build for ARM
-------------------------------------------------------------------
Wed Apr 24 22:07:43 CEST 2013 - jdelvare@suse.de
- Update to upstream version 2.12:
* Adds support for SMBIOS 2.8. This includes new enumerated
values for recent hardware.
* Obsoletes dmidecode-add-SMBIOS-2_7_1-support.patch and
dmidecode-fix-memory-array-location-overrun.patch.
* Various minor fixes and clean-ups.
- dmidecode-1.173-drop-cast.patch: Drop unneeded and possibly
dangerous cast.
- dmidecode-1.175-fix-SMBIOS-2.8.0.patch: Fix support for new
processor upgrade types (DMI type 4) and new memory device type
(DMI type 17.)
-------------------------------------------------------------------
Mon Mar 25 15:09:35 UTC 2013 - mmeister@suse.com
- Added url as source.
Please see http://en.opensuse.org/SourceUrls
-------------------------------------------------------------------
Sun Sep 18 17:17:12 UTC 2011 - jengelh@medozas.de
- Remove redundant tags/sections from specfile
(cf. packaging guidelines)
- Use %_smp_mflags for parallel build
-------------------------------------------------------------------
Wed Apr 13 17:45:35 CEST 2011 - jdelvare@suse.de
- dmidecode-add-SMBIOS-2_7_1-support.patch: Add enumerated values
from SMBIOS 2.7.1.
-------------------------------------------------------------------
Tue Jan 25 17:58:57 CET 2011 - jdelvare@suse.de
- dmidecode-fix-memory-array-location-overrun.patch: Fix boundary
checks of memory array location codes (DMI type 16).
-------------------------------------------------------------------
Thu Jan 20 13:53:27 CET 2011 - jdelvare@suse.de
- Update to upstream version 2.11:
* Adds support for SMBIOS 2.6.1 and 2.7. This includes new
enumerated values for recent hardware.
* Obsoletes dmidecode-fix-makefile-for-GNU-make-3.82.patch.
* Various minor fixes and clean-ups.
-------------------------------------------------------------------
Wed Sep 8 18:17:59 CEST 2010 - jdelvare@suse.de
- dmidecode-fix-makefile-for-GNU-make-3.82.patch: Drop BSD make
command in Makefile, as GNU make 3.82 chokes on it.
-------------------------------------------------------------------
Tue May 5 10:02:31 CEST 2009 - coolo@suse.de
- obsolete pmtools, but do not provide it as it's not a rename
-------------------------------------------------------------------
Wed Mar 25 10:35:42 CET 2009 - jdelvare@suse.de
- Initial packaging. Historically, dmidecode had been part of the
pmtools package, but it didn't make that much sense so it now has
its own package.
- Initial version: 2.10.

693
dmidecode.keyring Normal file
View File

@ -0,0 +1,693 @@
Member GPG keyring of dmidecode group.
Note that this keyring is not intended for checking releases of that group.
Use Group Release Keyring instead.
GPG keys of Jean Delvare <khali>
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
SPS3UW+rReV6hrvii3576kpYBpHjRQ==
=Jz6r
-----END PGP PUBLIC KEY BLOCK-----
GPG keys of Justin M. Forbes <jforbes>
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.10 (GNU/Linux)
mQGiBD+j/30RBACsSGSgBRmIWrwviZMhOEXEpkjErACjPD0popyCGmZMxJS7Jup4
r5BDycglAMPJg62ymSZhBW8x+Kc2ogeOMY1IVpiHkzFKALKE8eV2GAhcWBTXS+fj
UalBvR20aQzV6yJZMSVvEGyLhSvOU/HdGD3TtVOGdAybZidjJHJfTL5SBwCg/5iV
fdoQ5bodlMr3jDeLSIyLjtsD/i3+sIi8uXzBOhXJrJ2bqvgPazDrqxbLGS0Hi95s
SEnuG3Sz9FjlX0klLlNjR1l5V7tsrIoY4mc2LnxlRmCylp1AR2CUVbJOISfTIAAq
rZwAk8eDhg+KVW1RA/Sb/e+0avZ0DINksN5ILqwE6faWOXNdDuB75EBCYvIfRaAh
EVWfA/9UCI0STBSP8eCGCb2acrKCxYxTBr6LOlnaiBJhMyyfUDKcyBv1nZHjK8/K
d8ZVDeAV8egbsTsjDHjEK3ZeiCxlFud6+/P6F0n2uoK3SmQxDl4J1mddPHEbz0Jt
v5E9mv96MALzSJSK/Po3GyR4hTTScFKHid8ZQPRvmFjSVLcnebQnSnVzdGluIE0u
IEZvcmJlcyA8am1mb3JiZXNAbGludXh0eC5vcmc+iGEEExECACECGwMGCwkIBwMC
AxUCAwMWAgECHgECF4AFAkiPMx4CGQEACgkQEIx9c+zGPk2iOQCffjKhxjC9Eo6B
8KFEe8e5XiNsNMAAnRrwB5xPSI3oBOJSoKFm8gKqKn1IiEYEEhECAAYFAkECxrkA
CgkQtVk55/fjw7TNbQCfawCHrfTbamcmeoEYpDRmjlG1oVIAniFca9K/uvePRECy
sPGpk3hnOMY2iEYEEhECAAYFAkEC7VUACgkQLPrIaE/xBZAgcACeJTsYcERoYwPN
J/Ov5dtWD2p2eLYAn0PWR1XdqVFXTqcyGPbUayNihvRziNwEEwECAAYFAkEEFHwA
CgkQwqNdSiQ6EylbwwYAld9WNapRo3QEaoPiNZep/J/6Lhey2VoPh1s8ye7Ux+ce
kcREGVOt5nwqx1q8TlXQHRHOxanELhFmBYTdH54DmOyBIrbRGb08lD0aRQw1FgMj
ffnzYSRy8tlb7wbouE5/RYK363OWCSx0gJjoU/rCvykLnH8P1IA3Na/5UE9hT54g
4o3bDFaS6EaSc94NVbD0QW3dRtxNkVt9wVKcEA2esOBrIpiL3vkyiT+psfSTrSHy
3qRItwFHqexpMw1AYyeHiEYEExECAAYFAkED8sEACgkQIavu95Lw/Ak37ACdFMSP
GIYxUz4v5ONcKkfpbFjoKIkAn1XnF0NZsWBwSzaJQTzKANRJoambtCVKdXN0aW4g
TS4gRm9yYmVzIDxqZm9yYmVzQHJlZGhhdC5jb20+iGAEExECACAFAkmJ9sgCGwMG
CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRAQjH1z7MY+TdtWAKCusokQol8imLru
pKYsRzHiup3OlgCfdBcNnFfCaJ44YBYM0Fo5wOCAKLu5AQ0EP6P/gRAEAKXYICyy
xcAgN3DcEIFZHSuX3u9QI3/qvDg1yESf1PCod9gHoWDYyimRGFyZh/wuYrwr4NA1
VKUjL+bHa9C8IHIBcGwbqYO1Vtu+Xl0PryfsPsia8LkTulZo7k7HVXfd9G6QK1Sp
O4zqtFvOoQ6wij9/U7+YgYTEzAkEGcnS6CAnAAMFA/wJHORQ9ovZ3oCPC2El1qaf
zW/h5LiEbDFZKGMPNIz+bZ7pdrH+tMWv8AcSNZc340Bms0IdthEKCLwm8vAi61x9
hsS/JYR26OKYhlqKeekFDHPV6kW6fQS1tRsMC2KEroTEp4hyvJAadCvHXNDa2MXs
1nbeFRjhT/Sq4TdkLKS/wYhGBBgRAgAGBQI/o/+BAAoJEBCMfXPsxj5NffsAoIIi
Yn0txnT2l583c34qfRWjdy3RAJ9cQJmLyyOlMi/M6KhGtuRpb+1AZ7kBDQRE00lI
AQgAvWyCVqBxuFZkAS2WcbJh0DzHuq67B5H+Ekgi1bWquKPsxgyqU7PEVN7fsBE1
bYKm7PqOBHHRrZbphsPMxy8poLyFmRG5PD8pYmoQd1nCzqMDp5gNNqIqqQzio1x2
xGL2YTa+sOeSAan0augyVJZOmSWqvroPUO67dnqfQCvE7JSp6GY08QqXsIfOyQTH
KDqVAIWjuXOCtzTUJojscbZp/MM4j6/Ywn+hXMUxDwRYWEWL7UJDkUE8/sRRQPA1
Qop7qxNOmLlzKo+vVN4yrVDGumQusbhnHd8Lr4/m3Rl+xD0Zx+MufZFXCToxpTxt
5nATGCNlIm/EpVFrfSMElcncNwARAQABiQFoBBgRAgAJBQJE00lIAhsCASkJEBCM
fXPsxj5NwF0gBBkBAgAGBQJE00lIAAoJELc62klZYsi7HWYIALcqnb4rbk0YgYzv
cFticGfmzhV+f7WawCdHezFBi7i1GBfxkKgx0850a8/KYPHqcMB+1flGxB7XCgz0
O3SX0Ofbl2mZwLB+YMSFMM9AGYA50eQD/lbuHRPDJf3DBK3DrUwflLakuV8Gvsih
veGs4BrG+qkrMlWZfNcOoX7tLJEwD1U4JpKeB3fJXZfbargbIYK2GfZEfkSvw8ez
R21w5AcogzflrpMWzUdYaQPpUV2c2ABVWY4w4RLhIm56tb+S79fiW9JvHF3SOeT0
i8mkD6sQrXHrJqwmCfRVeh/g+5XHw+emf1fCktHvJdODPsiwb9N9IMakjKR5EqrO
/zxQs3CagQCbBTVy+ykO3IAH7uHI5d4LcLETGSoAnRc59G0iSX/GOBQMeldSjbw4
Bo0o
=UkkO
-----END PGP PUBLIC KEY BLOCK-----

83
dmidecode.spec Normal file
View File

@ -0,0 +1,83 @@
#
# spec file for package dmidecode
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: dmidecode
Version: 3.5
Release: 0
Summary: DMI table decoder
License: GPL-2.0-or-later
Group: System/Console
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
Source2: %{name}.keyring
Patch1: arm-use-alignment-workaround.patch
Patch2: dmioem-hpe-oem-record-237-firmware-change.patch
Patch3: use-read_file-to-read-from-dump.patch
Provides: pmtools:%{_sbindir}/dmidecode
Obsoletes: pmtools < 20071117
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: xz
ExclusiveArch: %ix86 ia64 x86_64 %arm aarch64
%description
Dmidecode reports information about your system's hardware as described
in your system BIOS according to the SMBIOS/DMI standard. This
information typically includes system manufacturer, model name, serial
number, BIOS version, asset tag as well as a lot of other details of
varying level of interest and reliability depending on the
manufacturer. This will often include usage status for the CPU sockets,
expansion slots (e.g. AGP, PCI, ISA) and memory module slots, and the
list of I/O ports (e.g. serial, parallel, USB).
Beware that DMI data have proven to be too unreliable to be blindly
trusted. Dmidecode does not scan your hardware, it only reports what
the BIOS told it to.
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%build
CFLAGS="%{optflags}" make %{?_smp_mflags}
%install
install -dm 755 %{buildroot}%{_sbindir}
install -dm 755 %{buildroot}%{_mandir}/man8
install -dm 755 %{buildroot}%{_docdir}/%{name}
%ifarch ia64 %arm aarch64
for i in dmidecode ; do
%else
for i in dmidecode vpddecode ownership biosdecode ; do
%endif
install -m 755 $i %{buildroot}%{_sbindir}/
install -m 644 man/$i.8 %{buildroot}%{_mandir}/man8/
done
%files
%defattr(-,root,root)
%{_sbindir}/*
%dir %{_docdir}/%{name}
%doc AUTHORS NEWS README
%{_mandir}/man8/*
%license LICENSE
%changelog

View File

@ -0,0 +1,39 @@
From: Jerry Hoemann <jerry.hoemann@hpe.com>
Date: Mon, 3 Apr 2023 10:15:12 +0200
Subject: dmioem: HPE OEM Record 237 Firmware change
Git-ommit: 80de376231e903d2cbea95e51ffea31860502159
HPE OEM record type 237 offset 0x09 field was changed from a single
byte STRING to a two byte WORD representing date.
Fixes: cdab638dabb7 ("dmioem: Decode HPE OEM Record 237")
Signed-off-by: Jerry Hoemann <jerry.hoemann@hpe.com>
Signed-off-by: Jean Delvare <jdelvare@suse.de>
---
dmioem.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
--- dmidecode-3.5.orig/dmioem.c
+++ dmidecode-3.5/dmioem.c
@@ -1094,7 +1094,8 @@ static int dmi_decode_hp(const struct dm
* 0x06 | Manufacture|STRING | DIMM Manufacturer
* 0x07 | Part Number|STRING | DIMM Manufacturer's Part Number
* 0x08 | Serial Num |STRING | DIMM Vendor Serial Number
- * 0x09 | Spare Part |STRING | DIMM Spare Part Number
+ * 0x09 | Man Date | BYTE | DIMM Manufacture Date (YEAR) in BCD
+ * 0x0A | Man Date | BYTE | DIMM Manufacture Date (WEEK) in BCD
*/
if (gen < G9) return 0;
pr_handle_name("%s DIMM Vendor Information", company);
@@ -1105,8 +1106,9 @@ static int dmi_decode_hp(const struct dm
pr_attr("DIMM Manufacturer Part Number", "%s", dmi_string(h, data[0x07]));
if (h->length < 0x09) break;
pr_attr("DIMM Vendor Serial Number", "%s", dmi_string(h, data[0x08]));
- if (h->length < 0x0A) break;
- pr_attr("DIMM Spare Part Number", "%s", dmi_string(h, data[0x09]));
+ if (h->length < 0x0B) break;
+ if (WORD(data + 0x09))
+ pr_attr("DIMM Manufacture Date", "20%02x-W%02x", data[0x09], data[0x0A]);
break;
case 238:

View File

@ -0,0 +1,58 @@
From c76ddda0ba0aa99a55945e3290095c2ec493c892 Mon Sep 17 00:00:00 2001
From: Jean Delvare <jdelvare@suse.de>
Date: Wed, 26 Apr 2023 15:44:27 +0200
Subject: [PATCH] Consistently use read_file() when reading from a dump file
Use read_file() instead of mem_chunk() to read the entry point from a
dump file. This is faster, and consistent with how we then read the
actual DMI table from that dump file.
This made no functional difference so far, which is why it went
unnoticed for years. But now that a file type check was added to the
mem_chunk() function, we must stop using it to read from regular
files.
This will again allow root to use the --from-dump option.
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Tested-by: Jerry Hoemann <jerry.hoemann@hpe.com>
diff --git a/dmidecode.c b/dmidecode.c
index 54f59c163daf..52ddbf1a51bd 100644
--- a/dmidecode.c
+++ b/dmidecode.c
@@ -6025,17 +6025,25 @@ int main(int argc, char * const argv[])
pr_comment("dmidecode %s", VERSION);
/* Read from dump if so instructed */
+ size = 0x20;
if (opt.flags & FLAG_FROM_DUMP)
{
if (!(opt.flags & FLAG_QUIET))
pr_info("Reading SMBIOS/DMI data from file %s.",
opt.dumpfile);
- if ((buf = mem_chunk(0, 0x20, opt.dumpfile)) == NULL)
+ if ((buf = read_file(0, &size, opt.dumpfile)) == NULL)
{
ret = 1;
goto exit_free;
}
+ /* Truncated entry point can't be processed */
+ if (size < 0x20)
+ {
+ ret = 1;
+ goto done;
+ }
+
if (memcmp(buf, "_SM3_", 5) == 0)
{
if (smbios3_decode(buf, opt.dumpfile, 0))
@@ -6059,7 +6067,6 @@ int main(int argc, char * const argv[])
* contain one of several types of entry points, so read enough for
* the largest one, then determine what type it contains.
*/
- size = 0x20;
if (!(opt.flags & FLAG_NO_SYSFS)
&& (buf = read_file(0, &size, SYS_ENTRY_FILE)) != NULL)
{