git: 3eeb03bdd42b - main - sysutils/powermon: report modern CPU models (via sysutils/libcpuid)

From: Alexey Dokuchaev <danfe_at_FreeBSD.org>
Date: Fri, 24 Mar 2023 08:58:37 UTC
The branch main has been updated by danfe:

URL: https://cgit.FreeBSD.org/ports/commit/?id=3eeb03bdd42b88a8b366bba07afa567db6722922

commit 3eeb03bdd42b88a8b366bba07afa567db6722922
Author:     Alexey Dokuchaev <danfe@FreeBSD.org>
AuthorDate: 2023-03-24 08:57:52 +0000
Commit:     Alexey Dokuchaev <danfe@FreeBSD.org>
CommitDate: 2023-03-24 08:57:52 +0000

    sysutils/powermon: report modern CPU models (via sysutils/libcpuid)
    
    This program had not seen updates since 2017 and thus cannot report
    newer CPU models (the list of known ones is hardcoded).  Use simple
    library call instead of manually decoding the CPU code name.
    
    While here, simplify the installation recipe in `do-install' target
    and append to our default {C,LD}FLAGS rather than overwriting them.
    
    Requested by:   Dmitry Lukhtionov
---
 sysutils/powermon/Makefile                | 16 +++++++--------
 sysutils/powermon/files/patch-Makefile    | 15 ++++++++++++++
 sysutils/powermon/files/patch-src_cpuid.c | 34 +++++++++++++++++++++++++++++++
 3 files changed, 57 insertions(+), 8 deletions(-)

diff --git a/sysutils/powermon/Makefile b/sysutils/powermon/Makefile
index 6b5de4c0a31c..b688dfca82bc 100644
--- a/sysutils/powermon/Makefile
+++ b/sysutils/powermon/Makefile
@@ -1,6 +1,7 @@
 PORTNAME=	powermon
 PORTVERSION=	1.0.0
 DISTVERSIONPREFIX=	v
+PORTREVISION=	1
 CATEGORIES=	sysutils
 
 MAINTAINER=	yamagi@yamagi.org
@@ -13,20 +14,19 @@ LICENSE_FILE=	${WRKSRC}/LICENSE
 ONLY_FOR_ARCHS=		amd64
 ONLY_FOR_ARCHS_REASON=	specific to recent x86 processors
 
-USE_GITHUB=	yes
-GH_ACCOUNT=	yamagi
+LIB_DEPENDS=	libcpuid.so:sysutils/libcpuid
 
 USES=		gmake ncurses
+USE_GITHUB=	yes
+GH_ACCOUNT=	yamagi
+MAKE_ENV=	NCURSESLIBS="${NCURSESLIBS}" VERBOSE=1
 
 PLIST_FILES=	man/man8/powermon.8.gz sbin/powermon
 
-post-patch:
-	${REINPLACE_CMD} 's/-lcursesw/${NCURSESLIBS}/g' ${WRKSRC}/Makefile
-
 do-install:
-	${INSTALL_PROGRAM} ${WRKDIR}/${PORTNAME}-${PORTVERSION}/release/powermon \
-		${STAGEDIR}${PREFIX}/sbin/powermon
-	${INSTALL_MAN} ${WRKDIR}/${PORTNAME}-${PORTVERSION}/misc/powermon.8 \
+	${INSTALL_PROGRAM} ${INSTALL_WRKSRC}/release/powermon \
+		${STAGEDIR}${PREFIX}/sbin
+	${INSTALL_MAN} ${INSTALL_WRKSRC}/misc/powermon.8 \
 		${STAGEDIR}${MANPREFIX}/man/man8
 
 .include <bsd.port.mk>
diff --git a/sysutils/powermon/files/patch-Makefile b/sysutils/powermon/files/patch-Makefile
new file mode 100644
index 000000000000..2a1c69684ac5
--- /dev/null
+++ b/sysutils/powermon/files/patch-Makefile
@@ -0,0 +1,15 @@
+--- Makefile.orig	2017-07-03 16:04:31 UTC
++++ Makefile
+@@ -1,9 +1,9 @@
+ # Base CFLAGS
+-CFLAGS := -O2 -fomit-frame-pointer -std=c99 \
+-		  -pedantic -Wall -Wextra -MMD -pipe
++CFLAGS += -std=c99 -pedantic -Wall -Wextra -MMD \
++	  -I$(LOCALBASE)/include -DUSE_LIBCPUID
+ 
+ # Base LDFLAGS
+-LDFLAGS := -lcursesw -lm
++LDFLAGS += $(NCURSESLIBS) -lm -L$(LOCALBASE)/lib -lcpuid
+ 
+ # -----------
+ 
diff --git a/sysutils/powermon/files/patch-src_cpuid.c b/sysutils/powermon/files/patch-src_cpuid.c
new file mode 100644
index 000000000000..8b5dfa2ba38c
--- /dev/null
+++ b/sysutils/powermon/files/patch-src_cpuid.c
@@ -0,0 +1,34 @@
+--- src/cpuid.c.orig	2017-07-03 16:04:31 UTC
++++ src/cpuid.c
+@@ -32,6 +32,9 @@
+ #include <sys/cpuctl.h>
+ #include <sys/errno.h>
+ #include <sys/ioctl.h>
++#ifdef USE_LIBCPUID
++#include <libcpuid/libcpuid.h>
++#endif
+ 
+ #include "cpuid.h"
+ 
+@@ -176,6 +179,13 @@ void getcpuvendor(char *vendor, size_t vendor_len) {
+  * Returns the CPU family.
+  */
+ const char *getcpufamily(void) {
++#ifdef USE_LIBCPUID
++	struct cpu_raw_data_t raw;
++	static struct cpu_id_t id;
++
++	return (cpuid_get_raw_data(&raw) == 0 && cpu_identify(&raw, &id) == 0)
++	? id.cpu_codename : "Unknown";
++#else
+ 	cpuctl_cpuid_count_args_t cpuid;
+ 
+ 	cpuid.level = 0x1;
+@@ -240,6 +250,7 @@ const char *getcpufamily(void) {
+ 			return "Unknown";
+ 			break;
+ 	}
++#endif
+ }
+ 
+