Skip to content

Instantly share code, notes, and snippets.

@bkuri
Created December 26, 2024 23:11
Show Gist options
  • Save bkuri/544a114fc7abdd15f43249d78de5d772 to your computer and use it in GitHub Desktop.
Save bkuri/544a114fc7abdd15f43249d78de5d772 to your computer and use it in GitHub Desktop.
nzbget-git PKGBUILD
# Maintainer: bkuri <[email protected]>
# Contributor: selfdenial <[email protected]>
# Contributor: Nicola Hinssen <[email protected]>
# Contributor: Jan Holthuis <[email protected]>
pkgbase=nzbget-git
pkgname=(nzbget-git nzbget-git-debug)
pkgver=24.6.r2550.a0e27026
pkgrel=1
pkgdesc="Download from Usenet using .nzb files (testing release)"
arch=('x86_64')
url="https://github.com/nzbgetcom/nzbget"
license=('GPL-2.0-only')
install=nzbget.install
options=('debug' '!lto')
depends=(
'libxml2'
'openssl'
)
makedepends=(
'cmake>=3.13'
'boost'
'git'
)
optdepends=(
'nzbget-git-debug: Debug symbols for nzbget'
'python: for running scripts'
'unrar: for unpacking archives'
'p7zip: for unpacking archives'
)
conflicts=('nzbget' 'nzbget-systemd')
provides=('nzbget' 'nzbget-systemd')
source=(
"${pkgbase}::git+https://github.com/nzbgetcom/nzbget.git#branch=develop"
"nzbget.service"
)
sha256sums=('SKIP'
'e92d2d09e56930475c9f28641a3326a17aa187834e1bd6328a65b6ed7cc25e99')
pkgver() {
cd "${srcdir}/${pkgbase}"
# Ensure we have the latest git data
git fetch --all --prune
local _pkgver=$(grep -oP 'set\(VERSION "\K[^"]+' CMakeLists.txt)
local _rev=$(git rev-list --count HEAD)
local _hash=$(git rev-parse --short HEAD)
printf "%s.r%s.%s" "${_pkgver}" "${_rev}" "${_hash}"
}
prepare() {
cd "${srcdir}/${pkgbase}"
mkdir -p build
# Ensure clean build environment
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"
cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_POLICY_DEFAULT_CMP0167=NEW \
-DDEBUG_SYMBOLS=ON \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_SKIP_INSTALL_RPATH=ON
cmake --build . -j$(nproc)
}
check() {
cd "${srcdir}/${pkgbase}/build"
ctest --output-on-failure -j$(nproc)
}
package_nzbget-git() {
cd "${srcdir}/${pkgbase}/build"
DESTDIR="$pkgdir" cmake --install .
# Install systemd service
install -Dm644 "${srcdir}/nzbget.service" "${pkgdir}/usr/lib/systemd/system/nzbget.service"
# Create required directories
install -dm755 "${pkgdir}"/var/lib/nzbget
install -dm755 "${pkgdir}"/usr/share/nzbget
# Install documentation and config
cd "${srcdir}/${pkgbase}"
install -Dm644 README.md "${pkgdir}/usr/share/doc/${pkgname}/README.md"
install -Dm644 nzbget.conf "${pkgdir}/usr/share/nzbget/nzbget.conf"
install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
# Cleanup build artifacts
find "${pkgdir}" -type d -name ".git" -exec rm -rf {} +
find "${pkgdir}" -type f -name ".gitignore" -delete
rm -rf "${pkgdir}/usr/src"
rm -rf "${pkgdir}/home"
# Strip binary while preserving debug symbols
if [[ -f "${pkgdir}/usr/bin/nzbget" ]]; then
strip --strip-all "${pkgdir}/usr/bin/nzbget"
fi
}
package_nzbget-git-debug() {
pkgdesc="Debug symbols for nzbget-git"
depends=("nzbget-git=${pkgver}-${pkgrel}")
options=('!strip')
install -dm755 "${pkgdir}/usr/lib/debug"
cd "${srcdir}/${pkgbase}/build"
# Install debug symbols
find . -name "*.debug" -exec install -Dm644 {} "${pkgdir}/usr/lib/debug/{}" \;
# Install binary debug symbols
if [[ -f nzbget ]]; then
install -Dm644 nzbget "${pkgdir}/usr/lib/debug/usr/bin/nzbget.debug"
fi
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment