From d8fce30879a996bc28afdaf30c23d0af1d5f11a5 Mon Sep 17 00:00:00 2001
From: Cy Schubert <cy@FreeBSD.org>
Date: Tue, 3 May 2022 08:28:37 -0700
Subject: [PATCH 1/7] sysutils/nut: Remove redundant EXTRACT_ONLY definition

EXTRACT_ONLY is redundant and does nothing in this port.

PR:		263751
Reported by:	Joerg Pulz <Joerg.Pulz@frm2.tum.de>
---
 sysutils/nut/Makefile | 1 -
 1 file changed, 1 deletion(-)

diff --git a/sysutils/nut/Makefile b/sysutils/nut/Makefile
index 278ea0196e08..0985cc13e59b 100644
--- a/sysutils/nut/Makefile
+++ b/sysutils/nut/Makefile
@@ -5,7 +5,6 @@ PORTVERSION=	2.8.0
 CATEGORIES=	sysutils
 MASTER_SITES=	http://www.networkupstools.org/source/${PORTVERSION:R}/
 DISTFILES=	${DISTNAME}${EXTRACT_SUFX}
-EXTRACT_ONLY=	${DISTNAME}${EXTRACT_SUFX}
 
 MAINTAINER=	cy@FreeBSD.org
 COMMENT=	Network UPS Tools
-- 
2.35.2


From 1546d925c63a6d5fbcd98d34b98d8cc132634d60 Mon Sep 17 00:00:00 2001
From: Cy Schubert <cy@FreeBSD.org>
Date: Tue, 3 May 2022 08:53:38 -0700
Subject: [PATCH 2/7] sysutils/nut*: Add license

Add license definitions.

PR:		263751
Reported by:	Joerg Pulz <Joerg.Pulz@frm2.tum.de>
---
 sysutils/nut-devel/Makefile | 6 +++++-
 sysutils/nut/Makefile       | 5 +++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/sysutils/nut-devel/Makefile b/sysutils/nut-devel/Makefile
index 16181ae31263..59884c8bba7a 100644
--- a/sysutils/nut-devel/Makefile
+++ b/sysutils/nut-devel/Makefile
@@ -2,7 +2,7 @@
 
 PORTNAME=	nut
 PORTVERSION=	${NUT_COMMIT_DATE}
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	sysutils
 PKGNAMESUFFIX=	-devel
 # MASTER_SITES=	http://www.networkupstools.org/source/${PORTVERSION:R}/
@@ -12,6 +12,10 @@ PKGNAMESUFFIX=	-devel
 MAINTAINER=	cy@FreeBSD.org
 COMMENT=	Network UPS Tools
 
+LICENSE=	GPLv2+ GPLv3+ ART10 GPLv1+
+LICENSE_COMB=	multi
+LICENSE_FILE=	${WRKSRC}/COPYING
+
 USE_GITHUB=	yes
 GH_ACCOUNT=	networkupstools
 GH_TAGNAME=	9cb8de681
diff --git a/sysutils/nut/Makefile b/sysutils/nut/Makefile
index 0985cc13e59b..88b04128fefd 100644
--- a/sysutils/nut/Makefile
+++ b/sysutils/nut/Makefile
@@ -2,6 +2,7 @@
 
 PORTNAME=	nut
 PORTVERSION=	2.8.0
+PORTREVISION=	1
 CATEGORIES=	sysutils
 MASTER_SITES=	http://www.networkupstools.org/source/${PORTVERSION:R}/
 DISTFILES=	${DISTNAME}${EXTRACT_SUFX}
@@ -9,6 +10,10 @@ DISTFILES=	${DISTNAME}${EXTRACT_SUFX}
 MAINTAINER=	cy@FreeBSD.org
 COMMENT=	Network UPS Tools
 
+LICENSE=	GPLv2+ GPLv3+ ART10 GPLv1+
+LICENSE_COMB=	multi
+LICENSE_FILE=	${WRKSRC}/COPYING
+
 GNU_CONFIGURE=	yes
 USE_LDCONFIG=	yes
 USES=		autoreconf:build compiler:c11 gmake libtool pkgconfig python:build
-- 
2.35.2


From dce06b1ffd3b947ba64edf0254d43567e6349e32 Mon Sep 17 00:00:00 2001
From: Cy Schubert <cy@FreeBSD.org>
Date: Tue, 3 May 2022 08:57:02 -0700
Subject: [PATCH 3/7] sysutils/nut*: Use canned options descriptions

Remove the descriptions already documented in Mk/bsd.options.desc.mk.

PR:		263751
Reported by:	Joerg Pulz <Joerg.Pulz@frm2.tum.de>
---
 sysutils/nut-devel/Makefile | 3 ---
 sysutils/nut/Makefile       | 3 ---
 2 files changed, 6 deletions(-)

diff --git a/sysutils/nut-devel/Makefile b/sysutils/nut-devel/Makefile
index 59884c8bba7a..efdcda3a5d64 100644
--- a/sysutils/nut-devel/Makefile
+++ b/sysutils/nut-devel/Makefile
@@ -40,12 +40,9 @@ OPTIONS_SINGLE_SSL=	SSL_OFF OPENSSL NSS
 
 SERIAL_DESC=	SERIAL support
 USB_DESC=	USB support
-SNMP_DESC=	SNMP support
 NEON_DESC=	NEON XML/HTTP support
 PDU_DESC=	Powerman PDU support
 CGI_DESC=	Web CGI interface
-BASH_DESC=	Bash Completion support
-AVAHI_DESC=	Avahi support
 IPMI_OFF_DESC=	No IPMI support
 FREEIPMI_DESC=	freeipmi support
 IPMIPSU_DESC=	Use nut-ipmipsu support (experimental)
diff --git a/sysutils/nut/Makefile b/sysutils/nut/Makefile
index 88b04128fefd..ba58c632e617 100644
--- a/sysutils/nut/Makefile
+++ b/sysutils/nut/Makefile
@@ -32,12 +32,9 @@ OPTIONS_SINGLE_SSL=	SSL_OFF OPENSSL NSS
 
 SERIAL_DESC=	SERIAL support
 USB_DESC=	USB support
-SNMP_DESC=	SNMP support
 NEON_DESC=	NEON XML/HTTP support
 PDU_DESC=	Powerman PDU support
 CGI_DESC=	Web CGI interface
-BASH_DESC=	Bash Completion support
-AVAHI_DESC=	Avahi support
 IPMI_OFF_DESC=	No IPMI support
 FREEIPMI_DESC=	freeipmi support
 IPMIPSU_DESC=	Use nut-ipmipsu support (experimental)
-- 
2.35.2


From b875ff1b30f789d3305a8a44aad988fe814f3085 Mon Sep 17 00:00:00 2001
From: Cy Schubert <cy@FreeBSD.org>
Date: Tue, 3 May 2022 20:08:22 -0700
Subject: [PATCH 4/7] sysutils/nut: Remove redundant install-strip INSTALL
 TARGET

---
 sysutils/nut/Makefile | 1 -
 1 file changed, 1 deletion(-)

diff --git a/sysutils/nut/Makefile b/sysutils/nut/Makefile
index ba58c632e617..c26af0cd8c2f 100644
--- a/sysutils/nut/Makefile
+++ b/sysutils/nut/Makefile
@@ -44,7 +44,6 @@ USE_RC_SUBR=	nut nut_upsmon nut_upslog
 SUB_LIST+=	STATEDIR=${STATEDIR}
 PLIST_SUB+=	STATEDIR=${STATEDIR}
 
-INSTALL_TARGET=	install-strip
 PORTDOCS=	*
 
 .include <bsd.port.options.mk>
-- 
2.35.2


From 7bbd99eb4d62a7ecddb377e2f97df730e373606c Mon Sep 17 00:00:00 2001
From: Cy Schubert <cy@FreeBSD.org>
Date: Tue, 3 May 2022 20:22:28 -0700
Subject: [PATCH 5/7] sysutils/nut*: Convert to options helpers

Modernize the sysutils/nut* ports replacing old-school options with
options helpers, cleaning up the Makefiles a lot.

PR:		263751
Reported by:	dizzy
---
 net-mgmt/zabbix6-server/Makefile |   6 +-
 security/heimdal/Makefile        |   1 +
 sysutils/nut-devel/Makefile      | 131 +++++-----------
 sysutils/nut-devel/pkg-plist     | 251 +++++++++++++++---------------
 sysutils/nut/Makefile            | 131 +++++-----------
 sysutils/nut/pkg-plist           | 252 +++++++++++++++----------------
 6 files changed, 330 insertions(+), 442 deletions(-)

diff --git a/net-mgmt/zabbix6-server/Makefile b/net-mgmt/zabbix6-server/Makefile
index 0e0ada950900..bc316f1f5672 100644
--- a/net-mgmt/zabbix6-server/Makefile
+++ b/net-mgmt/zabbix6-server/Makefile
@@ -79,12 +79,16 @@ UNIXODBC_DESC=		Support for database checks via ODBC
 LIBXML2_DESC=		Support for libxml2 (required by monitoring VMware)
 
 OPTIONS_SINGLE=		DB SSL
-OPTIONS_SINGLE_DB?=	MYSQL PGSQL ORACLE
+OPTIONS_SINGLE_DB?=	MDB MYSQL PGSQL ORACLE
 OPTIONS_SINGLE_SSL=	OPENSSL GNUTLS
 
 MYSQL_CONFIGURE_WITH=	mysql
 MYSQL_USES+=		compiler:c11 mysql:80
 
+MDB_CONFIGURE_WITH=	mysql
+MDB_USES+=		compiler:c11 mysql:106m
+MDB_DESC=		Mariadb 10.6 database support
+
 PGSQL_CONFIGURE_WITH=	postgresql
 PGSQL_USES+=		pgsql
 
diff --git a/security/heimdal/Makefile b/security/heimdal/Makefile
index 1e28b4f8ae86..c3e2f9530371 100644
--- a/security/heimdal/Makefile
+++ b/security/heimdal/Makefile
@@ -41,6 +41,7 @@ CONFIGURE_ARGS=	--with-berkeley-db \
 		--enable-pthread-support \
 		--with-readline="${LOCALBASE}" \
 		--with-hdbdir="/var/${PORTNAME}" \
+		--without-hcrypto-fallback \
 		--sysconfdir="${PREFIX}/etc"
 # XXX --with-readline picks up libreadline even if found in /usr/lib.
 MAKE_ENV=	INSTALL_CATPAGES=no
diff --git a/sysutils/nut-devel/Makefile b/sysutils/nut-devel/Makefile
index efdcda3a5d64..90941cea464e 100644
--- a/sysutils/nut-devel/Makefile
+++ b/sysutils/nut-devel/Makefile
@@ -31,12 +31,17 @@ NUT_GROUP?=	uucp
 STATEDIR?=	/var/db/nut
 PLIST_SUB+=	NUT_USER=${NUT_USER}
 PLIST_SUB+=	NUT_GROUP=${NUT_GROUP}
+CGIDIR?=	${PREFIX}/www/cgi-bin/${PORTNAME}
+CGIDIR_REL?=	${CGIDIR:S,^${PREFIX}/,,}
+PLIST_SUB+=	CGIDIR="${CGIDIR_REL}"
+PLIST_SUB+=	CGIETCDIR="etc/nut/"
 
 OPTIONS_DEFAULT=SERIAL USB SNMP NEON IPMI_OFF SSL_OFF
 OPTIONS_DEFINE=	SERIAL USB SNMP NEON PDU CGI BASH AVAHI DOCS
 OPTIONS_SINGLE=	IPMI SSL
 OPTIONS_SINGLE_IPMI=	IPMI_OFF IPMIPSU FREEIPMI
 OPTIONS_SINGLE_SSL=	SSL_OFF OPENSSL NSS
+OPTIONS_SUB=	yes
 
 SERIAL_DESC=	SERIAL support
 USB_DESC=	USB support
@@ -54,8 +59,6 @@ PLIST_SUB+=	STATEDIR=${STATEDIR}
 
 PORTDOCS=	*
 
-.include <bsd.port.options.mk>
-
 TMPDIR?=	/tmp
 INSTALL_TARGET=	install-strip
 CONFIGURE_ARGS=	--sysconfdir=${PREFIX}/etc/nut \
