Mon Nov 28 04:26:08 2022 UTC ()
optionally use /dev/smbios on all netbsd platforms, if machdep.smbios
exists and is non-zero.

this makes dmidecode by default work on x86 with INSECURE.

bump pkg version.


(mrg)
diff -r1.38 -r1.39 pkgsrc/sysutils/dmidecode/Makefile
diff -r1.34 -r1.35 pkgsrc/sysutils/dmidecode/distinfo
diff -r0 -r1.1 pkgsrc/sysutils/dmidecode/patches/patch-biosdecode.c
diff -r0 -r1.1 pkgsrc/sysutils/dmidecode/patches/patch-dmiopt.c
diff -r0 -r1.1 pkgsrc/sysutils/dmidecode/patches/patch-ownership.c
diff -r0 -r1.1 pkgsrc/sysutils/dmidecode/patches/patch-util.c
diff -r0 -r1.1 pkgsrc/sysutils/dmidecode/patches/patch-vpdopt.c
diff -r1.1 -r1.2 pkgsrc/sysutils/dmidecode/patches/patch-config.h

cvs diff -r1.38 -r1.39 pkgsrc/sysutils/dmidecode/Makefile (expand / switch to unified diff)

--- pkgsrc/sysutils/dmidecode/Makefile 2022/10/11 09:12:18 1.38
+++ pkgsrc/sysutils/dmidecode/Makefile 2022/11/28 04:26:08 1.39
@@ -1,19 +1,20 @@ @@ -1,19 +1,20 @@
1# $NetBSD: Makefile,v 1.38 2022/10/11 09:12:18 msaitoh Exp $ 1# $NetBSD: Makefile,v 1.39 2022/11/28 04:26:08 mrg Exp $
2# 2#
3 3
4DISTNAME= dmidecode-3.4 4DISTNAME= dmidecode-3.4
5EXTRACT_SUFX= .tar.xz 5EXTRACT_SUFX= .tar.xz
6CATEGORIES= sysutils 6CATEGORIES= sysutils
7MASTER_SITES= https://download.savannah.gnu.org/releases/dmidecode/ 7MASTER_SITES= https://download.savannah.gnu.org/releases/dmidecode/
 8PKGREVISION= 1
8 9
9MAINTAINER= msaitoh@NetBSD.org 10MAINTAINER= msaitoh@NetBSD.org
10HOMEPAGE= https://www.nongnu.org/dmidecode/ 11HOMEPAGE= https://www.nongnu.org/dmidecode/
11COMMENT= Print out DMI (SMBIOS) table in human-readable format 12COMMENT= Print out DMI (SMBIOS) table in human-readable format
12LICENSE= gnu-gpl-v2 13LICENSE= gnu-gpl-v2
13 14
14MAKE_FLAGS+= CFLAGS=${CFLAGS:Q} 15MAKE_FLAGS+= CFLAGS=${CFLAGS:Q}
15MAKE_FLAGS+= LDFLAGS=${LDFLAGS:Q} 16MAKE_FLAGS+= LDFLAGS=${LDFLAGS:Q}
16 17
17ONLY_FOR_PLATFORM= *-*-i386 *-*-x86_64 *-*-aarch64* 18ONLY_FOR_PLATFORM= *-*-i386 *-*-x86_64 *-*-aarch64*
18 19
19.include "../../mk/bsd.pkg.mk" 20.include "../../mk/bsd.pkg.mk"

cvs diff -r1.34 -r1.35 pkgsrc/sysutils/dmidecode/distinfo (expand / switch to unified diff)

--- pkgsrc/sysutils/dmidecode/distinfo 2022/10/11 09:12:18 1.34
+++ pkgsrc/sysutils/dmidecode/distinfo 2022/11/28 04:26:08 1.35
@@ -1,8 +1,13 @@ @@ -1,8 +1,13 @@
1$NetBSD: distinfo,v 1.34 2022/10/11 09:12:18 msaitoh Exp $ 1$NetBSD: distinfo,v 1.35 2022/11/28 04:26:08 mrg Exp $
2 2
3BLAKE2s (dmidecode-3.4.tar.xz) = 4c77dc57ab99615165128047f803e6bf0844e7f97396a6754da4780d39a620c3 3BLAKE2s (dmidecode-3.4.tar.xz) = 4c77dc57ab99615165128047f803e6bf0844e7f97396a6754da4780d39a620c3
4SHA512 (dmidecode-3.4.tar.xz) = 62990b6159e5a7c8688d37e44957e7948391d2c6afeabaa4514ba9dad2d08b020297676e2dbbfcb6471efc6fb6f3682750422931a953f78f358bb3dd3745e95b 4SHA512 (dmidecode-3.4.tar.xz) = 62990b6159e5a7c8688d37e44957e7948391d2c6afeabaa4514ba9dad2d08b020297676e2dbbfcb6471efc6fb6f3682750422931a953f78f358bb3dd3745e95b
5Size (dmidecode-3.4.tar.xz) = 61420 bytes 5Size (dmidecode-3.4.tar.xz) = 61420 bytes
6SHA1 (patch-aa) = 4ffeddeb647d07d8d712bab9983c1530e59e6f37 6SHA1 (patch-aa) = 4ffeddeb647d07d8d712bab9983c1530e59e6f37
7SHA1 (patch-config.h) = 6ca6459a79ca207ec8b59f0532b2c1db841dc05c 7SHA1 (patch-biosdecode.c) = 76366037a20d7bed2f90771343fbe777ac1e1059
 8SHA1 (patch-config.h) = d06c1d45b60e0c687a39b76b4beb007ffa1b4ee4
