103 lines
2.9 KiB
Text
103 lines
2.9 KiB
Text
# Maintainer: Antoine "ayakael" Martin <dev@ayakael.net>
|
|
|
|
pkgname=jellyfin
|
|
pkgver=10.8.0_alpha5
|
|
_gittag=v${pkgver/_/-}
|
|
pkgrel=7
|
|
pkgdesc="The Free Software Media System"
|
|
arch="x86_64"
|
|
case $CARCH in
|
|
x86_64) _dotnet_arch=x64;;
|
|
aarch64) _dotnet_arch=arm64;;
|
|
armv7) _dotnet_arch=arm;;
|
|
esac
|
|
url="https://github.com/jellyfin/jellyfin"
|
|
license="GPL2"
|
|
options="!strip !check" # No testsuite
|
|
makedepends="
|
|
dotnet6-sdk
|
|
npm
|
|
icu-dev
|
|
skia-sharp
|
|
"
|
|
source="
|
|
jellyfin-$_gittag.tar.gz::https://github.com/jellyfin/jellyfin/archive/$_gittag.tar.gz
|
|
jellyfin-web-$_gittag.tar.gz::https://github.com/jellyfin/jellyfin-web/archive/$_gittag.tar.gz
|
|
jellyfin.conf
|
|
jellyfin.initd
|
|
"
|
|
subpackages="
|
|
$pkgname-server
|
|
$pkgname-web::noarch
|
|
$pkgname-openrc
|
|
"
|
|
builddir="${srcdir}"/jellyfin-${_gittag/v}
|
|
_webdir="${srcdir}"/jellyfin-web-${_gittag/v}
|
|
|
|
_build_web() {
|
|
# Build jellyfin-web
|
|
cd "$_webdir"
|
|
|
|
npm ci --no-audit --unsafe-perm
|
|
}
|
|
|
|
_build_server() {
|
|
# Build jellyfin-server
|
|
cd "$builddir"
|
|
|
|
dotnet build --configuration Release Jellyfin.Server
|
|
# Ideally, this would be run in package() with the --output variable pointing
|
|
# to "$pkgdir"/usr/lib/jellyfin, but this step fails in fakeroot.
|
|
# The makepkg output looks like
|
|
# Restore completed in 56.84 ms for /aur/jellyfin-git/src/jellyfin/Jellyfin.Server/Jellyfin.Server.csproj.
|
|
# ==> ERROR: A failure occurred in package().
|
|
# without indicating any sort of failure.
|
|
dotnet publish --configuration Release Jellyfin.Server --output "$PWD"/publish
|
|
}
|
|
|
|
build() {
|
|
_build_server
|
|
_build_web
|
|
}
|
|
|
|
package() {
|
|
depends="
|
|
jellyfin-web
|
|
jellyfin-server
|
|
"
|
|
mkdir -p "${pkgdir}"
|
|
}
|
|
|
|
server() {
|
|
pkgdesc="Jellyfin server component"
|
|
depends="
|
|
dotnet6-runtime
|
|
aspnetcore6-runtime
|
|
jellyfin-ffmpeg
|
|
sqlite
|
|
"
|
|
|
|
install -dm 755 "$subpkgdir"/usr/lib
|
|
cp -r "$builddir"/publish "$subpkgdir"/usr/lib/jellyfin
|
|
|
|
find "$subpkgdir"/usr/lib/jellyfin/runtimes/ -type d -maxdepth 1 -mindepth 1 \( -not -name "linux-musl-$_dotnet_arch" -a -not -name "alpine-$_dotnet_arch" \) -print0 | xargs -0 -I {} rm -r {}
|
|
}
|
|
|
|
web() {
|
|
pkgdesc="Jellyfin web client"
|
|
|
|
install -dm 755 "$subpkgdir"/usr/lib/jellyfin
|
|
cp -r "$_webdir"/dist "$subpkgdir"/usr/lib/jellyfin/jellyfin-web
|
|
}
|
|
|
|
openrc () {
|
|
install -Dm 755 jellyfin.initd "$subpkgdir"/etc/init.d/jellyfin
|
|
install -Dm 644 jellyfin.conf "$subpkgdir"/etc/conf.d/jellyfin
|
|
}
|
|
|
|
sha512sums="
|
|
27c6ee64d2072e664e3d371002d6a1321ff2edd2ffc4cdf6927d8e1361b31c05cef75eaed1862bdb06ffc1b40f4d616c153e0e612d52aab4a90031511ba1532f jellyfin-v10.8.0-alpha5.tar.gz
|
|
315646792e00ad6e7f18fd1e64f391188ad48bb765633ea06ccb4fff9239eeec5d204e6721c223936c49eb957f7ef587cebd865dae1225a9df2673e21a784ad1 jellyfin-web-v10.8.0-alpha5.tar.gz
|
|
d82fcf2ac22a94c3d189ec2df2e70316688f5e2edbd2f60d6817639cb930a4d19fc5ed2c55bc367f084f91a71cc6d606d1d8e045a6bf947f2a832f682de6734d jellyfin.conf
|
|
ed256699b65c6319a42b037e47e99e62db227f336f53599c96914d1b9d859f4a36cca5fdabeec77bd58295a026f11039effd39328d2010ef7537b705a8bd4d60 jellyfin.initd
|
|
"
|