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
This commit is contained in:
Alexey Dokuchaev
2023-03-24 08:57:52 +00:00
parent d7b9c1eed7
commit 3eeb03bdd4
3 changed files with 57 additions and 8 deletions
+8 -8
View File
@@ -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>
+15
View File
@@ -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
# -----------
+34
View File
@@ -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
}