%global debug_package %{nil} %global jellyfin_version 10.10.7 %global jellyfin_packaging_timestamp 202504051515 %global jellyfin_packaging_version %{jellyfin_version}-%{jellyfin_packaging_timestamp} %global dotnet_runtime %( \ if [ "%{_arch}" = "x86_64" ]; then \ echo -n "linux-x64"; \ elif [ "%{_arch}" = "aarch64" ]; then \ echo -n "linux-arm64"; \ else \ echo "Unsupported architecture: %{_arch}"; \ exit 1; \ fi \ ) Name: jellyfin-server Version: %{jellyfin_version} Release: %autorelease Summary: The Free Software Media System - Server Backend & API License: GPL-2.0-or-later URL: https://github.com/jellyfin/jellyfin Source0: https://github.com/jellyfin/jellyfin/archive/refs/tags/v%{version}.tar.gz Source1: https://github.com/jellyfin/jellyfin-packaging/archive/refs/tags/v%{jellyfin_packaging_version}.tar.gz Source2: tmpfiles.conf Patch0: fix-envfile-path.patch ExclusiveArch: x86_64 aarch64 BuildRequires: dotnet-sdk-8.0 BuildRequires: git BuildRequires: systemd-rpm-macros Requires: aspnetcore-runtime-8.0 Requires: bash Requires: fontconfig Requires: jellyfin-ffmpeg-bin Requires: sqlite Recommends: jellyfin-web Recommends: google-noto-fonts-common %description %{summary}. %prep tar --extract --file="%{SOURCE1}" --directory="%{_builddir}" pushd %{_builddir}/jellyfin-packaging-%{jellyfin_packaging_version} patch -p1 -i "%{PATCH0}" popd %setup -q -n jellyfin-%{version} %build DOTNET_CLI_TELEMETRY_OPTOUT=1 \ DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 \ DOTNET_NOLOGO=1 \ dotnet \ publish \ Jellyfin.Server \ --configuration Release \ --output builddir \ --self-contained false \ --runtime %{dotnet_runtime} \ -p:DebugSymbols=false \ -p:DebugType=none %install install --directory "%{buildroot}%{_libdir}" cp --recursive builddir "%{buildroot}%{_libdir}/jellyfin" install --directory "%{buildroot}%{_bindir}" ln --symbolic --force "%{_libdir}/jellyfin/jellyfin" "%{buildroot}%{_bindir}/jellyfin" pushd %{_builddir}/jellyfin-packaging-%{jellyfin_packaging_version}/debian/conf install -D --mode=644 jellyfin.service "%{buildroot}%{_unitdir}/jellyfin.service" install -D --mode=640 jellyfin "%{buildroot}%{_sysconfdir}/jellyfin/jellyfin.env" popd install -D --mode=0644 "%{SOURCE2}" "%{buildroot}%{_tmpfilesdir}/jellyfin.conf" install --directory --mode=750 "%{buildroot}%{_localstatedir}/cache/jellyfin" install --directory --mode=750 "%{buildroot}%{_sharedstatedir}/jellyfin" find %{buildroot} %files %license LICENSE %{_bindir}/jellyfin %{_libdir}/jellyfin %{_tmpfilesdir}/jellyfin.conf %{_unitdir}/jellyfin.service %defattr(640,jellyfin,jellyfin,750) %dir %{_localstatedir}/cache/jellyfin %dir %{_sharedstatedir}/jellyfin %dir %{_sysconfdir}/jellyfin %config(noreplace) %{_sysconfdir}/jellyfin/jellyfin.env %pre getent group jellyfin > /dev/null || groupadd --system jellyfin getent passwd jellyfin > /dev/null || \ useradd --system --home-dir "%{_sharedstatedir}/jellyfin" --gid jellyfin \ -s /sbin/nologin -c "jellyfin daemon" jellyfin exit 0 %post %systemd_post jellyfin.service %preun %systemd_preun jellyfin.service %postun %systemd_postun jellyfin.service %changelog %autochangelog