@@ -77,111 +80,49 @@ LIB_DEPENDS+=	libltdl.so:devel/libltdl
 
 BUILD_DEPENDS=	asciidoc:textproc/asciidoc
 
-.if ${PORT_OPTIONS:MCGI}
-LIB_DEPENDS+=	libgd.so:graphics/gd
-CGIDIR?=	${PREFIX}/www/cgi-bin/${PORTNAME}
-CGIDIR_REL?=	${CGIDIR:S,^${PREFIX}/,,}
-CONFIGURE_ARGS+=	--with-cgi --with-cgipath=${CGIDIR} \
+CGI_LIB_DEPENDS=	libgd.so:graphics/gd
+CGI_CONFIGURE_WITH=	cgi
+CGI_CONFIGURE_ON=	--with-cgipath=${CGIDIR} \
 			--with-htmlpath=${WWWDIR} \
 			--with-gd-includes=-I${LOCALBASE}/include \
 			--with-gd-libs="-L${LOCALBASE}/lib -lgd"
-PLIST_SUB+=	NUT_CGI=""
-PLIST_SUB+=	CGIDIR="${CGIDIR_REL}"
-PLIST_SUB+=	CGIETCDIR="etc/nut/"
-.else
-CONFIGURE_ARGS+=	--without-cgi
-PLIST_SUB+=	NUT_CGI="@comment "
-.endif
 
-.if ${PORT_OPTIONS:MSERIAL}
-CONFIGURE_ARGS+=	--with-serial
-PLIST_SUB+=	NUT_SERIAL=""
-.else
-CONFIGURE_ARGS+=	--without-serial
-PLIST_SUB+=	NUT_SERIAL="@comment "
-.endif
+SERIAL_CONFIGURE_WITH=	serial
 
-.if ${PORT_OPTIONS:MUSB}
-#EXTRA_PATCHES=	${FILESDIR}/extra-patch-m4_nut_check_libusb.m4
-CONFIGURE_ARGS+=	--with-usb=auto
-PLIST_SUB+=	NUT_USB=""
-.else
-CONFIGURE_ARGS+=	--without-usb
-PLIST_SUB+=	NUT_USB="@comment "
-.endif
+USB_CONFIGURE_ON=	--with-usb=auto
 
-.if ${PORT_OPTIONS:MSNMP}
-LIB_DEPENDS+=	libnetsnmp.so:net-mgmt/net-snmp
-CONFIGURE_ARGS+=	--with-snmp
-PLIST_SUB+=	NUT_SNMP=""
-.else
-CONFIGURE_ARGS+=	--without-snmp
-PLIST_SUB+=	NUT_SNMP="@comment "
-.endif
+SNMP_LIB_DEPENDS=	libnetsnmp.so:net-mgmt/net-snmp
+SNMP_CONFIGURE_WITH=	snmp
 
-.if ${PORT_OPTIONS:MNEON}
-LIB_DEPENDS+=	libneon.so:www/neon
-CONFIGURE_ARGS+=	--with-neon
-PLIST_SUB+=	NUT_NEON=""
-.else
-CONFIGURE_ARGS+=	--without-neon
-CONFIGURE_ARGS+=	--disable-neon
-PLIST_SUB+=	NUT_NEON="@comment "
-.endif
+NEON_LIB_DEPENDS=	libneon.so:www/neon
+NEON_CONFIGURE_WITH=	neon
+NEON_CONFIGURE_OFF=	--disable-neon
 
-.if ${PORT_OPTIONS:MPDU}
-LIB_DEPENDS+=	libpowerman.so:sysutils/powerman
-CONFIGURE_ARGS+=	--with-powerman
-PLIST_SUB+=	NUT_PDU=""
-.else
-CONFIGURE_ARGS+=	--without-powerman
-PLIST_SUB+=	NUT_PDU="@comment "
-.endif
+PDU_LIB_DEPENDS=	libpowerman.so:sysutils/powerman
+PDU_CONFIGURE_ON=	--with-powerman
+PDU_CONFIGURE_OFF=	--without-powerman
 
-.if ${PORT_OPTIONS:MBASH}
-BUILD_DEPENDS+=	${LOCALBASE}/share/bash-completion/bash_completion.sh:shells/bash-completion
-RUN_DEPENDS+=	${LOCALBASE}/share/bash-completion/bash_completion.sh:shells/bash-completion
-PLIST_SUB+=	BASH=""
-.else
-PLIST_SUB+=	BASH="@comment "
-.endif
+BASH_BUILD_DEPENDS=	${LOCALBASE}/share/bash-completion/bash_completion.sh:shells/bash-completion
+BASH_RUN_DEPENDS=	${LOCALBASE}/share/bash-completion/bash_completion.sh:shells/bash-completion
 
-.if ${PORT_OPTIONS:MAVAHI}
-BUILD_DEPENDS+=	${LOCALBASE}/include/avahi-ui/avahi-ui.h:net/avahi-header
-BUILD_DEPENDS+=	avahi-daemon:net/avahi-app
-RUN_DEPENDS+=	avahi-daemon:net/avahi-app
-CONFIGURE_ARGS+=	--with-avahi
-.else
-CONFIGURE_ARGS+=	--without-avahi
-.endif
+AVAHI_BUILD_DEPENDS=	${LOCALBASE}/include/avahi-ui/avahi-ui.h:net/avahi-header
+AVAHI_BUILD_DEPENDS=	avahi-daemon:net/avahi-app
+AVAHI_RUN_DEPENDS=	avahi-daemon:net/avahi-app
+AVAHI_CONFIGURE_WITH=	avahi
 
-.if ${PORT_OPTIONS:MFREEIPMI}
-LIB_DEPENDS+=	libfreeipmi.so:sysutils/freeipmi
-CONFIGURE_ARGS+=	--with-freeipmi
-PLIST_SUB+=	NUT_FREEIPMI=""
-.else
-CONFIGURE_ARGS+=	--without-freeipmi
-PLIST_SUB+=	NUT_FREEIPMI="@comment "
-.endif
+FREEIPMI_LIB_DEPENDS=	libfreeipmi.so:sysutils/freeipmi
+FREEIPMI_CONFIGURE_WITH=freeipmi
 
-.if ${PORT_OPTIONS:MIPMIPSU}
-LIB_DEPENDS+=	libfreeipmi.so:sysutils/freeipmi
-CONFIGURE_ARGS+=	--with-ipmi
-PLIST_SUB+=	NUT_IPMIPSU=""
-.else
-CONFIGURE_ARGS+=	--without-ipmi
-PLIST_SUB+=	NUT_IPMIPSU="@comment "
-.endif
+IPMIPSU_LIB_DEPENDS=	libfreeipmi.so:sysutils/freeipmi
+IPMIPSU_CONFIGURE_WITH=	ipmi
 
-.if ${PORT_OPTIONS:MOPENSSL}
-USES+=	ssl
-CONFIGURE_ARGS+=	--with-openssl
-.elif ${PORT_OPTIONS:MNSS}
-LIB_DEPENDS=		libnss3.so:security/nss
-CONFIGURE_ARGS+=	--with-nss
-.else
-CONFIGURE_ARGS+=	--without-openssl --without-ssl
-.endif
+OPENSSL_USES=		ssl
+OPENSSL_CONFIGURE_WITH=	openssl
+
+NSS_LIB_DEPENDS=	libnss3.so:security/nss
+NSS_CONFIGURE_WITH=	nss
+
+.include <bsd.port.pre.mk>
 
 post-patch:
 	@${REINPLACE_CMD} -i '' -e 's|python|${PYTHON_CMD}|' ${WRKSRC}/autogen.sh
@@ -215,4 +156,4 @@ post-install:
 	${INSTALL_DATA} ${PATCHDIR}/nut.newsyslog ${STAGEDIR}${EXAMPLESDIR}/newsyslog.sample
 	${MKDIR} ${STAGEDIR}/var/log/nut
 
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
diff --git a/sysutils/nut-devel/pkg-plist b/sysutils/nut-devel/pkg-plist
index be882f3530dc..b1dac90a6916 100644
--- a/sysutils/nut-devel/pkg-plist
+++ b/sysutils/nut-devel/pkg-plist
@@ -1,14 +1,14 @@
-%%NUT_CGI%%%%CGIDIR%%/upsimage.cgi
-%%NUT_CGI%%%%CGIDIR%%/upsset.cgi
-%%NUT_CGI%%%%CGIDIR%%/upsstats.cgi
-%%NUT_CGI%%@sample %%CGIETCDIR%%hosts.conf.sample
-%%NUT_CGI%%@sample %%CGIETCDIR%%upsset.conf.sample
-%%NUT_CGI%%@sample %%CGIETCDIR%%upsstats.html.sample
-%%NUT_CGI%%@sample %%CGIETCDIR%%upsstats-single.html.sample
-%%NUT_CGI%%%%WWWDIR%%/bottom.html
-%%NUT_CGI%%%%WWWDIR%%/header.html
-%%NUT_CGI%%%%WWWDIR%%/index.html
-%%NUT_CGI%%%%WWWDIR%%/nut-banner.png
+%%CGI%%%%CGIDIR%%/upsimage.cgi
+%%CGI%%%%CGIDIR%%/upsset.cgi
+%%CGI%%%%CGIDIR%%/upsstats.cgi
+%%CGI%%@sample %%CGIETCDIR%%hosts.conf.sample
+%%CGI%%@sample %%CGIETCDIR%%upsset.conf.sample
+%%CGI%%@sample %%CGIETCDIR%%upsstats.html.sample
+%%CGI%%@sample %%CGIETCDIR%%upsstats-single.html.sample
+%%CGI%%%%WWWDIR%%/bottom.html
+%%CGI%%%%WWWDIR%%/header.html
+%%CGI%%%%WWWDIR%%/index.html
+%%CGI%%%%WWWDIR%%/nut-banner.png
 %%ETCDIR%%/cmdvartab
 %%ETCDIR%%/driver.list
 @sample %%ETCDIR%%/nut.conf.sample
@@ -19,7 +19,7 @@
 @sample %%ETCDIR%%/upssched.conf.sample
 @sample %%EXAMPLESDIR%%/newsyslog.sample etc/newsyslog.conf.d/nut.conf
 @sample %%EXAMPLESDIR%%/syslog.sample etc/syslog.d/nut
-%%NUT_USB%%etc/devd/nut-usb.conf
+%%USB%%etc/devd/nut-usb.conf
 bin/nut-scanner
 bin/upsc
 bin/upscmd
@@ -56,61 +56,61 @@ libdata/pkgconfig/libnutclient.pc
 libdata/pkgconfig/libnutscan.pc
 libdata/pkgconfig/libupsclient.pc
 libdata/pkgconfig/libnutclientstub.pc
