From 9a5869ea82c56757b4d12226005cf86ede780436 Mon Sep 17 00:00:00 2001 From: JinYi-Tsinghua <109143373+JinYi-Tsinghua@users.noreply.github.com> Date: Tue, 12 Jul 2022 18:18:25 +0800 Subject: [PATCH 1/3] Add static build file for musl-linux-arm64 --- deployment/build.linux.musl-linux-arm64 | 31 +++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 deployment/build.linux.musl-linux-arm64 diff --git a/deployment/build.linux.musl-linux-arm64 b/deployment/build.linux.musl-linux-arm64 new file mode 100644 index 0000000000..e1ccbc266e --- /dev/null +++ b/deployment/build.linux.musl-linux-arm64 @@ -0,0 +1,31 @@ +#!/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;DebugType=none;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 From a94aec9b326935bc9583f74f3f3c15df0139cf24 Mon Sep 17 00:00:00 2001 From: JinYi-Tsinghua <109143373+JinYi-Tsinghua@users.noreply.github.com> Date: Tue, 12 Jul 2022 18:20:29 +0800 Subject: [PATCH 2/3] Create Dockerfile.linux.musl-linux-arm64 --- deployment/Dockerfile.linux.musl-linux-arm64 | 26 ++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 deployment/Dockerfile.linux.musl-linux-arm64 diff --git a/deployment/Dockerfile.linux.musl-linux-arm64 b/deployment/Dockerfile.linux.musl-linux-arm64 new file mode 100644 index 0000000000..2da72e4ae0 --- /dev/null +++ b/deployment/Dockerfile.linux.musl-linux-arm64 @@ -0,0 +1,26 @@ +FROM mcr.microsoft.com/dotnet/sdk:6.0-bullseye-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 -yqq --no-install-recommends \ + apt-transport-https debhelper gnupg devscripts unzip \ + mmv libcurl4-openssl-dev libfontconfig1-dev \ + libfreetype6-dev libssl-dev libssl1.1 liblttng-ust0 + +# 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"] From 2b285b787408417b4ae1f8e3f364b2e5e0a66207 Mon Sep 17 00:00:00 2001 From: JinYi-Tsinghua <109143373+JinYi-Tsinghua@users.noreply.github.com> Date: Mon, 29 Aug 2022 02:28:15 +0000 Subject: [PATCH 3/3] Add musl-linux-arm64 support in azure-pipelines-package.yml This is a supplement to pull request 8112 --- .ci/azure-pipelines-package.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.ci/azure-pipelines-package.yml b/.ci/azure-pipelines-package.yml index 19d65ea0c1..926d1d3224 100644 --- a/.ci/azure-pipelines-package.yml +++ b/.ci/azure-pipelines-package.yml @@ -26,6 +26,8 @@ jobs: BuildConfiguration: linux.amd64-musl Linux.arm64: BuildConfiguration: linux.arm64 + Linux.musl-linux-arm64: + BuildConfiguration: linux.musl-linux-arm64 Linux.armhf: BuildConfiguration: linux.armhf Windows.amd64: