From 073be132c028edd1513e7d68f316115b4eea8abb Mon Sep 17 00:00:00 2001 From: thelamer Date: Wed, 29 Dec 2021 14:15:52 -0800 Subject: [PATCH 001/124] add jammy baseimage based on focal logic --- .github/CONTRIBUTING.md | 4 +- .github/PULL_REQUEST_TEMPLATE.md | 2 +- .github/workflows/external_trigger.yml | 4 +- .github/workflows/greetings.yml | 4 +- .github/workflows/package_trigger.yml | 14 ++-- Dockerfile | 4 +- Dockerfile.aarch64 | 4 +- Dockerfile.armhf | 4 +- Jenkinsfile | 92 +++++++++++++------------- README.md | 2 +- jenkins-vars.yml | 4 +- sources.list | 24 +++---- sources.list.arm | 24 +++---- 13 files changed, 93 insertions(+), 93 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 909ad650..cee91562 100755 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -24,7 +24,7 @@ ## Readme If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit. -Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-baseimage-ubuntu/edit/focal/readme-vars.yml). +Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-baseimage-ubuntu/edit/jammy/readme-vars.yml). These variables are used in a template for our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) as part of an ansible play. Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io) @@ -115,7 +115,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Update the changelog -If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-baseimage-ubuntu/tree/focal/root), add an entry to the changelog +If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-baseimage-ubuntu/tree/jammy/root), add an entry to the changelog ```yml changelogs: diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 6bad0177..0b4431d4 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -21,7 +21,7 @@ ------------------------------ - - [ ] I have read the [contributing](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/focal/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications + - [ ] I have read the [contributing](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/jammy/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications ------------------------------ diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index e61a432c..c02f0e27 100644 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -4,13 +4,13 @@ on: workflow_dispatch: jobs: - external-trigger-focal: + external-trigger-jammy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2.3.3 - name: External Trigger - if: github.ref == 'refs/heads/focal' + if: github.ref == 'refs/heads/jammy' run: | echo "**** No external release, exiting ****" exit 0 diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml index 29d5713f..e98b4bbd 100755 --- a/.github/workflows/greetings.yml +++ b/.github/workflows/greetings.yml @@ -8,6 +8,6 @@ jobs: steps: - uses: actions/first-interaction@v1 with: - issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/focal/.github/ISSUE_TEMPLATE/issue.bug.md) or [feature](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/focal/.github/ISSUE_TEMPLATE/issue.feature.md) issue templates!' - pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/focal/.github/PULL_REQUEST_TEMPLATE.md)!' + issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/jammy/.github/ISSUE_TEMPLATE/issue.bug.md) or [feature](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/jammy/.github/ISSUE_TEMPLATE/issue.feature.md) issue templates!' + pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/jammy/.github/PULL_REQUEST_TEMPLATE.md)!' repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/package_trigger.yml b/.github/workflows/package_trigger.yml index bf4dfe86..080a1513 100644 --- a/.github/workflows/package_trigger.yml +++ b/.github/workflows/package_trigger.yml @@ -4,25 +4,25 @@ on: workflow_dispatch: jobs: - package-trigger-focal: + package-trigger-jammy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2.3.3 - name: Package Trigger - if: github.ref == 'refs/heads/focal' + if: github.ref == 'refs/heads/jammy' run: | - if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_BASEIMAGE_UBUNTU_FOCAL }}" ]; then - echo "**** Github secret PAUSE_PACKAGE_TRIGGER_BASEIMAGE_UBUNTU_FOCAL is set; skipping trigger. ****" + if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_BASEIMAGE_UBUNTU_JAMMY }}" ]; then + echo "**** Github secret PAUSE_PACKAGE_TRIGGER_BASEIMAGE_UBUNTU_JAMMY is set; skipping trigger. ****" exit 0 fi - if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-ubuntu/job/focal/lastBuild/api/json | jq -r '.building') == "true" ]; then + if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-ubuntu/job/jammy/lastBuild/api/json | jq -r '.building') == "true" ]; then echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****" exit 0 fi - echo "**** Package trigger running off of focal branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_BASEIMAGE_UBUNTU_FOCAL\". ****" + echo "**** Package trigger running off of jammy branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_BASEIMAGE_UBUNTU_JAMMY\". ****" response=$(curl -iX POST \ - https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-ubuntu/job/focal/buildWithParameters?PACKAGE_CHECK=true \ + https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-ubuntu/job/jammy/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'} ****" echo "**** Sleeping 10 seconds until job starts ****" diff --git a/Dockerfile b/Dockerfile index b1542c57..82c82959 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ -FROM alpine:3.11 as rootfs-stage +FROM alpine:3.15 as rootfs-stage # environment -ENV REL=focal +ENV REL=jammy ENV ARCH=amd64 # install packages RUN \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 578e6d32..ad012060 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,7 +1,7 @@ -FROM alpine:3.11 as rootfs-stage +FROM alpine:3.15 as rootfs-stage # environment -ENV REL=focal +ENV REL=jammy ENV ARCH=arm64 # install packages RUN \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index b71a0720..432c3eab 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -1,7 +1,7 @@ -FROM alpine:3.11 as rootfs-stage +FROM alpine:3.15 as rootfs-stage # environment -ENV REL=focal +ENV REL=jammy ENV ARCH=armhf # install packages RUN \ diff --git a/Jenkinsfile b/Jenkinsfile index 35b007c5..bf0ead64 100755 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -42,7 +42,7 @@ pipeline { script{ env.EXIT_STATUS = '' env.LS_RELEASE = sh( - script: '''docker run --rm ghcr.io/linuxserver/alexeiled-skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':focal 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''', + script: '''docker run --rm ghcr.io/linuxserver/alexeiled-skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':jammy 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''', returnStdout: true).trim() env.LS_RELEASE_NOTES = sh( script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''', @@ -142,10 +142,10 @@ pipeline { } } } - // If this is a focal build use live docker endpoints + // If this is a jammy build use live docker endpoints stage("Set ENV live build"){ when { - branch "focal" + branch "jammy" environment name: 'CHANGE_ID', value: '' } steps { @@ -155,20 +155,20 @@ pipeline { env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { - env.CI_TAGS = 'amd64-focal-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-focal-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-focal-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + env.CI_TAGS = 'amd64-jammy-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-jammy-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-jammy-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER } else { - env.CI_TAGS = 'focal-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + env.CI_TAGS = 'jammy-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER } env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER - env.META_TAG = 'focal-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER - env.EXT_RELEASE_TAG = 'focal-version-' + env.EXT_RELEASE_CLEAN + env.META_TAG = 'jammy-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + env.EXT_RELEASE_TAG = 'jammy-version-' + env.EXT_RELEASE_CLEAN } } } // If this is a dev build use dev docker endpoints stage("Set ENV dev build"){ when { - not {branch "focal"} + not {branch "jammy"} environment name: 'CHANGE_ID', value: '' } steps { @@ -178,13 +178,13 @@ pipeline { env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { - env.CI_TAGS = 'amd64-focal-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-focal-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-focal-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + env.CI_TAGS = 'amd64-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA } else { - env.CI_TAGS = 'focal-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + env.CI_TAGS = 'jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA } env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA - env.META_TAG = 'focal-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA - env.EXT_RELEASE_TAG = 'focal-version-' + env.EXT_RELEASE_CLEAN + env.META_TAG = 'jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + env.EXT_RELEASE_TAG = 'jammy-version-' + env.EXT_RELEASE_CLEAN env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/' } } @@ -201,13 +201,13 @@ pipeline { env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { - env.CI_TAGS = 'amd64-focal-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-focal-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-focal-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + env.CI_TAGS = 'amd64-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST } else { - env.CI_TAGS = 'focal-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + env.CI_TAGS = 'jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST } env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST - env.META_TAG = 'focal-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST - env.EXT_RELEASE_TAG = 'focal-version-' + env.EXT_RELEASE_CLEAN + env.META_TAG = 'jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + env.EXT_RELEASE_TAG = 'jammy-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/' } @@ -245,7 +245,7 @@ pipeline { // Use helper containers to render templated files stage('Update-Templates') { when { - branch "focal" + branch "jammy" environment name: 'CHANGE_ID', value: '' expression { env.CONTAINER_NAME != null @@ -256,13 +256,13 @@ pipeline { set -e TEMPDIR=$(mktemp -d) docker pull ghcr.io/linuxserver/jenkins-builder:latest - docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=focal -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest + docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=jammy -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest # Stage 1 - Jenkinsfile update if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then 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 focal + git checkout -f jammy cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/ git add Jenkinsfile git commit -m 'Bot Updating Templated Files' @@ -285,7 +285,7 @@ pipeline { 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 focal + git checkout -f jammy for i in ${TEMPLATES_TO_DELETE}; do git rm "${i}" done @@ -306,7 +306,7 @@ pipeline { 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 focal + git checkout -f jammy cd ${TEMPDIR}/docker-${CONTAINER_NAME} mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE @@ -343,7 +343,7 @@ pipeline { // Exit the build if the Templated files were just updated stage('Template-exit') { when { - branch "focal" + branch "jammy" environment name: 'CHANGE_ID', value: '' environment name: 'FILES_UPDATED', value: 'true' expression { @@ -382,7 +382,7 @@ pipeline { // Add package to Scarf.sh and set permissions stage("Scarf.sh package registry"){ when { - branch "focal" + branch "jammy" environment name: 'EXIT_STATUS', value: '' } steps{ @@ -539,7 +539,7 @@ pipeline { // Take the image we just built and dump package versions for comparison stage('Update-packages') { when { - branch "focal" + branch "jammy" environment name: 'CHANGE_ID', value: '' environment name: 'EXIT_STATUS', value: '' } @@ -576,7 +576,7 @@ pipeline { echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github" if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO} - git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f focal + git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f jammy cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/ cd ${TEMPDIR}/${LS_REPO}/ wait @@ -600,7 +600,7 @@ pipeline { // Exit the build if the package file was just updated stage('PACKAGE-exit') { when { - branch "focal" + branch "jammy" environment name: 'CHANGE_ID', value: '' environment name: 'PACKAGE_UPDATED', value: 'true' environment name: 'EXIT_STATUS', value: '' @@ -614,7 +614,7 @@ pipeline { // Exit the build if this is just a package check and there are no changes to push stage('PACKAGECHECK-exit') { when { - branch "focal" + branch "jammy" environment name: 'CHANGE_ID', value: '' environment name: 'PACKAGE_UPDATED', value: 'false' environment name: 'EXIT_STATUS', value: '' @@ -710,12 +710,12 @@ pipeline { 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}:focal + docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:jammy docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG} if [ -n "${SEMVER}" ]; then docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER} fi - docker push ${PUSHIMAGE}:focal + docker push ${PUSHIMAGE}:jammy docker push ${PUSHIMAGE}:${META_TAG} docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG} if [ -n "${SEMVER}" ]; then @@ -729,7 +729,7 @@ pipeline { docker rmi \ ${DELETEIMAGE}:${META_TAG} \ ${DELETEIMAGE}:${EXT_RELEASE_TAG} \ - ${DELETEIMAGE}:focal || : + ${DELETEIMAGE}:jammy || : if [ -n "${SEMVER}" ]; then docker rmi ${DELETEIMAGE}:${SEMVER} || : fi @@ -776,9 +776,9 @@ pipeline { docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} - docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-focal - docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-focal - docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-focal + docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-jammy + docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-jammy + docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-jammy docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} @@ -790,9 +790,9 @@ pipeline { docker push ${MANIFESTIMAGE}:amd64-${META_TAG} docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG} docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG} - docker push ${MANIFESTIMAGE}:amd64-focal - docker push ${MANIFESTIMAGE}:arm32v7-focal - docker push ${MANIFESTIMAGE}:arm64v8-focal + docker push ${MANIFESTIMAGE}:amd64-jammy + docker push ${MANIFESTIMAGE}:arm32v7-jammy + docker push ${MANIFESTIMAGE}:arm64v8-jammy docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} @@ -801,10 +801,10 @@ pipeline { docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER} docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER} fi - docker manifest push --purge ${MANIFESTIMAGE}:focal || : - docker manifest create ${MANIFESTIMAGE}:focal ${MANIFESTIMAGE}:amd64-focal ${MANIFESTIMAGE}:arm32v7-focal ${MANIFESTIMAGE}:arm64v8-focal - docker manifest annotate ${MANIFESTIMAGE}:focal ${MANIFESTIMAGE}:arm32v7-focal --os linux --arch arm - docker manifest annotate ${MANIFESTIMAGE}:focal ${MANIFESTIMAGE}:arm64v8-focal --os linux --arch arm64 --variant v8 + docker manifest push --purge ${MANIFESTIMAGE}:jammy || : + docker manifest create ${MANIFESTIMAGE}:jammy ${MANIFESTIMAGE}:amd64-jammy ${MANIFESTIMAGE}:arm32v7-jammy ${MANIFESTIMAGE}:arm64v8-jammy + docker manifest annotate ${MANIFESTIMAGE}:jammy ${MANIFESTIMAGE}:arm32v7-jammy --os linux --arch arm + docker manifest annotate ${MANIFESTIMAGE}:jammy ${MANIFESTIMAGE}:arm64v8-jammy --os linux --arch arm64 --variant v8 docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || : docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm @@ -819,7 +819,7 @@ pipeline { docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8 fi - docker manifest push --purge ${MANIFESTIMAGE}:focal + docker manifest push --purge ${MANIFESTIMAGE}:jammy docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} if [ -n "${SEMVER}" ]; then @@ -832,10 +832,10 @@ pipeline { for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do docker rmi \ ${DELETEIMAGE}:arm32v7-${META_TAG} \ - ${DELETEIMAGE}:arm32v7-focal \ + ${DELETEIMAGE}:arm32v7-jammy \ ${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \ ${DELETEIMAGE}:arm64v8-${META_TAG} \ - ${DELETEIMAGE}:arm64v8-focal \ + ${DELETEIMAGE}:arm64v8-jammy \ ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || : if [ -n "${SEMVER}" ]; then docker rmi \ @@ -853,7 +853,7 @@ pipeline { // If this is a public release tag it in the LS Github stage('Github-Tag-Push-Release') { when { - branch "focal" + branch "jammy" expression { env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER } @@ -865,14 +865,14 @@ pipeline { 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 focal",\ + "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to jammy",\ "type": "commit",\ "tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' ''' echo "Pushing New release for Tag" sh '''#! /bin/bash echo "Updating base packages to ${PACKAGE_TAG}" > releasebody.json echo '{"tag_name":"'${META_TAG}'",\ - "target_commitish": "focal",\ + "target_commitish": "jammy",\ "name": "'${META_TAG}'",\ "body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**OS Changes:**\\n\\n' > start printf '","draft": false,"prerelease": true}' >> releasebody.json diff --git a/README.md b/README.md index 1f19fb5c..e555c120 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ - + [linuxserverurl]: https://linuxserver.io [forumurl]: https://forum.linuxserver.io diff --git a/jenkins-vars.yml b/jenkins-vars.yml index 8639f654..44bcab21 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -4,8 +4,8 @@ project_name: docker-baseimage-ubuntu external_type: os release_type: prerelease -release_tag: focal -ls_branch: focal +release_tag: jammy +ls_branch: jammy repo_vars: - BUILD_VERSION_ARG = 'OS' - LS_USER = 'linuxserver' diff --git a/sources.list b/sources.list index 3e9945e0..6763c264 100644 --- a/sources.list +++ b/sources.list @@ -1,12 +1,12 @@ -deb http://archive.ubuntu.com/ubuntu/ focal main restricted -deb-src http://archive.ubuntu.com/ubuntu/ focal main restricted -deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted -deb-src http://archive.ubuntu.com/ubuntu/ focal-updates main restricted -deb http://archive.ubuntu.com/ubuntu/ focal universe multiverse -deb-src http://archive.ubuntu.com/ubuntu/ focal universe multiverse -deb http://archive.ubuntu.com/ubuntu/ focal-updates universe multiverse -deb-src http://archive.ubuntu.com/ubuntu/ focal-updates universe multiverse -deb http://archive.ubuntu.com/ubuntu/ focal-security main restricted -deb-src http://archive.ubuntu.com/ubuntu/ focal-security main restricted -deb http://archive.ubuntu.com/ubuntu/ focal-security universe multiverse -deb-src http://archive.ubuntu.com/ubuntu/ focal-security universe multiverse +deb http://archive.ubuntu.com/ubuntu/ jammy main restricted +deb-src http://archive.ubuntu.com/ubuntu/ jammy main restricted +deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted +deb-src http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted +deb http://archive.ubuntu.com/ubuntu/ jammy universe multiverse +deb-src http://archive.ubuntu.com/ubuntu/ jammy universe multiverse +deb http://archive.ubuntu.com/ubuntu/ jammy-updates universe multiverse +deb-src http://archive.ubuntu.com/ubuntu/ jammy-updates universe multiverse +deb http://archive.ubuntu.com/ubuntu/ jammy-security main restricted +deb-src http://archive.ubuntu.com/ubuntu/ jammy-security main restricted +deb http://archive.ubuntu.com/ubuntu/ jammy-security universe multiverse +deb-src http://archive.ubuntu.com/ubuntu/ jammy-security universe multiverse diff --git a/sources.list.arm b/sources.list.arm index ceb2389c..6f714192 100644 --- a/sources.list.arm +++ b/sources.list.arm @@ -1,12 +1,12 @@ -deb http://ports.ubuntu.com/ubuntu-ports/ focal main restricted multiverse -deb-src http://ports.ubuntu.com/ubuntu-ports/ focal main restricted multiverse -deb http://ports.ubuntu.com/ubuntu-ports/ focal-updates main restricted multiverse -deb-src http://ports.ubuntu.com/ubuntu-ports/ focal-updates main restricted multiverse -deb http://ports.ubuntu.com/ubuntu-ports/ focal universe -deb-src http://ports.ubuntu.com/ubuntu-ports/ focal universe -deb http://ports.ubuntu.com/ubuntu-ports/ focal-updates universe -deb-src http://ports.ubuntu.com/ubuntu-ports/ focal-updates universe -deb http://ports.ubuntu.com/ubuntu-ports/ focal-security main restricted multiverse -deb-src http://ports.ubuntu.com/ubuntu-ports/ focal-security main restricted multiverse -deb http://ports.ubuntu.com/ubuntu-ports/ focal-security universe -deb-src http://ports.ubuntu.com/ubuntu-ports/ focal-security universe +deb http://ports.ubuntu.com/ubuntu-ports/ jammy main restricted multiverse +deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy main restricted multiverse +deb http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main restricted multiverse +deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main restricted multiverse +deb http://ports.ubuntu.com/ubuntu-ports/ jammy universe +deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy universe +deb http://ports.ubuntu.com/ubuntu-ports/ jammy-updates universe +deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-updates universe +deb http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted multiverse +deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted multiverse +deb http://ports.ubuntu.com/ubuntu-ports/ jammy-security universe +deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-security universe From a7f6bf8fed16e95a7405b63f22f822b03d53ee40 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Wed, 29 Dec 2021 23:24:32 +0100 Subject: [PATCH 002/124] Bot Updating Package Versions --- package_versions.txt | 279 +++++++++++++++++++++---------------------- 1 file changed, 136 insertions(+), 143 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 95005333..db070b8e 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,143 +1,136 @@ -adduser3.118ubuntu2 -apt2.0.6 -apt-utils2.0.6 -base-files11ubuntu5.4 -base-passwd3.5.47 -bash5.0-6ubuntu1.1 -bsdutils1:2.34-0.1ubuntu9.1 -bzip21.0.8-2 -ca-certificates20210119~20.04.2 -coreutils8.30-3ubuntu2 -curl7.68.0-1ubuntu2.7 -dash0.5.10.2-6 -debconf1.5.73 -debianutils4.9.1 -diffutils1:3.7-3 -dirmngr2.2.19-3ubuntu2.1 -dpkg1.19.7ubuntu3 -e2fsprogs1.45.5-2ubuntu1 -fdisk2.34-0.1ubuntu9.1 -findutils4.7.0-1ubuntu1 -gcc-10-base10.3.0-1ubuntu1~20.04 -gnupg2.2.19-3ubuntu2.1 -gnupg-l10n2.2.19-3ubuntu2.1 -gnupg-utils2.2.19-3ubuntu2.1 -gpg2.2.19-3ubuntu2.1 -gpg-agent2.2.19-3ubuntu2.1 -gpgconf2.2.19-3ubuntu2.1 -gpgsm2.2.19-3ubuntu2.1 -gpgv2.2.19-3ubuntu2.1 -gpg-wks-client2.2.19-3ubuntu2.1 -gpg-wks-server2.2.19-3ubuntu2.1 -grep3.4-1 -gzip1.10-0ubuntu4 -hostname3.23 -init-system-helpers1.57 -krb5-locales1.17-6ubuntu4.1 -libacl12.2.53-6 -libapt-pkg6.02.0.6 -libasn1-8-heimdal7.7.0+dfsg-1ubuntu1 -libassuan02.5.3-7ubuntu2 -libattr11:2.4.48-5 -libaudit11:2.8.5-2ubuntu6 -libaudit-common1:2.8.5-2ubuntu6 -libblkid12.34-0.1ubuntu9.1 -libbrotli11.0.7-6ubuntu0.1 -libbz2-1.01.0.8-2 -libc62.31-0ubuntu9.2 -libcap-ng00.7.9-2.1build1 -libc-bin2.31-0ubuntu9.2 -libcom-err21.45.5-2ubuntu1 -libcrypt11:4.4.10-10ubuntu4 -libcurl47.68.0-1ubuntu2.7 -libdb5.35.3.28+dfsg1-0.6ubuntu2 -libdebconfclient00.251ubuntu1 -libext2fs21.45.5-2ubuntu1 -libfdisk12.34-0.1ubuntu9.1 -libffi73.3-4 -libgcc-s110.3.0-1ubuntu1~20.04 -libgcrypt201.8.5-5ubuntu1.1 -libgmp102:6.2.0+dfsg-4 -libgnutls303.6.13-2ubuntu1.6 -libgpg-error01.37-1 -libgssapi3-heimdal7.7.0+dfsg-1ubuntu1 -libgssapi-krb5-21.17-6ubuntu4.1 -libhcrypto4-heimdal7.7.0+dfsg-1ubuntu1 -libheimbase1-heimdal7.7.0+dfsg-1ubuntu1 -libheimntlm0-heimdal7.7.0+dfsg-1ubuntu1 -libhogweed53.5.1+really3.5.1-2ubuntu0.2 -libhx509-5-heimdal7.7.0+dfsg-1ubuntu1 -libidn2-02.2.0-2 -libk5crypto31.17-6ubuntu4.1 -libkeyutils11.6-6ubuntu1 -libkrb5-26-heimdal7.7.0+dfsg-1ubuntu1 -libkrb5-31.17-6ubuntu4.1 -libkrb5support01.17-6ubuntu4.1 -libksba81.3.5-2 -libldap-2.4-22.4.49+dfsg-2ubuntu1.8 -libldap-common2.4.49+dfsg-2ubuntu1.8 -liblz4-11.9.2-2ubuntu0.20.04.1 -liblzma55.2.4-1ubuntu1 -libmount12.34-0.1ubuntu9.1 -libncurses66.2-0ubuntu2 -libncursesw66.2-0ubuntu2 -libnettle73.5.1+really3.5.1-2ubuntu0.2 -libnghttp2-141.40.0-1build1 -libnpth01.6-1 -libp11-kit00.23.20-1ubuntu0.1 -libpam0g1.3.1-5ubuntu4.3 -libpam-modules1.3.1-5ubuntu4.3 -libpam-modules-bin1.3.1-5ubuntu4.3 -libpam-runtime1.3.1-5ubuntu4.3 -libpcre2-8-010.34-7 -libpcre32:8.39-12build1 -libprocps82:3.3.16-1ubuntu2.3 -libpsl50.21.0-1ubuntu1 -libreadline88.0-4 -libroken18-heimdal7.7.0+dfsg-1ubuntu1 -librtmp12.4+20151223.gitfa8646d.1-2build1 -libsasl2-22.1.27+dfsg-2 -libsasl2-modules2.1.27+dfsg-2 -libsasl2-modules-db2.1.27+dfsg-2 -libseccomp22.5.1-1ubuntu1~20.04.2 -libselinux13.0-1build2 -libsemanage13.0-1build2 -libsemanage-common3.0-1build2 -libsepol13.0-1 -libsmartcols12.34-0.1ubuntu9.1 -libsqlite3-03.31.1-4ubuntu0.2 -libss21.45.5-2ubuntu1 -libssh-40.9.3-2ubuntu2.2 -libssl1.11.1.1f-1ubuntu2.10 -libstdc++610.3.0-1ubuntu1~20.04 -libsystemd0245.4-4ubuntu3.13 -libtasn1-64.16.0-2 -libtinfo66.2-0ubuntu2 -libudev1245.4-4ubuntu3.13 -libunistring20.9.10-2 -libuuid12.34-0.1ubuntu9.1 -libwind0-heimdal7.7.0+dfsg-1ubuntu1 -libzstd11.4.4+dfsg-3ubuntu0.1 -locales2.31-0ubuntu9.2 -login1:4.8.1-1ubuntu5.20.04.1 -logsave1.45.5-2ubuntu1 -lsb-base11.1.0ubuntu2 -mawk1.3.4.20200120-2 -mount2.34-0.1ubuntu9.1 -ncurses-base6.2-0ubuntu2 -ncurses-bin6.2-0ubuntu2 -openssl1.1.1f-1ubuntu2.10 -passwd1:4.8.1-1ubuntu5.20.04.1 -perl-base5.30.0-9ubuntu0.2 -pinentry-curses1.1.0-3build1 -procps2:3.3.16-1ubuntu2.3 -publicsuffix20200303.0012-1 -readline-common8.0-4 -sed4.7-1 -sensible-utils0.0.12+nmu1 -sysvinit-utils2.96-2.1ubuntu1 -tar1.30+dfsg-7ubuntu0.20.04.1 -tzdata2021e-0ubuntu0.20.04 -ubuntu-keyring2020.02.11.4 -util-linux2.34-0.1ubuntu9.1 -zlib1g1:1.2.11.dfsg-2ubuntu1.2 +adduser3.118ubuntu5 +apt2.3.13 +apt-utils2.3.13 +base-files12ubuntu2 +base-passwd3.5.52 +bash5.1-5ubuntu1 +bsdutils1:2.37.2-4ubuntu1 +ca-certificates20211016 +coreutils8.32-4ubuntu3 +curl7.74.0-1.3ubuntu3 +dash0.5.11+git20210903+057cd650a4ed-3 +debconf1.5.79 +debianutils5.5-1ubuntu1 +diffutils1:3.8-0ubuntu1 +dirmngr2.2.27-2ubuntu1 +dpkg1.20.9ubuntu3 +e2fsprogs1.46.4-1ubuntu1 +findutils4.8.0-1ubuntu2 +gcc-11-base11.2.0-13ubuntu1 +gnupg2.2.27-2ubuntu1 +gnupg-l10n2.2.27-2ubuntu1 +gnupg-utils2.2.27-2ubuntu1 +gpg2.2.27-2ubuntu1 +gpg-agent2.2.27-2ubuntu1 +gpgconf2.2.27-2ubuntu1 +gpgsm2.2.27-2ubuntu1 +gpgv2.2.27-2ubuntu1 +gpg-wks-client2.2.27-2ubuntu1 +gpg-wks-server2.2.27-2ubuntu1 +grep3.7-1 +gzip1.10-4ubuntu2 +hostname3.23ubuntu1 +init-system-helpers1.61 +libacl12.2.53-10ubuntu2 +libapt-pkg6.02.3.13 +libassuan02.5.5-1 +libattr11:2.5.1-1 +libaudit11:3.0-2ubuntu3 +libaudit-common1:3.0-2ubuntu3 +libblkid12.37.2-4ubuntu1 +libbrotli11.0.9-2build4 +libbz2-1.01.0.8-5 +libc62.34-0ubuntu3 +libcap21:2.44-1build2 +libcap-ng00.7.9-2.2build2 +libc-bin2.34-0ubuntu3 +libcom-err21.46.4-1ubuntu1 +libcrypt11:4.4.26-1 +libcurl47.74.0-1.3ubuntu3 +libdb5.35.3.28+dfsg1-0.8ubuntu2 +libdebconfclient00.256ubuntu4 +libext2fs21.46.4-1ubuntu1 +libffi83.4.2-1ubuntu5 +libgcc-s111.2.0-13ubuntu1 +libgcrypt201.9.4-3ubuntu2 +libgmp102:6.2.1+dfsg-1ubuntu3 +libgnutls303.7.2-4ubuntu1 +libgpg-error01.43-1 +libgssapi-krb5-21.19.2-0ubuntu1 +libhogweed63.7.3-1build1 +libidn2-02.3.2-2 +libk5crypto31.19.2-0ubuntu1 +libkeyutils11.6.1-2ubuntu2 +libkrb5-31.19.2-0ubuntu1 +libkrb5support01.19.2-0ubuntu1 +libksba81.6.0-2 +libldap-2.5-02.5.6+dfsg-1~exp1ubuntu1 +libldap-common2.5.6+dfsg-1~exp1ubuntu1 +liblz4-11.9.3-2build1 +liblzma55.2.5-2build1 +libmount12.37.2-4ubuntu1 +libncurses66.3-1 +libncursesw66.3-1 +libnettle83.7.3-1build1 +libnghttp2-141.43.0-1build2 +libnpth01.6-3build1 +libnsl21.3.0-2build1 +libp11-kit00.24.0-6 +libpam0g1.4.0-10ubuntu2 +libpam-modules1.4.0-10ubuntu2 +libpam-modules-bin1.4.0-10ubuntu2 +libpam-runtime1.4.0-10ubuntu2 +libpcre2-8-010.39-3 +libpcre32:8.39-13build4 +libprocps82:3.3.17-5ubuntu3 +libpsl50.21.0-1.2build1 +libreadline88.1-2build1 +librtmp12.4+20151223.gitfa8646d.1-2build3 +libsasl2-22.1.27+dfsg2-2build1 +libsasl2-modules2.1.27+dfsg2-2build1 +libsasl2-modules-db2.1.27+dfsg2-2build1 +libseccomp22.5.2-2ubuntu2 +libselinux13.3-1 +libsemanage23.3-1 +libsemanage-common3.3-1 +libsepol23.3-1 +libsmartcols12.37.2-4ubuntu1 +libsqlite3-03.36.0-2 +libss21.46.4-1ubuntu1 +libssh-40.9.6-2 +libssl33.0.0-1ubuntu1 +libstdc++611.2.0-13ubuntu1 +libsystemd0249.5-2ubuntu2 +libtasn1-64.18.0-4 +libtinfo66.3-1 +libtirpc31.3.2-2 +libtirpc-common1.3.2-2 +libudev1249.5-2ubuntu2 +libunistring20.9.10-6 +libuuid12.37.2-4ubuntu1 +libxxhash00.8.0-2build1 +libzstd11.4.8+dfsg-3 +locales2.34-0ubuntu3 +login1:4.8.1-2ubuntu1 +logsave1.46.4-1ubuntu1 +lsb-base11.1.0ubuntu3 +mawk1.3.4.20200120-2build1 +mount2.37.2-4ubuntu1 +ncurses-base6.3-1 +ncurses-bin6.3-1 +openssl3.0.0-1ubuntu1 +passwd1:4.8.1-2ubuntu1 +perl-base5.32.1-3ubuntu3 +pinentry-curses1.1.1-1build1 +procps2:3.3.17-5ubuntu3 +publicsuffix20211207.1025-1 +readline-common8.1-2build1 +sed4.8-1ubuntu1 +sensible-utils0.0.17 +sysvinit-utils2.96-7ubuntu2 +tar1.34+dfsg-1build2 +tzdata2021e-1ubuntu1 +ubuntu-keyring2021.03.26 +usrmerge25ubuntu2 +util-linux2.37.2-4ubuntu1 +zlib1g1:1.2.11.dfsg-2ubuntu7 From 3bf56567cd8ab01ed5d5502792e098c67c9683ac Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 4 Jan 2022 05:58:57 +0100 Subject: [PATCH 003/124] 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 db070b8e..8560d30f 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -7,26 +7,26 @@ bash5.1-5ubuntu1 bsdutils1:2.37.2-4ubuntu1 ca-certificates20211016 coreutils8.32-4ubuntu3 -curl7.74.0-1.3ubuntu3 +curl7.80.0-3 dash0.5.11+git20210903+057cd650a4ed-3 debconf1.5.79 debianutils5.5-1ubuntu1 diffutils1:3.8-0ubuntu1 -dirmngr2.2.27-2ubuntu1 +dirmngr2.2.27-3ubuntu1 dpkg1.20.9ubuntu3 e2fsprogs1.46.4-1ubuntu1 findutils4.8.0-1ubuntu2 gcc-11-base11.2.0-13ubuntu1 -gnupg2.2.27-2ubuntu1 -gnupg-l10n2.2.27-2ubuntu1 -gnupg-utils2.2.27-2ubuntu1 -gpg2.2.27-2ubuntu1 -gpg-agent2.2.27-2ubuntu1 -gpgconf2.2.27-2ubuntu1 -gpgsm2.2.27-2ubuntu1 -gpgv2.2.27-2ubuntu1 -gpg-wks-client2.2.27-2ubuntu1 -gpg-wks-server2.2.27-2ubuntu1 +gnupg2.2.27-3ubuntu1 +gnupg-l10n2.2.27-3ubuntu1 +gnupg-utils2.2.27-3ubuntu1 +gpg2.2.27-3ubuntu1 +gpg-agent2.2.27-3ubuntu1 +gpgconf2.2.27-3ubuntu1 +gpgsm2.2.27-3ubuntu1 +gpgv2.2.27-3ubuntu1 +gpg-wks-client2.2.27-3ubuntu1 +gpg-wks-server2.2.27-3ubuntu1 grep3.7-1 gzip1.10-4ubuntu2 hostname3.23ubuntu1 @@ -45,8 +45,8 @@ libcap21:2.44-1build2 libcap-ng00.7.9-2.2build2 libc-bin2.34-0ubuntu3 libcom-err21.46.4-1ubuntu1 -libcrypt11:4.4.26-1 -libcurl47.74.0-1.3ubuntu3 +libcrypt11:4.4.27-1 +libcurl47.80.0-3 libdb5.35.3.28+dfsg1-0.8ubuntu2 libdebconfclient00.256ubuntu4 libext2fs21.46.4-1ubuntu1 From 0e36ca7a63e1522895e39489003443d2eae0a047 Mon Sep 17 00:00:00 2001 From: aptalca Date: Tue, 4 Jan 2022 09:53:35 -0500 Subject: [PATCH 004/124] jammy: add tamper check --- root/etc/cont-init.d/02-tamper-check | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 root/etc/cont-init.d/02-tamper-check diff --git a/root/etc/cont-init.d/02-tamper-check b/root/etc/cont-init.d/02-tamper-check new file mode 100644 index 00000000..6699a273 --- /dev/null +++ b/root/etc/cont-init.d/02-tamper-check @@ -0,0 +1,18 @@ +#!/usr/bin/with-contenv bash + +if ([ -d "/config/custom-cont-init.d" ] && [ -n "$(find /config/custom-cont-init.d ! -user root)" ]) || ([ -d "/config/custom-services.d" ] && [ -n "$(find /config/custom-services.d ! -user root)" ]); then + echo "**** Potential tampering with custom scripts/services detected ****" + randstr=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-8};echo;) + for folder in "/config/custom-cont-init.d" "/config/custom-services.d"; do + if [ -d "${folder}" ]; then + mv "${folder}" "${folder}.${randstr}" + echo "**** Folder ${folder} is moved to ${folder}.${randstr} ****" + fi + done + echo "**** The folders '/config/custom-cont-init.d' and '/config/custom-services.d'; and their contents need to all be owned by root to prevent root escalation inside the container!!! ****" + mkdir -p /config/custom-cont-init.d /config/custom-services.d + chown 0:0 /config/custom-cont-init.d /config/custom-services.d +elif ([ -d "/config/custom-cont-init.d" ] && [ -n "$(find /config/custom-cont-init.d -perm -o+w)" ]) || ([ -d "/config/custom-services.d" ] && [ -n "$(find /config/custom-services.d -perm -o+w)" ]); then + echo "**** The folders '/config/custom-cont-init.d' or '/config/custom-services.d'; or some of their contents have write permissions for others, which is a security risk. ****" + echo "**** Please review the permissions of these two folders and their contents to make sure they are owned by root, and can only be modified by root. ****" +fi From db8734ac1cb0c6ce2e8c2e12526c8417c9f0f2ee Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 11 Jan 2022 05:58:38 +0100 Subject: [PATCH 005/124] 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 8560d30f..684bc0d9 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,6 +1,6 @@ adduser3.118ubuntu5 -apt2.3.13 -apt-utils2.3.13 +apt2.3.14 +apt-utils2.3.14 base-files12ubuntu2 base-passwd3.5.52 bash5.1-5ubuntu1 @@ -32,7 +32,7 @@ gzip1.10-4ubuntu2 hostname3.23ubuntu1 init-system-helpers1.61 libacl12.2.53-10ubuntu2 -libapt-pkg6.02.3.13 +libapt-pkg6.02.3.14 libassuan02.5.5-1 libattr11:2.5.1-1 libaudit11:3.0-2ubuntu3 @@ -84,7 +84,7 @@ libpcre2-8-010.39-3 libpcre32:8.39-13build4 libprocps82:3.3.17-5ubuntu3 libpsl50.21.0-1.2build1 -libreadline88.1-2build1 +libreadline88.1.2-1 librtmp12.4+20151223.gitfa8646d.1-2build3 libsasl2-22.1.27+dfsg2-2build1 libsasl2-modules2.1.27+dfsg2-2build1 @@ -124,7 +124,7 @@ perl-base5.32.1-3ubuntu3 pinentry-curses1.1.1-1build1 procps2:3.3.17-5ubuntu3 publicsuffix20211207.1025-1 -readline-common8.1-2build1 +readline-common8.1.2-1 sed4.8-1ubuntu1 sensible-utils0.0.17 sysvinit-utils2.96-7ubuntu2 From 1cc20ab72071e73499b226c1addc7d96708e5358 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 18 Jan 2022 05:59:27 +0100 Subject: [PATCH 006/124] 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 684bc0d9..2bda384d 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -3,7 +3,7 @@ apt2.3.14 apt-utils2.3.14 base-files12ubuntu2 base-passwd3.5.52 -bash5.1-5ubuntu1 +bash5.1-6ubuntu1 bsdutils1:2.37.2-4ubuntu1 ca-certificates20211016 coreutils8.32-4ubuntu3 @@ -14,7 +14,7 @@ debianutils5.5-1ubuntu1 diffutils1:3.8-0ubuntu1 dirmngr2.2.27-3ubuntu1 dpkg1.20.9ubuntu3 -e2fsprogs1.46.4-1ubuntu1 +e2fsprogs1.46.5-2ubuntu1 findutils4.8.0-1ubuntu2 gcc-11-base11.2.0-13ubuntu1 gnupg2.2.27-3ubuntu1 @@ -44,17 +44,17 @@ libc62.34-0ubuntu3 libcap21:2.44-1build2 libcap-ng00.7.9-2.2build2 libc-bin2.34-0ubuntu3 -libcom-err21.46.4-1ubuntu1 +libcom-err21.46.5-2ubuntu1 libcrypt11:4.4.27-1 libcurl47.80.0-3 libdb5.35.3.28+dfsg1-0.8ubuntu2 libdebconfclient00.256ubuntu4 -libext2fs21.46.4-1ubuntu1 +libext2fs21.46.5-2ubuntu1 libffi83.4.2-1ubuntu5 libgcc-s111.2.0-13ubuntu1 libgcrypt201.9.4-3ubuntu2 libgmp102:6.2.1+dfsg-1ubuntu3 -libgnutls303.7.2-4ubuntu1 +libgnutls303.7.2-5ubuntu1 libgpg-error01.43-1 libgssapi-krb5-21.19.2-0ubuntu1 libhogweed63.7.3-1build1 @@ -86,9 +86,9 @@ libprocps82:3.3.17-5ubuntu3 libpsl50.21.0-1.2build1 libreadline88.1.2-1 librtmp12.4+20151223.gitfa8646d.1-2build3 -libsasl2-22.1.27+dfsg2-2build1 -libsasl2-modules2.1.27+dfsg2-2build1 -libsasl2-modules-db2.1.27+dfsg2-2build1 +libsasl2-22.1.27+dfsg2-3 +libsasl2-modules2.1.27+dfsg2-3 +libsasl2-modules-db2.1.27+dfsg2-3 libseccomp22.5.2-2ubuntu2 libselinux13.3-1 libsemanage23.3-1 @@ -96,29 +96,29 @@ libsemanage-common3.3-1 libsepol23.3-1 libsmartcols12.37.2-4ubuntu1 libsqlite3-03.36.0-2 -libss21.46.4-1ubuntu1 +libss21.46.5-2ubuntu1 libssh-40.9.6-2 -libssl33.0.0-1ubuntu1 +libssl33.0.1-0ubuntu1 libstdc++611.2.0-13ubuntu1 -libsystemd0249.5-2ubuntu2 +libsystemd0249.5-2ubuntu3 libtasn1-64.18.0-4 libtinfo66.3-1 libtirpc31.3.2-2 libtirpc-common1.3.2-2 -libudev1249.5-2ubuntu2 +libudev1249.5-2ubuntu3 libunistring20.9.10-6 libuuid12.37.2-4ubuntu1 libxxhash00.8.0-2build1 libzstd11.4.8+dfsg-3 locales2.34-0ubuntu3 login1:4.8.1-2ubuntu1 -logsave1.46.4-1ubuntu1 +logsave1.46.5-2ubuntu1 lsb-base11.1.0ubuntu3 mawk1.3.4.20200120-2build1 mount2.37.2-4ubuntu1 ncurses-base6.3-1 ncurses-bin6.3-1 -openssl3.0.0-1ubuntu1 +openssl3.0.1-0ubuntu1 passwd1:4.8.1-2ubuntu1 perl-base5.32.1-3ubuntu3 pinentry-curses1.1.1-1build1 From 42064862dcbd142b60179590170b66fd4d52004e Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 24 Jan 2022 20:20:48 +0100 Subject: [PATCH 007/124] 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 2bda384d..922e1e9a 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -7,7 +7,7 @@ bash5.1-6ubuntu1 bsdutils1:2.37.2-4ubuntu1 ca-certificates20211016 coreutils8.32-4ubuntu3 -curl7.80.0-3 +curl7.81.0-1 dash0.5.11+git20210903+057cd650a4ed-3 debconf1.5.79 debianutils5.5-1ubuntu1 @@ -46,7 +46,7 @@ libcap-ng00.7.9-2.2build2 libc-bin2.34-0ubuntu3 libcom-err21.46.5-2ubuntu1 libcrypt11:4.4.27-1 -libcurl47.80.0-3 +libcurl47.81.0-1 libdb5.35.3.28+dfsg1-0.8ubuntu2 libdebconfclient00.256ubuntu4 libext2fs21.46.5-2ubuntu1 @@ -95,7 +95,7 @@ libsemanage23.3-1 libsemanage-common3.3-1 libsepol23.3-1 libsmartcols12.37.2-4ubuntu1 -libsqlite3-03.36.0-2 +libsqlite3-03.37.2-2 libss21.46.5-2ubuntu1 libssh-40.9.6-2 libssl33.0.1-0ubuntu1 From 22f46fa0cce1bb8b1ee5dc62c234747498329ee7 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 1 Feb 2022 05:53:14 +0100 Subject: [PATCH 008/124] 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 922e1e9a..b7a1d64b 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -64,8 +64,8 @@ libkeyutils11.6.1-2ubuntu2 libkrb5-31.19.2-0ubuntu1 libkrb5support01.19.2-0ubuntu1 libksba81.6.0-2 -libldap-2.5-02.5.6+dfsg-1~exp1ubuntu1 -libldap-common2.5.6+dfsg-1~exp1ubuntu1 +libldap-2.5-02.5.11+dfsg-1~exp1ubuntu1 +libldap-common2.5.11+dfsg-1~exp1ubuntu1 liblz4-11.9.3-2build1 liblzma55.2.5-2build1 libmount12.37.2-4ubuntu1 From 0872c2b4f479d7f9fae2ed134a90b622cb480943 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 8 Feb 2022 05:52:42 +0100 Subject: [PATCH 009/124] Bot Updating Package Versions --- package_versions.txt | 52 ++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index b7a1d64b..379ba130 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,6 +1,6 @@ adduser3.118ubuntu5 -apt2.3.14 -apt-utils2.3.14 +apt2.3.15 +apt-utils2.3.15 base-files12ubuntu2 base-passwd3.5.52 bash5.1-6ubuntu1 @@ -13,10 +13,10 @@ debconf1.5.79 debianutils5.5-1ubuntu1 diffutils1:3.8-0ubuntu1 dirmngr2.2.27-3ubuntu1 -dpkg1.20.9ubuntu3 +dpkg1.21.1ubuntu1 e2fsprogs1.46.5-2ubuntu1 findutils4.8.0-1ubuntu2 -gcc-11-base11.2.0-13ubuntu1 +gcc-11-base11.2.0-16ubuntu1 gnupg2.2.27-3ubuntu1 gnupg-l10n2.2.27-3ubuntu1 gnupg-utils2.2.27-3ubuntu1 @@ -31,8 +31,8 @@ grep3.7-1 gzip1.10-4ubuntu2 hostname3.23ubuntu1 init-system-helpers1.61 -libacl12.2.53-10ubuntu2 -libapt-pkg6.02.3.14 +libacl12.3.1-1 +libapt-pkg6.02.3.15 libassuan02.5.5-1 libattr11:2.5.1-1 libaudit11:3.0-2ubuntu3 @@ -50,27 +50,27 @@ libcurl47.81.0-1 libdb5.35.3.28+dfsg1-0.8ubuntu2 libdebconfclient00.256ubuntu4 libext2fs21.46.5-2ubuntu1 -libffi83.4.2-1ubuntu5 -libgcc-s111.2.0-13ubuntu1 +libffi83.4.2-4 +libgcc-s111.2.0-16ubuntu1 libgcrypt201.9.4-3ubuntu2 -libgmp102:6.2.1+dfsg-1ubuntu3 -libgnutls303.7.2-5ubuntu1 -libgpg-error01.43-1 -libgssapi-krb5-21.19.2-0ubuntu1 +libgmp102:6.2.1+dfsg-3ubuntu1 +libgnutls303.7.3-4ubuntu1 +libgpg-error01.43-3 +libgssapi-krb5-21.19.2-1 libhogweed63.7.3-1build1 libidn2-02.3.2-2 -libk5crypto31.19.2-0ubuntu1 +libk5crypto31.19.2-1 libkeyutils11.6.1-2ubuntu2 -libkrb5-31.19.2-0ubuntu1 -libkrb5support01.19.2-0ubuntu1 +libkrb5-31.19.2-1 +libkrb5support01.19.2-1 libksba81.6.0-2 libldap-2.5-02.5.11+dfsg-1~exp1ubuntu1 libldap-common2.5.11+dfsg-1~exp1ubuntu1 liblz4-11.9.3-2build1 liblzma55.2.5-2build1 libmount12.37.2-4ubuntu1 -libncurses66.3-1 -libncursesw66.3-1 +libncurses66.3-2 +libncursesw66.3-2 libnettle83.7.3-1build1 libnghttp2-141.43.0-1build2 libnpth01.6-3build1 @@ -99,25 +99,25 @@ libsqlite3-03.37.2-2 libss21.46.5-2ubuntu1 libssh-40.9.6-2 libssl33.0.1-0ubuntu1 -libstdc++611.2.0-13ubuntu1 -libsystemd0249.5-2ubuntu3 +libstdc++611.2.0-16ubuntu1 +libsystemd0249.9-0ubuntu2 libtasn1-64.18.0-4 -libtinfo66.3-1 +libtinfo66.3-2 libtirpc31.3.2-2 libtirpc-common1.3.2-2 -libudev1249.5-2ubuntu3 +libudev1249.9-0ubuntu2 libunistring20.9.10-6 libuuid12.37.2-4ubuntu1 -libxxhash00.8.0-2build1 +libxxhash00.8.1-1 libzstd11.4.8+dfsg-3 locales2.34-0ubuntu3 login1:4.8.1-2ubuntu1 logsave1.46.5-2ubuntu1 lsb-base11.1.0ubuntu3 -mawk1.3.4.20200120-2build1 +mawk1.3.4.20200120-3 mount2.37.2-4ubuntu1 -ncurses-base6.3-1 -ncurses-bin6.3-1 +ncurses-base6.3-2 +ncurses-bin6.3-2 openssl3.0.1-0ubuntu1 passwd1:4.8.1-2ubuntu1 perl-base5.32.1-3ubuntu3 @@ -127,7 +127,7 @@ publicsuffix20211207.1025-1 readline-common8.1.2-1 sed4.8-1ubuntu1 sensible-utils0.0.17 -sysvinit-utils2.96-7ubuntu2 +sysvinit-utils3.01-1ubuntu1 tar1.34+dfsg-1build2 tzdata2021e-1ubuntu1 ubuntu-keyring2021.03.26 From f37105c3dd6f6b7a4fc1dedd2019428b7d34937b Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 22 Feb 2022 05:53:43 +0100 Subject: [PATCH 010/124] 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 379ba130..d54f1909 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,6 +1,6 @@ adduser3.118ubuntu5 -apt2.3.15 -apt-utils2.3.15 +apt2.3.15build1 +apt-utils2.3.15build1 base-files12ubuntu2 base-passwd3.5.52 bash5.1-6ubuntu1 @@ -32,7 +32,7 @@ gzip1.10-4ubuntu2 hostname3.23ubuntu1 init-system-helpers1.61 libacl12.3.1-1 -libapt-pkg6.02.3.15 +libapt-pkg6.02.3.15build1 libassuan02.5.5-1 libattr11:2.5.1-1 libaudit11:3.0-2ubuntu3 @@ -40,10 +40,10 @@ libaudit-common1:3.0-2ubuntu3 libblkid12.37.2-4ubuntu1 libbrotli11.0.9-2build4 libbz2-1.01.0.8-5 -libc62.34-0ubuntu3 +libc62.35-0ubuntu1 libcap21:2.44-1build2 libcap-ng00.7.9-2.2build2 -libc-bin2.34-0ubuntu3 +libc-bin2.35-0ubuntu1 libcom-err21.46.5-2ubuntu1 libcrypt11:4.4.27-1 libcurl47.81.0-1 @@ -110,7 +110,7 @@ libunistring20.9.10-6 libuuid12.37.2-4ubuntu1 libxxhash00.8.1-1 libzstd11.4.8+dfsg-3 -locales2.34-0ubuntu3 +locales2.35-0ubuntu1 login1:4.8.1-2ubuntu1 logsave1.46.5-2ubuntu1 lsb-base11.1.0ubuntu3 From e44395439deb577b77890d5436cfc5bc21606441 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 1 Mar 2022 05:54:25 +0100 Subject: [PATCH 011/124] 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 d54f1909..3c71f71d 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -86,9 +86,9 @@ libprocps82:3.3.17-5ubuntu3 libpsl50.21.0-1.2build1 libreadline88.1.2-1 librtmp12.4+20151223.gitfa8646d.1-2build3 -libsasl2-22.1.27+dfsg2-3 -libsasl2-modules2.1.27+dfsg2-3 -libsasl2-modules-db2.1.27+dfsg2-3 +libsasl2-22.1.27+dfsg2-3ubuntu1 +libsasl2-modules2.1.27+dfsg2-3ubuntu1 +libsasl2-modules-db2.1.27+dfsg2-3ubuntu1 libseccomp22.5.2-2ubuntu2 libselinux13.3-1 libsemanage23.3-1 From 3e22a301e13369273df64f27e1fc1dabe1c9e125 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 8 Mar 2022 05:54:33 +0100 Subject: [PATCH 012/124] Bot Updating Package Versions --- package_versions.txt | 57 ++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 3c71f71d..ca8d4410 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -4,12 +4,12 @@ apt-utils2.3.15build1 base-files12ubuntu2 base-passwd3.5.52 bash5.1-6ubuntu1 -bsdutils1:2.37.2-4ubuntu1 +bsdutils1:2.37.2-4ubuntu3 ca-certificates20211016 -coreutils8.32-4ubuntu3 +coreutils8.32-4.1ubuntu1 curl7.81.0-1 dash0.5.11+git20210903+057cd650a4ed-3 -debconf1.5.79 +debconf1.5.79ubuntu1 debianutils5.5-1ubuntu1 diffutils1:3.8-0ubuntu1 dirmngr2.2.27-3ubuntu1 @@ -17,6 +17,7 @@ dpkg1.21.1ubuntu1 e2fsprogs1.46.5-2ubuntu1 findutils4.8.0-1ubuntu2 gcc-11-base11.2.0-16ubuntu1 +gcc-12-base12-20220222-1ubuntu1 gnupg2.2.27-3ubuntu1 gnupg-l10n2.2.27-3ubuntu1 gnupg-utils2.2.27-3ubuntu1 @@ -30,14 +31,14 @@ gpg-wks-server2.2.27-3ubuntu1 grep3.7-1 gzip1.10-4ubuntu2 hostname3.23ubuntu1 -init-system-helpers1.61 +init-system-helpers1.62 libacl12.3.1-1 libapt-pkg6.02.3.15build1 libassuan02.5.5-1 libattr11:2.5.1-1 -libaudit11:3.0-2ubuntu3 -libaudit-common1:3.0-2ubuntu3 -libblkid12.37.2-4ubuntu1 +libaudit11:3.0.7-1 +libaudit-common1:3.0.7-1 +libblkid12.37.2-4ubuntu3 libbrotli11.0.9-2build4 libbz2-1.01.0.8-5 libc62.35-0ubuntu1 @@ -48,10 +49,10 @@ libcom-err21.46.5-2ubuntu1 libcrypt11:4.4.27-1 libcurl47.81.0-1 libdb5.35.3.28+dfsg1-0.8ubuntu2 -libdebconfclient00.256ubuntu4 +libdebconfclient00.261ubuntu1 libext2fs21.46.5-2ubuntu1 libffi83.4.2-4 -libgcc-s111.2.0-16ubuntu1 +libgcc-s112-20220222-1ubuntu1 libgcrypt201.9.4-3ubuntu2 libgmp102:6.2.1+dfsg-3ubuntu1 libgnutls303.7.3-4ubuntu1 @@ -60,15 +61,15 @@ libgssapi-krb5-21.19.2-1 libhogweed63.7.3-1build1 libidn2-02.3.2-2 libk5crypto31.19.2-1 -libkeyutils11.6.1-2ubuntu2 +libkeyutils11.6.1-2ubuntu3 libkrb5-31.19.2-1 libkrb5support01.19.2-1 libksba81.6.0-2 -libldap-2.5-02.5.11+dfsg-1~exp1ubuntu1 -libldap-common2.5.11+dfsg-1~exp1ubuntu1 +libldap-2.5-02.5.11+dfsg-1~exp1ubuntu3 +libldap-common2.5.11+dfsg-1~exp1ubuntu3 liblz4-11.9.3-2build1 liblzma55.2.5-2build1 -libmount12.37.2-4ubuntu1 +libmount12.37.2-4ubuntu3 libncurses66.3-2 libncursesw66.3-2 libnettle83.7.3-1build1 @@ -76,38 +77,38 @@ libnghttp2-141.43.0-1build2 libnpth01.6-3build1 libnsl21.3.0-2build1 libp11-kit00.24.0-6 -libpam0g1.4.0-10ubuntu2 -libpam-modules1.4.0-10ubuntu2 -libpam-modules-bin1.4.0-10ubuntu2 -libpam-runtime1.4.0-10ubuntu2 +libpam0g1.4.0-11ubuntu1 +libpam-modules1.4.0-11ubuntu1 +libpam-modules-bin1.4.0-11ubuntu1 +libpam-runtime1.4.0-11ubuntu1 libpcre2-8-010.39-3 libpcre32:8.39-13build4 -libprocps82:3.3.17-5ubuntu3 +libprocps82:3.3.17-6ubuntu1 libpsl50.21.0-1.2build1 libreadline88.1.2-1 librtmp12.4+20151223.gitfa8646d.1-2build3 libsasl2-22.1.27+dfsg2-3ubuntu1 libsasl2-modules2.1.27+dfsg2-3ubuntu1 libsasl2-modules-db2.1.27+dfsg2-3ubuntu1 -libseccomp22.5.2-2ubuntu2 +libseccomp22.5.3-2ubuntu1 libselinux13.3-1 libsemanage23.3-1 libsemanage-common3.3-1 libsepol23.3-1 -libsmartcols12.37.2-4ubuntu1 +libsmartcols12.37.2-4ubuntu3 libsqlite3-03.37.2-2 libss21.46.5-2ubuntu1 libssh-40.9.6-2 libssl33.0.1-0ubuntu1 -libstdc++611.2.0-16ubuntu1 -libsystemd0249.9-0ubuntu2 +libstdc++612-20220222-1ubuntu1 +libsystemd0249.10-0ubuntu1 libtasn1-64.18.0-4 libtinfo66.3-2 libtirpc31.3.2-2 libtirpc-common1.3.2-2 -libudev1249.9-0ubuntu2 -libunistring20.9.10-6 -libuuid12.37.2-4ubuntu1 +libudev1249.10-0ubuntu1 +libunistring21.0-1 +libuuid12.37.2-4ubuntu3 libxxhash00.8.1-1 libzstd11.4.8+dfsg-3 locales2.35-0ubuntu1 @@ -115,14 +116,14 @@ login1:4.8.1-2ubuntu1 logsave1.46.5-2ubuntu1 lsb-base11.1.0ubuntu3 mawk1.3.4.20200120-3 -mount2.37.2-4ubuntu1 +mount2.37.2-4ubuntu3 ncurses-base6.3-2 ncurses-bin6.3-2 openssl3.0.1-0ubuntu1 passwd1:4.8.1-2ubuntu1 perl-base5.32.1-3ubuntu3 pinentry-curses1.1.1-1build1 -procps2:3.3.17-5ubuntu3 +procps2:3.3.17-6ubuntu1 publicsuffix20211207.1025-1 readline-common8.1.2-1 sed4.8-1ubuntu1 @@ -132,5 +133,5 @@ tar1.34+dfsg-1build2 tzdata2021e-1ubuntu1 ubuntu-keyring2021.03.26 usrmerge25ubuntu2 -util-linux2.37.2-4ubuntu1 +util-linux2.37.2-4ubuntu3 zlib1g1:1.2.11.dfsg-2ubuntu7 From 6e7b680142a1afe8234b656797186a2a2e849752 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 14 Mar 2022 23:54:57 -0500 Subject: [PATCH 013/124] 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 ca8d4410..d54849bf 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,6 +1,6 @@ adduser3.118ubuntu5 -apt2.3.15build1 -apt-utils2.3.15build1 +apt2.4.1 +apt-utils2.4.1 base-files12ubuntu2 base-passwd3.5.52 bash5.1-6ubuntu1 @@ -33,7 +33,7 @@ gzip1.10-4ubuntu2 hostname3.23ubuntu1 init-system-helpers1.62 libacl12.3.1-1 -libapt-pkg6.02.3.15build1 +libapt-pkg6.02.4.1 libassuan02.5.5-1 libattr11:2.5.1-1 libaudit11:3.0.7-1 @@ -111,7 +111,7 @@ libunistring21.0-1 libuuid12.37.2-4ubuntu3 libxxhash00.8.1-1 libzstd11.4.8+dfsg-3 -locales2.35-0ubuntu1 +locales2.35-0ubuntu3 login1:4.8.1-2ubuntu1 logsave1.46.5-2ubuntu1 lsb-base11.1.0ubuntu3 From 2926d83997cce9e869317538ab7189ac75c46974 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 22 Mar 2022 05:54:16 +0100 Subject: [PATCH 014/124] Bot Updating Package Versions --- package_versions.txt | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index d54849bf..c1a03184 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -16,8 +16,8 @@ dirmngr2.2.27-3ubuntu1 dpkg1.21.1ubuntu1 e2fsprogs1.46.5-2ubuntu1 findutils4.8.0-1ubuntu2 -gcc-11-base11.2.0-16ubuntu1 -gcc-12-base12-20220222-1ubuntu1 +gcc-11-base11.2.0-18ubuntu1 +gcc-12-base12-20220313-1ubuntu1 gnupg2.2.27-3ubuntu1 gnupg-l10n2.2.27-3ubuntu1 gnupg-utils2.2.27-3ubuntu1 @@ -41,10 +41,10 @@ libaudit-common1:3.0.7-1 libblkid12.37.2-4ubuntu3 libbrotli11.0.9-2build4 libbz2-1.01.0.8-5 -libc62.35-0ubuntu1 +libc62.35-0ubuntu3 libcap21:2.44-1build2 -libcap-ng00.7.9-2.2build2 -libc-bin2.35-0ubuntu1 +libcap-ng00.7.9-2.2build3 +libc-bin2.35-0ubuntu3 libcom-err21.46.5-2ubuntu1 libcrypt11:4.4.27-1 libcurl47.81.0-1 @@ -52,18 +52,18 @@ libdb5.35.3.28+dfsg1-0.8ubuntu2 libdebconfclient00.261ubuntu1 libext2fs21.46.5-2ubuntu1 libffi83.4.2-4 -libgcc-s112-20220222-1ubuntu1 +libgcc-s112-20220313-1ubuntu1 libgcrypt201.9.4-3ubuntu2 libgmp102:6.2.1+dfsg-3ubuntu1 libgnutls303.7.3-4ubuntu1 libgpg-error01.43-3 -libgssapi-krb5-21.19.2-1 +libgssapi-krb5-21.19.2-2 libhogweed63.7.3-1build1 libidn2-02.3.2-2 -libk5crypto31.19.2-1 +libk5crypto31.19.2-2 libkeyutils11.6.1-2ubuntu3 -libkrb5-31.19.2-1 -libkrb5support01.19.2-1 +libkrb5-31.19.2-2 +libkrb5support01.19.2-2 libksba81.6.0-2 libldap-2.5-02.5.11+dfsg-1~exp1ubuntu3 libldap-common2.5.11+dfsg-1~exp1ubuntu3 @@ -83,7 +83,7 @@ libpam-modules-bin1.4.0-11ubuntu1 libpam-runtime1.4.0-11ubuntu1 libpcre2-8-010.39-3 libpcre32:8.39-13build4 -libprocps82:3.3.17-6ubuntu1 +libprocps82:3.3.17-6ubuntu2 libpsl50.21.0-1.2build1 libreadline88.1.2-1 librtmp12.4+20151223.gitfa8646d.1-2build3 @@ -91,28 +91,28 @@ libsasl2-22.1.27+dfsg2-3ubuntu1 libsasl2-modules2.1.27+dfsg2-3ubuntu1 libsasl2-modules-db2.1.27+dfsg2-3ubuntu1 libseccomp22.5.3-2ubuntu1 -libselinux13.3-1 -libsemanage23.3-1 -libsemanage-common3.3-1 +libselinux13.3-1build1 +libsemanage23.3-1build1 +libsemanage-common3.3-1build1 libsepol23.3-1 libsmartcols12.37.2-4ubuntu3 libsqlite3-03.37.2-2 libss21.46.5-2ubuntu1 libssh-40.9.6-2 libssl33.0.1-0ubuntu1 -libstdc++612-20220222-1ubuntu1 -libsystemd0249.10-0ubuntu1 +libstdc++612-20220313-1ubuntu1 +libsystemd0249.11-0ubuntu1 libtasn1-64.18.0-4 libtinfo66.3-2 libtirpc31.3.2-2 libtirpc-common1.3.2-2 -libudev1249.10-0ubuntu1 +libudev1249.11-0ubuntu1 libunistring21.0-1 libuuid12.37.2-4ubuntu3 libxxhash00.8.1-1 libzstd11.4.8+dfsg-3 locales2.35-0ubuntu3 -login1:4.8.1-2ubuntu1 +login1:4.8.1-2ubuntu2 logsave1.46.5-2ubuntu1 lsb-base11.1.0ubuntu3 mawk1.3.4.20200120-3 @@ -120,10 +120,10 @@ mount2.37.2-4ubuntu3 ncurses-base6.3-2 ncurses-bin6.3-2 openssl3.0.1-0ubuntu1 -passwd1:4.8.1-2ubuntu1 -perl-base5.32.1-3ubuntu3 +passwd1:4.8.1-2ubuntu2 +perl-base5.34.0-3ubuntu1 pinentry-curses1.1.1-1build1 -procps2:3.3.17-6ubuntu1 +procps2:3.3.17-6ubuntu2 publicsuffix20211207.1025-1 readline-common8.1.2-1 sed4.8-1ubuntu1 From 4a34e6b0aa7d44545ea3aadc03b449c70bd12834 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 29 Mar 2022 06:54:55 +0200 Subject: [PATCH 015/124] 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 c1a03184..d43d4753 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,6 +1,6 @@ adduser3.118ubuntu5 -apt2.4.1 -apt-utils2.4.1 +apt2.4.3 +apt-utils2.4.3 base-files12ubuntu2 base-passwd3.5.52 bash5.1-6ubuntu1 @@ -33,13 +33,13 @@ gzip1.10-4ubuntu2 hostname3.23ubuntu1 init-system-helpers1.62 libacl12.3.1-1 -libapt-pkg6.02.4.1 +libapt-pkg6.02.4.3 libassuan02.5.5-1 libattr11:2.5.1-1 libaudit11:3.0.7-1 libaudit-common1:3.0.7-1 libblkid12.37.2-4ubuntu3 -libbrotli11.0.9-2build4 +libbrotli11.0.9-2build5 libbz2-1.01.0.8-5 libc62.35-0ubuntu3 libcap21:2.44-1build2 @@ -64,7 +64,7 @@ libk5crypto31.19.2-2 libkeyutils11.6.1-2ubuntu3 libkrb5-31.19.2-2 libkrb5support01.19.2-2 -libksba81.6.0-2 +libksba81.6.0-2build1 libldap-2.5-02.5.11+dfsg-1~exp1ubuntu3 libldap-common2.5.11+dfsg-1~exp1ubuntu3 liblz4-11.9.3-2build1 @@ -84,9 +84,9 @@ libpam-runtime1.4.0-11ubuntu1 libpcre2-8-010.39-3 libpcre32:8.39-13build4 libprocps82:3.3.17-6ubuntu2 -libpsl50.21.0-1.2build1 +libpsl50.21.0-1.2build2 libreadline88.1.2-1 -librtmp12.4+20151223.gitfa8646d.1-2build3 +librtmp12.4+20151223.gitfa8646d.1-2build4 libsasl2-22.1.27+dfsg2-3ubuntu1 libsasl2-modules2.1.27+dfsg2-3ubuntu1 libsasl2-modules-db2.1.27+dfsg2-3ubuntu1 @@ -130,7 +130,7 @@ sed4.8-1ubuntu1 sensible-utils0.0.17 sysvinit-utils3.01-1ubuntu1 tar1.34+dfsg-1build2 -tzdata2021e-1ubuntu1 +tzdata2022a-0ubuntu1 ubuntu-keyring2021.03.26 usrmerge25ubuntu2 util-linux2.37.2-4ubuntu3 From 71e193f765c3660bcb5dc8d1018218d5cedc9eab Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 4 Apr 2022 23:54:16 -0500 Subject: [PATCH 016/124] Bot Updating Package Versions --- package_versions.txt | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index d43d4753..bbf7263a 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -12,34 +12,34 @@ dash0.5.11+git20210903+057cd650a4ed-3 debconf1.5.79ubuntu1 debianutils5.5-1ubuntu1 diffutils1:3.8-0ubuntu1 -dirmngr2.2.27-3ubuntu1 +dirmngr2.2.27-3ubuntu2 dpkg1.21.1ubuntu1 e2fsprogs1.46.5-2ubuntu1 findutils4.8.0-1ubuntu2 gcc-11-base11.2.0-18ubuntu1 gcc-12-base12-20220313-1ubuntu1 -gnupg2.2.27-3ubuntu1 -gnupg-l10n2.2.27-3ubuntu1 -gnupg-utils2.2.27-3ubuntu1 -gpg2.2.27-3ubuntu1 -gpg-agent2.2.27-3ubuntu1 -gpgconf2.2.27-3ubuntu1 -gpgsm2.2.27-3ubuntu1 -gpgv2.2.27-3ubuntu1 -gpg-wks-client2.2.27-3ubuntu1 -gpg-wks-server2.2.27-3ubuntu1 +gnupg2.2.27-3ubuntu2 +gnupg-l10n2.2.27-3ubuntu2 +gnupg-utils2.2.27-3ubuntu2 +gpg2.2.27-3ubuntu2 +gpg-agent2.2.27-3ubuntu2 +gpgconf2.2.27-3ubuntu2 +gpgsm2.2.27-3ubuntu2 +gpgv2.2.27-3ubuntu2 +gpg-wks-client2.2.27-3ubuntu2 +gpg-wks-server2.2.27-3ubuntu2 grep3.7-1 gzip1.10-4ubuntu2 hostname3.23ubuntu1 init-system-helpers1.62 libacl12.3.1-1 libapt-pkg6.02.4.3 -libassuan02.5.5-1 +libassuan02.5.5-1build1 libattr11:2.5.1-1 libaudit11:3.0.7-1 libaudit-common1:3.0.7-1 libblkid12.37.2-4ubuntu3 -libbrotli11.0.9-2build5 +libbrotli11.0.9-2build6 libbz2-1.01.0.8-5 libc62.35-0ubuntu3 libcap21:2.44-1build2 @@ -73,8 +73,8 @@ libmount12.37.2-4ubuntu3 libncurses66.3-2 libncursesw66.3-2 libnettle83.7.3-1build1 -libnghttp2-141.43.0-1build2 -libnpth01.6-3build1 +libnghttp2-141.43.0-1build3 +libnpth01.6-3build2 libnsl21.3.0-2build1 libp11-kit00.24.0-6 libpam0g1.4.0-11ubuntu1 @@ -98,7 +98,7 @@ libsepol23.3-1 libsmartcols12.37.2-4ubuntu3 libsqlite3-03.37.2-2 libss21.46.5-2ubuntu1 -libssh-40.9.6-2 +libssh-40.9.6-2build1 libssl33.0.1-0ubuntu1 libstdc++612-20220313-1ubuntu1 libsystemd0249.11-0ubuntu1 @@ -119,10 +119,10 @@ mawk1.3.4.20200120-3 mount2.37.2-4ubuntu3 ncurses-base6.3-2 ncurses-bin6.3-2 -openssl3.0.1-0ubuntu1 +openssl3.0.2-0ubuntu1 passwd1:4.8.1-2ubuntu2 perl-base5.34.0-3ubuntu1 -pinentry-curses1.1.1-1build1 +pinentry-curses1.1.1-1build2 procps2:3.3.17-6ubuntu2 publicsuffix20211207.1025-1 readline-common8.1.2-1 From 0527bacc5fe9e33e040dc5a7730c81c3f5dcd1cf Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 11 Apr 2022 23:55:11 -0500 Subject: [PATCH 017/124] Bot Updating Package Versions --- package_versions.txt | 100 +++++++++++++++++++++---------------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index bbf7263a..0c4b2df9 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,23 +1,23 @@ adduser3.118ubuntu5 -apt2.4.3 -apt-utils2.4.3 -base-files12ubuntu2 -base-passwd3.5.52 +apt2.4.5 +apt-utils2.4.5 +base-files12ubuntu3 +base-passwd3.5.52build1 bash5.1-6ubuntu1 bsdutils1:2.37.2-4ubuntu3 ca-certificates20211016 coreutils8.32-4.1ubuntu1 curl7.81.0-1 -dash0.5.11+git20210903+057cd650a4ed-3 +dash0.5.11+git20210903+057cd650a4ed-3build1 debconf1.5.79ubuntu1 -debianutils5.5-1ubuntu1 -diffutils1:3.8-0ubuntu1 +debianutils5.5-1ubuntu2 +diffutils1:3.8-0ubuntu2 dirmngr2.2.27-3ubuntu2 dpkg1.21.1ubuntu1 e2fsprogs1.46.5-2ubuntu1 -findutils4.8.0-1ubuntu2 -gcc-11-base11.2.0-18ubuntu1 -gcc-12-base12-20220313-1ubuntu1 +findutils4.8.0-1ubuntu3 +gcc-11-base11.2.0-19ubuntu1 +gcc-12-base12-20220319-1ubuntu1 gnupg2.2.27-3ubuntu2 gnupg-l10n2.2.27-3ubuntu2 gnupg-utils2.2.27-3ubuntu2 @@ -28,38 +28,38 @@ gpgsm2.2.27-3ubuntu2 gpgv2.2.27-3ubuntu2 gpg-wks-client2.2.27-3ubuntu2 gpg-wks-server2.2.27-3ubuntu2 -grep3.7-1 -gzip1.10-4ubuntu2 -hostname3.23ubuntu1 +grep3.7-1build1 +gzip1.10-4ubuntu3 +hostname3.23ubuntu2 init-system-helpers1.62 libacl12.3.1-1 -libapt-pkg6.02.4.3 +libapt-pkg6.02.4.5 libassuan02.5.5-1build1 -libattr11:2.5.1-1 -libaudit11:3.0.7-1 -libaudit-common1:3.0.7-1 +libattr11:2.5.1-1build1 +libaudit11:3.0.7-1build1 +libaudit-common1:3.0.7-1build1 libblkid12.37.2-4ubuntu3 libbrotli11.0.9-2build6 -libbz2-1.01.0.8-5 +libbz2-1.01.0.8-5build1 libc62.35-0ubuntu3 -libcap21:2.44-1build2 +libcap21:2.44-1build3 libcap-ng00.7.9-2.2build3 libc-bin2.35-0ubuntu3 libcom-err21.46.5-2ubuntu1 libcrypt11:4.4.27-1 libcurl47.81.0-1 -libdb5.35.3.28+dfsg1-0.8ubuntu2 +libdb5.35.3.28+dfsg1-0.8ubuntu3 libdebconfclient00.261ubuntu1 libext2fs21.46.5-2ubuntu1 libffi83.4.2-4 -libgcc-s112-20220313-1ubuntu1 -libgcrypt201.9.4-3ubuntu2 +libgcc-s112-20220319-1ubuntu1 +libgcrypt201.9.4-3ubuntu3 libgmp102:6.2.1+dfsg-3ubuntu1 libgnutls303.7.3-4ubuntu1 libgpg-error01.43-3 libgssapi-krb5-21.19.2-2 -libhogweed63.7.3-1build1 -libidn2-02.3.2-2 +libhogweed63.7.3-1build2 +libidn2-02.3.2-2build1 libk5crypto31.19.2-2 libkeyutils11.6.1-2ubuntu3 libkrb5-31.19.2-2 @@ -67,22 +67,22 @@ libkrb5support01.19.2-2 libksba81.6.0-2build1 libldap-2.5-02.5.11+dfsg-1~exp1ubuntu3 libldap-common2.5.11+dfsg-1~exp1ubuntu3 -liblz4-11.9.3-2build1 +liblz4-11.9.3-2build2 liblzma55.2.5-2build1 libmount12.37.2-4ubuntu3 libncurses66.3-2 libncursesw66.3-2 -libnettle83.7.3-1build1 +libnettle83.7.3-1build2 libnghttp2-141.43.0-1build3 libnpth01.6-3build2 -libnsl21.3.0-2build1 -libp11-kit00.24.0-6 -libpam0g1.4.0-11ubuntu1 -libpam-modules1.4.0-11ubuntu1 -libpam-modules-bin1.4.0-11ubuntu1 -libpam-runtime1.4.0-11ubuntu1 -libpcre2-8-010.39-3 -libpcre32:8.39-13build4 +libnsl21.3.0-2build2 +libp11-kit00.24.0-6build1 +libpam0g1.4.0-11ubuntu2 +libpam-modules1.4.0-11ubuntu2 +libpam-modules-bin1.4.0-11ubuntu2 +libpam-runtime1.4.0-11ubuntu2 +libpcre2-8-010.39-3build1 +libpcre32:8.39-13build5 libprocps82:3.3.17-6ubuntu2 libpsl50.21.0-1.2build2 libreadline88.1.2-1 @@ -90,23 +90,23 @@ librtmp12.4+20151223.gitfa8646d.1-2build4 libsasl2-22.1.27+dfsg2-3ubuntu1 libsasl2-modules2.1.27+dfsg2-3ubuntu1 libsasl2-modules-db2.1.27+dfsg2-3ubuntu1 -libseccomp22.5.3-2ubuntu1 -libselinux13.3-1build1 -libsemanage23.3-1build1 -libsemanage-common3.3-1build1 -libsepol23.3-1 +libseccomp22.5.3-2ubuntu2 +libselinux13.3-1build2 +libsemanage23.3-1build2 +libsemanage-common3.3-1build2 +libsepol23.3-1build1 libsmartcols12.37.2-4ubuntu3 libsqlite3-03.37.2-2 libss21.46.5-2ubuntu1 libssh-40.9.6-2build1 -libssl33.0.1-0ubuntu1 -libstdc++612-20220313-1ubuntu1 -libsystemd0249.11-0ubuntu1 -libtasn1-64.18.0-4 +libssl33.0.2-0ubuntu1 +libstdc++612-20220319-1ubuntu1 +libsystemd0249.11-0ubuntu2 +libtasn1-64.18.0-4build1 libtinfo66.3-2 -libtirpc31.3.2-2 -libtirpc-common1.3.2-2 -libudev1249.11-0ubuntu1 +libtirpc31.3.2-2build1 +libtirpc-common1.3.2-2build1 +libudev1249.11-0ubuntu2 libunistring21.0-1 libuuid12.37.2-4ubuntu3 libxxhash00.8.1-1 @@ -114,7 +114,7 @@ libzstd11.4.8+dfsg-3 locales2.35-0ubuntu3 login1:4.8.1-2ubuntu2 logsave1.46.5-2ubuntu1 -lsb-base11.1.0ubuntu3 +lsb-base11.1.0ubuntu4 mawk1.3.4.20200120-3 mount2.37.2-4ubuntu3 ncurses-base6.3-2 @@ -126,12 +126,12 @@ pinentry-curses1.1.1-1build2 procps2:3.3.17-6ubuntu2 publicsuffix20211207.1025-1 readline-common8.1.2-1 -sed4.8-1ubuntu1 +sed4.8-1ubuntu2 sensible-utils0.0.17 sysvinit-utils3.01-1ubuntu1 -tar1.34+dfsg-1build2 +tar1.34+dfsg-1build3 tzdata2022a-0ubuntu1 ubuntu-keyring2021.03.26 usrmerge25ubuntu2 util-linux2.37.2-4ubuntu3 -zlib1g1:1.2.11.dfsg-2ubuntu7 +zlib1g1:1.2.11.dfsg-2ubuntu9 From c7d664a0e67dcadc5990b8a1c4d90c365f4941e7 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 19 Apr 2022 07:07:57 +0200 Subject: [PATCH 018/124] Bot Updating Package Versions --- package_versions.txt | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 0c4b2df9..65c45493 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -13,10 +13,9 @@ debconf1.5.79ubuntu1 debianutils5.5-1ubuntu2 diffutils1:3.8-0ubuntu2 dirmngr2.2.27-3ubuntu2 -dpkg1.21.1ubuntu1 +dpkg1.21.1ubuntu2 e2fsprogs1.46.5-2ubuntu1 findutils4.8.0-1ubuntu3 -gcc-11-base11.2.0-19ubuntu1 gcc-12-base12-20220319-1ubuntu1 gnupg2.2.27-3ubuntu2 gnupg-l10n2.2.27-3ubuntu2 @@ -29,7 +28,7 @@ gpgv2.2.27-3ubuntu2 gpg-wks-client2.2.27-3ubuntu2 gpg-wks-server2.2.27-3ubuntu2 grep3.7-1build1 -gzip1.10-4ubuntu3 +gzip1.10-4ubuntu4 hostname3.23ubuntu2 init-system-helpers1.62 libacl12.3.1-1 @@ -68,7 +67,7 @@ libksba81.6.0-2build1 libldap-2.5-02.5.11+dfsg-1~exp1ubuntu3 libldap-common2.5.11+dfsg-1~exp1ubuntu3 liblz4-11.9.3-2build2 -liblzma55.2.5-2build1 +liblzma55.2.5-2ubuntu1 libmount12.37.2-4ubuntu3 libncurses66.3-2 libncursesw66.3-2 @@ -101,16 +100,16 @@ libss21.46.5-2ubuntu1 libssh-40.9.6-2build1 libssl33.0.2-0ubuntu1 libstdc++612-20220319-1ubuntu1 -libsystemd0249.11-0ubuntu2 +libsystemd0249.11-0ubuntu3 libtasn1-64.18.0-4build1 libtinfo66.3-2 libtirpc31.3.2-2build1 libtirpc-common1.3.2-2build1 -libudev1249.11-0ubuntu2 +libudev1249.11-0ubuntu3 libunistring21.0-1 libuuid12.37.2-4ubuntu3 libxxhash00.8.1-1 -libzstd11.4.8+dfsg-3 +libzstd11.4.8+dfsg-3build1 locales2.35-0ubuntu3 login1:4.8.1-2ubuntu2 logsave1.46.5-2ubuntu1 From 8c75b07d4e2b98acbb920b3e713f56b3e6bf565a Mon Sep 17 00:00:00 2001 From: aptalca Date: Wed, 20 Apr 2022 09:57:11 -0400 Subject: [PATCH 019/124] add retry to mod curls --- root/docker-mods | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/root/docker-mods b/root/docker-mods index d1b955e6..9bd92315 100755 --- a/root/docker-mods +++ b/root/docker-mods @@ -27,14 +27,14 @@ fi # Use different filtering depending on URL get_blob_sha () { if [[ $1 == "ghcr" ]]; then - curl \ + curl -f --retry 10 --retry-max-time 60 --retry-connrefused \ --silent \ --location \ --request GET \ --header "Authorization: Bearer $2" \ $3 | jq -r '.layers[0].digest' else - curl \ + curl -f --retry 10 --retry-max-time 60 --retry-connrefused \ --silent \ --location \ --request GET \ @@ -94,7 +94,7 @@ for DOCKER_MOD in "${DOCKER_MODS[@]}"; do echo "[mod-init] Applying ${DOCKER_MOD} files to container" # Get Dockerhub token for api operations TOKEN=\ -"$(curl \ +"$(curl -f --retry 10 --retry-max-time 60 --retry-connrefused \ --silent \ --header 'GET' \ "${AUTH_URL}" \ @@ -107,13 +107,15 @@ for DOCKER_MOD in "${DOCKER_MODS[@]}"; do echo "[mod-init] ${DOCKER_MOD} at ${SHALAYER} has been previously applied skipping" else # Download and extract layer to / - curl \ + curl -f --retry 10 --retry-max-time 60 --retry-all-errors \ --silent \ --location \ --request GET \ --header "Authorization: Bearer ${TOKEN}" \ - "${BLOB_URL}${SHALAYER}" \ - | tar xz -C / + "${BLOB_URL}${SHALAYER}" -o \ + /modtarball.tar.xz + tar xzf /modtarball.tar.xz -C / + rm -rf /modtarball.tar.xz echo ${SHALAYER} > "/${FILENAME}" fi done From 697dc21aaa89fa37d231928056c118711b7f6d3e Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Thu, 21 Apr 2022 20:44:36 +0200 Subject: [PATCH 020/124] 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 65c45493..c318c16e 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,7 +1,7 @@ adduser3.118ubuntu5 apt2.4.5 apt-utils2.4.5 -base-files12ubuntu3 +base-files12ubuntu4 base-passwd3.5.52build1 bash5.1-6ubuntu1 bsdutils1:2.37.2-4ubuntu3 From 76ae88069efa98bb332fc5047c2072c067a14eca Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 3 May 2022 07:03:31 +0200 Subject: [PATCH 021/124] 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 c318c16e..7fb61102 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -7,7 +7,7 @@ bash5.1-6ubuntu1 bsdutils1:2.37.2-4ubuntu3 ca-certificates20211016 coreutils8.32-4.1ubuntu1 -curl7.81.0-1 +curl7.81.0-1ubuntu1.1 dash0.5.11+git20210903+057cd650a4ed-3build1 debconf1.5.79ubuntu1 debianutils5.5-1ubuntu2 @@ -46,7 +46,7 @@ libcap-ng00.7.9-2.2build3 libc-bin2.35-0ubuntu3 libcom-err21.46.5-2ubuntu1 libcrypt11:4.4.27-1 -libcurl47.81.0-1 +libcurl47.81.0-1ubuntu1.1 libdb5.35.3.28+dfsg1-0.8ubuntu3 libdebconfclient00.261ubuntu1 libext2fs21.46.5-2ubuntu1 From dbb009c2492296a603ffc0acf526abb75e96dfc4 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 10 May 2022 06:57:35 +0200 Subject: [PATCH 022/124] 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 7fb61102..02b60b11 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,7 +1,7 @@ adduser3.118ubuntu5 apt2.4.5 apt-utils2.4.5 -base-files12ubuntu4 +base-files12ubuntu4.1 base-passwd3.5.52build1 bash5.1-6ubuntu1 bsdutils1:2.37.2-4ubuntu3 @@ -98,14 +98,14 @@ libsmartcols12.37.2-4ubuntu3 libsqlite3-03.37.2-2 libss21.46.5-2ubuntu1 libssh-40.9.6-2build1 -libssl33.0.2-0ubuntu1 +libssl33.0.2-0ubuntu1.1 libstdc++612-20220319-1ubuntu1 -libsystemd0249.11-0ubuntu3 +libsystemd0249.11-0ubuntu3.1 libtasn1-64.18.0-4build1 libtinfo66.3-2 libtirpc31.3.2-2build1 libtirpc-common1.3.2-2build1 -libudev1249.11-0ubuntu3 +libudev1249.11-0ubuntu3.1 libunistring21.0-1 libuuid12.37.2-4ubuntu3 libxxhash00.8.1-1 @@ -118,7 +118,7 @@ mawk1.3.4.20200120-3 mount2.37.2-4ubuntu3 ncurses-base6.3-2 ncurses-bin6.3-2 -openssl3.0.2-0ubuntu1 +openssl3.0.2-0ubuntu1.1 passwd1:4.8.1-2ubuntu2 perl-base5.34.0-3ubuntu1 pinentry-curses1.1.1-1build2 From 323ce36c116833193362ee387fa584b18f286a5f Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 17 May 2022 07:05:15 +0200 Subject: [PATCH 023/124] 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 02b60b11..71bdea29 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -7,7 +7,7 @@ bash5.1-6ubuntu1 bsdutils1:2.37.2-4ubuntu3 ca-certificates20211016 coreutils8.32-4.1ubuntu1 -curl7.81.0-1ubuntu1.1 +curl7.81.0-1ubuntu1.2 dash0.5.11+git20210903+057cd650a4ed-3build1 debconf1.5.79ubuntu1 debianutils5.5-1ubuntu2 @@ -46,7 +46,7 @@ libcap-ng00.7.9-2.2build3 libc-bin2.35-0ubuntu3 libcom-err21.46.5-2ubuntu1 libcrypt11:4.4.27-1 -libcurl47.81.0-1ubuntu1.1 +libcurl47.81.0-1ubuntu1.2 libdb5.35.3.28+dfsg1-0.8ubuntu3 libdebconfclient00.261ubuntu1 libext2fs21.46.5-2ubuntu1 From baae4e61735f10a81a270646b5f7f0208d140d53 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 24 May 2022 00:06:26 -0500 Subject: [PATCH 024/124] 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 71bdea29..cf2a4509 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -64,8 +64,8 @@ libkeyutils11.6.1-2ubuntu3 libkrb5-31.19.2-2 libkrb5support01.19.2-2 libksba81.6.0-2build1 -libldap-2.5-02.5.11+dfsg-1~exp1ubuntu3 -libldap-common2.5.11+dfsg-1~exp1ubuntu3 +libldap-2.5-02.5.11+dfsg-1~exp1ubuntu3.1 +libldap-common2.5.11+dfsg-1~exp1ubuntu3.1 liblz4-11.9.3-2build2 liblzma55.2.5-2ubuntu1 libmount12.37.2-4ubuntu3 @@ -81,7 +81,7 @@ libpam-modules1.4.0-11ubuntu2 libpam-modules-bin1.4.0-11ubuntu2 libpam-runtime1.4.0-11ubuntu2 libpcre2-8-010.39-3build1 -libpcre32:8.39-13build5 +libpcre32:8.39-13ubuntu0.22.04.1 libprocps82:3.3.17-6ubuntu2 libpsl50.21.0-1.2build2 libreadline88.1.2-1 @@ -98,7 +98,7 @@ libsmartcols12.37.2-4ubuntu3 libsqlite3-03.37.2-2 libss21.46.5-2ubuntu1 libssh-40.9.6-2build1 -libssl33.0.2-0ubuntu1.1 +libssl33.0.2-0ubuntu1.2 libstdc++612-20220319-1ubuntu1 libsystemd0249.11-0ubuntu3.1 libtasn1-64.18.0-4build1 @@ -118,7 +118,7 @@ mawk1.3.4.20200120-3 mount2.37.2-4ubuntu3 ncurses-base6.3-2 ncurses-bin6.3-2 -openssl3.0.2-0ubuntu1.1 +openssl3.0.2-0ubuntu1.2 passwd1:4.8.1-2ubuntu2 perl-base5.34.0-3ubuntu1 pinentry-curses1.1.1-1build2 From 45f46488437473a54a3e83b53582fdca51202469 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Tue, 24 May 2022 17:56:03 +0100 Subject: [PATCH 025/124] Initial s6 v3 commit --- Dockerfile | 179 ++++++++-------- Dockerfile.aarch64 | 191 ++++++++++-------- Dockerfile.armhf | 191 ++++++++++-------- patch/etc/s6/init/init-stage2.patch | 15 -- .../etc/s6-linux-init/skel/rc.init.patch | 11 + root/docker-mods | 12 ++ root/etc/cont-init.d/01-envfile | 0 root/etc/cont-init.d/02-tamper-check | 0 root/etc/cont-init.d/10-adduser | 0 root/etc/cont-init.d/90-custom-folders | 0 root/etc/cont-init.d/99-custom-scripts | 0 root/usr/bin/with-contenv | 4 +- 12 files changed, 325 insertions(+), 278 deletions(-) delete mode 100644 patch/etc/s6/init/init-stage2.patch create mode 100644 patch/package/admin/s6-overlay-@VERSION@/etc/s6-linux-init/skel/rc.init.patch mode change 100644 => 100755 root/etc/cont-init.d/01-envfile mode change 100644 => 100755 root/etc/cont-init.d/02-tamper-check mode change 100644 => 100755 root/etc/cont-init.d/10-adduser mode change 100644 => 100755 root/etc/cont-init.d/90-custom-folders mode change 100644 => 100755 root/etc/cont-init.d/99-custom-scripts diff --git a/Dockerfile b/Dockerfile index 82c82959..89514876 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,23 +3,46 @@ FROM alpine:3.15 as rootfs-stage # environment ENV REL=jammy ENV ARCH=amd64 + # install packages RUN \ - apk add --no-cache \ - bash \ - curl \ - tzdata \ - xz + apk add --no-cache \ + bash \ + curl \ + patch \ + tar \ + tzdata \ + xz # grab base tarball RUN \ - mkdir /root-out && \ - curl -o \ - /rootfs.tar.gz -L \ - https://partner-images.canonical.com/core/${REL}/current/ubuntu-${REL}-core-cloudimg-${ARCH}-root.tar.gz && \ - tar xf \ - /rootfs.tar.gz -C \ - /root-out + mkdir /root-out && \ + curl -o \ + /rootfs.tar.gz -L \ + https://partner-images.canonical.com/core/${REL}/current/ubuntu-${REL}-core-cloudimg-${ARCH}-root.tar.gz && \ + tar xf \ + /rootfs.tar.gz -C \ + /root-out + +# set version for s6 overlay +ARG S6_OVERLAY_VERSION="3.1.0.1" +ARG S6_OVERLAY_ARCH="x86_64" + +# add s6 overlay +ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz /tmp +RUN tar -C /root-out -Jxpf /tmp/s6-overlay-noarch.tar.xz +ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz /tmp +RUN tar -C /root-out -Jxpf /tmp/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz + +# add s6 optional symlinks +ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch.tar.xz /tmp +RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz +ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz /tmp +RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz + +# patch cont-init for docker-mods +COPY patch/ /tmp/patch +RUN patch -u /root-out/package/admin/s6-overlay-${S6_OVERLAY_VERSION}/etc/s6-linux-init/skel/rc.init -i /tmp/patch/package/admin/s6-overlay-@VERSION@/etc/s6-linux-init/skel/rc.init.patch # Runtime stage FROM scratch @@ -29,15 +52,6 @@ ARG VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="TheLamer" -# set version for s6 overlay -ARG OVERLAY_VERSION="v2.2.0.3" -ARG OVERLAY_ARCH="amd64" - -# add s6 overlay -ADD https://github.com/just-containers/s6-overlay/releases/download/${OVERLAY_VERSION}/s6-overlay-${OVERLAY_ARCH}-installer /tmp/ -RUN chmod +x /tmp/s6-overlay-${OVERLAY_ARCH}-installer && /tmp/s6-overlay-${OVERLAY_ARCH}-installer / && rm /tmp/s6-overlay-${OVERLAY_ARCH}-installer -COPY patch/ /tmp/patch - # set environment variables ARG DEBIAN_FRONTEND="noninteractive" ENV HOME="/root" \ @@ -49,68 +63,67 @@ TERM="xterm" COPY sources.list /etc/apt/ RUN \ - echo "**** Ripped from Ubuntu Docker Logic ****" && \ - set -xe && \ - echo '#!/bin/sh' \ - > /usr/sbin/policy-rc.d && \ - echo 'exit 101' \ - >> /usr/sbin/policy-rc.d && \ - chmod +x \ - /usr/sbin/policy-rc.d && \ - dpkg-divert --local --rename --add /sbin/initctl && \ - cp -a \ - /usr/sbin/policy-rc.d \ - /sbin/initctl && \ - sed -i \ - 's/^exit.*/exit 0/' \ - /sbin/initctl && \ - echo 'force-unsafe-io' \ - > /etc/dpkg/dpkg.cfg.d/docker-apt-speedup && \ - echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \ - > /etc/apt/apt.conf.d/docker-clean && \ - echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \ - >> /etc/apt/apt.conf.d/docker-clean && \ - echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' \ - >> /etc/apt/apt.conf.d/docker-clean && \ - echo 'Acquire::Languages "none";' \ - > /etc/apt/apt.conf.d/docker-no-languages && \ - echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' \ - > /etc/apt/apt.conf.d/docker-gzip-indexes && \ - echo 'Apt::AutoRemove::SuggestsImportant "false";' \ - > /etc/apt/apt.conf.d/docker-autoremove-suggests && \ - mkdir -p /run/systemd && \ - echo 'docker' \ - > /run/systemd/container && \ - echo "**** install apt-utils and locales ****" && \ - apt-get update && \ - apt-get install -y \ - apt-utils \ - locales && \ - echo "**** install packages ****" && \ - apt-get install -y \ - curl \ - gnupg \ - patch \ - tzdata && \ - echo "**** generate locale ****" && \ - locale-gen en_US.UTF-8 && \ - echo "**** create abc user and make our folders ****" && \ - useradd -u 911 -U -d /config -s /bin/false abc && \ - usermod -G users abc && \ - mkdir -p \ - /app \ - /config \ - /defaults && \ - mv /usr/bin/with-contenv /usr/bin/with-contenvb && \ - patch -u /etc/s6/init/init-stage2 -i /tmp/patch/etc/s6/init/init-stage2.patch && \ - echo "**** cleanup ****" && \ - apt-get remove -y patch && \ - apt-get autoremove && \ - apt-get clean && \ - rm -rf \ - /tmp/* \ - /var/lib/apt/lists/* \ - /var/tmp/* + echo "**** Ripped from Ubuntu Docker Logic ****" && \ + set -xe && \ + echo '#!/bin/sh' \ + > /usr/sbin/policy-rc.d && \ + echo 'exit 101' \ + >> /usr/sbin/policy-rc.d && \ + chmod +x \ + /usr/sbin/policy-rc.d && \ + dpkg-divert --local --rename --add /sbin/initctl && \ + cp -a \ + /usr/sbin/policy-rc.d \ + /sbin/initctl && \ + sed -i \ + 's/^exit.*/exit 0/' \ + /sbin/initctl && \ + echo 'force-unsafe-io' \ + > /etc/dpkg/dpkg.cfg.d/docker-apt-speedup && \ + echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \ + > /etc/apt/apt.conf.d/docker-clean && \ + echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \ + >> /etc/apt/apt.conf.d/docker-clean && \ + echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' \ + >> /etc/apt/apt.conf.d/docker-clean && \ + echo 'Acquire::Languages "none";' \ + > /etc/apt/apt.conf.d/docker-no-languages && \ + echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' \ + > /etc/apt/apt.conf.d/docker-gzip-indexes && \ + echo 'Apt::AutoRemove::SuggestsImportant "false";' \ + > /etc/apt/apt.conf.d/docker-autoremove-suggests && \ + mkdir -p /run/systemd && \ + echo 'docker' \ + > /run/systemd/container && \ + echo "**** install apt-utils and locales ****" && \ + apt-get update && \ + apt-get install -y \ + apt-utils \ + locales && \ + echo "**** install packages ****" && \ + apt-get install -y \ + curl \ + gnupg \ + patch \ + tzdata && \ + echo "**** generate locale ****" && \ + locale-gen en_US.UTF-8 && \ + echo "**** create abc user and make our folders ****" && \ + useradd -u 911 -U -d /config -s /bin/false abc && \ + usermod -G users abc && \ + mkdir -p \ + /app \ + /config \ + /defaults && \ + echo "**** cleanup ****" && \ + apt-get remove -y patch && \ + apt-get autoremove && \ + apt-get clean && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/* \ + /var/log/* # add local files COPY root/ / diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index ad012060..4a82c910 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -3,23 +3,46 @@ FROM alpine:3.15 as rootfs-stage # environment ENV REL=jammy ENV ARCH=arm64 + # install packages RUN \ - apk add --no-cache \ - bash \ - curl \ - tzdata \ - xz + apk add --no-cache \ + bash \ + curl \ + patch \ + tar \ + tzdata \ + xz # grab base tarball RUN \ - mkdir /root-out && \ - curl -o \ - /rootfs.tar.gz -L \ - https://partner-images.canonical.com/core/${REL}/current/ubuntu-${REL}-core-cloudimg-${ARCH}-root.tar.gz && \ - tar xf \ - /rootfs.tar.gz -C \ - /root-out + mkdir /root-out && \ + curl -o \ + /rootfs.tar.gz -L \ + https://partner-images.canonical.com/core/${REL}/current/ubuntu-${REL}-core-cloudimg-${ARCH}-root.tar.gz && \ + tar xf \ + /rootfs.tar.gz -C \ + /root-out + +# set version for s6 overlay +ARG S6_OVERLAY_VERSION="3.1.0.1" +ARG S6_OVERLAY_ARCH="aarch64" + +# add s6 overlay +ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz /tmp +RUN tar -C /root-out -Jxpf /tmp/s6-overlay-noarch.tar.xz +ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz /tmp +RUN tar -C /root-out -Jxpf /tmp/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz + +# add s6 optional symlinks +ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch.tar.xz /tmp +RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz +ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz /tmp +RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz + +# patch cont-init for docker-mods +COPY patch/ /tmp/patch +RUN patch -u /root-out/package/admin/s6-overlay-${S6_OVERLAY_VERSION}/etc/s6-linux-init/skel/rc.init -i /tmp/patch/package/admin/s6-overlay-@VERSION@/etc/s6-linux-init/skel/rc.init.patch # Runtime stage FROM scratch @@ -29,15 +52,6 @@ ARG VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="TheLamer" -# set version for s6 overlay -ARG OVERLAY_VERSION="v2.2.0.3" -ARG OVERLAY_ARCH="aarch64" - -# add s6 overlay -ADD https://github.com/just-containers/s6-overlay/releases/download/${OVERLAY_VERSION}/s6-overlay-${OVERLAY_ARCH}-installer /tmp/ -RUN chmod +x /tmp/s6-overlay-${OVERLAY_ARCH}-installer && /tmp/s6-overlay-${OVERLAY_ARCH}-installer / && rm /tmp/s6-overlay-${OVERLAY_ARCH}-installer -COPY patch/ /tmp/patch - # set environment variables ARG DEBIAN_FRONTEND="noninteractive" ENV HOME="/root" \ @@ -46,76 +60,75 @@ LANG="en_US.UTF-8" \ TERM="xterm" # copy sources -COPY sources.list.arm /etc/apt/ +COPY sources.list /etc/apt/ RUN \ - echo "**** Ripped from Ubuntu Docker Logic ****" && \ - set -xe && \ - echo '#!/bin/sh' \ - > /usr/sbin/policy-rc.d && \ - echo 'exit 101' \ - >> /usr/sbin/policy-rc.d && \ - chmod +x \ - /usr/sbin/policy-rc.d && \ - dpkg-divert --local --rename --add /sbin/initctl && \ - cp -a \ - /usr/sbin/policy-rc.d \ - /sbin/initctl && \ - sed -i \ - 's/^exit.*/exit 0/' \ - /sbin/initctl && \ - echo 'force-unsafe-io' \ - > /etc/dpkg/dpkg.cfg.d/docker-apt-speedup && \ - echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \ - > /etc/apt/apt.conf.d/docker-clean && \ - echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \ - >> /etc/apt/apt.conf.d/docker-clean && \ - echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' \ - >> /etc/apt/apt.conf.d/docker-clean && \ - echo 'Acquire::Languages "none";' \ - > /etc/apt/apt.conf.d/docker-no-languages && \ - echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' \ - > /etc/apt/apt.conf.d/docker-gzip-indexes && \ - echo 'Apt::AutoRemove::SuggestsImportant "false";' \ - > /etc/apt/apt.conf.d/docker-autoremove-suggests && \ - mkdir -p /run/systemd && \ - echo 'docker' \ - > /run/systemd/container && \ - echo "**** install apt-utils and locales ****" && \ - apt-get update && \ - apt-get install -y \ - apt-utils \ - locales && \ - echo "**** install packages ****" && \ - apt-get install -y \ - curl \ - gnupg \ - patch \ - tzdata && \ - echo "**** generate locale ****" && \ - locale-gen en_US.UTF-8 && \ - echo "**** create abc user and make our folders ****" && \ - useradd -u 911 -U -d /config -s /bin/false abc && \ - usermod -G users abc && \ - mkdir -p \ - /app \ - /config \ - /defaults && \ - mv /usr/bin/with-contenv /usr/bin/with-contenvb && \ - patch -u /etc/s6/init/init-stage2 -i /tmp/patch/etc/s6/init/init-stage2.patch && \ - echo "**** add qemu ****" && \ - curl -o \ - /usr/bin/qemu-aarch64-static -L \ - "https://lsio-ci.ams3.digitaloceanspaces.com/qemu-aarch64-static" && \ - chmod +x /usr/bin/qemu-aarch64-static && \ - echo "**** cleanup ****" && \ - apt-get remove -y patch && \ - apt-get autoremove && \ - apt-get clean && \ - rm -rf \ - /tmp/* \ - /var/lib/apt/lists/* \ - /var/tmp/* + echo "**** Ripped from Ubuntu Docker Logic ****" && \ + set -xe && \ + echo '#!/bin/sh' \ + > /usr/sbin/policy-rc.d && \ + echo 'exit 101' \ + >> /usr/sbin/policy-rc.d && \ + chmod +x \ + /usr/sbin/policy-rc.d && \ + dpkg-divert --local --rename --add /sbin/initctl && \ + cp -a \ + /usr/sbin/policy-rc.d \ + /sbin/initctl && \ + sed -i \ + 's/^exit.*/exit 0/' \ + /sbin/initctl && \ + echo 'force-unsafe-io' \ + > /etc/dpkg/dpkg.cfg.d/docker-apt-speedup && \ + echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \ + > /etc/apt/apt.conf.d/docker-clean && \ + echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \ + >> /etc/apt/apt.conf.d/docker-clean && \ + echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' \ + >> /etc/apt/apt.conf.d/docker-clean && \ + echo 'Acquire::Languages "none";' \ + > /etc/apt/apt.conf.d/docker-no-languages && \ + echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' \ + > /etc/apt/apt.conf.d/docker-gzip-indexes && \ + echo 'Apt::AutoRemove::SuggestsImportant "false";' \ + > /etc/apt/apt.conf.d/docker-autoremove-suggests && \ + mkdir -p /run/systemd && \ + echo 'docker' \ + > /run/systemd/container && \ + echo "**** install apt-utils and locales ****" && \ + apt-get update && \ + apt-get install -y \ + apt-utils \ + locales && \ + echo "**** install packages ****" && \ + apt-get install -y \ + curl \ + gnupg \ + patch \ + tzdata && \ + echo "**** generate locale ****" && \ + locale-gen en_US.UTF-8 && \ + echo "**** create abc user and make our folders ****" && \ + useradd -u 911 -U -d /config -s /bin/false abc && \ + usermod -G users abc && \ + mkdir -p \ + /app \ + /config \ + /defaults && \ + echo "**** add qemu ****" && \ + curl -o \ + /usr/bin/qemu-aarch64-static -L \ + "https://lsio-ci.ams3.digitaloceanspaces.com/qemu-aarch64-static" && \ + chmod +x /usr/bin/qemu-aarch64-static && \ + echo "**** cleanup ****" && \ + apt-get remove -y patch && \ + apt-get autoremove && \ + apt-get clean && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/* \ + /var/log/* # add local files COPY root/ / diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 432c3eab..350ba0c9 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -3,23 +3,46 @@ FROM alpine:3.15 as rootfs-stage # environment ENV REL=jammy ENV ARCH=armhf + # install packages RUN \ - apk add --no-cache \ - bash \ - curl \ - tzdata \ - xz + apk add --no-cache \ + bash \ + curl \ + patch \ + tar \ + tzdata \ + xz # grab base tarball RUN \ - mkdir /root-out && \ - curl -o \ - /rootfs.tar.gz -L \ - https://partner-images.canonical.com/core/${REL}/current/ubuntu-${REL}-core-cloudimg-${ARCH}-root.tar.gz && \ - tar xf \ - /rootfs.tar.gz -C \ - /root-out + mkdir /root-out && \ + curl -o \ + /rootfs.tar.gz -L \ + https://partner-images.canonical.com/core/${REL}/current/ubuntu-${REL}-core-cloudimg-${ARCH}-root.tar.gz && \ + tar xf \ + /rootfs.tar.gz -C \ + /root-out + +# set version for s6 overlay +ARG S6_OVERLAY_VERSION="3.1.0.1" +ARG S6_OVERLAY_ARCH="armhf" + +# add s6 overlay +ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz /tmp +RUN tar -C /root-out -Jxpf /tmp/s6-overlay-noarch.tar.xz +ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz /tmp +RUN tar -C /root-out -Jxpf /tmp/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz + +# add s6 optional symlinks +ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch.tar.xz /tmp +RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz +ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz /tmp +RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz + +# patch cont-init for docker-mods +COPY patch/ /tmp/patch +RUN patch -u /root-out/package/admin/s6-overlay-${S6_OVERLAY_VERSION}/etc/s6-linux-init/skel/rc.init -i /tmp/patch/package/admin/s6-overlay-@VERSION@/etc/s6-linux-init/skel/rc.init.patch # Runtime stage FROM scratch @@ -29,15 +52,6 @@ ARG VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="TheLamer" -# set version for s6 overlay -ARG OVERLAY_VERSION="v2.2.0.3" -ARG OVERLAY_ARCH="arm" - -# add s6 overlay -ADD https://github.com/just-containers/s6-overlay/releases/download/${OVERLAY_VERSION}/s6-overlay-${OVERLAY_ARCH}-installer /tmp/ -RUN chmod +x /tmp/s6-overlay-${OVERLAY_ARCH}-installer && /tmp/s6-overlay-${OVERLAY_ARCH}-installer / && rm /tmp/s6-overlay-${OVERLAY_ARCH}-installer -COPY patch/ /tmp/patch - # set environment variables ARG DEBIAN_FRONTEND="noninteractive" ENV HOME="/root" \ @@ -46,76 +60,75 @@ LANG="en_US.UTF-8" \ TERM="xterm" # copy sources -COPY sources.list.arm /etc/apt/ +COPY sources.list /etc/apt/ RUN \ - echo "**** Ripped from Ubuntu Docker Logic ****" && \ - set -xe && \ - echo '#!/bin/sh' \ - > /usr/sbin/policy-rc.d && \ - echo 'exit 101' \ - >> /usr/sbin/policy-rc.d && \ - chmod +x \ - /usr/sbin/policy-rc.d && \ - dpkg-divert --local --rename --add /sbin/initctl && \ - cp -a \ - /usr/sbin/policy-rc.d \ - /sbin/initctl && \ - sed -i \ - 's/^exit.*/exit 0/' \ - /sbin/initctl && \ - echo 'force-unsafe-io' \ - > /etc/dpkg/dpkg.cfg.d/docker-apt-speedup && \ - echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \ - > /etc/apt/apt.conf.d/docker-clean && \ - echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \ - >> /etc/apt/apt.conf.d/docker-clean && \ - echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' \ - >> /etc/apt/apt.conf.d/docker-clean && \ - echo 'Acquire::Languages "none";' \ - > /etc/apt/apt.conf.d/docker-no-languages && \ - echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' \ - > /etc/apt/apt.conf.d/docker-gzip-indexes && \ - echo 'Apt::AutoRemove::SuggestsImportant "false";' \ - > /etc/apt/apt.conf.d/docker-autoremove-suggests && \ - mkdir -p /run/systemd && \ - echo 'docker' \ - > /run/systemd/container && \ - echo "**** install apt-utils and locales ****" && \ - apt-get update && \ - apt-get install -y \ - apt-utils \ - locales && \ - echo "**** install packages ****" && \ - apt-get install -y \ - curl \ - gnupg \ - patch \ - tzdata && \ - echo "**** generate locale ****" && \ - locale-gen en_US.UTF-8 && \ - echo "**** create abc user and make our folders ****" && \ - useradd -u 911 -U -d /config -s /bin/false abc && \ - usermod -G users abc && \ - mkdir -p \ - /app \ - /config \ - /defaults && \ - mv /usr/bin/with-contenv /usr/bin/with-contenvb && \ - patch -u /etc/s6/init/init-stage2 -i /tmp/patch/etc/s6/init/init-stage2.patch && \ - echo "**** add qemu ****" && \ - curl -o \ - /usr/bin/qemu-arm-static -L \ - "https://lsio-ci.ams3.digitaloceanspaces.com/qemu-arm-static" && \ - chmod +x /usr/bin/qemu-arm-static && \ - echo "**** cleanup ****" && \ - apt-get remove -y patch && \ - apt-get autoremove && \ - apt-get clean && \ - rm -rf \ - /tmp/* \ - /var/lib/apt/lists/* \ - /var/tmp/* + echo "**** Ripped from Ubuntu Docker Logic ****" && \ + set -xe && \ + echo '#!/bin/sh' \ + > /usr/sbin/policy-rc.d && \ + echo 'exit 101' \ + >> /usr/sbin/policy-rc.d && \ + chmod +x \ + /usr/sbin/policy-rc.d && \ + dpkg-divert --local --rename --add /sbin/initctl && \ + cp -a \ + /usr/sbin/policy-rc.d \ + /sbin/initctl && \ + sed -i \ + 's/^exit.*/exit 0/' \ + /sbin/initctl && \ + echo 'force-unsafe-io' \ + > /etc/dpkg/dpkg.cfg.d/docker-apt-speedup && \ + echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \ + > /etc/apt/apt.conf.d/docker-clean && \ + echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \ + >> /etc/apt/apt.conf.d/docker-clean && \ + echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' \ + >> /etc/apt/apt.conf.d/docker-clean && \ + echo 'Acquire::Languages "none";' \ + > /etc/apt/apt.conf.d/docker-no-languages && \ + echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' \ + > /etc/apt/apt.conf.d/docker-gzip-indexes && \ + echo 'Apt::AutoRemove::SuggestsImportant "false";' \ + > /etc/apt/apt.conf.d/docker-autoremove-suggests && \ + mkdir -p /run/systemd && \ + echo 'docker' \ + > /run/systemd/container && \ + echo "**** install apt-utils and locales ****" && \ + apt-get update && \ + apt-get install -y \ + apt-utils \ + locales && \ + echo "**** install packages ****" && \ + apt-get install -y \ + curl \ + gnupg \ + patch \ + tzdata && \ + echo "**** generate locale ****" && \ + locale-gen en_US.UTF-8 && \ + echo "**** create abc user and make our folders ****" && \ + useradd -u 911 -U -d /config -s /bin/false abc && \ + usermod -G users abc && \ + mkdir -p \ + /app \ + /config \ + /defaults && \ + echo "**** add qemu ****" && \ + curl -o \ + /usr/bin/qemu-arm-static -L \ + "https://lsio-ci.ams3.digitaloceanspaces.com/qemu-arm-static" && \ + chmod +x /usr/bin/qemu-arm-static && \ + echo "**** cleanup ****" && \ + apt-get remove -y patch && \ + apt-get autoremove && \ + apt-get clean && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/* \ + /var/log/* # add local files COPY root/ / diff --git a/patch/etc/s6/init/init-stage2.patch b/patch/etc/s6/init/init-stage2.patch deleted file mode 100644 index db176f87..00000000 --- a/patch/etc/s6/init/init-stage2.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- init-stage2 2021-01-20 20:21:41.628300700 -0600 -+++ init-stage2_new 2021-01-20 20:23:48.123677700 -0600 -@@ -17,6 +17,12 @@ - backtick -D 0 -n S6_READ_ONLY_ROOT { printcontenv S6_READ_ONLY_ROOT } - importas -u S6_READ_ONLY_ROOT S6_READ_ONLY_ROOT - -+# Docker Mods run logic -+foreground -+{ -+ /docker-mods -+} -+ - foreground - { - if diff --git a/patch/package/admin/s6-overlay-@VERSION@/etc/s6-linux-init/skel/rc.init.patch b/patch/package/admin/s6-overlay-@VERSION@/etc/s6-linux-init/skel/rc.init.patch new file mode 100644 index 00000000..b01a7f02 --- /dev/null +++ b/patch/package/admin/s6-overlay-@VERSION@/etc/s6-linux-init/skel/rc.init.patch @@ -0,0 +1,11 @@ +--- rc.init 2022-05-20 17:41:11.195721000 -0500 ++++ rc.init.patched 2022-05-20 17:41:37.646586700 -0500 +@@ -6,6 +6,8 @@ + s6-chmod 0755 /run/s6/container_environment + fi + ++/docker-mods ++ + if profile=`printcontenv S6_RUNTIME_PROFILE` ; then + etc="/etc/cont-profile.d/$profile" + else diff --git a/root/docker-mods b/root/docker-mods index 9bd92315..732f1679 100755 --- a/root/docker-mods +++ b/root/docker-mods @@ -1,5 +1,14 @@ #!/usr/bin/with-contenv bash +# Set executable bit on cont-init and services built into the image +set_legacy_executable_bits() { + mkdir -p /etc/{cont-init.d,services.d} + chmod +x \ + /etc/cont-init.d/* \ + /etc/services.d/*/* 2> /dev/null || true +} +set_legacy_executable_bits + # Exit if mods is not set if [ -z ${DOCKER_MODS+x} ]; then exit 0 @@ -119,3 +128,6 @@ for DOCKER_MOD in "${DOCKER_MODS[@]}"; do echo ${SHALAYER} > "/${FILENAME}" fi done + +# Set executable bit on cont-init and services that may have been unpacked by mods +set_legacy_executable_bits diff --git a/root/etc/cont-init.d/01-envfile b/root/etc/cont-init.d/01-envfile old mode 100644 new mode 100755 diff --git a/root/etc/cont-init.d/02-tamper-check b/root/etc/cont-init.d/02-tamper-check old mode 100644 new mode 100755 diff --git a/root/etc/cont-init.d/10-adduser b/root/etc/cont-init.d/10-adduser old mode 100644 new mode 100755 diff --git a/root/etc/cont-init.d/90-custom-folders b/root/etc/cont-init.d/90-custom-folders old mode 100644 new mode 100755 diff --git a/root/etc/cont-init.d/99-custom-scripts b/root/etc/cont-init.d/99-custom-scripts old mode 100644 new mode 100755 diff --git a/root/usr/bin/with-contenv b/root/usr/bin/with-contenv index b535def0..e26f8f4a 100755 --- a/root/usr/bin/with-contenv +++ b/root/usr/bin/with-contenv @@ -1,7 +1,7 @@ #! /bin/bash if [[ -f /var/run/s6/container_environment/UMASK ]] && [[ "$(pwdx $$)" =~ "/run/s6/services/" ]]; then umask $(cat /var/run/s6/container_environment/UMASK) - exec /usr/bin/with-contenvb "$@" + exec /command/with-contenv "$@" else - exec /usr/bin/with-contenvb "$@" + exec /command/with-contenv "$@" fi From f6f7c9edab7a8eaf11183bea8249ee4aa687f6aa Mon Sep 17 00:00:00 2001 From: TheSpad Date: Tue, 24 May 2022 18:42:42 +0100 Subject: [PATCH 026/124] Copy arm sources for arm builds --- Dockerfile.aarch64 | 2 +- Dockerfile.armhf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 4a82c910..52bec930 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -60,7 +60,7 @@ LANG="en_US.UTF-8" \ TERM="xterm" # copy sources -COPY sources.list /etc/apt/ +COPY sources.list.arm /etc/apt/ RUN \ echo "**** Ripped from Ubuntu Docker Logic ****" && \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 350ba0c9..3b54adc8 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -60,7 +60,7 @@ LANG="en_US.UTF-8" \ TERM="xterm" # copy sources -COPY sources.list /etc/apt/ +COPY sources.list.arm /etc/apt/ RUN \ echo "**** Ripped from Ubuntu Docker Logic ****" && \ From d8b1237a5d86810a4834d12c6f5a566cb34d1a2c Mon Sep 17 00:00:00 2001 From: TheSpad Date: Thu, 26 May 2022 20:11:18 +0100 Subject: [PATCH 027/124] Add CI check --- Dockerfile | 3 +++ Dockerfile.aarch64 | 3 +++ Dockerfile.armhf | 3 +++ ci-check/99-ci-service-check | 0 .../s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/base | 0 .../s6-rc.d/99-ci-service-check/dependencies.d/legacy-services | 0 .../s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/user | 0 root/etc/s6-overlay/s6-rc.d/99-ci-service-check/type | 1 + root/etc/s6-overlay/s6-rc.d/99-ci-service-check/up | 1 + 9 files changed, 11 insertions(+) create mode 100644 ci-check/99-ci-service-check create mode 100644 root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/base create mode 100644 root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/legacy-services create mode 100644 root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/user create mode 100644 root/etc/s6-overlay/s6-rc.d/99-ci-service-check/type create mode 100644 root/etc/s6-overlay/s6-rc.d/99-ci-service-check/up diff --git a/Dockerfile b/Dockerfile index 89514876..2bed43da 100644 --- a/Dockerfile +++ b/Dockerfile @@ -40,6 +40,9 @@ RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz /tmp RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz +# copy ci-checks +COPY ci-check/ /root-out/package/admin/s6-overlay-${S6_OVERLAY_VERSION}/etc/s6-rc/sources/top/contents.d + # patch cont-init for docker-mods COPY patch/ /tmp/patch RUN patch -u /root-out/package/admin/s6-overlay-${S6_OVERLAY_VERSION}/etc/s6-linux-init/skel/rc.init -i /tmp/patch/package/admin/s6-overlay-@VERSION@/etc/s6-linux-init/skel/rc.init.patch diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 52bec930..c73127c5 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -40,6 +40,9 @@ RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz /tmp RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz +# copy ci-checks +COPY ci-check/ /root-out/package/admin/s6-overlay-${S6_OVERLAY_VERSION}/etc/s6-rc/sources/top/contents.d + # patch cont-init for docker-mods COPY patch/ /tmp/patch RUN patch -u /root-out/package/admin/s6-overlay-${S6_OVERLAY_VERSION}/etc/s6-linux-init/skel/rc.init -i /tmp/patch/package/admin/s6-overlay-@VERSION@/etc/s6-linux-init/skel/rc.init.patch diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 3b54adc8..a56a5233 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -40,6 +40,9 @@ RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz /tmp RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz +# copy ci-checks +COPY ci-check/ /root-out/package/admin/s6-overlay-${S6_OVERLAY_VERSION}/etc/s6-rc/sources/top/contents.d + # patch cont-init for docker-mods COPY patch/ /tmp/patch RUN patch -u /root-out/package/admin/s6-overlay-${S6_OVERLAY_VERSION}/etc/s6-linux-init/skel/rc.init -i /tmp/patch/package/admin/s6-overlay-@VERSION@/etc/s6-linux-init/skel/rc.init.patch diff --git a/ci-check/99-ci-service-check b/ci-check/99-ci-service-check new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/base b/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/base new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/legacy-services b/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/legacy-services new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/user b/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/user new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/type b/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/up b/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/up new file mode 100644 index 00000000..06ccdf9f --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/up @@ -0,0 +1 @@ +echo "[services.d] done." \ No newline at end of file From 3a7fc5e14d6a99b3b569279ba672ffea5f20ff85 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Fri, 27 May 2022 14:29:54 +0100 Subject: [PATCH 028/124] Update CI init message --- root/etc/s6-overlay/s6-rc.d/99-ci-service-check/up | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/up b/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/up index 06ccdf9f..e0f94885 100644 --- a/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/up +++ b/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/up @@ -1 +1 @@ -echo "[services.d] done." \ No newline at end of file +echo "[ls.io-init] done." \ No newline at end of file From b65cc90d9f36ef74bc17b982c341941fed01e78a Mon Sep 17 00:00:00 2001 From: TheSpad Date: Fri, 27 May 2022 14:31:46 +0100 Subject: [PATCH 029/124] Remove patch package from runtime as it's done in rootfs now --- Dockerfile | 2 -- Dockerfile.aarch64 | 2 -- Dockerfile.armhf | 2 -- 3 files changed, 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2bed43da..12742761 100644 --- a/Dockerfile +++ b/Dockerfile @@ -107,7 +107,6 @@ RUN \ apt-get install -y \ curl \ gnupg \ - patch \ tzdata && \ echo "**** generate locale ****" && \ locale-gen en_US.UTF-8 && \ @@ -119,7 +118,6 @@ RUN \ /config \ /defaults && \ echo "**** cleanup ****" && \ - apt-get remove -y patch && \ apt-get autoremove && \ apt-get clean && \ rm -rf \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index c73127c5..cadd9b64 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -107,7 +107,6 @@ RUN \ apt-get install -y \ curl \ gnupg \ - patch \ tzdata && \ echo "**** generate locale ****" && \ locale-gen en_US.UTF-8 && \ @@ -124,7 +123,6 @@ RUN \ "https://lsio-ci.ams3.digitaloceanspaces.com/qemu-aarch64-static" && \ chmod +x /usr/bin/qemu-aarch64-static && \ echo "**** cleanup ****" && \ - apt-get remove -y patch && \ apt-get autoremove && \ apt-get clean && \ rm -rf \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index a56a5233..4ca39b3c 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -107,7 +107,6 @@ RUN \ apt-get install -y \ curl \ gnupg \ - patch \ tzdata && \ echo "**** generate locale ****" && \ locale-gen en_US.UTF-8 && \ @@ -124,7 +123,6 @@ RUN \ "https://lsio-ci.ams3.digitaloceanspaces.com/qemu-arm-static" && \ chmod +x /usr/bin/qemu-arm-static && \ echo "**** cleanup ****" && \ - apt-get remove -y patch && \ apt-get autoremove && \ apt-get clean && \ rm -rf \ From d277d8914bd9b3fbe6bb5a1fe51f312c3ac7b16e Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 31 May 2022 07:05:46 +0200 Subject: [PATCH 030/124] 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 cf2a4509..923801b2 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -13,7 +13,7 @@ debconf1.5.79ubuntu1 debianutils5.5-1ubuntu2 diffutils1:3.8-0ubuntu2 dirmngr2.2.27-3ubuntu2 -dpkg1.21.1ubuntu2 +dpkg1.21.1ubuntu2.1 e2fsprogs1.46.5-2ubuntu1 findutils4.8.0-1ubuntu3 gcc-12-base12-20220319-1ubuntu1 From 98ebac465a2eb24c5390acd54834d11f7f9ce52d Mon Sep 17 00:00:00 2001 From: TheSpad Date: Fri, 3 Jun 2022 14:39:20 +0100 Subject: [PATCH 031/124] Add compatibility shim for v2 scandir --- root/etc/s6-overlay/s6-rc.d/00-legacy/type | 1 + root/etc/s6-overlay/s6-rc.d/00-legacy/up | 1 + root/etc/s6-overlay/s6-rc.d/user/contents.d/00-legacy | 0 3 files changed, 2 insertions(+) create mode 100644 root/etc/s6-overlay/s6-rc.d/00-legacy/type create mode 100644 root/etc/s6-overlay/s6-rc.d/00-legacy/up create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/00-legacy diff --git a/root/etc/s6-overlay/s6-rc.d/00-legacy/type b/root/etc/s6-overlay/s6-rc.d/00-legacy/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/00-legacy/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/00-legacy/up b/root/etc/s6-overlay/s6-rc.d/00-legacy/up new file mode 100644 index 00000000..e84685c6 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/00-legacy/up @@ -0,0 +1 @@ +ln -s /run/s6/legacy-services /run/s6/services \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/00-legacy b/root/etc/s6-overlay/s6-rc.d/user/contents.d/00-legacy new file mode 100644 index 00000000..e69de29b From 3848316e27844aa0c25f16c2923b92d1f7ac30a4 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Fri, 3 Jun 2022 17:33:02 +0100 Subject: [PATCH 032/124] Trailing newline --- root/etc/s6-overlay/s6-rc.d/00-legacy/up | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/root/etc/s6-overlay/s6-rc.d/00-legacy/up b/root/etc/s6-overlay/s6-rc.d/00-legacy/up index e84685c6..4aa1c27b 100644 --- a/root/etc/s6-overlay/s6-rc.d/00-legacy/up +++ b/root/etc/s6-overlay/s6-rc.d/00-legacy/up @@ -1 +1 @@ -ln -s /run/s6/legacy-services /run/s6/services \ No newline at end of file +ln -s /run/s6/legacy-services /run/s6/services From 754123e8fa6eaaca4d830764b6cf8bf79618fcf7 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 14 Jun 2022 07:19:03 +0200 Subject: [PATCH 033/124] 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 923801b2..ebe27a9c 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -14,7 +14,7 @@ debianutils5.5-1ubuntu2 diffutils1:3.8-0ubuntu2 dirmngr2.2.27-3ubuntu2 dpkg1.21.1ubuntu2.1 -e2fsprogs1.46.5-2ubuntu1 +e2fsprogs1.46.5-2ubuntu1.1 findutils4.8.0-1ubuntu3 gcc-12-base12-20220319-1ubuntu1 gnupg2.2.27-3ubuntu2 @@ -44,12 +44,12 @@ libc62.35-0ubuntu3 libcap21:2.44-1build3 libcap-ng00.7.9-2.2build3 libc-bin2.35-0ubuntu3 -libcom-err21.46.5-2ubuntu1 +libcom-err21.46.5-2ubuntu1.1 libcrypt11:4.4.27-1 libcurl47.81.0-1ubuntu1.2 libdb5.35.3.28+dfsg1-0.8ubuntu3 libdebconfclient00.261ubuntu1 -libext2fs21.46.5-2ubuntu1 +libext2fs21.46.5-2ubuntu1.1 libffi83.4.2-4 libgcc-s112-20220319-1ubuntu1 libgcrypt201.9.4-3ubuntu3 @@ -96,7 +96,7 @@ libsemanage-common3.3-1build2 libsepol23.3-1build1 libsmartcols12.37.2-4ubuntu3 libsqlite3-03.37.2-2 -libss21.46.5-2ubuntu1 +libss21.46.5-2ubuntu1.1 libssh-40.9.6-2build1 libssl33.0.2-0ubuntu1.2 libstdc++612-20220319-1ubuntu1 @@ -112,7 +112,7 @@ libxxhash00.8.1-1 libzstd11.4.8+dfsg-3build1 locales2.35-0ubuntu3 login1:4.8.1-2ubuntu2 -logsave1.46.5-2ubuntu1 +logsave1.46.5-2ubuntu1.1 lsb-base11.1.0ubuntu4 mawk1.3.4.20200120-3 mount2.37.2-4ubuntu3 From 9bfc6a8a05b7e551d187cd66e3a9dc8ec5d01184 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Tue, 14 Jun 2022 15:38:49 +0100 Subject: [PATCH 034/124] Set s6 service max timeout to 0 --- Dockerfile | 3 ++- Dockerfile.aarch64 | 3 ++- Dockerfile.armhf | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 12742761..159c72f3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -60,7 +60,8 @@ ARG DEBIAN_FRONTEND="noninteractive" ENV HOME="/root" \ LANGUAGE="en_US.UTF-8" \ LANG="en_US.UTF-8" \ -TERM="xterm" +TERM="xterm" \ +S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" # copy sources COPY sources.list /etc/apt/ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index cadd9b64..0c62e91e 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -60,7 +60,8 @@ ARG DEBIAN_FRONTEND="noninteractive" ENV HOME="/root" \ LANGUAGE="en_US.UTF-8" \ LANG="en_US.UTF-8" \ -TERM="xterm" +TERM="xterm" \ +S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" # copy sources COPY sources.list.arm /etc/apt/ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 4ca39b3c..b34e60ee 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -60,7 +60,8 @@ ARG DEBIAN_FRONTEND="noninteractive" ENV HOME="/root" \ LANGUAGE="en_US.UTF-8" \ LANG="en_US.UTF-8" \ -TERM="xterm" +TERM="xterm" \ +S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" # copy sources COPY sources.list.arm /etc/apt/ From 5b3a52318477b2fbff0ec19605f357412efb30d9 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Mon, 20 Jun 2022 20:02:19 +0100 Subject: [PATCH 035/124] Fix umask handling for s6 v3 --- root/usr/bin/with-contenv | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/root/usr/bin/with-contenv b/root/usr/bin/with-contenv index e26f8f4a..212d9089 100755 --- a/root/usr/bin/with-contenv +++ b/root/usr/bin/with-contenv @@ -1,7 +1,9 @@ #! /bin/bash -if [[ -f /var/run/s6/container_environment/UMASK ]] && [[ "$(pwdx $$)" =~ "/run/s6/services/" ]]; then - umask $(cat /var/run/s6/container_environment/UMASK) - exec /command/with-contenv "$@" -else - exec /command/with-contenv "$@" + +if [[ -f /var/run/s6/container_environment/UMASK ]] && \ + { [[ "$(pwdx $$)" =~ "/run/s6/legacy-services/" ]] || \ + [[ "$(pwdx $$)" =~ "/run/s6/services/" ]] || \ + [[ "$(pwdx $$)" =~ "/servicedirs/svc-" ]]; }; then + umask $(cat /var/run/s6/container_environment/UMASK) fi +exec /command/with-contenv "$@" From 8c5eeecfb0932c67baf040d2738168e103ba1f39 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 21 Jun 2022 02:06:41 +0200 Subject: [PATCH 036/124] 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 ebe27a9c..0cd00f0b 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -118,7 +118,7 @@ mawk1.3.4.20200120-3 mount2.37.2-4ubuntu3 ncurses-base6.3-2 ncurses-bin6.3-2 -openssl3.0.2-0ubuntu1.2 +openssl3.0.2-0ubuntu1.4 passwd1:4.8.1-2ubuntu2 perl-base5.34.0-3ubuntu1 pinentry-curses1.1.1-1build2 From f93eb35494e9cd890f4f20b2ace3ff77bee16ef1 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 28 Jun 2022 07:10:31 +0200 Subject: [PATCH 037/124] 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 0cd00f0b..69c29cd8 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -7,7 +7,7 @@ bash5.1-6ubuntu1 bsdutils1:2.37.2-4ubuntu3 ca-certificates20211016 coreutils8.32-4.1ubuntu1 -curl7.81.0-1ubuntu1.2 +curl7.81.0-1ubuntu1.3 dash0.5.11+git20210903+057cd650a4ed-3build1 debconf1.5.79ubuntu1 debianutils5.5-1ubuntu2 @@ -46,7 +46,7 @@ libcap-ng00.7.9-2.2build3 libc-bin2.35-0ubuntu3 libcom-err21.46.5-2ubuntu1.1 libcrypt11:4.4.27-1 -libcurl47.81.0-1ubuntu1.2 +libcurl47.81.0-1ubuntu1.3 libdb5.35.3.28+dfsg1-0.8ubuntu3 libdebconfclient00.261ubuntu1 libext2fs21.46.5-2ubuntu1.1 @@ -64,8 +64,8 @@ libkeyutils11.6.1-2ubuntu3 libkrb5-31.19.2-2 libkrb5support01.19.2-2 libksba81.6.0-2build1 -libldap-2.5-02.5.11+dfsg-1~exp1ubuntu3.1 -libldap-common2.5.11+dfsg-1~exp1ubuntu3.1 +libldap-2.5-02.5.12+dfsg-0ubuntu0.22.04.1 +libldap-common2.5.12+dfsg-0ubuntu0.22.04.1 liblz4-11.9.3-2build2 liblzma55.2.5-2ubuntu1 libmount12.37.2-4ubuntu3 @@ -98,14 +98,14 @@ libsmartcols12.37.2-4ubuntu3 libsqlite3-03.37.2-2 libss21.46.5-2ubuntu1.1 libssh-40.9.6-2build1 -libssl33.0.2-0ubuntu1.2 +libssl33.0.2-0ubuntu1.5 libstdc++612-20220319-1ubuntu1 -libsystemd0249.11-0ubuntu3.1 +libsystemd0249.11-0ubuntu3.3 libtasn1-64.18.0-4build1 libtinfo66.3-2 libtirpc31.3.2-2build1 libtirpc-common1.3.2-2build1 -libudev1249.11-0ubuntu3.1 +libudev1249.11-0ubuntu3.3 libunistring21.0-1 libuuid12.37.2-4ubuntu3 libxxhash00.8.1-1 @@ -118,7 +118,7 @@ mawk1.3.4.20200120-3 mount2.37.2-4ubuntu3 ncurses-base6.3-2 ncurses-bin6.3-2 -openssl3.0.2-0ubuntu1.4 +openssl3.0.2-0ubuntu1.5 passwd1:4.8.1-2ubuntu2 perl-base5.34.0-3ubuntu1 pinentry-curses1.1.1-1build2 From 580858a28d86ff12ee6d995495ad240779f82f49 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 12 Jul 2022 05:27:56 +0000 Subject: [PATCH 038/124] Bot Updating Package Versions --- package_versions.txt | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 69c29cd8..ac1a638d 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -12,21 +12,21 @@ dash0.5.11+git20210903+057cd650a4ed-3build1 debconf1.5.79ubuntu1 debianutils5.5-1ubuntu2 diffutils1:3.8-0ubuntu2 -dirmngr2.2.27-3ubuntu2 +dirmngr2.2.27-3ubuntu2.1 dpkg1.21.1ubuntu2.1 e2fsprogs1.46.5-2ubuntu1.1 findutils4.8.0-1ubuntu3 gcc-12-base12-20220319-1ubuntu1 -gnupg2.2.27-3ubuntu2 -gnupg-l10n2.2.27-3ubuntu2 -gnupg-utils2.2.27-3ubuntu2 -gpg2.2.27-3ubuntu2 -gpg-agent2.2.27-3ubuntu2 -gpgconf2.2.27-3ubuntu2 -gpgsm2.2.27-3ubuntu2 -gpgv2.2.27-3ubuntu2 -gpg-wks-client2.2.27-3ubuntu2 -gpg-wks-server2.2.27-3ubuntu2 +gnupg2.2.27-3ubuntu2.1 +gnupg-l10n2.2.27-3ubuntu2.1 +gnupg-utils2.2.27-3ubuntu2.1 +gpg2.2.27-3ubuntu2.1 +gpg-agent2.2.27-3ubuntu2.1 +gpgconf2.2.27-3ubuntu2.1 +gpgsm2.2.27-3ubuntu2.1 +gpgv2.2.27-3ubuntu2.1 +gpg-wks-client2.2.27-3ubuntu2.1 +gpg-wks-server2.2.27-3ubuntu2.1 grep3.7-1build1 gzip1.10-4ubuntu4 hostname3.23ubuntu2 @@ -98,14 +98,14 @@ libsmartcols12.37.2-4ubuntu3 libsqlite3-03.37.2-2 libss21.46.5-2ubuntu1.1 libssh-40.9.6-2build1 -libssl33.0.2-0ubuntu1.5 +libssl33.0.2-0ubuntu1.6 libstdc++612-20220319-1ubuntu1 -libsystemd0249.11-0ubuntu3.3 +libsystemd0249.11-0ubuntu3.4 libtasn1-64.18.0-4build1 libtinfo66.3-2 libtirpc31.3.2-2build1 libtirpc-common1.3.2-2build1 -libudev1249.11-0ubuntu3.3 +libudev1249.11-0ubuntu3.4 libunistring21.0-1 libuuid12.37.2-4ubuntu3 libxxhash00.8.1-1 @@ -118,7 +118,7 @@ mawk1.3.4.20200120-3 mount2.37.2-4ubuntu3 ncurses-base6.3-2 ncurses-bin6.3-2 -openssl3.0.2-0ubuntu1.5 +openssl3.0.2-0ubuntu1.6 passwd1:4.8.1-2ubuntu2 perl-base5.34.0-3ubuntu1 pinentry-curses1.1.1-1build2 From ee07f353e1b0d80b77c723fc32644debe4acc0d4 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Fri, 22 Jul 2022 15:40:20 +0100 Subject: [PATCH 039/124] Support hybrid mods --- root/docker-mods | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/root/docker-mods b/root/docker-mods index 732f1679..d2d3b81d 100755 --- a/root/docker-mods +++ b/root/docker-mods @@ -114,19 +114,33 @@ for DOCKER_MOD in "${DOCKER_MODS[@]}"; do # Check if we have allready applied this layer if [ -f "/${FILENAME}" ] && [ "${SHALAYER}" == "$(cat /${FILENAME})" ]; then echo "[mod-init] ${DOCKER_MOD} at ${SHALAYER} has been previously applied skipping" - else - # Download and extract layer to / - curl -f --retry 10 --retry-max-time 60 --retry-all-errors \ - --silent \ - --location \ - --request GET \ - --header "Authorization: Bearer ${TOKEN}" \ - "${BLOB_URL}${SHALAYER}" -o \ - /modtarball.tar.xz - tar xzf /modtarball.tar.xz -C / - rm -rf /modtarball.tar.xz - echo ${SHALAYER} > "/${FILENAME}" - fi + else + # Download and extract layer to / + curl -f --retry 10 --retry-max-time 60 --retry-all-errors \ + --silent \ + --location \ + --request GET \ + --header "Authorization: Bearer ${TOKEN}" \ + "${BLOB_URL}${SHALAYER}" -o \ + /modtarball.tar.xz + mkdir -p /tmp/mod + tar xzf /modtarball.tar.xz -C /tmp/mod + if [ -d /tmp/mod/etc/s6-overlay ]; then + if [ -d /tmp/mod/etc/cont-init.d ]; then + rm -rf /tmp/mod/etc/cont-init.d + fi + if [ -d /tmp/mod/etc/services.d ]; then + rm -rf /tmp/mod/etc/services.d + fi + fi + shopt -s dotglob + cp -R /tmp/mod/* / + shopt -u dotglob + rm -rf /tmp/mod + rm -rf /modtarball.tar.xz + echo ${SHALAYER} > "/${FILENAME}" + echo "[mod-init] ${DOCKER_MOD} applied to container" + fi done # Set executable bit on cont-init and services that may have been unpacked by mods From 9f4950ce19021ee16e3ec1569be31df84914fa35 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Fri, 22 Jul 2022 15:47:49 +0100 Subject: [PATCH 040/124] Fix indentation --- root/docker-mods | 50 ++++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/root/docker-mods b/root/docker-mods index d2d3b81d..ead588ec 100755 --- a/root/docker-mods +++ b/root/docker-mods @@ -114,33 +114,33 @@ for DOCKER_MOD in "${DOCKER_MODS[@]}"; do # Check if we have allready applied this layer if [ -f "/${FILENAME}" ] && [ "${SHALAYER}" == "$(cat /${FILENAME})" ]; then echo "[mod-init] ${DOCKER_MOD} at ${SHALAYER} has been previously applied skipping" - else - # Download and extract layer to / - curl -f --retry 10 --retry-max-time 60 --retry-all-errors \ - --silent \ - --location \ - --request GET \ - --header "Authorization: Bearer ${TOKEN}" \ - "${BLOB_URL}${SHALAYER}" -o \ - /modtarball.tar.xz - mkdir -p /tmp/mod - tar xzf /modtarball.tar.xz -C /tmp/mod - if [ -d /tmp/mod/etc/s6-overlay ]; then - if [ -d /tmp/mod/etc/cont-init.d ]; then - rm -rf /tmp/mod/etc/cont-init.d - fi - if [ -d /tmp/mod/etc/services.d ]; then - rm -rf /tmp/mod/etc/services.d - fi + else + # Download and extract layer to / + curl -f --retry 10 --retry-max-time 60 --retry-all-errors \ + --silent \ + --location \ + --request GET \ + --header "Authorization: Bearer ${TOKEN}" \ + "${BLOB_URL}${SHALAYER}" -o \ + /modtarball.tar.xz + mkdir -p /tmp/mod + tar xzf /modtarball.tar.xz -C /tmp/mod + if [ -d /tmp/mod/etc/s6-overlay ]; then + if [ -d /tmp/mod/etc/cont-init.d ]; then + rm -rf /tmp/mod/etc/cont-init.d + fi + if [ -d /tmp/mod/etc/services.d ]; then + rm -rf /tmp/mod/etc/services.d fi - shopt -s dotglob - cp -R /tmp/mod/* / - shopt -u dotglob - rm -rf /tmp/mod - rm -rf /modtarball.tar.xz - echo ${SHALAYER} > "/${FILENAME}" - echo "[mod-init] ${DOCKER_MOD} applied to container" fi + shopt -s dotglob + cp -R /tmp/mod/* / + shopt -u dotglob + rm -rf /tmp/mod + rm -rf /modtarball.tar.xz + echo ${SHALAYER} > "/${FILENAME}" + echo "[mod-init] ${DOCKER_MOD} applied to container" + fi done # Set executable bit on cont-init and services that may have been unpacked by mods From 74e69e2b37b53dca2b0c97821de005dec625f6cb Mon Sep 17 00:00:00 2001 From: TheSpad Date: Fri, 22 Jul 2022 20:57:18 +0100 Subject: [PATCH 041/124] Add mod-init --- root/etc/s6-overlay/s6-rc.d/init-mods-end/type | 1 + root/etc/s6-overlay/s6-rc.d/init-mods-end/up | 1 + root/etc/s6-overlay/s6-rc.d/init-mods/dependencies.d/base | 0 root/etc/s6-overlay/s6-rc.d/init-mods/type | 1 + root/etc/s6-overlay/s6-rc.d/init-mods/up | 1 + root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mods | 0 6 files changed, 4 insertions(+) create mode 100644 root/etc/s6-overlay/s6-rc.d/init-mods-end/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-mods-end/up create mode 100644 root/etc/s6-overlay/s6-rc.d/init-mods/dependencies.d/base create mode 100644 root/etc/s6-overlay/s6-rc.d/init-mods/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-mods/up create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mods diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-end/type b/root/etc/s6-overlay/s6-rc.d/init-mods-end/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mods-end/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-end/up b/root/etc/s6-overlay/s6-rc.d/init-mods-end/up new file mode 100644 index 00000000..092149d5 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mods-end/up @@ -0,0 +1 @@ +# This file doesn't do anything, it's just the end of the mod init process diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods/dependencies.d/base b/root/etc/s6-overlay/s6-rc.d/init-mods/dependencies.d/base new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods/type b/root/etc/s6-overlay/s6-rc.d/init-mods/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mods/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods/up b/root/etc/s6-overlay/s6-rc.d/init-mods/up new file mode 100644 index 00000000..040d8013 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mods/up @@ -0,0 +1 @@ +# This file doesn't do anything, it's just the start of the mod init process diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mods b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mods new file mode 100644 index 00000000..e69de29b From 28b1121882eefe2616b0f68cb0d761590f0b5e6e Mon Sep 17 00:00:00 2001 From: TheSpad Date: Sat, 23 Jul 2022 12:57:51 +0100 Subject: [PATCH 042/124] Add init-services anchor --- .../s6-rc.d/init-services/dependencies.d/init-mods-end | 0 root/etc/s6-overlay/s6-rc.d/init-services/type | 1 + root/etc/s6-overlay/s6-rc.d/init-services/up | 1 + root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mods-end | 0 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-services | 0 5 files changed, 2 insertions(+) create mode 100644 root/etc/s6-overlay/s6-rc.d/init-services/dependencies.d/init-mods-end create mode 100644 root/etc/s6-overlay/s6-rc.d/init-services/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-services/up create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mods-end create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-services diff --git a/root/etc/s6-overlay/s6-rc.d/init-services/dependencies.d/init-mods-end b/root/etc/s6-overlay/s6-rc.d/init-services/dependencies.d/init-mods-end new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/init-services/type b/root/etc/s6-overlay/s6-rc.d/init-services/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-services/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-services/up b/root/etc/s6-overlay/s6-rc.d/init-services/up new file mode 100644 index 00000000..cd262c7b --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-services/up @@ -0,0 +1 @@ +# This file doesn't do anything, it's just the start of the service init process diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mods-end b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mods-end new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-services b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-services new file mode 100644 index 00000000..e69de29b From 80ea2d87c58db9c75817d39c406f3bb99024c076 Mon Sep 17 00:00:00 2001 From: sususu Date: Fri, 29 Jul 2022 10:04:58 +0800 Subject: [PATCH 043/124] update arm apt/sources.list --- Dockerfile.aarch64 | 2 +- Dockerfile.armhf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 0c62e91e..c6421147 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -64,7 +64,7 @@ TERM="xterm" \ S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" # copy sources -COPY sources.list.arm /etc/apt/ +COPY sources.list.arm /etc/apt/sources.list RUN \ echo "**** Ripped from Ubuntu Docker Logic ****" && \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index b34e60ee..12c60816 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -64,7 +64,7 @@ TERM="xterm" \ S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" # copy sources -COPY sources.list.arm /etc/apt/ +COPY sources.list.arm /etc/apt/sources.list RUN \ echo "**** Ripped from Ubuntu Docker Logic ****" && \ From c09de3e9eaccf938c24c0480776270ed05e304a7 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Fri, 29 Jul 2022 17:44:16 +0100 Subject: [PATCH 044/124] Support universal mod package install --- .../dependencies.d/init-mods-package-install | 0 .../dependencies.d/init-mods | 0 .../s6-rc.d/init-mods-package-install/run | 35 +++++++++++++++++++ .../s6-rc.d/init-mods-package-install/type | 1 + .../s6-rc.d/init-mods-package-install/up | 1 + .../user/contents.d/init-mods-package-install | 0 6 files changed, 37 insertions(+) create mode 100644 root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mods-package-install create mode 100644 root/etc/s6-overlay/s6-rc.d/init-mods-package-install/dependencies.d/init-mods create mode 100755 root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run create mode 100644 root/etc/s6-overlay/s6-rc.d/init-mods-package-install/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-mods-package-install/up create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mods-package-install diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mods-package-install b/root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mods-package-install new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/dependencies.d/init-mods b/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/dependencies.d/init-mods new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run b/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run new file mode 100755 index 00000000..fb5b11d1 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run @@ -0,0 +1,35 @@ +#!/usr/bin/with-contenv bash + +if [ -f "/mod-repo-packages-to-install.list" ]; then + echo "**** Installing all mod packages ****" + if [ -f /usr/bin/apt ]; then + export DEBIAN_FRONTEND="noninteractive" + apt-get update + apt-get install -y --no-install-recommends \ + $(cat /mod-repo-packages-to-install.list) + elif [ -f /sbin/apk ]; then + apk add --no-cache \ + $(cat /mod-repo-packages-to-install.list) + fi +fi + +if [ -f "/mod-pip-packages-to-install.list" ]; then + echo "**** Installing all pip packages ****" + python3 -m pip install -U pip wheel setuptools + if [ -f /usr/bin/apt ]; then + PIP_ARGS="-f https://wheel-index.linuxserver.io/ubuntu/" + elif [ -f /sbin/apk ]; then + ALPINE_VER=$(grep main /etc/apk/repositories | sed 's|.*alpine/v||' | sed 's|/main.*||') + if [ "${ALPINE_VER}" = "3.14" ]; then + PIP_ARGS="-f https://wheel-index.linuxserver.io/alpine/" + else + PIP_ARGS="-f https://wheel-index.linuxserver.io/alpine-${ALPINE_VER}/" + fi + fi + python3 -m pip install ${PIP_ARGS} \ + $(cat /mod-pip-packages-to-install.list) +fi + +rm -rf \ + /mod-repo-packages-to-install.list \ + /mod-pip-packages-to-install.list diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/type b/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/up b/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/up new file mode 100644 index 00000000..fb633014 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-mods-package-install/run diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mods-package-install b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mods-package-install new file mode 100644 index 00000000..e69de29b From 6284a874ff5fb592e97ae2d6c60921524a0a63e8 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Sun, 31 Jul 2022 10:08:53 +0000 Subject: [PATCH 045/124] 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 ac1a638d..d06f0aee 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,6 +1,6 @@ adduser3.118ubuntu5 -apt2.4.5 -apt-utils2.4.5 +apt2.4.6 +apt-utils2.4.6 base-files12ubuntu4.1 base-passwd3.5.52build1 bash5.1-6ubuntu1 @@ -32,7 +32,7 @@ gzip1.10-4ubuntu4 hostname3.23ubuntu2 init-system-helpers1.62 libacl12.3.1-1 -libapt-pkg6.02.4.5 +libapt-pkg6.02.4.6 libassuan02.5.5-1build1 libattr11:2.5.1-1build1 libaudit11:3.0.7-1build1 @@ -110,7 +110,7 @@ libunistring21.0-1 libuuid12.37.2-4ubuntu3 libxxhash00.8.1-1 libzstd11.4.8+dfsg-3build1 -locales2.35-0ubuntu3 +locales2.35-0ubuntu3.1 login1:4.8.1-2ubuntu2 logsave1.46.5-2ubuntu1.1 lsb-base11.1.0ubuntu4 From 689443aa4a91dfbf707d7ac34faadbf1924aef55 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 9 Aug 2022 00:09:37 -0500 Subject: [PATCH 046/124] 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 d06f0aee..c2b7f55a 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,7 +1,7 @@ adduser3.118ubuntu5 apt2.4.6 apt-utils2.4.6 -base-files12ubuntu4.1 +base-files12ubuntu4.2 base-passwd3.5.52build1 bash5.1-6ubuntu1 bsdutils1:2.37.2-4ubuntu3 @@ -40,10 +40,10 @@ libaudit-common1:3.0.7-1build1 libblkid12.37.2-4ubuntu3 libbrotli11.0.9-2build6 libbz2-1.01.0.8-5build1 -libc62.35-0ubuntu3 +libc62.35-0ubuntu3.1 libcap21:2.44-1build3 libcap-ng00.7.9-2.2build3 -libc-bin2.35-0ubuntu3 +libc-bin2.35-0ubuntu3.1 libcom-err21.46.5-2ubuntu1.1 libcrypt11:4.4.27-1 libcurl47.81.0-1ubuntu1.3 @@ -54,7 +54,7 @@ libffi83.4.2-4 libgcc-s112-20220319-1ubuntu1 libgcrypt201.9.4-3ubuntu3 libgmp102:6.2.1+dfsg-3ubuntu1 -libgnutls303.7.3-4ubuntu1 +libgnutls303.7.3-4ubuntu1.1 libgpg-error01.43-3 libgssapi-krb5-21.19.2-2 libhogweed63.7.3-1build2 @@ -103,8 +103,8 @@ libstdc++612-20220319-1ubuntu1 libsystemd0249.11-0ubuntu3.4 libtasn1-64.18.0-4build1 libtinfo66.3-2 -libtirpc31.3.2-2build1 -libtirpc-common1.3.2-2build1 +libtirpc31.3.2-2ubuntu0.1 +libtirpc-common1.3.2-2ubuntu0.1 libudev1249.11-0ubuntu3.4 libunistring21.0-1 libuuid12.37.2-4ubuntu3 From 262079f81483edb3b3682eef53342961ca6a195e Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 16 Aug 2022 07:05:06 +0200 Subject: [PATCH 047/124] 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 c2b7f55a..ba0f8b1a 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,6 +1,6 @@ adduser3.118ubuntu5 -apt2.4.6 -apt-utils2.4.6 +apt2.4.7 +apt-utils2.4.7 base-files12ubuntu4.2 base-passwd3.5.52build1 bash5.1-6ubuntu1 @@ -32,7 +32,7 @@ gzip1.10-4ubuntu4 hostname3.23ubuntu2 init-system-helpers1.62 libacl12.3.1-1 -libapt-pkg6.02.4.6 +libapt-pkg6.02.4.7 libassuan02.5.5-1build1 libattr11:2.5.1-1build1 libaudit11:3.0.7-1build1 From 895959ccd5ffdc2276e8910f4c6b78edd632c8b2 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Mon, 22 Aug 2022 09:15:29 -0500 Subject: [PATCH 048/124] Update 01-migrations Fix broken bash syntax --- root/etc/cont-init.d/01-migrations | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/root/etc/cont-init.d/01-migrations b/root/etc/cont-init.d/01-migrations index 4ab44643..aaf084ae 100755 --- a/root/etc/cont-init.d/01-migrations +++ b/root/etc/cont-init.d/01-migrations @@ -5,25 +5,25 @@ MIGRATIONS_HISTORY="/config/.migrations" echo "[migrations] started" -if [ ! -d $MIGRATIONS_DIR ]; then +if [[ ! -d ${MIGRATIONS_DIR} ]]; then echo "[migrations] no migrations found" exit fi -for MIGRATION in $(ls -1 ${MIGRATIONS_DIR}/* | sort -n); do +for MIGRATION in $(find ${MIGRATIONS_DIR}/* | sort -n); do NAME="$(basename "${MIGRATION}")" - if [ -f $MIGRATIONS_HISTORY ] && grep -Fxq "$NAME" $MIGRATIONS_HISTORY; then + if [[ -f ${MIGRATIONS_HISTORY} ]] && grep -Fxq "${NAME}" ${MIGRATIONS_HISTORY}; then echo "[migrations] ${NAME}: skipped" continue fi echo "[migrations] ${NAME}: executing..." - chmod +x $MIGRATION - EXIT_CODE=$(/bin/bash ${MIGRATION}; echo $?) - if [ $EXIT_CODE -ne 0 ]; then - echo "[migrations] ${NAME}: failed with exit code $EXIT_CODE, contact support" - exit $EXIT_CODE + chmod +x "${MIGRATION}" + EXIT_CODE=$(/bin/bash "${MIGRATION}"; echo $?) + if [[ ${EXIT_CODE} -ne 0 ]]; then + echo "[migrations] ${NAME}: failed with exit code ${EXIT_CODE}, contact support" + exit "${EXIT_CODE}" fi - echo $NAME >> $MIGRATIONS_HISTORY + echo "${NAME}" >> ${MIGRATIONS_HISTORY} echo "[migrations] ${NAME}: succeeded" done From 6f938cec829352c02abba40e323365398f5ded20 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Sun, 28 Aug 2022 21:30:34 +0100 Subject: [PATCH 049/124] Support new custom files locations --- root/etc/cont-init.d/99-custom-scripts | 139 ++++++++++++++++++------- 1 file changed, 102 insertions(+), 37 deletions(-) diff --git a/root/etc/cont-init.d/99-custom-scripts b/root/etc/cont-init.d/99-custom-scripts index 21956413..bd821aa6 100755 --- a/root/etc/cont-init.d/99-custom-scripts +++ b/root/etc/cont-init.d/99-custom-scripts @@ -1,49 +1,114 @@ #!/usr/bin/with-contenv bash +# shellcheck shell=bash # Directories -SCRIPTS_DIR="/config/custom-cont-init.d" -SERVICES_DIR="/config/custom-services.d" +SCRIPTS_DIR_OLD="/config/custom-cont-init.d" +SERVICES_DIR_OLD="/config/custom-services.d" +SCRIPTS_DIR="/custom-cont-init.d" +SERVICES_DIR="/custom-services.d" # Remove all existing custom services before continuing to ensure # we aren't running anything the user may have removed -if [ -n "$(/bin/ls -A /etc/services.d/custom-service-* 2>/dev/null)" ]; then - echo "[custom-init] removing existing custom services..." - rm -rf /etc/services.d/custom-service-* +if [[ -n "$(/bin/ls -A /etc/s6-overlay/s6-rc.d/custom-svc-* 2>/dev/null)" ]]; then + echo "[custom-init] removing existing custom services..." + rm -rf /etc/s6-overlay/s6-rc.d/custom-svc-* fi -# Make sure custom init directory exists and has files in it -if ([ -e "${SCRIPTS_DIR}" ] && \ - [ -n "$(/bin/ls -A ${SCRIPTS_DIR} 2>/dev/null)" ]) || \ - ([ -e "${SERVICES_DIR}" ] && \ - [ -n "$(/bin/ls -A ${SERVICES_DIR} 2>/dev/null)" ]); then - if [ -n "$(/bin/ls -A ${SCRIPTS_DIR} 2>/dev/null)" ]; then - echo "[custom-init] files found in ${SCRIPTS_DIR} executing" - for SCRIPT in ${SCRIPTS_DIR}/*; do - NAME="$(basename "${SCRIPT}")" - if [ -f "${SCRIPT}" ]; then - echo "[custom-init] ${NAME}: executing..." - /bin/bash ${SCRIPT} - echo "[custom-init] ${NAME}: exited $?" - elif [ ! -f "${SCRIPT}" ]; then - echo "[custom-init] ${NAME}: is not a file" - fi - done +if [[ -z "$(/bin/ls -A ${SERVICES_DIR} 2>/dev/null)" ]] && + [[ -z "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then + echo "[custom-init] no custom services found, skipping..." +else + # Make sure custom service directory exists and has files in it + if [[ -e "${SERVICES_DIR}" ]] && [[ -n "$(/bin/ls -A ${SERVICES_DIR} 2>/dev/null)" ]]; then + echo "[custom-init] service files found in ${SERVICES_DIR}" + for SERVICE in "${SERVICES_DIR}"/*; do + NAME="$(basename "${SERVICE}")" + if [[ -f "${SERVICE}" ]]; then + echo "[custom-init] ${NAME}: service detected, copying..." + mkdir -p /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/ + cp "${SERVICE}" /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run + chmod +x /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run + echo "longrun" >/etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/type + touch /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/init-services + touch /etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/custom-svc-"${NAME}" + echo "[custom-init] ${NAME}: copied" + elif [[ ! -f "${SERVICE}" ]]; then + echo "[custom-init] ${NAME}: is not a file" + fi + done fi - if [ -n "$(/bin/ls -A ${SERVICES_DIR} 2>/dev/null)" ]; then - echo "[custom-init] service files found in ${SERVICES_DIR}" - for SERVICE in ${SERVICES_DIR}/*; do - NAME="$(basename "${SERVICE}")" - if [ -f "${SERVICE}" ]; then - echo "[custom-init] ${NAME}: service detected, copying..." - mkdir -p /etc/services.d/custom-service-${NAME}/ - cp ${SERVICE} /etc/services.d/custom-service-${NAME}/run - chmod +x /etc/services.d/custom-service-${NAME}/run - echo "[custom-init] ${NAME}: copied" - elif [ ! -f "${SERVICE}" ]; then - echo "[custom-init] ${NAME}: is not a file" - fi - done + + if [[ -e "${SERVICES_DIR_OLD}" ]] && [[ -n "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then + echo "[custom-init] service files found in ${SERVICES_DIR_OLD}" + for SERVICE in "${SERVICES_DIR_OLD}"/*; do + NAME="$(basename "${SERVICE}")" + if [[ -f "${SERVICE}" ]]; then + echo "[custom-init] ${NAME}: service detected, copying..." + mkdir -p /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/ + cp "${SERVICE}" /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run + chmod +x /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run + echo "longrun" >/etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/type + touch /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/init-services + touch /etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/custom-svc-"${NAME}" + echo "[custom-init] ${NAME}: copied" + elif [[ ! -f "${SERVICE}" ]]; then + echo "[custom-init] ${NAME}: is not a file" + fi + done fi +fi + +if [[ -z "$(/bin/ls -A ${SCRIPTS_DIR} 2>/dev/null)" ]] && + [[ -z "$(/bin/ls -A ${SCRIPTS_DIR_OLD} 2>/dev/null)" ]]; then + echo "[custom-init] no custom files found, skipping..." else - echo "[custom-init] no custom files found exiting..." + # Make sure custom init directory exists and has files in it + if [[ -e "${SCRIPTS_DIR}" ]] && [[ -n "$(/bin/ls -A ${SCRIPTS_DIR} 2>/dev/null)" ]]; then + echo "[custom-init] files found, executing" + for SCRIPT in "${SCRIPTS_DIR}"/*; do + NAME="$(basename "${SCRIPT}")" + if [[ -f "${SCRIPT}" ]]; then + echo "[custom-init] ${NAME}: executing..." + /bin/bash "${SCRIPT}" + echo "[custom-init] ${NAME}: exited $?" + elif [[ ! -f "${SCRIPT}" ]]; then + echo "[custom-init] ${NAME}: is not a file" + fi + done + fi + + if [[ -e "${SCRIPTS_DIR_OLD}" ]] && [[ -n "$(/bin/ls -A ${SCRIPTS_DIR_OLD} 2>/dev/null)" ]]; then + echo "[custom-init] files found, executing" + for SCRIPT in "${SCRIPTS_DIR_OLD}"/*; do + NAME="$(basename "${SCRIPT}")" + if [[ -f "${SCRIPT}" ]]; then + echo "[custom-init] ${NAME}: executing..." + /bin/bash "${SCRIPT}" + echo "[custom-init] ${NAME}: exited $?" + elif [[ ! -f "${SCRIPT}" ]]; then + echo "[custom-init] ${NAME}: is not a file" + fi + done + fi +fi + +if [[ -n "$(/bin/ls -A "${SCRIPTS_DIR_OLD}" 2>/dev/null)" ]] || + [[ -n "$(/bin/ls -A "${SERVICES_DIR_OLD}" 2>/dev/null)" ]]; then + cat <<-EOF | tee ${SCRIPTS_DIR_OLD}/README.txt,${SERVICES_DIR_OLD}/README.txt 2>/dev/null + ******************************************************** + ******************************************************** + * * + * !!!! * + * Custom scripts or services found in legacy locations * + * !!!! * + * Please move your custom scripts and services * + * to ${SCRIPTS_DIR} and ${SERVICES_DIR} * + * respectively to ensure they continue working. * + * * + * Visit https://linuxserver.io/custom for more info. * + * * + ******************************************************** + ******************************************************** +EOF fi +exit 0 From edc1b4ba3908ff0068101f5be0bac7a58449fdff Mon Sep 17 00:00:00 2001 From: TheSpad Date: Fri, 2 Sep 2022 09:54:03 +0100 Subject: [PATCH 050/124] Fix custom service logic --- root/docker-mods | 51 ++++++++++++++++++++++++++ root/etc/cont-init.d/99-custom-scripts | 51 -------------------------- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/root/docker-mods b/root/docker-mods index ead588ec..3964dd3e 100755 --- a/root/docker-mods +++ b/root/docker-mods @@ -9,6 +9,57 @@ set_legacy_executable_bits() { } set_legacy_executable_bits +# Remove all existing custom services before continuing to ensure +# we aren't running anything the user may have removed +if [[ -n "$(/bin/ls -A /etc/s6-overlay/s6-rc.d/custom-svc-* 2>/dev/null)" ]]; then + echo "[custom-init] removing existing custom services..." + rm -rf /etc/s6-overlay/s6-rc.d/custom-svc-* +fi + +if [[ -z "$(/bin/ls -A ${SERVICES_DIR} 2>/dev/null)" ]] && + [[ -z "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then + echo "[custom-init] no custom services found, skipping..." +else +# Make sure custom service directory exists and has files in it +if [[ -e "${SERVICES_DIR}" ]] && [[ -n "$(/bin/ls -A ${SERVICES_DIR} 2>/dev/null)" ]]; then + echo "[custom-init] service files found in ${SERVICES_DIR}" + for SERVICE in "${SERVICES_DIR}"/*; do + NAME="$(basename "${SERVICE}")" + if [[ -f "${SERVICE}" ]]; then + echo "[custom-init] ${NAME}: service detected, copying..." + mkdir -p /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/ + cp "${SERVICE}" /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run + chmod +x /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run + echo "longrun" >/etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/type + touch /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/init-services + touch /etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/custom-svc-"${NAME}" + echo "[custom-init] ${NAME}: copied" + elif [[ ! -f "${SERVICE}" ]]; then + echo "[custom-init] ${NAME}: is not a file" + fi + done +fi + +if [[ -e "${SERVICES_DIR_OLD}" ]] && [[ -n "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then + echo "[custom-init] service files found in ${SERVICES_DIR_OLD}" + for SERVICE in "${SERVICES_DIR_OLD}"/*; do + NAME="$(basename "${SERVICE}")" + if [[ -f "${SERVICE}" ]]; then + echo "[custom-init] ${NAME}: service detected, copying..." + mkdir -p /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/ + cp "${SERVICE}" /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run + chmod +x /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run + echo "longrun" >/etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/type + touch /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/init-services + touch /etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/custom-svc-"${NAME}" + echo "[custom-init] ${NAME}: copied" + elif [[ ! -f "${SERVICE}" ]]; then + echo "[custom-init] ${NAME}: is not a file" + fi + done +fi +fi + # Exit if mods is not set if [ -z ${DOCKER_MODS+x} ]; then exit 0 diff --git a/root/etc/cont-init.d/99-custom-scripts b/root/etc/cont-init.d/99-custom-scripts index bd821aa6..7033953f 100755 --- a/root/etc/cont-init.d/99-custom-scripts +++ b/root/etc/cont-init.d/99-custom-scripts @@ -7,57 +7,6 @@ SERVICES_DIR_OLD="/config/custom-services.d" SCRIPTS_DIR="/custom-cont-init.d" SERVICES_DIR="/custom-services.d" -# Remove all existing custom services before continuing to ensure -# we aren't running anything the user may have removed -if [[ -n "$(/bin/ls -A /etc/s6-overlay/s6-rc.d/custom-svc-* 2>/dev/null)" ]]; then - echo "[custom-init] removing existing custom services..." - rm -rf /etc/s6-overlay/s6-rc.d/custom-svc-* -fi - -if [[ -z "$(/bin/ls -A ${SERVICES_DIR} 2>/dev/null)" ]] && - [[ -z "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then - echo "[custom-init] no custom services found, skipping..." -else - # Make sure custom service directory exists and has files in it - if [[ -e "${SERVICES_DIR}" ]] && [[ -n "$(/bin/ls -A ${SERVICES_DIR} 2>/dev/null)" ]]; then - echo "[custom-init] service files found in ${SERVICES_DIR}" - for SERVICE in "${SERVICES_DIR}"/*; do - NAME="$(basename "${SERVICE}")" - if [[ -f "${SERVICE}" ]]; then - echo "[custom-init] ${NAME}: service detected, copying..." - mkdir -p /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/ - cp "${SERVICE}" /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run - chmod +x /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run - echo "longrun" >/etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/type - touch /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/init-services - touch /etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/custom-svc-"${NAME}" - echo "[custom-init] ${NAME}: copied" - elif [[ ! -f "${SERVICE}" ]]; then - echo "[custom-init] ${NAME}: is not a file" - fi - done - fi - - if [[ -e "${SERVICES_DIR_OLD}" ]] && [[ -n "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then - echo "[custom-init] service files found in ${SERVICES_DIR_OLD}" - for SERVICE in "${SERVICES_DIR_OLD}"/*; do - NAME="$(basename "${SERVICE}")" - if [[ -f "${SERVICE}" ]]; then - echo "[custom-init] ${NAME}: service detected, copying..." - mkdir -p /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/ - cp "${SERVICE}" /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run - chmod +x /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run - echo "longrun" >/etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/type - touch /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/init-services - touch /etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/custom-svc-"${NAME}" - echo "[custom-init] ${NAME}: copied" - elif [[ ! -f "${SERVICE}" ]]; then - echo "[custom-init] ${NAME}: is not a file" - fi - done - fi -fi - if [[ -z "$(/bin/ls -A ${SCRIPTS_DIR} 2>/dev/null)" ]] && [[ -z "$(/bin/ls -A ${SCRIPTS_DIR_OLD} 2>/dev/null)" ]]; then echo "[custom-init] no custom files found, skipping..." From f9f4903738e778b02055a46247b06b8a6e83e292 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Fri, 2 Sep 2022 09:56:14 +0100 Subject: [PATCH 051/124] Include paths --- root/docker-mods | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/root/docker-mods b/root/docker-mods index 3964dd3e..e4310bc3 100755 --- a/root/docker-mods +++ b/root/docker-mods @@ -9,6 +9,10 @@ set_legacy_executable_bits() { } set_legacy_executable_bits +# Directories +SERVICES_DIR_OLD="/config/custom-services.d" +SERVICES_DIR="/custom-services.d" + # Remove all existing custom services before continuing to ensure # we aren't running anything the user may have removed if [[ -n "$(/bin/ls -A /etc/s6-overlay/s6-rc.d/custom-svc-* 2>/dev/null)" ]]; then From 4f4d9e38001c08ac4d0fae24d8879129ce89921e Mon Sep 17 00:00:00 2001 From: TheSpad Date: Fri, 2 Sep 2022 10:03:46 +0100 Subject: [PATCH 052/124] Fix script tee --- root/etc/cont-init.d/99-custom-scripts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/root/etc/cont-init.d/99-custom-scripts b/root/etc/cont-init.d/99-custom-scripts index 7033953f..e800ea46 100755 --- a/root/etc/cont-init.d/99-custom-scripts +++ b/root/etc/cont-init.d/99-custom-scripts @@ -43,7 +43,7 @@ fi if [[ -n "$(/bin/ls -A "${SCRIPTS_DIR_OLD}" 2>/dev/null)" ]] || [[ -n "$(/bin/ls -A "${SERVICES_DIR_OLD}" 2>/dev/null)" ]]; then - cat <<-EOF | tee ${SCRIPTS_DIR_OLD}/README.txt,${SERVICES_DIR_OLD}/README.txt 2>/dev/null + cat << EOF | tee {${SCRIPTS_DIR_OLD}/README.txt,${SERVICES_DIR_OLD}/README.txt} 2>/dev/null ******************************************************** ******************************************************** * * From f8af24ed90b8df55567f46ce1baef089854fe473 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Fri, 2 Sep 2022 10:37:36 +0100 Subject: [PATCH 053/124] Remove circular dep --- root/docker-mods | 3 --- 1 file changed, 3 deletions(-) diff --git a/root/docker-mods b/root/docker-mods index e4310bc3..90ebeec8 100755 --- a/root/docker-mods +++ b/root/docker-mods @@ -9,7 +9,6 @@ set_legacy_executable_bits() { } set_legacy_executable_bits -# Directories SERVICES_DIR_OLD="/config/custom-services.d" SERVICES_DIR="/custom-services.d" @@ -36,7 +35,6 @@ if [[ -e "${SERVICES_DIR}" ]] && [[ -n "$(/bin/ls -A ${SERVICES_DIR} 2>/dev/null chmod +x /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run echo "longrun" >/etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/type touch /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/init-services - touch /etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/custom-svc-"${NAME}" echo "[custom-init] ${NAME}: copied" elif [[ ! -f "${SERVICE}" ]]; then echo "[custom-init] ${NAME}: is not a file" @@ -55,7 +53,6 @@ if [[ -e "${SERVICES_DIR_OLD}" ]] && [[ -n "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/ chmod +x /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run echo "longrun" >/etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/type touch /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/init-services - touch /etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/custom-svc-"${NAME}" echo "[custom-init] ${NAME}: copied" elif [[ ! -f "${SERVICE}" ]]; then echo "[custom-init] ${NAME}: is not a file" From e5eae41cea8368e441ee9794eb3368e81cb78b13 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Fri, 2 Sep 2022 11:12:22 +0100 Subject: [PATCH 054/124] Fix formatting --- root/docker-mods | 72 ++++++++++++++++++++++++------------------------ 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/root/docker-mods b/root/docker-mods index 90ebeec8..cada155f 100755 --- a/root/docker-mods +++ b/root/docker-mods @@ -23,42 +23,42 @@ if [[ -z "$(/bin/ls -A ${SERVICES_DIR} 2>/dev/null)" ]] && [[ -z "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then echo "[custom-init] no custom services found, skipping..." else -# Make sure custom service directory exists and has files in it -if [[ -e "${SERVICES_DIR}" ]] && [[ -n "$(/bin/ls -A ${SERVICES_DIR} 2>/dev/null)" ]]; then - echo "[custom-init] service files found in ${SERVICES_DIR}" - for SERVICE in "${SERVICES_DIR}"/*; do - NAME="$(basename "${SERVICE}")" - if [[ -f "${SERVICE}" ]]; then - echo "[custom-init] ${NAME}: service detected, copying..." - mkdir -p /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/ - cp "${SERVICE}" /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run - chmod +x /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run - echo "longrun" >/etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/type - touch /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/init-services - echo "[custom-init] ${NAME}: copied" - elif [[ ! -f "${SERVICE}" ]]; then - echo "[custom-init] ${NAME}: is not a file" - fi - done -fi + # Make sure custom service directory exists and has files in it + if [[ -e "${SERVICES_DIR}" ]] && [[ -n "$(/bin/ls -A ${SERVICES_DIR} 2>/dev/null)" ]]; then + echo "[custom-init] service files found in ${SERVICES_DIR}" + for SERVICE in "${SERVICES_DIR}"/*; do + NAME="$(basename "${SERVICE}")" + if [[ -f "${SERVICE}" ]]; then + echo "[custom-init] ${NAME}: service detected, copying..." + mkdir -p /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/ + cp "${SERVICE}" /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run + chmod +x /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run + echo "longrun" >/etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/type + touch /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/init-services + echo "[custom-init] ${NAME}: copied" + elif [[ ! -f "${SERVICE}" ]]; then + echo "[custom-init] ${NAME}: is not a file" + fi + done + fi -if [[ -e "${SERVICES_DIR_OLD}" ]] && [[ -n "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then - echo "[custom-init] service files found in ${SERVICES_DIR_OLD}" - for SERVICE in "${SERVICES_DIR_OLD}"/*; do - NAME="$(basename "${SERVICE}")" - if [[ -f "${SERVICE}" ]]; then - echo "[custom-init] ${NAME}: service detected, copying..." - mkdir -p /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/ - cp "${SERVICE}" /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run - chmod +x /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run - echo "longrun" >/etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/type - touch /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/init-services - echo "[custom-init] ${NAME}: copied" - elif [[ ! -f "${SERVICE}" ]]; then - echo "[custom-init] ${NAME}: is not a file" - fi - done -fi + if [[ -e "${SERVICES_DIR_OLD}" ]] && [[ -n "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then + echo "[custom-init] service files found in ${SERVICES_DIR_OLD}" + for SERVICE in "${SERVICES_DIR_OLD}"/*; do + NAME="$(basename "${SERVICE}")" + if [[ -f "${SERVICE}" ]]; then + echo "[custom-init] ${NAME}: service detected, copying..." + mkdir -p /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/ + cp "${SERVICE}" /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run + chmod +x /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run + echo "longrun" >/etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/type + touch /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/init-services + echo "[custom-init] ${NAME}: copied" + elif [[ ! -f "${SERVICE}" ]]; then + echo "[custom-init] ${NAME}: is not a file" + fi + done + fi fi # Exit if mods is not set @@ -70,7 +70,7 @@ fi if [ ! -f /usr/bin/curl ] || [ ! -f /usr/bin/jq ]; then echo "[mod-init] Curl/JQ was not found on this system for Docker mods installing" if [ -f /usr/bin/apt ]; then - ## Ubuntu + # Ubuntu apt-get update apt-get install --no-install-recommends -y \ curl \ From 12e4373c0cec3c4657c55b5c29b40d7e20f2de67 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Fri, 2 Sep 2022 08:54:34 -0500 Subject: [PATCH 055/124] 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 ba0f8b1a..5273ca3e 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -7,7 +7,7 @@ bash5.1-6ubuntu1 bsdutils1:2.37.2-4ubuntu3 ca-certificates20211016 coreutils8.32-4.1ubuntu1 -curl7.81.0-1ubuntu1.3 +curl7.81.0-1ubuntu1.4 dash0.5.11+git20210903+057cd650a4ed-3build1 debconf1.5.79ubuntu1 debianutils5.5-1ubuntu2 @@ -46,7 +46,7 @@ libcap-ng00.7.9-2.2build3 libc-bin2.35-0ubuntu3.1 libcom-err21.46.5-2ubuntu1.1 libcrypt11:4.4.27-1 -libcurl47.81.0-1ubuntu1.3 +libcurl47.81.0-1ubuntu1.4 libdb5.35.3.28+dfsg1-0.8ubuntu3 libdebconfclient00.261ubuntu1 libext2fs21.46.5-2ubuntu1.1 @@ -64,8 +64,8 @@ libkeyutils11.6.1-2ubuntu3 libkrb5-31.19.2-2 libkrb5support01.19.2-2 libksba81.6.0-2build1 -libldap-2.5-02.5.12+dfsg-0ubuntu0.22.04.1 -libldap-common2.5.12+dfsg-0ubuntu0.22.04.1 +libldap-2.5-02.5.13+dfsg-0ubuntu0.22.04.1 +libldap-common2.5.13+dfsg-0ubuntu0.22.04.1 liblz4-11.9.3-2build2 liblzma55.2.5-2ubuntu1 libmount12.37.2-4ubuntu3 @@ -129,7 +129,7 @@ sed4.8-1ubuntu2 sensible-utils0.0.17 sysvinit-utils3.01-1ubuntu1 tar1.34+dfsg-1build3 -tzdata2022a-0ubuntu1 +tzdata2022c-0ubuntu0.22.04.0 ubuntu-keyring2021.03.26 usrmerge25ubuntu2 util-linux2.37.2-4ubuntu3 From e22da8adf0e28c7de5fa792897a234599c13a79a Mon Sep 17 00:00:00 2001 From: TheSpad Date: Sat, 3 Sep 2022 11:12:23 +0100 Subject: [PATCH 056/124] Add custom services to user bundle --- root/docker-mods | 2 ++ 1 file changed, 2 insertions(+) diff --git a/root/docker-mods b/root/docker-mods index cada155f..19614fd9 100755 --- a/root/docker-mods +++ b/root/docker-mods @@ -35,6 +35,7 @@ else chmod +x /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run echo "longrun" >/etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/type touch /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/init-services + touch /etc/s6-overlay/s6-rc.d/user/contents.d/custom-svc-"${NAME}" echo "[custom-init] ${NAME}: copied" elif [[ ! -f "${SERVICE}" ]]; then echo "[custom-init] ${NAME}: is not a file" @@ -53,6 +54,7 @@ else chmod +x /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run echo "longrun" >/etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/type touch /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/init-services + touch /etc/s6-overlay/s6-rc.d/user/contents.d/custom-svc-"${NAME}" echo "[custom-init] ${NAME}: copied" elif [[ ! -f "${SERVICE}" ]]; then echo "[custom-init] ${NAME}: is not a file" From 704cc3cc6d50c3fb547d6bbc063c58cf928fd46f Mon Sep 17 00:00:00 2001 From: TheSpad Date: Mon, 5 Sep 2022 17:37:20 +0100 Subject: [PATCH 057/124] Rework legacy custom file handling --- root/docker-mods | 386 +++++++++++++++---------- root/etc/cont-init.d/02-tamper-check | 18 -- root/etc/cont-init.d/90-custom-folders | 5 - root/etc/cont-init.d/99-custom-files | 289 ++++++++++++++++++ root/etc/cont-init.d/99-custom-scripts | 63 ---- 5 files changed, 526 insertions(+), 235 deletions(-) delete mode 100755 root/etc/cont-init.d/02-tamper-check delete mode 100755 root/etc/cont-init.d/90-custom-folders create mode 100755 root/etc/cont-init.d/99-custom-files delete mode 100755 root/etc/cont-init.d/99-custom-scripts diff --git a/root/docker-mods b/root/docker-mods index 19614fd9..97949a62 100755 --- a/root/docker-mods +++ b/root/docker-mods @@ -1,31 +1,76 @@ #!/usr/bin/with-contenv bash +# shellcheck shell=bash # Set executable bit on cont-init and services built into the image set_legacy_executable_bits() { - mkdir -p /etc/{cont-init.d,services.d} - chmod +x \ - /etc/cont-init.d/* \ - /etc/services.d/*/* 2> /dev/null || true + mkdir -p /etc/{cont-init.d,services.d} + chmod +x \ + /etc/cont-init.d/* \ + /etc/services.d/*/* 2>/dev/null || true } -set_legacy_executable_bits -SERVICES_DIR_OLD="/config/custom-services.d" -SERVICES_DIR="/custom-services.d" +tamper_check() { + #Tamper check custom service locations + if [[ -d "${SERVICES_DIR}" ]] && [[ -n "$(find ${SERVICES_DIR}/* ! -user root)" ]]; then + echo "[custom-init] **** Some of the contents of the folder '${SERVICES_DIR}' are not owned by root, which is a security risk. ****" + echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" + elif [[ -d "${SERVICES_DIR}" ]] && [[ -n "$(find ${SERVICES_DIR}/* -perm -o+w)" ]]; then + echo "[custom-init] **** Some of the contents of the folder '${SERVICES_DIR}' have write permissions for others, which is a security risk. ****" + echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" + fi + #Tamper check custom script locations + if [[ -d "${SCRIPTS_DIR}" ]] && [[ -n "$(find ${SCRIPTS_DIR}/* ! -user root)" ]]; then + echo "[custom-init] **** Some of the contents of the folder '${SCRIPTS_DIR}' are not owned by root, which is a security risk. ****" + echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" + elif [[ -d "${SCRIPTS_DIR}" ]] && [[ -n "$(find ${SCRIPTS_DIR}/* -perm -o+w)" ]]; then + echo "[custom-init] **** Some of the contents of the folder '${SCRIPTS_DIR}' have write permissions for others, which is a security risk. ****" + echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" + fi +} -# Remove all existing custom services before continuing to ensure -# we aren't running anything the user may have removed -if [[ -n "$(/bin/ls -A /etc/s6-overlay/s6-rc.d/custom-svc-* 2>/dev/null)" ]]; then - echo "[custom-init] removing existing custom services..." - rm -rf /etc/s6-overlay/s6-rc.d/custom-svc-* -fi +tamper_check_legacy() { + # Tamper check custom script locations + if [[ -d "${SCRIPTS_DIR_OLD}" ]] && [[ -n "$(find ${SCRIPTS_DIR_OLD} ! -user root)" ]]; then + echo "**** Potential tampering with custom scripts detected ****" + randstr=$( + tr /dev/null)" ]]; then + echo "[custom-init] removing existing custom services..." + rm -rf /etc/s6-overlay/s6-rc.d/custom-svc-* + fi -if [[ -z "$(/bin/ls -A ${SERVICES_DIR} 2>/dev/null)" ]] && - [[ -z "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then - echo "[custom-init] no custom services found, skipping..." -else # Make sure custom service directory exists and has files in it if [[ -e "${SERVICES_DIR}" ]] && [[ -n "$(/bin/ls -A ${SERVICES_DIR} 2>/dev/null)" ]]; then - echo "[custom-init] service files found in ${SERVICES_DIR}" + echo "[custom-init] Service files found in ${SERVICES_DIR}" for SERVICE in "${SERVICES_DIR}"/*; do NAME="$(basename "${SERVICE}")" if [[ -f "${SERVICE}" ]]; then @@ -41,10 +86,29 @@ else echo "[custom-init] ${NAME}: is not a file" fi done + else + echo "[custom-init] No custom services found, skipping..." + fi + + # Remove legacy folder if it's empty + if [[ -e "${SERVICES_DIR_OLD}" ]] && [[ -z "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then + echo "[custom-init] Legacy service folder ${SERVICES_DIR_OLD} is empty, deleting..." + rm -rf "${SERVICES_DIR_OLD}" + fi +} + +process_custom_services_legacy() { + + # Remove all existing custom services before continuing to ensure + # we aren't running anything the user may have removed + if [[ -n "$(/bin/ls -A /etc/s6-overlay/s6-rc.d/custom-svc-* 2>/dev/null)" ]]; then + echo "[custom-init] removing existing custom services..." + rm -rf /etc/s6-overlay/s6-rc.d/custom-svc-* fi + # Make sure custom service directory exists and has files in it if [[ -e "${SERVICES_DIR_OLD}" ]] && [[ -n "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then - echo "[custom-init] service files found in ${SERVICES_DIR_OLD}" + echo "[custom-init] Service files found in ${SERVICES_DIR_OLD}" for SERVICE in "${SERVICES_DIR_OLD}"/*; do NAME="$(basename "${SERVICE}")" if [[ -f "${SERVICE}" ]]; then @@ -60,142 +124,166 @@ else echo "[custom-init] ${NAME}: is not a file" fi done - fi -fi + else + echo "[custom-init] No custom services found, skipping..." + fi -# Exit if mods is not set -if [ -z ${DOCKER_MODS+x} ]; then - exit 0 -fi + # Remove legacy folder if it's empty + if [[ -e "${SERVICES_DIR_OLD}" ]] && [[ -z "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then + echo "[custom-init] Legacy service folder ${SERVICES_DIR_OLD} is empty, deleting..." + rm -rf "${SERVICES_DIR_OLD}" + fi +} # Check for curl -if [ ! -f /usr/bin/curl ] || [ ! -f /usr/bin/jq ]; then - echo "[mod-init] Curl/JQ was not found on this system for Docker mods installing" - if [ -f /usr/bin/apt ]; then - # Ubuntu - apt-get update - apt-get install --no-install-recommends -y \ - curl \ - jq - elif [ -f /sbin/apk ]; then - # Alpine - apk add --no-cache \ - curl \ - jq - fi -fi - -## Functions +curl_check() { + if [[ ! -f /usr/bin/curl ]] || [[ ! -f /usr/bin/jq ]]; then + echo "[mod-init] Curl/JQ was not found on this system for Docker mods installing" + if [[ -f /usr/bin/apt ]]; then + ## Ubuntu + export DEBIAN_FRONTEND="noninteractive" + apt-get update + apt-get install --no-install-recommends -y \ + curl \ + jq + elif [[ -f /sbin/apk ]]; then + # Alpine + apk add --no-cache \ + curl \ + jq + fi + fi +} # Use different filtering depending on URL -get_blob_sha () { - if [[ $1 == "ghcr" ]]; then - curl -f --retry 10 --retry-max-time 60 --retry-connrefused \ - --silent \ - --location \ - --request GET \ - --header "Authorization: Bearer $2" \ - $3 | jq -r '.layers[0].digest' - else - curl -f --retry 10 --retry-max-time 60 --retry-connrefused \ - --silent \ - --location \ - --request GET \ - --header "Authorization: Bearer $2" \ - $3 | jq -r '.fsLayers[0].blobSum' - fi +get_blob_sha() { + if [[ $1 == "ghcr" ]]; then + curl -f --retry 10 --retry-max-time 60 --retry-connrefused \ + --silent \ + --location \ + --request GET \ + --header "Authorization: Bearer $2" \ + "$3" | jq -r '.layers[0].digest' + else + curl -f --retry 10 --retry-max-time 60 --retry-connrefused \ + --silent \ + --location \ + --request GET \ + --header "Authorization: Bearer $2" \ + "$3" | jq -r '.fsLayers[0].blobSum' + fi } # Main run logic -echo "[mod-init] Attempting to run Docker Modification Logic" -IFS='|' -DOCKER_MODS=(${DOCKER_MODS}) -for DOCKER_MOD in "${DOCKER_MODS[@]}"; do - # Support alternative endpoints - if [[ ${DOCKER_MOD} == ghcr.io/* ]] || [[ ${DOCKER_MOD} == linuxserver/* ]]; then - DOCKER_MOD="${DOCKER_MOD#ghcr.io/*}" - ENDPOINT="${DOCKER_MOD%%:*}" - USERNAME="${DOCKER_MOD%%/*}" - REPO="${ENDPOINT#*/}" - TAG="${DOCKER_MOD#*:}" - if [[ ${TAG} == "${DOCKER_MOD}" ]]; then - TAG="latest" - fi - FILENAME="${USERNAME}.${REPO}.${TAG}" - AUTH_URL="https://ghcr.io/token?scope=repository%3A${USERNAME}%2F${REPO}%3Apull" - MANIFEST_URL="https://ghcr.io/v2/${ENDPOINT}/manifests/${TAG}" - BLOB_URL="https://ghcr.io/v2/${ENDPOINT}/blobs/" - MODE="ghcr" - else - ENDPOINT="${DOCKER_MOD%%:*}" - USERNAME="${DOCKER_MOD%%/*}" - REPO="${ENDPOINT#*/}" - TAG="${DOCKER_MOD#*:}" - if [[ ${TAG} == "${DOCKER_MOD}" ]]; then - TAG="latest" - fi - FILENAME="${USERNAME}.${REPO}.${TAG}" - AUTH_URL="https://auth.docker.io/token?service=registry.docker.io&scope=repository:${ENDPOINT}:pull" - MANIFEST_URL="https://registry-1.docker.io/v2/${ENDPOINT}/manifests/${TAG}" - BLOB_URL="https://registry-1.docker.io/v2/${ENDPOINT}/blobs/" - MODE="dockerhub" - fi - # Kill off modification logic if any of the usernames are banned - BLACKLIST=$(curl -s https://raw.githubusercontent.com/linuxserver/docker-mods/master/blacklist.txt) - IFS=$'\n' - BLACKLIST=(${BLACKLIST}) - for BANNED in "${BLACKLIST[@]}"; do - if [ "${BANNED}" == "${USERNAME,,}" ]; then - if [ -z ${RUN_BANNED_MODS+x} ]; then - echo "[mod-init] ${DOCKER_MOD} is banned from use due to reported abuse aborting mod logic" - exit 0 - else - echo "[mod-init] You have chosen to run banned mods ${DOCKER_MOD} will be applied" - fi - fi - done - echo "[mod-init] Applying ${DOCKER_MOD} files to container" - # Get Dockerhub token for api operations - TOKEN=\ -"$(curl -f --retry 10 --retry-max-time 60 --retry-connrefused \ - --silent \ - --header 'GET' \ - "${AUTH_URL}" \ - | jq -r '.token' \ - )" - # Determine first and only layer of image - SHALAYER=$(get_blob_sha "${MODE}" "${TOKEN}" "${MANIFEST_URL}") - # Check if we have allready applied this layer - if [ -f "/${FILENAME}" ] && [ "${SHALAYER}" == "$(cat /${FILENAME})" ]; then - echo "[mod-init] ${DOCKER_MOD} at ${SHALAYER} has been previously applied skipping" - else - # Download and extract layer to / - curl -f --retry 10 --retry-max-time 60 --retry-all-errors \ - --silent \ - --location \ - --request GET \ - --header "Authorization: Bearer ${TOKEN}" \ - "${BLOB_URL}${SHALAYER}" -o \ - /modtarball.tar.xz - mkdir -p /tmp/mod - tar xzf /modtarball.tar.xz -C /tmp/mod - if [ -d /tmp/mod/etc/s6-overlay ]; then - if [ -d /tmp/mod/etc/cont-init.d ]; then - rm -rf /tmp/mod/etc/cont-init.d - fi - if [ -d /tmp/mod/etc/services.d ]; then - rm -rf /tmp/mod/etc/services.d - fi - fi - shopt -s dotglob - cp -R /tmp/mod/* / - shopt -u dotglob - rm -rf /tmp/mod - rm -rf /modtarball.tar.xz - echo ${SHALAYER} > "/${FILENAME}" - echo "[mod-init] ${DOCKER_MOD} applied to container" - fi -done - -# Set executable bit on cont-init and services that may have been unpacked by mods +run_mods() { + echo "[mod-init] Attempting to run Docker Modification Logic" + for DOCKER_MOD in $(echo "${DOCKER_MODS}" | tr '|' '\n'); do + # Support alternative endpoints + if [[ ${DOCKER_MOD} == ghcr.io/* ]] || [[ ${DOCKER_MOD} == linuxserver/* ]]; then + DOCKER_MOD="${DOCKER_MOD#ghcr.io/*}" + ENDPOINT="${DOCKER_MOD%%:*}" + USERNAME="${DOCKER_MOD%%/*}" + REPO="${ENDPOINT#*/}" + TAG="${DOCKER_MOD#*:}" + if [[ ${TAG} == "${DOCKER_MOD}" ]]; then + TAG="latest" + fi + FILENAME="${USERNAME}.${REPO}.${TAG}" + AUTH_URL="https://ghcr.io/token?scope=repository%3A${USERNAME}%2F${REPO}%3Apull" + MANIFEST_URL="https://ghcr.io/v2/${ENDPOINT}/manifests/${TAG}" + BLOB_URL="https://ghcr.io/v2/${ENDPOINT}/blobs/" + MODE="ghcr" + else + ENDPOINT="${DOCKER_MOD%%:*}" + USERNAME="${DOCKER_MOD%%/*}" + REPO="${ENDPOINT#*/}" + TAG="${DOCKER_MOD#*:}" + if [[ ${TAG} == "${DOCKER_MOD}" ]]; then + TAG="latest" + fi + FILENAME="${USERNAME}.${REPO}.${TAG}" + AUTH_URL="https://auth.docker.io/token?service=registry.docker.io&scope=repository:${ENDPOINT}:pull" + MANIFEST_URL="https://registry-1.docker.io/v2/${ENDPOINT}/manifests/${TAG}" + BLOB_URL="https://registry-1.docker.io/v2/${ENDPOINT}/blobs/" + MODE="dockerhub" + fi + # Kill off modification logic if any of the usernames are banned + for BANNED in $(curl -s https://raw.githubusercontent.com/linuxserver/docker-mods/master/blacklist.txt); do + if [[ "${BANNED,,}" == "${USERNAME,,}" ]]; then + if [[ -z ${RUN_BANNED_MODS+x} ]]; then + echo "[mod-init] ${DOCKER_MOD} is banned from use due to reported abuse aborting mod logic" + return + else + echo "[mod-init] You have chosen to run banned mods ${DOCKER_MOD} will be applied" + fi + fi + done + echo "[mod-init] Applying ${DOCKER_MOD} files to container" + # Get Dockerhub token for api operations + TOKEN="$( + curl -f --retry 10 --retry-max-time 60 --retry-connrefused \ + --silent \ + --header 'GET' \ + "${AUTH_URL}" | + jq -r '.token' + )" + # Determine first and only layer of image + SHALAYER=$(get_blob_sha "${MODE}" "${TOKEN}" "${MANIFEST_URL}") + # Check if we have allready applied this layer + if [[ -f "/${FILENAME}" ]] && [[ "${SHALAYER}" == "$(cat /"${FILENAME}")" ]]; then + echo "[mod-init] ${DOCKER_MOD} at ${SHALAYER} has been previously applied skipping" + else + # Download and extract layer to / + curl -f --retry 10 --retry-max-time 60 --retry-all-errors \ + --silent \ + --location \ + --request GET \ + --header "Authorization: Bearer ${TOKEN}" \ + "${BLOB_URL}${SHALAYER}" -o \ + /modtarball.tar.xz + mkdir -p /tmp/mod + tar xzf /modtarball.tar.xz -C /tmp/mod + if [[ -d /tmp/mod/etc/s6-overlay ]]; then + if [[ -d /tmp/mod/etc/cont-init.d ]]; then + rm -rf /tmp/mod/etc/cont-init.d + fi + if [[ -d /tmp/mod/etc/services.d ]]; then + rm -rf /tmp/mod/etc/services.d + fi + fi + shopt -s dotglob + cp -R /tmp/mod/* / + shopt -u dotglob + rm -rf /tmp/mod + rm -rf /modtarball.tar.xz + echo "${SHALAYER}" >"/${FILENAME}" + echo "[mod-init] ${DOCKER_MOD} applied to container" + fi + done +} + +# Main script loop + +SCRIPTS_DIR_OLD="/config/custom-cont-init.d" +SCRIPTS_DIR="/custom-cont-init.d" +SERVICES_DIR_OLD="/config/custom-services.d" +SERVICES_DIR="/custom-services.d" + +if [ ! -d "/custom-cont-init.d" ] && [ ! -d "/custom-services.d" ]; then + # Tamper check legacy custom folders + tamper_check_legacy + process_custom_services_legacy +else + # Tamper check new custom folders + tamper_check + process_custom_services +fi + +# Run mod logic +if [[ -n "${DOCKER_MODS+x}" ]]; then + curl_check + run_mods +fi + +# Set executable bit on legacy cont-init and services built into the image and anything legacy unpacked by mods set_legacy_executable_bits diff --git a/root/etc/cont-init.d/02-tamper-check b/root/etc/cont-init.d/02-tamper-check deleted file mode 100755 index 6699a273..00000000 --- a/root/etc/cont-init.d/02-tamper-check +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/with-contenv bash - -if ([ -d "/config/custom-cont-init.d" ] && [ -n "$(find /config/custom-cont-init.d ! -user root)" ]) || ([ -d "/config/custom-services.d" ] && [ -n "$(find /config/custom-services.d ! -user root)" ]); then - echo "**** Potential tampering with custom scripts/services detected ****" - randstr=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-8};echo;) - for folder in "/config/custom-cont-init.d" "/config/custom-services.d"; do - if [ -d "${folder}" ]; then - mv "${folder}" "${folder}.${randstr}" - echo "**** Folder ${folder} is moved to ${folder}.${randstr} ****" - fi - done - echo "**** The folders '/config/custom-cont-init.d' and '/config/custom-services.d'; and their contents need to all be owned by root to prevent root escalation inside the container!!! ****" - mkdir -p /config/custom-cont-init.d /config/custom-services.d - chown 0:0 /config/custom-cont-init.d /config/custom-services.d -elif ([ -d "/config/custom-cont-init.d" ] && [ -n "$(find /config/custom-cont-init.d -perm -o+w)" ]) || ([ -d "/config/custom-services.d" ] && [ -n "$(find /config/custom-services.d -perm -o+w)" ]); then - echo "**** The folders '/config/custom-cont-init.d' or '/config/custom-services.d'; or some of their contents have write permissions for others, which is a security risk. ****" - echo "**** Please review the permissions of these two folders and their contents to make sure they are owned by root, and can only be modified by root. ****" -fi diff --git a/root/etc/cont-init.d/90-custom-folders b/root/etc/cont-init.d/90-custom-folders deleted file mode 100755 index 14b79140..00000000 --- a/root/etc/cont-init.d/90-custom-folders +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/with-contenv bash - -# create custom folders and secure permissions -mkdir -p /config/{custom-cont-init.d,custom-services.d} -chown -R 0:0 /config/{custom-cont-init.d,custom-services.d} diff --git a/root/etc/cont-init.d/99-custom-files b/root/etc/cont-init.d/99-custom-files new file mode 100755 index 00000000..97949a62 --- /dev/null +++ b/root/etc/cont-init.d/99-custom-files @@ -0,0 +1,289 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +# Set executable bit on cont-init and services built into the image +set_legacy_executable_bits() { + mkdir -p /etc/{cont-init.d,services.d} + chmod +x \ + /etc/cont-init.d/* \ + /etc/services.d/*/* 2>/dev/null || true +} + +tamper_check() { + #Tamper check custom service locations + if [[ -d "${SERVICES_DIR}" ]] && [[ -n "$(find ${SERVICES_DIR}/* ! -user root)" ]]; then + echo "[custom-init] **** Some of the contents of the folder '${SERVICES_DIR}' are not owned by root, which is a security risk. ****" + echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" + elif [[ -d "${SERVICES_DIR}" ]] && [[ -n "$(find ${SERVICES_DIR}/* -perm -o+w)" ]]; then + echo "[custom-init] **** Some of the contents of the folder '${SERVICES_DIR}' have write permissions for others, which is a security risk. ****" + echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" + fi + #Tamper check custom script locations + if [[ -d "${SCRIPTS_DIR}" ]] && [[ -n "$(find ${SCRIPTS_DIR}/* ! -user root)" ]]; then + echo "[custom-init] **** Some of the contents of the folder '${SCRIPTS_DIR}' are not owned by root, which is a security risk. ****" + echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" + elif [[ -d "${SCRIPTS_DIR}" ]] && [[ -n "$(find ${SCRIPTS_DIR}/* -perm -o+w)" ]]; then + echo "[custom-init] **** Some of the contents of the folder '${SCRIPTS_DIR}' have write permissions for others, which is a security risk. ****" + echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" + fi +} + +tamper_check_legacy() { + # Tamper check custom script locations + if [[ -d "${SCRIPTS_DIR_OLD}" ]] && [[ -n "$(find ${SCRIPTS_DIR_OLD} ! -user root)" ]]; then + echo "**** Potential tampering with custom scripts detected ****" + randstr=$( + tr /dev/null)" ]]; then + echo "[custom-init] removing existing custom services..." + rm -rf /etc/s6-overlay/s6-rc.d/custom-svc-* + fi + + # Make sure custom service directory exists and has files in it + if [[ -e "${SERVICES_DIR}" ]] && [[ -n "$(/bin/ls -A ${SERVICES_DIR} 2>/dev/null)" ]]; then + echo "[custom-init] Service files found in ${SERVICES_DIR}" + for SERVICE in "${SERVICES_DIR}"/*; do + NAME="$(basename "${SERVICE}")" + if [[ -f "${SERVICE}" ]]; then + echo "[custom-init] ${NAME}: service detected, copying..." + mkdir -p /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/ + cp "${SERVICE}" /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run + chmod +x /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run + echo "longrun" >/etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/type + touch /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/init-services + touch /etc/s6-overlay/s6-rc.d/user/contents.d/custom-svc-"${NAME}" + echo "[custom-init] ${NAME}: copied" + elif [[ ! -f "${SERVICE}" ]]; then + echo "[custom-init] ${NAME}: is not a file" + fi + done + else + echo "[custom-init] No custom services found, skipping..." + fi + + # Remove legacy folder if it's empty + if [[ -e "${SERVICES_DIR_OLD}" ]] && [[ -z "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then + echo "[custom-init] Legacy service folder ${SERVICES_DIR_OLD} is empty, deleting..." + rm -rf "${SERVICES_DIR_OLD}" + fi +} + +process_custom_services_legacy() { + + # Remove all existing custom services before continuing to ensure + # we aren't running anything the user may have removed + if [[ -n "$(/bin/ls -A /etc/s6-overlay/s6-rc.d/custom-svc-* 2>/dev/null)" ]]; then + echo "[custom-init] removing existing custom services..." + rm -rf /etc/s6-overlay/s6-rc.d/custom-svc-* + fi + + # Make sure custom service directory exists and has files in it + if [[ -e "${SERVICES_DIR_OLD}" ]] && [[ -n "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then + echo "[custom-init] Service files found in ${SERVICES_DIR_OLD}" + for SERVICE in "${SERVICES_DIR_OLD}"/*; do + NAME="$(basename "${SERVICE}")" + if [[ -f "${SERVICE}" ]]; then + echo "[custom-init] ${NAME}: service detected, copying..." + mkdir -p /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/ + cp "${SERVICE}" /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run + chmod +x /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run + echo "longrun" >/etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/type + touch /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/init-services + touch /etc/s6-overlay/s6-rc.d/user/contents.d/custom-svc-"${NAME}" + echo "[custom-init] ${NAME}: copied" + elif [[ ! -f "${SERVICE}" ]]; then + echo "[custom-init] ${NAME}: is not a file" + fi + done + else + echo "[custom-init] No custom services found, skipping..." + fi + + # Remove legacy folder if it's empty + if [[ -e "${SERVICES_DIR_OLD}" ]] && [[ -z "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then + echo "[custom-init] Legacy service folder ${SERVICES_DIR_OLD} is empty, deleting..." + rm -rf "${SERVICES_DIR_OLD}" + fi +} + +# Check for curl +curl_check() { + if [[ ! -f /usr/bin/curl ]] || [[ ! -f /usr/bin/jq ]]; then + echo "[mod-init] Curl/JQ was not found on this system for Docker mods installing" + if [[ -f /usr/bin/apt ]]; then + ## Ubuntu + export DEBIAN_FRONTEND="noninteractive" + apt-get update + apt-get install --no-install-recommends -y \ + curl \ + jq + elif [[ -f /sbin/apk ]]; then + # Alpine + apk add --no-cache \ + curl \ + jq + fi + fi +} + +# Use different filtering depending on URL +get_blob_sha() { + if [[ $1 == "ghcr" ]]; then + curl -f --retry 10 --retry-max-time 60 --retry-connrefused \ + --silent \ + --location \ + --request GET \ + --header "Authorization: Bearer $2" \ + "$3" | jq -r '.layers[0].digest' + else + curl -f --retry 10 --retry-max-time 60 --retry-connrefused \ + --silent \ + --location \ + --request GET \ + --header "Authorization: Bearer $2" \ + "$3" | jq -r '.fsLayers[0].blobSum' + fi +} + +# Main run logic +run_mods() { + echo "[mod-init] Attempting to run Docker Modification Logic" + for DOCKER_MOD in $(echo "${DOCKER_MODS}" | tr '|' '\n'); do + # Support alternative endpoints + if [[ ${DOCKER_MOD} == ghcr.io/* ]] || [[ ${DOCKER_MOD} == linuxserver/* ]]; then + DOCKER_MOD="${DOCKER_MOD#ghcr.io/*}" + ENDPOINT="${DOCKER_MOD%%:*}" + USERNAME="${DOCKER_MOD%%/*}" + REPO="${ENDPOINT#*/}" + TAG="${DOCKER_MOD#*:}" + if [[ ${TAG} == "${DOCKER_MOD}" ]]; then + TAG="latest" + fi + FILENAME="${USERNAME}.${REPO}.${TAG}" + AUTH_URL="https://ghcr.io/token?scope=repository%3A${USERNAME}%2F${REPO}%3Apull" + MANIFEST_URL="https://ghcr.io/v2/${ENDPOINT}/manifests/${TAG}" + BLOB_URL="https://ghcr.io/v2/${ENDPOINT}/blobs/" + MODE="ghcr" + else + ENDPOINT="${DOCKER_MOD%%:*}" + USERNAME="${DOCKER_MOD%%/*}" + REPO="${ENDPOINT#*/}" + TAG="${DOCKER_MOD#*:}" + if [[ ${TAG} == "${DOCKER_MOD}" ]]; then + TAG="latest" + fi + FILENAME="${USERNAME}.${REPO}.${TAG}" + AUTH_URL="https://auth.docker.io/token?service=registry.docker.io&scope=repository:${ENDPOINT}:pull" + MANIFEST_URL="https://registry-1.docker.io/v2/${ENDPOINT}/manifests/${TAG}" + BLOB_URL="https://registry-1.docker.io/v2/${ENDPOINT}/blobs/" + MODE="dockerhub" + fi + # Kill off modification logic if any of the usernames are banned + for BANNED in $(curl -s https://raw.githubusercontent.com/linuxserver/docker-mods/master/blacklist.txt); do + if [[ "${BANNED,,}" == "${USERNAME,,}" ]]; then + if [[ -z ${RUN_BANNED_MODS+x} ]]; then + echo "[mod-init] ${DOCKER_MOD} is banned from use due to reported abuse aborting mod logic" + return + else + echo "[mod-init] You have chosen to run banned mods ${DOCKER_MOD} will be applied" + fi + fi + done + echo "[mod-init] Applying ${DOCKER_MOD} files to container" + # Get Dockerhub token for api operations + TOKEN="$( + curl -f --retry 10 --retry-max-time 60 --retry-connrefused \ + --silent \ + --header 'GET' \ + "${AUTH_URL}" | + jq -r '.token' + )" + # Determine first and only layer of image + SHALAYER=$(get_blob_sha "${MODE}" "${TOKEN}" "${MANIFEST_URL}") + # Check if we have allready applied this layer + if [[ -f "/${FILENAME}" ]] && [[ "${SHALAYER}" == "$(cat /"${FILENAME}")" ]]; then + echo "[mod-init] ${DOCKER_MOD} at ${SHALAYER} has been previously applied skipping" + else + # Download and extract layer to / + curl -f --retry 10 --retry-max-time 60 --retry-all-errors \ + --silent \ + --location \ + --request GET \ + --header "Authorization: Bearer ${TOKEN}" \ + "${BLOB_URL}${SHALAYER}" -o \ + /modtarball.tar.xz + mkdir -p /tmp/mod + tar xzf /modtarball.tar.xz -C /tmp/mod + if [[ -d /tmp/mod/etc/s6-overlay ]]; then + if [[ -d /tmp/mod/etc/cont-init.d ]]; then + rm -rf /tmp/mod/etc/cont-init.d + fi + if [[ -d /tmp/mod/etc/services.d ]]; then + rm -rf /tmp/mod/etc/services.d + fi + fi + shopt -s dotglob + cp -R /tmp/mod/* / + shopt -u dotglob + rm -rf /tmp/mod + rm -rf /modtarball.tar.xz + echo "${SHALAYER}" >"/${FILENAME}" + echo "[mod-init] ${DOCKER_MOD} applied to container" + fi + done +} + +# Main script loop + +SCRIPTS_DIR_OLD="/config/custom-cont-init.d" +SCRIPTS_DIR="/custom-cont-init.d" +SERVICES_DIR_OLD="/config/custom-services.d" +SERVICES_DIR="/custom-services.d" + +if [ ! -d "/custom-cont-init.d" ] && [ ! -d "/custom-services.d" ]; then + # Tamper check legacy custom folders + tamper_check_legacy + process_custom_services_legacy +else + # Tamper check new custom folders + tamper_check + process_custom_services +fi + +# Run mod logic +if [[ -n "${DOCKER_MODS+x}" ]]; then + curl_check + run_mods +fi + +# Set executable bit on legacy cont-init and services built into the image and anything legacy unpacked by mods +set_legacy_executable_bits diff --git a/root/etc/cont-init.d/99-custom-scripts b/root/etc/cont-init.d/99-custom-scripts deleted file mode 100755 index e800ea46..00000000 --- a/root/etc/cont-init.d/99-custom-scripts +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/with-contenv bash -# shellcheck shell=bash - -# Directories -SCRIPTS_DIR_OLD="/config/custom-cont-init.d" -SERVICES_DIR_OLD="/config/custom-services.d" -SCRIPTS_DIR="/custom-cont-init.d" -SERVICES_DIR="/custom-services.d" - -if [[ -z "$(/bin/ls -A ${SCRIPTS_DIR} 2>/dev/null)" ]] && - [[ -z "$(/bin/ls -A ${SCRIPTS_DIR_OLD} 2>/dev/null)" ]]; then - echo "[custom-init] no custom files found, skipping..." -else - # Make sure custom init directory exists and has files in it - if [[ -e "${SCRIPTS_DIR}" ]] && [[ -n "$(/bin/ls -A ${SCRIPTS_DIR} 2>/dev/null)" ]]; then - echo "[custom-init] files found, executing" - for SCRIPT in "${SCRIPTS_DIR}"/*; do - NAME="$(basename "${SCRIPT}")" - if [[ -f "${SCRIPT}" ]]; then - echo "[custom-init] ${NAME}: executing..." - /bin/bash "${SCRIPT}" - echo "[custom-init] ${NAME}: exited $?" - elif [[ ! -f "${SCRIPT}" ]]; then - echo "[custom-init] ${NAME}: is not a file" - fi - done - fi - - if [[ -e "${SCRIPTS_DIR_OLD}" ]] && [[ -n "$(/bin/ls -A ${SCRIPTS_DIR_OLD} 2>/dev/null)" ]]; then - echo "[custom-init] files found, executing" - for SCRIPT in "${SCRIPTS_DIR_OLD}"/*; do - NAME="$(basename "${SCRIPT}")" - if [[ -f "${SCRIPT}" ]]; then - echo "[custom-init] ${NAME}: executing..." - /bin/bash "${SCRIPT}" - echo "[custom-init] ${NAME}: exited $?" - elif [[ ! -f "${SCRIPT}" ]]; then - echo "[custom-init] ${NAME}: is not a file" - fi - done - fi -fi - -if [[ -n "$(/bin/ls -A "${SCRIPTS_DIR_OLD}" 2>/dev/null)" ]] || - [[ -n "$(/bin/ls -A "${SERVICES_DIR_OLD}" 2>/dev/null)" ]]; then - cat << EOF | tee {${SCRIPTS_DIR_OLD}/README.txt,${SERVICES_DIR_OLD}/README.txt} 2>/dev/null - ******************************************************** - ******************************************************** - * * - * !!!! * - * Custom scripts or services found in legacy locations * - * !!!! * - * Please move your custom scripts and services * - * to ${SCRIPTS_DIR} and ${SERVICES_DIR} * - * respectively to ensure they continue working. * - * * - * Visit https://linuxserver.io/custom for more info. * - * * - ******************************************************** - ******************************************************** -EOF -fi -exit 0 From 654ff8d7207d563cfa1b9229702968fd7036170e Mon Sep 17 00:00:00 2001 From: TheSpad Date: Mon, 5 Sep 2022 17:43:23 +0100 Subject: [PATCH 058/124] Fix copy/paste snafu --- root/etc/cont-init.d/99-custom-files | 338 +++++---------------------- 1 file changed, 63 insertions(+), 275 deletions(-) diff --git a/root/etc/cont-init.d/99-custom-files b/root/etc/cont-init.d/99-custom-files index 97949a62..9c0e18db 100755 --- a/root/etc/cont-init.d/99-custom-files +++ b/root/etc/cont-init.d/99-custom-files @@ -1,289 +1,77 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash -# Set executable bit on cont-init and services built into the image -set_legacy_executable_bits() { - mkdir -p /etc/{cont-init.d,services.d} - chmod +x \ - /etc/cont-init.d/* \ - /etc/services.d/*/* 2>/dev/null || true -} - -tamper_check() { - #Tamper check custom service locations - if [[ -d "${SERVICES_DIR}" ]] && [[ -n "$(find ${SERVICES_DIR}/* ! -user root)" ]]; then - echo "[custom-init] **** Some of the contents of the folder '${SERVICES_DIR}' are not owned by root, which is a security risk. ****" - echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" - elif [[ -d "${SERVICES_DIR}" ]] && [[ -n "$(find ${SERVICES_DIR}/* -perm -o+w)" ]]; then - echo "[custom-init] **** Some of the contents of the folder '${SERVICES_DIR}' have write permissions for others, which is a security risk. ****" - echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" - fi - #Tamper check custom script locations - if [[ -d "${SCRIPTS_DIR}" ]] && [[ -n "$(find ${SCRIPTS_DIR}/* ! -user root)" ]]; then - echo "[custom-init] **** Some of the contents of the folder '${SCRIPTS_DIR}' are not owned by root, which is a security risk. ****" - echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" - elif [[ -d "${SCRIPTS_DIR}" ]] && [[ -n "$(find ${SCRIPTS_DIR}/* -perm -o+w)" ]]; then - echo "[custom-init] **** Some of the contents of the folder '${SCRIPTS_DIR}' have write permissions for others, which is a security risk. ****" - echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" - fi -} - -tamper_check_legacy() { - # Tamper check custom script locations - if [[ -d "${SCRIPTS_DIR_OLD}" ]] && [[ -n "$(find ${SCRIPTS_DIR_OLD} ! -user root)" ]]; then - echo "**** Potential tampering with custom scripts detected ****" - randstr=$( - tr /dev/null)" ]]; then - echo "[custom-init] removing existing custom services..." - rm -rf /etc/s6-overlay/s6-rc.d/custom-svc-* - fi - - # Make sure custom service directory exists and has files in it - if [[ -e "${SERVICES_DIR}" ]] && [[ -n "$(/bin/ls -A ${SERVICES_DIR} 2>/dev/null)" ]]; then - echo "[custom-init] Service files found in ${SERVICES_DIR}" - for SERVICE in "${SERVICES_DIR}"/*; do - NAME="$(basename "${SERVICE}")" - if [[ -f "${SERVICE}" ]]; then - echo "[custom-init] ${NAME}: service detected, copying..." - mkdir -p /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/ - cp "${SERVICE}" /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run - chmod +x /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run - echo "longrun" >/etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/type - touch /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/init-services - touch /etc/s6-overlay/s6-rc.d/user/contents.d/custom-svc-"${NAME}" - echo "[custom-init] ${NAME}: copied" - elif [[ ! -f "${SERVICE}" ]]; then - echo "[custom-init] ${NAME}: is not a file" - fi - done - else - echo "[custom-init] No custom services found, skipping..." - fi - - # Remove legacy folder if it's empty - if [[ -e "${SERVICES_DIR_OLD}" ]] && [[ -z "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then - echo "[custom-init] Legacy service folder ${SERVICES_DIR_OLD} is empty, deleting..." - rm -rf "${SERVICES_DIR_OLD}" - fi -} - -process_custom_services_legacy() { - - # Remove all existing custom services before continuing to ensure - # we aren't running anything the user may have removed - if [[ -n "$(/bin/ls -A /etc/s6-overlay/s6-rc.d/custom-svc-* 2>/dev/null)" ]]; then - echo "[custom-init] removing existing custom services..." - rm -rf /etc/s6-overlay/s6-rc.d/custom-svc-* - fi +# Directories +SCRIPTS_DIR_OLD="/config/custom-cont-init.d" +SCRIPTS_DIR="/custom-cont-init.d" +SERVICES_DIR_OLD="/config/custom-services.d" +SERVICES_DIR="/custom-services.d" - # Make sure custom service directory exists and has files in it - if [[ -e "${SERVICES_DIR_OLD}" ]] && [[ -n "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then - echo "[custom-init] Service files found in ${SERVICES_DIR_OLD}" - for SERVICE in "${SERVICES_DIR_OLD}"/*; do - NAME="$(basename "${SERVICE}")" - if [[ -f "${SERVICE}" ]]; then - echo "[custom-init] ${NAME}: service detected, copying..." - mkdir -p /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/ - cp "${SERVICE}" /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run - chmod +x /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run - echo "longrun" >/etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/type - touch /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/init-services - touch /etc/s6-overlay/s6-rc.d/user/contents.d/custom-svc-"${NAME}" - echo "[custom-init] ${NAME}: copied" - elif [[ ! -f "${SERVICE}" ]]; then - echo "[custom-init] ${NAME}: is not a file" - fi - done - else - echo "[custom-init] No custom services found, skipping..." - fi +# chown legacy folders if they exist +if [[ -e "${SCRIPTS_DIR_OLD}" ]]; then + chown -R 0:0 "${SCRIPTS_DIR_OLD}" +fi - # Remove legacy folder if it's empty - if [[ -e "${SERVICES_DIR_OLD}" ]] && [[ -z "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then - echo "[custom-init] Legacy service folder ${SERVICES_DIR_OLD} is empty, deleting..." - rm -rf "${SERVICES_DIR_OLD}" - fi -} +# chown legacy folders if they exist +if [[ -e "${SERVICES_DIR_OLD}" ]]; then + chown -R 0:0 "${SERVICES_DIR_OLD}" +fi -# Check for curl -curl_check() { - if [[ ! -f /usr/bin/curl ]] || [[ ! -f /usr/bin/jq ]]; then - echo "[mod-init] Curl/JQ was not found on this system for Docker mods installing" - if [[ -f /usr/bin/apt ]]; then - ## Ubuntu - export DEBIAN_FRONTEND="noninteractive" - apt-get update - apt-get install --no-install-recommends -y \ - curl \ - jq - elif [[ -f /sbin/apk ]]; then - # Alpine - apk add --no-cache \ - curl \ - jq +# Make sure custom init directory exists and has files in it +if [[ -e "${SCRIPTS_DIR}" ]] && [[ -n "$(/bin/ls -A ${SCRIPTS_DIR} 2>/dev/null)" ]]; then + echo "[custom-init] Files found, executing" + for SCRIPT in "${SCRIPTS_DIR}"/*; do + NAME="$(basename "${SCRIPT}")" + if [[ -f "${SCRIPT}" ]]; then + echo "[custom-init] ${NAME}: executing..." + /bin/bash "${SCRIPT}" + echo "[custom-init] ${NAME}: exited $?" + elif [[ ! -f "${SCRIPT}" ]]; then + echo "[custom-init] ${NAME}: is not a file" fi - fi -} - -# Use different filtering depending on URL -get_blob_sha() { - if [[ $1 == "ghcr" ]]; then - curl -f --retry 10 --retry-max-time 60 --retry-connrefused \ - --silent \ - --location \ - --request GET \ - --header "Authorization: Bearer $2" \ - "$3" | jq -r '.layers[0].digest' - else - curl -f --retry 10 --retry-max-time 60 --retry-connrefused \ - --silent \ - --location \ - --request GET \ - --header "Authorization: Bearer $2" \ - "$3" | jq -r '.fsLayers[0].blobSum' - fi -} + done -# Main run logic -run_mods() { - echo "[mod-init] Attempting to run Docker Modification Logic" - for DOCKER_MOD in $(echo "${DOCKER_MODS}" | tr '|' '\n'); do - # Support alternative endpoints - if [[ ${DOCKER_MOD} == ghcr.io/* ]] || [[ ${DOCKER_MOD} == linuxserver/* ]]; then - DOCKER_MOD="${DOCKER_MOD#ghcr.io/*}" - ENDPOINT="${DOCKER_MOD%%:*}" - USERNAME="${DOCKER_MOD%%/*}" - REPO="${ENDPOINT#*/}" - TAG="${DOCKER_MOD#*:}" - if [[ ${TAG} == "${DOCKER_MOD}" ]]; then - TAG="latest" - fi - FILENAME="${USERNAME}.${REPO}.${TAG}" - AUTH_URL="https://ghcr.io/token?scope=repository%3A${USERNAME}%2F${REPO}%3Apull" - MANIFEST_URL="https://ghcr.io/v2/${ENDPOINT}/manifests/${TAG}" - BLOB_URL="https://ghcr.io/v2/${ENDPOINT}/blobs/" - MODE="ghcr" - else - ENDPOINT="${DOCKER_MOD%%:*}" - USERNAME="${DOCKER_MOD%%/*}" - REPO="${ENDPOINT#*/}" - TAG="${DOCKER_MOD#*:}" - if [[ ${TAG} == "${DOCKER_MOD}" ]]; then - TAG="latest" - fi - FILENAME="${USERNAME}.${REPO}.${TAG}" - AUTH_URL="https://auth.docker.io/token?service=registry.docker.io&scope=repository:${ENDPOINT}:pull" - MANIFEST_URL="https://registry-1.docker.io/v2/${ENDPOINT}/manifests/${TAG}" - BLOB_URL="https://registry-1.docker.io/v2/${ENDPOINT}/blobs/" - MODE="dockerhub" - fi - # Kill off modification logic if any of the usernames are banned - for BANNED in $(curl -s https://raw.githubusercontent.com/linuxserver/docker-mods/master/blacklist.txt); do - if [[ "${BANNED,,}" == "${USERNAME,,}" ]]; then - if [[ -z ${RUN_BANNED_MODS+x} ]]; then - echo "[mod-init] ${DOCKER_MOD} is banned from use due to reported abuse aborting mod logic" - return - else - echo "[mod-init] You have chosen to run banned mods ${DOCKER_MOD} will be applied" - fi - fi - done - echo "[mod-init] Applying ${DOCKER_MOD} files to container" - # Get Dockerhub token for api operations - TOKEN="$( - curl -f --retry 10 --retry-max-time 60 --retry-connrefused \ - --silent \ - --header 'GET' \ - "${AUTH_URL}" | - jq -r '.token' - )" - # Determine first and only layer of image - SHALAYER=$(get_blob_sha "${MODE}" "${TOKEN}" "${MANIFEST_URL}") - # Check if we have allready applied this layer - if [[ -f "/${FILENAME}" ]] && [[ "${SHALAYER}" == "$(cat /"${FILENAME}")" ]]; then - echo "[mod-init] ${DOCKER_MOD} at ${SHALAYER} has been previously applied skipping" - else - # Download and extract layer to / - curl -f --retry 10 --retry-max-time 60 --retry-all-errors \ - --silent \ - --location \ - --request GET \ - --header "Authorization: Bearer ${TOKEN}" \ - "${BLOB_URL}${SHALAYER}" -o \ - /modtarball.tar.xz - mkdir -p /tmp/mod - tar xzf /modtarball.tar.xz -C /tmp/mod - if [[ -d /tmp/mod/etc/s6-overlay ]]; then - if [[ -d /tmp/mod/etc/cont-init.d ]]; then - rm -rf /tmp/mod/etc/cont-init.d - fi - if [[ -d /tmp/mod/etc/services.d ]]; then - rm -rf /tmp/mod/etc/services.d - fi - fi - shopt -s dotglob - cp -R /tmp/mod/* / - shopt -u dotglob - rm -rf /tmp/mod - rm -rf /modtarball.tar.xz - echo "${SHALAYER}" >"/${FILENAME}" - echo "[mod-init] ${DOCKER_MOD} applied to container" + # Remove legacy folder if it's empty + if [[ -e "${SCRIPTS_DIR}" ]] && [[ -z "$(/bin/ls -A ${SCRIPTS_DIR} 2>/dev/null)" ]]; then + echo "[custom-init] Legacy service folder ${SCRIPTS_DIR} is empty, deleting..." + rm -rf "${SCRIPTS_DIR}" + fi +elif [[ -e "${SCRIPTS_DIR_OLD}" ]] && [[ -n "$(/bin/ls -A ${SCRIPTS_DIR_OLD} 2>/dev/null)" ]]; then + echo "[custom-init] Files found, executing" + for SCRIPT in "${SCRIPTS_DIR_OLD}"/*; do + NAME="$(basename "${SCRIPT}")" + if [[ -f "${SCRIPT}" ]]; then + echo "[custom-init] ${NAME}: executing..." + /bin/bash "${SCRIPT}" + echo "[custom-init] ${NAME}: exited $?" + elif [[ ! -f "${SCRIPT}" ]]; then + echo "[custom-init] ${NAME}: is not a file" fi done -} - -# Main script loop - -SCRIPTS_DIR_OLD="/config/custom-cont-init.d" -SCRIPTS_DIR="/custom-cont-init.d" -SERVICES_DIR_OLD="/config/custom-services.d" -SERVICES_DIR="/custom-services.d" - -if [ ! -d "/custom-cont-init.d" ] && [ ! -d "/custom-services.d" ]; then - # Tamper check legacy custom folders - tamper_check_legacy - process_custom_services_legacy +elif [[ -e "${SCRIPTS_DIR_OLD}" ]] && [[ -z "$(/bin/ls -A ${SCRIPTS_DIR_OLD} 2>/dev/null)" ]]; then + echo "[custom-init] Legacy files folder ${SCRIPTS_DIR_OLD} is empty, deleting..." + rm -rf "${SCRIPTS_DIR_OLD}" else - # Tamper check new custom folders - tamper_check - process_custom_services + echo "[custom-init] No custom files found, skipping..." fi -# Run mod logic -if [[ -n "${DOCKER_MODS+x}" ]]; then - curl_check - run_mods +if [[ -n "$(/bin/ls -A "${SCRIPTS_DIR_OLD}" 2>/dev/null)" ]] || + [[ -n "$(/bin/ls -A "${SERVICES_DIR_OLD}" 2>/dev/null)" ]]; then + cat << EOF | tee {${SCRIPTS_DIR_OLD}/README.txt,${SERVICES_DIR_OLD}/README.txt} 2>/dev/null +******************************************************** +******************************************************** +* * +* !!!! * +* Custom scripts or services found in legacy locations * +* !!!! * +* Please move your custom scripts and services * +* to ${SCRIPTS_DIR} and ${SERVICES_DIR} * +* respectively to ensure they continue working. * +* * +* Visit https://linuxserver.io/custom for more info. * +* * +******************************************************** +******************************************************** +EOF fi - -# Set executable bit on legacy cont-init and services built into the image and anything legacy unpacked by mods -set_legacy_executable_bits +exit 0 From aecc9fab2c2146a16dee6cc7a93d0b92b1ddfab3 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Tue, 6 Sep 2022 11:06:27 +0100 Subject: [PATCH 059/124] Fix package install logic --- .../s6-rc.d/init-mods-package-install/run | 55 +++++++++++-------- 1 file changed, 32 insertions(+), 23 deletions(-) diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run b/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run index fb5b11d1..81987dc9 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run +++ b/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run @@ -1,33 +1,42 @@ #!/usr/bin/with-contenv bash +# shellcheck shell=bash -if [ -f "/mod-repo-packages-to-install.list" ]; then - echo "**** Installing all mod packages ****" - if [ -f /usr/bin/apt ]; then - export DEBIAN_FRONTEND="noninteractive" - apt-get update - apt-get install -y --no-install-recommends \ - $(cat /mod-repo-packages-to-install.list) - elif [ -f /sbin/apk ]; then - apk add --no-cache \ - $(cat /mod-repo-packages-to-install.list) +if [[ -f "/mod-repo-packages-to-install.list" ]]; then + IFS=' ' read -ra REPO_PACKAGES <<< "$(tr '\n' ' ' < /mod-repo-packages-to-install.list)" + if [[ ${#REPO_PACKAGES[@]} -ne 0 ]] && [[ ${REPO_PACKAGES[*]} != "" ]]; then + echo "**** Installing all mod packages ****" + if [[ -f /usr/bin/apt ]]; then + export DEBIAN_FRONTEND="noninteractive" + apt-get update + apt-get install -y --no-install-recommends \ + "${REPO_PACKAGES[@]}" + elif [[ -f /sbin/apk ]]; then + apk add --no-cache \ + "${REPO_PACKAGES[@]}" + fi fi fi -if [ -f "/mod-pip-packages-to-install.list" ]; then - echo "**** Installing all pip packages ****" - python3 -m pip install -U pip wheel setuptools - if [ -f /usr/bin/apt ]; then - PIP_ARGS="-f https://wheel-index.linuxserver.io/ubuntu/" - elif [ -f /sbin/apk ]; then - ALPINE_VER=$(grep main /etc/apk/repositories | sed 's|.*alpine/v||' | sed 's|/main.*||') - if [ "${ALPINE_VER}" = "3.14" ]; then - PIP_ARGS="-f https://wheel-index.linuxserver.io/alpine/" - else - PIP_ARGS="-f https://wheel-index.linuxserver.io/alpine-${ALPINE_VER}/" +if [[ -f "/mod-pip-packages-to-install.list" ]]; then + IFS=' ' read -ra PIP_PACKAGES <<< "$(tr '\n' ' ' < /mod-pip-packages-to-install.list)" + if [[ ${#PIP_PACKAGES[@]} -ne 0 ]] && [[ ${PIP_PACKAGES[*]} != "" ]]; then + echo "**** Installing all pip packages ****" + python3 -m pip install -U pip wheel setuptools + PIP_ARGS=() + if [[ -f /usr/bin/apt ]]; then + PIP_ARGS+=("-f" "https://wheel-index.linuxserver.io/ubuntu/") + elif [[ -f /sbin/apk ]]; then + ALPINE_VER=$(grep main /etc/apk/repositories | sed 's|.*alpine/v||' | sed 's|/main.*||') + if [[ "${ALPINE_VER}" = "3.14" ]]; then + PIP_ARGS+=("-f" "https://wheel-index.linuxserver.io/alpine/") + else + PIP_ARGS+=("-f" "https://wheel-index.linuxserver.io/alpine-${ALPINE_VER}/") + fi fi + python3 -m pip install \ + "${PIP_ARGS[@]}" \ + "${PIP_PACKAGES[@]}" fi - python3 -m pip install ${PIP_ARGS} \ - $(cat /mod-pip-packages-to-install.list) fi rm -rf \ From bcc82acd52ba22d0e25c02f8f95c085cd1ecf841 Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 11 Sep 2022 17:59:55 +0100 Subject: [PATCH 060/124] Make Jammy Fully v3 Compliant (#111) --- Dockerfile | 14 +++----- Dockerfile.aarch64 | 14 +++----- Dockerfile.armhf | 14 +++----- .../etc/s6-linux-init/skel/rc.init.patch | 11 ------ root/docker-mods | 12 +++---- root/etc/cont-init.d/01-envfile | 16 --------- root/etc/cont-init.d/01-migrations | 30 ---------------- .../dependencies.d/init-migrations | 0 .../dependencies.d/init-script-check} | 0 .../s6-rc.d/init-adduser/run} | 5 +-- root/etc/s6-overlay/s6-rc.d/init-adduser/type | 1 + root/etc/s6-overlay/s6-rc.d/init-adduser/up | 1 + .../dependencies.d/init-config | 0 .../s6-overlay/s6-rc.d/init-config-end/type | 1 + .../etc/s6-overlay/s6-rc.d/init-config-end/up | 1 + .../init-config/dependencies.d/init-os-end | 0 root/etc/s6-overlay/s6-rc.d/init-config/type | 1 + root/etc/s6-overlay/s6-rc.d/init-config/up | 1 + .../dependencies.d/init-mods-end | 0 .../s6-rc.d/init-custom-files/run} | 31 +++-------------- .../s6-overlay/s6-rc.d/init-custom-files/type | 1 + .../s6-overlay/s6-rc.d/init-custom-files/up | 1 + .../init-envfile/dependencies.d/00-legacy | 0 root/etc/s6-overlay/s6-rc.d/init-envfile/run | 17 ++++++++++ root/etc/s6-overlay/s6-rc.d/init-envfile/type | 1 + root/etc/s6-overlay/s6-rc.d/init-envfile/up | 1 + .../init-migrations/dependencies.d/00-legacy | 0 .../s6-overlay/s6-rc.d/init-migrations/run | 34 +++++++++++++++++++ .../s6-overlay/s6-rc.d/init-migrations/type | 1 + .../etc/s6-overlay/s6-rc.d/init-migrations/up | 1 + .../init-mods-end/dependencies.d/init-mods | 0 .../s6-rc.d/init-mods-package-install/run | 4 +-- .../init-mods/dependencies.d/init-config-end | 0 .../s6-rc.d/init-os-end/dependencies.d/base | 0 .../init-os-end/dependencies.d/init-adduser | 0 .../init-os-end/dependencies.d/init-envfile | 0 .../dependencies.d/init-migrations | 0 .../dependencies.d/init-script-check | 0 root/etc/s6-overlay/s6-rc.d/init-os-end/type | 1 + root/etc/s6-overlay/s6-rc.d/init-os-end/up | 1 + .../dependencies.d/00-legacy | 0 .../s6-overlay/s6-rc.d/init-script-check/run | 23 +++++++++++++ .../s6-overlay/s6-rc.d/init-script-check/type | 1 + .../s6-overlay/s6-rc.d/init-script-check/up | 1 + .../dependencies.d/init-custom-files | 0 root/etc/s6-overlay/s6-rc.d/init-services/up | 2 +- .../s6-rc.d/user/contents.d/init-adduser | 0 .../s6-rc.d/user/contents.d/init-config | 0 .../s6-rc.d/user/contents.d/init-config-end | 0 .../s6-rc.d/user/contents.d/init-custom-files | 0 .../s6-rc.d/user/contents.d/init-envfile | 0 .../s6-rc.d/user/contents.d/init-migrations | 0 .../s6-rc.d/user/contents.d/init-os-end | 0 .../s6-rc.d/user/contents.d/init-script-check | 0 .../user2/contents.d/99-ci-service-check | 0 root/usr/bin/with-contenv | 12 +++---- 56 files changed, 125 insertions(+), 130 deletions(-) delete mode 100644 patch/package/admin/s6-overlay-@VERSION@/etc/s6-linux-init/skel/rc.init.patch delete mode 100755 root/etc/cont-init.d/01-envfile delete mode 100755 root/etc/cont-init.d/01-migrations rename ci-check/99-ci-service-check => root/etc/s6-overlay/s6-rc.d/init-adduser/dependencies.d/init-migrations (100%) rename root/etc/s6-overlay/s6-rc.d/{99-ci-service-check/dependencies.d/legacy-services => init-adduser/dependencies.d/init-script-check} (100%) rename root/etc/{cont-init.d/10-adduser => s6-overlay/s6-rc.d/init-adduser/run} (95%) create mode 100644 root/etc/s6-overlay/s6-rc.d/init-adduser/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-adduser/up create mode 100644 root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-config create mode 100644 root/etc/s6-overlay/s6-rc.d/init-config-end/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-config-end/up create mode 100644 root/etc/s6-overlay/s6-rc.d/init-config/dependencies.d/init-os-end create mode 100644 root/etc/s6-overlay/s6-rc.d/init-config/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-config/up create mode 100644 root/etc/s6-overlay/s6-rc.d/init-custom-files/dependencies.d/init-mods-end rename root/etc/{cont-init.d/99-custom-files => s6-overlay/s6-rc.d/init-custom-files/run} (59%) create mode 100644 root/etc/s6-overlay/s6-rc.d/init-custom-files/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-custom-files/up create mode 100644 root/etc/s6-overlay/s6-rc.d/init-envfile/dependencies.d/00-legacy create mode 100755 root/etc/s6-overlay/s6-rc.d/init-envfile/run create mode 100644 root/etc/s6-overlay/s6-rc.d/init-envfile/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-envfile/up create mode 100644 root/etc/s6-overlay/s6-rc.d/init-migrations/dependencies.d/00-legacy create mode 100755 root/etc/s6-overlay/s6-rc.d/init-migrations/run create mode 100644 root/etc/s6-overlay/s6-rc.d/init-migrations/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-migrations/up create mode 100644 root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mods create mode 100644 root/etc/s6-overlay/s6-rc.d/init-mods/dependencies.d/init-config-end create mode 100644 root/etc/s6-overlay/s6-rc.d/init-os-end/dependencies.d/base create mode 100644 root/etc/s6-overlay/s6-rc.d/init-os-end/dependencies.d/init-adduser create mode 100644 root/etc/s6-overlay/s6-rc.d/init-os-end/dependencies.d/init-envfile create mode 100644 root/etc/s6-overlay/s6-rc.d/init-os-end/dependencies.d/init-migrations create mode 100644 root/etc/s6-overlay/s6-rc.d/init-os-end/dependencies.d/init-script-check create mode 100644 root/etc/s6-overlay/s6-rc.d/init-os-end/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-os-end/up create mode 100644 root/etc/s6-overlay/s6-rc.d/init-script-check/dependencies.d/00-legacy create mode 100755 root/etc/s6-overlay/s6-rc.d/init-script-check/run create mode 100644 root/etc/s6-overlay/s6-rc.d/init-script-check/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-script-check/up create mode 100644 root/etc/s6-overlay/s6-rc.d/init-services/dependencies.d/init-custom-files create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-adduser create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-config create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-config-end create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-custom-files create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-envfile create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-migrations create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-os-end create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-script-check create mode 100644 root/etc/s6-overlay/s6-rc.d/user2/contents.d/99-ci-service-check diff --git a/Dockerfile b/Dockerfile index 159c72f3..7f57da85 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,6 @@ RUN \ apk add --no-cache \ bash \ curl \ - patch \ tar \ tzdata \ xz @@ -25,7 +24,7 @@ RUN \ /root-out # set version for s6 overlay -ARG S6_OVERLAY_VERSION="3.1.0.1" +ARG S6_OVERLAY_VERSION="3.1.2.1" ARG S6_OVERLAY_ARCH="x86_64" # add s6 overlay @@ -40,13 +39,6 @@ RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz /tmp RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz -# copy ci-checks -COPY ci-check/ /root-out/package/admin/s6-overlay-${S6_OVERLAY_VERSION}/etc/s6-rc/sources/top/contents.d - -# patch cont-init for docker-mods -COPY patch/ /tmp/patch -RUN patch -u /root-out/package/admin/s6-overlay-${S6_OVERLAY_VERSION}/etc/s6-linux-init/skel/rc.init -i /tmp/patch/package/admin/s6-overlay-@VERSION@/etc/s6-linux-init/skel/rc.init.patch - # Runtime stage FROM scratch COPY --from=rootfs-stage /root-out/ / @@ -61,7 +53,9 @@ ENV HOME="/root" \ LANGUAGE="en_US.UTF-8" \ LANG="en_US.UTF-8" \ TERM="xterm" \ -S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" +S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \ +S6_VERBOSITY=1 \ +S6_STAGE2_HOOK=/docker-mods # copy sources COPY sources.list /etc/apt/ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index c6421147..59e0e788 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -9,7 +9,6 @@ RUN \ apk add --no-cache \ bash \ curl \ - patch \ tar \ tzdata \ xz @@ -25,7 +24,7 @@ RUN \ /root-out # set version for s6 overlay -ARG S6_OVERLAY_VERSION="3.1.0.1" +ARG S6_OVERLAY_VERSION="3.1.2.1" ARG S6_OVERLAY_ARCH="aarch64" # add s6 overlay @@ -40,13 +39,6 @@ RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz /tmp RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz -# copy ci-checks -COPY ci-check/ /root-out/package/admin/s6-overlay-${S6_OVERLAY_VERSION}/etc/s6-rc/sources/top/contents.d - -# patch cont-init for docker-mods -COPY patch/ /tmp/patch -RUN patch -u /root-out/package/admin/s6-overlay-${S6_OVERLAY_VERSION}/etc/s6-linux-init/skel/rc.init -i /tmp/patch/package/admin/s6-overlay-@VERSION@/etc/s6-linux-init/skel/rc.init.patch - # Runtime stage FROM scratch COPY --from=rootfs-stage /root-out/ / @@ -61,7 +53,9 @@ ENV HOME="/root" \ LANGUAGE="en_US.UTF-8" \ LANG="en_US.UTF-8" \ TERM="xterm" \ -S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" +S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \ +S6_VERBOSITY=1 \ +S6_STAGE2_HOOK=/docker-mods # copy sources COPY sources.list.arm /etc/apt/sources.list diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 12c60816..5b648b48 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -9,7 +9,6 @@ RUN \ apk add --no-cache \ bash \ curl \ - patch \ tar \ tzdata \ xz @@ -25,7 +24,7 @@ RUN \ /root-out # set version for s6 overlay -ARG S6_OVERLAY_VERSION="3.1.0.1" +ARG S6_OVERLAY_VERSION="3.1.2.1" ARG S6_OVERLAY_ARCH="armhf" # add s6 overlay @@ -40,13 +39,6 @@ RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz /tmp RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz -# copy ci-checks -COPY ci-check/ /root-out/package/admin/s6-overlay-${S6_OVERLAY_VERSION}/etc/s6-rc/sources/top/contents.d - -# patch cont-init for docker-mods -COPY patch/ /tmp/patch -RUN patch -u /root-out/package/admin/s6-overlay-${S6_OVERLAY_VERSION}/etc/s6-linux-init/skel/rc.init -i /tmp/patch/package/admin/s6-overlay-@VERSION@/etc/s6-linux-init/skel/rc.init.patch - # Runtime stage FROM scratch COPY --from=rootfs-stage /root-out/ / @@ -61,7 +53,9 @@ ENV HOME="/root" \ LANGUAGE="en_US.UTF-8" \ LANG="en_US.UTF-8" \ TERM="xterm" \ -S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" +S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \ +S6_VERBOSITY=1 \ +S6_STAGE2_HOOK=/docker-mods # copy sources COPY sources.list.arm /etc/apt/sources.list diff --git a/patch/package/admin/s6-overlay-@VERSION@/etc/s6-linux-init/skel/rc.init.patch b/patch/package/admin/s6-overlay-@VERSION@/etc/s6-linux-init/skel/rc.init.patch deleted file mode 100644 index b01a7f02..00000000 --- a/patch/package/admin/s6-overlay-@VERSION@/etc/s6-linux-init/skel/rc.init.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rc.init 2022-05-20 17:41:11.195721000 -0500 -+++ rc.init.patched 2022-05-20 17:41:37.646586700 -0500 -@@ -6,6 +6,8 @@ - s6-chmod 0755 /run/s6/container_environment - fi - -+/docker-mods -+ - if profile=`printcontenv S6_RUNTIME_PROFILE` ; then - etc="/etc/cont-profile.d/$profile" - else diff --git a/root/docker-mods b/root/docker-mods index 97949a62..76f56508 100755 --- a/root/docker-mods +++ b/root/docker-mods @@ -1,6 +1,11 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash +SCRIPTS_DIR_OLD="/config/custom-cont-init.d" +SCRIPTS_DIR="/custom-cont-init.d" +SERVICES_DIR_OLD="/config/custom-services.d" +SERVICES_DIR="/custom-services.d" + # Set executable bit on cont-init and services built into the image set_legacy_executable_bits() { mkdir -p /etc/{cont-init.d,services.d} @@ -31,7 +36,7 @@ tamper_check() { tamper_check_legacy() { # Tamper check custom script locations if [[ -d "${SCRIPTS_DIR_OLD}" ]] && [[ -n "$(find ${SCRIPTS_DIR_OLD} ! -user root)" ]]; then - echo "**** Potential tampering with custom scripts detected ****" + echo "[custom-init] **** Potential tampering with custom scripts detected ****" randstr=$( tr ${FILESTRIP} - echo "[env-init] ${FILESTRIP##*/} set from ${FILENAME##*/}" - else - echo "[env-init] cannot find secret in ${FILENAME##*/}" - fi - fi - done -fi diff --git a/root/etc/cont-init.d/01-migrations b/root/etc/cont-init.d/01-migrations deleted file mode 100755 index aaf084ae..00000000 --- a/root/etc/cont-init.d/01-migrations +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash - -MIGRATIONS_DIR="/migrations" -MIGRATIONS_HISTORY="/config/.migrations" - -echo "[migrations] started" - -if [[ ! -d ${MIGRATIONS_DIR} ]]; then - echo "[migrations] no migrations found" - exit -fi - -for MIGRATION in $(find ${MIGRATIONS_DIR}/* | sort -n); do - NAME="$(basename "${MIGRATION}")" - if [[ -f ${MIGRATIONS_HISTORY} ]] && grep -Fxq "${NAME}" ${MIGRATIONS_HISTORY}; then - echo "[migrations] ${NAME}: skipped" - continue - fi - echo "[migrations] ${NAME}: executing..." - chmod +x "${MIGRATION}" - EXIT_CODE=$(/bin/bash "${MIGRATION}"; echo $?) - if [[ ${EXIT_CODE} -ne 0 ]]; then - echo "[migrations] ${NAME}: failed with exit code ${EXIT_CODE}, contact support" - exit "${EXIT_CODE}" - fi - echo "${NAME}" >> ${MIGRATIONS_HISTORY} - echo "[migrations] ${NAME}: succeeded" -done - -echo "[migrations] done" diff --git a/ci-check/99-ci-service-check b/root/etc/s6-overlay/s6-rc.d/init-adduser/dependencies.d/init-migrations similarity index 100% rename from ci-check/99-ci-service-check rename to root/etc/s6-overlay/s6-rc.d/init-adduser/dependencies.d/init-migrations diff --git a/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/legacy-services b/root/etc/s6-overlay/s6-rc.d/init-adduser/dependencies.d/init-script-check similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/legacy-services rename to root/etc/s6-overlay/s6-rc.d/init-adduser/dependencies.d/init-script-check diff --git a/root/etc/cont-init.d/10-adduser b/root/etc/s6-overlay/s6-rc.d/init-adduser/run similarity index 95% rename from root/etc/cont-init.d/10-adduser rename to root/etc/s6-overlay/s6-rc.d/init-adduser/run index 1cbae76b..a619c4fb 100755 --- a/root/etc/cont-init.d/10-adduser +++ b/root/etc/s6-overlay/s6-rc.d/init-adduser/run @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bash +# shellcheck shell=bash PUID=${PUID:-911} PGID=${PGID:-911} @@ -37,7 +38,7 @@ User gid: $(id -g abc) time32="$(date +%Y)" if [[ "${time32}" == "1970" || "${time32}" == "1969" ]] && [ "$(uname -m)" == "armv7l" ]; then - echo ' + echo ' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Your DockerHost is running an outdated version of libseccomp @@ -48,7 +49,7 @@ Apps will not behave correctly without this @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ' -sleep infinity + sleep infinity fi chown abc:abc /app diff --git a/root/etc/s6-overlay/s6-rc.d/init-adduser/type b/root/etc/s6-overlay/s6-rc.d/init-adduser/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-adduser/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-adduser/up b/root/etc/s6-overlay/s6-rc.d/init-adduser/up new file mode 100644 index 00000000..b8522da3 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-adduser/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-adduser/run diff --git a/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-config b/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-config new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/init-config-end/type b/root/etc/s6-overlay/s6-rc.d/init-config-end/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-config-end/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-config-end/up b/root/etc/s6-overlay/s6-rc.d/init-config-end/up new file mode 100644 index 00000000..c329423e --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-config-end/up @@ -0,0 +1 @@ +# This file doesn't do anything, it's just the end of the downstream image init process diff --git a/root/etc/s6-overlay/s6-rc.d/init-config/dependencies.d/init-os-end b/root/etc/s6-overlay/s6-rc.d/init-config/dependencies.d/init-os-end new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/init-config/type b/root/etc/s6-overlay/s6-rc.d/init-config/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-config/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-config/up b/root/etc/s6-overlay/s6-rc.d/init-config/up new file mode 100644 index 00000000..e80acfe6 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-config/up @@ -0,0 +1 @@ +# This file doesn't do anything, it's just the start of the downstream image init process diff --git a/root/etc/s6-overlay/s6-rc.d/init-custom-files/dependencies.d/init-mods-end b/root/etc/s6-overlay/s6-rc.d/init-custom-files/dependencies.d/init-mods-end new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/cont-init.d/99-custom-files b/root/etc/s6-overlay/s6-rc.d/init-custom-files/run similarity index 59% rename from root/etc/cont-init.d/99-custom-files rename to root/etc/s6-overlay/s6-rc.d/init-custom-files/run index 9c0e18db..86ca3032 100755 --- a/root/etc/cont-init.d/99-custom-files +++ b/root/etc/s6-overlay/s6-rc.d/init-custom-files/run @@ -4,8 +4,8 @@ # Directories SCRIPTS_DIR_OLD="/config/custom-cont-init.d" SCRIPTS_DIR="/custom-cont-init.d" + SERVICES_DIR_OLD="/config/custom-services.d" -SERVICES_DIR="/custom-services.d" # chown legacy folders if they exist if [[ -e "${SCRIPTS_DIR_OLD}" ]]; then @@ -32,10 +32,10 @@ if [[ -e "${SCRIPTS_DIR}" ]] && [[ -n "$(/bin/ls -A ${SCRIPTS_DIR} 2>/dev/null)" done # Remove legacy folder if it's empty - if [[ -e "${SCRIPTS_DIR}" ]] && [[ -z "$(/bin/ls -A ${SCRIPTS_DIR} 2>/dev/null)" ]]; then - echo "[custom-init] Legacy service folder ${SCRIPTS_DIR} is empty, deleting..." - rm -rf "${SCRIPTS_DIR}" - fi + if [[ -e "${SCRIPTS_DIR_OLD}" ]] && [[ -z "$(/bin/ls -A ${SCRIPTS_DIR_OLD} 2>/dev/null)" ]]; then + echo "[custom-init] Legacy files folder ${SCRIPTS_DIR_OLD} is empty, deleting..." + rm -rf "${SCRIPTS_DIR_OLD}" + fi elif [[ -e "${SCRIPTS_DIR_OLD}" ]] && [[ -n "$(/bin/ls -A ${SCRIPTS_DIR_OLD} 2>/dev/null)" ]]; then echo "[custom-init] Files found, executing" for SCRIPT in "${SCRIPTS_DIR_OLD}"/*; do @@ -54,24 +54,3 @@ elif [[ -e "${SCRIPTS_DIR_OLD}" ]] && [[ -z "$(/bin/ls -A ${SCRIPTS_DIR_OLD} 2>/ else echo "[custom-init] No custom files found, skipping..." fi - -if [[ -n "$(/bin/ls -A "${SCRIPTS_DIR_OLD}" 2>/dev/null)" ]] || - [[ -n "$(/bin/ls -A "${SERVICES_DIR_OLD}" 2>/dev/null)" ]]; then - cat << EOF | tee {${SCRIPTS_DIR_OLD}/README.txt,${SERVICES_DIR_OLD}/README.txt} 2>/dev/null -******************************************************** -******************************************************** -* * -* !!!! * -* Custom scripts or services found in legacy locations * -* !!!! * -* Please move your custom scripts and services * -* to ${SCRIPTS_DIR} and ${SERVICES_DIR} * -* respectively to ensure they continue working. * -* * -* Visit https://linuxserver.io/custom for more info. * -* * -******************************************************** -******************************************************** -EOF -fi -exit 0 diff --git a/root/etc/s6-overlay/s6-rc.d/init-custom-files/type b/root/etc/s6-overlay/s6-rc.d/init-custom-files/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-custom-files/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-custom-files/up b/root/etc/s6-overlay/s6-rc.d/init-custom-files/up new file mode 100644 index 00000000..28bf3185 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-custom-files/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-custom-files/run diff --git a/root/etc/s6-overlay/s6-rc.d/init-envfile/dependencies.d/00-legacy b/root/etc/s6-overlay/s6-rc.d/init-envfile/dependencies.d/00-legacy new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/init-envfile/run b/root/etc/s6-overlay/s6-rc.d/init-envfile/run new file mode 100755 index 00000000..3040a92f --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-envfile/run @@ -0,0 +1,17 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +if find /var/run/s6/container_environment/*"FILE__"* -maxdepth 1 > /dev/null 2>&1; then + for FILENAME in /var/run/s6/container_environment/*; do + if [[ "${FILENAME##*/}" == "FILE__"* ]]; then + SECRETFILE=$(cat "${FILENAME}") + if [[ -f ${SECRETFILE} ]]; then + FILESTRIP=${FILENAME//FILE__/} + cat "${SECRETFILE}" >"${FILESTRIP}" + echo "[env-init] ${FILESTRIP##*/} set from ${FILENAME##*/}" + else + echo "[env-init] cannot find secret in ${FILENAME##*/}" + fi + fi + done +fi diff --git a/root/etc/s6-overlay/s6-rc.d/init-envfile/type b/root/etc/s6-overlay/s6-rc.d/init-envfile/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-envfile/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-envfile/up b/root/etc/s6-overlay/s6-rc.d/init-envfile/up new file mode 100644 index 00000000..b2b4fb8c --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-envfile/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-envfile/run diff --git a/root/etc/s6-overlay/s6-rc.d/init-migrations/dependencies.d/00-legacy b/root/etc/s6-overlay/s6-rc.d/init-migrations/dependencies.d/00-legacy new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/init-migrations/run b/root/etc/s6-overlay/s6-rc.d/init-migrations/run new file mode 100755 index 00000000..ff0874ba --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-migrations/run @@ -0,0 +1,34 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +MIGRATIONS_DIR="/migrations" +MIGRATIONS_HISTORY="/config/.migrations" + +echo "[migrations] started" + +if [[ ! -d ${MIGRATIONS_DIR} ]]; then + echo "[migrations] no migrations found" + exit +fi + +for MIGRATION in $(find ${MIGRATIONS_DIR}/* | sort -n); do + NAME="$(basename "${MIGRATION}")" + if [[ -f ${MIGRATIONS_HISTORY} ]] && grep -Fxq "${NAME}" ${MIGRATIONS_HISTORY}; then + echo "[migrations] ${NAME}: skipped" + continue + fi + echo "[migrations] ${NAME}: executing..." + chmod +x "${MIGRATION}" + EXIT_CODE=$( + /bin/bash "${MIGRATION}" + echo $? + ) + if [[ ${EXIT_CODE} -ne 0 ]]; then + echo "[migrations] ${NAME}: failed with exit code ${EXIT_CODE}, contact support" + exit "${EXIT_CODE}" + fi + echo "${NAME}" >>${MIGRATIONS_HISTORY} + echo "[migrations] ${NAME}: succeeded" +done + +echo "[migrations] done" diff --git a/root/etc/s6-overlay/s6-rc.d/init-migrations/type b/root/etc/s6-overlay/s6-rc.d/init-migrations/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-migrations/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-migrations/up b/root/etc/s6-overlay/s6-rc.d/init-migrations/up new file mode 100644 index 00000000..7c4cbcf6 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-migrations/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-migrations/run diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mods b/root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mods new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run b/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run index 81987dc9..90b4b2e8 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run +++ b/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run @@ -4,7 +4,7 @@ if [[ -f "/mod-repo-packages-to-install.list" ]]; then IFS=' ' read -ra REPO_PACKAGES <<< "$(tr '\n' ' ' < /mod-repo-packages-to-install.list)" if [[ ${#REPO_PACKAGES[@]} -ne 0 ]] && [[ ${REPO_PACKAGES[*]} != "" ]]; then - echo "**** Installing all mod packages ****" + echo "[mod-init] **** Installing all mod packages ****" if [[ -f /usr/bin/apt ]]; then export DEBIAN_FRONTEND="noninteractive" apt-get update @@ -20,7 +20,7 @@ fi if [[ -f "/mod-pip-packages-to-install.list" ]]; then IFS=' ' read -ra PIP_PACKAGES <<< "$(tr '\n' ' ' < /mod-pip-packages-to-install.list)" if [[ ${#PIP_PACKAGES[@]} -ne 0 ]] && [[ ${PIP_PACKAGES[*]} != "" ]]; then - echo "**** Installing all pip packages ****" + echo "[mod-init] **** Installing all pip packages ****" python3 -m pip install -U pip wheel setuptools PIP_ARGS=() if [[ -f /usr/bin/apt ]]; then diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods/dependencies.d/init-config-end b/root/etc/s6-overlay/s6-rc.d/init-mods/dependencies.d/init-config-end new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/init-os-end/dependencies.d/base b/root/etc/s6-overlay/s6-rc.d/init-os-end/dependencies.d/base new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/init-os-end/dependencies.d/init-adduser b/root/etc/s6-overlay/s6-rc.d/init-os-end/dependencies.d/init-adduser new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/init-os-end/dependencies.d/init-envfile b/root/etc/s6-overlay/s6-rc.d/init-os-end/dependencies.d/init-envfile new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/init-os-end/dependencies.d/init-migrations b/root/etc/s6-overlay/s6-rc.d/init-os-end/dependencies.d/init-migrations new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/init-os-end/dependencies.d/init-script-check b/root/etc/s6-overlay/s6-rc.d/init-os-end/dependencies.d/init-script-check new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/init-os-end/type b/root/etc/s6-overlay/s6-rc.d/init-os-end/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-os-end/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-os-end/up b/root/etc/s6-overlay/s6-rc.d/init-os-end/up new file mode 100644 index 00000000..092149d5 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-os-end/up @@ -0,0 +1 @@ +# This file doesn't do anything, it's just the end of the mod init process diff --git a/root/etc/s6-overlay/s6-rc.d/init-script-check/dependencies.d/00-legacy b/root/etc/s6-overlay/s6-rc.d/init-script-check/dependencies.d/00-legacy new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/init-script-check/run b/root/etc/s6-overlay/s6-rc.d/init-script-check/run new file mode 100755 index 00000000..20c2c43b --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-script-check/run @@ -0,0 +1,23 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +if [[ -n "$(/bin/ls -A "/config/custom-cont-init.d" 2>/dev/null)" ]] || + [[ -n "$(/bin/ls -A "/config/custom-services.d" 2>/dev/null)" ]]; then + cat << EOF | tee /config/custom-cont-init.d/README.txt 2>/dev/null +******************************************************** +******************************************************** +* * +* !!!! * +* Custom scripts or services found in legacy locations * +* !!!! * +* Please move your custom scripts and services * +* to /custom-cont-init.d and /custom-services.d * +* respectively to ensure they continue working. * +* * +* Visit https://linuxserver.io/custom for more info. * +* * +******************************************************** +******************************************************** +EOF +fi +exit 0 diff --git a/root/etc/s6-overlay/s6-rc.d/init-script-check/type b/root/etc/s6-overlay/s6-rc.d/init-script-check/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-script-check/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-script-check/up b/root/etc/s6-overlay/s6-rc.d/init-script-check/up new file mode 100644 index 00000000..a7c155ab --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-script-check/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-script-check/run diff --git a/root/etc/s6-overlay/s6-rc.d/init-services/dependencies.d/init-custom-files b/root/etc/s6-overlay/s6-rc.d/init-services/dependencies.d/init-custom-files new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/init-services/up b/root/etc/s6-overlay/s6-rc.d/init-services/up index cd262c7b..a7c3905b 100644 --- a/root/etc/s6-overlay/s6-rc.d/init-services/up +++ b/root/etc/s6-overlay/s6-rc.d/init-services/up @@ -1 +1 @@ -# This file doesn't do anything, it's just the start of the service init process +# This file doesn't do anything, it just signals that services can start diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-adduser b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-adduser new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-config b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-config new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-config-end b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-config-end new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-custom-files b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-custom-files new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-envfile b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-envfile new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-migrations b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-migrations new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-os-end b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-os-end new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-script-check b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-script-check new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/user2/contents.d/99-ci-service-check b/root/etc/s6-overlay/s6-rc.d/user2/contents.d/99-ci-service-check new file mode 100644 index 00000000..e69de29b diff --git a/root/usr/bin/with-contenv b/root/usr/bin/with-contenv index 212d9089..e47468c4 100755 --- a/root/usr/bin/with-contenv +++ b/root/usr/bin/with-contenv @@ -1,9 +1,9 @@ -#! /bin/bash +#!/bin/bash -if [[ -f /var/run/s6/container_environment/UMASK ]] && \ - { [[ "$(pwdx $$)" =~ "/run/s6/legacy-services/" ]] || \ - [[ "$(pwdx $$)" =~ "/run/s6/services/" ]] || \ - [[ "$(pwdx $$)" =~ "/servicedirs/svc-" ]]; }; then - umask $(cat /var/run/s6/container_environment/UMASK) +if [[ -f /var/run/s6/container_environment/UMASK ]] && + { [[ "$(pwdx $$)" =~ "/run/s6/legacy-services/" ]] || + [[ "$(pwdx $$)" =~ "/run/s6/services/" ]] || + [[ "$(pwdx $$)" =~ "/servicedirs/svc-" ]]; }; then + umask "$(cat /var/run/s6/container_environment/UMASK)" fi exec /command/with-contenv "$@" From 93b708c10b888105f63808ba10fe0f033704eba8 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Tue, 13 Sep 2022 11:01:01 +0100 Subject: [PATCH 061/124] Remove custom svc from user bundle --- root/docker-mods | 1 + 1 file changed, 1 insertion(+) diff --git a/root/docker-mods b/root/docker-mods index 76f56508..741b321a 100755 --- a/root/docker-mods +++ b/root/docker-mods @@ -71,6 +71,7 @@ process_custom_services() { if [[ -n "$(/bin/ls -A /etc/s6-overlay/s6-rc.d/custom-svc-* 2>/dev/null)" ]]; then echo "[custom-init] removing existing custom services..." rm -rf /etc/s6-overlay/s6-rc.d/custom-svc-* + rm /etc/s6-overlay/s6-rc.d/user/contents.d/custom-svc-* fi # Make sure custom service directory exists and has files in it From 6fa506a5ad65e4e13c659dcb0c674c837b90407c Mon Sep 17 00:00:00 2001 From: TheSpad Date: Tue, 13 Sep 2022 11:12:38 +0100 Subject: [PATCH 062/124] Fix errors if custom dir is mounted but empty --- root/docker-mods | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/root/docker-mods b/root/docker-mods index 741b321a..dbfa6f60 100755 --- a/root/docker-mods +++ b/root/docker-mods @@ -16,18 +16,18 @@ set_legacy_executable_bits() { tamper_check() { #Tamper check custom service locations - if [[ -d "${SERVICES_DIR}" ]] && [[ -n "$(find ${SERVICES_DIR}/* ! -user root)" ]]; then + if [[ -d "${SERVICES_DIR}" ]] && [[ -n "$(find ${SERVICES_DIR}/* ! -user root 2>/dev/null)" ]]; then echo "[custom-init] **** Some of the contents of the folder '${SERVICES_DIR}' are not owned by root, which is a security risk. ****" echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" - elif [[ -d "${SERVICES_DIR}" ]] && [[ -n "$(find ${SERVICES_DIR}/* -perm -o+w)" ]]; then + elif [[ -d "${SERVICES_DIR}" ]] && [[ -n "$(find ${SERVICES_DIR}/* -perm -o+w 2>/dev/null)" ]]; then echo "[custom-init] **** Some of the contents of the folder '${SERVICES_DIR}' have write permissions for others, which is a security risk. ****" echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" fi #Tamper check custom script locations - if [[ -d "${SCRIPTS_DIR}" ]] && [[ -n "$(find ${SCRIPTS_DIR}/* ! -user root)" ]]; then + if [[ -d "${SCRIPTS_DIR}" ]] && [[ -n "$(find ${SCRIPTS_DIR}/* ! -user root 2>/dev/null)" ]]; then echo "[custom-init] **** Some of the contents of the folder '${SCRIPTS_DIR}' are not owned by root, which is a security risk. ****" echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" - elif [[ -d "${SCRIPTS_DIR}" ]] && [[ -n "$(find ${SCRIPTS_DIR}/* -perm -o+w)" ]]; then + elif [[ -d "${SCRIPTS_DIR}" ]] && [[ -n "$(find ${SCRIPTS_DIR}/* -perm -o+w 2>/dev/null)" ]]; then echo "[custom-init] **** Some of the contents of the folder '${SCRIPTS_DIR}' have write permissions for others, which is a security risk. ****" echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" fi @@ -35,7 +35,7 @@ tamper_check() { tamper_check_legacy() { # Tamper check custom script locations - if [[ -d "${SCRIPTS_DIR_OLD}" ]] && [[ -n "$(find ${SCRIPTS_DIR_OLD} ! -user root)" ]]; then + if [[ -d "${SCRIPTS_DIR_OLD}" ]] && [[ -n "$(find ${SCRIPTS_DIR_OLD} ! -user root 2>/dev/null)" ]]; then echo "[custom-init] **** Potential tampering with custom scripts detected ****" randstr=$( tr /dev/null)" ]]; then echo "[custom-init] **** The folder '${SCRIPTS_DIR_OLD}' or some of its contents have write permissions for others, which is a security risk. ****" echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" fi # Tamper check custom service locations - if [[ -d "${SERVICES_DIR_OLD}" ]] && [[ -n "$(find ${SERVICES_DIR_OLD} ! -user root)" ]]; then + if [[ -d "${SERVICES_DIR_OLD}" ]] && [[ -n "$(find ${SERVICES_DIR_OLD} ! -user root 2>/dev/null)" ]]; then echo "[custom-init] **** Potential tampering with custom scripts detected ****" randstr=$( tr /dev/null)" ]]; then echo "[custom-init] **** The folder '${SERVICES_DIR_OLD}' or some of its contents have write permissions for others, which is a security risk. ****" echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" fi From dbfeb9c47886ac9416793dac10d8f720abcc622a Mon Sep 17 00:00:00 2001 From: TheSpad Date: Tue, 13 Sep 2022 11:19:09 +0100 Subject: [PATCH 063/124] Add user bundle removal to legacy block too --- root/docker-mods | 1 + 1 file changed, 1 insertion(+) diff --git a/root/docker-mods b/root/docker-mods index dbfa6f60..98125dd7 100755 --- a/root/docker-mods +++ b/root/docker-mods @@ -110,6 +110,7 @@ process_custom_services_legacy() { if [[ -n "$(/bin/ls -A /etc/s6-overlay/s6-rc.d/custom-svc-* 2>/dev/null)" ]]; then echo "[custom-init] removing existing custom services..." rm -rf /etc/s6-overlay/s6-rc.d/custom-svc-* + rm /etc/s6-overlay/s6-rc.d/user/contents.d/custom-svc-* fi # Make sure custom service directory exists and has files in it From 378ab6c97ce2f71469a5b67af3aa185d7ceea9b5 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 13 Sep 2022 07:12:29 -0500 Subject: [PATCH 064/124] 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 5273ca3e..40a8c68f 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -133,4 +133,4 @@ tzdata2022c-0ubuntu0.22.04.0 ubuntu-keyring2021.03.26 usrmerge25ubuntu2 util-linux2.37.2-4ubuntu3 -zlib1g1:1.2.11.dfsg-2ubuntu9 +zlib1g1:1.2.11.dfsg-2ubuntu9.1 From 2e906c8dfd6589f97dbc5d6015f5d63cc68def20 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 20 Sep 2022 00:55:51 -0500 Subject: [PATCH 065/124] Bot Updating Templated Files --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index bf0ead64..00f613fc 100755 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -673,7 +673,7 @@ pipeline { -e DO_REGION="ams3" \ -e DO_BUCKET="lsio-ci" \ -t ghcr.io/linuxserver/ci:latest \ - python /ci/ci.py''' + python3 test_build.py''' } } } From 6db649afb4b3416cc0e0ab00c5af0ec4224d2cf1 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 20 Sep 2022 00:59:41 -0500 Subject: [PATCH 066/124] 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 40a8c68f..50f931e7 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -16,7 +16,7 @@ dirmngr2.2.27-3ubuntu2.1 dpkg1.21.1ubuntu2.1 e2fsprogs1.46.5-2ubuntu1.1 findutils4.8.0-1ubuntu3 -gcc-12-base12-20220319-1ubuntu1 +gcc-12-base12.1.0-2ubuntu1~22.04 gnupg2.2.27-3ubuntu2.1 gnupg-l10n2.2.27-3ubuntu2.1 gnupg-utils2.2.27-3ubuntu2.1 @@ -51,7 +51,7 @@ libdb5.35.3.28+dfsg1-0.8ubuntu3 libdebconfclient00.261ubuntu1 libext2fs21.46.5-2ubuntu1.1 libffi83.4.2-4 -libgcc-s112-20220319-1ubuntu1 +libgcc-s112.1.0-2ubuntu1~22.04 libgcrypt201.9.4-3ubuntu3 libgmp102:6.2.1+dfsg-3ubuntu1 libgnutls303.7.3-4ubuntu1.1 @@ -99,7 +99,7 @@ libsqlite3-03.37.2-2 libss21.46.5-2ubuntu1.1 libssh-40.9.6-2build1 libssl33.0.2-0ubuntu1.6 -libstdc++612-20220319-1ubuntu1 +libstdc++612.1.0-2ubuntu1~22.04 libsystemd0249.11-0ubuntu3.4 libtasn1-64.18.0-4build1 libtinfo66.3-2 From 56dcc88aa883fb6394a4df60f5e4b95ccd1cfbb4 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Thu, 22 Sep 2022 21:04:24 +0100 Subject: [PATCH 067/124] CI oneshot should depend on legacy-services --- .../99-ci-service-check/dependencies.d/{base => legacy-services} | 0 .../s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/user | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/{base => legacy-services} (100%) delete mode 100644 root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/user diff --git a/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/base b/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/legacy-services similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/base rename to root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/legacy-services diff --git a/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/user b/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/user deleted file mode 100644 index e69de29b..00000000 From 321b69e15688ccd998f0d3654d186e13ecab0fa8 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Fri, 23 Sep 2022 15:56:53 +0200 Subject: [PATCH 068/124] 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 50f931e7..afc746ad 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -28,7 +28,7 @@ gpgv2.2.27-3ubuntu2.1 gpg-wks-client2.2.27-3ubuntu2.1 gpg-wks-server2.2.27-3ubuntu2.1 grep3.7-1build1 -gzip1.10-4ubuntu4 +gzip1.10-4ubuntu4.1 hostname3.23ubuntu2 init-system-helpers1.62 libacl12.3.1-1 @@ -80,7 +80,7 @@ libpam0g1.4.0-11ubuntu2 libpam-modules1.4.0-11ubuntu2 libpam-modules-bin1.4.0-11ubuntu2 libpam-runtime1.4.0-11ubuntu2 -libpcre2-8-010.39-3build1 +libpcre2-8-010.39-3ubuntu0.1 libpcre32:8.39-13ubuntu0.22.04.1 libprocps82:3.3.17-6ubuntu2 libpsl50.21.0-1.2build2 @@ -100,12 +100,12 @@ libss21.46.5-2ubuntu1.1 libssh-40.9.6-2build1 libssl33.0.2-0ubuntu1.6 libstdc++612.1.0-2ubuntu1~22.04 -libsystemd0249.11-0ubuntu3.4 +libsystemd0249.11-0ubuntu3.6 libtasn1-64.18.0-4build1 libtinfo66.3-2 libtirpc31.3.2-2ubuntu0.1 libtirpc-common1.3.2-2ubuntu0.1 -libudev1249.11-0ubuntu3.4 +libudev1249.11-0ubuntu3.6 libunistring21.0-1 libuuid12.37.2-4ubuntu3 libxxhash00.8.1-1 From 3d93f9289aaca6daa253743d9a7b234c4250af97 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 4 Oct 2022 00:32:49 -0500 Subject: [PATCH 069/124] 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 afc746ad..7ab8fcf4 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,6 +1,6 @@ adduser3.118ubuntu5 -apt2.4.7 -apt-utils2.4.7 +apt2.4.8 +apt-utils2.4.8 base-files12ubuntu4.2 base-passwd3.5.52build1 bash5.1-6ubuntu1 @@ -32,7 +32,7 @@ gzip1.10-4ubuntu4.1 hostname3.23ubuntu2 init-system-helpers1.62 libacl12.3.1-1 -libapt-pkg6.02.4.7 +libapt-pkg6.02.4.8 libassuan02.5.5-1build1 libattr11:2.5.1-1build1 libaudit11:3.0.7-1build1 From 920099556ea2528717f669bf0c915e9676bb582f Mon Sep 17 00:00:00 2001 From: TheSpad Date: Wed, 5 Oct 2022 18:01:03 +0100 Subject: [PATCH 070/124] Pull docker-mods from repo, install curl/jq/netcat --- Dockerfile | 6 + Dockerfile.aarch64 | 6 + Dockerfile.armhf | 6 + root/docker-mods | 291 ------------------- root/etc/s6-overlay/s6-rc.d/init-envfile/run | 4 +- root/usr/bin/with-contenv | 4 +- 6 files changed, 22 insertions(+), 295 deletions(-) delete mode 100755 root/docker-mods diff --git a/Dockerfile b/Dockerfile index 7f57da85..39a637f8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -44,9 +44,12 @@ FROM scratch COPY --from=rootfs-stage /root-out/ / ARG BUILD_DATE ARG VERSION +ARG MODS_VERSION="v3" LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="TheLamer" +ADD "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods" + # set environment variables ARG DEBIAN_FRONTEND="noninteractive" ENV HOME="/root" \ @@ -102,6 +105,8 @@ RUN \ apt-get install -y \ curl \ gnupg \ + jq \ + netcat \ tzdata && \ echo "**** generate locale ****" && \ locale-gen en_US.UTF-8 && \ @@ -112,6 +117,7 @@ RUN \ /app \ /config \ /defaults && \ + chmod +x /docker-mods && \ echo "**** cleanup ****" && \ apt-get autoremove && \ apt-get clean && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 59e0e788..a5c592af 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -44,9 +44,12 @@ FROM scratch COPY --from=rootfs-stage /root-out/ / ARG BUILD_DATE ARG VERSION +ARG MODS_VERSION="v3" LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="TheLamer" +ADD "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods" + # set environment variables ARG DEBIAN_FRONTEND="noninteractive" ENV HOME="/root" \ @@ -102,6 +105,8 @@ RUN \ apt-get install -y \ curl \ gnupg \ + jq \ + netcat \ tzdata && \ echo "**** generate locale ****" && \ locale-gen en_US.UTF-8 && \ @@ -112,6 +117,7 @@ RUN \ /app \ /config \ /defaults && \ + chmod +x /docker-mods && \ echo "**** add qemu ****" && \ curl -o \ /usr/bin/qemu-aarch64-static -L \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 5b648b48..e87d7478 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -44,9 +44,12 @@ FROM scratch COPY --from=rootfs-stage /root-out/ / ARG BUILD_DATE ARG VERSION +ARG MODS_VERSION="v3" LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="TheLamer" +ADD "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods" + # set environment variables ARG DEBIAN_FRONTEND="noninteractive" ENV HOME="/root" \ @@ -102,6 +105,8 @@ RUN \ apt-get install -y \ curl \ gnupg \ + jq \ + netcat \ tzdata && \ echo "**** generate locale ****" && \ locale-gen en_US.UTF-8 && \ @@ -112,6 +117,7 @@ RUN \ /app \ /config \ /defaults && \ + chmod +x /docker-mods && \ echo "**** add qemu ****" && \ curl -o \ /usr/bin/qemu-arm-static -L \ diff --git a/root/docker-mods b/root/docker-mods deleted file mode 100755 index 98125dd7..00000000 --- a/root/docker-mods +++ /dev/null @@ -1,291 +0,0 @@ -#!/usr/bin/with-contenv bash -# shellcheck shell=bash - -SCRIPTS_DIR_OLD="/config/custom-cont-init.d" -SCRIPTS_DIR="/custom-cont-init.d" -SERVICES_DIR_OLD="/config/custom-services.d" -SERVICES_DIR="/custom-services.d" - -# Set executable bit on cont-init and services built into the image -set_legacy_executable_bits() { - mkdir -p /etc/{cont-init.d,services.d} - chmod +x \ - /etc/cont-init.d/* \ - /etc/services.d/*/* 2>/dev/null || true -} - -tamper_check() { - #Tamper check custom service locations - if [[ -d "${SERVICES_DIR}" ]] && [[ -n "$(find ${SERVICES_DIR}/* ! -user root 2>/dev/null)" ]]; then - echo "[custom-init] **** Some of the contents of the folder '${SERVICES_DIR}' are not owned by root, which is a security risk. ****" - echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" - elif [[ -d "${SERVICES_DIR}" ]] && [[ -n "$(find ${SERVICES_DIR}/* -perm -o+w 2>/dev/null)" ]]; then - echo "[custom-init] **** Some of the contents of the folder '${SERVICES_DIR}' have write permissions for others, which is a security risk. ****" - echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" - fi - #Tamper check custom script locations - if [[ -d "${SCRIPTS_DIR}" ]] && [[ -n "$(find ${SCRIPTS_DIR}/* ! -user root 2>/dev/null)" ]]; then - echo "[custom-init] **** Some of the contents of the folder '${SCRIPTS_DIR}' are not owned by root, which is a security risk. ****" - echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" - elif [[ -d "${SCRIPTS_DIR}" ]] && [[ -n "$(find ${SCRIPTS_DIR}/* -perm -o+w 2>/dev/null)" ]]; then - echo "[custom-init] **** Some of the contents of the folder '${SCRIPTS_DIR}' have write permissions for others, which is a security risk. ****" - echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" - fi -} - -tamper_check_legacy() { - # Tamper check custom script locations - if [[ -d "${SCRIPTS_DIR_OLD}" ]] && [[ -n "$(find ${SCRIPTS_DIR_OLD} ! -user root 2>/dev/null)" ]]; then - echo "[custom-init] **** Potential tampering with custom scripts detected ****" - randstr=$( - tr /dev/null)" ]]; then - echo "[custom-init] **** The folder '${SCRIPTS_DIR_OLD}' or some of its contents have write permissions for others, which is a security risk. ****" - echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" - fi - - # Tamper check custom service locations - if [[ -d "${SERVICES_DIR_OLD}" ]] && [[ -n "$(find ${SERVICES_DIR_OLD} ! -user root 2>/dev/null)" ]]; then - echo "[custom-init] **** Potential tampering with custom scripts detected ****" - randstr=$( - tr /dev/null)" ]]; then - echo "[custom-init] **** The folder '${SERVICES_DIR_OLD}' or some of its contents have write permissions for others, which is a security risk. ****" - echo "[custom-init] **** Please review the permissions of this folder and its contents to make sure they are owned by root, and can only be modified by root. ****" - fi -} - -process_custom_services() { - # Remove all existing custom services before continuing to ensure - # we aren't running anything the user may have removed - if [[ -n "$(/bin/ls -A /etc/s6-overlay/s6-rc.d/custom-svc-* 2>/dev/null)" ]]; then - echo "[custom-init] removing existing custom services..." - rm -rf /etc/s6-overlay/s6-rc.d/custom-svc-* - rm /etc/s6-overlay/s6-rc.d/user/contents.d/custom-svc-* - fi - - # Make sure custom service directory exists and has files in it - if [[ -e "${SERVICES_DIR}" ]] && [[ -n "$(/bin/ls -A ${SERVICES_DIR} 2>/dev/null)" ]]; then - echo "[custom-init] Service files found in ${SERVICES_DIR}" - for SERVICE in "${SERVICES_DIR}"/*; do - NAME="$(basename "${SERVICE}")" - if [[ -f "${SERVICE}" ]]; then - echo "[custom-init] ${NAME}: service detected, copying..." - mkdir -p /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/ - cp "${SERVICE}" /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run - chmod +x /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run - echo "longrun" >/etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/type - touch /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/init-services - touch /etc/s6-overlay/s6-rc.d/user/contents.d/custom-svc-"${NAME}" - echo "[custom-init] ${NAME}: copied" - elif [[ ! -f "${SERVICE}" ]]; then - echo "[custom-init] ${NAME}: is not a file" - fi - done - else - echo "[custom-init] No custom services found, skipping..." - fi - - # Remove legacy folder if it's empty - if [[ -e "${SERVICES_DIR_OLD}" ]] && [[ -z "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then - echo "[custom-init] Legacy service folder ${SERVICES_DIR_OLD} is empty, deleting..." - rm -rf "${SERVICES_DIR_OLD}" - fi -} - -process_custom_services_legacy() { - - # Remove all existing custom services before continuing to ensure - # we aren't running anything the user may have removed - if [[ -n "$(/bin/ls -A /etc/s6-overlay/s6-rc.d/custom-svc-* 2>/dev/null)" ]]; then - echo "[custom-init] removing existing custom services..." - rm -rf /etc/s6-overlay/s6-rc.d/custom-svc-* - rm /etc/s6-overlay/s6-rc.d/user/contents.d/custom-svc-* - fi - - # Make sure custom service directory exists and has files in it - if [[ -e "${SERVICES_DIR_OLD}" ]] && [[ -n "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then - echo "[custom-init] Service files found in ${SERVICES_DIR_OLD}" - for SERVICE in "${SERVICES_DIR_OLD}"/*; do - NAME="$(basename "${SERVICE}")" - if [[ -f "${SERVICE}" ]]; then - echo "[custom-init] ${NAME}: service detected, copying..." - mkdir -p /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/ - cp "${SERVICE}" /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run - chmod +x /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/run - echo "longrun" >/etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/type - touch /etc/s6-overlay/s6-rc.d/custom-svc-"${NAME}"/dependencies.d/init-services - touch /etc/s6-overlay/s6-rc.d/user/contents.d/custom-svc-"${NAME}" - echo "[custom-init] ${NAME}: copied" - elif [[ ! -f "${SERVICE}" ]]; then - echo "[custom-init] ${NAME}: is not a file" - fi - done - else - echo "[custom-init] No custom services found, skipping..." - fi - - # Remove legacy folder if it's empty - if [[ -e "${SERVICES_DIR_OLD}" ]] && [[ -z "$(/bin/ls -A ${SERVICES_DIR_OLD} 2>/dev/null)" ]]; then - echo "[custom-init] Legacy service folder ${SERVICES_DIR_OLD} is empty, deleting..." - rm -rf "${SERVICES_DIR_OLD}" - fi -} - -# Check for curl -curl_check() { - if [[ ! -f /usr/bin/curl ]] || [[ ! -f /usr/bin/jq ]]; then - echo "[mod-init] Curl/JQ was not found on this system for Docker mods installing" - if [[ -f /usr/bin/apt ]]; then - ## Ubuntu - export DEBIAN_FRONTEND="noninteractive" - apt-get update - apt-get install --no-install-recommends -y \ - curl \ - jq - elif [[ -f /sbin/apk ]]; then - # Alpine - apk add --no-cache \ - curl \ - jq - fi - fi -} - -# Use different filtering depending on URL -get_blob_sha() { - if [[ $1 == "ghcr" ]]; then - curl -f --retry 10 --retry-max-time 60 --retry-connrefused \ - --silent \ - --location \ - --request GET \ - --header "Authorization: Bearer $2" \ - "$3" | jq -r '.layers[0].digest' - else - curl -f --retry 10 --retry-max-time 60 --retry-connrefused \ - --silent \ - --location \ - --request GET \ - --header "Authorization: Bearer $2" \ - "$3" | jq -r '.fsLayers[0].blobSum' - fi -} - -# Main run logic -run_mods() { - echo "[mod-init] Attempting to run Docker Modification Logic" - for DOCKER_MOD in $(echo "${DOCKER_MODS}" | tr '|' '\n'); do - # Support alternative endpoints - if [[ ${DOCKER_MOD} == ghcr.io/* ]] || [[ ${DOCKER_MOD} == linuxserver/* ]]; then - DOCKER_MOD="${DOCKER_MOD#ghcr.io/*}" - ENDPOINT="${DOCKER_MOD%%:*}" - USERNAME="${DOCKER_MOD%%/*}" - REPO="${ENDPOINT#*/}" - TAG="${DOCKER_MOD#*:}" - if [[ ${TAG} == "${DOCKER_MOD}" ]]; then - TAG="latest" - fi - FILENAME="${USERNAME}.${REPO}.${TAG}" - AUTH_URL="https://ghcr.io/token?scope=repository%3A${USERNAME}%2F${REPO}%3Apull" - MANIFEST_URL="https://ghcr.io/v2/${ENDPOINT}/manifests/${TAG}" - BLOB_URL="https://ghcr.io/v2/${ENDPOINT}/blobs/" - MODE="ghcr" - else - ENDPOINT="${DOCKER_MOD%%:*}" - USERNAME="${DOCKER_MOD%%/*}" - REPO="${ENDPOINT#*/}" - TAG="${DOCKER_MOD#*:}" - if [[ ${TAG} == "${DOCKER_MOD}" ]]; then - TAG="latest" - fi - FILENAME="${USERNAME}.${REPO}.${TAG}" - AUTH_URL="https://auth.docker.io/token?service=registry.docker.io&scope=repository:${ENDPOINT}:pull" - MANIFEST_URL="https://registry-1.docker.io/v2/${ENDPOINT}/manifests/${TAG}" - BLOB_URL="https://registry-1.docker.io/v2/${ENDPOINT}/blobs/" - MODE="dockerhub" - fi - # Kill off modification logic if any of the usernames are banned - for BANNED in $(curl -s https://raw.githubusercontent.com/linuxserver/docker-mods/master/blacklist.txt); do - if [[ "${BANNED,,}" == "${USERNAME,,}" ]]; then - if [[ -z ${RUN_BANNED_MODS+x} ]]; then - echo "[mod-init] ${DOCKER_MOD} is banned from use due to reported abuse aborting mod logic" - return - else - echo "[mod-init] You have chosen to run banned mods ${DOCKER_MOD} will be applied" - fi - fi - done - echo "[mod-init] Applying ${DOCKER_MOD} files to container" - # Get Dockerhub token for api operations - TOKEN="$( - curl -f --retry 10 --retry-max-time 60 --retry-connrefused \ - --silent \ - --header 'GET' \ - "${AUTH_URL}" | - jq -r '.token' - )" - # Determine first and only layer of image - SHALAYER=$(get_blob_sha "${MODE}" "${TOKEN}" "${MANIFEST_URL}") - # Check if we have allready applied this layer - if [[ -f "/${FILENAME}" ]] && [[ "${SHALAYER}" == "$(cat /"${FILENAME}")" ]]; then - echo "[mod-init] ${DOCKER_MOD} at ${SHALAYER} has been previously applied skipping" - else - # Download and extract layer to / - curl -f --retry 10 --retry-max-time 60 --retry-all-errors \ - --silent \ - --location \ - --request GET \ - --header "Authorization: Bearer ${TOKEN}" \ - "${BLOB_URL}${SHALAYER}" -o \ - /modtarball.tar.xz - mkdir -p /tmp/mod - tar xzf /modtarball.tar.xz -C /tmp/mod - if [[ -d /tmp/mod/etc/s6-overlay ]]; then - if [[ -d /tmp/mod/etc/cont-init.d ]]; then - rm -rf /tmp/mod/etc/cont-init.d - fi - if [[ -d /tmp/mod/etc/services.d ]]; then - rm -rf /tmp/mod/etc/services.d - fi - fi - shopt -s dotglob - cp -R /tmp/mod/* / - shopt -u dotglob - rm -rf /tmp/mod - rm -rf /modtarball.tar.xz - echo "${SHALAYER}" >"/${FILENAME}" - echo "[mod-init] ${DOCKER_MOD} applied to container" - fi - done -} - -# Main script loop - -if [ ! -d "/custom-cont-init.d" ] && [ ! -d "/custom-services.d" ]; then - # Tamper check legacy custom folders - tamper_check_legacy - process_custom_services_legacy -else - # Tamper check new custom folders - tamper_check - process_custom_services -fi - -# Run mod logic -if [[ -n "${DOCKER_MODS+x}" ]]; then - curl_check - run_mods -fi - -# Set executable bit on legacy cont-init and services built into the image and anything legacy unpacked by mods -set_legacy_executable_bits diff --git a/root/etc/s6-overlay/s6-rc.d/init-envfile/run b/root/etc/s6-overlay/s6-rc.d/init-envfile/run index 3040a92f..5dbf8094 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-envfile/run +++ b/root/etc/s6-overlay/s6-rc.d/init-envfile/run @@ -1,8 +1,8 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash -if find /var/run/s6/container_environment/*"FILE__"* -maxdepth 1 > /dev/null 2>&1; then - for FILENAME in /var/run/s6/container_environment/*; do +if find /run/s6/container_environment/*"FILE__"* -maxdepth 1 > /dev/null 2>&1; then + for FILENAME in /run/s6/container_environment/*; do if [[ "${FILENAME##*/}" == "FILE__"* ]]; then SECRETFILE=$(cat "${FILENAME}") if [[ -f ${SECRETFILE} ]]; then diff --git a/root/usr/bin/with-contenv b/root/usr/bin/with-contenv index e47468c4..e9e1bc88 100755 --- a/root/usr/bin/with-contenv +++ b/root/usr/bin/with-contenv @@ -1,9 +1,9 @@ #!/bin/bash -if [[ -f /var/run/s6/container_environment/UMASK ]] && +if [[ -f /run/s6/container_environment/UMASK ]] && { [[ "$(pwdx $$)" =~ "/run/s6/legacy-services/" ]] || [[ "$(pwdx $$)" =~ "/run/s6/services/" ]] || [[ "$(pwdx $$)" =~ "/servicedirs/svc-" ]]; }; then - umask "$(cat /var/run/s6/container_environment/UMASK)" + umask "$(cat /run/s6/container_environment/UMASK)" fi exec /command/with-contenv "$@" From 25ad86e77fd9eed405a004205881abd08b075a27 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Wed, 5 Oct 2022 12:31:14 -0500 Subject: [PATCH 071/124] Bot Updating Package Versions --- package_versions.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/package_versions.txt b/package_versions.txt index 7ab8fcf4..a0097301 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -31,6 +31,7 @@ grep3.7-1build1 gzip1.10-4ubuntu4.1 hostname3.23ubuntu2 init-system-helpers1.62 +jq1.6-2.1ubuntu3 libacl12.3.1-1 libapt-pkg6.02.4.8 libassuan02.5.5-1build1 @@ -39,6 +40,7 @@ libaudit11:3.0.7-1build1 libaudit-common1:3.0.7-1build1 libblkid12.37.2-4ubuntu3 libbrotli11.0.9-2build6 +libbsd00.11.5-1 libbz2-1.01.0.8-5build1 libc62.35-0ubuntu3.1 libcap21:2.44-1build3 @@ -59,6 +61,7 @@ libgpg-error01.43-3 libgssapi-krb5-21.19.2-2 libhogweed63.7.3-1build2 libidn2-02.3.2-2build1 +libjq11.6-2.1ubuntu3 libk5crypto31.19.2-2 libkeyutils11.6.1-2ubuntu3 libkrb5-31.19.2-2 @@ -68,6 +71,7 @@ libldap-2.5-02.5.13+dfsg-0ubuntu0.22.04.1 libldap-common2.5.13+dfsg-0ubuntu0.22.04.1 liblz4-11.9.3-2build2 liblzma55.2.5-2ubuntu1 +libmd01.0.4-1build1 libmount12.37.2-4ubuntu3 libncurses66.3-2 libncursesw66.3-2 @@ -75,6 +79,7 @@ libnettle83.7.3-1build2 libnghttp2-141.43.0-1build3 libnpth01.6-3build2 libnsl21.3.0-2build2 +libonig56.9.7.1-2build1 libp11-kit00.24.0-6build1 libpam0g1.4.0-11ubuntu2 libpam-modules1.4.0-11ubuntu2 @@ -118,6 +123,8 @@ mawk1.3.4.20200120-3 mount2.37.2-4ubuntu3 ncurses-base6.3-2 ncurses-bin6.3-2 +netcat1.218-4ubuntu1 +netcat-openbsd1.218-4ubuntu1 openssl3.0.2-0ubuntu1.6 passwd1:4.8.1-2ubuntu2 perl-base5.34.0-3ubuntu1 From 94e534ed6c91731ede1a8cb99daf532eb216b7e1 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 25 Oct 2022 01:05:09 -0500 Subject: [PATCH 072/124] 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 a0097301..499b24b0 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -66,7 +66,7 @@ libk5crypto31.19.2-2 libkeyutils11.6.1-2ubuntu3 libkrb5-31.19.2-2 libkrb5support01.19.2-2 -libksba81.6.0-2build1 +libksba81.6.0-2ubuntu0.1 libldap-2.5-02.5.13+dfsg-0ubuntu0.22.04.1 libldap-common2.5.13+dfsg-0ubuntu0.22.04.1 liblz4-11.9.3-2build2 @@ -140,4 +140,4 @@ tzdata2022c-0ubuntu0.22.04.0 ubuntu-keyring2021.03.26 usrmerge25ubuntu2 util-linux2.37.2-4ubuntu3 -zlib1g1:1.2.11.dfsg-2ubuntu9.1 +zlib1g1:1.2.11.dfsg-2ubuntu9.2 From de530836285621dd92469dd8352e472f4fa3ec88 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Fri, 28 Oct 2022 16:20:03 -0500 Subject: [PATCH 073/124] Fix migrations --- root/etc/s6-overlay/s6-rc.d/init-migrations/run | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/root/etc/s6-overlay/s6-rc.d/init-migrations/run b/root/etc/s6-overlay/s6-rc.d/init-migrations/run index ff0874ba..37f5b786 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-migrations/run +++ b/root/etc/s6-overlay/s6-rc.d/init-migrations/run @@ -19,10 +19,9 @@ for MIGRATION in $(find ${MIGRATIONS_DIR}/* | sort -n); do fi echo "[migrations] ${NAME}: executing..." chmod +x "${MIGRATION}" - EXIT_CODE=$( - /bin/bash "${MIGRATION}" - echo $? - ) + # Execute migration script in a subshell to prevent it from modifying the current environment + ("${MIGRATION}") + EXIT_CODE=$? if [[ ${EXIT_CODE} -ne 0 ]]; then echo "[migrations] ${NAME}: failed with exit code ${EXIT_CODE}, contact support" exit "${EXIT_CODE}" From 2c93aea7b88f0d32d7af53581566713884065c8f Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Sun, 30 Oct 2022 13:02:51 -0500 Subject: [PATCH 074/124] 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 499b24b0..88d15780 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -7,7 +7,7 @@ bash5.1-6ubuntu1 bsdutils1:2.37.2-4ubuntu3 ca-certificates20211016 coreutils8.32-4.1ubuntu1 -curl7.81.0-1ubuntu1.4 +curl7.81.0-1ubuntu1.6 dash0.5.11+git20210903+057cd650a4ed-3build1 debconf1.5.79ubuntu1 debianutils5.5-1ubuntu2 @@ -48,7 +48,7 @@ libcap-ng00.7.9-2.2build3 libc-bin2.35-0ubuntu3.1 libcom-err21.46.5-2ubuntu1.1 libcrypt11:4.4.27-1 -libcurl47.81.0-1ubuntu1.4 +libcurl47.81.0-1ubuntu1.6 libdb5.35.3.28+dfsg1-0.8ubuntu3 libdebconfclient00.261ubuntu1 libext2fs21.46.5-2ubuntu1.1 @@ -127,7 +127,7 @@ netcat1.218-4ubuntu1 netcat-openbsd1.218-4ubuntu1 openssl3.0.2-0ubuntu1.6 passwd1:4.8.1-2ubuntu2 -perl-base5.34.0-3ubuntu1 +perl-base5.34.0-3ubuntu1.1 pinentry-curses1.1.1-1build2 procps2:3.3.17-6ubuntu2 publicsuffix20211207.1025-1 @@ -136,7 +136,7 @@ sed4.8-1ubuntu2 sensible-utils0.0.17 sysvinit-utils3.01-1ubuntu1 tar1.34+dfsg-1build3 -tzdata2022c-0ubuntu0.22.04.0 +tzdata2022e-0ubuntu0.22.04.0 ubuntu-keyring2021.03.26 usrmerge25ubuntu2 util-linux2.37.2-4ubuntu3 From 3e16c7586265020f5395f3ccbe36ce3328035975 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 1 Nov 2022 23:44:16 +0100 Subject: [PATCH 075/124] 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 88d15780..1efdca81 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -125,7 +125,7 @@ ncurses-base6.3-2 ncurses-bin6.3-2 netcat1.218-4ubuntu1 netcat-openbsd1.218-4ubuntu1 -openssl3.0.2-0ubuntu1.6 +openssl3.0.2-0ubuntu1.7 passwd1:4.8.1-2ubuntu2 perl-base5.34.0-3ubuntu1.1 pinentry-curses1.1.1-1build2 From 8af1ed2a87ea1b09e4d6ab43b0a5135337b53dde Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 8 Nov 2022 06:11:24 +0100 Subject: [PATCH 076/124] 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 1efdca81..d3c2aeba 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -100,10 +100,10 @@ libsemanage23.3-1build2 libsemanage-common3.3-1build2 libsepol23.3-1build1 libsmartcols12.37.2-4ubuntu3 -libsqlite3-03.37.2-2 +libsqlite3-03.37.2-2ubuntu0.1 libss21.46.5-2ubuntu1.1 libssh-40.9.6-2build1 -libssl33.0.2-0ubuntu1.6 +libssl33.0.2-0ubuntu1.7 libstdc++612.1.0-2ubuntu1~22.04 libsystemd0249.11-0ubuntu3.6 libtasn1-64.18.0-4build1 @@ -136,7 +136,7 @@ sed4.8-1ubuntu2 sensible-utils0.0.17 sysvinit-utils3.01-1ubuntu1 tar1.34+dfsg-1build3 -tzdata2022e-0ubuntu0.22.04.0 +tzdata2022f-0ubuntu0.22.04.0 ubuntu-keyring2021.03.26 usrmerge25ubuntu2 util-linux2.37.2-4ubuntu3 From 28aa777b383fb5951b296b72e0f82be3f404b9a0 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 21 Nov 2022 22:53:15 -0600 Subject: [PATCH 077/124] 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 d3c2aeba..3f9e5263 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -136,7 +136,7 @@ sed4.8-1ubuntu2 sensible-utils0.0.17 sysvinit-utils3.01-1ubuntu1 tar1.34+dfsg-1build3 -tzdata2022f-0ubuntu0.22.04.0 +tzdata2022f-0ubuntu0.22.04.1 ubuntu-keyring2021.03.26 usrmerge25ubuntu2 util-linux2.37.2-4ubuntu3 From a29eef6f2ea66147e2e2b2a912802389ee5b7beb Mon Sep 17 00:00:00 2001 From: TheSpad Date: Wed, 23 Nov 2022 19:27:27 +0000 Subject: [PATCH 078/124] chmod docker-mods script on ADD --- Dockerfile | 5 +++-- Dockerfile.aarch64 | 5 +++-- Dockerfile.armhf | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 39a637f8..e83a2f1f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1 + FROM alpine:3.15 as rootfs-stage # environment @@ -48,7 +50,7 @@ ARG MODS_VERSION="v3" LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="TheLamer" -ADD "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods" +ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods" # set environment variables ARG DEBIAN_FRONTEND="noninteractive" @@ -117,7 +119,6 @@ RUN \ /app \ /config \ /defaults && \ - chmod +x /docker-mods && \ echo "**** cleanup ****" && \ apt-get autoremove && \ apt-get clean && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index a5c592af..5878ed42 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1 + FROM alpine:3.15 as rootfs-stage # environment @@ -48,7 +50,7 @@ ARG MODS_VERSION="v3" LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="TheLamer" -ADD "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods" +ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods" # set environment variables ARG DEBIAN_FRONTEND="noninteractive" @@ -117,7 +119,6 @@ RUN \ /app \ /config \ /defaults && \ - chmod +x /docker-mods && \ echo "**** add qemu ****" && \ curl -o \ /usr/bin/qemu-aarch64-static -L \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index e87d7478..13046e7b 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1 + FROM alpine:3.15 as rootfs-stage # environment @@ -48,7 +50,7 @@ ARG MODS_VERSION="v3" LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="TheLamer" -ADD "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods" +ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods" # set environment variables ARG DEBIAN_FRONTEND="noninteractive" @@ -117,7 +119,6 @@ RUN \ /app \ /config \ /defaults && \ - chmod +x /docker-mods && \ echo "**** add qemu ****" && \ curl -o \ /usr/bin/qemu-arm-static -L \ From fb96c3bf36f1563548f5434a530fc5e4e05863e3 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Tue, 29 Nov 2022 05:49:53 +0100 Subject: [PATCH 079/124] Bot Updating Templated Files --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 00f613fc..42c65e01 100755 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -56,7 +56,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.md ./.github/ISSUE_TEMPLATE/issue.feature.md ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/stale.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/stale.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml' } script{ env.LS_RELEASE_NUMBER = sh( @@ -275,7 +275,7 @@ pipeline { echo "Jenkinsfile is up to date." fi # Stage 2 - Delete old templates - OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md" + OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md\n.github/ISSUE_TEMPLATE/issue.bug.md\n.github/ISSUE_TEMPLATE/issue.feature.md" for i in ${OLD_TEMPLATES}; do if [[ -f "${i}" ]]; then TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}" From b823bf186d4ee480d14120697189e48360ca451e Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 28 Nov 2022 22:51:07 -0600 Subject: [PATCH 080/124] Bot Updating Templated Files --- .github/ISSUE_TEMPLATE/issue.bug.md | 40 ------------------------- .github/ISSUE_TEMPLATE/issue.feature.md | 25 ---------------- 2 files changed, 65 deletions(-) delete mode 100755 .github/ISSUE_TEMPLATE/issue.bug.md delete mode 100755 .github/ISSUE_TEMPLATE/issue.feature.md diff --git a/.github/ISSUE_TEMPLATE/issue.bug.md b/.github/ISSUE_TEMPLATE/issue.bug.md deleted file mode 100755 index cb01b209..00000000 --- a/.github/ISSUE_TEMPLATE/issue.bug.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve - ---- -[linuxserverurl]: https://linuxserver.io -[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl] - - - - - ------------------------------- - -## Expected Behavior - - -## Current Behavior - - -## Steps to Reproduce - - -1. -2. -3. -4. - -## Environment -**OS:** -**CPU architecture:** x86_64/arm32/arm64 -**How docker service was installed:** - - - -## Command used to create docker container (run/create/compose/screenshot) - - -## Docker logs - diff --git a/.github/ISSUE_TEMPLATE/issue.feature.md b/.github/ISSUE_TEMPLATE/issue.feature.md deleted file mode 100755 index 20a91fdb..00000000 --- a/.github/ISSUE_TEMPLATE/issue.feature.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project - ---- -[linuxserverurl]: https://linuxserver.io -[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl] - - - - - - - - ------------------------------- - -## Desired Behavior - - -## Current Behavior - - -## Alternatives Considered - From 57fe51d189979336b31ce80253cb66d44ab63688 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI Date: Mon, 28 Nov 2022 22:52:23 -0600 Subject: [PATCH 081/124] Bot Updating Templated Files --- .github/ISSUE_TEMPLATE/issue.bug.yml | 68 +++++++++++++++++++ .github/ISSUE_TEMPLATE/issue.feature.yml | 31 +++++++++ .github/workflows/external_trigger.yml | 2 +- .../workflows/external_trigger_scheduler.yml | 2 +- .github/workflows/greetings.yml | 2 +- .github/workflows/package_trigger.yml | 2 +- .../workflows/package_trigger_scheduler.yml | 2 +- .github/workflows/stale.yml | 2 +- 8 files changed, 105 insertions(+), 6 deletions(-) create mode 100755 .github/ISSUE_TEMPLATE/issue.bug.yml create mode 100755 .github/ISSUE_TEMPLATE/issue.feature.yml diff --git a/.github/ISSUE_TEMPLATE/issue.bug.yml b/.github/ISSUE_TEMPLATE/issue.bug.yml new file mode 100755 index 00000000..6503ed09 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/issue.bug.yml @@ -0,0 +1,68 @@ +# Based on the issue template +name: Bug report +description: Create a report to help us improve +title: "[BUG] " +labels: [Bug] +body: + - type: checkboxes + attributes: + label: Is there an existing issue for this? + description: Please search to see if an issue already exists for the bug you encountered. + options: + - label: I have searched the existing issues + required: true + - type: textarea + attributes: + label: Current Behavior + description: Tell us what happens instead of the expected behavior. + validations: + required: true + - type: textarea + attributes: + label: Expected Behavior + description: Tell us what should happen. + validations: + required: false + - type: textarea + attributes: + label: Steps To Reproduce + description: Steps to reproduce the behavior. + placeholder: | + 1. In this environment... + 2. With this config... + 3. Run '...' + 4. See error... + validations: + required: true + - type: textarea + attributes: + label: Environment + description: | + examples: + - **OS**: Ubuntu 20.04 + - **How docker service was installed**: distro's packagemanager + value: | + - OS: + - How docker service was installed: + render: markdown + validations: + required: false + - type: textarea + attributes: + label: Docker creation + description: | + Command used to create docker container + Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container + render: bash + validations: + required: true + - type: textarea + attributes: + description: | + Provide a full docker log, output of "docker logs linuxserver.io" + label: Container logs + placeholder: | + Output of `docker logs linuxserver.io` + render: bash + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/issue.feature.yml b/.github/ISSUE_TEMPLATE/issue.feature.yml new file mode 100755 index 00000000..099dcdb5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/issue.feature.yml @@ -0,0 +1,31 @@ +# Based on the issue template +name: Feature request +description: Suggest an idea for this project +title: "[FEAT] <title>" +labels: [enhancement] +body: + - type: checkboxes + attributes: + label: Is this a new feature request? + description: Please search to see if a feature request already exists. + options: + - label: I have searched the existing issues + required: true + - type: textarea + attributes: + label: Wanted change + description: Tell us what you want to happen. + validations: + required: true + - type: textarea + attributes: + label: Reason for change + description: Justify your request, why do you want it, what is the benefit. + validations: + required: true + - type: textarea + attributes: + label: Proposed code change + description: Do you have a potential code change in mind? + validations: + required: false diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index c02f0e27..b9f13945 100644 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -7,7 +7,7 @@ jobs: external-trigger-jammy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2.3.3 + - uses: actions/checkout@v3.1.0 - name: External Trigger if: github.ref == 'refs/heads/jammy' diff --git a/.github/workflows/external_trigger_scheduler.yml b/.github/workflows/external_trigger_scheduler.yml index 950e5b18..3388a8b1 100644 --- a/.github/workflows/external_trigger_scheduler.yml +++ b/.github/workflows/external_trigger_scheduler.yml @@ -9,7 +9,7 @@ jobs: external-trigger-scheduler: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2.3.3 + - uses: actions/checkout@v3.1.0 with: fetch-depth: '0' diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml index e98b4bbd..b4b55c6c 100755 --- a/.github/workflows/greetings.yml +++ b/.github/workflows/greetings.yml @@ -8,6 +8,6 @@ jobs: steps: - uses: actions/first-interaction@v1 with: - issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/jammy/.github/ISSUE_TEMPLATE/issue.bug.md) or [feature](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/jammy/.github/ISSUE_TEMPLATE/issue.feature.md) issue templates!' + issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/jammy/.github/ISSUE_TEMPLATE/issue.bug.yml) or [feature](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/jammy/.github/ISSUE_TEMPLATE/issue.feature.yml) issue templates!' pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/jammy/.github/PULL_REQUEST_TEMPLATE.md)!' repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/package_trigger.yml b/.github/workflows/package_trigger.yml index 080a1513..faf03fcd 100644 --- a/.github/workflows/package_trigger.yml +++ b/.github/workflows/package_trigger.yml @@ -7,7 +7,7 @@ jobs: package-trigger-jammy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2.3.3 + - uses: actions/checkout@v3.1.0 - name: Package Trigger if: github.ref == 'refs/heads/jammy' diff --git a/.github/workflows/package_trigger_scheduler.yml b/.github/workflows/package_trigger_scheduler.yml index d421a31d..46526458 100644 --- a/.github/workflows/package_trigger_scheduler.yml +++ b/.github/workflows/package_trigger_scheduler.yml @@ -9,7 +9,7 @@ jobs: package-trigger-scheduler: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2.3.3 + - uses: actions/checkout@v3.1.0 with: fetch-depth: '0' diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 3b3846ee..73dfe45a 100755 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/stale@v3 + - uses: actions/stale@v6.0.1 with: stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions." stale-pr-message: "This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions." From 1b2c12570395540cf810ed7da63a5a35b999a6aa Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Tue, 6 Dec 2022 05:47:45 +0100 Subject: [PATCH 082/124] 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 3f9e5263..c059301e 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -5,7 +5,7 @@ base-files12ubuntu4.2 base-passwd3.5.52build1 bash5.1-6ubuntu1 bsdutils1:2.37.2-4ubuntu3 -ca-certificates20211016 +ca-certificates20211016ubuntu0.22.04.1 coreutils8.32-4.1ubuntu1 curl7.81.0-1ubuntu1.6 dash0.5.11+git20210903+057cd650a4ed-3build1 @@ -116,7 +116,7 @@ libuuid12.37.2-4ubuntu3 libxxhash00.8.1-1 libzstd11.4.8+dfsg-3build1 locales2.35-0ubuntu3.1 -login1:4.8.1-2ubuntu2 +login1:4.8.1-2ubuntu2.1 logsave1.46.5-2ubuntu1.1 lsb-base11.1.0ubuntu4 mawk1.3.4.20200120-3 @@ -126,7 +126,7 @@ ncurses-bin6.3-2 netcat1.218-4ubuntu1 netcat-openbsd1.218-4ubuntu1 openssl3.0.2-0ubuntu1.7 -passwd1:4.8.1-2ubuntu2 +passwd1:4.8.1-2ubuntu2.1 perl-base5.34.0-3ubuntu1.1 pinentry-curses1.1.1-1build2 procps2:3.3.17-6ubuntu2 From d10fcb7b458ec7954f0420e61a74387b0c730761 Mon Sep 17 00:00:00 2001 From: TheSpad <git@spad.co.uk> Date: Sat, 10 Dec 2022 16:49:42 +0000 Subject: [PATCH 083/124] Minor Dockerfile optimisations --- Dockerfile | 7 ++++--- Dockerfile.aarch64 | 7 ++++--- Dockerfile.armhf | 7 ++++--- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index e83a2f1f..c7deb473 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -FROM alpine:3.15 as rootfs-stage +FROM alpine:3.17 as rootfs-stage # environment ENV REL=jammy @@ -11,7 +11,6 @@ RUN \ apk add --no-cache \ bash \ curl \ - tar \ tzdata \ xz @@ -23,7 +22,9 @@ RUN \ https://partner-images.canonical.com/core/${REL}/current/ubuntu-${REL}-core-cloudimg-${ARCH}-root.tar.gz && \ tar xf \ /rootfs.tar.gz -C \ - /root-out + /root-out && \ + rm -rf \ + /root-out/var/log/* # set version for s6 overlay ARG S6_OVERLAY_VERSION="3.1.2.1" diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 5878ed42..01d6e10b 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -FROM alpine:3.15 as rootfs-stage +FROM alpine:3.17 as rootfs-stage # environment ENV REL=jammy @@ -11,7 +11,6 @@ RUN \ apk add --no-cache \ bash \ curl \ - tar \ tzdata \ xz @@ -23,7 +22,9 @@ RUN \ https://partner-images.canonical.com/core/${REL}/current/ubuntu-${REL}-core-cloudimg-${ARCH}-root.tar.gz && \ tar xf \ /rootfs.tar.gz -C \ - /root-out + /root-out && \ + rm -rf \ + /root-out/var/log/* # set version for s6 overlay ARG S6_OVERLAY_VERSION="3.1.2.1" diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 13046e7b..6917357c 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -FROM alpine:3.15 as rootfs-stage +FROM alpine:3.17 as rootfs-stage # environment ENV REL=jammy @@ -11,7 +11,6 @@ RUN \ apk add --no-cache \ bash \ curl \ - tar \ tzdata \ xz @@ -23,7 +22,9 @@ RUN \ https://partner-images.canonical.com/core/${REL}/current/ubuntu-${REL}-core-cloudimg-${ARCH}-root.tar.gz && \ tar xf \ /rootfs.tar.gz -C \ - /root-out + /root-out && \ + rm -rf \ + /root-out/var/log/* # set version for s6 overlay ARG S6_OVERLAY_VERSION="3.1.2.1" From f3c387d00ba6ff0bcb33b39623dae96e85a1121a Mon Sep 17 00:00:00 2001 From: TheSpad <git@spad.co.uk> Date: Sat, 10 Dec 2022 16:49:52 +0000 Subject: [PATCH 084/124] Remove legacy scripts check --- .../dependencies.d/init-script-check | 0 .../dependencies.d/init-script-check | 0 .../dependencies.d/00-legacy | 0 .../s6-overlay/s6-rc.d/init-script-check/run | 23 ------------------- .../s6-overlay/s6-rc.d/init-script-check/type | 1 - .../s6-overlay/s6-rc.d/init-script-check/up | 1 - .../s6-rc.d/user/contents.d/init-script-check | 0 7 files changed, 25 deletions(-) delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-adduser/dependencies.d/init-script-check delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-os-end/dependencies.d/init-script-check delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-script-check/dependencies.d/00-legacy delete mode 100755 root/etc/s6-overlay/s6-rc.d/init-script-check/run delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-script-check/type delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-script-check/up delete mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-script-check diff --git a/root/etc/s6-overlay/s6-rc.d/init-adduser/dependencies.d/init-script-check b/root/etc/s6-overlay/s6-rc.d/init-adduser/dependencies.d/init-script-check deleted file mode 100644 index e69de29b..00000000 diff --git a/root/etc/s6-overlay/s6-rc.d/init-os-end/dependencies.d/init-script-check b/root/etc/s6-overlay/s6-rc.d/init-os-end/dependencies.d/init-script-check deleted file mode 100644 index e69de29b..00000000 diff --git a/root/etc/s6-overlay/s6-rc.d/init-script-check/dependencies.d/00-legacy b/root/etc/s6-overlay/s6-rc.d/init-script-check/dependencies.d/00-legacy deleted file mode 100644 index e69de29b..00000000 diff --git a/root/etc/s6-overlay/s6-rc.d/init-script-check/run b/root/etc/s6-overlay/s6-rc.d/init-script-check/run deleted file mode 100755 index 20c2c43b..00000000 --- a/root/etc/s6-overlay/s6-rc.d/init-script-check/run +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/with-contenv bash -# shellcheck shell=bash - -if [[ -n "$(/bin/ls -A "/config/custom-cont-init.d" 2>/dev/null)" ]] || - [[ -n "$(/bin/ls -A "/config/custom-services.d" 2>/dev/null)" ]]; then - cat << EOF | tee /config/custom-cont-init.d/README.txt 2>/dev/null -******************************************************** -******************************************************** -* * -* !!!! * -* Custom scripts or services found in legacy locations * -* !!!! * -* Please move your custom scripts and services * -* to /custom-cont-init.d and /custom-services.d * -* respectively to ensure they continue working. * -* * -* Visit https://linuxserver.io/custom for more info. * -* * -******************************************************** -******************************************************** -EOF -fi -exit 0 diff --git a/root/etc/s6-overlay/s6-rc.d/init-script-check/type b/root/etc/s6-overlay/s6-rc.d/init-script-check/type deleted file mode 100644 index bdd22a18..00000000 --- a/root/etc/s6-overlay/s6-rc.d/init-script-check/type +++ /dev/null @@ -1 +0,0 @@ -oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-script-check/up b/root/etc/s6-overlay/s6-rc.d/init-script-check/up deleted file mode 100644 index a7c155ab..00000000 --- a/root/etc/s6-overlay/s6-rc.d/init-script-check/up +++ /dev/null @@ -1 +0,0 @@ -/etc/s6-overlay/s6-rc.d/init-script-check/run diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-script-check b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-script-check deleted file mode 100644 index e69de29b..00000000 From b74ce810744b0c0ca2942d7e71723c871b49131d Mon Sep 17 00:00:00 2001 From: TheSpad <git@spad.co.uk> Date: Sat, 10 Dec 2022 18:23:44 +0000 Subject: [PATCH 085/124] Remove legacy custom file handlers --- .../s6-overlay/s6-rc.d/init-custom-files/run | 34 ------------------- 1 file changed, 34 deletions(-) diff --git a/root/etc/s6-overlay/s6-rc.d/init-custom-files/run b/root/etc/s6-overlay/s6-rc.d/init-custom-files/run index 86ca3032..3d8a17e5 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-custom-files/run +++ b/root/etc/s6-overlay/s6-rc.d/init-custom-files/run @@ -2,21 +2,8 @@ # shellcheck shell=bash # Directories -SCRIPTS_DIR_OLD="/config/custom-cont-init.d" SCRIPTS_DIR="/custom-cont-init.d" -SERVICES_DIR_OLD="/config/custom-services.d" - -# chown legacy folders if they exist -if [[ -e "${SCRIPTS_DIR_OLD}" ]]; then - chown -R 0:0 "${SCRIPTS_DIR_OLD}" -fi - -# chown legacy folders if they exist -if [[ -e "${SERVICES_DIR_OLD}" ]]; then - chown -R 0:0 "${SERVICES_DIR_OLD}" -fi - # Make sure custom init directory exists and has files in it if [[ -e "${SCRIPTS_DIR}" ]] && [[ -n "$(/bin/ls -A ${SCRIPTS_DIR} 2>/dev/null)" ]]; then echo "[custom-init] Files found, executing" @@ -30,27 +17,6 @@ if [[ -e "${SCRIPTS_DIR}" ]] && [[ -n "$(/bin/ls -A ${SCRIPTS_DIR} 2>/dev/null)" echo "[custom-init] ${NAME}: is not a file" fi done - - # Remove legacy folder if it's empty - if [[ -e "${SCRIPTS_DIR_OLD}" ]] && [[ -z "$(/bin/ls -A ${SCRIPTS_DIR_OLD} 2>/dev/null)" ]]; then - echo "[custom-init] Legacy files folder ${SCRIPTS_DIR_OLD} is empty, deleting..." - rm -rf "${SCRIPTS_DIR_OLD}" - fi -elif [[ -e "${SCRIPTS_DIR_OLD}" ]] && [[ -n "$(/bin/ls -A ${SCRIPTS_DIR_OLD} 2>/dev/null)" ]]; then - echo "[custom-init] Files found, executing" - for SCRIPT in "${SCRIPTS_DIR_OLD}"/*; do - NAME="$(basename "${SCRIPT}")" - if [[ -f "${SCRIPT}" ]]; then - echo "[custom-init] ${NAME}: executing..." - /bin/bash "${SCRIPT}" - echo "[custom-init] ${NAME}: exited $?" - elif [[ ! -f "${SCRIPT}" ]]; then - echo "[custom-init] ${NAME}: is not a file" - fi - done -elif [[ -e "${SCRIPTS_DIR_OLD}" ]] && [[ -z "$(/bin/ls -A ${SCRIPTS_DIR_OLD} 2>/dev/null)" ]]; then - echo "[custom-init] Legacy files folder ${SCRIPTS_DIR_OLD} is empty, deleting..." - rm -rf "${SCRIPTS_DIR_OLD}" else echo "[custom-init] No custom files found, skipping..." fi From 82e533b5bae1cd67b0ed3a1796b0e65569290f71 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Tue, 13 Dec 2022 05:48:37 +0100 Subject: [PATCH 086/124] 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 c059301e..5fe1972e 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -136,7 +136,7 @@ sed4.8-1ubuntu2 sensible-utils0.0.17 sysvinit-utils3.01-1ubuntu1 tar1.34+dfsg-1build3 -tzdata2022f-0ubuntu0.22.04.1 +tzdata2022g-0ubuntu0.22.04.1 ubuntu-keyring2021.03.26 usrmerge25ubuntu2 util-linux2.37.2-4ubuntu3 From 5316f44f3d4b61a95cb52662ddf4077ca8c41a84 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Mon, 9 Jan 2023 22:46:49 -0600 Subject: [PATCH 087/124] 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 5fe1972e..5e1a3e81 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -7,7 +7,7 @@ bash5.1-6ubuntu1 bsdutils1:2.37.2-4ubuntu3 ca-certificates20211016ubuntu0.22.04.1 coreutils8.32-4.1ubuntu1 -curl7.81.0-1ubuntu1.6 +curl7.81.0-1ubuntu1.7 dash0.5.11+git20210903+057cd650a4ed-3build1 debconf1.5.79ubuntu1 debianutils5.5-1ubuntu2 @@ -48,7 +48,7 @@ libcap-ng00.7.9-2.2build3 libc-bin2.35-0ubuntu3.1 libcom-err21.46.5-2ubuntu1.1 libcrypt11:4.4.27-1 -libcurl47.81.0-1ubuntu1.6 +libcurl47.81.0-1ubuntu1.7 libdb5.35.3.28+dfsg1-0.8ubuntu3 libdebconfclient00.261ubuntu1 libext2fs21.46.5-2ubuntu1.1 @@ -66,7 +66,7 @@ libk5crypto31.19.2-2 libkeyutils11.6.1-2ubuntu3 libkrb5-31.19.2-2 libkrb5support01.19.2-2 -libksba81.6.0-2ubuntu0.1 +libksba81.6.0-2ubuntu0.2 libldap-2.5-02.5.13+dfsg-0ubuntu0.22.04.1 libldap-common2.5.13+dfsg-0ubuntu0.22.04.1 liblz4-11.9.3-2build2 @@ -91,9 +91,9 @@ libprocps82:3.3.17-6ubuntu2 libpsl50.21.0-1.2build2 libreadline88.1.2-1 librtmp12.4+20151223.gitfa8646d.1-2build4 -libsasl2-22.1.27+dfsg2-3ubuntu1 -libsasl2-modules2.1.27+dfsg2-3ubuntu1 -libsasl2-modules-db2.1.27+dfsg2-3ubuntu1 +libsasl2-22.1.27+dfsg2-3ubuntu1.1 +libsasl2-modules2.1.27+dfsg2-3ubuntu1.1 +libsasl2-modules-db2.1.27+dfsg2-3ubuntu1.1 libseccomp22.5.3-2ubuntu2 libselinux13.3-1build2 libsemanage23.3-1build2 From f5e6c03d42b0aa4e0ba2eb61850acffc71224d09 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Mon, 13 Feb 2023 22:47:36 -0600 Subject: [PATCH 088/124] Bot Updating Templated Files --- Jenkinsfile | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 42c65e01..df5e4837 100755 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -56,7 +56,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/stale.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/stale.yml ./.github/workflows/call_invalid_helper.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml' } script{ env.LS_RELEASE_NUMBER = sh( @@ -66,7 +66,7 @@ pipeline { script{ env.LS_TAG_NUMBER = sh( script: '''#! /bin/bash - tagsha=$(git rev-list -n 1 ${LS_RELEASE} 2>/dev/null) + tagsha=$(git rev-list -n 1 jammy-${LS_RELEASE} 2>/dev/null) if [ "${tagsha}" == "${COMMIT_SHA}" ]; then echo ${LS_RELEASE_NUMBER} elif [ -z "${GIT_COMMIT}" ]; then @@ -768,19 +768,19 @@ pipeline { echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin if [ "${CI}" == "false" ]; then docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} - docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG} + docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} fi for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} - docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} - docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-jammy - docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-jammy - docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-jammy docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} + docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} + docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-jammy docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} + docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} + docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-jammy docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} if [ -n "${SEMVER}" ]; then docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER} @@ -788,13 +788,13 @@ pipeline { docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER} fi docker push ${MANIFESTIMAGE}:amd64-${META_TAG} - docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG} - docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG} + docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:amd64-jammy + docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG} docker push ${MANIFESTIMAGE}:arm32v7-jammy - docker push ${MANIFESTIMAGE}:arm64v8-jammy - docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} + docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG} + docker push ${MANIFESTIMAGE}:arm64v8-jammy docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} if [ -n "${SEMVER}" ]; then docker push ${MANIFESTIMAGE}:amd64-${SEMVER} @@ -936,12 +936,12 @@ pipeline { sh 'echo "build aborted"' } else if (currentBuild.currentResult == "SUCCESS"){ - sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\ + 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://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\ + 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"}],\ "username": "Jenkins"}' ${BUILDS_DISCORD} ''' } From 7c38a8bbddf5664799498aaedbc65816160bd61d Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Mon, 13 Feb 2023 22:48:54 -0600 Subject: [PATCH 089/124] Bot Updating Templated Files --- .editorconfig | 2 +- .github/workflows/call_invalid_helper.yml | 12 ++++++++++++ .github/workflows/greetings.yml | 2 +- .github/workflows/permissions.yml | 9 +++++++++ 4 files changed, 23 insertions(+), 2 deletions(-) create mode 100755 .github/workflows/call_invalid_helper.yml create mode 100755 .github/workflows/permissions.yml diff --git a/.editorconfig b/.editorconfig index a92f7dfd..5f150f35 100755 --- a/.editorconfig +++ b/.editorconfig @@ -15,6 +15,6 @@ trim_trailing_whitespace = false indent_style = space indent_size = 2 -[{**.sh,root/etc/cont-init.d/**,root/etc/services.d/**}] +[{**.sh,root/etc/s6-overlay/s6-rc.d/**,root/etc/cont-init.d/**,root/etc/services.d/**}] indent_style = space indent_size = 4 diff --git a/.github/workflows/call_invalid_helper.yml b/.github/workflows/call_invalid_helper.yml new file mode 100755 index 00000000..773767c2 --- /dev/null +++ b/.github/workflows/call_invalid_helper.yml @@ -0,0 +1,12 @@ +name: Comment on invalid interaction +on: + issues: + types: + - labeled +jobs: + add-comment-on-invalid: + if: github.event.label.name == 'invalid' + permissions: + issues: write + uses: linuxserver/github-workflows/.github/workflows/invalid-interaction-helper.yml@v1 + secrets: inherit diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml index b4b55c6c..1c097560 100755 --- a/.github/workflows/greetings.yml +++ b/.github/workflows/greetings.yml @@ -8,6 +8,6 @@ jobs: steps: - uses: actions/first-interaction@v1 with: - issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/jammy/.github/ISSUE_TEMPLATE/issue.bug.yml) or [feature](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/jammy/.github/ISSUE_TEMPLATE/issue.feature.yml) issue templates!' + issue-message: 'Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.' pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/jammy/.github/PULL_REQUEST_TEMPLATE.md)!' repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/permissions.yml b/.github/workflows/permissions.yml new file mode 100755 index 00000000..2df6b61b --- /dev/null +++ b/.github/workflows/permissions.yml @@ -0,0 +1,9 @@ +name: Permission check +on: + pull_request: + paths: + - '**/run' + - '**/finish' +jobs: + permission_check: + uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1 From 5689895c15b3c8c7c25266e552acb1add0822bb7 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Mon, 13 Feb 2023 22:51:41 -0600 Subject: [PATCH 090/124] 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 5e1a3e81..c1602c99 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -125,7 +125,7 @@ ncurses-base6.3-2 ncurses-bin6.3-2 netcat1.218-4ubuntu1 netcat-openbsd1.218-4ubuntu1 -openssl3.0.2-0ubuntu1.7 +openssl3.0.2-0ubuntu1.8 passwd1:4.8.1-2ubuntu2.1 perl-base5.34.0-3ubuntu1.1 pinentry-curses1.1.1-1build2 From 41d38f72d9142190837149d9016de723e4ec32b2 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Tue, 21 Feb 2023 05:47:57 +0100 Subject: [PATCH 091/124] 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 c1602c99..6c4f60b0 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,7 +1,7 @@ adduser3.118ubuntu5 apt2.4.8 apt-utils2.4.8 -base-files12ubuntu4.2 +base-files12ubuntu4.3 base-passwd3.5.52build1 bash5.1-6ubuntu1 bsdutils1:2.37.2-4ubuntu3 @@ -58,14 +58,14 @@ libgcrypt201.9.4-3ubuntu3 libgmp102:6.2.1+dfsg-3ubuntu1 libgnutls303.7.3-4ubuntu1.1 libgpg-error01.43-3 -libgssapi-krb5-21.19.2-2 +libgssapi-krb5-21.19.2-2ubuntu0.1 libhogweed63.7.3-1build2 libidn2-02.3.2-2build1 libjq11.6-2.1ubuntu3 -libk5crypto31.19.2-2 +libk5crypto31.19.2-2ubuntu0.1 libkeyutils11.6.1-2ubuntu3 -libkrb5-31.19.2-2 -libkrb5support01.19.2-2 +libkrb5-31.19.2-2ubuntu0.1 +libkrb5support01.19.2-2ubuntu0.1 libksba81.6.0-2ubuntu0.2 libldap-2.5-02.5.13+dfsg-0ubuntu0.22.04.1 libldap-common2.5.13+dfsg-0ubuntu0.22.04.1 @@ -81,10 +81,10 @@ libnpth01.6-3build2 libnsl21.3.0-2build2 libonig56.9.7.1-2build1 libp11-kit00.24.0-6build1 -libpam0g1.4.0-11ubuntu2 -libpam-modules1.4.0-11ubuntu2 -libpam-modules-bin1.4.0-11ubuntu2 -libpam-runtime1.4.0-11ubuntu2 +libpam0g1.4.0-11ubuntu2.3 +libpam-modules1.4.0-11ubuntu2.3 +libpam-modules-bin1.4.0-11ubuntu2.3 +libpam-runtime1.4.0-11ubuntu2.3 libpcre2-8-010.39-3ubuntu0.1 libpcre32:8.39-13ubuntu0.22.04.1 libprocps82:3.3.17-6ubuntu2 @@ -103,7 +103,7 @@ libsmartcols12.37.2-4ubuntu3 libsqlite3-03.37.2-2ubuntu0.1 libss21.46.5-2ubuntu1.1 libssh-40.9.6-2build1 -libssl33.0.2-0ubuntu1.7 +libssl33.0.2-0ubuntu1.8 libstdc++612.1.0-2ubuntu1~22.04 libsystemd0249.11-0ubuntu3.6 libtasn1-64.18.0-4build1 From 23315d53ba661de96430d48f2bc8ff27730baaeb Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Mon, 27 Feb 2023 22:49:24 -0600 Subject: [PATCH 092/124] 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 6c4f60b0..71b93e7e 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -7,7 +7,7 @@ bash5.1-6ubuntu1 bsdutils1:2.37.2-4ubuntu3 ca-certificates20211016ubuntu0.22.04.1 coreutils8.32-4.1ubuntu1 -curl7.81.0-1ubuntu1.7 +curl7.81.0-1ubuntu1.8 dash0.5.11+git20210903+057cd650a4ed-3build1 debconf1.5.79ubuntu1 debianutils5.5-1ubuntu2 @@ -48,7 +48,7 @@ libcap-ng00.7.9-2.2build3 libc-bin2.35-0ubuntu3.1 libcom-err21.46.5-2ubuntu1.1 libcrypt11:4.4.27-1 -libcurl47.81.0-1ubuntu1.7 +libcurl47.81.0-1ubuntu1.8 libdb5.35.3.28+dfsg1-0.8ubuntu3 libdebconfclient00.261ubuntu1 libext2fs21.46.5-2ubuntu1.1 From f969c18cd3c257589cafffed8138e08addbba481 Mon Sep 17 00:00:00 2001 From: TheSpad <git@spad.co.uk> Date: Wed, 1 Mar 2023 11:02:44 +0000 Subject: [PATCH 093/124] Remove legacy /run symlink hack --- root/etc/s6-overlay/s6-rc.d/00-legacy/type | 1 - root/etc/s6-overlay/s6-rc.d/00-legacy/up | 1 - .../etc/s6-overlay/s6-rc.d/init-envfile/dependencies.d/00-legacy | 0 .../s6-overlay/s6-rc.d/init-migrations/dependencies.d/00-legacy | 0 root/etc/s6-overlay/s6-rc.d/user/contents.d/00-legacy | 0 5 files changed, 2 deletions(-) delete mode 100644 root/etc/s6-overlay/s6-rc.d/00-legacy/type delete mode 100644 root/etc/s6-overlay/s6-rc.d/00-legacy/up delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-envfile/dependencies.d/00-legacy delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-migrations/dependencies.d/00-legacy delete mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/00-legacy diff --git a/root/etc/s6-overlay/s6-rc.d/00-legacy/type b/root/etc/s6-overlay/s6-rc.d/00-legacy/type deleted file mode 100644 index bdd22a18..00000000 --- a/root/etc/s6-overlay/s6-rc.d/00-legacy/type +++ /dev/null @@ -1 +0,0 @@ -oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/00-legacy/up b/root/etc/s6-overlay/s6-rc.d/00-legacy/up deleted file mode 100644 index 4aa1c27b..00000000 --- a/root/etc/s6-overlay/s6-rc.d/00-legacy/up +++ /dev/null @@ -1 +0,0 @@ -ln -s /run/s6/legacy-services /run/s6/services diff --git a/root/etc/s6-overlay/s6-rc.d/init-envfile/dependencies.d/00-legacy b/root/etc/s6-overlay/s6-rc.d/init-envfile/dependencies.d/00-legacy deleted file mode 100644 index e69de29b..00000000 diff --git a/root/etc/s6-overlay/s6-rc.d/init-migrations/dependencies.d/00-legacy b/root/etc/s6-overlay/s6-rc.d/init-migrations/dependencies.d/00-legacy deleted file mode 100644 index e69de29b..00000000 diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/00-legacy b/root/etc/s6-overlay/s6-rc.d/user/contents.d/00-legacy deleted file mode 100644 index e69de29b..00000000 From ed6b9c57af99883d8527275b7c064ac2ce83b3a4 Mon Sep 17 00:00:00 2001 From: TheSpad <git@spad.co.uk> Date: Wed, 1 Mar 2023 11:03:14 +0000 Subject: [PATCH 094/124] Rename CI check --- .../dependencies.d/legacy-services | 0 .../s6-rc.d/{99-ci-service-check => ci-service-check}/type | 0 .../s6-rc.d/{99-ci-service-check => ci-service-check}/up | 0 .../user2/contents.d/{99-ci-service-check => ci-service-check} | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename root/etc/s6-overlay/s6-rc.d/{99-ci-service-check => ci-service-check}/dependencies.d/legacy-services (100%) rename root/etc/s6-overlay/s6-rc.d/{99-ci-service-check => ci-service-check}/type (100%) rename root/etc/s6-overlay/s6-rc.d/{99-ci-service-check => ci-service-check}/up (100%) rename root/etc/s6-overlay/s6-rc.d/user2/contents.d/{99-ci-service-check => ci-service-check} (100%) diff --git a/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/legacy-services b/root/etc/s6-overlay/s6-rc.d/ci-service-check/dependencies.d/legacy-services similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/99-ci-service-check/dependencies.d/legacy-services rename to root/etc/s6-overlay/s6-rc.d/ci-service-check/dependencies.d/legacy-services diff --git a/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/type b/root/etc/s6-overlay/s6-rc.d/ci-service-check/type similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/99-ci-service-check/type rename to root/etc/s6-overlay/s6-rc.d/ci-service-check/type diff --git a/root/etc/s6-overlay/s6-rc.d/99-ci-service-check/up b/root/etc/s6-overlay/s6-rc.d/ci-service-check/up similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/99-ci-service-check/up rename to root/etc/s6-overlay/s6-rc.d/ci-service-check/up diff --git a/root/etc/s6-overlay/s6-rc.d/user2/contents.d/99-ci-service-check b/root/etc/s6-overlay/s6-rc.d/user2/contents.d/ci-service-check similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/user2/contents.d/99-ci-service-check rename to root/etc/s6-overlay/s6-rc.d/user2/contents.d/ci-service-check From 6897e7b73e40c6925739ca63a2ceb910d3b510d0 Mon Sep 17 00:00:00 2001 From: TheSpad <git@spad.co.uk> Date: Wed, 1 Mar 2023 11:03:27 +0000 Subject: [PATCH 095/124] Remove copied contenv, sourced from mods now --- root/usr/bin/with-contenv | 9 --------- 1 file changed, 9 deletions(-) delete mode 100755 root/usr/bin/with-contenv diff --git a/root/usr/bin/with-contenv b/root/usr/bin/with-contenv deleted file mode 100755 index e9e1bc88..00000000 --- a/root/usr/bin/with-contenv +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -if [[ -f /run/s6/container_environment/UMASK ]] && - { [[ "$(pwdx $$)" =~ "/run/s6/legacy-services/" ]] || - [[ "$(pwdx $$)" =~ "/run/s6/services/" ]] || - [[ "$(pwdx $$)" =~ "/servicedirs/svc-" ]]; }; then - umask "$(cat /run/s6/container_environment/UMASK)" -fi -exec /command/with-contenv "$@" From c7cfb77097b2ffa28b4e64daa680cc1f8ec38cc0 Mon Sep 17 00:00:00 2001 From: TheSpad <git@spad.co.uk> Date: Wed, 1 Mar 2023 11:03:34 +0000 Subject: [PATCH 096/124] Custom branding --- jenkins-vars.yml | 2 +- .../s6-overlay/s6-rc.d/init-adduser/branding | 12 +++++ root/etc/s6-overlay/s6-rc.d/init-adduser/run | 46 ++++++++----------- 3 files changed, 32 insertions(+), 28 deletions(-) create mode 100644 root/etc/s6-overlay/s6-rc.d/init-adduser/branding diff --git a/jenkins-vars.yml b/jenkins-vars.yml index 44bcab21..a373adf0 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -21,6 +21,6 @@ repo_vars: - CI_PORT='80' - CI_SSL='true' - CI_DELAY='30' - - CI_DOCKERENV='TZ=US/Pacific' + - CI_DOCKERENV='TZ=US/Pacific|LSIO_FIRST_PARTY=true' - CI_AUTH='user:password' - CI_WEBPATH='' diff --git a/root/etc/s6-overlay/s6-rc.d/init-adduser/branding b/root/etc/s6-overlay/s6-rc.d/init-adduser/branding new file mode 100644 index 00000000..99077a5e --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-adduser/branding @@ -0,0 +1,12 @@ +─────────────────────────────────────── + _____ __ __ _____ _____ _____ _____ + | | | | __|_ _| | | + | --| | |__ | | | | | | | | | + |_____|_____|_____| |_| |_____|_|_|_| + _____ __ __ _ __ ____ + | __ | | | | | | \ + | __ -| | | | |__| | | + |_____|_____|_|_____|____/ + + Based on images from linuxserver.io +─────────────────────────────────────── diff --git a/root/etc/s6-overlay/s6-rc.d/init-adduser/run b/root/etc/s6-overlay/s6-rc.d/init-adduser/run index a619c4fb..b98beff1 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-adduser/run +++ b/root/etc/s6-overlay/s6-rc.d/init-adduser/run @@ -7,17 +7,8 @@ PGID=${PGID:-911} groupmod -o -g "$PGID" abc usermod -o -u "$PUID" abc -echo ' -------------------------------------- - _ () - | | ___ _ __ - | | / __| | | / \ - | | \__ \ | | | () | - |_| |___/ |_| \__/ - +cat /etc/s6-overlay/s6-rc.d/init-adduser/branding -Brought to you by linuxserver.io --------------------------------------' if [[ -f /donate.txt ]]; then echo ' To support the app dev(s) visit:' @@ -26,32 +17,33 @@ fi echo ' To support LSIO projects visit: https://www.linuxserver.io/donate/ -------------------------------------- + +─────────────────────────────────────── GID/UID --------------------------------------' +───────────────────────────────────────' echo " -User uid: $(id -u abc) -User gid: $(id -g abc) -------------------------------------- +User UID: $(id -u abc) +User GID: $(id -g abc) +─────────────────────────────────────── " time32="$(date +%Y)" if [[ "${time32}" == "1970" || "${time32}" == "1969" ]] && [ "$(uname -m)" == "armv7l" ]; then echo ' -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -Your DockerHost is running an outdated version of libseccomp - -To fix this, please visit https://docs.linuxserver.io/faq#libseccomp - -Apps will not behave correctly without this - -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +╔═════════════════════════════════════════════════════════════════════════════╗ +║ ║ +║ Your Docker Host is running an outdated version of libseccomp ║ +║ ║ +║ To fix this, please visit https://docs.linuxserver.io/faq#libseccomp ║ +║ ║ +║ Apps will not behave correctly without this ║ +║ ║ +╚═════════════════════════════════════════════════════════════════════════════╝ ' sleep infinity fi -chown abc:abc /app -chown abc:abc /config -chown abc:abc /defaults +lsiown abc:abc /app +lsiown abc:abc /config +lsiown abc:abc /defaults From bd1f0b9d3e672013e1070d55e423ce2b51d60393 Mon Sep 17 00:00:00 2001 From: TheSpad <git@spad.co.uk> Date: Wed, 1 Mar 2023 11:11:35 +0000 Subject: [PATCH 097/124] Run builder --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index df5e4837..4a586835 100755 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -31,7 +31,7 @@ pipeline { CI_PORT='80' CI_SSL='true' CI_DELAY='30' - CI_DOCKERENV='TZ=US/Pacific' + CI_DOCKERENV='TZ=US/Pacific|LSIO_FIRST_PARTY=true' CI_AUTH='user:password' CI_WEBPATH='' } From 20b645bec74d68eac8bb5f887c5ce9fb5c808518 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Wed, 1 Mar 2023 14:27:37 -0600 Subject: [PATCH 098/124] Bot Updating Templated Files --- Jenkinsfile | 42 ++++++++++++++---------------------------- 1 file changed, 14 insertions(+), 28 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4a586835..4d5ff480 100755 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -419,7 +419,7 @@ pipeline { } steps { echo "Running on node: ${NODE_NAME}" - sh "docker build \ + sh "docker buildx build \ --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \ --label \"org.opencontainers.image.authors=linuxserver.io\" \ --label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-baseimage-ubuntu/packages\" \ @@ -432,7 +432,7 @@ pipeline { --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ --label \"org.opencontainers.image.title=Baseimage-ubuntu\" \ --label \"org.opencontainers.image.description=baseimage-ubuntu image by linuxserver.io\" \ - --no-cache --pull -t ${IMAGE}:${META_TAG} \ + --no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." } } @@ -449,7 +449,7 @@ pipeline { stage('Build X86') { steps { echo "Running on node: ${NODE_NAME}" - sh "docker build \ + sh "docker buildx build \ --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \ --label \"org.opencontainers.image.authors=linuxserver.io\" \ --label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-baseimage-ubuntu/packages\" \ @@ -462,7 +462,7 @@ pipeline { --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ --label \"org.opencontainers.image.title=Baseimage-ubuntu\" \ --label \"org.opencontainers.image.description=baseimage-ubuntu image by linuxserver.io\" \ - --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} \ + --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." } } @@ -476,7 +476,7 @@ pipeline { sh '''#! /bin/bash echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin ''' - sh "docker build \ + sh "docker buildx build \ --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \ --label \"org.opencontainers.image.authors=linuxserver.io\" \ --label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-baseimage-ubuntu/packages\" \ @@ -489,7 +489,7 @@ pipeline { --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ --label \"org.opencontainers.image.title=Baseimage-ubuntu\" \ --label \"org.opencontainers.image.description=baseimage-ubuntu image by linuxserver.io\" \ - --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \ + --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} --platform=linux/arm/v7 \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}" retry(5) { @@ -510,7 +510,7 @@ pipeline { sh '''#! /bin/bash echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin ''' - sh "docker build \ + sh "docker buildx build \ --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \ --label \"org.opencontainers.image.authors=linuxserver.io\" \ --label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-baseimage-ubuntu/packages\" \ @@ -523,7 +523,7 @@ pipeline { --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ --label \"org.opencontainers.image.title=Baseimage-ubuntu\" \ --label \"org.opencontainers.image.description=baseimage-ubuntu image by linuxserver.io\" \ - --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \ + --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \ --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(5) { @@ -552,26 +552,12 @@ pipeline { else LOCAL_CONTAINER=${IMAGE}:${META_TAG} fi - if [ "${DIST_IMAGE}" == "alpine" ]; then - docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\ - apk info -v > /tmp/package_versions.txt && \ - sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \ - chmod 777 /tmp/package_versions.txt' - elif [ "${DIST_IMAGE}" == "ubuntu" ]; then - docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\ - apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \ - sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \ - chmod 777 /tmp/package_versions.txt' - elif [ "${DIST_IMAGE}" == "fedora" ]; then - docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\ - rpm -qa > /tmp/package_versions.txt && \ - sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \ - chmod 777 /tmp/package_versions.txt' - elif [ "${DIST_IMAGE}" == "arch" ]; then - docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\ - pacman -Q > /tmp/package_versions.txt && \ - chmod 777 /tmp/package_versions.txt' - fi + touch ${TEMPDIR}/package_versions.txt + docker run --rm \ + -v /var/run/docker.sock:/var/run/docker.sock:ro \ + -v ${TEMPDIR}:/tmp \ + ghcr.io/anchore/syft:latest \ + ${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" if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then From af3a96ff04fe9c1d379f517f2dd7e92948b4fcc8 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Wed, 1 Mar 2023 21:30:15 +0100 Subject: [PATCH 099/124] Bot Updating Package Versions --- package_versions.txt | 287 ++++++++++++++++++++++--------------------- 1 file changed, 144 insertions(+), 143 deletions(-) diff --git a/package_versions.txt b/package_versions.txt index 71b93e7e..209f58bf 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,143 +1,144 @@ -adduser3.118ubuntu5 -apt2.4.8 -apt-utils2.4.8 -base-files12ubuntu4.3 -base-passwd3.5.52build1 -bash5.1-6ubuntu1 -bsdutils1:2.37.2-4ubuntu3 -ca-certificates20211016ubuntu0.22.04.1 -coreutils8.32-4.1ubuntu1 -curl7.81.0-1ubuntu1.8 -dash0.5.11+git20210903+057cd650a4ed-3build1 -debconf1.5.79ubuntu1 -debianutils5.5-1ubuntu2 -diffutils1:3.8-0ubuntu2 -dirmngr2.2.27-3ubuntu2.1 -dpkg1.21.1ubuntu2.1 -e2fsprogs1.46.5-2ubuntu1.1 -findutils4.8.0-1ubuntu3 -gcc-12-base12.1.0-2ubuntu1~22.04 -gnupg2.2.27-3ubuntu2.1 -gnupg-l10n2.2.27-3ubuntu2.1 -gnupg-utils2.2.27-3ubuntu2.1 -gpg2.2.27-3ubuntu2.1 -gpg-agent2.2.27-3ubuntu2.1 -gpgconf2.2.27-3ubuntu2.1 -gpgsm2.2.27-3ubuntu2.1 -gpgv2.2.27-3ubuntu2.1 -gpg-wks-client2.2.27-3ubuntu2.1 -gpg-wks-server2.2.27-3ubuntu2.1 -grep3.7-1build1 -gzip1.10-4ubuntu4.1 -hostname3.23ubuntu2 -init-system-helpers1.62 -jq1.6-2.1ubuntu3 -libacl12.3.1-1 -libapt-pkg6.02.4.8 -libassuan02.5.5-1build1 -libattr11:2.5.1-1build1 -libaudit11:3.0.7-1build1 -libaudit-common1:3.0.7-1build1 -libblkid12.37.2-4ubuntu3 -libbrotli11.0.9-2build6 -libbsd00.11.5-1 -libbz2-1.01.0.8-5build1 -libc62.35-0ubuntu3.1 -libcap21:2.44-1build3 -libcap-ng00.7.9-2.2build3 -libc-bin2.35-0ubuntu3.1 -libcom-err21.46.5-2ubuntu1.1 -libcrypt11:4.4.27-1 -libcurl47.81.0-1ubuntu1.8 -libdb5.35.3.28+dfsg1-0.8ubuntu3 -libdebconfclient00.261ubuntu1 -libext2fs21.46.5-2ubuntu1.1 -libffi83.4.2-4 -libgcc-s112.1.0-2ubuntu1~22.04 -libgcrypt201.9.4-3ubuntu3 -libgmp102:6.2.1+dfsg-3ubuntu1 -libgnutls303.7.3-4ubuntu1.1 -libgpg-error01.43-3 -libgssapi-krb5-21.19.2-2ubuntu0.1 -libhogweed63.7.3-1build2 -libidn2-02.3.2-2build1 -libjq11.6-2.1ubuntu3 -libk5crypto31.19.2-2ubuntu0.1 -libkeyutils11.6.1-2ubuntu3 -libkrb5-31.19.2-2ubuntu0.1 -libkrb5support01.19.2-2ubuntu0.1 -libksba81.6.0-2ubuntu0.2 -libldap-2.5-02.5.13+dfsg-0ubuntu0.22.04.1 -libldap-common2.5.13+dfsg-0ubuntu0.22.04.1 -liblz4-11.9.3-2build2 -liblzma55.2.5-2ubuntu1 -libmd01.0.4-1build1 -libmount12.37.2-4ubuntu3 -libncurses66.3-2 -libncursesw66.3-2 -libnettle83.7.3-1build2 -libnghttp2-141.43.0-1build3 -libnpth01.6-3build2 -libnsl21.3.0-2build2 -libonig56.9.7.1-2build1 -libp11-kit00.24.0-6build1 -libpam0g1.4.0-11ubuntu2.3 -libpam-modules1.4.0-11ubuntu2.3 -libpam-modules-bin1.4.0-11ubuntu2.3 -libpam-runtime1.4.0-11ubuntu2.3 -libpcre2-8-010.39-3ubuntu0.1 -libpcre32:8.39-13ubuntu0.22.04.1 -libprocps82:3.3.17-6ubuntu2 -libpsl50.21.0-1.2build2 -libreadline88.1.2-1 -librtmp12.4+20151223.gitfa8646d.1-2build4 -libsasl2-22.1.27+dfsg2-3ubuntu1.1 -libsasl2-modules2.1.27+dfsg2-3ubuntu1.1 -libsasl2-modules-db2.1.27+dfsg2-3ubuntu1.1 -libseccomp22.5.3-2ubuntu2 -libselinux13.3-1build2 -libsemanage23.3-1build2 -libsemanage-common3.3-1build2 -libsepol23.3-1build1 -libsmartcols12.37.2-4ubuntu3 -libsqlite3-03.37.2-2ubuntu0.1 -libss21.46.5-2ubuntu1.1 -libssh-40.9.6-2build1 -libssl33.0.2-0ubuntu1.8 -libstdc++612.1.0-2ubuntu1~22.04 -libsystemd0249.11-0ubuntu3.6 -libtasn1-64.18.0-4build1 -libtinfo66.3-2 -libtirpc31.3.2-2ubuntu0.1 -libtirpc-common1.3.2-2ubuntu0.1 -libudev1249.11-0ubuntu3.6 -libunistring21.0-1 -libuuid12.37.2-4ubuntu3 -libxxhash00.8.1-1 -libzstd11.4.8+dfsg-3build1 -locales2.35-0ubuntu3.1 -login1:4.8.1-2ubuntu2.1 -logsave1.46.5-2ubuntu1.1 -lsb-base11.1.0ubuntu4 -mawk1.3.4.20200120-3 -mount2.37.2-4ubuntu3 -ncurses-base6.3-2 -ncurses-bin6.3-2 -netcat1.218-4ubuntu1 -netcat-openbsd1.218-4ubuntu1 -openssl3.0.2-0ubuntu1.8 -passwd1:4.8.1-2ubuntu2.1 -perl-base5.34.0-3ubuntu1.1 -pinentry-curses1.1.1-1build2 -procps2:3.3.17-6ubuntu2 -publicsuffix20211207.1025-1 -readline-common8.1.2-1 -sed4.8-1ubuntu2 -sensible-utils0.0.17 -sysvinit-utils3.01-1ubuntu1 -tar1.34+dfsg-1build3 -tzdata2022g-0ubuntu0.22.04.1 -ubuntu-keyring2021.03.26 -usrmerge25ubuntu2 -util-linux2.37.2-4ubuntu3 -zlib1g1:1.2.11.dfsg-2ubuntu9.2 +NAME VERSION TYPE +adduser 3.118ubuntu5 deb +apt 2.4.8 deb +apt-utils 2.4.8 deb +base-files 12ubuntu4.3 deb +base-passwd 3.5.52build1 deb +bash 5.1-6ubuntu1 deb +bsdutils 1:2.37.2-4ubuntu3 deb +ca-certificates 20211016ubuntu0.22.04.1 deb +coreutils 8.32-4.1ubuntu1 deb +curl 7.81.0-1ubuntu1.8 deb +dash 0.5.11+git20210903+057cd650a4ed-3build1 deb +debconf 1.5.79ubuntu1 deb +debianutils 5.5-1ubuntu2 deb +diffutils 1:3.8-0ubuntu2 deb +dirmngr 2.2.27-3ubuntu2.1 deb +dpkg 1.21.1ubuntu2.1 deb +e2fsprogs 1.46.5-2ubuntu1.1 deb +findutils 4.8.0-1ubuntu3 deb +gcc-12-base 12.1.0-2ubuntu1~22.04 deb +gnupg 2.2.27-3ubuntu2.1 deb +gnupg-l10n 2.2.27-3ubuntu2.1 deb +gnupg-utils 2.2.27-3ubuntu2.1 deb +gpg 2.2.27-3ubuntu2.1 deb +gpg-agent 2.2.27-3ubuntu2.1 deb +gpg-wks-client 2.2.27-3ubuntu2.1 deb +gpg-wks-server 2.2.27-3ubuntu2.1 deb +gpgconf 2.2.27-3ubuntu2.1 deb +gpgsm 2.2.27-3ubuntu2.1 deb +gpgv 2.2.27-3ubuntu2.1 deb +grep 3.7-1build1 deb +gzip 1.10-4ubuntu4.1 deb +hostname 3.23ubuntu2 deb +init-system-helpers 1.62 deb +jq 1.6-2.1ubuntu3 deb +libacl1 2.3.1-1 deb +libapt-pkg6.0 2.4.8 deb +libassuan0 2.5.5-1build1 deb +libattr1 1:2.5.1-1build1 deb +libaudit-common 1:3.0.7-1build1 deb +libaudit1 1:3.0.7-1build1 deb +libblkid1 2.37.2-4ubuntu3 deb +libbrotli1 1.0.9-2build6 deb +libbsd0 0.11.5-1 deb +libbz2-1.0 1.0.8-5build1 deb +libc-bin 2.35-0ubuntu3.1 deb +libc6 2.35-0ubuntu3.1 deb +libcap-ng0 0.7.9-2.2build3 deb +libcap2 1:2.44-1build3 deb +libcom-err2 1.46.5-2ubuntu1.1 deb +libcrypt1 1:4.4.27-1 deb +libcurl4 7.81.0-1ubuntu1.8 deb +libdb5.3 5.3.28+dfsg1-0.8ubuntu3 deb +libdebconfclient0 0.261ubuntu1 deb +libext2fs2 1.46.5-2ubuntu1.1 deb +libffi8 3.4.2-4 deb +libgcc-s1 12.1.0-2ubuntu1~22.04 deb +libgcrypt20 1.9.4-3ubuntu3 deb +libgmp10 2:6.2.1+dfsg-3ubuntu1 deb +libgnutls30 3.7.3-4ubuntu1.1 deb +libgpg-error0 1.43-3 deb +libgssapi-krb5-2 1.19.2-2ubuntu0.1 deb +libhogweed6 3.7.3-1build2 deb +libidn2-0 2.3.2-2build1 deb +libjq1 1.6-2.1ubuntu3 deb +libk5crypto3 1.19.2-2ubuntu0.1 deb +libkeyutils1 1.6.1-2ubuntu3 deb +libkrb5-3 1.19.2-2ubuntu0.1 deb +libkrb5support0 1.19.2-2ubuntu0.1 deb +libksba8 1.6.0-2ubuntu0.2 deb +libldap-2.5-0 2.5.13+dfsg-0ubuntu0.22.04.1 deb +libldap-common 2.5.13+dfsg-0ubuntu0.22.04.1 deb +liblz4-1 1.9.3-2build2 deb +liblzma5 5.2.5-2ubuntu1 deb +libmd0 1.0.4-1build1 deb +libmount1 2.37.2-4ubuntu3 deb +libncurses6 6.3-2 deb +libncursesw6 6.3-2 deb +libnettle8 3.7.3-1build2 deb +libnghttp2-14 1.43.0-1build3 deb +libnpth0 1.6-3build2 deb +libnsl2 1.3.0-2build2 deb +libonig5 6.9.7.1-2build1 deb +libp11-kit0 0.24.0-6build1 deb +libpam-modules 1.4.0-11ubuntu2.3 deb +libpam-modules-bin 1.4.0-11ubuntu2.3 deb +libpam-runtime 1.4.0-11ubuntu2.3 deb +libpam0g 1.4.0-11ubuntu2.3 deb +libpcre2-8-0 10.39-3ubuntu0.1 deb +libpcre3 2:8.39-13ubuntu0.22.04.1 deb +libprocps8 2:3.3.17-6ubuntu2 deb +libpsl5 0.21.0-1.2build2 deb +libreadline8 8.1.2-1 deb +librtmp1 2.4+20151223.gitfa8646d.1-2build4 deb +libsasl2-2 2.1.27+dfsg2-3ubuntu1.2 deb +libsasl2-modules 2.1.27+dfsg2-3ubuntu1.2 deb +libsasl2-modules-db 2.1.27+dfsg2-3ubuntu1.2 deb +libseccomp2 2.5.3-2ubuntu2 deb +libselinux1 3.3-1build2 deb +libsemanage-common 3.3-1build2 deb +libsemanage2 3.3-1build2 deb +libsepol2 3.3-1build1 deb +libsmartcols1 2.37.2-4ubuntu3 deb +libsqlite3-0 3.37.2-2ubuntu0.1 deb +libss2 1.46.5-2ubuntu1.1 deb +libssh-4 0.9.6-2build1 deb +libssl3 3.0.2-0ubuntu1.8 deb +libstdc++6 12.1.0-2ubuntu1~22.04 deb +libsystemd0 249.11-0ubuntu3.6 deb +libtasn1-6 4.18.0-4build1 deb +libtinfo6 6.3-2 deb +libtirpc-common 1.3.2-2ubuntu0.1 deb +libtirpc3 1.3.2-2ubuntu0.1 deb +libudev1 249.11-0ubuntu3.6 deb +libunistring2 1.0-1 deb +libuuid1 2.37.2-4ubuntu3 deb +libxxhash0 0.8.1-1 deb +libzstd1 1.4.8+dfsg-3build1 deb +locales 2.35-0ubuntu3.1 deb +login 1:4.8.1-2ubuntu2.1 deb +logsave 1.46.5-2ubuntu1.1 deb +lsb-base 11.1.0ubuntu4 deb +mawk 1.3.4.20200120-3 deb +mount 2.37.2-4ubuntu3 deb +ncurses-base 6.3-2 deb +ncurses-bin 6.3-2 deb +netcat 1.218-4ubuntu1 deb +netcat-openbsd 1.218-4ubuntu1 deb +openssl 3.0.2-0ubuntu1.8 deb +passwd 1:4.8.1-2ubuntu2.1 deb +perl-base 5.34.0-3ubuntu1.1 deb +pinentry-curses 1.1.1-1build2 deb +procps 2:3.3.17-6ubuntu2 deb +publicsuffix 20211207.1025-1 deb +readline-common 8.1.2-1 deb +sed 4.8-1ubuntu2 deb +sensible-utils 0.0.17 deb +sysvinit-utils 3.01-1ubuntu1 deb +tar 1.34+dfsg-1build3 deb +tzdata 2022g-0ubuntu0.22.04.1 deb +ubuntu-keyring 2021.03.26 deb +usrmerge 25ubuntu2 deb +util-linux 2.37.2-4ubuntu3 deb +zlib1g 1:1.2.11.dfsg-2ubuntu9.2 deb From 22c03eb186b9f2ee1e5ec2854cfd80a2d5b5ea59 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Tue, 7 Mar 2023 05:48:49 +0100 Subject: [PATCH 100/124] 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 209f58bf..8e3f5d10 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -57,7 +57,7 @@ libffi8 3.4.2-4 deb libgcc-s1 12.1.0-2ubuntu1~22.04 deb libgcrypt20 1.9.4-3ubuntu3 deb libgmp10 2:6.2.1+dfsg-3ubuntu1 deb -libgnutls30 3.7.3-4ubuntu1.1 deb +libgnutls30 3.7.3-4ubuntu1.2 deb libgpg-error0 1.43-3 deb libgssapi-krb5-2 1.19.2-2ubuntu0.1 deb libhogweed6 3.7.3-1build2 deb @@ -136,7 +136,7 @@ readline-common 8.1.2-1 deb sed 4.8-1ubuntu2 deb sensible-utils 0.0.17 deb sysvinit-utils 3.01-1ubuntu1 deb -tar 1.34+dfsg-1build3 deb +tar 1.34+dfsg-1ubuntu0.1.22.04.1 deb tzdata 2022g-0ubuntu0.22.04.1 deb ubuntu-keyring 2021.03.26 deb usrmerge 25ubuntu2 deb From da8a708b7f76c1e2745078d34f1088400a4f2e5e Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Tue, 21 Mar 2023 05:46:32 +0100 Subject: [PATCH 101/124] 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 8e3f5d10..1a26737a 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -8,7 +8,7 @@ bash 5.1-6ubuntu1 deb bsdutils 1:2.37.2-4ubuntu3 deb ca-certificates 20211016ubuntu0.22.04.1 deb coreutils 8.32-4.1ubuntu1 deb -curl 7.81.0-1ubuntu1.8 deb +curl 7.81.0-1ubuntu1.10 deb dash 0.5.11+git20210903+057cd650a4ed-3build1 deb debconf 1.5.79ubuntu1 deb debianutils 5.5-1ubuntu2 deb @@ -49,7 +49,7 @@ libcap-ng0 0.7.9-2.2build3 deb libcap2 1:2.44-1build3 deb libcom-err2 1.46.5-2ubuntu1.1 deb libcrypt1 1:4.4.27-1 deb -libcurl4 7.81.0-1ubuntu1.8 deb +libcurl4 7.81.0-1ubuntu1.10 deb libdb5.3 5.3.28+dfsg1-0.8ubuntu3 deb libdebconfclient0 0.261ubuntu1 deb libext2fs2 1.46.5-2ubuntu1.1 deb @@ -68,8 +68,8 @@ libkeyutils1 1.6.1-2ubuntu3 deb libkrb5-3 1.19.2-2ubuntu0.1 deb libkrb5support0 1.19.2-2ubuntu0.1 deb libksba8 1.6.0-2ubuntu0.2 deb -libldap-2.5-0 2.5.13+dfsg-0ubuntu0.22.04.1 deb -libldap-common 2.5.13+dfsg-0ubuntu0.22.04.1 deb +libldap-2.5-0 2.5.14+dfsg-0ubuntu0.22.04.1 deb +libldap-common 2.5.14+dfsg-0ubuntu0.22.04.1 deb liblz4-1 1.9.3-2build2 deb liblzma5 5.2.5-2ubuntu1 deb libmd0 1.0.4-1build1 deb @@ -106,12 +106,12 @@ libss2 1.46.5-2ubuntu1.1 deb libssh-4 0.9.6-2build1 deb libssl3 3.0.2-0ubuntu1.8 deb libstdc++6 12.1.0-2ubuntu1~22.04 deb -libsystemd0 249.11-0ubuntu3.6 deb +libsystemd0 249.11-0ubuntu3.7 deb libtasn1-6 4.18.0-4build1 deb libtinfo6 6.3-2 deb libtirpc-common 1.3.2-2ubuntu0.1 deb libtirpc3 1.3.2-2ubuntu0.1 deb -libudev1 249.11-0ubuntu3.6 deb +libudev1 249.11-0ubuntu3.7 deb libunistring2 1.0-1 deb libuuid1 2.37.2-4ubuntu3 deb libxxhash0 0.8.1-1 deb From c85d2529795fb4cc2570e75ca5314f9595773510 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Tue, 4 Apr 2023 04:44:34 +0000 Subject: [PATCH 102/124] Bot Updating Templated Files --- Jenkinsfile | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4d5ff480..f793e900 100755 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -56,7 +56,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/stale.yml ./.github/workflows/call_invalid_helper.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 ./.github/workflows/package_trigger.yml' } script{ env.LS_RELEASE_NUMBER = sh( @@ -228,17 +228,14 @@ pipeline { } sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-shellcheck/master/checkrun.sh | /bin/bash''' sh '''#! /bin/bash - set -e - docker pull ghcr.io/linuxserver/lsiodev-spaces-file-upload:latest docker run --rm \ - -e DESTINATION=\"${IMAGE}/${META_TAG}/shellcheck-result.xml\" \ - -e FILE_NAME="shellcheck-result.xml" \ - -e MIMETYPE="text/xml" \ - -v ${WORKSPACE}:/mnt \ - -e SECRET_KEY=\"${S3_SECRET}\" \ - -e ACCESS_KEY=\"${S3_KEY}\" \ - -t ghcr.io/linuxserver/lsiodev-spaces-file-upload:latest \ - python /upload.py''' + -v ${WORKSPACE}:/mnt \ + -e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \ + -e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \ + ghcr.io/linuxserver/baseimage-alpine:3.17 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\ + apk add --no-cache py3-pip && \ + pip install s3cmd && \ + s3cmd put --no-preserve --acl-public -m text/xml /mnt/shellcheck-result.xml s3://ci-tests.linuxserver.io/${IMAGE}/${META_TAG}/shellcheck-result.xml" || :''' } } } @@ -275,7 +272,7 @@ pipeline { echo "Jenkinsfile is up to date." fi # Stage 2 - Delete old templates - OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md\n.github/ISSUE_TEMPLATE/issue.bug.md\n.github/ISSUE_TEMPLATE/issue.feature.md" + 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" for i in ${OLD_TEMPLATES}; do if [[ -f "${i}" ]]; then TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}" @@ -292,7 +289,7 @@ pipeline { git commit -m 'Bot Updating Templated Files' git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} - echo "Deleting old templates" + echo "Deleting old and deprecated templates" rm -Rf ${TEMPDIR} exit 0 else @@ -652,7 +649,7 @@ pipeline { -e BASE=\"${DIST_IMAGE}\" \ -e SECRET_KEY=\"${S3_SECRET}\" \ -e ACCESS_KEY=\"${S3_KEY}\" \ - -e DOCKER_ENV=\"${CI_DOCKERENV}\" \ + -e DOCKER_ENV=\"LSIO_FIRST_PARTY=true|${CI_DOCKERENV}\" \ -e WEB_SCREENSHOT=\"${CI_WEB}\" \ -e WEB_AUTH=\"${CI_AUTH}\" \ -e WEB_PATH=\"${CI_WEBPATH}\" \ From c07cfd1ed9e9bdcfc5a32d9f7f0099fec79e9c43 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Tue, 4 Apr 2023 04:45:51 +0000 Subject: [PATCH 103/124] Bot Updating Templated Files --- .github/workflows/call_invalid_helper.yml | 12 ------------ .github/workflows/stale.yml | 23 ----------------------- 2 files changed, 35 deletions(-) delete mode 100755 .github/workflows/call_invalid_helper.yml delete mode 100755 .github/workflows/stale.yml diff --git a/.github/workflows/call_invalid_helper.yml b/.github/workflows/call_invalid_helper.yml deleted file mode 100755 index 773767c2..00000000 --- a/.github/workflows/call_invalid_helper.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: Comment on invalid interaction -on: - issues: - types: - - labeled -jobs: - add-comment-on-invalid: - if: github.event.label.name == 'invalid' - permissions: - issues: write - uses: linuxserver/github-workflows/.github/workflows/invalid-interaction-helper.yml@v1 - secrets: inherit diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml deleted file mode 100755 index 73dfe45a..00000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Mark stale issues and pull requests - -on: - schedule: - - cron: "30 1 * * *" - -jobs: - stale: - - runs-on: ubuntu-latest - - steps: - - uses: actions/stale@v6.0.1 - with: - stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions." - stale-pr-message: "This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions." - stale-issue-label: 'no-issue-activity' - stale-pr-label: 'no-pr-activity' - days-before-stale: 30 - days-before-close: 365 - exempt-issue-labels: 'awaiting-approval,work-in-progress' - exempt-pr-labels: 'awaiting-approval,work-in-progress' - repo-token: ${{ secrets.GITHUB_TOKEN }} From a89b3bbc8f4c61367e24c90368fc28a2b61012bd Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Tue, 4 Apr 2023 04:47:06 +0000 Subject: [PATCH 104/124] Bot Updating Templated Files --- .github/workflows/call_issue_pr_tracker.yml | 14 ++++++++++++++ .github/workflows/call_issues_cron.yml | 13 +++++++++++++ .github/workflows/package_trigger_scheduler.yml | 2 +- .github/workflows/permissions.yml | 3 ++- 4 files changed, 30 insertions(+), 2 deletions(-) create mode 100755 .github/workflows/call_issue_pr_tracker.yml create mode 100755 .github/workflows/call_issues_cron.yml diff --git a/.github/workflows/call_issue_pr_tracker.yml b/.github/workflows/call_issue_pr_tracker.yml new file mode 100755 index 00000000..87243e2c --- /dev/null +++ b/.github/workflows/call_issue_pr_tracker.yml @@ -0,0 +1,14 @@ +name: Issue & PR Tracker + +on: + issues: + types: [opened,reopened,labeled,unlabeled] + pull_request_target: + types: [opened,reopened,review_requested,review_request_removed,labeled,unlabeled] + +jobs: + manage-project: + permissions: + issues: write + uses: linuxserver/github-workflows/.github/workflows/issue-pr-tracker.yml@v1 + secrets: inherit diff --git a/.github/workflows/call_issues_cron.yml b/.github/workflows/call_issues_cron.yml new file mode 100755 index 00000000..b1b223cc --- /dev/null +++ b/.github/workflows/call_issues_cron.yml @@ -0,0 +1,13 @@ +name: Mark stale issues and pull requests +on: + schedule: + - cron: '13 7 * * *' + workflow_dispatch: + +jobs: + stale: + permissions: + issues: write + pull-requests: write + uses: linuxserver/github-workflows/.github/workflows/issues-cron.yml@v1 + secrets: inherit diff --git a/.github/workflows/package_trigger_scheduler.yml b/.github/workflows/package_trigger_scheduler.yml index 46526458..08aa0db1 100644 --- a/.github/workflows/package_trigger_scheduler.yml +++ b/.github/workflows/package_trigger_scheduler.yml @@ -2,7 +2,7 @@ name: Package Trigger Scheduler on: schedule: - - cron: '34 4 * * 2' + - cron: '19 23 * * 2' workflow_dispatch: jobs: diff --git a/.github/workflows/permissions.yml b/.github/workflows/permissions.yml index 2df6b61b..1447bc55 100755 --- a/.github/workflows/permissions.yml +++ b/.github/workflows/permissions.yml @@ -1,9 +1,10 @@ name: Permission check on: - pull_request: + pull_request_target: paths: - '**/run' - '**/finish' + - '**/check' jobs: permission_check: uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1 From a4d964e13990cb65d3bed265aaf5a3dc0dcebf12 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Wed, 12 Apr 2023 01:27:25 +0200 Subject: [PATCH 105/124] 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 1a26737a..c17107ad 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -68,8 +68,8 @@ libkeyutils1 1.6.1-2ubuntu3 deb libkrb5-3 1.19.2-2ubuntu0.1 deb libkrb5support0 1.19.2-2ubuntu0.1 deb libksba8 1.6.0-2ubuntu0.2 deb -libldap-2.5-0 2.5.14+dfsg-0ubuntu0.22.04.1 deb -libldap-common 2.5.14+dfsg-0ubuntu0.22.04.1 deb +libldap-2.5-0 2.5.14+dfsg-0ubuntu0.22.04.2 deb +libldap-common 2.5.14+dfsg-0ubuntu0.22.04.2 deb liblz4-1 1.9.3-2build2 deb liblzma5 5.2.5-2ubuntu1 deb libmd0 1.0.4-1build1 deb From fe39690d802969da2a5ca11a04f8dd3088238fb0 Mon Sep 17 00:00:00 2001 From: TheSpad <git@spad.co.uk> Date: Wed, 12 Apr 2023 21:23:49 +0100 Subject: [PATCH 106/124] Add armhf deprecation notice --- root/etc/s6-overlay/s6-rc.d/init-adduser/run | 23 +++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/root/etc/s6-overlay/s6-rc.d/init-adduser/run b/root/etc/s6-overlay/s6-rc.d/init-adduser/run index b98beff1..55aeebfa 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-adduser/run +++ b/root/etc/s6-overlay/s6-rc.d/init-adduser/run @@ -27,21 +27,18 @@ User GID: $(id -g abc) ─────────────────────────────────────── " -time32="$(date +%Y)" - -if [[ "${time32}" == "1970" || "${time32}" == "1969" ]] && [ "$(uname -m)" == "armv7l" ]; then +if [[ "$(uname -m)" == "armv7l" ]] || [[ "$(uname -m)" == "armhf" ]]; then echo ' -╔═════════════════════════════════════════════════════════════════════════════╗ -║ ║ -║ Your Docker Host is running an outdated version of libseccomp ║ -║ ║ -║ To fix this, please visit https://docs.linuxserver.io/faq#libseccomp ║ -║ ║ -║ Apps will not behave correctly without this ║ -║ ║ -╚═════════════════════════════════════════════════════════════════════════════╝ +╔═════════════════════════════════════════════════════╗ +║ ║ +║ The 32-bit Arm version of this image will ║ +║ no longer be supported after 2023-07-01 ║ +║ ║ +║ See: https://linuxserver.io/armhf ║ +║ for more details ║ +║ ║ +╚═════════════════════════════════════════════════════╝ ' - sleep infinity fi lsiown abc:abc /app From 001e2441650f5950649333a5ae552e0c60ea2223 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Wed, 12 Apr 2023 16:48:42 -0500 Subject: [PATCH 107/124] 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 c17107ad..c0a15f38 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -137,7 +137,7 @@ sed 4.8-1ubuntu2 deb sensible-utils 0.0.17 deb sysvinit-utils 3.01-1ubuntu1 deb tar 1.34+dfsg-1ubuntu0.1.22.04.1 deb -tzdata 2022g-0ubuntu0.22.04.1 deb +tzdata 2023c-0ubuntu0.22.04.0 deb ubuntu-keyring 2021.03.26 deb usrmerge 25ubuntu2 deb util-linux 2.37.2-4ubuntu3 deb From 00a19c9563215f09fbf3f972bc800a6ea8c7987a Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Wed, 19 Apr 2023 01:28:14 +0200 Subject: [PATCH 108/124] 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 c0a15f38..e3d86608 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -106,12 +106,12 @@ libss2 1.46.5-2ubuntu1.1 deb libssh-4 0.9.6-2build1 deb libssl3 3.0.2-0ubuntu1.8 deb libstdc++6 12.1.0-2ubuntu1~22.04 deb -libsystemd0 249.11-0ubuntu3.7 deb +libsystemd0 249.11-0ubuntu3.9 deb libtasn1-6 4.18.0-4build1 deb libtinfo6 6.3-2 deb libtirpc-common 1.3.2-2ubuntu0.1 deb libtirpc3 1.3.2-2ubuntu0.1 deb -libudev1 249.11-0ubuntu3.7 deb +libudev1 249.11-0ubuntu3.9 deb libunistring2 1.0-1 deb libuuid1 2.37.2-4ubuntu3 deb libxxhash0 0.8.1-1 deb From 0fde9dc8724748e4fa60ffda188d9af958e2d905 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Wed, 26 Apr 2023 01:26:11 +0200 Subject: [PATCH 109/124] Bot Updating Templated Files --- Jenkinsfile | 91 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 85 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f793e900..17fca8e4 100755 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -39,10 +39,11 @@ pipeline { // Setup all the basic environment variables needed for the build stage("Set ENV Variables base"){ steps{ + sh '''docker pull quay.io/skopeo/stable:v1 || : ''' script{ env.EXIT_STATUS = '' env.LS_RELEASE = sh( - script: '''docker run --rm ghcr.io/linuxserver/alexeiled-skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':jammy 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''', + script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:jammy 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''', returnStdout: true).trim() env.LS_RELEASE_NOTES = sh( script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''', @@ -226,7 +227,7 @@ pipeline { script{ env.SHELLCHECK_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/shellcheck-result.xml' } - sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-shellcheck/master/checkrun.sh | /bin/bash''' + sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-jenkins-builder/master/checkrun.sh | /bin/bash''' sh '''#! /bin/bash docker run --rm \ -v ${WORKSPACE}:/mnt \ @@ -353,6 +354,26 @@ pipeline { } } } + // If this is a jammy build check the S6 service file perms + stage("Check S6 Service file Permissions"){ + when { + branch "jammy" + environment name: 'CHANGE_ID', value: '' + environment name: 'EXIT_STATUS', value: '' + } + steps { + script{ + sh '''#! /bin/bash + WRONG_PERM=$(find ./ -path "./.git" -prune -o \\( -name "run" -o -name "finish" -o -name "check" \\) -not -perm -u=x,g=x,o=x -print) + if [[ -n "${WRONG_PERM}" ]]; then + echo "The following S6 service files are missing the executable bit; canceling the faulty build: ${WRONG_PERM}" + exit 1 + else + echo "S6 service file perms look good." + fi ''' + } + } + } /* ####################### GitLab Mirroring ####################### */ @@ -627,6 +648,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' } sh '''#! /bin/bash set -e @@ -653,8 +675,6 @@ pipeline { -e WEB_SCREENSHOT=\"${CI_WEB}\" \ -e WEB_AUTH=\"${CI_AUTH}\" \ -e WEB_PATH=\"${CI_WEBPATH}\" \ - -e DO_REGION="ams3" \ - -e DO_BUCKET="lsio-ci" \ -t ghcr.io/linuxserver/ci:latest \ python3 test_build.py''' } @@ -904,8 +924,67 @@ pipeline { environment name: 'EXIT_STATUS', value: '' } steps { - sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST 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}'"}' ''' + 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" + } + + # 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}\\"}"''' + } } } From d0f3c09fa5cb22debd1e84ec824b7473a513d538 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Wed, 26 Apr 2023 01:27:45 +0200 Subject: [PATCH 110/124] Bot Updating Templated Files --- .github/workflows/call_issue_pr_tracker.yml | 6 ++++-- .github/workflows/external_trigger.yml | 1 + .../workflows/external_trigger_scheduler.yml | 18 ++++++++++-------- .github/workflows/package_trigger.yml | 4 ++++ .../workflows/package_trigger_scheduler.yml | 8 ++++---- 5 files changed, 23 insertions(+), 14 deletions(-) diff --git a/.github/workflows/call_issue_pr_tracker.yml b/.github/workflows/call_issue_pr_tracker.yml index 87243e2c..2c307843 100755 --- a/.github/workflows/call_issue_pr_tracker.yml +++ b/.github/workflows/call_issue_pr_tracker.yml @@ -2,9 +2,11 @@ name: Issue & PR Tracker on: issues: - types: [opened,reopened,labeled,unlabeled] + types: [opened,reopened,labeled,unlabeled,closed] pull_request_target: - types: [opened,reopened,review_requested,review_request_removed,labeled,unlabeled] + types: [opened,reopened,review_requested,review_request_removed,labeled,unlabeled,closed] + pull_request_review: + types: [submitted,edited,dismissed] jobs: manage-project: diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index b9f13945..238f8658 100644 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -13,4 +13,5 @@ jobs: if: github.ref == 'refs/heads/jammy' run: | echo "**** No external release, exiting ****" + echo "No external release, exiting" >> $GITHUB_STEP_SUMMARY exit 0 diff --git a/.github/workflows/external_trigger_scheduler.yml b/.github/workflows/external_trigger_scheduler.yml index 3388a8b1..1f4b1d51 100644 --- a/.github/workflows/external_trigger_scheduler.yml +++ b/.github/workflows/external_trigger_scheduler.yml @@ -2,7 +2,7 @@ name: External Trigger Scheduler on: schedule: - - cron: '40 * * * *' + - cron: '18 * * * *' workflow_dispatch: jobs: @@ -17,18 +17,18 @@ jobs: run: | echo "**** Branches found: ****" git for-each-ref --format='%(refname:short)' refs/remotes - echo "**** Pulling the yq docker image ****" - docker pull ghcr.io/linuxserver/yq for br in $(git for-each-ref --format='%(refname:short)' refs/remotes) do br=$(echo "$br" | sed 's|origin/||g') echo "**** Evaluating branch ${br} ****" - ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-ubuntu/${br}/jenkins-vars.yml \ - | docker run --rm -i --entrypoint yq ghcr.io/linuxserver/yq -r .ls_branch) - if [ "$br" == "$ls_branch" ]; then - echo "**** Branch ${br} appears to be live; checking workflow. ****" + ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-ubuntu/${br}/jenkins-vars.yml) + ls_branch=$(echo "${ls_jenkins_vars}" | yq -r '.ls_branch') + ls_trigger=$(echo "${ls_jenkins_vars}" | yq -r '.external_type') + if [[ "${br}" == "${ls_branch}" ]] && [[ "${ls_trigger}" != "os" ]]; then + echo "**** Branch ${br} appears to be live and trigger is not os; checking workflow. ****" if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-ubuntu/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then echo "**** Workflow exists. Triggering external trigger workflow for branch ${br} ****." + echo "Triggering external trigger workflow for branch ${br}" >> $GITHUB_STEP_SUMMARY curl -iX POST \ -H "Authorization: token ${{ secrets.CR_PAT }}" \ -H "Accept: application/vnd.github.v3+json" \ @@ -36,8 +36,10 @@ jobs: https://api.github.com/repos/linuxserver/docker-baseimage-ubuntu/actions/workflows/external_trigger.yml/dispatches else echo "**** Workflow doesn't exist; skipping trigger. ****" + echo "Skipping branch ${br} due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY fi else - echo "**** ${br} appears to be a dev branch; skipping trigger. ****" + echo "**** ${br} is either a dev branch, or has no external version; skipping trigger. ****" + echo "Skipping branch ${br} due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY fi done diff --git a/.github/workflows/package_trigger.yml b/.github/workflows/package_trigger.yml index faf03fcd..37689d12 100644 --- a/.github/workflows/package_trigger.yml +++ b/.github/workflows/package_trigger.yml @@ -14,13 +14,16 @@ jobs: run: | if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_BASEIMAGE_UBUNTU_JAMMY }}" ]; then echo "**** Github secret PAUSE_PACKAGE_TRIGGER_BASEIMAGE_UBUNTU_JAMMY is set; skipping trigger. ****" + echo "Github secret \`PAUSE_PACKAGE_TRIGGER_BASEIMAGE_UBUNTU_JAMMY\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY exit 0 fi if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-ubuntu/job/jammy/lastBuild/api/json | jq -r '.building') == "true" ]; then echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****" + echo "There already seems to be an active build on Jenkins; skipping package trigger" >> $GITHUB_STEP_SUMMARY exit 0 fi echo "**** Package trigger running off of jammy branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_BASEIMAGE_UBUNTU_JAMMY\". ****" + echo "Package trigger running off of jammy branch. To disable, set a Github secret named \`PAUSE_PACKAGE_TRIGGER_BASEIMAGE_UBUNTU_JAMMY\`" >> $GITHUB_STEP_SUMMARY response=$(curl -iX POST \ https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-ubuntu/job/jammy/buildWithParameters?PACKAGE_CHECK=true \ --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") @@ -30,6 +33,7 @@ jobs: buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url') buildurl="${buildurl%$'\r'}" echo "**** Jenkins job build url: ${buildurl} ****" + echo "Jenkins job build url: ${buildurl}" >> $GITHUB_STEP_SUMMARY echo "**** Attempting to change the Jenkins job description ****" curl -iX POST \ "${buildurl}submitDescription" \ diff --git a/.github/workflows/package_trigger_scheduler.yml b/.github/workflows/package_trigger_scheduler.yml index 08aa0db1..8e27ef43 100644 --- a/.github/workflows/package_trigger_scheduler.yml +++ b/.github/workflows/package_trigger_scheduler.yml @@ -17,18 +17,16 @@ jobs: run: | echo "**** Branches found: ****" git for-each-ref --format='%(refname:short)' refs/remotes - echo "**** Pulling the yq docker image ****" - docker pull ghcr.io/linuxserver/yq for br in $(git for-each-ref --format='%(refname:short)' refs/remotes) do br=$(echo "$br" | sed 's|origin/||g') echo "**** Evaluating branch ${br} ****" - ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-ubuntu/${br}/jenkins-vars.yml \ - | docker run --rm -i --entrypoint yq ghcr.io/linuxserver/yq -r .ls_branch) + ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-ubuntu/${br}/jenkins-vars.yml | yq -r '.ls_branch') if [ "${br}" == "${ls_branch}" ]; then echo "**** Branch ${br} appears to be live; checking workflow. ****" if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-ubuntu/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then echo "**** Workflow exists. Triggering package trigger workflow for branch ${br}. ****" + 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 }}" \ @@ -38,9 +36,11 @@ jobs: sleep 30 else echo "**** Workflow doesn't exist; skipping trigger. ****" + echo "Skipping branch ${br} due to no package trigger workflow present." >> $GITHUB_STEP_SUMMARY fi else echo "**** ${br} appears to be a dev branch; skipping trigger. ****" + 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} ****" From 2312efe2c7bb6aba8ebd4886680596717dbd0b94 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Tue, 25 Apr 2023 18:30:42 -0500 Subject: [PATCH 111/124] 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 e3d86608..c3bbf7ce 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,7 +1,7 @@ NAME VERSION TYPE adduser 3.118ubuntu5 deb -apt 2.4.8 deb -apt-utils 2.4.8 deb +apt 2.4.9 deb +apt-utils 2.4.9 deb base-files 12ubuntu4.3 deb base-passwd 3.5.52build1 deb bash 5.1-6ubuntu1 deb @@ -34,7 +34,7 @@ hostname 3.23ubuntu2 deb init-system-helpers 1.62 deb jq 1.6-2.1ubuntu3 deb libacl1 2.3.1-1 deb -libapt-pkg6.0 2.4.8 deb +libapt-pkg6.0 2.4.9 deb libassuan0 2.5.5-1build1 deb libattr1 1:2.5.1-1build1 deb libaudit-common 1:3.0.7-1build1 deb @@ -126,7 +126,7 @@ ncurses-base 6.3-2 deb ncurses-bin 6.3-2 deb netcat 1.218-4ubuntu1 deb netcat-openbsd 1.218-4ubuntu1 deb -openssl 3.0.2-0ubuntu1.8 deb +openssl 3.0.2-0ubuntu1.9 deb passwd 1:4.8.1-2ubuntu2.1 deb perl-base 5.34.0-3ubuntu1.1 deb pinentry-curses 1.1.1-1build2 deb From f1aa968970c8d907d2d533cdbb0a905a9c84b709 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Tue, 2 May 2023 23:28:28 +0000 Subject: [PATCH 112/124] 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 c3bbf7ce..2f0080fe 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -104,7 +104,7 @@ libsmartcols1 2.37.2-4ubuntu3 deb libsqlite3-0 3.37.2-2ubuntu0.1 deb libss2 1.46.5-2ubuntu1.1 deb libssh-4 0.9.6-2build1 deb -libssl3 3.0.2-0ubuntu1.8 deb +libssl3 3.0.2-0ubuntu1.9 deb libstdc++6 12.1.0-2ubuntu1~22.04 deb libsystemd0 249.11-0ubuntu3.9 deb libtasn1-6 4.18.0-4build1 deb @@ -137,7 +137,7 @@ sed 4.8-1ubuntu2 deb sensible-utils 0.0.17 deb sysvinit-utils 3.01-1ubuntu1 deb tar 1.34+dfsg-1ubuntu0.1.22.04.1 deb -tzdata 2023c-0ubuntu0.22.04.0 deb +tzdata 2023c-0ubuntu0.22.04.1 deb ubuntu-keyring 2021.03.26 deb usrmerge 25ubuntu2 deb util-linux 2.37.2-4ubuntu3 deb From 2cf7d3bf35e8ae2bf1b5eb6b07ea3afd7b89956b Mon Sep 17 00:00:00 2001 From: TheSpad <git@spad.co.uk> Date: Fri, 12 May 2023 19:57:09 +0100 Subject: [PATCH 113/124] Bump s6 to 3.1.5.0 (Jammy) --- Dockerfile | 2 +- Dockerfile.aarch64 | 2 +- Dockerfile.armhf | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index c7deb473..da076d31 100644 --- a/Dockerfile +++ b/Dockerfile @@ -27,7 +27,7 @@ RUN \ /root-out/var/log/* # set version for s6 overlay -ARG S6_OVERLAY_VERSION="3.1.2.1" +ARG S6_OVERLAY_VERSION="3.1.5.0" ARG S6_OVERLAY_ARCH="x86_64" # add s6 overlay diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 01d6e10b..a4f55950 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -27,7 +27,7 @@ RUN \ /root-out/var/log/* # set version for s6 overlay -ARG S6_OVERLAY_VERSION="3.1.2.1" +ARG S6_OVERLAY_VERSION="3.1.5.0" ARG S6_OVERLAY_ARCH="aarch64" # add s6 overlay diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 6917357c..db011ffa 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -27,7 +27,7 @@ RUN \ /root-out/var/log/* # set version for s6 overlay -ARG S6_OVERLAY_VERSION="3.1.2.1" +ARG S6_OVERLAY_VERSION="3.1.5.0" ARG S6_OVERLAY_ARCH="armhf" # add s6 overlay From e8f3de54a9e7d8b4919d18edd1c673d62d1d20e2 Mon Sep 17 00:00:00 2001 From: TheSpad <git@spad.co.uk> Date: Mon, 15 May 2023 21:26:46 +0100 Subject: [PATCH 114/124] Create lsiopy venv folder and envs --- Dockerfile | 17 ++++++++++------- Dockerfile.aarch64 | 17 ++++++++++------- Dockerfile.armhf | 17 ++++++++++------- 3 files changed, 30 insertions(+), 21 deletions(-) diff --git a/Dockerfile b/Dockerfile index da076d31..e7e40162 100644 --- a/Dockerfile +++ b/Dockerfile @@ -56,12 +56,14 @@ ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-s # set environment variables ARG DEBIAN_FRONTEND="noninteractive" ENV HOME="/root" \ -LANGUAGE="en_US.UTF-8" \ -LANG="en_US.UTF-8" \ -TERM="xterm" \ -S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \ -S6_VERBOSITY=1 \ -S6_STAGE2_HOOK=/docker-mods + LANGUAGE="en_US.UTF-8" \ + LANG="en_US.UTF-8" \ + TERM="xterm" \ + S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \ + S6_VERBOSITY=1 \ + S6_STAGE2_HOOK=/docker-mods \ + VIRTUAL_ENV=/lsiopy \ + PATH="/lsiopy/bin:$PATH" # copy sources COPY sources.list /etc/apt/ @@ -119,7 +121,8 @@ RUN \ mkdir -p \ /app \ /config \ - /defaults && \ + /defaults \ + /lsiopy && \ echo "**** cleanup ****" && \ apt-get autoremove && \ apt-get clean && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index a4f55950..55f943b1 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -56,12 +56,14 @@ ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-s # set environment variables ARG DEBIAN_FRONTEND="noninteractive" ENV HOME="/root" \ -LANGUAGE="en_US.UTF-8" \ -LANG="en_US.UTF-8" \ -TERM="xterm" \ -S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \ -S6_VERBOSITY=1 \ -S6_STAGE2_HOOK=/docker-mods + LANGUAGE="en_US.UTF-8" \ + LANG="en_US.UTF-8" \ + TERM="xterm" \ + S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \ + S6_VERBOSITY=1 \ + S6_STAGE2_HOOK=/docker-mods \ + VIRTUAL_ENV=/lsiopy \ + PATH="/lsiopy/bin:$PATH" # copy sources COPY sources.list.arm /etc/apt/sources.list @@ -119,7 +121,8 @@ RUN \ mkdir -p \ /app \ /config \ - /defaults && \ + /defaults \ + /lsiopy && \ echo "**** add qemu ****" && \ curl -o \ /usr/bin/qemu-aarch64-static -L \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index db011ffa..a7859db5 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -56,12 +56,14 @@ ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-s # set environment variables ARG DEBIAN_FRONTEND="noninteractive" ENV HOME="/root" \ -LANGUAGE="en_US.UTF-8" \ -LANG="en_US.UTF-8" \ -TERM="xterm" \ -S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \ -S6_VERBOSITY=1 \ -S6_STAGE2_HOOK=/docker-mods + LANGUAGE="en_US.UTF-8" \ + LANG="en_US.UTF-8" \ + TERM="xterm" \ + S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \ + S6_VERBOSITY=1 \ + S6_STAGE2_HOOK=/docker-mods \ + VIRTUAL_ENV=/lsiopy \ + PATH="/lsiopy/bin:$PATH" # copy sources COPY sources.list.arm /etc/apt/sources.list @@ -119,7 +121,8 @@ RUN \ mkdir -p \ /app \ /config \ - /defaults && \ + /defaults \ + /lsiopy && \ echo "**** add qemu ****" && \ curl -o \ /usr/bin/qemu-arm-static -L \ From 0f236032893fb91ad4e96ec2945e550fe86ac2d2 Mon Sep 17 00:00:00 2001 From: TheSpad <git@spad.co.uk> Date: Tue, 16 May 2023 10:44:58 +0100 Subject: [PATCH 115/124] Externalise package-install --- Dockerfile | 2 + Dockerfile.aarch64 | 2 + Dockerfile.armhf | 2 + .../s6-rc.d/init-mods-package-install/run | 44 ------------------- 4 files changed, 6 insertions(+), 44 deletions(-) delete mode 100755 root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run diff --git a/Dockerfile b/Dockerfile index e7e40162..73b13667 100644 --- a/Dockerfile +++ b/Dockerfile @@ -48,10 +48,12 @@ COPY --from=rootfs-stage /root-out/ / ARG BUILD_DATE ARG VERSION ARG MODS_VERSION="v3" +ARG PKG_INST_VERSION="v1" LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="TheLamer" ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods" +ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/package-install.${PKG_INST_VERSION}" "/etc/s6-overlay/s6-rc.d/init-mods-package-install/run" # set environment variables ARG DEBIAN_FRONTEND="noninteractive" diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 55f943b1..dc1e57e9 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -48,10 +48,12 @@ COPY --from=rootfs-stage /root-out/ / ARG BUILD_DATE ARG VERSION ARG MODS_VERSION="v3" +ARG PKG_INST_VERSION="v1" LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="TheLamer" ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods" +ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/package-install.${PKG_INST_VERSION}" "/etc/s6-overlay/s6-rc.d/init-mods-package-install/run" # set environment variables ARG DEBIAN_FRONTEND="noninteractive" diff --git a/Dockerfile.armhf b/Dockerfile.armhf index a7859db5..1779de45 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -48,10 +48,12 @@ COPY --from=rootfs-stage /root-out/ / ARG BUILD_DATE ARG VERSION ARG MODS_VERSION="v3" +ARG PKG_INST_VERSION="v1" LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="TheLamer" ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods" +ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/package-install.${PKG_INST_VERSION}" "/etc/s6-overlay/s6-rc.d/init-mods-package-install/run" # set environment variables ARG DEBIAN_FRONTEND="noninteractive" diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run b/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run deleted file mode 100755 index 90b4b2e8..00000000 --- a/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/run +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/with-contenv bash -# shellcheck shell=bash - -if [[ -f "/mod-repo-packages-to-install.list" ]]; then - IFS=' ' read -ra REPO_PACKAGES <<< "$(tr '\n' ' ' < /mod-repo-packages-to-install.list)" - if [[ ${#REPO_PACKAGES[@]} -ne 0 ]] && [[ ${REPO_PACKAGES[*]} != "" ]]; then - echo "[mod-init] **** Installing all mod packages ****" - if [[ -f /usr/bin/apt ]]; then - export DEBIAN_FRONTEND="noninteractive" - apt-get update - apt-get install -y --no-install-recommends \ - "${REPO_PACKAGES[@]}" - elif [[ -f /sbin/apk ]]; then - apk add --no-cache \ - "${REPO_PACKAGES[@]}" - fi - fi -fi - -if [[ -f "/mod-pip-packages-to-install.list" ]]; then - IFS=' ' read -ra PIP_PACKAGES <<< "$(tr '\n' ' ' < /mod-pip-packages-to-install.list)" - if [[ ${#PIP_PACKAGES[@]} -ne 0 ]] && [[ ${PIP_PACKAGES[*]} != "" ]]; then - echo "[mod-init] **** Installing all pip packages ****" - python3 -m pip install -U pip wheel setuptools - PIP_ARGS=() - if [[ -f /usr/bin/apt ]]; then - PIP_ARGS+=("-f" "https://wheel-index.linuxserver.io/ubuntu/") - elif [[ -f /sbin/apk ]]; then - ALPINE_VER=$(grep main /etc/apk/repositories | sed 's|.*alpine/v||' | sed 's|/main.*||') - if [[ "${ALPINE_VER}" = "3.14" ]]; then - PIP_ARGS+=("-f" "https://wheel-index.linuxserver.io/alpine/") - else - PIP_ARGS+=("-f" "https://wheel-index.linuxserver.io/alpine-${ALPINE_VER}/") - fi - fi - python3 -m pip install \ - "${PIP_ARGS[@]}" \ - "${PIP_PACKAGES[@]}" - fi -fi - -rm -rf \ - /mod-repo-packages-to-install.list \ - /mod-pip-packages-to-install.list From 4c11b05c694c17a9733646e7f86ab41236ab43a9 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Tue, 23 May 2023 23:24:56 +0000 Subject: [PATCH 116/124] Bot Updating Templated Files --- Jenkinsfile | 101 +++++++++++++++++++++++++--------------------------- 1 file changed, 48 insertions(+), 53 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 17fca8e4..6bdb3414 100755 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -39,7 +39,12 @@ pipeline { // Setup all the basic environment variables needed for the build stage("Set ENV Variables base"){ steps{ - sh '''docker pull quay.io/skopeo/stable:v1 || : ''' + sh '''#! /bin/bash + containers=$(docker ps -aq) + if [[ -n "${containers}" ]]; then + docker stop ${containers} + fi + docker system prune -af --volumes || : ''' script{ env.EXIT_STATUS = '' env.LS_RELEASE = sh( @@ -202,12 +207,12 @@ pipeline { env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { - env.CI_TAGS = 'amd64-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + env.CI_TAGS = 'amd64-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm32v7-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST } else { - env.CI_TAGS = 'jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + env.CI_TAGS = 'jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST } - env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST - env.META_TAG = 'jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + env.META_TAG = 'jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST env.EXT_RELEASE_TAG = 'jammy-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/' @@ -405,8 +410,7 @@ pipeline { } steps{ sh '''#! /bin/bash - set -e - PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/baseimage-ubuntu") | .uuid') + PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/baseimage-ubuntu") | .uuid' || :) if [ -z "${PACKAGE_UUID}" ]; then echo "Adding package to Scarf.sh" curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \ @@ -513,9 +517,12 @@ pipeline { retry(5) { sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}" } - sh '''docker rmi \ - ${IMAGE}:arm32v7-${META_TAG} \ - ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :''' + sh '''#! /bin/bash + containers=$(docker ps -aq) + if [[ -n "${containers}" ]]; then + docker stop ${containers} + fi + docker system prune -af --volumes || : ''' } } stage('Build ARM64') { @@ -547,9 +554,12 @@ pipeline { retry(5) { sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" } - sh '''docker rmi \ - ${IMAGE}:arm64v8-${META_TAG} \ - ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :''' + sh '''#! /bin/bash + containers=$(docker ps -aq) + if [[ -n "${containers}" ]]; then + docker stop ${containers} + fi + docker system prune -af --volumes || : ''' } } } @@ -727,17 +737,6 @@ pipeline { done ''' } - sh '''#! /bin/bash - for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do - docker rmi \ - ${DELETEIMAGE}:${META_TAG} \ - ${DELETEIMAGE}:${EXT_RELEASE_TAG} \ - ${DELETEIMAGE}:jammy || : - if [ -n "${SEMVER}" ]; then - docker rmi ${DELETEIMAGE}:${SEMVER} || : - fi - done - ''' } } } @@ -831,25 +830,6 @@ pipeline { done ''' } - sh '''#! /bin/bash - for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do - docker rmi \ - ${DELETEIMAGE}:arm32v7-${META_TAG} \ - ${DELETEIMAGE}:arm32v7-jammy \ - ${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \ - ${DELETEIMAGE}:arm64v8-${META_TAG} \ - ${DELETEIMAGE}:arm64v8-jammy \ - ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || : - if [ -n "${SEMVER}" ]; then - docker rmi \ - ${DELETEIMAGE}:arm32v7-${SEMVER} \ - ${DELETEIMAGE}:arm64v8-${SEMVER} || : - fi - done - docker rmi \ - ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \ - ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || : - ''' } } } @@ -920,7 +900,6 @@ pipeline { stage('Pull Request Comment') { when { not {environment name: 'CHANGE_ID', value: ''} - environment name: 'CI', value: 'true' environment name: 'EXIT_STATUS', value: '' } steps { @@ -974,16 +953,24 @@ pipeline { echo "$escaped_table" } - # Retrieve JSON data from URL - data=$(get_json "$CI_JSON_URL") - # Create table from JSON data - table=$(build_table "$data") - echo -e "$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}\\"}"''' + 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 + ''' } } @@ -1010,6 +997,14 @@ pipeline { } } cleanup { + sh '''#! /bin/bash + echo "Performing docker system prune!!" + containers=$(docker ps -aq) + if [[ -n "${containers}" ]]; then + docker stop ${containers} + fi + docker system prune -af --volumes || : + ''' cleanWs() } } From 30b1306f25e8fffc593b343616cc9b54eea9d5e6 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Tue, 30 May 2023 23:25:59 +0000 Subject: [PATCH 117/124] 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 2f0080fe..e76b127c 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -6,7 +6,7 @@ base-files 12ubuntu4.3 deb base-passwd 3.5.52build1 deb bash 5.1-6ubuntu1 deb bsdutils 1:2.37.2-4ubuntu3 deb -ca-certificates 20211016ubuntu0.22.04.1 deb +ca-certificates 20230311ubuntu0.22.04.1 deb coreutils 8.32-4.1ubuntu1 deb curl 7.81.0-1ubuntu1.10 deb dash 0.5.11+git20210903+057cd650a4ed-3build1 deb @@ -126,7 +126,7 @@ ncurses-base 6.3-2 deb ncurses-bin 6.3-2 deb netcat 1.218-4ubuntu1 deb netcat-openbsd 1.218-4ubuntu1 deb -openssl 3.0.2-0ubuntu1.9 deb +openssl 3.0.2-0ubuntu1.10 deb passwd 1:4.8.1-2ubuntu2.1 deb perl-base 5.34.0-3ubuntu1.1 deb pinentry-curses 1.1.1-1build2 deb From 4773a43519b1819078de1ff3a8efcb6681098aa5 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Tue, 6 Jun 2023 23:27:05 +0000 Subject: [PATCH 118/124] 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 e76b127c..ab4d95d5 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -14,7 +14,7 @@ debconf 1.5.79ubuntu1 deb debianutils 5.5-1ubuntu2 deb diffutils 1:3.8-0ubuntu2 deb dirmngr 2.2.27-3ubuntu2.1 deb -dpkg 1.21.1ubuntu2.1 deb +dpkg 1.21.1ubuntu2.2 deb e2fsprogs 1.46.5-2ubuntu1.1 deb findutils 4.8.0-1ubuntu3 deb gcc-12-base 12.1.0-2ubuntu1~22.04 deb @@ -59,14 +59,14 @@ libgcrypt20 1.9.4-3ubuntu3 deb libgmp10 2:6.2.1+dfsg-3ubuntu1 deb libgnutls30 3.7.3-4ubuntu1.2 deb libgpg-error0 1.43-3 deb -libgssapi-krb5-2 1.19.2-2ubuntu0.1 deb +libgssapi-krb5-2 1.19.2-2ubuntu0.2 deb libhogweed6 3.7.3-1build2 deb libidn2-0 2.3.2-2build1 deb libjq1 1.6-2.1ubuntu3 deb -libk5crypto3 1.19.2-2ubuntu0.1 deb +libk5crypto3 1.19.2-2ubuntu0.2 deb libkeyutils1 1.6.1-2ubuntu3 deb -libkrb5-3 1.19.2-2ubuntu0.1 deb -libkrb5support0 1.19.2-2ubuntu0.1 deb +libkrb5-3 1.19.2-2ubuntu0.2 deb +libkrb5support0 1.19.2-2ubuntu0.2 deb libksba8 1.6.0-2ubuntu0.2 deb libldap-2.5-0 2.5.14+dfsg-0ubuntu0.22.04.2 deb libldap-common 2.5.14+dfsg-0ubuntu0.22.04.2 deb @@ -74,8 +74,8 @@ liblz4-1 1.9.3-2build2 deb liblzma5 5.2.5-2ubuntu1 deb libmd0 1.0.4-1build1 deb libmount1 2.37.2-4ubuntu3 deb -libncurses6 6.3-2 deb -libncursesw6 6.3-2 deb +libncurses6 6.3-2ubuntu0.1 deb +libncursesw6 6.3-2ubuntu0.1 deb libnettle8 3.7.3-1build2 deb libnghttp2-14 1.43.0-1build3 deb libnpth0 1.6-3build2 deb @@ -103,12 +103,12 @@ libsepol2 3.3-1build1 deb libsmartcols1 2.37.2-4ubuntu3 deb libsqlite3-0 3.37.2-2ubuntu0.1 deb libss2 1.46.5-2ubuntu1.1 deb -libssh-4 0.9.6-2build1 deb -libssl3 3.0.2-0ubuntu1.9 deb +libssh-4 0.9.6-2ubuntu0.22.04.1 deb +libssl3 3.0.2-0ubuntu1.10 deb libstdc++6 12.1.0-2ubuntu1~22.04 deb libsystemd0 249.11-0ubuntu3.9 deb libtasn1-6 4.18.0-4build1 deb -libtinfo6 6.3-2 deb +libtinfo6 6.3-2ubuntu0.1 deb libtirpc-common 1.3.2-2ubuntu0.1 deb libtirpc3 1.3.2-2ubuntu0.1 deb libudev1 249.11-0ubuntu3.9 deb @@ -122,13 +122,13 @@ logsave 1.46.5-2ubuntu1.1 deb lsb-base 11.1.0ubuntu4 deb mawk 1.3.4.20200120-3 deb mount 2.37.2-4ubuntu3 deb -ncurses-base 6.3-2 deb -ncurses-bin 6.3-2 deb +ncurses-base 6.3-2ubuntu0.1 deb +ncurses-bin 6.3-2ubuntu0.1 deb netcat 1.218-4ubuntu1 deb netcat-openbsd 1.218-4ubuntu1 deb openssl 3.0.2-0ubuntu1.10 deb passwd 1:4.8.1-2ubuntu2.1 deb -perl-base 5.34.0-3ubuntu1.1 deb +perl-base 5.34.0-3ubuntu1.2 deb pinentry-curses 1.1.1-1build2 deb procps 2:3.3.17-6ubuntu2 deb publicsuffix 20211207.1025-1 deb @@ -137,7 +137,7 @@ sed 4.8-1ubuntu2 deb sensible-utils 0.0.17 deb sysvinit-utils 3.01-1ubuntu1 deb tar 1.34+dfsg-1ubuntu0.1.22.04.1 deb -tzdata 2023c-0ubuntu0.22.04.1 deb +tzdata 2023c-0ubuntu0.22.04.2 deb ubuntu-keyring 2021.03.26 deb usrmerge 25ubuntu2 deb util-linux 2.37.2-4ubuntu3 deb From a55df6520f43e22770ed6f90fa2e66bbeab98cd1 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Tue, 27 Jun 2023 23:30:43 +0000 Subject: [PATCH 119/124] 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 ab4d95d5..115f7f25 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -46,7 +46,7 @@ libbz2-1.0 1.0.8-5build1 deb libc-bin 2.35-0ubuntu3.1 deb libc6 2.35-0ubuntu3.1 deb libcap-ng0 0.7.9-2.2build3 deb -libcap2 1:2.44-1build3 deb +libcap2 1:2.44-1ubuntu0.22.04.1 deb libcom-err2 1.46.5-2ubuntu1.1 deb libcrypt1 1:4.4.27-1 deb libcurl4 7.81.0-1ubuntu1.10 deb From 11d753db94a24cf9c96c8f04954edd142acf5d3a Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Tue, 4 Jul 2023 23:28:52 +0000 Subject: [PATCH 120/124] Bot Updating Templated Files --- Jenkinsfile | 82 +++++++++++++---------------------------------------- 1 file changed, 20 insertions(+), 62 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 6bdb3414..fafa5189 100755 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -161,7 +161,7 @@ pipeline { env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { - env.CI_TAGS = 'amd64-jammy-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-jammy-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-jammy-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + env.CI_TAGS = 'amd64-jammy-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-jammy-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER } else { env.CI_TAGS = 'jammy-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER } @@ -184,7 +184,7 @@ pipeline { env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { - env.CI_TAGS = 'amd64-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + env.CI_TAGS = 'amd64-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA } else { env.CI_TAGS = 'jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA } @@ -207,7 +207,7 @@ pipeline { env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { - env.CI_TAGS = 'amd64-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm32v7-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + env.CI_TAGS = 'amd64-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST } else { env.CI_TAGS = 'jammy-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST } @@ -278,7 +278,7 @@ pipeline { echo "Jenkinsfile is up to date." fi # 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 Dockerfile.armhf" for i in ${OLD_TEMPLATES}; do if [[ -f "${i}" ]]; then TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}" @@ -314,12 +314,13 @@ pipeline { mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || : + cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || : cd ${TEMPDIR}/repo/${LS_REPO}/ if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then echo ".jenkins-external" >> .gitignore git add .gitignore fi - git add ${TEMPLATED_FILES} + git add readme-vars.yml ${TEMPLATED_FILES} git commit -m 'Bot Updating Templated Files' git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} @@ -488,43 +489,6 @@ pipeline { --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." } } - stage('Build ARMHF') { - agent { - label 'ARMHF' - } - 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 "docker buildx build \ - --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \ - --label \"org.opencontainers.image.authors=linuxserver.io\" \ - --label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-baseimage-ubuntu/packages\" \ - --label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-baseimage-ubuntu\" \ - --label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-baseimage-ubuntu\" \ - --label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \ - --label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \ - --label \"org.opencontainers.image.vendor=linuxserver.io\" \ - --label \"org.opencontainers.image.licenses=GPL-3.0-only\" \ - --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ - --label \"org.opencontainers.image.title=Baseimage-ubuntu\" \ - --label \"org.opencontainers.image.description=baseimage-ubuntu image by linuxserver.io\" \ - --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} --platform=linux/arm/v7 \ - --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." - sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}" - retry(5) { - sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}" - } - sh '''#! /bin/bash - containers=$(docker ps -aq) - if [[ -n "${containers}" ]]; then - docker stop ${containers} - fi - docker system prune -af --volumes || : ''' - } - } stage('Build ARM64') { agent { label 'ARM64' @@ -664,9 +628,7 @@ pipeline { set -e docker pull ghcr.io/linuxserver/ci:latest if [ "${MULTIARCH}" == "true" ]; then - docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} - docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG} docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} fi docker run --rm \ @@ -769,8 +731,6 @@ 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 [ "${CI}" == "false" ]; then - docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} - docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG} docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} fi @@ -778,49 +738,47 @@ pipeline { docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-jammy docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} - docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} - docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-jammy - docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-jammy 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}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${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-jammy - docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG} - docker push ${MANIFESTIMAGE}:arm32v7-jammy - docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker push ${MANIFESTIMAGE}:arm64v8-jammy docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} if [ -n "${SEMVER}" ]; then docker push ${MANIFESTIMAGE}:amd64-${SEMVER} - docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER} docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER} fi docker manifest push --purge ${MANIFESTIMAGE}:jammy || : - docker manifest create ${MANIFESTIMAGE}:jammy ${MANIFESTIMAGE}:amd64-jammy ${MANIFESTIMAGE}:arm32v7-jammy ${MANIFESTIMAGE}:arm64v8-jammy - docker manifest annotate ${MANIFESTIMAGE}:jammy ${MANIFESTIMAGE}:arm32v7-jammy --os linux --arch arm + docker manifest create ${MANIFESTIMAGE}:jammy ${MANIFESTIMAGE}:amd64-jammy ${MANIFESTIMAGE}:arm64v8-jammy docker manifest annotate ${MANIFESTIMAGE}:jammy ${MANIFESTIMAGE}:arm64v8-jammy --os linux --arch arm64 --variant v8 docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || : - docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} - docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm + docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8 docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || : - docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} - docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm + docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8 if [ -n "${SEMVER}" ]; then docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || : - docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} - docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm + docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8 fi + token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token') + digest=$(curl -s \ + --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ + --header "Authorization: Bearer ${token}" \ + "https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-jammy") + if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then + docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-jammy || : + docker manifest create ${MANIFESTIMAGE}:arm32v7-jammy ${MANIFESTIMAGE}:amd64-jammy + docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-jammy + fi docker manifest push --purge ${MANIFESTIMAGE}:jammy docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} From 71502cc58ab1554fefe5fddbaf8bfee60501d96a Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Tue, 4 Jul 2023 23:31:08 +0000 Subject: [PATCH 121/124] Bot Updating Templated Files --- Dockerfile.armhf | 145 ----------------------------------------------- 1 file changed, 145 deletions(-) delete mode 100644 Dockerfile.armhf diff --git a/Dockerfile.armhf b/Dockerfile.armhf deleted file mode 100644 index 1779de45..00000000 --- a/Dockerfile.armhf +++ /dev/null @@ -1,145 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM alpine:3.17 as rootfs-stage - -# environment -ENV REL=jammy -ENV ARCH=armhf - -# install packages -RUN \ - apk add --no-cache \ - bash \ - curl \ - tzdata \ - xz - -# grab base tarball -RUN \ - mkdir /root-out && \ - curl -o \ - /rootfs.tar.gz -L \ - https://partner-images.canonical.com/core/${REL}/current/ubuntu-${REL}-core-cloudimg-${ARCH}-root.tar.gz && \ - tar xf \ - /rootfs.tar.gz -C \ - /root-out && \ - rm -rf \ - /root-out/var/log/* - -# set version for s6 overlay -ARG S6_OVERLAY_VERSION="3.1.5.0" -ARG S6_OVERLAY_ARCH="armhf" - -# add s6 overlay -ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz /tmp -RUN tar -C /root-out -Jxpf /tmp/s6-overlay-noarch.tar.xz -ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz /tmp -RUN tar -C /root-out -Jxpf /tmp/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz - -# add s6 optional symlinks -ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch.tar.xz /tmp -RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz -ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz /tmp -RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz - -# Runtime stage -FROM scratch -COPY --from=rootfs-stage /root-out/ / -ARG BUILD_DATE -ARG VERSION -ARG MODS_VERSION="v3" -ARG PKG_INST_VERSION="v1" -LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" -LABEL maintainer="TheLamer" - -ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods" -ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/package-install.${PKG_INST_VERSION}" "/etc/s6-overlay/s6-rc.d/init-mods-package-install/run" - -# set environment variables -ARG DEBIAN_FRONTEND="noninteractive" -ENV HOME="/root" \ - LANGUAGE="en_US.UTF-8" \ - LANG="en_US.UTF-8" \ - TERM="xterm" \ - S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \ - S6_VERBOSITY=1 \ - S6_STAGE2_HOOK=/docker-mods \ - VIRTUAL_ENV=/lsiopy \ - PATH="/lsiopy/bin:$PATH" - -# copy sources -COPY sources.list.arm /etc/apt/sources.list - -RUN \ - echo "**** Ripped from Ubuntu Docker Logic ****" && \ - set -xe && \ - echo '#!/bin/sh' \ - > /usr/sbin/policy-rc.d && \ - echo 'exit 101' \ - >> /usr/sbin/policy-rc.d && \ - chmod +x \ - /usr/sbin/policy-rc.d && \ - dpkg-divert --local --rename --add /sbin/initctl && \ - cp -a \ - /usr/sbin/policy-rc.d \ - /sbin/initctl && \ - sed -i \ - 's/^exit.*/exit 0/' \ - /sbin/initctl && \ - echo 'force-unsafe-io' \ - > /etc/dpkg/dpkg.cfg.d/docker-apt-speedup && \ - echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \ - > /etc/apt/apt.conf.d/docker-clean && \ - echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \ - >> /etc/apt/apt.conf.d/docker-clean && \ - echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' \ - >> /etc/apt/apt.conf.d/docker-clean && \ - echo 'Acquire::Languages "none";' \ - > /etc/apt/apt.conf.d/docker-no-languages && \ - echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' \ - > /etc/apt/apt.conf.d/docker-gzip-indexes && \ - echo 'Apt::AutoRemove::SuggestsImportant "false";' \ - > /etc/apt/apt.conf.d/docker-autoremove-suggests && \ - mkdir -p /run/systemd && \ - echo 'docker' \ - > /run/systemd/container && \ - echo "**** install apt-utils and locales ****" && \ - apt-get update && \ - apt-get install -y \ - apt-utils \ - locales && \ - echo "**** install packages ****" && \ - apt-get install -y \ - curl \ - gnupg \ - jq \ - netcat \ - tzdata && \ - echo "**** generate locale ****" && \ - locale-gen en_US.UTF-8 && \ - echo "**** create abc user and make our folders ****" && \ - useradd -u 911 -U -d /config -s /bin/false abc && \ - usermod -G users abc && \ - mkdir -p \ - /app \ - /config \ - /defaults \ - /lsiopy && \ - echo "**** add qemu ****" && \ - curl -o \ - /usr/bin/qemu-arm-static -L \ - "https://lsio-ci.ams3.digitaloceanspaces.com/qemu-arm-static" && \ - chmod +x /usr/bin/qemu-arm-static && \ - echo "**** cleanup ****" && \ - apt-get autoremove && \ - apt-get clean && \ - rm -rf \ - /tmp/* \ - /var/lib/apt/lists/* \ - /var/tmp/* \ - /var/log/* - -# add local files -COPY root/ / - -ENTRYPOINT ["/init"] From 3adcc653ddd4febf61e13930a8c724086b4adcb5 Mon Sep 17 00:00:00 2001 From: LinuxServer-CI <ci@linuxserver.io> Date: Tue, 25 Jul 2023 23:25:12 +0000 Subject: [PATCH 122/124] 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 115f7f25..555bafc8 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -8,7 +8,7 @@ bash 5.1-6ubuntu1 deb bsdutils 1:2.37.2-4ubuntu3 deb ca-certificates 20230311ubuntu0.22.04.1 deb coreutils 8.32-4.1ubuntu1 deb -curl 7.81.0-1ubuntu1.10 deb +curl 7.81.0-1ubuntu1.13 deb dash 0.5.11+git20210903+057cd650a4ed-3build1 deb debconf 1.5.79ubuntu1 deb debianutils 5.5-1ubuntu2 deb @@ -49,7 +49,7 @@ libcap-ng0 0.7.9-2.2build3 deb libcap2 1:2.44-1ubuntu0.22.04.1 deb libcom-err2 1.46.5-2ubuntu1.1 deb libcrypt1 1:4.4.27-1 deb -libcurl4 7.81.0-1ubuntu1.10 deb +libcurl4 7.81.0-1ubuntu1.13 deb libdb5.3 5.3.28+dfsg1-0.8ubuntu3 deb libdebconfclient0 0.261ubuntu1 deb libext2fs2 1.46.5-2ubuntu1.1 deb From 6b17ac8522f67df0edb78ce22b5445a40586c51c Mon Sep 17 00:00:00 2001 From: Eric Nemchik <eric@nemchik.com> Date: Sun, 30 Jul 2023 01:07:22 -0500 Subject: [PATCH 123/124] Include cron Signed-off-by: Eric Nemchik <eric@nemchik.com> --- Dockerfile | 1 + Dockerfile.aarch64 | 1 + 2 files changed, 2 insertions(+) diff --git a/Dockerfile b/Dockerfile index 73b13667..82196916 100644 --- a/Dockerfile +++ b/Dockerfile @@ -110,6 +110,7 @@ RUN \ locales && \ echo "**** install packages ****" && \ apt-get install -y \ + cron \ curl \ gnupg \ jq \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index dc1e57e9..c788e0de 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -110,6 +110,7 @@ RUN \ locales && \ echo "**** install packages ****" && \ apt-get install -y \ + cron \ curl \ gnupg \ jq \ From 538b1b7d77a3a9d263b563cde7f038fd08b61bad Mon Sep 17 00:00:00 2001 From: Eric Nemchik <eric@nemchik.com> Date: Fri, 18 Aug 2023 23:06:35 -0500 Subject: [PATCH 124/124] cron in base Signed-off-by: Eric Nemchik <eric@nemchik.com> --- .../dependencies.d/init-os-end | 0 .../s6-rc.d/init-crontab-config/run | 26 +++++++++++++++++++ .../s6-rc.d/init-crontab-config/type | 1 + .../s6-overlay/s6-rc.d/init-crontab-config/up | 1 + .../svc-cron/dependencies.d/init-services | 0 root/etc/s6-overlay/s6-rc.d/svc-cron/run | 15 +++++++++++ root/etc/s6-overlay/s6-rc.d/svc-cron/type | 1 + .../s6-rc.d/user/contents.d/svc-cron | 0 8 files changed, 44 insertions(+) create mode 100644 root/etc/s6-overlay/s6-rc.d/init-crontab-config/dependencies.d/init-os-end create mode 100755 root/etc/s6-overlay/s6-rc.d/init-crontab-config/run create mode 100644 root/etc/s6-overlay/s6-rc.d/init-crontab-config/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-crontab-config/up create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-cron/dependencies.d/init-services create mode 100755 root/etc/s6-overlay/s6-rc.d/svc-cron/run create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-cron/type create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-cron diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/dependencies.d/init-os-end b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/dependencies.d/init-os-end new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run new file mode 100755 index 00000000..6eee9a69 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run @@ -0,0 +1,26 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +for cron_user in abc root; do + if [[ -f "/defaults/crontabs/${cron_user}" ]]; then + # make folders + mkdir -p \ + /config/crontabs + + # if crontabs do not exist in config + if [[ ! -f "/config/crontabs/${cron_user}" ]]; then + # copy crontab from system + if crontab -l -u "${cron_user}" >/dev/null; then + crontab -l -u "${cron_user}" >"/config/crontabs/${cron_user}" + fi + + # if crontabs still do not exist in config (were not copied from system) + # copy crontab from image defaults (using -n, do not overwrite an existing file) + cp -n "/defaults/crontabs/${cron_user}" /config/crontabs/ + fi + + # set permissions and import user crontabs + lsiown "${cron_user}":"${cron_user}" "/config/crontabs/${cron_user}" + crontab -u "${cron_user}" "/config/crontabs/${cron_user}" + fi +done diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/type b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/up b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/up new file mode 100644 index 00000000..d3541118 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-crontab-config/run diff --git a/root/etc/s6-overlay/s6-rc.d/svc-cron/dependencies.d/init-services b/root/etc/s6-overlay/s6-rc.d/svc-cron/dependencies.d/init-services new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/svc-cron/run b/root/etc/s6-overlay/s6-rc.d/svc-cron/run new file mode 100755 index 00000000..e8d71bfb --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-cron/run @@ -0,0 +1,15 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +if builtin command -v crontab >/dev/null && [[ -n "$(crontab -l -u abc)" || -n "$(crontab -l -u root)" ]]; then + if builtin command -v busybox >/dev/null && [[ $(busybox) =~ [[:space:]](crond)([,]|$) ]]; then + exec busybox crond -f -S -l 5 + elif [[ -f /usr/bin/apt ]] && [[ -f /usr/sbin/cron ]]; then + exec /usr/sbin/cron -f -L 5 + else + echo "**** cron not found ****" + sleep infinity + fi +else + sleep infinity +fi diff --git a/root/etc/s6-overlay/s6-rc.d/svc-cron/type b/root/etc/s6-overlay/s6-rc.d/svc-cron/type new file mode 100644 index 00000000..5883cff0 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-cron/type @@ -0,0 +1 @@ +longrun diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-cron b/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-cron new file mode 100644 index 00000000..e69de29b