-%%NUT_SERIAL%%libexec/nut/al175
-%%NUT_SERIAL%%libexec/nut/apcupsd-ups
-%%NUT_USB%%libexec/nut/nutdrv_atcl_usb
-%%NUT_USB%%libexec/nut/nutdrv_qx
-%%NUT_SERIAL%%libexec/nut/riello_ser
-%%NUT_USB%%libexec/nut/riello_usb
-%%NUT_SERIAL%%libexec/nut/apcsmart
-%%NUT_SERIAL%%libexec/nut/apcsmart-old
-%%NUT_SERIAL%%libexec/nut/bcmxcp
-%%NUT_USB%%libexec/nut/bcmxcp_usb
-%%NUT_SERIAL%%libexec/nut/belkin
-%%NUT_SERIAL%%libexec/nut/belkinunv
-%%NUT_SERIAL%%libexec/nut/bestfcom
-%%NUT_SERIAL%%libexec/nut/bestfortress
-%%NUT_SERIAL%%libexec/nut/bestuferrups
-%%NUT_SERIAL%%libexec/nut/bestups
-%%NUT_SERIAL%%libexec/nut/blazer_ser
-%%NUT_USB%%libexec/nut/blazer_usb
-%%NUT_SERIAL%%libexec/nut/clone
-%%NUT_SERIAL%%libexec/nut/clone-outlet
-%%NUT_SERIAL%%libexec/nut/dummy-ups
-%%NUT_SERIAL%%libexec/nut/etapro
-%%NUT_SERIAL%%libexec/nut/everups
-%%NUT_SERIAL%%libexec/nut/gamatronic
-%%NUT_SERIAL%%libexec/nut/genericups
-%%NUT_SERIAL%%libexec/nut/isbmex
-%%NUT_SERIAL%%libexec/nut/ivtscd
-%%NUT_SERIAL%%libexec/nut/liebert
-%%NUT_SERIAL%%libexec/nut/liebert-esp2
-%%NUT_SERIAL%%libexec/nut/masterguard
-%%NUT_SERIAL%%libexec/nut/metasys
-%%NUT_SERIAL%%libexec/nut/mge-utalk
-%%NUT_SERIAL%%libexec/nut/microdowell
-%%NUT_SERIAL%%libexec/nut/microsol-apc
-%%NUT_SERIAL%%libexec/nut/mge-shut
-%%NUT_NEON%%libexec/nut/netxml-ups
-%%NUT_SERIAL%%libexec/nut/oneac
-%%NUT_SERIAL%%libexec/nut/optiups
-%%NUT_IPMIPSU%%libexec/nut/nut-ipmipsu
-%%NUT_SERIAL%%libexec/nut/nutdrv_siemens-sitop
-%%NUT_SERIAL%%libexec/nut/powercom
-%%NUT_PDU%%libexec/nut/powerman-pdu
-%%NUT_SERIAL%%libexec/nut/powerpanel
-%%NUT_SERIAL%%libexec/nut/rhino
-%%NUT_USB%%libexec/nut/richcomm_usb
-%%NUT_SERIAL%%libexec/nut/safenet
-%%NUT_SERIAL%%libexec/nut/skel
-%%NUT_SNMP%%libexec/nut/snmp-ups
-%%NUT_SERIAL%%libexec/nut/solis
-%%NUT_SERIAL%%libexec/nut/tripplite
-%%NUT_USB%%libexec/nut/tripplite_usb
-%%NUT_SERIAL%%libexec/nut/tripplitesu
-%%NUT_SERIAL%%libexec/nut/upscode2
-%%NUT_USB%%libexec/nut/usbhid-ups
-%%NUT_SERIAL%%libexec/nut/victronups
+%%SERIAL%%libexec/nut/al175
+%%SERIAL%%libexec/nut/apcupsd-ups
+%%USB%%libexec/nut/nutdrv_atcl_usb
+%%USB%%libexec/nut/nutdrv_qx
+%%SERIAL%%libexec/nut/riello_ser
+%%USB%%libexec/nut/riello_usb
+%%SERIAL%%libexec/nut/apcsmart
+%%SERIAL%%libexec/nut/apcsmart-old
+%%SERIAL%%libexec/nut/bcmxcp
+%%USB%%libexec/nut/bcmxcp_usb
+%%SERIAL%%libexec/nut/belkin
+%%SERIAL%%libexec/nut/belkinunv
+%%SERIAL%%libexec/nut/bestfcom
+%%SERIAL%%libexec/nut/bestfortress
+%%SERIAL%%libexec/nut/bestuferrups
+%%SERIAL%%libexec/nut/bestups
+%%SERIAL%%libexec/nut/blazer_ser
+%%USB%%libexec/nut/blazer_usb
+%%SERIAL%%libexec/nut/clone
+%%SERIAL%%libexec/nut/clone-outlet
+%%SERIAL%%libexec/nut/dummy-ups
+%%SERIAL%%libexec/nut/etapro
+%%SERIAL%%libexec/nut/everups
+%%SERIAL%%libexec/nut/gamatronic
+%%SERIAL%%libexec/nut/genericups
+%%SERIAL%%libexec/nut/isbmex
+%%SERIAL%%libexec/nut/ivtscd
+%%SERIAL%%libexec/nut/liebert
+%%SERIAL%%libexec/nut/liebert-esp2
+%%SERIAL%%libexec/nut/masterguard
+%%SERIAL%%libexec/nut/metasys
+%%SERIAL%%libexec/nut/mge-utalk
+%%SERIAL%%libexec/nut/microdowell
+%%SERIAL%%libexec/nut/microsol-apc
+%%SERIAL%%libexec/nut/mge-shut
+%%NEON%%libexec/nut/netxml-ups
+%%SERIAL%%libexec/nut/oneac
+%%SERIAL%%libexec/nut/optiups
+%%IPMIPSU%%libexec/nut/nut-ipmipsu
+%%SERIAL%%libexec/nut/nutdrv_siemens-sitop
+%%SERIAL%%libexec/nut/powercom
+%%PDU%%libexec/nut/powerman-pdu
+%%SERIAL%%libexec/nut/powerpanel
+%%SERIAL%%libexec/nut/rhino
+%%USB%%libexec/nut/richcomm_usb
+%%SERIAL%%libexec/nut/safenet
+%%SERIAL%%libexec/nut/skel
+%%SNMP%%libexec/nut/snmp-ups
+%%SERIAL%%libexec/nut/solis
+%%SERIAL%%libexec/nut/tripplite
+%%USB%%libexec/nut/tripplite_usb
+%%SERIAL%%libexec/nut/tripplitesu
+%%SERIAL%%libexec/nut/upscode2
+%%USB%%libexec/nut/usbhid-ups
+%%SERIAL%%libexec/nut/victronups
 man/man3/libnutclient.3.gz
 man/man3/libnutclient_commands.3.gz
 man/man3/libnutclient_devices.3.gz
@@ -187,19 +187,20 @@ man/man5/upsd.conf.5.gz
 man/man5/upsd.users.5.gz
 man/man5/upsmon.conf.5.gz
 man/man5/upssched.conf.5.gz
-%%NUT_SERIAL%%man/man8/al175.8.gz
-%%NUT_SERIAL%%man/man8/apcupsd-ups.8.gz
-%%NUT_SERIAL%%man/man8/blazer_ser.8.gz
-%%NUT_USB%%man/man8/blazer_usb.8.gz
-%%NUT_NEON%%man/man8/netxml-ups.8.gz
+%%SERIAL%%man/man8/al175.8.gz
+%%SERIAL%%man/man8/apcupsd-ups.8.gz
+%%SERIAL%%man/man8/blazer_ser.8.gz
+%%USB%%man/man8/blazer_usb.8.gz
+%%NEON%%man/man8/netxml-ups.8.gz
 man/man8/nut-driver-enumerator.8.gz
 man/man8/nut-recorder.8.gz
 man/man8/nut-scanner.8.gz
-%%NUT_USB%%man/man8/nutdrv_atcl_usb.8.gz
-%%NUT_USB%%man/man8/nutdrv_qx.8.gz
+%%USB%%man/man8/nutdrv_atcl_usb.8.gz
+%%USB%%man/man8/nutdrv_qx.8.gz
+%%SERIAL%%man/man8/nutdrv_siemens_sitop.8.gz
 man/man8/nutupsdrv.8.gz
-%%NUT_SERIAL%%man/man8/riello_ser.8.gz
-%%NUT_USB%%man/man8/riello_usb.8.gz
+%%SERIAL%%man/man8/riello_ser.8.gz
+%%USB%%man/man8/riello_usb.8.gz
 man/man8/upsc.8.gz
 man/man8/upscmd.8.gz
 man/man8/upsd.8.gz
@@ -209,55 +210,55 @@ man/man8/upslog.8.gz
 man/man8/upsmon.8.gz
 man/man8/upsrw.8.gz
 man/man8/upssched.8.gz
-%%NUT_CGI%%man/man5/hosts.conf.5.gz
-%%NUT_CGI%%man/man5/upsset.conf.5.gz
-%%NUT_CGI%%man/man5/upsstats.html.5.gz
-%%NUT_CGI%%man/man8/upsset.cgi.8.gz
-%%NUT_CGI%%man/man8/upsstats.cgi.8.gz
-%%NUT_CGI%%man/man8/upsimage.cgi.8.gz
-%%NUT_SERIAL%%man/man8/apcsmart.8.gz
-%%NUT_SERIAL%%man/man8/apcsmart-old.8.gz
-%%NUT_SERIAL%%man/man8/bestfortress.8.gz
-%%NUT_SERIAL%%man/man8/bcmxcp.8.gz
-%%NUT_SERIAL%%man/man8/belkin.8.gz
-%%NUT_SERIAL%%man/man8/belkinunv.8.gz
-%%NUT_SERIAL%%man/man8/bestuferrups.8.gz
-%%NUT_SERIAL%%man/man8/bestups.8.gz
-%%NUT_SERIAL%%man/man8/bestfcom.8.gz
-%%NUT_SERIAL%%man/man8/clone.8.gz
-%%NUT_SERIAL%%man/man8/dummy-ups.8.gz
-%%NUT_SERIAL%%man/man8/etapro.8.gz
-%%NUT_SERIAL%%man/man8/everups.8.gz
-%%NUT_SERIAL%%man/man8/gamatronic.8.gz
-%%NUT_SERIAL%%man/man8/genericups.8.gz
-%%NUT_SERIAL%%man/man8/isbmex.8.gz
-%%NUT_SERIAL%%man/man8/ivtscd.8.gz
-%%NUT_SERIAL%%man/man8/liebert.8.gz
-%%NUT_SERIAL%%man/man8/liebert-esp2.8.gz
-%%NUT_SERIAL%%man/man8/masterguard.8.gz
-%%NUT_SERIAL%%man/man8/metasys.8.gz
-%%NUT_SERIAL%%man/man8/mge-shut.8.gz
-%%NUT_SERIAL%%man/man8/mge-utalk.8.gz
-%%NUT_SERIAL%%man/man8/microdowell.8.gz
-%%NUT_SERIAL%%man/man8/microsol-apc.8.gz
-%%NUT_SERIAL%%man/man8/oneac.8.gz
-%%NUT_SERIAL%%man/man8/optiups.8.gz
-%%NUT_SERIAL%%man/man8/powercom.8.gz
-%%NUT_SERIAL%%man/man8/powerpanel.8.gz
-%%NUT_SERIAL%%man/man8/rhino.8.gz
-%%NUT_SERIAL%%man/man8/safenet.8.gz
-%%NUT_SERIAL%%man/man8/solis.8.gz
-%%NUT_SERIAL%%man/man8/tripplite.8.gz
-%%NUT_SERIAL%%man/man8/tripplitesu.8.gz
-%%NUT_SERIAL%%man/man8/upscode2.8.gz
-%%NUT_SERIAL%%man/man8/victronups.8.gz
-%%NUT_USB%%man/man8/bcmxcp_usb.8.gz
-%%NUT_USB%%man/man8/richcomm_usb.8.gz
-%%NUT_USB%%man/man8/tripplite_usb.8.gz
-%%NUT_USB%%man/man8/usbhid-ups.8.gz
-%%NUT_SNMP%%man/man8/snmp-ups.8.gz
-%%NUT_IPMIPSU%%man/man8/nut-ipmipsu.8.gz
-%%NUT_PDU%%man/man8/powerman-pdu.8.gz
+%%CGI%%man/man5/hosts.conf.5.gz
+%%CGI%%man/man5/upsset.conf.5.gz
+%%CGI%%man/man5/upsstats.html.5.gz
+%%CGI%%man/man8/upsset.cgi.8.gz
+%%CGI%%man/man8/upsstats.cgi.8.gz
+%%CGI%%man/man8/upsimage.cgi.8.gz
+%%SERIAL%%man/man8/apcsmart.8.gz
+%%SERIAL%%man/man8/apcsmart-old.8.gz
+%%SERIAL%%man/man8/bestfortress.8.gz
+%%SERIAL%%man/man8/bcmxcp.8.gz
+%%SERIAL%%man/man8/belkin.8.gz
+%%SERIAL%%man/man8/belkinunv.8.gz
+%%SERIAL%%man/man8/bestuferrups.8.gz
+%%SERIAL%%man/man8/bestups.8.gz
+%%SERIAL%%man/man8/bestfcom.8.gz
+%%SERIAL%%man/man8/clone.8.gz
+%%SERIAL%%man/man8/dummy-ups.8.gz
+%%SERIAL%%man/man8/etapro.8.gz
+%%SERIAL%%man/man8/everups.8.gz
+%%SERIAL%%man/man8/gamatronic.8.gz
+%%SERIAL%%man/man8/genericups.8.gz
+%%SERIAL%%man/man8/isbmex.8.gz
+%%SERIAL%%man/man8/ivtscd.8.gz
+%%SERIAL%%man/man8/liebert.8.gz
+%%SERIAL%%man/man8/liebert-esp2.8.gz
+%%SERIAL%%man/man8/masterguard.8.gz
+%%SERIAL%%man/man8/metasys.8.gz
+%%SERIAL%%man/man8/mge-shut.8.gz
+%%SERIAL%%man/man8/mge-utalk.8.gz
+%%SERIAL%%man/man8/microdowell.8.gz
+%%SERIAL%%man/man8/microsol-apc.8.gz
+%%SERIAL%%man/man8/oneac.8.gz
+%%SERIAL%%man/man8/optiups.8.gz
+%%SERIAL%%man/man8/powercom.8.gz
+%%SERIAL%%man/man8/powerpanel.8.gz
+%%SERIAL%%man/man8/rhino.8.gz
+%%SERIAL%%man/man8/safenet.8.gz
+%%SERIAL%%man/man8/solis.8.gz
+%%SERIAL%%man/man8/tripplite.8.gz
+%%SERIAL%%man/man8/tripplitesu.8.gz
+%%SERIAL%%man/man8/upscode2.8.gz
+%%SERIAL%%man/man8/victronups.8.gz
+%%USB%%man/man8/bcmxcp_usb.8.gz
+%%USB%%man/man8/richcomm_usb.8.gz
+%%USB%%man/man8/tripplite_usb.8.gz
+%%USB%%man/man8/usbhid-ups.8.gz
+%%SNMP%%man/man8/snmp-ups.8.gz
+%%IPMIPSU%%man/man8/nut-ipmipsu.8.gz
+%%PDU%%man/man8/powerman-pdu.8.gz
 sbin/upsd
 sbin/upsdrvctl
 sbin/upsmon
