package/nut: new package

'nut' are the Network UPS Tools.

[Note: original patch from Dallas, but completely revamped
 by Yann, so nothing remains from the original patch, but two
 variable names.]

Signed-off-by: Dallas Clement <dallas.a.clement@gmail.com>
[yann.morin.1998@free.fr: refresh patch, use latest version,
    add license, fix commit message, add dependencies, fix
    runtime path, fix libs-config, move to 'system utils']
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Yann E. MORIN 2013-11-06 00:28:16 +01:00 committed by Peter Korsgaard
parent fdecbd5f82
commit 856294dedf
4 changed files with 172 additions and 0 deletions

View File

@ -962,6 +962,7 @@ source "package/lxc/Config.in"
source "package/monit/Config.in"
source "package/ncdu/Config.in"
source "package/numactl/Config.in"
source "package/nut/Config.in"
source "package/polkit/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
source "package/procps/Config.in"

20
package/nut/Config.in Normal file
View File

@ -0,0 +1,20 @@
config BR2_PACKAGE_NUT
bool "nut"
help
Network UPS tools
The primary goal of the Network UPS Tools (NUT) project is to provide
support for Power Devices, such as Uninterruptible Power Supplies,
Power Distribution Units and Solar Controllers.
http://www.networkupstools.org/
if BR2_PACKAGE_NUT
config BR2_PACKAGE_NUT_DRIVERS
string "drivers"
help
Select the individual drivers to enable, in a comma-separated list.
Leave empty for all.
endif # BR2_PACKAGE_NUT

View File

@ -0,0 +1,72 @@
configure: fix calls to {gdlib,net-snmp}-config
nut directly calls to {gdlib,net-snmp}-config. In Buildroot,
those are not in the PATH, and nut would catch those of the
system (if they are installed), or miss them entirely.
Fix that by using environment variables that will tell where
to look for them.
Note: libusb also uses libusb-config, but only as a fallback
if pkg-config fails. Since we ensure that pkg-config exists,
and libusb is properly installed before we build nut, there
is no need to fix the libusb-config calls, since they won't
be called at all.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
diff -durN nut-2.6.5.orig/m4/nut_check_libgd.m4 nut-2.6.5/m4/nut_check_libgd.m4
--- nut-2.6.5.orig/m4/nut_check_libgd.m4 2012-07-31 19:38:56.000000000 +0200
+++ nut-2.6.5/m4/nut_check_libgd.m4 2013-11-01 16:24:02.626549810 +0100
@@ -20,7 +20,7 @@
LIBS="-lgd -lpng -lz -ljpeg -lfreetype -lm -lXpm -lX11"
AC_MSG_CHECKING(for gd version via gdlib-config)
- GD_VERSION=`gdlib-config --version 2>/dev/null`
+ GD_VERSION=`${GDLIB_CONFIG} --version 2>/dev/null`
if test "$?" != "0" -o -z "${GD_VERSION}"; then
GD_VERSION="none"
fi
@@ -34,9 +34,9 @@
AC_MSG_WARN([[If gd detection fails, upgrade gd or use --with-gd-includes and --with-gd-libs]])
;;
*)
- CFLAGS="`gdlib-config --includes 2>/dev/null`"
- LDFLAGS="`gdlib-config --ldflags 2>/dev/null`"
- LIBS="`gdlib-config --libs 2>/dev/null`"
+ CFLAGS="`${GDLIB_CONFIG} --includes 2>/dev/null`"
+ LDFLAGS="`${GDLIB_CONFIG} --ldflags 2>/dev/null`"
+ LIBS="`${GDLIB_CONFIG} --libs 2>/dev/null`"
;;
esac
diff -durN nut-2.6.5.orig/m4/nut_check_libnetsnmp.m4 nut-2.6.5/m4/nut_check_libnetsnmp.m4
--- nut-2.6.5.orig/m4/nut_check_libnetsnmp.m4 2012-07-31 19:38:56.000000000 +0200
+++ nut-2.6.5/m4/nut_check_libnetsnmp.m4 2013-11-01 16:30:07.398282923 +0100
@@ -15,7 +15,7 @@
dnl See which version of the Net-SNMP library (if any) is installed
AC_MSG_CHECKING(for Net-SNMP version via net-snmp-config)
- SNMP_VERSION=`net-snmp-config --version 2>/dev/null`
+ SNMP_VERSION=`${NET_SNMP_CONFIG} --version 2>/dev/null`
if test "$?" != "0" -o -z "${SNMP_VERSION}"; then
SNMP_VERSION="none"
fi
@@ -33,7 +33,7 @@
CFLAGS="${withval}"
;;
esac
- ], [CFLAGS="`net-snmp-config --base-cflags 2>/dev/null`"])
+ ], [CFLAGS="`${NET_SNMP_CONFIG} --base-cflags 2>/dev/null`"])
AC_MSG_RESULT([${CFLAGS}])
AC_MSG_CHECKING(for Net-SNMP libs)
@@ -48,7 +48,7 @@
LIBS="${withval}"
;;
esac
- ], [LIBS="`net-snmp-config --libs 2>/dev/null`"])
+ ], [LIBS="`${NET_SNMP_CONFIG} --libs 2>/dev/null`"])
AC_MSG_RESULT([${LIBS}])
dnl Check if the Net-SNMP library is usable

