summaryrefslogtreecommitdiff
path: root/devel/libevent2
diff options
context:
space:
mode:
Diffstat (limited to 'devel/libevent2')
-rw-r--r--devel/libevent2/Makefile32
-rw-r--r--devel/libevent2/distinfo5
-rw-r--r--devel/libevent2/files/patch-gcc783
-rw-r--r--devel/libevent2/files/patch-libressl86
-rw-r--r--devel/libevent2/files/patch-test_bench75
-rw-r--r--devel/libevent2/files/patch-test_test.sh32
-rw-r--r--devel/libevent2/pkg-plist23
7 files changed, 300 insertions, 36 deletions
diff --git a/devel/libevent2/Makefile b/devel/libevent2/Makefile
index d5429d4e33d7..9dd4f8104165 100644
--- a/devel/libevent2/Makefile
+++ b/devel/libevent2/Makefile
@@ -1,12 +1,12 @@
# Created by: Martin Matuska <mm@FreeBSD.org>
# $FreeBSD$
-PORTNAME= libevent2
-PORTVERSION= 2.0.22
+PORTNAME= libevent
+PORTVERSION= 2.1.8
DISTVERSIONPREFIX= release-
DISTVERSIONSUFFIX= -stable
-PORTREVISION= 1
CATEGORIES= devel
+PKGNAMESUFFIX= 2
MAINTAINER= mm@FreeBSD.org
COMMENT= API for executing callback functions on events or timeouts
@@ -14,38 +14,22 @@ COMMENT= API for executing callback functions on events or timeouts
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
+USES= autoreconf libtool pathfix
USE_GITHUB= yes
-GH_ACCOUNT= ${GH_PROJECT}
-GH_PROJECT= ${PORTNAME:S/2$//}
-
GNU_CONFIGURE= yes
-USES= autoreconf libtool pathfix
+INSTALL_TARGET= install-strip
+TEST_TARGET= check
USE_LDCONFIG= yes
OPTIONS_DEFINE= OPENSSL THREADS
OPTIONS_DEFAULT= OPENSSL THREADS
OPTIONS_SUB= yes
-INSTALL_TARGET= install-strip
-OPENSSL_USE= openssl=yes
+OPENSSL_USES= ssl
OPENSSL_CPPFLAGS= -I${OPENSSLINC}
OPENSSL_LDFLAGS= -L${OPENSSLLIB}
OPENSSL_CONFIGURE_ENABLE= openssl
THREADS_CONFIGURE_ENABLE= thread-support
-post-patch:
- ${ECHO_CMD} 'AC_CONFIG_MACRO_DIR([m4])' >>${WRKSRC}/configure.in
-# error: using '$(top_srcdir)' in TESTS is currently broken
- ${REINPLACE_CMD} 's/^TESTS.*top_srcdir/#&/' ${WRKSRC}/test/Makefile.am
-
-regression-test: build
- @(${SH} ${WRKSRC}/test/regress)
-
-.include <bsd.port.pre.mk>
-
-.if ${PORT_OPTIONS:MOPENSSL} && ${SSL_DEFAULT:Mopenssl-devel}
-BROKEN= Does not build with openssl-devel
-.endif
-
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/devel/libevent2/distinfo b/devel/libevent2/distinfo
index 284df4ef8f82..6dbdcef463b3 100644
--- a/devel/libevent2/distinfo
+++ b/devel/libevent2/distinfo
@@ -1,2 +1,3 @@
-SHA256 (libevent-libevent-release-2.0.22-stable_GH0.tar.gz) = ab89639b0819befb1d8b293d52047c6955f8d1c9150c2b22a0e6247930eb9128
-SIZE (libevent-libevent-release-2.0.22-stable_GH0.tar.gz) = 512657
+TIMESTAMP = 1485387435
+SHA256 (libevent-libevent-release-2.1.8-stable_GH0.tar.gz) = 316ddb401745ac5d222d7c529ef1eada12f58f6376a66c1118eee803cb70f83d
+SIZE (libevent-libevent-release-2.1.8-stable_GH0.tar.gz) = 700896
diff --git a/devel/libevent2/files/patch-gcc7 b/devel/libevent2/files/patch-gcc7
new file mode 100644
index 000000000000..d072a5a559b8
--- /dev/null
+++ b/devel/libevent2/files/patch-gcc7
@@ -0,0 +1,83 @@
+Fix -Werror=implicit-fallthrough (fixes gcc-7)
+
+https://github.com/libevent/libevent/commit/94e7dcebc320
+https://github.com/libevent/libevent/commit/ffbce578c40a
+
+--- bufferevent_filter.c.orig 2017-01-25 23:37:15 UTC
++++ bufferevent_filter.c
+@@ -612,9 +612,12 @@ be_filter_ctrl(struct bufferevent *bev,
+ bevf->underlying->be_ops->ctrl) {
+ return (bevf->underlying->be_ops->ctrl)(bevf->underlying, op, data);
+ }
++ EVUTIL_FALLTHROUGH;
+
+ case BEV_CTRL_GET_FD:
++ EVUTIL_FALLTHROUGH;
+ case BEV_CTRL_CANCEL_ALL:
++ EVUTIL_FALLTHROUGH;
+ default:
+ return -1;
+ }
+--- evdns.c.orig 2017-01-25 23:37:15 UTC
++++ evdns.c
+@@ -2265,10 +2265,11 @@ evdns_request_transmit(struct request *r
+ nameserver_write_waiting(req->ns, 1);
+ return 1;
+ case 2:
+- /* failed to transmit the request entirely. */
++ /* failed to transmit the request entirely. we can fallthrough since
++ * we'll set a timeout, which will time out, and make us retransmit the
++ * request anyway. */
+ retcode = 1;
+- /* fall through: we'll set a timeout, which will time out,
+- * and make us retransmit the request anyway. */
++ EVUTIL_FALLTHROUGH;
+ default:
+ /* all ok */
+ log(EVDNS_LOG_DEBUG,
+--- event.c.orig 2017-01-25 23:37:15 UTC
++++ event.c
+@@ -2960,6 +2960,7 @@ event_callback_activate_nolock_(struct e
+ switch (evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER)) {
+ default:
+ EVUTIL_ASSERT(0);
++ EVUTIL_FALLTHROUGH;
+ case EVLIST_ACTIVE_LATER:
+ event_queue_remove_active_later(base, evcb);
+ r = 0;
+--- util-internal.h.orig 2017-01-25 23:37:15 UTC
++++ util-internal.h
+@@ -50,6 +50,20 @@
+ extern "C" {
+ #endif
+
++/* __has_attribute() wrapper */
++#ifdef __has_attribute
++#define EVUTIL_HAS_ATTRIBUTE __has_attribute
++#endif
++/** clang 3 __has_attribute misbehaves in some versions */
++#if defined(__clang__) && \
++ __clang__ == 1 && __clang_major__ == 3 && \
++ (__clang_minor__ >= 2 && __clang_minor__ <= 5)
++#undef EVUTIL_HAS_ATTRIBUTE
++#endif
++#ifndef EVUTIL_HAS_ATTRIBUTE
++#define EVUTIL_HAS_ATTRIBUTE(x) 0
++#endif
++
+ /* If we need magic to say "inline", get it for free internally. */
+ #ifdef EVENT__inline
+ #define inline EVENT__inline
+@@ -308,6 +322,12 @@ ev_int32_t evutil_weakrand_range_(struct
+ #define EVUTIL_UNLIKELY(p) (p)
+ #endif
+
++#if EVUTIL_HAS_ATTRIBUTE(fallthrough)
++#define EVUTIL_FALLTHROUGH __attribute__((fallthrough))
++#else
++#define EVUTIL_FALLTHROUGH /* fallthrough */
++#endif
++
+ /* Replacement for assert() that calls event_errx on failure. */
+ #ifdef NDEBUG
+ #define EVUTIL_ASSERT(cond) EVUTIL_NIL_CONDITION_(cond)
diff --git a/devel/libevent2/files/patch-libressl b/devel/libevent2/files/patch-libressl
new file mode 100644
index 000000000000..ff68c83343c9
--- /dev/null
+++ b/devel/libevent2/files/patch-libressl
@@ -0,0 +1,86 @@
+LibreSSL uses a synthetic version in order to force consumers to check
+individual features instead but API isn't compatible with OpenSSL 1.1.x.
+
+https://github.com/libevent/libevent/commit/d057c45e8f48
+
+--- openssl-compat.h.orig 2017-01-25 23:37:15 UTC
++++ openssl-compat.h
+@@ -1,7 +1,7 @@
+ #ifndef OPENSSL_COMPAT_H
+ #define OPENSSL_COMPAT_H
+
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)
+
+ static inline BIO_METHOD *BIO_meth_new(int type, const char *name)
+ {
+@@ -30,6 +30,6 @@ static inline BIO_METHOD *BIO_meth_new(i
+
+ #define TLS_method SSLv23_method
+
+-#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */
++#endif /* (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER) */
+
+ #endif /* OPENSSL_COMPAT_H */
+--- sample/https-client.c.orig 2017-01-25 23:37:15 UTC
++++ sample/https-client.c
+@@ -312,7 +312,7 @@ main(int argc, char **argv)
+ }
+ uri[sizeof(uri) - 1] = '\0';
+
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)
+ // Initialize OpenSSL
+ SSL_library_init();
+ ERR_load_crypto_strings();
+@@ -480,7 +480,7 @@ cleanup:
+ SSL_CTX_free(ssl_ctx);
+ if (type == HTTP && ssl)
+ SSL_free(ssl);
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)
+ EVP_cleanup();
+ ERR_free_strings();
+
+@@ -492,7 +492,7 @@ cleanup:
+ CRYPTO_cleanup_all_ex_data();
+
+ sk_SSL_COMP_free(SSL_COMP_get_compression_methods());
+-#endif /*OPENSSL_VERSION_NUMBER < 0x10100000L */
++#endif /* (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER) */
+
+ #ifdef _WIN32
+ WSACleanup();
+--- sample/le-proxy.c.orig 2017-01-25 23:37:15 UTC
++++ sample/le-proxy.c
+@@ -259,7 +259,7 @@ main(int argc, char **argv)
+
+ if (use_ssl) {
+ int r;
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)
+ SSL_library_init();
+ ERR_load_crypto_strings();
+ SSL_load_error_strings();
+--- sample/openssl_hostname_validation.c.orig 2017-01-25 23:37:15 UTC
++++ sample/openssl_hostname_validation.c
+@@ -48,7 +48,7 @@ SOFTWARE.
+
+ #define HOSTNAME_MAX_SIZE 255
+
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)
+ #define ASN1_STRING_get0_data ASN1_STRING_data
+ #endif
+
+--- test/regress_ssl.c.orig 2017-01-25 23:37:15 UTC
++++ test/regress_ssl.c
+@@ -186,7 +186,7 @@ get_ssl_ctx(void)
+ void
+ init_ssl(void)
+ {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)
+ SSL_library_init();
+ ERR_load_crypto_strings();
+ SSL_load_error_strings();
diff --git a/devel/libevent2/files/patch-test_bench b/devel/libevent2/files/patch-test_bench
new file mode 100644
index 000000000000..0972c1c8512d
--- /dev/null
+++ b/devel/libevent2/files/patch-test_bench
@@ -0,0 +1,75 @@
+Fix feature conditionals in bench tests.
+
+https://github.com/libevent/libevent/commit/d9118c8daa0e
+https://github.com/libevent/libevent/commit/77ec05e50dfe
+
+--- configure.ac.orig 2017-01-25 23:37:15 UTC
++++ configure.ac
+@@ -715,8 +715,7 @@ AC_CHECK_MEMBERS([struct in6_addr.s6_add
+ #endif
+ ])
+
+-AC_CHECK_TYPES([struct so_linger],
+-[#define HAVE_SO_LINGER], ,
++AC_CHECK_TYPES([struct linger],,,
+ [
+ #ifdef HAVE_SYS_SOCKET_H
+ #include <sys/socket.h>
+--- test/bench.c.orig 2017-01-25 23:37:15 UTC
++++ test/bench.c
+@@ -136,7 +136,7 @@ run_once(void)
+ int
+ main(int argc, char **argv)
+ {
+-#ifdef HAVE_SETRLIMIT
++#ifdef EVENT__HAVE_SETRLIMIT
+ struct rlimit rl;
+ #endif
+ int i, c;
+@@ -167,7 +167,7 @@ main(int argc, char **argv)
+ }
+ }
+
+-#ifdef HAVE_SETRLIMIT
++#ifdef EVENT__HAVE_SETRLIMIT
+ rl.rlim_cur = rl.rlim_max = num_pipes * 2 + 50;
+ if (setrlimit(RLIMIT_NOFILE, &rl) == -1) {
+ perror("setrlimit");
+--- test/bench_cascade.c.orig 2017-01-25 23:37:15 UTC
++++ test/bench_cascade.c
+@@ -139,7 +139,7 @@ run_once(int num_pipes)
+ int
+ main(int argc, char **argv)
+ {
+-#ifdef HAVE_SETRLIMIT
++#ifdef EVENT__HAVE_SETRLIMIT
+ struct rlimit rl;
+ #endif
+ int i, c;
+@@ -162,7 +162,7 @@ main(int argc, char **argv)
+ }
+ }
+
+-#ifdef HAVE_SETRLIMIT
++#ifdef EVENT__HAVE_SETRLIMIT
+ rl.rlim_cur = rl.rlim_max = num_pipes * 2 + 50;
+ if (setrlimit(RLIMIT_NOFILE, &rl) == -1) {
+ perror("setrlimit");
+--- test/bench_httpclient.c.orig 2017-01-25 23:37:15 UTC
++++ test/bench_httpclient.c
+@@ -113,13 +113,13 @@ errorcb(struct bufferevent *b, short wha
+ static void
+ frob_socket(evutil_socket_t sock)
+ {
+-#ifdef HAVE_SO_LINGER
++#ifdef EVENT__HAVE_STRUCT_LINGER
+ struct linger l;
+ #endif
+ int one = 1;
+ if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void*)&one, sizeof(one))<0)
+ perror("setsockopt(SO_REUSEADDR)");
+-#ifdef HAVE_SO_LINGER
++#ifdef EVENT__HAVE_STRUCT_LINGER
+ l.l_onoff = 1;
+ l.l_linger = 0;
+ if (setsockopt(sock, SOL_SOCKET, SO_LINGER, (void*)&l, sizeof(l))<0)
diff --git a/devel/libevent2/files/patch-test_test.sh b/devel/libevent2/files/patch-test_test.sh
new file mode 100644
index 000000000000..ef1eed633ea5
--- /dev/null
+++ b/devel/libevent2/files/patch-test_test.sh
@@ -0,0 +1,32 @@
+regress runs multiple tests, don't silence it completely.
+
+https://github.com/libevent/libevent/pull/446
+
+--- test/test.sh.orig 2017-01-25 23:37:15 UTC
++++ test/test.sh
+@@ -99,10 +99,10 @@ run_tests () {
+ fi
+
+ test -x $TEST_DIR/regress || return
+- announce_n " regress: "
++ announce " regress: [multiple tests]"
+ if test "$TEST_OUTPUT_FILE" = "/dev/null" ;
+ then
+- $TEST_DIR/regress --quiet $REGRESS_ARGS
++ $TEST_DIR/regress $REGRESS_ARGS
+ else
+ $TEST_DIR/regress $REGRESS_ARGS >>"$TEST_OUTPUT_FILE"
+ fi
+@@ -114,10 +114,10 @@ run_tests () {
+ FAILED=yes
+ fi
+
+- announce_n " regress_debug: "
++ announce " regress_debug: [multiple tests]"
+ if test "$TEST_OUTPUT_FILE" = "/dev/null" ;
+ then
+- EVENT_DEBUG_MODE=1 $TEST_DIR/regress --quiet $REGRESS_ARGS
++ EVENT_DEBUG_MODE=1 $TEST_DIR/regress $REGRESS_ARGS
+ else
+ EVENT_DEBUG_MODE=1 $TEST_DIR/regress $REGRESS_ARGS >>"$TEST_OUTPUT_FILE"
+ fi
diff --git a/devel/libevent2/pkg-plist b/devel/libevent2/pkg-plist
index 938f45964eb0..77ca43225dde 100644
--- a/devel/libevent2/pkg-plist
+++ b/devel/libevent2/pkg-plist
@@ -26,29 +26,32 @@ include/event2/tag.h
include/event2/tag_compat.h
include/event2/thread.h
include/event2/util.h
+include/event2/visibility.h
include/evhttp.h
include/evrpc.h
include/evutil.h
-lib/libevent-2.0.so.5
-lib/libevent-2.0.so.5.1.10
+lib/libevent-2.1.so.6
+lib/libevent-2.1.so.6.0.2
lib/libevent.a
lib/libevent.so
-lib/libevent_core-2.0.so.5
-lib/libevent_core-2.0.so.5.1.10
+lib/libevent_core-2.1.so.6
+lib/libevent_core-2.1.so.6.0.2
lib/libevent_core.a
lib/libevent_core.so
-lib/libevent_extra-2.0.so.5
-lib/libevent_extra-2.0.so.5.1.10
+lib/libevent_extra-2.1.so.6
+lib/libevent_extra-2.1.so.6.0.2
lib/libevent_extra.a
lib/libevent_extra.so
-%%OPENSSL%%lib/libevent_openssl-2.0.so.5
-%%OPENSSL%%lib/libevent_openssl-2.0.so.5.1.10
+%%OPENSSL%%lib/libevent_openssl-2.1.so.6
+%%OPENSSL%%lib/libevent_openssl-2.1.so.6.0.2
%%OPENSSL%%lib/libevent_openssl.a
%%OPENSSL%%lib/libevent_openssl.so
-%%THREADS%%lib/libevent_pthreads-2.0.so.5
-%%THREADS%%lib/libevent_pthreads-2.0.so.5.1.10
+%%THREADS%%lib/libevent_pthreads-2.1.so.6
+%%THREADS%%lib/libevent_pthreads-2.1.so.6.0.2
%%THREADS%%lib/libevent_pthreads.a
%%THREADS%%lib/libevent_pthreads.so
libdata/pkgconfig/libevent.pc
+libdata/pkgconfig/libevent_core.pc
+libdata/pkgconfig/libevent_extra.pc
%%OPENSSL%%libdata/pkgconfig/libevent_openssl.pc
%%THREADS%%libdata/pkgconfig/libevent_pthreads.pc