diff --git a/sysutils/nut/Makefile b/sysutils/nut/Makefile
index c26af0cd8c2f..bfb04cac27f2 100644
--- a/sysutils/nut/Makefile
+++ b/sysutils/nut/Makefile
@@ -23,12 +23,17 @@ NUT_GROUP?=	uucp
 STATEDIR?=	/var/db/nut
 PLIST_SUB+=	NUT_USER=${NUT_USER}
 PLIST_SUB+=	NUT_GROUP=${NUT_GROUP}
+CGIDIR?=	${PREFIX}/www/cgi-bin/${PORTNAME}
+CGIDIR_REL?=	${CGIDIR:S,^${PREFIX}/,,}
+PLIST_SUB+=	CGIDIR="${CGIDIR_REL}"
+PLIST_SUB+=	CGIETCDIR="etc/nut/"
 
 OPTIONS_DEFAULT=SERIAL USB SNMP NEON IPMI_OFF SSL_OFF
 OPTIONS_DEFINE=	SERIAL USB SNMP NEON PDU CGI BASH AVAHI DOCS
 OPTIONS_SINGLE=	IPMI SSL
 OPTIONS_SINGLE_IPMI=	IPMI_OFF IPMIPSU FREEIPMI
 OPTIONS_SINGLE_SSL=	SSL_OFF OPENSSL NSS
+OPTIONS_SUB=	yes
 
 SERIAL_DESC=	SERIAL support
 USB_DESC=	USB support
@@ -46,8 +51,6 @@ PLIST_SUB+=	STATEDIR=${STATEDIR}
 
 PORTDOCS=	*
 
-.include <bsd.port.options.mk>
-
 TMPDIR?=	/tmp
 INSTALL_TARGET=	install-strip
 CONFIGURE_ARGS=	--sysconfdir=${PREFIX}/etc/nut \
@@ -69,111 +72,49 @@ LIB_DEPENDS+=	libltdl.so:devel/libltdl
 
 BUILD_DEPENDS=	asciidoc:textproc/asciidoc
 
-.if ${PORT_OPTIONS:MCGI}
-LIB_DEPENDS+=	libgd.so:graphics/gd
-CGIDIR?=	${PREFIX}/www/cgi-bin/${PORTNAME}
-CGIDIR_REL?=	${CGIDIR:S,^${PREFIX}/,,}
-CONFIGURE_ARGS+=	--with-cgi --with-cgipath=${CGIDIR} \
+CGI_LIB_DEPENDS=	libgd.so:graphics/gd
+CGI_CONFIGURE_WITH=	cgi
+CGI_CONFIGURE_ON=	--with-cgipath=${CGIDIR} \
 			--with-htmlpath=${WWWDIR} \
 			--with-gd-includes=-I${LOCALBASE}/include \
 			--with-gd-libs="-L${LOCALBASE}/lib -lgd"
-PLIST_SUB+=	NUT_CGI=""
-PLIST_SUB+=	CGIDIR="${CGIDIR_REL}"
-PLIST_SUB+=	CGIETCDIR="etc/nut/"
-.else
-CONFIGURE_ARGS+=	--without-cgi
-PLIST_SUB+=	NUT_CGI="@comment "
-.endif
 
-.if ${PORT_OPTIONS:MSERIAL}
-CONFIGURE_ARGS+=	--with-serial
-PLIST_SUB+=	NUT_SERIAL=""
-.else
-CONFIGURE_ARGS+=	--without-serial
-PLIST_SUB+=	NUT_SERIAL="@comment "
-.endif
+SERIAL_CONFIGURE_WITH=	serial
 
-.if ${PORT_OPTIONS:MUSB}
-#EXTRA_PATCHES=	${FILESDIR}/extra-patch-m4_nut_check_libusb.m4
-CONFIGURE_ARGS+=	--with-usb=auto
-PLIST_SUB+=	NUT_USB=""
-.else
-CONFIGURE_ARGS+=	--without-usb
-PLIST_SUB+=	NUT_USB="@comment "
-.endif
+USB_CONFIGURE_ON=	--with-usb=auto
 
-.if ${PORT_OPTIONS:MSNMP}
-LIB_DEPENDS+=	libnetsnmp.so:net-mgmt/net-snmp
-CONFIGURE_ARGS+=	--with-snmp
-PLIST_SUB+=	NUT_SNMP=""
-.else
-CONFIGURE_ARGS+=	--without-snmp
-PLIST_SUB+=	NUT_SNMP="@comment "
-.endif
+USB_LIB_DEPENDS=	libnetsnmp.so:net-mgmt/net-snmp
+USB_CONFIGURE_WITH=	snmp
 
-.if ${PORT_OPTIONS:MNEON}
-LIB_DEPENDS+=	libneon.so:www/neon
-CONFIGURE_ARGS+=	--with-neon
-PLIST_SUB+=	NUT_NEON=""
-.else
-CONFIGURE_ARGS+=	--without-neon
-CONFIGURE_ARGS+=	--disable-neon
-PLIST_SUB+=	NUT_NEON="@comment "
-.endif
+NEON_LIB_DEPENDS+=	libneon.so:www/neon
+NEON_CONFIGURE_WITH=	neon
+NEON_CONFIGURE_OFF=	--disable-neon
 
-.if ${PORT_OPTIONS:MPDU}
-LIB_DEPENDS+=	libpowerman.so:sysutils/powerman
-CONFIGURE_ARGS+=	--with-powerman
-PLIST_SUB+=	NUT_PDU=""
-.else
-CONFIGURE_ARGS+=	--without-powerman
-PLIST_SUB+=	NUT_PDU="@comment "
-.endif
+PDU_LIB_DEPENDS+=	libpowerman.so:sysutils/powerman
+PDU_CONFIGURE_ON=	--with-powerman
+PDUCONFIGURE_OFF=	--without-powerman
 
-.if ${PORT_OPTIONS:MBASH}
-BUILD_DEPENDS+=	${LOCALBASE}/share/bash-completion/bash_completion.sh:shells/bash-completion
-RUN_DEPENDS+=	${LOCALBASE}/share/bash-completion/bash_completion.sh:shells/bash-completion
-PLIST_SUB+=	BASH=""
-.else
-PLIST_SUB+=	BASH="@comment "
-.endif
+BASH_BUILD_DEPENDS=	${LOCALBASE}/share/bash-completion/bash_completion.sh:shells/bash-completion
+BASH_RUN_DEPENDS=	${LOCALBASE}/share/bash-completion/bash_completion.sh:shells/bash-completion
 
-.if ${PORT_OPTIONS:MAVAHI}
-BUILD_DEPENDS+=	${LOCALBASE}/include/avahi-ui/avahi-ui.h:net/avahi-header
-BUILD_DEPENDS+=	avahi-daemon:net/avahi-app
-RUN_DEPENDS+=	avahi-daemon:net/avahi-app
-CONFIGURE_ARGS+=	--with-avahi
-.else
-CONFIGURE_ARGS+=	--without-avahi
-.endif
+AVAHI_BUILD_DEPENDS=	${LOCALBASE}/include/avahi-ui/avahi-ui.h:net/avahi-header
+AVAHI_BUILD_DEPENDS=	avahi-daemon:net/avahi-app
+AVAHI_RUN_DEPENDS=	avahi-daemon:net/avahi-app
+AVAHI_CONFIGURE_WITH=	avahi
 
-.if ${PORT_OPTIONS:MFREEIPMI}
-LIB_DEPENDS+=	libfreeipmi.so:sysutils/freeipmi
-CONFIGURE_ARGS+=	--with-freeipmi
-PLIST_SUB+=	NUT_FREEIPMI=""
-.else
-CONFIGURE_ARGS+=	--without-freeipmi
-PLIST_SUB+=	NUT_FREEIPMI="@comment "
-.endif
+FREEIPMI_LIB_DEPENDS=	libfreeipmi.so:sysutils/freeipmi
+FREEIPMI_CONFIGURE_WITH=freeipmi
 
-.if ${PORT_OPTIONS:MIPMIPSU}
-LIB_DEPENDS+=	libfreeipmi.so:sysutils/freeipmi
-CONFIGURE_ARGS+=	--with-ipmi
-PLIST_SUB+=	NUT_IPMIPSU=""
-.else
-CONFIGURE_ARGS+=	--without-ipmi
-PLIST_SUB+=	NUT_IPMIPSU="@comment "
-.endif
+IPMIPSU_LIB_DEPENDS=	libfreeipmi.so:sysutils/freeipmi
+IPMIPSU_CONFIGURE_WITH=	ipmi
 
-.if ${PORT_OPTIONS:MOPENSSL}
-USES+=	ssl
-CONFIGURE_ARGS+=	--with-openssl
-.elif ${PORT_OPTIONS:MNSS}
-LIB_DEPENDS=		libnss3.so:security/nss
-CONFIGURE_ARGS+=	--with-nss
-.else
-CONFIGURE_ARGS+=	--without-openssl --without-ssl
-.endif
+OPENSSL_USES=		ssl
+OPENSSL_CONFIGURE_WITH=	openssl
+
+NSS_LIB_DEPENDS=	libnss3.so:security/nss
+NSS_CONFIGURE_WITH=	nss
+
+.include <bsd.port.pre.mk>
 
 post-patch:
 	@${FIND} ${WRKSRC} -type f | ${XARGS} ${REINPLACE_CMD} -i '' -e 's|/usr/bin/env python|${PYTHON_CMD}|'
