NetBSD Problem Report #56757
From www@netbsd.org Wed Mar 16 21:12:06 2022
Return-Path: <www@netbsd.org>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
by mollari.NetBSD.org (Postfix) with ESMTPS id 62AF31A921F
for <gnats-bugs@gnats.NetBSD.org>; Wed, 16 Mar 2022 21:12:06 +0000 (UTC)
Message-Id: <20220316211204.AA7A91A9239@mollari.NetBSD.org>
Date: Wed, 16 Mar 2022 21:12:04 +0000 (UTC)
From: pekdon@gmail.com
Reply-To: pekdon@gmail.com
To: gnats-bugs@NetBSD.org
Subject: net/nagios-plugin-dnsrbl fails to build on Solarish
X-Send-Pr-Version: www-1.0
>Number: 56757
>Category: pkg
>Synopsis: net/nagios-plugin-dnsrbl fails to build on Solarish
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Mar 16 21:15:00 +0000 2022
>Originator: Claes Nästén
>Release: trunk 2022-03-13
>Organization:
>Environment:
SunOS 5.10 sun4v sparc SUNW,SPARC-Enterprise-T2000
>Description:
net/nagios-plugins-dnsrbl fails to build on Solarish, for me on Solaris 10 but is also failing on SmartOS bulktracker.
gcc -pipe -fno-aggressive-loop-optimizations -pipe -fno-aggressive-loop-optimizations -D_FORTIFY_SOURCE=2 -c check_dnsrbl.c
check_dnsrbl.c:113:15: error: 'MAXHOSTNAMELEN' undeclared here (not in a function); did you mean 'MAXLINKNAMELEN'?
113 | char al_addr[MAXHOSTNAMELEN + 1];
| ^~~~~~~~~~~~~~
| MAXLINKNAMELEN
check_dnsrbl.c: In function 'load_dnsrbl':
check_dnsrbl.c:339:19: warning: implicit declaration of function 'fgetln'; did you mean 'fgets'? [-Wimplicit-function-declaration]
339 | for (lcount = 0; fgetln(f, &len) != NULL; lcount++);
| ^~~~~~
| fgets
check_dnsrbl.c:339:35: warning: comparison between pointer and integer
339 | for (lcount = 0; fgetln(f, &len) != NULL; lcount++);
| ^~
check_dnsrbl.c:354:13: warning: assignment to 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
354 | if ((line = fgetln(f, &len)) == NULL)
| ^
*** [check_dnsrbl.o] Error code 1
>How-To-Repeat:
Build net/nagios-plugins-dnsrbl on Solarish.
>Fix:
diff --git a/net/nagios-plugin-dnsrbl/Makefile b/net/nagios-plugin-dnsrbl/Makefile
index 4cf96e87c74..7aed5ea8961 100644
--- a/net/nagios-plugin-dnsrbl/Makefile
+++ b/net/nagios-plugin-dnsrbl/Makefile
@@ -12,6 +12,8 @@ HOMEPAGE= https://ftp.espci.fr/pub/nagios-local/
COMMENT= DNSRBL monitoring plugin for Nagios
LICENSE= modified-bsd
+LDFLAGS.SunOS+= -lsocket -lnsl -lresolv
+
INSTALLATION_DIRS+= libexec/nagios
do-install:
diff --git a/net/nagios-plugin-dnsrbl/patches/patch-Makefile b/net/nagios-plugin-dnsrbl/patches/patch-Makefile
new file mode 100644
index 00000000000..cdd6ea4fbc4
--- /dev/null
+++ b/net/nagios-plugin-dnsrbl/patches/patch-Makefile
@@ -0,0 +1,17 @@
+$NetBSD$
+
+--- Makefile.orig 2022-03-16 20:36:15.681345846 +0000
++++ Makefile
+@@ -1,10 +1,10 @@
+ CFLAGS?=-O2
+-LIBS?= -lpthread
++LDFLAGS?=-lpthread
+
+ all: check_dnsrbl
+
+ check_dnsrbl: check_dnsrbl.o
+- $(CC) $(LIBS) -o check_dnsrbl check_dnsrbl.o
++ $(CC) $(LDFLAGS) -o check_dnsrbl check_dnsrbl.o
+
+ clean:
+ rm -f *.o *.core check_dnsrbl
diff --git a/net/nagios-plugin-dnsrbl/patches/patch-check__dnsrbl.c b/net/nagios-plugin-dnsrbl/patches/patch-check__dnsrbl.c
new file mode 100644
index 00000000000..ae053363b9f
--- /dev/null
+++ b/net/nagios-plugin-dnsrbl/patches/patch-check__dnsrbl.c
@@ -0,0 +1,54 @@
+$NetBSD$
+
+Portability fixes, fallback MAXHOSTNAMELEN define and use getline instead of
+fgetln.
+
+--- check_dnsrbl.c.orig 2022-03-16 20:27:43.357213335 +0000
++++ check_dnsrbl.c
+@@ -57,6 +57,10 @@
+ #define STATE_UNKNOWN 3
+ #endif
+
++#ifndef MAXHOSTNAMELEN
++#define MAXHOSTNAMELEN 256
++#endif
++
+ #define DEFAULT_TIMEOUT 120
+
+ struct dnsrbl {
+@@ -328,15 +332,15 @@ load_dnsrbl(file)
+ char *file;
+ {
+ FILE *f;
+- char *line;
+- size_t len;
++ char *line = NULL;
++ size_t len = 0;
+ int lcount;
+ struct dnsrbl *d;
+
+ if ((f = fopen(file, "r")) == NULL)
+ panic("cannot open dnsrbl file");
+
+- for (lcount = 0; fgetln(f, &len) != NULL; lcount++);
++ for (lcount = 0; getline(&line, &len, f) != -1; lcount++);
+
+ if (verbose)
+ printf("dnsrbl file \"%s\" has %d lines\n", file, lcount);
+@@ -351,7 +355,7 @@ load_dnsrbl(file)
+
+ while(lcount-- > 0) {
+ const char *s = " \t\n";
+- if ((line = fgetln(f, &len)) == NULL)
++ if (getline(&line, &len, f) == -1)
+ panic( "unexpected empty line in dnsrbl");
+
+ if ((d[lcount].d_domain = strdup(strtok(line, s))) == NULL)
+@@ -365,6 +369,7 @@ load_dnsrbl(file)
+ file, d[lcount].d_domain, d[lcount].d_positive);
+ }
+
++ free(line);
+ (void)fclose(f);
+
+ return d;
(Contact us)
$NetBSD: query-full-pr,v 1.46 2020/01/03 16:35:01 leot Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2020
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.