From cb1c436a1089b7f51def3600d8cde83ccefa682b Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Sun, 7 Jun 2020 03:07:39 +0000
Subject: libevent: update 2.1.11

---
 ...d-from-the-event-loop-during-event_reinit.patch | 31 +++++++++++++++++++
 abs/core/libevent/PKGBUILD                         | 36 ++++++++++++++--------
 2 files changed, 54 insertions(+), 13 deletions(-)
 create mode 100644 abs/core/libevent/0001-Warn-if-forked-from-the-event-loop-during-event_reinit.patch

diff --git a/abs/core/libevent/0001-Warn-if-forked-from-the-event-loop-during-event_reinit.patch b/abs/core/libevent/0001-Warn-if-forked-from-the-event-loop-during-event_reinit.patch
new file mode 100644
index 0000000..41eeda0
--- /dev/null
+++ b/abs/core/libevent/0001-Warn-if-forked-from-the-event-loop-during-event_reinit.patch
@@ -0,0 +1,31 @@
+From 497ef904d544ac51de43934549dbeccce8e6e8f8 Mon Sep 17 00:00:00 2001
+From: Azat Khuzhin <azat@libevent.org>
+Date: Mon, 1 Jul 2019 23:54:02 +0300
+Subject: [PATCH] Warn if forked from the event loop during event_reinit()
+
+Calling fork() from the event loop is not a great idea, since at least
+it shares some internal pipes (for handling signals) before
+event_reinit() call
+
+Closes: #833
+---
+ event.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/event.c b/event.c
+index fa4f2802e..aa6c6fba3 100644
+--- a/event.c
++++ b/event.c
+@@ -1003,6 +1003,12 @@ event_reinit(struct event_base *base)
+ 
+ 	EVBASE_ACQUIRE_LOCK(base, th_base_lock);
+ 
++	if (base->running_loop) {
++		event_warnx("%s: forked from the event_loop.", __func__);
++		res = -1;
++		goto done;
++	}
++
+ 	evsel = base->evsel;
+ 
+ 	/* check if this event mechanism requires reinit on the backend */
diff --git a/abs/core/libevent/PKGBUILD b/abs/core/libevent/PKGBUILD
index c7251c5..96e8793 100644
--- a/abs/core/libevent/PKGBUILD
+++ b/abs/core/libevent/PKGBUILD
@@ -1,36 +1,46 @@
-# $Id$
 # Maintainer: Tom Gundersen <teg@jklm.no>
 # Contributor: Judd <jvinet@zeroflux.org>
 
 pkgname=libevent
-pkgver=2.1.8
-pkgrel=1
+pkgver=2.1.11
+pkgrel=5
 pkgdesc="An event notification library"
 arch=('x86_64')
-url="http://libevent.org/"
+url="https://libevent.org/"
 license=('BSD')
 depends=('openssl')
-optdepends=('python2: to use event_rpcgen.py')
-source=(https://github.com/libevent/libevent/releases/download/release-$pkgver-stable/$pkgname-$pkgver-stable.tar.gz{,.asc})
-sha256sums=('965cc5a8bb46ce4199a47e9b2c9e1cae3b137e8356ffdad6d94d3b9069b71dc2'
-            'SKIP')
+makedepends=('cmake' 'python')
+optdepends=('python: to use event_rpcgen.py')
+source=(https://github.com/libevent/libevent/releases/download/release-$pkgver-stable/$pkgname-$pkgver-stable.tar.gz{,.asc}
+        https://raw.githubusercontent.com/libevent/libevent/release-2.1.11-stable/cmake/Uninstall.cmake.in
+        0001-Warn-if-forked-from-the-event-loop-during-event_reinit.patch)
+sha256sums=('a65bac6202ea8c5609fd5c7e480e6d25de467ea1917c08290c521752f147283d'
+            'SKIP'
+            '1584d6e36642d930ac99d014a485fe886ec705b3f998d128c6d6f227e0454b72'
+            '436e56c74c0af0b70c43eaae6bd32b760601d2d5fa98b8d2d026ffad18474e13')
 validpgpkeys=('B35BF85BF19489D04E28C33C21194EBB165733EA'
               '9E3AC83A27974B84D1B3401DB86086848EF8686D')
 
+prepare() {
+  cd ${pkgname}-${pkgver}-stable
+  patch -Np1 -R < ../0001-Warn-if-forked-from-the-event-loop-during-event_reinit.patch
+
+  cp -n ../Uninstall.cmake.in cmake # https://github.com/libevent/libevent/issues/914 
+}
+
 build() {
   cd ${pkgname}-${pkgver}-stable
-  ./autogen.sh
-  ./configure --prefix=/usr --sysconfdir=/etc --disable-libevent-regress
-  make
+  cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DEVENT__LIBRARY_TYPE=SHARED -S . -B build
+  cmake --build build
 }
 
 check() {
   cd ${pkgname}-${pkgver}-stable
-  make -j1 check
+  cmake --build build --target test
 }
 
 package() {
   cd ${pkgname}-${pkgver}-stable
-  make DESTDIR="${pkgdir}" install
+  cmake --build build --target install -- DESTDIR="$pkgdir"
   install -Dm 644 LICENSE "${pkgdir}"/usr/share/licenses/libevent/LICENSE
 }
-- 
cgit v0.12

