Sun Mar 17 15:45:44 2019 UTC ()
Pullup ticket #5924 - requested by bouyer
sysutils/syslog-ng: NetBSD bugfix

Revisions pulled up:
- sysutils/syslog-ng/Makefile                                   1.34
- sysutils/syslog-ng/distinfo                                   1.16
- sysutils/syslog-ng/patches/patch-lib_signal-handler.c         1.1

---
   Module Name:	pkgsrc
   Committed By:	bouyer
   Date:		Fri Mar 15 10:04:00 UTC 2019

   Modified Files:
   	pkgsrc/sysutils/syslog-ng: Makefile distinfo
   Added Files:
   	pkgsrc/sysutils/syslog-ng/patches: patch-lib_signal-handler.c

   Log Message:
   syslog-ng overloads sigaction() with its own version, and calls the libc
   sigaction() with a dlsym call. On NetBSD this ends up calling the compatibility
   sigaction() which fails with ENOSYS if COMPAT_13 is not in the kernel.
   Even with COMPAT_13 it would be incorrect because we call the compat
   sigaction() with the non-compat arguments.

   On NetBSD, fix this by calling explicitely __libc_sigaction14().
   Bump PKGREVISION


(bsiegert)
diff -r1.33 -r1.33.8.1 pkgsrc/sysutils/syslog-ng/Makefile
diff -r1.15 -r1.15.4.1 pkgsrc/sysutils/syslog-ng/distinfo
diff -r0 -r1.1.2.2 pkgsrc/sysutils/syslog-ng/patches/patch-lib_signal-handler.c

cvs diff -r1.33 -r1.33.8.1 pkgsrc/sysutils/syslog-ng/Makefile (expand / switch to unified diff)

--- pkgsrc/sysutils/syslog-ng/Makefile 2018/02/28 13:26:08 1.33
+++ pkgsrc/sysutils/syslog-ng/Makefile 2019/03/17 15:45:44 1.33.8.1
@@ -1,17 +1,19 @@ @@ -1,17 +1,19 @@
1# $NetBSD: Makefile,v 1.33 2018/02/28 13:26:08 fhajny Exp $ 1# $NetBSD: Makefile,v 1.33.8.1 2019/03/17 15:45:44 bsiegert Exp $
2 2
3.include "../../sysutils/syslog-ng/Makefile.common" 3.include "../../sysutils/syslog-ng/Makefile.common"
4 4
 5PKGREVISION= 1
 6
5CONFIGURE_ARGS+= --enable-ssl 7CONFIGURE_ARGS+= --enable-ssl
6CONFIGURE_ARGS+= --enable-stomp 8CONFIGURE_ARGS+= --enable-stomp
7CONFIGURE_ARGS+= --enable-tcp-wrapper 9CONFIGURE_ARGS+= --enable-tcp-wrapper
8CONFIGURE_ARGS+= --with-jsonc=system 10CONFIGURE_ARGS+= --with-jsonc=system
9 11
10CONFIGURE_ARGS.SunOS+= --enable-dynamic-linking 12CONFIGURE_ARGS.SunOS+= --enable-dynamic-linking
11CONFIGURE_ARGS.SunOS+= --enable-sun-streams 13CONFIGURE_ARGS.SunOS+= --enable-sun-streams
12CPPFLAGS.SunOS+= -D_XOPEN_SOURCE=600 -D__EXTENSIONS__ 14CPPFLAGS.SunOS+= -D_XOPEN_SOURCE=600 -D__EXTENSIONS__
13 15
14.include "options.mk" 16.include "options.mk"
15 17
16BUILD_DEFS+= VARBASE 18BUILD_DEFS+= VARBASE
17 19

cvs diff -r1.15 -r1.15.4.1 pkgsrc/sysutils/syslog-ng/distinfo (expand / switch to unified diff)

--- pkgsrc/sysutils/syslog-ng/distinfo 2018/08/15 13:08:21 1.15
+++ pkgsrc/sysutils/syslog-ng/distinfo 2019/03/17 15:45:44 1.15.4.1
@@ -1,9 +1,10 @@ @@ -1,9 +1,10 @@
1$NetBSD: distinfo,v 1.15 2018/08/15 13:08:21 fhajny Exp $ 1$NetBSD: distinfo,v 1.15.4.1 2019/03/17 15:45:44 bsiegert Exp $
2 2
3SHA1 (syslog-ng-3.17.2.tar.gz) = 75d7881d2cf258017c3b98fd37ceb3322c1855ad 3SHA1 (syslog-ng-3.17.2.tar.gz) = 75d7881d2cf258017c3b98fd37ceb3322c1855ad
4RMD160 (syslog-ng-3.17.2.tar.gz) = 6464dd3fd20662e69e3056d090bcce470be90e93 4RMD160 (syslog-ng-3.17.2.tar.gz) = 6464dd3fd20662e69e3056d090bcce470be90e93
5SHA512 (syslog-ng-3.17.2.tar.gz) = 2b82ea047bab125d35ab0a90e933b8a282852c6b4a9a8adc3f2a0ddf392f24210ce1296d0cfb389f98e54e50090a3ded5a64c5a9529d2a90cbecbfafd620edd7 5SHA512 (syslog-ng-3.17.2.tar.gz) = 2b82ea047bab125d35ab0a90e933b8a282852c6b4a9a8adc3f2a0ddf392f24210ce1296d0cfb389f98e54e50090a3ded5a64c5a9529d2a90cbecbfafd620edd7
6Size (syslog-ng-3.17.2.tar.gz) = 9119227 bytes 6Size (syslog-ng-3.17.2.tar.gz) = 9119227 bytes
7SHA1 (patch-ac) = 7d48f689b6ff69c68697baf729fba8be9aec5ce8 7SHA1 (patch-ac) = 7d48f689b6ff69c68697baf729fba8be9aec5ce8
8SHA1 (patch-configure) = 2d8ef2285de44de016f44e51be47cd4c1178dfdb 8SHA1 (patch-configure) = 2d8ef2285de44de016f44e51be47cd4c1178dfdb
 9SHA1 (patch-lib_signal-handler.c) = dd59ad8dba34139da6233aa65ded757f3268ac5c
9SHA1 (patch-modules_system-source_system-source.c) = 14c2bb4b6681766da1330b43965da9547cf73b12 10SHA1 (patch-modules_system-source_system-source.c) = 14c2bb4b6681766da1330b43965da9547cf73b12

File Added: pkgsrc/sysutils/syslog-ng/patches/Attic/patch-lib_signal-handler.c
$NetBSD: patch-lib_signal-handler.c,v 1.1.2.2 2019/03/17 15:45:44 bsiegert Exp $
sigaction() is the old, compat syscall. On NetBSD call the up to date one.

--- lib/signal-handler.c.orig	2019-03-15 09:25:35.669181384 +0100
+++ lib/signal-handler.c	2019-03-15 09:29:02.023178726 +0100
@@ -45,6 +45,9 @@
 static int
 call_original_sigaction(int signum, const struct sigaction *act, struct sigaction *oldact)
 {
+#ifdef __NetBSD__
+  __libc_sigaction14(signum, act, oldact);
+#else
   static int (*real_sa)(int, const struct sigaction *, struct sigaction *);
 
   if (real_sa == NULL)
@@ -52,6 +55,7 @@
       real_sa = dlsym(RTLD_NEXT, "sigaction");
     }
   return real_sa(signum, act, oldact);
+#endif
 }
 
 static gboolean