aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
l---------.copr1
-rw-r--r--Dockerfile87
-rw-r--r--Dockerfile.arm74
-rw-r--r--Dockerfile.arm6474
l---------build1
-rwxr-xr-xbuild.sh114
-rw-r--r--build.yaml18
-rwxr-xr-xbump_version129
-rw-r--r--debian/changelog89
-rw-r--r--debian/compat1
-rw-r--r--debian/conf/jellyfin53
-rw-r--r--debian/conf/jellyfin.service.conf55
-rw-r--r--debian/conf/logging.json30
-rw-r--r--debian/control27
-rw-r--r--debian/copyright29
-rw-r--r--debian/gbp.conf6
-rw-r--r--debian/install4
-rw-r--r--debian/jellyfin.init62
-rw-r--r--debian/jellyfin.service17
-rw-r--r--debian/jellyfin.upstart20
-rw-r--r--debian/metapackage/jellyfin13
-rw-r--r--debian/po/POTFILES.in1
-rw-r--r--debian/po/templates.pot57
-rw-r--r--debian/postinst102
-rw-r--r--debian/postrm81
-rw-r--r--debian/preinst78
-rw-r--r--debian/prerm61
-rwxr-xr-xdebian/rules55
-rw-r--r--debian/source.lintian-overrides3
-rw-r--r--debian/source/format1
-rw-r--r--debian/source/options11
-rw-r--r--deployment/Dockerfile.centos.amd6439
-rw-r--r--deployment/Dockerfile.debian.amd6433
-rw-r--r--deployment/Dockerfile.debian.arm6446
-rw-r--r--deployment/Dockerfile.debian.armhf47
-rw-r--r--deployment/Dockerfile.docker.amd6412
-rw-r--r--deployment/Dockerfile.docker.arm6412
-rw-r--r--deployment/Dockerfile.docker.armhf12
-rw-r--r--deployment/Dockerfile.fedora.amd6439
-rw-r--r--deployment/Dockerfile.linux.amd6433
-rw-r--r--deployment/Dockerfile.linux.amd64-musl33
-rw-r--r--deployment/Dockerfile.linux.arm6433
-rw-r--r--deployment/Dockerfile.linux.armhf33
-rw-r--r--deployment/Dockerfile.linux.musl-linux-arm6433
-rw-r--r--deployment/Dockerfile.macos.amd6433
-rw-r--r--deployment/Dockerfile.macos.arm6433
-rw-r--r--deployment/Dockerfile.portable32
-rw-r--r--deployment/Dockerfile.ubuntu.amd6433
-rw-r--r--deployment/Dockerfile.ubuntu.arm6456
-rw-r--r--deployment/Dockerfile.ubuntu.armhf56
-rw-r--r--deployment/Dockerfile.windows.amd6432
-rwxr-xr-xdeployment/build.centos.amd6459
-rwxr-xr-xdeployment/build.debian.amd6437
-rwxr-xr-xdeployment/build.debian.arm6438
-rwxr-xr-xdeployment/build.debian.armhf38
-rwxr-xr-xdeployment/build.fedora.amd6459
-rwxr-xr-xdeployment/build.linux.amd6431
-rwxr-xr-xdeployment/build.linux.amd64-musl31
-rwxr-xr-xdeployment/build.linux.arm6431
-rwxr-xr-xdeployment/build.linux.armhf31
-rwxr-xr-xdeployment/build.linux.musl-linux-arm6431
-rwxr-xr-xdeployment/build.macos.amd6431
-rwxr-xr-xdeployment/build.macos.arm6431
-rwxr-xr-xdeployment/build.portable31
-rwxr-xr-xdeployment/build.ubuntu.amd6437
-rwxr-xr-xdeployment/build.ubuntu.arm6438
-rwxr-xr-xdeployment/build.ubuntu.armhf38
-rwxr-xr-xdeployment/build.windows.amd6452
-rw-r--r--fedora/.gitignore3
-rw-r--r--fedora/Makefile52
-rw-r--r--fedora/README.md39
-rw-r--r--fedora/jellyfin-firewalld.xml9
-rw-r--r--fedora/jellyfin-selinux-launcher.sh3
-rw-r--r--fedora/jellyfin-server-lowports.conf4
-rw-r--r--fedora/jellyfin.env44
-rw-r--r--fedora/jellyfin.override.conf53
-rw-r--r--fedora/jellyfin.service17
-rw-r--r--fedora/jellyfin.spec197
78 files changed, 0 insertions, 3099 deletions
diff --git a/.copr b/.copr
deleted file mode 120000
index 100fe0cd7..000000000
--- a/.copr
+++ /dev/null
@@ -1 +0,0 @@
-fedora \ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index 550c3203d..000000000
--- a/Dockerfile
+++ /dev/null
@@ -1,87 +0,0 @@
-# DESIGNED FOR BUILDING ON AMD64 ONLY
-#####################################
-# Requires binfm_misc registration
-# https://github.com/multiarch/qemu-user-static#binfmt_misc-register
-ARG DOTNET_VERSION=8.0
-
-FROM node:20-alpine as web-builder
-ARG JELLYFIN_WEB_VERSION=master
-RUN apk add curl git zlib zlib-dev autoconf g++ make libpng-dev gifsicle alpine-sdk automake libtool make gcc musl-dev nasm python3 \
- && curl -L https://github.com/jellyfin/jellyfin-web/archive/${JELLYFIN_WEB_VERSION}.tar.gz | tar zxf - \
- && apk del curl \
- && cd jellyfin-web-* \
- && npm ci --no-audit --unsafe-perm \
- && npm run build:production \
- && mv dist /dist
-
-FROM debian:bookworm-slim as app
-
-# https://askubuntu.com/questions/972516/debian-frontend-environment-variable
-ARG DEBIAN_FRONTEND="noninteractive"
-# http://stackoverflow.com/questions/48162574/ddg#49462622
-ARG APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn
-# https://github.com/NVIDIA/nvidia-docker/wiki/Installation-(Native-GPU-Support)
-ENV NVIDIA_VISIBLE_DEVICES="all"
-ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility"
-
-ENV JELLYFIN_DATA_DIR=/config
-ENV JELLYFIN_CACHE_DIR=/cache
-
-# https://github.com/intel/compute-runtime/releases
-ARG GMMLIB_VERSION=22.3.11.ci17757293
-ARG IGC_VERSION=1.0.15136.22
-ARG NEO_VERSION=23.39.27427.23
-ARG LEVEL_ZERO_VERSION=1.3.27427.23
-
-RUN apt-get update \
- && apt-get install --no-install-recommends --no-install-suggests -y ca-certificates gnupg curl \
- && curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/debian-jellyfin.gpg \
- && echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release ) $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release ) main" | tee /etc/apt/sources.list.d/jellyfin.list \
- && apt-get update \
- && apt-get install --no-install-recommends --no-install-suggests -y mesa-va-drivers jellyfin-ffmpeg6 openssl locales \
-# Intel VAAPI Tone mapping dependencies:
-# Prefer NEO to Beignet since the latter one doesn't support Comet Lake or newer for now.
-# Do not use the intel-opencl-icd package from repo since they will not build with RELEASE_WITH_REGKEYS enabled.
- && mkdir intel-compute-runtime \
- && cd intel-compute-runtime \
- && curl -LO https://github.com/intel/intel-graphics-compiler/releases/download/igc-${IGC_VERSION}/intel-igc-core_${IGC_VERSION}_amd64.deb \
- -LO https://github.com/intel/intel-graphics-compiler/releases/download/igc-${IGC_VERSION}/intel-igc-opencl_${IGC_VERSION}_amd64.deb \
- -LO https://github.com/intel/compute-runtime/releases/download/${NEO_VERSION}/intel-level-zero-gpu_${LEVEL_ZERO_VERSION}_amd64.deb \
- -LO https://github.com/intel/compute-runtime/releases/download/${NEO_VERSION}/intel-opencl-icd_${NEO_VERSION}_amd64.deb \
- -LO https://github.com/intel/compute-runtime/releases/download/${NEO_VERSION}/libigdgmm12_${GMMLIB_VERSION}_amd64.deb \
- && dpkg -i *.deb \
- && cd .. \
- && rm -rf intel-compute-runtime \
- && apt-get remove gnupg -y \
- && apt-get clean autoclean -y \
- && apt-get autoremove -y \
- && rm -rf /var/lib/apt/lists/* \
- && mkdir -p ${JELLYFIN_DATA_DIR} ${JELLYFIN_CACHE_DIR} \
- && chmod 777 ${JELLYFIN_DATA_DIR} ${JELLYFIN_CACHE_DIR} \
- && sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && locale-gen
-
-ENV LC_ALL=en_US.UTF-8
-ENV LANG=en_US.UTF-8
-ENV LANGUAGE=en_US:en
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION} as builder
-WORKDIR /repo
-COPY . .
-ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
-
-RUN dotnet publish Jellyfin.Server --configuration Release --output="/jellyfin" --self-contained --runtime linux-x64 -p:DebugSymbols=false -p:DebugType=none
-
-FROM app
-
-ENV HEALTHCHECK_URL=http://localhost:8096/health
-
-COPY --from=builder /jellyfin /jellyfin
-COPY --from=web-builder /dist /jellyfin/jellyfin-web
-
-EXPOSE 8096
-VOLUME ${JELLYFIN_DATA_DIR} ${JELLYFIN_CACHE_DIR}
-ENTRYPOINT [ "./jellyfin/jellyfin", \
- "--ffmpeg", "/usr/lib/jellyfin-ffmpeg/ffmpeg" ]
-
-HEALTHCHECK --interval=30s --timeout=30s --start-period=10s --retries=3 \
- CMD curl -Lk -fsS "${HEALTHCHECK_URL}" || exit 1
diff --git a/Dockerfile.arm b/Dockerfile.arm
deleted file mode 100644
index 07039e43b..000000000
--- a/Dockerfile.arm
+++ /dev/null
@@ -1,74 +0,0 @@
-# DESIGNED FOR BUILDING ON ARM ONLY
-#####################################
-# Requires binfm_misc registration
-# https://github.com/multiarch/qemu-user-static#binfmt_misc-register
-ARG DOTNET_VERSION=8.0
-
-FROM node:20-alpine as web-builder
-ARG JELLYFIN_WEB_VERSION=master
-RUN apk add curl git zlib zlib-dev autoconf g++ make libpng-dev gifsicle alpine-sdk automake libtool make gcc musl-dev nasm python3 \
- && curl -L https://github.com/jellyfin/jellyfin-web/archive/${JELLYFIN_WEB_VERSION}.tar.gz | tar zxf - \
- && apk del curl \
- && cd jellyfin-web-* \
- && npm ci --no-audit --unsafe-perm \
- && npm run build:production \
- && mv dist /dist
-
-FROM multiarch/qemu-user-static:x86_64-arm as qemu
-FROM arm32v7/debian:bookworm-slim as app
-
-# https://askubuntu.com/questions/972516/debian-frontend-environment-variable
-ARG DEBIAN_FRONTEND="noninteractive"
-# http://stackoverflow.com/questions/48162574/ddg#49462622
-ARG APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn
-# https://github.com/NVIDIA/nvidia-docker/wiki/Installation-(Native-GPU-Support)
-ENV NVIDIA_VISIBLE_DEVICES="all"
-ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility"
-
-ENV JELLYFIN_DATA_DIR=/config
-ENV JELLYFIN_CACHE_DIR=/cache
-
-COPY --from=qemu /usr/bin/qemu-arm-static /usr/bin
-
-RUN apt-get update \
- && apt-get install --no-install-recommends --no-install-suggests -y ca-certificates gnupg curl \
- && curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/debian-jellyfin.gpg \
- && curl -fsSL https://keyserver.ubuntu.com/pks/lookup?op=get\&search=0x6587ffd6536b8826e88a62547876ae518cbcf2f2 | gpg --dearmor -o /etc/apt/trusted.gpg.d/ubuntu-jellyfin.gpg \
- && echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release ) $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release ) main" | tee /etc/apt/sources.list.d/jellyfin.list \
- && apt-get update \
- && apt-get install --no-install-recommends --no-install-suggests -y \
- jellyfin-ffmpeg6 libssl-dev libfontconfig1 \
- libfreetype6 vainfo libva2 locales \
- && apt-get remove gnupg -y \
- && apt-get clean autoclean -y \
- && apt-get autoremove -y \
- && rm -rf /var/lib/apt/lists/* \
- && mkdir -p ${JELLYFIN_DATA_DIR} ${JELLYFIN_CACHE_DIR} \
- && chmod 777 ${JELLYFIN_DATA_DIR} ${JELLYFIN_CACHE_DIR} \
- && sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && locale-gen
-
-ENV LC_ALL=en_US.UTF-8
-ENV LANG=en_US.UTF-8
-ENV LANGUAGE=en_US:en
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION} as builder
-WORKDIR /repo
-COPY . .
-ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
-
-RUN dotnet publish Jellyfin.Server --configuration Release --output="/jellyfin" --self-contained --runtime linux-arm -p:DebugSymbols=false -p:DebugType=none
-
-FROM app
-
-ENV HEALTHCHECK_URL=http://localhost:8096/health
-
-COPY --from=builder /jellyfin /jellyfin
-COPY --from=web-builder /dist /jellyfin/jellyfin-web
-
-EXPOSE 8096
-VOLUME ${JELLYFIN_DATA_DIR} ${JELLYFIN_CACHE_DIR}
-ENTRYPOINT [ "/jellyfin/jellyfin", \
- "--ffmpeg", "/usr/lib/jellyfin-ffmpeg/ffmpeg" ]
-
-HEALTHCHECK --interval=30s --timeout=30s --start-period=10s --retries=3 \
- CMD curl -Lk -fsS "${HEALTHCHECK_URL}" || exit 1
diff --git a/Dockerfile.arm64 b/Dockerfile.arm64
deleted file mode 100644
index 54023794f..000000000
--- a/Dockerfile.arm64
+++ /dev/null
@@ -1,74 +0,0 @@
-# DESIGNED FOR BUILDING ON ARM64 ONLY
-#####################################
-# Requires binfm_misc registration
-# https://github.com/multiarch/qemu-user-static#binfmt_misc-register
-ARG DOTNET_VERSION=8.0
-
-FROM node:20-alpine as web-builder
-ARG JELLYFIN_WEB_VERSION=master
-RUN apk add curl git zlib zlib-dev autoconf g++ make libpng-dev gifsicle alpine-sdk automake libtool make gcc musl-dev nasm python3 \
- && curl -L https://github.com/jellyfin/jellyfin-web/archive/${JELLYFIN_WEB_VERSION}.tar.gz | tar zxf - \
- && apk del curl \
- && cd jellyfin-web-* \
- && npm ci --no-audit --unsafe-perm \
- && npm run build:production \
- && mv dist /dist
-
-FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu
-FROM arm64v8/debian:bookworm-slim as app
-
-# https://askubuntu.com/questions/972516/debian-frontend-environment-variable
-ARG DEBIAN_FRONTEND="noninteractive"
-# http://stackoverflow.com/questions/48162574/ddg#49462622
-ARG APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn
-# https://github.com/NVIDIA/nvidia-docker/wiki/Installation-(Native-GPU-Support)
-ENV NVIDIA_VISIBLE_DEVICES="all"
-ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility"
-
-ENV JELLYFIN_DATA_DIR=/config
-ENV JELLYFIN_CACHE_DIR=/cache
-
-COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin
-
-RUN apt-get update \
- && apt-get install --no-install-recommends --no-install-suggests -y ca-certificates gnupg curl \
- && curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/debian-jellyfin.gpg \
- && curl -fsSL https://keyserver.ubuntu.com/pks/lookup?op=get\&search=0x6587ffd6536b8826e88a62547876ae518cbcf2f2 | gpg --dearmor -o /etc/apt/trusted.gpg.d/ubuntu-jellyfin.gpg \
- && echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release ) $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release ) main" | tee /etc/apt/sources.list.d/jellyfin.list \
- && apt-get update \
- && apt-get install --no-install-recommends --no-install-suggests -y \
- jellyfin-ffmpeg6 locales libssl-dev libfontconfig1 \
- libfreetype6 libomxil-bellagio0 libomxil-bellagio-bin \
- && apt-get remove gnupg -y \
- && apt-get clean autoclean -y \
- && apt-get autoremove -y \
- && rm -rf /var/lib/apt/lists/* \
- && mkdir -p ${JELLYFIN_DATA_DIR} ${JELLYFIN_CACHE_DIR} \
- && chmod 777 ${JELLYFIN_DATA_DIR} ${JELLYFIN_CACHE_DIR} \
- && sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && locale-gen
-
-ENV LC_ALL=en_US.UTF-8
-ENV LANG=en_US.UTF-8
-ENV LANGUAGE=en_US:en
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION} as builder
-WORKDIR /repo
-COPY . .
-ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
-
-RUN dotnet publish Jellyfin.Server --configuration Release --output="/jellyfin" --self-contained --runtime linux-arm64 -p:DebugSymbols=false -p:DebugType=none
-
-FROM app
-
-ENV HEALTHCHECK_URL=http://localhost:8096/health
-
-COPY --from=builder /jellyfin /jellyfin
-COPY --from=web-builder /dist /jellyfin/jellyfin-web
-
-EXPOSE 8096
-VOLUME ${JELLYFIN_DATA_DIR} ${JELLYFIN_CACHE_DIR}
-ENTRYPOINT [ "/jellyfin/jellyfin", \
- "--ffmpeg", "/usr/lib/jellyfin-ffmpeg/ffmpeg" ]
-
-HEALTHCHECK --interval=30s --timeout=30s --start-period=10s --retries=3 \
- CMD curl -Lk -fsS "${HEALTHCHECK_URL}" || exit 1
diff --git a/build b/build
deleted file mode 120000
index c07a74de4..000000000
--- a/build
+++ /dev/null
@@ -1 +0,0 @@
-build.sh \ No newline at end of file
diff --git a/build.sh b/build.sh
deleted file mode 100755
index 1db02af98..000000000
--- a/build.sh
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/usr/bin/env bash
-
-# build.sh - Build Jellyfin binary packages
-# Part of the Jellyfin Project
-
-set -o errexit
-set -o pipefail
-
-usage() {
- echo -e "build.sh - Build Jellyfin binary packages"
- echo -e "Usage:"
- echo -e " $0 -t/--type <BUILD_TYPE> -p/--platform <PLATFORM> [-k/--keep-artifacts] [-l/--list-platforms]"
- echo -e "Notes:"
- echo -e " * BUILD_TYPE can be one of: [native, docker] and must be specified"
- echo -e " * native: Build using the build script in the host OS"
- echo -e " * docker: Build using the build script in a standardized Docker container"
- echo -e " * PLATFORM can be any platform shown by -l/--list-platforms and must be specified"
- echo -e " * If -k/--keep-artifacts is specified, transient artifacts (e.g. Docker containers) will be"
- echo -e " retained after the build is finished; the source directory will still be cleaned"
- echo -e " * If -l/--list-platforms is specified, all other arguments are ignored; the script will print"
- echo -e " the list of supported platforms and exit"
-}
-
-list_platforms() {
- declare -a platforms
- platforms=(
- $( find deployment -maxdepth 1 -mindepth 1 -name "build.*" | awk -F'.' '{ $1=""; printf $2; if ($3 != ""){ printf "." $3; }; if ($4 != ""){ printf "." $4; }; print ""; }' | sort )
- )
- echo -e "Valid platforms:"
- echo
- for platform in ${platforms[@]}; do
- echo -e "* ${platform} : $( grep '^#=' deployment/build.${platform} | sed 's/^#= //' )"
- done
-}
-
-do_build_native() {
- if [[ ! -f $( which dpkg ) || $( dpkg --print-architecture | head -1 ) != "${PLATFORM##*.}" ]]; then
- echo "Cross-building is not supported for native builds, use 'docker' builds on amd64 for cross-building."
- exit 1
- fi
- export IS_DOCKER=NO
- deployment/build.${PLATFORM}
-}
-
-do_build_docker() {
- if [[ -f $( which dpkg ) && $( dpkg --print-architecture | head -1 ) != "amd64" ]]; then
- echo "Docker-based builds only support amd64-based cross-building; use a 'native' build instead."
- exit 1
- fi
- if [[ ! -f deployment/Dockerfile.${PLATFORM} ]]; then
- echo "Missing Dockerfile for platform ${PLATFORM}"
- exit 1
- fi
- if [[ ${KEEP_ARTIFACTS} == YES ]]; then
- docker_args=""
- else
- docker_args="--rm"
- fi
-
- docker build . -t "jellyfin-builder.${PLATFORM}" -f deployment/Dockerfile.${PLATFORM}
- mkdir -p ${ARTIFACT_DIR}
- docker run $docker_args -v "${SOURCE_DIR}:/jellyfin" -v "${ARTIFACT_DIR}:/dist" "jellyfin-builder.${PLATFORM}"
-}
-
-while [[ $# -gt 0 ]]; do
- key="$1"
- case $key in
- -t|--type)
- BUILD_TYPE="$2"
- shift # past argument
- shift # past value
- ;;
- -p|--platform)
- PLATFORM="$2"
- shift # past argument
- shift # past value
- ;;
- -k|--keep-artifacts)
- KEEP_ARTIFACTS=YES
- shift # past argument
- ;;
- -l|--list-platforms)
- list_platforms
- exit 0
- ;;
- -h|--help)
- usage
- exit 0
- ;;
- *) # unknown option
- echo "Unknown option $1"
- usage
- exit 1
- ;;
- esac
-done
-
-if [[ -z ${BUILD_TYPE} || -z ${PLATFORM} ]]; then
- usage
- exit 1
-fi
-
-export SOURCE_DIR="$( pwd )"
-export ARTIFACT_DIR="${SOURCE_DIR}/../bin/${PLATFORM}"
-
-# Determine build type
-case ${BUILD_TYPE} in
- native)
- do_build_native
- ;;
- docker)
- do_build_docker
- ;;
-esac
diff --git a/build.yaml b/build.yaml
deleted file mode 100644
index 464caf328..000000000
--- a/build.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
----
-# We just wrap `build` so this is really it
-name: "jellyfin"
-version: "10.9.0"
-packages:
- - debian.amd64
- - debian.arm64
- - debian.armhf
- - ubuntu.amd64
- - ubuntu.arm64
- - ubuntu.armhf
- - fedora.amd64
- - centos.amd64
- - linux.amd64
- - windows.amd64
- - macos.amd64
- - macos.arm64
- - portable
diff --git a/bump_version b/bump_version
deleted file mode 100755
index dd55e62c7..000000000
--- a/bump_version
+++ /dev/null
@@ -1,129 +0,0 @@
-#!/usr/bin/env bash
-
-# bump_version - increase the shared version and generate changelogs
-
-set -o errexit
-set -o pipefail
-set -o xtrace
-
-usage() {
- echo -e "bump_version - increase the shared version and generate changelogs"
- echo -e ""
- echo -e "Usage:"
- echo -e " $ bump_version <new_version>"
-}
-
-if [[ -z $1 ]]; then
- usage
- exit 1
-fi
-
-shared_version_file="./SharedVersion.cs"
-build_file="./build.yaml"
-# csproj files for nuget packages
-jellyfin_subprojects=(
- MediaBrowser.Common/MediaBrowser.Common.csproj
- Jellyfin.Data/Jellyfin.Data.csproj
- MediaBrowser.Controller/MediaBrowser.Controller.csproj
- MediaBrowser.Model/MediaBrowser.Model.csproj
- Emby.Naming/Emby.Naming.csproj
- src/Jellyfin.Extensions/Jellyfin.Extensions.csproj
-)
-
-new_version="$1"
-
-# Parse the version from the AssemblyVersion
-old_version="$(
- grep "AssemblyVersion" ${shared_version_file} \
- | sed -E 's/\[assembly: ?AssemblyVersion\("([0-9\.]+)"\)\]/\1/'
-)"
-echo $old_version
-
-# Set the shared version to the specified new_version
-old_version_sed="$( sed 's/\./\\./g' <<<"${old_version}" )" # Escape the '.' chars
-new_version_sed="$( cut -f1 -d'-' <<<"${new_version}" )"
-sed -i "s/${old_version_sed}/${new_version_sed}/g" ${shared_version_file}
-
-old_version="$(
- grep "version:" ${build_file} \
- | sed -E 's/version: "([0-9\.]+[-a-z0-9]*)"/\1/'
-)"
-echo $old_version
-
-# Set the build.yaml version to the specified new_version
-old_version_sed="$( sed 's/\./\\./g' <<<"${old_version}" )" # Escape the '.' chars
-new_version_sed="$( cut -f1 -d'-' <<<"${new_version}" )"
-sed -i "s/${old_version_sed}/${new_version_sed}/g" ${build_file}
-
-# update nuget package version
-for subproject in ${jellyfin_subprojects[@]}; do
- echo ${subproject}
- # Parse the version from the *.csproj file
- old_version="$(
- grep "VersionPrefix" ${subproject} \
- | awk '{$1=$1};1' \
- | sed -E 's/<VersionPrefix>([0-9\.]+[-a-z0-9]*)<\/VersionPrefix>/\1/'
- )"
- echo old nuget version: $old_version
- new_version_sed="$( cut -f1 -d'-' <<<"${new_version}" )"
-
- # Set the nuget version to the specified new_version
- sed -i "s|${old_version}|${new_version_sed}|g" ${subproject}
-done
-
-if [[ ${new_version} == *"-"* ]]; then
- new_version_pkg="$( sed 's/-/~/g' <<<"${new_version}" )"
- new_version_deb_sup=""
-else
- new_version_pkg="${new_version}"
- new_version_deb_sup="-1"
-fi
-
-# Update the metapackage equivs file
-debian_equivs_file="debian/metapackage/jellyfin"
-sed -i "s/${old_version_sed}/${new_version_pkg}/g" ${debian_equivs_file}
-
-# Write out a temporary Debian changelog with our new stuff appended and some templated formatting
-debian_changelog_file="debian/changelog"
-debian_changelog_temp="$( mktemp )"
-# Create new temp file with our changelog
-echo -e "jellyfin-server (${new_version_pkg}${new_version_deb_sup}) unstable; urgency=medium
-
- * New upstream version ${new_version}; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v${new_version}
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> $( date --rfc-2822 )
-" >> ${debian_changelog_temp}
-cat ${debian_changelog_file} >> ${debian_changelog_temp}
-# Move into place
-mv ${debian_changelog_temp} ${debian_changelog_file}
-
-# Write out a temporary Dnf changelog with our new stuff prepended and some templated formatting
-fedora_spec_file="fedora/jellyfin.spec"
-fedora_changelog_temp="$( mktemp )"
-fedora_spec_temp_dir="$( mktemp -d )"
-fedora_spec_temp="${fedora_spec_temp_dir}/jellyfin.spec.tmp"
-# Make a copy of our spec file for hacking
-cp ${fedora_spec_file} ${fedora_spec_temp_dir}/
-pushd ${fedora_spec_temp_dir}
-# Split out the stuff before and after changelog
-csplit jellyfin.spec "/^%changelog/" # produces xx00 xx01
-# Update the version in xx00
-sed -i "s/${old_version_sed}/${new_version_pkg}/g" xx00
-# Remove the header from xx01
-sed -i '/^%changelog/d' xx01
-# Create new temp file with our changelog
-echo -e "%changelog
-* $( LANG=C date '+%a %b %d %Y' ) Jellyfin Packaging Team <packaging@jellyfin.org>
-- New upstream version ${new_version}; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v${new_version}" >> ${fedora_changelog_temp}
-cat xx01 >> ${fedora_changelog_temp}
-# Reassembble
-cat xx00 ${fedora_changelog_temp} > ${fedora_spec_temp}
-popd
-# Move into place
-mv ${fedora_spec_temp} ${fedora_spec_file}
-# Clean up
-rm -rf ${fedora_spec_temp_dir}
-
-# Stage the changed files for commit
-git add .
-git status -v
diff --git a/debian/changelog b/debian/changelog
deleted file mode 100644
index 0d744c02a..000000000
--- a/debian/changelog
+++ /dev/null
@@ -1,89 +0,0 @@
-jellyfin-server (10.9.0-1) unstable; urgency=medium
-
- * New upstream version 10.9.0; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.9.0
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> Wed, 13 Jul 2022 20:58:08 -0600
-
-jellyfin-server (10.8.0-1) unstable; urgency=medium
-
- * Forthcoming stable release
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> Fri, 04 Dec 2020 21:55:12 -0500
-
-jellyfin-server (10.7.0-1) unstable; urgency=medium
-
- * Forthcoming stable release
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> Mon, 27 Jul 2020 19:09:45 -0400
-
-jellyfin-server (10.6.0-2) unstable; urgency=medium
-
- * Fix upgrade bug
-
- -- Joshua Boniface <joshua@boniface.me> Sun, 19 Jul 22:47:27 -0400
-
-jellyfin-server (10.6.0-1) unstable; urgency=medium
-
- * Forthcoming stable release
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> Mon, 23 Mar 2020 14:46:05 -0400
-
-jellyfin (10.5.0-1) unstable; urgency=medium
-
- * New upstream version 10.5.0; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.5.0
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> Fri, 11 Oct 2019 20:12:38 -0400
-
-jellyfin (10.4.0-1) unstable; urgency=medium
-
- * New upstream version 10.4.0; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.4.0
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> Sat, 31 Aug 2019 21:38:56 -0400
-
-jellyfin (10.3.7-1) unstable; urgency=medium
-
- * New upstream version 10.3.7; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.3.7
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> Wed, 24 Jul 2019 10:48:28 -0400
-
-jellyfin (10.3.6-1) unstable; urgency=medium
-
- * New upstream version 10.3.6; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.3.6
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> Sat, 06 Jul 2019 13:34:19 -0400
-
-jellyfin (10.3.5-1) unstable; urgency=medium
-
- * New upstream version 10.3.5; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.3.5
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> Sun, 09 Jun 2019 21:47:35 -0400
-
-jellyfin (10.3.4-1) unstable; urgency=medium
-
- * New upstream version 10.3.4; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.3.4
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> Thu, 06 Jun 2019 22:45:31 -0400
-
-jellyfin (10.3.3-1) unstable; urgency=medium
-
- * New upstream version 10.3.3; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.3.3
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> Fri, 17 May 2019 23:12:08 -0400
-
-jellyfin (10.3.2-1) unstable; urgency=medium
-
- * New upstream version 10.3.2; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.3.2
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> Tue, 30 Apr 2019 20:18:44 -0400
-
-jellyfin (10.3.1-1) unstable; urgency=medium
-
- * New upstream version 10.3.1; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.3.1
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> Sat, 20 Apr 2019 14:24:07 -0400
-
-jellyfin (10.3.0-1) unstable; urgency=medium
-
- * New upstream version 10.3.0; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.3.0
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> Fri, 19 Apr 2019 14:24:29 -0400
diff --git a/debian/compat b/debian/compat
deleted file mode 100644
index 45a4fb75d..000000000
--- a/debian/compat
+++ /dev/null
@@ -1 +0,0 @@
-8
diff --git a/debian/conf/jellyfin b/debian/conf/jellyfin
deleted file mode 100644
index af460fedc..000000000
--- a/debian/conf/jellyfin
+++ /dev/null
@@ -1,53 +0,0 @@
-# Jellyfin default configuration options
-# This is a POSIX shell fragment
-
-# Use this file to override the default configurations; add additional
-# options with JELLYFIN_ADD_OPTS.
-
-# Under systemd, use
-# /etc/systemd/system/jellyfin.service.d/jellyfin.service.conf
-# to override the user or this config file's location.
-
-#
-# General options
-#
-
-# Program directories
-JELLYFIN_DATA_DIR="/var/lib/jellyfin"
-JELLYFIN_CONFIG_DIR="/etc/jellyfin"
-JELLYFIN_LOG_DIR="/var/log/jellyfin"
-JELLYFIN_CACHE_DIR="/var/cache/jellyfin"
-
-# web client path, installed by the jellyfin-web package
-JELLYFIN_WEB_OPT="--webdir=/usr/share/jellyfin/web"
-
-# ffmpeg binary paths, overriding the system values
-JELLYFIN_FFMPEG_OPT="--ffmpeg=/usr/lib/jellyfin-ffmpeg/ffmpeg"
-
-# Disable glibc dynamic heap adjustment
-MALLOC_TRIM_THRESHOLD_=131072
-
-# [OPTIONAL] run Jellyfin as a headless service
-#JELLYFIN_SERVICE_OPT="--service"
-
-# [OPTIONAL] run Jellyfin without the web app
-#JELLYFIN_NOWEBAPP_OPT="--nowebclient"
-
-# Space to add additional command line options to jellyfin (for help see ~$ jellyfin --help)
-JELLYFIN_ADDITIONAL_OPTS=""
-
-# [OPTIONAL] run Jellyfin with ASP.NET Server Garbage Collection (uses more RAM and less CPU than Workstation GC)
-# 0 = Workstation
-# 1 = Server
-#COMPlus_gcServer=1
-
-#
-# SysV init/Upstart options
-#
-# Note: These options are ignored by systemd; use /etc/systemd/system/jellyfin.d overrides instead.
-#
-
-# Application username
-JELLYFIN_USER="jellyfin"
-# Full application command
-JELLYFIN_ARGS="$JELLYFIN_WEB_OPT $JELLYFIN_FFMPEG_OPT $JELLYFIN_SERVICE_OPT $JELLYFIN_NOWEBAPP_OPT $JELLFIN_ADDITIONAL_OPTS --datadir $JELLYFIN_DATA_DIR --configdir $JELLYFIN_CONFIG_DIR --logdir $JELLYFIN_LOG_DIR --cachedir $JELLYFIN_CACHE_DIR"
diff --git a/debian/conf/jellyfin.service.conf b/debian/conf/jellyfin.service.conf
deleted file mode 100644
index 1f92d7d94..000000000
--- a/debian/conf/jellyfin.service.conf
+++ /dev/null
@@ -1,55 +0,0 @@
-# Jellyfin systemd configuration options
-
-# Use this file to override the user or environment file location.
-
-[Service]
-# Alter the user that Jellyfin runs as
-#User = jellyfin
-
-# Alter where environment variables are sourced from
-#EnvironmentFile = /etc/default/jellyfin
-
-# Service hardening options
-# These were added in PR #6953 to solve issue #6952, but some combination of
-# them causes "restart.sh" functionality to break with the following error:
-# sudo: effective uid is not 0, is /usr/bin/sudo on a file system with the
-# 'nosuid' option set or an NFS file system without root privileges?
-# See issue #7503 for details on the troubleshooting that went into this.
-# Since these were added for NixOS specifically and are above and beyond
-# what 99% of systemd units do, they have been moved here as optional
-# additional flags to set for maximum system security and can be enabled at
-# the administrator's or package maintainer's discretion.
-# Uncomment these only if you know what you're doing, and doing so may cause
-# bugs with in-server Restart and potentially other functionality as well.
-#NoNewPrivileges=true
-#SystemCallArchitectures=native
-#RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK
-#RestrictNamespaces=false
-#RestrictRealtime=true
-#RestrictSUIDSGID=true
-#ProtectControlGroups=false
-#ProtectHostname=true
-#ProtectKernelLogs=false
-#ProtectKernelModules=false
-#ProtectKernelTunables=false
-#LockPersonality=true
-#PrivateTmp=false
-#PrivateDevices=false
-#PrivateUsers=true
-#RemoveIPC=true
-#SystemCallFilter=~@clock
-#SystemCallFilter=~@aio
-#SystemCallFilter=~@chown
-#SystemCallFilter=~@cpu-emulation
-#SystemCallFilter=~@debug
-#SystemCallFilter=~@keyring
-#SystemCallFilter=~@memlock
-#SystemCallFilter=~@module
-#SystemCallFilter=~@mount
-#SystemCallFilter=~@obsolete
-#SystemCallFilter=~@privileged
-#SystemCallFilter=~@raw-io
-#SystemCallFilter=~@reboot
-#SystemCallFilter=~@setuid
-#SystemCallFilter=~@swap
-#SystemCallErrorNumber=EPERM
diff --git a/debian/conf/logging.json b/debian/conf/logging.json
deleted file mode 100644
index f32b2089e..000000000
--- a/debian/conf/logging.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "Serilog": {
- "MinimumLevel": "Information",
- "WriteTo": [
- {
- "Name": "Console",
- "Args": {
- "outputTemplate": "[{Timestamp:HH:mm:ss}] [{Level:u3}] {Message:lj}{NewLine}{Exception}"
- }
- },
- {
- "Name": "Async",
- "Args": {
- "configure": [
- {
- "Name": "File",
- "Args": {
- "path": "%JELLYFIN_LOG_DIR%//jellyfin.log",
- "fileSizeLimitBytes": 10485700,
- "rollOnFileSizeLimit": true,
- "retainedFileCountLimit": 10,
- "outputTemplate": "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz}] [{Level:u3}] {Message}{NewLine}{Exception}"
- }
- }
- ]
- }
- }
- ]
- }
-}
diff --git a/debian/control b/debian/control
deleted file mode 100644
index 5e0460de9..000000000
--- a/debian/control
+++ /dev/null
@@ -1,27 +0,0 @@
-Source: jellyfin-server
-Section: misc
-Priority: optional
-Maintainer: Jellyfin Team <team@jellyfin.org>
-Build-Depends: debhelper (>= 9),
- dotnet-sdk-8.0,
- libc6-dev,
- libcurl4-openssl-dev,
- libfontconfig1-dev,
- libfreetype6-dev,
- libssl-dev
-Standards-Version: 3.9.4
-Homepage: https://jellyfin.org/
-Vcs-Git: https://github.org/jellyfin/jellyfin.git
-Vcs-Browser: https://github.org/jellyfin/jellyfin
-
-Package: jellyfin-server
-Replaces: jellyfin (<<10.6.0)
-Breaks: jellyfin (<<10.6.0)
-Architecture: any
-Depends: libsqlite3-0,
- libfontconfig1,
- libfreetype6,
- libssl1.1 | libssl3
-Recommends: jellyfin-web
-Description: Jellyfin is the Free Software Media System.
- This package provides the Jellyfin server backend and API.
diff --git a/debian/copyright b/debian/copyright
deleted file mode 100644
index 0d7a2a600..000000000
--- a/debian/copyright
+++ /dev/null
@@ -1,29 +0,0 @@
-Format: http://dep.debian.net/deps/dep5
-Upstream-Name: jellyfin
-Source: https://github.com/jellyfin/jellyfin
-
-Files: *
-Copyright: 2018 Jellyfin Team
-License: GPL-2.0+
-
-Files: debian/*
-Copyright: 2018 Joshua Boniface <joshua@boniface.me>
-Copyright: 2014 Carlos Hernandez <carlos@techbyte.ca>
-License: GPL-2.0+
-
-License: GPL-2.0+
- This package is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
- .
- This package is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- .
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>
- .
- On Debian systems, the complete text of the GNU General
- Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
diff --git a/debian/gbp.conf b/debian/gbp.conf
deleted file mode 100644
index 60b3d2872..000000000
--- a/debian/gbp.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-[DEFAULT]
-pristine-tar = False
-cleaner = fakeroot debian/rules clean
-
-[import-orig]
-filter = [ ".git*", ".hg*", ".vs*", ".vscode*" ]
diff --git a/debian/install b/debian/install
deleted file mode 100644
index 0b48dd7a2..000000000
--- a/debian/install
+++ /dev/null
@@ -1,4 +0,0 @@
-usr/lib/jellyfin usr/lib/
-debian/conf/jellyfin etc/default/
-debian/conf/logging.json etc/jellyfin/
-debian/conf/jellyfin.service.conf etc/systemd/system/jellyfin.service.d/
diff --git a/debian/jellyfin.init b/debian/jellyfin.init
deleted file mode 100644
index 784536d87..000000000
--- a/debian/jellyfin.init
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/sh
-### BEGIN INIT INFO
-# Provides: Jellyfin Media Server
-# Required-Start: $local_fs $network
-# Required-Stop: $local_fs
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: Jellyfin Media Server
-# Description: Runs Jellyfin Server
-### END INIT INFO
-
-set -e
-
-# Carry out specific functions when asked to by the system
-
-if test -f /etc/default/jellyfin; then
- . /etc/default/jellyfin
-fi
-
-. /lib/lsb/init-functions
-
-PIDFILE="/run/jellyfin.pid"
-
-case "$1" in
- start)
- log_daemon_msg "Starting Jellyfin Media Server" "jellyfin" || true
-
- if start-stop-daemon --start --quiet --oknodo --background --pidfile $PIDFILE --make-pidfile --user $JELLYFIN_USER --chuid $JELLYFIN_USER --exec /usr/bin/jellyfin -- $JELLYFIN_ARGS; then
- log_end_msg 0 || true
- else
- log_end_msg 1 || true
- fi
- ;;
-
- stop)
- log_daemon_msg "Stopping Jellyfin Media Server" "jellyfin" || true
- if start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE --remove-pidfile; then
- log_end_msg 0 || true
- else
- log_end_msg 1 || true
- fi
- ;;
-
- restart)
- log_daemon_msg "Restarting Jellyfin Media Server" "jellyfin" || true
- start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $PIDFILE --remove-pidfile
- if start-stop-daemon --start --quiet --oknodo --background --pidfile $PIDFILE --make-pidfile --user $JELLYFIN_USER --chuid $JELLYFIN_USER --exec /usr/bin/jellyfin -- $JELLYFIN_ARGS; then
- log_end_msg 0 || true
- else
- log_end_msg 1 || true
- fi
- ;;
-
- status)
- status_of_proc -p $PIDFILE /usr/bin/jellyfin jellyfin && exit 0 || exit $?
- ;;
-
- *)
- echo "Usage: $0 {start|stop|restart|status}"
- exit 1
- ;;
-esac
diff --git a/debian/jellyfin.service b/debian/jellyfin.service
deleted file mode 100644
index 2cc49f7c4..000000000
--- a/debian/jellyfin.service
+++ /dev/null
@@ -1,17 +0,0 @@
-[Unit]
-Description = Jellyfin Media Server
-After = network-online.target
-
-[Service]
-Type = simple
-EnvironmentFile = /etc/default/jellyfin
-User = jellyfin
-Group = jellyfin
-WorkingDirectory = /var/lib/jellyfin
-ExecStart = /usr/bin/jellyfin $JELLYFIN_WEB_OPT $JELLYFIN_FFMPEG_OPT $JELLYFIN_SERVICE_OPT $JELLYFIN_NOWEBAPP_OPT $JELLYFIN_ADDITIONAL_OPTS
-Restart = on-failure
-TimeoutSec = 15
-SuccessExitStatus=0 143
-
-[Install]
-WantedBy = multi-user.target
diff --git a/debian/jellyfin.upstart b/debian/jellyfin.upstart
deleted file mode 100644
index ef5bc9bca..000000000
--- a/debian/jellyfin.upstart
+++ /dev/null
@@ -1,20 +0,0 @@
-description "jellyfin daemon"
-
-start on (local-filesystems and net-device-up IFACE!=lo)
-stop on runlevel [!2345]
-
-console log
-respawn
-respawn limit 10 5
-
-kill timeout 20
-
-script
- set -x
- echo "Starting $UPSTART_JOB"
-
- # Log file
- logger -t "$0" "DEBUG: `set`"
- . /etc/default/jellyfin
- exec su -u $JELLYFIN_USER -c /usr/bin/jellyfin $JELLYFIN_ARGS
-end script
diff --git a/debian/metapackage/jellyfin b/debian/metapackage/jellyfin
deleted file mode 100644
index 8787c3a49..000000000
--- a/debian/metapackage/jellyfin
+++ /dev/null
@@ -1,13 +0,0 @@
-Source: jellyfin
-Section: misc
-Priority: optional
-Homepage: https://jellyfin.org
-Standards-Version: 3.9.2
-
-Package: jellyfin
-Version: 10.9.0
-Maintainer: Jellyfin Packaging Team <packaging@jellyfin.org>
-Depends: jellyfin-server, jellyfin-web
-Description: Provides the Jellyfin Free Software Media System
- Provides the full Jellyfin experience, including both the server and web interface.
-
diff --git a/debian/po/POTFILES.in b/debian/po/POTFILES.in
deleted file mode 100644
index cef83a340..000000000
--- a/debian/po/POTFILES.in
+++ /dev/null
@@ -1 +0,0 @@
-[type: gettext/rfc822deb] templates
diff --git a/debian/po/templates.pot b/debian/po/templates.pot
deleted file mode 100644
index 2cdcae417..000000000
--- a/debian/po/templates.pot
+++ /dev/null
@@ -1,57 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: jellyfin-server\n"
-"Report-Msgid-Bugs-To: jellyfin-server@packages.debian.org\n"
-"POT-Creation-Date: 2015-06-12 20:51-0600\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. Type: note
-#. Description
-#: ../templates:1001
-msgid "Jellyfin permission info:"
-msgstr ""
-
-#. Type: note
-#. Description
-#: ../templates:1001
-msgid ""
-"Jellyfin by default runs under a user named \"jellyfin\". Please ensure that the "
-"user jellyfin has read and write access to any folders you wish to add to your "
-"library. Otherwise please run jellyfin under a different user."
-msgstr ""
-
-#. Type: string
-#. Description
-#: ../templates:2001
-msgid "Username to run Jellyfin as:"
-msgstr ""
-
-#. Type: string
-#. Description
-#: ../templates:2001
-msgid "The user that jellyfin will run as."
-msgstr ""
-
-#. Type: note
-#. Description
-#: ../templates:3001
-msgid "Jellyfin still running"
-msgstr ""
-
-#. Type: note
-#. Description
-#: ../templates:3001
-msgid "Jellyfin is currently running. Please close it and try again."
-msgstr ""
diff --git a/debian/postinst b/debian/postinst
deleted file mode 100644
index 947959aa7..000000000
--- a/debian/postinst
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/bin/bash
-set -e
-
-NAME=jellyfin
-DEFAULT_FILE=/etc/default/${NAME}
-
-# Source Jellyfin default configuration
-if [[ -f $DEFAULT_FILE ]]; then
- . $DEFAULT_FILE
-fi
-
-JELLYFIN_USER=${JELLYFIN_USER:-jellyfin}
-RENDER_GROUP=${RENDER_GROUP:-render}
-VIDEO_GROUP=${VIDEO_GROUP:-video}
-
-# Data directories for program data (cache, db), configs, and logs
-PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME}
-CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME}
-LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME}
-CACHEDATA=${JELLYFIN_CACHE_DIRECTORY-/var/cache/$NAME}
-
-case "$1" in
- configure)
- # create jellyfin group if it does not exist
- if [[ -z "$(getent group ${JELLYFIN_USER})" ]]; then
- addgroup --quiet --system ${JELLYFIN_USER} > /dev/null 2>&1
- fi
- # create jellyfin user if it does not exist
- if [[ -z "$(getent passwd ${JELLYFIN_USER})" ]]; then
- adduser --system --ingroup ${JELLYFIN_USER} --shell /bin/false ${JELLYFIN_USER} --no-create-home --home ${PROGRAMDATA} \
- --gecos "Jellyfin default user" > /dev/null 2>&1
- fi
- # add jellyfin to the render group for hwa
- if [[ ! -z "$(getent group ${RENDER_GROUP})" ]]; then
- usermod -aG ${RENDER_GROUP} ${JELLYFIN_USER} > /dev/null 2>&1
- fi
- # add jellyfin to the video group for hwa
- if [[ ! -z "$(getent group ${VIDEO_GROUP})" ]]; then
- usermod -aG ${VIDEO_GROUP} ${JELLYFIN_USER} > /dev/null 2>&1
- fi
- # ensure $PROGRAMDATA exists
- if [[ ! -d $PROGRAMDATA ]]; then
- mkdir $PROGRAMDATA
- fi
- # ensure $CONFIGDATA exists
- if [[ ! -d $CONFIGDATA ]]; then
- mkdir $CONFIGDATA
- fi
- # ensure $LOGDATA exists
- if [[ ! -d $LOGDATA ]]; then
- mkdir $LOGDATA
- fi
- # ensure $CACHEDATA exists
- if [[ ! -d $CACHEDATA ]]; then
- mkdir $CACHEDATA
- fi
- # Ensure permissions are correct on all config directories
- chown -R ${JELLYFIN_USER} $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA
- chgrp adm $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA
- chmod 0750 $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA
-
- # Install jellyfin symlink into /usr/bin
- ln -sf /usr/lib/jellyfin/bin/jellyfin /usr/bin/jellyfin
-
- ;;
- abort-upgrade|abort-remove|abort-deconfigure)
- ;;
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 1
- ;;
-esac
-
-#DEBHELPER
-
-if [[ -x "/usr/bin/deb-systemd-helper" ]]; then
- # Manual init script handling
- deb-systemd-helper unmask jellyfin.service >/dev/null || true
- # was-enabled defaults to true, so new installations run enable.
- if deb-systemd-helper --quiet was-enabled jellyfin.service; then
- # Enables the unit on first installation, creates new
- # symlinks on upgrades if the unit file has changed.
- deb-systemd-helper enable jellyfin.service >/dev/null || true
- else
- # Update the statefile to add new symlinks (if any), which need to be
- # cleaned up on purge. Also remove old symlinks.
- deb-systemd-helper update-state jellyfin.service >/dev/null || true
- fi
-fi
-
-# End automatically added section
-# Automatically added by dh_installinit
-if [[ "$1" == "configure" ]] || [[ "$1" == "abort-upgrade" ]]; then
- if [[ -d "/run/systemd/system" ]]; then
- systemctl --system daemon-reload >/dev/null || true
- deb-systemd-invoke start jellyfin >/dev/null || true
- elif [[ -x "/etc/init.d/jellyfin" ]] || [[ -e "/etc/init/jellyfin.conf" ]]; then
- update-rc.d jellyfin defaults >/dev/null
- invoke-rc.d jellyfin start || exit $?
- fi
-fi
-exit 0
diff --git a/debian/postrm b/debian/postrm
deleted file mode 100644
index 3d56a5f1e..000000000
--- a/debian/postrm
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/bin/bash
-set -e
-
-NAME=jellyfin
-DEFAULT_FILE=/etc/default/${NAME}
-
-# Source Jellyfin default configuration
-if [[ -f $DEFAULT_FILE ]]; then
- . $DEFAULT_FILE
-fi
-
-# Data directories for program data (cache, db), configs, and logs
-PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME}
-CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME}
-LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME}
-CACHEDATA=${JELLYFIN_CACHE_DIRECTORY-/var/cache/$NAME}
-
-# In case this system is running systemd, we make systemd reload the unit files
-# to pick up changes.
-if [[ -d /run/systemd/system ]] ; then
- systemctl --system daemon-reload >/dev/null || true
-fi
-
-case "$1" in
- purge)
- echo PURGE | debconf-communicate $NAME > /dev/null 2>&1 || true
-
- if [[ -x "/etc/init.d/jellyfin" ]] || [[ -e "/etc/init/jellyfin.conf" ]]; then
- update-rc.d jellyfin remove >/dev/null 2>&1 || true
- fi
-
- if [[ -x "/usr/bin/deb-systemd-helper" ]]; then
- deb-systemd-helper purge jellyfin.service >/dev/null
- deb-systemd-helper unmask jellyfin.service >/dev/null
- fi
-
- # Remove user and group
- userdel jellyfin > /dev/null 2>&1 || true
- delgroup --quiet jellyfin > /dev/null 2>&1 || true
- # Remove config dir
- if [[ -d $CONFIGDATA ]]; then
- rm -rf $CONFIGDATA
- fi
- # Remove log dir
- if [[ -d $LOGDATA ]]; then
- rm -rf $LOGDATA
- fi
- # Remove cache dir
- if [[ -d $CACHEDATA ]]; then
- rm -rf $CACHEDATA
- fi
- # Remove program data dir
- if [[ -d $PROGRAMDATA ]]; then
- rm -rf $PROGRAMDATA
- fi
- # Remove binary symlink
- rm -f /usr/bin/jellyfin
- # Remove sudoers config
- [[ -f /etc/sudoers.d/jellyfin-sudoers ]] && rm /etc/sudoers.d/jellyfin-sudoers
- # Remove anything at the default locations; catches situations where the user moved the defaults
- [[ -e /etc/jellyfin ]] && rm -rf /etc/jellyfin
- [[ -e /var/log/jellyfin ]] && rm -rf /var/log/jellyfin
- [[ -e /var/cache/jellyfin ]] && rm -rf /var/cache/jellyfin
- [[ -e /var/lib/jellyfin ]] && rm -rf /var/lib/jellyfin
- ;;
- remove)
- if [[ -x "/usr/bin/deb-systemd-helper" ]]; then
- deb-systemd-helper mask jellyfin.service >/dev/null
- fi
- ;;
- upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
- ;;
- *)
- echo "postrm called with unknown argument \`$1'" >&2
- exit 1
- ;;
-esac
-
-#DEBHELPER#
-
-exit 0
diff --git a/debian/preinst b/debian/preinst
deleted file mode 100644
index 2713fb9b8..000000000
--- a/debian/preinst
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/bin/bash
-set -e
-
-NAME=jellyfin
-DEFAULT_FILE=/etc/default/${NAME}
-
-# Source Jellyfin default configuration
-if [[ -f $DEFAULT_FILE ]]; then
- . $DEFAULT_FILE
-fi
-
-# Data directories for program data (cache, db), configs, and logs
-PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME}
-CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME}
-LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME}
-CACHEDATA=${JELLYFIN_CACHE_DIRECTORY-/var/cache/$NAME}
-
-# In case this system is running systemd, we make systemd reload the unit files
-# to pick up changes.
-if [[ -d /run/systemd/system ]] ; then
- systemctl --system daemon-reload >/dev/null || true
-fi
-
-case "$1" in
- install|upgrade)
- # try graceful termination;
- if [[ -d /run/systemd/system ]]; then
- deb-systemd-invoke stop ${NAME}.service > /dev/null 2>&1 || true
- elif [ -x "/etc/init.d/${NAME}" ] || [ -e "/etc/init/${NAME}.conf" ]; then
- invoke-rc.d ${NAME} stop > /dev/null 2>&1 || true
- fi
- # try and figure out if jellyfin is running
- PIDFILE=$(find /var/run/ -maxdepth 1 -mindepth 1 -name "jellyfin*.pid" -print -quit)
- [[ -n "$PIDFILE" ]] && [[ -s "$PIDFILE" ]] && JELLYFIN_PID=$(cat ${PIDFILE})
- # if its running, let's stop it
- if [[ -n "$JELLYFIN_PID" ]]; then
- echo "Stopping Jellyfin!"
- # if jellyfin is still running, kill it
- if [[ -n "$(ps -p $JELLYFIN_PID -o pid=)" ]]; then
- CPIDS=$(pgrep -P $JELLYFIN_PID)
- sleep 2 && kill -KILL $CPIDS
- kill -TERM $CPIDS > /dev/null 2>&1
- fi
- sleep 1
- # if it's still running, show error
- if [[ -n "$(ps -p $JELLYFIN_PID -o pid=)" ]]; then
- echo "Could not successfully stop JellyfinServer, please do so before uninstalling."
- exit 1
- else
- [[ -f $PIDFILE ]] && rm $PIDFILE
- fi
- fi
-
- # Clean up old Emby cruft that can break the user's system
- [[ -f /etc/sudoers.d/emby ]] && rm -f /etc/sudoers.d/emby
-
- # If we have existing config, log, or cache dirs in /var/lib/jellyfin, move them into the right place
- if [[ -d $PROGRAMDATA/config ]]; then
- mv $PROGRAMDATA/config $CONFIGDATA
- fi
- if [[ -d $PROGRAMDATA/logs ]]; then
- mv $PROGRAMDATA/logs $LOGDATA
- fi
- if [[ -d $PROGRAMDATA/logs ]]; then
- mv $PROGRAMDATA/cache $CACHEDATA
- fi
-
- ;;
- abort-upgrade)
- ;;
- *)
- echo "preinst called with unknown argument \`$1'" >&2
- exit 1
- ;;
-esac
-#DEBHELPER#
-
-exit 0
diff --git a/debian/prerm b/debian/prerm
deleted file mode 100644
index e965cb7d7..000000000
--- a/debian/prerm
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/bash
-set -e
-
-NAME=jellyfin
-DEFAULT_FILE=/etc/default/${NAME}
-
-# Source Jellyfin default configuration
-if [[ -f $DEFAULT_FILE ]]; then
- . $DEFAULT_FILE
-fi
-
-# Data directories for program data (cache, db), configs, and logs
-PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME}
-CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME}
-LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME}
-CACHEDATA=${JELLYFIN_CACHE_DIRECTORY-/var/cache/$NAME}
-
-case "$1" in
- remove|upgrade|deconfigure)
- echo "Stopping Jellyfin!"
- # try graceful termination;
- if [[ -d /run/systemd/system ]]; then
- deb-systemd-invoke stop ${NAME}.service > /dev/null 2>&1 || true
- elif [ -x "/etc/init.d/${NAME}" ] || [ -e "/etc/init/${NAME}.conf" ]; then
- invoke-rc.d ${NAME} stop > /dev/null 2>&1 || true
- fi
- # Ensure that it is shutdown
- PIDFILE=$(find /var/run/ -maxdepth 1 -mindepth 1 -name "jellyfin*.pid" -print -quit)
- [[ -n "$PIDFILE" ]] && [[ -s "$PIDFILE" ]] && JELLYFIN_PID=$(cat ${PIDFILE})
- # if its running, let's stop it
- if [[ -n "$JELLYFIN_PID" ]]; then
- # if jellyfin is still running, kill it
- if [[ -n "$(ps -p $JELLYFIN_PID -o pid=)" ]]; then
- CPIDS=$(pgrep -P $JELLYFIN_PID)
- sleep 2 && kill -KILL $CPIDS
- kill -TERM $CPIDS > /dev/null 2>&1
- fi
- sleep 1
- # if it's still running, show error
- if [[ -n "$(ps -p $JELLYFIN_PID -o pid=)" ]]; then
- echo "Could not successfully stop Jellyfin, please do so before uninstalling."
- exit 1
- else
- [[ -f $PIDFILE ]] && rm $PIDFILE
- fi
- fi
- if [[ -f /usr/lib/jellyfin/bin/MediaBrowser.Server.Mono.exe.so ]]; then
- rm /usr/lib/jellyfin/bin/MediaBrowser.Server.Mono.exe.so
- fi
- ;;
- failed-upgrade)
- ;;
- *)
- echo "prerm called with unknown argument \`$1'" >&2
- exit 1
- ;;
-esac
-
-#DEBHELPER#
-
-exit 0
diff --git a/debian/rules b/debian/rules
deleted file mode 100755
index 79cd55a15..000000000
--- a/debian/rules
+++ /dev/null
@@ -1,55 +0,0 @@
-#! /usr/bin/make -f
-CONFIG := Release
-TERM := xterm
-SHELL := /bin/bash
-
-HOST_ARCH := $(shell arch)
-BUILD_ARCH := ${DEB_HOST_MULTIARCH}
-ifeq ($(HOST_ARCH),x86_64)
- # Building AMD64
- DOTNETRUNTIME := linux-x64
- ifeq ($(BUILD_ARCH),arm-linux-gnueabihf)
- # Cross-building ARM on AMD64
- DOTNETRUNTIME := linux-arm
- endif
- ifeq ($(BUILD_ARCH),aarch64-linux-gnu)
- # Cross-building ARM on AMD64
- DOTNETRUNTIME := linux-arm64
- endif
-endif
-ifeq ($(HOST_ARCH),armv7l)
- # Building ARM
- DOTNETRUNTIME := linux-arm
-endif
-ifeq ($(HOST_ARCH),arm64)
- # Building ARM
- DOTNETRUNTIME := linux-arm64
-endif
-ifeq ($(HOST_ARCH),aarch64)
- # Building ARM
- DOTNETRUNTIME := linux-arm64
-endif
-
-export DH_VERBOSE=1
-export DOTNET_CLI_TELEMETRY_OPTOUT=1
-
-%:
- dh $@
-
-# disable "make check"
-override_dh_auto_test:
-
-# disable stripping debugging symbols
-override_dh_clistrip:
-
-override_dh_auto_build:
- dotnet publish -maxcpucount:1 --configuration $(CONFIG) --output='$(CURDIR)/usr/lib/jellyfin/bin' --self-contained --runtime $(DOTNETRUNTIME) \
- -p:DebugSymbols=false -p:DebugType=none Jellyfin.Server
-
-override_dh_auto_clean:
- dotnet clean -maxcpucount:1 --configuration $(CONFIG) Jellyfin.Server || true
- rm -rf '$(CURDIR)/usr'
-
-# Force the service name to jellyfin even if we're building jellyfin-nightly
-override_dh_installinit:
- dh_installinit --name=jellyfin
diff --git a/debian/source.lintian-overrides b/debian/source.lintian-overrides
deleted file mode 100644
index aeb332f13..000000000
--- a/debian/source.lintian-overrides
+++ /dev/null
@@ -1,3 +0,0 @@
-# This is an override for the following lintian errors:
-jellyfin source: license-problem-md5sum-non-free-file Emby.Drawing/ImageMagick/fonts/webdings.ttf*
-jellyfin source: source-is-missing
diff --git a/debian/source/format b/debian/source/format
deleted file mode 100644
index d3827e75a..000000000
--- a/debian/source/format
+++ /dev/null
@@ -1 +0,0 @@
-1.0
diff --git a/debian/source/options b/debian/source/options
deleted file mode 100644
index 17b5373d5..000000000
--- a/debian/source/options
+++ /dev/null
@@ -1,11 +0,0 @@
-tar-ignore='.git*'
-tar-ignore='**/.git'
-tar-ignore='**/.hg'
-tar-ignore='**/.vs'
-tar-ignore='**/.vscode'
-tar-ignore='deployment'
-tar-ignore='**/bin'
-tar-ignore='**/obj'
-tar-ignore='**/.nuget'
-tar-ignore='*.deb'
-tar-ignore='ThirdParty'
diff --git a/deployment/Dockerfile.centos.amd64 b/deployment/Dockerfile.centos.amd64
deleted file mode 100644
index 6bd7d312c..000000000
--- a/deployment/Dockerfile.centos.amd64
+++ /dev/null
@@ -1,39 +0,0 @@
-FROM quay.io/centos/centos:stream9
-
-# Docker build arguments
-ARG SOURCE_DIR=/jellyfin
-ARG ARTIFACT_DIR=/dist
-
-# Docker run environment
-ENV SOURCE_DIR=/jellyfin
-ENV ARTIFACT_DIR=/dist
-ENV IS_DOCKER=YES
-
-# Prepare CentOS environment
-RUN dnf update -yq \
- && dnf install -yq \
- @buildsys-build rpmdevtools git \
- dnf-plugins-core libcurl-devel fontconfig-devel \
- freetype-devel openssl-devel glibc-devel \
- libicu-devel systemd wget make \
- && dnf clean all \
- && rm -rf /var/cache/dnf
-
-# Install DotNET SDK
-RUN wget -q https://download.visualstudio.microsoft.com/download/pr/85bcc525-4e9c-471e-9c1d-96259aa1a315/930833ef34f66fe9ee2643b0ba21621a/dotnet-sdk-8.0.201-linux-x64.tar.gz -O dotnet-sdk.tar.gz \
- && mkdir -p dotnet-sdk \
- && tar -xzf dotnet-sdk.tar.gz -C dotnet-sdk \
- && ln -s $( pwd )/dotnet-sdk/dotnet /usr/bin/dotnet
-
-# Create symlinks and directories
-RUN ln -sf ${SOURCE_DIR}/deployment/build.centos.amd64 /build.sh \
- && mkdir -p ${SOURCE_DIR}/SPECS \
- && ln -s ${SOURCE_DIR}/fedora/jellyfin.spec ${SOURCE_DIR}/SPECS/jellyfin.spec \
- && mkdir -p ${SOURCE_DIR}/SOURCES \
- && ln -s ${SOURCE_DIR}/fedora ${SOURCE_DIR}/SOURCES
-
-VOLUME ${SOURCE_DIR}/
-
-VOLUME ${ARTIFACT_DIR}/
-
-ENTRYPOINT ["/build.sh"]
diff --git a/deployment/Dockerfile.debian.amd64 b/deployment/Dockerfile.debian.amd64
deleted file mode 100644
index da0c9dabd..000000000
--- a/deployment/Dockerfile.debian.amd64
+++ /dev/null
@@ -1,33 +0,0 @@
-ARG DOTNET_VERSION=8.0
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
-
-# Docker build arguments
-ARG SOURCE_DIR=/jellyfin
-ARG ARTIFACT_DIR=/dist
-
-# Docker run environment
-ENV SOURCE_DIR=/jellyfin
-ENV ARTIFACT_DIR=/dist
-ENV DEB_BUILD_OPTIONS=noddebs
-ENV ARCH=amd64
-ENV IS_DOCKER=YES
-
-# Prepare Debian build environment
-RUN apt-get update -yq \
- && apt-get install --no-install-recommends -yq \
- debhelper gnupg devscripts build-essential mmv \
- libcurl4-openssl-dev libfontconfig1-dev libfreetype6-dev \
- libssl-dev libssl3 liblttng-ust1 \
- && apt-get clean autoclean -yq \
- && apt-get autoremove -yq \
- && rm -rf /var/lib/apt/lists/*
-
-# Link to build script
-RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.amd64 /build.sh
-
-VOLUME ${SOURCE_DIR}/
-
-VOLUME ${ARTIFACT_DIR}/
-
-ENTRYPOINT ["/build.sh"]
diff --git a/deployment/Dockerfile.debian.arm64 b/deployment/Dockerfile.debian.arm64
deleted file mode 100644
index 6c4cb816f..000000000
--- a/deployment/Dockerfile.debian.arm64
+++ /dev/null
@@ -1,46 +0,0 @@
-ARG DOTNET_VERSION=8.0
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
-
-# Docker build arguments
-ARG SOURCE_DIR=/jellyfin
-ARG ARTIFACT_DIR=/dist
-
-# Docker run environment
-ENV SOURCE_DIR=/jellyfin
-ENV ARTIFACT_DIR=/dist
-ENV DEB_BUILD_OPTIONS=noddebs
-ENV ARCH=amd64
-ENV IS_DOCKER=YES
-
-# Prepare Debian build environment
-RUN apt-get update -yqq \
- && apt-get install --no-install-recommends -yqq \
- debhelper gnupg devscripts build-essential mmv
-
-# Prepare the cross-toolchain
-RUN dpkg --add-architecture arm64 \
- && apt-get update -yqq \
- && apt-get install --no-install-recommends -yqq cross-gcc-dev \
- && TARGET_LIST="arm64" cross-gcc-gensource 12 \
- && cd cross-gcc-packages-amd64/cross-gcc-12-arm64 \
- && apt-get install --no-install-recommends -yqq \
- gcc-12-source libstdc++-12-dev-arm64-cross \
- binutils-aarch64-linux-gnu bison flex libtool \
- gdb sharutils netbase libmpc-dev libmpfr-dev libgmp-dev \
- systemtap-sdt-dev autogen expect chrpath zlib1g-dev zip \
- libc6-dev:arm64 linux-libc-dev:arm64 libgcc1:arm64 \
- libcurl4-openssl-dev:arm64 libfontconfig1-dev:arm64 \
- libfreetype6-dev:arm64 libssl-dev:arm64 liblttng-ust1:arm64 libstdc++-12-dev:arm64 \
- && apt-get clean autoclean -yqq \
- && apt-get autoremove -yqq \
- && rm -rf /var/lib/apt/lists/*
-
-# Link to build script
-RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.arm64 /build.sh
-
-VOLUME ${SOURCE_DIR}/
-
-VOLUME ${ARTIFACT_DIR}/
-
-ENTRYPOINT ["/build.sh"]
diff --git a/deployment/Dockerfile.debian.armhf b/deployment/Dockerfile.debian.armhf
deleted file mode 100644
index b1fa6cee5..000000000
--- a/deployment/Dockerfile.debian.armhf
+++ /dev/null
@@ -1,47 +0,0 @@
-ARG DOTNET_VERSION=8.0
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
-
-# Docker build arguments
-ARG SOURCE_DIR=/jellyfin
-ARG ARTIFACT_DIR=/dist
-
-# Docker run environment
-ENV SOURCE_DIR=/jellyfin
-ENV ARTIFACT_DIR=/dist
-ENV DEB_BUILD_OPTIONS=noddebs
-ENV ARCH=amd64
-ENV IS_DOCKER=YES
-
-# Prepare Debian build environment
-RUN apt-get update -yqq \
- && apt-get install --no-install-recommends -yqq \
- debhelper gnupg devscripts build-essential mmv
-
-# Prepare the cross-toolchain
-RUN dpkg --add-architecture armhf \
- && apt-get update -yqq \
- && apt-get install --no-install-recommends -yqq cross-gcc-dev \
- && TARGET_LIST="armhf" cross-gcc-gensource 12 \
- && cd cross-gcc-packages-amd64/cross-gcc-12-armhf \
- && apt-get install --no-install-recommends -yqq \
- gcc-12-source libstdc++-12-dev-armhf-cross \
- binutils-aarch64-linux-gnu bison flex libtool gdb \
- sharutils netbase libmpc-dev libmpfr-dev libgmp-dev \
- systemtap-sdt-dev autogen expect chrpath zlib1g-dev \
- zip binutils-arm-linux-gnueabihf libc6-dev:armhf \
- linux-libc-dev:armhf libgcc1:armhf libcurl4-openssl-dev:armhf \
- libfontconfig1-dev:armhf libfreetype6-dev:armhf libssl-dev:armhf \
- liblttng-ust1:armhf libstdc++-12-dev:armhf \
- && apt-get clean autoclean -yqq \
- && apt-get autoremove -yqq \
- && rm -rf /var/lib/apt/lists/*
-
-# Link to build script
-RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.armhf /build.sh
-
-VOLUME ${SOURCE_DIR}/
-
-VOLUME ${ARTIFACT_DIR}/
-
-ENTRYPOINT ["/build.sh"]
diff --git a/deployment/Dockerfile.docker.amd64 b/deployment/Dockerfile.docker.amd64
deleted file mode 100644
index ca16a08fb..000000000
--- a/deployment/Dockerfile.docker.amd64
+++ /dev/null
@@ -1,12 +0,0 @@
-ARG DOTNET_VERSION=8.0
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
-
-ARG SOURCE_DIR=/src
-ARG ARTIFACT_DIR=/jellyfin
-
-WORKDIR ${SOURCE_DIR}
-COPY . .
-ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
-
-RUN dotnet publish Jellyfin.Server --configuration Release --output="${ARTIFACT_DIR}" --self-contained --runtime linux-x64 -p:DebugSymbols=false -p:DebugType=none
diff --git a/deployment/Dockerfile.docker.arm64 b/deployment/Dockerfile.docker.arm64
deleted file mode 100644
index 6e0f7d18e..000000000
--- a/deployment/Dockerfile.docker.arm64
+++ /dev/null
@@ -1,12 +0,0 @@
-ARG DOTNET_VERSION=8.0
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
-
-ARG SOURCE_DIR=/src
-ARG ARTIFACT_DIR=/jellyfin
-
-WORKDIR ${SOURCE_DIR}
-COPY . .
-ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
-
-RUN dotnet publish Jellyfin.Server --configuration Release --output="${ARTIFACT_DIR}" --self-contained --runtime linux-arm64 -p:DebugSymbols=false -p:DebugType=none
diff --git a/deployment/Dockerfile.docker.armhf b/deployment/Dockerfile.docker.armhf
deleted file mode 100644
index 44fb705e6..000000000
--- a/deployment/Dockerfile.docker.armhf
+++ /dev/null
@@ -1,12 +0,0 @@
-ARG DOTNET_VERSION=8.0
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
-
-ARG SOURCE_DIR=/src
-ARG ARTIFACT_DIR=/jellyfin
-
-WORKDIR ${SOURCE_DIR}
-COPY . .
-ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
-
-RUN dotnet publish Jellyfin.Server --configuration Release --output="${ARTIFACT_DIR}" --self-contained --runtime linux-arm -p:DebugSymbols=false -p:DebugType=none
diff --git a/deployment/Dockerfile.fedora.amd64 b/deployment/Dockerfile.fedora.amd64
deleted file mode 100644
index f1dc492de..000000000
--- a/deployment/Dockerfile.fedora.amd64
+++ /dev/null
@@ -1,39 +0,0 @@
-FROM fedora:39
-
-# Docker build arguments
-ARG SOURCE_DIR=/jellyfin
-ARG ARTIFACT_DIR=/dist
-
-# Docker run environment
-ENV SOURCE_DIR=/jellyfin
-ENV ARTIFACT_DIR=/dist
-ENV IS_DOCKER=YES
-
-# Prepare Fedora environment
-RUN dnf update -yq \
- && dnf install -yq \
- @buildsys-build rpmdevtools git \
- dnf-plugins-core libcurl-devel fontconfig-devel \
- freetype-devel openssl-devel glibc-devel \
- libicu-devel systemd wget make \
- && dnf clean all \
- && rm -rf /var/cache/dnf
-
-# Install DotNET SDK
-RUN wget -q https://download.visualstudio.microsoft.com/download/pr/85bcc525-4e9c-471e-9c1d-96259aa1a315/930833ef34f66fe9ee2643b0ba21621a/dotnet-sdk-8.0.201-linux-x64.tar.gz -O dotnet-sdk.tar.gz \
- && mkdir -p dotnet-sdk \
- && tar -xzf dotnet-sdk.tar.gz -C dotnet-sdk \
- && ln -s $( pwd )/dotnet-sdk/dotnet /usr/bin/dotnet
-
-# Create symlinks and directories
-RUN ln -sf ${SOURCE_DIR}/deployment/build.fedora.amd64 /build.sh \
- && mkdir -p ${SOURCE_DIR}/SPECS \
- && ln -s ${SOURCE_DIR}/fedora/jellyfin.spec ${SOURCE_DIR}/SPECS/jellyfin.spec \
- && mkdir -p ${SOURCE_DIR}/SOURCES \
- && ln -s ${SOURCE_DIR}/fedora ${SOURCE_DIR}/SOURCES
-
-VOLUME ${SOURCE_DIR}/
-
-VOLUME ${ARTIFACT_DIR}/
-
-ENTRYPOINT ["/build.sh"]
diff --git a/deployment/Dockerfile.linux.amd64 b/deployment/Dockerfile.linux.amd64
deleted file mode 100644
index 6b8de3773..000000000
--- a/deployment/Dockerfile.linux.amd64
+++ /dev/null
@@ -1,33 +0,0 @@
-ARG DOTNET_VERSION=8.0
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
-
-# Docker build arguments
-ARG SOURCE_DIR=/jellyfin
-ARG ARTIFACT_DIR=/dist
-
-# Docker run environment
-ENV SOURCE_DIR=/jellyfin
-ENV ARTIFACT_DIR=/dist
-ENV DEB_BUILD_OPTIONS=noddebs
-ENV ARCH=amd64
-ENV IS_DOCKER=YES
-
-# Prepare Debian build environment
-RUN apt-get update -yqq \
- && apt-get install --no-install-recommends -yqq \
- debhelper gnupg devscripts unzip \
- mmv libcurl4-openssl-dev libfontconfig1-dev \
- libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \
- && apt-get clean autoclean -yqq \
- && apt-get autoremove -yqq \
- && rm -rf /var/lib/apt/lists/*
-
-# Link to docker-build script
-RUN ln -sf ${SOURCE_DIR}/deployment/build.linux.amd64 /build.sh
-
-VOLUME ${SOURCE_DIR}/
-
-VOLUME ${ARTIFACT_DIR}/
-
-ENTRYPOINT ["/build.sh"]
diff --git a/deployment/Dockerfile.linux.amd64-musl b/deployment/Dockerfile.linux.amd64-musl
deleted file mode 100644
index 49d98da2a..000000000
--- a/deployment/Dockerfile.linux.amd64-musl
+++ /dev/null
@@ -1,33 +0,0 @@
-ARG DOTNET_VERSION=8.0
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
-
-# Docker build arguments
-ARG SOURCE_DIR=/jellyfin
-ARG ARTIFACT_DIR=/dist
-
-# Docker run environment
-ENV SOURCE_DIR=/jellyfin
-ENV ARTIFACT_DIR=/dist
-ENV DEB_BUILD_OPTIONS=noddebs
-ENV ARCH=amd64
-ENV IS_DOCKER=YES
-
-# Prepare Debian build environment
-RUN apt-get update -yqq \
- && apt-get install --no-install-recommends -yqq \
- debhelper gnupg devscripts unzip \
- mmv libcurl4-openssl-dev libfontconfig1-dev \
- libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \
- && apt-get clean autoclean -yqq \
- && apt-get autoremove -yqq \
- && rm -rf /var/lib/apt/lists/*
-
-# Link to docker-build script
-RUN ln -sf ${SOURCE_DIR}/deployment/build.linux.amd64-musl /build.sh
-
-VOLUME ${SOURCE_DIR}/
-
-VOLUME ${ARTIFACT_DIR}/
-
-ENTRYPOINT ["/build.sh"]
diff --git a/deployment/Dockerfile.linux.arm64 b/deployment/Dockerfile.linux.arm64
deleted file mode 100644
index aba33c8b2..000000000
--- a/deployment/Dockerfile.linux.arm64
+++ /dev/null
@@ -1,33 +0,0 @@
-ARG DOTNET_VERSION=8.0
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
-
-# Docker build arguments
-ARG SOURCE_DIR=/jellyfin
-ARG ARTIFACT_DIR=/dist
-
-# Docker run environment
-ENV SOURCE_DIR=/jellyfin
-ENV ARTIFACT_DIR=/dist
-ENV DEB_BUILD_OPTIONS=noddebs
-ENV ARCH=arm64
-ENV IS_DOCKER=YES
-
-# Prepare Debian build environment
-RUN apt-get update -yqq \
- && apt-get install --no-install-recommends -yqq \
- debhelper gnupg devscripts unzip \
- mmv libcurl4-openssl-dev libfontconfig1-dev \
- libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \
- && apt-get clean autoclean -yqq \
- && apt-get autoremove -yqq \
- && rm -rf /var/lib/apt/lists/*
-
-# Link to docker-build script
-RUN ln -sf ${SOURCE_DIR}/deployment/build.linux.arm64 /build.sh
-
-VOLUME ${SOURCE_DIR}/
-
-VOLUME ${ARTIFACT_DIR}/
-
-ENTRYPOINT ["/build.sh"]
diff --git a/deployment/Dockerfile.linux.armhf b/deployment/Dockerfile.linux.armhf
deleted file mode 100644
index 247f75615..000000000
--- a/deployment/Dockerfile.linux.armhf
+++ /dev/null
@@ -1,33 +0,0 @@
-ARG DOTNET_VERSION=8.0
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
-
-# Docker build arguments
-ARG SOURCE_DIR=/jellyfin
-ARG ARTIFACT_DIR=/dist
-
-# Docker run environment
-ENV SOURCE_DIR=/jellyfin
-ENV ARTIFACT_DIR=/dist
-ENV DEB_BUILD_OPTIONS=noddebs
-ENV ARCH=armhf
-ENV IS_DOCKER=YES
-
-# Prepare Debian build environment
-RUN apt-get update -yqq \
- && apt-get install --no-install-recommends -yqq \
- debhelper gnupg devscripts unzip \
- mmv libcurl4-openssl-dev libfontconfig1-dev \
- libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \
- && apt-get clean autoclean -yqq \
- && apt-get autoremove -yqq \
- && rm -rf /var/lib/apt/lists/*
-
-# Link to docker-build script
-RUN ln -sf ${SOURCE_DIR}/deployment/build.linux.armhf /build.sh
-
-VOLUME ${SOURCE_DIR}/
-
-VOLUME ${ARTIFACT_DIR}/
-
-ENTRYPOINT ["/build.sh"]
diff --git a/deployment/Dockerfile.linux.musl-linux-arm64 b/deployment/Dockerfile.linux.musl-linux-arm64
deleted file mode 100644
index a6e1ba217..000000000
--- a/deployment/Dockerfile.linux.musl-linux-arm64
+++ /dev/null
@@ -1,33 +0,0 @@
-ARG DOTNET_VERSION=8.0
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
-
-# Docker build arguments
-ARG SOURCE_DIR=/jellyfin
-ARG ARTIFACT_DIR=/dist
-
-# Docker run environment
-ENV SOURCE_DIR=/jellyfin
-ENV ARTIFACT_DIR=/dist
-ENV DEB_BUILD_OPTIONS=noddebs
-ENV ARCH=arm64
-ENV IS_DOCKER=YES
-
-# Prepare Debian build environment
-RUN apt-get update -yqq \
- && apt-get install --no-install-recommends -yqq \
- debhelper gnupg devscripts unzip \
- mmv libcurl4-openssl-dev libfontconfig1-dev \
- libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \
- && apt-get clean autoclean -yqq \
- && apt-get autoremove -yqq \
- && rm -rf /var/lib/apt/lists/*
-
-# Link to docker-build script
-RUN ln -sf ${SOURCE_DIR}/deployment/build.linux.musl-linux-arm64 /build.sh
-
-VOLUME ${SOURCE_DIR}/
-
-VOLUME ${ARTIFACT_DIR}/
-
-ENTRYPOINT ["/build.sh"]
diff --git a/deployment/Dockerfile.macos.amd64 b/deployment/Dockerfile.macos.amd64
deleted file mode 100644
index 45980c363..000000000
--- a/deployment/Dockerfile.macos.amd64
+++ /dev/null
@@ -1,33 +0,0 @@
-ARG DOTNET_VERSION=8.0
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
-
-# Docker build arguments
-ARG SOURCE_DIR=/jellyfin
-ARG ARTIFACT_DIR=/dist
-
-# Docker run environment
-ENV SOURCE_DIR=/jellyfin
-ENV ARTIFACT_DIR=/dist
-ENV DEB_BUILD_OPTIONS=noddebs
-ENV ARCH=amd64
-ENV IS_DOCKER=YES
-
-# Prepare Debian build environment
-RUN apt-get update -yqq \
- && apt-get install --no-install-recommends -yqq \
- debhelper gnupg devscripts \
- mmv libcurl4-openssl-dev libfontconfig1-dev \
- libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \
- && apt-get clean autoclean -yqq \
- && apt-get autoremove -yqq \
- && rm -rf /var/lib/apt/lists/*
-
-# Link to docker-build script
-RUN ln -sf ${SOURCE_DIR}/deployment/build.macos.amd64 /build.sh
-
-VOLUME ${SOURCE_DIR}/
-
-VOLUME ${ARTIFACT_DIR}/
-
-ENTRYPOINT ["/build.sh"]
diff --git a/deployment/Dockerfile.macos.arm64 b/deployment/Dockerfile.macos.arm64
deleted file mode 100644
index ee3a813dd..000000000
--- a/deployment/Dockerfile.macos.arm64
+++ /dev/null
@@ -1,33 +0,0 @@
-ARG DOTNET_VERSION=8.0
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
-
-# Docker build arguments
-ARG SOURCE_DIR=/jellyfin
-ARG ARTIFACT_DIR=/dist
-
-# Docker run environment
-ENV SOURCE_DIR=/jellyfin
-ENV ARTIFACT_DIR=/dist
-ENV DEB_BUILD_OPTIONS=noddebs
-ENV ARCH=amd64
-ENV IS_DOCKER=YES
-
-# Prepare Debian build environment
-RUN apt-get update -yqq \
- && apt-get install --no-install-recommends -yqq \
- debhelper gnupg devscripts \
- mmv libcurl4-openssl-dev libfontconfig1-dev \
- libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \
- && apt-get clean autoclean -yqq \
- && apt-get autoremove -yqq \
- && rm -rf /var/lib/apt/lists/*
-
-# Link to docker-build script
-RUN ln -sf ${SOURCE_DIR}/deployment/build.macos.arm64 /build.sh
-
-VOLUME ${SOURCE_DIR}/
-
-VOLUME ${ARTIFACT_DIR}/
-
-ENTRYPOINT ["/build.sh"]
diff --git a/deployment/Dockerfile.portable b/deployment/Dockerfile.portable
deleted file mode 100644
index 0ab1b1914..000000000
--- a/deployment/Dockerfile.portable
+++ /dev/null
@@ -1,32 +0,0 @@
-ARG DOTNET_VERSION=8.0
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
-
-# Docker build arguments
-ARG SOURCE_DIR=/jellyfin
-ARG ARTIFACT_DIR=/dist
-
-# Docker run environment
-ENV SOURCE_DIR=/jellyfin
-ENV ARTIFACT_DIR=/dist
-ENV DEB_BUILD_OPTIONS=noddebs
-ENV IS_DOCKER=YES
-
-# Prepare Debian build environment
-RUN apt-get update -yqq \
- && apt-get install --no-install-recommends -yqq \
- debhelper gnupg devscripts \
- mmv libcurl4-openssl-dev libfontconfig1-dev \
- libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \
- && apt-get clean autoclean -yqq \
- && apt-get autoremove -yqq \
- && rm -rf /var/lib/apt/lists/*
-
-# Link to docker-build script
-RUN ln -sf ${SOURCE_DIR}/deployment/build.portable /build.sh
-
-VOLUME ${SOURCE_DIR}/
-
-VOLUME ${ARTIFACT_DIR}/
-
-ENTRYPOINT ["/build.sh"]
diff --git a/deployment/Dockerfile.ubuntu.amd64 b/deployment/Dockerfile.ubuntu.amd64
deleted file mode 100644
index 2326d3e85..000000000
--- a/deployment/Dockerfile.ubuntu.amd64
+++ /dev/null
@@ -1,33 +0,0 @@
-ARG DOTNET_VERSION=8.0
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-jammy
-
-# Docker build arguments
-ARG SOURCE_DIR=/jellyfin
-ARG ARTIFACT_DIR=/dist
-
-# Docker run environment
-ENV SOURCE_DIR=/jellyfin
-ENV ARTIFACT_DIR=/dist
-ENV DEB_BUILD_OPTIONS=noddebs
-ENV ARCH=amd64
-ENV IS_DOCKER=YES
-
-# Prepare Debian build environment
-RUN apt-get update -yqq \
- && apt-get install --no-install-recommends -yqq \
- debhelper gnupg wget ca-certificates devscripts \
- mmv build-essential libcurl4-openssl-dev libfontconfig1-dev \
- libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \
- && apt-get clean autoclean -yqq \
- && apt-get autoremove -yqq \
- && rm -rf /var/lib/apt/lists/*
-
-# Link to build script
-RUN ln -sf ${SOURCE_DIR}/deployment/build.ubuntu.amd64 /build.sh
-
-VOLUME ${SOURCE_DIR}/
-
-VOLUME ${ARTIFACT_DIR}/
-
-ENTRYPOINT ["/build.sh"]
diff --git a/deployment/Dockerfile.ubuntu.arm64 b/deployment/Dockerfile.ubuntu.arm64
deleted file mode 100644
index 461a287a1..000000000
--- a/deployment/Dockerfile.ubuntu.arm64
+++ /dev/null
@@ -1,56 +0,0 @@
-ARG DOTNET_VERSION=8.0
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-jammy
-
-# Docker build arguments
-ARG SOURCE_DIR=/jellyfin
-ARG ARTIFACT_DIR=/dist
-
-# Docker run environment
-ENV SOURCE_DIR=/jellyfin
-ENV ARTIFACT_DIR=/dist
-ENV DEB_BUILD_OPTIONS=noddebs
-ENV ARCH=amd64
-ENV IS_DOCKER=YES
-
-# Prepare Debian build environment
-RUN apt-get update -yqq \
- && apt-get install --no-install-recommends -yqq \
- debhelper gnupg wget ca-certificates devscripts \
- mmv build-essential lsb-release
-
-# Prepare the cross-toolchain
-RUN rm /etc/apt/sources.list \
- && export CODENAME="$( lsb_release -c -s )" \
- && echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME} main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
- && echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-updates main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
- && echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-backports main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
- && echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-security main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
- && echo "deb [arch=arm64] http://ports.ubuntu.com/ ${CODENAME} main restricted universe multiverse" >>/etc/apt/sources.list.d/arm64.list \
- && echo "deb [arch=arm64] http://ports.ubuntu.com/ ${CODENAME}-updates main restricted universe multiverse" >>/etc/apt/sources.list.d/arm64.list \
- && echo "deb [arch=arm64] http://ports.ubuntu.com/ ${CODENAME}-backports main restricted universe multiverse" >>/etc/apt/sources.list.d/arm64.list \
- && echo "deb [arch=arm64] http://ports.ubuntu.com/ ${CODENAME}-security main restricted universe multiverse" >>/etc/apt/sources.list.d/arm64.list \
- && dpkg --add-architecture arm64 \
- && apt-get update -yqq \
- && apt-get install --no-install-recommends -yqq cross-gcc-dev \
- && TARGET_LIST="arm64" cross-gcc-gensource 12 \
- && cd cross-gcc-packages-amd64/cross-gcc-12-arm64 \
- && ln -fs /usr/share/zoneinfo/America/Toronto /etc/localtime \
- && apt-get install --no-install-recommends -yqq \
- gcc-12-source libstdc++6-arm64-cross binutils-aarch64-linux-gnu \
- bison flex libtool gdb sharutils netbase libmpc-dev \
- libmpfr-dev libgmp-dev systemtap-sdt-dev autogen expect chrpath zlib1g-dev \
- zip libc6-dev:arm64 linux-libc-dev:arm64 libgcc1:arm64 libcurl4-openssl-dev:arm64 \
- libfontconfig1-dev:arm64 libfreetype6-dev:arm64 liblttng-ust1:arm64 libstdc++6:arm64 libssl-dev:arm64 \
- && apt-get clean autoclean -yqq \
- && apt-get autoremove -yqq \
- && rm -rf /var/lib/apt/lists/*
-
-# Link to build script
-RUN ln -sf ${SOURCE_DIR}/deployment/build.ubuntu.arm64 /build.sh
-
-VOLUME ${SOURCE_DIR}/
-
-VOLUME ${ARTIFACT_DIR}/
-
-ENTRYPOINT ["/build.sh"]
diff --git a/deployment/Dockerfile.ubuntu.armhf b/deployment/Dockerfile.ubuntu.armhf
deleted file mode 100644
index 83fe32acf..000000000
--- a/deployment/Dockerfile.ubuntu.armhf
+++ /dev/null
@@ -1,56 +0,0 @@
-ARG DOTNET_VERSION=8.0
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-jammy
-
-# Docker build arguments
-ARG SOURCE_DIR=/jellyfin
-ARG ARTIFACT_DIR=/dist
-
-# Docker run environment
-ENV SOURCE_DIR=/jellyfin
-ENV ARTIFACT_DIR=/dist
-ENV DEB_BUILD_OPTIONS=noddebs
-ENV ARCH=amd64
-ENV IS_DOCKER=YES
-
-# Prepare Debian build environment
-RUN apt-get update -yqq \
- && apt-get install --no-install-recommends -yqq \
- debhelper gnupg wget ca-certificates devscripts \
- mmv build-essential lsb-release
-
-# Prepare the cross-toolchain
-RUN rm /etc/apt/sources.list \
- && export CODENAME="$( lsb_release -c -s )" \
- && echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME} main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
- && echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-updates main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
- && echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-backports main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
- && echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-security main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
- && echo "deb [arch=armhf] http://ports.ubuntu.com/ ${CODENAME} main restricted universe multiverse" >>/etc/apt/sources.list.d/armhf.list \
- && echo "deb [arch=armhf] http://ports.ubuntu.com/ ${CODENAME}-updates main restricted universe multiverse" >>/etc/apt/sources.list.d/armhf.list \
- && echo "deb [arch=armhf] http://ports.ubuntu.com/ ${CODENAME}-backports main restricted universe multiverse" >>/etc/apt/sources.list.d/armhf.list \
- && echo "deb [arch=armhf] http://ports.ubuntu.com/ ${CODENAME}-security main restricted universe multiverse" >>/etc/apt/sources.list.d/armhf.list \
- && dpkg --add-architecture armhf \
- && apt-get update -yqq \
- && apt-get install --no-install-recommends -yqq cross-gcc-dev \
- && TARGET_LIST="armhf" cross-gcc-gensource 12 \
- && cd cross-gcc-packages-amd64/cross-gcc-12-armhf \
- && ln -fs /usr/share/zoneinfo/America/Toronto /etc/localtime \
- && apt-get install --no-install-recommends -yqq \
- gcc-12-source libstdc++6-armhf-cross binutils-arm-linux-gnueabihf \
- bison flex libtool gdb sharutils netbase libmpc-dev \
- libmpfr-dev libgmp-dev systemtap-sdt-dev autogen expect chrpath zlib1g-dev \
- zip libc6-dev:armhf linux-libc-dev:armhf libgcc1:armhf libcurl4-openssl-dev:armhf \
- libfontconfig1-dev:armhf libfreetype6-dev:armhf liblttng-ust1:armhf libstdc++6:armhf libssl-dev:armhf \
- && apt-get clean autoclean -yqq \
- && apt-get autoremove -yqq \
- && rm -rf /var/lib/apt/lists/*
-
-# Link to build script
-RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.armhf /build.sh
-
-VOLUME ${SOURCE_DIR}/
-
-VOLUME ${ARTIFACT_DIR}/
-
-ENTRYPOINT ["/build.sh"]
diff --git a/deployment/Dockerfile.windows.amd64 b/deployment/Dockerfile.windows.amd64
deleted file mode 100644
index 358fb620a..000000000
--- a/deployment/Dockerfile.windows.amd64
+++ /dev/null
@@ -1,32 +0,0 @@
-ARG DOTNET_VERSION=8.0
-
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
-
-# Docker build arguments
-ARG SOURCE_DIR=/jellyfin
-ARG ARTIFACT_DIR=/dist
-
-# Docker run environment
-ENV SOURCE_DIR=/jellyfin
-ENV ARTIFACT_DIR=/dist
-ENV DEB_BUILD_OPTIONS=noddebs
-ENV IS_DOCKER=YES
-
-# Prepare Debian build environment
-RUN apt-get update -yqq \
- && apt-get install --no-install-recommends -yqq \
- debhelper gnupg devscripts unzip \
- mmv libcurl4-openssl-dev libfontconfig1-dev \
- libfreetype6-dev libssl-dev libssl3 liblttng-ust1 zip \
- && apt-get clean autoclean -yqq \
- && apt-get autoremove -yqq \
- && rm -rf /var/lib/apt/lists/*
-
-# Link to docker-build script
-RUN ln -sf ${SOURCE_DIR}/deployment/build.windows.amd64 /build.sh
-
-VOLUME ${SOURCE_DIR}/
-
-VOLUME ${ARTIFACT_DIR}/
-
-ENTRYPOINT ["/build.sh"]
diff --git a/deployment/build.centos.amd64 b/deployment/build.centos.amd64
deleted file mode 100755
index 26be377f1..000000000
--- a/deployment/build.centos.amd64
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/bash
-
-#= CentOS/RHEL 9+ amd64 .rpm
-
-set -o errexit
-set -o xtrace
-
-# Move to source directory
-pushd "${SOURCE_DIR}"
-
-if [[ ${IS_DOCKER} == YES ]]; then
- # Remove BuildRequires for dotnet, since it's installed manually
- pushd centos
-
- cp -a jellyfin.spec /tmp/spec.orig
- sed -i 's/BuildRequires: dotnet/# BuildRequires: dotnet/' jellyfin.spec
-
- popd
-fi
-
-# Modify changelog to unstable configuration if IS_UNSTABLE
-if [[ ${IS_UNSTABLE} == 'yes' ]]; then
- pushd centos
-
- PR_ID=$( git log --grep 'Merge pull request' --oneline --single-worktree --first-parent | head -1 | grep --color=none -Eo '#[0-9]+' | tr -d '#' )
-
- sed -i "s/Version:.*/Version: ${BUILD_ID}/" jellyfin.spec
- sed -i "/%changelog/q" jellyfin.spec
-
- cat <<EOF >>jellyfin.spec
-* $( LANG=C date '+%a %b %d %Y' ) Jellyfin Packaging Team <packaging@jellyfin.org>
-- Jellyfin Server unstable build ${BUILD_ID} for merged PR #${PR_ID}
-EOF
- popd
-fi
-
-# Build RPM
-make -f centos/Makefile srpm outdir=/root/rpmbuild/SRPMS
-rpmbuild --rebuild -bb /root/rpmbuild/SRPMS/jellyfin-*.src.rpm
-
-# Move the artifacts out
-mv /root/rpmbuild/RPMS/x86_64/jellyfin-*.rpm /root/rpmbuild/SRPMS/jellyfin-*.src.rpm "${ARTIFACT_DIR}/"
-
-if [[ ${IS_DOCKER} == YES ]]; then
- chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
-fi
-
-rm -f centos/jellyfin*.tar.gz
-
-if [[ ${IS_DOCKER} == YES ]]; then
- pushd centos
-
- cp -a /tmp/spec.orig jellyfin.spec
- chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
-
- popd
-fi
-
-popd
diff --git a/deployment/build.debian.amd64 b/deployment/build.debian.amd64
deleted file mode 100755
index 350b22a85..000000000
--- a/deployment/build.debian.amd64
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash
-
-#= Debian 12+ amd64 .deb
-
-set -o errexit
-set -o xtrace
-
-# Move to source directory
-pushd "${SOURCE_DIR}"
-
-# Modify changelog to unstable configuration if IS_UNSTABLE
-if [[ ${IS_UNSTABLE} == 'yes' ]]; then
- pushd debian
- PR_ID=$( git log --grep 'Merge pull request' --oneline --single-worktree --first-parent | head -1 | grep --color=none -Eo '#[0-9]+' | tr -d '#' )
-
- cat <<EOF >changelog
-jellyfin-server (${BUILD_ID}-unstable) unstable; urgency=medium
-
- * Jellyfin Server unstable build ${BUILD_ID} for merged PR #${PR_ID}
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> $( date --rfc-2822 )
-EOF
- popd
-fi
-
-# Build DEB
-dpkg-buildpackage -us -uc --pre-clean --post-clean
-
-mkdir -p "${ARTIFACT_DIR}/"
-mv ../jellyfin*.{deb,dsc,tar.gz,buildinfo,changes} "${ARTIFACT_DIR}/"
-
-if [[ ${IS_DOCKER} == YES ]]; then
- cp -a /tmp/control.orig debian/control
- chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
-fi
-
-popd
diff --git a/deployment/build.debian.arm64 b/deployment/build.debian.arm64
deleted file mode 100755
index 0dfca0ab4..000000000
--- a/deployment/build.debian.arm64
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash
-
-#= Debian 12+ arm64 .deb
-
-set -o errexit
-set -o xtrace
-
-# Move to source directory
-pushd "${SOURCE_DIR}"
-
-# Modify changelog to unstable configuration if IS_UNSTABLE
-if [[ ${IS_UNSTABLE} == 'yes' ]]; then
- pushd debian
- PR_ID=$( git log --grep 'Merge pull request' --oneline --single-worktree --first-parent | head -1 | grep --color=none -Eo '#[0-9]+' | tr -d '#' )
-
- cat <<EOF >changelog
-jellyfin-server (${BUILD_ID}-unstable) unstable; urgency=medium
-
- * Jellyfin Server unstable build ${BUILD_ID} for merged PR #${PR_ID}
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> $( date --rfc-2822 )
-EOF
- popd
-fi
-
-# Build DEB
-export CONFIG_SITE=/etc/dpkg-cross/cross-config.${ARCH}
-dpkg-buildpackage -us -uc -a arm64 --pre-clean --post-clean
-
-mkdir -p "${ARTIFACT_DIR}/"
-mv ../jellyfin*.{deb,dsc,tar.gz,buildinfo,changes} "${ARTIFACT_DIR}/"
-
-if [[ ${IS_DOCKER} == YES ]]; then
- cp -a /tmp/control.orig debian/control
- chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
-fi
-
-popd
diff --git a/deployment/build.debian.armhf b/deployment/build.debian.armhf
deleted file mode 100755
index 0ab9e2f9a..000000000
--- a/deployment/build.debian.armhf
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash
-
-#= Debian 12+ arm64 .deb
-
-set -o errexit
-set -o xtrace
-
-# Move to source directory
-pushd "${SOURCE_DIR}"
-
-# Modify changelog to unstable configuration if IS_UNSTABLE
-if [[ ${IS_UNSTABLE} == 'yes' ]]; then
- pushd debian
- PR_ID=$( git log --grep 'Merge pull request' --oneline --single-worktree --first-parent | head -1 | grep --color=none -Eo '#[0-9]+' | tr -d '#' )
-
- cat <<EOF >changelog
-jellyfin-server (${BUILD_ID}-unstable) unstable; urgency=medium
-
- * Jellyfin Server unstable build ${BUILD_ID} for merged PR #${PR_ID}
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> $( date --rfc-2822 )
-EOF
- popd
-fi
-
-# Build DEB
-export CONFIG_SITE=/etc/dpkg-cross/cross-config.${ARCH}
-dpkg-buildpackage -us -uc -a armhf --pre-clean --post-clean
-
-mkdir -p "${ARTIFACT_DIR}/"
-mv ../jellyfin*.{deb,dsc,tar.gz,buildinfo,changes} "${ARTIFACT_DIR}/"
-
-if [[ ${IS_DOCKER} == YES ]]; then
- cp -a /tmp/control.orig debian/control
- chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
-fi
-
-popd
diff --git a/deployment/build.fedora.amd64 b/deployment/build.fedora.amd64
deleted file mode 100755
index 2b4ec2a9c..000000000
--- a/deployment/build.fedora.amd64
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/bash
-
-#= Fedora 39+ amd64 .rpm
-
-set -o errexit
-set -o xtrace
-
-# Move to source directory
-pushd "${SOURCE_DIR}"
-
-if [[ ${IS_DOCKER} == YES ]]; then
- # Remove BuildRequires for dotnet, since it's installed manually
- pushd fedora
-
- cp -a jellyfin.spec /tmp/spec.orig
- sed -i 's/BuildRequires: dotnet/# BuildRequires: dotnet/' jellyfin.spec
-
- popd
-fi
-
-# Modify changelog to unstable configuration if IS_UNSTABLE
-if [[ ${IS_UNSTABLE} == 'yes' ]]; then
- pushd fedora
-
- PR_ID=$( git log --grep 'Merge pull request' --oneline --single-worktree --first-parent | head -1 | grep --color=none -Eo '#[0-9]+' | tr -d '#' )
-
- sed -i "s/Version:.*/Version: ${BUILD_ID}/" jellyfin.spec
- sed -i "/%changelog/q" jellyfin.spec
-
- cat <<EOF >>jellyfin.spec
-* $( LANG=C date '+%a %b %d %Y' ) Jellyfin Packaging Team <packaging@jellyfin.org>
-- Jellyfin Server unstable build ${BUILD_ID} for merged PR #${PR_ID}
-EOF
- popd
-fi
-
-# Build RPM
-make -f fedora/Makefile srpm outdir=/root/rpmbuild/SRPMS
-rpmbuild -rb /root/rpmbuild/SRPMS/jellyfin-*.src.rpm
-
-# Move the artifacts out
-mv /root/rpmbuild/RPMS/x86_64/jellyfin-*.rpm /root/rpmbuild/SRPMS/jellyfin-*.src.rpm "${ARTIFACT_DIR}/"
-
-if [[ ${IS_DOCKER} == YES ]]; then
- chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
-fi
-
-rm -f fedora/jellyfin*.tar.gz
-
-if [[ ${IS_DOCKER} == YES ]]; then
- pushd fedora
-
- cp -a /tmp/spec.orig jellyfin.spec
- chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
-
- popd
-fi
-
-popd
diff --git a/deployment/build.linux.amd64 b/deployment/build.linux.amd64
deleted file mode 100755
index 2998d2f9e..000000000
--- a/deployment/build.linux.amd64
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash
-
-#= Generic Linux amd64 .tar.gz
-
-set -o errexit
-set -o xtrace
-
-# Move to source directory
-pushd "${SOURCE_DIR}"
-
-# Get version
-if [[ ${IS_UNSTABLE} == 'yes' ]]; then
- version="${BUILD_ID}"
-else
- version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )"
-fi
-
-# Build archives
-dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime linux-x64 --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
-tar -czf jellyfin-server_"${version}"_linux-amd64.tar.gz -C dist jellyfin-server_"${version}"
-rm -rf dist/jellyfin-server_"${version}"
-
-# Move the artifacts out
-mkdir -p "${ARTIFACT_DIR}/"
-mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/"
-
-if [[ ${IS_DOCKER} == YES ]]; then
- chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
-fi
-
-popd
diff --git a/deployment/build.linux.amd64-musl b/deployment/build.linux.amd64-musl
deleted file mode 100755
index 0fa176465..000000000
--- a/deployment/build.linux.amd64-musl
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash
-
-#= Generic Linux amd64-musl .tar.gz
-
-set -o errexit
-set -o xtrace
-
-# Move to source directory
-pushd "${SOURCE_DIR}"
-
-# Get version
-if [[ ${IS_UNSTABLE} == 'yes' ]]; then
- version="${BUILD_ID}"
-else
- version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )"
-fi
-
-# Build archives
-dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime linux-musl-x64 --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
-tar -czf jellyfin-server_"${version}"_linux-amd64-musl.tar.gz -C dist jellyfin-server_"${version}"
-rm -rf dist/jellyfin-server_"${version}"
-
-# Move the artifacts out
-mkdir -p "${ARTIFACT_DIR}/"
-mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/"
-
-if [[ ${IS_DOCKER} == YES ]]; then
- chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
-fi
-
-popd
diff --git a/deployment/build.linux.arm64 b/deployment/build.linux.arm64
deleted file mode 100755
index dc44ca330..000000000
--- a/deployment/build.linux.arm64
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash
-
-#= Generic Linux arm64 .tar.gz
-
-set -o errexit
-set -o xtrace
-
-# Move to source directory
-pushd "${SOURCE_DIR}"
-
-# Get version
-if [[ ${IS_UNSTABLE} == 'yes' ]]; then
- version="${BUILD_ID}"
-else
- version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )"
-fi
-
-# Build archives
-dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime linux-arm64 --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
-tar -czf jellyfin-server_"${version}"_linux-arm64.tar.gz -C dist jellyfin-server_"${version}"
-rm -rf dist/jellyfin-server_"${version}"
-
-# Move the artifacts out
-mkdir -p "${ARTIFACT_DIR}/"
-mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/"
-
-if [[ ${IS_DOCKER} == YES ]]; then
- chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
-fi
-
-popd
diff --git a/deployment/build.linux.armhf b/deployment/build.linux.armhf
deleted file mode 100755
index f9de9ff0a..000000000
--- a/deployment/build.linux.armhf
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash
-
-#= Generic Linux armhf .tar.gz
-
-set -o errexit
-set -o xtrace
-
-# Move to source directory
-pushd "${SOURCE_DIR}"
-
-# Get version
-if [[ ${IS_UNSTABLE} == 'yes' ]]; then
- version="${BUILD_ID}"
-else
- version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )"
-fi
-
-# Build archives
-dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime linux-arm --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
-tar -czf jellyfin-server_"${version}"_linux-armhf.tar.gz -C dist jellyfin-server_"${version}"
-rm -rf dist/jellyfin-server_"${version}"
-
-# Move the artifacts out
-mkdir -p "${ARTIFACT_DIR}/"
-mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/"
-
-if [[ ${IS_DOCKER} == YES ]]; then
- chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
-fi
-
-popd
diff --git a/deployment/build.linux.musl-linux-arm64 b/deployment/build.linux.musl-linux-arm64
deleted file mode 100755
index ae9ab010f..000000000
--- a/deployment/build.linux.musl-linux-arm64
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash
-
-#= Generic Linux musl-linux-arm64 .tar.gz
-
-set -o errexit
-set -o xtrace
-
-# Move to source directory
-pushd "${SOURCE_DIR}"
-
-# Get version
-if [[ ${IS_UNSTABLE} == 'yes' ]]; then
- version="${BUILD_ID}"
-else
- version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )"
-fi
-
-# Build archives
-dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime linux-musl-arm64 --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
-tar -czf jellyfin-server_"${version}"_linux-arm64-musl.tar.gz -C dist jellyfin-server_"${version}"
-rm -rf dist/jellyfin-server_"${version}"
-
-# Move the artifacts out
-mkdir -p "${ARTIFACT_DIR}/"
-mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/"
-
-if [[ ${IS_DOCKER} == YES ]]; then
- chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
-fi
-
-popd
diff --git a/deployment/build.macos.amd64 b/deployment/build.macos.amd64
deleted file mode 100755
index 81e0f43f6..000000000
--- a/deployment/build.macos.amd64
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash
-
-#= macOS 10.13+ amd64 .tar.gz
-
-set -o errexit
-set -o xtrace
-
-# Move to source directory
-pushd "${SOURCE_DIR}"
-
-# Get version
-if [[ ${IS_UNSTABLE} == 'yes' ]]; then
- version="${BUILD_ID}"
-else
- version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )"
-fi
-
-# Build archives
-dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime osx-x64 --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
-tar -czf jellyfin-server_"${version}"_macos-amd64.tar.gz -C dist jellyfin-server_"${version}"
-rm -rf dist/jellyfin-server_"${version}"
-
-# Move the artifacts out
-mkdir -p "${ARTIFACT_DIR}/"
-mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/"
-
-if [[ ${IS_DOCKER} == YES ]]; then
- chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
-fi
-
-popd
diff --git a/deployment/build.macos.arm64 b/deployment/build.macos.arm64
deleted file mode 100755
index 0a6f37ede..000000000
--- a/deployment/build.macos.arm64
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash
-
-#= macOS 11.0+ arm64 .tar.gz
-
-set -o errexit
-set -o xtrace
-
-# Move to source directory
-pushd "${SOURCE_DIR}"
-
-# Get version
-if [[ ${IS_UNSTABLE} == 'yes' ]]; then
- version="${BUILD_ID}"
-else
- version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )"
-fi
-
-# Build archives
-dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime osx-arm64 --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
-tar -czf jellyfin-server_"${version}"_macos-arm64.tar.gz -C dist jellyfin-server_"${version}"
-rm -rf dist/jellyfin-server_"${version}"
-
-# Move the artifacts out
-mkdir -p "${ARTIFACT_DIR}/"
-mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/"
-
-if [[ ${IS_DOCKER} == YES ]]; then
- chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
-fi
-
-popd
diff --git a/deployment/build.portable b/deployment/build.portable
deleted file mode 100755
index fad14fccf..000000000
--- a/deployment/build.portable
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash
-
-#= Portable .NET DLL .tar.gz
-
-set -o errexit
-set -o xtrace
-
-# Move to source directory
-pushd "${SOURCE_DIR}"
-
-# Get version
-if [[ ${IS_UNSTABLE} == 'yes' ]]; then
- version="${BUILD_ID}"
-else
- version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )"
-fi
-
-# Build archives
-dotnet publish Jellyfin.Server --configuration Release --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=false
-tar -czf jellyfin-server_"${version}"_portable.tar.gz -C dist jellyfin-server_"${version}"
-rm -rf dist/jellyfin-server_"${version}"
-
-# Move the artifacts out
-mkdir -p "${ARTIFACT_DIR}/"
-mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/"
-
-if [[ ${IS_DOCKER} == YES ]]; then
- chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
-fi
-
-popd
diff --git a/deployment/build.ubuntu.amd64 b/deployment/build.ubuntu.amd64
deleted file mode 100755
index 6fd87a3ae..000000000
--- a/deployment/build.ubuntu.amd64
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash
-
-#= Ubuntu 22.04+ amd64 .deb
-
-set -o errexit
-set -o xtrace
-
-# Move to source directory
-pushd "${SOURCE_DIR}"
-
-# Modify changelog to unstable configuration if IS_UNSTABLE
-if [[ ${IS_UNSTABLE} == 'yes' ]]; then
- pushd debian
- PR_ID=$( git log --grep 'Merge pull request' --oneline --single-worktree --first-parent | head -1 | grep --color=none -Eo '#[0-9]+' | tr -d '#' )
-
- cat <<EOF >changelog
-jellyfin-server (${BUILD_ID}-unstable) unstable; urgency=medium
-
- * Jellyfin Server unstable build ${BUILD_ID} for merged PR #${PR_ID}
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> $( date --rfc-2822 )
-EOF
- popd
-fi
-
-# Build DEB
-dpkg-buildpackage -us -uc --pre-clean --post-clean
-
-mkdir -p "${ARTIFACT_DIR}/"
-mv ../jellyfin*.{deb,dsc,tar.gz,buildinfo,changes} "${ARTIFACT_DIR}/"
-
-if [[ ${IS_DOCKER} == YES ]]; then
- cp -a /tmp/control.orig debian/control
- chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
-fi
-
-popd
diff --git a/deployment/build.ubuntu.arm64 b/deployment/build.ubuntu.arm64
deleted file mode 100755
index f783941c7..000000000
--- a/deployment/build.ubuntu.arm64
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash
-
-#= Ubuntu 22.04+ arm64 .deb
-
-set -o errexit
-set -o xtrace
-
-# Move to source directory
-pushd "${SOURCE_DIR}"
-
-# Modify changelog to unstable configuration if IS_UNSTABLE
-if [[ ${IS_UNSTABLE} == 'yes' ]]; then
- pushd debian
- PR_ID=$( git log --grep 'Merge pull request' --oneline --single-worktree --first-parent | head -1 | grep --color=none -Eo '#[0-9]+' | tr -d '#' )
-
- cat <<EOF >changelog
-jellyfin-server (${BUILD_ID}-unstable) unstable; urgency=medium
-
- * Jellyfin Server unstable build ${BUILD_ID} for merged PR #${PR_ID}
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> $( date --rfc-2822 )
-EOF
- popd
-fi
-
-# Build DEB
-export CONFIG_SITE=/etc/dpkg-cross/cross-config.${ARCH}
-dpkg-buildpackage -us -uc -a arm64 --pre-clean --post-clean
-
-mkdir -p "${ARTIFACT_DIR}/"
-mv ../jellyfin*.{deb,dsc,tar.gz,buildinfo,changes} "${ARTIFACT_DIR}/"
-
-if [[ ${IS_DOCKER} == YES ]]; then
- cp -a /tmp/control.orig debian/control
- chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
-fi
-
-popd
diff --git a/deployment/build.ubuntu.armhf b/deployment/build.ubuntu.armhf
deleted file mode 100755
index cde6708c5..000000000
--- a/deployment/build.ubuntu.armhf
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash
-
-#= Ubuntu 22.04+ arm64 .deb
-
-set -o errexit
-set -o xtrace
-
-# Move to source directory
-pushd "${SOURCE_DIR}"
-
-# Modify changelog to unstable configuration if IS_UNSTABLE
-if [[ ${IS_UNSTABLE} == 'yes' ]]; then
- pushd debian
- PR_ID=$( git log --grep 'Merge pull request' --oneline --single-worktree --first-parent | head -1 | grep --color=none -Eo '#[0-9]+' | tr -d '#' )
-
- cat <<EOF >changelog
-jellyfin-server (${BUILD_ID}-unstable) unstable; urgency=medium
-
- * Jellyfin Server unstable build ${BUILD_ID} for merged PR #${PR_ID}
-
- -- Jellyfin Packaging Team <packaging@jellyfin.org> $( date --rfc-2822 )
-EOF
- popd
-fi
-
-# Build DEB
-export CONFIG_SITE=/etc/dpkg-cross/cross-config.${ARCH}
-dpkg-buildpackage -us -uc -a armhf --pre-clean --post-clean
-
-mkdir -p "${ARTIFACT_DIR}/"
-mv ../jellyfin*.{deb,dsc,tar.gz,buildinfo,changes} "${ARTIFACT_DIR}/"
-
-if [[ ${IS_DOCKER} == YES ]]; then
- cp -a /tmp/control.orig debian/control
- chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
-fi
-
-popd
diff --git a/deployment/build.windows.amd64 b/deployment/build.windows.amd64
deleted file mode 100755
index cd07f4e0b..000000000
--- a/deployment/build.windows.amd64
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/bash
-
-#= Windows 7+ amd64 (x64) .zip
-
-set -o errexit
-set -o xtrace
-
-# Version variables
-NSSM_VERSION="nssm-2.24-101-g897c7ad"
-NSSM_URL="http://files.evilt.win/nssm/${NSSM_VERSION}.zip"
-FFMPEG_URL="https://repo.jellyfin.org/releases/server/windows/ffmpeg/jellyfin-ffmpeg-portable_win64.zip";
-
-# Move to source directory
-pushd "${SOURCE_DIR}"
-
-# Get version
-if [[ ${IS_UNSTABLE} == 'yes' ]]; then
- version="${BUILD_ID}"
-else
- version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )"
-fi
-
-output_dir="dist/jellyfin-server_${version}"
-
-# Build binary
-dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime win-x64 --output "${output_dir}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
-
-# Prepare addins
-addin_build_dir="$( mktemp -d )"
-wget ${NSSM_URL} -O "${addin_build_dir}"/nssm.zip
-wget ${FFMPEG_URL} -O "${addin_build_dir}"/jellyfin-ffmpeg.zip
-unzip "${addin_build_dir}"/nssm.zip -d "${addin_build_dir}"
-cp "${addin_build_dir}"/${NSSM_VERSION}/win64/nssm.exe "${output_dir}"/nssm.exe
-unzip "${addin_build_dir}"/jellyfin-ffmpeg.zip -d "${addin_build_dir}"/jellyfin-ffmpeg
-cp "${addin_build_dir}"/jellyfin-ffmpeg/* "${output_dir}"
-rm -rf "${addin_build_dir}"
-
-# Create zip package
-pushd dist
-zip -qr jellyfin-server_"${version}".portable.zip jellyfin-server_"${version}"
-popd
-rm -rf "${output_dir}"
-
-# Move the artifacts out
-mkdir -p "${ARTIFACT_DIR}/"
-mv dist/jellyfin[-_]*.zip "${ARTIFACT_DIR}/"
-
-if [[ ${IS_DOCKER} == YES ]]; then
- chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
-fi
-
-popd
diff --git a/fedora/.gitignore b/fedora/.gitignore
deleted file mode 100644
index 6019b98c2..000000000
--- a/fedora/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-*.rpm
-*.zip
-*.tar.gz \ No newline at end of file
diff --git a/fedora/Makefile b/fedora/Makefile
deleted file mode 100644
index 3188cf603..000000000
--- a/fedora/Makefile
+++ /dev/null
@@ -1,52 +0,0 @@
-DIR := $(dir $(lastword $(MAKEFILE_LIST)))
-INSTGIT := $(shell if [ "$$(id -u)" = "0" ]; then dnf -y install git; fi)
-NAME := jellyfin-server
-VERSION := $(shell sed -ne '/^Version:/s/.* *//p' $(DIR)/jellyfin.spec)
-RELEASE := $(shell sed -ne '/^Release:/s/.* *\(.*\)%{.*}.*/\1/p' $(DIR)/jellyfin.spec)
-SRPM := jellyfin-$(subst -,~,$(VERSION))-$(RELEASE)$(shell rpm --eval %dist).src.rpm
-TARBALL :=$(NAME)-$(subst -,~,$(VERSION)).tar.gz
-
-epel-7-x86_64_repos := https://packages.microsoft.com/rhel/7/prod/
-
-fed_ver := $(shell rpm -E %fedora)
-# fallback when not running on Fedora
-fed_ver ?= 36
-TARGET ?= fedora-$(fed_ver)-x86_64
-
-outdir ?= $(PWD)/$(DIR)/
-
-srpm: $(DIR)/$(SRPM)
-tarball: $(DIR)/$(TARBALL)
-
-$(DIR)/$(TARBALL):
- cd $(DIR)/; \
- SOURCE_DIR=.. \
- WORKDIR="$${PWD}"; \
- version=$(VERSION); \
- tar \
- --transform "s,^\.,$(NAME)-$(subst -,~,$(VERSION))," \
- --exclude='.git*' \
- --exclude='**/.git' \
- --exclude='**/.hg' \
- --exclude='**/.vs' \
- --exclude='**/.vscode' \
- --exclude=deployment \
- --exclude='**/bin' \
- --exclude='**/obj' \
- --exclude='**/.nuget' \
- --exclude='*.deb' \
- --exclude='*.rpm' \
- --exclude=$(notdir $@) \
- -czf $(notdir $@) \
- -C $${SOURCE_DIR} ./
-
-$(DIR)/$(SRPM): $(DIR)/$(TARBALL) $(DIR)/jellyfin.spec
- cd $(DIR)/; \
- rpmbuild -bs jellyfin.spec \
- --define "_sourcedir $$PWD/" \
- --define "_srcrpmdir $(outdir)"
-
-rpms: $(DIR)/$(SRPM)
- mock $(addprefix --addrepo=, $($(TARGET)_repos)) \
- --enable-network \
- -r $(TARGET) $<
diff --git a/fedora/README.md b/fedora/README.md
deleted file mode 100644
index 6ea87740f..000000000
--- a/fedora/README.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# Jellyfin RPM
-
-## 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 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 8
-$ sudo dnf localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
-# CentOS 9
-$ sudo dnf localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-9.noarch.rpm
-```
-
-## Building with dotnet
-
-Jellyfin is build with `--self-contained` so no dotnet required for runtime.
-
-```shell
-# dotnet required for building the RPM
-# Fedora
-$ sudo dnf copr enable @dotnet-sig/dotnet
-# CentOS 8
-$ sudo rpm -Uvh https://packages.microsoft.com/config/rhel/8/packages-microsoft-prod.rpm
-# CentOS 9
-$ sudo rpm -Uvh https://packages.microsoft.com/config/rhel/9/packages-microsoft-prod.rpm
-```
-
-## TODO
-
-- [ ] OpenSUSE
diff --git a/fedora/jellyfin-firewalld.xml b/fedora/jellyfin-firewalld.xml
deleted file mode 100644
index 538c5d65f..000000000
--- a/fedora/jellyfin-firewalld.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<service>
- <short>Jellyfin</short>
- <description>The Free Software Media System.</description>
- <port protocol="tcp" port="8096"/>
- <port protocol="tcp" port="8920"/>
- <port protocol="udp" port="1900"/>
- <port protocol="udp" port="7359"/>
-</service>
diff --git a/fedora/jellyfin-selinux-launcher.sh b/fedora/jellyfin-selinux-launcher.sh
deleted file mode 100644
index e07a351d9..000000000
--- a/fedora/jellyfin-selinux-launcher.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-exec /usr/lib64/jellyfin/jellyfin "${@}"
diff --git a/fedora/jellyfin-server-lowports.conf b/fedora/jellyfin-server-lowports.conf
deleted file mode 100644
index eeb48a4e4..000000000
--- a/fedora/jellyfin-server-lowports.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-# This allows Jellyfin to bind to low ports such as 80 and/or 443
-
-[Service]
-AmbientCapabilities=CAP_NET_BIND_SERVICE \ No newline at end of file
diff --git a/fedora/jellyfin.env b/fedora/jellyfin.env
deleted file mode 100644
index cee8f6854..000000000
--- a/fedora/jellyfin.env
+++ /dev/null
@@ -1,44 +0,0 @@
-# Jellyfin default configuration options
-
-# Use this file to override the default configurations; add additional
-# options with JELLYFIN_ADD_OPTS.
-
-# To override the user or this config file's location, use
-# /etc/systemd/system/jellyfin.service.d/override.conf
-
-#
-# This is a POSIX shell fragment
-#
-
-#
-# General options
-#
-
-# Program directories
-JELLYFIN_DATA_DIR="/var/lib/jellyfin"
-JELLYFIN_CONFIG_DIR="/etc/jellyfin"
-JELLYFIN_LOG_DIR="/var/log/jellyfin"
-JELLYFIN_CACHE_DIR="/var/cache/jellyfin"
-
-# web client path, installed by the jellyfin-web package
-# JELLYFIN_WEB_OPT="--webdir=/usr/share/jellyfin-web"
-
-# In-App service control
-JELLYFIN_RESTART_OPT="--restartpath=/usr/libexec/jellyfin/restart.sh"
-
-# Disable glibc dynamic heap adjustment
-MALLOC_TRIM_THRESHOLD_=131072
-
-# [OPTIONAL] ffmpeg binary paths, overriding the UI-configured values
-#JELLYFIN_FFMPEG_OPT="--ffmpeg=/usr/bin/ffmpeg"
-
-# [OPTIONAL] run Jellyfin as a headless service
-#JELLYFIN_SERVICE_OPT="--service"
-
-# [OPTIONAL] run Jellyfin without the web app
-#JELLYFIN_NOWEBAPP_OPT="--nowebclient"
-
-# [OPTIONAL] run Jellyfin with ASP.NET Server Garbage Collection (uses more RAM and less CPU than Workstation GC)
-# 0 = Workstation
-# 1 = Server
-#COMPlus_gcServer=1
diff --git a/fedora/jellyfin.override.conf b/fedora/jellyfin.override.conf
deleted file mode 100644
index 48b4de1e9..000000000
--- a/fedora/jellyfin.override.conf
+++ /dev/null
@@ -1,53 +0,0 @@
-# Jellyfin systemd configuration options
-
-# Use this file to override the user or environment file location.
-
-[Service]
-#User = jellyfin
-#EnvironmentFile = /etc/sysconfig/jellyfin
-
-# Service hardening options
-# These were added in PR #6953 to solve issue #6952, but some combination of
-# them causes "restart.sh" functionality to break with the following error:
-# sudo: effective uid is not 0, is /usr/bin/sudo on a file system with the
-# 'nosuid' option set or an NFS file system without root privileges?
-# See issue #7503 for details on the troubleshooting that went into this.
-# Since these were added for NixOS specifically and are above and beyond
-# what 99% of systemd units do, they have been moved here as optional
-# additional flags to set for maximum system security and can be enabled at
-# the administrator's or package maintainer's discretion.
-# Uncomment these only if you know what you're doing, and doing so may cause
-# bugs with in-server Restart and potentially other functionality as well.
-#NoNewPrivileges=true
-#SystemCallArchitectures=native
-#RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK
-#RestrictNamespaces=false
-#RestrictRealtime=true
-#RestrictSUIDSGID=true
-#ProtectClock=true
-#ProtectControlGroups=false
-#ProtectHostname=true
-#ProtectKernelLogs=false
-#ProtectKernelModules=false
-#ProtectKernelTunables=false
-#LockPersonality=true
-#PrivateTmp=false
-#PrivateDevices=false
-#PrivateUsers=true
-#RemoveIPC=true
-#SystemCallFilter=~@clock
-#SystemCallFilter=~@aio
-#SystemCallFilter=~@chown
-#SystemCallFilter=~@cpu-emulation
-#SystemCallFilter=~@debug
-#SystemCallFilter=~@keyring
-#SystemCallFilter=~@memlock
-#SystemCallFilter=~@module
-#SystemCallFilter=~@mount
-#SystemCallFilter=~@obsolete
-#SystemCallFilter=~@privileged
-#SystemCallFilter=~@raw-io
-#SystemCallFilter=~@reboot
-#SystemCallFilter=~@setuid
-#SystemCallFilter=~@swap
-#SystemCallErrorNumber=EPERM
diff --git a/fedora/jellyfin.service b/fedora/jellyfin.service
deleted file mode 100644
index 01accdc0c..000000000
--- a/fedora/jellyfin.service
+++ /dev/null
@@ -1,17 +0,0 @@
-[Unit]
-Description = Jellyfin Media Server
-After = network-online.target
-
-[Service]
-Type = simple
-EnvironmentFile = /etc/sysconfig/jellyfin
-User = jellyfin
-Group = jellyfin
-WorkingDirectory = /var/lib/jellyfin
-ExecStart = /usr/bin/jellyfin $JELLYFIN_WEB_OPT $JELLYFIN_FFMPEG_OPT $JELLYFIN_SERVICE_OPT $JELLYFIN_NOWEBAPP_OPT $JELLYFIN_ADDITIONAL_OPTS
-Restart = on-failure
-TimeoutSec = 15
-SuccessExitStatus=0 143
-
-[Install]
-WantedBy = multi-user.target
diff --git a/fedora/jellyfin.spec b/fedora/jellyfin.spec
deleted file mode 100644
index 5327495ad..000000000
--- a/fedora/jellyfin.spec
+++ /dev/null
@@ -1,197 +0,0 @@
-%global debug_package %{nil}
-
-Name: jellyfin
-Version: 10.9.0
-Release: 1%{?dist}
-Summary: The Free Software Media System
-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
-Source10: jellyfin-selinux-launcher.sh
-Source11: jellyfin.service
-Source12: jellyfin.env
-Source13: jellyfin.override.conf
-Source14: jellyfin-firewalld.xml
-Source15: 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 RHEL 7 main repos, added via Makefile
-# https://packages.microsoft.com/rhel/7/prod/
-BuildRequires: dotnet-runtime-8.0, dotnet-sdk-8.0
-Requires: %{name}-server = %{version}-%{release}, %{name}-web = %{version}-%{release}
-
-%description
-Jellyfin is a free software media system that puts you in control of managing and streaming your media.
-
-%package server
-# RPMfusion free
-Summary: The Free Software Media System Server backend
-Requires(pre): shadow-utils
-Requires: ffmpeg
-Requires: libcurl, fontconfig, freetype, openssl, glibc, libicu
-
-%description server
-The Jellyfin media server backend.
-
-%package server-lowports
-# RPMfusion free
-Summary: The Free Software Media System Server backend. Low-port binding.
-Requires: jellyfin-server
-
-%description server-lowports
-The Jellyfin media server backend low port binding package. This package
-enables binding to ports < 1024. You would install this if you want
-the Jellyfin server to bind to ports 80 and/or 443 for example.
-
-%prep
-%autosetup -n jellyfin-server-%{version} -b 0
-
-
-%build
-export DOTNET_CLI_TELEMETRY_OPTOUT=1
-export PATH=$PATH:/usr/local/bin
-# cannot use --output due to https://github.com/dotnet/sdk/issues/22220
-dotnet publish --configuration Release --self-contained --runtime linux-x64 \
- -p:DebugSymbols=false -p:DebugType=none Jellyfin.Server
-
-
-%install
-# Jellyfin files
-%{__mkdir} -p %{buildroot}%{_libdir}/jellyfin %{buildroot}%{_bindir}
-%{__cp} -r Jellyfin.Server/bin/Release/net8.0/linux-x64/publish/* %{buildroot}%{_libdir}/jellyfin
-%{__install} -D %{SOURCE10} %{buildroot}%{_bindir}/jellyfin
-sed -i -e 's|/usr/lib64|%{_libdir}|g' %{buildroot}%{_bindir}/jellyfin
-
-# 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 %{SOURCE14} %{buildroot}%{_prefix}/lib/firewalld/services/jellyfin.xml
-%{__install} -D %{SOURCE13} %{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}/cache/jellyfin
-%{__mkdir} -p %{buildroot}%{_var}/log/jellyfin
-
-# jellyfin-server-lowports subpackage
-%{__install} -D -m 0644 %{SOURCE15} %{buildroot}%{_unitdir}/jellyfin.service.d/jellyfin-server-lowports.conf
-
-
-%files
-# empty as this is just a meta-package
-
-%files server
-%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
-%{_libdir}/jellyfin/*
-%attr(755,root,root) %{_bindir}/jellyfin
-
-# 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) %{_sysconfdir}/systemd/system/jellyfin.service.d/override.conf
-
-# empty directories
-%attr(750,jellyfin,jellyfin) %dir %{_sharedstatedir}/jellyfin
-%attr(755,jellyfin,jellyfin) %dir %{_sysconfdir}/jellyfin
-%attr(750,jellyfin,jellyfin) %dir %{_var}/cache/jellyfin
-%attr(-, jellyfin,jellyfin) %dir %{_var}/log/jellyfin
-
-%license LICENSE
-
-
-%files server-lowports
-%{_unitdir}/jellyfin.service.d/jellyfin-server-lowports.conf
-
-%pre server
-getent group jellyfin >/dev/null || groupadd -r jellyfin
-getent passwd jellyfin >/dev/null || \
- useradd -r -g jellyfin -d %{_sharedstatedir}/jellyfin -s /sbin/nologin \
- -c "Jellyfin default user" jellyfin
-# Add jellyfin to the render and video groups for hwa.
-[ ! -z "$(getent group render)" ] && usermod -aG render jellyfin >/dev/null 2>&1
-[ ! -z "$(getent group video)" ] && usermod -aG video jellyfin >/dev/null 2>&1
-exit 0
-
-%post server
-# Move existing configuration cache and logs to their new locations and symlink them.
-if [ $1 -gt 1 ] ; then
- service_state=$(systemctl is-active jellyfin.service)
- if [ "${service_state}" = "active" ]; then
- systemctl stop jellyfin.service
- fi
- if [ ! -L %{_sharedstatedir}/jellyfin/config ]; then
- mv %{_sharedstatedir}/jellyfin/config/* %{_sysconfdir}/jellyfin/
- rmdir %{_sharedstatedir}/jellyfin/config
- ln -sf %{_sysconfdir}/jellyfin %{_sharedstatedir}/jellyfin/config
- fi
- if [ ! -L %{_sharedstatedir}/jellyfin/logs ]; then
- mv %{_sharedstatedir}/jellyfin/logs/* %{_var}/log/jellyfin
- rmdir %{_sharedstatedir}/jellyfin/logs
- ln -sf %{_var}/log/jellyfin %{_sharedstatedir}/jellyfin/logs
- fi
- if [ ! -L %{_sharedstatedir}/jellyfin/cache ]; then
- mv %{_sharedstatedir}/jellyfin/cache/* %{_var}/cache/jellyfin
- rmdir %{_sharedstatedir}/jellyfin/cache
- ln -sf %{_var}/cache/jellyfin %{_sharedstatedir}/jellyfin/cache
- fi
- if [ "${service_state}" = "active" ]; then
- systemctl start jellyfin.service
- fi
-fi
-%systemd_post jellyfin.service
-
-%preun server
-%systemd_preun jellyfin.service
-
-%postun server
-%systemd_postun_with_restart jellyfin.service
-
-%changelog
-* Wed Jul 13 2022 Jellyfin Packaging Team <packaging@jellyfin.org>
-- New upstream version 10.9.0; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.9.0
-* Mon Nov 29 2021 Brian J. Murrell <brian@interlinx.bc.ca>
-- Add jellyfin-server-lowports.service drop-in in a server-lowports
- subpackage to allow binding to low ports
-* Fri Dec 04 2020 Jellyfin Packaging Team <packaging@jellyfin.org>
-- Forthcoming stable release
-* Mon Jul 27 2020 Jellyfin Packaging Team <packaging@jellyfin.org>
-- Forthcoming stable release
-* Mon Mar 23 2020 Jellyfin Packaging Team <packaging@jellyfin.org>
-- Forthcoming stable release
-* Fri Oct 11 2019 Jellyfin Packaging Team <packaging@jellyfin.org>
-- New upstream version 10.5.0; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.5.0
-* 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
-* Wed Jul 24 2019 Jellyfin Packaging Team <packaging@jellyfin.org>
-- New upstream version 10.3.7; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.3.7
-* Sat Jul 06 2019 Jellyfin Packaging Team <packaging@jellyfin.org>
-- New upstream version 10.3.6; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.3.6
-* Sun Jun 09 2019 Jellyfin Packaging Team <packaging@jellyfin.org>
-- New upstream version 10.3.5; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.3.5
-* Thu Jun 06 2019 Jellyfin Packaging Team <packaging@jellyfin.org>
-- New upstream version 10.3.4; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.3.4
-* Fri May 17 2019 Jellyfin Packaging Team <packaging@jellyfin.org>
-- New upstream version 10.3.3; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.3.3
-* Tue Apr 30 2019 Jellyfin Packaging Team <packaging@jellyfin.org>
-- New upstream version 10.3.2; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.3.2
-* Sat Apr 20 2019 Jellyfin Packaging Team <packaging@jellyfin.org>
-- New upstream version 10.3.1; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.3.1
-* Fri Apr 19 2019 Jellyfin Packaging Team <packaging@jellyfin.org>
-- New upstream version 10.3.0; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.3.0