summaryrefslogtreecommitdiff
path: root/devel/libevent2/files
diff options
context:
space:
mode:
Diffstat (limited to 'devel/libevent2/files')
-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
4 files changed, 276 insertions, 0 deletions
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