# Maintainer: Luca Weiss # Contributor: Maxime Gauduin # Contributor: Daniel Seymour _pkgver=10.9.8 _dotnet_ver=8.0 pkgbase=jellyfin pkgname=(jellyfin jellyfin-web jellyfin-server) pkgver=10.9.8 pkgrel=1 pkgdesc='The Free Software Media System' arch=('x86_64') url='https://github.com/jellyfin/jellyfin' license=('GPL2') makedepends=("dotnet-sdk-$_dotnet_ver" 'nodejs' 'npm' 'git') source=("jellyfin-$_pkgver.tar.gz::https://github.com/jellyfin/jellyfin/archive/v$_pkgver.tar.gz" "jellyfin-web-$_pkgver.tar.gz::https://github.com/jellyfin/jellyfin-web/archive/v$_pkgver.tar.gz" 'jellyfin.conf' 'jellyfin.service' 'jellyfin.sysusers' 'jellyfin.tmpfiles') sha512sums=('7e4b03af7ecead3fea8a4006e959ab4774314670b47a7119180dc41329635c29086afedf0113bc0814fcd3854389fc204cbc6e9acb91637fffa2c2997dee62c7' '17d7fe6b6bd69d0d87e23135536b1e6036f6f56e3181a80849a44f96aa87d9c85a5bf2fa85dad743b92c3c20aaf2dc820f220f87288fb78b6a6557da42c0da99' '2aa97a1a7a8a447171b59be3e93183e09cbbc32c816843cc47c6777b9aec48bd9c1d9d354f166e0b000ad8d2e94e6e4b0559aa52e5c159abbc103ed2c5afa3f0' 'ce9c5f3f0f3353894825e747f4f95a83fdf10a36c4366c1c6768c737187bc1537dd33bfe0c131a65849e3916ed5177f5c7011c836da01f401588140b6f643908' '6fc2638e6ec4b1ee0240e17815c91107b694e5fde72c1bc7956c83067bbeacb632de899b86837e47a0ec04288131b15c20746373b45e0669c8976069a55d627a' '45a62b62d97b9a83289d4dfde684163b1bcf340c1921fb958e5a701812c61b392901841940c67e5fa5148783277d5b4dc65ba01d3a22e8f855ea62154ad9be33') build(){ # Build jellyfin-web cd jellyfin-web-$_pkgver npm ci --no-audit npm run build:production # Build jellyfin-server cd ../jellyfin-$_pkgver # Disable dotnet telemetry export DOTNET_CLI_TELEMETRY_OPTOUT=1 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 --runtime linux-x64 --configuration Release Jellyfin.Server --output "$PWD"/publish # Clean up the runtimes folder (keep linux-*) rm -rfv publish/runtimes/{alpine-*,osx*,tizen-*,win*} } package_jellyfin() { depends=("jellyfin-web=$pkgver" "jellyfin-server=$pkgver") } package_jellyfin-server() { pkgdesc="Jellyfin server component" optdepends=('jellyfin-ffmpeg5: Patched FFmpeg providing hardware acceleration and tonemapping support') depends=('ffmpeg') backup=('etc/conf.d/jellyfin') mkdir -p "$pkgdir"/usr/lib cp -dr --no-preserve='ownership' jellyfin-$_pkgver/publish "$pkgdir"/usr/lib/jellyfin install -Dm 644 jellyfin.service -t "$pkgdir"/usr/lib/systemd/system/ install -Dm 644 jellyfin.sysusers "$pkgdir"/usr/lib/sysusers.d/jellyfin.conf install -Dm 644 jellyfin.tmpfiles "$pkgdir"/usr/lib/tmpfiles.d/jellyfin.conf install -Dm 644 jellyfin.conf "$pkgdir"/etc/conf.d/jellyfin } package_jellyfin-web() { pkgdesc="Jellyfin web client" mkdir -p "$pkgdir"/usr/lib/jellyfin cp -r jellyfin-web-$_pkgver/dist "$pkgdir"/usr/lib/jellyfin/jellyfin-web } # vim: ts=2 sw=2 et: