Browse Source

Remove legacy build utilities (#11162)

Cody Robibero 1 year ago
parent
commit
78b53a60b4
78 changed files with 0 additions and 3099 deletions
  1. 0 1
      .copr
  2. 0 87
      Dockerfile
  3. 0 74
      Dockerfile.arm
  4. 0 74
      Dockerfile.arm64
  5. 0 1
      build
  6. 0 114
      build.sh
  7. 0 18
      build.yaml
  8. 0 129
      bump_version
  9. 0 89
      debian/changelog
  10. 0 1
      debian/compat
  11. 0 53
      debian/conf/jellyfin
  12. 0 55
      debian/conf/jellyfin.service.conf
  13. 0 30
      debian/conf/logging.json
  14. 0 27
      debian/control
  15. 0 29
      debian/copyright
  16. 0 6
      debian/gbp.conf
  17. 0 4
      debian/install
  18. 0 62
      debian/jellyfin.init
  19. 0 17
      debian/jellyfin.service
  20. 0 20
      debian/jellyfin.upstart
  21. 0 13
      debian/metapackage/jellyfin
  22. 0 1
      debian/po/POTFILES.in
  23. 0 57
      debian/po/templates.pot
  24. 0 102
      debian/postinst
  25. 0 81
      debian/postrm
  26. 0 78
      debian/preinst
  27. 0 61
      debian/prerm
  28. 0 55
      debian/rules
  29. 0 3
      debian/source.lintian-overrides
  30. 0 1
      debian/source/format
  31. 0 11
      debian/source/options
  32. 0 39
      deployment/Dockerfile.centos.amd64
  33. 0 33
      deployment/Dockerfile.debian.amd64
  34. 0 46
      deployment/Dockerfile.debian.arm64
  35. 0 47
      deployment/Dockerfile.debian.armhf
  36. 0 12
      deployment/Dockerfile.docker.amd64
  37. 0 12
      deployment/Dockerfile.docker.arm64
  38. 0 12
      deployment/Dockerfile.docker.armhf
  39. 0 39
      deployment/Dockerfile.fedora.amd64
  40. 0 33
      deployment/Dockerfile.linux.amd64
  41. 0 33
      deployment/Dockerfile.linux.amd64-musl
  42. 0 33
      deployment/Dockerfile.linux.arm64
  43. 0 33
      deployment/Dockerfile.linux.armhf
  44. 0 33
      deployment/Dockerfile.linux.musl-linux-arm64
  45. 0 33
      deployment/Dockerfile.macos.amd64
  46. 0 33
      deployment/Dockerfile.macos.arm64
  47. 0 32
      deployment/Dockerfile.portable
  48. 0 33
      deployment/Dockerfile.ubuntu.amd64
  49. 0 56
      deployment/Dockerfile.ubuntu.arm64
  50. 0 56
      deployment/Dockerfile.ubuntu.armhf
  51. 0 32
      deployment/Dockerfile.windows.amd64
  52. 0 59
      deployment/build.centos.amd64
  53. 0 37
      deployment/build.debian.amd64
  54. 0 38
      deployment/build.debian.arm64
  55. 0 38
      deployment/build.debian.armhf
  56. 0 59
      deployment/build.fedora.amd64
  57. 0 31
      deployment/build.linux.amd64
  58. 0 31
      deployment/build.linux.amd64-musl
  59. 0 31
      deployment/build.linux.arm64
  60. 0 31
      deployment/build.linux.armhf
  61. 0 31
      deployment/build.linux.musl-linux-arm64
  62. 0 31
      deployment/build.macos.amd64
  63. 0 31
      deployment/build.macos.arm64
  64. 0 31
      deployment/build.portable
  65. 0 37
      deployment/build.ubuntu.amd64
  66. 0 38
      deployment/build.ubuntu.arm64
  67. 0 38
      deployment/build.ubuntu.armhf
  68. 0 52
      deployment/build.windows.amd64
  69. 0 3
      fedora/.gitignore
  70. 0 52
      fedora/Makefile
  71. 0 39
      fedora/README.md
  72. 0 9
      fedora/jellyfin-firewalld.xml
  73. 0 3
      fedora/jellyfin-selinux-launcher.sh
  74. 0 4
      fedora/jellyfin-server-lowports.conf
  75. 0 44
      fedora/jellyfin.env
  76. 0 53
      fedora/jellyfin.override.conf
  77. 0 17
      fedora/jellyfin.service
  78. 0 197
      fedora/jellyfin.spec

+ 0 - 1
.copr

@@ -1 +0,0 @@
-fedora

+ 0 - 87
Dockerfile

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

+ 0 - 74
Dockerfile.arm

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

+ 0 - 74
Dockerfile.arm64

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

+ 0 - 1
build

@@ -1 +0,0 @@
-build.sh

+ 0 - 114
build.sh

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

+ 0 - 18
build.yaml

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

+ 0 - 129
bump_version

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

+ 0 - 89
debian/changelog

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

+ 0 - 1
debian/compat

@@ -1 +0,0 @@
-8

+ 0 - 53
debian/conf/jellyfin

@@ -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"

+ 0 - 55
debian/conf/jellyfin.service.conf

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

+ 0 - 30
debian/conf/logging.json

@@ -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}"
-                            }
-                        }
-                    ]
-                }
-            }
-        ]
-    }
-}

