summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbsiegert <bsiegert@pkgsrc.org>2017-02-15 19:39:10 +0000
committerbsiegert <bsiegert@pkgsrc.org>2017-02-15 19:39:10 +0000
commitea5ea60ab15e541857cf2fa3ea3e747e00462cb8 (patch)
treecfd714941cf947d94759544da0500a93c0c003d8
parent04b2a97881e2b28eb62042a1c62538ac919c1ad5 (diff)
downloadpkgsrc-ea5ea60ab15e541857cf2fa3ea3e747e00462cb8.tar.gz
Pullup ticket #5212 - requested by he
comms/conserver8: bugfix Revisions pulled up: - comms/conserver8/Makefile 1.22-1.24 - comms/conserver8/distinfo 1.11 - comms/conserver8/options.mk 1.5 - comms/conserver8/patches/patch-aa 1.3 - comms/conserver8/patches/patch-ab 1.2 - comms/conserver8/patches/patch-conserver_access.c 1.1 - comms/conserver8/patches/patch-conserver_consent.c 1.1 --- Module Name: pkgsrc Committed By: he Date: Wed Jan 18 09:54:51 UTC 2017 Modified Files: pkgsrc/comms/conserver8: Makefile distinfo pkgsrc/comms/conserver8/patches: patch-aa patch-ab Added Files: pkgsrc/comms/conserver8/patches: patch-conserver_access.c patch-conserver_consent.c Log Message: Add two patches so that this at least semi-works when the inet6 option is used: * Use correct sockaddr length when doing getnameinfo() for inet6, so we avoid an early return with "permanent failure" from getnameinfo() * Use temp variables for walking the address lists so that we avoid trying freeaddrinfo(NULL) and getting SEGV This still isn't fully baked and backward compatible: with the inet6 option turned on, on NetBSD the conserver process only opens an inet6 server socket and no longer serves an inet socket (a Linuxism, I suspect), making it troublesome to interoperate with older versions of conserver or installations on hosts without IPv6 connectivity. PKGREVISION bumped. --- Module Name: pkgsrc Committed By: he Date: Fri Feb 10 10:35:06 UTC 2017 Modified Files: pkgsrc/comms/conserver8: Makefile options.mk Log Message: Don't enable the inet6 option on the various BSDs, since their stack require separate inet6 and inet sockets, and conserver as of 8.2.1 doesn't do that. Bump PKGREVISION. --- Module Name: pkgsrc Committed By: he Date: Fri Feb 10 10:38:42 UTC 2017 Modified Files: pkgsrc/comms/conserver8: Makefile Log Message: Um, need bsd.prefs.mk before testing ${OPSYS}.
-rw-r--r--comms/conserver8/Makefile11
-rw-r--r--comms/conserver8/distinfo8
-rw-r--r--comms/conserver8/options.mk10
-rw-r--r--comms/conserver8/patches/patch-aa4
-rw-r--r--comms/conserver8/patches/patch-ab4
-rw-r--r--comms/conserver8/patches/patch-conserver_access.c14
-rw-r--r--comms/conserver8/patches/patch-conserver_consent.c72
7 files changed, 111 insertions, 12 deletions
diff --git a/comms/conserver8/Makefile b/comms/conserver8/Makefile
index 612398f9772..2a84bf63802 100644
--- a/comms/conserver8/Makefile
+++ b/comms/conserver8/Makefile
@@ -1,14 +1,14 @@
-# $NetBSD: Makefile,v 1.21 2016/06/20 15:25:39 schnoebe Exp $
+# $NetBSD: Makefile,v 1.21.6.1 2017/02/15 19:39:10 bsiegert Exp $
#
PKGVER= 8.2.1
-PKGREVISION= 2
+PKGREVISION= 4
DISTNAME= conserver-${PKGVER}
PKGNAME= conserver8-${PKGVER}
CATEGORIES= comms
MASTER_SITES= http://www.conserver.com/
-MAINTAINER= pkgsrc-users@netbsd.org
+MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://www.conserver.com/
COMMENT= Application that allows multiple users to watch serial consoles
#LICENSE= # modified-bsd and more (see LICENSE file)
@@ -25,10 +25,11 @@ CONFIGURE_ARGS+= --with-port=${CONSERVER_DEFAULTPORT:Q}
CONFIGURE_ARGS+= --with-libwrap=${BUILDLINK_PREFIX.tcp_wrappers}
CONFIGURE_ARGS+= --with-logfile=${VARBASE:Q}/log/conserver
-.include "options.mk"
-
BUILD_DEFS+= CONSERVER_DEFAULTPORT CONSERVER_DEFAULTHOST VARBASE
+.include "../../mk/bsd.prefs.mk"
+.include "options.mk"
+
RCD_SCRIPTS= conserver8
TEST_TARGET= test
diff --git a/comms/conserver8/distinfo b/comms/conserver8/distinfo
index 823fd5cef57..f70e1627480 100644
--- a/comms/conserver8/distinfo
+++ b/comms/conserver8/distinfo
@@ -1,9 +1,11 @@
-$NetBSD: distinfo,v 1.10 2016/03/13 18:31:11 schnoebe Exp $
+$NetBSD: distinfo,v 1.10.8.1 2017/02/15 19:39:10 bsiegert Exp $
SHA1 (conserver-8.2.1.tar.gz) = 357eea46c0189280b0ab66776b01ce3ba02f1847
RMD160 (conserver-8.2.1.tar.gz) = 39f08facffc9b462c8257fa21c24785eb1e2bb5a
SHA512 (conserver-8.2.1.tar.gz) = caf519b8295fc142cf1cb5b141854aede07b3613653f417e9c3ebee75b30a12fa785c248806758f60afbc155cc048418635d514a9848e0fa06992f1e4f930fb6
Size (conserver-8.2.1.tar.gz) = 335241 bytes
-SHA1 (patch-aa) = d0eebea0d126c611f6f60035730a0c2f97280b01
-SHA1 (patch-ab) = 7a507e428277cc6ccf14b961c44d4e6fd3abcde3
+SHA1 (patch-aa) = e7dea78d62c4e879c0741b0c9992811410737178
+SHA1 (patch-ab) = ec5b849cad7662a3e14a834d63840a306e89bdf2
+SHA1 (patch-conserver_access.c) = a7956022bbdbbf2dc97ee474e8815d48d6adfadd
+SHA1 (patch-conserver_consent.c) = aa868cdacfe8a8e294ba8dcf74e2460ddf34ef3a
SHA1 (patch-conserver_readcfg.c) = c39e1d50829658cb77e4c943e631da4b3cdd31ee
diff --git a/comms/conserver8/options.mk b/comms/conserver8/options.mk
index 1a8400b4dad..cfa256bef2e 100644
--- a/comms/conserver8/options.mk
+++ b/comms/conserver8/options.mk
@@ -1,4 +1,4 @@
-# $NetBSD: options.mk,v 1.4 2016/06/20 15:25:39 schnoebe Exp $
+# $NetBSD: options.mk,v 1.4.6.1 2017/02/15 19:39:10 bsiegert Exp $
PKG_OPTIONS_VAR= PKG_OPTIONS.conserver8
@@ -7,7 +7,13 @@ PKG_OPTIONS_GROUP.connectivity=inet6 uds
PKG_SUPPORTED_OPTIONS= pam ssl
-PKG_SUGGESTED_OPTIONS= ssl inet6
+PKG_SUGGESTED_OPTIONS= ssl
+
+# The BSDs require separate inet6 & inet sockets,
+# and conserver8 doesn't have code to do that as of 8.2.1
+.if ${OPSYS} != "NetBSD" && ${OPSYS} != "FreeBSD" && ${OPSYS} != "OpenBSD" && ${OPSYS} != "DragonFly"
+PKG_SUGGESTED_OPTIONS+= inet6
+.endif
.include "../../mk/bsd.options.mk"
diff --git a/comms/conserver8/patches/patch-aa b/comms/conserver8/patches/patch-aa
index 20cc8aba19d..d8f99846be9 100644
--- a/comms/conserver8/patches/patch-aa
+++ b/comms/conserver8/patches/patch-aa
@@ -1,4 +1,6 @@
-$NetBSD: patch-aa,v 1.2 2006/05/11 21:42:43 seb Exp $
+$NetBSD: patch-aa,v 1.2.90.1 2017/02/15 19:39:10 bsiegert Exp $
+
+Reduce verbosity.
--- conserver/main.c.orig 2006-04-03 09:32:08.000000000 -0400
+++ conserver/main.c 2006-05-07 22:24:26.000000000 -0400
diff --git a/comms/conserver8/patches/patch-ab b/comms/conserver8/patches/patch-ab
index 2a249b2151f..c4ab59bba9f 100644
--- a/comms/conserver8/patches/patch-ab
+++ b/comms/conserver8/patches/patch-ab
@@ -1,4 +1,6 @@
-$NetBSD: patch-ab,v 1.1 2005/08/12 14:39:06 he Exp $
+$NetBSD: patch-ab,v 1.1.96.1 2017/02/15 19:39:10 bsiegert Exp $
+
+Document that escape sequence converts to "telnet break" when using telnet.
--- conserver.cf/conserver.cf.man.orig 2004-11-06 01:20:30.000000000 +0100
+++ conserver.cf/conserver.cf.man
diff --git a/comms/conserver8/patches/patch-conserver_access.c b/comms/conserver8/patches/patch-conserver_access.c
new file mode 100644
index 00000000000..d137ad5be3a
--- /dev/null
+++ b/comms/conserver8/patches/patch-conserver_access.c
@@ -0,0 +1,14 @@
+$NetBSD: patch-conserver_access.c,v 1.1.2.2 2017/02/15 19:39:10 bsiegert Exp $
+
+Make sure to use correct sockaddr length when doing getnameinfo().
+
+--- conserver/access.c.orig 2017-01-18 09:20:03.000000000 +0000
++++ conserver/access.c
+@@ -150,6 +150,7 @@ AccType(INADDR_STYPE *addr, char **peern
+ so = sizeof(*addr);
+
+ #if USE_IPV6
++ so = sizeof(struct sockaddr_in6);
+ error =
+ getnameinfo((struct sockaddr *)addr, so, ipaddr, sizeof(ipaddr),
+ NULL, 0, NI_NUMERICHOST);
diff --git a/comms/conserver8/patches/patch-conserver_consent.c b/comms/conserver8/patches/patch-conserver_consent.c
new file mode 100644
index 00000000000..572ef9c77b9
--- /dev/null
+++ b/comms/conserver8/patches/patch-conserver_consent.c
@@ -0,0 +1,72 @@
+$NetBSD: patch-conserver_consent.c,v 1.1.2.2 2017/02/15 19:39:10 bsiegert Exp $
+
+Print strerror() on failure.
+Use scratch variables for walking address info list, so that
+we don't end up trying to freeaddrinfo(NULL).
+
+--- conserver/consent.c.orig 2015-06-02 17:17:45.000000000 +0000
++++ conserver/consent.c
+@@ -919,13 +919,16 @@ ConsInit(CONSENT *pCE)
+ rp->ai_addrlen)) == 0)
+ goto success;
+ fail:
++ error = errno;
+ close(cofile);
++ } else {
++ error = errno;
+ }
+ rp = rp->ai_next;
+ }
+
+- Error("[%s]: Unable to connect to %s:%s", pCE->server,
+- host, serv);
++ Error("[%s]: Unable to connect to %s:%s %s", pCE->server,
++ host, serv, strerror(error));
+ ConsDown(pCE, FLAGTRUE, FLAGTRUE);
+ return;
+ success:
+@@ -1252,7 +1255,7 @@ AddrsMatch(char *addr1, char *addr2)
+ {
+ #if USE_IPV6
+ int error, ret = 0;
+- struct addrinfo *ai1, *ai2, hints;
++ struct addrinfo *ai1, *aip1, *ai2, *aip2, hints;
+ #else
+ /* so, since we might use inet_addr, we're going to use
+ * (in_addr_t)(-1) as a sign of an invalid ip address.
+@@ -1290,17 +1293,17 @@ AddrsMatch(char *addr1, char *addr2)
+ goto done;
+ }
+
+- for (; ai1 != NULL; ai1 = ai1->ai_next) {
+- for (; ai2 != NULL; ai2 = ai2->ai_next) {
+- if (ai1->ai_addr->sa_family != ai2->ai_addr->sa_family)
++ for (aip1 = ai1; aip1 != NULL; aip1 = aip1->ai_next) {
++ for (aip2 = ai2; aip2 != NULL; aip2 = aip2->ai_next) {
++ if (aip1->ai_addr->sa_family != aip2->ai_addr->sa_family)
+ continue;
+
+ if (
+ # if HAVE_MEMCMP
+- memcmp(&ai1->ai_addr, &ai2->ai_addr,
++ memcmp(&aip1->ai_addr, &aip2->ai_addr,
+ sizeof(struct sockaddr_storage))
+ # else
+- bcmp(&ai1->ai_addr, &ai2->ai_addr,
++ bcmp(&aip1->ai_addr, &aip2->ai_addr,
+ sizeof(struct sockaddr_storage))
+ # endif
+ == 0) {
+@@ -1311,8 +1314,10 @@ AddrsMatch(char *addr1, char *addr2)
+ }
+
+ done:
+- freeaddrinfo(ai1);
+- freeaddrinfo(ai2);
++ if (ai1)
++ freeaddrinfo(ai1);
++ if (ai2)
++ freeaddrinfo(ai2);
+ Msg("compare %s and %s returns %d", addr1, addr2, ret);
+ return ret;
+ #else