public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: sys-power/nut/files/, sys-power/nut/
@ 2018-10-27 19:02 Andreas Sturmlechner
  0 siblings, 0 replies; 5+ messages in thread
From: Andreas Sturmlechner @ 2018-10-27 19:02 UTC (permalink / raw
  To: gentoo-commits

commit:     73b9eb1973d6ca6954412dd58b552ef73fe9ae5e
Author:     Michael Perlov <perlovka <AT> gmail <DOT> com>
AuthorDate: Tue Oct 16 12:03:32 2018 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat Oct 27 19:02:37 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=73b9eb19

sys-power/nut: Add USE gui to install NUT-Monitor

Acked-by: Matthew Thode <prometheanfire <AT> gentoo.org>
Signed-off-by: Michael Perlov <perlovka <AT> gmail.com>
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
Package-Manager: Portage-2.3.51, Repoman-2.3.11

 sys-power/nut/files/NUT-Monitor-1.3-paths.patch | 48 +++++++++++++++++++++++++
 sys-power/nut/metadata.xml                      |  1 +
 sys-power/nut/nut-2.7.4-r2.ebuild               | 30 ++++++++++++++--
 3 files changed, 77 insertions(+), 2 deletions(-)

diff --git a/sys-power/nut/files/NUT-Monitor-1.3-paths.patch b/sys-power/nut/files/NUT-Monitor-1.3-paths.patch
new file mode 100644
index 00000000000..17bedaead72
--- /dev/null
+++ b/sys-power/nut/files/NUT-Monitor-1.3-paths.patch
@@ -0,0 +1,48 @@
+--- a/scripts/python/app/NUT-Monitor
++++ b/scripts/python/app/NUT-Monitor
+@@ -70,7 +70,7 @@
+         ( cmd_opts, args ) = opt_parser.parse_args()
+ 
+ 
+-        self.__glade_file = os.path.join( os.path.dirname( sys.argv[0] ), "gui-1.3.glade" )
++        self.__glade_file = '/usr/share/nut/gui-1.3.glade'
+ 
+         self.__widgets["interface"]                   = gtk.glade.XML( self.__glade_file, "window1", APP )
+         self.__widgets["main_window"]                 = self.__widgets["interface"].get_widget("window1")
+@@ -103,11 +103,11 @@
+ 
+         # Create the tray icon and connect it to the show/hide method...
+         self.__widgets["status_icon"] = gtk.StatusIcon()
+-        self.__widgets["status_icon"].set_from_file( os.path.join( os.path.dirname( sys.argv[0] ), "pixmaps", "on_line.png" ) )
++        self.__widgets["status_icon"].set_from_file( "/usr/share/nut/pixmaps/on_line.png" )
+         self.__widgets["status_icon"].set_visible( True )
+         self.__widgets["status_icon"].connect( "activate", self.tray_activated )
+ 
+-        self.__widgets["ups_status_image"].set_from_file( os.path.join( os.path.dirname( sys.argv[0] ), "pixmaps", "on_line.png" ) )
++        self.__widgets["ups_status_image"].set_from_file( "/usr/share/nut/pixmaps/on_line.png" )
+ 
+         # Define interface callbacks actions
+         self.__callbacks = { "on_window1_destroy"              : self.quit,
+@@ -265,8 +265,8 @@
+     #-------------------------------------------------------------------
+     # Change the status icon and tray icon
+     def change_status_icon( self, icon="on_line", blink=False ) :
+-        self.__widgets["status_icon"].set_from_file( os.path.join( os.path.dirname( sys.argv[0] ), "pixmaps", "%s.png" % icon ) )
+-        self.__widgets["ups_status_image"].set_from_file( os.path.join( os.path.dirname( sys.argv[0] ), "pixmaps", "%s.png" % icon ) )
++        self.__widgets["status_icon"].set_from_file( "/usr/share/nut/pixmaps/%s.png" % icon )
++        self.__widgets["ups_status_image"].set_from_file( "/usr/share/nut/pixmaps/%s.png" % icon )
+         self.__widgets["status_icon"].set_blinking( blink )
+ 
+     #-------------------------------------------------------------------
+@@ -719,9 +719,9 @@
+ 
+             for k,v in vars.iteritems() :
+                 if ( rwvars.has_key( k ) ) :
+-                    icon_file = os.path.join( os.path.dirname( sys.argv[0] ), "pixmaps", "var-rw.png" )
++                    icon_file = "/usr/share/nut/pixmaps/var-rw.png"
+                 else :
+-                    icon_file = os.path.join( os.path.dirname( sys.argv[0] ), "pixmaps", "var-ro.png" )
++                    icon_file = "/usr/share/nut/pixmaps/var-ro.png"
+ 
+                 icon = gtk.gdk.pixbuf_new_from_file( icon_file )
+                 self.__widgets["ups_vars_tree_store"].append( [ icon, k, v ] )

diff --git a/sys-power/nut/metadata.xml b/sys-power/nut/metadata.xml
index d9ab89aeb36..85d0b12815a 100644
--- a/sys-power/nut/metadata.xml
+++ b/sys-power/nut/metadata.xml
@@ -9,6 +9,7 @@
 		<email>prometheanfire@gentoo.org</email>
 	</maintainer>
 	<use>
+		<flag name="gui">Install NUT-Monitor python gui</flag>
 		<flag name="ipmi">Support IPMI-based UPSes.</flag>
 		<flag name="ups_drivers_al175">Driver for Eltek UPS models with AL175 alarm module</flag>
 		<flag name="ups_drivers_bcmxcp">Driver for UPSes supporting the serial BCM/XCP protocol</flag>

diff --git a/sys-power/nut/nut-2.7.4-r2.ebuild b/sys-power/nut/nut-2.7.4-r2.ebuild
index 5045bf0a37c..031f61d9dd9 100644
--- a/sys-power/nut/nut-2.7.4-r2.ebuild
+++ b/sys-power/nut/nut-2.7.4-r2.ebuild
@@ -3,7 +3,9 @@
 
 EAPI=6
 
-inherit autotools bash-completion-r1 fixheadtails user systemd flag-o-matic toolchain-funcs
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools bash-completion-r1 desktop fixheadtails flag-o-matic python-single-r1 systemd toolchain-funcs user
 
 MY_P=${P/_/-}
 
@@ -14,11 +16,13 @@ LICENSE="GPL-2"
 SLOT="0"
 KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
 
-IUSE="cgi ipmi snmp +usb selinux ssl tcpd xml zeroconf"
+IUSE="cgi gui ipmi snmp +usb selinux ssl tcpd xml zeroconf"
+REQUIRED_USE="gui? ( ${PYTHON_REQUIRED_USE} )"
 
 COMMON_DEPEND="dev-libs/libltdl:*
 	virtual/udev
 	cgi? ( >=media-libs/gd-2[png] )
+	gui? ( dev-python/pygtk[${PYTHON_USEDEP}] )
 	ipmi? ( sys-libs/freeipmi )
 	snmp? ( net-analyzer/net-snmp )
 	ssl? ( >=dev-libs/openssl-1 )
@@ -88,6 +92,7 @@ pkg_setup() {
 	# in some cases on old systems it wasn't in the nut group either!
 	gpasswd -a nut nut 2>/dev/null
 	warningmsg ewarn
+	use gui && python-single-r1_pkg_setup
 }
 
 src_prepare() {
@@ -106,6 +111,8 @@ src_prepare() {
 		-e 's:@LIBSSL_LDFLAGS@:@LIBSSL_LIBS@:' \
 		lib/libupsclient{.pc,-config}.in || die #361685
 
+	use gui && eapply "${FILESDIR}"/NUT-Monitor-1.3-paths.patch
+
 	eautoreconf
 }
 
@@ -169,6 +176,25 @@ src_install() {
 		elog "If you use lighttpd, see lighttpd_nut.conf in the documentation."
 	fi
 
+	if use gui; then
+		python_fix_shebang scripts/python/app
+		python_domodule scripts/python/module/PyNUT.py
+		python_doscript scripts/python/app/NUT-Monitor
+
+		insinto /usr/share/nut
+		doins scripts/python/app/gui-1.3.glade
+
+		dodir /usr/share/nut/pixmaps
+		insinto /usr/share/nut/pixmaps
+		doins scripts/python/app/pixmaps/*
+
+		sed -i -e 's/nut-monitor.png/nut-monitor/' -e 's/Application;//' \
+			scripts/python/app/${PN}-monitor.desktop || die
+
+		doicon scripts/python/app/${PN}-monitor.png
+		domenu scripts/python/app/${PN}-monitor.desktop
+	fi
+
 	# this must be done after all of the install phases
 	for i in "${D}"/etc/nut/*.sample ; do
 		mv "${i}" "${i/.sample/}" || die


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-power/nut/files/, sys-power/nut/
@ 2019-06-27 17:15 Matthew Thode
  0 siblings, 0 replies; 5+ messages in thread
From: Matthew Thode @ 2019-06-27 17:15 UTC (permalink / raw
  To: gentoo-commits

commit:     68314d83425089bd375fc5c539a72ba40f12b044
Author:     Matthew Thode <prometheanfire <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 27 17:15:28 2019 +0000
Commit:     Matthew Thode <prometheanfire <AT> gentoo <DOT> org>
CommitDate: Thu Jun 27 17:15:41 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=68314d83

sys-power/nut: 2.7.4-r3 for openssl-1.1 support

Package-Manager: Portage-2.3.66, Repoman-2.3.16
Signed-off-by: Matthew Thode <prometheanfire <AT> gentoo.org>

 sys-power/nut/files/nut-openssl-1.1-support.patch | 333 ++++++++++++++++++++++
 sys-power/nut/nut-2.7.4-r3.ebuild                 | 297 +++++++++++++++++++
 2 files changed, 630 insertions(+)

diff --git a/sys-power/nut/files/nut-openssl-1.1-support.patch b/sys-power/nut/files/nut-openssl-1.1-support.patch
new file mode 100644
index 00000000000..71e1bf47f1b
--- /dev/null
+++ b/sys-power/nut/files/nut-openssl-1.1-support.patch
@@ -0,0 +1,333 @@
+From da1f5aa699f54e0f6977ab64a3bc2f90a51c3104 Mon Sep 17 00:00:00 2001
+From: Arjen de Korte <build+lede@de-korte.org>
+Date: Mon, 27 Nov 2017 21:10:13 +0100
+Subject: [PATCH 1/7] Add support for openssl-1.1.0
+
+---
+ clients/upsclient.c        | 4 ++++
+ m4/nut_check_libopenssl.m4 | 5 +++--
+ server/netssl.c            | 4 ++++
+ 3 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/clients/upsclient.c b/clients/upsclient.c
+index b90587b00..fc5e7523c 100644
+--- a/clients/upsclient.c
++++ b/clients/upsclient.c
+@@ -316,7 +316,11 @@ int upscli_init(int certverify, const char *certpath,
+ 	
+ #ifdef WITH_OPENSSL
+ 	
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ 	SSL_library_init();
++#else
++	OPENSSL_init_ssl(0, NULL);
++#endif
+ 	SSL_load_error_strings();
+ 
+ 	ssl_method = TLSv1_client_method();
+diff --git a/m4/nut_check_libopenssl.m4 b/m4/nut_check_libopenssl.m4
+index 1b875077b..5f29f4a38 100644
+--- a/m4/nut_check_libopenssl.m4
++++ b/m4/nut_check_libopenssl.m4
+@@ -57,8 +57,9 @@ if test -z "${nut_have_libopenssl_seen}"; then
+ 	AC_MSG_RESULT([${LIBS}])
+ 
+ 	dnl check if openssl is usable
+-	AC_CHECK_HEADERS(openssl/ssl.h, [nut_have_openssl=yes], [nut_have_openssl=no], [AC_INCLUDES_DEFAULT])
+-	AC_CHECK_FUNCS(SSL_library_init, [], [nut_have_openssl=no])
++	AC_CHECK_FUNCS(OPENSSL_init_ssl, [nut_have_openssl=yes], [nut_have_openssl=no])
++	AC_CHECK_FUNCS(SSL_library_init, [nut_have_openssl=yes], [])
++	AC_CHECK_HEADERS(openssl/ssl.h, [], [nut_have_openssl=no], [AC_INCLUDES_DEFAULT])
+ 
+ 	if test "${nut_have_openssl}" = "yes"; then
+ 		nut_with_ssl="yes"
+diff --git a/server/netssl.c b/server/netssl.c
+index c2f409899..0f9a70acf 100644
+--- a/server/netssl.c
++++ b/server/netssl.c
+@@ -388,7 +388,11 @@ void ssl_init(void)
+ #ifdef WITH_OPENSSL
+ 
+ 	SSL_load_error_strings();
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ 	SSL_library_init();
++#else
++	OPENSSL_init_ssl(0, NULL);
++#endif
+ 
+ 	if ((ssl_method = TLSv1_server_method()) == NULL) {
+ 		ssl_debug();
+
+From b15656efb2575647ca0e0b6439b6380373767b8f Mon Sep 17 00:00:00 2001
+From: Arjen de Korte <build+lede@de-korte.org>
+Date: Tue, 28 Nov 2017 20:00:52 +0100
+Subject: [PATCH 2/7] Allow TLSv1 and higher (not just TLSv1)
+
+---
+ clients/upsclient.c | 30 +++++++++++++++++-------------
+ server/netssl.c     | 26 +++++++++++++++-----------
+ 2 files changed, 32 insertions(+), 24 deletions(-)
+
+diff --git a/clients/upsclient.c b/clients/upsclient.c
+index fc5e7523c..bd951e854 100644
+--- a/clients/upsclient.c
++++ b/clients/upsclient.c
+@@ -299,11 +299,6 @@ int upscli_init(int certverify, const char *certpath,
+ {
+ #ifdef WITH_OPENSSL
+ 	int ret, ssl_mode = SSL_VERIFY_NONE;
+-#if OPENSSL_VERSION_NUMBER >= 0x10000000L
+-	const SSL_METHOD	*ssl_method;
+-#else
+-	SSL_METHOD	*ssl_method;
+-#endif
+ #elif defined(WITH_NSS) /* WITH_OPENSSL */
+ 	SECStatus	status;
+ #endif /* WITH_OPENSSL | WITH_NSS */
+@@ -315,26 +310,35 @@ int upscli_init(int certverify, const char *certpath,
+ 	}
+ 	
+ #ifdef WITH_OPENSSL
++
++	SSL_load_error_strings();
+ 	
+ #if OPENSSL_VERSION_NUMBER < 0x10100000L
+ 	SSL_library_init();
++
++	ssl_ctx = SSL_CTX_new(SSLv23_client_method());
+ #else
+ 	OPENSSL_init_ssl(0, NULL);
+-#endif
+-	SSL_load_error_strings();
+ 
+-	ssl_method = TLSv1_client_method();
+-
+-	if (!ssl_method) {
+-		return 0;
+-	}
++	ssl_ctx = SSL_CTX_new(TLS_client_method());
++#endif
+ 
+-	ssl_ctx = SSL_CTX_new(ssl_method);
+ 	if (!ssl_ctx) {
+ 		upslogx(LOG_ERR, "Can not initialize SSL context");
+ 		return -1;
+ 	}
+ 	
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++	/* set minimum protocol TLSv1 */
++	SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3);
++#else
++	ret = SSL_CTX_set_min_proto_version(ssl_ctx, TLS1_VERSION);
++	if (ret != 1) {
++		upslogx(LOG_ERR, "Can not set minimum protocol to TLSv1");
++		return -1;
++	}
++#endif
++
+ 	if (!certpath) {
+ 		if (certverify == 1) {
+ 			upslogx(LOG_ERR, "Can not verify certificate if any is specified");
+diff --git a/server/netssl.c b/server/netssl.c
+index 0f9a70acf..98680d25e 100644
+--- a/server/netssl.c
++++ b/server/netssl.c
+@@ -371,13 +371,7 @@ void ssl_init(void)
+ {
+ #ifdef WITH_NSS
+ 	SECStatus status;
+-#elif defined(WITH_OPENSSL)
+-#if OPENSSL_VERSION_NUMBER >= 0x10000000L
+-	const SSL_METHOD	*ssl_method;
+-#else
+-	SSL_METHOD	*ssl_method;
+-#endif
+-#endif /* WITH_NSS|WITH_OPENSSL */
++#endif /* WITH_NSS */
+ 
+ 	if (!certfile) {
+ 		return;
+@@ -388,21 +382,31 @@ void ssl_init(void)
+ #ifdef WITH_OPENSSL
+ 
+ 	SSL_load_error_strings();
++
+ #if OPENSSL_VERSION_NUMBER < 0x10100000L
+ 	SSL_library_init();
++
++	ssl_ctx = SSL_CTX_new(SSLv23_server_method());
+ #else
+ 	OPENSSL_init_ssl(0, NULL);
++
++	ssl_ctx = SSL_CTX_new(TLS_server_method());
+ #endif
+ 
+-	if ((ssl_method = TLSv1_server_method()) == NULL) {
++	if (!ssl_ctx) {
+ 		ssl_debug();
+-		fatalx(EXIT_FAILURE, "TLSv1_server_method failed");
++		fatalx(EXIT_FAILURE, "SSL_CTX_new failed");
+ 	}
+ 
+-	if ((ssl_ctx = SSL_CTX_new(ssl_method)) == NULL) {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++	/* set minimum protocol TLSv1 */
++	SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3);
++#else
++	if (SSL_CTX_set_min_proto_version(ssl_ctx, TLS1_VERSION) != 1) {
+ 		ssl_debug();
+-		fatalx(EXIT_FAILURE, "SSL_CTX_new failed");
++		fatalx(EXIT_FAILURE, "SSL_CTX_set_min_proto_version(TLS1_VERSION)");
+ 	}
++#endif
+ 
+ 	if (SSL_CTX_use_certificate_chain_file(ssl_ctx, certfile) != 1) {
+ 		ssl_debug();
+
+From 5a8308aef9884017754fb70620c8ded34fa44290 Mon Sep 17 00:00:00 2001
+From: Arjen de Korte <build+lede@de-korte.org>
+Date: Tue, 28 Nov 2017 22:01:41 +0100
+Subject: [PATCH 3/7] Fix check for empty string
+
+---
+ clients/upssched.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/clients/upssched.c b/clients/upssched.c
+index 97b3ed42d..3fdf118ed 100644
+--- a/clients/upssched.c
++++ b/clients/upssched.c
+@@ -794,7 +794,7 @@ static void parse_at(const char *ntype, const char *un, const char *cmd,
+ 	}
+ 
+ 	if (!strcmp(cmd, "EXECUTE")) {
+-		if (ca1 == '\0') {
++		if (ca1[0] == '\0') {
+ 			upslogx(LOG_ERR, "Empty EXECUTE command argument");
+ 			return;
+ 		}
+
+From 5ecfb0ffe3d89a5116dd287ff2c3f60de67ecbb9 Mon Sep 17 00:00:00 2001
+From: Arjen de Korte <build+github@de-korte.org>
+Date: Fri, 1 Dec 2017 12:24:00 +0100
+Subject: [PATCH 4/7] Report TLS handshake in debug mode
+
+---
+ clients/upsclient.c | 2 +-
+ server/netssl.c     | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/clients/upsclient.c b/clients/upsclient.c
+index bd951e854..b7dd8f424 100644
+--- a/clients/upsclient.c
++++ b/clients/upsclient.c
+@@ -745,7 +745,7 @@ static int upscli_sslinit(UPSCONN_t *ups, int verifycert)
+ 	switch(res)
+ 	{
+ 	case 1:
+-		upsdebugx(3, "SSL connected");
++		upsdebugx(3, "SSL connected (%s)", SSL_get_version(ups->ssl));
+ 		break;
+ 	case 0:
+ 		upslog_with_errno(1, "SSL_connect do not accept handshake.");
+diff --git a/server/netssl.c b/server/netssl.c
+index 98680d25e..6ae13e8d3 100644
+--- a/server/netssl.c
++++ b/server/netssl.c
+@@ -275,7 +275,7 @@ void net_starttls(nut_ctype_t *client, int numarg, const char **arg)
+ 	{
+ 	case 1:
+ 		client->ssl_connected = 1;
+-		upsdebugx(3, "SSL connected");
++		upsdebugx(3, "SSL connected (%s)", SSL_get_version(client->ssl));
+ 		break;
+ 		
+ 	case 0:
+
+From ab0c8b41c0530d3706e4997257939026cfd29ccc Mon Sep 17 00:00:00 2001
+From: Arjen de Korte <build+github@de-korte.org>
+Date: Sun, 24 Feb 2019 18:31:21 +0100
+Subject: [PATCH 5/7] Update nut_check_libopenssl.m4
+
+---
+ m4/nut_check_libopenssl.m4 | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/m4/nut_check_libopenssl.m4 b/m4/nut_check_libopenssl.m4
+index 5f29f4a38..7eb401cd9 100644
+--- a/m4/nut_check_libopenssl.m4
++++ b/m4/nut_check_libopenssl.m4
+@@ -57,9 +57,8 @@ if test -z "${nut_have_libopenssl_seen}"; then
+ 	AC_MSG_RESULT([${LIBS}])
+ 
+ 	dnl check if openssl is usable
+-	AC_CHECK_FUNCS(OPENSSL_init_ssl, [nut_have_openssl=yes], [nut_have_openssl=no])
+-	AC_CHECK_FUNCS(SSL_library_init, [nut_have_openssl=yes], [])
+-	AC_CHECK_HEADERS(openssl/ssl.h, [], [nut_have_openssl=no], [AC_INCLUDES_DEFAULT])
++	AC_CHECK_HEADERS(openssl/ssl.h, [nut_have_openssl=yes], [nut_have_openssl=no], [AC_INCLUDES_DEFAULT])
++	AC_CHECK_FUNCS(SSL_CTX_new, [], [nut_have_openssl=no])
+ 
+ 	if test "${nut_have_openssl}" = "yes"; then
+ 		nut_with_ssl="yes"
+
+From 1dc34a5da7308f0f85537a6761fefb3ff3098863 Mon Sep 17 00:00:00 2001
+From: Arjen de Korte <build+github@de-korte.org>
+Date: Sun, 24 Feb 2019 18:34:53 +0100
+Subject: [PATCH 6/7] Update upsclient.c
+
+---
+ clients/upsclient.c | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/clients/upsclient.c b/clients/upsclient.c
+index b7dd8f424..541664f36 100644
+--- a/clients/upsclient.c
++++ b/clients/upsclient.c
+@@ -311,15 +311,12 @@ int upscli_init(int certverify, const char *certpath,
+ 	
+ #ifdef WITH_OPENSSL
+ 
+-	SSL_load_error_strings();
+-	
+ #if OPENSSL_VERSION_NUMBER < 0x10100000L
++	SSL_load_error_strings();
+ 	SSL_library_init();
+ 
+ 	ssl_ctx = SSL_CTX_new(SSLv23_client_method());
+ #else
+-	OPENSSL_init_ssl(0, NULL);
+-
+ 	ssl_ctx = SSL_CTX_new(TLS_client_method());
+ #endif
+ 
+
+From 108c31c9b170da2ee34a25fd373d21837d4d10a3 Mon Sep 17 00:00:00 2001
+From: Arjen de Korte <build+github@de-korte.org>
+Date: Sun, 24 Feb 2019 18:37:42 +0100
+Subject: [PATCH 7/7] Update netssl.c
+
+---
+ server/netssl.c | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/server/netssl.c b/server/netssl.c
+index 6ae13e8d3..cf9419edf 100644
+--- a/server/netssl.c
++++ b/server/netssl.c
+@@ -381,15 +381,12 @@ void ssl_init(void)
+ 
+ #ifdef WITH_OPENSSL
+ 
+-	SSL_load_error_strings();
+-
+ #if OPENSSL_VERSION_NUMBER < 0x10100000L
++	SSL_load_error_strings();
+ 	SSL_library_init();
+ 
+ 	ssl_ctx = SSL_CTX_new(SSLv23_server_method());
+ #else
+-	OPENSSL_init_ssl(0, NULL);
+-
+ 	ssl_ctx = SSL_CTX_new(TLS_server_method());
+ #endif
+ 

diff --git a/sys-power/nut/nut-2.7.4-r3.ebuild b/sys-power/nut/nut-2.7.4-r3.ebuild
new file mode 100644
index 00000000000..5364ad86e5c
--- /dev/null
+++ b/sys-power/nut/nut-2.7.4-r3.ebuild
@@ -0,0 +1,297 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python2_7 )
+inherit autotools bash-completion-r1 desktop fixheadtails flag-o-matic python-single-r1 systemd toolchain-funcs user
+
+MY_P=${P/_/-}
+
+DESCRIPTION="Network-UPS Tools"
+HOMEPAGE="https://www.networkupstools.org/"
+SRC_URI="https://networkupstools.org/source/${PV%.*}/${MY_P}.tar.gz"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
+
+IUSE="cgi gui ipmi snmp +usb selinux ssl tcpd xml zeroconf"
+REQUIRED_USE="gui? ( ${PYTHON_REQUIRED_USE} )"
+
+DEPEND="
+	dev-libs/libltdl:*
+	net-libs/libnsl
+	virtual/udev
+	cgi? ( >=media-libs/gd-2[png] )
+	gui? ( dev-python/pygtk[${PYTHON_USEDEP}] )
+	ipmi? ( sys-libs/freeipmi )
+	snmp? ( net-analyzer/net-snmp )
+	ssl? ( >=dev-libs/openssl-1:= )
+	tcpd? ( sys-apps/tcp-wrappers )
+	usb? ( virtual/libusb:0= )
+	xml? ( >=net-libs/neon-0.25.0 )
+	zeroconf? ( net-dns/avahi )"
+
+BDEPEND="
+	virtual/pkgconfig
+	>=sys-apps/sed-4"
+
+RDEPEND="${DEPEND}
+	selinux? ( sec-policy/selinux-nut )"
+
+S="${WORKDIR}/${MY_P}"
+
+# Bug #480664 requested UPS_DRIVERS_IUSE for more flexibility in building this package
+SERIAL_DRIVERLIST="al175 bcmxcp 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 safenet solis tripplite tripplitesu upscode2 victronups powerpanel blazer_ser clone clone-outlet ivtscd apcsmart apcsmart-old apcupsd-ups riello_ser nutdrv_qx"
+SNMP_DRIVERLIST="snmp-ups"
+USB_LIBUSB_DRIVERLIST="usbhid-ups bcmxcp_usb tripplite_usb blazer_usb richcomm_usb riello_usb nutdrv_qx"
+USB_DRIVERLIST=${USB_LIBUSB_DRIVERLIST}
+#HAL_DRIVERLIST="usbhid-ups bcmxcp_usb tripplite_usb blazer_usb riello_usb nutdrv_qx"
+NEONXML_DRIVERLIST="netxml-ups"
+IPMI_DRIVERLIST="nut-ipmipsu"
+# Now we build from it:
+for name in ${SERIAL_DRIVERLIST} ; do
+	IUSE_UPS_DRIVERS="${IUSE_UPS_DRIVERS} +ups_drivers_${name}"
+done
+for name in ${USB_DRIVERLIST} ; do
+	IUSE_UPS_DRIVERS="${IUSE_UPS_DRIVERS} +ups_drivers_${name}"
+	REQUIRED_USE="${REQUIRED_USE} ups_drivers_${name}? ( usb )"
+done
+for name in ${NEONXML_DRIVERLIST}; do
+	IUSE_UPS_DRIVERS="${IUSE_UPS_DRIVERS} ups_drivers_${name}"
+	REQUIRED_USE="${REQUIRED_USE} ups_drivers_${name}? ( xml )"
+done
+for name in ${SNMP_DRIVERLIST} ; do
+	IUSE_UPS_DRIVERS="${IUSE_UPS_DRIVERS} ups_drivers_${name}"
+	REQUIRED_USE="${REQUIRED_USE} ups_drivers_${name}? ( snmp )"
+done
+for name in ${IPMI_DRIVERLIST} ; do
+	IUSE_UPS_DRIVERS="${IUSE_UPS_DRIVERS} ups_drivers_${name}"
+	REQUIRED_USE="${REQUIRED_USE} ups_drivers_${name}? ( ipmi )"
+done
+IUSE="${IUSE} ${IUSE_UPS_DRIVERS}"
+
+# public files should be 644 root:root
+NUT_PUBLIC_FILES="/etc/nut/{ups,upssched}.conf"
+# private files should be 640 root:nut - readable by nut, writeable by root,
+NUT_PRIVATE_FILES="/etc/nut/{upsd.conf,upsd.users,upsmon.conf}"
+# public files should be 644 root:root, only installed if USE=cgi
+NUT_CGI_FILES="/etc/nut/{{hosts,upsset}.conf,upsstats{,-single}.html}"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-2.7.2-no-libdummy.patch"
+	"${FILESDIR}/${PN}-2.7.1-snmpusb-order.patch"
+	"${FILESDIR}/${PN}-2.6.2-lowspeed-buffer-size.patch"
+	"${FILESDIR}/nut-openssl-1.1-support.patch"
+)
+
+pkg_setup() {
+	enewgroup nut 84
+	enewuser nut 84 -1 /var/lib/nut nut,uucp
+	# As of udev-104, NUT must be in uucp and NOT in tty.
+	gpasswd -d nut tty 2>/dev/null
+	gpasswd -a nut uucp 2>/dev/null
+	# in some cases on old systems it wasn't in the nut group either!
+	gpasswd -a nut nut 2>/dev/null
+	warningmsg ewarn
+	use gui && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+	default
+
+	sed -e "s:GD_LIBS.*=.*-L/usr/X11R6/lib \(.*\) -lXpm -lX11:GD_LIBS=\"\1:" \
+		-e '/systemdsystemunitdir=.*echo.*sed.*libdir/s,^,#,g' \
+		-i configure.ac || die
+
+	sed -e "s:52.nut-usbups.rules:70-nut-usbups.rules:" \
+		-i scripts/udev/Makefile.am || die
+
+	rm ltmain.sh m4/lt* m4/libtool.m4 || die
+
+	sed -e 's:@LIBSSL_LDFLAGS@:@LIBSSL_LIBS@:' \
+		-i lib/libupsclient{.pc,-config}.in || die #361685
+
+	use gui && eapply "${FILESDIR}"/NUT-Monitor-1.3-paths.patch
+
+	eautoreconf
+}
+
+src_configure() {
+	local myconf
+	append-flags -fno-lto
+	tc-export CC
+	tc-export CXX
+	tc-export AR
+
+	local UPS_DRIVERS=""
+	for u in $USE ; do
+		u2=${u#ups_drivers_}
+		[[ "${u}" != "${u2}" ]] && UPS_DRIVERS="${UPS_DRIVERS} ${u2}"
+	done
+	UPS_DRIVERS="${UPS_DRIVERS# }" UPS_DRIVERS="${UPS_DRIVERS% }"
+	myconf="${myconf} --with-drivers=${UPS_DRIVERS// /,}"
+
+	use cgi && myconf="${myconf} --with-cgipath=/usr/share/nut/cgi"
+
+	# TODO: USE flag for sys-power/powerman
+	econf \
+		--sysconfdir=/etc/nut \
+		--datarootdir=/usr/share/nut \
+		--datadir=/usr/share/nut \
+		--disable-static \
+		--with-statepath=/var/lib/nut \
+		--with-drvpath=/$(get_libdir)/nut \
+		--with-htmlpath=/usr/share/nut/html \
+		--with-user=nut \
+		--with-group=nut \
+		--with-logfacility=LOG_DAEMON \
+		--with-dev \
+		--with-serial \
+		--with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \
+		--without-powerman \
+		$(use_with cgi) \
+		$(use_with ipmi) \
+		$(use_with ipmi freeipmi) \
+		$(use_with snmp) \
+		$(use_with ssl) \
+		$(use_with tcpd wrap) \
+		$(use_with usb) \
+		$(use_with xml neon) \
+		$(use_with zeroconf avahi) \
+		${myconf}
+}
+
+src_install() {
+	emake DESTDIR="${D}" install
+
+	find "${D}" -name '*.la' -delete || die
+
+	dodir /sbin
+	dosym ../usr/sbin/upsdrvctl /sbin/upsdrvctl
+
+	if use cgi; then
+		elog "CGI monitoring scripts are installed in /usr/share/nut/cgi."
+		elog "copy them to your web server's ScriptPath to activate (this is a"
+		elog "change from the old location)."
+		elog "If you use lighttpd, see lighttpd_nut.conf in the documentation."
+	fi
+
+	if use gui; then
+		python_fix_shebang scripts/python/app
+		python_domodule scripts/python/module/PyNUT.py
+		python_doscript scripts/python/app/NUT-Monitor
+
+		insinto /usr/share/nut
+		doins scripts/python/app/gui-1.3.glade
+
+		dodir /usr/share/nut/pixmaps
+		insinto /usr/share/nut/pixmaps
+		doins scripts/python/app/pixmaps/*
+
+		sed -i -e 's/nut-monitor.png/nut-monitor/' -e 's/Application;//' \
+			scripts/python/app/${PN}-monitor.desktop || die
+
+		doicon scripts/python/app/${PN}-monitor.png
+		domenu scripts/python/app/${PN}-monitor.desktop
+	fi
+
+	# this must be done after all of the install phases
+	for i in "${D}"/etc/nut/*.sample ; do
+		mv "${i}" "${i/.sample/}" || die
+	done
+
+	local DOCS=( AUTHORS ChangeLog docs/*.txt MAINTAINERS NEWS README TODO UPGRADING )
+	einstalldocs
+
+	newdoc lib/README README.lib
+	newdoc "${FILESDIR}"/lighttpd_nut.conf-2.2.0 lighttpd_nut.conf
+
+	docinto cables
+	dodoc docs/cables/*
+
+	newinitd "${FILESDIR}"/nut-2.6.5-init.d-upsd upsd
+	newinitd "${FILESDIR}"/nut-2.2.2-init.d-upsdrv upsdrv
+	newinitd "${FILESDIR}"/nut-2.6.5-init.d-upsmon upsmon
+	newinitd "${FILESDIR}"/nut-2.6.5-init.d-upslog upslog
+	newinitd "${FILESDIR}"/nut.powerfail.initd nut.powerfail
+
+	keepdir /var/lib/nut
+
+	einfo "Setting up permissions on files and directories"
+	fperms 0700 /var/lib/nut
+	fowners nut:nut /var/lib/nut
+
+	# Do not remove eval here, because the variables contain shell expansions.
+	eval fperms 0640 ${NUT_PRIVATE_FILES}
+	eval fowners root:nut ${NUT_PRIVATE_FILES}
+
+	# Do not remove eval here, because the variables contain shell expansions.
+	eval fperms 0644 ${NUT_PUBLIC_FILES}
+	eval fowners root:root ${NUT_PUBLIC_FILES}
+
+	# Do not remove eval here, because the variables contain shell expansions.
+	if use cgi; then
+		eval fperms 0644 ${NUT_CGI_FILES}
+		eval fowners root:root ${NUT_CGI_FILES}
+	fi
+
+	# this is installed for 2.4 and fbsd guys
+	if ! has_version virtual/udev; then
+		einfo "Installing non-udev hotplug support"
+		insinto /etc/hotplug/usb
+		insopts -m 755
+		doins scripts/hotplug/nut-usbups.hotplug
+	fi
+
+	newbashcomp "${S}"/scripts/misc/nut.bash_completion upsc
+	bashcomp_alias upsc upscmd upsd upsdrvctl upsmon upsrw
+}
+
+pkg_postinst() {
+	# this is to ensure that everybody that installed old versions still has
+	# correct permissions
+
+	chown nut:nut "${ROOT}"/var/lib/nut 2>/dev/null
+	chmod 0700 "${ROOT}"/var/lib/nut 2>/dev/null
+
+	# Do not remove eval here, because the variables contain shell expansions.
+	eval chown root:nut "${ROOT}"${NUT_PRIVATE_FILES} 2>/dev/null
+	eval chmod 0640 "${ROOT}"${NUT_PRIVATE_FILES} 2>/dev/null
+
+	# Do not remove eval here, because the variables contain shell expansions.
+	eval chown root:root "${ROOT}"${NUT_PUBLIC_FILES} 2>/dev/null
+	eval chmod 0644 "${ROOT}"${NUT_PUBLIC_FILES} 2>/dev/null
+
+	# Do not remove eval here, because the variables contain shell expansions.
+	if use cgi; then
+		eval chown root:root "${ROOT}"${NUT_CGI_FILES} 2>/dev/null
+		eval chmod 0644 "${ROOT}"${NUT_CGI_FILES} 2>/dev/null
+	fi
+
+	warningmsg elog
+}
+
+warningmsg() {
+	msgfunc="$1"
+	[ -z "$msgfunc" ] && die "msgfunc not specified in call to warningmsg!"
+	${msgfunc} "Please note that NUT now runs under the 'nut' user."
+	${msgfunc} "NUT is in the uucp group for access to RS-232 UPS."
+	${msgfunc} "However if you use a USB UPS you may need to look at the udev or"
+	${msgfunc} "hotplug rules that are installed, and alter them suitably."
+	${msgfunc} ''
+	${msgfunc} "You are strongly advised to read the UPGRADING file provided by upstream."
+	${msgfunc} ''
+	${msgfunc} "Please note that upsdrv is NOT automatically started by upsd anymore."
+	${msgfunc} "If you have multiple UPS units, you can use their NUT names to"
+	${msgfunc} "have a service per UPS:"
+	${msgfunc} "ln -s /etc/init.d/upsdrv /etc/init.d/upsdrv.\$UPSNAME"
+	${msgfunc} ''
+	${msgfunc} 'If you want apcupsd to power off your UPS when it'
+	${msgfunc} 'shuts down your system in a power failure, you must'
+	${msgfunc} 'add nut.powerfail to your shutdown runlevel:'
+	${msgfunc} ''
+	${msgfunc} 'rc-update add nut.powerfail shutdown'
+	${msgfunc} ''
+
+}


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-power/nut/files/, sys-power/nut/
@ 2020-01-08 22:27 David Seifert
  0 siblings, 0 replies; 5+ messages in thread
From: David Seifert @ 2020-01-08 22:27 UTC (permalink / raw
  To: gentoo-commits

commit:     839bd06945a8f5e7033ae8de8a0df1f1c0abfb4e
Author:     David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Wed Jan  8 22:27:36 2020 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Wed Jan  8 22:27:36 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=839bd069

sys-power/nut: Rebase patches

Package-Manager: Portage-2.3.84, Repoman-2.3.20
Signed-off-by: David Seifert <soap <AT> gentoo.org>

 .../nut/files/nut-2.6.2-lowspeed-buffer-size.patch |  16 +-
 sys-power/nut/files/nut-openssl-1.1-support.patch  | 302 ++++-----------------
 sys-power/nut/nut-2.7.4-r3.ebuild                  |  11 +-
 3 files changed, 74 insertions(+), 255 deletions(-)

diff --git a/sys-power/nut/files/nut-2.6.2-lowspeed-buffer-size.patch b/sys-power/nut/files/nut-2.6.2-lowspeed-buffer-size.patch
index 1e6617316fb..de4e2000adf 100644
--- a/sys-power/nut/files/nut-2.6.2-lowspeed-buffer-size.patch
+++ b/sys-power/nut/files/nut-2.6.2-lowspeed-buffer-size.patch
@@ -5,12 +5,14 @@ Respun from nut-2.4.3-lowspeed-buffer-size.patch
 
 Index: a/drivers/libhid.c
 ===================================================================
---- a/drivers/libhid.c (revision 2336)
-+++ a/drivers/libhid.c (revision 2407)
-@@ -142,5 +142,5 @@
- 	int	id = pData->ReportID;
- 	int	r;
+--- a/drivers/libhid.c
++++ b/drivers/libhid.c
+@@ -477,7 +477,7 @@
+  */
+ int HIDGetEvents(hid_dev_handle_t udev, HIDData_t **event, int eventsize)
+ {
 -	unsigned char	buf[SMALLBUF];
 +	unsigned char	buf[8];	/* Maximum size for low-speed USB devices */
- 
- 	if (rbuf->ts[id] + age > time(NULL)) {
+ 	int		itemCount = 0;
+ 	int		buflen, r, i;
+ 	HIDData_t	*pData;

diff --git a/sys-power/nut/files/nut-openssl-1.1-support.patch b/sys-power/nut/files/nut-openssl-1.1-support.patch
index 71e1bf47f1b..5d1c2afe7dc 100644
--- a/sys-power/nut/files/nut-openssl-1.1-support.patch
+++ b/sys-power/nut/files/nut-openssl-1.1-support.patch
@@ -1,78 +1,11 @@
 From da1f5aa699f54e0f6977ab64a3bc2f90a51c3104 Mon Sep 17 00:00:00 2001
 From: Arjen de Korte <build+lede@de-korte.org>
 Date: Mon, 27 Nov 2017 21:10:13 +0100
-Subject: [PATCH 1/7] Add support for openssl-1.1.0
+Subject: [PATCH] Add support for openssl-1.1.0
 
----
- clients/upsclient.c        | 4 ++++
- m4/nut_check_libopenssl.m4 | 5 +++--
- server/netssl.c            | 4 ++++
- 3 files changed, 11 insertions(+), 2 deletions(-)
-
-diff --git a/clients/upsclient.c b/clients/upsclient.c
-index b90587b00..fc5e7523c 100644
 --- a/clients/upsclient.c
 +++ b/clients/upsclient.c
-@@ -316,7 +316,11 @@ int upscli_init(int certverify, const char *certpath,
- 	
- #ifdef WITH_OPENSSL
- 	
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
- 	SSL_library_init();
-+#else
-+	OPENSSL_init_ssl(0, NULL);
-+#endif
- 	SSL_load_error_strings();
- 
- 	ssl_method = TLSv1_client_method();
-diff --git a/m4/nut_check_libopenssl.m4 b/m4/nut_check_libopenssl.m4
-index 1b875077b..5f29f4a38 100644
---- a/m4/nut_check_libopenssl.m4
-+++ b/m4/nut_check_libopenssl.m4
-@@ -57,8 +57,9 @@ if test -z "${nut_have_libopenssl_seen}"; then
- 	AC_MSG_RESULT([${LIBS}])
- 
- 	dnl check if openssl is usable
--	AC_CHECK_HEADERS(openssl/ssl.h, [nut_have_openssl=yes], [nut_have_openssl=no], [AC_INCLUDES_DEFAULT])
--	AC_CHECK_FUNCS(SSL_library_init, [], [nut_have_openssl=no])
-+	AC_CHECK_FUNCS(OPENSSL_init_ssl, [nut_have_openssl=yes], [nut_have_openssl=no])
-+	AC_CHECK_FUNCS(SSL_library_init, [nut_have_openssl=yes], [])
-+	AC_CHECK_HEADERS(openssl/ssl.h, [], [nut_have_openssl=no], [AC_INCLUDES_DEFAULT])
- 
- 	if test "${nut_have_openssl}" = "yes"; then
- 		nut_with_ssl="yes"
-diff --git a/server/netssl.c b/server/netssl.c
-index c2f409899..0f9a70acf 100644
---- a/server/netssl.c
-+++ b/server/netssl.c
-@@ -388,7 +388,11 @@ void ssl_init(void)
- #ifdef WITH_OPENSSL
- 
- 	SSL_load_error_strings();
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
- 	SSL_library_init();
-+#else
-+	OPENSSL_init_ssl(0, NULL);
-+#endif
- 
- 	if ((ssl_method = TLSv1_server_method()) == NULL) {
- 		ssl_debug();
-
-From b15656efb2575647ca0e0b6439b6380373767b8f Mon Sep 17 00:00:00 2001
-From: Arjen de Korte <build+lede@de-korte.org>
-Date: Tue, 28 Nov 2017 20:00:52 +0100
-Subject: [PATCH 2/7] Allow TLSv1 and higher (not just TLSv1)
-
----
- clients/upsclient.c | 30 +++++++++++++++++-------------
- server/netssl.c     | 26 +++++++++++++++-----------
- 2 files changed, 32 insertions(+), 24 deletions(-)
-
-diff --git a/clients/upsclient.c b/clients/upsclient.c
-index fc5e7523c..bd951e854 100644
---- a/clients/upsclient.c
-+++ b/clients/upsclient.c
-@@ -299,11 +299,6 @@ int upscli_init(int certverify, const char *certpath,
+@@ -299,11 +299,6 @@
  {
  #ifdef WITH_OPENSSL
  	int ret, ssl_mode = SSL_VERIFY_NONE;
@@ -84,27 +17,24 @@ index fc5e7523c..bd951e854 100644
  #elif defined(WITH_NSS) /* WITH_OPENSSL */
  	SECStatus	status;
  #endif /* WITH_OPENSSL | WITH_NSS */
-@@ -315,26 +310,35 @@ int upscli_init(int certverify, const char *certpath,
+@@ -315,22 +310,32 @@
  	}
  	
  #ifdef WITH_OPENSSL
-+
-+	SSL_load_error_strings();
- 	
- #if OPENSSL_VERSION_NUMBER < 0x10100000L
- 	SSL_library_init();
-+
-+	ssl_ctx = SSL_CTX_new(SSLv23_client_method());
- #else
- 	OPENSSL_init_ssl(0, NULL);
--#endif
+-	
+-	SSL_library_init();
 -	SSL_load_error_strings();
  
 -	ssl_method = TLSv1_client_method();
--
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++	SSL_load_error_strings();
++	SSL_library_init();
+ 
 -	if (!ssl_method) {
 -		return 0;
 -	}
++	ssl_ctx = SSL_CTX_new(SSLv23_client_method());
++#else
 +	ssl_ctx = SSL_CTX_new(TLS_client_method());
 +#endif
  
@@ -128,11 +58,49 @@ index fc5e7523c..bd951e854 100644
  	if (!certpath) {
  		if (certverify == 1) {
  			upslogx(LOG_ERR, "Can not verify certificate if any is specified");
-diff --git a/server/netssl.c b/server/netssl.c
-index 0f9a70acf..98680d25e 100644
+@@ -737,7 +742,7 @@
+ 	switch(res)
+ 	{
+ 	case 1:
+-		upsdebugx(3, "SSL connected");
++		upsdebugx(3, "SSL connected (%s)", SSL_get_version(ups->ssl));
+ 		break;
+ 	case 0:
+ 		upslog_with_errno(1, "SSL_connect do not accept handshake.");
+--- a/clients/upssched.c
++++ b/clients/upssched.c
+@@ -794,7 +794,7 @@
+ 	}
+ 
+ 	if (!strcmp(cmd, "EXECUTE")) {
+-		if (ca1 == '\0') {
++		if (ca1[0] == '\0') {
+ 			upslogx(LOG_ERR, "Empty EXECUTE command argument");
+ 			return;
+ 		}
+--- a/m4/nut_check_libopenssl.m4
++++ b/m4/nut_check_libopenssl.m4
+@@ -58,7 +58,7 @@
+ 
+ 	dnl check if openssl is usable
+ 	AC_CHECK_HEADERS(openssl/ssl.h, [nut_have_openssl=yes], [nut_have_openssl=no], [AC_INCLUDES_DEFAULT])
+-	AC_CHECK_FUNCS(SSL_library_init, [], [nut_have_openssl=no])
++	AC_CHECK_FUNCS(SSL_CTX_new, [], [nut_have_openssl=no])
+ 
+ 	if test "${nut_have_openssl}" = "yes"; then
+ 		nut_with_ssl="yes"
 --- a/server/netssl.c
 +++ b/server/netssl.c
-@@ -371,13 +371,7 @@ void ssl_init(void)
+@@ -274,7 +274,7 @@
+ 	{
+ 	case 1:
+ 		client->ssl_connected = 1;
+-		upsdebugx(3, "SSL connected");
++		upsdebugx(3, "SSL connected (%s)", SSL_get_version(client->ssl));
+ 		break;
+ 		
+ 	case 0:
+@@ -370,13 +370,7 @@
  {
  #ifdef WITH_NSS
  	SECStatus status;
@@ -147,22 +115,20 @@ index 0f9a70acf..98680d25e 100644
  
  	if (!certfile) {
  		return;
-@@ -388,21 +382,31 @@ void ssl_init(void)
+@@ -386,18 +380,29 @@
+ 
  #ifdef WITH_OPENSSL
  
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
  	SSL_load_error_strings();
-+
- #if OPENSSL_VERSION_NUMBER < 0x10100000L
  	SSL_library_init();
-+
-+	ssl_ctx = SSL_CTX_new(SSLv23_server_method());
- #else
- 	OPENSSL_init_ssl(0, NULL);
-+
-+	ssl_ctx = SSL_CTX_new(TLS_server_method());
- #endif
  
 -	if ((ssl_method = TLSv1_server_method()) == NULL) {
++	ssl_ctx = SSL_CTX_new(SSLv23_server_method());
++#else
++	ssl_ctx = SSL_CTX_new(TLS_server_method());
++#endif
++
 +	if (!ssl_ctx) {
  		ssl_debug();
 -		fatalx(EXIT_FAILURE, "TLSv1_server_method failed");
@@ -183,151 +149,3 @@ index 0f9a70acf..98680d25e 100644
  
  	if (SSL_CTX_use_certificate_chain_file(ssl_ctx, certfile) != 1) {
  		ssl_debug();
-
-From 5a8308aef9884017754fb70620c8ded34fa44290 Mon Sep 17 00:00:00 2001
-From: Arjen de Korte <build+lede@de-korte.org>
-Date: Tue, 28 Nov 2017 22:01:41 +0100
-Subject: [PATCH 3/7] Fix check for empty string
-
----
- clients/upssched.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/clients/upssched.c b/clients/upssched.c
-index 97b3ed42d..3fdf118ed 100644
---- a/clients/upssched.c
-+++ b/clients/upssched.c
-@@ -794,7 +794,7 @@ static void parse_at(const char *ntype, const char *un, const char *cmd,
- 	}
- 
- 	if (!strcmp(cmd, "EXECUTE")) {
--		if (ca1 == '\0') {
-+		if (ca1[0] == '\0') {
- 			upslogx(LOG_ERR, "Empty EXECUTE command argument");
- 			return;
- 		}
-
-From 5ecfb0ffe3d89a5116dd287ff2c3f60de67ecbb9 Mon Sep 17 00:00:00 2001
-From: Arjen de Korte <build+github@de-korte.org>
-Date: Fri, 1 Dec 2017 12:24:00 +0100
-Subject: [PATCH 4/7] Report TLS handshake in debug mode
-
----
- clients/upsclient.c | 2 +-
- server/netssl.c     | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/clients/upsclient.c b/clients/upsclient.c
-index bd951e854..b7dd8f424 100644
---- a/clients/upsclient.c
-+++ b/clients/upsclient.c
-@@ -745,7 +745,7 @@ static int upscli_sslinit(UPSCONN_t *ups, int verifycert)
- 	switch(res)
- 	{
- 	case 1:
--		upsdebugx(3, "SSL connected");
-+		upsdebugx(3, "SSL connected (%s)", SSL_get_version(ups->ssl));
- 		break;
- 	case 0:
- 		upslog_with_errno(1, "SSL_connect do not accept handshake.");
-diff --git a/server/netssl.c b/server/netssl.c
-index 98680d25e..6ae13e8d3 100644
---- a/server/netssl.c
-+++ b/server/netssl.c
-@@ -275,7 +275,7 @@ void net_starttls(nut_ctype_t *client, int numarg, const char **arg)
- 	{
- 	case 1:
- 		client->ssl_connected = 1;
--		upsdebugx(3, "SSL connected");
-+		upsdebugx(3, "SSL connected (%s)", SSL_get_version(client->ssl));
- 		break;
- 		
- 	case 0:
-
-From ab0c8b41c0530d3706e4997257939026cfd29ccc Mon Sep 17 00:00:00 2001
-From: Arjen de Korte <build+github@de-korte.org>
-Date: Sun, 24 Feb 2019 18:31:21 +0100
-Subject: [PATCH 5/7] Update nut_check_libopenssl.m4
-
----
- m4/nut_check_libopenssl.m4 | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/m4/nut_check_libopenssl.m4 b/m4/nut_check_libopenssl.m4
-index 5f29f4a38..7eb401cd9 100644
---- a/m4/nut_check_libopenssl.m4
-+++ b/m4/nut_check_libopenssl.m4
-@@ -57,9 +57,8 @@ if test -z "${nut_have_libopenssl_seen}"; then
- 	AC_MSG_RESULT([${LIBS}])
- 
- 	dnl check if openssl is usable
--	AC_CHECK_FUNCS(OPENSSL_init_ssl, [nut_have_openssl=yes], [nut_have_openssl=no])
--	AC_CHECK_FUNCS(SSL_library_init, [nut_have_openssl=yes], [])
--	AC_CHECK_HEADERS(openssl/ssl.h, [], [nut_have_openssl=no], [AC_INCLUDES_DEFAULT])
-+	AC_CHECK_HEADERS(openssl/ssl.h, [nut_have_openssl=yes], [nut_have_openssl=no], [AC_INCLUDES_DEFAULT])
-+	AC_CHECK_FUNCS(SSL_CTX_new, [], [nut_have_openssl=no])
- 
- 	if test "${nut_have_openssl}" = "yes"; then
- 		nut_with_ssl="yes"
-
-From 1dc34a5da7308f0f85537a6761fefb3ff3098863 Mon Sep 17 00:00:00 2001
-From: Arjen de Korte <build+github@de-korte.org>
-Date: Sun, 24 Feb 2019 18:34:53 +0100
-Subject: [PATCH 6/7] Update upsclient.c
-
----
- clients/upsclient.c | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/clients/upsclient.c b/clients/upsclient.c
-index b7dd8f424..541664f36 100644
---- a/clients/upsclient.c
-+++ b/clients/upsclient.c
-@@ -311,15 +311,12 @@ int upscli_init(int certverify, const char *certpath,
- 	
- #ifdef WITH_OPENSSL
- 
--	SSL_load_error_strings();
--	
- #if OPENSSL_VERSION_NUMBER < 0x10100000L
-+	SSL_load_error_strings();
- 	SSL_library_init();
- 
- 	ssl_ctx = SSL_CTX_new(SSLv23_client_method());
- #else
--	OPENSSL_init_ssl(0, NULL);
--
- 	ssl_ctx = SSL_CTX_new(TLS_client_method());
- #endif
- 
-
-From 108c31c9b170da2ee34a25fd373d21837d4d10a3 Mon Sep 17 00:00:00 2001
-From: Arjen de Korte <build+github@de-korte.org>
-Date: Sun, 24 Feb 2019 18:37:42 +0100
-Subject: [PATCH 7/7] Update netssl.c
-
----
- server/netssl.c | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/server/netssl.c b/server/netssl.c
-index 6ae13e8d3..cf9419edf 100644
---- a/server/netssl.c
-+++ b/server/netssl.c
-@@ -381,15 +381,12 @@ void ssl_init(void)
- 
- #ifdef WITH_OPENSSL
- 
--	SSL_load_error_strings();
--
- #if OPENSSL_VERSION_NUMBER < 0x10100000L
-+	SSL_load_error_strings();
- 	SSL_library_init();
- 
- 	ssl_ctx = SSL_CTX_new(SSLv23_server_method());
- #else
--	OPENSSL_init_ssl(0, NULL);
--
- 	ssl_ctx = SSL_CTX_new(TLS_server_method());
- #endif
- 

diff --git a/sys-power/nut/nut-2.7.4-r3.ebuild b/sys-power/nut/nut-2.7.4-r3.ebuild
index d1182c5e062..0e0b748bd5e 100644
--- a/sys-power/nut/nut-2.7.4-r3.ebuild
+++ b/sys-power/nut/nut-2.7.4-r3.ebuild
@@ -34,8 +34,7 @@ DEPEND="
 	zeroconf? ( net-dns/avahi )"
 
 BDEPEND="
-	virtual/pkgconfig
-	>=sys-apps/sed-4"
+	virtual/pkgconfig"
 
 RDEPEND="${DEPEND}
 	selinux? ( sec-policy/selinux-nut )"
@@ -80,10 +79,10 @@ NUT_PRIVATE_FILES="/etc/nut/{upsd.conf,upsd.users,upsmon.conf}"
 NUT_CGI_FILES="/etc/nut/{{hosts,upsset}.conf,upsstats{,-single}.html}"
 
 PATCHES=(
-	"${FILESDIR}/${PN}-2.7.2-no-libdummy.patch"
-	"${FILESDIR}/${PN}-2.7.1-snmpusb-order.patch"
-	"${FILESDIR}/${PN}-2.6.2-lowspeed-buffer-size.patch"
-	"${FILESDIR}/nut-openssl-1.1-support.patch"
+	"${FILESDIR}"/${PN}-2.7.2-no-libdummy.patch
+	"${FILESDIR}"/${PN}-2.7.1-snmpusb-order.patch
+	"${FILESDIR}"/${PN}-2.6.2-lowspeed-buffer-size.patch
+	"${FILESDIR}"/nut-openssl-1.1-support.patch
 )
 
 pkg_setup() {


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-power/nut/files/, sys-power/nut/
@ 2023-06-17  3:15 Sam James
  0 siblings, 0 replies; 5+ messages in thread
From: Sam James @ 2023-06-17  3:15 UTC (permalink / raw
  To: gentoo-commits

commit:     aea0f99f970c391e3daf4f98d0b6a2dc58fc039b
Author:     Francisco Javier Félix <web <AT> inode64 <DOT> com>
AuthorDate: Fri Jun 16 16:14:55 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jun 17 03:13:49 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aea0f99f

sys-power/nut: add 2.8.0, various enhancements

I've recently made a comprehensive update to the ebuild of sys-power/nut:
The way drivers are activated has been altered - instead of using a driver list, which
can be hard to maintain when new ones are added, we now activate them based on the
connection type (serial, USB, XML, IPMI, Modbus, etc).

This simplification not only streamlines the installation process but also resolves
dependency issues associated with activating a driver and its corresponding unactivated connection.

The updates align with the latest Gentoo specifications and are summarized below:

Improvements:
*    Removed unused libnsl
*    Removed outdated hotplug
*    Utilized EAPI=8
*    Default use of libusb-1
*    Added connections for GPIO, i2c, and Modbus
*    Configuration parameters required per connection type
*    Fixed the creation of PID in /run/nut
*    Removed configurations no longer necessary for nut-2.8.0 or newer
*    Creation of man pages
*    Added a flag for documentation
*    Utilized tmpfile for creating temporary directories
*    Added Q5t5 monitor (nut-9999)
*    Disabled Python2
*    Added Python3 library
*    Message for the optional function of sys-apps/util-linux[logger, tty-helpers]
*    Added configuration for Avahi
*    Added a flag for systemd (nut-9999)

TODO: (in next version)
*    nut-scanner is not working
*    /etc/init.d/upslog requires parameters of SAI and log file

Please note that I have tested different SAI drivers, but only with USB and SNMP connections.

Any feedback or further testing on these updates would be highly appreciated.

Closes: https://bugs.gentoo.org/836776
Closes: https://bugs.gentoo.org/736804
Closes: https://bugs.gentoo.org/598619
Closes: https://bugs.gentoo.org/636402
Closes: https://bugs.gentoo.org/862543
Closes: https://bugs.gentoo.org/852287
Closes: https://bugs.gentoo.org/676598
Closes: https://bugs.gentoo.org/808675
Closes: https://bugs.gentoo.org/771291
Closes: https://bugs.gentoo.org/714930
Closes: https://bugs.gentoo.org/695148
Closes: https://bugs.gentoo.org/641144
Closes: https://bugs.gentoo.org/670132
Closes: https://bugs.gentoo.org/642618
Closes: https://bugs.gentoo.org/544250
Closes: https://bugs.gentoo.org/526328
Package-Manager: Portage-3.0.45.3, pkgcheck-0.10.24
Signed-off-by: Fco Javier Felix <ffelix <AT> inode64.com>
Closes: https://github.com/gentoo/gentoo/pull/31486
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-power/nut/Manifest                             |   1 +
 sys-power/nut/files/nut-2.6.5-init.d-upsmon        |   2 +-
 .../files/nut-2.8.0-fix-man-page-generation.patch  |  64 +++++
 ...t-2.6.5-init.d-upsmon => nut-2.8.0-init.d-upsd} |  20 +-
 sys-power/nut/files/nut.powerfail.initd            |   1 -
 sys-power/nut/files/systemd_notify.path            |  50 ++++
 sys-power/nut/metadata.xml                         |  14 +-
 sys-power/nut/nut-2.8.0.ebuild                     | 222 +++++++++++++++++
 sys-power/nut/nut-9999.ebuild                      | 266 +++++++++++++++++++++
 9 files changed, 631 insertions(+), 9 deletions(-)

diff --git a/sys-power/nut/Manifest b/sys-power/nut/Manifest
index 898249c21a85..20470d95ae84 100644
--- a/sys-power/nut/Manifest
+++ b/sys-power/nut/Manifest
@@ -1 +1,2 @@
 DIST nut-2.7.4.tar.gz 2509831 BLAKE2B 367c687efd739150898a14c700d5fddbe22bf926522923e1842011ec49b67d6638620500c4eda50291feb474cc6eef39fff63764cb3e0fad5898abee981f8308 SHA512 320c4aff85d8a370c5eff77d33924fdfc3caf6a250620693cdd5bf3336b3a80d8a207488eee841bcf8b72fbad68fda4c074e63b99c56e7886716fc934122d11a
+DIST nut-2.8.0.tar.gz 3287640 BLAKE2B 6ad87e9c90920d45846d9c1311e8feeb3c36bfa506d62d938940c00d2fc7f7b30632d079a8ee969db624824ae4fd3e14e41e8acd1eda296e26a3aa340f186b94 SHA512 3c413ae54088045a713eb80cf1bdda474f41bb3b67c7c0248aa7a0c4d441dce1ff42627a2735273d7e36892d1f2eeb895220cf28af63fec2fa0c7a267f82d577

diff --git a/sys-power/nut/files/nut-2.6.5-init.d-upsmon b/sys-power/nut/files/nut-2.6.5-init.d-upsmon
index 3aafe1676d6e..729df9c5460b 100644
--- a/sys-power/nut/files/nut-2.6.5-init.d-upsmon
+++ b/sys-power/nut/files/nut-2.6.5-init.d-upsmon
@@ -4,7 +4,7 @@
 
 extra_started_commands="reload"
 
-pidfile=/var/run/upsmon.pid
+pidfile=/run/nut/upsmon.pid
 bin=/usr/sbin/upsmon
 
 depend() {

diff --git a/sys-power/nut/files/nut-2.8.0-fix-man-page-generation.patch b/sys-power/nut/files/nut-2.8.0-fix-man-page-generation.patch
new file mode 100644
index 000000000000..ff224a4774bf
--- /dev/null
+++ b/sys-power/nut/files/nut-2.8.0-fix-man-page-generation.patch
@@ -0,0 +1,64 @@
+From c0d9ce265c6ca627039845d9544ebbdf87a00f7f Mon Sep 17 00:00:00 2001
+From: Timo Kokkonen <timo.t.kokkonen@iki.fi>
+Date: Mon, 11 Jul 2022 20:41:12 +0300
+Subject: [PATCH] docs: man: upsd: Fix driver list when building only some of
+ drivers
+
+There are two issues that come up in man page generation when only
+some of the drivers are built.
+
+First is that during configure phase DRIVER_MAN_LIST is collected by
+searching any .8 files matching the driver names. This does not work
+very well as during the first configure call these files don't exist
+yet as none of them are compiled yet. Searching the .txt files where
+they are built from works better.
+
+Second issue is that SRC_DRIVERS_PAGES list needs to contain the
+source files where the driver list is generated from. If only some
+drivers are built, this needs to be populated from the list of files
+we collected to DRIVER_MAN_LIST during configure phase.
+
+Adding these entries will ensure manpage generation will not fail if
+only some of the drivers are built
+
+Signed-off-by: Timo Kokkonen <timo.t.kokkonen@iki.fi>
+---
+ configure.ac         | 4 ++--
+ docs/man/Makefile.am | 6 ++++++
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 3aa26c24e..a49ca4417 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1745,8 +1745,8 @@ if test "${WITH_MANS}" = "yes"; then
+ 	else
+ 		DRIVER_MAN_LIST=""
+ 		for i in ${DRIVER_BUILD_LIST}; do
+-			if test -f ${srcdir}/docs/man/$i.8; then
+-				DRIVER_MAN_LIST="${DRIVER_MAN_LIST} $i.8"
++			if test -f ${srcdir}/docs/man/$i.txt; then
++				DRIVER_MAN_LIST="${DRIVER_MAN_LIST} $i.txt"
+ 			fi
+ 		done
+ 		AC_MSG_RESULT(${DRIVER_MAN_LIST})
+diff --git a/docs/man/Makefile.am b/docs/man/Makefile.am
+index 0d693a355..a7345264b 100644
+--- a/docs/man/Makefile.am
++++ b/docs/man/Makefile.am
+@@ -695,6 +695,12 @@ SRC_DRIVERS_PAGES = \
+ 	$(SRC_MODBUS_PAGES) \
+ 	$(SRC_LINUX_I2C_PAGES)
+ 
++if SOME_DRIVERS
++SRC_DRIVERS_PAGES += \
++	$(DRIVER_MAN_LIST)
++endif
++
++
+ # distribute everything, even those not installed by default
+ # Note that 'dist' target requires AsciiDoc!
+ SRC_ALL_PAGES = \
+-- 
+2.35.1
+

diff --git a/sys-power/nut/files/nut-2.6.5-init.d-upsmon b/sys-power/nut/files/nut-2.8.0-init.d-upsd
similarity index 58%
copy from sys-power/nut/files/nut-2.6.5-init.d-upsmon
copy to sys-power/nut/files/nut-2.8.0-init.d-upsd
index 3aafe1676d6e..ce09de52d56d 100644
--- a/sys-power/nut/files/nut-2.6.5-init.d-upsmon
+++ b/sys-power/nut/files/nut-2.8.0-init.d-upsd
@@ -1,29 +1,37 @@
 #!/sbin/openrc-run
-# Copyright 1999-2013 Gentoo Foundation
+# Copyright 1999-2023 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 extra_started_commands="reload"
 
-pidfile=/var/run/upsmon.pid
-bin=/usr/sbin/upsmon
+pidfile=/run/nut/upsd.pid
+bin=/usr/sbin/upsd
 
 depend() {
 	use net
+	before upsmon
+	after upsdrv
 }
 
 start() {
-	ebegin "Starting upsmon"
+	ebegin "Starting upsd"
+	# clean up first
+	pkill -u root,nut -x ${bin}
+	sleep 1
+	rm -f ${pidfile}
+	# now start up
 	start-stop-daemon --start --quiet --exec ${bin}
 	eend $?
 }
 
 stop() {
-	ebegin "Stopping upsmon"
+	ebegin "Stopping upsd"
 	start-stop-daemon --stop --quiet --pidfile ${pidfile}
 	eend $?
 }
+
 reload() {
-	ebegin "Reloading upsmon"
+	ebegin "Reloading upsd"
 	start-stop-daemon --stop --signal HUP --oknodo --quiet --pidfile ${pidfile}
 	eend $?
 }

diff --git a/sys-power/nut/files/nut.powerfail.initd b/sys-power/nut/files/nut.powerfail.initd
index fd26b4f76aec..f81b258a7cdb 100644
--- a/sys-power/nut/files/nut.powerfail.initd
+++ b/sys-power/nut/files/nut.powerfail.initd
@@ -45,4 +45,3 @@ start() {
 		ewarn "UPS powerfail script scheduled, and flags found, but ${UPS_CTL} missing."
 	fi
 }
-

diff --git a/sys-power/nut/files/systemd_notify.path b/sys-power/nut/files/systemd_notify.path
new file mode 100644
index 000000000000..657e0075420c
--- /dev/null
+++ b/sys-power/nut/files/systemd_notify.path
@@ -0,0 +1,50 @@
+--- old/configure.ac	2023-06-09 00:53:54.121886669 +0200
++++ new/configure.ac	2023-06-09 00:57:13.149792791 +0200
+@@ -3220,45 +3220,8 @@
+ AC_PATH_PROG([SYSTEMD_ANALYZE_PROGRAM], [systemd-analyze], [/usr/bin/systemd-analyze])
+ 
+ dnl Relevant since 2023: https://github.com/systemd/systemd/pull/25916
+-SYSTEMD_SUPPORTS_DAEMON_TYPE_NOTIFY=no
+-AS_IF([test -x "$SYSTEMD_ANALYZE_PROGRAM"], [
+-	AC_MSG_CHECKING([if your systemd version supports Type=notify])
+-	myFILE="`mktemp systemd-analyze-XXXXXX.service`"
+-	cat > "$myFILE" << EOF
+-@<:@Unit@:>@
+-Description=temp
+-@<:@Service@:>@
+-ExecStart=/bin/true
+-Type=notify
+-EOF
+-	if myOUT="`"$SYSTEMD_ANALYZE_PROGRAM" verify "$myFILE" 2>&1`" \
+-	&& ! (echo "$myOUT" | grep "Failed to parse service type, ignoring") \
+-	; then
+-		SYSTEMD_SUPPORTS_DAEMON_TYPE_NOTIFY=yes
+-	fi
+-	rm -f "$myFILE"
+-	AC_MSG_RESULT([${SYSTEMD_SUPPORTS_DAEMON_TYPE_NOTIFY}])
+-	])
+-
+-SYSTEMD_SUPPORTS_DAEMON_TYPE_NOTIFY_RELOAD=no
+-AS_IF([test -x "$SYSTEMD_ANALYZE_PROGRAM"], [
+-	AC_MSG_CHECKING([if your systemd version supports Type=notify-reload])
+-	myFILE="`mktemp systemd-analyze-XXXXXX.service`"
+-	cat > "$myFILE" << EOF
+-@<:@Unit@:>@
+-Description=temp
+-@<:@Service@:>@
+-ExecStart=/bin/true
+-Type=notify-reload
+-EOF
+-	if myOUT="`"$SYSTEMD_ANALYZE_PROGRAM" verify "$myFILE" 2>&1`" \
+-	&& ! (echo "$myOUT" | grep "Failed to parse service type, ignoring") \
+-	; then
+-		SYSTEMD_SUPPORTS_DAEMON_TYPE_NOTIFY_RELOAD=yes
+-	fi
+-	rm -f "$myFILE"
+-	AC_MSG_RESULT([${SYSTEMD_SUPPORTS_DAEMON_TYPE_NOTIFY_RELOAD}])
+-	])
++SYSTEMD_SUPPORTS_DAEMON_TYPE_NOTIFY=yes
++SYSTEMD_SUPPORTS_DAEMON_TYPE_NOTIFY_RELOAD=yes
+ 
+ AS_IF([test x"${with_libsystemd}" = xyes && test x"${SYSTEMD_SUPPORTS_DAEMON_TYPE_NOTIFY}" = xyes], [
+ 	dnl Built with sd_notify support

diff --git a/sys-power/nut/metadata.xml b/sys-power/nut/metadata.xml
index d310afca661e..1c8e02e16170 100644
--- a/sys-power/nut/metadata.xml
+++ b/sys-power/nut/metadata.xml
@@ -8,8 +8,20 @@
 	<maintainer type="person">
 		<email>prometheanfire@gentoo.org</email>
 	</maintainer>
+	<maintainer type="person" proxied="yes">
+		<email>web@inode64.com</email>
+		<name>Fco. Javier Félix</name>
+	</maintainer>
 	<use>
-		<flag name="ipmi">Support IPMI-based UPSes.</flag>
+		<flag name="gpio">Includes all UPS drivers that use GPIO.</flag>
+		<flag name="i2c">Includes all UPS drivers that use I2C.</flag>
+		<flag name="ipmi">Includes all UPS drivers that use ipmi.</flag>
+		<flag name="modbus">Includes all UPS drivers that use MODBUS.</flag>
+		<flag name="monitor">Add a QT5 gui monitor.</flag>
+		<flag name="serial">Includes all UPS drivers that use SERIAL.</flag>
+		<flag name="snmp">Includes all UPS drivers that use SNMP.</flag>
+		<flag name="usb">Includes all UPS drivers that use USB.</flag>
+		<flag name="xml">Includes all UPS drivers that use XML.</flag>
 		<flag name="ups_drivers_al175">Driver for Eltek UPS models with AL175 alarm module</flag>
 		<flag name="ups_drivers_bcmxcp">Driver for UPSes supporting the serial BCM/XCP protocol</flag>
 		<flag name="ups_drivers_belkin">Driver for Belkin serial UPS equipment</flag>

diff --git a/sys-power/nut/nut-2.8.0.ebuild b/sys-power/nut/nut-2.8.0.ebuild
new file mode 100644
index 000000000000..163885862062
--- /dev/null
+++ b/sys-power/nut/nut-2.8.0.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit bash-completion-r1 flag-o-matic linux-info optfeature systemd tmpfiles toolchain-funcs udev
+
+MY_P=${P/_/-}
+
+DESCRIPTION="Network-UPS Tools"
+HOMEPAGE="https://networkupstools.org/"
+if [[ "${PV}" == *9999 ]] ; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/networkupstools/${PN}.git"
+else
+	SRC_URI="https://networkupstools.org/source/${PV%.*}/${MY_P}.tar.gz"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+IUSE="cgi doc ipmi serial i2c +man snmp +usb modbus selinux split-usr ssl tcpd xml zeroconf"
+
+DEPEND="
+	acct-group/nut
+	acct-user/nut
+	cgi? ( >=media-libs/gd-2[png] )
+	dev-libs/libltdl
+	i2c? ( sys-apps/i2c-tools )
+	ipmi? ( sys-libs/freeipmi )
+	modbus? ( dev-libs/libmodbus )
+	snmp? ( net-analyzer/net-snmp:= )
+	ssl? ( >=dev-libs/openssl-1:= )
+	tcpd? ( sys-apps/tcp-wrappers )
+	usb? ( virtual/libusb:1 )
+	virtual/udev
+	xml? ( >=net-libs/neon-0.25.0:= )
+	zeroconf? ( net-dns/avahi )
+"
+
+BDEPEND="
+	man? ( app-text/asciidoc )
+	virtual/pkgconfig
+"
+
+RDEPEND="
+	${DEPEND}
+	selinux? ( sec-policy/selinux-nut )
+"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-2.6.2-lowspeed-buffer-size.patch"
+)
+
+pkg_pretend() {
+	if use i2c; then
+		CONFIG_CHECK="~I2C_CHARDEV"
+		ERROR_I2C_CHARDEV="You must enable I2C_CHARDEV in your kernel to continue"
+	fi
+	if use usb; then
+		CONFIG_CHECK+=" ~HIDRAW ~USB_HIDDEV"
+		ERROR_HIDRAW="HIDRAW is needed to support USB UPSes"
+		ERROR_I2C_CHARDEV="USB_HIDDEV is needed to support USB UPSes"
+	fi
+	if use serial; then
+		CONFIG_CHECK="~SERIAL_8250"
+		ERROR_SERIAL_8250="SERIAL_8250 is needed to support Serial UPSes"
+	fi
+
+	# Now do the actual checks setup above
+	check_extra_config
+}
+
+src_unpack() {
+	if [[ "${PV}" == *9999 ]] ; then
+		git-r3_src_unpack
+	fi
+	default
+}
+
+src_prepare() {
+	default
+
+	if [[ "${PV}" == *9999 ]] ; then
+		./autogen.sh
+	fi
+}
+
+src_configure() {
+	local myeconfargs=(
+		--datadir=/usr/share/nut
+		--datarootdir=/usr/share/nut
+		--disable-static
+		--sysconfdir=/etc/nut
+		--with-dev
+		--with-drvpath="/$(get_libdir)/nut"
+		--with-group=nut
+		--with-htmlpath=/usr/share/nut/html
+		--with-logfacility=LOG_DAEMON
+		--with-statepath=/var/lib/nut
+		--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
+		--with-user=nut
+		--without-powerman
+		--without-python
+		--without-python2
+		--without-python3
+		--with-altpidpath=/run/nut
+		--with-pidpath=/run/nut
+		$(use_with i2c linux_i2c)
+		$(use_with ipmi freeipmi)
+		$(use_with ipmi)
+		$(use_with serial)
+		$(use_with snmp)
+		$(use_with ssl)
+		$(use_with tcpd wrap)
+		$(use_with usb)
+		$(use_with xml neon)
+		$(use_with zeroconf avahi)
+	)
+
+	append-flags -fno-lto
+
+	tc-export CC
+	tc-export CXX
+	tc-export AR
+
+	use cgi && myeconfargs+=( --with-cgipath=/usr/share/nut/cgi )
+	use man && myeconfargs+=( --with-doc=man )
+
+	export bashcompdir="$(get_bashcompdir)"
+
+	econf "${myeconfargs[@]}"
+}
+
+src_install() {
+	default
+
+	rm -rf "${D}/etc/hotplug" || die
+
+	find "${D}" -name '*.la' -delete || die
+
+	dodir /sbin
+	use split-usr && dosym ../usr/sbin/upsdrvctl /sbin/upsdrvctl
+
+	if use cgi; then
+		elog "CGI monitoring scripts are installed in /usr/share/nut/cgi."
+		elog "copy them to your web server's ScriptPath to activate (this is a"
+		elog "change from the old location)."
+		elog "If you use lighttpd, see lighttpd_nut.conf in the documentation."
+		elog
+		elog "Use script aliases according to the web server you use (apache, nginx, lighttpd, etc...)"
+	fi
+
+	# this must be done after all of the install phases
+	for i in "${D}"/etc/nut/*.sample ; do
+		mv "${i}" "${i/.sample/}" || die
+	done
+
+	local DOCS=( AUTHORS MAINTAINERS NEWS README TODO UPGRADING )
+	einstalldocs
+
+	if use doc; then
+		newdoc lib/README README.lib
+		dodoc docs/*.txt
+		docinto cables
+		dodoc docs/cables/*
+	fi
+
+	newinitd "${FILESDIR}"/nut-2.8.0-init.d-upsd upsd
+	newinitd "${FILESDIR}"/nut-2.2.2-init.d-upsdrv upsdrv
+	newinitd "${FILESDIR}"/nut-2.6.5-init.d-upsmon upsmon
+	newinitd "${FILESDIR}"/nut-2.6.5-init.d-upslog upslog
+	newinitd "${FILESDIR}"/nut.powerfail.initd nut.powerfail
+
+	newbashcomp "${S}"/scripts/misc/nut.bash_completion upsc
+	bashcomp_alias upsc upscmd upsd upsdrvctl upsmon upsrw
+
+	if use zeroconf; then
+		insinto /etc/avahi/services
+		doins scripts/avahi/nut.service
+	fi
+
+	mv "${D}"/usr/lib/tmpfiles.d/nut-common.tmpfiles "${D}"/usr/lib/tmpfiles.d/nut-common-tmpfiles.conf || die
+
+	# Fix double directory
+	sed -i -e 's:/nut/nut:/nut:g' "${D}"/usr/lib/tmpfiles.d/nut-common-tmpfiles.conf || die
+}
+
+pkg_postinst() {
+	elog "Please note that NUT now runs under the 'nut' user."
+	elog "NUT is in the uucp group for access to RS-232 UPS."
+	elog "However if you use a USB UPS you may need to look at the udev or"
+	elog "hotplug rules that are installed, and alter them suitably."
+	elog
+	elog "You are strongly advised to read the UPGRADING file provided by upstream."
+	elog
+	elog "Please note that upsdrv is NOT automatically started by upsd anymore."
+	elog "If you have multiple UPS units, you can use their NUT names to"
+	elog "have a service per UPS:"
+	elog "ln -s /etc/init.d/upsdrv /etc/init.d/upsdrv.\$UPSNAME"
+	elog
+	elog 'If you want apcupsd to power off your UPS when it'
+	elog 'shuts down your system in a power failure, you must'
+	elog 'add nut.powerfail to your shutdown runlevel:'
+	elog
+	elog 'rc-update add nut.powerfail shutdown'
+	elog
+
+	optfeature "all notify events generate a global message (wall) to all users, plus they are logged via the syslog" \
+		sys-apps/util-linu[logger,tty-helpers]
+
+	udev_reload
+
+	tmpfiles_process nut-common-tmpfiles.conf
+}
+
+pkg_postrm() {
+	udev_reload
+}

diff --git a/sys-power/nut/nut-9999.ebuild b/sys-power/nut/nut-9999.ebuild
new file mode 100644
index 000000000000..445fb3b9c78d
--- /dev/null
+++ b/sys-power/nut/nut-9999.ebuild
@@ -0,0 +1,266 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=(python3_{10..12})
+inherit bash-completion-r1 desktop flag-o-matic linux-info optfeature python-single-r1 systemd tmpfiles \
+	toolchain-funcs udev wrapper xdg
+
+MY_P=${P/_/-}
+
+DESCRIPTION="Network-UPS Tools"
+HOMEPAGE="https://networkupstools.org/"
+if [[ "${PV}" == *9999 ]] ; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/networkupstools/${PN}.git"
+else
+	KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+	SRC_URI="https://networkupstools.org/source/${PV%.*}/${MY_P}.tar.gz"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+
+IUSE="gpio cgi doc ipmi serial i2c +man snmp +usb modbus selinux split-usr ssl tcpd xml zeroconf python monitor systemd"
+
+REQUIRED_USE="
+	monitor? ( python )
+	python? ( ${PYTHON_REQUIRED_USE} )
+	snmp? ( python )
+"
+
+DEPEND="
+	acct-group/nut
+	acct-user/nut
+	cgi? ( >=media-libs/gd-2[png] )
+	dev-libs/libltdl
+	gpio? ( dev-libs/libgpiod )
+	i2c? ( sys-apps/i2c-tools )
+	ipmi? ( sys-libs/freeipmi )
+	modbus? ( dev-libs/libmodbus )
+	python? ( ${PYTHON_DEPS} )
+	snmp? ( net-analyzer/net-snmp:= )
+	ssl? ( >=dev-libs/openssl-1:= )
+	systemd? ( >=sys-apps/systemd-253 )
+	tcpd? ( sys-apps/tcp-wrappers )
+	usb? ( virtual/libusb:1 )
+	virtual/udev
+	xml? ( >=net-libs/neon-0.25.0:= )
+	zeroconf? ( net-dns/avahi )
+"
+# sys-apps/systemd-253 required for Type=notify-reload
+
+BDEPEND="
+	man? ( app-text/asciidoc )
+	virtual/pkgconfig
+"
+
+RDEPEND="
+	${DEPEND}
+	monitor? ( $(python_gen_cond_dep '
+			dev-python/PyQt5[gui,widgets,${PYTHON_USEDEP}]
+		')
+	)
+	selinux? ( sec-policy/selinux-nut )
+"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-2.6.2-lowspeed-buffer-size.patch"
+	"${FILESDIR}/systemd_notify.path"
+)
+
+pkg_pretend() {
+	if use i2c; then
+		CONFIG_CHECK="~I2C_CHARDEV"
+		ERROR_I2C_CHARDEV="You must enable I2C_CHARDEV in your kernel to continue"
+	fi
+	if use usb; then
+		CONFIG_CHECK+=" ~HIDRAW ~USB_HIDDEV"
+		ERROR_HIDRAW="HIDRAW is needed to support USB UPSes"
+		ERROR_I2C_CHARDEV="USB_HIDDEV is needed to support USB UPSes"
+	fi
+	if use gpio; then
+		CONFIG_CHECK="~GPIO_CDEV_V1"
+		ERROR_GPIO_CDEV_V1="GPIO_CDEV_V1 is needed to support GPIO UPSes"
+	fi
+	if use serial; then
+		CONFIG_CHECK="~SERIAL_8250"
+		ERROR_SERIAL_8250="SERIAL_8250 is needed to support Serial UPSes"
+	fi
+
+	# Now do the actual checks setup above
+	check_extra_config
+}
+
+src_unpack() {
+	if [[ "${PV}" == *9999 ]] ; then
+		git-r3_src_unpack
+	fi
+	default
+}
+
+pkg_setup() {
+	python-single-r1_pkg_setup
+}
+
+src_prepare() {
+	default
+
+	if [[ "${PV}" == *9999 ]] ; then
+		./autogen.sh
+	fi
+
+	xdg_environment_reset
+}
+
+src_configure() {
+	local myeconfargs=(
+		--datadir=/usr/share/nut
+		--datarootdir=/usr/share/nut
+		--disable-static
+		--sysconfdir=/etc/nut
+		--with-dev
+		--with-drvpath="/$(get_libdir)/nut"
+		--with-group=nut
+		--with-htmlpath=/usr/share/nut/html
+		--with-logfacility=LOG_DAEMON
+		--with-statepath=/var/lib/nut
+		--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
+		--with-user=nut
+		--without-powerman
+		--without-python
+		--without-python2
+		--with-altpidpath=/run/nut
+		--with-pidpath=/run/nut
+		$(use_with gpio)
+		$(use_with i2c linux_i2c)
+		$(use_with ipmi freeipmi)
+		$(use_with ipmi)
+		$(use_with monitor nut_monitor)
+		$(use_with python pynut)
+		$(use_with serial)
+		$(use_with snmp)
+		$(use_with ssl)
+		$(use_with systemd libsystemd)
+		$(use_with tcpd wrap)
+		$(use_with usb)
+		$(use_with xml neon)
+		$(use_with zeroconf avahi)
+	)
+
+	append-flags -fno-lto
+
+	tc-export CC
+	tc-export CXX
+	tc-export AR
+
+	use cgi && myeconfargs+=( --with-cgipath=/usr/share/nut/cgi )
+	use man && myeconfargs+=( --with-doc=man )
+	use python && myeconfargs+=( --with-python3=/usr/bin/python3 ) || myeconfargs+=( --without-python3 )
+
+	export bashcompdir="$(get_bashcompdir)"
+
+	econf "${myeconfargs[@]}"
+}
+
+src_install() {
+	default
+
+	rm -rf "${D}/etc/hotplug" || die
+
+	find "${D}" -name '*.la' -delete || die
+
+	dodir /sbin
+	use split-usr && dosym ../usr/sbin/upsdrvctl /sbin/upsdrvctl
+
+	if use cgi; then
+		elog "CGI monitoring scripts are installed in /usr/share/nut/cgi."
+		elog "copy them to your web server's ScriptPath to activate (this is a"
+		elog "change from the old location)."
+		elog "If you use lighttpd, see lighttpd_nut.conf in the documentation."
+		elog
+		elog "Use script aliases according to the web server you use (apache, nginx, lighttpd, etc...)"
+	fi
+
+	# this must be done after all of the install phases
+	for i in "${D}"/etc/nut/*.sample ; do
+		mv "${i}" "${i/.sample/}" || die
+	done
+
+	local DOCS=( AUTHORS MAINTAINERS NEWS README TODO UPGRADING )
+	einstalldocs
+
+	if use doc; then
+		newdoc lib/README README.lib
+		dodoc docs/*.txt
+		docinto cables
+		dodoc docs/cables/*
+	fi
+
+	newinitd "${FILESDIR}"/nut-2.8.0-init.d-upsd upsd
+	newinitd "${FILESDIR}"/nut-2.2.2-init.d-upsdrv upsdrv
+	newinitd "${FILESDIR}"/nut-2.6.5-init.d-upsmon upsmon
+	newinitd "${FILESDIR}"/nut-2.6.5-init.d-upslog upslog
+	newinitd "${FILESDIR}"/nut.powerfail.initd nut.powerfail
+
+	newbashcomp "${S}"/scripts/misc/nut.bash_completion upsc
+	bashcomp_alias upsc upscmd upsd upsdrvctl upsmon upsrw
+
+	if use zeroconf; then
+		insinto /etc/avahi/services
+		doins scripts/avahi/nut.service
+	fi
+
+	if use monitor; then
+		make_wrapper NUT-Monitor-py3qt5 /usr/share/nut/nut-monitor/app/NUT-Monitor-py3qt5 /usr/share/nut/nut-monitor/app
+
+		# Install desktop shortcut
+		newmenu scripts/python/app/nut-monitor-py3qt5.desktop nut-monitor.desktop
+
+		# Installing Application icons
+		local res
+		for res in 48 64 256; do
+			doicon -s ${res} scripts/python/app/icons/${res}x${res}/nut-monitor.png
+		done
+		doicon -s scalable scripts/python/app/icons/scalable/nut-monitor.svg
+	fi
+
+	use python && python_optimize
+}
+
+pkg_postinst() {
+	elog "Please note that NUT now runs under the 'nut' user."
+	elog "NUT is in the uucp group for access to RS-232 UPS."
+	elog "However if you use a USB UPS you may need to look at the udev or"
+	elog "hotplug rules that are installed, and alter them suitably."
+	elog
+	elog "You are strongly advised to read the UPGRADING file provided by upstream."
+	elog
+	elog "Please note that upsdrv is NOT automatically started by upsd anymore."
+	elog "If you have multiple UPS units, you can use their NUT names to"
+	elog "have a service per UPS:"
+	elog "ln -s /etc/init.d/upsdrv /etc/init.d/upsdrv.\$UPSNAME"
+	elog
+	elog 'If you want apcupsd to power off your UPS when it'
+	elog 'shuts down your system in a power failure, you must'
+	elog 'add nut.powerfail to your shutdown runlevel:'
+	elog
+	elog 'rc-update add nut.powerfail shutdown'
+	elog
+
+	optfeature "all notify events generate a global message (wall) to all users, plus they are logged via the syslog" \
+		sys-apps/util-linu[logger,tty-helpers]
+
+	udev_reload
+
+	tmpfiles_process nut-common-tmpfiles.conf
+	xdg_pkg_postinst
+}
+
+pkg_postrm() {
+	udev_reload
+	xdg_pkg_postrm
+}


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-power/nut/files/, sys-power/nut/
@ 2024-05-29 18:56 Robin H. Johnson
  0 siblings, 0 replies; 5+ messages in thread
From: Robin H. Johnson @ 2024-05-29 18:56 UTC (permalink / raw
  To: gentoo-commits

commit:     2575dc7c05a83eeb1ae28e32d7067173861b3785
Author:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
AuthorDate: Wed May 29 18:43:31 2024 +0000
Commit:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
CommitDate: Wed May 29 18:56:06 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2575dc7c

sys-power/nut: fix systemd-analyze sandbox violation

Signed-off-by: Robin H. Johnson <robbat2 <AT> gentoo.org>
Closes: https://bugs.gentoo.org/932962

 sys-power/nut/files/{systemd_notify.path => systemd_notify.patch} | 0
 sys-power/nut/nut-2.8.2.ebuild                                    | 5 +++--
 sys-power/nut/nut-9999.ebuild                                     | 5 +++--
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/sys-power/nut/files/systemd_notify.path b/sys-power/nut/files/systemd_notify.patch
similarity index 100%
rename from sys-power/nut/files/systemd_notify.path
rename to sys-power/nut/files/systemd_notify.patch

diff --git a/sys-power/nut/nut-2.8.2.ebuild b/sys-power/nut/nut-2.8.2.ebuild
index fbd9812f3c08..9a6702956acb 100644
--- a/sys-power/nut/nut-2.8.2.ebuild
+++ b/sys-power/nut/nut-2.8.2.ebuild
@@ -69,8 +69,9 @@ RDEPEND="
 
 PATCHES=(
 	"${FILESDIR}/${PN}-2.6.2-lowspeed-buffer-size.patch"
-	"${FILESDIR}/systemd_notify.path"
+	"${FILESDIR}/systemd_notify.patch"
 )
+PATCH_NEEDS_AUTOGEN=1
 
 pkg_pretend() {
 	if use i2c; then
@@ -102,7 +103,7 @@ pkg_setup() {
 src_prepare() {
 	default
 
-	if [[ ${PV} == *9999 ]] ; then
+	if [[ ${PV} == *9999 ]] || [[ ${PATCH_NEEDS_AUTOGEN} == 1 ]] ; then
 		./autogen.sh || die
 	fi
 

diff --git a/sys-power/nut/nut-9999.ebuild b/sys-power/nut/nut-9999.ebuild
index fbd9812f3c08..9a6702956acb 100644
--- a/sys-power/nut/nut-9999.ebuild
+++ b/sys-power/nut/nut-9999.ebuild
@@ -69,8 +69,9 @@ RDEPEND="
 
 PATCHES=(
 	"${FILESDIR}/${PN}-2.6.2-lowspeed-buffer-size.patch"
-	"${FILESDIR}/systemd_notify.path"
+	"${FILESDIR}/systemd_notify.patch"
 )
+PATCH_NEEDS_AUTOGEN=1
 
 pkg_pretend() {
 	if use i2c; then
@@ -102,7 +103,7 @@ pkg_setup() {
 src_prepare() {
 	default
 
-	if [[ ${PV} == *9999 ]] ; then
+	if [[ ${PV} == *9999 ]] || [[ ${PATCH_NEEDS_AUTOGEN} == 1 ]] ; then
 		./autogen.sh || die
 	fi
 


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-05-29 18:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-27 17:15 [gentoo-commits] repo/gentoo:master commit in: sys-power/nut/files/, sys-power/nut/ Matthew Thode
  -- strict thread matches above, loose matches on Subject: below --
2024-05-29 18:56 Robin H. Johnson
2023-06-17  3:15 Sam James
2020-01-08 22:27 David Seifert
2018-10-27 19:02 Andreas Sturmlechner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox