# Maintainer: bkuri <aur+nzbget-git@bkuri.com> # Contributor: selfdenial <selfdenial@pm.me> # Contributor: Nicola Hinssen <nicola.hinssen@gmail.com> # Contributor: Jan Holthuis <holthuis.jan@googlemail.com> pkgbase=nzbget-git pkgname=(nzbget-git nzbget-git-debug) pkgver=24.6.r2545.9f755bf7 pkgrel=1 pkgdesc="Download from Usenet using .nzb files (testing release)" arch=('x86_64') install=nzbget.install license=('GPL') options=('debug' '!lto') url="https://github.com/nzbgetcom/nzbget" depends=('libxml2' 'openssl') makedepends=('cmake' 'boost' 'git') optdepends=('nzbget-git-debug: Debug symbols for nzbget' 'python: run scripts' 'unrar: unpacking archives' 'p7zip: unpacking archives') conflicts=('nzbget' 'nzbget-systemd') provides=('nzbget' 'nzbget-systemd') sha256sums=('SKIP' 'e92d2d09e56930475c9f28641a3326a17aa187834e1bd6328a65b6ed7cc25e99') source=("$pkgname::git+https://github.com/nzbgetcom/nzbget.git#branch=develop" "nzbget.service") pkgver() { cd "${srcdir}/${pkgbase}" # Extract version from CMakeLists.txt local _pkgver=$(grep -oP 'set\(VERSION "\K[^"]+' CMakeLists.txt) # Get commit count and short hash local _rev=$(git rev-list --count HEAD) local _hash=$(git rev-parse --short HEAD) # Construct and print version string printf "%s.r%s.%s" "${_pkgver}" "${_rev}" "${_hash}" } prepare() { cd "${srcdir}/${pkgbase}" # Ensure build directory exists mkdir -p build # Set environment variables to control build locations export HOME="${srcdir}" export XDG_CACHE_HOME="${srcdir}/.cache" export XDG_DATA_HOME="${srcdir}/data" export XDG_CONFIG_HOME="${srcdir}/config" } build() { cd "${srcdir}/${pkgbase}/build" # Configure the build to generate debug symbols cmake .. \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_POLICY_DEFAULT_CMP0167=NEW \ -DDEBUG_SYMBOLS=ON # Build the project cmake --build . -j $(nproc) } check() { cd "${srcdir}/${pkgbase}/build" ctest --output-on-failure } package_nzbget-git() { cd "${srcdir}/${pkgname}/build" DESTDIR="$pkgdir" cmake --install . # Install systemd service file install -Dm644 "${srcdir}/nzbget.service" "${pkgdir}/usr/lib/systemd/system/nzbget.service" # Create necessary directories install -dm 755 "${pkgdir}/var/lib/nzbget" install -dm 755 "${pkgdir}/usr/share/nzbget" # Install additional files cd "${srcdir}/${pkgname}" install -Dm 644 README.md "${pkgdir}/usr/share/nzbget/README.md" install -Dm 644 nzbget.conf "${pkgdir}/usr/share/nzbget/nzbget.conf" # Remove unnecessary build artifacts rm -rf "${pkgdir}/usr/src" rm -rf "${pkgdir}/home" # Strip binary (added back) cd "$pkgdir/usr/bin" if [[ -f nzbget && "$(file -bi nzbget)" == *"application/x-executable"* ]]; then strip --strip-all nzbget fi } package_nzbget-git-debug() { pkgdesc="Debug symbols for nzbget-git" depends=("nzbget-git=$pkgver") options=('!strip') # Create debug directory install -dm755 "${pkgdir}/usr/lib/debug" # Copy debug symbols cd "${srcdir}/${pkgbase}/build" find . -name "*.debug" -exec install -Dm644 {} "${pkgdir}/usr/lib/debug/{}" \; # Optionally, copy full debug symbols for the binary if [[ -f "${srcdir}/${pkgbase}/build/nzbget" ]]; then objcopy --only-keep-debug "${srcdir}/${pkgbase}/build/nzbget" "${pkgdir}/usr/lib/debug/usr/bin/nzbget.debug" fi }