+ 0 - 27
debian/control

@@ -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.

+ 0 - 29
debian/copyright

@@ -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".

+ 0 - 6
debian/gbp.conf

@@ -1,6 +0,0 @@
-[DEFAULT]
-pristine-tar = False
-cleaner = fakeroot debian/rules clean
-
-[import-orig]
-filter = [ ".git*", ".hg*", ".vs*", ".vscode*" ]

+ 0 - 4
debian/install

@@ -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/

+ 0 - 62
debian/jellyfin.init

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

+ 0 - 17
debian/jellyfin.service

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

+ 0 - 20
debian/jellyfin.upstart

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

+ 0 - 13
debian/metapackage/jellyfin

@@ -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.
-

+ 0 - 1
debian/po/POTFILES.in

@@ -1 +0,0 @@
-[type: gettext/rfc822deb] templates

+ 0 - 57
debian/po/templates.pot

@@ -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 ""

+ 0 - 102
debian/postinst

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

+ 0 - 81
debian/postrm

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

+ 0 - 78
debian/preinst

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

+ 0 - 61
debian/prerm

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

+ 0 - 55
debian/rules

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

+ 0 - 3
debian/source.lintian-overrides

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

+ 0 - 1
debian/source/format

@@ -1 +0,0 @@
-1.0

+ 0 - 11
debian/source/options

@@ -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'

+ 0 - 39
deployment/Dockerfile.centos.amd64

@@ -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"]

+ 0 - 33
deployment/Dockerfile.debian.amd64

@@ -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"]

+ 0 - 46
deployment/Dockerfile.debian.arm64

@@ -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"]

+ 0 - 47
deployment/Dockerfile.debian.armhf

@@ -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"]

+ 0 - 12
deployment/Dockerfile.docker.amd64

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

+ 0 - 12
deployment/Dockerfile.docker.arm64

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

+ 0 - 12
deployment/Dockerfile.docker.armhf

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

+ 0 - 39
deployment/Dockerfile.fedora.amd64

@@ -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"]

+ 0 - 33
deployment/Dockerfile.linux.amd64

@@ -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"]

+ 0 - 33
deployment/Dockerfile.linux.amd64-musl

@@ -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"]

+ 0 - 33
deployment/Dockerfile.linux.arm64

@@ -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"]

+ 0 - 33
deployment/Dockerfile.linux.armhf

@@ -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"]

+ 0 - 33
deployment/Dockerfile.linux.musl-linux-arm64

@@ -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"]

+ 0 - 33
deployment/Dockerfile.macos.amd64

@@ -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"]

+ 0 - 33
deployment/Dockerfile.macos.arm64

@@ -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"]

+ 0 - 32
deployment/Dockerfile.portable

@@ -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"]

+ 0 - 33
deployment/Dockerfile.ubuntu.amd64

@@ -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"]

+ 0 - 56
deployment/Dockerfile.ubuntu.arm64

@@ -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"]

+ 0 - 56
deployment/Dockerfile.ubuntu.armhf

@@ -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"]

+ 0 - 32
deployment/Dockerfile.windows.amd64

@@ -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"]

+ 0 - 59
deployment/build.centos.amd64

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

+ 0 - 37
deployment/build.debian.amd64

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

+ 0 - 38
deployment/build.debian.arm64

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

+ 0 - 38
deployment/build.debian.armhf

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

+ 0 - 59
deployment/build.fedora.amd64

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

+ 0 - 31
deployment/build.linux.amd64

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

+ 0 - 31
deployment/build.linux.amd64-musl

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

+ 0 - 31
deployment/build.linux.arm64

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

+ 0 - 31
deployment/build.linux.armhf

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

+ 0 - 31
deployment/build.linux.musl-linux-arm64

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

+ 0 - 31
deployment/build.macos.amd64

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

+ 0 - 31
deployment/build.macos.arm64

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

+ 0 - 31
deployment/build.portable

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

+ 0 - 37
deployment/build.ubuntu.amd64

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

+ 0 - 38
deployment/build.ubuntu.arm64

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

+ 0 - 38
deployment/build.ubuntu.armhf

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

+ 0 - 52
deployment/build.windows.amd64

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

+ 0 - 3
fedora/.gitignore

@@ -1,3 +0,0 @@
-*.rpm
-*.zip
-*.tar.gz

+ 0 - 52
fedora/Makefile

@@ -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) $<

+ 0 - 39
fedora/README.md

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

+ 0 - 9
fedora/jellyfin-firewalld.xml

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

+ 0 - 3
fedora/jellyfin-selinux-launcher.sh

@@ -1,3 +0,0 @@
-#!/bin/sh
-
-exec /usr/lib64/jellyfin/jellyfin "${@}"

+ 0 - 4
fedora/jellyfin-server-lowports.conf

@@ -1,4 +0,0 @@
-# This allows Jellyfin to bind to low ports such as 80 and/or 443
-
-[Service]
-AmbientCapabilities=CAP_NET_BIND_SERVICE

+ 0 - 44
fedora/jellyfin.env

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

+ 0 - 53
fedora/jellyfin.override.conf

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

+ 0 - 17
fedora/jellyfin.service

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

+ 0 - 197
fedora/jellyfin.spec

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