Add rpm build script for fedora and update README

Signed-off-by: Thomas Büttner <thomas@vergesslicher.tech>
pull/702/head
Thomas Büttner 6 years ago
parent 7f4a073b05
commit ad36f9ec89

@ -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 \;

@ -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 ## 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 ```shell
# ffmpeg from RPMfusion free # ffmpeg from RPMfusion free
# Fedora # Fedora
$ sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm $ 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 $ sudo yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
``` ```
## ISO mounting ## 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/mount
# %jellyfin ALL=(ALL) NOPASSWD: /bin/umount # %jellyfin ALL=(ALL) NOPASSWD: /bin/umount
``` ```
## Database patching ## Database patching
You may need to install sqlite since CentOS has no `Recommends:` with `yum install sqlite`. 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: To fix the paths in the emby database for a migration to jellyfin run the script:
```shell ```shell

@ -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 ../../
Loading…
Cancel
Save