freebsd-ports/sysutils/nut-devel/Makefile

178 lines
5.6 KiB
Makefile

PORTNAME= nut
PORTVERSION= ${NUT_COMMIT_DATE}
PORTREVISION= 1
CATEGORIES= sysutils
PKGNAMESUFFIX= -devel
# 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
WWW= https://www.networkupstools.org/
LICENSE= GPLv2+ GPLv3+ ART10 GPLv1+
LICENSE_COMB= multi
LICENSE_FILE= ${WRKSRC}/COPYING
CONFLICTS= nut-[0-9]*
USE_GITHUB= yes
GH_ACCOUNT= networkupstools
GH_TAGNAME= 9b9d5099c
NUT_COMMIT_DATE= 2023.10.30
MAKE_JOBS_UNSAFE= yes
GNU_CONFIGURE= yes
USES= autoreconf:build compiler:c11 gmake libtool pkgconfig python
USE_LDCONFIG= yes
NUT_USER?= nut
NUT_GROUP?= nut
USERS= ${NUT_USER}
GROUPS= ${NUT_GROUP} dialer
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 PDU MODBUS CGI BASH AVAHI FREEIPMI DOCS MANPAGES OPENSSL
OPTIONS_DEFAULT_armv6= SERIAL USB SNMP NEON PDU MODBUS CGI BASH AVAHI DOCS MANPAGES OPENSSL
OPTIONS_DEFAULT_armv7= SERIAL USB SNMP NEON PDU MODBUS CGI BASH AVAHI DOCS MANPAGES OPENSSL
OPTIONS_DEFAULT_armv64= SERIAL USB SNMP NEON PDU MODBUS CGI BASH AVAHI DOCS MANPAGES OPENSSL
OPTIONS_DEFINE= SERIAL USB SNMP NEON PDU MODBUS CGI BASH AVAHI IPMIPSU FREEIPMI DOCS MANPAGES DEV
OPTIONS_SINGLE= SSL
OPTIONS_SINGLE_SSL= SSL_OFF OPENSSL NSS
OPTIONS_SUB= yes
SERIAL_DESC= SERIAL support
USB_DESC= USB support
NEON_DESC= NEON XML/HTTP support
PDU_DESC= Powerman PDU support
MODBUS_DESC= Modbus support
CGI_DESC= Web CGI interface
FREEIPMI_DESC= freeipmi support
IPMIPSU_DESC= Use nut-ipmipsu support (experimental)
SSL_OFF_DESC= No SSL support
DEV_DESC= Install developer tools
USE_RC_SUBR= nut nut_upsmon nut_upslog
SUB_LIST+= STATEDIR=${STATEDIR} NUT_USER=${NUT_USER} NUT_GROUP=${NUT_GROUP}
PLIST_SUB+= STATEDIR=${STATEDIR}
PORTDOCS= *
TMPDIR?= /tmp
INSTALL_TARGET= install-strip
CONFIGURE_ARGS= --sysconfdir=${PREFIX}/etc/nut \
--program-transform-name="" \
--localstatedir=${STATEDIR} \
--datadir=${PREFIX}/etc/nut \
--with-devd-dir=${PREFIX}/etc/devd \
--with-drvpath=${PREFIX}/libexec/nut \
--with-statepath=${STATEDIR} \
--with-altpidpath=${STATEDIR} \
--with-pidpath=${STATEDIR} \
--with-pkgconfig-dir=${PREFIX}/libdata/pkgconfig \
--with-user=${NUT_USER} \
--with-group=${NUT_GROUP} \
--with-python=${PYTHON_CMD} \
--without-python2 \
--with-python3=${PYTHON_CMD} \
--with-ltdl --with-nut-scanner
CFLAGS+= -I${LOCALBASE}/include -L${LOCALBASE}/lib -lpthread
LIB_DEPENDS+= libltdl.so:devel/libltdl
# XXX Remove this when copying this port to sysutils/nut. The GA version
# XXX of nut ships with preformatted files and therefore does not need
# XXX asciidoc.
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} \
--with-htmlpath=${WWWDIR} \
--with-gd-includes=-I${LOCALBASE}/include \
--with-gd-libs="-L${LOCALBASE}/lib -lgd"
SERIAL_CONFIGURE_WITH= serial
USB_CONFIGURE_WITH= usb=auto
SNMP_LIB_DEPENDS= libnetsnmp.so:net-mgmt/net-snmp
SNMP_CONFIGURE_WITH= snmp
NEON_LIB_DEPENDS= libneon.so:www/neon
NEON_CONFIGURE_WITH= neon
PDU_LIB_DEPENDS= libpowerman.so:sysutils/powerman
PDU_CONFIGURE_WITH= powerman
MODBUS_LIB_DEPENDS= libmodbus.so:comms/libmodbus
MODBUS_CONFIGURE_WITH= modbus
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
FREEIPMI_LIB_DEPENDS= libfreeipmi.so:sysutils/freeipmi
FREEIPMI_CONFIGURE_WITH=freeipmi
IPMIPSU_LIB_DEPENDS= libfreeipmi.so:sysutils/freeipmi
IPMIPSU_CONFIGURE_WITH= ipmi
OPENSSL_USES= ssl
OPENSSL_CONFIGURE_WITH= openssl
NSS_LIB_DEPENDS= libnss3.so:security/nss
NSS_CONFIGURE_WITH= nss
DEV_CONFIGURE_WITH= dev
.include <bsd.port.pre.mk>
post-patch:
@${REINPLACE_CMD} -i '' -e 's|python|${PYTHON_CMD}|' ${WRKSRC}/autogen.sh
@${FIND} ${WRKSRC} -type f | ${XARGS} ${REINPLACE_CMD} -i '' -e 's|/usr/bin/env python|${PYTHON_CMD}|'
@${FIND} ${WRKSRC} -type f | ${XARGS} ${REINPLACE_CMD} -i '' -e 's|/usr/local/ups|${PREFIX}|'
pre-configure:
cd ${WRKSRC} && ./autogen.sh
pre-install:
@${MKDIR} ${STAGEDIR}${PREFIX}/libexec/nut
.if ${PORT_OPTIONS:MUSB}
@${REINPLACE_CMD} -e 's/device-name\*/cdev/g' ${WRKSRC}/scripts/devd/nut-usb.conf
.endif
post-install:
@${MKDIR} ${STAGEDIR}${STATEDIR}
@${MKDIR} ${STAGEDIR}${PREFIX}/etc/syslog.d
.if ${PORT_OPTIONS:MBASH}
@${MKDIR} ${STAGEDIR}${PREFIX}/etc/bash_completion.d/
${INSTALL_DATA} ${WRKSRC}/scripts/misc/nut.bash_completion ${STAGEDIR}${PREFIX}/etc/bash_completion.d/
.endif
.if ${PORT_OPTIONS:MDOCS}
@${MKDIR} ${STAGEDIR}${DOCSDIR}/cables
${INSTALL_DATA} ${WRKSRC}/docs/cables/*.txt ${STAGEDIR}${DOCSDIR}/cables
${INSTALL_DATA} ${WRKSRC}/docs/*.txt ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/docs/FAQ.txt ${STAGEDIR}${DOCSDIR}
.for file in AUTHORS COPYING INSTALL MAINTAINERS NEWS README
${INSTALL_DATA} ${WRKSRC}/${file} ${STAGEDIR}${DOCSDIR}
.endfor
.endif
@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
${INSTALL_DATA} ${PATCHDIR}/nut.syslog ${STAGEDIR}${EXAMPLESDIR}/syslog.sample
${INSTALL_DATA} ${PATCHDIR}/nut.newsyslog ${STAGEDIR}${EXAMPLESDIR}/newsyslog.sample
${INSTALL_DATA} ${PATCHDIR}/nut_upslog.sample ${STAGEDIR}${EXAMPLESDIR}/nut_upslog.sample
${MKDIR} ${STAGEDIR}/var/log/nut
.include <bsd.port.post.mk>