diff --git a/.copr b/.copr deleted file mode 120000 index 100fe0cd7b..0000000000 --- a/.copr +++ /dev/null @@ -1 +0,0 @@ -fedora \ No newline at end of file diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 550c3203d7..0000000000 --- a/Dockerfile +++ /dev/null @@ -1,87 +0,0 @@ -# DESIGNED FOR BUILDING ON AMD64 ONLY -##################################### -# Requires binfm_misc registration -# https://github.com/multiarch/qemu-user-static#binfmt_misc-register -ARG DOTNET_VERSION=8.0 - -FROM node:20-alpine as web-builder -ARG JELLYFIN_WEB_VERSION=master -RUN apk add curl git zlib zlib-dev autoconf g++ make libpng-dev gifsicle alpine-sdk automake libtool make gcc musl-dev nasm python3 \ - && curl -L https://github.com/jellyfin/jellyfin-web/archive/${JELLYFIN_WEB_VERSION}.tar.gz | tar zxf - \ - && apk del curl \ - && cd jellyfin-web-* \ - && npm ci --no-audit --unsafe-perm \ - && npm run build:production \ - && mv dist /dist - -FROM debian:bookworm-slim as app - -# https://askubuntu.com/questions/972516/debian-frontend-environment-variable -ARG DEBIAN_FRONTEND="noninteractive" -# http://stackoverflow.com/questions/48162574/ddg#49462622 -ARG APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn -# https://github.com/NVIDIA/nvidia-docker/wiki/Installation-(Native-GPU-Support) -ENV NVIDIA_VISIBLE_DEVICES="all" -ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" - -ENV JELLYFIN_DATA_DIR=/config -ENV JELLYFIN_CACHE_DIR=/cache - -# https://github.com/intel/compute-runtime/releases -ARG GMMLIB_VERSION=22.3.11.ci17757293 -ARG IGC_VERSION=1.0.15136.22 -ARG NEO_VERSION=23.39.27427.23 -ARG LEVEL_ZERO_VERSION=1.3.27427.23 - -RUN apt-get update \ - && apt-get install --no-install-recommends --no-install-suggests -y ca-certificates gnupg curl \ - && curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/debian-jellyfin.gpg \ - && echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release ) $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release ) main" | tee /etc/apt/sources.list.d/jellyfin.list \ - && apt-get update \ - && apt-get install --no-install-recommends --no-install-suggests -y mesa-va-drivers jellyfin-ffmpeg6 openssl locales \ -# Intel VAAPI Tone mapping dependencies: -# Prefer NEO to Beignet since the latter one doesn't support Comet Lake or newer for now. -# Do not use the intel-opencl-icd package from repo since they will not build with RELEASE_WITH_REGKEYS enabled. - && mkdir intel-compute-runtime \ - && cd intel-compute-runtime \ - && curl -LO https://github.com/intel/intel-graphics-compiler/releases/download/igc-${IGC_VERSION}/intel-igc-core_${IGC_VERSION}_amd64.deb \ - -LO https://github.com/intel/intel-graphics-compiler/releases/download/igc-${IGC_VERSION}/intel-igc-opencl_${IGC_VERSION}_amd64.deb \ - -LO https://github.com/intel/compute-runtime/releases/download/${NEO_VERSION}/intel-level-zero-gpu_${LEVEL_ZERO_VERSION}_amd64.deb \ - -LO https://github.com/intel/compute-runtime/releases/download/${NEO_VERSION}/intel-opencl-icd_${NEO_VERSION}_amd64.deb \ - -LO https://github.com/intel/compute-runtime/releases/download/${NEO_VERSION}/libigdgmm12_${GMMLIB_VERSION}_amd64.deb \ - && dpkg -i *.deb \ - && cd .. \ - && rm -rf intel-compute-runtime \ - && apt-get remove gnupg -y \ - && apt-get clean autoclean -y \ - && apt-get autoremove -y \ - && rm -rf /var/lib/apt/lists/* \ - && mkdir -p ${JELLYFIN_DATA_DIR} ${JELLYFIN_CACHE_DIR} \ - && chmod 777 ${JELLYFIN_DATA_DIR} ${JELLYFIN_CACHE_DIR} \ - && sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && locale-gen - -ENV LC_ALL=en_US.UTF-8 -ENV LANG=en_US.UTF-8 -ENV LANGUAGE=en_US:en - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION} as builder -WORKDIR /repo -COPY . . -ENV DOTNET_CLI_TELEMETRY_OPTOUT=1 - -RUN dotnet publish Jellyfin.Server --configuration Release --output="/jellyfin" --self-contained --runtime linux-x64 -p:DebugSymbols=false -p:DebugType=none - -FROM app - -ENV HEALTHCHECK_URL=http://localhost:8096/health - -COPY --from=builder /jellyfin /jellyfin -COPY --from=web-builder /dist /jellyfin/jellyfin-web - -EXPOSE 8096 -VOLUME ${JELLYFIN_DATA_DIR} ${JELLYFIN_CACHE_DIR} -ENTRYPOINT [ "./jellyfin/jellyfin", \ - "--ffmpeg", "/usr/lib/jellyfin-ffmpeg/ffmpeg" ] - -HEALTHCHECK --interval=30s --timeout=30s --start-period=10s --retries=3 \ - CMD curl -Lk -fsS "${HEALTHCHECK_URL}" || exit 1 diff --git a/Dockerfile.arm b/Dockerfile.arm deleted file mode 100644 index 07039e43b5..0000000000 --- a/Dockerfile.arm +++ /dev/null @@ -1,74 +0,0 @@ -# DESIGNED FOR BUILDING ON ARM ONLY -##################################### -# Requires binfm_misc registration -# https://github.com/multiarch/qemu-user-static#binfmt_misc-register -ARG DOTNET_VERSION=8.0 - -FROM node:20-alpine as web-builder -ARG JELLYFIN_WEB_VERSION=master -RUN apk add curl git zlib zlib-dev autoconf g++ make libpng-dev gifsicle alpine-sdk automake libtool make gcc musl-dev nasm python3 \ - && curl -L https://github.com/jellyfin/jellyfin-web/archive/${JELLYFIN_WEB_VERSION}.tar.gz | tar zxf - \ - && apk del curl \ - && cd jellyfin-web-* \ - && npm ci --no-audit --unsafe-perm \ - && npm run build:production \ - && mv dist /dist - -FROM multiarch/qemu-user-static:x86_64-arm as qemu -FROM arm32v7/debian:bookworm-slim as app - -# https://askubuntu.com/questions/972516/debian-frontend-environment-variable -ARG DEBIAN_FRONTEND="noninteractive" -# http://stackoverflow.com/questions/48162574/ddg#49462622 -ARG APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn -# https://github.com/NVIDIA/nvidia-docker/wiki/Installation-(Native-GPU-Support) -ENV NVIDIA_VISIBLE_DEVICES="all" -ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" - -ENV JELLYFIN_DATA_DIR=/config -ENV JELLYFIN_CACHE_DIR=/cache - -COPY --from=qemu /usr/bin/qemu-arm-static /usr/bin - -RUN apt-get update \ - && apt-get install --no-install-recommends --no-install-suggests -y ca-certificates gnupg curl \ - && curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/debian-jellyfin.gpg \ - && curl -fsSL https://keyserver.ubuntu.com/pks/lookup?op=get\&search=0x6587ffd6536b8826e88a62547876ae518cbcf2f2 | gpg --dearmor -o /etc/apt/trusted.gpg.d/ubuntu-jellyfin.gpg \ - && echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release ) $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release ) main" | tee /etc/apt/sources.list.d/jellyfin.list \ - && apt-get update \ - && apt-get install --no-install-recommends --no-install-suggests -y \ - jellyfin-ffmpeg6 libssl-dev libfontconfig1 \ - libfreetype6 vainfo libva2 locales \ - && apt-get remove gnupg -y \ - && apt-get clean autoclean -y \ - && apt-get autoremove -y \ - && rm -rf /var/lib/apt/lists/* \ - && mkdir -p ${JELLYFIN_DATA_DIR} ${JELLYFIN_CACHE_DIR} \ - && chmod 777 ${JELLYFIN_DATA_DIR} ${JELLYFIN_CACHE_DIR} \ - && sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && locale-gen - -ENV LC_ALL=en_US.UTF-8 -ENV LANG=en_US.UTF-8 -ENV LANGUAGE=en_US:en - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION} as builder -WORKDIR /repo -COPY . . -ENV DOTNET_CLI_TELEMETRY_OPTOUT=1 - -RUN dotnet publish Jellyfin.Server --configuration Release --output="/jellyfin" --self-contained --runtime linux-arm -p:DebugSymbols=false -p:DebugType=none - -FROM app - -ENV HEALTHCHECK_URL=http://localhost:8096/health - -COPY --from=builder /jellyfin /jellyfin -COPY --from=web-builder /dist /jellyfin/jellyfin-web - -EXPOSE 8096 -VOLUME ${JELLYFIN_DATA_DIR} ${JELLYFIN_CACHE_DIR} -ENTRYPOINT [ "/jellyfin/jellyfin", \ - "--ffmpeg", "/usr/lib/jellyfin-ffmpeg/ffmpeg" ] - -HEALTHCHECK --interval=30s --timeout=30s --start-period=10s --retries=3 \ - CMD curl -Lk -fsS "${HEALTHCHECK_URL}" || exit 1 diff --git a/Dockerfile.arm64 b/Dockerfile.arm64 deleted file mode 100644 index 54023794fc..0000000000 --- a/Dockerfile.arm64 +++ /dev/null @@ -1,74 +0,0 @@ -# DESIGNED FOR BUILDING ON ARM64 ONLY -##################################### -# Requires binfm_misc registration -# https://github.com/multiarch/qemu-user-static#binfmt_misc-register -ARG DOTNET_VERSION=8.0 - -FROM node:20-alpine as web-builder -ARG JELLYFIN_WEB_VERSION=master -RUN apk add curl git zlib zlib-dev autoconf g++ make libpng-dev gifsicle alpine-sdk automake libtool make gcc musl-dev nasm python3 \ - && curl -L https://github.com/jellyfin/jellyfin-web/archive/${JELLYFIN_WEB_VERSION}.tar.gz | tar zxf - \ - && apk del curl \ - && cd jellyfin-web-* \ - && npm ci --no-audit --unsafe-perm \ - && npm run build:production \ - && mv dist /dist - -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu -FROM arm64v8/debian:bookworm-slim as app - -# https://askubuntu.com/questions/972516/debian-frontend-environment-variable -ARG DEBIAN_FRONTEND="noninteractive" -# http://stackoverflow.com/questions/48162574/ddg#49462622 -ARG APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn -# https://github.com/NVIDIA/nvidia-docker/wiki/Installation-(Native-GPU-Support) -ENV NVIDIA_VISIBLE_DEVICES="all" -ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" - -ENV JELLYFIN_DATA_DIR=/config -ENV JELLYFIN_CACHE_DIR=/cache - -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin - -RUN apt-get update \ - && apt-get install --no-install-recommends --no-install-suggests -y ca-certificates gnupg curl \ - && curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/debian-jellyfin.gpg \ - && curl -fsSL https://keyserver.ubuntu.com/pks/lookup?op=get\&search=0x6587ffd6536b8826e88a62547876ae518cbcf2f2 | gpg --dearmor -o /etc/apt/trusted.gpg.d/ubuntu-jellyfin.gpg \ - && echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release ) $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release ) main" | tee /etc/apt/sources.list.d/jellyfin.list \ - && apt-get update \ - && apt-get install --no-install-recommends --no-install-suggests -y \ - jellyfin-ffmpeg6 locales libssl-dev libfontconfig1 \ - libfreetype6 libomxil-bellagio0 libomxil-bellagio-bin \ - && apt-get remove gnupg -y \ - && apt-get clean autoclean -y \ - && apt-get autoremove -y \ - && rm -rf /var/lib/apt/lists/* \ - && mkdir -p ${JELLYFIN_DATA_DIR} ${JELLYFIN_CACHE_DIR} \ - && chmod 777 ${JELLYFIN_DATA_DIR} ${JELLYFIN_CACHE_DIR} \ - && sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && locale-gen - -ENV LC_ALL=en_US.UTF-8 -ENV LANG=en_US.UTF-8 -ENV LANGUAGE=en_US:en - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION} as builder -WORKDIR /repo -COPY . . -ENV DOTNET_CLI_TELEMETRY_OPTOUT=1 - -RUN dotnet publish Jellyfin.Server --configuration Release --output="/jellyfin" --self-contained --runtime linux-arm64 -p:DebugSymbols=false -p:DebugType=none - -FROM app - -ENV HEALTHCHECK_URL=http://localhost:8096/health - -COPY --from=builder /jellyfin /jellyfin -COPY --from=web-builder /dist /jellyfin/jellyfin-web - -EXPOSE 8096 -VOLUME ${JELLYFIN_DATA_DIR} ${JELLYFIN_CACHE_DIR} -ENTRYPOINT [ "/jellyfin/jellyfin", \ - "--ffmpeg", "/usr/lib/jellyfin-ffmpeg/ffmpeg" ] - -HEALTHCHECK --interval=30s --timeout=30s --start-period=10s --retries=3 \ - CMD curl -Lk -fsS "${HEALTHCHECK_URL}" || exit 1 diff --git a/build b/build deleted file mode 120000 index c07a74de4f..0000000000 --- a/build +++ /dev/null @@ -1 +0,0 @@ -build.sh \ No newline at end of file diff --git a/build.sh b/build.sh deleted file mode 100755 index 1db02af983..0000000000 --- a/build.sh +++ /dev/null @@ -1,114 +0,0 @@ -#!/usr/bin/env bash - -# build.sh - Build Jellyfin binary packages -# Part of the Jellyfin Project - -set -o errexit -set -o pipefail - -usage() { - echo -e "build.sh - Build Jellyfin binary packages" - echo -e "Usage:" - echo -e " $0 -t/--type -p/--platform [-k/--keep-artifacts] [-l/--list-platforms]" - echo -e "Notes:" - echo -e " * BUILD_TYPE can be one of: [native, docker] and must be specified" - echo -e " * native: Build using the build script in the host OS" - echo -e " * docker: Build using the build script in a standardized Docker container" - echo -e " * PLATFORM can be any platform shown by -l/--list-platforms and must be specified" - echo -e " * If -k/--keep-artifacts is specified, transient artifacts (e.g. Docker containers) will be" - echo -e " retained after the build is finished; the source directory will still be cleaned" - echo -e " * If -l/--list-platforms is specified, all other arguments are ignored; the script will print" - echo -e " the list of supported platforms and exit" -} - -list_platforms() { - declare -a platforms - platforms=( - $( find deployment -maxdepth 1 -mindepth 1 -name "build.*" | awk -F'.' '{ $1=""; printf $2; if ($3 != ""){ printf "." $3; }; if ($4 != ""){ printf "." $4; }; print ""; }' | sort ) - ) - echo -e "Valid platforms:" - echo - for platform in ${platforms[@]}; do - echo -e "* ${platform} : $( grep '^#=' deployment/build.${platform} | sed 's/^#= //' )" - done -} - -do_build_native() { - if [[ ! -f $( which dpkg ) || $( dpkg --print-architecture | head -1 ) != "${PLATFORM##*.}" ]]; then - echo "Cross-building is not supported for native builds, use 'docker' builds on amd64 for cross-building." - exit 1 - fi - export IS_DOCKER=NO - deployment/build.${PLATFORM} -} - -do_build_docker() { - if [[ -f $( which dpkg ) && $( dpkg --print-architecture | head -1 ) != "amd64" ]]; then - echo "Docker-based builds only support amd64-based cross-building; use a 'native' build instead." - exit 1 - fi - if [[ ! -f deployment/Dockerfile.${PLATFORM} ]]; then - echo "Missing Dockerfile for platform ${PLATFORM}" - exit 1 - fi - if [[ ${KEEP_ARTIFACTS} == YES ]]; then - docker_args="" - else - docker_args="--rm" - fi - - docker build . -t "jellyfin-builder.${PLATFORM}" -f deployment/Dockerfile.${PLATFORM} - mkdir -p ${ARTIFACT_DIR} - docker run $docker_args -v "${SOURCE_DIR}:/jellyfin" -v "${ARTIFACT_DIR}:/dist" "jellyfin-builder.${PLATFORM}" -} - -while [[ $# -gt 0 ]]; do - key="$1" - case $key in - -t|--type) - BUILD_TYPE="$2" - shift # past argument - shift # past value - ;; - -p|--platform) - PLATFORM="$2" - shift # past argument - shift # past value - ;; - -k|--keep-artifacts) - KEEP_ARTIFACTS=YES - shift # past argument - ;; - -l|--list-platforms) - list_platforms - exit 0 - ;; - -h|--help) - usage - exit 0 - ;; - *) # unknown option - echo "Unknown option $1" - usage - exit 1 - ;; - esac -done - -if [[ -z ${BUILD_TYPE} || -z ${PLATFORM} ]]; then - usage - exit 1 -fi - -export SOURCE_DIR="$( pwd )" -export ARTIFACT_DIR="${SOURCE_DIR}/../bin/${PLATFORM}" - -# Determine build type -case ${BUILD_TYPE} in - native) - do_build_native - ;; - docker) - do_build_docker - ;; -esac diff --git a/build.yaml b/build.yaml deleted file mode 100644 index 464caf3288..0000000000 --- a/build.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -# We just wrap `build` so this is really it -name: "jellyfin" -version: "10.9.0" -packages: - - debian.amd64 - - debian.arm64 - - debian.armhf - - ubuntu.amd64 - - ubuntu.arm64 - - ubuntu.armhf - - fedora.amd64 - - centos.amd64 - - linux.amd64 - - windows.amd64 - - macos.amd64 - - macos.arm64 - - portable diff --git a/bump_version b/bump_version deleted file mode 100755 index dd55e62c79..0000000000 --- a/bump_version +++ /dev/null @@ -1,129 +0,0 @@ -#!/usr/bin/env bash - -# bump_version - increase the shared version and generate changelogs - -set -o errexit -set -o pipefail -set -o xtrace - -usage() { - echo -e "bump_version - increase the shared version and generate changelogs" - echo -e "" - echo -e "Usage:" - echo -e " $ bump_version " -} - -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/([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 $( 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 -- New upstream version ${new_version}; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v${new_version}" >> ${fedora_changelog_temp} -cat xx01 >> ${fedora_changelog_temp} -# Reassembble -cat xx00 ${fedora_changelog_temp} > ${fedora_spec_temp} -popd -# Move into place -mv ${fedora_spec_temp} ${fedora_spec_file} -# Clean up -rm -rf ${fedora_spec_temp_dir} - -# Stage the changed files for commit -git add . -git status -v diff --git a/debian/changelog b/debian/changelog deleted file mode 100644 index 0d744c02a3..0000000000 --- a/debian/changelog +++ /dev/null @@ -1,89 +0,0 @@ -jellyfin-server (10.9.0-1) unstable; urgency=medium - - * New upstream version 10.9.0; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.9.0 - - -- Jellyfin Packaging Team Wed, 13 Jul 2022 20:58:08 -0600 - -jellyfin-server (10.8.0-1) unstable; urgency=medium - - * Forthcoming stable release - - -- Jellyfin Packaging Team Fri, 04 Dec 2020 21:55:12 -0500 - -jellyfin-server (10.7.0-1) unstable; urgency=medium - - * Forthcoming stable release - - -- Jellyfin Packaging Team Mon, 27 Jul 2020 19:09:45 -0400 - -jellyfin-server (10.6.0-2) unstable; urgency=medium - - * Fix upgrade bug - - -- Joshua Boniface Sun, 19 Jul 22:47:27 -0400 - -jellyfin-server (10.6.0-1) unstable; urgency=medium - - * Forthcoming stable release - - -- Jellyfin Packaging Team 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 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 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 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 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 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 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 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 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 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 Fri, 19 Apr 2019 14:24:29 -0400 diff --git a/debian/compat b/debian/compat deleted file mode 100644 index 45a4fb75db..0000000000 --- a/debian/compat +++ /dev/null @@ -1 +0,0 @@ -8 diff --git a/debian/conf/jellyfin b/debian/conf/jellyfin deleted file mode 100644 index af460fedcf..0000000000 --- a/debian/conf/jellyfin +++ /dev/null @@ -1,53 +0,0 @@ -# Jellyfin default configuration options -# This is a POSIX shell fragment - -# Use this file to override the default configurations; add additional -# options with JELLYFIN_ADD_OPTS. - -# Under systemd, use -# /etc/systemd/system/jellyfin.service.d/jellyfin.service.conf -# to override the user or this config file's location. - -# -# General options -# - -# Program directories -JELLYFIN_DATA_DIR="/var/lib/jellyfin" -JELLYFIN_CONFIG_DIR="/etc/jellyfin" -JELLYFIN_LOG_DIR="/var/log/jellyfin" -JELLYFIN_CACHE_DIR="/var/cache/jellyfin" - -# web client path, installed by the jellyfin-web package -JELLYFIN_WEB_OPT="--webdir=/usr/share/jellyfin/web" - -# ffmpeg binary paths, overriding the system values -JELLYFIN_FFMPEG_OPT="--ffmpeg=/usr/lib/jellyfin-ffmpeg/ffmpeg" - -# Disable glibc dynamic heap adjustment -MALLOC_TRIM_THRESHOLD_=131072 - -# [OPTIONAL] run Jellyfin as a headless service -#JELLYFIN_SERVICE_OPT="--service" - -# [OPTIONAL] run Jellyfin without the web app -#JELLYFIN_NOWEBAPP_OPT="--nowebclient" - -# Space to add additional command line options to jellyfin (for help see ~$ jellyfin --help) -JELLYFIN_ADDITIONAL_OPTS="" - -# [OPTIONAL] run Jellyfin with ASP.NET Server Garbage Collection (uses more RAM and less CPU than Workstation GC) -# 0 = Workstation -# 1 = Server -#COMPlus_gcServer=1 - -# -# SysV init/Upstart options -# -# Note: These options are ignored by systemd; use /etc/systemd/system/jellyfin.d overrides instead. -# - -# Application username -JELLYFIN_USER="jellyfin" -# Full application command -JELLYFIN_ARGS="$JELLYFIN_WEB_OPT $JELLYFIN_FFMPEG_OPT $JELLYFIN_SERVICE_OPT $JELLYFIN_NOWEBAPP_OPT $JELLFIN_ADDITIONAL_OPTS --datadir $JELLYFIN_DATA_DIR --configdir $JELLYFIN_CONFIG_DIR --logdir $JELLYFIN_LOG_DIR --cachedir $JELLYFIN_CACHE_DIR" diff --git a/debian/conf/jellyfin.service.conf b/debian/conf/jellyfin.service.conf deleted file mode 100644 index 1f92d7d94e..0000000000 --- a/debian/conf/jellyfin.service.conf +++ /dev/null @@ -1,55 +0,0 @@ -# Jellyfin systemd configuration options - -# Use this file to override the user or environment file location. - -[Service] -# Alter the user that Jellyfin runs as -#User = jellyfin - -# Alter where environment variables are sourced from -#EnvironmentFile = /etc/default/jellyfin - -# Service hardening options -# These were added in PR #6953 to solve issue #6952, but some combination of -# them causes "restart.sh" functionality to break with the following error: -# sudo: effective uid is not 0, is /usr/bin/sudo on a file system with the -# 'nosuid' option set or an NFS file system without root privileges? -# See issue #7503 for details on the troubleshooting that went into this. -# Since these were added for NixOS specifically and are above and beyond -# what 99% of systemd units do, they have been moved here as optional -# additional flags to set for maximum system security and can be enabled at -# the administrator's or package maintainer's discretion. -# Uncomment these only if you know what you're doing, and doing so may cause -# bugs with in-server Restart and potentially other functionality as well. -#NoNewPrivileges=true -#SystemCallArchitectures=native -#RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK -#RestrictNamespaces=false -#RestrictRealtime=true -#RestrictSUIDSGID=true -#ProtectControlGroups=false -#ProtectHostname=true -#ProtectKernelLogs=false -#ProtectKernelModules=false -#ProtectKernelTunables=false -#LockPersonality=true -#PrivateTmp=false -#PrivateDevices=false -#PrivateUsers=true -#RemoveIPC=true -#SystemCallFilter=~@clock -#SystemCallFilter=~@aio -#SystemCallFilter=~@chown -#SystemCallFilter=~@cpu-emulation -#SystemCallFilter=~@debug -#SystemCallFilter=~@keyring -#SystemCallFilter=~@memlock -#SystemCallFilter=~@module -#SystemCallFilter=~@mount -#SystemCallFilter=~@obsolete -#SystemCallFilter=~@privileged -#SystemCallFilter=~@raw-io -#SystemCallFilter=~@reboot -#SystemCallFilter=~@setuid -#SystemCallFilter=~@swap -#SystemCallErrorNumber=EPERM diff --git a/debian/conf/logging.json b/debian/conf/logging.json deleted file mode 100644 index f32b2089eb..0000000000 --- a/debian/conf/logging.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "Serilog": { - "MinimumLevel": "Information", - "WriteTo": [ - { - "Name": "Console", - "Args": { - "outputTemplate": "[{Timestamp:HH:mm:ss}] [{Level:u3}] {Message:lj}{NewLine}{Exception}" - } - }, - { - "Name": "Async", - "Args": { - "configure": [ - { - "Name": "File", - "Args": { - "path": "%JELLYFIN_LOG_DIR%//jellyfin.log", - "fileSizeLimitBytes": 10485700, - "rollOnFileSizeLimit": true, - "retainedFileCountLimit": 10, - "outputTemplate": "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz}] [{Level:u3}] {Message}{NewLine}{Exception}" - } - } - ] - } - } - ] - } -} diff --git a/debian/control b/debian/control deleted file mode 100644 index 5e0460de9e..0000000000 --- a/debian/control +++ /dev/null @@ -1,27 +0,0 @@ -Source: jellyfin-server -Section: misc -Priority: optional -Maintainer: Jellyfin Team -Build-Depends: debhelper (>= 9), - dotnet-sdk-8.0, - libc6-dev, - libcurl4-openssl-dev, - libfontconfig1-dev, - libfreetype6-dev, - libssl-dev -Standards-Version: 3.9.4 -Homepage: https://jellyfin.org/ -Vcs-Git: https://github.org/jellyfin/jellyfin.git -Vcs-Browser: https://github.org/jellyfin/jellyfin - -Package: jellyfin-server -Replaces: jellyfin (<<10.6.0) -Breaks: jellyfin (<<10.6.0) -Architecture: any -Depends: libsqlite3-0, - libfontconfig1, - libfreetype6, - libssl1.1 | libssl3 -Recommends: jellyfin-web -Description: Jellyfin is the Free Software Media System. - This package provides the Jellyfin server backend and API. diff --git a/debian/copyright b/debian/copyright deleted file mode 100644 index 0d7a2a6007..0000000000 --- a/debian/copyright +++ /dev/null @@ -1,29 +0,0 @@ -Format: http://dep.debian.net/deps/dep5 -Upstream-Name: jellyfin -Source: https://github.com/jellyfin/jellyfin - -Files: * -Copyright: 2018 Jellyfin Team -License: GPL-2.0+ - -Files: debian/* -Copyright: 2018 Joshua Boniface -Copyright: 2014 Carlos Hernandez -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 - . - On Debian systems, the complete text of the GNU General - Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". diff --git a/debian/gbp.conf b/debian/gbp.conf deleted file mode 100644 index 60b3d28723..0000000000 --- a/debian/gbp.conf +++ /dev/null @@ -1,6 +0,0 @@ -[DEFAULT] -pristine-tar = False -cleaner = fakeroot debian/rules clean - -[import-orig] -filter = [ ".git*", ".hg*", ".vs*", ".vscode*" ] diff --git a/debian/install b/debian/install deleted file mode 100644 index 0b48dd7a25..0000000000 --- a/debian/install +++ /dev/null @@ -1,4 +0,0 @@ -usr/lib/jellyfin usr/lib/ -debian/conf/jellyfin etc/default/ -debian/conf/logging.json etc/jellyfin/ -debian/conf/jellyfin.service.conf etc/systemd/system/jellyfin.service.d/ diff --git a/debian/jellyfin.init b/debian/jellyfin.init deleted file mode 100644 index 784536d874..0000000000 --- a/debian/jellyfin.init +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/sh -### BEGIN INIT INFO -# Provides: Jellyfin Media Server -# Required-Start: $local_fs $network -# Required-Stop: $local_fs -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Jellyfin Media Server -# Description: Runs Jellyfin Server -### END INIT INFO - -set -e - -# Carry out specific functions when asked to by the system - -if test -f /etc/default/jellyfin; then - . /etc/default/jellyfin -fi - -. /lib/lsb/init-functions - -PIDFILE="/run/jellyfin.pid" - -case "$1" in - start) - log_daemon_msg "Starting Jellyfin Media Server" "jellyfin" || true - - if start-stop-daemon --start --quiet --oknodo --background --pidfile $PIDFILE --make-pidfile --user $JELLYFIN_USER --chuid $JELLYFIN_USER --exec /usr/bin/jellyfin -- $JELLYFIN_ARGS; then - log_end_msg 0 || true - else - log_end_msg 1 || true - fi - ;; - - stop) - log_daemon_msg "Stopping Jellyfin Media Server" "jellyfin" || true - if start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE --remove-pidfile; then - log_end_msg 0 || true - else - log_end_msg 1 || true - fi - ;; - - restart) - log_daemon_msg "Restarting Jellyfin Media Server" "jellyfin" || true - start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $PIDFILE --remove-pidfile - if start-stop-daemon --start --quiet --oknodo --background --pidfile $PIDFILE --make-pidfile --user $JELLYFIN_USER --chuid $JELLYFIN_USER --exec /usr/bin/jellyfin -- $JELLYFIN_ARGS; then - log_end_msg 0 || true - else - log_end_msg 1 || true - fi - ;; - - status) - status_of_proc -p $PIDFILE /usr/bin/jellyfin jellyfin && exit 0 || exit $? - ;; - - *) - echo "Usage: $0 {start|stop|restart|status}" - exit 1 - ;; -esac diff --git a/debian/jellyfin.service b/debian/jellyfin.service deleted file mode 100644 index 2cc49f7c4a..0000000000 --- a/debian/jellyfin.service +++ /dev/null @@ -1,17 +0,0 @@ -[Unit] -Description = Jellyfin Media Server -After = network-online.target - -[Service] -Type = simple -EnvironmentFile = /etc/default/jellyfin -User = jellyfin -Group = jellyfin -WorkingDirectory = /var/lib/jellyfin -ExecStart = /usr/bin/jellyfin $JELLYFIN_WEB_OPT $JELLYFIN_FFMPEG_OPT $JELLYFIN_SERVICE_OPT $JELLYFIN_NOWEBAPP_OPT $JELLYFIN_ADDITIONAL_OPTS -Restart = on-failure -TimeoutSec = 15 -SuccessExitStatus=0 143 - -[Install] -WantedBy = multi-user.target diff --git a/debian/jellyfin.upstart b/debian/jellyfin.upstart deleted file mode 100644 index ef5bc9bcaf..0000000000 --- a/debian/jellyfin.upstart +++ /dev/null @@ -1,20 +0,0 @@ -description "jellyfin daemon" - -start on (local-filesystems and net-device-up IFACE!=lo) -stop on runlevel [!2345] - -console log -respawn -respawn limit 10 5 - -kill timeout 20 - -script - set -x - echo "Starting $UPSTART_JOB" - - # Log file - logger -t "$0" "DEBUG: `set`" - . /etc/default/jellyfin - exec su -u $JELLYFIN_USER -c /usr/bin/jellyfin $JELLYFIN_ARGS -end script diff --git a/debian/metapackage/jellyfin b/debian/metapackage/jellyfin deleted file mode 100644 index 8787c3a496..0000000000 --- a/debian/metapackage/jellyfin +++ /dev/null @@ -1,13 +0,0 @@ -Source: jellyfin -Section: misc -Priority: optional -Homepage: https://jellyfin.org -Standards-Version: 3.9.2 - -Package: jellyfin -Version: 10.9.0 -Maintainer: Jellyfin Packaging Team -Depends: jellyfin-server, jellyfin-web -Description: Provides the Jellyfin Free Software Media System - Provides the full Jellyfin experience, including both the server and web interface. - diff --git a/debian/po/POTFILES.in b/debian/po/POTFILES.in deleted file mode 100644 index cef83a3407..0000000000 --- a/debian/po/POTFILES.in +++ /dev/null @@ -1 +0,0 @@ -[type: gettext/rfc822deb] templates diff --git a/debian/po/templates.pot b/debian/po/templates.pot deleted file mode 100644 index 2cdcae4173..0000000000 --- a/debian/po/templates.pot +++ /dev/null @@ -1,57 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , 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 \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#. Type: note -#. Description -#: ../templates:1001 -msgid "Jellyfin permission info:" -msgstr "" - -#. Type: note -#. Description -#: ../templates:1001 -msgid "" -"Jellyfin by default runs under a user named \"jellyfin\". Please ensure that the " -"user jellyfin has read and write access to any folders you wish to add to your " -"library. Otherwise please run jellyfin under a different user." -msgstr "" - -#. Type: string -#. Description -#: ../templates:2001 -msgid "Username to run Jellyfin as:" -msgstr "" - -#. Type: string -#. Description -#: ../templates:2001 -msgid "The user that jellyfin will run as." -msgstr "" - -#. Type: note -#. Description -#: ../templates:3001 -msgid "Jellyfin still running" -msgstr "" - -#. Type: note -#. Description -#: ../templates:3001 -msgid "Jellyfin is currently running. Please close it and try again." -msgstr "" diff --git a/debian/postinst b/debian/postinst deleted file mode 100644 index 947959aa7a..0000000000 --- a/debian/postinst +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/bash -set -e - -NAME=jellyfin -DEFAULT_FILE=/etc/default/${NAME} - -# Source Jellyfin default configuration -if [[ -f $DEFAULT_FILE ]]; then - . $DEFAULT_FILE -fi - -JELLYFIN_USER=${JELLYFIN_USER:-jellyfin} -RENDER_GROUP=${RENDER_GROUP:-render} -VIDEO_GROUP=${VIDEO_GROUP:-video} - -# Data directories for program data (cache, db), configs, and logs -PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME} -CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME} -LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME} -CACHEDATA=${JELLYFIN_CACHE_DIRECTORY-/var/cache/$NAME} - -case "$1" in - configure) - # create jellyfin group if it does not exist - if [[ -z "$(getent group ${JELLYFIN_USER})" ]]; then - addgroup --quiet --system ${JELLYFIN_USER} > /dev/null 2>&1 - fi - # create jellyfin user if it does not exist - if [[ -z "$(getent passwd ${JELLYFIN_USER})" ]]; then - adduser --system --ingroup ${JELLYFIN_USER} --shell /bin/false ${JELLYFIN_USER} --no-create-home --home ${PROGRAMDATA} \ - --gecos "Jellyfin default user" > /dev/null 2>&1 - fi - # add jellyfin to the render group for hwa - if [[ ! -z "$(getent group ${RENDER_GROUP})" ]]; then - usermod -aG ${RENDER_GROUP} ${JELLYFIN_USER} > /dev/null 2>&1 - fi - # add jellyfin to the video group for hwa - if [[ ! -z "$(getent group ${VIDEO_GROUP})" ]]; then - usermod -aG ${VIDEO_GROUP} ${JELLYFIN_USER} > /dev/null 2>&1 - fi - # ensure $PROGRAMDATA exists - if [[ ! -d $PROGRAMDATA ]]; then - mkdir $PROGRAMDATA - fi - # ensure $CONFIGDATA exists - if [[ ! -d $CONFIGDATA ]]; then - mkdir $CONFIGDATA - fi - # ensure $LOGDATA exists - if [[ ! -d $LOGDATA ]]; then - mkdir $LOGDATA - fi - # ensure $CACHEDATA exists - if [[ ! -d $CACHEDATA ]]; then - mkdir $CACHEDATA - fi - # Ensure permissions are correct on all config directories - chown -R ${JELLYFIN_USER} $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA - chgrp adm $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA - chmod 0750 $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA - - # Install jellyfin symlink into /usr/bin - ln -sf /usr/lib/jellyfin/bin/jellyfin /usr/bin/jellyfin - - ;; - abort-upgrade|abort-remove|abort-deconfigure) - ;; - *) - echo "postinst called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -#DEBHELPER - -if [[ -x "/usr/bin/deb-systemd-helper" ]]; then - # Manual init script handling - deb-systemd-helper unmask jellyfin.service >/dev/null || true - # was-enabled defaults to true, so new installations run enable. - if deb-systemd-helper --quiet was-enabled jellyfin.service; then - # Enables the unit on first installation, creates new - # symlinks on upgrades if the unit file has changed. - deb-systemd-helper enable jellyfin.service >/dev/null || true - else - # Update the statefile to add new symlinks (if any), which need to be - # cleaned up on purge. Also remove old symlinks. - deb-systemd-helper update-state jellyfin.service >/dev/null || true - fi -fi - -# End automatically added section -# Automatically added by dh_installinit -if [[ "$1" == "configure" ]] || [[ "$1" == "abort-upgrade" ]]; then - if [[ -d "/run/systemd/system" ]]; then - systemctl --system daemon-reload >/dev/null || true - deb-systemd-invoke start jellyfin >/dev/null || true - elif [[ -x "/etc/init.d/jellyfin" ]] || [[ -e "/etc/init/jellyfin.conf" ]]; then - update-rc.d jellyfin defaults >/dev/null - invoke-rc.d jellyfin start || exit $? - fi -fi -exit 0 diff --git a/debian/postrm b/debian/postrm deleted file mode 100644 index 3d56a5f1e8..0000000000 --- a/debian/postrm +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/bash -set -e - -NAME=jellyfin -DEFAULT_FILE=/etc/default/${NAME} - -# Source Jellyfin default configuration -if [[ -f $DEFAULT_FILE ]]; then - . $DEFAULT_FILE -fi - -# Data directories for program data (cache, db), configs, and logs -PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME} -CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME} -LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME} -CACHEDATA=${JELLYFIN_CACHE_DIRECTORY-/var/cache/$NAME} - -# In case this system is running systemd, we make systemd reload the unit files -# to pick up changes. -if [[ -d /run/systemd/system ]] ; then - systemctl --system daemon-reload >/dev/null || true -fi - -case "$1" in - purge) - echo PURGE | debconf-communicate $NAME > /dev/null 2>&1 || true - - if [[ -x "/etc/init.d/jellyfin" ]] || [[ -e "/etc/init/jellyfin.conf" ]]; then - update-rc.d jellyfin remove >/dev/null 2>&1 || true - fi - - if [[ -x "/usr/bin/deb-systemd-helper" ]]; then - deb-systemd-helper purge jellyfin.service >/dev/null - deb-systemd-helper unmask jellyfin.service >/dev/null - fi - - # Remove user and group - userdel jellyfin > /dev/null 2>&1 || true - delgroup --quiet jellyfin > /dev/null 2>&1 || true - # Remove config dir - if [[ -d $CONFIGDATA ]]; then - rm -rf $CONFIGDATA - fi - # Remove log dir - if [[ -d $LOGDATA ]]; then - rm -rf $LOGDATA - fi - # Remove cache dir - if [[ -d $CACHEDATA ]]; then - rm -rf $CACHEDATA - fi - # Remove program data dir - if [[ -d $PROGRAMDATA ]]; then - rm -rf $PROGRAMDATA - fi - # Remove binary symlink - rm -f /usr/bin/jellyfin - # Remove sudoers config - [[ -f /etc/sudoers.d/jellyfin-sudoers ]] && rm /etc/sudoers.d/jellyfin-sudoers - # Remove anything at the default locations; catches situations where the user moved the defaults - [[ -e /etc/jellyfin ]] && rm -rf /etc/jellyfin - [[ -e /var/log/jellyfin ]] && rm -rf /var/log/jellyfin - [[ -e /var/cache/jellyfin ]] && rm -rf /var/cache/jellyfin - [[ -e /var/lib/jellyfin ]] && rm -rf /var/lib/jellyfin - ;; - remove) - if [[ -x "/usr/bin/deb-systemd-helper" ]]; then - deb-systemd-helper mask jellyfin.service >/dev/null - fi - ;; - upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) - ;; - *) - echo "postrm called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -#DEBHELPER# - -exit 0 diff --git a/debian/preinst b/debian/preinst deleted file mode 100644 index 2713fb9b80..0000000000 --- a/debian/preinst +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/bash -set -e - -NAME=jellyfin -DEFAULT_FILE=/etc/default/${NAME} - -# Source Jellyfin default configuration -if [[ -f $DEFAULT_FILE ]]; then - . $DEFAULT_FILE -fi - -# Data directories for program data (cache, db), configs, and logs -PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME} -CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME} -LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME} -CACHEDATA=${JELLYFIN_CACHE_DIRECTORY-/var/cache/$NAME} - -# In case this system is running systemd, we make systemd reload the unit files -# to pick up changes. -if [[ -d /run/systemd/system ]] ; then - systemctl --system daemon-reload >/dev/null || true -fi - -case "$1" in - install|upgrade) - # try graceful termination; - if [[ -d /run/systemd/system ]]; then - deb-systemd-invoke stop ${NAME}.service > /dev/null 2>&1 || true - elif [ -x "/etc/init.d/${NAME}" ] || [ -e "/etc/init/${NAME}.conf" ]; then - invoke-rc.d ${NAME} stop > /dev/null 2>&1 || true - fi - # try and figure out if jellyfin is running - PIDFILE=$(find /var/run/ -maxdepth 1 -mindepth 1 -name "jellyfin*.pid" -print -quit) - [[ -n "$PIDFILE" ]] && [[ -s "$PIDFILE" ]] && JELLYFIN_PID=$(cat ${PIDFILE}) - # if its running, let's stop it - if [[ -n "$JELLYFIN_PID" ]]; then - echo "Stopping Jellyfin!" - # if jellyfin is still running, kill it - if [[ -n "$(ps -p $JELLYFIN_PID -o pid=)" ]]; then - CPIDS=$(pgrep -P $JELLYFIN_PID) - sleep 2 && kill -KILL $CPIDS - kill -TERM $CPIDS > /dev/null 2>&1 - fi - sleep 1 - # if it's still running, show error - if [[ -n "$(ps -p $JELLYFIN_PID -o pid=)" ]]; then - echo "Could not successfully stop JellyfinServer, please do so before uninstalling." - exit 1 - else - [[ -f $PIDFILE ]] && rm $PIDFILE - fi - fi - - # Clean up old Emby cruft that can break the user's system - [[ -f /etc/sudoers.d/emby ]] && rm -f /etc/sudoers.d/emby - - # If we have existing config, log, or cache dirs in /var/lib/jellyfin, move them into the right place - if [[ -d $PROGRAMDATA/config ]]; then - mv $PROGRAMDATA/config $CONFIGDATA - fi - if [[ -d $PROGRAMDATA/logs ]]; then - mv $PROGRAMDATA/logs $LOGDATA - fi - if [[ -d $PROGRAMDATA/logs ]]; then - mv $PROGRAMDATA/cache $CACHEDATA - fi - - ;; - abort-upgrade) - ;; - *) - echo "preinst called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac -#DEBHELPER# - -exit 0 diff --git a/debian/prerm b/debian/prerm deleted file mode 100644 index e965cb7d71..0000000000 --- a/debian/prerm +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/bash -set -e - -NAME=jellyfin -DEFAULT_FILE=/etc/default/${NAME} - -# Source Jellyfin default configuration -if [[ -f $DEFAULT_FILE ]]; then - . $DEFAULT_FILE -fi - -# Data directories for program data (cache, db), configs, and logs -PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME} -CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME} -LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME} -CACHEDATA=${JELLYFIN_CACHE_DIRECTORY-/var/cache/$NAME} - -case "$1" in - remove|upgrade|deconfigure) - echo "Stopping Jellyfin!" - # try graceful termination; - if [[ -d /run/systemd/system ]]; then - deb-systemd-invoke stop ${NAME}.service > /dev/null 2>&1 || true - elif [ -x "/etc/init.d/${NAME}" ] || [ -e "/etc/init/${NAME}.conf" ]; then - invoke-rc.d ${NAME} stop > /dev/null 2>&1 || true - fi - # Ensure that it is shutdown - PIDFILE=$(find /var/run/ -maxdepth 1 -mindepth 1 -name "jellyfin*.pid" -print -quit) - [[ -n "$PIDFILE" ]] && [[ -s "$PIDFILE" ]] && JELLYFIN_PID=$(cat ${PIDFILE}) - # if its running, let's stop it - if [[ -n "$JELLYFIN_PID" ]]; then - # if jellyfin is still running, kill it - if [[ -n "$(ps -p $JELLYFIN_PID -o pid=)" ]]; then - CPIDS=$(pgrep -P $JELLYFIN_PID) - sleep 2 && kill -KILL $CPIDS - kill -TERM $CPIDS > /dev/null 2>&1 - fi - sleep 1 - # if it's still running, show error - if [[ -n "$(ps -p $JELLYFIN_PID -o pid=)" ]]; then - echo "Could not successfully stop Jellyfin, please do so before uninstalling." - exit 1 - else - [[ -f $PIDFILE ]] && rm $PIDFILE - fi - fi - if [[ -f /usr/lib/jellyfin/bin/MediaBrowser.Server.Mono.exe.so ]]; then - rm /usr/lib/jellyfin/bin/MediaBrowser.Server.Mono.exe.so - fi - ;; - failed-upgrade) - ;; - *) - echo "prerm called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -#DEBHELPER# - -exit 0 diff --git a/debian/rules b/debian/rules deleted file mode 100755 index 79cd55a15d..0000000000 --- a/debian/rules +++ /dev/null @@ -1,55 +0,0 @@ -#! /usr/bin/make -f -CONFIG := Release -TERM := xterm -SHELL := /bin/bash - -HOST_ARCH := $(shell arch) -BUILD_ARCH := ${DEB_HOST_MULTIARCH} -ifeq ($(HOST_ARCH),x86_64) - # Building AMD64 - DOTNETRUNTIME := linux-x64 - ifeq ($(BUILD_ARCH),arm-linux-gnueabihf) - # Cross-building ARM on AMD64 - DOTNETRUNTIME := linux-arm - endif - ifeq ($(BUILD_ARCH),aarch64-linux-gnu) - # Cross-building ARM on AMD64 - DOTNETRUNTIME := linux-arm64 - endif -endif -ifeq ($(HOST_ARCH),armv7l) - # Building ARM - DOTNETRUNTIME := linux-arm -endif -ifeq ($(HOST_ARCH),arm64) - # Building ARM - DOTNETRUNTIME := linux-arm64 -endif -ifeq ($(HOST_ARCH),aarch64) - # Building ARM - DOTNETRUNTIME := linux-arm64 -endif - -export DH_VERBOSE=1 -export DOTNET_CLI_TELEMETRY_OPTOUT=1 - -%: - dh $@ - -# disable "make check" -override_dh_auto_test: - -# disable stripping debugging symbols -override_dh_clistrip: - -override_dh_auto_build: - dotnet publish -maxcpucount:1 --configuration $(CONFIG) --output='$(CURDIR)/usr/lib/jellyfin/bin' --self-contained --runtime $(DOTNETRUNTIME) \ - -p:DebugSymbols=false -p:DebugType=none Jellyfin.Server - -override_dh_auto_clean: - dotnet clean -maxcpucount:1 --configuration $(CONFIG) Jellyfin.Server || true - rm -rf '$(CURDIR)/usr' - -# Force the service name to jellyfin even if we're building jellyfin-nightly -override_dh_installinit: - dh_installinit --name=jellyfin diff --git a/debian/source.lintian-overrides b/debian/source.lintian-overrides deleted file mode 100644 index aeb332f13a..0000000000 --- a/debian/source.lintian-overrides +++ /dev/null @@ -1,3 +0,0 @@ -# This is an override for the following lintian errors: -jellyfin source: license-problem-md5sum-non-free-file Emby.Drawing/ImageMagick/fonts/webdings.ttf* -jellyfin source: source-is-missing diff --git a/debian/source/format b/debian/source/format deleted file mode 100644 index d3827e75a5..0000000000 --- a/debian/source/format +++ /dev/null @@ -1 +0,0 @@ -1.0 diff --git a/debian/source/options b/debian/source/options deleted file mode 100644 index 17b5373d5e..0000000000 --- a/debian/source/options +++ /dev/null @@ -1,11 +0,0 @@ -tar-ignore='.git*' -tar-ignore='**/.git' -tar-ignore='**/.hg' -tar-ignore='**/.vs' -tar-ignore='**/.vscode' -tar-ignore='deployment' -tar-ignore='**/bin' -tar-ignore='**/obj' -tar-ignore='**/.nuget' -tar-ignore='*.deb' -tar-ignore='ThirdParty' diff --git a/deployment/Dockerfile.centos.amd64 b/deployment/Dockerfile.centos.amd64 deleted file mode 100644 index 6bd7d312c3..0000000000 --- a/deployment/Dockerfile.centos.amd64 +++ /dev/null @@ -1,39 +0,0 @@ -FROM quay.io/centos/centos:stream9 - -# Docker build arguments -ARG SOURCE_DIR=/jellyfin -ARG ARTIFACT_DIR=/dist - -# Docker run environment -ENV SOURCE_DIR=/jellyfin -ENV ARTIFACT_DIR=/dist -ENV IS_DOCKER=YES - -# Prepare CentOS environment -RUN dnf update -yq \ - && dnf install -yq \ - @buildsys-build rpmdevtools git \ - dnf-plugins-core libcurl-devel fontconfig-devel \ - freetype-devel openssl-devel glibc-devel \ - libicu-devel systemd wget make \ - && dnf clean all \ - && rm -rf /var/cache/dnf - -# Install DotNET SDK -RUN wget -q https://download.visualstudio.microsoft.com/download/pr/85bcc525-4e9c-471e-9c1d-96259aa1a315/930833ef34f66fe9ee2643b0ba21621a/dotnet-sdk-8.0.201-linux-x64.tar.gz -O dotnet-sdk.tar.gz \ - && mkdir -p dotnet-sdk \ - && tar -xzf dotnet-sdk.tar.gz -C dotnet-sdk \ - && ln -s $( pwd )/dotnet-sdk/dotnet /usr/bin/dotnet - -# Create symlinks and directories -RUN ln -sf ${SOURCE_DIR}/deployment/build.centos.amd64 /build.sh \ - && mkdir -p ${SOURCE_DIR}/SPECS \ - && ln -s ${SOURCE_DIR}/fedora/jellyfin.spec ${SOURCE_DIR}/SPECS/jellyfin.spec \ - && mkdir -p ${SOURCE_DIR}/SOURCES \ - && ln -s ${SOURCE_DIR}/fedora ${SOURCE_DIR}/SOURCES - -VOLUME ${SOURCE_DIR}/ - -VOLUME ${ARTIFACT_DIR}/ - -ENTRYPOINT ["/build.sh"] diff --git a/deployment/Dockerfile.debian.amd64 b/deployment/Dockerfile.debian.amd64 deleted file mode 100644 index da0c9dabd3..0000000000 --- a/deployment/Dockerfile.debian.amd64 +++ /dev/null @@ -1,33 +0,0 @@ -ARG DOTNET_VERSION=8.0 - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim - -# Docker build arguments -ARG SOURCE_DIR=/jellyfin -ARG ARTIFACT_DIR=/dist - -# Docker run environment -ENV SOURCE_DIR=/jellyfin -ENV ARTIFACT_DIR=/dist -ENV DEB_BUILD_OPTIONS=noddebs -ENV ARCH=amd64 -ENV IS_DOCKER=YES - -# Prepare Debian build environment -RUN apt-get update -yq \ - && apt-get install --no-install-recommends -yq \ - debhelper gnupg devscripts build-essential mmv \ - libcurl4-openssl-dev libfontconfig1-dev libfreetype6-dev \ - libssl-dev libssl3 liblttng-ust1 \ - && apt-get clean autoclean -yq \ - && apt-get autoremove -yq \ - && rm -rf /var/lib/apt/lists/* - -# Link to build script -RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.amd64 /build.sh - -VOLUME ${SOURCE_DIR}/ - -VOLUME ${ARTIFACT_DIR}/ - -ENTRYPOINT ["/build.sh"] diff --git a/deployment/Dockerfile.debian.arm64 b/deployment/Dockerfile.debian.arm64 deleted file mode 100644 index 6c4cb816f5..0000000000 --- a/deployment/Dockerfile.debian.arm64 +++ /dev/null @@ -1,46 +0,0 @@ -ARG DOTNET_VERSION=8.0 - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim - -# Docker build arguments -ARG SOURCE_DIR=/jellyfin -ARG ARTIFACT_DIR=/dist - -# Docker run environment -ENV SOURCE_DIR=/jellyfin -ENV ARTIFACT_DIR=/dist -ENV DEB_BUILD_OPTIONS=noddebs -ENV ARCH=amd64 -ENV IS_DOCKER=YES - -# Prepare Debian build environment -RUN apt-get update -yqq \ - && apt-get install --no-install-recommends -yqq \ - debhelper gnupg devscripts build-essential mmv - -# Prepare the cross-toolchain -RUN dpkg --add-architecture arm64 \ - && apt-get update -yqq \ - && apt-get install --no-install-recommends -yqq cross-gcc-dev \ - && TARGET_LIST="arm64" cross-gcc-gensource 12 \ - && cd cross-gcc-packages-amd64/cross-gcc-12-arm64 \ - && apt-get install --no-install-recommends -yqq \ - gcc-12-source libstdc++-12-dev-arm64-cross \ - binutils-aarch64-linux-gnu bison flex libtool \ - gdb sharutils netbase libmpc-dev libmpfr-dev libgmp-dev \ - systemtap-sdt-dev autogen expect chrpath zlib1g-dev zip \ - libc6-dev:arm64 linux-libc-dev:arm64 libgcc1:arm64 \ - libcurl4-openssl-dev:arm64 libfontconfig1-dev:arm64 \ - libfreetype6-dev:arm64 libssl-dev:arm64 liblttng-ust1:arm64 libstdc++-12-dev:arm64 \ - && apt-get clean autoclean -yqq \ - && apt-get autoremove -yqq \ - && rm -rf /var/lib/apt/lists/* - -# Link to build script -RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.arm64 /build.sh - -VOLUME ${SOURCE_DIR}/ - -VOLUME ${ARTIFACT_DIR}/ - -ENTRYPOINT ["/build.sh"] diff --git a/deployment/Dockerfile.debian.armhf b/deployment/Dockerfile.debian.armhf deleted file mode 100644 index b1fa6cee52..0000000000 --- a/deployment/Dockerfile.debian.armhf +++ /dev/null @@ -1,47 +0,0 @@ -ARG DOTNET_VERSION=8.0 - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim - -# Docker build arguments -ARG SOURCE_DIR=/jellyfin -ARG ARTIFACT_DIR=/dist - -# Docker run environment -ENV SOURCE_DIR=/jellyfin -ENV ARTIFACT_DIR=/dist -ENV DEB_BUILD_OPTIONS=noddebs -ENV ARCH=amd64 -ENV IS_DOCKER=YES - -# Prepare Debian build environment -RUN apt-get update -yqq \ - && apt-get install --no-install-recommends -yqq \ - debhelper gnupg devscripts build-essential mmv - -# Prepare the cross-toolchain -RUN dpkg --add-architecture armhf \ - && apt-get update -yqq \ - && apt-get install --no-install-recommends -yqq cross-gcc-dev \ - && TARGET_LIST="armhf" cross-gcc-gensource 12 \ - && cd cross-gcc-packages-amd64/cross-gcc-12-armhf \ - && apt-get install --no-install-recommends -yqq \ - gcc-12-source libstdc++-12-dev-armhf-cross \ - binutils-aarch64-linux-gnu bison flex libtool gdb \ - sharutils netbase libmpc-dev libmpfr-dev libgmp-dev \ - systemtap-sdt-dev autogen expect chrpath zlib1g-dev \ - zip binutils-arm-linux-gnueabihf libc6-dev:armhf \ - linux-libc-dev:armhf libgcc1:armhf libcurl4-openssl-dev:armhf \ - libfontconfig1-dev:armhf libfreetype6-dev:armhf libssl-dev:armhf \ - liblttng-ust1:armhf libstdc++-12-dev:armhf \ - && apt-get clean autoclean -yqq \ - && apt-get autoremove -yqq \ - && rm -rf /var/lib/apt/lists/* - -# Link to build script -RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.armhf /build.sh - -VOLUME ${SOURCE_DIR}/ - -VOLUME ${ARTIFACT_DIR}/ - -ENTRYPOINT ["/build.sh"] diff --git a/deployment/Dockerfile.docker.amd64 b/deployment/Dockerfile.docker.amd64 deleted file mode 100644 index ca16a08fbc..0000000000 --- a/deployment/Dockerfile.docker.amd64 +++ /dev/null @@ -1,12 +0,0 @@ -ARG DOTNET_VERSION=8.0 - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim - -ARG SOURCE_DIR=/src -ARG ARTIFACT_DIR=/jellyfin - -WORKDIR ${SOURCE_DIR} -COPY . . -ENV DOTNET_CLI_TELEMETRY_OPTOUT=1 - -RUN dotnet publish Jellyfin.Server --configuration Release --output="${ARTIFACT_DIR}" --self-contained --runtime linux-x64 -p:DebugSymbols=false -p:DebugType=none diff --git a/deployment/Dockerfile.docker.arm64 b/deployment/Dockerfile.docker.arm64 deleted file mode 100644 index 6e0f7d18e9..0000000000 --- a/deployment/Dockerfile.docker.arm64 +++ /dev/null @@ -1,12 +0,0 @@ -ARG DOTNET_VERSION=8.0 - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim - -ARG SOURCE_DIR=/src -ARG ARTIFACT_DIR=/jellyfin - -WORKDIR ${SOURCE_DIR} -COPY . . -ENV DOTNET_CLI_TELEMETRY_OPTOUT=1 - -RUN dotnet publish Jellyfin.Server --configuration Release --output="${ARTIFACT_DIR}" --self-contained --runtime linux-arm64 -p:DebugSymbols=false -p:DebugType=none diff --git a/deployment/Dockerfile.docker.armhf b/deployment/Dockerfile.docker.armhf deleted file mode 100644 index 44fb705e6d..0000000000 --- a/deployment/Dockerfile.docker.armhf +++ /dev/null @@ -1,12 +0,0 @@ -ARG DOTNET_VERSION=8.0 - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim - -ARG SOURCE_DIR=/src -ARG ARTIFACT_DIR=/jellyfin - -WORKDIR ${SOURCE_DIR} -COPY . . -ENV DOTNET_CLI_TELEMETRY_OPTOUT=1 - -RUN dotnet publish Jellyfin.Server --configuration Release --output="${ARTIFACT_DIR}" --self-contained --runtime linux-arm -p:DebugSymbols=false -p:DebugType=none diff --git a/deployment/Dockerfile.fedora.amd64 b/deployment/Dockerfile.fedora.amd64 deleted file mode 100644 index f1dc492de0..0000000000 --- a/deployment/Dockerfile.fedora.amd64 +++ /dev/null @@ -1,39 +0,0 @@ -FROM fedora:39 - -# Docker build arguments -ARG SOURCE_DIR=/jellyfin -ARG ARTIFACT_DIR=/dist - -# Docker run environment -ENV SOURCE_DIR=/jellyfin -ENV ARTIFACT_DIR=/dist -ENV IS_DOCKER=YES - -# Prepare Fedora environment -RUN dnf update -yq \ - && dnf install -yq \ - @buildsys-build rpmdevtools git \ - dnf-plugins-core libcurl-devel fontconfig-devel \ - freetype-devel openssl-devel glibc-devel \ - libicu-devel systemd wget make \ - && dnf clean all \ - && rm -rf /var/cache/dnf - -# Install DotNET SDK -RUN wget -q https://download.visualstudio.microsoft.com/download/pr/85bcc525-4e9c-471e-9c1d-96259aa1a315/930833ef34f66fe9ee2643b0ba21621a/dotnet-sdk-8.0.201-linux-x64.tar.gz -O dotnet-sdk.tar.gz \ - && mkdir -p dotnet-sdk \ - && tar -xzf dotnet-sdk.tar.gz -C dotnet-sdk \ - && ln -s $( pwd )/dotnet-sdk/dotnet /usr/bin/dotnet - -# Create symlinks and directories -RUN ln -sf ${SOURCE_DIR}/deployment/build.fedora.amd64 /build.sh \ - && mkdir -p ${SOURCE_DIR}/SPECS \ - && ln -s ${SOURCE_DIR}/fedora/jellyfin.spec ${SOURCE_DIR}/SPECS/jellyfin.spec \ - && mkdir -p ${SOURCE_DIR}/SOURCES \ - && ln -s ${SOURCE_DIR}/fedora ${SOURCE_DIR}/SOURCES - -VOLUME ${SOURCE_DIR}/ - -VOLUME ${ARTIFACT_DIR}/ - -ENTRYPOINT ["/build.sh"] diff --git a/deployment/Dockerfile.linux.amd64 b/deployment/Dockerfile.linux.amd64 deleted file mode 100644 index 6b8de3773f..0000000000 --- a/deployment/Dockerfile.linux.amd64 +++ /dev/null @@ -1,33 +0,0 @@ -ARG DOTNET_VERSION=8.0 - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim - -# Docker build arguments -ARG SOURCE_DIR=/jellyfin -ARG ARTIFACT_DIR=/dist - -# Docker run environment -ENV SOURCE_DIR=/jellyfin -ENV ARTIFACT_DIR=/dist -ENV DEB_BUILD_OPTIONS=noddebs -ENV ARCH=amd64 -ENV IS_DOCKER=YES - -# Prepare Debian build environment -RUN apt-get update -yqq \ - && apt-get install --no-install-recommends -yqq \ - debhelper gnupg devscripts unzip \ - mmv libcurl4-openssl-dev libfontconfig1-dev \ - libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \ - && apt-get clean autoclean -yqq \ - && apt-get autoremove -yqq \ - && rm -rf /var/lib/apt/lists/* - -# Link to docker-build script -RUN ln -sf ${SOURCE_DIR}/deployment/build.linux.amd64 /build.sh - -VOLUME ${SOURCE_DIR}/ - -VOLUME ${ARTIFACT_DIR}/ - -ENTRYPOINT ["/build.sh"] diff --git a/deployment/Dockerfile.linux.amd64-musl b/deployment/Dockerfile.linux.amd64-musl deleted file mode 100644 index 49d98da2ac..0000000000 --- a/deployment/Dockerfile.linux.amd64-musl +++ /dev/null @@ -1,33 +0,0 @@ -ARG DOTNET_VERSION=8.0 - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim - -# Docker build arguments -ARG SOURCE_DIR=/jellyfin -ARG ARTIFACT_DIR=/dist - -# Docker run environment -ENV SOURCE_DIR=/jellyfin -ENV ARTIFACT_DIR=/dist -ENV DEB_BUILD_OPTIONS=noddebs -ENV ARCH=amd64 -ENV IS_DOCKER=YES - -# Prepare Debian build environment -RUN apt-get update -yqq \ - && apt-get install --no-install-recommends -yqq \ - debhelper gnupg devscripts unzip \ - mmv libcurl4-openssl-dev libfontconfig1-dev \ - libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \ - && apt-get clean autoclean -yqq \ - && apt-get autoremove -yqq \ - && rm -rf /var/lib/apt/lists/* - -# Link to docker-build script -RUN ln -sf ${SOURCE_DIR}/deployment/build.linux.amd64-musl /build.sh - -VOLUME ${SOURCE_DIR}/ - -VOLUME ${ARTIFACT_DIR}/ - -ENTRYPOINT ["/build.sh"] diff --git a/deployment/Dockerfile.linux.arm64 b/deployment/Dockerfile.linux.arm64 deleted file mode 100644 index aba33c8b23..0000000000 --- a/deployment/Dockerfile.linux.arm64 +++ /dev/null @@ -1,33 +0,0 @@ -ARG DOTNET_VERSION=8.0 - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim - -# Docker build arguments -ARG SOURCE_DIR=/jellyfin -ARG ARTIFACT_DIR=/dist - -# Docker run environment -ENV SOURCE_DIR=/jellyfin -ENV ARTIFACT_DIR=/dist -ENV DEB_BUILD_OPTIONS=noddebs -ENV ARCH=arm64 -ENV IS_DOCKER=YES - -# Prepare Debian build environment -RUN apt-get update -yqq \ - && apt-get install --no-install-recommends -yqq \ - debhelper gnupg devscripts unzip \ - mmv libcurl4-openssl-dev libfontconfig1-dev \ - libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \ - && apt-get clean autoclean -yqq \ - && apt-get autoremove -yqq \ - && rm -rf /var/lib/apt/lists/* - -# Link to docker-build script -RUN ln -sf ${SOURCE_DIR}/deployment/build.linux.arm64 /build.sh - -VOLUME ${SOURCE_DIR}/ - -VOLUME ${ARTIFACT_DIR}/ - -ENTRYPOINT ["/build.sh"] diff --git a/deployment/Dockerfile.linux.armhf b/deployment/Dockerfile.linux.armhf deleted file mode 100644 index 247f756150..0000000000 --- a/deployment/Dockerfile.linux.armhf +++ /dev/null @@ -1,33 +0,0 @@ -ARG DOTNET_VERSION=8.0 - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim - -# Docker build arguments -ARG SOURCE_DIR=/jellyfin -ARG ARTIFACT_DIR=/dist - -# Docker run environment -ENV SOURCE_DIR=/jellyfin -ENV ARTIFACT_DIR=/dist -ENV DEB_BUILD_OPTIONS=noddebs -ENV ARCH=armhf -ENV IS_DOCKER=YES - -# Prepare Debian build environment -RUN apt-get update -yqq \ - && apt-get install --no-install-recommends -yqq \ - debhelper gnupg devscripts unzip \ - mmv libcurl4-openssl-dev libfontconfig1-dev \ - libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \ - && apt-get clean autoclean -yqq \ - && apt-get autoremove -yqq \ - && rm -rf /var/lib/apt/lists/* - -# Link to docker-build script -RUN ln -sf ${SOURCE_DIR}/deployment/build.linux.armhf /build.sh - -VOLUME ${SOURCE_DIR}/ - -VOLUME ${ARTIFACT_DIR}/ - -ENTRYPOINT ["/build.sh"] diff --git a/deployment/Dockerfile.linux.musl-linux-arm64 b/deployment/Dockerfile.linux.musl-linux-arm64 deleted file mode 100644 index a6e1ba217e..0000000000 --- a/deployment/Dockerfile.linux.musl-linux-arm64 +++ /dev/null @@ -1,33 +0,0 @@ -ARG DOTNET_VERSION=8.0 - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim - -# Docker build arguments -ARG SOURCE_DIR=/jellyfin -ARG ARTIFACT_DIR=/dist - -# Docker run environment -ENV SOURCE_DIR=/jellyfin -ENV ARTIFACT_DIR=/dist -ENV DEB_BUILD_OPTIONS=noddebs -ENV ARCH=arm64 -ENV IS_DOCKER=YES - -# Prepare Debian build environment -RUN apt-get update -yqq \ - && apt-get install --no-install-recommends -yqq \ - debhelper gnupg devscripts unzip \ - mmv libcurl4-openssl-dev libfontconfig1-dev \ - libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \ - && apt-get clean autoclean -yqq \ - && apt-get autoremove -yqq \ - && rm -rf /var/lib/apt/lists/* - -# Link to docker-build script -RUN ln -sf ${SOURCE_DIR}/deployment/build.linux.musl-linux-arm64 /build.sh - -VOLUME ${SOURCE_DIR}/ - -VOLUME ${ARTIFACT_DIR}/ - -ENTRYPOINT ["/build.sh"] diff --git a/deployment/Dockerfile.macos.amd64 b/deployment/Dockerfile.macos.amd64 deleted file mode 100644 index 45980c363e..0000000000 --- a/deployment/Dockerfile.macos.amd64 +++ /dev/null @@ -1,33 +0,0 @@ -ARG DOTNET_VERSION=8.0 - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim - -# Docker build arguments -ARG SOURCE_DIR=/jellyfin -ARG ARTIFACT_DIR=/dist - -# Docker run environment -ENV SOURCE_DIR=/jellyfin -ENV ARTIFACT_DIR=/dist -ENV DEB_BUILD_OPTIONS=noddebs -ENV ARCH=amd64 -ENV IS_DOCKER=YES - -# Prepare Debian build environment -RUN apt-get update -yqq \ - && apt-get install --no-install-recommends -yqq \ - debhelper gnupg devscripts \ - mmv libcurl4-openssl-dev libfontconfig1-dev \ - libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \ - && apt-get clean autoclean -yqq \ - && apt-get autoremove -yqq \ - && rm -rf /var/lib/apt/lists/* - -# Link to docker-build script -RUN ln -sf ${SOURCE_DIR}/deployment/build.macos.amd64 /build.sh - -VOLUME ${SOURCE_DIR}/ - -VOLUME ${ARTIFACT_DIR}/ - -ENTRYPOINT ["/build.sh"] diff --git a/deployment/Dockerfile.macos.arm64 b/deployment/Dockerfile.macos.arm64 deleted file mode 100644 index ee3a813dde..0000000000 --- a/deployment/Dockerfile.macos.arm64 +++ /dev/null @@ -1,33 +0,0 @@ -ARG DOTNET_VERSION=8.0 - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim - -# Docker build arguments -ARG SOURCE_DIR=/jellyfin -ARG ARTIFACT_DIR=/dist - -# Docker run environment -ENV SOURCE_DIR=/jellyfin -ENV ARTIFACT_DIR=/dist -ENV DEB_BUILD_OPTIONS=noddebs -ENV ARCH=amd64 -ENV IS_DOCKER=YES - -# Prepare Debian build environment -RUN apt-get update -yqq \ - && apt-get install --no-install-recommends -yqq \ - debhelper gnupg devscripts \ - mmv libcurl4-openssl-dev libfontconfig1-dev \ - libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \ - && apt-get clean autoclean -yqq \ - && apt-get autoremove -yqq \ - && rm -rf /var/lib/apt/lists/* - -# Link to docker-build script -RUN ln -sf ${SOURCE_DIR}/deployment/build.macos.arm64 /build.sh - -VOLUME ${SOURCE_DIR}/ - -VOLUME ${ARTIFACT_DIR}/ - -ENTRYPOINT ["/build.sh"] diff --git a/deployment/Dockerfile.portable b/deployment/Dockerfile.portable deleted file mode 100644 index 0ab1b19147..0000000000 --- a/deployment/Dockerfile.portable +++ /dev/null @@ -1,32 +0,0 @@ -ARG DOTNET_VERSION=8.0 - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim - -# Docker build arguments -ARG SOURCE_DIR=/jellyfin -ARG ARTIFACT_DIR=/dist - -# Docker run environment -ENV SOURCE_DIR=/jellyfin -ENV ARTIFACT_DIR=/dist -ENV DEB_BUILD_OPTIONS=noddebs -ENV IS_DOCKER=YES - -# Prepare Debian build environment -RUN apt-get update -yqq \ - && apt-get install --no-install-recommends -yqq \ - debhelper gnupg devscripts \ - mmv libcurl4-openssl-dev libfontconfig1-dev \ - libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \ - && apt-get clean autoclean -yqq \ - && apt-get autoremove -yqq \ - && rm -rf /var/lib/apt/lists/* - -# Link to docker-build script -RUN ln -sf ${SOURCE_DIR}/deployment/build.portable /build.sh - -VOLUME ${SOURCE_DIR}/ - -VOLUME ${ARTIFACT_DIR}/ - -ENTRYPOINT ["/build.sh"] diff --git a/deployment/Dockerfile.ubuntu.amd64 b/deployment/Dockerfile.ubuntu.amd64 deleted file mode 100644 index 2326d3e852..0000000000 --- a/deployment/Dockerfile.ubuntu.amd64 +++ /dev/null @@ -1,33 +0,0 @@ -ARG DOTNET_VERSION=8.0 - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-jammy - -# Docker build arguments -ARG SOURCE_DIR=/jellyfin -ARG ARTIFACT_DIR=/dist - -# Docker run environment -ENV SOURCE_DIR=/jellyfin -ENV ARTIFACT_DIR=/dist -ENV DEB_BUILD_OPTIONS=noddebs -ENV ARCH=amd64 -ENV IS_DOCKER=YES - -# Prepare Debian build environment -RUN apt-get update -yqq \ - && apt-get install --no-install-recommends -yqq \ - debhelper gnupg wget ca-certificates devscripts \ - mmv build-essential libcurl4-openssl-dev libfontconfig1-dev \ - libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \ - && apt-get clean autoclean -yqq \ - && apt-get autoremove -yqq \ - && rm -rf /var/lib/apt/lists/* - -# Link to build script -RUN ln -sf ${SOURCE_DIR}/deployment/build.ubuntu.amd64 /build.sh - -VOLUME ${SOURCE_DIR}/ - -VOLUME ${ARTIFACT_DIR}/ - -ENTRYPOINT ["/build.sh"] diff --git a/deployment/Dockerfile.ubuntu.arm64 b/deployment/Dockerfile.ubuntu.arm64 deleted file mode 100644 index 461a287a18..0000000000 --- a/deployment/Dockerfile.ubuntu.arm64 +++ /dev/null @@ -1,56 +0,0 @@ -ARG DOTNET_VERSION=8.0 - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-jammy - -# Docker build arguments -ARG SOURCE_DIR=/jellyfin -ARG ARTIFACT_DIR=/dist - -# Docker run environment -ENV SOURCE_DIR=/jellyfin -ENV ARTIFACT_DIR=/dist -ENV DEB_BUILD_OPTIONS=noddebs -ENV ARCH=amd64 -ENV IS_DOCKER=YES - -# Prepare Debian build environment -RUN apt-get update -yqq \ - && apt-get install --no-install-recommends -yqq \ - debhelper gnupg wget ca-certificates devscripts \ - mmv build-essential lsb-release - -# Prepare the cross-toolchain -RUN rm /etc/apt/sources.list \ - && export CODENAME="$( lsb_release -c -s )" \ - && echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME} main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \ - && echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-updates main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \ - && echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-backports main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \ - && echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-security main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \ - && echo "deb [arch=arm64] http://ports.ubuntu.com/ ${CODENAME} main restricted universe multiverse" >>/etc/apt/sources.list.d/arm64.list \ - && echo "deb [arch=arm64] http://ports.ubuntu.com/ ${CODENAME}-updates main restricted universe multiverse" >>/etc/apt/sources.list.d/arm64.list \ - && echo "deb [arch=arm64] http://ports.ubuntu.com/ ${CODENAME}-backports main restricted universe multiverse" >>/etc/apt/sources.list.d/arm64.list \ - && echo "deb [arch=arm64] http://ports.ubuntu.com/ ${CODENAME}-security main restricted universe multiverse" >>/etc/apt/sources.list.d/arm64.list \ - && dpkg --add-architecture arm64 \ - && apt-get update -yqq \ - && apt-get install --no-install-recommends -yqq cross-gcc-dev \ - && TARGET_LIST="arm64" cross-gcc-gensource 12 \ - && cd cross-gcc-packages-amd64/cross-gcc-12-arm64 \ - && ln -fs /usr/share/zoneinfo/America/Toronto /etc/localtime \ - && apt-get install --no-install-recommends -yqq \ - gcc-12-source libstdc++6-arm64-cross binutils-aarch64-linux-gnu \ - bison flex libtool gdb sharutils netbase libmpc-dev \ - libmpfr-dev libgmp-dev systemtap-sdt-dev autogen expect chrpath zlib1g-dev \ - zip libc6-dev:arm64 linux-libc-dev:arm64 libgcc1:arm64 libcurl4-openssl-dev:arm64 \ - libfontconfig1-dev:arm64 libfreetype6-dev:arm64 liblttng-ust1:arm64 libstdc++6:arm64 libssl-dev:arm64 \ - && apt-get clean autoclean -yqq \ - && apt-get autoremove -yqq \ - && rm -rf /var/lib/apt/lists/* - -# Link to build script -RUN ln -sf ${SOURCE_DIR}/deployment/build.ubuntu.arm64 /build.sh - -VOLUME ${SOURCE_DIR}/ - -VOLUME ${ARTIFACT_DIR}/ - -ENTRYPOINT ["/build.sh"] diff --git a/deployment/Dockerfile.ubuntu.armhf b/deployment/Dockerfile.ubuntu.armhf deleted file mode 100644 index 83fe32acf8..0000000000 --- a/deployment/Dockerfile.ubuntu.armhf +++ /dev/null @@ -1,56 +0,0 @@ -ARG DOTNET_VERSION=8.0 - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-jammy - -# Docker build arguments -ARG SOURCE_DIR=/jellyfin -ARG ARTIFACT_DIR=/dist - -# Docker run environment -ENV SOURCE_DIR=/jellyfin -ENV ARTIFACT_DIR=/dist -ENV DEB_BUILD_OPTIONS=noddebs -ENV ARCH=amd64 -ENV IS_DOCKER=YES - -# Prepare Debian build environment -RUN apt-get update -yqq \ - && apt-get install --no-install-recommends -yqq \ - debhelper gnupg wget ca-certificates devscripts \ - mmv build-essential lsb-release - -# Prepare the cross-toolchain -RUN rm /etc/apt/sources.list \ - && export CODENAME="$( lsb_release -c -s )" \ - && echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME} main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \ - && echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-updates main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \ - && echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-backports main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \ - && echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-security main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \ - && echo "deb [arch=armhf] http://ports.ubuntu.com/ ${CODENAME} main restricted universe multiverse" >>/etc/apt/sources.list.d/armhf.list \ - && echo "deb [arch=armhf] http://ports.ubuntu.com/ ${CODENAME}-updates main restricted universe multiverse" >>/etc/apt/sources.list.d/armhf.list \ - && echo "deb [arch=armhf] http://ports.ubuntu.com/ ${CODENAME}-backports main restricted universe multiverse" >>/etc/apt/sources.list.d/armhf.list \ - && echo "deb [arch=armhf] http://ports.ubuntu.com/ ${CODENAME}-security main restricted universe multiverse" >>/etc/apt/sources.list.d/armhf.list \ - && dpkg --add-architecture armhf \ - && apt-get update -yqq \ - && apt-get install --no-install-recommends -yqq cross-gcc-dev \ - && TARGET_LIST="armhf" cross-gcc-gensource 12 \ - && cd cross-gcc-packages-amd64/cross-gcc-12-armhf \ - && ln -fs /usr/share/zoneinfo/America/Toronto /etc/localtime \ - && apt-get install --no-install-recommends -yqq \ - gcc-12-source libstdc++6-armhf-cross binutils-arm-linux-gnueabihf \ - bison flex libtool gdb sharutils netbase libmpc-dev \ - libmpfr-dev libgmp-dev systemtap-sdt-dev autogen expect chrpath zlib1g-dev \ - zip libc6-dev:armhf linux-libc-dev:armhf libgcc1:armhf libcurl4-openssl-dev:armhf \ - libfontconfig1-dev:armhf libfreetype6-dev:armhf liblttng-ust1:armhf libstdc++6:armhf libssl-dev:armhf \ - && apt-get clean autoclean -yqq \ - && apt-get autoremove -yqq \ - && rm -rf /var/lib/apt/lists/* - -# Link to build script -RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.armhf /build.sh - -VOLUME ${SOURCE_DIR}/ - -VOLUME ${ARTIFACT_DIR}/ - -ENTRYPOINT ["/build.sh"] diff --git a/deployment/Dockerfile.windows.amd64 b/deployment/Dockerfile.windows.amd64 deleted file mode 100644 index 358fb620ac..0000000000 --- a/deployment/Dockerfile.windows.amd64 +++ /dev/null @@ -1,32 +0,0 @@ -ARG DOTNET_VERSION=8.0 - -FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim - -# Docker build arguments -ARG SOURCE_DIR=/jellyfin -ARG ARTIFACT_DIR=/dist - -# Docker run environment -ENV SOURCE_DIR=/jellyfin -ENV ARTIFACT_DIR=/dist -ENV DEB_BUILD_OPTIONS=noddebs -ENV IS_DOCKER=YES - -# Prepare Debian build environment -RUN apt-get update -yqq \ - && apt-get install --no-install-recommends -yqq \ - debhelper gnupg devscripts unzip \ - mmv libcurl4-openssl-dev libfontconfig1-dev \ - libfreetype6-dev libssl-dev libssl3 liblttng-ust1 zip \ - && apt-get clean autoclean -yqq \ - && apt-get autoremove -yqq \ - && rm -rf /var/lib/apt/lists/* - -# Link to docker-build script -RUN ln -sf ${SOURCE_DIR}/deployment/build.windows.amd64 /build.sh - -VOLUME ${SOURCE_DIR}/ - -VOLUME ${ARTIFACT_DIR}/ - -ENTRYPOINT ["/build.sh"] diff --git a/deployment/build.centos.amd64 b/deployment/build.centos.amd64 deleted file mode 100755 index 26be377f10..0000000000 --- a/deployment/build.centos.amd64 +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/bash - -#= CentOS/RHEL 9+ amd64 .rpm - -set -o errexit -set -o xtrace - -# Move to source directory -pushd "${SOURCE_DIR}" - -if [[ ${IS_DOCKER} == YES ]]; then - # Remove BuildRequires for dotnet, since it's installed manually - pushd centos - - cp -a jellyfin.spec /tmp/spec.orig - sed -i 's/BuildRequires: dotnet/# BuildRequires: dotnet/' jellyfin.spec - - popd -fi - -# Modify changelog to unstable configuration if IS_UNSTABLE -if [[ ${IS_UNSTABLE} == 'yes' ]]; then - pushd centos - - PR_ID=$( git log --grep 'Merge pull request' --oneline --single-worktree --first-parent | head -1 | grep --color=none -Eo '#[0-9]+' | tr -d '#' ) - - sed -i "s/Version:.*/Version: ${BUILD_ID}/" jellyfin.spec - sed -i "/%changelog/q" jellyfin.spec - - cat <>jellyfin.spec -* $( LANG=C date '+%a %b %d %Y' ) Jellyfin Packaging Team -- Jellyfin Server unstable build ${BUILD_ID} for merged PR #${PR_ID} -EOF - popd -fi - -# Build RPM -make -f centos/Makefile srpm outdir=/root/rpmbuild/SRPMS -rpmbuild --rebuild -bb /root/rpmbuild/SRPMS/jellyfin-*.src.rpm - -# Move the artifacts out -mv /root/rpmbuild/RPMS/x86_64/jellyfin-*.rpm /root/rpmbuild/SRPMS/jellyfin-*.src.rpm "${ARTIFACT_DIR}/" - -if [[ ${IS_DOCKER} == YES ]]; then - chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}" -fi - -rm -f centos/jellyfin*.tar.gz - -if [[ ${IS_DOCKER} == YES ]]; then - pushd centos - - cp -a /tmp/spec.orig jellyfin.spec - chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}" - - popd -fi - -popd diff --git a/deployment/build.debian.amd64 b/deployment/build.debian.amd64 deleted file mode 100755 index 350b22a854..0000000000 --- a/deployment/build.debian.amd64 +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash - -#= Debian 12+ amd64 .deb - -set -o errexit -set -o xtrace - -# Move to source directory -pushd "${SOURCE_DIR}" - -# Modify changelog to unstable configuration if IS_UNSTABLE -if [[ ${IS_UNSTABLE} == 'yes' ]]; then - pushd debian - PR_ID=$( git log --grep 'Merge pull request' --oneline --single-worktree --first-parent | head -1 | grep --color=none -Eo '#[0-9]+' | tr -d '#' ) - - cat <changelog -jellyfin-server (${BUILD_ID}-unstable) unstable; urgency=medium - - * Jellyfin Server unstable build ${BUILD_ID} for merged PR #${PR_ID} - - -- Jellyfin Packaging Team $( date --rfc-2822 ) -EOF - popd -fi - -# Build DEB -dpkg-buildpackage -us -uc --pre-clean --post-clean - -mkdir -p "${ARTIFACT_DIR}/" -mv ../jellyfin*.{deb,dsc,tar.gz,buildinfo,changes} "${ARTIFACT_DIR}/" - -if [[ ${IS_DOCKER} == YES ]]; then - cp -a /tmp/control.orig debian/control - chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}" -fi - -popd diff --git a/deployment/build.debian.arm64 b/deployment/build.debian.arm64 deleted file mode 100755 index 0dfca0ab49..0000000000 --- a/deployment/build.debian.arm64 +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -#= Debian 12+ arm64 .deb - -set -o errexit -set -o xtrace - -# Move to source directory -pushd "${SOURCE_DIR}" - -# Modify changelog to unstable configuration if IS_UNSTABLE -if [[ ${IS_UNSTABLE} == 'yes' ]]; then - pushd debian - PR_ID=$( git log --grep 'Merge pull request' --oneline --single-worktree --first-parent | head -1 | grep --color=none -Eo '#[0-9]+' | tr -d '#' ) - - cat <changelog -jellyfin-server (${BUILD_ID}-unstable) unstable; urgency=medium - - * Jellyfin Server unstable build ${BUILD_ID} for merged PR #${PR_ID} - - -- Jellyfin Packaging Team $( date --rfc-2822 ) -EOF - popd -fi - -# Build DEB -export CONFIG_SITE=/etc/dpkg-cross/cross-config.${ARCH} -dpkg-buildpackage -us -uc -a arm64 --pre-clean --post-clean - -mkdir -p "${ARTIFACT_DIR}/" -mv ../jellyfin*.{deb,dsc,tar.gz,buildinfo,changes} "${ARTIFACT_DIR}/" - -if [[ ${IS_DOCKER} == YES ]]; then - cp -a /tmp/control.orig debian/control - chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}" -fi - -popd diff --git a/deployment/build.debian.armhf b/deployment/build.debian.armhf deleted file mode 100755 index 0ab9e2f9a4..0000000000 --- a/deployment/build.debian.armhf +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -#= Debian 12+ arm64 .deb - -set -o errexit -set -o xtrace - -# Move to source directory -pushd "${SOURCE_DIR}" - -# Modify changelog to unstable configuration if IS_UNSTABLE -if [[ ${IS_UNSTABLE} == 'yes' ]]; then - pushd debian - PR_ID=$( git log --grep 'Merge pull request' --oneline --single-worktree --first-parent | head -1 | grep --color=none -Eo '#[0-9]+' | tr -d '#' ) - - cat <changelog -jellyfin-server (${BUILD_ID}-unstable) unstable; urgency=medium - - * Jellyfin Server unstable build ${BUILD_ID} for merged PR #${PR_ID} - - -- Jellyfin Packaging Team $( date --rfc-2822 ) -EOF - popd -fi - -# Build DEB -export CONFIG_SITE=/etc/dpkg-cross/cross-config.${ARCH} -dpkg-buildpackage -us -uc -a armhf --pre-clean --post-clean - -mkdir -p "${ARTIFACT_DIR}/" -mv ../jellyfin*.{deb,dsc,tar.gz,buildinfo,changes} "${ARTIFACT_DIR}/" - -if [[ ${IS_DOCKER} == YES ]]; then - cp -a /tmp/control.orig debian/control - chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}" -fi - -popd diff --git a/deployment/build.fedora.amd64 b/deployment/build.fedora.amd64 deleted file mode 100755 index 2b4ec2a9c5..0000000000 --- a/deployment/build.fedora.amd64 +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/bash - -#= Fedora 39+ amd64 .rpm - -set -o errexit -set -o xtrace - -# Move to source directory -pushd "${SOURCE_DIR}" - -if [[ ${IS_DOCKER} == YES ]]; then - # Remove BuildRequires for dotnet, since it's installed manually - pushd fedora - - cp -a jellyfin.spec /tmp/spec.orig - sed -i 's/BuildRequires: dotnet/# BuildRequires: dotnet/' jellyfin.spec - - popd -fi - -# Modify changelog to unstable configuration if IS_UNSTABLE -if [[ ${IS_UNSTABLE} == 'yes' ]]; then - pushd fedora - - PR_ID=$( git log --grep 'Merge pull request' --oneline --single-worktree --first-parent | head -1 | grep --color=none -Eo '#[0-9]+' | tr -d '#' ) - - sed -i "s/Version:.*/Version: ${BUILD_ID}/" jellyfin.spec - sed -i "/%changelog/q" jellyfin.spec - - cat <>jellyfin.spec -* $( LANG=C date '+%a %b %d %Y' ) Jellyfin Packaging Team -- Jellyfin Server unstable build ${BUILD_ID} for merged PR #${PR_ID} -EOF - popd -fi - -# Build RPM -make -f fedora/Makefile srpm outdir=/root/rpmbuild/SRPMS -rpmbuild -rb /root/rpmbuild/SRPMS/jellyfin-*.src.rpm - -# Move the artifacts out -mv /root/rpmbuild/RPMS/x86_64/jellyfin-*.rpm /root/rpmbuild/SRPMS/jellyfin-*.src.rpm "${ARTIFACT_DIR}/" - -if [[ ${IS_DOCKER} == YES ]]; then - chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}" -fi - -rm -f fedora/jellyfin*.tar.gz - -if [[ ${IS_DOCKER} == YES ]]; then - pushd fedora - - cp -a /tmp/spec.orig jellyfin.spec - chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}" - - popd -fi - -popd diff --git a/deployment/build.linux.amd64 b/deployment/build.linux.amd64 deleted file mode 100755 index 2998d2f9e3..0000000000 --- a/deployment/build.linux.amd64 +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -#= Generic Linux amd64 .tar.gz - -set -o errexit -set -o xtrace - -# Move to source directory -pushd "${SOURCE_DIR}" - -# Get version -if [[ ${IS_UNSTABLE} == 'yes' ]]; then - version="${BUILD_ID}" -else - version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )" -fi - -# Build archives -dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime linux-x64 --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true -tar -czf jellyfin-server_"${version}"_linux-amd64.tar.gz -C dist jellyfin-server_"${version}" -rm -rf dist/jellyfin-server_"${version}" - -# Move the artifacts out -mkdir -p "${ARTIFACT_DIR}/" -mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/" - -if [[ ${IS_DOCKER} == YES ]]; then - chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}" -fi - -popd diff --git a/deployment/build.linux.amd64-musl b/deployment/build.linux.amd64-musl deleted file mode 100755 index 0fa1764650..0000000000 --- a/deployment/build.linux.amd64-musl +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -#= Generic Linux amd64-musl .tar.gz - -set -o errexit -set -o xtrace - -# Move to source directory -pushd "${SOURCE_DIR}" - -# Get version -if [[ ${IS_UNSTABLE} == 'yes' ]]; then - version="${BUILD_ID}" -else - version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )" -fi - -# Build archives -dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime linux-musl-x64 --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true -tar -czf jellyfin-server_"${version}"_linux-amd64-musl.tar.gz -C dist jellyfin-server_"${version}" -rm -rf dist/jellyfin-server_"${version}" - -# Move the artifacts out -mkdir -p "${ARTIFACT_DIR}/" -mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/" - -if [[ ${IS_DOCKER} == YES ]]; then - chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}" -fi - -popd diff --git a/deployment/build.linux.arm64 b/deployment/build.linux.arm64 deleted file mode 100755 index dc44ca330d..0000000000 --- a/deployment/build.linux.arm64 +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -#= Generic Linux arm64 .tar.gz - -set -o errexit -set -o xtrace - -# Move to source directory -pushd "${SOURCE_DIR}" - -# Get version -if [[ ${IS_UNSTABLE} == 'yes' ]]; then - version="${BUILD_ID}" -else - version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )" -fi - -# Build archives -dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime linux-arm64 --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true -tar -czf jellyfin-server_"${version}"_linux-arm64.tar.gz -C dist jellyfin-server_"${version}" -rm -rf dist/jellyfin-server_"${version}" - -# Move the artifacts out -mkdir -p "${ARTIFACT_DIR}/" -mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/" - -if [[ ${IS_DOCKER} == YES ]]; then - chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}" -fi - -popd diff --git a/deployment/build.linux.armhf b/deployment/build.linux.armhf deleted file mode 100755 index f9de9ff0a3..0000000000 --- a/deployment/build.linux.armhf +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -#= Generic Linux armhf .tar.gz - -set -o errexit -set -o xtrace - -# Move to source directory -pushd "${SOURCE_DIR}" - -# Get version -if [[ ${IS_UNSTABLE} == 'yes' ]]; then - version="${BUILD_ID}" -else - version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )" -fi - -# Build archives -dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime linux-arm --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true -tar -czf jellyfin-server_"${version}"_linux-armhf.tar.gz -C dist jellyfin-server_"${version}" -rm -rf dist/jellyfin-server_"${version}" - -# Move the artifacts out -mkdir -p "${ARTIFACT_DIR}/" -mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/" - -if [[ ${IS_DOCKER} == YES ]]; then - chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}" -fi - -popd diff --git a/deployment/build.linux.musl-linux-arm64 b/deployment/build.linux.musl-linux-arm64 deleted file mode 100755 index ae9ab010f5..0000000000 --- a/deployment/build.linux.musl-linux-arm64 +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -#= Generic Linux musl-linux-arm64 .tar.gz - -set -o errexit -set -o xtrace - -# Move to source directory -pushd "${SOURCE_DIR}" - -# Get version -if [[ ${IS_UNSTABLE} == 'yes' ]]; then - version="${BUILD_ID}" -else - version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )" -fi - -# Build archives -dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime linux-musl-arm64 --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true -tar -czf jellyfin-server_"${version}"_linux-arm64-musl.tar.gz -C dist jellyfin-server_"${version}" -rm -rf dist/jellyfin-server_"${version}" - -# Move the artifacts out -mkdir -p "${ARTIFACT_DIR}/" -mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/" - -if [[ ${IS_DOCKER} == YES ]]; then - chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}" -fi - -popd diff --git a/deployment/build.macos.amd64 b/deployment/build.macos.amd64 deleted file mode 100755 index 81e0f43f62..0000000000 --- a/deployment/build.macos.amd64 +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -#= macOS 10.13+ amd64 .tar.gz - -set -o errexit -set -o xtrace - -# Move to source directory -pushd "${SOURCE_DIR}" - -# Get version -if [[ ${IS_UNSTABLE} == 'yes' ]]; then - version="${BUILD_ID}" -else - version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )" -fi - -# Build archives -dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime osx-x64 --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true -tar -czf jellyfin-server_"${version}"_macos-amd64.tar.gz -C dist jellyfin-server_"${version}" -rm -rf dist/jellyfin-server_"${version}" - -# Move the artifacts out -mkdir -p "${ARTIFACT_DIR}/" -mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/" - -if [[ ${IS_DOCKER} == YES ]]; then - chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}" -fi - -popd diff --git a/deployment/build.macos.arm64 b/deployment/build.macos.arm64 deleted file mode 100755 index 0a6f37edea..0000000000 --- a/deployment/build.macos.arm64 +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -#= macOS 11.0+ arm64 .tar.gz - -set -o errexit -set -o xtrace - -# Move to source directory -pushd "${SOURCE_DIR}" - -# Get version -if [[ ${IS_UNSTABLE} == 'yes' ]]; then - version="${BUILD_ID}" -else - version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )" -fi - -# Build archives -dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime osx-arm64 --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true -tar -czf jellyfin-server_"${version}"_macos-arm64.tar.gz -C dist jellyfin-server_"${version}" -rm -rf dist/jellyfin-server_"${version}" - -# Move the artifacts out -mkdir -p "${ARTIFACT_DIR}/" -mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/" - -if [[ ${IS_DOCKER} == YES ]]; then - chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}" -fi - -popd diff --git a/deployment/build.portable b/deployment/build.portable deleted file mode 100755 index fad14fccfc..0000000000 --- a/deployment/build.portable +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -#= Portable .NET DLL .tar.gz - -set -o errexit -set -o xtrace - -# Move to source directory -pushd "${SOURCE_DIR}" - -# Get version -if [[ ${IS_UNSTABLE} == 'yes' ]]; then - version="${BUILD_ID}" -else - version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )" -fi - -# Build archives -dotnet publish Jellyfin.Server --configuration Release --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=false -tar -czf jellyfin-server_"${version}"_portable.tar.gz -C dist jellyfin-server_"${version}" -rm -rf dist/jellyfin-server_"${version}" - -# Move the artifacts out -mkdir -p "${ARTIFACT_DIR}/" -mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/" - -if [[ ${IS_DOCKER} == YES ]]; then - chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}" -fi - -popd diff --git a/deployment/build.ubuntu.amd64 b/deployment/build.ubuntu.amd64 deleted file mode 100755 index 6fd87a3aec..0000000000 --- a/deployment/build.ubuntu.amd64 +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash - -#= Ubuntu 22.04+ amd64 .deb - -set -o errexit -set -o xtrace - -# Move to source directory -pushd "${SOURCE_DIR}" - -# Modify changelog to unstable configuration if IS_UNSTABLE -if [[ ${IS_UNSTABLE} == 'yes' ]]; then - pushd debian - PR_ID=$( git log --grep 'Merge pull request' --oneline --single-worktree --first-parent | head -1 | grep --color=none -Eo '#[0-9]+' | tr -d '#' ) - - cat <changelog -jellyfin-server (${BUILD_ID}-unstable) unstable; urgency=medium - - * Jellyfin Server unstable build ${BUILD_ID} for merged PR #${PR_ID} - - -- Jellyfin Packaging Team $( date --rfc-2822 ) -EOF - popd -fi - -# Build DEB -dpkg-buildpackage -us -uc --pre-clean --post-clean - -mkdir -p "${ARTIFACT_DIR}/" -mv ../jellyfin*.{deb,dsc,tar.gz,buildinfo,changes} "${ARTIFACT_DIR}/" - -if [[ ${IS_DOCKER} == YES ]]; then - cp -a /tmp/control.orig debian/control - chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}" -fi - -popd diff --git a/deployment/build.ubuntu.arm64 b/deployment/build.ubuntu.arm64 deleted file mode 100755 index f783941c73..0000000000 --- a/deployment/build.ubuntu.arm64 +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -#= Ubuntu 22.04+ arm64 .deb - -set -o errexit -set -o xtrace - -# Move to source directory -pushd "${SOURCE_DIR}" - -# Modify changelog to unstable configuration if IS_UNSTABLE -if [[ ${IS_UNSTABLE} == 'yes' ]]; then - pushd debian - PR_ID=$( git log --grep 'Merge pull request' --oneline --single-worktree --first-parent | head -1 | grep --color=none -Eo '#[0-9]+' | tr -d '#' ) - - cat <changelog -jellyfin-server (${BUILD_ID}-unstable) unstable; urgency=medium - - * Jellyfin Server unstable build ${BUILD_ID} for merged PR #${PR_ID} - - -- Jellyfin Packaging Team $( date --rfc-2822 ) -EOF - popd -fi - -# Build DEB -export CONFIG_SITE=/etc/dpkg-cross/cross-config.${ARCH} -dpkg-buildpackage -us -uc -a arm64 --pre-clean --post-clean - -mkdir -p "${ARTIFACT_DIR}/" -mv ../jellyfin*.{deb,dsc,tar.gz,buildinfo,changes} "${ARTIFACT_DIR}/" - -if [[ ${IS_DOCKER} == YES ]]; then - cp -a /tmp/control.orig debian/control - chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}" -fi - -popd diff --git a/deployment/build.ubuntu.armhf b/deployment/build.ubuntu.armhf deleted file mode 100755 index cde6708c5b..0000000000 --- a/deployment/build.ubuntu.armhf +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -#= Ubuntu 22.04+ arm64 .deb - -set -o errexit -set -o xtrace - -# Move to source directory -pushd "${SOURCE_DIR}" - -# Modify changelog to unstable configuration if IS_UNSTABLE -if [[ ${IS_UNSTABLE} == 'yes' ]]; then - pushd debian - PR_ID=$( git log --grep 'Merge pull request' --oneline --single-worktree --first-parent | head -1 | grep --color=none -Eo '#[0-9]+' | tr -d '#' ) - - cat <changelog -jellyfin-server (${BUILD_ID}-unstable) unstable; urgency=medium - - * Jellyfin Server unstable build ${BUILD_ID} for merged PR #${PR_ID} - - -- Jellyfin Packaging Team $( date --rfc-2822 ) -EOF - popd -fi - -# Build DEB -export CONFIG_SITE=/etc/dpkg-cross/cross-config.${ARCH} -dpkg-buildpackage -us -uc -a armhf --pre-clean --post-clean - -mkdir -p "${ARTIFACT_DIR}/" -mv ../jellyfin*.{deb,dsc,tar.gz,buildinfo,changes} "${ARTIFACT_DIR}/" - -if [[ ${IS_DOCKER} == YES ]]; then - cp -a /tmp/control.orig debian/control - chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}" -fi - -popd diff --git a/deployment/build.windows.amd64 b/deployment/build.windows.amd64 deleted file mode 100755 index cd07f4e0b2..0000000000 --- a/deployment/build.windows.amd64 +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/bash - -#= Windows 7+ amd64 (x64) .zip - -set -o errexit -set -o xtrace - -# Version variables -NSSM_VERSION="nssm-2.24-101-g897c7ad" -NSSM_URL="http://files.evilt.win/nssm/${NSSM_VERSION}.zip" -FFMPEG_URL="https://repo.jellyfin.org/releases/server/windows/ffmpeg/jellyfin-ffmpeg-portable_win64.zip"; - -# Move to source directory -pushd "${SOURCE_DIR}" - -# Get version -if [[ ${IS_UNSTABLE} == 'yes' ]]; then - version="${BUILD_ID}" -else - version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )" -fi - -output_dir="dist/jellyfin-server_${version}" - -# Build binary -dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime win-x64 --output "${output_dir}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true - -# Prepare addins -addin_build_dir="$( mktemp -d )" -wget ${NSSM_URL} -O "${addin_build_dir}"/nssm.zip -wget ${FFMPEG_URL} -O "${addin_build_dir}"/jellyfin-ffmpeg.zip -unzip "${addin_build_dir}"/nssm.zip -d "${addin_build_dir}" -cp "${addin_build_dir}"/${NSSM_VERSION}/win64/nssm.exe "${output_dir}"/nssm.exe -unzip "${addin_build_dir}"/jellyfin-ffmpeg.zip -d "${addin_build_dir}"/jellyfin-ffmpeg -cp "${addin_build_dir}"/jellyfin-ffmpeg/* "${output_dir}" -rm -rf "${addin_build_dir}" - -# Create zip package -pushd dist -zip -qr jellyfin-server_"${version}".portable.zip jellyfin-server_"${version}" -popd -rm -rf "${output_dir}" - -# Move the artifacts out -mkdir -p "${ARTIFACT_DIR}/" -mv dist/jellyfin[-_]*.zip "${ARTIFACT_DIR}/" - -if [[ ${IS_DOCKER} == YES ]]; then - chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}" -fi - -popd diff --git a/fedora/.gitignore b/fedora/.gitignore deleted file mode 100644 index 6019b98c22..0000000000 --- a/fedora/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.rpm -*.zip -*.tar.gz \ No newline at end of file diff --git a/fedora/Makefile b/fedora/Makefile deleted file mode 100644 index 3188cf6039..0000000000 --- a/fedora/Makefile +++ /dev/null @@ -1,52 +0,0 @@ -DIR := $(dir $(lastword $(MAKEFILE_LIST))) -INSTGIT := $(shell if [ "$$(id -u)" = "0" ]; then dnf -y install git; fi) -NAME := jellyfin-server -VERSION := $(shell sed -ne '/^Version:/s/.* *//p' $(DIR)/jellyfin.spec) -RELEASE := $(shell sed -ne '/^Release:/s/.* *\(.*\)%{.*}.*/\1/p' $(DIR)/jellyfin.spec) -SRPM := jellyfin-$(subst -,~,$(VERSION))-$(RELEASE)$(shell rpm --eval %dist).src.rpm -TARBALL :=$(NAME)-$(subst -,~,$(VERSION)).tar.gz - -epel-7-x86_64_repos := https://packages.microsoft.com/rhel/7/prod/ - -fed_ver := $(shell rpm -E %fedora) -# fallback when not running on Fedora -fed_ver ?= 36 -TARGET ?= fedora-$(fed_ver)-x86_64 - -outdir ?= $(PWD)/$(DIR)/ - -srpm: $(DIR)/$(SRPM) -tarball: $(DIR)/$(TARBALL) - -$(DIR)/$(TARBALL): - cd $(DIR)/; \ - SOURCE_DIR=.. \ - WORKDIR="$${PWD}"; \ - version=$(VERSION); \ - tar \ - --transform "s,^\.,$(NAME)-$(subst -,~,$(VERSION))," \ - --exclude='.git*' \ - --exclude='**/.git' \ - --exclude='**/.hg' \ - --exclude='**/.vs' \ - --exclude='**/.vscode' \ - --exclude=deployment \ - --exclude='**/bin' \ - --exclude='**/obj' \ - --exclude='**/.nuget' \ - --exclude='*.deb' \ - --exclude='*.rpm' \ - --exclude=$(notdir $@) \ - -czf $(notdir $@) \ - -C $${SOURCE_DIR} ./ - -$(DIR)/$(SRPM): $(DIR)/$(TARBALL) $(DIR)/jellyfin.spec - cd $(DIR)/; \ - rpmbuild -bs jellyfin.spec \ - --define "_sourcedir $$PWD/" \ - --define "_srcrpmdir $(outdir)" - -rpms: $(DIR)/$(SRPM) - mock $(addprefix --addrepo=, $($(TARGET)_repos)) \ - --enable-network \ - -r $(TARGET) $< diff --git a/fedora/README.md b/fedora/README.md deleted file mode 100644 index 6ea87740f2..0000000000 --- a/fedora/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# Jellyfin RPM - -## Build Fedora Package with docker - -Change into this directory `cd rpm-package` -Run the build script `./build-fedora-rpm.sh`. -Resulting RPM and src.rpm will be in `../../jellyfin-*.rpm` - -## ffmpeg - -The RPM package for Fedora/CentOS requires some additional repositories as ffmpeg is not in the main repositories. - -```shell -# ffmpeg from RPMfusion free -# Fedora -$ sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm -# CentOS 8 -$ sudo dnf localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm -# CentOS 9 -$ sudo dnf localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-9.noarch.rpm -``` - -## Building with dotnet - -Jellyfin is build with `--self-contained` so no dotnet required for runtime. - -```shell -# dotnet required for building the RPM -# Fedora -$ sudo dnf copr enable @dotnet-sig/dotnet -# CentOS 8 -$ sudo rpm -Uvh https://packages.microsoft.com/config/rhel/8/packages-microsoft-prod.rpm -# CentOS 9 -$ sudo rpm -Uvh https://packages.microsoft.com/config/rhel/9/packages-microsoft-prod.rpm -``` - -## TODO - -- [ ] OpenSUSE diff --git a/fedora/jellyfin-firewalld.xml b/fedora/jellyfin-firewalld.xml deleted file mode 100644 index 538c5d65f8..0000000000 --- a/fedora/jellyfin-firewalld.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - Jellyfin - The Free Software Media System. - - - - - diff --git a/fedora/jellyfin-selinux-launcher.sh b/fedora/jellyfin-selinux-launcher.sh deleted file mode 100644 index e07a351d9a..0000000000 --- a/fedora/jellyfin-selinux-launcher.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -exec /usr/lib64/jellyfin/jellyfin "${@}" diff --git a/fedora/jellyfin-server-lowports.conf b/fedora/jellyfin-server-lowports.conf deleted file mode 100644 index eeb48a4e4b..0000000000 --- a/fedora/jellyfin-server-lowports.conf +++ /dev/null @@ -1,4 +0,0 @@ -# This allows Jellyfin to bind to low ports such as 80 and/or 443 - -[Service] -AmbientCapabilities=CAP_NET_BIND_SERVICE \ No newline at end of file diff --git a/fedora/jellyfin.env b/fedora/jellyfin.env deleted file mode 100644 index cee8f68544..0000000000 --- a/fedora/jellyfin.env +++ /dev/null @@ -1,44 +0,0 @@ -# Jellyfin default configuration options - -# Use this file to override the default configurations; add additional -# options with JELLYFIN_ADD_OPTS. - -# To override the user or this config file's location, use -# /etc/systemd/system/jellyfin.service.d/override.conf - -# -# This is a POSIX shell fragment -# - -# -# General options -# - -# Program directories -JELLYFIN_DATA_DIR="/var/lib/jellyfin" -JELLYFIN_CONFIG_DIR="/etc/jellyfin" -JELLYFIN_LOG_DIR="/var/log/jellyfin" -JELLYFIN_CACHE_DIR="/var/cache/jellyfin" - -# web client path, installed by the jellyfin-web package -# JELLYFIN_WEB_OPT="--webdir=/usr/share/jellyfin-web" - -# In-App service control -JELLYFIN_RESTART_OPT="--restartpath=/usr/libexec/jellyfin/restart.sh" - -# Disable glibc dynamic heap adjustment -MALLOC_TRIM_THRESHOLD_=131072 - -# [OPTIONAL] ffmpeg binary paths, overriding the UI-configured values -#JELLYFIN_FFMPEG_OPT="--ffmpeg=/usr/bin/ffmpeg" - -# [OPTIONAL] run Jellyfin as a headless service -#JELLYFIN_SERVICE_OPT="--service" - -# [OPTIONAL] run Jellyfin without the web app -#JELLYFIN_NOWEBAPP_OPT="--nowebclient" - -# [OPTIONAL] run Jellyfin with ASP.NET Server Garbage Collection (uses more RAM and less CPU than Workstation GC) -# 0 = Workstation -# 1 = Server -#COMPlus_gcServer=1 diff --git a/fedora/jellyfin.override.conf b/fedora/jellyfin.override.conf deleted file mode 100644 index 48b4de1e9a..0000000000 --- a/fedora/jellyfin.override.conf +++ /dev/null @@ -1,53 +0,0 @@ -# Jellyfin systemd configuration options - -# Use this file to override the user or environment file location. - -[Service] -#User = jellyfin -#EnvironmentFile = /etc/sysconfig/jellyfin - -# Service hardening options -# These were added in PR #6953 to solve issue #6952, but some combination of -# them causes "restart.sh" functionality to break with the following error: -# sudo: effective uid is not 0, is /usr/bin/sudo on a file system with the -# 'nosuid' option set or an NFS file system without root privileges? -# See issue #7503 for details on the troubleshooting that went into this. -# Since these were added for NixOS specifically and are above and beyond -# what 99% of systemd units do, they have been moved here as optional -# additional flags to set for maximum system security and can be enabled at -# the administrator's or package maintainer's discretion. -# Uncomment these only if you know what you're doing, and doing so may cause -# bugs with in-server Restart and potentially other functionality as well. -#NoNewPrivileges=true -#SystemCallArchitectures=native -#RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK -#RestrictNamespaces=false -#RestrictRealtime=true -#RestrictSUIDSGID=true -#ProtectClock=true -#ProtectControlGroups=false -#ProtectHostname=true -#ProtectKernelLogs=false -#ProtectKernelModules=false -#ProtectKernelTunables=false -#LockPersonality=true -#PrivateTmp=false -#PrivateDevices=false -#PrivateUsers=true -#RemoveIPC=true -#SystemCallFilter=~@clock -#SystemCallFilter=~@aio -#SystemCallFilter=~@chown -#SystemCallFilter=~@cpu-emulation -#SystemCallFilter=~@debug -#SystemCallFilter=~@keyring -#SystemCallFilter=~@memlock -#SystemCallFilter=~@module -#SystemCallFilter=~@mount -#SystemCallFilter=~@obsolete -#SystemCallFilter=~@privileged -#SystemCallFilter=~@raw-io -#SystemCallFilter=~@reboot -#SystemCallFilter=~@setuid -#SystemCallFilter=~@swap -#SystemCallErrorNumber=EPERM diff --git a/fedora/jellyfin.service b/fedora/jellyfin.service deleted file mode 100644 index 01accdc0c9..0000000000 --- a/fedora/jellyfin.service +++ /dev/null @@ -1,17 +0,0 @@ -[Unit] -Description = Jellyfin Media Server -After = network-online.target - -[Service] -Type = simple -EnvironmentFile = /etc/sysconfig/jellyfin -User = jellyfin -Group = jellyfin -WorkingDirectory = /var/lib/jellyfin -ExecStart = /usr/bin/jellyfin $JELLYFIN_WEB_OPT $JELLYFIN_FFMPEG_OPT $JELLYFIN_SERVICE_OPT $JELLYFIN_NOWEBAPP_OPT $JELLYFIN_ADDITIONAL_OPTS -Restart = on-failure -TimeoutSec = 15 -SuccessExitStatus=0 143 - -[Install] -WantedBy = multi-user.target diff --git a/fedora/jellyfin.spec b/fedora/jellyfin.spec deleted file mode 100644 index 5327495ad3..0000000000 --- a/fedora/jellyfin.spec +++ /dev/null @@ -1,197 +0,0 @@ -%global debug_package %{nil} - -Name: jellyfin -Version: 10.9.0 -Release: 1%{?dist} -Summary: The Free Software Media System -License: GPLv2 -URL: https://jellyfin.org -# Jellyfin Server tarball created by `make -f .copr/Makefile srpm`, real URL ends with `v%%{version}.tar.gz` -Source0: jellyfin-server-%{version}.tar.gz -Source10: jellyfin-selinux-launcher.sh -Source11: jellyfin.service -Source12: jellyfin.env -Source13: jellyfin.override.conf -Source14: jellyfin-firewalld.xml -Source15: jellyfin-server-lowports.conf - -%{?systemd_requires} -BuildRequires: systemd -BuildRequires: libcurl-devel, fontconfig-devel, freetype-devel, openssl-devel, glibc-devel, libicu-devel -# Requirements not packaged in RHEL 7 main repos, added via Makefile -# https://packages.microsoft.com/rhel/7/prod/ -BuildRequires: dotnet-runtime-8.0, dotnet-sdk-8.0 -Requires: %{name}-server = %{version}-%{release}, %{name}-web = %{version}-%{release} - -%description -Jellyfin is a free software media system that puts you in control of managing and streaming your media. - -%package server -# RPMfusion free -Summary: The Free Software Media System Server backend -Requires(pre): shadow-utils -Requires: ffmpeg -Requires: libcurl, fontconfig, freetype, openssl, glibc, libicu - -%description server -The Jellyfin media server backend. - -%package server-lowports -# RPMfusion free -Summary: The Free Software Media System Server backend. Low-port binding. -Requires: jellyfin-server - -%description server-lowports -The Jellyfin media server backend low port binding package. This package -enables binding to ports < 1024. You would install this if you want -the Jellyfin server to bind to ports 80 and/or 443 for example. - -%prep -%autosetup -n jellyfin-server-%{version} -b 0 - - -%build -export DOTNET_CLI_TELEMETRY_OPTOUT=1 -export PATH=$PATH:/usr/local/bin -# cannot use --output due to https://github.com/dotnet/sdk/issues/22220 -dotnet publish --configuration Release --self-contained --runtime linux-x64 \ - -p:DebugSymbols=false -p:DebugType=none Jellyfin.Server - - -%install -# Jellyfin files -%{__mkdir} -p %{buildroot}%{_libdir}/jellyfin %{buildroot}%{_bindir} -%{__cp} -r Jellyfin.Server/bin/Release/net8.0/linux-x64/publish/* %{buildroot}%{_libdir}/jellyfin -%{__install} -D %{SOURCE10} %{buildroot}%{_bindir}/jellyfin -sed -i -e 's|/usr/lib64|%{_libdir}|g' %{buildroot}%{_bindir}/jellyfin - -# Jellyfin config -%{__install} -D Jellyfin.Server/Resources/Configuration/logging.json %{buildroot}%{_sysconfdir}/jellyfin/logging.json -%{__install} -D %{SOURCE12} %{buildroot}%{_sysconfdir}/sysconfig/jellyfin - -# system config -%{__install} -D %{SOURCE14} %{buildroot}%{_prefix}/lib/firewalld/services/jellyfin.xml -%{__install} -D %{SOURCE13} %{buildroot}%{_sysconfdir}/systemd/system/jellyfin.service.d/override.conf -%{__install} -D %{SOURCE11} %{buildroot}%{_unitdir}/jellyfin.service - -# empty directories -%{__mkdir} -p %{buildroot}%{_sharedstatedir}/jellyfin -%{__mkdir} -p %{buildroot}%{_sysconfdir}/jellyfin -%{__mkdir} -p %{buildroot}%{_var}/cache/jellyfin -%{__mkdir} -p %{buildroot}%{_var}/log/jellyfin - -# jellyfin-server-lowports subpackage -%{__install} -D -m 0644 %{SOURCE15} %{buildroot}%{_unitdir}/jellyfin.service.d/jellyfin-server-lowports.conf - - -%files -# empty as this is just a meta-package - -%files server -%defattr(644,root,root,755) - -# Jellyfin files -%{_bindir}/jellyfin -# Needs 755 else only root can run it since binary build by dotnet is 722 -%attr(755,root,root) %{_libdir}/jellyfin/createdump -%attr(755,root,root) %{_libdir}/jellyfin/jellyfin -%{_libdir}/jellyfin/* -%attr(755,root,root) %{_bindir}/jellyfin - -# Jellyfin config -%config(noreplace) %attr(644,jellyfin,jellyfin) %{_sysconfdir}/jellyfin/logging.json -%config %{_sysconfdir}/sysconfig/jellyfin - -# system config -%{_prefix}/lib/firewalld/services/jellyfin.xml -%{_unitdir}/jellyfin.service -%config(noreplace) %{_sysconfdir}/systemd/system/jellyfin.service.d/override.conf - -# empty directories -%attr(750,jellyfin,jellyfin) %dir %{_sharedstatedir}/jellyfin -%attr(755,jellyfin,jellyfin) %dir %{_sysconfdir}/jellyfin -%attr(750,jellyfin,jellyfin) %dir %{_var}/cache/jellyfin -%attr(-, jellyfin,jellyfin) %dir %{_var}/log/jellyfin - -%license LICENSE - - -%files server-lowports -%{_unitdir}/jellyfin.service.d/jellyfin-server-lowports.conf - -%pre server -getent group jellyfin >/dev/null || groupadd -r jellyfin -getent passwd jellyfin >/dev/null || \ - useradd -r -g jellyfin -d %{_sharedstatedir}/jellyfin -s /sbin/nologin \ - -c "Jellyfin default user" jellyfin -# Add jellyfin to the render and video groups for hwa. -[ ! -z "$(getent group render)" ] && usermod -aG render jellyfin >/dev/null 2>&1 -[ ! -z "$(getent group video)" ] && usermod -aG video jellyfin >/dev/null 2>&1 -exit 0 - -%post server -# Move existing configuration cache and logs to their new locations and symlink them. -if [ $1 -gt 1 ] ; then - service_state=$(systemctl is-active jellyfin.service) - if [ "${service_state}" = "active" ]; then - systemctl stop jellyfin.service - fi - if [ ! -L %{_sharedstatedir}/jellyfin/config ]; then - mv %{_sharedstatedir}/jellyfin/config/* %{_sysconfdir}/jellyfin/ - rmdir %{_sharedstatedir}/jellyfin/config - ln -sf %{_sysconfdir}/jellyfin %{_sharedstatedir}/jellyfin/config - fi - if [ ! -L %{_sharedstatedir}/jellyfin/logs ]; then - mv %{_sharedstatedir}/jellyfin/logs/* %{_var}/log/jellyfin - rmdir %{_sharedstatedir}/jellyfin/logs - ln -sf %{_var}/log/jellyfin %{_sharedstatedir}/jellyfin/logs - fi - if [ ! -L %{_sharedstatedir}/jellyfin/cache ]; then - mv %{_sharedstatedir}/jellyfin/cache/* %{_var}/cache/jellyfin - rmdir %{_sharedstatedir}/jellyfin/cache - ln -sf %{_var}/cache/jellyfin %{_sharedstatedir}/jellyfin/cache - fi - if [ "${service_state}" = "active" ]; then - systemctl start jellyfin.service - fi -fi -%systemd_post jellyfin.service - -%preun server -%systemd_preun jellyfin.service - -%postun server -%systemd_postun_with_restart jellyfin.service - -%changelog -* Wed Jul 13 2022 Jellyfin Packaging Team -- 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 -- 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 -- Forthcoming stable release -* Mon Jul 27 2020 Jellyfin Packaging Team -- Forthcoming stable release -* Mon Mar 23 2020 Jellyfin Packaging Team -- Forthcoming stable release -* Fri Oct 11 2019 Jellyfin Packaging Team -- 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 -- 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 -- 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 -- 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 -- 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 -- 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 -- 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 -- 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 -- 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 -- New upstream version 10.3.0; release changelog at https://github.com/jellyfin/jellyfin/releases/tag/v10.3.0