Name libevent
Description Event notification library
Version 2.1.12-5
Package Base libevent
Homepage https://libevent.org/
Maintainers ['David Runge <dvzrv@archlinux.org>']
Contributors ['Judd <jvinet@zeroflux.org>', 'Tom Gundersen <teg@jklm.no>']
Distro-repo https://gitlab.archlinux.org/archlinux/packaging/packages/libevent
Sources ['EVENT__SIZEOF_TIME_T.patch', 'https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz', 'https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz.asc', 'libevent-2.1.12-openssl-compat.patch']
Dependencies ['glibc', 'openssl']
Optional-Dependencies ['python']
Build-Dependencies ['cmake', 'doxygen', 'ninja', 'openssl', 'python']
Provides ['libevent-2.1.so', 'libevent_core-2.1.so', 'libevent_extra-2.1.so', 'libevent_openssl-2.1.so', 'libevent_pthreads-2.1.so']
Builddate 20-01-2026 20:59:33
Architecture x86_64
Distro-Version
Licenses ['BSD-3-Clause-Modification']
Hash 234dbb723781f7ef194c3ba10d119bae94b20b7c1040214a160028f4a144c62c
# Contributor: Tom Gundersen <teg@jklm.no>
# Contributor: Judd <jvinet@zeroflux.org>

pkgbase=libevent
pkgname=(libevent libevent-docs)
pkgver=2.1.12
pkgrel=5
pkgdesc="Event notification library"
url="https://libevent.org/"
arch=(x86_64)
license=(BSD-3-Clause-Modification)
makedepends=(
  cmake
  doxygen
  ninja
  openssl
  python
)
source=(
  https://github.com/libevent/libevent/releases/download/release-$pkgver-stable/libevent-$pkgver-stable.tar.gz{,.asc}
  EVENT__SIZEOF_TIME_T.patch
  libevent-2.1.12-openssl-compat.patch
)
sha256sums=('92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb'
            'SKIP'
            '945fc885b15692721bc7ae52f5774ef4fab8cc0f6108baa8860ab368de8675cf'
            'e41527c55f6dacc6453b13eeeea2664798496896b796abcd2a5c8304c9eb2bae')
validpgpkeys=('B35BF85BF19489D04E28C33C21194EBB165733EA'
              '9E3AC83A27974B84D1B3401DB86086848EF8686D')

prepare() {
  cd libevent-$pkgver-stable

  # Fix Firefox build
  patch -Np1 -i ../EVENT__SIZEOF_TIME_T.patch

  # Fix build with OpenSSL 3.0
  patch -Np1 -i ../libevent-2.1.12-openssl-compat.patch
}

build() {
  local cmake_options=(
    -B build
    -S libevent-$pkgver-stable
    -D CMAKE_BUILD_TYPE=None
    -D CMAKE_INSTALL_PREFIX=/usr
    -D CMAKE_POLICY_VERSION_MINIMUM=3.5
    -D CMAKE_SKIP_INSTALL_RPATH=TRUE
    -D EVENT__DISABLE_REGRESS=OFF
    -D EVENT__DOXYGEN=ON
    -D EVENT__LIBRARY_TYPE=SHARED
    -G Ninja
  )

  cmake "${cmake_options[@]}"
  cmake --build build
}

check() {
  local ctest_options=(
    # Disable flaky tests: https://github.com/libevent/libevent/issues/1407
    # Note: Backporting e.g. https://github.com/libevent/libevent/pull/1555 didn't resolve this!
    --exclude-regex '(regress__timerfd_EPOLL|regress__timerfd_EPOLL_debug|regress__changelist_EPOLL|regress__changelist_EPOLL_debug|regress__timerfd_changelist_EPOLL|regress__timerfd_changelist_EPOLL_debug|regress__SELECT|regress__SELECT_debug|regress__POLL|regress__POLL_debug)'
    --output-on-failure
    --stop-on-failure
  )

  cd build
  ctest "${ctest_options[@]}"
}

package_libevent() {
  provides=(libevent{,_core,_extra,_openssl,_pthreads}-2.1.so)
  depends=(
    glibc
    openssl
  )
  optdepends=('python: event_rpcgen.py')

  DESTDIR="$pkgdir" cmake --install build

  mkdir -p doc/usr/share
  mv {"$pkgdir",doc}/usr/share/doc

  install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 libevent-$pkgver-stable/LICENSE
}

package_libevent-docs() {
  pkgdesc+=" (documentation)"

  mv -v doc/* "$pkgdir"
  install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 libevent-$pkgver-stable/LICENSE
}