From: Atanas Vladimirov Subject: Re: [UPDATE] sysutils/nut 2.8.4 -> 2.8.5 To: Ports Date: Thu, 09 Apr 2026 20:24:14 +0300 On 2026-04-09 15:38, Stuart Henderson wrote: > On 2026/04/09 12:37, Stuart Henderson wrote: >> there are some issues with this diff, i will send something out when >> i've tested a bit more > > here's a diff (note I just committed some clean-up for 2.8.4 so you > will need a very fresh cvs up) Thanks, Stuart! I have successfully built and installed your patch and no problems so far. > > quite a lot changed in 2.8.5, i intend to hold back on committing > the update until after unlock unless there's an important reason to > do otherwise Nothing urgent :) > > Index: Makefile > =================================================================== > RCS file: /cvs/ports/sysutils/nut/Makefile,v > diff -u -p -r1.131 Makefile > --- Makefile 9 Apr 2026 12:26:55 -0000 1.131 > +++ Makefile 9 Apr 2026 12:36:12 -0000 > @@ -1,18 +1,18 @@ > COMMENT-main= UPS monitoring program supporting many brands > COMMENT-cgi= CGIs for monitoring Nut-based UPSs > +COMMENT-upower= driver for monitoring UPS via UPower > COMMENT-snmp= driver for monitoring UPS via SNMP > COMMENT-xml= driver for monitoring UPS via XML/HTTP > > -V= 2.8.4 > -REVISION= 0 > +V= 2.8.5 > DISTNAME= nut-${V:C/-rc.*//} > PKGNAME= nut-${V:S/-rc/rc/} > SITES= https://github.com/networkupstools/nut/releases/download/v$V/ > > -SHARED_LIBS += upsclient 5.0 # .7.0 > -SHARED_LIBS += nutclient 2.0 # .2.2 > -SHARED_LIBS += nutclientstub 1.0 # .1.1 > -SHARED_LIBS += nutscan 4.0 # .4.0 > +SHARED_LIBS += upsclient 6.0 # .8.0 > +SHARED_LIBS += nutclient 3.0 # .3.0 > +SHARED_LIBS += nutclientstub 1.1 # .1.1 > +SHARED_LIBS += nutscan 5.0 # .5.0 > > CATEGORIES= sysutils > HOMEPAGE= https://networkupstools.org/ > @@ -24,6 +24,7 @@ COMPILER= base-clang ports-gcc > > COMMON += c crypto kvm pthread > WANTLIB-main += ${COMMON} ltdl m ssl ${COMPILER_LIBCXX} usb-1.0 > +WANTLIB-upower += c gio-2.0 glib-2.0 gobject-2.0 iconv intl kvm > pthread > WANTLIB-xml += ${COMMON} expat iconv intl neon proxy ssl z \ > nghttp2 nghttp3 ngtcp2 ngtcp2_crypto_libressl > WANTLIB-snmp += ${COMMON} m netsnmp ssl > @@ -67,18 +68,24 @@ CONFIGURE_ARGS+= --datadir=${PREFIX}/sha > LDFLAGS="${LDFLAGS}" > > # for CGI > -PREFIX-cgi= ${WEB_ROOT} > -BUILD_DEPENDS+= graphics/gd>=1.8.3 > +PREFIX-cgi= ${WEB_ROOT} > +BUILD_DEPENDS+= graphics/gd>=1.8.3 > CONFIGURE_ARGS+= --with-cgi \ > --with-cgipath="${WEB_ROOT}/cgi-bin/nut" \ > --with-gd-libs="-L${X11BASE}/lib -L${PREFIX}/lib \ > -lgd -lpng -lz -ljpeg -lm -lfreetype -lX11" \ > --with-gd-includes="-I${PREFIX}/include" > > -PSEUDO_FLAVORS= no_snmp no_xml > +PSEUDO_FLAVORS= no_snmp no_upower no_xml > FLAVOR?= > MULTI_PACKAGES= -main -cgi > > +.if ${FLAVOR:Mno_upower} > +CONFIGURE_ARGS+= --without-upower > +.else > +MULTI_PACKAGES+= -upower > +.endif > + > .if ${FLAVOR:Mno_snmp} > CONFIGURE_ARGS+= --without-snmp > .else > @@ -96,6 +103,10 @@ LIB_DEPENDS-main= ${LIB_DEPENDS} \ > devel/libusb1 > RUN_DEPENDS-main= # empty > > +LIB_DEPENDS-upower= devel/glib2 > +RUN_DEPENDS-upower= ${RUN_DEPENDS} \ > + sysutils/nut > + > LIB_DEPENDS-xml= net/neon > RUN_DEPENDS-xml= ${RUN_DEPENDS} \ > sysutils/nut > @@ -110,13 +121,16 @@ LIB_DEPENDS-cgi= devel/gettext,-runtime > > USE_GMAKE= Yes > USE_LIBTOOL= gnu# -all-static > -FAKE_FLAGS= sysconfdir=${PREFIX}/share/examples/nut > - > +FAKE_FLAGS= sysconfdir=${PREFIX}/share/examples/nut \ > + conf_examplesdir=${PREFIX}/share/examples/nut > NO_TEST= Yes > > pre-configure: > ${SUBST_CMD} ${WRKSRC}/conf/upssched.conf.sample.in > -ln -s ${MODPY_BIN} ${WRKDIR}/bin/python > + > +pre-install: > + ${INSTALL_DATA_DIR} ${PREFIX}/share/examples/nut > > post-install: > ${INSTALL_DATA_DIR} ${WRKINST}${WEB_ROOT}/conf/nut/ > Index: distinfo > =================================================================== > RCS file: /cvs/ports/sysutils/nut/distinfo,v > diff -u -p -r1.32 distinfo > --- distinfo 5 Sep 2025 11:04:35 -0000 1.32 > +++ distinfo 9 Apr 2026 12:36:12 -0000 > @@ -1,2 +1,2 @@ > -SHA256 (nut-2.8.4.tar.gz) = > ATC6gup58Euk80xSSahZQ5d+/ZhO199q7BpRjVo1lPg= > -SIZE (nut-2.8.4.tar.gz) = 6522704 > +SHA256 (nut-2.8.5.tar.gz) = > GL8y5Z63ZLE9o8T6cDhJJtf6WEyzHS/n8TelcGM+7sE= > +SIZE (nut-2.8.5.tar.gz) = 7362259 > Index: patches/patch-clients_Makefile_am > =================================================================== > RCS file: /cvs/ports/sysutils/nut/patches/patch-clients_Makefile_am,v > diff -u -p -r1.5 patch-clients_Makefile_am > --- patches/patch-clients_Makefile_am 5 Sep 2025 11:04:35 -0000 1.5 > +++ patches/patch-clients_Makefile_am 9 Apr 2026 12:36:12 -0000 > @@ -1,7 +1,7 @@ > Index: clients/Makefile.am > --- clients/Makefile.am.orig > +++ clients/Makefile.am > -@@ -110,10 +110,13 @@ upssched_LDADD = \ > +@@ -157,12 +157,15 @@ upssched_LDADD += \ > > upsimage_cgi_SOURCES = upsimage.c upsclient.h upsimagearg.h cgilib.c > cgilib.h > upsimage_cgi_LDADD = $(LDADD) $(LIBGD_LDFLAGS) > @@ -9,9 +9,11 @@ Index: clients/Makefile.am > > upsset_cgi_SOURCES = upsset.c upsclient.h cgilib.c cgilib.h > +upsset_cgi_LDFLAGS = $(LDFLAGS) -all-static > + > upsstats_cgi_SOURCES = upsstats.c upsclient.h status.h upsstats.h \ > upsimagearg.h cgilib.c cgilib.h > + upsstats_cgi_LDADD = $(LDADD_CLIENT) > $(top_builddir)/common/libcommonstrjson.la > +upsstats_cgi_LDFLAGS = $(LDFLAGS) -all-static > > - # not LDADD... why? > - libupsclient_la_SOURCES = upsclient.c upsclient.h > + ################################## Plain C client library > (libupsclient) : > + > Index: patches/patch-clients_cgilib_c > =================================================================== > RCS file: /cvs/ports/sysutils/nut/patches/patch-clients_cgilib_c,v > diff -u -p -r1.8 patch-clients_cgilib_c > --- patches/patch-clients_cgilib_c 2 Apr 2024 13:40:13 -0000 1.8 > +++ patches/patch-clients_cgilib_c 9 Apr 2026 12:36:12 -0000 > @@ -1,7 +1,7 @@ > Index: clients/cgilib.c > --- clients/cgilib.c.orig > +++ clients/cgilib.c > -@@ -168,7 +168,7 @@ int checkhost(const char *host, char **desc) > +@@ -260,7 +260,7 @@ int checkhost(const char *host, char **desc) > if (!host) > return 0; /* deny null hostnames */ > > Index: patches/patch-clients_upsset_c > =================================================================== > RCS file: /cvs/ports/sysutils/nut/patches/patch-clients_upsset_c,v > diff -u -p -r1.14 patch-clients_upsset_c > --- patches/patch-clients_upsset_c 5 Sep 2025 11:04:35 -0000 1.14 > +++ patches/patch-clients_upsset_c 9 Apr 2026 12:36:12 -0000 > @@ -1,21 +1,21 @@ > Index: clients/upsset.c > --- clients/upsset.c.orig > +++ clients/upsset.c > -@@ -200,7 +200,7 @@ static void do_pickups(const char *currfunc) > +@@ -218,7 +218,7 @@ static void do_pickups(const char *currfunc) > char hostfn[NUT_PATH_MAX + 1]; > PCONF_CTX_t ctx; > > - snprintf(hostfn, sizeof(hostfn), "%s/hosts.conf", confpath()); > + snprintf(hostfn, sizeof(hostfn), "%s/hosts.conf", cgiconfpath()); > > - printf("
\n"); > + printf("\n"); > > -@@ -1029,7 +1029,7 @@ static void check_conf(void) > +@@ -1066,7 +1066,7 @@ static void check_conf(void) > char fn[NUT_PATH_MAX + 1]; > PCONF_CTX_t ctx; > > - snprintf(fn, sizeof(fn), "%s/upsset.conf", confpath()); > + snprintf(fn, sizeof(fn), "%s/upsset.conf", cgiconfpath()); > + upsdebugx(1, "%s: considering configuration file %s", __func__, fn); > > pconf_init(&ctx, upsset_conf_err); > - > Index: patches/patch-clients_upsstats_c > =================================================================== > RCS file: /cvs/ports/sysutils/nut/patches/patch-clients_upsstats_c,v > diff -u -p -r1.11 patch-clients_upsstats_c > --- patches/patch-clients_upsstats_c 22 Apr 2025 15:01:30 -0000 1.11 > +++ patches/patch-clients_upsstats_c 9 Apr 2026 12:36:12 -0000 > @@ -1,21 +1,21 @@ > Index: clients/upsstats.c > --- clients/upsstats.c.orig > +++ clients/upsstats.c > -@@ -851,7 +851,7 @@ static void display_template(const char *tfn) > - { > - char fn[NUT_PATH_MAX + 1], buf[LARGEBUF]; > +@@ -1225,7 +1225,7 @@ static void display_template(const char *tfn, > int type > + exit(EXIT_FAILURE); > + } > > - snprintf(fn, sizeof(fn), "%s/%s", confpath(), tfn); > + snprintf(fn, sizeof(fn), "%s/%s", cgiconfpath(), tfn); > > - tf = fopen(fn, "r"); > + tf = fopen(fn, "rb"); > > -@@ -971,7 +971,7 @@ static void load_hosts_conf(void) > +@@ -1430,7 +1430,7 @@ static void load_hosts_conf(int handle_MONITOR) > char fn[NUT_PATH_MAX + 1]; > PCONF_CTX_t ctx; > > -- snprintf(fn, sizeof(fn), "%s/hosts.conf", CONFPATH); > +- snprintf(fn, sizeof(fn), "%s/hosts.conf", confpath()); > + snprintf(fn, sizeof(fn), "%s/hosts.conf", cgiconfpath()); > + upsdebugx(1, "%s: considering configuration file %s", __func__, fn); > > pconf_init(&ctx, upsstats_hosts_err); > - > Index: patches/patch-common_common_c > =================================================================== > RCS file: /cvs/ports/sysutils/nut/patches/patch-common_common_c,v > diff -u -p -r1.14 patch-common_common_c > --- patches/patch-common_common_c 5 Sep 2025 11:04:35 -0000 1.14 > +++ patches/patch-common_common_c 9 Apr 2026 12:36:12 -0000 > @@ -1,7 +1,7 @@ > Index: common/common.c > --- common/common.c.orig > +++ common/common.c > -@@ -3478,6 +3478,17 @@ const char * confpath(void) > +@@ -4403,6 +4403,17 @@ const char * confpath(void) > return path; > } > > Index: patches/patch-conf_ups_conf_sample > =================================================================== > RCS file: /cvs/ports/sysutils/nut/patches/patch-conf_ups_conf_sample,v > diff -u -p -r1.9 patch-conf_ups_conf_sample > --- patches/patch-conf_ups_conf_sample 22 Apr 2025 15:01:30 -0000 1.9 > +++ patches/patch-conf_ups_conf_sample 9 Apr 2026 12:36:12 -0000 > @@ -1,7 +1,7 @@ > Index: conf/ups.conf.sample > --- conf/ups.conf.sample.orig > +++ conf/ups.conf.sample > -@@ -158,6 +158,7 @@ maxretry = 3 > +@@ -161,6 +161,7 @@ maxretry = 3 > # port: REQUIRED. The serial port where your UPS is connected. > # For example: > # /dev/ttyS0 is usually the first port on Linux boxes. > @@ -9,7 +9,7 @@ Index: conf/ups.conf.sample > # "\\\\.\\COM1" is the first port on Windows boxes (note > that > # the backslash characters themselves must be escaped, > # for the NUT configuration parser to yield > "\\.\COM1"). > -@@ -229,11 +230,11 @@ maxretry = 3 > +@@ -232,11 +233,11 @@ maxretry = 3 > # -------- > # > # A simple example for a UPS called "powerpal" that uses the > blazer_ser > @@ -23,7 +23,7 @@ Index: conf/ups.conf.sample > # desc = "Web server" > # > # If your UPS driver requires additional settings, you can specify > them > -@@ -248,3 +249,17 @@ maxretry = 3 > +@@ -251,3 +252,17 @@ maxretry = 3 > # > # To find out if your driver supports any extra settings, start it > with > # the -h option and/or read the driver's documentation. > Index: patches/patch-include_common_h > =================================================================== > RCS file: /cvs/ports/sysutils/nut/patches/patch-include_common_h,v > diff -u -p -r1.13 patch-include_common_h > --- patches/patch-include_common_h 5 Sep 2025 11:04:35 -0000 1.13 > +++ patches/patch-include_common_h 9 Apr 2026 12:36:12 -0000 > @@ -1,7 +1,7 @@ > Index: include/common.h > --- include/common.h.orig > +++ include/common.h > -@@ -414,6 +414,9 @@ void syslogbit_set(void); > +@@ -493,6 +493,9 @@ void syslogbit_set(void); > /* Return the default path for the directory containing configuration > files */ > const char * confpath(void); > > Index: pkg/DESCR-upower > =================================================================== > RCS file: pkg/DESCR-upower > diff -N pkg/DESCR-upower > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ pkg/DESCR-upower 9 Apr 2026 12:36:12 -0000 > @@ -0,0 +1,2 @@ > +This NUT driver provides support for monitoring UPS and battery > devices > +managed by the UPower daemon via D-Bus. > Index: pkg/PLIST-cgi > =================================================================== > RCS file: /cvs/ports/sysutils/nut/pkg/PLIST-cgi,v > diff -u -p -r1.9 PLIST-cgi > --- pkg/PLIST-cgi 9 Apr 2026 12:26:55 -0000 1.9 > +++ pkg/PLIST-cgi 9 Apr 2026 12:36:12 -0000 > @@ -7,6 +7,10 @@ conf/nut/hosts.conf.sample > @sample conf/nut/hosts.conf > conf/nut/upsset.conf.sample > @sample conf/nut/upsset.conf > +conf/nut/upsstats-modern-list.html.sample > +@sample conf/nut/upsstats-modern-list.html > +conf/nut/upsstats-modern-single.html.sample > +@sample conf/nut/upsstats-modern-single.html > conf/nut/upsstats-single.html.sample > @sample conf/nut/upsstats-single.html > conf/nut/upsstats.html.sample > @@ -16,3 +20,4 @@ nut/bottom.html > nut/header.html > nut/index.html > nut/nut-banner.png > +nut/nut-logo-60x60.png > Index: pkg/PLIST-main > =================================================================== > RCS file: /cvs/ports/sysutils/nut/pkg/PLIST-main,v > diff -u -p -r1.37 PLIST-main > --- pkg/PLIST-main 9 Apr 2026 12:26:55 -0000 1.37 > +++ pkg/PLIST-main 9 Apr 2026 12:36:12 -0000 > @@ -40,6 +40,7 @@ > @bin bin/liebert-esp2 > @bin bin/liebert-gxe > @bin bin/masterguard > +@bin bin/meanwell_ntu > @bin bin/metasys > @bin bin/mge-shut > @bin bin/mge-utalk > @@ -77,11 +78,6 @@ bin/upssched-cmd > @bin bin/usbhid-ups > @bin bin/ve-direct > @bin bin/victronups > -@comment html/ > -@comment html/bottom.html > -@comment html/header.html > -@comment html/index.html > -@comment html/nut-banner.png > include/nut/ > include/nut/nut-scan.h > include/nut/nutclient.h > @@ -142,10 +138,40 @@ lib/python${MODPY_VERSION}/site-packages > @man man/man3/nutclient_set_device_variable_value.3 > @man man/man3/nutclient_set_device_variable_values.3 > @man man/man3/nutclient_tcp_create_client.3 > +@man man/man3/nutclient_tcp_create_client_ssl_NSSL.3 > +@man man/man3/nutclient_tcp_create_client_ssl_OpenSSL.3 > @man man/man3/nutclient_tcp_disconnect.3 > +@man man/man3/nutclient_tcp_get_ssl_cafile.3 > +@man man/man3/nutclient_tcp_get_ssl_capath.3 > +@man man/man3/nutclient_tcp_get_ssl_caps.3 > +@man man/man3/nutclient_tcp_get_ssl_certfile.3 > +@man man/man3/nutclient_tcp_get_ssl_certhost_name.3 > +@man man/man3/nutclient_tcp_get_ssl_certident_name.3 > +@man man/man3/nutclient_tcp_get_ssl_certstore_path.3 > +@man man/man3/nutclient_tcp_get_ssl_certstore_prefix.3 > +@man man/man3/nutclient_tcp_get_ssl_certverify.3 > +@man man/man3/nutclient_tcp_get_ssl_force.3 > +@man man/man3/nutclient_tcp_get_ssl_keyfile.3 > +@man man/man3/nutclient_tcp_get_ssl_keypass.3 > +@man man/man3/nutclient_tcp_get_ssl_try.3 > @man man/man3/nutclient_tcp_get_timeout.3 > @man man/man3/nutclient_tcp_is_connected.3 > +@man man/man3/nutclient_tcp_is_ssl.3 > @man man/man3/nutclient_tcp_reconnect.3 > +@man man/man3/nutclient_tcp_set_ssl_cafile.3 > +@man man/man3/nutclient_tcp_set_ssl_capath.3 > +@man man/man3/nutclient_tcp_set_ssl_certfile.3 > +@man man/man3/nutclient_tcp_set_ssl_certhost_name.3 > +@man man/man3/nutclient_tcp_set_ssl_certident_name.3 > +@man man/man3/nutclient_tcp_set_ssl_certstore_path.3 > +@man man/man3/nutclient_tcp_set_ssl_certstore_prefix.3 > +@man man/man3/nutclient_tcp_set_ssl_certverify.3 > +@man man/man3/nutclient_tcp_set_ssl_config_NSS.3 > +@man man/man3/nutclient_tcp_set_ssl_config_OpenSSL.3 > +@man man/man3/nutclient_tcp_set_ssl_force.3 > +@man man/man3/nutclient_tcp_set_ssl_keyfile.3 > +@man man/man3/nutclient_tcp_set_ssl_keypass.3 > +@man man/man3/nutclient_tcp_set_ssl_try.3 > @man man/man3/nutclient_tcp_set_timeout.3 > @man man/man3/nutscan.3 > @man man/man3/nutscan_add_commented_option_to_device.3 > @@ -175,6 +201,13 @@ lib/python${MODPY_VERSION}/site-packages > @man man/man3/nutscan_scan_usb.3 > @man man/man3/nutscan_scan_xml_http_range.3 > @man man/man3/nutscan_stringify_ip_ranges.3 > +@man man/man3/nutscan_upslog_cookie.3 > +@man man/man3/nutscan_upslog_get_debug_level.3 > +@man man/man3/nutscan_upslog_getproctag.3 > +@man man/man3/nutscan_upslog_set_debug_level.3 > +@man man/man3/nutscan_upslog_setprocname.3 > +@man man/man3/nutscan_upslog_setproctag.3 > +@man man/man3/nutscan_upslog_start_sync.3 > @man man/man3/upscli_add_host_cert.3 > @man man/man3/upscli_cleanup.3 > @man man/man3/upscli_connect.3 > @@ -188,17 +221,29 @@ lib/python${MODPY_VERSION}/site-packages > @man man/man3/upscli_list_start.3 > @man man/man3/upscli_readline.3 > @man man/man3/upscli_readline_timeout.3 > +@man man/man3/upscli_readline_timeout_may_disconnect.3 > +@man man/man3/upscli_report_build_details.3 > @man man/man3/upscli_sendline.3 > @man man/man3/upscli_sendline_timeout.3 > +@man man/man3/upscli_sendline_timeout_may_disconnect.3 > @man man/man3/upscli_set_default_connect_timeout.3 > @man man/man3/upscli_splitaddr.3 > @man man/man3/upscli_splitname.3 > @man man/man3/upscli_ssl.3 > +@man man/man3/upscli_ssl_caps.3 > +@man man/man3/upscli_ssl_caps_descr.3 > @man man/man3/upscli_str_add_unique_token.3 > @man man/man3/upscli_str_contains_token.3 > @man man/man3/upscli_strerror.3 > @man man/man3/upscli_tryconnect.3 > @man man/man3/upscli_upserror.3 > +@man man/man3/upscli_upslog_cookie.3 > +@man man/man3/upscli_upslog_get_debug_level.3 > +@man man/man3/upscli_upslog_getproctag.3 > +@man man/man3/upscli_upslog_set_debug_level.3 > +@man man/man3/upscli_upslog_setprocname.3 > +@man man/man3/upscli_upslog_setproctag.3 > +@man man/man3/upscli_upslog_start_sync.3 > @man man/man3/upsclient.3 > @man man/man5/hosts.conf.5 > @man man/man5/nut.conf.5 > @@ -239,6 +284,7 @@ lib/python${MODPY_VERSION}/site-packages > @man man/man8/liebert-gxe.8 > @man man/man8/liebert.8 > @man man/man8/masterguard.8 > +@man man/man8/meanwell_ntu.8 > @man man/man8/metasys.8 > @man man/man8/mge-shut.8 > @man man/man8/mge-utalk.8 > @@ -250,7 +296,7 @@ lib/python${MODPY_VERSION}/site-packages > @man man/man8/nutdrv_atcl_usb.8 > @man man/man8/nutdrv_hashx.8 > @man man/man8/nutdrv_qx.8 > -@man man/man8/nutdrv_siemens_sitop.8 > +@man man/man8/nutdrv_siemens-sitop.8 > @man man/man8/nutupsdrv.8 > @man man/man8/oneac.8 > @man man/man8/optiups.8 > @@ -409,9 +455,14 @@ share/doc/nut/images/ci/jenkins-nut.css > share/doc/nut/images/ci/jenkins-nut.png > share/doc/nut/images/ci/jenkins-nut.txt > share/doc/nut/images/ci/jenkins-nut.txt-prepped > +share/doc/nut/images/ci/obs-logo.png > +share/doc/nut/images/ci/obs-logo.svg > +share/doc/nut/images/ci/openSUSEBuildService.png > share/doc/nut/images/hostedby.png > share/doc/nut/images/note.png > -share/doc/nut/images/nut-logo.png > +share/doc/nut/images/nut-logo-256x256.png > +share/doc/nut/images/nut-logo-60x60.png > +share/doc/nut/images/nut-logo.svg > share/doc/nut/images/nut_layering.png > share/doc/nut/images/old-cgi.png > share/doc/nut/images/simple.png > @@ -465,8 +516,6 @@ share/examples/nut/upssched.conf.sample > @sample ${SYSCONFDIR}/upssched.conf > @mode 700 > @sample /var/db/nut/ > -@comment share/examples/nut/upsstats-single.html.sample > -@comment share/examples/nut/upsstats.html.sample > @mode > @owner > share/nut/ > Index: pkg/PLIST-upower > =================================================================== > RCS file: pkg/PLIST-upower > diff -N pkg/PLIST-upower > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ pkg/PLIST-upower 9 Apr 2026 12:36:12 -0000 > @@ -0,0 +1,2 @@ > +@bin bin/nut-upower > +@man man/man8/nut-upower.8