Index: head/sysutils/nut/Makefile =================================================================== --- head/sysutils/nut/Makefile (revision 452530) +++ head/sysutils/nut/Makefile (revision 452531) @@ -1,188 +1,188 @@ # Created by: Boris Popov # $FreeBSD$ PORTNAME= nut PORTVERSION= 2.7.4 -PORTREVISION= 5 +PORTREVISION= 6 CATEGORIES= sysutils MASTER_SITES= http://www.networkupstools.org/source/${PORTVERSION:R}/ DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${DISTNAME}${EXTRACT_SUFX}.sig EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} MAINTAINER= cy@FreeBSD.org COMMENT= Network UPS Tools USE_AUTOTOOLS= autoconf GNU_CONFIGURE= yes USE_LDCONFIG= yes USES= gmake pkgconfig libtool NUT_USER?= uucp NUT_GROUP?= uucp STATEDIR?= /var/db/nut PLIST_SUB+= NUT_USER=${NUT_USER} PLIST_SUB+= NUT_GROUP=${NUT_GROUP} OPTIONS_DEFAULT=SERIAL USB SNMP NEON IPMI_OFF OPTIONS_DEFINE= SERIAL USB SNMP NEON PDU CGI BASH AVAHI OPENSSL DOCS OPTIONS_SINGLE= IPMI OPTIONS_SINGLE_IPMI= IPMI_OFF IPMIPSU FREEIPMI 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) USE_RC_SUBR= nut nut_upsmon nut_upslog SUB_LIST+= STATEDIR=${STATEDIR} PLIST_SUB+= STATEDIR=${STATEDIR} PORTDOCS= * .include 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-dev .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} \ --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 .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 .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 .if ${PORT_OPTIONS:MNEON} LIB_DEPENDS+= libneon.so:www/neon CONFIGURE_ARGS+= --with-neonxml PLIST_SUB+= NUT_NEON="" .else CONFIGURE_ARGS+= --without-neonxml CONFIGURE_ARGS+= --disable-neonxml PLIST_SUB+= NUT_NEON="@comment " .endif .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 .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 .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 .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 .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 .if ${PORT_OPTIONS:MOPENSSL} USES+= ssl CONFIGURE_ARGS+= --with-openssl .else CONFIGURE_ARGS+= --without-openssl --without-ssl .endif pre-install: @${MKDIR} ${STAGEDIR}${PREFIX}/libexec/nut @${REINPLACE_CMD} -e 's/device-name\*/cdev/g' ${WRKSRC}/scripts/devd/nut-usb.conf post-install: @${MKDIR} ${STAGEDIR}${STATEDIR} .if ${PORT_OPTIONS:MDOCS} .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 @${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 ChangeLog INSTALL MAINTAINERS NEWS README UPGRADING ${INSTALL_DATA} ${WRKSRC}/${file} ${STAGEDIR}${DOCSDIR} .endfor .endif .include Index: head/sysutils/nut/files/patch-drivers_libshut.c =================================================================== --- head/sysutils/nut/files/patch-drivers_libshut.c (revision 452530) +++ head/sysutils/nut/files/patch-drivers_libshut.c (revision 452531) @@ -1,15 +1,23 @@ --- drivers/libshut.c.orig 2015-12-29 12:08:34 UTC +++ drivers/libshut.c -@@ -809,10 +809,10 @@ int shut_get_string_simple(int upsfd, int index, +@@ -37,6 +37,7 @@ + #include "nut_stdint.h" /* for uint8_t, uint16_t, uint32_t */ + + #include "serial.h" ++#include "libusb.h" + #include "libshut.h" + #include "common.h" /* for xmalloc, upsdebugx prototypes */ + +@@ -809,10 +810,10 @@ int shut_get_string_simple(int upsfd, int index, return ret; if (tbuf[1] != USB_DT_STRING) - return -EIO; + return LIBUSB_ERROR_IO; if (tbuf[0] > ret) - return -EFBIG; + return LIBUSB_ERROR_OVERFLOW; /* skip the UTF8 zero'ed high bytes */ for (di = 0, si = 2; si < tbuf[0]; si += 2) Index: head/sysutils/nut/files/patch-drivers_usbhid-ups.c =================================================================== --- head/sysutils/nut/files/patch-drivers_usbhid-ups.c (revision 452530) +++ head/sysutils/nut/files/patch-drivers_usbhid-ups.c (revision 452531) @@ -1,66 +1,74 @@ --- drivers/usbhid-ups.c.orig 2015-12-29 12:08:34 UTC +++ drivers/usbhid-ups.c +@@ -30,6 +30,7 @@ + #define DRIVER_VERSION "0.41" + + #include "main.h" ++#include "libusb.h" + #include "libhid.h" + #include "usbhid-ups.h" + #include "hidparser.h" @@ -790,22 +790,14 @@ void upsdrv_updateinfo(void) /* Get HID notifications on Interrupt pipe first */ if (use_interrupt_pipe == TRUE) { evtCount = HIDGetEvents(udev, event, MAX_EVENT_NUM); - switch (evtCount) - { - case -EBUSY: /* Device or resource busy */ - upslog_with_errno(LOG_CRIT, "Got disconnected by another driver"); - case -EPERM: /* Operation not permitted */ - case -ENODEV: /* No such device */ - case -EACCES: /* Permission denied */ - case -EIO: /* I/O error */ - case -ENXIO: /* No such device or address */ - case -ENOENT: /* No such file or directory */ + if (evtCount < 0) { + if (evtCount == LIBUSB_ERROR_BUSY) { + upslog_with_errno(LOG_CRIT, "Got disconnected by another driver"); + } /* Uh oh, got to reconnect! */ hd = NULL; - return; - default: + } else { upsdebugx(1, "Got %i HID objects...", (evtCount >= 0) ? evtCount : 0); - break; } } else { evtCount = 0; @@ -1280,14 +1272,12 @@ static bool_t hid_ups_walk(walkmode_t mode) switch (retcode) { - case -EBUSY: /* Device or resource busy */ + case LIBUSB_ERROR_BUSY: /* Device or resource busy */ upslog_with_errno(LOG_CRIT, "Got disconnected by another driver"); - case -EPERM: /* Operation not permitted */ - case -ENODEV: /* No such device */ - case -EACCES: /* Permission denied */ - case -EIO: /* I/O error */ - case -ENXIO: /* No such device or address */ - case -ENOENT: /* No such file or directory */ + case LIBUSB_ERROR_NO_DEVICE: /* No such device */ + case LIBUSB_ERROR_ACCESS: /* Permission denied */ + case LIBUSB_ERROR_IO: /* I/O error */ + case LIBUSB_ERROR_NOT_FOUND: /* No such file or directory */ /* Uh oh, got to reconnect! */ hd = NULL; return FALSE; @@ -1298,12 +1288,9 @@ static bool_t hid_ups_walk(walkmode_t mode) case 0: continue; - case -ETIMEDOUT: /* Connection timed out */ - case -EOVERFLOW: /* Value too large for defined data type */ -#ifdef EPROTO - case -EPROTO: /* Protocol error */ -#endif - case -EPIPE: /* Broken pipe */ + case LIBUSB_ERROR_TIMEOUT: /* Connection timed out */ + case LIBUSB_ERROR_OVERFLOW: /* Value too large for defined data type */ + case LIBUSB_ERROR_PIPE: /* Broken pipe */ default: /* Don't know what happened, try again later... */ continue;