From 4b07d0d41709fb2aa88a41fa691428dca16bc2f4 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Wed, 7 Dec 2022 14:19:21 +0000 Subject: [PATCH] Rebase master to Jammy, migrate to s6v3 --- .github/workflows/call_invalid_helper.yml | 12 ++++++++++++ Dockerfile | 12 +++++------- Dockerfile.aarch64 | 14 +++++--------- Dockerfile.armhf | 14 +++++--------- README.md | 1 + readme-vars.yml | 1 + .../dependencies.d/init-jellyfin-video | 0 .../dependencies.d/init-config | 0 .../s6-rc.d/init-jellyfin-config/run} | 2 +- .../s6-rc.d/init-jellyfin-config/type | 1 + .../s6-overlay/s6-rc.d/init-jellyfin-config/up | 1 + .../dependencies.d/init-jellyfin-config | 0 .../s6-rc.d/init-jellyfin-video/run} | 0 .../s6-overlay/s6-rc.d/init-jellyfin-video/type | 1 + .../s6-overlay/s6-rc.d/init-jellyfin-video/up | 1 + .../svc-jellyfin/dependencies.d/init-services | 0 .../s6-rc.d/svc-jellyfin/notification-fd | 1 + root/etc/s6-overlay/s6-rc.d/svc-jellyfin/run | 13 +++++++++++++ root/etc/s6-overlay/s6-rc.d/svc-jellyfin/type | 1 + .../user/contents.d/init-jellyfin-config | 0 .../s6-rc.d/user/contents.d/init-jellyfin-video | 0 .../s6-rc.d/user/contents.d/svc-jellyfin | 0 root/etc/services.d/jellyfin/run | 17 ----------------- 23 files changed, 49 insertions(+), 43 deletions(-) create mode 100644 .github/workflows/call_invalid_helper.yml create mode 100644 root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-jellyfin-video create mode 100644 root/etc/s6-overlay/s6-rc.d/init-jellyfin-config/dependencies.d/init-config rename root/etc/{cont-init.d/30-config => s6-overlay/s6-rc.d/init-jellyfin-config/run} (92%) mode change 100644 => 100755 create mode 100644 root/etc/s6-overlay/s6-rc.d/init-jellyfin-config/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-jellyfin-config/up create mode 100644 root/etc/s6-overlay/s6-rc.d/init-jellyfin-video/dependencies.d/init-jellyfin-config rename root/etc/{cont-init.d/40-gid-video => s6-overlay/s6-rc.d/init-jellyfin-video/run} (100%) mode change 100644 => 100755 create mode 100644 root/etc/s6-overlay/s6-rc.d/init-jellyfin-video/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-jellyfin-video/up create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-jellyfin/dependencies.d/init-services create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-jellyfin/notification-fd create mode 100755 root/etc/s6-overlay/s6-rc.d/svc-jellyfin/run create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-jellyfin/type create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-jellyfin-config create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-jellyfin-video create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-jellyfin delete mode 100644 root/etc/services.d/jellyfin/run diff --git a/.github/workflows/call_invalid_helper.yml b/.github/workflows/call_invalid_helper.yml new file mode 100644 index 0000000..773767c --- /dev/null +++ b/.github/workflows/call_invalid_helper.yml @@ -0,0 +1,12 @@ +name: Comment on invalid interaction +on: + issues: + types: + - labeled +jobs: + add-comment-on-invalid: + if: github.event.label.name == 'invalid' + permissions: + issues: write + uses: linuxserver/github-workflows/.github/workflows/invalid-interaction-helper.yml@v1 + secrets: inherit diff --git a/Dockerfile b/Dockerfile index 5bbce31..87a15c3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,6 @@ -FROM ghcr.io/linuxserver/baseimage-ubuntu:focal +# syntax=docker/dockerfile:1 + +FROM ghcr.io/linuxserver/baseimage-ubuntu:jammy # set version label ARG BUILD_DATE @@ -12,13 +14,9 @@ ARG DEBIAN_FRONTEND="noninteractive" ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" RUN \ - echo "**** install packages ****" && \ - apt-get update && \ - apt-get install -y --no-install-recommends \ - gnupg && \ echo "**** install jellyfin *****" && \ curl -s https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | apt-key add - && \ - echo 'deb [arch=amd64] https://repo.jellyfin.org/ubuntu focal main' > /etc/apt/sources.list.d/jellyfin.list && \ + echo 'deb [arch=amd64] https://repo.jellyfin.org/ubuntu jammy main' > /etc/apt/sources.list.d/jellyfin.list && \ if [ -z ${JELLYFIN_RELEASE+x} ]; then \ JELLYFIN="jellyfin-server"; \ else \ @@ -32,7 +30,7 @@ RUN \ jellyfin-web \ libfontconfig1 \ libfreetype6 \ - libssl1.1 \ + libssl3 \ mesa-va-drivers && \ echo "**** cleanup ****" && \ rm -rf \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 7af80e6..3cd1804 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,4 +1,6 @@ -FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-focal +# syntax=docker/dockerfile:1 + +FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-jammy # set version label ARG BUILD_DATE @@ -12,15 +14,9 @@ ARG DEBIAN_FRONTEND="noninteractive" ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" RUN \ - echo "**** install packages ****" && \ - apt-get update && \ - apt-get install -y --no-install-recommends \ - gnupg && \ echo "**** install jellyfin *****" && \ curl -s https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | apt-key add - && \ - curl -s https://keyserver.ubuntu.com/pks/lookup?op=get\&search=0x6587ffd6536b8826e88a62547876ae518cbcf2f2 | apt-key add - && \ - echo 'deb [arch=arm64] https://repo.jellyfin.org/ubuntu focal main' > /etc/apt/sources.list.d/jellyfin.list && \ - echo "deb http://ppa.launchpad.net/ubuntu-raspi2/ppa-nightly/ubuntu focal main">> /etc/apt/sources.list.d/raspbins.list && \ + echo 'deb [arch=arm64] https://repo.jellyfin.org/ubuntu jammy main' > /etc/apt/sources.list.d/jellyfin.list && \ if [ -z ${JELLYFIN_RELEASE+x} ]; then \ JELLYFIN="jellyfin-server"; \ else \ @@ -37,7 +33,7 @@ RUN \ libomxil-bellagio0 \ libomxil-bellagio-bin \ libraspberrypi0 \ - libssl1.1 && \ + libssl3 && \ echo "**** cleanup ****" && \ rm -rf \ /tmp/* \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index ce6901e..93e9273 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -1,4 +1,6 @@ -FROM ghcr.io/linuxserver/baseimage-ubuntu:arm32v7-focal +# syntax=docker/dockerfile:1 + +FROM ghcr.io/linuxserver/baseimage-ubuntu:arm32v7-jammy # set version label ARG BUILD_DATE @@ -12,15 +14,9 @@ ARG DEBIAN_FRONTEND="noninteractive" ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" RUN \ - echo "**** install packages ****" && \ - apt-get update && \ - apt-get install -y --no-install-recommends \ - gnupg && \ echo "**** install jellyfin *****" && \ curl -s https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | apt-key add - && \ - curl -s https://keyserver.ubuntu.com/pks/lookup?op=get\&search=0x6587ffd6536b8826e88a62547876ae518cbcf2f2 | apt-key add - && \ - echo 'deb [arch=armhf] https://repo.jellyfin.org/ubuntu focal main' > /etc/apt/sources.list.d/jellyfin.list && \ - echo "deb http://ppa.launchpad.net/ubuntu-raspi2/ppa-nightly/ubuntu focal main">> /etc/apt/sources.list.d/raspbins.list && \ + echo 'deb [arch=armhf] https://repo.jellyfin.org/ubuntu jammy main' > /etc/apt/sources.list.d/jellyfin.list && \ if [ -z ${JELLYFIN_RELEASE+x} ]; then \ JELLYFIN="jellyfin-server"; \ else \ @@ -37,7 +33,7 @@ RUN \ libomxil-bellagio0 \ libomxil-bellagio-bin \ libraspberrypi0 \ - libssl1.1 && \ + libssl3 && \ echo "**** cleanup ****" && \ rm -rf \ /tmp/* \ diff --git a/README.md b/README.md index f295469..93d7080 100644 --- a/README.md +++ b/README.md @@ -303,6 +303,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **07.12.22:** - Rebase master to Jammy, migrate to s6v3. * **11.06.22:** - Switch to upstream repo's ffmpeg5 build. * **05.01.22:** - Specify Intel iHD driver versions to avoid mismatched libva errors. * **25.12.21:** - Fix video device group perms error message. diff --git a/readme-vars.yml b/readme-vars.yml index 4b82972..84a2305 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -116,6 +116,7 @@ unraid_template_sync: false # changelog changelogs: + - { date: "07.12.22:", desc: "Rebase master to Jammy, migrate to s6v3." } - { date: "11.06.22:", desc: "Switch to upstream repo's ffmpeg5 build." } - { date: "05.01.22:", desc: "Specify Intel iHD driver versions to avoid mismatched libva errors." } - { date: "25.12.21:", desc: "Fix video device group perms error message." } diff --git a/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-jellyfin-video b/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-jellyfin-video new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/init-jellyfin-config/dependencies.d/init-config b/root/etc/s6-overlay/s6-rc.d/init-jellyfin-config/dependencies.d/init-config new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/cont-init.d/30-config b/root/etc/s6-overlay/s6-rc.d/init-jellyfin-config/run old mode 100644 new mode 100755 similarity index 92% rename from root/etc/cont-init.d/30-config rename to root/etc/s6-overlay/s6-rc.d/init-jellyfin-config/run index 25404be..b35c3f8 --- a/root/etc/cont-init.d/30-config +++ b/root/etc/s6-overlay/s6-rc.d/init-jellyfin-config/run @@ -7,7 +7,7 @@ mkdir -p \ /transcode # permissions -chown abc:abc \ +lsiown abc:abc \ /config \ /config/* \ /config/data/transcodes \ diff --git a/root/etc/s6-overlay/s6-rc.d/init-jellyfin-config/type b/root/etc/s6-overlay/s6-rc.d/init-jellyfin-config/type new file mode 100644 index 0000000..bdd22a1 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-jellyfin-config/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-jellyfin-config/up b/root/etc/s6-overlay/s6-rc.d/init-jellyfin-config/up new file mode 100644 index 0000000..4469ebd --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-jellyfin-config/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-jellyfin-config/run diff --git a/root/etc/s6-overlay/s6-rc.d/init-jellyfin-video/dependencies.d/init-jellyfin-config b/root/etc/s6-overlay/s6-rc.d/init-jellyfin-video/dependencies.d/init-jellyfin-config new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/cont-init.d/40-gid-video b/root/etc/s6-overlay/s6-rc.d/init-jellyfin-video/run old mode 100644 new mode 100755 similarity index 100% rename from root/etc/cont-init.d/40-gid-video rename to root/etc/s6-overlay/s6-rc.d/init-jellyfin-video/run diff --git a/root/etc/s6-overlay/s6-rc.d/init-jellyfin-video/type b/root/etc/s6-overlay/s6-rc.d/init-jellyfin-video/type new file mode 100644 index 0000000..bdd22a1 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-jellyfin-video/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-jellyfin-video/up b/root/etc/s6-overlay/s6-rc.d/init-jellyfin-video/up new file mode 100644 index 0000000..9c16049 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-jellyfin-video/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-jellyfin-video/run diff --git a/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/dependencies.d/init-services b/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/dependencies.d/init-services new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/notification-fd b/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/notification-fd new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/notification-fd @@ -0,0 +1 @@ +3 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/run b/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/run new file mode 100755 index 0000000..6196b0f --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/run @@ -0,0 +1,13 @@ +#!/usr/bin/with-contenv bash + +export \ + JELLYFIN_DATA_DIR="/config/data" \ + JELLYFIN_CONFIG_DIR="/config" \ + JELLYFIN_LOG_DIR="/config/log" \ + JELLYFIN_CACHE_DIR="/config/cache" \ + JELLYFIN_WEB_DIR="/usr/share/jellyfin/web" + +exec \ + s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 8096" \ + s6-setuidgid abc /usr/bin/jellyfin \ + --ffmpeg=/usr/lib/jellyfin-ffmpeg/ffmpeg diff --git a/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/type b/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/type @@ -0,0 +1 @@ +longrun diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-jellyfin-config b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-jellyfin-config new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-jellyfin-video b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-jellyfin-video new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-jellyfin b/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-jellyfin new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/services.d/jellyfin/run b/root/etc/services.d/jellyfin/run deleted file mode 100644 index 792ef0c..0000000 --- a/root/etc/services.d/jellyfin/run +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/with-contenv bash - -export \ - JELLYFIN_DATA_DIR="/config/data" \ - JELLYFIN_CONFIG_DIR="/config" \ - JELLYFIN_LOG_DIR="/config/log" \ - JELLYFIN_CACHE_DIR="/config/cache" - -if [ -n "${UMASK_SET}" ] && [ -z "${UMASK}" ]; then - echo -e "You are using a legacy method of defining umask\nplease update your environment variable from UMASK_SET to UMASK\nto keep the functionality after July 2021" - umask ${UMASK_SET} -fi - -exec \ - s6-setuidgid abc /usr/bin/jellyfin \ - --ffmpeg=/usr/lib/jellyfin-ffmpeg/ffmpeg \ - --webdir=/usr/share/jellyfin/web