@@ -204,4 +145,4 @@ post-install:
 	@${RM} ${STAGEDIR}${PREFIX}/etc/nut/solaris-init/nut
 	@${RMDIR} ${STAGEDIR}${PREFIX}/etc/nut/solaris-init
 
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
diff --git a/sysutils/nut/pkg-plist b/sysutils/nut/pkg-plist
index 717336e84b40..b1dac90a6916 100644
--- a/sysutils/nut/pkg-plist
+++ b/sysutils/nut/pkg-plist
@@ -1,14 +1,14 @@
-%%NUT_CGI%%%%CGIDIR%%/upsimage.cgi
-%%NUT_CGI%%%%CGIDIR%%/upsset.cgi
-%%NUT_CGI%%%%CGIDIR%%/upsstats.cgi
-%%NUT_CGI%%@sample %%CGIETCDIR%%hosts.conf.sample
-%%NUT_CGI%%@sample %%CGIETCDIR%%upsset.conf.sample
-%%NUT_CGI%%@sample %%CGIETCDIR%%upsstats.html.sample
-%%NUT_CGI%%@sample %%CGIETCDIR%%upsstats-single.html.sample
-%%NUT_CGI%%%%WWWDIR%%/bottom.html
-%%NUT_CGI%%%%WWWDIR%%/header.html
-%%NUT_CGI%%%%WWWDIR%%/index.html
-%%NUT_CGI%%%%WWWDIR%%/nut-banner.png
+%%CGI%%%%CGIDIR%%/upsimage.cgi
+%%CGI%%%%CGIDIR%%/upsset.cgi
+%%CGI%%%%CGIDIR%%/upsstats.cgi
+%%CGI%%@sample %%CGIETCDIR%%hosts.conf.sample
+%%CGI%%@sample %%CGIETCDIR%%upsset.conf.sample
+%%CGI%%@sample %%CGIETCDIR%%upsstats.html.sample
+%%CGI%%@sample %%CGIETCDIR%%upsstats-single.html.sample
+%%CGI%%%%WWWDIR%%/bottom.html
+%%CGI%%%%WWWDIR%%/header.html
+%%CGI%%%%WWWDIR%%/index.html
+%%CGI%%%%WWWDIR%%/nut-banner.png
 %%ETCDIR%%/cmdvartab
 %%ETCDIR%%/driver.list
 @sample %%ETCDIR%%/nut.conf.sample
@@ -19,7 +19,7 @@
 @sample %%ETCDIR%%/upssched.conf.sample
 @sample %%EXAMPLESDIR%%/newsyslog.sample etc/newsyslog.conf.d/nut.conf
 @sample %%EXAMPLESDIR%%/syslog.sample etc/syslog.d/nut
-%%NUT_USB%%etc/devd/nut-usb.conf
+%%USB%%etc/devd/nut-usb.conf
 bin/nut-scanner
 bin/upsc
 bin/upscmd
@@ -56,61 +56,61 @@ libdata/pkgconfig/libnutclient.pc
 libdata/pkgconfig/libnutscan.pc
 libdata/pkgconfig/libupsclient.pc
 libdata/pkgconfig/libnutclientstub.pc
-%%NUT_SERIAL%%libexec/nut/al175
-%%NUT_SERIAL%%libexec/nut/apcupsd-ups
-%%NUT_USB%%libexec/nut/nutdrv_atcl_usb
-%%NUT_USB%%libexec/nut/nutdrv_qx
-%%NUT_SERIAL%%libexec/nut/riello_ser
-%%NUT_USB%%libexec/nut/riello_usb
-%%NUT_SERIAL%%libexec/nut/apcsmart
-%%NUT_SERIAL%%libexec/nut/apcsmart-old
-%%NUT_SERIAL%%libexec/nut/bcmxcp
-%%NUT_USB%%libexec/nut/bcmxcp_usb
-%%NUT_SERIAL%%libexec/nut/belkin
-%%NUT_SERIAL%%libexec/nut/belkinunv
-%%NUT_SERIAL%%libexec/nut/bestfcom
-%%NUT_SERIAL%%libexec/nut/bestfortress
-%%NUT_SERIAL%%libexec/nut/bestuferrups
-%%NUT_SERIAL%%libexec/nut/bestups
-%%NUT_SERIAL%%libexec/nut/blazer_ser
-%%NUT_USB%%libexec/nut/blazer_usb
-%%NUT_SERIAL%%libexec/nut/clone
-%%NUT_SERIAL%%libexec/nut/clone-outlet
-%%NUT_SERIAL%%libexec/nut/dummy-ups
-%%NUT_SERIAL%%libexec/nut/etapro
-%%NUT_SERIAL%%libexec/nut/everups
-%%NUT_SERIAL%%libexec/nut/gamatronic
-%%NUT_SERIAL%%libexec/nut/genericups
-%%NUT_SERIAL%%libexec/nut/isbmex
-%%NUT_SERIAL%%libexec/nut/ivtscd
-%%NUT_SERIAL%%libexec/nut/liebert
-%%NUT_SERIAL%%libexec/nut/liebert-esp2
-%%NUT_SERIAL%%libexec/nut/masterguard
-%%NUT_SERIAL%%libexec/nut/metasys
-%%NUT_SERIAL%%libexec/nut/mge-utalk
-%%NUT_SERIAL%%libexec/nut/microdowell
-%%NUT_SERIAL%%libexec/nut/microsol-apc
-%%NUT_SERIAL%%libexec/nut/mge-shut
-%%NUT_NEON%%libexec/nut/netxml-ups
-%%NUT_SERIAL%%libexec/nut/oneac
-%%NUT_SERIAL%%libexec/nut/optiups
-%%NUT_IPMIPSU%%libexec/nut/nut-ipmipsu
-%%NUT_SERIAL%%libexec/nut/nutdrv_siemens-sitop
-%%NUT_SERIAL%%libexec/nut/powercom
-%%NUT_PDU%%libexec/nut/powerman-pdu
-%%NUT_SERIAL%%libexec/nut/powerpanel
-%%NUT_SERIAL%%libexec/nut/rhino
-%%NUT_USB%%libexec/nut/richcomm_usb
-%%NUT_SERIAL%%libexec/nut/safenet
-%%NUT_SERIAL%%libexec/nut/skel
-%%NUT_SNMP%%libexec/nut/snmp-ups
-%%NUT_SERIAL%%libexec/nut/solis
-%%NUT_SERIAL%%libexec/nut/tripplite
-%%NUT_USB%%libexec/nut/tripplite_usb
-%%NUT_SERIAL%%libexec/nut/tripplitesu
-%%NUT_SERIAL%%libexec/nut/upscode2
-%%NUT_USB%%libexec/nut/usbhid-ups
-%%NUT_SERIAL%%libexec/nut/victronups
+%%SERIAL%%libexec/nut/al175
+%%SERIAL%%libexec/nut/apcupsd-ups
+%%USB%%libexec/nut/nutdrv_atcl_usb
+%%USB%%libexec/nut/nutdrv_qx
+%%SERIAL%%libexec/nut/riello_ser
+%%USB%%libexec/nut/riello_usb
+%%SERIAL%%libexec/nut/apcsmart
+%%SERIAL%%libexec/nut/apcsmart-old
+%%SERIAL%%libexec/nut/bcmxcp
+%%USB%%libexec/nut/bcmxcp_usb
+%%SERIAL%%libexec/nut/belkin
+%%SERIAL%%libexec/nut/belkinunv
+%%SERIAL%%libexec/nut/bestfcom
+%%SERIAL%%libexec/nut/bestfortress
+%%SERIAL%%libexec/nut/bestuferrups
+%%SERIAL%%libexec/nut/bestups
+%%SERIAL%%libexec/nut/blazer_ser
+%%USB%%libexec/nut/blazer_usb
+%%SERIAL%%libexec/nut/clone
+%%SERIAL%%libexec/nut/clone-outlet
+%%SERIAL%%libexec/nut/dummy-ups
+%%SERIAL%%libexec/nut/etapro
+%%SERIAL%%libexec/nut/everups
+%%SERIAL%%libexec/nut/gamatronic
+%%SERIAL%%libexec/nut/genericups
+%%SERIAL%%libexec/nut/isbmex
+%%SERIAL%%libexec/nut/ivtscd
+%%SERIAL%%libexec/nut/liebert
+%%SERIAL%%libexec/nut/liebert-esp2
+%%SERIAL%%libexec/nut/masterguard
+%%SERIAL%%libexec/nut/metasys
+%%SERIAL%%libexec/nut/mge-utalk
+%%SERIAL%%libexec/nut/microdowell
+%%SERIAL%%libexec/nut/microsol-apc
+%%SERIAL%%libexec/nut/mge-shut
+%%NEON%%libexec/nut/netxml-ups
+%%SERIAL%%libexec/nut/oneac
+%%SERIAL%%libexec/nut/optiups
+%%IPMIPSU%%libexec/nut/nut-ipmipsu
+%%SERIAL%%libexec/nut/nutdrv_siemens-sitop
+%%SERIAL%%libexec/nut/powercom
+%%PDU%%libexec/nut/powerman-pdu
+%%SERIAL%%libexec/nut/powerpanel
+%%SERIAL%%libexec/nut/rhino
+%%USB%%libexec/nut/richcomm_usb
+%%SERIAL%%libexec/nut/safenet
+%%SERIAL%%libexec/nut/skel
+%%SNMP%%libexec/nut/snmp-ups
+%%SERIAL%%libexec/nut/solis
+%%SERIAL%%libexec/nut/tripplite
+%%USB%%libexec/nut/tripplite_usb
+%%SERIAL%%libexec/nut/tripplitesu
+%%SERIAL%%libexec/nut/upscode2
+%%USB%%libexec/nut/usbhid-ups
+%%SERIAL%%libexec/nut/victronups
 man/man3/libnutclient.3.gz
 man/man3/libnutclient_commands.3.gz
 man/man3/libnutclient_devices.3.gz
@@ -187,20 +187,20 @@ man/man5/upsd.conf.5.gz
 man/man5/upsd.users.5.gz
 man/man5/upsmon.conf.5.gz
 man/man5/upssched.conf.5.gz
-%%NUT_SERIAL%%man/man8/al175.8.gz
-%%NUT_SERIAL%%man/man8/apcupsd-ups.8.gz
-%%NUT_SERIAL%%man/man8/blazer_ser.8.gz
-%%NUT_USB%%man/man8/blazer_usb.8.gz
-%%NUT_NEON%%man/man8/netxml-ups.8.gz
+%%SERIAL%%man/man8/al175.8.gz
+%%SERIAL%%man/man8/apcupsd-ups.8.gz
+%%SERIAL%%man/man8/blazer_ser.8.gz
+%%USB%%man/man8/blazer_usb.8.gz
+%%NEON%%man/man8/netxml-ups.8.gz
 man/man8/nut-driver-enumerator.8.gz
 man/man8/nut-recorder.8.gz
 man/man8/nut-scanner.8.gz
-%%NUT_USB%%man/man8/nutdrv_atcl_usb.8.gz
-%%NUT_USB%%man/man8/nutdrv_qx.8.gz
-%%NUT_SERIAL%%man/man8/nutdrv_siemens_sitop.8.gz
+%%USB%%man/man8/nutdrv_atcl_usb.8.gz
+%%USB%%man/man8/nutdrv_qx.8.gz
+%%SERIAL%%man/man8/nutdrv_siemens_sitop.8.gz
 man/man8/nutupsdrv.8.gz
-%%NUT_SERIAL%%man/man8/riello_ser.8.gz
-%%NUT_USB%%man/man8/riello_usb.8.gz
+%%SERIAL%%man/man8/riello_ser.8.gz
+%%USB%%man/man8/riello_usb.8.gz
 man/man8/upsc.8.gz
 man/man8/upscmd.8.gz
 man/man8/upsd.8.gz
@@ -210,55 +210,55 @@ man/man8/upslog.8.gz
 man/man8/upsmon.8.gz
 man/man8/upsrw.8.gz
 man/man8/upssched.8.gz
