Browse Source

Add rpm build script for fedora and update README

Signed-off-by: Thomas Büttner <thomas@vergesslicher.tech>
Thomas Büttner 6 years ago
parent
commit
ad36f9ec89
3 changed files with 51 additions and 6 deletions
  1. 17 0
      rpm-package/Dockerfile.fedora_package
  2. 10 6
      rpm-package/README.md
  3. 24 0
      rpm-package/build-fedora-rpm.sh

+ 17 - 0
rpm-package/Dockerfile.fedora_package

@@ -0,0 +1,17 @@
+FROM fedora:29
+ARG HOME=/build
+RUN mkdir /build && \
+    dnf install -y @buildsys-build rpmdevtools dnf-plugins-core && \
+    dnf copr enable -y @dotnet-sig/dotnet && \
+    rpmdev-setuptree
+
+WORKDIR /build/rpmbuild
+COPY jellyfin.spec SPECS
+COPY . SOURCES
+
+RUN spectool -g -R SPECS/jellyfin.spec && \
+    rpmbuild -bs SPECS/jellyfin.spec && \
+    dnf build-dep -y SRPMS/jellyfin-*.src.rpm && \
+    rpmbuild -bb SPECS/jellyfin.spec && \
+    mkdir /jellyfin && \
+    find . -name 'jellyfin-*.rpm' -print -exec cp {} /jellyfin \;

+ 10 - 6
rpm-package/README.md

@@ -1,29 +1,33 @@
-# unoffical jellyfin RPM
+# Jellyfin RPM
 
-<a href="https://copr.fedorainfracloud.org/coprs/wuerfelbecher/jellyfin/package/jellyfin/"><img src="https://copr.fedorainfracloud.org/coprs/wuerfelbecher/jellyfin/package/jellyfin/status_image/last_build.png" /></a>
+## Build Fedora Package with docker
+
+Change into this directory `cd rpm-package`
+Run the build script `./build-fedora-rpm.sh`.
+Resulting RPM and src.rpm will be in `../../jellyfin-*.rpm`
 
 ## ffmpeg
 
-The RPM package for Fedora/CentOS requires some additional repos as ffmpeg is not in the main repositories.
+The RPM package for Fedora/CentOS requires some additional repositories as ffmpeg is not in the main repositories.
 
 ```shell
 # ffmpeg from RPMfusion free
 # Fedora
 $ sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
-# CentOS 7 
+# CentOS 7
 $ sudo yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
 ```
 
 ## ISO mounting
 
-To allow jellyfin to mount/umonut ISO files uncomment these two lines in `/etc/sudoers.d/jellyfin-sudoers`
+To allow Jellyfin to mount/umonut ISO files uncomment these two lines in `/etc/sudoers.d/jellyfin-sudoers`
 ```
 # %jellyfin ALL=(ALL) NOPASSWD: /bin/mount
 # %jellyfin ALL=(ALL) NOPASSWD: /bin/umount
 ```
 
-
 ## Database patching
+
 You may need to install sqlite since CentOS has no `Recommends:` with `yum install sqlite`.
 To fix the paths in the emby database for a migration to jellyfin run the script:
 ```shell

+ 24 - 0
rpm-package/build-fedora-rpm.sh

@@ -0,0 +1,24 @@
+#!/usr/bin/env sh
+
+# Build a Jellyfin .rpm file with Docker on Linux
+# Places the output .rpm file in the parent directory
+
+set -o errexit
+set -o xtrace
+set -o nounset
+
+package_temporary_dir="`mktemp -d`"
+current_user="`whoami`"
+image_name="jellyfin-rpmbuild"
+
+cleanup() {
+    set +o errexit
+    docker image rm $image_name --force
+    rm -rf "$package_temporary_dir"
+}
+trap cleanup EXIT INT
+
+docker build . -t "$image_name" -f ./Dockerfile.fedora_package
+docker run --rm -v "$package_temporary_dir:/temp" "$image_name" cp -r /jellyfin /temp/
+sudo chown -R "$current_user" "$package_temporary_dir"
+mv "$package_temporary_dir"/jellyfin/*.rpm ../../