Алексей e7e2957c80
libevent: Fix mingw32 build flags. Fix dll version (#24410)
* libevent: Fix mingw32 build flags. Fix dll version

* libevent rebuilds

---------

Co-authored-by: Christoph Reiter <reiter.christoph@gmail.com>
2025-05-30 13:52:23 +02:00

109 lines
3.8 KiB
Bash

# Maintainer: Alexey Pavlov <alexpux@gmail.com>
# Maintainer: Chilledheart <rwindz0@gmail.com>
_realname=libevent
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.1.12
pkgrel=11
pkgdesc="An event notification library (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url="https://libevent.org"
msys2_repository_url="https://github.com/libevent/libevent"
msys2_references=(
"cpe: cpe:/a:libevent_project:libevent"
"cpe: cpe:/a:niels_provos:libevent"
)
license=('spdx:BSD-3-Clause')
depends=("${MINGW_PACKAGE_PREFIX}-libwinpthread-git"
"${MINGW_PACKAGE_PREFIX}-openssl")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
"${MINGW_PACKAGE_PREFIX}-cmake"
"${MINGW_PACKAGE_PREFIX}-ninja")
optdepends=("${MINGW_PACKAGE_PREFIX}-python")
source=(https://github.com/${_realname}/${_realname}/releases/download/release-${pkgver}-stable/${_realname}-${pkgver}-stable.tar.gz
'001-event2-02-win32.patch'
'002-http-server-win32.patch'
'003-cmake-update.patch'
'004-time_t-compute.patch'
'005-limit-MSVC-to-clang-cl.patch::https://github.com/libevent/libevent/commit/236762a3.patch'
'006-fix-build-on-aarch64.patch'
'007-fix-dll-version.patch')
sha256sums=('92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb'
'e572ed628daba12915aaa5867b35ef1b0ca3ed3eb6e9759f97136dd8eab32c08'
'a587d4698b6fa2caba9e08388aba5f4ca6f4584a780c228df5b32e1260cf20c2'
'be138bacbe5e8e95b5c6d593cfc69c6f663046561dd67e334b429ccf9dd29bf1'
'e4c72c765ab33e3a606ba471496af41264909653863e0bef5017552db8c867fc'
'30d91d6370789720ae9dc5be6e9164a7bae46313c10c66b8f37dbd1ec1a258f1'
'249d6255e3f9a89fae149ed67e33e23e3fa10a9e2604a606c3855f5ea0e2dc20'
'111dab201d50a6929af68222f8545e9b34973c3eb4cc36f7065fc7f5f7ccb3df')
_apply_patch_with_msg() {
for _patch in "$@"
do
msg2 "Applying ${_patch}"
patch -p1 -i "${srcdir}/${_patch}"
done
}
prepare() {
cd "${srcdir}/${_realname}-${pkgver}-stable"
# to make transmission work, taken from:
# https://github.com/transmission/libevent/commit/72e50166aaa2c3b3c35e336039df7101bd418264
_apply_patch_with_msg \
001-event2-02-win32.patch
# https://github.com/libevent/libevent/pull/1575
_apply_patch_with_msg \
002-http-server-win32.patch
_apply_patch_with_msg \
003-cmake-update.patch \
004-time_t-compute.patch \
005-limit-MSVC-to-clang-cl.patch \
006-fix-build-on-aarch64.patch \
007-fix-dll-version.patch
}
build() {
mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}"
declare -a extra_config
if check_option "debug" "n"; then
extra_config+=("-DCMAKE_BUILD_TYPE=Release")
else
extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
fi
if [ "${CARCH}" = "i686" ]; then
# Need for 32-bit toolchain to have 64bit time
CFLAGS+=" -D__MINGW_USE_VC2005_COMPAT"
fi
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
"${MINGW_PREFIX}"/bin/cmake.exe \
-GNinja \
-DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \
-DCMAKE_DLL_NAME_WITH_SOVERSION=ON \
-DEVENT__DISABLE_BENCHMARK=ON \
-DEVENT__DISABLE_TESTS=ON \
-DEVENT__DISABLE_REGRESS=ON \
-DEVENT__DISABLE_SAMPLES=ON \
-DEVENT__DISABLE_MBEDTLS=ON \
"${extra_config[@]}" \
../${_realname}-${pkgver}-stable
"${MINGW_PREFIX}"/bin/cmake.exe --build .
}
package() {
cd "${srcdir}/build-${MSYSTEM}"
DESTDIR="${pkgdir}" "${MINGW_PREFIX}"/bin/cmake.exe --install .
install -d "$pkgdir${MINGW_PREFIX}"/share/licenses/${_realname}
install -Dm644 "${srcdir}"/${_realname}-${pkgver}-stable/LICENSE* -t "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}"
sed -s "s|$(cygpath -m ${MINGW_PREFIX})|${MINGW_PREFIX}|g" -i "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/${_realname}_openssl.pc"
}