aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCy Schubert <cy@FreeBSD.org>2022-08-31 16:40:06 +0000
committerCy Schubert <cy@FreeBSD.org>2022-08-31 16:40:06 +0000
commitc18825ce6d0ca97cf6801436bfb5e096ef347479 (patch)
treee354c1a7948b1936e56b238aadda83fc0be7a4dc
parent35f810d6acdf79e498dd20d25407b758977be640 (diff)
downloadports-c18825ce6d0ca97cf6801436bfb5e096ef347479.tar.gz
ports-c18825ce6d0ca97cf6801436bfb5e096ef347479.zip
sysutils/nut-devel: Update to the latest networkupstools/nut github commit
Now that muliple UPS support has been accepted and merged into our upstream's mainline, revert the nut-devl part of 2c6ac43b0d95 and 9c4a120c36bf, and pull in the latest nut commit on GH.
-rw-r--r--sysutils/nut-devel/Makefile4
-rw-r--r--sysutils/nut-devel/distinfo6
-rw-r--r--sysutils/nut-devel/files/patch-clients_upslog.c280
-rw-r--r--sysutils/nut-devel/files/patch-docs_man_upslog.txt14
4 files changed, 5 insertions, 299 deletions
diff --git a/sysutils/nut-devel/Makefile b/sysutils/nut-devel/Makefile
index 39a576b32ea6..cbed9c263078 100644
--- a/sysutils/nut-devel/Makefile
+++ b/sysutils/nut-devel/Makefile
@@ -18,8 +18,8 @@ CONFLICTS= nut-[0-9]*
USE_GITHUB= yes
GH_ACCOUNT= networkupstools
-GH_TAGNAME= 2ce9dfa4a
-NUT_COMMIT_DATE= 2022.08.25
+GH_TAGNAME= ef842b40c
+NUT_COMMIT_DATE= 2022.08.31
MAKE_JOBS_UNSAFE= yes
USE_GCC= yes
diff --git a/sysutils/nut-devel/distinfo b/sysutils/nut-devel/distinfo
index 7701c7bfde6b..8f3558f483e4 100644
--- a/sysutils/nut-devel/distinfo
+++ b/sysutils/nut-devel/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1661703464
-SHA256 (networkupstools-nut-2022.08.25-2ce9dfa4a_GH0.tar.gz) = 16a7077c4df92021d01e7355673d8c30021f51c76af1bc52560d340ff408689e
-SIZE (networkupstools-nut-2022.08.25-2ce9dfa4a_GH0.tar.gz) = 3509186
+TIMESTAMP = 1661963762
+SHA256 (networkupstools-nut-2022.08.31-ef842b40c_GH0.tar.gz) = ecb812c3a813b3a5561116d58375f8f939fb9fe3b9ef1381eb19f904a121e470
+SIZE (networkupstools-nut-2022.08.31-ef842b40c_GH0.tar.gz) = 3514816
diff --git a/sysutils/nut-devel/files/patch-clients_upslog.c b/sysutils/nut-devel/files/patch-clients_upslog.c
deleted file mode 100644
index 199f55efd69c..000000000000
--- a/sysutils/nut-devel/files/patch-clients_upslog.c
+++ /dev/null
@@ -1,280 +0,0 @@
---- clients/upslog.c.orig 2022-08-29 22:20:20.954722000 -0700
-+++ clients/upslog.c 2022-08-29 22:21:18.844395000 -0700
-@@ -41,32 +45,49 @@
- #include "upslog.h"
-
- static int reopen_flag = 0, exit_flag = 0;
-- static uint16_t port;
-- static char *upsname, *hostname;
-- static UPSCONN_t ups;
-+ static char *upsname;
-+ static UPSCONN_t *ups;
-
-- static FILE *logfile;
-- static const char *logfn, *monhost;
-+ static char *logfn, *monhost;
- static sigset_t nut_upslog_sigmask;
- static char logbuffer[LARGEBUF], *logformat;
-
- static flist_t *fhead = NULL;
-+ struct monhost_ups {
-+ char *monhost;
-+ char *logfn;
-+ char *upsname;
-+ char *hostname;
-+ uint16_t port;
-+ UPSCONN_t *ups;
-+ FILE *logfile;
-+ struct monhost_ups *next;
-+ };
-+ static struct monhost_ups *monhost_ups_anchor = NULL;
-+ static struct monhost_ups *monhost_ups_current = NULL;
-+ static struct monhost_ups *monhost_ups_prev = NULL;
-
-+
- #define DEFAULT_LOGFORMAT "%TIME @Y@m@d @H@M@S% %VAR battery.charge% " \
- "%VAR input.voltage% %VAR ups.load% [%VAR ups.status%] " \
- "%VAR ups.temperature% %VAR input.frequency%"
-
- static void reopen_log(void)
- {
-- if (logfile == stdout) {
-- upslogx(LOG_INFO, "logging to stdout");
-- return;
-- }
-+ for (monhost_ups_current = monhost_ups_anchor;
-+ monhost_ups_current != NULL;
-+ monhost_ups_current = monhost_ups_current->next) {
-+ if (monhost_ups_current->logfile == stdout) {
-+ upslogx(LOG_INFO, "logging to stdout");
-+ return;
-+ }
-
-- fclose(logfile);
-- logfile = fopen(logfn, "a");
-- if (logfile == NULL)
-- fatal_with_errno(EXIT_FAILURE, "could not reopen logfile %s", logfn);
-+ if ((monhost_ups_current->logfile = freopen(
-+ monhost_ups_current->logfn, "a",
-+ monhost_ups_current->logfile)) == NULL)
-+ fatal_with_errno(EXIT_FAILURE,
-+ "could not reopen logfile %s", logfn);
-+ }
- }
-
- static void set_reopen_flag(int sig)
-@@ -131,6 +152,8 @@
- printf(" -p <pidbase> - Base name for PID file (defaults to \"%s\")\n", prog);
- printf(" -s <ups> - Monitor UPS <ups> - <upsname>@<host>[:<port>]\n");
- printf(" - Example: -s myups@server\n");
-+ printf(" -m <tuple> - Monitor UPS <ups,logfile>\n");
-+ printf(" - Example: -m myups@server,/var/log/myups.log\n");
- printf(" -u <user> - Switch to <user> if started as root\n");
-
- printf("\n");
-@@ -215,7 +238,7 @@
- query[2] = var;
- numq = 3;
-
-- ret = upscli_get(&ups, numq, query, &numa, &answer);
-+ ret = upscli_get(ups, numq, query, &numa, &answer);
-
- if ((ret < 0) || (numa < numq)) {
- snprintfcat(logbuffer, sizeof(logbuffer), "NA");
-@@ -368,7 +391,7 @@
- }
-
- /* go through the list of functions and call them in order */
--static void run_flist(void)
-+static void run_flist(struct monhost_ups *monhost_ups_print)
- {
- flist_t *tmp;
-
-@@ -382,8 +405,8 @@
- tmp = tmp->next;
- }
-
-- fprintf(logfile, "%s\n", logbuffer);
-- fflush(logfile);
-+ fprintf(monhost_ups_print->logfile, "%s\n", logbuffer);
-+ fflush(monhost_ups_print->logfile);
- }
-
- /* -s <monhost>
-@@ -396,6 +419,7 @@
- int main(int argc, char **argv)
- {
- int interval = 30, i, foreground = -1;
-+ size_t monhost_len = 0;
- const char *prog = xbasename(argv[0]);
- time_t now, nextpoll = 0;
- const char *user = NULL;
-@@ -407,7 +431,7 @@
-
- printf("Network UPS Tools %s %s\n", prog, UPS_VERSION);
-
-- while ((i = getopt(argc, argv, "+hs:l:i:f:u:Vp:FB")) != -1) {
-+ while ((i = getopt(argc, argv, "+hs:l:i:f:u:Vp:FBm:")) != -1) {
- switch(i) {
- case 'h':
- help(prog);
-@@ -415,6 +439,33 @@
- break;
- #endif
-
-+ case 'm': { /* var scope */
-+ char *m_arg, *s;
-+
-+ monhost_ups_prev = monhost_ups_current;
-+ monhost_ups_current = xmalloc(sizeof(struct monhost_ups));
-+ if (monhost_ups_anchor == NULL)
-+ monhost_ups_anchor = monhost_ups_current;
-+ else
-+ monhost_ups_prev->next = monhost_ups_current;
-+ monhost_ups_current->next = NULL;
-+ monhost_len++;
-+
-+ /* Be sure to not mangle original optarg, nor rely on its longevity */
-+ s = xstrdup(optarg);
-+ m_arg = s;
-+ monhost_ups_current->monhost = xstrdup(strsep(&m_arg, ","));
-+ if (!m_arg)
-+ fatalx(EXIT_FAILURE, "Argument '-m upsspec,logfile' requires exactly 2 components in the tuple");
-+ monhost_ups_current->logfn = xstrdup(strsep(&m_arg, ","));
-+ if (m_arg) /* Had a third comma - also unexpected! */
-+ fatalx(EXIT_FAILURE, "Argument '-m upsspec,logfile' requires exactly 2 components in the tuple");
-+ if (upscli_splitname(monhost_ups_current->monhost, &(monhost_ups_current->upsname), &(monhost_ups_current->hostname), &(monhost_ups_current->port)) != 0) {
-+ fatalx(EXIT_FAILURE, "Error: invalid UPS definition. Required format: upsname[@hostname[:port]]\n");
-+ }
-+ free(s);
-+ } /* var scope */
-+ break;
- case 's':
- monhost = optarg;
- break;
-@@ -479,42 +530,59 @@
- snprintfcat(logformat, LARGEBUF, "%s ", argv[i]);
- }
-
-- if (!monhost)
-- fatalx(EXIT_FAILURE, "No UPS defined for monitoring - use -s <system>");
-+ if (monhost_ups_anchor == NULL) {
-+ if (monhost) {
-+ monhost_ups_current = xmalloc(sizeof(struct monhost_ups));
-+ monhost_ups_anchor = monhost_ups_current;
-+ monhost_ups_current->next = NULL;
-+ monhost_ups_current->monhost = monhost;
-+ monhost_len=1;
-+ } else {
-+ fatalx(EXIT_FAILURE, "No UPS defined for monitoring - use -s <system>");
-+ }
-
-- if (!logfn)
-- fatalx(EXIT_FAILURE, "No filename defined for logging - use -l <file>");
-+ if (logfn)
-+ monhost_ups_current->logfn = logfn;
-+ else
-+ fatalx(EXIT_FAILURE, "No filename defined for logging - use -l <file>");
-+ }
-
- /* shouldn't happen */
- if (!logformat)
- fatalx(EXIT_FAILURE, "No format defined - but this should be impossible");
-
-- printf("logging status of %s to %s (%is intervals)\n",
-- monhost, logfn, interval);
-+ for (monhost_ups_current = monhost_ups_anchor;
-+ monhost_ups_current != NULL;
-+ monhost_ups_current = monhost_ups_current->next) {
-+ printf("logging status of %s to %s (%is intervals)\n",
-+ monhost_ups_current->monhost, monhost_ups_current->logfn, interval);
-+ if (upscli_splitname(monhost_ups_current->monhost, &(monhost_ups_current->upsname), &(monhost_ups_current->hostname), &(monhost_ups_current->port)) != 0) {
-+ fatalx(EXIT_FAILURE, "Error: invalid UPS definition. Required format: upsname[@hostname[:port]]\n");
-+ }
-
-- if (upscli_splitname(monhost, &upsname, &hostname, &port) != 0) {
-- fatalx(EXIT_FAILURE, "Error: invalid UPS definition. Required format: upsname[@hostname[:port]]\n");
-- }
-+ monhost_ups_current->ups = xmalloc(sizeof(UPSCONN_t));
-+ if (upscli_connect(monhost_ups_current->ups, monhost_ups_current->hostname, monhost_ups_current->port, UPSCLI_CONN_TRYSSL) < 0)
-+ fprintf(stderr, "Warning: initial connect failed: %s\n",
-+ upscli_strerror(monhost_ups_current->ups));
-
-- if (upscli_connect(&ups, hostname, port, UPSCLI_CONN_TRYSSL) < 0)
-- fprintf(stderr, "Warning: initial connect failed: %s\n",
-- upscli_strerror(&ups));
-+ if (strcmp(monhost_ups_current->logfn, "-") == 0)
-+ monhost_ups_current->logfile = stdout;
-+ else
-+ monhost_ups_current->logfile = fopen(monhost_ups_current->logfn, "a");
-
-- if (strcmp(logfn, "-") == 0)
-- logfile = stdout;
-- else
-- logfile = fopen(logfn, "a");
-+ if (monhost_ups_current->logfile == NULL)
-+ fatal_with_errno(EXIT_FAILURE, "could not open logfile %s", logfn);
-
-- if (logfile == NULL)
-- fatal_with_errno(EXIT_FAILURE, "could not open logfile %s", logfn);
-+ }
-
-+
- /* now drop root if we have it */
- new_uid = get_user_pwent(user);
-
- open_syslog(prog);
-
- if (foreground < 0) {
-- if (logfile == stdout) {
-+ if (monhost_ups_anchor->logfile == stdout) {
- foreground = 1;
- } else {
- foreground = 0;
-@@ -552,25 +620,35 @@
- reopen_flag = 0;
- }
-
-- /* reconnect if necessary */
-- if (upscli_fd(&ups) < 0) {
-- upscli_connect(&ups, hostname, port, 0);
-- }
-+ for (monhost_ups_current = monhost_ups_anchor;
-+ monhost_ups_current != NULL;
-+ monhost_ups_current = monhost_ups_current->next) {
-+ ups = monhost_ups_current->ups; /* XXX Not ideal */
-+ upsname = monhost_ups_current->upsname; /* XXX Not ideal */
-+ /* reconnect if necessary */
-+ if (upscli_fd(ups) < 0) {
-+ upscli_connect(ups, monhost_ups_current->hostname, monhost_ups_current->port, 0);
-+ }
-
-- run_flist();
-+ run_flist(monhost_ups_current);
-
-- /* don't keep connection open if we don't intend to use it shortly */
-- if (interval > 30) {
-- upscli_disconnect(&ups);
-+ /* don't keep connection open if we don't intend to use it shortly */
-+ if (interval > 30) {
-+ upscli_disconnect(ups);
-+ }
- }
- }
-
- upslogx(LOG_INFO, "Signal %d: exiting", exit_flag);
-+ for (monhost_ups_current = monhost_ups_anchor;
-+ monhost_ups_current != NULL;
-+ monhost_ups_current = monhost_ups_current->next) {
-
-- if (logfile != stdout)
-- fclose(logfile);
-+ if (monhost_ups_current->logfile != stdout)
-+ fclose(monhost_ups_current->logfile);
-
-- upscli_disconnect(&ups);
-+ upscli_disconnect(monhost_ups_current->ups);
-+ }
-
- exit(EXIT_SUCCESS);
- }
diff --git a/sysutils/nut-devel/files/patch-docs_man_upslog.txt b/sysutils/nut-devel/files/patch-docs_man_upslog.txt
deleted file mode 100644
index 9e139ccb6105..000000000000
--- a/sysutils/nut-devel/files/patch-docs_man_upslog.txt
+++ /dev/null
@@ -1,14 +0,0 @@
---- docs/man/upslog.txt.orig 2022-08-30 05:56:15.850373000 -0700
-+++ docs/man/upslog.txt 2022-08-30 06:01:45.955996000 -0700
-@@ -78,6 +78,11 @@
- Monitor this UPS. The format for this option is
- +upsname[@hostname[:port]]+. The default hostname is "localhost".
-
-+*-m* 'tuple'::
-+Monitor multiple UPSs. The format for this option is a tuple of
-+ups and logfile separated by commas. An example would be:
-+`upsname@hostname:9999,/var/log/nut/cps.log`
-+
- *-u* 'username'::
-
- If started as root, upslog will *setuid*(2) to the user id