aports/community/navidrome/APKBUILD

88 lines
2.5 KiB
Text

# Contributor: Tom Lebreux <me@tomlebreux.com>
# Maintainer: Tom Lebreux <me@tomlebreux.com>
pkgname=navidrome
pkgver=0.56.1
pkgrel=0
pkgdesc="Modern Music Server and Streamer compatible with Subsonic/Airsonic"
url="https://navidrome.org/"
arch="all !riscv64 !s390x"
license="GPL-3.0-or-later"
# check: TypeError: Cannot redefine property: localStorage
# For downloading go and nodejs dependencies
options="net !check"
depends="ffmpeg"
makedepends="go nodejs npm sqlite-dev taglib-dev zlib-dev"
install="$pkgname.pre-install"
subpackages="$pkgname-openrc"
pkgusers="navidrome"
pkggroups="navidrome"
source="
$pkgname-$pkgver.tar.gz::https://github.com/navidrome/navidrome/archive/refs/tags/v$pkgver.tar.gz
navidrome.initd
navidrome.confd
navidrome.toml
"
export GOFLAGS="$GOFLAGS -tags=embed,netgo,libsqlite3"
export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
# secfixes:
# 0.56.1-r0:
# - CVE-2025-48948
# - CVE-2025-48949
# 0.47.5-r0:
# - CVE-2022-23857
prepare() {
default_prepare
go mod download
go mod tidy
cd ui
# Prevents crash due to allocation failure
echo 'node-options=--max_old_space_size=3072' >.npmrc
npm install
cd ..
}
build() {
cd ./ui/
npm run build
cd ..
# Display pkgrel instead of keeping the git sha in sync with pkgver
CGO_ENABLED=1 go build \
-ldflags="
-X github.com/navidrome/navidrome/consts.gitSha=$pkgver-r$pkgrel
-X github.com/navidrome/navidrome/consts.gitTag=v$pkgver"
}
check() {
make testall
}
package() {
install -Dm755 navidrome "$pkgdir"/usr/bin/navidrome
install -Dm644 "$srcdir"/navidrome.toml \
"$pkgdir"/etc/navidrome/navidrome.toml
install -Dm755 "$srcdir"/$pkgname.initd \
"$pkgdir"/etc/init.d/$pkgname
install -Dm644 "$srcdir"/$pkgname.confd \
"$pkgdir"/etc/conf.d/$pkgname
install -dm755 -o navidrome -g navidrome \
"$pkgdir"/var/lib/navidrome \
"$pkgdir"/var/lib/navidrome/music
}
sha512sums="
d0d09b1c1b4b9eeb20bcbb25ce3f97624b1c0b9ff171b864cc5fd52a9cee8ec677a40601a6d73d162d36698c919702b63bf884fa39e3f1568e88b452fef23e8c navidrome-0.56.1.tar.gz
9622f9e30b8964e7e2708d313f45e0977fdfa4ceec9b4311f8a40bd250c986fcc87f24577e74ccbcf06d4f3d071f0951d5e25eb3107ce0188b7caf6fe073edaa navidrome.initd
dc5a0f21c5da6c165c4dc216b8dc3cab8e2c02c5c2ff06dc393528383234034428df7cfa11704a2373fcebba4cba484fffd2231b3c5fd871420a34fe1dcf1e04 navidrome.confd
2e8e01963798b01a803a93a2ab1a55c1243953e0c5459839c0625059febeedc0b7d0dbf5df0e8b8ccf4cb9ae64a389b35a91b16a8c67d276727476b20040bb33 navidrome.toml
"