From 3cced1d3349fdf05d90a686dcba615b720f5099f Mon Sep 17 00:00:00 2001 From: jaannnis Date: Sun, 24 Sep 2023 15:15:54 +0200 Subject: [PATCH 01/95] Update Dockerfile install wireguard copy wireguard config added wireguarg config Update Dockerfile Update Dockerfile a cleanup --- .gitignore | 2 ++ Dockerfile | 9 +++++++-- .../init-wireguard/dependencies.d/init-services | 0 root/etc/s6-overlay/s6-rc.d/init-wireguard/run | 10 ++++++++++ root/etc/s6-overlay/s6-rc.d/init-wireguard/type | 1 + root/etc/s6-overlay/s6-rc.d/init-wireguard/up | 0 root/etc/s6-overlay/s6-rc.d/svc-plex/run | 2 ++ .../s6-overlay/s6-rc.d/user/contents.d/init-wireguard | 0 8 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 root/etc/s6-overlay/s6-rc.d/init-wireguard/dependencies.d/init-services create mode 100755 root/etc/s6-overlay/s6-rc.d/init-wireguard/run create mode 100644 root/etc/s6-overlay/s6-rc.d/init-wireguard/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-wireguard/up create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-wireguard diff --git a/.gitignore b/.gitignore index 6e8ad97..b733b8b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +# Wireguard configs, you never know +wg*.conf # Windows image file caches Thumbs.db ehthumbs.db diff --git a/Dockerfile b/Dockerfile index 36ef5db..409d635 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,12 +26,14 @@ ENV DEBIAN_FRONTEND="noninteractive" \ PLEX_MEDIA_SERVER_INFO_DEVICE="Docker Container (LinuxServer.io)" RUN \ - echo "**** install runtime packages ****" && \ + echo "**** install runtime packages & wireguard ****" && \ apt-get update && \ apt-get install -y \ jq \ udev \ - wget && \ + wget \ + iproute2 \ + wireguard-tools &&\ echo "**** install plex ****" && \ if [ -z ${PLEX_RELEASE+x} ]; then \ PLEX_RELEASE=$(curl -sX GET 'https://plex.tv/api/downloads/5.json' \ @@ -54,6 +56,9 @@ RUN \ # add local files COPY root/ / +# add wireguard config +COPY ./wg0.conf /etc/wireguard/wg0.conf + # add unrar COPY --from=unrar /usr/bin/unrar-ubuntu /usr/bin/unrar diff --git a/root/etc/s6-overlay/s6-rc.d/init-wireguard/dependencies.d/init-services b/root/etc/s6-overlay/s6-rc.d/init-wireguard/dependencies.d/init-services new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/init-wireguard/run b/root/etc/s6-overlay/s6-rc.d/init-wireguard/run new file mode 100755 index 0000000..e5989a5 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-wireguard/run @@ -0,0 +1,10 @@ +#!/usr/bin/with-contenv bash +# Bring up WireGuard if not already up +if ! ip link show dev wg0 > /dev/null 2>&1; then + wg-quick up wg0 +else +sleep 60 +fi + +# Exit after running +exit 0 diff --git a/root/etc/s6-overlay/s6-rc.d/init-wireguard/type b/root/etc/s6-overlay/s6-rc.d/init-wireguard/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-wireguard/type @@ -0,0 +1 @@ +longrun diff --git a/root/etc/s6-overlay/s6-rc.d/init-wireguard/up b/root/etc/s6-overlay/s6-rc.d/init-wireguard/up new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-plex/run b/root/etc/s6-overlay/s6-rc.d/svc-plex/run index 8486676..6a5aefa 100755 --- a/root/etc/s6-overlay/s6-rc.d/svc-plex/run +++ b/root/etc/s6-overlay/s6-rc.d/svc-plex/run @@ -1,5 +1,7 @@ #!/usr/bin/with-contenv bash +# Wait for WireGuard to be up + echo "Starting Plex Media Server. . . (you can ignore the libusb_init error)" export PLEX_MEDIA_SERVER_INFO_MODEL=$(uname -m) export PLEX_MEDIA_SERVER_INFO_PLATFORM_VERSION=$(uname -r) diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-wireguard b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-wireguard new file mode 100644 index 0000000..e69de29 From fa08911915af91282592fff1f8049316d496f677 Mon Sep 17 00:00:00 2001 From: jaannnis Date: Sat, 30 Sep 2023 11:16:44 +0200 Subject: [PATCH 02/95] Update README.md --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index e5d3a36..ae07615 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,19 @@ +<<<<<<< HEAD +======= +due to the recent purge of Hosters by plex, this fork adds wireguard functionallity to the plex container as a quick workaround. all traffic gets tunneled. + +wireguard onfig file has to be mounted in /etc/wireguard/wg0.conf. e.g.: +``` + volumes: + - ./wg0.conf:/etc/wireguard/wg0.conf +``` + + + + +>>>>>>> 72bdfaa (Update README.md) [![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io) [![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!") From 603a79335fd9c6a747b17669a1a5e13275befd30 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 30 Sep 2023 09:24:28 +0000 Subject: [PATCH 03/95] removed wg0 at build --- Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 409d635..7488ceb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -56,8 +56,6 @@ RUN \ # add local files COPY root/ / -# add wireguard config -COPY ./wg0.conf /etc/wireguard/wg0.conf # add unrar COPY --from=unrar /usr/bin/unrar-ubuntu /usr/bin/unrar From a420bdda82750455c26ae08d67286c755fe7f419 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Thu, 26 Sep 2024 08:36:31 +0000 Subject: [PATCH 04/95] Bot Updating Package Versions --- package_versions.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index fcbff8e..b47c3ad 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -90,7 +90,7 @@ libpam-modules-bin 1.5.3-5ubuntu5.1 deb libpam-runtime 1.5.3-5ubuntu5.1 deb libpam0g 1.5.3-5ubuntu5.1 deb libpcre2-8-0 10.42-4ubuntu2 deb -libproc2-0 2:4.0.4-4ubuntu3 deb +libproc2-0 2:4.0.4-4ubuntu3.1 deb libpsl5t64 0.21.2-1.1build1 deb libreadline8t64 8.2-4build1 deb librtmp1 2.4+20151223.gitfa8646d.1-2build7 deb @@ -128,8 +128,8 @@ openssl 3.0.13-0ubuntu3.4 deb passwd 1:4.13+dfsg1-4ubuntu3 deb perl-base 5.38.2-3.2build2 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.41.0.8992-8463ad060 deb -procps 2:4.0.4-4ubuntu3 deb +plexmediaserver 1.41.0.8994-f2c27da23 deb +procps 2:4.0.4-4ubuntu3.1 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb sed 4.9-2build1 deb From 7e207423f328db3637d18103a90f204971d6a955 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 30 Sep 2024 09:25:11 +0000 Subject: [PATCH 05/95] Bot Updating Templated Files --- Jenkinsfile | 60 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 49 insertions(+), 11 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2bcd4ae..daea175 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -83,7 +83,7 @@ pipeline { env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/' env.PULL_REQUEST = env.CHANGE_ID - env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml' + env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml' } sh '''#! /bin/bash echo "The default github branch detected as ${GH_DEFAULT_BRANCH}" ''' @@ -313,7 +313,7 @@ pipeline { echo "Jenkinsfile is up to date." fi echo "Starting Stage 2 - Delete old templates" - OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml" + OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml .github/workflows/package_trigger.yml" for i in ${OLD_TEMPLATES}; do if [[ -f "${i}" ]]; then TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}" @@ -721,6 +721,14 @@ pipeline { } sh '''#! /bin/bash set -e + if grep -q 'docker-baseimage' <<< "${LS_REPO}"; then + echo "Detected baseimage, setting LSIO_FIRST_PARTY=true" + if [ -n "${CI_DOCKERENV}" ]; then + CI_DOCKERENV="LSIO_FIRST_PARTY=true|${CI_DOCKERENV}" + else + CI_DOCKERENV="LSIO_FIRST_PARTY=true" + fi + fi docker pull ghcr.io/linuxserver/ci:latest if [ "${MULTIARCH}" == "true" ]; then docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64 @@ -733,6 +741,7 @@ pipeline { -e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \ -e TAGS=\"${CI_TAGS}\" \ -e META_TAG=\"${META_TAG}\" \ + -e RELEASE_TAG=\"latest\" \ -e PORT=\"${CI_PORT}\" \ -e SSL=\"${CI_SSL}\" \ -e BASE=\"${DIST_IMAGE}\" \ @@ -742,6 +751,7 @@ pipeline { -e WEB_SCREENSHOT=\"${CI_WEB}\" \ -e WEB_AUTH=\"${CI_AUTH}\" \ -e WEB_PATH=\"${CI_WEBPATH}\" \ + -e NODE_NAME=\"${NODE_NAME}\" \ -t ghcr.io/linuxserver/ci:latest \ python3 test_build.py''' } @@ -1009,17 +1019,45 @@ EOF git config --global --unset commit.gpgsign ''' script{ + env.JOB_DATE = sh( + script: '''date '+%Y-%m-%dT%H:%M:%S%:z' ''', + returnStdout: true).trim() if (env.EXIT_STATUS == "ABORTED"){ sh 'echo "build aborted"' - } - else if (currentBuild.currentResult == "SUCCESS"){ - sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 1681177,\ - "description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\ - "username": "Jenkins"}' ${BUILDS_DISCORD} ''' - } - else { - sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 16711680,\ - "description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\ + }else{ + if (currentBuild.currentResult == "SUCCESS"){ + if (env.GITHUBIMAGE =~ /lspipepr/){ + env.JOB_WEBHOOK_STATUS='Success' + env.JOB_WEBHOOK_COLOUR=3957028 + env.JOB_WEBHOOK_FOOTER='PR Build' + }else if (env.GITHUBIMAGE =~ /lsiodev/){ + env.JOB_WEBHOOK_STATUS='Success' + env.JOB_WEBHOOK_COLOUR=3957028 + env.JOB_WEBHOOK_FOOTER='Dev Build' + }else{ + env.JOB_WEBHOOK_STATUS='Success' + env.JOB_WEBHOOK_COLOUR=1681177 + env.JOB_WEBHOOK_FOOTER='Live Build' + } + }else{ + if (env.GITHUBIMAGE =~ /lspipepr/){ + env.JOB_WEBHOOK_STATUS='Failure' + env.JOB_WEBHOOK_COLOUR=12669523 + env.JOB_WEBHOOK_FOOTER='PR Build' + }else if (env.GITHUBIMAGE =~ /lsiodev/){ + env.JOB_WEBHOOK_STATUS='Failure' + env.JOB_WEBHOOK_COLOUR=12669523 + env.JOB_WEBHOOK_FOOTER='Dev Build' + }else{ + env.JOB_WEBHOOK_STATUS='Failure' + env.JOB_WEBHOOK_COLOUR=16711680 + env.JOB_WEBHOOK_FOOTER='Live Build' + } + } + sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"'color'": '${JOB_WEBHOOK_COLOUR}',\ + "footer": {"text" : "'"${JOB_WEBHOOK_FOOTER}"'"},\ + "timestamp": "'${JOB_DATE}'",\ + "description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** '${JOB_WEBHOOK_STATUS}'\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\ "username": "Jenkins"}' ${BUILDS_DISCORD} ''' } } From b3fae00aee8ee8bbb4cb4bc5b6c508229ae07435 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 30 Sep 2024 09:27:13 +0000 Subject: [PATCH 06/95] Bot Updating Templated Files --- .github/workflows/package_trigger.yml | 42 --------------------------- 1 file changed, 42 deletions(-) delete mode 100644 .github/workflows/package_trigger.yml diff --git a/.github/workflows/package_trigger.yml b/.github/workflows/package_trigger.yml deleted file mode 100644 index 77b3e2f..0000000 --- a/.github/workflows/package_trigger.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Package Trigger Main - -on: - workflow_dispatch: - -jobs: - package-trigger-master: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4.1.1 - - - name: Package Trigger - if: github.ref == 'refs/heads/master' - run: | - printf "# Package trigger for docker-plex\n\n" >> $GITHUB_STEP_SUMMARY - if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_PLEX_MASTER }}" ]; then - echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY - echo "> Github secret \`PAUSE_PACKAGE_TRIGGER_PLEX_MASTER\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY - exit 0 - fi - if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-plex/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then - echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY - echo "> There already seems to be an active build on Jenkins; skipping package trigger" >> $GITHUB_STEP_SUMMARY - exit 0 - fi - echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY - echo "> Package trigger running off of master branch. To disable, set a Github secret named \`PAUSE_PACKAGE_TRIGGER_PLEX_MASTER\`" >> $GITHUB_STEP_SUMMARY - response=$(curl -iX POST \ - https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-plex/job/master/buildWithParameters?PACKAGE_CHECK=true \ - --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") - echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY - echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY - sleep 10 - buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url') - buildurl="${buildurl%$'\r'}" - echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY - echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY - curl -iX POST \ - "${buildurl}submitDescription" \ - --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \ - --data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \ - --data-urlencode "Submit=Submit" From 4d1b0e164e4853757a432cd4869418f42f02b52c Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 30 Sep 2024 09:28:28 +0000 Subject: [PATCH 07/95] Bot Updating Templated Files --- .github/workflows/external_trigger.yml | 64 +++++++++++------- .../workflows/package_trigger_scheduler.yml | 66 ++++++++++++++----- README.md | 12 ++-- 3 files changed, 96 insertions(+), 46 deletions(-) diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index 1318d39..eaf9172 100644 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -11,15 +11,17 @@ jobs: - name: External Trigger if: github.ref == 'refs/heads/master' + env: + SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }} run: | printf "# External trigger for docker-plex\n\n" >> $GITHUB_STEP_SUMMARY - if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_PLEX_MASTER }}" ]; then + if grep -q "^plex_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY - echo "> Github secret \`PAUSE_EXTERNAL_TRIGGER_PLEX_MASTER\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY + echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`plex_master\`; skipping trigger." >> $GITHUB_STEP_SUMMARY exit 0 fi echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY - echo "> External trigger running off of master branch. To disable this trigger, set a Github secret named \`PAUSE_EXTERNAL_TRIGGER_PLEX_MASTER\`" >> $GITHUB_STEP_SUMMARY + echo "> External trigger running off of master branch. To disable this trigger, add \`plex_master\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY EXT_RELEASE=$(curl -s "https://plex.tv/api/downloads/5.json" | jq -r '. | .computer.Linux.version') echo "Type is \`custom_json\`" >> $GITHUB_STEP_SUMMARY @@ -78,26 +80,38 @@ jobs: echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY exit 0 else - printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY - echo "New version \`${EXT_RELEASE}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY - response=$(curl -iX POST \ - https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-plex/job/master/buildWithParameters?PACKAGE_CHECK=false \ - --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") - echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY - echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY - sleep 10 - buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url') - buildurl="${buildurl%$'\r'}" - echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY - echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY - curl -iX POST \ - "${buildurl}submitDescription" \ - --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \ - --data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \ - --data-urlencode "Submit=Submit" - echo "**** Notifying Discord ****" - TRIGGER_REASON="A version change was detected for plex tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}" - curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, - "description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}], - "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} + if [[ "${artifacts_found}" == "false" ]]; then + echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY + echo "> New version detected, but not all artifacts are published yet; skipping trigger" >> $GITHUB_STEP_SUMMARY + FAILURE_REASON="New version ${EXT_RELEASE} for plex tag latest is detected, however not all artifacts are uploaded to upstream release yet. Will try again later." + curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, + "description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}], + "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} + else + printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY + echo "New version \`${EXT_RELEASE}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY + if "${artifacts_found}" == "true" ]]; then + echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY + fi + response=$(curl -iX POST \ + https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-plex/job/master/buildWithParameters?PACKAGE_CHECK=false \ + --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") + echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY + echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY + sleep 10 + buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url') + buildurl="${buildurl%$'\r'}" + echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY + echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY + curl -iX POST \ + "${buildurl}submitDescription" \ + --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \ + --data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \ + --data-urlencode "Submit=Submit" + echo "**** Notifying Discord ****" + TRIGGER_REASON="A version change was detected for plex tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}" + curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, + "description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}], + "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} + fi fi diff --git a/.github/workflows/package_trigger_scheduler.yml b/.github/workflows/package_trigger_scheduler.yml index 131561d..7892736 100644 --- a/.github/workflows/package_trigger_scheduler.yml +++ b/.github/workflows/package_trigger_scheduler.yml @@ -14,6 +14,8 @@ jobs: fetch-depth: '0' - name: Package Trigger Scheduler + env: + SKIP_PACKAGE_TRIGGER: ${{ vars.SKIP_PACKAGE_TRIGGER }} run: | printf "# Package trigger scheduler for docker-plex\n\n" >> $GITHUB_STEP_SUMMARY printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY @@ -24,27 +26,57 @@ jobs: continue fi printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY - ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-plex/${br}/jenkins-vars.yml | yq -r '.ls_branch') - if [ "${br}" == "${ls_branch}" ]; then + JENKINS_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-plex/${br}/jenkins-vars.yml) + if [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then echo "Branch appears to be live; checking workflow." >> $GITHUB_STEP_SUMMARY - if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-plex/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then - echo "Triggering package trigger workflow for branch ${br}" >> $GITHUB_STEP_SUMMARY - triggered_branches="${triggered_branches}${br} " - curl -iX POST \ - -H "Authorization: token ${{ secrets.CR_PAT }}" \ - -H "Accept: application/vnd.github.v3+json" \ - -d "{\"ref\":\"refs/heads/${br}\"}" \ - https://api.github.com/repos/linuxserver/docker-plex/actions/workflows/package_trigger.yml/dispatches - sleep 30 + if [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then + echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY + echo "> Skipping branch ${br} due to \`skip_package_check\` being set in \`jenkins-vars.yml\`." >> $GITHUB_STEP_SUMMARY + skipped_branches="${skipped_branches}${br} " + elif grep -q "^plex_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then + echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY + echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`plex_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY + skipped_branches="${skipped_branches}${br} " + elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-plex/job/${br}/lastBuild/api/json | jq -r '.building') == "true" ]; then + echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY + echo "> There already seems to be an active build on Jenkins; skipping package trigger for ${br}" >> $GITHUB_STEP_SUMMARY + skipped_branches="${skipped_branches}${br} " else - echo "Skipping branch ${br} due to no package trigger workflow present." >> $GITHUB_STEP_SUMMARY + echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY + echo "> Triggering package trigger for branch ${br}" >> $GITHUB_STEP_SUMMARY + printf "> To disable, add \`plex_%s\` into the Github organizational variable \`SKIP_PACKAGE_TRIGGER\`.\n\n" "${br}" >> $GITHUB_STEP_SUMMARY + triggered_branches="${triggered_branches}${br} " + response=$(curl -iX POST \ + https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-plex/job/${br}/buildWithParameters?PACKAGE_CHECK=true \ + --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") + echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY + echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY + sleep 10 + buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url') + buildurl="${buildurl%$'\r'}" + echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY + echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY + curl -iX POST \ + "${buildurl}submitDescription" \ + --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \ + --data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \ + --data-urlencode "Submit=Submit" + sleep 20 fi else echo "Skipping branch ${br} due to being detected as dev branch." >> $GITHUB_STEP_SUMMARY fi done - echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****" - echo "**** Notifying Discord ****" - curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, - "description": "**Package Check Build(s) Triggered for plex** \n**Branch(es):** '"${triggered_branches}"' \n**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-plex/activity/"' \n"}], - "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} + if [[ -n "${triggered_branches}" ]] || [[ -n "${skipped_branches}" ]]; then + if [[ -n "${triggered_branches}" ]]; then + NOTIFY_BRANCHES="**Triggered:** ${triggered_branches} \n" + fi + if [[ -n "${skipped_branches}" ]]; then + NOTIFY_BRANCHES="${NOTIFY_BRANCHES}**Skipped:** ${skipped_branches} \n" + fi + echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****" + echo "**** Notifying Discord ****" + curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, + "description": "**Package Check Build(s) Triggered for plex** \n'"${NOTIFY_BRANCHES}"'**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-plex/activity/"' \n"}], + "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} + fi diff --git a/README.md b/README.md index f73eae5..f16b362 100644 --- a/README.md +++ b/README.md @@ -61,13 +61,16 @@ The architectures supported by this image are: Webui can be found at `:32400/web` -**note**: If there is no value set for the VERSION variable, then no updates will take place. +>[!NOTE] +>If there is no value set for the VERSION variable, then no updates will take place. -**note**: For new users, no updates will take place on the first run of the container as there is no preferences file to read your token from, to update restart the Docker container after logging in through the webui. +>[!NOTE] +>For new users, no updates will take place on the first run of the container as there is no preferences file to read your token from, to update restart the Docker container after logging in through the webui. Valid settings for VERSION are:- -**info**: YOU CANNOT UPDATE TO A PLEXPASS ONLY (BETA) VERSION IF YOU ARE NOT LOGGED IN WITH A PLEXPASS ACCOUNT. +>[!NOTE] +>YOU CANNOT UPDATE TO A PLEXPASS ONLY (BETA) VERSION IF YOU ARE NOT LOGGED IN WITH A PLEXPASS ACCOUNT. + **`docker`**: Let Docker handle the Plex Version, we keep our Dockerhub Endpoint up to date with the latest public builds. This is the same as leaving this setting out of your create command. + **`latest`**: will update plex to the latest version available that you are entitled to. @@ -322,7 +325,8 @@ Below are the instructions for updating containers: ### Image Update Notifications - Diun (Docker Image Update Notifier) -**tip**: We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported. +>[!TIP] +>We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported. ## Building locally From 9e313afccfd1131bcbfedb625f289ae04f919f55 Mon Sep 17 00:00:00 2001 From: thespad Date: Sun, 13 Oct 2024 16:59:17 +0100 Subject: [PATCH 08/95] Add RO support --- Dockerfile | 3 ++- Dockerfile.aarch64 | 3 ++- README.md | 10 ++++++++++ readme-vars.yml | 6 ++++++ root/etc/s6-overlay/s6-rc.d/init-plex-chown/run | 3 +++ root/etc/s6-overlay/s6-rc.d/init-plex-update/run | 5 +++++ 6 files changed, 28 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 43c7e49..f2da3bb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,7 +23,8 @@ ENV DEBIAN_FRONTEND="noninteractive" \ PLEX_MEDIA_SERVER_MAX_PLUGIN_PROCS="6" \ PLEX_MEDIA_SERVER_USER="abc" \ PLEX_MEDIA_SERVER_INFO_VENDOR="Docker" \ - PLEX_MEDIA_SERVER_INFO_DEVICE="Docker Container (LinuxServer.io)" + PLEX_MEDIA_SERVER_INFO_DEVICE="Docker Container (LinuxServer.io)" \ + TMPDIR=/run/plex-temp RUN \ echo "**** install runtime packages ****" && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 257ca96..b1c14c6 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -20,7 +20,8 @@ ENV DEBIAN_FRONTEND="noninteractive" \ PLEX_MEDIA_SERVER_MAX_PLUGIN_PROCS="6" \ PLEX_MEDIA_SERVER_USER="abc" \ PLEX_MEDIA_SERVER_INFO_VENDOR="Docker" \ - PLEX_MEDIA_SERVER_INFO_DEVICE="Docker Container (LinuxServer.io)" + PLEX_MEDIA_SERVER_INFO_DEVICE="Docker Container (LinuxServer.io)" \ + TMPDIR=/run/plex-temp RUN \ echo "**** install runtime packages ****" && \ diff --git a/README.md b/README.md index f16b362..669254e 100644 --- a/README.md +++ b/README.md @@ -77,6 +77,15 @@ Valid settings for VERSION are:- + **`public`**: will update plexpass users to the latest public version, useful for plexpass users that don't want to be on the bleeding edge but still want the latest public updates. + **``**: will select a specific version (eg 0.9.12.4.1192-9a47d21) of plex to install, note you cannot use this to access plexpass versions if you do not have plexpass. +## Read-Only Operation + +This image can be run with a read-only container filesystem. For details please [read the docs](https://docs.linuxserver.io/misc/read-only/). + +### Caveats + +* Runtime update of Plex (and thus Plexpass builds) is not supported. +* Transcode directory must be mounted to a host path or tmpfs. + ### Hardware Acceleration Many desktop applications need access to a GPU to function properly and even some Desktop Environments have compositor effects that will not function without a GPU. However this is not a hard requirement and all base images will function without a video device mounted into the container. @@ -161,6 +170,7 @@ Containers are configured using parameters passed at runtime (such as those abov | `-v /config` | Plex library location. *This can grow very large, 50gb+ is likely for a large collection.* | | `-v /tv` | Media goes here. Add as many as needed e.g. `/movies`, `/tv`, etc. | | `-v /movies` | Media goes here. Add as many as needed e.g. `/movies`, `/tv`, etc. | +| `--read-only=true` | Run container with a read-only filesystem. Please [read the docs](https://docs.linuxserver.io/misc/read-only/). | ## Environment variables from files (Docker secrets) diff --git a/readme-vars.yml b/readme-vars.yml index 43f14de..94007db 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -72,6 +72,12 @@ app_setup_block: | + **``**: will select a specific version (eg 0.9.12.4.1192-9a47d21) of plex to install, note you cannot use this to access plexpass versions if you do not have plexpass. readme_hwaccel: true + +readonly_supported: true +readonly_message: | + * Runtime update of Plex (and thus Plexpass builds) is not supported. + * Transcode directory must be mounted to a host path or tmpfs. + # changelog changelogs: - {date: "18.07.24:", desc: "Rebase to Ubuntu Noble."} diff --git a/root/etc/s6-overlay/s6-rc.d/init-plex-chown/run b/root/etc/s6-overlay/s6-rc.d/init-plex-chown/run index 2e97959..6c2d74c 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-plex-chown/run +++ b/root/etc/s6-overlay/s6-rc.d/init-plex-chown/run @@ -1,6 +1,8 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash +mkdir -p /run/plex-temp + # create folders if [[ ! -d "${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}" ]]; then mkdir -p "${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}" @@ -35,5 +37,6 @@ fi # permissions (non-recursive) on config root and folders lsiown abc:abc \ + /run/plex-temp \ /config \ /config/* diff --git a/root/etc/s6-overlay/s6-rc.d/init-plex-update/run b/root/etc/s6-overlay/s6-rc.d/init-plex-update/run index 33b9968..75ac825 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-plex-update/run +++ b/root/etc/s6-overlay/s6-rc.d/init-plex-update/run @@ -1,6 +1,11 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash +if [[ -z ${LSIO_READ_ONLY_FS} ]] || [[ -z ${LSIO_NON_ROOT_USER} ]]; then + echo "Runtime update not supported with read-only or non-root operation, skipping." + exit 0 +fi + # If docker manages versioning exit if [[ -n "${VERSION}" ]] && [[ "${VERSION}" == "docker" ]]; then echo "Docker is used for versioning skip update check" From 877a9bd1a3d79b9b90dd10532440a29b3a981394 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 14 Oct 2024 17:47:55 +0100 Subject: [PATCH 09/95] Fix RO update check --- root/etc/s6-overlay/s6-rc.d/init-plex-update/run | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/root/etc/s6-overlay/s6-rc.d/init-plex-update/run b/root/etc/s6-overlay/s6-rc.d/init-plex-update/run index 75ac825..44bab80 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-plex-update/run +++ b/root/etc/s6-overlay/s6-rc.d/init-plex-update/run @@ -1,7 +1,7 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash -if [[ -z ${LSIO_READ_ONLY_FS} ]] || [[ -z ${LSIO_NON_ROOT_USER} ]]; then +if [[ -n ${LSIO_READ_ONLY_FS} ]] || [[ -n ${LSIO_NON_ROOT_USER} ]]; then echo "Runtime update not supported with read-only or non-root operation, skipping." exit 0 fi From bb423a4d3b51daa4bebc37c80358be8fbecd97ec Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Thu, 24 Oct 2024 17:31:27 +0000 Subject: [PATCH 10/95] Bot Updating Package Versions --- package_versions.txt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index b47c3ad..a55cfa3 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -20,7 +20,7 @@ dirmngr 2.4.4-2ubuntu17 deb dpkg 1.22.6ubuntu6.1 deb e2fsprogs 1.47.0-2.4~exp1ubuntu4.1 deb findutils 4.9.0-5build1 deb -gcc-14-base 14-20240412-0ubuntu1 deb +gcc-14-base 14.2.0-4ubuntu2~24.04 deb gnupg 2.4.4-2ubuntu17 deb gnupg-l10n 2.4.4-2ubuntu17 deb gnupg-utils 2.4.4-2ubuntu17 deb @@ -58,7 +58,7 @@ libdb5.3t64 5.3.28+dfsg2-7 deb libdebconfclient0 0.271ubuntu3 deb libext2fs2t64 1.47.0-2.4~exp1ubuntu4.1 deb libffi8 3.4.6-1build1 deb -libgcc-s1 14-20240412-0ubuntu1 deb +libgcc-s1 14.2.0-4ubuntu2~24.04 deb libgcrypt20 1.10.3-2build1 deb libgmp10 2:6.3.0+dfsg-2ubuntu6 deb libgnutls30t64 3.8.3-1.1ubuntu3.2 deb @@ -90,7 +90,7 @@ libpam-modules-bin 1.5.3-5ubuntu5.1 deb libpam-runtime 1.5.3-5ubuntu5.1 deb libpam0g 1.5.3-5ubuntu5.1 deb libpcre2-8-0 10.42-4ubuntu2 deb -libproc2-0 2:4.0.4-4ubuntu3.1 deb +libproc2-0 2:4.0.4-4ubuntu3.2 deb libpsl5t64 0.21.2-1.1build1 deb libreadline8t64 8.2-4build1 deb librtmp1 2.4+20151223.gitfa8646d.1-2build7 deb @@ -107,7 +107,7 @@ libsqlite3-0 3.45.1-1ubuntu2 deb libss2 1.47.0-2.4~exp1ubuntu4.1 deb libssh-4 0.10.6-2build2 deb libssl3t64 3.0.13-0ubuntu3.4 deb -libstdc++6 14-20240412-0ubuntu1 deb +libstdc++6 14.2.0-4ubuntu2~24.04 deb libsystemd0 255.4-1ubuntu8.4 deb libtasn1-6 4.19.0-3build1 deb libtinfo6 6.4+20240113-1ubuntu2 deb @@ -117,7 +117,7 @@ libuuid1 2.39.3-9ubuntu6.1 deb libxxhash0 0.8.2-2build1 deb libzstd1 1.5.5+dfsg2-2build1.1 deb locales 2.39-0ubuntu8.3 deb -login 1:4.13+dfsg1-4ubuntu3 deb +login 1:4.13+dfsg1-4ubuntu3.2 deb logsave 1.47.0-2.4~exp1ubuntu4.1 deb mawk 1.3.4.20240123-1build1 deb mount 2.39.3-9ubuntu6.1 deb @@ -125,11 +125,11 @@ ncurses-base 6.4+20240113-1ubuntu2 deb ncurses-bin 6.4+20240113-1ubuntu2 deb netcat-openbsd 1.226-1ubuntu2 deb openssl 3.0.13-0ubuntu3.4 deb -passwd 1:4.13+dfsg1-4ubuntu3 deb +passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2build2 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.41.0.8994-f2c27da23 deb -procps 2:4.0.4-4ubuntu3.1 deb +plexmediaserver 1.41.1.9057-af5eaea7a deb +procps 2:4.0.4-4ubuntu3.2 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb sed 4.9-2build1 deb From 4dd0b7f2d290c87c6679312f51c959ed46dfc1dd Mon Sep 17 00:00:00 2001 From: Roxedus Date: Mon, 4 Nov 2024 16:27:13 +0100 Subject: [PATCH 11/95] Add graphics to capabilties --- Dockerfile | 2 +- README.md | 1 + readme-vars.yml | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index f2da3bb..bf19423 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,7 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA LABEL maintainer="thelamer" #Add needed nvidia environment variables for https://github.com/NVIDIA/nvidia-docker -ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" +ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility,graphics" # global environment settings ENV DEBIAN_FRONTEND="noninteractive" \ diff --git a/README.md b/README.md index 669254e..d074990 100644 --- a/README.md +++ b/README.md @@ -361,6 +361,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **04.11.24:** - Add Nvidia capability needed for h265 * **18.07.24:** - Rebase to Ubuntu Noble. * **12.02.24:** - Use universal hardware acceleration blurb * **09.01.24:** - Set ownership on TranscoderTempDirectory when it's been saved in Preferences. diff --git a/readme-vars.yml b/readme-vars.yml index 94007db..4b8ad23 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -80,6 +80,7 @@ readonly_message: | # changelog changelogs: + - {date: "04.11.24:", desc: "Add Nvidia capability needed for h265"} - {date: "18.07.24:", desc: "Rebase to Ubuntu Noble."} - {date: "12.02.24:", desc: "Use universal hardware acceleration blurb"} - {date: "09.01.24:", desc: "Set ownership on TranscoderTempDirectory when it's been saved in Preferences."} From 86c5c83041c90b55245f63e30e72441d575686d8 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 11 Nov 2024 09:22:40 +0000 Subject: [PATCH 12/95] Bot Updating Templated Files --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index daea175..cbe141a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -886,7 +886,7 @@ pipeline { echo '{"tag_name":"'${META_TAG}'",\ "target_commitish": "master",\ "name": "'${META_TAG}'",\ - "body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start + "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start printf '","draft": false,"prerelease": false}' >> releasebody.json paste -d'\\0' start releasebody.json > releasebody.json.done curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done''' From 0102ec4fa6d0c23f105c021c75498fbb1cafe505 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 11 Nov 2024 09:25:06 +0000 Subject: [PATCH 13/95] Bot Updating Templated Files --- .github/CONTRIBUTING.md | 4 ++-- .github/workflows/package_trigger_scheduler.yml | 5 +++-- README.md | 5 +++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 4245cd8..755352d 100755 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -105,10 +105,10 @@ docker build \ -t linuxserver/plex:latest . ``` -The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` +The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static` ```bash -docker run --rm --privileged multiarch/qemu-user-static:register --reset +docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset ``` Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`. diff --git a/.github/workflows/package_trigger_scheduler.yml b/.github/workflows/package_trigger_scheduler.yml index 7892736..325ff34 100644 --- a/.github/workflows/package_trigger_scheduler.yml +++ b/.github/workflows/package_trigger_scheduler.yml @@ -70,13 +70,14 @@ jobs: if [[ -n "${triggered_branches}" ]] || [[ -n "${skipped_branches}" ]]; then if [[ -n "${triggered_branches}" ]]; then NOTIFY_BRANCHES="**Triggered:** ${triggered_branches} \n" + NOTIFY_BUILD_URL="**Build URL:** https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-plex/activity/ \n" + echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****" fi if [[ -n "${skipped_branches}" ]]; then NOTIFY_BRANCHES="${NOTIFY_BRANCHES}**Skipped:** ${skipped_branches} \n" fi - echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****" echo "**** Notifying Discord ****" curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, - "description": "**Package Check Build(s) Triggered for plex** \n'"${NOTIFY_BRANCHES}"'**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-plex/activity/"' \n"}], + "description": "**Package Check Build(s) for plex** \n'"${NOTIFY_BRANCHES}"''"${NOTIFY_BUILD_URL}"'"}], "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} fi diff --git a/README.md b/README.md index d074990..5b236a3 100644 --- a/README.md +++ b/README.md @@ -77,6 +77,7 @@ Valid settings for VERSION are:- + **`public`**: will update plexpass users to the latest public version, useful for plexpass users that don't want to be on the bleeding edge but still want the latest public updates. + **``**: will select a specific version (eg 0.9.12.4.1192-9a47d21) of plex to install, note you cannot use this to access plexpass versions if you do not have plexpass. + ## Read-Only Operation This image can be run with a read-only container filesystem. For details please [read the docs](https://docs.linuxserver.io/misc/read-only/). @@ -351,10 +352,10 @@ docker build \ -t lscr.io/linuxserver/plex:latest . ``` -The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` +The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static` ```bash -docker run --rm --privileged multiarch/qemu-user-static:register --reset +docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset ``` Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`. From 081ace2aeebc688a43a25a155935ae36cc83f2bb Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Thu, 14 Nov 2024 22:36:23 +0000 Subject: [PATCH 14/95] Bot Updating Package Versions --- package_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package_versions.txt b/package_versions.txt index a55cfa3..04c4a47 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -128,7 +128,7 @@ openssl 3.0.13-0ubuntu3.4 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2build2 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.41.1.9057-af5eaea7a deb +plexmediaserver 1.41.2.9200-c6bbc1b53 deb procps 2:4.0.4-4ubuntu3.2 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb From 49fe7202e9857ee093c6fde41ff81805a08aec83 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 2 Dec 2024 09:26:22 +0000 Subject: [PATCH 15/95] Bot Updating Templated Files --- Jenkinsfile | 268 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 176 insertions(+), 92 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index cbe141a..f2e609f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -8,7 +8,7 @@ pipeline { } // Input to determine if this is a package check parameters { - string(defaultValue: 'false', description: 'package check run', name: 'PACKAGE_CHECK') + string(defaultValue: 'false', description: 'package check run', name: 'PACKAGE_CHECK') } // Configuration for the variables used for this specific repo environment { @@ -193,6 +193,7 @@ pipeline { env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.META_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN + env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' } } } @@ -217,6 +218,7 @@ pipeline { env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/' + env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' } } } @@ -241,6 +243,7 @@ pipeline { env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/' + env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' } } } @@ -337,6 +340,35 @@ pipeline { else echo "No templates to delete" fi + echo "Starting Stage 2.5 - Update init diagram" + if ! grep -q 'init_diagram:' readme-vars.yml; then + echo "Adding the key 'init_diagram' to readme-vars.yml" + sed -i '\\|^#.*changelog.*$|d' readme-vars.yml + sed -i 's|^changelogs:|# init diagram\\ninit_diagram:\\n\\n# changelog\\nchangelogs:|' readme-vars.yml + fi + mkdir -p ${TEMPDIR}/d2 + docker run --rm -v ${TEMPDIR}/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) -e RAW="true" ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:latest + ls -al ${TEMPDIR}/d2 + yq -ei ".init_diagram |= load_str(\\"${TEMPDIR}/d2/${CONTAINER_NAME}-latest.d2\\")" readme-vars.yml + if [[ $(md5sum readme-vars.yml | cut -c1-8) != $(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml | cut -c1-8) ]]; then + echo "'init_diagram' has been updated. Updating repo and exiting build, new one will trigger based on commit." + mkdir -p ${TEMPDIR}/repo + git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} + cd ${TEMPDIR}/repo/${LS_REPO} + git checkout -f master + cp ${WORKSPACE}/readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/readme-vars.yml + git add readme-vars.yml + git commit -m 'Bot Updating Templated Files' + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master + echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} + echo "Updating templates and exiting build, new one will trigger based on commit" + rm -Rf ${TEMPDIR} + exit 0 + else + echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} + echo "Init diagram is unchanged" + fi echo "Starting Stage 3 - Update templates" CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) cd ${TEMPDIR}/docker-${CONTAINER_NAME} @@ -545,8 +577,40 @@ pipeline { --label \"org.opencontainers.image.title=Plex\" \ --label \"org.opencontainers.image.description=[Plex](https://plex.tv) organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone Plex Media Server. Straightforward design and bulk actions mean getting things done faster.\" \ --no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \ - --provenance=false --sbom=false \ + --provenance=false --sbom=false --builder=container --load \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." + sh '''#! /bin/bash + set -e + IFS=',' read -ra CACHE <<< "$BUILDCACHE" + for i in "${CACHE[@]}"; do + docker tag ${IMAGE}:${META_TAG} ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} + done + ''' + withCredentials([ + [ + $class: 'UsernamePasswordMultiBinding', + credentialsId: 'Quay.io-Robot', + usernameVariable: 'QUAYUSER', + passwordVariable: 'QUAYPASS' + ] + ]) { + retry_backoff(5,5) { + sh '''#! /bin/bash + set -e + echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin + echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin + echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin + echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin + if [[ "${PACKAGE_CHECK}" != "true" ]]; then + IFS=',' read -ra CACHE <<< "$BUILDCACHE" + for i in "${CACHE[@]}"; do + docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} & + done + wait + fi + ''' + } + } } } // Build MultiArch Docker containers for push to LS Repo @@ -577,8 +641,40 @@ pipeline { --label \"org.opencontainers.image.title=Plex\" \ --label \"org.opencontainers.image.description=[Plex](https://plex.tv) organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone Plex Media Server. Straightforward design and bulk actions mean getting things done faster.\" \ --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \ - --provenance=false --sbom=false \ + --provenance=false --sbom=false --builder=container --load \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." + sh '''#! /bin/bash + set -e + IFS=',' read -ra CACHE <<< "$BUILDCACHE" + for i in "${CACHE[@]}"; do + docker tag ${IMAGE}:amd64-${META_TAG} ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} + done + ''' + withCredentials([ + [ + $class: 'UsernamePasswordMultiBinding', + credentialsId: 'Quay.io-Robot', + usernameVariable: 'QUAYUSER', + passwordVariable: 'QUAYPASS' + ] + ]) { + retry_backoff(5,5) { + sh '''#! /bin/bash + set -e + echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin + echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin + echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin + echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin + if [[ "${PACKAGE_CHECK}" != "true" ]]; then + IFS=',' read -ra CACHE <<< "$BUILDCACHE" + for i in "${CACHE[@]}"; do + docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} & + done + wait + fi + ''' + } + } } } stage('Build ARM64') { @@ -587,10 +683,6 @@ pipeline { } steps { echo "Running on node: ${NODE_NAME}" - echo 'Logging into Github' - sh '''#! /bin/bash - echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin - ''' sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.aarch64" sh "docker buildx build \ --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \ @@ -606,18 +698,47 @@ pipeline { --label \"org.opencontainers.image.title=Plex\" \ --label \"org.opencontainers.image.description=[Plex](https://plex.tv) organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone Plex Media Server. Straightforward design and bulk actions mean getting things done faster.\" \ --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \ - --provenance=false --sbom=false \ + --provenance=false --sbom=false --builder=container --load \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." - sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" - retry_backoff(5,5) { - sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" + sh '''#! /bin/bash + set -e + IFS=',' read -ra CACHE <<< "$BUILDCACHE" + for i in "${CACHE[@]}"; do + docker tag ${IMAGE}:arm64v8-${META_TAG} ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} + done + ''' + withCredentials([ + [ + $class: 'UsernamePasswordMultiBinding', + credentialsId: 'Quay.io-Robot', + usernameVariable: 'QUAYUSER', + passwordVariable: 'QUAYPASS' + ] + ]) { + retry_backoff(5,5) { + sh '''#! /bin/bash + set -e + echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin + echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin + echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin + echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin + if [[ "${PACKAGE_CHECK}" != "true" ]]; then + IFS=',' read -ra CACHE <<< "$BUILDCACHE" + for i in "${CACHE[@]}"; do + docker push ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} & + done + wait + fi + ''' + } } sh '''#! /bin/bash containers=$(docker ps -aq) if [[ -n "${containers}" ]]; then docker stop ${containers} fi - docker system prune -af --volumes || : ''' + docker system prune -af --volumes || : + ''' } } } @@ -767,37 +888,23 @@ pipeline { environment name: 'EXIT_STATUS', value: '' } steps { - withCredentials([ - [ - $class: 'UsernamePasswordMultiBinding', - credentialsId: 'Quay.io-Robot', - usernameVariable: 'QUAYUSER', - passwordVariable: 'QUAYPASS' - ] - ]) { - retry_backoff(5,5) { - sh '''#! /bin/bash - set -e - echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin - echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin - echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin - echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin - for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do - docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG} - docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest - docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG} - if [ -n "${SEMVER}" ]; then - docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER} - fi - docker push ${PUSHIMAGE}:latest - docker push ${PUSHIMAGE}:${META_TAG} - docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG} - if [ -n "${SEMVER}" ]; then - docker push ${PUSHIMAGE}:${SEMVER} - fi + retry_backoff(5,5) { + sh '''#! /bin/bash + set -e + for PUSHIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do + [[ ${PUSHIMAGE%%/*} =~ \\. ]] && PUSHIMAGEPLUS="${PUSHIMAGE}" || PUSHIMAGEPLUS="docker.io/${PUSHIMAGE}" + IFS=',' read -ra CACHE <<< "$BUILDCACHE" + for i in "${CACHE[@]}"; do + if [[ "${PUSHIMAGEPLUS}" == "$(cut -d "/" -f1 <<< ${i})"* ]]; then + CACHEIMAGE=${i} + fi done - ''' - } + docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:latest -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} + if [ -n "${SEMVER}" ]; then + docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} + fi + done + ''' } } } @@ -808,57 +915,34 @@ pipeline { environment name: 'EXIT_STATUS', value: '' } steps { - withCredentials([ - [ - $class: 'UsernamePasswordMultiBinding', - credentialsId: 'Quay.io-Robot', - usernameVariable: 'QUAYUSER', - passwordVariable: 'QUAYPASS' - ] - ]) { - retry_backoff(5,5) { - sh '''#! /bin/bash - set -e - echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin - echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin - echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin - echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin - if [ "${CI}" == "false" ]; then - docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64 - docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} + retry_backoff(5,5) { + sh '''#! /bin/bash + set -e + for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do + [[ ${MANIFESTIMAGE%%/*} =~ \\. ]] && MANIFESTIMAGEPLUS="${MANIFESTIMAGE}" || MANIFESTIMAGEPLUS="docker.io/${MANIFESTIMAGE}" + IFS=',' read -ra CACHE <<< "$BUILDCACHE" + for i in "${CACHE[@]}"; do + if [[ "${MANIFESTIMAGEPLUS}" == "$(cut -d "/" -f1 <<< ${i})"* ]]; then + CACHEIMAGE=${i} + fi + done + docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-latest -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} + docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-latest -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} + if [ -n "${SEMVER}" ]; then + docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} + docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} fi - for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do - docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} - docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest - docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} - docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} - docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest - docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} - if [ -n "${SEMVER}" ]; then - docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER} - docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER} - fi - docker push ${MANIFESTIMAGE}:amd64-${META_TAG} - docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} - docker push ${MANIFESTIMAGE}:amd64-latest - docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG} - docker push ${MANIFESTIMAGE}:arm64v8-latest - docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} - if [ -n "${SEMVER}" ]; then - docker push ${MANIFESTIMAGE}:amd64-${SEMVER} - docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER} - fi - done - for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do - docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest - docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} - docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} - if [ -n "${SEMVER}" ]; then - docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} - fi - done - ''' - } + done + for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do + docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest + docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} + + docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} + if [ -n "${SEMVER}" ]; then + docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} + fi + done + ''' } } } From 74f663120afdc41ea2ddadb69e3664896e77487d Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 2 Dec 2024 09:28:07 +0000 Subject: [PATCH 16/95] Bot Updating Templated Files --- readme-vars.yml | 49 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/readme-vars.yml b/readme-vars.yml index 4b8ad23..c422680 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -70,14 +70,57 @@ app_setup_block: | + **`latest`**: will update plex to the latest version available that you are entitled to. + **`public`**: will update plexpass users to the latest public version, useful for plexpass users that don't want to be on the bleeding edge but still want the latest public updates. + **``**: will select a specific version (eg 0.9.12.4.1192-9a47d21) of plex to install, note you cannot use this to access plexpass versions if you do not have plexpass. - readme_hwaccel: true - readonly_supported: true readonly_message: | * Runtime update of Plex (and thus Plexpass builds) is not supported. * Transcode directory must be mounted to a host path or tmpfs. - +# init diagram +init_diagram: | + "plex:latest": { + docker-mods + base { + fix-attr +\nlegacy cont-init + } + docker-mods -> base + legacy-services + custom services + init-services -> legacy-services + init-services -> custom services + custom services -> legacy-services + legacy-services -> ci-service-check + init-migrations -> init-adduser + init-os-end -> init-config + init-config -> init-config-end + init-plex-update -> init-config-end + init-os-end -> init-crontab-config + init-mods-end -> init-custom-files + base -> init-envfile + base -> init-migrations + base -> init-mods + init-config-end -> init-mods + init-mods -> init-mods-end + init-mods-package-install -> init-mods-end + init-mods -> init-mods-package-install + base -> init-os-end + init-adduser -> init-os-end + init-envfile -> init-os-end + init-migrations -> init-os-end + init-config -> init-plex-chown + init-plex-chown -> init-plex-claim + init-plex-claim -> init-plex-gid-video + init-plex-gid-video -> init-plex-update + init-custom-files -> init-services + init-mods-end -> init-services + init-services -> svc-cron + svc-cron -> legacy-services + init-services -> svc-plex + svc-plex -> legacy-services + } + Base Images: { + "baseimage-ubuntu:noble" + } + "plex:latest" <- Base Images # changelog changelogs: - {date: "04.11.24:", desc: "Add Nvidia capability needed for h265"} From 3297c9b0825d7bed6f89266e0e9c021c7ab55f3a Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 2 Dec 2024 09:29:49 +0000 Subject: [PATCH 17/95] Bot Updating Templated Files --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5b236a3..ae16775 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,6 @@ Valid settings for VERSION are:- + **`public`**: will update plexpass users to the latest public version, useful for plexpass users that don't want to be on the bleeding edge but still want the latest public updates. + **``**: will select a specific version (eg 0.9.12.4.1192-9a47d21) of plex to install, note you cannot use this to access plexpass versions if you do not have plexpass. - ## Read-Only Operation This image can be run with a read-only container filesystem. For details please [read the docs](https://docs.linuxserver.io/misc/read-only/). @@ -116,6 +115,9 @@ Best effort is made to install tools to allow mounting in /dev/dri on Arm device To help you get started creating a container from this image you can either use docker-compose or the docker cli. +>[!NOTE] +>Unless a parameter is flaged as 'optional', it is *mandatory* and a value must be provided. + ### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose)) ```yaml From 1705b4cee7484860e8eadc7f080a7118fbf1d558 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 9 Dec 2024 09:26:56 +0000 Subject: [PATCH 18/95] Bot Updating Templated Files --- readme-vars.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/readme-vars.yml b/readme-vars.yml index c422680..86979f6 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -92,26 +92,22 @@ init_diagram: | init-migrations -> init-adduser init-os-end -> init-config init-config -> init-config-end + init-crontab-config -> init-config-end init-plex-update -> init-config-end - init-os-end -> init-crontab-config + init-config -> init-crontab-config init-mods-end -> init-custom-files base -> init-envfile base -> init-migrations - base -> init-mods init-config-end -> init-mods - init-mods -> init-mods-end init-mods-package-install -> init-mods-end init-mods -> init-mods-package-install - base -> init-os-end init-adduser -> init-os-end init-envfile -> init-os-end - init-migrations -> init-os-end init-config -> init-plex-chown init-plex-chown -> init-plex-claim init-plex-claim -> init-plex-gid-video init-plex-gid-video -> init-plex-update init-custom-files -> init-services - init-mods-end -> init-services init-services -> svc-cron svc-cron -> legacy-services init-services -> svc-plex From 57555832cd693656740e98e32480b31b30b00b3d Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 9 Dec 2024 09:28:44 +0000 Subject: [PATCH 19/95] Bot Updating Templated Files --- .github/workflows/external_trigger.yml | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index eaf9172..8a6079f 100644 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -43,16 +43,18 @@ jobs: token=$(curl -sX GET \ "https://ghcr.io/token?scope=repository%3Alinuxserver%2Fplex%3Apull" \ | jq -r '.token') - multidigest=$(curl -s \ - --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ - --header "Authorization: Bearer ${token}" \ - "https://ghcr.io/v2/${image}/manifests/${tag}" \ - | jq -r 'first(.manifests[].digest)') - digest=$(curl -s \ - --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ - --header "Authorization: Bearer ${token}" \ - "https://ghcr.io/v2/${image}/manifests/${multidigest}" \ - | jq -r '.config.digest') + multidigest=$(curl -s \ + --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ + --header "Accept: application/vnd.oci.image.index.v1+json" \ + --header "Authorization: Bearer ${token}" \ + "https://ghcr.io/v2/${image}/manifests/${tag}") + multidigest=$(jq -r ".manifests[] | select(.platform.architecture == \"amd64\").digest?" <<< "${multidigest}") + digest=$(curl -s \ + --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ + --header "Accept: application/vnd.oci.image.manifest.v1+json" \ + --header "Authorization: Bearer ${token}" \ + "https://ghcr.io/v2/${image}/manifests/${multidigest}" \ + | jq -r '.config.digest') image_info=$(curl -sL \ --header "Authorization: Bearer ${token}" \ "https://ghcr.io/v2/${image}/blobs/${digest}") From ed26e879a2c042e513ab26e5f91d9bacfcced48b Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 9 Dec 2024 09:31:54 +0000 Subject: [PATCH 20/95] Bot Updating Package Versions --- package_versions.txt | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 04c4a47..30e29ac 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -11,7 +11,7 @@ catatonit 0.1.7-1 deb coreutils 9.4-3ubuntu6 deb cron 3.0pl1-184ubuntu2 deb cron-daemon-common 3.0pl1-184ubuntu2 deb -curl 8.5.0-2ubuntu10.4 deb +curl 8.5.0-2ubuntu10.5 deb dash 0.5.12-6ubuntu5 deb debconf 1.5.86ubuntu1 deb debianutils 5.17build1 deb @@ -36,13 +36,13 @@ hostname 3.23+nmu2ubuntu2 deb init-system-helpers 1.66ubuntu1 deb jq 1.7.1-3build1 deb keyboxd 2.4.4-2ubuntu17 deb -krb5-locales 1.20.1-6ubuntu2.1 deb -libacl1 2.3.2-1build1 deb +krb5-locales 1.20.1-6ubuntu2.2 deb +libacl1 2.3.2-1build1.1 deb libapt-pkg6.0t64 2.7.14build2 deb libassuan0 2.5.6-1build1 deb libattr1 1:2.5.2-1build1 deb -libaudit-common 1:3.1.2-2.1build1 deb -libaudit1 1:3.1.2-2.1build1 deb +libaudit-common 1:3.1.2-2.1build1.1 deb +libaudit1 1:3.1.2-2.1build1.1 deb libblkid1 2.39.3-9ubuntu6.1 deb libbrotli1 1.1.0-2build2 deb libbsd0 0.12.1-1build1 deb @@ -53,7 +53,7 @@ libcap-ng0 0.8.4-2build2 deb libcap2 1:2.66-5ubuntu2 deb libcom-err2 1.47.0-2.4~exp1ubuntu4.1 deb libcrypt1 1:4.4.36-4build1 deb -libcurl4t64 8.5.0-2ubuntu10.4 deb +libcurl4t64 8.5.0-2ubuntu10.5 deb libdb5.3t64 5.3.28+dfsg2-7 deb libdebconfclient0 0.271ubuntu3 deb libext2fs2t64 1.47.0-2.4~exp1ubuntu4.1 deb @@ -63,18 +63,18 @@ libgcrypt20 1.10.3-2build1 deb libgmp10 2:6.3.0+dfsg-2ubuntu6 deb libgnutls30t64 3.8.3-1.1ubuntu3.2 deb libgpg-error0 1.47-3build2 deb -libgssapi-krb5-2 1.20.1-6ubuntu2.1 deb +libgssapi-krb5-2 1.20.1-6ubuntu2.2 deb libhogweed6t64 3.9.1-2.2build1.1 deb libidn2-0 2.3.7-2build1 deb libjq1 1.7.1-3build1 deb -libk5crypto3 1.20.1-6ubuntu2.1 deb +libk5crypto3 1.20.1-6ubuntu2.2 deb libkeyutils1 1.6.3-3build1 deb libkmod2 31+20240202-2ubuntu7 deb -libkrb5-3 1.20.1-6ubuntu2.1 deb -libkrb5support0 1.20.1-6ubuntu2.1 deb +libkrb5-3 1.20.1-6ubuntu2.2 deb +libkrb5support0 1.20.1-6ubuntu2.2 deb libksba8 1.6.6-1build1 deb -libldap-common 2.6.7+dfsg-1~exp1ubuntu8 deb -libldap2 2.6.7+dfsg-1~exp1ubuntu8 deb +libldap-common 2.6.7+dfsg-1~exp1ubuntu8.1 deb +libldap2 2.6.7+dfsg-1~exp1ubuntu8.1 deb liblz4-1 1.9.4-1build1.1 deb liblzma5 5.6.1+really5.4.5-1build0.1 deb libmd0 1.1.0-2build1 deb From 25ff8491521608df3552b93d5e4bafb508ae132e Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Wed, 11 Dec 2024 16:42:33 +0000 Subject: [PATCH 21/95] Bot Updating Package Versions --- package_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package_versions.txt b/package_versions.txt index 30e29ac..5125a11 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -128,7 +128,7 @@ openssl 3.0.13-0ubuntu3.4 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2build2 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.41.2.9200-c6bbc1b53 deb +plexmediaserver 1.41.3.9292-bc7397402 deb procps 2:4.0.4-4ubuntu3.2 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb From 025e5da7cbc0ae70d31353fe52eb0af16a1bbc33 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 16 Dec 2024 09:25:16 +0000 Subject: [PATCH 22/95] Bot Updating Templated Files --- Jenkinsfile | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f2e609f..229a3e0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -577,7 +577,7 @@ pipeline { --label \"org.opencontainers.image.title=Plex\" \ --label \"org.opencontainers.image.description=[Plex](https://plex.tv) organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone Plex Media Server. Straightforward design and bulk actions mean getting things done faster.\" \ --no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \ - --provenance=false --sbom=false --builder=container --load \ + --provenance=true --sbom=true --builder=container --load \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." sh '''#! /bin/bash set -e @@ -606,7 +606,9 @@ pipeline { for i in "${CACHE[@]}"; do docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} & done - wait + for p in $(jobs -p); do + wait "$p" || { echo "job $p failed" >&2; exit 1; } + done fi ''' } @@ -641,7 +643,7 @@ pipeline { --label \"org.opencontainers.image.title=Plex\" \ --label \"org.opencontainers.image.description=[Plex](https://plex.tv) organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone Plex Media Server. Straightforward design and bulk actions mean getting things done faster.\" \ --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \ - --provenance=false --sbom=false --builder=container --load \ + --provenance=true --sbom=true --builder=container --load \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." sh '''#! /bin/bash set -e @@ -670,7 +672,9 @@ pipeline { for i in "${CACHE[@]}"; do docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} & done - wait + for p in $(jobs -p); do + wait "$p" || { echo "job $p failed" >&2; exit 1; } + done fi ''' } @@ -698,7 +702,7 @@ pipeline { --label \"org.opencontainers.image.title=Plex\" \ --label \"org.opencontainers.image.description=[Plex](https://plex.tv) organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone Plex Media Server. Straightforward design and bulk actions mean getting things done faster.\" \ --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \ - --provenance=false --sbom=false --builder=container --load \ + --provenance=true --sbom=true --builder=container --load \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." sh '''#! /bin/bash set -e @@ -727,7 +731,9 @@ pipeline { for i in "${CACHE[@]}"; do docker push ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} & done - wait + for p in $(jobs -p); do + wait "$p" || { echo "job $p failed" >&2; exit 1; } + done fi ''' } From af6901e34138ef4db5680e3f2b3385f9a66ef6a3 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 16 Dec 2024 09:28:03 +0000 Subject: [PATCH 23/95] Bot Updating Templated Files --- .github/workflows/external_trigger.yml | 33 ++++++++++++++----- .../workflows/package_trigger_scheduler.yml | 27 ++++++++++++--- 2 files changed, 47 insertions(+), 13 deletions(-) diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index 8a6079f..79e620b 100644 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -48,13 +48,30 @@ jobs: --header "Accept: application/vnd.oci.image.index.v1+json" \ --header "Authorization: Bearer ${token}" \ "https://ghcr.io/v2/${image}/manifests/${tag}") - multidigest=$(jq -r ".manifests[] | select(.platform.architecture == \"amd64\").digest?" <<< "${multidigest}") - digest=$(curl -s \ - --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ - --header "Accept: application/vnd.oci.image.manifest.v1+json" \ - --header "Authorization: Bearer ${token}" \ - "https://ghcr.io/v2/${image}/manifests/${multidigest}" \ - | jq -r '.config.digest') + if jq -e '.layers // empty' <<< "${multidigest}" >/dev/null 2>&1; then + # If there's a layer element it's a single-arch manifest so just get that digest + digest=$(jq -r '.config.digest' <<< "${multidigest}") + else + # Otherwise it's multi-arch or has manifest annotations + if jq -e '.manifests[]?.annotations // empty' <<< "${multidigest}" >/dev/null 2>&1; then + # Check for manifest annotations and delete if found + multidigest=$(jq 'del(.manifests[] | select(.annotations))' <<< "${multidigest}") + fi + if [[ $(jq '.manifests | length' <<< "${multidigest}") -gt 1 ]]; then + # If there's still more than one digest, it's multi-arch + multidigest=$(jq -r ".manifests[] | select(.platform.architecture == \"amd64\").digest?" <<< "${multidigest}") + else + # Otherwise it's single arch + multidigest=$(jq -r ".manifests[].digest?" <<< "${multidigest}") + fi + if digest=$(curl -s \ + --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ + --header "Accept: application/vnd.oci.image.manifest.v1+json" \ + --header "Authorization: Bearer ${token}" \ + "https://ghcr.io/v2/${image}/manifests/${multidigest}"); then + digest=$(jq -r '.config.digest' <<< "${digest}"); + fi + fi image_info=$(curl -sL \ --header "Authorization: Bearer ${token}" \ "https://ghcr.io/v2/${image}/blobs/${digest}") @@ -92,7 +109,7 @@ jobs: else printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY echo "New version \`${EXT_RELEASE}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY - if "${artifacts_found}" == "true" ]]; then + if [[ "${artifacts_found}" == "true" ]]; then echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY fi response=$(curl -iX POST \ diff --git a/.github/workflows/package_trigger_scheduler.yml b/.github/workflows/package_trigger_scheduler.yml index 325ff34..abaf63d 100644 --- a/.github/workflows/package_trigger_scheduler.yml +++ b/.github/workflows/package_trigger_scheduler.yml @@ -27,9 +27,18 @@ jobs: fi printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY JENKINS_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-plex/${br}/jenkins-vars.yml) - if [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then + if ! curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-plex/${br}/Jenkinsfile >/dev/null 2>&1; then + echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY + echo "> No Jenkinsfile found. Branch is either deprecated or is an early dev branch." >> $GITHUB_STEP_SUMMARY + skipped_branches="${skipped_branches}${br} " + elif [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then echo "Branch appears to be live; checking workflow." >> $GITHUB_STEP_SUMMARY - if [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then + README_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-plex/${br}/readme-vars.yml) + if [[ $(yq -r '.project_deprecation_status' <<< "${README_VARS}") == "true" ]]; then + echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY + echo "> Branch appears to be deprecated; skipping trigger." >> $GITHUB_STEP_SUMMARY + skipped_branches="${skipped_branches}${br} " + elif [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY echo "> Skipping branch ${br} due to \`skip_package_check\` being set in \`jenkins-vars.yml\`." >> $GITHUB_STEP_SUMMARY skipped_branches="${skipped_branches}${br} " @@ -37,7 +46,7 @@ jobs: echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`plex_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY skipped_branches="${skipped_branches}${br} " - elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-plex/job/${br}/lastBuild/api/json | jq -r '.building') == "true" ]; then + elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-plex/job/${br}/lastBuild/api/json | jq -r '.building' 2>/dev/null) == "true" ]; then echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY echo "> There already seems to be an active build on Jenkins; skipping package trigger for ${br}" >> $GITHUB_STEP_SUMMARY skipped_branches="${skipped_branches}${br} " @@ -49,6 +58,11 @@ jobs: response=$(curl -iX POST \ https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-plex/job/${br}/buildWithParameters?PACKAGE_CHECK=true \ --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") + if [[ -z "${response}" ]]; then + echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY + echo "> Jenkins build could not be triggered. Skipping branch." + continue + fi echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY sleep 10 @@ -56,11 +70,14 @@ jobs: buildurl="${buildurl%$'\r'}" echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY - curl -iX POST \ + if ! curl -ifX POST \ "${buildurl}submitDescription" \ --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \ --data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \ - --data-urlencode "Submit=Submit" + --data-urlencode "Submit=Submit"; then + echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY + echo "> Unable to change the Jenkins job description." + fi sleep 20 fi else From 5521df85df95375d69708d4b3f2b622a5e6bfef7 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 17 Dec 2024 22:35:06 +0000 Subject: [PATCH 24/95] Bot Updating Package Versions --- package_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package_versions.txt b/package_versions.txt index 5125a11..6c837af 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -128,7 +128,7 @@ openssl 3.0.13-0ubuntu3.4 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2build2 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.41.3.9292-bc7397402 deb +plexmediaserver 1.41.3.9314-a0bfb8370 deb procps 2:4.0.4-4ubuntu3.2 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb From b29a1b8320c80d709f56f47c05bd48be9889fda6 Mon Sep 17 00:00:00 2001 From: thespad Date: Fri, 20 Dec 2024 20:31:10 +0000 Subject: [PATCH 25/95] Support nonroot operation --- README.md | 10 ++++ readme-vars.yml | 4 ++ .../s6-overlay/s6-rc.d/init-plex-chown/run | 56 +++++++++--------- .../s6-rc.d/init-plex-gid-video/run | 58 ++++++++++--------- root/etc/s6-overlay/s6-rc.d/svc-plex/run | 13 ++++- 5 files changed, 84 insertions(+), 57 deletions(-) diff --git a/README.md b/README.md index ae16775..d3a72b4 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,15 @@ This image can be run with a read-only container filesystem. For details please * Runtime update of Plex (and thus Plexpass builds) is not supported. * Transcode directory must be mounted to a host path or tmpfs. +## Non-Root Operation + +This image can be run with a non-root user. For details please [read the docs](https://docs.linuxserver.io/misc/non-root/). + +### Caveats + +* Runtime update of Plex (and thus Plexpass builds) is not supported. +* Transcode directory must be mounted to a host path or tmpfs. + ### Hardware Acceleration Many desktop applications need access to a GPU to function properly and even some Desktop Environments have compositor effects that will not function without a GPU. However this is not a hard requirement and all base images will function without a video device mounted into the container. @@ -174,6 +183,7 @@ Containers are configured using parameters passed at runtime (such as those abov | `-v /tv` | Media goes here. Add as many as needed e.g. `/movies`, `/tv`, etc. | | `-v /movies` | Media goes here. Add as many as needed e.g. `/movies`, `/tv`, etc. | | `--read-only=true` | Run container with a read-only filesystem. Please [read the docs](https://docs.linuxserver.io/misc/read-only/). | +| `--user=1000:1000` | Run container with a non-root user. Please [read the docs](https://docs.linuxserver.io/misc/non-root/). | ## Environment variables from files (Docker secrets) diff --git a/readme-vars.yml b/readme-vars.yml index 86979f6..4e109a1 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -75,6 +75,10 @@ readonly_supported: true readonly_message: | * Runtime update of Plex (and thus Plexpass builds) is not supported. * Transcode directory must be mounted to a host path or tmpfs. +nonroot_supported: true +nonroot_message: | + * Runtime update of Plex (and thus Plexpass builds) is not supported. + * Transcode directory must be mounted to a host path or tmpfs. # init diagram init_diagram: | "plex:latest": { diff --git a/root/etc/s6-overlay/s6-rc.d/init-plex-chown/run b/root/etc/s6-overlay/s6-rc.d/init-plex-chown/run index 6c2d74c..f98e669 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-plex-chown/run +++ b/root/etc/s6-overlay/s6-rc.d/init-plex-chown/run @@ -6,16 +6,9 @@ mkdir -p /run/plex-temp # create folders if [[ ! -d "${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}" ]]; then mkdir -p "${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}" - lsiown -R abc:abc /config -fi - -# check Library permissions -PUID=${PUID:-911} -if [[ ! "$(stat -c %u /config/Library)" == "${PUID}" ]]; then - echo "Change in ownership detected, please be patient while we chown existing files" - echo "This could take some time" - lsiown -R abc:abc \ - /config/Library + if [[ -z ${LSIO_NON_ROOT_USER} ]]; then + lsiown -R abc:abc /config + fi fi # remove plex pid after unclean stop @@ -23,20 +16,31 @@ if [[ -f "/config/Library/Application Support/Plex Media Server/plexmediaserver. rm -f "/config/Library/Application Support/Plex Media Server/plexmediaserver.pid" fi -# set permissions on Plex Transcoder Temp Directory -PLEX_MEDIA_SERVER_PREFERENCES="${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}/Plex Media Server/Preferences.xml" -if [[ -f "${PLEX_MEDIA_SERVER_PREFERENCES}" ]]; then - TranscoderTempDirectory='\bTranscoderTempDirectory="([^"]+)"' - while IFS= read -r line; do - if [[ ${line} =~ ${TranscoderTempDirectory} ]] && [[ -d "${BASH_REMATCH[1]}" ]]; then - echo "Setting permissions on ${BASH_REMATCH[1]}" - lsiown -R abc:abc "${BASH_REMATCH[1]}" - fi - done <"${PLEX_MEDIA_SERVER_PREFERENCES}" -fi +if [[ -z ${LSIO_NON_ROOT_USER} ]]; then + # check Library permissions + PUID=${PUID:-911} + if [[ ! "$(stat -c %u /config/Library)" == "${PUID}" ]]; then + echo "Change in ownership detected, please be patient while we chown existing files" + echo "This could take some time" + lsiown -R abc:abc \ + /config/Library + fi -# permissions (non-recursive) on config root and folders -lsiown abc:abc \ - /run/plex-temp \ - /config \ - /config/* + # set permissions on Plex Transcoder Temp Directory + PLEX_MEDIA_SERVER_PREFERENCES="${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}/Plex Media Server/Preferences.xml" + if [[ -f "${PLEX_MEDIA_SERVER_PREFERENCES}" ]]; then + TranscoderTempDirectory='\bTranscoderTempDirectory="([^"]+)"' + while IFS= read -r line; do + if [[ ${line} =~ ${TranscoderTempDirectory} ]] && [[ -d "${BASH_REMATCH[1]}" ]]; then + echo "Setting permissions on ${BASH_REMATCH[1]}" + lsiown -R abc:abc "${BASH_REMATCH[1]}" + fi + done <"${PLEX_MEDIA_SERVER_PREFERENCES}" + fi + + # permissions (non-recursive) on config root and folders + lsiown abc:abc \ + /run/plex-temp \ + /config \ + /config/* +fi diff --git a/root/etc/s6-overlay/s6-rc.d/init-plex-gid-video/run b/root/etc/s6-overlay/s6-rc.d/init-plex-gid-video/run index cd01d81..083570f 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-plex-gid-video/run +++ b/root/etc/s6-overlay/s6-rc.d/init-plex-gid-video/run @@ -1,35 +1,37 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash -FILES=$(find /dev/dri /dev/dvb -type c -print 2>/dev/null) +if [[ -z ${LSIO_NON_ROOT_USER} ]]; then + FILES=$(find /dev/dri /dev/dvb -type c -print 2>/dev/null) -for i in ${FILES}; do - VIDEO_GID=$(stat -c '%g' "${i}") - VIDEO_UID=$(stat -c '%u' "${i}") - # check if user matches device - if id -u abc | grep -qw "${VIDEO_UID}"; then - echo "**** permissions for ${i} are good ****" - else - # check if group matches and that device has group rw - if id -G abc | grep -qw "${VIDEO_GID}" && [[ $(stat -c '%A' "${i}" | cut -b 5,6) == "rw" ]]; then + for i in ${FILES}; do + VIDEO_GID=$(stat -c '%g' "${i}") + VIDEO_UID=$(stat -c '%u' "${i}") + # check if user matches device + if id -u abc | grep -qw "${VIDEO_UID}"; then echo "**** permissions for ${i} are good ****" - # check if device needs to be added to video group - elif ! id -G abc | grep -qw "${VIDEO_GID}"; then - # check if video group needs to be created - VIDEO_NAME=$(getent group "${VIDEO_GID}" | awk -F: '{print $1}') - if [[ -z "${VIDEO_NAME}" ]]; then - VIDEO_NAME="video$(head /dev/urandom | tr -dc 'a-z0-9' | head -c4)" - groupadd "${VIDEO_NAME}" - groupmod -g "${VIDEO_GID}" "${VIDEO_NAME}" - echo "**** creating video group ${VIDEO_NAME} with id ${VIDEO_GID} ****" + else + # check if group matches and that device has group rw + if id -G abc | grep -qw "${VIDEO_GID}" && [[ $(stat -c '%A' "${i}" | cut -b 5,6) == "rw" ]]; then + echo "**** permissions for ${i} are good ****" + # check if device needs to be added to video group + elif ! id -G abc | grep -qw "${VIDEO_GID}"; then + # check if video group needs to be created + VIDEO_NAME=$(getent group "${VIDEO_GID}" | awk -F: '{print $1}') + if [[ -z "${VIDEO_NAME}" ]]; then + VIDEO_NAME="video$(head /dev/urandom | tr -dc 'a-z0-9' | head -c4)" + groupadd "${VIDEO_NAME}" + groupmod -g "${VIDEO_GID}" "${VIDEO_NAME}" + echo "**** creating video group ${VIDEO_NAME} with id ${VIDEO_GID} ****" + fi + echo "**** adding ${i} to video group ${VIDEO_NAME} with id ${VIDEO_GID} ****" + usermod -a -G "${VIDEO_NAME}" abc + fi + # check if device has group rw + if [[ $(stat -c '%A' "${i}" | cut -b 5,6) != "rw" ]]; then + echo -e "**** The device ${i} does not have group read/write permissions, attempting to fix inside the container. ****" + chmod g+rw "${i}" fi - echo "**** adding ${i} to video group ${VIDEO_NAME} with id ${VIDEO_GID} ****" - usermod -a -G "${VIDEO_NAME}" abc fi - # check if device has group rw - if [[ $(stat -c '%A' "${i}" | cut -b 5,6) != "rw" ]]; then - echo -e "**** The device ${i} does not have group read/write permissions, attempting to fix inside the container. ****" - chmod g+rw "${i}" - fi - fi -done + done +fi diff --git a/root/etc/s6-overlay/s6-rc.d/svc-plex/run b/root/etc/s6-overlay/s6-rc.d/svc-plex/run index 09fe8df..bb60746 100755 --- a/root/etc/s6-overlay/s6-rc.d/svc-plex/run +++ b/root/etc/s6-overlay/s6-rc.d/svc-plex/run @@ -6,6 +6,13 @@ PLEX_MEDIA_SERVER_INFO_MODEL=$(uname -m) export PLEX_MEDIA_SERVER_INFO_MODEL PLEX_MEDIA_SERVER_INFO_PLATFORM_VERSION=$(uname -r) export PLEX_MEDIA_SERVER_INFO_PLATFORM_VERSION -exec \ - s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 32400" \ - s6-setuidgid abc "/usr/lib/plexmediaserver/Plex Media Server" + +if [[ -z ${LSIO_NON_ROOT_USER} ]]; then + exec \ + s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 32400" \ + s6-setuidgid abc "/usr/lib/plexmediaserver/Plex Media Server" +else + exec \ + s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 32400" \ + "/usr/lib/plexmediaserver/Plex Media Server" +fi From 875eb3dc41a5280142fdcaaf4cd74609fa73a1e8 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 23 Dec 2024 09:23:14 +0000 Subject: [PATCH 26/95] Bot Updating Package Versions --- package_versions.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 6c837af..93618ff 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -11,7 +11,7 @@ catatonit 0.1.7-1 deb coreutils 9.4-3ubuntu6 deb cron 3.0pl1-184ubuntu2 deb cron-daemon-common 3.0pl1-184ubuntu2 deb -curl 8.5.0-2ubuntu10.5 deb +curl 8.5.0-2ubuntu10.6 deb dash 0.5.12-6ubuntu5 deb debconf 1.5.86ubuntu1 deb debianutils 5.17build1 deb @@ -53,7 +53,7 @@ libcap-ng0 0.8.4-2build2 deb libcap2 1:2.66-5ubuntu2 deb libcom-err2 1.47.0-2.4~exp1ubuntu4.1 deb libcrypt1 1:4.4.36-4build1 deb -libcurl4t64 8.5.0-2ubuntu10.5 deb +libcurl4t64 8.5.0-2ubuntu10.6 deb libdb5.3t64 5.3.28+dfsg2-7 deb libdebconfclient0 0.271ubuntu3 deb libext2fs2t64 1.47.0-2.4~exp1ubuntu4.1 deb From 56d67a38c471d7e75c838b91d57a9be67ec139cc Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 27 Dec 2024 13:00:23 +0000 Subject: [PATCH 27/95] made wg a dependency for plex service --- root/etc/s6-overlay/s6-rc.d/init-wireguard/run | 12 ++++++++---- .../s6-rc.d/svc-plex/dependencies.d/init-wireguard | 0 2 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-plex/dependencies.d/init-wireguard diff --git a/root/etc/s6-overlay/s6-rc.d/init-wireguard/run b/root/etc/s6-overlay/s6-rc.d/init-wireguard/run index e5989a5..85ad6c3 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-wireguard/run +++ b/root/etc/s6-overlay/s6-rc.d/init-wireguard/run @@ -1,10 +1,14 @@ #!/usr/bin/with-contenv bash + # Bring up WireGuard if not already up if ! ip link show dev wg0 > /dev/null 2>&1; then wg-quick up wg0 -else -sleep 60 fi -# Exit after running -exit 0 +# Monitor wireguard status +while true; do + if ! ip link show dev wg0 | grep -q "UP"; then + wg-quick up wg0 + fi + sleep 60 +done diff --git a/root/etc/s6-overlay/s6-rc.d/svc-plex/dependencies.d/init-wireguard b/root/etc/s6-overlay/s6-rc.d/svc-plex/dependencies.d/init-wireguard new file mode 100644 index 0000000..e69de29 From 8217b62d9a86087652ffe751ca2bcb9192b43dd0 Mon Sep 17 00:00:00 2001 From: quietsy Date: Wed, 22 Jan 2025 17:13:12 +0200 Subject: [PATCH 28/95] Add categories to readme-vars.yml --- readme-vars.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/readme-vars.yml b/readme-vars.yml index 4e109a1..fb96495 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -6,6 +6,7 @@ project_url: "https://plex.tv" project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/plex-logo.png" project_blurb: "[{{ project_name|capitalize }}]({{ project_url }}) organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone Plex Media Server. Straightforward design and bulk actions mean getting things done faster." project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}" +project_categories: "Media Servers,Music,Audiobooks" # supported architectures available_architectures: - {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"} From 23a7477bd681a321bf51c2fb2732051fc8cb2c9c Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 3 Feb 2025 09:23:16 +0000 Subject: [PATCH 29/95] Bot Updating Templated Files --- Jenkinsfile | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 229a3e0..eab9703 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -58,11 +58,21 @@ pipeline { steps{ echo "Running on node: ${NODE_NAME}" sh '''#! /bin/bash - containers=$(docker ps -aq) + echo "Pruning builder" + docker builder prune -f --builder container || : + containers=$(docker ps -q) if [[ -n "${containers}" ]]; then - docker stop ${containers} + BUILDX_CONTAINER_ID=$(docker ps -qf 'name=buildx_buildkit') + for container in ${containers}; do + if [[ "${container}" == "${BUILDX_CONTAINER_ID}" ]]; then + echo "skipping buildx container in docker stop" + else + echo "Stopping container ${container}" + docker stop ${container} + fi + done fi - docker system prune -af --volumes || : ''' + docker system prune -f --volumes || : ''' script{ env.EXIT_STATUS = '' env.LS_RELEASE = sh( @@ -1154,12 +1164,21 @@ EOF } cleanup { sh '''#! /bin/bash - echo "Performing docker system prune!!" - containers=$(docker ps -aq) + echo "Pruning builder!!" + docker builder prune -f --builder container || : + containers=$(docker ps -q) if [[ -n "${containers}" ]]; then - docker stop ${containers} + BUILDX_CONTAINER_ID=$(docker ps -qf 'name=buildx_buildkit') + for container in ${containers}; do + if [[ "${container}" == "${BUILDX_CONTAINER_ID}" ]]; then + echo "skipping buildx container in docker stop" + else + echo "Stopping container ${container}" + docker stop ${container} + fi + done fi - docker system prune -af --volumes || : + docker system prune -f --volumes || : ''' cleanWs() } From 1faeb23abbaaee192e10aa1f060a8bb040efc262 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 3 Feb 2025 09:24:30 +0000 Subject: [PATCH 30/95] Bot Updating Templated Files --- .github/CONTRIBUTING.md | 2 +- .github/ISSUE_TEMPLATE/config.yml | 2 +- .github/workflows/external_trigger.yml | 10 +++++++++- README.md | 4 ++-- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 755352d..7892606 100755 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -6,7 +6,7 @@ * Read, and fill the Pull Request template * If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR * If the PR is addressing an existing issue include, closes #\, in the body of the PR commit message -* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://discord.gg/YWrKVTn) +* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://linuxserver.io/discord) ## Common files diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 404ea59..d0e43ea 100755 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,7 +1,7 @@ blank_issues_enabled: false contact_links: - name: Discord chat support - url: https://discord.gg/YWrKVTn + url: https://linuxserver.io/discord about: Realtime support / chat with the community and the team. - name: Discourse discussion forum diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index 79e620b..f502b3a 100644 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -15,7 +15,10 @@ jobs: SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }} run: | printf "# External trigger for docker-plex\n\n" >> $GITHUB_STEP_SUMMARY - if grep -q "^plex_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then + if grep -q "^plex_master_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then + echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY + echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`plex_master_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY + elif grep -q "^plex_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`plex_master\`; skipping trigger." >> $GITHUB_STEP_SUMMARY exit 0 @@ -25,6 +28,11 @@ jobs: printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY EXT_RELEASE=$(curl -s "https://plex.tv/api/downloads/5.json" | jq -r '. | .computer.Linux.version') echo "Type is \`custom_json\`" >> $GITHUB_STEP_SUMMARY + if grep -q "^plex_master_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then + echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY + echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY + exit 0 + fi if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY echo "> Can't retrieve external version, exiting" >> $GITHUB_STEP_SUMMARY diff --git a/README.md b/README.md index d3a72b4..6d8a0e9 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io) [![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!") -[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.") +[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://linuxserver.io/discord "realtime support / chat with the community and the team.") [![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.") [![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.") [![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.") @@ -20,7 +20,7 @@ The [LinuxServer.io](https://linuxserver.io) team brings you another container r Find us at: * [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more! -* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team. +* [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team. * [Discourse](https://discourse.linuxserver.io) - post on our community forum. * [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images. * [GitHub](https://github.com/linuxserver) - view the source for all of our repositories. From fa3f35a0f0a3957ef9b0cab3fc649cd5d2ab072c Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 3 Feb 2025 09:29:25 +0000 Subject: [PATCH 31/95] Bot Updating Package Versions --- package_versions.txt | 53 ++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 93618ff..b248cc3 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -5,7 +5,7 @@ apt-utils 2.7.14build2 deb base-files 13ubuntu10.1 deb base-passwd 3.6.3build1 deb bash 5.2.21-2ubuntu4 deb -bsdutils 1:2.39.3-9ubuntu6.1 deb +bsdutils 1:2.39.3-9ubuntu6.2 deb ca-certificates 20240203 deb catatonit 0.1.7-1 deb coreutils 9.4-3ubuntu6 deb @@ -40,17 +40,17 @@ krb5-locales 1.20.1-6ubuntu2.2 deb libacl1 2.3.2-1build1.1 deb libapt-pkg6.0t64 2.7.14build2 deb libassuan0 2.5.6-1build1 deb -libattr1 1:2.5.2-1build1 deb +libattr1 1:2.5.2-1build1.1 deb libaudit-common 1:3.1.2-2.1build1.1 deb libaudit1 1:3.1.2-2.1build1.1 deb -libblkid1 2.39.3-9ubuntu6.1 deb +libblkid1 2.39.3-9ubuntu6.2 deb libbrotli1 1.1.0-2build2 deb -libbsd0 0.12.1-1build1 deb +libbsd0 0.12.1-1build1.1 deb libbz2-1.0 1.0.8-5.1build0.1 deb libc-bin 2.39-0ubuntu8.3 deb libc6 2.39-0ubuntu8.3 deb libcap-ng0 0.8.4-2build2 deb -libcap2 1:2.66-5ubuntu2 deb +libcap2 1:2.66-5ubuntu2.1 deb libcom-err2 1.47.0-2.4~exp1ubuntu4.1 deb libcrypt1 1:4.4.36-4build1 deb libcurl4t64 8.5.0-2ubuntu10.6 deb @@ -60,16 +60,16 @@ libext2fs2t64 1.47.0-2.4~exp1ubuntu4.1 deb libffi8 3.4.6-1build1 deb libgcc-s1 14.2.0-4ubuntu2~24.04 deb libgcrypt20 1.10.3-2build1 deb -libgmp10 2:6.3.0+dfsg-2ubuntu6 deb +libgmp10 2:6.3.0+dfsg-2ubuntu6.1 deb libgnutls30t64 3.8.3-1.1ubuntu3.2 deb -libgpg-error0 1.47-3build2 deb +libgpg-error0 1.47-3build2.1 deb libgssapi-krb5-2 1.20.1-6ubuntu2.2 deb libhogweed6t64 3.9.1-2.2build1.1 deb -libidn2-0 2.3.7-2build1 deb +libidn2-0 2.3.7-2build1.1 deb libjq1 1.7.1-3build1 deb libk5crypto3 1.20.1-6ubuntu2.2 deb libkeyutils1 1.6.3-3build1 deb -libkmod2 31+20240202-2ubuntu7 deb +libkmod2 31+20240202-2ubuntu7.1 deb libkrb5-3 1.20.1-6ubuntu2.2 deb libkrb5support0 1.20.1-6ubuntu2.2 deb libksba8 1.6.6-1build1 deb @@ -77,11 +77,11 @@ libldap-common 2.6.7+dfsg-1~exp1ubuntu8.1 deb libldap2 2.6.7+dfsg-1~exp1ubuntu8.1 deb liblz4-1 1.9.4-1build1.1 deb liblzma5 5.6.1+really5.4.5-1build0.1 deb -libmd0 1.1.0-2build1 deb -libmount1 2.39.3-9ubuntu6.1 deb +libmd0 1.1.0-2build1.1 deb +libmount1 2.39.3-9ubuntu6.2 deb libncursesw6 6.4+20240113-1ubuntu2 deb libnettle8t64 3.9.1-2.2build1.1 deb -libnghttp2-14 1.59.0-1ubuntu0.1 deb +libnghttp2-14 1.59.0-1ubuntu0.2 deb libnpth0t64 1.6-3.1build1 deb libonig5 6.9.9-1build1 deb libp11-kit0 0.25.3-4ubuntu2.1 deb @@ -89,7 +89,7 @@ libpam-modules 1.5.3-5ubuntu5.1 deb libpam-modules-bin 1.5.3-5ubuntu5.1 deb libpam-runtime 1.5.3-5ubuntu5.1 deb libpam0g 1.5.3-5ubuntu5.1 deb -libpcre2-8-0 10.42-4ubuntu2 deb +libpcre2-8-0 10.42-4ubuntu2.1 deb libproc2-0 2:4.0.4-4ubuntu3.2 deb libpsl5t64 0.21.2-1.1build1 deb libreadline8t64 8.2-4build1 deb @@ -98,35 +98,35 @@ libsasl2-2 2.1.28+dfsg1-5ubuntu3.1 deb libsasl2-modules 2.1.28+dfsg1-5ubuntu3.1 deb libsasl2-modules-db 2.1.28+dfsg1-5ubuntu3.1 deb libseccomp2 2.5.5-1ubuntu3.1 deb -libselinux1 3.5-2ubuntu2 deb +libselinux1 3.5-2ubuntu2.1 deb libsemanage-common 3.5-1build5 deb libsemanage2 3.5-1build5 deb libsepol2 3.5-2build1 deb -libsmartcols1 2.39.3-9ubuntu6.1 deb -libsqlite3-0 3.45.1-1ubuntu2 deb +libsmartcols1 2.39.3-9ubuntu6.2 deb +libsqlite3-0 3.45.1-1ubuntu2.1 deb libss2 1.47.0-2.4~exp1ubuntu4.1 deb libssh-4 0.10.6-2build2 deb libssl3t64 3.0.13-0ubuntu3.4 deb libstdc++6 14.2.0-4ubuntu2~24.04 deb -libsystemd0 255.4-1ubuntu8.4 deb +libsystemd0 255.4-1ubuntu8.5 deb libtasn1-6 4.19.0-3build1 deb libtinfo6 6.4+20240113-1ubuntu2 deb -libudev1 255.4-1ubuntu8.4 deb -libunistring5 1.1-2build1 deb -libuuid1 2.39.3-9ubuntu6.1 deb +libudev1 255.4-1ubuntu8.5 deb +libunistring5 1.1-2build1.1 deb +libuuid1 2.39.3-9ubuntu6.2 deb libxxhash0 0.8.2-2build1 deb libzstd1 1.5.5+dfsg2-2build1.1 deb locales 2.39-0ubuntu8.3 deb login 1:4.13+dfsg1-4ubuntu3.2 deb logsave 1.47.0-2.4~exp1ubuntu4.1 deb mawk 1.3.4.20240123-1build1 deb -mount 2.39.3-9ubuntu6.1 deb +mount 2.39.3-9ubuntu6.2 deb ncurses-base 6.4+20240113-1ubuntu2 deb ncurses-bin 6.4+20240113-1ubuntu2 deb netcat-openbsd 1.226-1ubuntu2 deb openssl 3.0.13-0ubuntu3.4 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb -perl-base 5.38.2-3.2build2 deb +perl-base 5.38.2-3.2build2.1 deb pinentry-curses 1.2.1-3ubuntu5 deb plexmediaserver 1.41.3.9314-a0bfb8370 deb procps 2:4.0.4-4ubuntu3.2 deb @@ -134,14 +134,15 @@ publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb sed 4.9-2build1 deb sensible-utils 0.0.22 deb -systemd-dev 255.4-1ubuntu8.4 deb +systemd-dev 255.4-1ubuntu8.5 deb systemd-hwe-hwdb 255.1.4 deb -systemd-standalone-sysusers 255.4-1ubuntu8.4 deb +systemd-standalone-sysusers 255.4-1ubuntu8.5 deb sysvinit-utils 3.08-6ubuntu3 deb tar 1.35+dfsg-3build1 deb tzdata 2024a-3ubuntu1.1 deb ubuntu-keyring 2023.11.28.1 deb -udev 255.4-1ubuntu8.4 deb -util-linux 2.39.3-9ubuntu6.1 deb +udev 255.4-1ubuntu8.5 deb +unminimize 0.2.1 deb +util-linux 2.39.3-9ubuntu6.2 deb wget 1.21.4-1ubuntu4.1 deb zlib1g 1:1.3.dfsg-3.1ubuntu2.1 deb From 8a22d79bee75518301dd1e8dbeacf21f34d32cc5 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 10 Feb 2025 09:23:43 +0000 Subject: [PATCH 32/95] Bot Updating Templated Files --- Jenkinsfile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index eab9703..62105f4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -72,7 +72,9 @@ pipeline { fi done fi - docker system prune -f --volumes || : ''' + docker system prune -f --volumes || : + docker image prune -af || : + ''' script{ env.EXIT_STATUS = '' env.LS_RELEASE = sh( @@ -753,7 +755,8 @@ pipeline { if [[ -n "${containers}" ]]; then docker stop ${containers} fi - docker system prune -af --volumes || : + docker system prune -f --volumes || : + docker image prune -af || : ''' } } @@ -1179,6 +1182,7 @@ EOF done fi docker system prune -f --volumes || : + docker image prune -af || : ''' cleanWs() } From 2d5bbae0dd7d4bb3406184346450d7f9cee416c0 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 10 Feb 2025 09:28:25 +0000 Subject: [PATCH 33/95] Bot Updating Package Versions --- package_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package_versions.txt b/package_versions.txt index b248cc3..6f37c09 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -139,7 +139,7 @@ systemd-hwe-hwdb 255.1.4 deb systemd-standalone-sysusers 255.4-1ubuntu8.5 deb sysvinit-utils 3.08-6ubuntu3 deb tar 1.35+dfsg-3build1 deb -tzdata 2024a-3ubuntu1.1 deb +tzdata 2024b-0ubuntu0.24.04 deb ubuntu-keyring 2023.11.28.1 deb udev 255.4-1ubuntu8.5 deb unminimize 0.2.1 deb From 0a30a9391e3a9a77b74adfcec29d70f273c79931 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Wed, 12 Feb 2025 17:32:49 +0000 Subject: [PATCH 34/95] Bot Updating Package Versions --- package_versions.txt | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 6f37c09..2293fa7 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -2,7 +2,7 @@ NAME VERSION TYPE adduser 3.137ubuntu1 deb apt 2.7.14build2 deb apt-utils 2.7.14build2 deb -base-files 13ubuntu10.1 deb +base-files 13ubuntu10.2 deb base-passwd 3.6.3build1 deb bash 5.2.21-2ubuntu4 deb bsdutils 1:2.39.3-9ubuntu6.2 deb @@ -36,7 +36,7 @@ hostname 3.23+nmu2ubuntu2 deb init-system-helpers 1.66ubuntu1 deb jq 1.7.1-3build1 deb keyboxd 2.4.4-2ubuntu17 deb -krb5-locales 1.20.1-6ubuntu2.2 deb +krb5-locales 1.20.1-6ubuntu2.3 deb libacl1 2.3.2-1build1.1 deb libapt-pkg6.0t64 2.7.14build2 deb libassuan0 2.5.6-1build1 deb @@ -47,8 +47,8 @@ libblkid1 2.39.3-9ubuntu6.2 deb libbrotli1 1.1.0-2build2 deb libbsd0 0.12.1-1build1.1 deb libbz2-1.0 1.0.8-5.1build0.1 deb -libc-bin 2.39-0ubuntu8.3 deb -libc6 2.39-0ubuntu8.3 deb +libc-bin 2.39-0ubuntu8.4 deb +libc6 2.39-0ubuntu8.4 deb libcap-ng0 0.8.4-2build2 deb libcap2 1:2.66-5ubuntu2.1 deb libcom-err2 1.47.0-2.4~exp1ubuntu4.1 deb @@ -63,15 +63,15 @@ libgcrypt20 1.10.3-2build1 deb libgmp10 2:6.3.0+dfsg-2ubuntu6.1 deb libgnutls30t64 3.8.3-1.1ubuntu3.2 deb libgpg-error0 1.47-3build2.1 deb -libgssapi-krb5-2 1.20.1-6ubuntu2.2 deb +libgssapi-krb5-2 1.20.1-6ubuntu2.3 deb libhogweed6t64 3.9.1-2.2build1.1 deb libidn2-0 2.3.7-2build1.1 deb libjq1 1.7.1-3build1 deb -libk5crypto3 1.20.1-6ubuntu2.2 deb +libk5crypto3 1.20.1-6ubuntu2.3 deb libkeyutils1 1.6.3-3build1 deb libkmod2 31+20240202-2ubuntu7.1 deb -libkrb5-3 1.20.1-6ubuntu2.2 deb -libkrb5support0 1.20.1-6ubuntu2.2 deb +libkrb5-3 1.20.1-6ubuntu2.3 deb +libkrb5support0 1.20.1-6ubuntu2.3 deb libksba8 1.6.6-1build1 deb libldap-common 2.6.7+dfsg-1~exp1ubuntu8.1 deb libldap2 2.6.7+dfsg-1~exp1ubuntu8.1 deb @@ -116,7 +116,7 @@ libunistring5 1.1-2build1.1 deb libuuid1 2.39.3-9ubuntu6.2 deb libxxhash0 0.8.2-2build1 deb libzstd1 1.5.5+dfsg2-2build1.1 deb -locales 2.39-0ubuntu8.3 deb +locales 2.39-0ubuntu8.4 deb login 1:4.13+dfsg1-4ubuntu3.2 deb logsave 1.47.0-2.4~exp1ubuntu4.1 deb mawk 1.3.4.20240123-1build1 deb @@ -128,7 +128,7 @@ openssl 3.0.13-0ubuntu3.4 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2build2.1 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.41.3.9314-a0bfb8370 deb +plexmediaserver 1.41.4.9463-630c9f557 deb procps 2:4.0.4-4ubuntu3.2 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb @@ -139,7 +139,7 @@ systemd-hwe-hwdb 255.1.4 deb systemd-standalone-sysusers 255.4-1ubuntu8.5 deb sysvinit-utils 3.08-6ubuntu3 deb tar 1.35+dfsg-3build1 deb -tzdata 2024b-0ubuntu0.24.04 deb +tzdata 2024b-0ubuntu0.24.04.1 deb ubuntu-keyring 2023.11.28.1 deb udev 255.4-1ubuntu8.5 deb unminimize 0.2.1 deb From 3fbfd24ffabefe68c6f3ae6748c484af6bb3a373 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 24 Feb 2025 09:24:44 +0000 Subject: [PATCH 35/95] Bot Updating Package Versions --- package_versions.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 2293fa7..fe9d4ca 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -36,7 +36,7 @@ hostname 3.23+nmu2ubuntu2 deb init-system-helpers 1.66ubuntu1 deb jq 1.7.1-3build1 deb keyboxd 2.4.4-2ubuntu17 deb -krb5-locales 1.20.1-6ubuntu2.3 deb +krb5-locales 1.20.1-6ubuntu2.4 deb libacl1 2.3.2-1build1.1 deb libapt-pkg6.0t64 2.7.14build2 deb libassuan0 2.5.6-1build1 deb @@ -63,15 +63,15 @@ libgcrypt20 1.10.3-2build1 deb libgmp10 2:6.3.0+dfsg-2ubuntu6.1 deb libgnutls30t64 3.8.3-1.1ubuntu3.2 deb libgpg-error0 1.47-3build2.1 deb -libgssapi-krb5-2 1.20.1-6ubuntu2.3 deb +libgssapi-krb5-2 1.20.1-6ubuntu2.4 deb libhogweed6t64 3.9.1-2.2build1.1 deb libidn2-0 2.3.7-2build1.1 deb libjq1 1.7.1-3build1 deb -libk5crypto3 1.20.1-6ubuntu2.3 deb +libk5crypto3 1.20.1-6ubuntu2.4 deb libkeyutils1 1.6.3-3build1 deb libkmod2 31+20240202-2ubuntu7.1 deb -libkrb5-3 1.20.1-6ubuntu2.3 deb -libkrb5support0 1.20.1-6ubuntu2.3 deb +libkrb5-3 1.20.1-6ubuntu2.4 deb +libkrb5support0 1.20.1-6ubuntu2.4 deb libksba8 1.6.6-1build1 deb libldap-common 2.6.7+dfsg-1~exp1ubuntu8.1 deb libldap2 2.6.7+dfsg-1~exp1ubuntu8.1 deb From 989f8573516427a34b28da727c808d15e94e5356 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 3 Mar 2025 09:26:20 +0000 Subject: [PATCH 36/95] Bot Updating Package Versions --- package_versions.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index fe9d4ca..90fef3d 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -50,7 +50,7 @@ libbz2-1.0 1.0.8-5.1build0.1 deb libc-bin 2.39-0ubuntu8.4 deb libc6 2.39-0ubuntu8.4 deb libcap-ng0 0.8.4-2build2 deb -libcap2 1:2.66-5ubuntu2.1 deb +libcap2 1:2.66-5ubuntu2.2 deb libcom-err2 1.47.0-2.4~exp1ubuntu4.1 deb libcrypt1 1:4.4.36-4build1 deb libcurl4t64 8.5.0-2ubuntu10.6 deb @@ -61,7 +61,7 @@ libffi8 3.4.6-1build1 deb libgcc-s1 14.2.0-4ubuntu2~24.04 deb libgcrypt20 1.10.3-2build1 deb libgmp10 2:6.3.0+dfsg-2ubuntu6.1 deb -libgnutls30t64 3.8.3-1.1ubuntu3.2 deb +libgnutls30t64 3.8.3-1.1ubuntu3.3 deb libgpg-error0 1.47-3build2.1 deb libgssapi-krb5-2 1.20.1-6ubuntu2.4 deb libhogweed6t64 3.9.1-2.2build1.1 deb @@ -73,8 +73,8 @@ libkmod2 31+20240202-2ubuntu7.1 deb libkrb5-3 1.20.1-6ubuntu2.4 deb libkrb5support0 1.20.1-6ubuntu2.4 deb libksba8 1.6.6-1build1 deb -libldap-common 2.6.7+dfsg-1~exp1ubuntu8.1 deb -libldap2 2.6.7+dfsg-1~exp1ubuntu8.1 deb +libldap-common 2.6.7+dfsg-1~exp1ubuntu8.2 deb +libldap2 2.6.7+dfsg-1~exp1ubuntu8.2 deb liblz4-1 1.9.4-1build1.1 deb liblzma5 5.6.1+really5.4.5-1build0.1 deb libmd0 1.1.0-2build1.1 deb @@ -106,10 +106,10 @@ libsmartcols1 2.39.3-9ubuntu6.2 deb libsqlite3-0 3.45.1-1ubuntu2.1 deb libss2 1.47.0-2.4~exp1ubuntu4.1 deb libssh-4 0.10.6-2build2 deb -libssl3t64 3.0.13-0ubuntu3.4 deb +libssl3t64 3.0.13-0ubuntu3.5 deb libstdc++6 14.2.0-4ubuntu2~24.04 deb libsystemd0 255.4-1ubuntu8.5 deb -libtasn1-6 4.19.0-3build1 deb +libtasn1-6 4.19.0-3ubuntu0.24.04.1 deb libtinfo6 6.4+20240113-1ubuntu2 deb libudev1 255.4-1ubuntu8.5 deb libunistring5 1.1-2build1.1 deb @@ -124,7 +124,7 @@ mount 2.39.3-9ubuntu6.2 deb ncurses-base 6.4+20240113-1ubuntu2 deb ncurses-bin 6.4+20240113-1ubuntu2 deb netcat-openbsd 1.226-1ubuntu2 deb -openssl 3.0.13-0ubuntu3.4 deb +openssl 3.0.13-0ubuntu3.5 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2build2.1 deb pinentry-curses 1.2.1-3ubuntu5 deb From a2e1bebb34972afad6792efc83ea42b78dc2b658 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 10 Mar 2025 09:21:30 +0000 Subject: [PATCH 37/95] Bot Updating Package Versions --- package_versions.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 90fef3d..8f17ad9 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -36,7 +36,7 @@ hostname 3.23+nmu2ubuntu2 deb init-system-helpers 1.66ubuntu1 deb jq 1.7.1-3build1 deb keyboxd 2.4.4-2ubuntu17 deb -krb5-locales 1.20.1-6ubuntu2.4 deb +krb5-locales 1.20.1-6ubuntu2.5 deb libacl1 2.3.2-1build1.1 deb libapt-pkg6.0t64 2.7.14build2 deb libassuan0 2.5.6-1build1 deb @@ -63,15 +63,15 @@ libgcrypt20 1.10.3-2build1 deb libgmp10 2:6.3.0+dfsg-2ubuntu6.1 deb libgnutls30t64 3.8.3-1.1ubuntu3.3 deb libgpg-error0 1.47-3build2.1 deb -libgssapi-krb5-2 1.20.1-6ubuntu2.4 deb +libgssapi-krb5-2 1.20.1-6ubuntu2.5 deb libhogweed6t64 3.9.1-2.2build1.1 deb libidn2-0 2.3.7-2build1.1 deb libjq1 1.7.1-3build1 deb -libk5crypto3 1.20.1-6ubuntu2.4 deb +libk5crypto3 1.20.1-6ubuntu2.5 deb libkeyutils1 1.6.3-3build1 deb libkmod2 31+20240202-2ubuntu7.1 deb -libkrb5-3 1.20.1-6ubuntu2.4 deb -libkrb5support0 1.20.1-6ubuntu2.4 deb +libkrb5-3 1.20.1-6ubuntu2.5 deb +libkrb5support0 1.20.1-6ubuntu2.5 deb libksba8 1.6.6-1build1 deb libldap-common 2.6.7+dfsg-1~exp1ubuntu8.2 deb libldap2 2.6.7+dfsg-1~exp1ubuntu8.2 deb From d5127aff6d865a68474945396c91806520c51e66 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 11 Mar 2025 16:41:25 +0000 Subject: [PATCH 38/95] Bot Updating Package Versions --- package_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package_versions.txt b/package_versions.txt index 8f17ad9..2f37afa 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -128,7 +128,7 @@ openssl 3.0.13-0ubuntu3.5 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2build2.1 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.41.4.9463-630c9f557 deb +plexmediaserver 1.41.5.9522-a96edc606 deb procps 2:4.0.4-4ubuntu3.2 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb From 60c1ec04cf1b39353429ff587b0dc7b38b57a536 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 24 Mar 2025 09:28:15 +0000 Subject: [PATCH 39/95] Bot Updating Package Versions --- package_versions.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 2f37afa..0ac896e 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -108,10 +108,10 @@ libss2 1.47.0-2.4~exp1ubuntu4.1 deb libssh-4 0.10.6-2build2 deb libssl3t64 3.0.13-0ubuntu3.5 deb libstdc++6 14.2.0-4ubuntu2~24.04 deb -libsystemd0 255.4-1ubuntu8.5 deb +libsystemd0 255.4-1ubuntu8.6 deb libtasn1-6 4.19.0-3ubuntu0.24.04.1 deb libtinfo6 6.4+20240113-1ubuntu2 deb -libudev1 255.4-1ubuntu8.5 deb +libudev1 255.4-1ubuntu8.6 deb libunistring5 1.1-2build1.1 deb libuuid1 2.39.3-9ubuntu6.2 deb libxxhash0 0.8.2-2build1 deb @@ -134,14 +134,14 @@ publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb sed 4.9-2build1 deb sensible-utils 0.0.22 deb -systemd-dev 255.4-1ubuntu8.5 deb +systemd-dev 255.4-1ubuntu8.6 deb systemd-hwe-hwdb 255.1.4 deb -systemd-standalone-sysusers 255.4-1ubuntu8.5 deb +systemd-standalone-sysusers 255.4-1ubuntu8.6 deb sysvinit-utils 3.08-6ubuntu3 deb tar 1.35+dfsg-3build1 deb tzdata 2024b-0ubuntu0.24.04.1 deb ubuntu-keyring 2023.11.28.1 deb -udev 255.4-1ubuntu8.5 deb +udev 255.4-1ubuntu8.6 deb unminimize 0.2.1 deb util-linux 2.39.3-9ubuntu6.2 deb wget 1.21.4-1ubuntu4.1 deb From 803ec8f8b66ed008534d8f410ee513f79f313d84 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 7 Apr 2025 09:26:58 +0000 Subject: [PATCH 40/95] Bot Updating Package Versions --- package_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package_versions.txt b/package_versions.txt index 0ac896e..6b1d526 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -139,7 +139,7 @@ systemd-hwe-hwdb 255.1.4 deb systemd-standalone-sysusers 255.4-1ubuntu8.6 deb sysvinit-utils 3.08-6ubuntu3 deb tar 1.35+dfsg-3build1 deb -tzdata 2024b-0ubuntu0.24.04.1 deb +tzdata 2025a-0ubuntu0.24.04 deb ubuntu-keyring 2023.11.28.1 deb udev 255.4-1ubuntu8.6 deb unminimize 0.2.1 deb From 3ee08e388d8366c6c49fe2f4a0879771feda05d7 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Thu, 10 Apr 2025 16:42:11 +0000 Subject: [PATCH 41/95] Bot Updating Package Versions --- package_versions.txt | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 6b1d526..e90a1d0 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -16,26 +16,26 @@ dash 0.5.12-6ubuntu5 deb debconf 1.5.86ubuntu1 deb debianutils 5.17build1 deb diffutils 1:3.10-1build1 deb -dirmngr 2.4.4-2ubuntu17 deb +dirmngr 2.4.4-2ubuntu17.2 deb dpkg 1.22.6ubuntu6.1 deb e2fsprogs 1.47.0-2.4~exp1ubuntu4.1 deb findutils 4.9.0-5build1 deb gcc-14-base 14.2.0-4ubuntu2~24.04 deb -gnupg 2.4.4-2ubuntu17 deb -gnupg-l10n 2.4.4-2ubuntu17 deb -gnupg-utils 2.4.4-2ubuntu17 deb -gpg 2.4.4-2ubuntu17 deb -gpg-agent 2.4.4-2ubuntu17 deb -gpg-wks-client 2.4.4-2ubuntu17 deb -gpgconf 2.4.4-2ubuntu17 deb -gpgsm 2.4.4-2ubuntu17 deb -gpgv 2.4.4-2ubuntu17 deb +gnupg 2.4.4-2ubuntu17.2 deb +gnupg-l10n 2.4.4-2ubuntu17.2 deb +gnupg-utils 2.4.4-2ubuntu17.2 deb +gpg 2.4.4-2ubuntu17.2 deb +gpg-agent 2.4.4-2ubuntu17.2 deb +gpg-wks-client 2.4.4-2ubuntu17.2 deb +gpgconf 2.4.4-2ubuntu17.2 deb +gpgsm 2.4.4-2ubuntu17.2 deb +gpgv 2.4.4-2ubuntu17.2 deb grep 3.11-4build1 deb gzip 1.12-1ubuntu3 deb hostname 3.23+nmu2ubuntu2 deb init-system-helpers 1.66ubuntu1 deb jq 1.7.1-3build1 deb -keyboxd 2.4.4-2ubuntu17 deb +keyboxd 2.4.4-2ubuntu17.2 deb krb5-locales 1.20.1-6ubuntu2.5 deb libacl1 2.3.2-1build1.1 deb libapt-pkg6.0t64 2.7.14build2 deb @@ -76,7 +76,7 @@ libksba8 1.6.6-1build1 deb libldap-common 2.6.7+dfsg-1~exp1ubuntu8.2 deb libldap2 2.6.7+dfsg-1~exp1ubuntu8.2 deb liblz4-1 1.9.4-1build1.1 deb -liblzma5 5.6.1+really5.4.5-1build0.1 deb +liblzma5 5.6.1+really5.4.5-1ubuntu0.2 deb libmd0 1.1.0-2build1.1 deb libmount1 2.39.3-9ubuntu6.2 deb libncursesw6 6.4+20240113-1ubuntu2 deb @@ -128,7 +128,7 @@ openssl 3.0.13-0ubuntu3.5 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2build2.1 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.41.5.9522-a96edc606 deb +plexmediaserver 1.41.6.9685-d301f511a deb procps 2:4.0.4-4ubuntu3.2 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb @@ -139,7 +139,7 @@ systemd-hwe-hwdb 255.1.4 deb systemd-standalone-sysusers 255.4-1ubuntu8.6 deb sysvinit-utils 3.08-6ubuntu3 deb tar 1.35+dfsg-3build1 deb -tzdata 2025a-0ubuntu0.24.04 deb +tzdata 2025b-0ubuntu0.24.04 deb ubuntu-keyring 2023.11.28.1 deb udev 255.4-1ubuntu8.6 deb unminimize 0.2.1 deb From 12308d98c6ed4bd0a3cc98fb22345832908fdae0 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 21 Apr 2025 09:27:54 +0000 Subject: [PATCH 42/95] Bot Updating Package Versions --- package_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package_versions.txt b/package_versions.txt index e90a1d0..9344d69 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -126,7 +126,7 @@ ncurses-bin 6.4+20240113-1ubuntu2 deb netcat-openbsd 1.226-1ubuntu2 deb openssl 3.0.13-0ubuntu3.5 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb -perl-base 5.38.2-3.2build2.1 deb +perl-base 5.38.2-3.2ubuntu0.1 deb pinentry-curses 1.2.1-3ubuntu5 deb plexmediaserver 1.41.6.9685-d301f511a deb procps 2:4.0.4-4ubuntu3.2 deb From 5d77e8d8baf59beb29f4ea56ca98f255f2d93df6 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 28 Apr 2025 10:52:39 +0000 Subject: [PATCH 43/95] Bot Updating Templated Files --- README.md | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 6d8a0e9..0109ee5 100644 --- a/README.md +++ b/README.md @@ -77,24 +77,6 @@ Valid settings for VERSION are:- + **`public`**: will update plexpass users to the latest public version, useful for plexpass users that don't want to be on the bleeding edge but still want the latest public updates. + **``**: will select a specific version (eg 0.9.12.4.1192-9a47d21) of plex to install, note you cannot use this to access plexpass versions if you do not have plexpass. -## Read-Only Operation - -This image can be run with a read-only container filesystem. For details please [read the docs](https://docs.linuxserver.io/misc/read-only/). - -### Caveats - -* Runtime update of Plex (and thus Plexpass builds) is not supported. -* Transcode directory must be mounted to a host path or tmpfs. - -## Non-Root Operation - -This image can be run with a non-root user. For details please [read the docs](https://docs.linuxserver.io/misc/non-root/). - -### Caveats - -* Runtime update of Plex (and thus Plexpass builds) is not supported. -* Transcode directory must be mounted to a host path or tmpfs. - ### Hardware Acceleration Many desktop applications need access to a GPU to function properly and even some Desktop Environments have compositor effects that will not function without a GPU. However this is not a hard requirement and all base images will function without a video device mounted into the container. @@ -120,6 +102,24 @@ We automatically add the necessary environment variable that will utilise all th Best effort is made to install tools to allow mounting in /dev/dri on Arm devices. In most cases if /dev/dri exists on the host it should just work. If running a Raspberry Pi 4 be sure to enable `dtoverlay=vc4-fkms-v3d` in your usercfg.txt. +## Read-Only Operation + +This image can be run with a read-only container filesystem. For details please [read the docs](https://docs.linuxserver.io/misc/read-only/). + +### Caveats + +* Runtime update of Plex (and thus Plexpass builds) is not supported. +* Transcode directory must be mounted to a host path or tmpfs. + +## Non-Root Operation + +This image can be run with a non-root user. For details please [read the docs](https://docs.linuxserver.io/misc/non-root/). + +### Caveats + +* Runtime update of Plex (and thus Plexpass builds) is not supported. +* Transcode directory must be mounted to a host path or tmpfs. + ## Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. From 0c7513ed907cc1b96f0f9687fd46351f37cbb039 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 19 May 2025 09:27:26 +0000 Subject: [PATCH 44/95] Bot Updating Templated Files --- readme-vars.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/readme-vars.yml b/readme-vars.yml index fb96495..7e2ea93 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -101,12 +101,14 @@ init_diagram: | init-plex-update -> init-config-end init-config -> init-crontab-config init-mods-end -> init-custom-files + init-adduser -> init-device-perms base -> init-envfile base -> init-migrations init-config-end -> init-mods init-mods-package-install -> init-mods-end init-mods -> init-mods-package-install init-adduser -> init-os-end + init-device-perms -> init-os-end init-envfile -> init-os-end init-config -> init-plex-chown init-plex-chown -> init-plex-claim From 20c539447bbe6a82ce86f9c1326f55d4156f8ddd Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 20 May 2025 15:41:18 +0000 Subject: [PATCH 45/95] Bot Updating Package Versions --- package_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package_versions.txt b/package_versions.txt index 9344d69..c88b7c8 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -128,7 +128,7 @@ openssl 3.0.13-0ubuntu3.5 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2ubuntu0.1 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.41.6.9685-d301f511a deb +plexmediaserver 1.41.7.9799-5bce000f7 deb procps 2:4.0.4-4ubuntu3.2 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb From bf5b90a8e274a84448618d0eec973901f6feb48d Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 27 May 2025 19:31:29 +0000 Subject: [PATCH 46/95] Bot Updating Package Versions --- package_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package_versions.txt b/package_versions.txt index c88b7c8..8e04f82 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -128,7 +128,7 @@ openssl 3.0.13-0ubuntu3.5 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2ubuntu0.1 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.41.7.9799-5bce000f7 deb +plexmediaserver 1.41.7.9823-59f304c16 deb procps 2:4.0.4-4ubuntu3.2 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb From 3833657a3a18fe783a4633baa9a8cd10a0275cda Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 2 Jun 2025 09:28:17 +0000 Subject: [PATCH 47/95] Bot Updating Package Versions --- package_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package_versions.txt b/package_versions.txt index 8e04f82..afc92d6 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -103,7 +103,7 @@ libsemanage-common 3.5-1build5 deb libsemanage2 3.5-1build5 deb libsepol2 3.5-2build1 deb libsmartcols1 2.39.3-9ubuntu6.2 deb -libsqlite3-0 3.45.1-1ubuntu2.1 deb +libsqlite3-0 3.45.1-1ubuntu2.3 deb libss2 1.47.0-2.4~exp1ubuntu4.1 deb libssh-4 0.10.6-2build2 deb libssl3t64 3.0.13-0ubuntu3.5 deb From 3044e621bfce11c55a497ff8b7c7e75f52f52ceb Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 9 Jun 2025 09:28:57 +0000 Subject: [PATCH 48/95] Bot Updating Package Versions --- package_versions.txt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index afc92d6..6afe213 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,7 +1,7 @@ NAME VERSION TYPE adduser 3.137ubuntu1 deb -apt 2.7.14build2 deb -apt-utils 2.7.14build2 deb +apt 2.8.3 deb +apt-utils 2.8.3 deb base-files 13ubuntu10.2 deb base-passwd 3.6.3build1 deb bash 5.2.21-2ubuntu4 deb @@ -36,9 +36,9 @@ hostname 3.23+nmu2ubuntu2 deb init-system-helpers 1.66ubuntu1 deb jq 1.7.1-3build1 deb keyboxd 2.4.4-2ubuntu17.2 deb -krb5-locales 1.20.1-6ubuntu2.5 deb +krb5-locales 1.20.1-6ubuntu2.6 deb libacl1 2.3.2-1build1.1 deb -libapt-pkg6.0t64 2.7.14build2 deb +libapt-pkg6.0t64 2.8.3 deb libassuan0 2.5.6-1build1 deb libattr1 1:2.5.2-1build1.1 deb libaudit-common 1:3.1.2-2.1build1.1 deb @@ -63,15 +63,15 @@ libgcrypt20 1.10.3-2build1 deb libgmp10 2:6.3.0+dfsg-2ubuntu6.1 deb libgnutls30t64 3.8.3-1.1ubuntu3.3 deb libgpg-error0 1.47-3build2.1 deb -libgssapi-krb5-2 1.20.1-6ubuntu2.5 deb +libgssapi-krb5-2 1.20.1-6ubuntu2.6 deb libhogweed6t64 3.9.1-2.2build1.1 deb libidn2-0 2.3.7-2build1.1 deb libjq1 1.7.1-3build1 deb -libk5crypto3 1.20.1-6ubuntu2.5 deb +libk5crypto3 1.20.1-6ubuntu2.6 deb libkeyutils1 1.6.3-3build1 deb libkmod2 31+20240202-2ubuntu7.1 deb -libkrb5-3 1.20.1-6ubuntu2.5 deb -libkrb5support0 1.20.1-6ubuntu2.5 deb +libkrb5-3 1.20.1-6ubuntu2.6 deb +libkrb5support0 1.20.1-6ubuntu2.6 deb libksba8 1.6.6-1build1 deb libldap-common 2.6.7+dfsg-1~exp1ubuntu8.2 deb libldap2 2.6.7+dfsg-1~exp1ubuntu8.2 deb @@ -139,7 +139,7 @@ systemd-hwe-hwdb 255.1.4 deb systemd-standalone-sysusers 255.4-1ubuntu8.6 deb sysvinit-utils 3.08-6ubuntu3 deb tar 1.35+dfsg-3build1 deb -tzdata 2025b-0ubuntu0.24.04 deb +tzdata 2025b-0ubuntu0.24.04.1 deb ubuntu-keyring 2023.11.28.1 deb udev 255.4-1ubuntu8.6 deb unminimize 0.2.1 deb From 0465b8095ea3c2f5190f5a0f13c10b69860484fb Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 10 Jun 2025 17:34:04 +0000 Subject: [PATCH 49/95] Bot Updating Templated Files --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 62105f4..1f446e8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -782,7 +782,7 @@ pipeline { docker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v ${TEMPDIR}:/tmp \ - ghcr.io/anchore/syft:latest \ + ghcr.io/anchore/syft:v1.26.1 \ ${LOCAL_CONTAINER} -o table=/tmp/package_versions.txt NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 ) echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github" From c27d92587e0512513ad826a4ebde8a2cd1a5dd15 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 10 Jun 2025 17:38:12 +0000 Subject: [PATCH 50/95] Bot Updating Package Versions --- package_versions.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 6afe213..85fa788 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -108,10 +108,10 @@ libss2 1.47.0-2.4~exp1ubuntu4.1 deb libssh-4 0.10.6-2build2 deb libssl3t64 3.0.13-0ubuntu3.5 deb libstdc++6 14.2.0-4ubuntu2~24.04 deb -libsystemd0 255.4-1ubuntu8.6 deb +libsystemd0 255.4-1ubuntu8.8 deb libtasn1-6 4.19.0-3ubuntu0.24.04.1 deb libtinfo6 6.4+20240113-1ubuntu2 deb -libudev1 255.4-1ubuntu8.6 deb +libudev1 255.4-1ubuntu8.8 deb libunistring5 1.1-2build1.1 deb libuuid1 2.39.3-9ubuntu6.2 deb libxxhash0 0.8.2-2build1 deb @@ -128,20 +128,20 @@ openssl 3.0.13-0ubuntu3.5 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2ubuntu0.1 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.41.7.9823-59f304c16 deb +plexmediaserver 1.41.8.9834-071366d65 deb procps 2:4.0.4-4ubuntu3.2 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb sed 4.9-2build1 deb sensible-utils 0.0.22 deb -systemd-dev 255.4-1ubuntu8.6 deb +systemd-dev 255.4-1ubuntu8.8 deb systemd-hwe-hwdb 255.1.4 deb -systemd-standalone-sysusers 255.4-1ubuntu8.6 deb +systemd-standalone-sysusers 255.4-1ubuntu8.8 deb sysvinit-utils 3.08-6ubuntu3 deb tar 1.35+dfsg-3build1 deb tzdata 2025b-0ubuntu0.24.04.1 deb ubuntu-keyring 2023.11.28.1 deb -udev 255.4-1ubuntu8.6 deb +udev 255.4-1ubuntu8.8 deb unminimize 0.2.1 deb util-linux 2.39.3-9ubuntu6.2 deb wget 1.21.4-1ubuntu4.1 deb From b65ef27e653b9ab473d02806efae400b5e9309c0 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 30 Jun 2025 09:30:34 +0000 Subject: [PATCH 51/95] Bot Updating Package Versions --- package_versions.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 85fa788..0b4106c 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -85,10 +85,10 @@ libnghttp2-14 1.59.0-1ubuntu0.2 deb libnpth0t64 1.6-3.1build1 deb libonig5 6.9.9-1build1 deb libp11-kit0 0.25.3-4ubuntu2.1 deb -libpam-modules 1.5.3-5ubuntu5.1 deb -libpam-modules-bin 1.5.3-5ubuntu5.1 deb -libpam-runtime 1.5.3-5ubuntu5.1 deb -libpam0g 1.5.3-5ubuntu5.1 deb +libpam-modules 1.5.3-5ubuntu5.4 deb +libpam-modules-bin 1.5.3-5ubuntu5.4 deb +libpam-runtime 1.5.3-5ubuntu5.4 deb +libpam0g 1.5.3-5ubuntu5.4 deb libpcre2-8-0 10.42-4ubuntu2.1 deb libproc2-0 2:4.0.4-4ubuntu3.2 deb libpsl5t64 0.21.2-1.1build1 deb From 0900661b6ff299cde4349f93bbd0616fd0312748 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 7 Jul 2025 09:28:59 +0000 Subject: [PATCH 52/95] Bot Updating Templated Files --- Jenkinsfile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 1f446e8..7c4bb8d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -96,7 +96,11 @@ pipeline { env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/' env.PULL_REQUEST = env.CHANGE_ID env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml' + if ( env.SYFT_IMAGE_TAG == null ) { + env.SYFT_IMAGE_TAG = 'latest' + } } + echo "Using syft image tag ${SYFT_IMAGE_TAG}" sh '''#! /bin/bash echo "The default github branch detected as ${GH_DEFAULT_BRANCH}" ''' script{ @@ -782,7 +786,7 @@ pipeline { docker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v ${TEMPDIR}:/tmp \ - ghcr.io/anchore/syft:v1.26.1 \ + ghcr.io/anchore/syft:${SYFT_IMAGE_TAG} \ ${LOCAL_CONTAINER} -o table=/tmp/package_versions.txt NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 ) echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github" @@ -892,6 +896,7 @@ pipeline { -e WEB_AUTH=\"${CI_AUTH}\" \ -e WEB_PATH=\"${CI_WEBPATH}\" \ -e NODE_NAME=\"${NODE_NAME}\" \ + -e SYFT_IMAGE_TAG=\"${CI_SYFT_IMAGE_TAG:-${SYFT_IMAGE_TAG}}\" \ -t ghcr.io/linuxserver/ci:latest \ python3 test_build.py''' } From 6987e66f3c4218a717e9c09b4c40bac1e656673f Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 7 Jul 2025 09:30:48 +0000 Subject: [PATCH 53/95] Bot Updating Templated Files --- .github/workflows/call_issue_pr_tracker.yml | 3 +++ .github/workflows/call_issues_cron.yml | 3 +++ .github/workflows/external_trigger.yml | 15 +++++++++------ .github/workflows/external_trigger_scheduler.yml | 3 +++ .github/workflows/greetings.yml | 6 ++++++ .github/workflows/package_trigger_scheduler.yml | 3 +++ README.md | 3 --- 7 files changed, 27 insertions(+), 9 deletions(-) diff --git a/.github/workflows/call_issue_pr_tracker.yml b/.github/workflows/call_issue_pr_tracker.yml index 2c30784..d07cf12 100755 --- a/.github/workflows/call_issue_pr_tracker.yml +++ b/.github/workflows/call_issue_pr_tracker.yml @@ -8,6 +8,9 @@ on: pull_request_review: types: [submitted,edited,dismissed] +permissions: + contents: read + jobs: manage-project: permissions: diff --git a/.github/workflows/call_issues_cron.yml b/.github/workflows/call_issues_cron.yml index e38dfc0..7763722 100755 --- a/.github/workflows/call_issues_cron.yml +++ b/.github/workflows/call_issues_cron.yml @@ -4,6 +4,9 @@ on: - cron: '33 12 * * *' workflow_dispatch: +permissions: + contents: read + jobs: stale: permissions: diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index f502b3a..5cadde5 100644 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -3,6 +3,9 @@ name: External Trigger Main on: workflow_dispatch: +permissions: + contents: read + jobs: external-trigger-master: runs-on: ubuntu-latest @@ -43,8 +46,8 @@ jobs: "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} exit 1 fi - EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g') - echo "External version: \`${EXT_RELEASE}\`" >> $GITHUB_STEP_SUMMARY + EXT_RELEASE_SANITIZED=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g') + echo "Sanitized external version: \`${EXT_RELEASE_SANITIZED}\`" >> $GITHUB_STEP_SUMMARY echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY image="linuxserver/plex" tag="latest" @@ -100,8 +103,8 @@ jobs: exit 1 fi echo "Last pushed version: \`${IMAGE_VERSION}\`" >> $GITHUB_STEP_SUMMARY - if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then - echo "Version \`${EXT_RELEASE}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY + if [ "${EXT_RELEASE_SANITIZED}" == "${IMAGE_VERSION}" ]; then + echo "Sanitized version \`${EXT_RELEASE_SANITIZED}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY exit 0 elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-plex/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY @@ -116,7 +119,7 @@ jobs: "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} else printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY - echo "New version \`${EXT_RELEASE}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY + echo "New sanitized version \`${EXT_RELEASE_SANITIZED}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY if [[ "${artifacts_found}" == "true" ]]; then echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY fi @@ -136,7 +139,7 @@ jobs: --data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \ --data-urlencode "Submit=Submit" echo "**** Notifying Discord ****" - TRIGGER_REASON="A version change was detected for plex tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}" + TRIGGER_REASON="A version change was detected for plex tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE_SANITIZED}" curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, "description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}], "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} diff --git a/.github/workflows/external_trigger_scheduler.yml b/.github/workflows/external_trigger_scheduler.yml index d1c45f1..b3649f8 100644 --- a/.github/workflows/external_trigger_scheduler.yml +++ b/.github/workflows/external_trigger_scheduler.yml @@ -5,6 +5,9 @@ on: - cron: '14 * * * *' workflow_dispatch: +permissions: + contents: read + jobs: external-trigger-scheduler: runs-on: ubuntu-latest diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml index 7a82d14..9f32b52 100755 --- a/.github/workflows/greetings.yml +++ b/.github/workflows/greetings.yml @@ -2,8 +2,14 @@ name: Greetings on: [pull_request_target, issues] +permissions: + contents: read + jobs: greeting: + permissions: + issues: write + pull-requests: write runs-on: ubuntu-latest steps: - uses: actions/first-interaction@v1 diff --git a/.github/workflows/package_trigger_scheduler.yml b/.github/workflows/package_trigger_scheduler.yml index abaf63d..be3abba 100644 --- a/.github/workflows/package_trigger_scheduler.yml +++ b/.github/workflows/package_trigger_scheduler.yml @@ -5,6 +5,9 @@ on: - cron: '0 9 * * 1' workflow_dispatch: +permissions: + contents: read + jobs: package-trigger-scheduler: runs-on: ubuntu-latest diff --git a/README.md b/README.md index 0109ee5..5831463 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,6 @@ [![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!") [![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://linuxserver.io/discord "realtime support / chat with the community and the team.") [![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.") -[![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.") [![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.") [![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Supporters&logo=open%20collective)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget") @@ -22,7 +21,6 @@ Find us at: * [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more! * [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team. * [Discourse](https://discourse.linuxserver.io) - post on our community forum. -* [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images. * [GitHub](https://github.com/linuxserver) - view the source for all of our repositories. * [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget @@ -55,7 +53,6 @@ The architectures supported by this image are: | :----: | :----: | ---- | | x86-64 | ✅ | amd64-\ | | arm64 | ✅ | arm64v8-\ | -| armhf | ❌ | | ## Application Setup From 635f9ddf031191e8146c1af5ec239217c88001cb Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 14 Jul 2025 09:34:45 +0000 Subject: [PATCH 54/95] Bot Updating Package Versions --- package_versions.txt | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 0b4106c..1f54cc7 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -5,7 +5,7 @@ apt-utils 2.8.3 deb base-files 13ubuntu10.2 deb base-passwd 3.6.3build1 deb bash 5.2.21-2ubuntu4 deb -bsdutils 1:2.39.3-9ubuntu6.2 deb +bsdutils 1:2.39.3-9ubuntu6.3 deb ca-certificates 20240203 deb catatonit 0.1.7-1 deb coreutils 9.4-3ubuntu6 deb @@ -16,26 +16,26 @@ dash 0.5.12-6ubuntu5 deb debconf 1.5.86ubuntu1 deb debianutils 5.17build1 deb diffutils 1:3.10-1build1 deb -dirmngr 2.4.4-2ubuntu17.2 deb +dirmngr 2.4.4-2ubuntu17.3 deb dpkg 1.22.6ubuntu6.1 deb e2fsprogs 1.47.0-2.4~exp1ubuntu4.1 deb findutils 4.9.0-5build1 deb gcc-14-base 14.2.0-4ubuntu2~24.04 deb -gnupg 2.4.4-2ubuntu17.2 deb -gnupg-l10n 2.4.4-2ubuntu17.2 deb -gnupg-utils 2.4.4-2ubuntu17.2 deb -gpg 2.4.4-2ubuntu17.2 deb -gpg-agent 2.4.4-2ubuntu17.2 deb -gpg-wks-client 2.4.4-2ubuntu17.2 deb -gpgconf 2.4.4-2ubuntu17.2 deb -gpgsm 2.4.4-2ubuntu17.2 deb -gpgv 2.4.4-2ubuntu17.2 deb +gnupg 2.4.4-2ubuntu17.3 deb +gnupg-l10n 2.4.4-2ubuntu17.3 deb +gnupg-utils 2.4.4-2ubuntu17.3 deb +gpg 2.4.4-2ubuntu17.3 deb +gpg-agent 2.4.4-2ubuntu17.3 deb +gpg-wks-client 2.4.4-2ubuntu17.3 deb +gpgconf 2.4.4-2ubuntu17.3 deb +gpgsm 2.4.4-2ubuntu17.3 deb +gpgv 2.4.4-2ubuntu17.3 deb grep 3.11-4build1 deb -gzip 1.12-1ubuntu3 deb +gzip 1.12-1ubuntu3.1 deb hostname 3.23+nmu2ubuntu2 deb init-system-helpers 1.66ubuntu1 deb jq 1.7.1-3build1 deb -keyboxd 2.4.4-2ubuntu17.2 deb +keyboxd 2.4.4-2ubuntu17.3 deb krb5-locales 1.20.1-6ubuntu2.6 deb libacl1 2.3.2-1build1.1 deb libapt-pkg6.0t64 2.8.3 deb @@ -43,7 +43,7 @@ libassuan0 2.5.6-1build1 deb libattr1 1:2.5.2-1build1.1 deb libaudit-common 1:3.1.2-2.1build1.1 deb libaudit1 1:3.1.2-2.1build1.1 deb -libblkid1 2.39.3-9ubuntu6.2 deb +libblkid1 2.39.3-9ubuntu6.3 deb libbrotli1 1.1.0-2build2 deb libbsd0 0.12.1-1build1.1 deb libbz2-1.0 1.0.8-5.1build0.1 deb @@ -78,7 +78,7 @@ libldap2 2.6.7+dfsg-1~exp1ubuntu8.2 deb liblz4-1 1.9.4-1build1.1 deb liblzma5 5.6.1+really5.4.5-1ubuntu0.2 deb libmd0 1.1.0-2build1.1 deb -libmount1 2.39.3-9ubuntu6.2 deb +libmount1 2.39.3-9ubuntu6.3 deb libncursesw6 6.4+20240113-1ubuntu2 deb libnettle8t64 3.9.1-2.2build1.1 deb libnghttp2-14 1.59.0-1ubuntu0.2 deb @@ -102,10 +102,10 @@ libselinux1 3.5-2ubuntu2.1 deb libsemanage-common 3.5-1build5 deb libsemanage2 3.5-1build5 deb libsepol2 3.5-2build1 deb -libsmartcols1 2.39.3-9ubuntu6.2 deb +libsmartcols1 2.39.3-9ubuntu6.3 deb libsqlite3-0 3.45.1-1ubuntu2.3 deb libss2 1.47.0-2.4~exp1ubuntu4.1 deb -libssh-4 0.10.6-2build2 deb +libssh-4 0.10.6-2ubuntu0.1 deb libssl3t64 3.0.13-0ubuntu3.5 deb libstdc++6 14.2.0-4ubuntu2~24.04 deb libsystemd0 255.4-1ubuntu8.8 deb @@ -113,14 +113,14 @@ libtasn1-6 4.19.0-3ubuntu0.24.04.1 deb libtinfo6 6.4+20240113-1ubuntu2 deb libudev1 255.4-1ubuntu8.8 deb libunistring5 1.1-2build1.1 deb -libuuid1 2.39.3-9ubuntu6.2 deb +libuuid1 2.39.3-9ubuntu6.3 deb libxxhash0 0.8.2-2build1 deb libzstd1 1.5.5+dfsg2-2build1.1 deb locales 2.39-0ubuntu8.4 deb login 1:4.13+dfsg1-4ubuntu3.2 deb logsave 1.47.0-2.4~exp1ubuntu4.1 deb mawk 1.3.4.20240123-1build1 deb -mount 2.39.3-9ubuntu6.2 deb +mount 2.39.3-9ubuntu6.3 deb ncurses-base 6.4+20240113-1ubuntu2 deb ncurses-bin 6.4+20240113-1ubuntu2 deb netcat-openbsd 1.226-1ubuntu2 deb @@ -143,6 +143,6 @@ tzdata 2025b-0ubuntu0.24.04.1 deb ubuntu-keyring 2023.11.28.1 deb udev 255.4-1ubuntu8.8 deb unminimize 0.2.1 deb -util-linux 2.39.3-9ubuntu6.2 deb +util-linux 2.39.3-9ubuntu6.3 deb wget 1.21.4-1ubuntu4.1 deb zlib1g 1:1.3.dfsg-3.1ubuntu2.1 deb From 3975f3f4baffe477266d3f96a2cc74912e5649c0 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 15 Jul 2025 15:37:49 +0000 Subject: [PATCH 55/95] Bot Updating Package Versions --- package_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package_versions.txt b/package_versions.txt index 1f54cc7..1d3e312 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -128,7 +128,7 @@ openssl 3.0.13-0ubuntu3.5 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2ubuntu0.1 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.41.8.9834-071366d65 deb +plexmediaserver 1.41.9.9961-46083195d deb procps 2:4.0.4-4ubuntu3.2 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb From 54bac1c3cf15128ecf7832fda93eb5378ac804a1 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 21 Jul 2025 09:35:33 +0000 Subject: [PATCH 56/95] Bot Updating Package Versions --- package_versions.txt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 1d3e312..62c5a45 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -47,8 +47,8 @@ libblkid1 2.39.3-9ubuntu6.3 deb libbrotli1 1.1.0-2build2 deb libbsd0 0.12.1-1build1.1 deb libbz2-1.0 1.0.8-5.1build0.1 deb -libc-bin 2.39-0ubuntu8.4 deb -libc6 2.39-0ubuntu8.4 deb +libc-bin 2.39-0ubuntu8.5 deb +libc6 2.39-0ubuntu8.5 deb libcap-ng0 0.8.4-2build2 deb libcap2 1:2.66-5ubuntu2.2 deb libcom-err2 1.47.0-2.4~exp1ubuntu4.1 deb @@ -61,7 +61,7 @@ libffi8 3.4.6-1build1 deb libgcc-s1 14.2.0-4ubuntu2~24.04 deb libgcrypt20 1.10.3-2build1 deb libgmp10 2:6.3.0+dfsg-2ubuntu6.1 deb -libgnutls30t64 3.8.3-1.1ubuntu3.3 deb +libgnutls30t64 3.8.3-1.1ubuntu3.4 deb libgpg-error0 1.47-3build2.1 deb libgssapi-krb5-2 1.20.1-6ubuntu2.6 deb libhogweed6t64 3.9.1-2.2build1.1 deb @@ -108,15 +108,15 @@ libss2 1.47.0-2.4~exp1ubuntu4.1 deb libssh-4 0.10.6-2ubuntu0.1 deb libssl3t64 3.0.13-0ubuntu3.5 deb libstdc++6 14.2.0-4ubuntu2~24.04 deb -libsystemd0 255.4-1ubuntu8.8 deb +libsystemd0 255.4-1ubuntu8.10 deb libtasn1-6 4.19.0-3ubuntu0.24.04.1 deb libtinfo6 6.4+20240113-1ubuntu2 deb -libudev1 255.4-1ubuntu8.8 deb +libudev1 255.4-1ubuntu8.10 deb libunistring5 1.1-2build1.1 deb libuuid1 2.39.3-9ubuntu6.3 deb libxxhash0 0.8.2-2build1 deb libzstd1 1.5.5+dfsg2-2build1.1 deb -locales 2.39-0ubuntu8.4 deb +locales 2.39-0ubuntu8.5 deb login 1:4.13+dfsg1-4ubuntu3.2 deb logsave 1.47.0-2.4~exp1ubuntu4.1 deb mawk 1.3.4.20240123-1build1 deb @@ -134,14 +134,14 @@ publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb sed 4.9-2build1 deb sensible-utils 0.0.22 deb -systemd-dev 255.4-1ubuntu8.8 deb +systemd-dev 255.4-1ubuntu8.10 deb systemd-hwe-hwdb 255.1.4 deb -systemd-standalone-sysusers 255.4-1ubuntu8.8 deb +systemd-standalone-sysusers 255.4-1ubuntu8.10 deb sysvinit-utils 3.08-6ubuntu3 deb tar 1.35+dfsg-3build1 deb tzdata 2025b-0ubuntu0.24.04.1 deb ubuntu-keyring 2023.11.28.1 deb -udev 255.4-1ubuntu8.8 deb +udev 255.4-1ubuntu8.10 deb unminimize 0.2.1 deb util-linux 2.39.3-9ubuntu6.3 deb wget 1.21.4-1ubuntu4.1 deb From f0f381c0db2ce456f909e9223916769728485f2b Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 28 Jul 2025 09:35:03 +0000 Subject: [PATCH 57/95] Bot Updating Package Versions --- package_versions.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 62c5a45..f8c336e 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -34,7 +34,7 @@ grep 3.11-4build1 deb gzip 1.12-1ubuntu3.1 deb hostname 3.23+nmu2ubuntu2 deb init-system-helpers 1.66ubuntu1 deb -jq 1.7.1-3build1 deb +jq 1.7.1-3ubuntu0.24.04.1 deb keyboxd 2.4.4-2ubuntu17.3 deb krb5-locales 1.20.1-6ubuntu2.6 deb libacl1 2.3.2-1build1.1 deb @@ -66,7 +66,7 @@ libgpg-error0 1.47-3build2.1 deb libgssapi-krb5-2 1.20.1-6ubuntu2.6 deb libhogweed6t64 3.9.1-2.2build1.1 deb libidn2-0 2.3.7-2build1.1 deb -libjq1 1.7.1-3build1 deb +libjq1 1.7.1-3ubuntu0.24.04.1 deb libk5crypto3 1.20.1-6ubuntu2.6 deb libkeyutils1 1.6.3-3build1 deb libkmod2 31+20240202-2ubuntu7.1 deb From b5d4cc7e71fb95a91480e9394a0e0b84ca609c21 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 4 Aug 2025 09:38:53 +0000 Subject: [PATCH 58/95] Bot Updating Package Versions --- package_versions.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index f8c336e..88b41c7 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -103,7 +103,7 @@ libsemanage-common 3.5-1build5 deb libsemanage2 3.5-1build5 deb libsepol2 3.5-2build1 deb libsmartcols1 2.39.3-9ubuntu6.3 deb -libsqlite3-0 3.45.1-1ubuntu2.3 deb +libsqlite3-0 3.45.1-1ubuntu2.4 deb libss2 1.47.0-2.4~exp1ubuntu4.1 deb libssh-4 0.10.6-2ubuntu0.1 deb libssl3t64 3.0.13-0ubuntu3.5 deb @@ -126,7 +126,7 @@ ncurses-bin 6.4+20240113-1ubuntu2 deb netcat-openbsd 1.226-1ubuntu2 deb openssl 3.0.13-0ubuntu3.5 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb -perl-base 5.38.2-3.2ubuntu0.1 deb +perl-base 5.38.2-3.2ubuntu0.2 deb pinentry-curses 1.2.1-3ubuntu5 deb plexmediaserver 1.41.9.9961-46083195d deb procps 2:4.0.4-4ubuntu3.2 deb From 5d98680464fb1f2db9e58f6b98f96d4fcb2dbef4 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Fri, 8 Aug 2025 22:38:07 +0000 Subject: [PATCH 59/95] Bot Updating Package Versions --- package_versions.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 88b41c7..5ae3384 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -2,7 +2,7 @@ NAME VERSION TYPE adduser 3.137ubuntu1 deb apt 2.8.3 deb apt-utils 2.8.3 deb -base-files 13ubuntu10.2 deb +base-files 13ubuntu10.3 deb base-passwd 3.6.3build1 deb bash 5.2.21-2ubuntu4 deb bsdutils 1:2.39.3-9ubuntu6.3 deb @@ -128,7 +128,7 @@ openssl 3.0.13-0ubuntu3.5 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2ubuntu0.2 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.41.9.9961-46083195d deb +plexmediaserver 1.42.1.10054-f333bdaa8 deb procps 2:4.0.4-4ubuntu3.2 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb From 86f90113e589a64df76603fd4649058314fca409 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 11 Aug 2025 17:38:38 +0000 Subject: [PATCH 60/95] Bot Updating Package Versions --- package_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package_versions.txt b/package_versions.txt index 5ae3384..8f436db 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -128,7 +128,7 @@ openssl 3.0.13-0ubuntu3.5 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2ubuntu0.2 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.42.1.10054-f333bdaa8 deb +plexmediaserver 1.42.1.10060-4e8b05daf deb procps 2:4.0.4-4ubuntu3.2 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb From 65664b148aaac80f3ad19e86fe473e04646ae8bc Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 15 Sep 2025 09:28:27 +0000 Subject: [PATCH 61/95] Bot Updating Package Versions --- package_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package_versions.txt b/package_versions.txt index 8f436db..aeea39c 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -8,7 +8,7 @@ bash 5.2.21-2ubuntu4 deb bsdutils 1:2.39.3-9ubuntu6.3 deb ca-certificates 20240203 deb catatonit 0.1.7-1 deb -coreutils 9.4-3ubuntu6 deb +coreutils 9.4-3ubuntu6.1 deb cron 3.0pl1-184ubuntu2 deb cron-daemon-common 3.0pl1-184ubuntu2 deb curl 8.5.0-2ubuntu10.6 deb From 62d7a9ecfee55a04c598a6285f2a0e030d5ea674 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 22 Sep 2025 18:45:02 +0000 Subject: [PATCH 62/95] Bot Updating Package Versions --- package_versions.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index aeea39c..f2eb639 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -103,7 +103,7 @@ libsemanage-common 3.5-1build5 deb libsemanage2 3.5-1build5 deb libsepol2 3.5-2build1 deb libsmartcols1 2.39.3-9ubuntu6.3 deb -libsqlite3-0 3.45.1-1ubuntu2.4 deb +libsqlite3-0 3.45.1-1ubuntu2.5 deb libss2 1.47.0-2.4~exp1ubuntu4.1 deb libssh-4 0.10.6-2ubuntu0.1 deb libssl3t64 3.0.13-0ubuntu3.5 deb @@ -128,14 +128,14 @@ openssl 3.0.13-0ubuntu3.5 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2ubuntu0.2 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.42.1.10060-4e8b05daf deb +plexmediaserver 1.42.2.10156-f737b826c deb procps 2:4.0.4-4ubuntu3.2 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb sed 4.9-2build1 deb sensible-utils 0.0.22 deb systemd-dev 255.4-1ubuntu8.10 deb -systemd-hwe-hwdb 255.1.4 deb +systemd-hwe-hwdb 255.1.5 deb systemd-standalone-sysusers 255.4-1ubuntu8.10 deb sysvinit-utils 3.08-6ubuntu3 deb tar 1.35+dfsg-3build1 deb From b36fa22efe82bac4a0a51582d0b7359073379867 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 29 Sep 2025 09:29:13 +0000 Subject: [PATCH 63/95] Bot Updating Package Versions --- package_versions.txt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index f2eb639..cace5e0 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -17,7 +17,7 @@ debconf 1.5.86ubuntu1 deb debianutils 5.17build1 deb diffutils 1:3.10-1build1 deb dirmngr 2.4.4-2ubuntu17.3 deb -dpkg 1.22.6ubuntu6.1 deb +dpkg 1.22.6ubuntu6.2 deb e2fsprogs 1.47.0-2.4~exp1ubuntu4.1 deb findutils 4.9.0-5build1 deb gcc-14-base 14.2.0-4ubuntu2~24.04 deb @@ -47,8 +47,8 @@ libblkid1 2.39.3-9ubuntu6.3 deb libbrotli1 1.1.0-2build2 deb libbsd0 0.12.1-1build1.1 deb libbz2-1.0 1.0.8-5.1build0.1 deb -libc-bin 2.39-0ubuntu8.5 deb -libc6 2.39-0ubuntu8.5 deb +libc-bin 2.39-0ubuntu8.6 deb +libc6 2.39-0ubuntu8.6 deb libcap-ng0 0.8.4-2build2 deb libcap2 1:2.66-5ubuntu2.2 deb libcom-err2 1.47.0-2.4~exp1ubuntu4.1 deb @@ -85,10 +85,10 @@ libnghttp2-14 1.59.0-1ubuntu0.2 deb libnpth0t64 1.6-3.1build1 deb libonig5 6.9.9-1build1 deb libp11-kit0 0.25.3-4ubuntu2.1 deb -libpam-modules 1.5.3-5ubuntu5.4 deb -libpam-modules-bin 1.5.3-5ubuntu5.4 deb -libpam-runtime 1.5.3-5ubuntu5.4 deb -libpam0g 1.5.3-5ubuntu5.4 deb +libpam-modules 1.5.3-5ubuntu5.5 deb +libpam-modules-bin 1.5.3-5ubuntu5.5 deb +libpam-runtime 1.5.3-5ubuntu5.5 deb +libpam0g 1.5.3-5ubuntu5.5 deb libpcre2-8-0 10.42-4ubuntu2.1 deb libproc2-0 2:4.0.4-4ubuntu3.2 deb libpsl5t64 0.21.2-1.1build1 deb @@ -116,7 +116,7 @@ libunistring5 1.1-2build1.1 deb libuuid1 2.39.3-9ubuntu6.3 deb libxxhash0 0.8.2-2build1 deb libzstd1 1.5.5+dfsg2-2build1.1 deb -locales 2.39-0ubuntu8.5 deb +locales 2.39-0ubuntu8.6 deb login 1:4.13+dfsg1-4ubuntu3.2 deb logsave 1.47.0-2.4~exp1ubuntu4.1 deb mawk 1.3.4.20240123-1build1 deb From c2b3335d4fb5aba0d4850018dc704f8d2c999683 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 6 Oct 2025 09:29:43 +0000 Subject: [PATCH 64/95] Bot Updating Package Versions --- package_versions.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index cace5e0..889bb37 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -17,7 +17,7 @@ debconf 1.5.86ubuntu1 deb debianutils 5.17build1 deb diffutils 1:3.10-1build1 deb dirmngr 2.4.4-2ubuntu17.3 deb -dpkg 1.22.6ubuntu6.2 deb +dpkg 1.22.6ubuntu6.5 deb e2fsprogs 1.47.0-2.4~exp1ubuntu4.1 deb findutils 4.9.0-5build1 deb gcc-14-base 14.2.0-4ubuntu2~24.04 deb @@ -106,7 +106,7 @@ libsmartcols1 2.39.3-9ubuntu6.3 deb libsqlite3-0 3.45.1-1ubuntu2.5 deb libss2 1.47.0-2.4~exp1ubuntu4.1 deb libssh-4 0.10.6-2ubuntu0.1 deb -libssl3t64 3.0.13-0ubuntu3.5 deb +libssl3t64 3.0.13-0ubuntu3.6 deb libstdc++6 14.2.0-4ubuntu2~24.04 deb libsystemd0 255.4-1ubuntu8.10 deb libtasn1-6 4.19.0-3ubuntu0.24.04.1 deb @@ -124,7 +124,7 @@ mount 2.39.3-9ubuntu6.3 deb ncurses-base 6.4+20240113-1ubuntu2 deb ncurses-bin 6.4+20240113-1ubuntu2 deb netcat-openbsd 1.226-1ubuntu2 deb -openssl 3.0.13-0ubuntu3.5 deb +openssl 3.0.13-0ubuntu3.6 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2ubuntu0.2 deb pinentry-curses 1.2.1-3ubuntu5 deb From dbc5f5c85bc4a1026e014ae0181903bc7306f7df Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 13 Oct 2025 09:29:56 +0000 Subject: [PATCH 65/95] Bot Updating Package Versions --- package_versions.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 889bb37..e47249f 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -108,10 +108,10 @@ libss2 1.47.0-2.4~exp1ubuntu4.1 deb libssh-4 0.10.6-2ubuntu0.1 deb libssl3t64 3.0.13-0ubuntu3.6 deb libstdc++6 14.2.0-4ubuntu2~24.04 deb -libsystemd0 255.4-1ubuntu8.10 deb +libsystemd0 255.4-1ubuntu8.11 deb libtasn1-6 4.19.0-3ubuntu0.24.04.1 deb libtinfo6 6.4+20240113-1ubuntu2 deb -libudev1 255.4-1ubuntu8.10 deb +libudev1 255.4-1ubuntu8.11 deb libunistring5 1.1-2build1.1 deb libuuid1 2.39.3-9ubuntu6.3 deb libxxhash0 0.8.2-2build1 deb @@ -134,14 +134,14 @@ publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb sed 4.9-2build1 deb sensible-utils 0.0.22 deb -systemd-dev 255.4-1ubuntu8.10 deb -systemd-hwe-hwdb 255.1.5 deb -systemd-standalone-sysusers 255.4-1ubuntu8.10 deb +systemd-dev 255.4-1ubuntu8.11 deb +systemd-hwe-hwdb 255.1.6 deb +systemd-standalone-sysusers 255.4-1ubuntu8.11 deb sysvinit-utils 3.08-6ubuntu3 deb tar 1.35+dfsg-3build1 deb tzdata 2025b-0ubuntu0.24.04.1 deb ubuntu-keyring 2023.11.28.1 deb -udev 255.4-1ubuntu8.10 deb +udev 255.4-1ubuntu8.11 deb unminimize 0.2.1 deb util-linux 2.39.3-9ubuntu6.3 deb wget 1.21.4-1ubuntu4.1 deb From 2e4d6ad90366abb673d6e488fa588ceeafdb91a6 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 27 Oct 2025 09:29:22 +0000 Subject: [PATCH 66/95] Bot Updating Templated Files --- Jenkinsfile | 108 +++++++++++++++++++++++++++++++++++----------------- 1 file changed, 73 insertions(+), 35 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 7c4bb8d..50ed76a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -210,6 +210,7 @@ pipeline { env.META_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' + env.CITEST_IMAGETAG = 'latest' } } } @@ -235,6 +236,7 @@ pipeline { env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/' env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' + env.CITEST_IMAGETAG = 'develop' } } } @@ -260,6 +262,7 @@ pipeline { env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/' env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' + env.CITEST_IMAGETAG = 'develop' } } } @@ -282,7 +285,7 @@ pipeline { -v ${WORKSPACE}:/mnt \ -e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \ -e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \ - ghcr.io/linuxserver/baseimage-alpine:3.20 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\ + ghcr.io/linuxserver/baseimage-alpine:3 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\ apk add --no-cache python3 && \ python3 -m venv /lsiopy && \ pip install --no-cache-dir -U pip && \ @@ -617,13 +620,16 @@ pipeline { echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin + if [[ "${PACKAGE_CHECK}" != "true" ]]; then + declare -A pids IFS=',' read -ra CACHE <<< "$BUILDCACHE" for i in "${CACHE[@]}"; do docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} & + pids[$!]="$i" done - for p in $(jobs -p); do - wait "$p" || { echo "job $p failed" >&2; exit 1; } + for p in "${!pids[@]}"; do + wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; } done fi ''' @@ -683,13 +689,16 @@ pipeline { echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin + if [[ "${PACKAGE_CHECK}" != "true" ]]; then + declare -A pids IFS=',' read -ra CACHE <<< "$BUILDCACHE" for i in "${CACHE[@]}"; do docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} & + pids[$!]="$i" done - for p in $(jobs -p); do - wait "$p" || { echo "job $p failed" >&2; exit 1; } + for p in "${!pids[@]}"; do + wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; } done fi ''' @@ -743,12 +752,14 @@ pipeline { echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin if [[ "${PACKAGE_CHECK}" != "true" ]]; then + declare -A pids IFS=',' read -ra CACHE <<< "$BUILDCACHE" for i in "${CACHE[@]}"; do docker push ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} & + pids[$!]="$i" done - for p in $(jobs -p); do - wait "$p" || { echo "job $p failed" >&2; exit 1; } + for p in "${!pids[@]}"; do + wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; } done fi ''' @@ -873,7 +884,7 @@ pipeline { CI_DOCKERENV="LSIO_FIRST_PARTY=true" fi fi - docker pull ghcr.io/linuxserver/ci:latest + docker pull ghcr.io/linuxserver/ci:${CITEST_IMAGETAG} if [ "${MULTIARCH}" == "true" ]; then docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64 docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} @@ -897,7 +908,7 @@ pipeline { -e WEB_PATH=\"${CI_WEBPATH}\" \ -e NODE_NAME=\"${NODE_NAME}\" \ -e SYFT_IMAGE_TAG=\"${CI_SYFT_IMAGE_TAG:-${SYFT_IMAGE_TAG}}\" \ - -t ghcr.io/linuxserver/ci:latest \ + -t ghcr.io/linuxserver/ci:${CITEST_IMAGETAG} \ python3 test_build.py''' } } @@ -923,9 +934,11 @@ pipeline { CACHEIMAGE=${i} fi done - docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:latest -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} + docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:latest -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \ + { if [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; } if [ -n "${SEMVER}" ]; then - docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} + docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \ + { if [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; } fi done ''' @@ -950,20 +963,27 @@ pipeline { CACHEIMAGE=${i} fi done - docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-latest -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} - docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-latest -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} + docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-latest -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \ + { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; } + docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-latest -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || \ + { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; } if [ -n "${SEMVER}" ]; then - docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} - docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} + docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \ + { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; } + docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || \ + { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; } fi done for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do - docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest - docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} - - docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} + docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest || \ + { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; } + docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} || \ + { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; } + docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} || \ + { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; } if [ -n "${SEMVER}" ]; then - docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} + docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} || \ + { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; } fi done ''' @@ -981,23 +1001,41 @@ pipeline { environment name: 'EXIT_STATUS', value: '' } steps { - echo "Pushing New tag for current commit ${META_TAG}" - sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \ - -d '{"tag":"'${META_TAG}'",\ - "object": "'${COMMIT_SHA}'",\ - "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\ - "type": "commit",\ - "tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}' ''' - echo "Pushing New release for Tag" sh '''#! /bin/bash + echo "Auto-generating release notes" + if [ "$(git tag --points-at HEAD)" != "" ]; then + echo "Existing tag points to current commit, suggesting no new LS changes" + AUTO_RELEASE_NOTES="No changes" + else + AUTO_RELEASE_NOTES=$(curl -fsL -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github+json" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases/generate-notes \ + -d '{"tag_name":"'${META_TAG}'",\ + "target_commitish": "master"}' \ + | jq -r '.body' | sed 's|## What.s Changed||') + fi + echo "Pushing New tag for current commit ${META_TAG}" + curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \ + -d '{"tag":"'${META_TAG}'",\ + "object": "'${COMMIT_SHA}'",\ + "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\ + "type": "commit",\ + "tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}' + echo "Pushing New release for Tag" echo "Data change at JSON endpoint ${JSON_URL}" > releasebody.json - echo '{"tag_name":"'${META_TAG}'",\ - "target_commitish": "master",\ - "name": "'${META_TAG}'",\ - "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start - printf '","draft": false,"prerelease": false}' >> releasebody.json - paste -d'\\0' start releasebody.json > releasebody.json.done - curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done''' + jq -n \ + --arg tag_name "$META_TAG" \ + --arg target_commitish "master" \ + --arg ci_url "${CI_URL:-N/A}" \ + --arg ls_notes "$AUTO_RELEASE_NOTES" \ + --arg remote_notes "$(cat releasebody.json)" \ + '{ + "tag_name": $tag_name, + "target_commitish": $target_commitish, + "name": $tag_name, + "body": ("**CI Report:**\\n\\n" + $ci_url + "\\n\\n**LinuxServer Changes:**\\n\\n" + $ls_notes + "\\n\\n**Remote Changes:**\\n\\n" + $remote_notes), + "draft": false, + "prerelease": false }' > releasebody.json.done + curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done + ''' } } // Add protection to the release branch From 7adf1b75cabf9d38bdf1466966f3e8eff4684e3d Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 10 Nov 2025 09:30:19 +0000 Subject: [PATCH 67/95] Bot Updating Package Versions --- package_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package_versions.txt b/package_versions.txt index e47249f..b665769 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -105,7 +105,7 @@ libsepol2 3.5-2build1 deb libsmartcols1 2.39.3-9ubuntu6.3 deb libsqlite3-0 3.45.1-1ubuntu2.5 deb libss2 1.47.0-2.4~exp1ubuntu4.1 deb -libssh-4 0.10.6-2ubuntu0.1 deb +libssh-4 0.10.6-2ubuntu0.2 deb libssl3t64 3.0.13-0ubuntu3.6 deb libstdc++6 14.2.0-4ubuntu2~24.04 deb libsystemd0 255.4-1ubuntu8.11 deb From 215506d3cdc139bb1678e504f6f7013c60a3470e Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 24 Nov 2025 09:30:42 +0000 Subject: [PATCH 68/95] Bot Updating Templated Files --- Jenkinsfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 50ed76a..338b91f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -908,6 +908,8 @@ pipeline { -e WEB_PATH=\"${CI_WEBPATH}\" \ -e NODE_NAME=\"${NODE_NAME}\" \ -e SYFT_IMAGE_TAG=\"${CI_SYFT_IMAGE_TAG:-${SYFT_IMAGE_TAG}}\" \ + -e COMMIT_SHA=\"${COMMIT_SHA}\" \ + -e BUILD_NUMBER=\"${BUILD_NUMBER}\" \ -t ghcr.io/linuxserver/ci:${CITEST_IMAGETAG} \ python3 test_build.py''' } From 64aed46150d64be24921d6f1536b506bd86ae607 Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Tue, 9 Dec 2025 12:58:58 -0500 Subject: [PATCH 69/95] use device perm fixer from baseimage --- Dockerfile | 3 +- Dockerfile.aarch64 | 3 +- .../s6-rc.d/init-plex-gid-video/run | 37 ------------------- .../s6-rc.d/init-plex-gid-video/type | 1 - .../s6-overlay/s6-rc.d/init-plex-gid-video/up | 1 - .../dependencies.d/init-plex-claim | 0 .../dependencies.d/init-plex-gid-video | 0 .../user/contents.d/init-plex-gid-video | 0 8 files changed, 4 insertions(+), 41 deletions(-) delete mode 100755 root/etc/s6-overlay/s6-rc.d/init-plex-gid-video/run delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-plex-gid-video/type delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-plex-gid-video/up rename root/etc/s6-overlay/s6-rc.d/{init-plex-gid-video => init-plex-update}/dependencies.d/init-plex-claim (100%) delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-plex-update/dependencies.d/init-plex-gid-video delete mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-plex-gid-video diff --git a/Dockerfile b/Dockerfile index bf19423..0ad3c08 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,7 +24,8 @@ ENV DEBIAN_FRONTEND="noninteractive" \ PLEX_MEDIA_SERVER_USER="abc" \ PLEX_MEDIA_SERVER_INFO_VENDOR="Docker" \ PLEX_MEDIA_SERVER_INFO_DEVICE="Docker Container (LinuxServer.io)" \ - TMPDIR=/run/plex-temp + TMPDIR=/run/plex-temp \ + ATTACHED_DEVICES_PERMS="/dev/dri /dev/dvb -type c" RUN \ echo "**** install runtime packages ****" && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index b1c14c6..50d9455 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -21,7 +21,8 @@ ENV DEBIAN_FRONTEND="noninteractive" \ PLEX_MEDIA_SERVER_USER="abc" \ PLEX_MEDIA_SERVER_INFO_VENDOR="Docker" \ PLEX_MEDIA_SERVER_INFO_DEVICE="Docker Container (LinuxServer.io)" \ - TMPDIR=/run/plex-temp + TMPDIR=/run/plex-temp \ + ATTACHED_DEVICES_PERMS="/dev/dri /dev/dvb -type c" RUN \ echo "**** install runtime packages ****" && \ diff --git a/root/etc/s6-overlay/s6-rc.d/init-plex-gid-video/run b/root/etc/s6-overlay/s6-rc.d/init-plex-gid-video/run deleted file mode 100755 index 083570f..0000000 --- a/root/etc/s6-overlay/s6-rc.d/init-plex-gid-video/run +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/with-contenv bash -# shellcheck shell=bash - -if [[ -z ${LSIO_NON_ROOT_USER} ]]; then - FILES=$(find /dev/dri /dev/dvb -type c -print 2>/dev/null) - - for i in ${FILES}; do - VIDEO_GID=$(stat -c '%g' "${i}") - VIDEO_UID=$(stat -c '%u' "${i}") - # check if user matches device - if id -u abc | grep -qw "${VIDEO_UID}"; then - echo "**** permissions for ${i} are good ****" - else - # check if group matches and that device has group rw - if id -G abc | grep -qw "${VIDEO_GID}" && [[ $(stat -c '%A' "${i}" | cut -b 5,6) == "rw" ]]; then - echo "**** permissions for ${i} are good ****" - # check if device needs to be added to video group - elif ! id -G abc | grep -qw "${VIDEO_GID}"; then - # check if video group needs to be created - VIDEO_NAME=$(getent group "${VIDEO_GID}" | awk -F: '{print $1}') - if [[ -z "${VIDEO_NAME}" ]]; then - VIDEO_NAME="video$(head /dev/urandom | tr -dc 'a-z0-9' | head -c4)" - groupadd "${VIDEO_NAME}" - groupmod -g "${VIDEO_GID}" "${VIDEO_NAME}" - echo "**** creating video group ${VIDEO_NAME} with id ${VIDEO_GID} ****" - fi - echo "**** adding ${i} to video group ${VIDEO_NAME} with id ${VIDEO_GID} ****" - usermod -a -G "${VIDEO_NAME}" abc - fi - # check if device has group rw - if [[ $(stat -c '%A' "${i}" | cut -b 5,6) != "rw" ]]; then - echo -e "**** The device ${i} does not have group read/write permissions, attempting to fix inside the container. ****" - chmod g+rw "${i}" - fi - fi - done -fi diff --git a/root/etc/s6-overlay/s6-rc.d/init-plex-gid-video/type b/root/etc/s6-overlay/s6-rc.d/init-plex-gid-video/type deleted file mode 100644 index 3d92b15..0000000 --- a/root/etc/s6-overlay/s6-rc.d/init-plex-gid-video/type +++ /dev/null @@ -1 +0,0 @@ -oneshot \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-plex-gid-video/up b/root/etc/s6-overlay/s6-rc.d/init-plex-gid-video/up deleted file mode 100644 index 05f6fde..0000000 --- a/root/etc/s6-overlay/s6-rc.d/init-plex-gid-video/up +++ /dev/null @@ -1 +0,0 @@ -/etc/s6-overlay/s6-rc.d/init-plex-gid-video/run \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-plex-gid-video/dependencies.d/init-plex-claim b/root/etc/s6-overlay/s6-rc.d/init-plex-update/dependencies.d/init-plex-claim similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/init-plex-gid-video/dependencies.d/init-plex-claim rename to root/etc/s6-overlay/s6-rc.d/init-plex-update/dependencies.d/init-plex-claim diff --git a/root/etc/s6-overlay/s6-rc.d/init-plex-update/dependencies.d/init-plex-gid-video b/root/etc/s6-overlay/s6-rc.d/init-plex-update/dependencies.d/init-plex-gid-video deleted file mode 100644 index e69de29..0000000 diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-plex-gid-video b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-plex-gid-video deleted file mode 100644 index e69de29..0000000 From f32896aed44c649aa06a8574e6e7e3c98dd22ccc Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Sat, 13 Dec 2025 16:34:25 +0000 Subject: [PATCH 70/95] Bot Updating Templated Files --- readme-vars.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/readme-vars.yml b/readme-vars.yml index 7e2ea93..2ad47e0 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -112,8 +112,7 @@ init_diagram: | init-envfile -> init-os-end init-config -> init-plex-chown init-plex-chown -> init-plex-claim - init-plex-claim -> init-plex-gid-video - init-plex-gid-video -> init-plex-update + init-plex-claim -> init-plex-update init-custom-files -> init-services init-services -> svc-cron svc-cron -> legacy-services From 8056a354f583645d60f4ac2eb208f38b6ac06b4a Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 22 Dec 2025 09:35:14 +0000 Subject: [PATCH 71/95] Bot Updating Package Versions --- package_versions.txt | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index b665769..5c9db03 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -5,7 +5,7 @@ apt-utils 2.8.3 deb base-files 13ubuntu10.3 deb base-passwd 3.6.3build1 deb bash 5.2.21-2ubuntu4 deb -bsdutils 1:2.39.3-9ubuntu6.3 deb +bsdutils 1:2.39.3-9ubuntu6.4 deb ca-certificates 20240203 deb catatonit 0.1.7-1 deb coreutils 9.4-3ubuntu6.1 deb @@ -43,7 +43,7 @@ libassuan0 2.5.6-1build1 deb libattr1 1:2.5.2-1build1.1 deb libaudit-common 1:3.1.2-2.1build1.1 deb libaudit1 1:3.1.2-2.1build1.1 deb -libblkid1 2.39.3-9ubuntu6.3 deb +libblkid1 2.39.3-9ubuntu6.4 deb libbrotli1 1.1.0-2build2 deb libbsd0 0.12.1-1build1.1 deb libbz2-1.0 1.0.8-5.1build0.1 deb @@ -78,7 +78,7 @@ libldap2 2.6.7+dfsg-1~exp1ubuntu8.2 deb liblz4-1 1.9.4-1build1.1 deb liblzma5 5.6.1+really5.4.5-1ubuntu0.2 deb libmd0 1.1.0-2build1.1 deb -libmount1 2.39.3-9ubuntu6.3 deb +libmount1 2.39.3-9ubuntu6.4 deb libncursesw6 6.4+20240113-1ubuntu2 deb libnettle8t64 3.9.1-2.2build1.1 deb libnghttp2-14 1.59.0-1ubuntu0.2 deb @@ -102,25 +102,25 @@ libselinux1 3.5-2ubuntu2.1 deb libsemanage-common 3.5-1build5 deb libsemanage2 3.5-1build5 deb libsepol2 3.5-2build1 deb -libsmartcols1 2.39.3-9ubuntu6.3 deb +libsmartcols1 2.39.3-9ubuntu6.4 deb libsqlite3-0 3.45.1-1ubuntu2.5 deb libss2 1.47.0-2.4~exp1ubuntu4.1 deb libssh-4 0.10.6-2ubuntu0.2 deb libssl3t64 3.0.13-0ubuntu3.6 deb libstdc++6 14.2.0-4ubuntu2~24.04 deb -libsystemd0 255.4-1ubuntu8.11 deb +libsystemd0 255.4-1ubuntu8.12 deb libtasn1-6 4.19.0-3ubuntu0.24.04.1 deb libtinfo6 6.4+20240113-1ubuntu2 deb -libudev1 255.4-1ubuntu8.11 deb +libudev1 255.4-1ubuntu8.12 deb libunistring5 1.1-2build1.1 deb -libuuid1 2.39.3-9ubuntu6.3 deb +libuuid1 2.39.3-9ubuntu6.4 deb libxxhash0 0.8.2-2build1 deb libzstd1 1.5.5+dfsg2-2build1.1 deb locales 2.39-0ubuntu8.6 deb login 1:4.13+dfsg1-4ubuntu3.2 deb logsave 1.47.0-2.4~exp1ubuntu4.1 deb mawk 1.3.4.20240123-1build1 deb -mount 2.39.3-9ubuntu6.3 deb +mount 2.39.3-9ubuntu6.4 deb ncurses-base 6.4+20240113-1ubuntu2 deb ncurses-bin 6.4+20240113-1ubuntu2 deb netcat-openbsd 1.226-1ubuntu2 deb @@ -134,15 +134,15 @@ publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb sed 4.9-2build1 deb sensible-utils 0.0.22 deb -systemd-dev 255.4-1ubuntu8.11 deb +systemd-dev 255.4-1ubuntu8.12 deb systemd-hwe-hwdb 255.1.6 deb -systemd-standalone-sysusers 255.4-1ubuntu8.11 deb +systemd-standalone-sysusers 255.4-1ubuntu8.12 deb sysvinit-utils 3.08-6ubuntu3 deb tar 1.35+dfsg-3build1 deb tzdata 2025b-0ubuntu0.24.04.1 deb ubuntu-keyring 2023.11.28.1 deb -udev 255.4-1ubuntu8.11 deb +udev 255.4-1ubuntu8.12 deb unminimize 0.2.1 deb -util-linux 2.39.3-9ubuntu6.3 deb +util-linux 2.39.3-9ubuntu6.4 deb wget 1.21.4-1ubuntu4.1 deb zlib1g 1:1.3.dfsg-3.1ubuntu2.1 deb From 77cca7947b54dcb09a9461898cb07467ee74fabc Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 19 Jan 2026 09:41:26 +0000 Subject: [PATCH 72/95] Bot Updating Package Versions --- package_versions.txt | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 5c9db03..362af80 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -16,26 +16,26 @@ dash 0.5.12-6ubuntu5 deb debconf 1.5.86ubuntu1 deb debianutils 5.17build1 deb diffutils 1:3.10-1build1 deb -dirmngr 2.4.4-2ubuntu17.3 deb +dirmngr 2.4.4-2ubuntu17.4 deb dpkg 1.22.6ubuntu6.5 deb e2fsprogs 1.47.0-2.4~exp1ubuntu4.1 deb findutils 4.9.0-5build1 deb gcc-14-base 14.2.0-4ubuntu2~24.04 deb -gnupg 2.4.4-2ubuntu17.3 deb -gnupg-l10n 2.4.4-2ubuntu17.3 deb -gnupg-utils 2.4.4-2ubuntu17.3 deb -gpg 2.4.4-2ubuntu17.3 deb -gpg-agent 2.4.4-2ubuntu17.3 deb -gpg-wks-client 2.4.4-2ubuntu17.3 deb -gpgconf 2.4.4-2ubuntu17.3 deb -gpgsm 2.4.4-2ubuntu17.3 deb -gpgv 2.4.4-2ubuntu17.3 deb +gnupg 2.4.4-2ubuntu17.4 deb +gnupg-l10n 2.4.4-2ubuntu17.4 deb +gnupg-utils 2.4.4-2ubuntu17.4 deb +gpg 2.4.4-2ubuntu17.4 deb +gpg-agent 2.4.4-2ubuntu17.4 deb +gpg-wks-client 2.4.4-2ubuntu17.4 deb +gpgconf 2.4.4-2ubuntu17.4 deb +gpgsm 2.4.4-2ubuntu17.4 deb +gpgv 2.4.4-2ubuntu17.4 deb grep 3.11-4build1 deb gzip 1.12-1ubuntu3.1 deb hostname 3.23+nmu2ubuntu2 deb init-system-helpers 1.66ubuntu1 deb jq 1.7.1-3ubuntu0.24.04.1 deb -keyboxd 2.4.4-2ubuntu17.3 deb +keyboxd 2.4.4-2ubuntu17.4 deb krb5-locales 1.20.1-6ubuntu2.6 deb libacl1 2.3.2-1build1.1 deb libapt-pkg6.0t64 2.8.3 deb @@ -109,7 +109,7 @@ libssh-4 0.10.6-2ubuntu0.2 deb libssl3t64 3.0.13-0ubuntu3.6 deb libstdc++6 14.2.0-4ubuntu2~24.04 deb libsystemd0 255.4-1ubuntu8.12 deb -libtasn1-6 4.19.0-3ubuntu0.24.04.1 deb +libtasn1-6 4.19.0-3ubuntu0.24.04.2 deb libtinfo6 6.4+20240113-1ubuntu2 deb libudev1 255.4-1ubuntu8.12 deb libunistring5 1.1-2build1.1 deb From 163c200dcb433b38e1dd0cae9c8b925f0305b058 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 27 Jan 2026 19:43:54 +0000 Subject: [PATCH 73/95] Bot Updating Package Versions --- package_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package_versions.txt b/package_versions.txt index 362af80..da3815d 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -128,7 +128,7 @@ openssl 3.0.13-0ubuntu3.6 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2ubuntu0.2 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.42.2.10156-f737b826c deb +plexmediaserver 1.43.0.10467-2b1ba6e69 deb procps 2:4.0.4-4ubuntu3.2 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb From 2d9cdff1636eca28014ccc437b1ff200df4c18c4 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Wed, 28 Jan 2026 20:54:07 +0000 Subject: [PATCH 74/95] Bot Updating Package Versions --- package_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package_versions.txt b/package_versions.txt index da3815d..362af80 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -128,7 +128,7 @@ openssl 3.0.13-0ubuntu3.6 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2ubuntu0.2 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.43.0.10467-2b1ba6e69 deb +plexmediaserver 1.42.2.10156-f737b826c deb procps 2:4.0.4-4ubuntu3.2 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb From c9ffa886373e16154375f3d1e5075d0395efc6f2 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 9 Feb 2026 10:08:55 +0000 Subject: [PATCH 75/95] Bot Updating Package Versions --- package_versions.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 362af80..5c8c1bb 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -47,8 +47,8 @@ libblkid1 2.39.3-9ubuntu6.4 deb libbrotli1 1.1.0-2build2 deb libbsd0 0.12.1-1build1.1 deb libbz2-1.0 1.0.8-5.1build0.1 deb -libc-bin 2.39-0ubuntu8.6 deb -libc6 2.39-0ubuntu8.6 deb +libc-bin 2.39-0ubuntu8.7 deb +libc6 2.39-0ubuntu8.7 deb libcap-ng0 0.8.4-2build2 deb libcap2 1:2.66-5ubuntu2.2 deb libcom-err2 1.47.0-2.4~exp1ubuntu4.1 deb @@ -73,8 +73,8 @@ libkmod2 31+20240202-2ubuntu7.1 deb libkrb5-3 1.20.1-6ubuntu2.6 deb libkrb5support0 1.20.1-6ubuntu2.6 deb libksba8 1.6.6-1build1 deb -libldap-common 2.6.7+dfsg-1~exp1ubuntu8.2 deb -libldap2 2.6.7+dfsg-1~exp1ubuntu8.2 deb +libldap-common 2.6.10+dfsg-0ubuntu0.24.04.1 deb +libldap2 2.6.10+dfsg-0ubuntu0.24.04.1 deb liblz4-1 1.9.4-1build1.1 deb liblzma5 5.6.1+really5.4.5-1ubuntu0.2 deb libmd0 1.1.0-2build1.1 deb @@ -106,7 +106,7 @@ libsmartcols1 2.39.3-9ubuntu6.4 deb libsqlite3-0 3.45.1-1ubuntu2.5 deb libss2 1.47.0-2.4~exp1ubuntu4.1 deb libssh-4 0.10.6-2ubuntu0.2 deb -libssl3t64 3.0.13-0ubuntu3.6 deb +libssl3t64 3.0.13-0ubuntu3.7 deb libstdc++6 14.2.0-4ubuntu2~24.04 deb libsystemd0 255.4-1ubuntu8.12 deb libtasn1-6 4.19.0-3ubuntu0.24.04.2 deb @@ -116,7 +116,7 @@ libunistring5 1.1-2build1.1 deb libuuid1 2.39.3-9ubuntu6.4 deb libxxhash0 0.8.2-2build1 deb libzstd1 1.5.5+dfsg2-2build1.1 deb -locales 2.39-0ubuntu8.6 deb +locales 2.39-0ubuntu8.7 deb login 1:4.13+dfsg1-4ubuntu3.2 deb logsave 1.47.0-2.4~exp1ubuntu4.1 deb mawk 1.3.4.20240123-1build1 deb @@ -124,7 +124,7 @@ mount 2.39.3-9ubuntu6.4 deb ncurses-base 6.4+20240113-1ubuntu2 deb ncurses-bin 6.4+20240113-1ubuntu2 deb netcat-openbsd 1.226-1ubuntu2 deb -openssl 3.0.13-0ubuntu3.6 deb +openssl 3.0.13-0ubuntu3.7 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2ubuntu0.2 deb pinentry-curses 1.2.1-3ubuntu5 deb From 944fc560c6550440d707bcab090452b349666a7a Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Wed, 11 Feb 2026 16:18:08 +0000 Subject: [PATCH 76/95] Bot Updating Templated Files --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 338b91f..b4fb77c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -285,7 +285,7 @@ pipeline { -v ${WORKSPACE}:/mnt \ -e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \ -e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \ - ghcr.io/linuxserver/baseimage-alpine:3 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\ + ghcr.io/linuxserver/baseimage-alpine:3.23 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\ apk add --no-cache python3 && \ python3 -m venv /lsiopy && \ pip install --no-cache-dir -U pip && \ From 6374e18803562032815f83c169f43eb2e098d573 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Wed, 11 Feb 2026 16:20:09 +0000 Subject: [PATCH 77/95] Bot Updating Templated Files --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5831463..94c1429 100644 --- a/README.md +++ b/README.md @@ -122,7 +122,7 @@ This image can be run with a non-root user. For details please [read the docs](h To help you get started creating a container from this image you can either use docker-compose or the docker cli. >[!NOTE] ->Unless a parameter is flaged as 'optional', it is *mandatory* and a value must be provided. +>Unless a parameter is flagged as 'optional', it is *mandatory* and a value must be provided. ### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose)) From 82cbb863bc48970752fb1b889b24360aa135ee6e Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Wed, 11 Feb 2026 16:23:50 +0000 Subject: [PATCH 78/95] Bot Updating Package Versions --- package_versions.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 5c8c1bb..747e3d9 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -2,7 +2,7 @@ NAME VERSION TYPE adduser 3.137ubuntu1 deb apt 2.8.3 deb apt-utils 2.8.3 deb -base-files 13ubuntu10.3 deb +base-files 13ubuntu10.4 deb base-passwd 3.6.3build1 deb bash 5.2.21-2ubuntu4 deb bsdutils 1:2.39.3-9ubuntu6.4 deb @@ -128,7 +128,7 @@ openssl 3.0.13-0ubuntu3.7 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2ubuntu0.2 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.42.2.10156-f737b826c deb +plexmediaserver 1.43.0.10492-121068a07 deb procps 2:4.0.4-4ubuntu3.2 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb From 4a4dc88e6c48e41f87ad02180045a491c7acb378 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 23 Feb 2026 10:03:04 +0000 Subject: [PATCH 79/95] Bot Updating Package Versions --- package_versions.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 747e3d9..b1ccad2 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -20,7 +20,7 @@ dirmngr 2.4.4-2ubuntu17.4 deb dpkg 1.22.6ubuntu6.5 deb e2fsprogs 1.47.0-2.4~exp1ubuntu4.1 deb findutils 4.9.0-5build1 deb -gcc-14-base 14.2.0-4ubuntu2~24.04 deb +gcc-14-base 14.2.0-4ubuntu2~24.04.1 deb gnupg 2.4.4-2ubuntu17.4 deb gnupg-l10n 2.4.4-2ubuntu17.4 deb gnupg-utils 2.4.4-2ubuntu17.4 deb @@ -58,10 +58,10 @@ libdb5.3t64 5.3.28+dfsg2-7 deb libdebconfclient0 0.271ubuntu3 deb libext2fs2t64 1.47.0-2.4~exp1ubuntu4.1 deb libffi8 3.4.6-1build1 deb -libgcc-s1 14.2.0-4ubuntu2~24.04 deb +libgcc-s1 14.2.0-4ubuntu2~24.04.1 deb libgcrypt20 1.10.3-2build1 deb libgmp10 2:6.3.0+dfsg-2ubuntu6.1 deb -libgnutls30t64 3.8.3-1.1ubuntu3.4 deb +libgnutls30t64 3.8.3-1.1ubuntu3.5 deb libgpg-error0 1.47-3build2.1 deb libgssapi-krb5-2 1.20.1-6ubuntu2.6 deb libhogweed6t64 3.9.1-2.2build1.1 deb @@ -107,7 +107,7 @@ libsqlite3-0 3.45.1-1ubuntu2.5 deb libss2 1.47.0-2.4~exp1ubuntu4.1 deb libssh-4 0.10.6-2ubuntu0.2 deb libssl3t64 3.0.13-0ubuntu3.7 deb -libstdc++6 14.2.0-4ubuntu2~24.04 deb +libstdc++6 14.2.0-4ubuntu2~24.04.1 deb libsystemd0 255.4-1ubuntu8.12 deb libtasn1-6 4.19.0-3ubuntu0.24.04.2 deb libtinfo6 6.4+20240113-1ubuntu2 deb @@ -135,7 +135,7 @@ readline-common 8.2-4build1 deb sed 4.9-2build1 deb sensible-utils 0.0.22 deb systemd-dev 255.4-1ubuntu8.12 deb -systemd-hwe-hwdb 255.1.6 deb +systemd-hwe-hwdb 255.1.7 deb systemd-standalone-sysusers 255.4-1ubuntu8.12 deb sysvinit-utils 3.08-6ubuntu3 deb tar 1.35+dfsg-3build1 deb From cb3568d81a96efc2b7b5487517e1796349c8cdd0 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 2 Mar 2026 09:58:27 +0000 Subject: [PATCH 80/95] Bot Updating Package Versions --- package_versions.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index b1ccad2..a28714d 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -11,7 +11,7 @@ catatonit 0.1.7-1 deb coreutils 9.4-3ubuntu6.1 deb cron 3.0pl1-184ubuntu2 deb cron-daemon-common 3.0pl1-184ubuntu2 deb -curl 8.5.0-2ubuntu10.6 deb +curl 8.5.0-2ubuntu10.7 deb dash 0.5.12-6ubuntu5 deb debconf 1.5.86ubuntu1 deb debianutils 5.17build1 deb @@ -53,7 +53,7 @@ libcap-ng0 0.8.4-2build2 deb libcap2 1:2.66-5ubuntu2.2 deb libcom-err2 1.47.0-2.4~exp1ubuntu4.1 deb libcrypt1 1:4.4.36-4build1 deb -libcurl4t64 8.5.0-2ubuntu10.6 deb +libcurl4t64 8.5.0-2ubuntu10.7 deb libdb5.3t64 5.3.28+dfsg2-7 deb libdebconfclient0 0.271ubuntu3 deb libext2fs2t64 1.47.0-2.4~exp1ubuntu4.1 deb @@ -105,7 +105,7 @@ libsepol2 3.5-2build1 deb libsmartcols1 2.39.3-9ubuntu6.4 deb libsqlite3-0 3.45.1-1ubuntu2.5 deb libss2 1.47.0-2.4~exp1ubuntu4.1 deb -libssh-4 0.10.6-2ubuntu0.2 deb +libssh-4 0.10.6-2ubuntu0.3 deb libssl3t64 3.0.13-0ubuntu3.7 deb libstdc++6 14.2.0-4ubuntu2~24.04.1 deb libsystemd0 255.4-1ubuntu8.12 deb From e64b2579d71e6a0ba8e1760814aa6fd4cee1197a Mon Sep 17 00:00:00 2001 From: Evan Champion <110177090+evan314159@users.noreply.github.com> Date: Sun, 15 Mar 2026 12:01:53 +0800 Subject: [PATCH 81/95] init-plex-claim/run: do not run s6-setuidgid on non-root containers Fixes #422 --- README.md | 1 + root/etc/s6-overlay/s6-rc.d/init-plex-claim/run | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 94c1429..eae4382 100644 --- a/README.md +++ b/README.md @@ -371,6 +371,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **15.03.26:** - Fix initial claim setup on non-root containers * **04.11.24:** - Add Nvidia capability needed for h265 * **18.07.24:** - Rebase to Ubuntu Noble. * **12.02.24:** - Use universal hardware acceleration blurb diff --git a/root/etc/s6-overlay/s6-rc.d/init-plex-claim/run b/root/etc/s6-overlay/s6-rc.d/init-plex-claim/run index a94451e..700b1c0 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-plex-claim/run +++ b/root/etc/s6-overlay/s6-rc.d/init-plex-claim/run @@ -19,8 +19,15 @@ if [[ ! -f "${PLEX_MEDIA_SERVER_PREFERENCES}" ]]; then export PLEX_MEDIA_SERVER_INFO_MODEL PLEX_MEDIA_SERVER_INFO_PLATFORM_VERSION=$(uname -r) export PLEX_MEDIA_SERVER_INFO_PLATFORM_VERSION - s6-setuidgid abc /bin/bash -c \ - 'LD_LIBRARY_PATH=/usr/lib/plexmediaserver:/usr/lib/plexmediaserver/lib /usr/lib/plexmediaserver/Plex\ Media\ Server' & + + if [[ -z ${LSIO_NON_ROOT_USER} ]]; then + s6-setuidgid abc /bin/bash -c \ + 'LD_LIBRARY_PATH=/usr/lib/plexmediaserver:/usr/lib/plexmediaserver/lib /usr/lib/plexmediaserver/Plex\ Media\ Server' & + else + /bin/bash -c \ + 'LD_LIBRARY_PATH=/usr/lib/plexmediaserver:/usr/lib/plexmediaserver/lib /usr/lib/plexmediaserver/Plex\ Media\ Server' & + fi + PID=$! echo "Waiting for Plex to generate its config" DBNAME="/config/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db-wal" From 2186587d378a9111a2d3d20ce89010fdafe1bcd6 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Sun, 15 Mar 2026 21:47:12 +0000 Subject: [PATCH 82/95] Bot Updating Templated Files --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index eae4382..94c1429 100644 --- a/README.md +++ b/README.md @@ -371,7 +371,6 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions -* **15.03.26:** - Fix initial claim setup on non-root containers * **04.11.24:** - Add Nvidia capability needed for h265 * **18.07.24:** - Rebase to Ubuntu Noble. * **12.02.24:** - Use universal hardware acceleration blurb From 094d2071e2c9af11847c1ebaabe0d80b10901e34 Mon Sep 17 00:00:00 2001 From: Evan Champion <110177090+evan314159@users.noreply.github.com> Date: Sun, 15 Mar 2026 12:45:15 +0800 Subject: [PATCH 83/95] init-plex-chown/run: use TMPDIR instead of hardcoded /run/plex-temp Changes init-plex-chown/run to use TMPDIR instead of hardcoded /run/plex-temp Plex uses TMPDIR to store transcodes of music to WAV format for music analysis (and maybe other things). LS.io container sets TMPDIR=/run/plex-temp. With read-only root this means the /run tmpfs needs to have enough memory to store music analysis transcodes. LS.io container hardcoded /run/plex-temp in init so TMPDIR could not be flexibly changed -- changed to use TMPDIR and clean on restart in case of unclean shutdown. Plex container is marked as supporting read-only root. --- README.md | 2 ++ root/etc/s6-overlay/s6-rc.d/init-plex-chown/run | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 94c1429..e0be438 100644 --- a/README.md +++ b/README.md @@ -371,6 +371,8 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **15.03.26:** - Allow TMPDIR to be changed to better support read-only containers +* **15.03.26:** - Fix initial claim setup on non-root containers * **04.11.24:** - Add Nvidia capability needed for h265 * **18.07.24:** - Rebase to Ubuntu Noble. * **12.02.24:** - Use universal hardware acceleration blurb diff --git a/root/etc/s6-overlay/s6-rc.d/init-plex-chown/run b/root/etc/s6-overlay/s6-rc.d/init-plex-chown/run index f98e669..47b1c1e 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-plex-chown/run +++ b/root/etc/s6-overlay/s6-rc.d/init-plex-chown/run @@ -1,7 +1,11 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash -mkdir -p /run/plex-temp +# remove plex temporary directory after unclean stop +if [[ -d "${TMPDIR}" ]]; then + rm -rf "${TMPDIR}" +fi +mkdir -p ${TMPDIR} # create folders if [[ ! -d "${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}" ]]; then @@ -40,7 +44,7 @@ if [[ -z ${LSIO_NON_ROOT_USER} ]]; then # permissions (non-recursive) on config root and folders lsiown abc:abc \ - /run/plex-temp \ + "${TMPDIR}" \ /config \ /config/* fi From a56f4d3e85b425f79aaa4a9260c63d8b29d94de4 Mon Sep 17 00:00:00 2001 From: Evan Champion <110177090+evan314159@users.noreply.github.com> Date: Tue, 17 Mar 2026 06:34:26 +0800 Subject: [PATCH 84/95] Update readme-vars.yml --- readme-vars.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/readme-vars.yml b/readme-vars.yml index 2ad47e0..9f7a516 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -125,6 +125,8 @@ init_diagram: | "plex:latest" <- Base Images # changelog changelogs: + - {date: "15.03.26:", desc: "Allow TMPDIR to be changed to better support read-only containers"} + - {date: "15.03.26:", desc: "Fix initial claim setup on non-root containers"} - {date: "04.11.24:", desc: "Add Nvidia capability needed for h265"} - {date: "18.07.24:", desc: "Rebase to Ubuntu Noble."} - {date: "12.02.24:", desc: "Use universal hardware acceleration blurb"} From ee772de585fc24cb7ad1dd09b9507556bf59b909 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Sat, 21 Mar 2026 14:30:06 +0000 Subject: [PATCH 85/95] Bot Updating Package Versions --- package_versions.txt | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index a28714d..20c2c7f 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -5,13 +5,13 @@ apt-utils 2.8.3 deb base-files 13ubuntu10.4 deb base-passwd 3.6.3build1 deb bash 5.2.21-2ubuntu4 deb -bsdutils 1:2.39.3-9ubuntu6.4 deb +bsdutils 1:2.39.3-9ubuntu6.5 deb ca-certificates 20240203 deb catatonit 0.1.7-1 deb coreutils 9.4-3ubuntu6.1 deb cron 3.0pl1-184ubuntu2 deb cron-daemon-common 3.0pl1-184ubuntu2 deb -curl 8.5.0-2ubuntu10.7 deb +curl 8.5.0-2ubuntu10.8 deb dash 0.5.12-6ubuntu5 deb debconf 1.5.86ubuntu1 deb debianutils 5.17build1 deb @@ -43,7 +43,7 @@ libassuan0 2.5.6-1build1 deb libattr1 1:2.5.2-1build1.1 deb libaudit-common 1:3.1.2-2.1build1.1 deb libaudit1 1:3.1.2-2.1build1.1 deb -libblkid1 2.39.3-9ubuntu6.4 deb +libblkid1 2.39.3-9ubuntu6.5 deb libbrotli1 1.1.0-2build2 deb libbsd0 0.12.1-1build1.1 deb libbz2-1.0 1.0.8-5.1build0.1 deb @@ -53,7 +53,7 @@ libcap-ng0 0.8.4-2build2 deb libcap2 1:2.66-5ubuntu2.2 deb libcom-err2 1.47.0-2.4~exp1ubuntu4.1 deb libcrypt1 1:4.4.36-4build1 deb -libcurl4t64 8.5.0-2ubuntu10.7 deb +libcurl4t64 8.5.0-2ubuntu10.8 deb libdb5.3t64 5.3.28+dfsg2-7 deb libdebconfclient0 0.271ubuntu3 deb libext2fs2t64 1.47.0-2.4~exp1ubuntu4.1 deb @@ -78,7 +78,7 @@ libldap2 2.6.10+dfsg-0ubuntu0.24.04.1 deb liblz4-1 1.9.4-1build1.1 deb liblzma5 5.6.1+really5.4.5-1ubuntu0.2 deb libmd0 1.1.0-2build1.1 deb -libmount1 2.39.3-9ubuntu6.4 deb +libmount1 2.39.3-9ubuntu6.5 deb libncursesw6 6.4+20240113-1ubuntu2 deb libnettle8t64 3.9.1-2.2build1.1 deb libnghttp2-14 1.59.0-1ubuntu0.2 deb @@ -102,10 +102,10 @@ libselinux1 3.5-2ubuntu2.1 deb libsemanage-common 3.5-1build5 deb libsemanage2 3.5-1build5 deb libsepol2 3.5-2build1 deb -libsmartcols1 2.39.3-9ubuntu6.4 deb +libsmartcols1 2.39.3-9ubuntu6.5 deb libsqlite3-0 3.45.1-1ubuntu2.5 deb libss2 1.47.0-2.4~exp1ubuntu4.1 deb -libssh-4 0.10.6-2ubuntu0.3 deb +libssh-4 0.10.6-2ubuntu0.4 deb libssl3t64 3.0.13-0ubuntu3.7 deb libstdc++6 14.2.0-4ubuntu2~24.04.1 deb libsystemd0 255.4-1ubuntu8.12 deb @@ -113,14 +113,14 @@ libtasn1-6 4.19.0-3ubuntu0.24.04.2 deb libtinfo6 6.4+20240113-1ubuntu2 deb libudev1 255.4-1ubuntu8.12 deb libunistring5 1.1-2build1.1 deb -libuuid1 2.39.3-9ubuntu6.4 deb +libuuid1 2.39.3-9ubuntu6.5 deb libxxhash0 0.8.2-2build1 deb libzstd1 1.5.5+dfsg2-2build1.1 deb locales 2.39-0ubuntu8.7 deb login 1:4.13+dfsg1-4ubuntu3.2 deb logsave 1.47.0-2.4~exp1ubuntu4.1 deb mawk 1.3.4.20240123-1build1 deb -mount 2.39.3-9ubuntu6.4 deb +mount 2.39.3-9ubuntu6.5 deb ncurses-base 6.4+20240113-1ubuntu2 deb ncurses-bin 6.4+20240113-1ubuntu2 deb netcat-openbsd 1.226-1ubuntu2 deb @@ -143,6 +143,6 @@ tzdata 2025b-0ubuntu0.24.04.1 deb ubuntu-keyring 2023.11.28.1 deb udev 255.4-1ubuntu8.12 deb unminimize 0.2.1 deb -util-linux 2.39.3-9ubuntu6.4 deb +util-linux 2.39.3-9ubuntu6.5 deb wget 1.21.4-1ubuntu4.1 deb zlib1g 1:1.3.dfsg-3.1ubuntu2.1 deb From ecb66b1ca36a31b38f02a84e580874690b8e68c0 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 30 Mar 2026 10:23:10 +0000 Subject: [PATCH 86/95] Bot Updating Package Versions --- package_versions.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 20c2c7f..d6deaa3 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -8,7 +8,7 @@ bash 5.2.21-2ubuntu4 deb bsdutils 1:2.39.3-9ubuntu6.5 deb ca-certificates 20240203 deb catatonit 0.1.7-1 deb -coreutils 9.4-3ubuntu6.1 deb +coreutils 9.4-3ubuntu6.2 deb cron 3.0pl1-184ubuntu2 deb cron-daemon-common 3.0pl1-184ubuntu2 deb curl 8.5.0-2ubuntu10.8 deb @@ -108,10 +108,10 @@ libss2 1.47.0-2.4~exp1ubuntu4.1 deb libssh-4 0.10.6-2ubuntu0.4 deb libssl3t64 3.0.13-0ubuntu3.7 deb libstdc++6 14.2.0-4ubuntu2~24.04.1 deb -libsystemd0 255.4-1ubuntu8.12 deb +libsystemd0 255.4-1ubuntu8.14 deb libtasn1-6 4.19.0-3ubuntu0.24.04.2 deb libtinfo6 6.4+20240113-1ubuntu2 deb -libudev1 255.4-1ubuntu8.12 deb +libudev1 255.4-1ubuntu8.14 deb libunistring5 1.1-2build1.1 deb libuuid1 2.39.3-9ubuntu6.5 deb libxxhash0 0.8.2-2build1 deb @@ -134,14 +134,14 @@ publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb sed 4.9-2build1 deb sensible-utils 0.0.22 deb -systemd-dev 255.4-1ubuntu8.12 deb +systemd-dev 255.4-1ubuntu8.14 deb systemd-hwe-hwdb 255.1.7 deb -systemd-standalone-sysusers 255.4-1ubuntu8.12 deb +systemd-standalone-sysusers 255.4-1ubuntu8.14 deb sysvinit-utils 3.08-6ubuntu3 deb tar 1.35+dfsg-3build1 deb tzdata 2025b-0ubuntu0.24.04.1 deb ubuntu-keyring 2023.11.28.1 deb -udev 255.4-1ubuntu8.12 deb +udev 255.4-1ubuntu8.14 deb unminimize 0.2.1 deb util-linux 2.39.3-9ubuntu6.5 deb wget 1.21.4-1ubuntu4.1 deb From be4e12409d7e0fcb0705677335c9b2a24c421227 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 6 Apr 2026 10:14:36 +0000 Subject: [PATCH 87/95] Bot Updating Templated Files --- Jenkinsfile | 172 ++++++++++++++++++++++++++-------------------------- 1 file changed, 85 insertions(+), 87 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index b4fb77c..f0e1f0d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -77,6 +77,7 @@ pipeline { ''' script{ env.EXIT_STATUS = '' + env.CI_TEST_ATTEMPTED = '' env.LS_RELEASE = sh( script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:latest 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''', returnStdout: true).trim() @@ -873,6 +874,7 @@ pipeline { script{ env.CI_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/index.html' env.CI_JSON_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/report.json' + env.CI_TEST_ATTEMPTED = 'true' } sh '''#! /bin/bash set -e @@ -1075,98 +1077,13 @@ EOF ) ''' } } - // If this is a Pull request send the CI link as a comment on it - stage('Pull Request Comment') { - when { - not {environment name: 'CHANGE_ID', value: ''} - environment name: 'EXIT_STATUS', value: '' - } - steps { - sh '''#! /bin/bash - # Function to retrieve JSON data from URL - get_json() { - local url="$1" - local response=$(curl -s "$url") - if [ $? -ne 0 ]; then - echo "Failed to retrieve JSON data from $url" - return 1 - fi - local json=$(echo "$response" | jq .) - if [ $? -ne 0 ]; then - echo "Failed to parse JSON data from $url" - return 1 - fi - echo "$json" - } - - build_table() { - local data="$1" - - # Get the keys in the JSON data - local keys=$(echo "$data" | jq -r 'to_entries | map(.key) | .[]') - - # Check if keys are empty - if [ -z "$keys" ]; then - echo "JSON report data does not contain any keys or the report does not exist." - return 1 - fi - - # Build table header - local header="| Tag | Passed |\\n| --- | --- |\\n" - - # Loop through the JSON data to build the table rows - local rows="" - for build in $keys; do - local status=$(echo "$data" | jq -r ".[\\"$build\\"].test_success") - if [ "$status" = "true" ]; then - status="✅" - else - status="❌" - fi - local row="| "$build" | "$status" |\\n" - rows="${rows}${row}" - done - - local table="${header}${rows}" - local escaped_table=$(echo "$table" | sed 's/\"/\\\\"/g') - echo "$escaped_table" - } - - if [[ "${CI}" = "true" ]]; then - # Retrieve JSON data from URL - data=$(get_json "$CI_JSON_URL") - # Create table from JSON data - table=$(build_table "$data") - echo -e "$table" - - curl -X POST -H "Authorization: token $GITHUB_TOKEN" \ - -H "Accept: application/vnd.github.v3+json" \ - "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \ - -d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}" - else - curl -X POST -H "Authorization: token $GITHUB_TOKEN" \ - -H "Accept: application/vnd.github.v3+json" \ - "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \ - -d "{\\"body\\": \\"I am a bot, here is the pushed image/manifest for this PR: \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}" - fi - ''' - - } - } } /* ###################### - Send status to Discord + Comment on PR and Send status to Discord ###################### */ post { always { - sh '''#!/bin/bash - rm -rf /config/.ssh/id_sign - rm -rf /config/.ssh/id_sign.pub - git config --global --unset gpg.format - git config --global --unset user.signingkey - git config --global --unset commit.gpgsign - ''' - script{ + script { env.JOB_DATE = sh( script: '''date '+%Y-%m-%dT%H:%M:%S%:z' ''', returnStdout: true).trim() @@ -1209,6 +1126,87 @@ EOF "username": "Jenkins"}' ${BUILDS_DISCORD} ''' } } + script { + if (env.GITHUBIMAGE =~ /lspipepr/){ + if (env.CI_TEST_ATTEMPTED == "true"){ + sh '''#! /bin/bash + # Function to retrieve JSON data from URL + get_json() { + local url="$1" + local response=$(curl -s "$url") + if [ $? -ne 0 ]; then + echo "Failed to retrieve JSON data from $url" + return 1 + fi + local json=$(echo "$response" | jq .) + if [ $? -ne 0 ]; then + echo "Failed to parse JSON data from $url" + return 1 + fi + echo "$json" + } + + build_table() { + local data="$1" + + # Get the keys in the JSON data + local keys=$(echo "$data" | jq -r 'to_entries | map(.key) | .[]') + + # Check if keys are empty + if [ -z "$keys" ]; then + echo "JSON report data does not contain any keys or the report does not exist." + return 1 + fi + + # Build table header + local header="| Tag | Passed |\\n| --- | --- |\\n" + + # Loop through the JSON data to build the table rows + local rows="" + for build in $keys; do + local status=$(echo "$data" | jq -r ".[\\"$build\\"].test_success") + if [ "$status" = "true" ]; then + status="✅" + else + status="❌" + fi + local row="| "$build" | "$status" |\\n" + rows="${rows}${row}" + done + + local table="${header}${rows}" + local escaped_table=$(echo "$table" | sed 's/\"/\\\\"/g') + echo "$escaped_table" + } + + if [[ "${CI}" = "true" ]]; then + # Retrieve JSON data from URL + data=$(get_json "$CI_JSON_URL") + # Create table from JSON data + table=$(build_table "$data") + echo -e "$table" + + curl -X POST -H "Authorization: token $GITHUB_TOKEN" \ + -H "Accept: application/vnd.github.v3+json" \ + "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \ + -d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}" + else + curl -X POST -H "Authorization: token $GITHUB_TOKEN" \ + -H "Accept: application/vnd.github.v3+json" \ + "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \ + -d "{\\"body\\": \\"I am a bot, here is the pushed image/manifest for this PR: \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}" + fi + ''' + } + } + } + sh '''#!/bin/bash + rm -rf /config/.ssh/id_sign + rm -rf /config/.ssh/id_sign.pub + git config --global --unset gpg.format + git config --global --unset user.signingkey + git config --global --unset commit.gpgsign + ''' } cleanup { sh '''#! /bin/bash From e0048bb650bfc34561e28b0fce398708aff479a7 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Wed, 8 Apr 2026 15:46:39 +0000 Subject: [PATCH 88/95] Bot Updating Package Versions --- package_versions.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index d6deaa3..d3c49a0 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -108,10 +108,10 @@ libss2 1.47.0-2.4~exp1ubuntu4.1 deb libssh-4 0.10.6-2ubuntu0.4 deb libssl3t64 3.0.13-0ubuntu3.7 deb libstdc++6 14.2.0-4ubuntu2~24.04.1 deb -libsystemd0 255.4-1ubuntu8.14 deb +libsystemd0 255.4-1ubuntu8.15 deb libtasn1-6 4.19.0-3ubuntu0.24.04.2 deb libtinfo6 6.4+20240113-1ubuntu2 deb -libudev1 255.4-1ubuntu8.14 deb +libudev1 255.4-1ubuntu8.15 deb libunistring5 1.1-2build1.1 deb libuuid1 2.39.3-9ubuntu6.5 deb libxxhash0 0.8.2-2build1 deb @@ -128,20 +128,20 @@ openssl 3.0.13-0ubuntu3.7 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2ubuntu0.2 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.43.0.10492-121068a07 deb +plexmediaserver 1.43.1.10576-06378bdcd deb procps 2:4.0.4-4ubuntu3.2 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb sed 4.9-2build1 deb sensible-utils 0.0.22 deb -systemd-dev 255.4-1ubuntu8.14 deb +systemd-dev 255.4-1ubuntu8.15 deb systemd-hwe-hwdb 255.1.7 deb -systemd-standalone-sysusers 255.4-1ubuntu8.14 deb +systemd-standalone-sysusers 255.4-1ubuntu8.15 deb sysvinit-utils 3.08-6ubuntu3 deb tar 1.35+dfsg-3build1 deb -tzdata 2025b-0ubuntu0.24.04.1 deb +tzdata 2026a-0ubuntu0.24.04.1 deb ubuntu-keyring 2023.11.28.1 deb -udev 255.4-1ubuntu8.14 deb +udev 255.4-1ubuntu8.15 deb unminimize 0.2.1 deb util-linux 2.39.3-9ubuntu6.5 deb wget 1.21.4-1ubuntu4.1 deb From 1a7cf74b6ec7ab0ce9efedd7b53963c40153e512 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Fri, 10 Apr 2026 13:52:50 +0000 Subject: [PATCH 89/95] Bot Updating Package Versions --- package_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package_versions.txt b/package_versions.txt index d3c49a0..47beda4 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -128,7 +128,7 @@ openssl 3.0.13-0ubuntu3.7 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2ubuntu0.2 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.43.1.10576-06378bdcd deb +plexmediaserver 1.43.1.10611-1e34174b1 deb procps 2:4.0.4-4ubuntu3.2 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb From 7378fb237dcfbd304b14f64ef0533590cff62dd5 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 20 Apr 2026 10:55:12 +0000 Subject: [PATCH 90/95] Bot Updating Package Versions --- package_versions.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 47beda4..64660a3 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -106,7 +106,7 @@ libsmartcols1 2.39.3-9ubuntu6.5 deb libsqlite3-0 3.45.1-1ubuntu2.5 deb libss2 1.47.0-2.4~exp1ubuntu4.1 deb libssh-4 0.10.6-2ubuntu0.4 deb -libssl3t64 3.0.13-0ubuntu3.7 deb +libssl3t64 3.0.13-0ubuntu3.9 deb libstdc++6 14.2.0-4ubuntu2~24.04.1 deb libsystemd0 255.4-1ubuntu8.15 deb libtasn1-6 4.19.0-3ubuntu0.24.04.2 deb @@ -124,7 +124,7 @@ mount 2.39.3-9ubuntu6.5 deb ncurses-base 6.4+20240113-1ubuntu2 deb ncurses-bin 6.4+20240113-1ubuntu2 deb netcat-openbsd 1.226-1ubuntu2 deb -openssl 3.0.13-0ubuntu3.7 deb +openssl 3.0.13-0ubuntu3.9 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2ubuntu0.2 deb pinentry-curses 1.2.1-3ubuntu5 deb From 68fa685a3cd2e3a6d3972e6adc35a72b97988c50 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 27 Apr 2026 11:10:30 +0000 Subject: [PATCH 91/95] Bot Updating Package Versions --- package_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package_versions.txt b/package_versions.txt index 64660a3..5e522eb 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -50,7 +50,7 @@ libbz2-1.0 1.0.8-5.1build0.1 deb libc-bin 2.39-0ubuntu8.7 deb libc6 2.39-0ubuntu8.7 deb libcap-ng0 0.8.4-2build2 deb -libcap2 1:2.66-5ubuntu2.2 deb +libcap2 1:2.66-5ubuntu2.4 deb libcom-err2 1.47.0-2.4~exp1ubuntu4.1 deb libcrypt1 1:4.4.36-4build1 deb libcurl4t64 8.5.0-2ubuntu10.8 deb From 0a43190ac9160d7f4e9b92e86a75b9e43dd4cc00 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 4 May 2026 11:10:31 +0000 Subject: [PATCH 92/95] Bot Updating Package Versions --- package_versions.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 5e522eb..d36b5b4 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -34,7 +34,7 @@ grep 3.11-4build1 deb gzip 1.12-1ubuntu3.1 deb hostname 3.23+nmu2ubuntu2 deb init-system-helpers 1.66ubuntu1 deb -jq 1.7.1-3ubuntu0.24.04.1 deb +jq 1.7.1-3ubuntu0.24.04.2 deb keyboxd 2.4.4-2ubuntu17.4 deb krb5-locales 1.20.1-6ubuntu2.6 deb libacl1 2.3.2-1build1.1 deb @@ -66,10 +66,10 @@ libgpg-error0 1.47-3build2.1 deb libgssapi-krb5-2 1.20.1-6ubuntu2.6 deb libhogweed6t64 3.9.1-2.2build1.1 deb libidn2-0 2.3.7-2build1.1 deb -libjq1 1.7.1-3ubuntu0.24.04.1 deb +libjq1 1.7.1-3ubuntu0.24.04.2 deb libk5crypto3 1.20.1-6ubuntu2.6 deb libkeyutils1 1.6.3-3build1 deb -libkmod2 31+20240202-2ubuntu7.1 deb +libkmod2 31+20240202-2ubuntu7.2 deb libkrb5-3 1.20.1-6ubuntu2.6 deb libkrb5support0 1.20.1-6ubuntu2.6 deb libksba8 1.6.6-1build1 deb From 3faea15cf31915e16f38111665a862fbb52c0efc Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 9 May 2026 10:03:33 +0200 Subject: [PATCH 93/95] ci: add forgejo actions build workflow --- .forgejo/workflows/build.yml | 46 ++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 .forgejo/workflows/build.yml diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml new file mode 100644 index 0000000..71e6389 --- /dev/null +++ b/.forgejo/workflows/build.yml @@ -0,0 +1,46 @@ +name: Build and push image + +on: + push: + branches: [master] + schedule: + - cron: '0 4 * * *' # daily, picks up LSIO base image updates + workflow_dispatch: + +jobs: + build: + runs-on: docker + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.PUSH_TOKEN }} + + - name: Merge upstream + run: | + git config user.name "forgejo-runner" + git config user.email "runner@forge.jannis.wtf" + git remote add upstream https://github.com/linuxserver/docker-plex + git fetch upstream + git merge upstream/master --no-edit + git push origin master + + - name: Set up Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Forgejo registry + uses: docker/login-action@v3 + with: + registry: git.example.com + username: ${{ secrets.REGISTRY_USER }} + password: ${{ secrets.REGISTRY_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: | + forge.jannis.wtf/fej/plex-wireguard:latest + forge.jannis.wtf/fej/plex-wireguard:${{ github.sha }} From 2d16c92cb3d95145bced7e44256cb245e2317c7f Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 9 May 2026 10:30:50 +0200 Subject: [PATCH 94/95] fix pipeline --- .forgejo/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml index 71e6389..1a1fb83 100644 --- a/.forgejo/workflows/build.yml +++ b/.forgejo/workflows/build.yml @@ -14,6 +14,7 @@ jobs: - name: Checkout uses: actions/checkout@v4 with: + ref: master fetch-depth: 0 token: ${{ secrets.PUSH_TOKEN }} @@ -21,6 +22,8 @@ jobs: run: | git config user.name "forgejo-runner" git config user.email "runner@forge.jannis.wtf" + git fetch origin master + git reset --hard origin/master git remote add upstream https://github.com/linuxserver/docker-plex git fetch upstream git merge upstream/master --no-edit From 492da39dea5c38bdfc7b1398b39e2418e193e0f4 Mon Sep 17 00:00:00 2001 From: fej Date: Sat, 9 May 2026 10:34:17 +0200 Subject: [PATCH 95/95] Update .forgejo/workflows/build.yml --- .forgejo/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml index 1a1fb83..7152c11 100644 --- a/.forgejo/workflows/build.yml +++ b/.forgejo/workflows/build.yml @@ -35,7 +35,7 @@ jobs: - name: Login to Forgejo registry uses: docker/login-action@v3 with: - registry: git.example.com + registry: forge.jannis.wtf username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_TOKEN }} @@ -46,4 +46,4 @@ jobs: push: true tags: | forge.jannis.wtf/fej/plex-wireguard:latest - forge.jannis.wtf/fej/plex-wireguard:${{ github.sha }} + forge.jannis.wtf/fej/plex-wireguard:${{ github.sha }} \ No newline at end of file