|
|
|
@ -1,7 +1,7 @@
|
|
|
|
|
%global debug_package %{nil}
|
|
|
|
|
# Set the dotnet runtime
|
|
|
|
|
%if 0%{?fedora}
|
|
|
|
|
%global dotnet_runtime fedora-x64
|
|
|
|
|
%global dotnet_runtime fedora.%{fedora}-x64
|
|
|
|
|
%else
|
|
|
|
|
%global dotnet_runtime centos-x64
|
|
|
|
|
%endif
|
|
|
|
@ -10,7 +10,7 @@ Name: jellyfin
|
|
|
|
|
Version: 10.8.0
|
|
|
|
|
Release: 1%{?dist}
|
|
|
|
|
Summary: The Free Software Media System
|
|
|
|
|
License: GPLv3
|
|
|
|
|
License: GPLv2
|
|
|
|
|
URL: https://jellyfin.org
|
|
|
|
|
# Jellyfin Server tarball created by `make -f .copr/Makefile srpm`, real URL ends with `v%%{version}.tar.gz`
|
|
|
|
|
Source0: jellyfin-server-%{version}.tar.gz
|
|
|
|
@ -25,13 +25,16 @@ Source17: jellyfin-server-lowports.conf
|
|
|
|
|
%{?systemd_requires}
|
|
|
|
|
BuildRequires: systemd
|
|
|
|
|
BuildRequires: libcurl-devel, fontconfig-devel, freetype-devel, openssl-devel, glibc-devel, libicu-devel
|
|
|
|
|
# Requirements not packaged in main repos
|
|
|
|
|
# COPR @dotnet-sig/dotnet or
|
|
|
|
|
# Requirements not packaged in RHEL 7 main repos, added via Makefile
|
|
|
|
|
# https://packages.microsoft.com/rhel/7/prod/
|
|
|
|
|
BuildRequires: dotnet-runtime-6.0, dotnet-sdk-6.0
|
|
|
|
|
Requires: %{name}-server = %{version}-%{release}, %{name}-web = %{version}-%{release}
|
|
|
|
|
# Disable Automatic Dependency Processing
|
|
|
|
|
AutoReqProv: no
|
|
|
|
|
|
|
|
|
|
# Temporary (hopefully?) fix for https://github.com/jellyfin/jellyfin/issues/7471
|
|
|
|
|
%if 0%{?fedora} >= 36
|
|
|
|
|
%global __requires_exclude ^liblttng-ust\\.so\\.0.*$
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%description
|
|
|
|
|
Jellyfin is a free software media system that puts you in control of managing and streaming your media.
|
|
|
|
@ -59,54 +62,74 @@ the Jellyfin server to bind to ports 80 and/or 443 for example.
|
|
|
|
|
%prep
|
|
|
|
|
%autosetup -n jellyfin-server-%{version} -b 0
|
|
|
|
|
|
|
|
|
|
%build
|
|
|
|
|
|
|
|
|
|
%install
|
|
|
|
|
%build
|
|
|
|
|
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
|
|
|
|
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
|
|
|
|
|
export PATH=$PATH:/usr/local/bin
|
|
|
|
|
dotnet publish --configuration Release --output='%{buildroot}%{_libdir}/jellyfin' --self-contained --runtime %{dotnet_runtime} \
|
|
|
|
|
# cannot use --output due to https://github.com/dotnet/sdk/issues/22220
|
|
|
|
|
dotnet publish --configuration Release --self-contained --runtime %{dotnet_runtime} \
|
|
|
|
|
"-p:DebugSymbols=false;DebugType=none" Jellyfin.Server
|
|
|
|
|
%{__install} -D -m 0644 LICENSE %{buildroot}%{_datadir}/licenses/jellyfin/LICENSE
|
|
|
|
|
%{__install} -D -m 0644 %{SOURCE15} %{buildroot}%{_sysconfdir}/systemd/system/jellyfin.service.d/override.conf
|
|
|
|
|
%{__install} -D -m 0644 %{SOURCE17} %{buildroot}%{_unitdir}/jellyfin.service.d/jellyfin-server-lowports.conf
|
|
|
|
|
%{__install} -D -m 0644 Jellyfin.Server/Resources/Configuration/logging.json %{buildroot}%{_sysconfdir}/jellyfin/logging.json
|
|
|
|
|
%{__mkdir} -p %{buildroot}%{_bindir}
|
|
|
|
|
tee %{buildroot}%{_bindir}/jellyfin << EOF
|
|
|
|
|
#!/bin/sh
|
|
|
|
|
exec %{_libdir}/jellyfin/jellyfin \${@}
|
|
|
|
|
EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%install
|
|
|
|
|
# Jellyfin files
|
|
|
|
|
%{__mkdir} -p %{buildroot}%{_libdir}/jellyfin %{buildroot}%{_bindir}
|
|
|
|
|
%{__cp} -r Jellyfin.Server/bin/Release/net6.0/%{dotnet_runtime}/publish/* %{buildroot}%{_libdir}/jellyfin
|
|
|
|
|
ln -srf %{_libdir}/jellyfin/jellyfin %{buildroot}%{_bindir}/jellyfin
|
|
|
|
|
%{__install} -D %{SOURCE14} %{buildroot}%{_libexecdir}/jellyfin/restart.sh
|
|
|
|
|
|
|
|
|
|
# Jellyfin config
|
|
|
|
|
%{__install} -D Jellyfin.Server/Resources/Configuration/logging.json %{buildroot}%{_sysconfdir}/jellyfin/logging.json
|
|
|
|
|
%{__install} -D %{SOURCE12} %{buildroot}%{_sysconfdir}/sysconfig/jellyfin
|
|
|
|
|
|
|
|
|
|
# system config
|
|
|
|
|
%{__install} -D %{SOURCE16} %{buildroot}%{_prefix}/lib/firewalld/services/jellyfin.xml
|
|
|
|
|
%{__install} -D %{SOURCE13} %{buildroot}%{_sysconfdir}/sudoers.d/jellyfin-sudoers
|
|
|
|
|
%{__install} -D %{SOURCE15} %{buildroot}%{_sysconfdir}/systemd/system/jellyfin.service.d/override.conf
|
|
|
|
|
%{__install} -D %{SOURCE11} %{buildroot}%{_unitdir}/jellyfin.service
|
|
|
|
|
|
|
|
|
|
# empty directories
|
|
|
|
|
%{__mkdir} -p %{buildroot}%{_sharedstatedir}/jellyfin
|
|
|
|
|
%{__mkdir} -p %{buildroot}%{_sysconfdir}/jellyfin
|
|
|
|
|
%{__mkdir} -p %{buildroot}%{_var}/log/jellyfin
|
|
|
|
|
%{__mkdir} -p %{buildroot}%{_var}/cache/jellyfin
|
|
|
|
|
%{__mkdir} -p %{buildroot}%{_var}/log/jellyfin
|
|
|
|
|
|
|
|
|
|
# jellyfin-server-lowports subpackage
|
|
|
|
|
%{__install} -D -m 0644 %{SOURCE17} %{buildroot}%{_unitdir}/jellyfin.service.d/jellyfin-server-lowports.conf
|
|
|
|
|
|
|
|
|
|
%{__install} -D -m 0644 %{SOURCE11} %{buildroot}%{_unitdir}/jellyfin.service
|
|
|
|
|
%{__install} -D -m 0644 %{SOURCE12} %{buildroot}%{_sysconfdir}/sysconfig/jellyfin
|
|
|
|
|
%{__install} -D -m 0600 %{SOURCE13} %{buildroot}%{_sysconfdir}/sudoers.d/jellyfin-sudoers
|
|
|
|
|
%{__install} -D -m 0755 %{SOURCE14} %{buildroot}%{_libexecdir}/jellyfin/restart.sh
|
|
|
|
|
%{__install} -D -m 0644 %{SOURCE16} %{buildroot}%{_prefix}/lib/firewalld/services/jellyfin.xml
|
|
|
|
|
|
|
|
|
|
%files
|
|
|
|
|
# empty as this is just a meta-package
|
|
|
|
|
|
|
|
|
|
%files server
|
|
|
|
|
%attr(755,root,root) %{_bindir}/jellyfin
|
|
|
|
|
%{_libdir}/jellyfin/*
|
|
|
|
|
%defattr(644,root,root,755)
|
|
|
|
|
|
|
|
|
|
# Jellyfin files
|
|
|
|
|
%{_bindir}/jellyfin
|
|
|
|
|
# Needs 755 else only root can run it since binary build by dotnet is 722
|
|
|
|
|
%attr(755,root,root) %{_libdir}/jellyfin/createdump
|
|
|
|
|
%attr(755,root,root) %{_libdir}/jellyfin/jellyfin
|
|
|
|
|
%{_unitdir}/jellyfin.service
|
|
|
|
|
%{_libexecdir}/jellyfin/restart.sh
|
|
|
|
|
%{_prefix}/lib/firewalld/services/jellyfin.xml
|
|
|
|
|
%attr(755,jellyfin,jellyfin) %dir %{_sysconfdir}/jellyfin
|
|
|
|
|
%{_libdir}/jellyfin/*
|
|
|
|
|
%attr(755,root,root) %{_libexecdir}/jellyfin/restart.sh
|
|
|
|
|
|
|
|
|
|
# Jellyfin config
|
|
|
|
|
%config(noreplace) %attr(644,jellyfin,jellyfin) %{_sysconfdir}/jellyfin/logging.json
|
|
|
|
|
%config %{_sysconfdir}/sysconfig/jellyfin
|
|
|
|
|
|
|
|
|
|
# system config
|
|
|
|
|
%{_prefix}/lib/firewalld/services/jellyfin.xml
|
|
|
|
|
%{_unitdir}/jellyfin.service
|
|
|
|
|
%config(noreplace) %attr(600,root,root) %{_sysconfdir}/sudoers.d/jellyfin-sudoers
|
|
|
|
|
%config(noreplace) %{_sysconfdir}/systemd/system/jellyfin.service.d/override.conf
|
|
|
|
|
%config(noreplace) %attr(644,jellyfin,jellyfin) %{_sysconfdir}/jellyfin/logging.json
|
|
|
|
|
|
|
|
|
|
# empty directories
|
|
|
|
|
%attr(750,jellyfin,jellyfin) %dir %{_sharedstatedir}/jellyfin
|
|
|
|
|
%attr(-,jellyfin,jellyfin) %dir %{_var}/log/jellyfin
|
|
|
|
|
%attr(755,jellyfin,jellyfin) %dir %{_sysconfdir}/jellyfin
|
|
|
|
|
%attr(750,jellyfin,jellyfin) %dir %{_var}/cache/jellyfin
|
|
|
|
|
%{_datadir}/licenses/jellyfin/LICENSE
|
|
|
|
|
%attr(-, jellyfin,jellyfin) %dir %{_var}/log/jellyfin
|
|
|
|
|
|
|
|
|
|
%license LICENSE
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%files server-lowports
|
|
|
|
|
%{_unitdir}/jellyfin.service.d/jellyfin-server-lowports.conf
|
|
|
|
|