8SHA1 (patch-dmidecode.c) = fe63079df824753a2aca9b9d0371523a36bb08ce 9SHA1 (patch-dmidecode.c) = fe63079df824753a2aca9b9d0371523a36bb08ce
 10SHA1 (patch-dmiopt.c) = dd4b990fdf9b5b417459a0a2ddb2e97589605377
 11SHA1 (patch-ownership.c) = 4417df76809b187be5c2c3ef691cba2285278df2
 12SHA1 (patch-util.c) = d87f60f232e3facbd9aa8fae2e2a2be6bfe4ade5
 13SHA1 (patch-vpdopt.c) = 1237207adb8db7aae294153f1bdc27a4e7941737

File Added: pkgsrc/sysutils/dmidecode/patches/patch-biosdecode.c
$NetBSD: patch-biosdecode.c,v 1.1 2022/11/28 04:26:08 mrg Exp $

* Use /dev/smbios instead of /dev/mem on NetBSD if available.

--- biosdecode.c.orig	2022-06-27 08:06:32.000000000 -0700
+++ biosdecode.c	2022-11-27 14:28:45.654835935 -0800
@@ -645,12 +645,12 @@
 	static const char *help =
 		"Usage: biosdecode [OPTIONS]\n"
 		"Options are:\n"
-		" -d, --dev-mem FILE     Read memory from device FILE (default: " DEFAULT_MEM_DEV ")\n"
+		" -d, --dev-mem FILE     Read memory from device FILE (default: %s)\n"
 		"     --pir full         Decode the details of the PCI IRQ routing table\n"
 		" -h, --help             Display this help text and exit\n"
 		" -V, --version          Display the version and exit\n";
 
-	printf("%s", help);
+	printf(help, DEFAULT_MEM_DEV);
 }
 
 int main(int argc, char * const argv[])

File Added: pkgsrc/sysutils/dmidecode/patches/patch-dmiopt.c
$NetBSD: patch-dmiopt.c,v 1.1 2022/11/28 04:26:08 mrg Exp $

* Use /dev/smbios instead of /dev/mem on NetBSD if available.

--- dmiopt.c.orig	2022-06-27 08:06:32.000000000 -0700
+++ dmiopt.c	2022-11-27 14:28:45.656425673 -0800
@@ -368,7 +368,7 @@
 	static const char *help =
 		"Usage: dmidecode [OPTIONS]\n"
 		"Options are:\n"
-		" -d, --dev-mem FILE     Read memory from device FILE (default: " DEFAULT_MEM_DEV ")\n"
+		" -d, --dev-mem FILE     Read memory from device FILE (default: %s)\n"
 		" -h, --help             Display this help text and exit\n"
 		" -q, --quiet            Less verbose output\n"
 		" -s, --string KEYWORD   Only display the value of the given DMI string\n"
@@ -381,5 +381,5 @@
 		"     --oem-string N     Only display the value of the given OEM string\n"
 		" -V, --version          Display the version and exit\n";
 
-	printf("%s", help);
+	printf(help, DEFAULT_MEM_DEV);
 }

File Added: pkgsrc/sysutils/dmidecode/patches/patch-ownership.c
$NetBSD: patch-ownership.c,v 1.1 2022/11/28 04:26:08 mrg Exp $

* Use /dev/smbios instead of /dev/mem on NetBSD if available.

--- ownership.c.orig	2022-06-27 08:06:32.000000000 -0700
+++ ownership.c	2022-11-27 14:28:45.655641133 -0800
@@ -146,11 +146,11 @@
 	static const char *help =
 		"Usage: ownership [OPTIONS]\n"
 		"Options are:\n"
-		" -d, --dev-mem FILE     Read memory from device FILE (default: " DEFAULT_MEM_DEV ")\n"
+		" -d, --dev-mem FILE     Read memory from device FILE (default: %s)\n"
 		" -h, --help             Display this help text and exit\n"
 		" -V, --version          Display the version and exit\n";
 
-	printf("%s", help);
+	printf(help, DEFAULT_MEM_DEV);
 }
 
 int main(int argc, char * const argv[])

File Added: pkgsrc/sysutils/dmidecode/patches/patch-util.c
$NetBSD: patch-util.c,v 1.1 2022/11/28 04:26:08 mrg Exp $

