[From nobody Thu Jun 25 05:54:40 2020
Received: from sonic305-22.consmr.mail.ne1.yahoo.com ([66.163.185.148])
 by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
 id 1fODB7-0005MB-RB
 for openwrt-devel@lists.openwrt.org; Thu, 31 May 2018 02:19:03 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048;
 t=1527733127; bh=M0V45FGL4P5PsWfFsRtMQZtVR3I2hHfNCXNanHHvJl8=;
 h=From:To:Cc:Subject:Date:In-Reply-To:References:In-Reply-To:References:From:Subject;
 b=F9xNrZgr+cWFHU3QtjZnT9mZbLvWW4ChQZXVxniPY4A902kA6dpa3p0RwngZo1Re2VA51cLFhGix8FiGANqHBbYKzF5nHwi6IPGtKNPvfpNEbyzQqHRl3FCFFGCl6AA8pTRY9yVUqYrMLYYXT8BirVHuzVZZArDlAWszaCVr50/uYNR2dXkDPMnJbBeeh+0fiHkGGEzQf8BEF9a3YCEOTS2zm/1vK85lnkGardz1xBUtKUVUjbQDyu3/CrciiwplDhA5TmYIg0aiN4ZBw3IioiwyYVBDIPboo58AhSxoKlLga9gWpwjs/7c0QkMhlHpg7F2VrCQg7DZBqJRZC7sApw==
X-YMail-OSG: Wzgw6KwVM1mMA8ZawuTNG668r9oIFgixxqoK2mIOb6sErnOq8SBXn22QYqUteSp
 tuuAyg9oe..SyWMvw497a9V89oNmAvXn8Y3qqfYU6kEADKjfRdDPSWtJ.cyu3HeqUmrcYJ1hUvcT
 nwGSsMpp_HtpvReM4Lc11RX0hY9KbnvY1Y7dQ..Ixj58Q0QBjiIOeJ.5R81NfT._c0PzFPWm9Pfj
 L_4fFYozEL1rpWXPLcftkp1PJqoy4YTbZfzXlbXqiGGRlVh51ZEWa1.UESzr20ZO3wvQjG.Ojr4b
 tV30dy3sZDY0QTpE7DanfNCilu.XX5rt7JHqewbPBRXHalxgNw_7i9tlaEJjnTL.4TcfJM9cTrG3
 8Y.qXDKOfGB4imv39BOZ.5cp1icffTBB6dAEGTf2LJeP6DrYoM4jJ5AkAEkAWNgpzelTdE7DXTNf
 Q4qNHnA_KFPinQO6CByXdOaZ5l.0odQ5eOAT4oUxyaKZtGxlJW7lk3vgsJuGlPP_uWQUDFGREbwC
 kQrbprV3xy03SBMEFiSrXWyrkYXuR9gnoRGdR9DqqvkFYFZbF_yZOy4qa6yOF5rqbcIG6d5VCQUj
 O_2mDDitA5c.jk.m0.l_bHw3XV7jA69ULGP5CbDyngZseOPegBDcTk4iuyoO4zmdmnN.yR2wiUbN
 wIlz3fHdFIAA_Ln9d_NnYfUXs.4ALspA-
Received: from sonic.gate.mail.ne1.yahoo.com by
 sonic305.consmr.mail.ne1.yahoo.com with HTTP; Thu, 31 May 2018 02:18:47 +0000
Received: from 18.175.75.177.infopasa.com.br (EHLO gateway.troianet.com.br)
 ([177.75.175.18])
 by smtp420.mail.ne1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID
 7a11000cd6f5ba63543f8a96f058275b; 
 Thu, 31 May 2018 02:18:45 +0000 (UTC)
From: Eneas U de Queiroz &lt;cote2004-github@yahoo.com&gt;
To: openwrt-devel@lists.openwrt.org
Cc: Eneas U de Queiroz &lt;cote2004-github@yahoo.com&gt;
Subject: [PATCH v2 2/4] libevent2: Make it build using OpenSSL 1.1.0
Date: Wed, 30 May 2018 23:18:35 -0300
Message-Id: &lt;20180531021837.22899-3-cote2004-github@yahoo.com&gt;
X-Mailer: git-send-email 2.16.1
In-Reply-To: &lt;20180531021837.22899-1-cote2004-github@yahoo.com&gt;
References: &lt;20180531021837.22899-1-cote2004-github@yahoo.com&gt;
In-Reply-To: &lt;20180522120215.13360-4-cote2004-github@yahoo.com&gt;
References: &lt;20180522120215.13360-4-cote2004-github@yahoo.com&gt;
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 
X-CRM114-CacheID: sfid-20180530_191901_941867_D9B24D59 
X-CRM114-Status: GOOD (  17.85  )
X-Spam-Score: 1.3 (+)
X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary:
 Content analysis details:   (1.3 points)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at http://www.dnswl.org/, no
 trust [66.163.185.148 listed in list.dnswl.org]
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 DKIM_ADSP_CUSTOM_MED   No valid author signature, adsp_override is
 CUSTOM_MED
 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider
 (cote2004-github[at]yahoo.com)
 0.1 DKIM_SIGNED            Message has a DKIM or DK signature,
 not necessarily valid
 0.0 T_DKIM_INVALID         DKIM-Signature header exists but is not valid
 1.2 NML_ADSP_CUSTOM_MED    ADSP custom_med hit, and not from a mailing list

This is a backport of @kroeckx patch that was merged in
libevent release-2.1.7-rc.  Also skip building samples and tests.

Signed-off-by: Eneas U de Queiroz &lt;cote2004-github@yahoo.com&gt;
---
 package/libs/libevent2/Makefile                    |   2 +-
 .../0001-Make-it-build-using-OpenSSL-1.1.0.patch   | 202 +++++++++++++++++++++
 ...Makefile.am-omit-building-sample-and-test.patch |  26 +++
 3 files changed, 229 insertions(+), 1 deletion(-)
 create mode 100644 package/libs/libevent2/patches/0001-Make-it-build-using-OpenSSL-1.1.0.patch
 create mode 100644 package/libs/libevent2/patches/0002-Makefile.am-omit-building-sample-and-test.patch

diff --git a/package/libs/libevent2/Makefile b/package/libs/libevent2/Makefile
index 5d56f37c51..a5b21fe492 100644
--- a/package/libs/libevent2/Makefile
+++ b/package/libs/libevent2/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libevent2
 PKG_VERSION:=2.0.22
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/libevent-$(PKG_VERSION)-stable
 PKG_SOURCE:=libevent-$(PKG_VERSION)-stable.tar.gz
diff --git a/package/libs/libevent2/patches/0001-Make-it-build-using-OpenSSL-1.1.0.patch b/package/libs/libevent2/patches/0001-Make-it-build-using-OpenSSL-1.1.0.patch
new file mode 100644
index 0000000000..fb9ad06eb6
--- /dev/null
+++ b/package/libs/libevent2/patches/0001-Make-it-build-using-OpenSSL-1.1.0.patch
@@ -0,0 +1,202 @@
+From 9982da6a9ed9156172bb09e18c54cd94e5ceb9a4 Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz &lt;cote2004-github@yahoo.com&gt;
+Date: Mon, 21 May 2018 10:23:52 -0300
+Subject: [PATCH] Make it build using OpenSSL 1.1.0
+
+This is a backport of @kroeckx patch that was merged in
+release-2.1.7-rc:
+
+    Rebased (azat):
+    - tabs instead of whitespaces
+    - make openssl-compat.h safe for complex expressions
+    - do not call sk_SSL_COMP_free() in 1.1 (fixes double free)
+
+Signed-off-by: Eneas U de Queiroz &lt;cote2004-github@yahoo.com&gt;
+---
+ bufferevent_openssl.c | 62 +++++++++++++++++++++++++--------------------------
+ openssl-compat.h      | 33 +++++++++++++++++++++++++++
+ 2 files changed, 63 insertions(+), 32 deletions(-)
+ create mode 100644 openssl-compat.h
+
+diff --git a/bufferevent_openssl.c b/bufferevent_openssl.c
+index 7582d9b4..5b177f0b 100644
+--- a/bufferevent_openssl.c
++++ b/bufferevent_openssl.c
+@@ -60,6 +60,7 @@
+ #include &lt;openssl/bio.h&gt;
+ #include &lt;openssl/ssl.h&gt;
+ #include &lt;openssl/err.h&gt;
++#include &quot;openssl-compat.h&quot;
+ 
+ /*
+  * Define an OpenSSL bio that targets a bufferevent.
+@@ -103,10 +104,8 @@ print_err(int val)
+ static int
+ bio_bufferevent_new(BIO *b)
+ {
+-	b-&gt;init = 0;
+-	b-&gt;num = -1;
+-	b-&gt;ptr = NULL; /* We'll be putting the bufferevent in this field.*/
+-	b-&gt;flags = 0;
++	BIO_set_init(b, 0);
++	BIO_set_data(b, NULL); /* We'll be putting the bufferevent in this field.*/
+ 	return 1;
+ }
+ 
+@@ -116,12 +115,10 @@ bio_bufferevent_free(BIO *b)
+ {
+ 	if (!b)
+ 		return 0;
+-	if (b-&gt;shutdown) {
+-		if (b-&gt;init &amp;&amp; b-&gt;ptr)
+-			bufferevent_free(b-&gt;ptr);
+-		b-&gt;init = 0;
+-		b-&gt;flags = 0;
+-		b-&gt;ptr = NULL;
++	if (BIO_get_shutdown(b)) {
++		if (BIO_get_init(b) &amp;&amp; BIO_get_data(b))
++			bufferevent_free(BIO_get_data(b));
++		BIO_free(b);
+ 	}
+ 	return 1;
+ }
+@@ -137,10 +134,10 @@ bio_bufferevent_read(BIO *b, char *out, int outlen)
+ 
+ 	if (!out)
+ 		return 0;
+-	if (!b-&gt;ptr)
++	if (!BIO_get_data(b))
+ 		return -1;
+ 
+-	input = bufferevent_get_input(b-&gt;ptr);
++	input = bufferevent_get_input(BIO_get_data(b));
+ 	if (evbuffer_get_length(input) == 0) {
+ 		/* If there's no data to read, say so. */
+ 		BIO_set_retry_read(b);
+@@ -156,13 +153,13 @@ bio_bufferevent_read(BIO *b, char *out, int outlen)
+ static int
+ bio_bufferevent_write(BIO *b, const char *in, int inlen)
+ {
+-	struct bufferevent *bufev = b-&gt;ptr;
++	struct bufferevent *bufev = BIO_get_data(b);
+ 	struct evbuffer *output;
+ 	size_t outlen;
+ 
+ 	BIO_clear_retry_flags(b);
+ 
+-	if (!b-&gt;ptr)
++	if (!BIO_get_data(b))
+ 		return -1;
+ 
+ 	output = bufferevent_get_output(bufev);
+@@ -188,15 +185,15 @@ bio_bufferevent_write(BIO *b, const char *in, int inlen)
+ static long
+ bio_bufferevent_ctrl(BIO *b, int cmd, long num, void *ptr)
+ {
+-	struct bufferevent *bufev = b-&gt;ptr;
++	struct bufferevent *bufev = BIO_get_data(b);
+ 	long ret = 1;
+ 
+ 	switch (cmd) {
+ 	case BIO_CTRL_GET_CLOSE:
+-		ret = b-&gt;shutdown;
++		ret = BIO_get_shutdown(b);
+ 		break;
+ 	case BIO_CTRL_SET_CLOSE:
+-		b-&gt;shutdown = (int)num;
++		BIO_set_shutdown(b, (int)num);
+ 		break;
+ 	case BIO_CTRL_PENDING:
+ 		ret = evbuffer_get_length(bufferevent_get_input(bufev)) != 0;
+@@ -225,23 +222,24 @@ bio_bufferevent_puts(BIO *b, const char *s)
+ }
+ 
+ /* Method table for the bufferevent BIO */
+-static BIO_METHOD methods_bufferevent = {
+-	BIO_TYPE_LIBEVENT, &quot;bufferevent&quot;,
+-	bio_bufferevent_write,
+-	bio_bufferevent_read,
+-	bio_bufferevent_puts,
+-	NULL /* bio_bufferevent_gets */,
+-	bio_bufferevent_ctrl,
+-	bio_bufferevent_new,
+-	bio_bufferevent_free,
+-	NULL /* callback_ctrl */,
+-};
++static BIO_METHOD *methods_bufferevent;
+ 
+ /* Return the method table for the bufferevents BIO */
+ static BIO_METHOD *
+ BIO_s_bufferevent(void)
+ {
+-	return &amp;methods_bufferevent;
++	if (methods_bufferevent == NULL) {
++		methods_bufferevent = BIO_meth_new(BIO_TYPE_LIBEVENT, &quot;bufferevent&quot;);
++		if (methods_bufferevent == NULL)
++			return NULL;
++		BIO_meth_set_write(methods_bufferevent, bio_bufferevent_write);
++		BIO_meth_set_read(methods_bufferevent, bio_bufferevent_read);
++		BIO_meth_set_puts(methods_bufferevent, bio_bufferevent_puts);
++		BIO_meth_set_ctrl(methods_bufferevent, bio_bufferevent_ctrl);
++		BIO_meth_set_create(methods_bufferevent, bio_bufferevent_new);
++		BIO_meth_set_destroy(methods_bufferevent, bio_bufferevent_free);
++	}
++	return methods_bufferevent;
+ }
+ 
+ /* Create a new BIO to wrap communication around a bufferevent.  If close_flag
+@@ -254,9 +252,9 @@ BIO_new_bufferevent(struct bufferevent *bufferevent, int close_flag)
+ 		return NULL;
+ 	if (!(result = BIO_new(BIO_s_bufferevent())))
+ 		return NULL;
+-	result-&gt;init = 1;
+-	result-&gt;ptr = bufferevent;
+-	result-&gt;shutdown = close_flag ? 1 : 0;
++	BIO_set_init(result, 1);
++	BIO_set_data(result, bufferevent);
++	BIO_set_shutdown(result, close_flag ? 1 : 0);
+ 	return result;
+ }
+ 
+diff --git a/openssl-compat.h b/openssl-compat.h
+new file mode 100644
+index 00000000..628f5661
+--- /dev/null
++++ b/openssl-compat.h
+@@ -0,0 +1,33 @@
++#ifndef OPENSSL_COMPAT_H
++#define OPENSSL_COMPAT_H
++
++#if OPENSSL_VERSION_NUMBER &lt; 0x10100000L
++
++static BIO_METHOD *BIO_meth_new(int type, const char *name)
++{
++	BIO_METHOD *biom = calloc(1, sizeof(BIO_METHOD));
++
++	if (biom != NULL) {
++		biom-&gt;type = type;
++		biom-&gt;name = name;
++	}
++	return biom;
++}
++
++#define BIO_meth_set_write(b, f) (b)-&gt;bwrite = (f)
++#define BIO_meth_set_read(b, f) (b)-&gt;bread = (f)
++#define BIO_meth_set_puts(b, f) (b)-&gt;bputs = (f)
++#define BIO_meth_set_ctrl(b, f) (b)-&gt;ctrl = (f)
++#define BIO_meth_set_create(b, f) (b)-&gt;create = (f)
++#define BIO_meth_set_destroy(b, f) (b)-&gt;destroy = (f)
++
++#define BIO_set_init(b, val) (b)-&gt;init = (val)
++#define BIO_set_data(b, val) (b)-&gt;ptr = (val)
++#define BIO_set_shutdown(b, val) (b)-&gt;shutdown = (val)
++#define BIO_get_init(b) (b)-&gt;init
++#define BIO_get_data(b) (b)-&gt;ptr
++#define BIO_get_shutdown(b) (b)-&gt;shutdown
++
++#endif /* OPENSSL_VERSION_NUMBER &lt; 0x10100000L */
++
++#endif /* OPENSSL_COMPAT_H */
+-- 
+2.16.1
+
diff --git a/package/libs/libevent2/patches/0002-Makefile.am-omit-building-sample-and-test.patch b/package/libs/libevent2/patches/0002-Makefile.am-omit-building-sample-and-test.patch
new file mode 100644
index 0000000000..06ae4b6f68
--- /dev/null
+++ b/package/libs/libevent2/patches/0002-Makefile.am-omit-building-sample-and-test.patch
@@ -0,0 +1,26 @@
+From 4d9d73b718e0938c21e3fea09e90b3e0645bdc81 Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz &lt;cote2004-github@yahoo.com&gt;
+Date: Fri, 25 May 2018 11:59:48 -0300
+Subject: [PATCH] Makefile.am: omit building sample and test
+
+Signed-off-by: Eneas U de Queiroz &lt;cote2004-github@yahoo.com&gt;
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 75e376dc..00ffa6ba 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -127,7 +127,7 @@ else
+ noinst_LTLIBRARIES =  $(LIBEVENT_LIBS_LA)
+ endif
+ 
+-SUBDIRS = . include sample test
++SUBDIRS = . include
+ 
+ if BUILD_WIN32
+ 
+-- 
+2.16.1
+
-- 
2.16.1


]