-%%NUT_CGI%%man/man5/hosts.conf.5.gz
-%%NUT_CGI%%man/man5/upsset.conf.5.gz
-%%NUT_CGI%%man/man5/upsstats.html.5.gz
-%%NUT_CGI%%man/man8/upsset.cgi.8.gz
-%%NUT_CGI%%man/man8/upsstats.cgi.8.gz
-%%NUT_CGI%%man/man8/upsimage.cgi.8.gz
-%%NUT_SERIAL%%man/man8/apcsmart.8.gz
-%%NUT_SERIAL%%man/man8/apcsmart-old.8.gz
-%%NUT_SERIAL%%man/man8/bestfortress.8.gz
-%%NUT_SERIAL%%man/man8/bcmxcp.8.gz
-%%NUT_SERIAL%%man/man8/belkin.8.gz
-%%NUT_SERIAL%%man/man8/belkinunv.8.gz
-%%NUT_SERIAL%%man/man8/bestuferrups.8.gz
-%%NUT_SERIAL%%man/man8/bestups.8.gz
-%%NUT_SERIAL%%man/man8/bestfcom.8.gz
-%%NUT_SERIAL%%man/man8/clone.8.gz
-%%NUT_SERIAL%%man/man8/dummy-ups.8.gz
-%%NUT_SERIAL%%man/man8/etapro.8.gz
-%%NUT_SERIAL%%man/man8/everups.8.gz
-%%NUT_SERIAL%%man/man8/gamatronic.8.gz
-%%NUT_SERIAL%%man/man8/genericups.8.gz
-%%NUT_SERIAL%%man/man8/isbmex.8.gz
-%%NUT_SERIAL%%man/man8/ivtscd.8.gz
-%%NUT_SERIAL%%man/man8/liebert.8.gz
-%%NUT_SERIAL%%man/man8/liebert-esp2.8.gz
-%%NUT_SERIAL%%man/man8/masterguard.8.gz
-%%NUT_SERIAL%%man/man8/metasys.8.gz
-%%NUT_SERIAL%%man/man8/mge-shut.8.gz
-%%NUT_SERIAL%%man/man8/mge-utalk.8.gz
-%%NUT_SERIAL%%man/man8/microdowell.8.gz
-%%NUT_SERIAL%%man/man8/microsol-apc.8.gz
-%%NUT_SERIAL%%man/man8/oneac.8.gz
-%%NUT_SERIAL%%man/man8/optiups.8.gz
-%%NUT_SERIAL%%man/man8/powercom.8.gz
-%%NUT_SERIAL%%man/man8/powerpanel.8.gz
-%%NUT_SERIAL%%man/man8/rhino.8.gz
-%%NUT_SERIAL%%man/man8/safenet.8.gz
-%%NUT_SERIAL%%man/man8/solis.8.gz
-%%NUT_SERIAL%%man/man8/tripplite.8.gz
-%%NUT_SERIAL%%man/man8/tripplitesu.8.gz
-%%NUT_SERIAL%%man/man8/upscode2.8.gz
-%%NUT_SERIAL%%man/man8/victronups.8.gz
-%%NUT_USB%%man/man8/bcmxcp_usb.8.gz
-%%NUT_USB%%man/man8/richcomm_usb.8.gz
-%%NUT_USB%%man/man8/tripplite_usb.8.gz
-%%NUT_USB%%man/man8/usbhid-ups.8.gz
-%%NUT_SNMP%%man/man8/snmp-ups.8.gz
-%%NUT_IPMIPSU%%man/man8/nut-ipmipsu.8.gz
-%%NUT_PDU%%man/man8/powerman-pdu.8.gz
+%%CGI%%man/man5/hosts.conf.5.gz
+%%CGI%%man/man5/upsset.conf.5.gz
+%%CGI%%man/man5/upsstats.html.5.gz
+%%CGI%%man/man8/upsset.cgi.8.gz
+%%CGI%%man/man8/upsstats.cgi.8.gz
+%%CGI%%man/man8/upsimage.cgi.8.gz
+%%SERIAL%%man/man8/apcsmart.8.gz
+%%SERIAL%%man/man8/apcsmart-old.8.gz
+%%SERIAL%%man/man8/bestfortress.8.gz
+%%SERIAL%%man/man8/bcmxcp.8.gz
+%%SERIAL%%man/man8/belkin.8.gz
+%%SERIAL%%man/man8/belkinunv.8.gz
+%%SERIAL%%man/man8/bestuferrups.8.gz
+%%SERIAL%%man/man8/bestups.8.gz
+%%SERIAL%%man/man8/bestfcom.8.gz
+%%SERIAL%%man/man8/clone.8.gz
+%%SERIAL%%man/man8/dummy-ups.8.gz
+%%SERIAL%%man/man8/etapro.8.gz
+%%SERIAL%%man/man8/everups.8.gz
+%%SERIAL%%man/man8/gamatronic.8.gz
+%%SERIAL%%man/man8/genericups.8.gz
+%%SERIAL%%man/man8/isbmex.8.gz
+%%SERIAL%%man/man8/ivtscd.8.gz
+%%SERIAL%%man/man8/liebert.8.gz
+%%SERIAL%%man/man8/liebert-esp2.8.gz
+%%SERIAL%%man/man8/masterguard.8.gz
+%%SERIAL%%man/man8/metasys.8.gz
+%%SERIAL%%man/man8/mge-shut.8.gz
+%%SERIAL%%man/man8/mge-utalk.8.gz
+%%SERIAL%%man/man8/microdowell.8.gz
+%%SERIAL%%man/man8/microsol-apc.8.gz
+%%SERIAL%%man/man8/oneac.8.gz
+%%SERIAL%%man/man8/optiups.8.gz
+%%SERIAL%%man/man8/powercom.8.gz
+%%SERIAL%%man/man8/powerpanel.8.gz
+%%SERIAL%%man/man8/rhino.8.gz
+%%SERIAL%%man/man8/safenet.8.gz
+%%SERIAL%%man/man8/solis.8.gz
+%%SERIAL%%man/man8/tripplite.8.gz
+%%SERIAL%%man/man8/tripplitesu.8.gz
+%%SERIAL%%man/man8/upscode2.8.gz
+%%SERIAL%%man/man8/victronups.8.gz
+%%USB%%man/man8/bcmxcp_usb.8.gz
+%%USB%%man/man8/richcomm_usb.8.gz
+%%USB%%man/man8/tripplite_usb.8.gz
+%%USB%%man/man8/usbhid-ups.8.gz
+%%SNMP%%man/man8/snmp-ups.8.gz
+%%IPMIPSU%%man/man8/nut-ipmipsu.8.gz
+%%PDU%%man/man8/powerman-pdu.8.gz
 sbin/upsd
 sbin/upsdrvctl
 sbin/upsmon
-- 
2.35.2


From b65146340fa7cfd5440eb3c9d51d28d28ff347cb Mon Sep 17 00:00:00 2001
From: Cy Schubert <cy@FreeBSD.org>
Date: Tue, 3 May 2022 20:58:24 -0700
Subject: [PATCH 6/7] sysutils/nut: Remove redundant BUILD_DEPENDS

Remove unused asciidoc BUILD_DEPENDS.

Note: asciidoc is only required by the nut-devel port because its
man pages are in a pre-published format.

PR:		263751
Reported by:	Joerg Pulz <Joerg.Pulz@frm2.tum.de>
---
 sysutils/nut/Makefile | 2 --
 1 file changed, 2 deletions(-)

diff --git a/sysutils/nut/Makefile b/sysutils/nut/Makefile
index bfb04cac27f2..71cfc315cfea 100644
--- a/sysutils/nut/Makefile
+++ b/sysutils/nut/Makefile
@@ -70,8 +70,6 @@ CONFIGURE_ARGS=	--sysconfdir=${PREFIX}/etc/nut \
 CFLAGS+=	-I${LOCALBASE}/include -L${LOCALBASE}/lib
 LIB_DEPENDS+=	libltdl.so:devel/libltdl
 
-BUILD_DEPENDS=	asciidoc:textproc/asciidoc
-
 CGI_LIB_DEPENDS=	libgd.so:graphics/gd
 CGI_CONFIGURE_WITH=	cgi
 CGI_CONFIGURE_ON=	--with-cgipath=${CGIDIR} \
-- 
2.35.2


From bb8de06bcae0a91cb8881a101839e0e55756d297 Mon Sep 17 00:00:00 2001
From: Cy Schubert <cy@FreeBSD.org>
Date: Tue, 3 May 2022 21:18:28 -0700
Subject: [PATCH 7/7] sysutils/nut*: Add MANPAGES option

Provide a MANPAGES option to allow users wishing a leaner install to
deselect them.

PR:		263751
Reported by:	Joerg Pulz <Joerg.Pulz@frm2.tum.de>
---
 sysutils/nut-devel/Makefile  |   7 +-
 sysutils/nut-devel/pkg-plist | 178 +++++++++++++++++------------------
 sysutils/nut/Makefile        |   7 +-
 sysutils/nut/pkg-plist       | 178 +++++++++++++++++------------------
 4 files changed, 188 insertions(+), 182 deletions(-)

diff --git a/sysutils/nut-devel/Makefile b/sysutils/nut-devel/Makefile
index 90941cea464e..f648292cf480 100644
--- a/sysutils/nut-devel/Makefile
+++ b/sysutils/nut-devel/Makefile
@@ -36,8 +36,8 @@ CGIDIR_REL?=	${CGIDIR:S,^${PREFIX}/,,}
 PLIST_SUB+=	CGIDIR="${CGIDIR_REL}"
 PLIST_SUB+=	CGIETCDIR="etc/nut/"
 
-OPTIONS_DEFAULT=SERIAL USB SNMP NEON IPMI_OFF SSL_OFF
-OPTIONS_DEFINE=	SERIAL USB SNMP NEON PDU CGI BASH AVAHI DOCS
+OPTIONS_DEFAULT=SERIAL USB SNMP NEON IPMI_OFF SSL_OFF MANPAGES
+OPTIONS_DEFINE=	SERIAL USB SNMP NEON PDU CGI BASH AVAHI DOCS MANPAGES
 OPTIONS_SINGLE=	IPMI SSL
 OPTIONS_SINGLE_IPMI=	IPMI_OFF IPMIPSU FREEIPMI
 OPTIONS_SINGLE_SSL=	SSL_OFF OPENSSL NSS
@@ -80,6 +80,9 @@ LIB_DEPENDS+=	libltdl.so:devel/libltdl
 
 BUILD_DEPENDS=	asciidoc:textproc/asciidoc
 
+MANPAGES_CONFIGURE_ON=	--with-doc=man=auto
+MANPAGES_CONFIGURE_OFF=	--with-doc=no
+
 CGI_LIB_DEPENDS=	libgd.so:graphics/gd
 CGI_CONFIGURE_WITH=	cgi
 CGI_CONFIGURE_ON=	--with-cgipath=${CGIDIR} \
diff --git a/sysutils/nut-devel/pkg-plist b/sysutils/nut-devel/pkg-plist
index b1dac90a6916..c9b7630a2d56 100644
--- a/sysutils/nut-devel/pkg-plist
+++ b/sysutils/nut-devel/pkg-plist
@@ -111,105 +111,105 @@ libdata/pkgconfig/libnutclientstub.pc
 %%SERIAL%%libexec/nut/upscode2
 %%USB%%libexec/nut/usbhid-ups
 %%SERIAL%%libexec/nut/victronups
