commit fc3389d61d28b2d089ab1d597057cc015f6173e46ed7fe94855f03b159130782 Author: Adrian Schröter Date: Fri May 3 12:05:57 2024 +0200 Sync from SUSE:SLFO:Main dmidecode revision e2af8bdac138a565262e1a43bff7630d diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/arm-use-alignment-workaround.patch b/arm-use-alignment-workaround.patch new file mode 100644 index 0000000..633e5ce --- /dev/null +++ b/arm-use-alignment-workaround.patch @@ -0,0 +1,25 @@ +From: Jean Delvare +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 +--- + 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 + diff --git a/dmidecode-3.5.tar.xz b/dmidecode-3.5.tar.xz new file mode 100644 index 0000000..6d2397c --- /dev/null +++ b/dmidecode-3.5.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79d76735ee8e25196e2a722964cf9683f5a09581503537884b256b01389cc073 +size 65068 diff --git a/dmidecode-3.5.tar.xz.sig b/dmidecode-3.5.tar.xz.sig new file mode 100644 index 0000000..5d34c96 Binary files /dev/null and b/dmidecode-3.5.tar.xz.sig differ diff --git a/dmidecode.changes b/dmidecode.changes new file mode 100644 index 0000000..8f5652d --- /dev/null +++ b/dmidecode.changes @@ -0,0 +1,370 @@ +------------------------------------------------------------------- +Thu Apr 27 10:55:57 UTC 2023 - Jean Delvare + +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 + +- 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 + +- arm-use-alignment-workaround.patch: Fix the massive build + warnings on armv7l. + +------------------------------------------------------------------- +Thu Mar 16 12:26:11 UTC 2023 - Jean Delvare + +- 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 + +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 + +- 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 + +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 + +- 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 + +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 + +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 + +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. + diff --git a/dmidecode.keyring b/dmidecode.keyring new file mode 100644 index 0000000..9a2c59c --- /dev/null +++ b/dmidecode.keyring @@ -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 +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +SPS3UW+rReV6hrvii3576kpYBpHjRQ== +=Jz6r +-----END PGP PUBLIC KEY BLOCK----- +GPG keys of Justin M. Forbes +-----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----- diff --git a/dmidecode.spec b/dmidecode.spec new file mode 100644 index 0000000..325a04c --- /dev/null +++ b/dmidecode.spec @@ -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 diff --git a/dmioem-hpe-oem-record-237-firmware-change.patch b/dmioem-hpe-oem-record-237-firmware-change.patch new file mode 100644 index 0000000..53b28f1 --- /dev/null +++ b/dmioem-hpe-oem-record-237-firmware-change.patch @@ -0,0 +1,39 @@ +From: Jerry Hoemann +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 +Signed-off-by: Jean Delvare +--- + 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: diff --git a/use-read_file-to-read-from-dump.patch b/use-read_file-to-read-from-dump.patch new file mode 100644 index 0000000..cd1cb93 --- /dev/null +++ b/use-read_file-to-read-from-dump.patch @@ -0,0 +1,58 @@ +From c76ddda0ba0aa99a55945e3290095c2ec493c892 Mon Sep 17 00:00:00 2001 +From: Jean Delvare +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 +Tested-by: Jerry Hoemann + +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) + {