diff --git a/files/0001-Add-no-sysfs-option-description-to-h-output.patch b/files/0001-Add-no-sysfs-option-description-to-h-output.patch deleted file mode 100644 --- a/files/0001-Add-no-sysfs-option-description-to-h-output.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 33b5aafc6ee6b5de9f2526fb1cf4b14d1e16e4f0 Mon Sep 17 00:00:00 2001 -From: Roy Franz -Date: Thu, 1 Oct 2015 08:41:43 +0200 -Subject: [PATCH] Add "--no-sysfs" option description to -h output - -A description of --no-sysfs was not added to the output of "-h" when -the feature was added, so add it now. ---- - CHANGELOG | 4 ++++ - dmiopt.c | 1 + - 2 files changed, 5 insertions(+) - -diff --git a/dmiopt.c b/dmiopt.c -index 0d142d2..de607f4 100644 ---- a/dmiopt.c -+++ b/dmiopt.c -@@ -314,6 +314,7 @@ void print_help(void) - " -u, --dump Do not decode the entries\n" - " --dump-bin FILE Dump the DMI data to a binary file\n" - " --from-dump FILE Read the DMI data from a binary file\n" -+ " --no-sysfs Do not attempt to read DMI data from sysfs files\n" - " -V, --version Display the version and exit\n"; - - printf("%s", help); --- -2.12.2 - diff --git a/files/0001-Fix-No-SMBIOS-nor-DMI-entry-point-found-on-SMBIOS3.patch b/files/0001-Fix-No-SMBIOS-nor-DMI-entry-point-found-on-SMBIOS3.patch deleted file mode 100644 --- a/files/0001-Fix-No-SMBIOS-nor-DMI-entry-point-found-on-SMBIOS3.patch +++ /dev/null @@ -1,51 +0,0 @@ -From bf7bad24ce141dab5b5acc3ffb98ce5fe4a8e0f9 Mon Sep 17 00:00:00 2001 -From: Xie XiuQi -Date: Wed, 21 Oct 2015 15:12:50 +0200 -Subject: [PATCH] Fix 'No SMBIOS nor DMI entry point found' on SMBIOS3 - -address_from_efi may return a SMBIOS or SMBIOS3 format entry -point, so add this condition. ---- - AUTHORS | 1 + - CHANGELOG | 4 ++++ - dmidecode.c | 12 ++++++++++-- - 3 files changed, 15 insertions(+), 2 deletions(-) - -diff --git a/AUTHORS b/AUTHORS -index d4badfa..ccf7fbb 100644 ---- a/AUTHORS -+++ b/AUTHORS -@@ -19,6 +19,7 @@ Jarod Wilson - Anton Arapov - Roy Franz - Tyler Bell -+Xie XiuQi - - MANY THANKS TO (IN CHRONOLOGICAL ORDER) - Werner Heuser -diff --git a/dmidecode.c b/dmidecode.c -index ce0511b..cfcade4 100644 ---- a/dmidecode.c -+++ b/dmidecode.c -@@ -4866,8 +4866,16 @@ int main(int argc, char * const argv[]) - goto exit_free; - } - -- if (smbios_decode(buf, opt.devmem, 0)) -- found++; -+ if (memcmp(buf, "_SM3_", 5) == 0) -+ { -+ if (smbios3_decode(buf, opt.devmem, 0)) -+ found++; -+ } -+ else if (memcmp(buf, "_SM_", 4) == 0) -+ { -+ if (smbios_decode(buf, opt.devmem, 0)) -+ found++; -+ } - goto done; - - memory_scan: --- -2.12.2 - diff --git a/files/0001-Let-read_file-return-the-actual-data-size.patch b/files/0001-Let-read_file-return-the-actual-data-size.patch deleted file mode 100644 --- a/files/0001-Let-read_file-return-the-actual-data-size.patch +++ /dev/null @@ -1,99 +0,0 @@ -From de9a74e1c60210bee229fcf55b1678a99d1b44dd Mon Sep 17 00:00:00 2001 -From: Jean Delvare -Date: Mon, 2 Nov 2015 09:45:26 +0100 -Subject: [PATCH] Let read_file return the actual data size - -Let read_file return the actual data size to the caller. This gives -the caller the possibility to check that the data size is as expected -and large enough for the purpose, and report to the user if not. ---- - CHANGELOG | 5 +++++ - dmidecode.c | 4 +++- - util.c | 11 +++++++---- - util.h | 2 +- - 4 files changed, 16 insertions(+), 6 deletions(-) - -diff --git a/dmidecode.c b/dmidecode.c -index 183ced4..a43cfd1 100644 ---- a/dmidecode.c -+++ b/dmidecode.c -@@ -4751,6 +4751,7 @@ int main(int argc, char * const argv[]) - int ret = 0; /* Returned value */ - int found = 0; - off_t fp; -+ size_t size; - int efi; - u8 *buf; - -@@ -4820,8 +4821,9 @@ 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(0x20, SYS_ENTRY_FILE)) != NULL) -+ && (buf = read_file(&size, SYS_ENTRY_FILE)) != NULL) - { - if (!(opt.flags & FLAG_QUIET)) - printf("Getting SMBIOS data from sysfs.\n"); -diff --git a/util.c b/util.c -index f97ac0d..52ed413 100644 ---- a/util.c -+++ b/util.c -@@ -94,10 +94,11 @@ int checksum(const u8 *buf, size_t len) - * needs to be freed by the caller. - * This provides a similar usage model to mem_chunk() - * -- * Returns pointer to buffer of max_len bytes, or NULL on error -+ * Returns pointer to buffer of max_len bytes, or NULL on error, and -+ * sets max_len to the length actually read. - * - */ --void *read_file(size_t max_len, const char *filename) -+void *read_file(size_t *max_len, const char *filename) - { - int fd; - size_t r2 = 0; -@@ -115,7 +116,7 @@ void *read_file(size_t max_len, const char *filename) - return(NULL); - } - -- if ((p = malloc(max_len)) == NULL) -+ if ((p = malloc(*max_len)) == NULL) - { - perror("malloc"); - return NULL; -@@ -123,7 +124,7 @@ void *read_file(size_t max_len, const char *filename) - - do - { -- r = read(fd, p + r2, max_len - r2); -+ r = read(fd, p + r2, *max_len - r2); - if (r == -1) - { - if (errno != EINTR) -@@ -140,6 +141,8 @@ void *read_file(size_t max_len, const char *filename) - while (r != 0); - - close(fd); -+ *max_len = r2; -+ - return p; - } - -diff --git a/util.h b/util.h -index 9d409cd..b8748f1 100644 ---- a/util.h -+++ b/util.h -@@ -25,7 +25,7 @@ - #define ARRAY_SIZE(x) (sizeof(x)/sizeof((x)[0])) - - int checksum(const u8 *buf, size_t len); --void *read_file(size_t len, const char *filename); -+void *read_file(size_t *len, const char *filename); - void *mem_chunk(off_t base, size_t len, const char *devmem); - int write_dump(size_t base, size_t len, const void *data, const char *dumpfile, int add); - u64 u64_range(u64 start, u64 end); --- -2.12.2 - diff --git a/files/0001-Only-decode-one-DMI-table.patch b/files/0001-Only-decode-one-DMI-table.patch deleted file mode 100644 --- a/files/0001-Only-decode-one-DMI-table.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 12fbde92a26da61eda9f2ff0ba3c316779163f10 Mon Sep 17 00:00:00 2001 -From: Jean Delvare -Date: Fri, 20 Jan 2017 10:57:12 +0100 -Subject: [PATCH] Only decode one DMI table - -Since version 3.0.0 of the SMBIOS specification, there can be -multiple entry points in memory, pointing to one or two DMI tables. -If both a 32-bit ("_SM_") entry point and a 64-bit ("_SM3_") entry -point are present, the specification requires that the latter points -to a table which is a super-set of the table pointed to by the -former. Therefore it makes no sense to decode both. - -Per specification, look for a 64-bit ("_SM3_") entry point first, and -if we can't find any, look for a 32-bit ("_SM_" or "_DMI_") entry -point. - -This fixes bug #50022: -https://savannah.nongnu.org/bugs/?50022 ---- - CHANGELOG | 6 ++++++ - dmidecode.c | 19 ++++++++++++++----- - 2 files changed, 20 insertions(+), 5 deletions(-) - -diff --git a/dmidecode.c b/dmidecode.c -index 3993592..4b46a13 100644 ---- a/dmidecode.c -+++ b/dmidecode.c -@@ -4925,28 +4925,37 @@ memory_scan: - goto exit_free; - } - -- for (fp = 0; fp <= 0xFFF0; fp += 16) -+ /* Look for a 64-bit entry point first */ -+ for (fp = 0; fp <= 0xFFE0; fp += 16) - { -- if (memcmp(buf + fp, "_SM3_", 5) == 0 && fp <= 0xFFE0) -+ if (memcmp(buf + fp, "_SM3_", 5) == 0) - { - if (smbios3_decode(buf + fp, opt.devmem, 0)) - { - found++; -- fp += 16; -+ goto done; - } - } -- else if (memcmp(buf + fp, "_SM_", 4) == 0 && fp <= 0xFFE0) -+ } -+ -+ /* If none found, look for a 32-bit entry point */ -+ for (fp = 0; fp <= 0xFFF0; fp += 16) -+ { -+ if (memcmp(buf + fp, "_SM_", 4) == 0 && fp <= 0xFFE0) - { - if (smbios_decode(buf + fp, opt.devmem, 0)) - { - found++; -- fp += 16; -+ goto done; - } - } - else if (memcmp(buf + fp, "_DMI_", 5) == 0) - { - if (legacy_decode(buf + fp, opt.devmem, 0)) -+ { - found++; -+ goto done; -+ } - } - } - --- -2.12.2 - diff --git a/files/0001-Use-DWORD-for-Structure-table-maximum-size-in-SMBIOS.patch b/files/0001-Use-DWORD-for-Structure-table-maximum-size-in-SMBIOS.patch deleted file mode 100644 --- a/files/0001-Use-DWORD-for-Structure-table-maximum-size-in-SMBIOS.patch +++ /dev/null @@ -1,33 +0,0 @@ -From ab02b117511230e46bbef7febbd854b9c832c13c Mon Sep 17 00:00:00 2001 -From: Xie XiuQi -Date: Mon, 1 Feb 2016 09:30:31 +0100 -Subject: [PATCH] Use DWORD for Structure table maximum size in SMBIOS3 - -0Ch DWORD "Structure table maximum size" - -Maximum size of SMBIOS Structure Table, pointed to by -the Structure Table Address, in bytes. The actual size is -guaranteed to be less or equal to the maximum size. - -Signed-off-by: Xie XiuQi -Signed-off-by: Jean Delvare ---- - dmidecode.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dmidecode.c b/dmidecode.c -index b47c469..0c26685 100644 ---- a/dmidecode.c -+++ b/dmidecode.c -@@ -4615,7 +4615,7 @@ static int smbios3_decode(u8 *buf, const char *devmem, u32 flags) - } - - dmi_table(((off_t)offset.h << 32) | offset.l, -- WORD(buf + 0x0C), 0, ver, devmem, flags | FLAG_STOP_AT_EOT); -+ DWORD(buf + 0x0C), 0, ver, devmem, flags | FLAG_STOP_AT_EOT); - - if (opt.flags & FLAG_DUMP_BIN) - { --- -2.12.2 - diff --git a/files/0001-dmidecode-Hide-irrelevant-fixup-message.patch b/files/0001-dmidecode-Hide-irrelevant-fixup-message.patch deleted file mode 100644 --- a/files/0001-dmidecode-Hide-irrelevant-fixup-message.patch +++ /dev/null @@ -1,52 +0,0 @@ -From cff11afa886a0147d734b650755d232b5e7f2099 Mon Sep 17 00:00:00 2001 -From: Jean Delvare -Date: Tue, 3 May 2016 15:32:21 +0200 -Subject: [PATCH] dmidecode: Hide irrelevant fixup message - -Only display the message about type 34 length fixup if the entry in -question is going to be displayed. Otherwise it's only confusing. - -This fixes bug #109024: -http://savannah.nongnu.org/support/?109024 - -Fixes: 3f70b3515d91 ("dmidecode: Fix up invalid DMI type 34 structure length") ---- - dmidecode.c | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -diff --git a/dmidecode.c b/dmidecode.c -index 0c26685..84c18e1 100644 ---- a/dmidecode.c -+++ b/dmidecode.c -@@ -2949,7 +2949,7 @@ static void dmi_64bit_memory_error_address(u64 code) - * first 5 characters of the device name to be trimmed. It's easy to - * check and fix, so do it, but warn. - */ --static void dmi_fixup_type_34(struct dmi_header *h) -+static void dmi_fixup_type_34(struct dmi_header *h, int display) - { - u8 *p = h->data; - -@@ -2957,7 +2957,9 @@ static void dmi_fixup_type_34(struct dmi_header *h) - if (h->length == 0x10 - && is_printable(p + 0x0B, 0x10 - 0x0B)) - { -- printf("Invalid entry length (%u). Fixed up to %u.\n", 0x10, 0x0B); -+ if (!(opt.flags & FLAG_QUIET) && display) -+ printf("Invalid entry length (%u). Fixed up to %u.\n", -+ 0x10, 0x0B); - h->length = 0x0B; - } - } -@@ -4446,7 +4448,7 @@ static void dmi_table_decode(u8 *buf, u32 len, u16 num, u16 ver, u32 flags) - - /* Fixup a common mistake */ - if (h.type == 34) -- dmi_fixup_type_34(&h); -+ dmi_fixup_type_34(&h, display); - - /* look for the next handle */ - next = data + h.length; --- -2.12.2 - diff --git a/files/0001-dmidecode-Unmask-LRDIMM-in-memory-type-detail.patch b/files/0001-dmidecode-Unmask-LRDIMM-in-memory-type-detail.patch deleted file mode 100644 --- a/files/0001-dmidecode-Unmask-LRDIMM-in-memory-type-detail.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 23aa50565a65c98fc452ed8ffdffb49b6504941d Mon Sep 17 00:00:00 2001 -From: Petr Oros -Date: Thu, 30 Jun 2016 11:50:30 +0200 -Subject: [PATCH] dmidecode: Unmask LRDIMM in memory type detail - -For memory with bit 15 only set, dmidecode would show "None" in type -detail. - -Fixes: 0740adaea98a ("Bump release verison to 2.12") -Signed-off-by: Petr Oros -Signed-off-by: Jean Delvare ---- - AUTHORS | 1 + - CHANGELOG | 4 ++++ - dmidecode.c | 2 +- - 3 files changed, 6 insertions(+), 1 deletion(-) - -diff --git a/AUTHORS b/AUTHORS -index ccf7fbb..748b985 100644 ---- a/AUTHORS -+++ b/AUTHORS -@@ -20,6 +20,7 @@ Anton Arapov - Roy Franz - Tyler Bell - Xie XiuQi -+Petr Oros - - MANY THANKS TO (IN CHRONOLOGICAL ORDER) - Werner Heuser -diff --git a/dmidecode.c b/dmidecode.c -index 84c18e1..48d9e66 100644 ---- a/dmidecode.c -+++ b/dmidecode.c -@@ -2392,7 +2392,7 @@ static void dmi_memory_device_type_detail(u16 code) - "LRDIMM" /* 15 */ - }; - -- if ((code & 0x7FFE) == 0) -+ if ((code & 0xFFFE) == 0) - printf(" None"); - else - { --- -2.12.2 - diff --git a/files/0001-dmidecode-Use-read_file-to-read-the-DMI-table-from-s.patch b/files/0001-dmidecode-Use-read_file-to-read-the-DMI-table-from-s.patch deleted file mode 100644 --- a/files/0001-dmidecode-Use-read_file-to-read-the-DMI-table-from-s.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 364055211b1956539c6a6268e111e244e1292c8c Mon Sep 17 00:00:00 2001 -From: Jean Delvare -Date: Mon, 2 Nov 2015 09:45:31 +0100 -Subject: [PATCH] dmidecode: Use read_file() to read the DMI table from sysfs - -We shouldn't use mem_chunk() to read the DMI table from sysfs. This -will fail for SMBIOS v3 implementations which specify a maximum length -for the table rather than its exact length. The kernel will trim the -table to the actual length, so the DMI file will be shorter than the -length announced in entry point. - -read_file() fits the bill in this case, as it deals with end of file -nicely. - -This also helps with corrupted DMI tables, as the kernel will not -export the part of the table that it wasn't able to parse, effectively -trimming it. - -This fixes bug #46176: -https://savannah.nongnu.org/bugs/?46176 -Unexpected end of file error ---- - CHANGELOG | 3 +++ - dmidecode.c | 29 +++++++++++++++++++++-------- - 2 files changed, 24 insertions(+), 8 deletions(-) - -diff --git a/dmidecode.c b/dmidecode.c -index a43cfd1..16d1823 100644 ---- a/dmidecode.c -+++ b/dmidecode.c -@@ -4524,16 +4524,29 @@ static void dmi_table(off_t base, u32 len, u16 num, u16 ver, const char *devmem, - printf("\n"); - } - -- /* -- * When we are reading the DMI table from sysfs, we want to print -- * the address of the table (done above), but the offset of the -- * data in the file is 0. When reading from /dev/mem, the offset -- * in the file is the address. -- */ - if (flags & FLAG_NO_FILE_OFFSET) -- base = 0; -+ { -+ /* -+ * When reading from sysfs, the file may be shorter than -+ * announced. For SMBIOS v3 this is expcted, as we only know -+ * the maximum table size, not the actual table size. For older -+ * implementations (and for SMBIOS v3 too), this would be the -+ * result of the kernel truncating the table on parse error. -+ */ -+ size_t size = len; -+ buf = read_file(&size, devmem); -+ if (!(opt.flags & FLAG_QUIET) && num && size != (size_t)len) -+ { -+ printf("Wrong DMI structures length: %u bytes " -+ "announced, only %lu bytes available.\n", -+ len, (unsigned long)size); -+ } -+ len = size; -+ } -+ else -+ buf = mem_chunk(base, len, devmem); - -- if ((buf = mem_chunk(base, len, devmem)) == NULL) -+ if (buf == NULL) - { - fprintf(stderr, "Table is unreachable, sorry." - #ifndef USE_MMAP --- -2.12.2 - diff --git a/files/series b/files/series --- a/files/series +++ b/files/series @@ -1,8 +0,0 @@ -0001-Add-no-sysfs-option-description-to-h-output.patch -0001-Fix-No-SMBIOS-nor-DMI-entry-point-found-on-SMBIOS3.patch -0001-Let-read_file-return-the-actual-data-size.patch -0001-dmidecode-Use-read_file-to-read-the-DMI-table-from-s.patch -0001-Use-DWORD-for-Structure-table-maximum-size-in-SMBIOS.patch -0001-dmidecode-Hide-irrelevant-fixup-message.patch -0001-dmidecode-Unmask-LRDIMM-in-memory-type-detail.patch -0001-Only-decode-one-DMI-table.patch diff --git a/package.yml b/package.yml --- a/package.yml +++ b/package.yml @@ -1,8 +1,8 @@ name : dmidecode -version : '3.0' -release : 4 +version : '3.1' +release : 5 source : - - http://download.savannah.gnu.org/releases/dmidecode/dmidecode-3.0.tar.xz : 7ec35bb193729c1d593a1460b59d82d24b89102ab23fd0416e6cf4325d077e45 + - http://download.savannah.gnu.org/releases/dmidecode/dmidecode-3.1.tar.xz : d766ce9b25548c59b1e7e930505b4cad9a7bb0b904a1a391fbb604d529781ac0 license : GPL-2.0 component : system.utils summary : Dmidecode reports information about your system's hardware as described in your system BIOS. @@ -10,7 +10,6 @@ Dmidecode reports information about your system's hardware as described in your system BIOS according to the SMBIOS/DMI standard (see a sample output). 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. clang : no setup : | - %apply_patches build : | %make prefix=/usr install : | diff --git a/pspec_x86_64.xml b/pspec_x86_64.xml --- a/pspec_x86_64.xml +++ b/pspec_x86_64.xml @@ -25,12 +25,12 @@ - - 2017-04-10 - 3.0 + + 2017-07-17 + 3.1 Packaging update Alexander Nordahl alex@aqumbo.se \ No newline at end of file