-man/man3/libnutclient.3.gz
-man/man3/libnutclient_commands.3.gz
-man/man3/libnutclient_devices.3.gz
-man/man3/libnutclient_general.3.gz
-man/man3/libnutclient_misc.3.gz
-man/man3/libnutclient_tcp.3.gz
-man/man3/libnutclient_variables.3.gz
-man/man3/nutclient_authenticate.3.gz
-man/man3/nutclient_destroy.3.gz
-man/man3/nutclient_device_forced_shutdown.3.gz
-man/man3/nutclient_device_login.3.gz
-man/man3/nutclient_device_master.3.gz
-man/man3/nutclient_execute_device_command.3.gz
-man/man3/nutclient_get_device_command_description.3.gz
-man/man3/nutclient_get_device_commands.3.gz
-man/man3/nutclient_get_device_description.3.gz
-man/man3/nutclient_get_device_num_logins.3.gz
-man/man3/nutclient_get_device_rw_variables.3.gz
-man/man3/nutclient_get_device_variable_description.3.gz
-man/man3/nutclient_get_device_variable_values.3.gz
-man/man3/nutclient_get_device_variables.3.gz
-man/man3/nutclient_get_devices.3.gz
-man/man3/nutclient_has_device.3.gz
-man/man3/nutclient_has_device_command.3.gz
-man/man3/nutclient_has_device_variable.3.gz
-man/man3/nutclient_logout.3.gz
-man/man3/nutclient_set_device_variable_value.3.gz
-man/man3/nutclient_set_device_variable_values.3.gz
-man/man3/nutclient_tcp_create_client.3.gz
-man/man3/nutclient_tcp_disconnect.3.gz
-man/man3/nutclient_tcp_get_timeout.3.gz
-man/man3/nutclient_tcp_is_connected.3.gz
-man/man3/nutclient_tcp_reconnect.3.gz
-man/man3/nutclient_tcp_set_timeout.3.gz
-man/man3/nutscan.3.gz
-man/man3/nutscan_add_device_to_device.3.gz
-man/man3/nutscan_add_option_to_device.3.gz
-man/man3/nutscan_cidr_to_ip.3.gz
-man/man3/nutscan_display_parsable.3.gz
-man/man3/nutscan_display_ups_conf.3.gz
-man/man3/nutscan_free_device.3.gz
-man/man3/nutscan_get_serial_ports_list.3.gz
-man/man3/nutscan_init.3.gz
-man/man3/nutscan_new_device.3.gz
-man/man3/nutscan_scan_avahi.3.gz
-man/man3/nutscan_scan_eaton_serial.3.gz
-man/man3/nutscan_scan_ipmi.3.gz
-man/man3/nutscan_scan_nut.3.gz
-man/man3/nutscan_scan_snmp.3.gz
-man/man3/nutscan_scan_usb.3.gz
-man/man3/nutscan_scan_xml_http_range.3.gz
-man/man3/upscli_add_host_cert.3.gz
-man/man3/upscli_cleanup.3.gz
-man/man3/upscli_connect.3.gz
-man/man3/upscli_disconnect.3.gz
-man/man3/upscli_fd.3.gz
-man/man3/upscli_get.3.gz
-man/man3/upscli_init.3.gz
-man/man3/upscli_list_next.3.gz
-man/man3/upscli_list_start.3.gz
-man/man3/upscli_readline.3.gz
-man/man3/upscli_readline_timeout.3.gz
-man/man3/upscli_sendline.3.gz
-man/man3/upscli_sendline_timeout.3.gz
-man/man3/upscli_splitaddr.3.gz
-man/man3/upscli_splitname.3.gz
-man/man3/upscli_ssl.3.gz
-man/man3/upscli_strerror.3.gz
-man/man3/upscli_upserror.3.gz
-man/man3/upsclient.3.gz
-man/man5/nut.conf.5.gz
-man/man5/ups.conf.5.gz
-man/man5/upsd.conf.5.gz
-man/man5/upsd.users.5.gz
-man/man5/upsmon.conf.5.gz
-man/man5/upssched.conf.5.gz
+%%MANPAGES%%man/man3/libnutclient.3.gz
+%%MANPAGES%%man/man3/libnutclient_commands.3.gz
+%%MANPAGES%%man/man3/libnutclient_devices.3.gz
+%%MANPAGES%%man/man3/libnutclient_general.3.gz
+%%MANPAGES%%man/man3/libnutclient_misc.3.gz
+%%MANPAGES%%man/man3/libnutclient_tcp.3.gz
+%%MANPAGES%%man/man3/libnutclient_variables.3.gz
+%%MANPAGES%%man/man3/nutclient_authenticate.3.gz
+%%MANPAGES%%man/man3/nutclient_destroy.3.gz
+%%MANPAGES%%man/man3/nutclient_device_forced_shutdown.3.gz
+%%MANPAGES%%man/man3/nutclient_device_login.3.gz
+%%MANPAGES%%man/man3/nutclient_device_master.3.gz
+%%MANPAGES%%man/man3/nutclient_execute_device_command.3.gz
+%%MANPAGES%%man/man3/nutclient_get_device_command_description.3.gz
+%%MANPAGES%%man/man3/nutclient_get_device_commands.3.gz
+%%MANPAGES%%man/man3/nutclient_get_device_description.3.gz
+%%MANPAGES%%man/man3/nutclient_get_device_num_logins.3.gz
+%%MANPAGES%%man/man3/nutclient_get_device_rw_variables.3.gz
+%%MANPAGES%%man/man3/nutclient_get_device_variable_description.3.gz
+%%MANPAGES%%man/man3/nutclient_get_device_variable_values.3.gz
+%%MANPAGES%%man/man3/nutclient_get_device_variables.3.gz
+%%MANPAGES%%man/man3/nutclient_get_devices.3.gz
+%%MANPAGES%%man/man3/nutclient_has_device.3.gz
+%%MANPAGES%%man/man3/nutclient_has_device_command.3.gz
+%%MANPAGES%%man/man3/nutclient_has_device_variable.3.gz
+%%MANPAGES%%man/man3/nutclient_logout.3.gz
+%%MANPAGES%%man/man3/nutclient_set_device_variable_value.3.gz
+%%MANPAGES%%man/man3/nutclient_set_device_variable_values.3.gz
+%%MANPAGES%%man/man3/nutclient_tcp_create_client.3.gz
+%%MANPAGES%%man/man3/nutclient_tcp_disconnect.3.gz
+%%MANPAGES%%man/man3/nutclient_tcp_get_timeout.3.gz
+%%MANPAGES%%man/man3/nutclient_tcp_is_connected.3.gz
+%%MANPAGES%%man/man3/nutclient_tcp_reconnect.3.gz
+%%MANPAGES%%man/man3/nutclient_tcp_set_timeout.3.gz
+%%MANPAGES%%man/man3/nutscan.3.gz
+%%MANPAGES%%man/man3/nutscan_add_device_to_device.3.gz
+%%MANPAGES%%man/man3/nutscan_add_option_to_device.3.gz
+%%MANPAGES%%man/man3/nutscan_cidr_to_ip.3.gz
+%%MANPAGES%%man/man3/nutscan_display_parsable.3.gz
+%%MANPAGES%%man/man3/nutscan_display_ups_conf.3.gz
+%%MANPAGES%%man/man3/nutscan_free_device.3.gz
+%%MANPAGES%%man/man3/nutscan_get_serial_ports_list.3.gz
+%%MANPAGES%%man/man3/nutscan_init.3.gz
+%%MANPAGES%%man/man3/nutscan_new_device.3.gz
+%%MANPAGES%%man/man3/nutscan_scan_avahi.3.gz
+%%MANPAGES%%man/man3/nutscan_scan_eaton_serial.3.gz
+%%MANPAGES%%man/man3/nutscan_scan_ipmi.3.gz
+%%MANPAGES%%man/man3/nutscan_scan_nut.3.gz
+%%MANPAGES%%man/man3/nutscan_scan_snmp.3.gz
+%%MANPAGES%%man/man3/nutscan_scan_usb.3.gz
+%%MANPAGES%%man/man3/nutscan_scan_xml_http_range.3.gz
+%%MANPAGES%%man/man3/upscli_add_host_cert.3.gz
+%%MANPAGES%%man/man3/upscli_cleanup.3.gz
+%%MANPAGES%%man/man3/upscli_connect.3.gz
+%%MANPAGES%%man/man3/upscli_disconnect.3.gz
+%%MANPAGES%%man/man3/upscli_fd.3.gz
+%%MANPAGES%%man/man3/upscli_get.3.gz
+%%MANPAGES%%man/man3/upscli_init.3.gz
+%%MANPAGES%%man/man3/upscli_list_next.3.gz
+%%MANPAGES%%man/man3/upscli_list_start.3.gz
+%%MANPAGES%%man/man3/upscli_readline.3.gz
+%%MANPAGES%%man/man3/upscli_readline_timeout.3.gz
+%%MANPAGES%%man/man3/upscli_sendline.3.gz
+%%MANPAGES%%man/man3/upscli_sendline_timeout.3.gz
+%%MANPAGES%%man/man3/upscli_splitaddr.3.gz
+%%MANPAGES%%man/man3/upscli_splitname.3.gz
+%%MANPAGES%%man/man3/upscli_ssl.3.gz
+%%MANPAGES%%man/man3/upscli_strerror.3.gz
+%%MANPAGES%%man/man3/upscli_upserror.3.gz
+%%MANPAGES%%man/man3/upsclient.3.gz
+%%MANPAGES%%man/man5/nut.conf.5.gz
+%%MANPAGES%%man/man5/ups.conf.5.gz
+%%MANPAGES%%man/man5/upsd.conf.5.gz
+%%MANPAGES%%man/man5/upsd.users.5.gz
+%%MANPAGES%%man/man5/upsmon.conf.5.gz
+%%MANPAGES%%man/man5/upssched.conf.5.gz
 %%SERIAL%%man/man8/al175.8.gz
 %%SERIAL%%man/man8/apcupsd-ups.8.gz
 %%SERIAL%%man/man8/blazer_ser.8.gz
 %%USB%%man/man8/blazer_usb.8.gz
 %%NEON%%man/man8/netxml-ups.8.gz
-man/man8/nut-driver-enumerator.8.gz
-man/man8/nut-recorder.8.gz
-man/man8/nut-scanner.8.gz
+%%MANPAGES%%man/man8/nut-driver-enumerator.8.gz
+%%MANPAGES%%man/man8/nut-recorder.8.gz
+%%MANPAGES%%man/man8/nut-scanner.8.gz
 %%USB%%man/man8/nutdrv_atcl_usb.8.gz
 %%USB%%man/man8/nutdrv_qx.8.gz
 %%SERIAL%%man/man8/nutdrv_siemens_sitop.8.gz
-man/man8/nutupsdrv.8.gz
+%%MANPAGES%%man/man8/nutupsdrv.8.gz
 %%SERIAL%%man/man8/riello_ser.8.gz
 %%USB%%man/man8/riello_usb.8.gz
-man/man8/upsc.8.gz
-man/man8/upscmd.8.gz
-man/man8/upsd.8.gz
-man/man8/upsdrvctl.8.gz
-man/man8/upsdrvsvcctl.8.gz
-man/man8/upslog.8.gz
-man/man8/upsmon.8.gz
-man/man8/upsrw.8.gz
-man/man8/upssched.8.gz
+%%MANPAGES%%man/man8/upsc.8.gz
+%%MANPAGES%%man/man8/upscmd.8.gz
+%%MANPAGES%%man/man8/upsd.8.gz
+%%MANPAGES%%man/man8/upsdrvctl.8.gz
+%%MANPAGES%%man/man8/upsdrvsvcctl.8.gz
+%%MANPAGES%%man/man8/upslog.8.gz
+%%MANPAGES%%man/man8/upsmon.8.gz
+%%MANPAGES%%man/man8/upsrw.8.gz
+%%MANPAGES%%man/man8/upssched.8.gz
 %%CGI%%man/man5/hosts.conf.5.gz
 %%CGI%%man/man5/upsset.conf.5.gz
 %%CGI%%man/man5/upsstats.html.5.gz
diff --git a/sysutils/nut/Makefile b/sysutils/nut/Makefile
index 71cfc315cfea..f2b3bca03380 100644
--- a/sysutils/nut/Makefile
+++ b/sysutils/nut/Makefile
@@ -28,8 +28,8 @@ CGIDIR_REL?=	${CGIDIR:S,^${PREFIX}/,,}
 PLIST_SUB+=	CGIDIR="${CGIDIR_REL}"
 PLIST_SUB+=	CGIETCDIR="etc/nut/"
 
-OPTIONS_DEFAULT=SERIAL USB SNMP NEON IPMI_OFF SSL_OFF
-OPTIONS_DEFINE=	SERIAL USB SNMP NEON PDU CGI BASH AVAHI DOCS
+OPTIONS_DEFAULT=SERIAL USB SNMP NEON IPMI_OFF SSL_OFF MANPAGES
+OPTIONS_DEFINE=	SERIAL USB SNMP NEON PDU CGI BASH AVAHI DOCS MANPAGES
 OPTIONS_SINGLE=	IPMI SSL
 OPTIONS_SINGLE_IPMI=	IPMI_OFF IPMIPSU FREEIPMI
 OPTIONS_SINGLE_SSL=	SSL_OFF OPENSSL NSS
@@ -70,6 +70,9 @@ CONFIGURE_ARGS=	--sysconfdir=${PREFIX}/etc/nut \
 CFLAGS+=	-I${LOCALBASE}/include -L${LOCALBASE}/lib
 LIB_DEPENDS+=	libltdl.so:devel/libltdl
 
+MANPAGES_CONFIGURE_ON=	--with-doc=man=auto
+MANPAGES_CONFIGURE_OFF=	--with-doc=no
+
 CGI_LIB_DEPENDS=	libgd.so:graphics/gd
 CGI_CONFIGURE_WITH=	cgi
 CGI_CONFIGURE_ON=	--with-cgipath=${CGIDIR} \
diff --git a/sysutils/nut/pkg-plist b/sysutils/nut/pkg-plist
index b1dac90a6916..c9b7630a2d56 100644
--- a/sysutils/nut/pkg-plist
+++ b/sysutils/nut/pkg-plist
@@ -111,105 +111,105 @@ libdata/pkgconfig/libnutclientstub.pc
 %%SERIAL%%libexec/nut/upscode2
 %%USB%%libexec/nut/usbhid-ups
 %%SERIAL%%libexec/nut/victronups
