Merge pull request #4 from brianjmurrell/fix-copr

Support building jellyfin-web webpack
This commit is contained in:
Joshua M. Boniface 2019-10-17 09:27:13 -04:00 committed by GitHub
commit e211f821c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 93 additions and 64 deletions

View File

@ -1,14 +1,19 @@
srpm: VERSION := $(shell sed -ne '/^Version:/s/.* *//p' \
dnf -y install git deployment/fedora-package-x64/pkg-src/jellyfin.spec)
git submodule update --init --recursive
deployment/fedora-package-x64/pkg-src/jellyfin-web-$(VERSION).tar.gz:
curl -f -L -o deployment/fedora-package-x64/pkg-src/jellyfin-web-$(VERSION).tar.gz \
https://github.com/jellyfin/jellyfin-web/archive/v$(VERSION).tar.gz
srpm: deployment/fedora-package-x64/pkg-src/jellyfin-web-$(VERSION).tar.gz
cd deployment/fedora-package-x64; \ cd deployment/fedora-package-x64; \
WORKDIR="$( pwd )"; \ SOURCE_DIR=../.. \
VERSION="$( sed -ne '/^Version:/s/.* *//p' "${WORKDIR}"/pkg-src/jellyfin.spec )"; \ WORKDIR="$${PWD}"; \
package_temporary_dir="${WORKDIR}/pkg-dist-tmp"; \ package_temporary_dir="$${WORKDIR}/pkg-dist-tmp"; \
pkg_src_dir="${WORKDIR}/pkg-src"; \ pkg_src_dir="$${WORKDIR}/pkg-src"; \
GNU_TAR=1; \ GNU_TAR=1; \
tar \ tar \
--transform "s,^\.,jellyfin-${VERSION}," \ --transform "s,^\.,jellyfin-$(VERSION)," \
--exclude='.git*' \ --exclude='.git*' \
--exclude='**/.git' \ --exclude='**/.git' \
--exclude='**/.hg' \ --exclude='**/.hg' \
@ -20,11 +25,11 @@ srpm:
--exclude='**/.nuget' \ --exclude='**/.nuget' \
--exclude='*.deb' \ --exclude='*.deb' \
--exclude='*.rpm' \ --exclude='*.rpm' \
-czf "${SOURCE_DIR}/SOURCES/pkg-src/jellyfin-${VERSION}.tar.gz" \ -czf "pkg-src/jellyfin-$(VERSION).tar.gz" \
-C ${SOURCE_DIR} ./ || GNU_TAR=0; \ -C $${SOURCE_DIR} ./ || GNU_TAR=0; \
if [ $GNU_TAR -eq 0 ]; then if [ $${GNU_TAR} -eq 0 ]; then \
package_temporary_dir="$( mktemp -d )"; \ package_temporary_dir="$$(mktemp -d)"; \
mkdir -p "${package_temporary_dir}/jellyfin"; \ mkdir -p "$${package_temporary_dir}/jellyfin"; \
tar \ tar \
--exclude='.git*' \ --exclude='.git*' \
--exclude='**/.git' \ --exclude='**/.git' \
@ -37,13 +42,15 @@ srpm:
--exclude='**/.nuget' \ --exclude='**/.nuget' \
--exclude='*.deb' \ --exclude='*.deb' \
--exclude='*.rpm' \ --exclude='*.rpm' \
-czf "${package_temporary_dir}/jellyfin/jellyfin-${VERSION}.tar.gz" \ -czf "$${package_temporary_dir}/jellyfin/jellyfin-$(VERSION).tar.gz" \
-C ${SOURCE_DIR} ./; \ -C $${SOURCE_DIR} ./; \
mkdir -p "${package_temporary_dir}/jellyfin-${VERSION}"; \ mkdir -p "$${package_temporary_dir}/jellyfin-$(VERSION)"; \
tar -xzf "${package_temporary_dir}/jellyfin/jellyfin-${VERSION}.tar.gz" -C "${package_temporary_dir}/jellyfin-${VERSION}"; \ tar -xzf "$${package_temporary_dir}/jellyfin/jellyfin-$(VERSION).tar.gz" \
rm -f "${package_temporary_dir}/jellyfin/jellyfin-${VERSION}.tar.gz"; \ -C "$${package_temporary_dir}/jellyfin-$(VERSION); \
tar -czf "${SOURCE_DIR}/SOURCES/pkg-src/jellyfin-${VERSION}.tar.gz" -C "${package_temporary_dir}" "jellyfin-${VERSION}"; \ rm -f "$${package_temporary_dir}/jellyfin/jellyfin-$(VERSION).tar.gz"; \
rm -rf ${package_temporary_dir}; \ tar -czf "$${SOURCE_DIR}/SOURCES/pkg-src/jellyfin-$(VERSION).tar.gz" \
-C "$${package_temporary_dir}" "jellyfin-$(VERSION); \
rm -rf $${package_temporary_dir}; \
fi; \ fi; \
rpmbuild -bs pkg-src/jellyfin.spec \ rpmbuild -bs pkg-src/jellyfin.spec \
--define "_sourcedir $$PWD/pkg-src/" \ --define "_sourcedir $$PWD/pkg-src/" \