79
package/nut/nut.mk Normal file
View File

@ -0,0 +1,79 @@
################################################################################
#
# nut
#
################################################################################
NUT_VERSION = 2.6.5
NUT_SITE = http://www.networkupstools.org/source/2.6/
NUT_LICENSE = GPLv2+, GPLv3+ (python scripts), GPL/Artistic (perl client)
NUT_LICENSE_FILES = COPYING LICENSE-GPL2 LICENSE-GPL3
NUT_DEPENDENCIES = host-pkgconf
# Our patch changes m4 macros, so we need to autoreconf
NUT_AUTORECONF = YES
# Put the PID files in a read-write place (/var/run is a tmpfs)
# since the default location (/var/state/ups) maybe readonly.
NUT_CONF_OPT = \
--with-altpidpath=/var/run/upsd
NUT_CONF_ENV = \
GDLIB_CONFIG=$(STAGING_DIR)/usr/bin/gdlib-config \
NET_SNMP_CONFIG=$(STAGING_DIR)/usr/bin/net-snmp-config
# For uClibc-based toolchains, nut forgets to link with -lm
ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)
NUT_CONF_ENV += LDFLAGS="$(TARGET_LDFLAGS) -lm"
endif
ifeq ($(call qstrip,$(BR2_PACKAGE_NUT_DRIVERS)),)
NUT_CONF_OPT += --with-drivers=all
else
NUT_CONF_OPT += --with-drivers=$(BR2_PACKAGE_NUT_DRIVERS)
endif
ifeq ($(BR2_PACKAGE_AVAHI)$(BR2_PACKAGE_DBUS),yy)
NUT_DEPENDENCIES += avahi dbus
NUT_CONF_OPT += --with-avahi
else
NUT_CONF_OPT += --without-avahi
endif
# gd with support for png is required for the CGI
ifeq ($(BR2_PACKAGE_GD)$(BR2_PACKAGE_LIBPNG),yy)
NUT_DEPENDENCIES += gd libpng
NUT_CONF_OPT += --with-cgi
else
NUT_CONF_OPT += --without-cgi
endif
ifeq ($(BR2_PACKAGE_LIBUSB_COMPAT),y)
NUT_DEPENDENCIES += libusb-compat
NUT_CONF_OPT += --with-usb
else
NUT_CONF_OPT += --without-usb
endif
ifeq ($(BR2_PACKAGE_NEON_EXPAT)$(BR2_PACKAGE_NEON_LIBXML2),y)
NUT_DEPENDENCIES += neon
NUT_CONF_OPT += --with-neon
else
NUT_CONF_OPT += --without-neon
endif
ifeq ($(BR2_PACKAGE_NETSNMP),y)
NUT_DEPENDENCIES += netsnmp
NUT_CONF_OPT += --with-snmp
else
NUT_CONF_OPT += --without-snmp
endif
ifeq ($(BR2_PACKAGE_OPENSSL),y)
NUT_DEPENDENCIES += openssl
NUT_CONF_OPT += --with-ssl
else
NUT_CONF_OPT += --without-ssl
endif
$(eval $(autotools-package))