Subject: [alpine-devel] [PATCH] testing/nut: new aport

From: Kozak Ivan <[email-masked]>
Date: Sun, 2 Mar 2014 17:19:40 +0400

---
 testing/nut/APKBUILD         |  99 ++++++++++++++++++++++++
 testing/nut/bcmxcp.patch     | 178 +++++++++++++++++++++++++++++++++++++++++++
 testing/nut/nut-upsd.confd   |   3 +
 testing/nut/nut-upsd.initd   |  53 +++++++++++++
 testing/nut/nut-upsmon.confd |   3 +
 testing/nut/nut-upsmon.initd |  43 +++++++++++
 testing/nut/nut.pre-install  |   4 +
 7 files changed, 383 insertions(+)
 create mode 100644 testing/nut/APKBUILD
 create mode 100644 testing/nut/bcmxcp.patch
 create mode 100644 testing/nut/nut-upsd.confd
 create mode 100644 testing/nut/nut-upsd.initd
 create mode 100644 testing/nut/nut-upsmon.confd
 create mode 100644 testing/nut/nut-upsmon.initd
 create mode 100644 testing/nut/nut.pre-install

diff --git a/testing/nut/APKBUILD b/testing/nut/APKBUILD
new file mode 100644
index 0000000..d6929df
--- /dev/null
+++ b/testing/nut/APKBUILD
@@ -0,0 +1,99 @@
+# Contributor: Kozak Ivan <[email-masked]>
+# Maintainer: Kozak Ivan <[email-masked]>
+pkgname=nut
+pkgver=2.7.1
+pkgrel=0
+pkgdesc="Network UPS tools - server"
+url="http://www.networkupstools.org"
+arch="all"
+license="GPL"
+depends_dev="libusb-compat-dev net-snmp-dev neon-dev libtool"
+makedepends="$depends_dev"
+pkgusers="nut"
+pkggroups="nut"
+install="$pkgname.pre-install"
+subpackages="$pkgname-doc $pkgname-dev"
+source="http://www.networkupstools.org/source/2.7/$pkgname-$pkgver.tar.gz
+	bcmxcp.patch
+	nut-upsd.initd
+	nut-upsd.confd
+	nut-upsmon.initd
+	nut-upsmon.confd"
+
+# bcmxcp.patch - sorry no bcmxc and no bcmxcp_usb (get errors about undefined reference to `ldexp')
+
+_builddir="$srcdir"/$pkgname-$pkgver
+
+prepare() {
+	local i
+	cd "$srcdir"
+	for i in $source; do
+		case $i in
+		*.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+		esac
+	done
+}
+
+build() {
+	cd "$_builddir"
+	./configure --without-wrap \
+	    --with-user=nut \
+    	--with-group=nut \
+	    --disable-static \
+	    --with-serial \
+	    --with-usb \
+	    --without-avahi \
+	    --with-snmp \
+	    --with-neon \
+	    --without-powerman \
+	    --without-ipmi \
+	    --without-freeipmi \
+	    --with-libltdl \
+	    --without-cgi \
+		--prefix=/usr \
+		--with-drvpath=/usr/libexec/nut \
+	    --datadir=/usr/share/nut \
+	    --sysconfdir=/etc/nut \
+		--with-statepath=/var/run/nut \
+		--with-altpidpath=/var/run/nut \
+	    --with-openssl
+
+	make || return 1
+}
+
+package() {
+	cd "$_builddir"
+	make DESTDIR="$pkgdir" install || return 1
+	chmod 640 "$pkgdir"/etc/nut/* || return 1
+	chown root:nut "$pkgdir"/etc/nut/* || return 1
+	install -D -m0755 "$srcdir"/nut-upsd.initd "$pkgdir"/etc/init.d/nut-upsd || return 1
+	install -D -m0644 "$srcdir"/nut-upsd.confd "$pkgdir"/etc/conf.d/nut-upsd || return 1
+	install -D -m0755 "$srcdir"/nut-upsmon.initd "$pkgdir"/etc/init.d/nut-upsmon || return 1
+	install -D -m0644 "$srcdir"/nut-upsmon.confd "$pkgdir"/etc/conf.d/nut-upsmon || return 1
+	#install -d -o nut -g nut -m700 "$pkgdir"/var/lib/nut || return 1
+	#for file in "$pkgdir"/etc/nut/*.sample
+	#do
+	#	mv $file "$pkgdir"/etc/nut/`basename $file .sample`
+	#done
+
+	rm -f "$pkgdir"/usr/lib/*.la
+}
+
+md5sums="e64cf832063ecd6645683fc2ac2bd564  nut-2.7.1.tar.gz
+e32d263cac299d26c8109053d22dfdcf  bcmxcp.patch
+e981e4ff27c0fc455ad2f319cbf29c36  nut-upsd.initd
+6b068c71884f8d66b5b7395b4a14d821  nut-upsd.confd
+21f6121acfeb17d51376bb0d11518804  nut-upsmon.initd
+6b068c71884f8d66b5b7395b4a14d821  nut-upsmon.confd"
+sha256sums="71a6d73ad6d910808126ba7f217ec1142a0c6709c63a22a099e7338960b2c798  nut-2.7.1.tar.gz
+60c9b0b3cea00887f4d7e9e3ebc2644617bb511b4601bbae0b0473b9db5dcd90  bcmxcp.patch
+afb6878a67a6effc9199b24dbcc4be20a799abbd370d8ebcfe09d05bb1ba11d6  nut-upsd.initd
+8ee7ff65c3ef84bb1bc0b458ff5b574bb8a6ac656a6d3a40441185b352481dda  nut-upsd.confd
+0dfbc87ff6bb6c66132ecf4d7d09710ba34343e7cf42733484fa2df77b9be4cb  nut-upsmon.initd
+8ee7ff65c3ef84bb1bc0b458ff5b574bb8a6ac656a6d3a40441185b352481dda  nut-upsmon.confd"
+sha512sums="087c63b12f44c1b0caf8ffb2c5fda213a1b2060bdc284bd7fdff38a58f190c513790438388a4ceda8772938ae56ac84ca8635666ad89f067bec4d818252158ae  nut-2.7.1.tar.gz
+9b43a749c7ace6a908bf0c4a23c04411ca755b872c80ad8c2d9be24ac6669978b969c2a8aa1bb0b23a1c53e912ca7ec2e315fc7e4ce301ac9b4aac41f573dfed  bcmxcp.patch
+a0a205805a7cd7bc70163d9b50e51f16e74af22a799f74b1155430ca65090d64af972070d04759e4ac8e83e088bcbc531d9e9abd38482f74a885965ff0dc0ed8  nut-upsd.initd
+cf93ce44cb6fcf980f48f77abeeabb8d0b4008e8258cf7085d68b2a9c5c10c818dbf0030630218fcf8d9c9aba43c06bda28f91efca9cc783438ec0192f10eb5d  nut-upsd.confd
+aa6efe85e874ada8b4cea0581bca6b8c24fa336fe1b197925519041f55b21d77683c31e2d8304fb45062cb52a55d44682981fcd22c7db0d2f8adf7e866324efe  nut-upsmon.initd
+cf93ce44cb6fcf980f48f77abeeabb8d0b4008e8258cf7085d68b2a9c5c10c818dbf0030630218fcf8d9c9aba43c06bda28f91efca9cc783438ec0192f10eb5d  nut-upsmon.confd"
diff --git a/testing/nut/bcmxcp.patch b/testing/nut/bcmxcp.patch
new file mode 100644
index 0000000..644d9b7
--- /dev/null
+++ b/testing/nut/bcmxcp.patch
@@ -0,0 +1,178 @@
+--- Makefile.in
++++ src/nut-2.7.1/drivers/Makefile.in
+@@ -135,7 +135,7 @@
+ am_libnuthalmain_a_OBJECTS = main-hal.$(OBJEXT) dstate-hal.$(OBJEXT) \
+ 	usb-common.$(OBJEXT)
+ libnuthalmain_a_OBJECTS = $(am_libnuthalmain_a_OBJECTS)
+-am__EXEEXT_1 = al175$(EXEEXT) bcmxcp$(EXEEXT) belkin$(EXEEXT) \
++am__EXEEXT_1 = al175$(EXEEXT) belkin$(EXEEXT) \
+ 	belkinunv$(EXEEXT) bestfcom$(EXEEXT) bestfortress$(EXEEXT) \
+ 	bestuferrups$(EXEEXT) bestups$(EXEEXT) dummy-ups$(EXEEXT) \
+ 	etapro$(EXEEXT) everups$(EXEEXT) gamatronic$(EXEEXT) \
+@@ -151,7 +151,7 @@
+ 	apcsmart-old$(EXEEXT) apcupsd-ups$(EXEEXT) riello_ser$(EXEEXT) \
+ 	nutdrv_qx$(EXEEXT)
+ am__EXEEXT_2 = snmp-ups$(EXEEXT)
+-am__EXEEXT_3 = usbhid-ups$(EXEEXT) bcmxcp_usb$(EXEEXT) \
++am__EXEEXT_3 = usbhid-ups$(EXEEXT) \
+ 	tripplite_usb$(EXEEXT) blazer_usb$(EXEEXT) \
+ 	richcomm_usb$(EXEEXT) riello_usb$(EXEEXT) nutdrv_qx$(EXEEXT)
+ am__EXEEXT_4 = $(am__EXEEXT_3)
+@@ -168,7 +168,6 @@
+ am__installdirs = "$(DESTDIR)$(driverexecdir)" \
+ 	"$(DESTDIR)$(halexecdir)"
+ am__EXEEXT_14 = hald-addon-usbhid-ups$(EXEEXT) \
+-	hald-addon-bcmxcp_usb$(EXEEXT) \
+ 	hald-addon-tripplite_usb$(EXEEXT) \
+ 	hald-addon-blazer_usb$(EXEEXT) hald-addon-riello_usb$(EXEEXT) \
+ 	hald-addon-nutdrv_qx$(EXEEXT)
+@@ -193,14 +192,7 @@
+ apcupsd_ups_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(apcupsd_ups_CFLAGS) \
+ 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+-am_bcmxcp_OBJECTS = bcmxcp.$(OBJEXT) bcmxcp_ser.$(OBJEXT)
+-bcmxcp_OBJECTS = $(am_bcmxcp_OBJECTS)
+ am__DEPENDENCIES_3 = $(am__DEPENDENCIES_2)
+-bcmxcp_DEPENDENCIES = $(am__DEPENDENCIES_3)
+-am_bcmxcp_usb_OBJECTS = bcmxcp_usb.$(OBJEXT) bcmxcp.$(OBJEXT) \
+-	usb-common.$(OBJEXT)
+-bcmxcp_usb_OBJECTS = $(am_bcmxcp_usb_OBJECTS)
+-bcmxcp_usb_DEPENDENCIES = $(LDADD_DRIVERS) $(am__DEPENDENCIES_1)
+ am_belkin_OBJECTS = belkin.$(OBJEXT)
+ belkin_OBJECTS = $(am_belkin_OBJECTS)
+ belkin_LDADD = $(LDADD)
+@@ -264,11 +256,6 @@
+ genericups_OBJECTS = $(am_genericups_OBJECTS)
+ genericups_LDADD = $(LDADD)
+ genericups_DEPENDENCIES = $(am__DEPENDENCIES_2)
+-am_hald_addon_bcmxcp_usb_OBJECTS = bcmxcp_usb.$(OBJEXT) \
+-	bcmxcp.$(OBJEXT)
+-hald_addon_bcmxcp_usb_OBJECTS = $(am_hald_addon_bcmxcp_usb_OBJECTS)
+-hald_addon_bcmxcp_usb_DEPENDENCIES = $(LDADD_HAL_DRIVERS) \
+-	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ am_hald_addon_blazer_usb_OBJECTS = blazer.$(OBJEXT) \
+ 	blazer_usb.$(OBJEXT) libusb.$(OBJEXT)
+ hald_addon_blazer_usb_OBJECTS = $(am_hald_addon_blazer_usb_OBJECTS)
+@@ -486,13 +473,11 @@
+ 	$(LDFLAGS) -o $@
+ SOURCES = $(libdummy_a_SOURCES) $(libnuthalmain_a_SOURCES) \
+ 	$(al175_SOURCES) $(apcsmart_SOURCES) $(apcsmart_old_SOURCES) \
+-	$(apcupsd_ups_SOURCES) $(bcmxcp_SOURCES) $(bcmxcp_usb_SOURCES) \
+ 	$(belkin_SOURCES) $(belkinunv_SOURCES) $(bestfcom_SOURCES) \
+ 	bestfortress.c $(bestuferrups_SOURCES) $(bestups_SOURCES) \
+ 	$(blazer_ser_SOURCES) $(blazer_usb_SOURCES) $(clone_SOURCES) \
+ 	$(clone_outlet_SOURCES) $(dummy_ups_SOURCES) $(etapro_SOURCES) \
+ 	$(everups_SOURCES) $(gamatronic_SOURCES) $(genericups_SOURCES) \
+-	$(hald_addon_bcmxcp_usb_SOURCES) \
+ 	$(hald_addon_blazer_usb_SOURCES) \
+ 	$(hald_addon_nutdrv_qx_SOURCES) \
+ 	$(hald_addon_riello_usb_SOURCES) \
+@@ -514,13 +499,12 @@
+ 	$(victronups_SOURCES)
+ DIST_SOURCES = $(libdummy_a_SOURCES) $(libnuthalmain_a_SOURCES) \
+ 	$(al175_SOURCES) $(apcsmart_SOURCES) $(apcsmart_old_SOURCES) \
+-	$(apcupsd_ups_SOURCES) $(bcmxcp_SOURCES) $(bcmxcp_usb_SOURCES) \
++	$(apcupsd_ups_SOURCES) \
+ 	$(belkin_SOURCES) $(belkinunv_SOURCES) $(bestfcom_SOURCES) \
+ 	bestfortress.c $(bestuferrups_SOURCES) $(bestups_SOURCES) \
+ 	$(blazer_ser_SOURCES) $(blazer_usb_SOURCES) $(clone_SOURCES) \
+ 	$(clone_outlet_SOURCES) $(dummy_ups_SOURCES) $(etapro_SOURCES) \
+ 	$(everups_SOURCES) $(gamatronic_SOURCES) $(genericups_SOURCES) \
+-	$(hald_addon_bcmxcp_usb_SOURCES) \
+ 	$(hald_addon_blazer_usb_SOURCES) \
+ 	$(hald_addon_nutdrv_qx_SOURCES) \
+ 	$(hald_addon_riello_usb_SOURCES) \
+@@ -751,7 +735,7 @@
+ AM_CFLAGS = -I$(top_srcdir)/include $(am__append_1) $(am__append_2) \
+ 	$(am__append_3) $(am__append_4) $(am__append_5) \
+ 	$(am__append_6)
+-SERIAL_DRIVERLIST = al175 bcmxcp belkin belkinunv bestfcom	\
++SERIAL_DRIVERLIST = al175 belkin belkinunv bestfcom	\
+  bestfortress bestuferrups bestups dummy-ups etapro everups 	\
+  gamatronic genericups isbmex liebert liebert-esp2 masterguard metasys	\
+  oldmge-shut mge-utalk microdowell mge-shut oneac optiups powercom rhino 	\
+@@ -760,11 +744,11 @@
+  nutdrv_qx
+ 
+ SNMP_DRIVERLIST = snmp-ups
+-USB_LIBUSB_DRIVERLIST = usbhid-ups bcmxcp_usb tripplite_usb \
++USB_LIBUSB_DRIVERLIST = usbhid-ups tripplite_usb \
+  blazer_usb richcomm_usb riello_usb nutdrv_qx
+ 
+ USB_DRIVERLIST = $(USB_LIBUSB_DRIVERLIST)
+-HAL_DRIVERLIST = hald-addon-usbhid-ups hald-addon-bcmxcp_usb \
++HAL_DRIVERLIST = hald-addon-usbhid-ups \
+  hald-addon-tripplite_usb hald-addon-blazer_usb hald-addon-riello_usb	\
+  hald-addon-nutdrv_qx
+ 
+@@ -783,8 +767,6 @@
+ al175_SOURCES = al175.c
+ apcsmart_SOURCES = apcsmart.c apcsmart_tabs.c
+ apcsmart_old_SOURCES = apcsmart-old.c
+-bcmxcp_SOURCES = bcmxcp.c bcmxcp_ser.c
+-bcmxcp_LDADD = $(LDADD) -lm
+ belkin_SOURCES = belkin.c
+ belkinunv_SOURCES = belkinunv.c
+ bestfcom_SOURCES = bestfcom.c
+@@ -858,8 +840,6 @@
+ usbhid_ups_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS)
+ tripplite_usb_SOURCES = tripplite_usb.c libusb.c usb-common.c
+ tripplite_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) -lm
+-bcmxcp_usb_SOURCES = bcmxcp_usb.c bcmxcp.c usb-common.c
+-bcmxcp_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS)
+ blazer_usb_SOURCES = blazer.c blazer_usb.c libusb.c usb-common.c
+ blazer_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) -lm
+ richcomm_usb_SOURCES = richcomm_usb.c usb-common.c
+@@ -887,8 +867,6 @@
+ hald_addon_usbhid_ups_LDADD = $(LDADD_HAL_DRIVERS) $(LIBUSB_LIBS) $(LIBHAL_LIBS)
+ hald_addon_tripplite_usb_SOURCES = tripplite_usb.c libusb.c
+ hald_addon_tripplite_usb_LDADD = $(LDADD_HAL_DRIVERS) $(LIBUSB_LIBS) $(LIBHAL_LIBS) -lm
+-hald_addon_bcmxcp_usb_SOURCES = bcmxcp_usb.c bcmxcp.c
+-hald_addon_bcmxcp_usb_LDADD = $(LDADD_HAL_DRIVERS) $(LIBUSB_LIBS) $(LIBHAL_LIBS)
+ hald_addon_blazer_usb_SOURCES = blazer.c blazer_usb.c libusb.c
+ hald_addon_blazer_usb_LDADD = $(LDADD_HAL_DRIVERS) $(LIBUSB_LIBS) $(LIBHAL_LIBS) -lm
+ hald_addon_riello_usb_SOURCES = riello.c riello_usb.c libusb.c
+@@ -929,8 +907,8 @@
+ # List of header files. The purpose of this list is not dependency
+ # tracking (which is automatic), but to ensure these files are
+ # distributed by "make dist".
+-dist_noinst_HEADERS = apc-mib.h apc-hid.h baytech-mib.h bcmxcp.h	\
+- bcmxcp_io.h belkin.h belkin-hid.h bestpower-mib.h blazer.h cps-hid.h dstate.h \
++dist_noinst_HEADERS = apc-mib.h apc-hid.h baytech-mib.h \
++ belkin.h belkin-hid.h bestpower-mib.h blazer.h cps-hid.h dstate.h \
+  dstate-hal.h dummy-ups.h eaton-mib.h explore-hid.h gamatronic.h genericups.h	\
+  hidparser.h hidtypes.h ietf-mib.h libhid.h libshut.h libusb.h liebert-hid.h	\
+  main.h main-hal.h mge-hid.h mge-mib.h mge-shut.h mge-utalk.h		\
+@@ -1102,12 +1080,6 @@
+ apcupsd-ups$(EXEEXT): $(apcupsd_ups_OBJECTS) $(apcupsd_ups_DEPENDENCIES) $(EXTRA_apcupsd_ups_DEPENDENCIES) 
+ 	@rm -f apcupsd-ups$(EXEEXT)
+ 	$(apcupsd_ups_LINK) $(apcupsd_ups_OBJECTS) $(apcupsd_ups_LDADD) $(LIBS)
+-bcmxcp$(EXEEXT): $(bcmxcp_OBJECTS) $(bcmxcp_DEPENDENCIES) $(EXTRA_bcmxcp_DEPENDENCIES) 
+-	@rm -f bcmxcp$(EXEEXT)
+-	$(LINK) $(bcmxcp_OBJECTS) $(bcmxcp_LDADD) $(LIBS)
+-bcmxcp_usb$(EXEEXT): $(bcmxcp_usb_OBJECTS) $(bcmxcp_usb_DEPENDENCIES) $(EXTRA_bcmxcp_usb_DEPENDENCIES) 
+-	@rm -f bcmxcp_usb$(EXEEXT)
+-	$(LINK) $(bcmxcp_usb_OBJECTS) $(bcmxcp_usb_LDADD) $(LIBS)
+ belkin$(EXEEXT): $(belkin_OBJECTS) $(belkin_DEPENDENCIES) $(EXTRA_belkin_DEPENDENCIES) 
+ 	@rm -f belkin$(EXEEXT)
+ 	$(LINK) $(belkin_OBJECTS) $(belkin_LDADD) $(LIBS)
+@@ -1153,9 +1125,6 @@
+ genericups$(EXEEXT): $(genericups_OBJECTS) $(genericups_DEPENDENCIES) $(EXTRA_genericups_DEPENDENCIES) 
+ 	@rm -f genericups$(EXEEXT)
+ 	$(LINK) $(genericups_OBJECTS) $(genericups_LDADD) $(LIBS)
+-hald-addon-bcmxcp_usb$(EXEEXT): $(hald_addon_bcmxcp_usb_OBJECTS) $(hald_addon_bcmxcp_usb_DEPENDENCIES) $(EXTRA_hald_addon_bcmxcp_usb_DEPENDENCIES) 
+-	@rm -f hald-addon-bcmxcp_usb$(EXEEXT)
+-	$(LINK) $(hald_addon_bcmxcp_usb_OBJECTS) $(hald_addon_bcmxcp_usb_LDADD) $(LIBS)
+ hald-addon-blazer_usb$(EXEEXT): $(hald_addon_blazer_usb_OBJECTS) $(hald_addon_blazer_usb_DEPENDENCIES) $(EXTRA_hald_addon_blazer_usb_DEPENDENCIES) 
+ 	@rm -f hald-addon-blazer_usb$(EXEEXT)
+ 	$(LINK) $(hald_addon_blazer_usb_OBJECTS) $(hald_addon_blazer_usb_LDADD) $(LIBS)
+@@ -1288,9 +1257,6 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/apcsmart_tabs.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/apcupsd_ups-apcupsd-ups.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/baytech-mib.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bcmxcp.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bcmxcp_ser.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bcmxcp_usb.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/belkin-hid.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/belkin.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/belkinunv.Po@am__quote@
diff --git a/testing/nut/nut-upsd.confd b/testing/nut/nut-upsd.confd
new file mode 100644
index 0000000..ab4cb59
--- /dev/null
+++ b/testing/nut/nut-upsd.confd
@@ -0,0 +1,3 @@
+CONFIG=/etc/nut/nut.conf
+# Run IPv4 only, -6 for IPv6
+ARGS="-4 -u nut"
diff --git a/testing/nut/nut-upsd.initd b/testing/nut/nut-upsd.initd
new file mode 100644
index 0000000..dcc3b59
--- /dev/null
+++ b/testing/nut/nut-upsd.initd
@@ -0,0 +1,53 @@
+#!/sbin/runscript
+
+extra_started_commands="reload"
+
+pid_dir=/var/run/nut
+pidfile=/var/run/nut/upsd.pid
+upsd=/usr/sbin/upsd
+upsdrvctl=/usr/libexec/nut/upsdrvctl
+NAME=nut-server
+
+depend() {
+	use net
+	before nut-upsmon
+}
+
+start_pre()
+{
+    # Ensure that our dirs are correct
+    checkpath -d --owner root:nut --mode 0770 $pid_dir
+}
+
+start() {
+	ebegin "Starting upsd"
+
+	# Include NUT nut.conf
+	[ -r $CONFIG ] && . $CONFIG
+
+	# Explicitly require the configuration to be done in /etc/nut/nut.conf
+	# redundant with nut-client
+	if [ "x$MODE" = "xnone" -o -z "$MODE" ] ; then
+		eerror "$NAME disabled, please adjust the configuration to your needs"
+		eerror "Then set MODE to a suitable value in $CONFIG to enable it"
+		# exit success to avoid breaking the install process!
+		return 1
+	fi
+
+	${upsdrvctl} -u nut start &>/dev/null
+	start-stop-daemon --start --pidfile ${pidfile} --exec ${upsd} -- ${ARGS}
+	eend $? 
+}
+
+stop() {
+	ebegin "Stopping upsd"
+	start-stop-daemon --stop --pidfile ${pidfile}
+	${upsdrvctl} -u nut stop &>/dev/null
+	eend $?
+}
+
+reload() {
+	ebegin "Reloading upsd"
+	start-stop-daemon --stop --signal HUP --pidfile ${pidfile}
+	eend $?
+}
diff --git a/testing/nut/nut-upsmon.confd b/testing/nut/nut-upsmon.confd
new file mode 100644
index 0000000..ab4cb59
--- /dev/null
+++ b/testing/nut/nut-upsmon.confd
@@ -0,0 +1,3 @@
+CONFIG=/etc/nut/nut.conf
+# Run IPv4 only, -6 for IPv6
+ARGS="-4 -u nut"
diff --git a/testing/nut/nut-upsmon.initd b/testing/nut/nut-upsmon.initd
new file mode 100644
index 0000000..53f1b1b
--- /dev/null
+++ b/testing/nut/nut-upsmon.initd
@@ -0,0 +1,43 @@
+#!/sbin/runscript
+
+extra_started_commands="reload"
+
+pidfile=/var/run/upsmon.pid
+upsmon=/usr/sbin/upsmon
+NAME=nut-monitor
+
+depend() {
+	use net
+	after nut-upsd
+}
+
+start() {
+	ebegin "Starting upsmon"
+
+	# Include NUT nut.conf
+	[ -r $CONFIG ] && . $CONFIG
+
+	# Explicitly require the configuration to be done in /etc/nut/nut.conf
+	# redundant with nut-client
+	if [ "x$MODE" = "xnone" -o -z "$MODE" ] ; then
+		eerror "$NAME disabled, please adjust the configuration to your needs"
+		eerror "Then set MODE to a suitable value in $CONFIG to enable it"
+		# exit success to avoid breaking the install process!
+		return 1
+	fi
+
+	start-stop-daemon --start --pidfile ${pidfile} --exec ${upsmon} -- ${ARGS}
+	eend $? 
+}
+
+stop() {
+	ebegin "Stopping upsmon"
+	start-stop-daemon --stop --pidfile ${pidfile}
+	eend $?
+}
+
+reload() {
+	ebegin "Reloading upsmon"
+	start-stop-daemon --stop --signal HUP --pidfile ${pidfile}
+	eend $?
+}
diff --git a/testing/nut/nut.pre-install b/testing/nut/nut.pre-install
new file mode 100644
index 0000000..cea4d7f
--- /dev/null
+++ b/testing/nut/nut.pre-install
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+adduser nut uucp 2>/dev/null
+exit 0
-- 
1.8.4.3

---
Unsubscribe:  [email-masked]
Help:         [email-masked]
---

---

From: Natanael Copa <[email-masked]>
Date: Wed, 5 Mar 2014 10:11:38 +0100

On Sun,  2 Mar 2014 17:19:40 +0400

> +# bcmxcp.patch - sorry no bcmxc and no bcmxcp_usb (get errors about undefined reference to `ldexp')

I fixed it and pushed a fix to aports.

> +++ b/testing/nut/bcmxcp.patch

A comment about the way this was 'resolved'. We normally try avoid
patching the Makefile.in since it is generated from Makefile.am. The
drawback with patching Makefile.am is that then we need re-run the
autotools (aclocal, autoconf automake etc) and that might introduce new
issues. The biggest benefit though is that the pach can normally be
submitted upstream.

Would you be able to submit a bugreport upstream (to nut developers)
and give them the patch i made:
http://git.alpinelinux.org/cgit/aports/tree/testing/nut/libm.patch

Basically when using ldexp you should link against libm (even the
manpage[1] says:

  Link with -lm.

Thanks!

-nc

[1] http://man7.org/linux/man-pages/man3/ldexp.3.html

---

---

From: Natanael Copa <[email-masked]>
Date: Wed, 5 Mar 2014 09:45:07 +0100

>  create mode 100644 testing/nut/nut.pre-install

...
> +# bcmxcp.patch - sorry no bcmxc and no bcmxcp_usb (get errors about undefined reference to `ldexp')

Sounds like a missing -lm linker flag.

I applied as is anyways. Thanks!

-nc

---