View File

@ -13,20 +13,29 @@ Summary: The Free Software Media Browser
License: GPLv2 License: GPLv2
URL: https://jellyfin.media URL: https://jellyfin.media
Source0: %{name}-%{version}.tar.gz Source0: %{name}-%{version}.tar.gz
Source1: jellyfin.service Source1: https://github.com/%{name}/%{name}-web/archive/%{name}-web-%{version}.tar.gz
Source2: jellyfin.env Source11: jellyfin.service
Source3: jellyfin.sudoers Source12: jellyfin.env
Source4: restart.sh Source13: jellyfin.sudoers
Source5: jellyfin.override.conf Source14: restart.sh
Source6: jellyfin-firewalld.xml Source15: jellyfin.override.conf
Source16: jellyfin-firewalld.xml
%{?systemd_requires} %{?systemd_requires}
BuildRequires: systemd BuildRequires: systemd
Requires(pre): shadow-utils Requires(pre): shadow-utils
BuildRequires: libcurl-devel, fontconfig-devel, freetype-devel, openssl-devel, glibc-devel, libicu-devel BuildRequires: libcurl-devel, fontconfig-devel, freetype-devel, openssl-devel, glibc-devel, libicu-devel
%if 0%{?fedora}
BuildRequires: nodejs-yarn
%else
# Requirements not packaged in main repos
# From https://rpm.nodesource.com/pub_8.x/el/7/x86_64/
BuildRequires: nodejs >= 8 yarn
%endif
Requires: libcurl, fontconfig, freetype, openssl, glibc libicu Requires: libcurl, fontconfig, freetype, openssl, glibc libicu
# Requirements not packaged in main repos # Requirements not packaged in main repos
# COPR @dotnet-sig/dotnet # COPR @dotnet-sig/dotnet or
# https://packages.microsoft.com/rhel/7/prod/
BuildRequires: dotnet-runtime-2.2, dotnet-sdk-2.2 BuildRequires: dotnet-runtime-2.2, dotnet-sdk-2.2
# RPMfusion free # RPMfusion free
Requires: ffmpeg Requires: ffmpeg
@ -42,7 +51,18 @@ Jellyfin is a free software media system that puts you in control of managing an
%prep %prep
%autosetup -n %{name}-%{version} %autosetup -n %{name}-%{version} -b 0 -b 1
web_build_dir="$(mktemp -d)"
web_target="$PWD/MediaBrowser.WebDashboard/jellyfin-web"
pushd ../jellyfin-web-%{version}
%if 0%{?fedora}
nodejs-yarn install
%else
yarn install
%endif
mkdir -p ${web_target}
mv dist/* ${web_target}/
popd
%build %build
@ -52,7 +72,7 @@ export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
dotnet publish --configuration Release --output='%{buildroot}%{_libdir}/jellyfin' --self-contained --runtime %{dotnet_runtime} \ dotnet publish --configuration Release --output='%{buildroot}%{_libdir}/jellyfin' --self-contained --runtime %{dotnet_runtime} \
"-p:GenerateDocumentationFile=false;DebugSymbols=false;DebugType=none" Jellyfin.Server "-p:GenerateDocumentationFile=false;DebugSymbols=false;DebugType=none" Jellyfin.Server
%{__install} -D -m 0644 LICENSE %{buildroot}%{_datadir}/licenses/%{name}/LICENSE %{__install} -D -m 0644 LICENSE %{buildroot}%{_datadir}/licenses/%{name}/LICENSE
%{__install} -D -m 0644 %{SOURCE5} %{buildroot}%{_sysconfdir}/systemd/system/%{name}.service.d/override.conf %{__install} -D -m 0644 %{SOURCE15} %{buildroot}%{_sysconfdir}/systemd/system/%{name}.service.d/override.conf
%{__install} -D -m 0644 Jellyfin.Server/Resources/Configuration/logging.json %{buildroot}%{_sysconfdir}/%{name}/logging.json %{__install} -D -m 0644 Jellyfin.Server/Resources/Configuration/logging.json %{buildroot}%{_sysconfdir}/%{name}/logging.json
%{__mkdir} -p %{buildroot}%{_bindir} %{__mkdir} -p %{buildroot}%{_bindir}
tee %{buildroot}%{_bindir}/jellyfin << EOF tee %{buildroot}%{_bindir}/jellyfin << EOF
@ -64,11 +84,11 @@ EOF
%{__mkdir} -p %{buildroot}%{_var}/log/jellyfin %{__mkdir} -p %{buildroot}%{_var}/log/jellyfin
%{__mkdir} -p %{buildroot}%{_var}/cache/jellyfin %{__mkdir} -p %{buildroot}%{_var}/cache/jellyfin
%{__install} -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service %{__install} -D -m 0644 %{SOURCE11} %{buildroot}%{_unitdir}/%{name}.service
%{__install} -D -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/%{name} %{__install} -D -m 0644 %{SOURCE12} %{buildroot}%{_sysconfdir}/sysconfig/%{name}
%{__install} -D -m 0600 %{SOURCE3} %{buildroot}%{_sysconfdir}/sudoers.d/%{name}-sudoers %{__install} -D -m 0600 %{SOURCE13} %{buildroot}%{_sysconfdir}/sudoers.d/%{name}-sudoers
%{__install} -D -m 0755 %{SOURCE4} %{buildroot}%{_libexecdir}/%{name}/restart.sh %{__install} -D -m 0755 %{SOURCE14} %{buildroot}%{_libexecdir}/%{name}/restart.sh
%{__install} -D -m 0644 %{SOURCE6} %{buildroot}%{_prefix}/lib/firewalld/services/%{name}.xml %{__install} -D -m 0644 %{SOURCE16} %{buildroot}%{_prefix}/lib/firewalld/services/%{name}.xml
%files %files
%{_libdir}/%{name}/jellyfin-web/* %{_libdir}/%{name}/jellyfin-web/*
@ -140,6 +160,8 @@ fi
%systemd_postun_with_restart jellyfin.service %systemd_postun_with_restart jellyfin.service
%changelog %changelog
* Thu Oct 17 2019 Brian J. Murrell <brian@interlinx.bc.ca> 10.4.0-1
- Build with new jellyfin-web webpack
* Sat Aug 31 2019 Jellyfin Packaging Team <packaging@jellyfin.org> * Sat Aug 31 2019 Jellyfin Packaging Team <packaging@jellyfin.org>
- New upstream version 10.4.0; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.4.0 - New upstream version 10.4.0; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.4.0
* Wed Jul 24 2019 Jellyfin Packaging Team <packaging@jellyfin.org> * Wed Jul 24 2019 Jellyfin Packaging Team <packaging@jellyfin.org>