* Use /dev/smbios instead of /dev/mem on NetBSD if available.

--- util.c.orig	2022-06-27 08:06:32.000000000 -0700
+++ util.c	2022-11-27 14:28:45.657997798 -0800
@@ -36,6 +36,9 @@
 #define MAP_FAILED ((void *) -1)
 #endif /* !MAP_FAILED */
 #endif /* USE MMAP */
+#ifdef __NetBSD__
+#include <sys/sysctl.h>
+#endif
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -314,3 +317,28 @@
 
 	return res;
 }
+
+#ifdef USE_DEFAULT_MEM_DEV_FUNC
+const char *
+default_mem_dev(void)
+{
+#ifdef __NetBSD__
+	uint64_t addr;
+	size_t addrlen = sizeof addr;
+	int ret;
+
+	/*
+	 * If machdep.smbios exists and has a non-zero value, /dev/smbios
+	 * should work.  Otherwise fallback to /dev/mem.
+	 */
+	ret = sysctlbyname("machdep.smbios", &addr, &addrlen, NULL, 0);
+	if (ret == 0 && addr != 0) {
+		return "/dev/smbios";
+	} else {
+		return "/dev/mem";
+	}
+#else
+# error "not implemented."
+#endif
+}
+#endif

File Added: pkgsrc/sysutils/dmidecode/patches/patch-vpdopt.c
$NetBSD: patch-vpdopt.c,v 1.1 2022/11/28 04:26:08 mrg Exp $

* Use /dev/smbios instead of /dev/mem on NetBSD if available.

--- vpdopt.c.orig	2022-06-27 08:06:32.000000000 -0700
+++ vpdopt.c	2022-11-27 14:28:45.657210082 -0800
@@ -147,11 +147,11 @@
 	static const char *help =
 		"Usage: vpddecode [OPTIONS]\n"
 		"Options are:\n"
-		" -d, --dev-mem FILE     Read memory from device FILE (default: " DEFAULT_MEM_DEV ")\n"
+		" -d, --dev-mem FILE     Read memory from device FILE (default: %s)\n"
 		" -h, --help             Display this help text and exit\n"
 		" -s, --string KEYWORD   Only display the value of the given VPD string\n"
 		" -u, --dump             Do not decode the VPD records\n"
 		" -V, --version          Display the version and exit\n";
 
-	printf("%s", help);
+	printf(help, DEFAULT_MEM_DEV);
 }

cvs diff -r1.1 -r1.2 pkgsrc/sysutils/dmidecode/patches/patch-config.h (expand / switch to unified diff)

--- pkgsrc/sysutils/dmidecode/patches/patch-config.h 2021/07/24 13:23:52 1.1
+++ pkgsrc/sysutils/dmidecode/patches/patch-config.h 2022/11/28 04:26:08 1.2
@@ -1,15 +1,27 @@ @@ -1,15 +1,27 @@
1$NetBSD: patch-config.h,v 1.1 2021/07/24 13:23:52 jmcneill Exp $ 1$NetBSD: patch-config.h,v 1.2 2022/11/28 04:26:08 mrg Exp $
2 2
3* Use /dev/smbios instead of /dev/mem on NetBSD aarch64 3* Use /dev/smbios instead of /dev/mem on NetBSD if available.
4 4
5--- config.h.orig 2020-10-14 12:51:11.000000000 +0000 5--- config.h.orig 2022-06-27 08:06:32.000000000 -0700
6+++ config.h 6+++ config.h 2022-11-27 14:30:20.312604489 -0800
7@@ -8,6 +8,8 @@ 7@@ -8,6 +8,8 @@
8 /* Default memory device file */ 8 /* Default memory device file */
9 #if defined(__BEOS__) || defined(__HAIKU__) 9 #if defined(__BEOS__) || defined(__HAIKU__)
10 #define DEFAULT_MEM_DEV "/dev/misc/mem" 10 #define DEFAULT_MEM_DEV "/dev/misc/mem"
11+#elif defined(__NetBSD__) && defined(__aarch64__) 11+#elif defined(__NetBSD__)
12+#define DEFAULT_MEM_DEV "/dev/smbios" 12+#define USE_DEFAULT_MEM_DEV_FUNC 1
13 #else 13 #else
14 #ifdef __sun 14 #ifdef __sun
15 #define DEFAULT_MEM_DEV "/dev/xsvc" 15 #define DEFAULT_MEM_DEV "/dev/xsvc"
 16@@ -16,6 +18,11 @@
 17 #endif
 18 #endif
 19
 20+#ifdef USE_DEFAULT_MEM_DEV_FUNC
 21+const char *default_mem_dev(void);
 22+#define DEFAULT_MEM_DEV default_mem_dev()
 23+#endif
 24+
 25 /* Use mmap or not */
 26 #ifndef __BEOS__
 27 #define USE_MMAP