-man/man3/libnutclient.3.gz
-man/man3/libnutclient_commands.3.gz
-man/man3/libnutclient_devices.3.gz
-man/man3/libnutclient_general.3.gz
-man/man3/libnutclient_misc.3.gz
-man/man3/libnutclient_tcp.3.gz
-man/man3/libnutclient_variables.3.gz
-man/man3/nutclient_authenticate.3.gz
-man/man3/nutclient_destroy.3.gz
-man/man3/nutclient_device_forced_shutdown.3.gz
-man/man3/nutclient_device_login.3.gz
-man/man3/nutclient_device_master.3.gz
-man/man3/nutclient_execute_device_command.3.gz
-man/man3/nutclient_get_device_command_description.3.gz
-man/man3/nutclient_get_device_commands.3.gz
-man/man3/nutclient_get_device_description.3.gz
-man/man3/nutclient_get_device_num_logins.3.gz
-man/man3/nutclient_get_device_rw_variables.3.gz
-man/man3/nutclient_get_device_variable_description.3.gz
-man/man3/nutclient_get_device_variable_values.3.gz
-man/man3/nutclient_get_device_variables.3.gz
-man/man3/nutclient_get_devices.3.gz
-man/man3/nutclient_has_device.3.gz
-man/man3/nutclient_has_device_command.3.gz
-man/man3/nutclient_has_device_variable.3.gz
-man/man3/nutclient_logout.3.gz
-man/man3/nutclient_set_device_variable_value.3.gz
-man/man3/nutclient_set_device_variable_values.3.gz
-man/man3/nutclient_tcp_create_client.3.gz
-man/man3/nutclient_tcp_disconnect.3.gz
-man/man3/nutclient_tcp_get_timeout.3.gz
-man/man3/nutclient_tcp_is_connected.3.gz
-man/man3/nutclient_tcp_reconnect.3.gz
-man/man3/nutclient_tcp_set_timeout.3.gz
-man/man3/nutscan.3.gz
-man/man3/nutscan_add_device_to_device.3.gz
-man/man3/nutscan_add_option_to_device.3.gz
-man/man3/nutscan_cidr_to_ip.3.gz
-man/man3/nutscan_display_parsable.3.gz
-man/man3/nutscan_display_ups_conf.3.gz
-man/man3/nutscan_free_device.3.gz
-man/man3/nutscan_get_serial_ports_list.3.gz
-man/man3/nutscan_init.3.gz
-man/man3/nutscan_new_device.3.gz
-man/man3/nutscan_scan_avahi.3.gz
-man/man3/nutscan_scan_eaton_serial.3.gz
-man/man3/nutscan_scan_ipmi.3.gz
-man/man3/nutscan_scan_nut.3.gz
-man/man3/nutscan_scan_snmp.3.gz
-man/man3/nutscan_scan_usb.3.gz
-man/man3/nutscan_scan_xml_http_range.3.gz
-man/man3/upscli_add_host_cert.3.gz
-man/man3/upscli_cleanup.3.gz
-man/man3/upscli_connect.3.gz
-man/man3/upscli_disconnect.3.gz
-man/man3/upscli_fd.3.gz
-man/man3/upscli_get.3.gz
-man/man3/upscli_init.3.gz
-man/man3/upscli_list_next.3.gz
-man/man3/upscli_list_start.3.gz
-man/man3/upscli_readline.3.gz
-man/man3/upscli_readline_timeout.3.gz
-man/man3/upscli_sendline.3.gz
-man/man3/upscli_sendline_timeout.3.gz
-man/man3/upscli_splitaddr.3.gz
-man/man3/upscli_splitname.3.gz
-man/man3/upscli_ssl.3.gz
-man/man3/upscli_strerror.3.gz
-man/man3/upscli_upserror.3.gz
-man/man3/upsclient.3.gz
-man/man5/nut.conf.5.gz
-man/man5/ups.conf.5.gz
-man/man5/upsd.conf.5.gz
-man/man5/upsd.users.5.gz
-man/man5/upsmon.conf.5.gz
-man/man5/upssched.conf.5.gz
+%%MANPAGES%%man/man3/libnutclient.3.gz
+%%MANPAGES%%man/man3/libnutclient_commands.3.gz
+%%MANPAGES%%man/man3/libnutclient_devices.3.gz
+%%MANPAGES%%man/man3/libnutclient_general.3.gz
+%%MANPAGES%%man/man3/libnutclient_misc.3.gz
+%%MANPAGES%%man/man3/libnutclient_tcp.3.gz
+%%MANPAGES%%man/man3/libnutclient_variables.3.gz
+%%MANPAGES%%man/man3/nutclient_authenticate.3.gz
+%%MANPAGES%%man/man3/nutclient_destroy.3.gz
+%%MANPAGES%%man/man3/nutclient_device_forced_shutdown.3.gz
+%%MANPAGES%%man/man3/nutclient_device_login.3.gz
+%%MANPAGES%%man/man3/nutclient_device_master.3.gz
+%%MANPAGES%%man/man3/nutclient_execute_device_command.3.gz
+%%MANPAGES%%man/man3/nutclient_get_device_command_description.3.gz
+%%MANPAGES%%man/man3/nutclient_get_device_commands.3.gz
+%%MANPAGES%%man/man3/nutclient_get_device_description.3.gz
+%%MANPAGES%%man/man3/nutclient_get_device_num_logins.3.gz
+%%MANPAGES%%man/man3/nutclient_get_device_rw_variables.3.gz
+%%MANPAGES%%man/man3/nutclient_get_device_variable_description.3.gz
+%%MANPAGES%%man/man3/nutclient_get_device_variable_values.3.gz
+%%MANPAGES%%man/man3/nutclient_get_device_variables.3.gz
+%%MANPAGES%%man/man3/nutclient_get_devices.3.gz
+%%MANPAGES%%man/man3/nutclient_has_device.3.gz
+%%MANPAGES%%man/man3/nutclient_has_device_command.3.gz
+%%MANPAGES%%man/man3/nutclient_has_device_variable.3.gz
+%%MANPAGES%%man/man3/nutclient_logout.3.gz
+%%MANPAGES%%man/man3/nutclient_set_device_variable_value.3.gz
+%%MANPAGES%%man/man3/nutclient_set_device_variable_values.3.gz
+%%MANPAGES%%man/man3/nutclient_tcp_create_client.3.gz
+%%MANPAGES%%man/man3/nutclient_tcp_disconnect.3.gz
+%%MANPAGES%%man/man3/nutclient_tcp_get_timeout.3.gz
+%%MANPAGES%%man/man3/nutclient_tcp_is_connected.3.gz
+%%MANPAGES%%man/man3/nutclient_tcp_reconnect.3.gz
+%%MANPAGES%%man/man3/nutclient_tcp_set_timeout.3.gz
+%%MANPAGES%%man/man3/nutscan.3.gz
+%%MANPAGES%%man/man3/nutscan_add_device_to_device.3.gz
+%%MANPAGES%%man/man3/nutscan_add_option_to_device.3.gz
+%%MANPAGES%%man/man3/nutscan_cidr_to_ip.3.gz
+%%MANPAGES%%man/man3/nutscan_display_parsable.3.gz
+%%MANPAGES%%man/man3/nutscan_display_ups_conf.3.gz
+%%MANPAGES%%man/man3/nutscan_free_device.3.gz
+%%MANPAGES%%man/man3/nutscan_get_serial_ports_list.3.gz
+%%MANPAGES%%man/man3/nutscan_init.3.gz
+%%MANPAGES%%man/man3/nutscan_new_device.3.gz
+%%MANPAGES%%man/man3/nutscan_scan_avahi.3.gz
+%%MANPAGES%%man/man3/nutscan_scan_eaton_serial.3.gz
+%%MANPAGES%%man/man3/nutscan_scan_ipmi.3.gz
+%%MANPAGES%%man/man3/nutscan_scan_nut.3.gz
+%%MANPAGES%%man/man3/nutscan_scan_snmp.3.gz
+%%MANPAGES%%man/man3/nutscan_scan_usb.3.gz
+%%MANPAGES%%man/man3/nutscan_scan_xml_http_range.3.gz
+%%MANPAGES%%man/man3/upscli_add_host_cert.3.gz
+%%MANPAGES%%man/man3/upscli_cleanup.3.gz
+%%MANPAGES%%man/man3/upscli_connect.3.gz
+%%MANPAGES%%man/man3/upscli_disconnect.3.gz
+%%MANPAGES%%man/man3/upscli_fd.3.gz
+%%MANPAGES%%man/man3/upscli_get.3.gz
+%%MANPAGES%%man/man3/upscli_init.3.gz
+%%MANPAGES%%man/man3/upscli_list_next.3.gz
+%%MANPAGES%%man/man3/upscli_list_start.3.gz
+%%MANPAGES%%man/man3/upscli_readline.3.gz
+%%MANPAGES%%man/man3/upscli_readline_timeout.3.gz
+%%MANPAGES%%man/man3/upscli_sendline.3.gz
+%%MANPAGES%%man/man3/upscli_sendline_timeout.3.gz
+%%MANPAGES%%man/man3/upscli_splitaddr.3.gz
+%%MANPAGES%%man/man3/upscli_splitname.3.gz
+%%MANPAGES%%man/man3/upscli_ssl.3.gz
+%%MANPAGES%%man/man3/upscli_strerror.3.gz
+%%MANPAGES%%man/man3/upscli_upserror.3.gz
+%%MANPAGES%%man/man3/upsclient.3.gz
+%%MANPAGES%%man/man5/nut.conf.5.gz
+%%MANPAGES%%man/man5/ups.conf.5.gz
+%%MANPAGES%%man/man5/upsd.conf.5.gz
+%%MANPAGES%%man/man5/upsd.users.5.gz
+%%MANPAGES%%man/man5/upsmon.conf.5.gz
+%%MANPAGES%%man/man5/upssched.conf.5.gz
 %%SERIAL%%man/man8/al175.8.gz
 %%SERIAL%%man/man8/apcupsd-ups.8.gz
 %%SERIAL%%man/man8/blazer_ser.8.gz
 %%USB%%man/man8/blazer_usb.8.gz
 %%NEON%%man/man8/netxml-ups.8.gz
-man/man8/nut-driver-enumerator.8.gz
-man/man8/nut-recorder.8.gz
-man/man8/nut-scanner.8.gz
+%%MANPAGES%%man/man8/nut-driver-enumerator.8.gz
+%%MANPAGES%%man/man8/nut-recorder.8.gz
+%%MANPAGES%%man/man8/nut-scanner.8.gz
 %%USB%%man/man8/nutdrv_atcl_usb.8.gz
 %%USB%%man/man8/nutdrv_qx.8.gz
 %%SERIAL%%man/man8/nutdrv_siemens_sitop.8.gz
-man/man8/nutupsdrv.8.gz
+%%MANPAGES%%man/man8/nutupsdrv.8.gz
 %%SERIAL%%man/man8/riello_ser.8.gz
 %%USB%%man/man8/riello_usb.8.gz
-man/man8/upsc.8.gz
-man/man8/upscmd.8.gz
-man/man8/upsd.8.gz
-man/man8/upsdrvctl.8.gz
-man/man8/upsdrvsvcctl.8.gz
-man/man8/upslog.8.gz
-man/man8/upsmon.8.gz
-man/man8/upsrw.8.gz
-man/man8/upssched.8.gz
+%%MANPAGES%%man/man8/upsc.8.gz
+%%MANPAGES%%man/man8/upscmd.8.gz
+%%MANPAGES%%man/man8/upsd.8.gz
+%%MANPAGES%%man/man8/upsdrvctl.8.gz
+%%MANPAGES%%man/man8/upsdrvsvcctl.8.gz
+%%MANPAGES%%man/man8/upslog.8.gz
+%%MANPAGES%%man/man8/upsmon.8.gz
+%%MANPAGES%%man/man8/upsrw.8.gz
+%%MANPAGES%%man/man8/upssched.8.gz
 %%CGI%%man/man5/hosts.conf.5.gz
 %%CGI%%man/man5/upsset.conf.5.gz
 %%CGI%%man/man5/upsstats.html.5.gz
-- 
2.35.2