From 1cbddf4c93beb4fa7ced4bf0e9713fb0554d0aa4 Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath Date: Fri, 11 Jun 2021 01:05:04 +0530 Subject: [PATCH] libpcap: Add package. --- .../0001-cmake-install-rpcapd-bindir.patch | 11 +++ .../0002-cmake-keep-lib-prefixed-dll.patch | 15 ++++ mingw-w64-libpcap/PKGBUILD | 71 +++++++++++++++++++ 3 files changed, 97 insertions(+) create mode 100644 mingw-w64-libpcap/0001-cmake-install-rpcapd-bindir.patch create mode 100644 mingw-w64-libpcap/0002-cmake-keep-lib-prefixed-dll.patch create mode 100644 mingw-w64-libpcap/PKGBUILD diff --git a/mingw-w64-libpcap/0001-cmake-install-rpcapd-bindir.patch b/mingw-w64-libpcap/0001-cmake-install-rpcapd-bindir.patch new file mode 100644 index 0000000000..e7d989a84a --- /dev/null +++ b/mingw-w64-libpcap/0001-cmake-install-rpcapd-bindir.patch @@ -0,0 +1,11 @@ +--- a/rpcapd/CMakeLists.txt ++++ b/rpcapd/CMakeLists.txt +@@ -136,7 +136,7 @@ + set(MANFILE_EXPAND rpcapd-config.manfile.in) + + if(NOT MSVC) +- install(TARGETS rpcapd DESTINATION sbin) ++ install(TARGETS rpcapd DESTINATION ${CMAKE_INSTALL_BINDIR}) + else(NOT MSVC) + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + install(TARGETS rpcapd DESTINATION bin/amd64) diff --git a/mingw-w64-libpcap/0002-cmake-keep-lib-prefixed-dll.patch b/mingw-w64-libpcap/0002-cmake-keep-lib-prefixed-dll.patch new file mode 100644 index 0000000000..ca10b8b98f --- /dev/null +++ b/mingw-w64-libpcap/0002-cmake-keep-lib-prefixed-dll.patch @@ -0,0 +1,15 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -2337,12 +2337,7 @@ + OUTPUT_NAME "${LIBRARY_NAME}_static" + ) + elseif(MINGW) +- # +- # For compatibility, build the shared library without the "lib" prefix on +- # MinGW as well. +- # + set_target_properties(${LIBRARY_NAME} PROPERTIES +- PREFIX "" + OUTPUT_NAME "${LIBRARY_NAME}" + ) + set_target_properties(${LIBRARY_NAME}_static PROPERTIES diff --git a/mingw-w64-libpcap/PKGBUILD b/mingw-w64-libpcap/PKGBUILD new file mode 100644 index 0000000000..51f3da92e7 --- /dev/null +++ b/mingw-w64-libpcap/PKGBUILD @@ -0,0 +1,71 @@ +# Maintainer: Biswapriyo Nath + +_realname=libpcap +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=1.10.1 +pkgrel=1 +pkgdesc="A system-independent interface for user-level packet capture (mingw-w64)" +arch=('any') +mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64') +url="https://www.tcpdump.org/" +license=('BSD') +depends=("${MINGW_PACKAGE_PREFIX}-openssl") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-ninja") +options=('strip' '!debug' 'staticlibs') +source=("https://www.tcpdump.org/release/${_realname}-${pkgver}.tar.gz"{,.sig} + "0001-cmake-install-rpcapd-bindir.patch" + "0002-cmake-keep-lib-prefixed-dll.patch") +sha256sums=('ed285f4accaf05344f90975757b3dbfe772ba41d1c401c2648b7fa45b711bdd4' + 'SKIP' + 'ded3f2a43e168fba35166630b6e5f9ef95c01feb2f7bf1f035d794f41af4dfeb' + '09dfe0f962a99df7d1d8fdb9bb9b320b6d33e0a7c2efec136065a7b359de188d') +validpgpkeys=('1F166A5742ABB9E0249A8D30E089DEF1D9C15D0D') # The Tcpdump Group + +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" + patch -Np1 -i "${srcdir}/0001-cmake-install-rpcapd-bindir.patch" + patch -Np1 -i "${srcdir}/0002-cmake-keep-lib-prefixed-dll.patch" +} + +build() { + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" + + declare -a _extra_config + if check_option "debug" "n"; then + _extra_config+=("-DCMAKE_BUILD_TYPE=Release") + else + _extra_config+=("-DCMAKE_BUILD_TYPE=Debug") + fi + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake.exe \ + -G "Ninja" \ + -Wno-dev \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + "${_extra_config[@]}" \ + -DDISABLE_DBUS=ON \ + "../${_realname}-${pkgver}" + + ${MINGW_PREFIX}/bin/cmake.exe --build ./ +} + +check() { + cd "${srcdir}/build-${MINGW_CHOST}" + ${MINGW_PREFIX}/bin/ctest.exe ./ || true +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake.exe --build ./ --target install + + local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) + for pcfile in "${pkgdir}${MINGW_PREFIX}"/lib/pkgconfig/*.pc; do + sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i "${pcfile}" + done + sed -s "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i "${pkgdir}${MINGW_PREFIX}"/bin/pcap-config + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +}