Browse Source

libevent2: Update to 2.1.11

Update libevent to 2.1.11
Use CMake instead GNU Autotools
Backport following commits:
https://github.com/libevent/libevent/commit/f05ba671931e2b4e38459899f6f63f79f99869fe
..and partially
https://github.com/libevent/libevent/commit/7201062f3ef505a77baa6ccaf1cf73812462308a
to fix compilation

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
(cherry picked from commit f351beedfd47766e5e44a04af50e3724bec54dbc)
(resolves FS#2435)
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
Daniel Engberg 9 months ago
parent
commit
7d10b4c0ef

+ 24 - 19
package/libs/libevent2/Makefile

@@ -8,30 +8,31 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libevent2
-PKG_VERSION:=2.1.8
-PKG_RELEASE:=3
+PKG_VERSION:=2.1.11
+PKG_RELEASE:=1
 
 PKG_SOURCE:=libevent-$(PKG_VERSION)-stable.tar.gz
 PKG_SOURCE_URL:=https://github.com/libevent/libevent/releases/download/release-$(PKG_VERSION)-stable
-PKG_HASH:=965cc5a8bb46ce4199a47e9b2c9e1cae3b137e8356ffdad6d94d3b9069b71dc2
+PKG_HASH:=a65bac6202ea8c5609fd5c7e480e6d25de467ea1917c08290c521752f147283d
 PKG_BUILD_DIR:=$(BUILD_DIR)/libevent-$(PKG_VERSION)-stable
 
 PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
 PKG_LICENSE:=BSD-3-Clause
 PKG_CPE_ID:=cpe:/a:libevent_project:libevent
 
-PKG_FIXUP:=autoreconf
-PKG_INSTALL:=1
-PKG_BUILD_PARALLEL:=1
+PKG_CONFIG_DEPENDS:= \
+	CONFIG_PACKAGE_libevent2-openssl \
+	CONFIG_PACKAGE_libevent2-mbedtls
 
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libevent2/Default
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE:=Event notification
   URL:=http://libevent.org
-  ABI_VERSION:=6
+  ABI_VERSION:=7
 endef
 
 define Package/libevent2/Default/description
@@ -73,6 +74,7 @@ endef
 define Package/libevent2-extra
   $(call Package/libevent2/Default)
   TITLE+= extra library (version 2.1)
+  DEPENDS+=+libevent2-core
 endef
 
 define Package/libevent2-extra/description
@@ -85,7 +87,7 @@ endef
 define Package/libevent2-openssl
   $(call Package/libevent2/Default)
   TITLE+= OpenSSL library (version 2.1)
-  DEPENDS+=+libopenssl
+  DEPENDS+=+libopenssl +libevent2-core
 endef
 
 define Package/libevent2-openssl/description
@@ -98,7 +100,7 @@ endef
 define Package/libevent2-pthreads
   $(call Package/libevent2/Default)
   TITLE+= Pthreads library (version 2.1)
-  DEPENDS+=+libpthread
+  DEPENDS+=+libpthread +libevent2-core
 endef
 
 define Package/libevent2-pthreads/description
@@ -108,22 +110,25 @@ define Package/libevent2-pthreads/description
 	threading & locking.
 endef
 
-TARGET_CFLAGS += $(FPIC)
+TARGET_CFLAGS += $(FPIC) -ffunction-sections -fdata-sections -flto
+TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed -flto
 
-CONFIGURE_ARGS += \
-	--enable-shared \
-	--enable-static \
-	--disable-debug-mode
-
-MAKE_FLAGS += \
-	CFLAGS="$(TARGET_CFLAGS)"
+CMAKE_OPTIONS += \
+	-DEVENT__DISABLE_BENCHMARK:BOOL=ON \
+	-DEVENT__DISABLE_DEBUG_MODE:BOOL=ON \
+	-DEVENT__DISABLE_REGRESS:BOOL=ON \
+	-DEVENT__DISABLE_SAMPLES:BOOL=ON \
+	$(if $(CONFIG_PACKAGE_libevent2-openssl),-DEVENT__DISABLE_OPENSSL:BOOL=OFF,-DEVENT__DISABLE_OPENSSL:BOOL=ON) \
+	$(if $(CONFIG_PACKAGE_libevent2-pthreads),-DEVENT__DISABLE_THREAD_SUPPORT:BOOL=OFF,-DEVENT__DISABLE_THREAD_SUPPORT:BOOL=ON) \
+	-DEVENT__DISABLE_TESTS:BOOL=ON \
+	-DBUILD_TESTING:BOOL=OFF
 
 define Build/InstallDev
 	$(INSTALL_DIR) $(1)/usr/include
 	$(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
 	$(INSTALL_DIR) $(1)/usr/lib
-	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libevent*.{la,a,so} $(1)/usr/lib/
-	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libevent*-2.1.so* $(1)/usr/lib/
+	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libevent*.{a,so}* $(1)/usr/lib/
+	$(CP) $(PKG_INSTALL_DIR)/usr/lib/cmake $(1)/usr/lib/
 	$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
 	$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libevent*.pc $(1)/usr/lib/pkgconfig/
 endef

+ 45 - 0
package/libs/libevent2/patches/0001-Add-missing-file-Uninstall.cmake.in.patch

@@ -0,0 +1,45 @@
+From 9c2d9d2c8f65d7c6bb268c0e9795bac296661ca8 Mon Sep 17 00:00:00 2001
+From: Daniel Engberg <daniel.engberg.lists@pyret.net>
+Date: Wed, 7 Aug 2019 00:56:39 +0200
+Subject: [PATCH] Add missing file Uninstall.cmake.in
+
+Needed to fix compilation
+
+Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
+---
+ cmake/Uninstall.cmake.in | 23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+ create mode 100644 cmake/Uninstall.cmake.in
+
+diff --git a/cmake/Uninstall.cmake.in b/cmake/Uninstall.cmake.in
+new file mode 100644
+index 0000000..c6dc09e
+--- /dev/null
++++ b/cmake/Uninstall.cmake.in
+@@ -0,0 +1,23 @@
++# https://gitlab.kitware.com/cmake/community/wikis/FAQ#can-i-do-make-uninstall-with-cmake
++
++if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
++  message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt")
++endif(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
++
++file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files)
++string(REGEX REPLACE "\n" ";" files "${files}")
++foreach(file ${files})
++  message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
++  if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
++    exec_program(
++      "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
++      OUTPUT_VARIABLE rm_out
++      RETURN_VALUE rm_retval
++      )
++    if(NOT "${rm_retval}" STREQUAL 0)
++      message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
++    endif(NOT "${rm_retval}" STREQUAL 0)
++  else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
++    message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
++  endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
++endforeach(file)
+-- 
+2.22.0
+

+ 0 - 49
package/libs/libevent2/patches/0001-Do-not-check-for-ERR_remove_thread_state-do-not-link.patch

@@ -1,49 +0,0 @@
-From f519e0f30a00393b949c4e20868952726a9c6d2e Mon Sep 17 00:00:00 2001
-From: Pierce Lopez <pierce.lopez@gmail.com>
-Date: Thu, 2 Mar 2017 21:09:32 -0500
-Subject: [PATCH] Do not check for ERR_remove_thread_state() (do not link ssl
- into every library)
-
-This reverts commit c4e9d9bd662de7f575f2172c160795d452ebe709
-("sample/https-client: check for ERR_remove_thread_state() existence").
-
-Calling AC_SEARCH_LIBS() modifies LIBS - -lcrypto incorrectly
-ends up in LIBS, and thus linked to by libevent_core.so.
-
-Checking for ERR_remove_thread_state should no longer be needed
-because it was introduced in openssl 1.0.0, and the previous line
-0.9.8 had support discontinued at the end of 2015.
-
-Fixes: #473
----
- configure.ac          | 4 ----
- sample/https-client.c | 4 ----
- 2 files changed, 8 deletions(-)
-
---- a/configure.ac
-+++ b/configure.ac
-@@ -791,10 +791,6 @@ fi
- 
- # check if we have and should use openssl
- AM_CONDITIONAL(OPENSSL, [test "$enable_openssl" != "no" && test "$have_openssl" = "yes"])
--if test "x$enable_openssl" = "xyes"; then
--	AC_SEARCH_LIBS([ERR_remove_thread_state], [crypto eay32],
--		[AC_DEFINE(HAVE_ERR_REMOVE_THREAD_STATE, 1, [Define to 1 if you have ERR_remove_thread_stat().])])
--fi
- 
- # Add some more warnings which we use in development but not in the
- # released versions.  (Some relevant gcc versions can't handle these.)
---- a/sample/https-client.c
-+++ b/sample/https-client.c
-@@ -484,11 +484,7 @@ cleanup:
- 	EVP_cleanup();
- 	ERR_free_strings();
- 
--#ifdef EVENT__HAVE_ERR_REMOVE_THREAD_STATE
- 	ERR_remove_thread_state(NULL);
--#else
--	ERR_remove_state(0);
--#endif
- 	CRYPTO_cleanup_all_ex_data();
- 
- 	sk_SSL_COMP_free(SSL_COMP_get_compression_methods());

+ 25 - 0
package/libs/libevent2/patches/0002-Add-Uninstall.cmake.in-into-dist-archive.patch

@@ -0,0 +1,25 @@
+From f05ba671931e2b4e38459899f6f63f79f99869fe Mon Sep 17 00:00:00 2001
+From: Azat Khuzhin <a3at.mail@gmail.com>
+Date: Sat, 3 Aug 2019 14:32:21 +0300
+Subject: [PATCH] Add Uninstall.cmake.in into dist archive
+
+Fixes: #863
+---
+ Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile.am b/Makefile.am
+index af75a963..92f9433c 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -127,6 +127,7 @@ CMAKE_FILES = \
+ 	cmake/LibeventConfig.cmake.in \
+ 	cmake/LibeventConfigVersion.cmake.in \
+ 	cmake/VersionViaGit.cmake \
++	cmake/Uninstall.cmake.in \
+ 	event-config.h.cmake \
+ 	evconfig-private.h.cmake \
+ 	CMakeLists.txt
+-- 
+2.22.0
+

+ 0 - 13
package/libs/libevent2/patches/0002-Makefile.am-omit-building-sample-and-test.patch

@@ -1,13 +0,0 @@
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -143,8 +143,8 @@ CLEANFILES=
- DISTCLEANFILES=
- BUILT_SOURCES =
- include include/include.am
--include sample/include.am
--include test/include.am
-+#include sample/include.am
-+#include test/include.am
- 
- if BUILD_WIN32
-