diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index fd4f11d..dab7f9e 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -6,7 +6,7 @@ * Read, and fill the Pull Request template * If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR * If the PR is addressing an existing issue include, closes #\, in the body of the PR commit message -* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://discord.gg/YWrKVTn) +* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://linuxserver.io/discord) ## Common files @@ -105,10 +105,10 @@ docker build \ -t linuxserver/audacity:latest . ``` -The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` +The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static` ```bash -docker run --rm --privileged multiarch/qemu-user-static:register --reset +docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset ``` Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 452b3b9..face150 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,7 +1,7 @@ blank_issues_enabled: false contact_links: - name: Discord chat support - url: https://discord.gg/YWrKVTn + url: https://linuxserver.io/discord about: Realtime support / chat with the community and the team. - name: Discourse discussion forum diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index 4138778..e884304 100644 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -15,7 +15,10 @@ jobs: SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }} run: | printf "# External trigger for docker-audacity\n\n" >> $GITHUB_STEP_SUMMARY - if grep -q "^audacity_main" <<< "${SKIP_EXTERNAL_TRIGGER}"; then + if grep -q "^audacity_main_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then + echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY + echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`audacity_main_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY + elif grep -q "^audacity_main" <<< "${SKIP_EXTERNAL_TRIGGER}"; then echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`audacity_main\`; skipping trigger." >> $GITHUB_STEP_SUMMARY exit 0 @@ -25,6 +28,11 @@ jobs: printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY EXT_RELEASE=$(curl -u ${{ secrets.CR_USER }}:${{ secrets.CR_PAT }} -sX GET https://api.github.com/repos/audacity/audacity/releases/latest | jq -r '.tag_name' | sed 's|^Audacity-||') echo "Type is \`custom_version_command\`" >> $GITHUB_STEP_SUMMARY + if grep -q "^audacity_main_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then + echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY + echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY + exit 0 + fi if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY echo "> Can't retrieve external version, exiting" >> $GITHUB_STEP_SUMMARY @@ -43,11 +51,35 @@ jobs: token=$(curl -sX GET \ "https://ghcr.io/token?scope=repository%3Alinuxserver%2Faudacity%3Apull" \ | jq -r '.token') - digest=$(curl -s \ + multidigest=$(curl -s \ + --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ + --header "Accept: application/vnd.oci.image.index.v1+json" \ + --header "Authorization: Bearer ${token}" \ + "https://ghcr.io/v2/${image}/manifests/${tag}") + if jq -e '.layers // empty' <<< "${multidigest}" >/dev/null 2>&1; then + # If there's a layer element it's a single-arch manifest so just get that digest + digest=$(jq -r '.config.digest' <<< "${multidigest}") + else + # Otherwise it's multi-arch or has manifest annotations + if jq -e '.manifests[]?.annotations // empty' <<< "${multidigest}" >/dev/null 2>&1; then + # Check for manifest annotations and delete if found + multidigest=$(jq 'del(.manifests[] | select(.annotations))' <<< "${multidigest}") + fi + if [[ $(jq '.manifests | length' <<< "${multidigest}") -gt 1 ]]; then + # If there's still more than one digest, it's multi-arch + multidigest=$(jq -r ".manifests[] | select(.platform.architecture == \"amd64\").digest?" <<< "${multidigest}") + else + # Otherwise it's single arch + multidigest=$(jq -r ".manifests[].digest?" <<< "${multidigest}") + fi + if digest=$(curl -s \ --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ + --header "Accept: application/vnd.oci.image.manifest.v1+json" \ --header "Authorization: Bearer ${token}" \ - "https://ghcr.io/v2/${image}/manifests/${tag}" \ - | jq -r '.config.digest') + "https://ghcr.io/v2/${image}/manifests/${multidigest}"); then + digest=$(jq -r '.config.digest' <<< "${digest}"); + fi + fi image_info=$(curl -sL \ --header "Authorization: Bearer ${token}" \ "https://ghcr.io/v2/${image}/blobs/${digest}") @@ -85,7 +117,7 @@ jobs: else printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY echo "New version \`${EXT_RELEASE}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY - if "${artifacts_found}" == "true" ]]; then + if [[ "${artifacts_found}" == "true" ]]; then echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY fi response=$(curl -iX POST \ diff --git a/.github/workflows/package_trigger_scheduler.yml b/.github/workflows/package_trigger_scheduler.yml index 9ff17b0..071b97b 100644 --- a/.github/workflows/package_trigger_scheduler.yml +++ b/.github/workflows/package_trigger_scheduler.yml @@ -27,9 +27,18 @@ jobs: fi printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY JENKINS_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-audacity/${br}/jenkins-vars.yml) - if [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then + if ! curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-audacity/${br}/Jenkinsfile >/dev/null 2>&1; then + echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY + echo "> No Jenkinsfile found. Branch is either deprecated or is an early dev branch." >> $GITHUB_STEP_SUMMARY + skipped_branches="${skipped_branches}${br} " + elif [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then echo "Branch appears to be live; checking workflow." >> $GITHUB_STEP_SUMMARY - if [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then + README_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-audacity/${br}/readme-vars.yml) + if [[ $(yq -r '.project_deprecation_status' <<< "${README_VARS}") == "true" ]]; then + echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY + echo "> Branch appears to be deprecated; skipping trigger." >> $GITHUB_STEP_SUMMARY + skipped_branches="${skipped_branches}${br} " + elif [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY echo "> Skipping branch ${br} due to \`skip_package_check\` being set in \`jenkins-vars.yml\`." >> $GITHUB_STEP_SUMMARY skipped_branches="${skipped_branches}${br} " @@ -37,7 +46,7 @@ jobs: echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`audacity_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY skipped_branches="${skipped_branches}${br} " - elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-audacity/job/${br}/lastBuild/api/json | jq -r '.building') == "true" ]; then + elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-audacity/job/${br}/lastBuild/api/json | jq -r '.building' 2>/dev/null) == "true" ]; then echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY echo "> There already seems to be an active build on Jenkins; skipping package trigger for ${br}" >> $GITHUB_STEP_SUMMARY skipped_branches="${skipped_branches}${br} " @@ -49,6 +58,11 @@ jobs: response=$(curl -iX POST \ https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-audacity/job/${br}/buildWithParameters?PACKAGE_CHECK=true \ --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") + if [[ -z "${response}" ]]; then + echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY + echo "> Jenkins build could not be triggered. Skipping branch." + continue + fi echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY sleep 10 @@ -56,11 +70,14 @@ jobs: buildurl="${buildurl%$'\r'}" echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY - curl -iX POST \ + if ! curl -ifX POST \ "${buildurl}submitDescription" \ --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \ --data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \ - --data-urlencode "Submit=Submit" + --data-urlencode "Submit=Submit"; then + echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY + echo "> Unable to change the Jenkins job description." + fi sleep 20 fi else @@ -70,13 +87,14 @@ jobs: if [[ -n "${triggered_branches}" ]] || [[ -n "${skipped_branches}" ]]; then if [[ -n "${triggered_branches}" ]]; then NOTIFY_BRANCHES="**Triggered:** ${triggered_branches} \n" + NOTIFY_BUILD_URL="**Build URL:** https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-audacity/activity/ \n" + echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****" fi if [[ -n "${skipped_branches}" ]]; then NOTIFY_BRANCHES="${NOTIFY_BRANCHES}**Skipped:** ${skipped_branches} \n" fi - echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****" echo "**** Notifying Discord ****" curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, - "description": "**Package Check Build(s) Triggered for audacity** \n'"${NOTIFY_BRANCHES}"'**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-audacity/activity/"' \n"}], + "description": "**Package Check Build(s) for audacity** \n'"${NOTIFY_BRANCHES}"''"${NOTIFY_BUILD_URL}"'"}], "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} fi diff --git a/Dockerfile b/Dockerfile index c1860ce..d754159 100644 --- a/Dockerfile +++ b/Dockerfile @@ -33,7 +33,7 @@ RUN \ cd /tmp && \ curl -o \ /tmp/audacity.app -L \ - "https://github.com/audacity/audacity/releases/download/Audacity-${AUDACITY_VERSION}/audacity-linux-${AUDACITY_VERSION}-x64.AppImage" && \ + "https://github.com/audacity/audacity/releases/download/Audacity-${AUDACITY_VERSION}/audacity-linux-${AUDACITY_VERSION}-x64-22.04.AppImage" && \ chmod +x /tmp/audacity.app && \ ./audacity.app --appimage-extract && \ mv squashfs-root /opt/audacity && \ diff --git a/Jenkinsfile b/Jenkinsfile index 5b0cf61..0d600f8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -8,7 +8,7 @@ pipeline { } // Input to determine if this is a package check parameters { - string(defaultValue: 'false', description: 'package check run', name: 'PACKAGE_CHECK') + string(defaultValue: 'false', description: 'package check run', name: 'PACKAGE_CHECK') } // Configuration for the variables used for this specific repo environment { @@ -56,11 +56,23 @@ pipeline { steps{ echo "Running on node: ${NODE_NAME}" sh '''#! /bin/bash - containers=$(docker ps -aq) + echo "Pruning builder" + docker builder prune -f --builder container || : + containers=$(docker ps -q) if [[ -n "${containers}" ]]; then - docker stop ${containers} + BUILDX_CONTAINER_ID=$(docker ps -qf 'name=buildx_buildkit') + for container in ${containers}; do + if [[ "${container}" == "${BUILDX_CONTAINER_ID}" ]]; then + echo "skipping buildx container in docker stop" + else + echo "Stopping container ${container}" + docker stop ${container} + fi + done fi - docker system prune -af --volumes || : ''' + docker system prune -f --volumes || : + docker image prune -af || : + ''' script{ env.EXIT_STATUS = '' env.LS_RELEASE = sh( @@ -191,6 +203,7 @@ pipeline { env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.META_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN + env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' } } } @@ -215,6 +228,7 @@ pipeline { env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/' + env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' } } } @@ -239,6 +253,7 @@ pipeline { env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/' + env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' } } } @@ -335,6 +350,35 @@ pipeline { else echo "No templates to delete" fi + echo "Starting Stage 2.5 - Update init diagram" + if ! grep -q 'init_diagram:' readme-vars.yml; then + echo "Adding the key 'init_diagram' to readme-vars.yml" + sed -i '\\|^#.*changelog.*$|d' readme-vars.yml + sed -i 's|^changelogs:|# init diagram\\ninit_diagram:\\n\\n# changelog\\nchangelogs:|' readme-vars.yml + fi + mkdir -p ${TEMPDIR}/d2 + docker run --rm -v ${TEMPDIR}/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) -e RAW="true" ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:latest + ls -al ${TEMPDIR}/d2 + yq -ei ".init_diagram |= load_str(\\"${TEMPDIR}/d2/${CONTAINER_NAME}-latest.d2\\")" readme-vars.yml + if [[ $(md5sum readme-vars.yml | cut -c1-8) != $(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml | cut -c1-8) ]]; then + echo "'init_diagram' has been updated. Updating repo and exiting build, new one will trigger based on commit." + mkdir -p ${TEMPDIR}/repo + git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} + cd ${TEMPDIR}/repo/${LS_REPO} + git checkout -f main + cp ${WORKSPACE}/readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/readme-vars.yml + git add readme-vars.yml + git commit -m 'Bot Updating Templated Files' + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main + echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} + echo "Updating templates and exiting build, new one will trigger based on commit" + rm -Rf ${TEMPDIR} + exit 0 + else + echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} + echo "Init diagram is unchanged" + fi echo "Starting Stage 3 - Update templates" CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) cd ${TEMPDIR}/docker-${CONTAINER_NAME} @@ -543,8 +587,42 @@ pipeline { --label \"org.opencontainers.image.title=Audacity\" \ --label \"org.opencontainers.image.description=[Audacity](https://www.audacityteam.org/) is an easy-to-use, multi-track audio editor and recorder. Developed by a group of volunteers as open source.\" \ --no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \ - --provenance=false --sbom=false \ + --provenance=true --sbom=true --builder=container --load \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." + sh '''#! /bin/bash + set -e + IFS=',' read -ra CACHE <<< "$BUILDCACHE" + for i in "${CACHE[@]}"; do + docker tag ${IMAGE}:${META_TAG} ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} + done + ''' + withCredentials([ + [ + $class: 'UsernamePasswordMultiBinding', + credentialsId: 'Quay.io-Robot', + usernameVariable: 'QUAYUSER', + passwordVariable: 'QUAYPASS' + ] + ]) { + retry_backoff(5,5) { + sh '''#! /bin/bash + set -e + echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin + echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin + echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin + echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin + if [[ "${PACKAGE_CHECK}" != "true" ]]; then + IFS=',' read -ra CACHE <<< "$BUILDCACHE" + for i in "${CACHE[@]}"; do + docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} & + done + for p in $(jobs -p); do + wait "$p" || { echo "job $p failed" >&2; exit 1; } + done + fi + ''' + } + } } } // Build MultiArch Docker containers for push to LS Repo @@ -575,8 +653,42 @@ pipeline { --label \"org.opencontainers.image.title=Audacity\" \ --label \"org.opencontainers.image.description=[Audacity](https://www.audacityteam.org/) is an easy-to-use, multi-track audio editor and recorder. Developed by a group of volunteers as open source.\" \ --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \ - --provenance=false --sbom=false \ + --provenance=true --sbom=true --builder=container --load \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." + sh '''#! /bin/bash + set -e + IFS=',' read -ra CACHE <<< "$BUILDCACHE" + for i in "${CACHE[@]}"; do + docker tag ${IMAGE}:amd64-${META_TAG} ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} + done + ''' + withCredentials([ + [ + $class: 'UsernamePasswordMultiBinding', + credentialsId: 'Quay.io-Robot', + usernameVariable: 'QUAYUSER', + passwordVariable: 'QUAYPASS' + ] + ]) { + retry_backoff(5,5) { + sh '''#! /bin/bash + set -e + echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin + echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin + echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin + echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin + if [[ "${PACKAGE_CHECK}" != "true" ]]; then + IFS=',' read -ra CACHE <<< "$BUILDCACHE" + for i in "${CACHE[@]}"; do + docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} & + done + for p in $(jobs -p); do + wait "$p" || { echo "job $p failed" >&2; exit 1; } + done + fi + ''' + } + } } } stage('Build ARM64') { @@ -585,10 +697,6 @@ pipeline { } steps { echo "Running on node: ${NODE_NAME}" - echo 'Logging into Github' - sh '''#! /bin/bash - echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin - ''' sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.aarch64" sh "docker buildx build \ --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \ @@ -604,18 +712,50 @@ pipeline { --label \"org.opencontainers.image.title=Audacity\" \ --label \"org.opencontainers.image.description=[Audacity](https://www.audacityteam.org/) is an easy-to-use, multi-track audio editor and recorder. Developed by a group of volunteers as open source.\" \ --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \ - --provenance=false --sbom=false \ + --provenance=true --sbom=true --builder=container --load \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." - sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" - retry_backoff(5,5) { - sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" + sh '''#! /bin/bash + set -e + IFS=',' read -ra CACHE <<< "$BUILDCACHE" + for i in "${CACHE[@]}"; do + docker tag ${IMAGE}:arm64v8-${META_TAG} ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} + done + ''' + withCredentials([ + [ + $class: 'UsernamePasswordMultiBinding', + credentialsId: 'Quay.io-Robot', + usernameVariable: 'QUAYUSER', + passwordVariable: 'QUAYPASS' + ] + ]) { + retry_backoff(5,5) { + sh '''#! /bin/bash + set -e + echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin + echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin + echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin + echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin + if [[ "${PACKAGE_CHECK}" != "true" ]]; then + IFS=',' read -ra CACHE <<< "$BUILDCACHE" + for i in "${CACHE[@]}"; do + docker push ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} & + done + for p in $(jobs -p); do + wait "$p" || { echo "job $p failed" >&2; exit 1; } + done + fi + ''' + } } sh '''#! /bin/bash containers=$(docker ps -aq) if [[ -n "${containers}" ]]; then docker stop ${containers} fi - docker system prune -af --volumes || : ''' + docker system prune -f --volumes || : + docker image prune -af || : + ''' } } } @@ -765,37 +905,23 @@ pipeline { environment name: 'EXIT_STATUS', value: '' } steps { - withCredentials([ - [ - $class: 'UsernamePasswordMultiBinding', - credentialsId: 'Quay.io-Robot', - usernameVariable: 'QUAYUSER', - passwordVariable: 'QUAYPASS' - ] - ]) { - retry_backoff(5,5) { - sh '''#! /bin/bash - set -e - echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin - echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin - echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin - echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin - for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do - docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG} - docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest - docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG} - if [ -n "${SEMVER}" ]; then - docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER} - fi - docker push ${PUSHIMAGE}:latest - docker push ${PUSHIMAGE}:${META_TAG} - docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG} - if [ -n "${SEMVER}" ]; then - docker push ${PUSHIMAGE}:${SEMVER} - fi + retry_backoff(5,5) { + sh '''#! /bin/bash + set -e + for PUSHIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do + [[ ${PUSHIMAGE%%/*} =~ \\. ]] && PUSHIMAGEPLUS="${PUSHIMAGE}" || PUSHIMAGEPLUS="docker.io/${PUSHIMAGE}" + IFS=',' read -ra CACHE <<< "$BUILDCACHE" + for i in "${CACHE[@]}"; do + if [[ "${PUSHIMAGEPLUS}" == "$(cut -d "/" -f1 <<< ${i})"* ]]; then + CACHEIMAGE=${i} + fi done - ''' - } + docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:latest -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} + if [ -n "${SEMVER}" ]; then + docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} + fi + done + ''' } } } @@ -806,57 +932,34 @@ pipeline { environment name: 'EXIT_STATUS', value: '' } steps { - withCredentials([ - [ - $class: 'UsernamePasswordMultiBinding', - credentialsId: 'Quay.io-Robot', - usernameVariable: 'QUAYUSER', - passwordVariable: 'QUAYPASS' - ] - ]) { - retry_backoff(5,5) { - sh '''#! /bin/bash - set -e - echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin - echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin - echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin - echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin - if [ "${CI}" == "false" ]; then - docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64 - docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} + retry_backoff(5,5) { + sh '''#! /bin/bash + set -e + for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do + [[ ${MANIFESTIMAGE%%/*} =~ \\. ]] && MANIFESTIMAGEPLUS="${MANIFESTIMAGE}" || MANIFESTIMAGEPLUS="docker.io/${MANIFESTIMAGE}" + IFS=',' read -ra CACHE <<< "$BUILDCACHE" + for i in "${CACHE[@]}"; do + if [[ "${MANIFESTIMAGEPLUS}" == "$(cut -d "/" -f1 <<< ${i})"* ]]; then + CACHEIMAGE=${i} + fi + done + docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-latest -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} + docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-latest -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} + if [ -n "${SEMVER}" ]; then + docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} + docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} fi - for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do - docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} - docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest - docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} - docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} - docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest - docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} - if [ -n "${SEMVER}" ]; then - docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER} - docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER} - fi - docker push ${MANIFESTIMAGE}:amd64-${META_TAG} - docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} - docker push ${MANIFESTIMAGE}:amd64-latest - docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG} - docker push ${MANIFESTIMAGE}:arm64v8-latest - docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} - if [ -n "${SEMVER}" ]; then - docker push ${MANIFESTIMAGE}:amd64-${SEMVER} - docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER} - fi - done - for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do - docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest - docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} - docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} - if [ -n "${SEMVER}" ]; then - docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} - fi - done - ''' - } + done + for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do + docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest + docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} + + docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} + if [ -n "${SEMVER}" ]; then + docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} + fi + done + ''' } } } @@ -884,7 +987,7 @@ pipeline { echo '{"tag_name":"'${META_TAG}'",\ "target_commitish": "main",\ "name": "'${META_TAG}'",\ - "body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start + "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start printf '","draft": false,"prerelease": false}' >> releasebody.json paste -d'\\0' start releasebody.json > releasebody.json.done curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done''' @@ -1062,12 +1165,22 @@ EOF } cleanup { sh '''#! /bin/bash - echo "Performing docker system prune!!" - containers=$(docker ps -aq) + echo "Pruning builder!!" + docker builder prune -f --builder container || : + containers=$(docker ps -q) if [[ -n "${containers}" ]]; then - docker stop ${containers} + BUILDX_CONTAINER_ID=$(docker ps -qf 'name=buildx_buildkit') + for container in ${containers}; do + if [[ "${container}" == "${BUILDX_CONTAINER_ID}" ]]; then + echo "skipping buildx container in docker stop" + else + echo "Stopping container ${container}" + docker stop ${container} + fi + done fi - docker system prune -af --volumes || : + docker system prune -f --volumes || : + docker image prune -af || : ''' cleanWs() } diff --git a/README.md b/README.md index cbae306..3d36255 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io) [![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!") -[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.") +[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://linuxserver.io/discord "realtime support / chat with the community and the team.") [![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.") [![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.") [![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.") @@ -20,7 +20,7 @@ The [LinuxServer.io](https://linuxserver.io) team brings you another container r Find us at: * [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more! -* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team. +* [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team. * [Discourse](https://discourse.linuxserver.io) - post on our community forum. * [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images. * [GitHub](https://github.com/linuxserver) - view the source for all of our repositories. @@ -64,6 +64,15 @@ The application can be accessed at: * http://yourhost:3000/ * https://yourhost:3001/ +**Modern GUI desktop apps have issues with the latest Docker and syscall compatibility, you can use Docker with the `--security-opt seccomp=unconfined` setting to allow these syscalls on hosts with older Kernels or libseccomp** + +### Security + +>[!WARNING] +>Do not put this on the Internet if you do not know what you are doing. + +By default this container has no authentication and the optional environment variables `CUSTOM_USER` and `PASSWORD` to enable basic http auth via the embedded NGINX server should only be used to locally secure the container from unwanted access on a local network. If exposing this to the Internet we recommend putting it behind a reverse proxy, such as [SWAG](https://github.com/linuxserver/docker-swag), and ensuring a secure authentication solution is in place. From the web interface a terminal can be launched and it is configured for passwordless sudo, so anyone with access to it can install and run whatever they want along with probing your local network. + ### Options in all KasmVNC based GUI containers This container is based on [Docker Baseimage KasmVNC](https://github.com/linuxserver/docker-baseimage-kasmvnc) which means there are additional environment variables and run configurations to enable or disable specific functionality. @@ -81,8 +90,9 @@ This container is based on [Docker Baseimage KasmVNC](https://github.com/linuxse | FM_HOME | This is the home directory (landing) for the file manager, default "/config". | | START_DOCKER | If set to false a container with privilege will not automatically start the DinD Docker setup. | | DRINODE | If mounting in /dev/dri for [DRI3 GPU Acceleration](https://www.kasmweb.com/kasmvnc/docs/master/gpu_acceleration.html) allows you to specify the device to use IE `/dev/dri/renderD128` | +| DISABLE_IPV6 | If set to true or any value this will disable IPv6 | | LC_ALL | Set the Language for the container to run as IE `fr_FR.UTF-8` `ar_AE.UTF-8` | -| NO_DECOR | If set the application will run without window borders for use as a PWA. | +| NO_DECOR | If set the application will run without window borders in openbox for use as a PWA. | | NO_FULL | Do not autmatically fullscreen applications when using openbox. | #### Optional run configurations @@ -91,30 +101,101 @@ This container is based on [Docker Baseimage KasmVNC](https://github.com/linuxse | :----: | --- | | `--privileged` | Will start a Docker in Docker (DinD) setup inside the container to use docker in an isolated environment. For increased performance mount the Docker directory inside the container to the host IE `-v /home/user/docker-data:/var/lib/docker`. | | `-v /var/run/docker.sock:/var/run/docker.sock` | Mount in the host level Docker socket to either interact with it via CLI or use Docker enabled applications. | -| `--device /dev/dri:/dev/dri` | Mount a GPU into the container, this can be used in conjunction with the `DRINODE` environment variable to leverage a host video card for GPU accelerated appplications. Only **Open Source** drivers are supported IE (Intel,AMDGPU,Radeon,ATI,Nouveau) | +| `--device /dev/dri:/dev/dri` | Mount a GPU into the container, this can be used in conjunction with the `DRINODE` environment variable to leverage a host video card for GPU accelerated applications. Only **Open Source** drivers are supported IE (Intel,AMDGPU,Radeon,ATI,Nouveau) | ### Language Support - Internationalization -The environment variable `LC_ALL` can be used to start this image in a different language than English simply pass for example to launch the Desktop session in French `LC_ALL=fr_FR.UTF-8`. Some languages like Chinese, Japanese, or Korean will be missing fonts needed to render properly known as cjk fonts, but others may exist and not be installed. We only ensure fonts for Latin characters are present. Fonts can be installed with a mod on startup. +The environment variable `LC_ALL` can be used to start this container in a different language than English simply pass for example to launch the Desktop session in French `LC_ALL=fr_FR.UTF-8`. Some languages like Chinese, Japanese, or Korean will be missing fonts needed to render properly known as cjk fonts, but others may exist and not be installed inside the container depending on what underlying distribution you are running. We only ensure fonts for Latin characters are present. Fonts can be installed with a mod on startup. -To install cjk fonts on startup as an example pass the environment variables: +To install cjk fonts on startup as an example pass the environment variables (Alpine base): ``` --e DOCKER_MODS=linuxserver/mods:universal-package-install +-e DOCKER_MODS=linuxserver/mods:universal-package-install -e INSTALL_PACKAGES=fonts-noto-cjk -e LC_ALL=zh_CN.UTF-8 ``` The web interface has the option for "IME Input Mode" in Settings which will allow non english characters to be used from a non en_US keyboard on the client. Once enabled it will perform the same as a local Linux installation set to your locale. -### Lossless mode +### DRI3 GPU Acceleration (KasmVNC interface) -This container is capable of delivering a true lossless image at a high framerate to your web browser by changing the Stream Quality preset to "Lossless", more information [here](https://www.kasmweb.com/docs/latest/how_to/lossless.html#technical-background). In order to use this mode from a non localhost endpoint the HTTPS port on 3001 needs to be used. If using a reverse proxy to port 3000 specific headers will need to be set as outlined [here](https://github.com/linuxserver/docker-baseimage-kasmvnc#lossless). +For accelerated apps or games, render devices can be mounted into the container and leveraged by applications using: + +`--device /dev/dri:/dev/dri` + +This feature only supports **Open Source** GPU drivers: + +| Driver | Description | +| :----: | --- | +| Intel | i965 and i915 drivers for Intel iGPU chipsets | +| AMD | AMDGPU, Radeon, and ATI drivers for AMD dedicated or APU chipsets | +| NVIDIA | nouveau2 drivers only, closed source NVIDIA drivers lack DRI3 support | + +The `DRINODE` environment variable can be used to point to a specific GPU. +Up to date information can be found [here](https://www.kasmweb.com/kasmvnc/docs/master/gpu_acceleration.html) + +### Nvidia GPU Support (KasmVNC interface) + +**Nvidia support is not compatible with Alpine based images as Alpine lacks Nvidia drivers** + +Nvidia support is available by leveraging Zink for OpenGL support. This can be enabled with the following run flags: + +| Variable | Description | +| :----: | --- | +| --gpus all | This can be filtered down but for most setups this will pass the one Nvidia GPU on the system | +| --runtime nvidia | Specify the Nvidia runtime which mounts drivers and tools in from the host | + +The compose syntax is slightly different for this as you will need to set nvidia as the default runtime: + +``` +sudo nvidia-ctk runtime configure --runtime=docker --set-as-default +sudo service docker restart +``` + +And to assign the GPU in compose: + +``` +services: + audacity: + image: lscr.io/linuxserver/audacity:latest + deploy: + resources: + reservations: + devices: + - driver: nvidia + count: 1 + capabilities: [compute,video,graphics,utility] +``` + +### Application management + +#### PRoot Apps + +If you run system native installations of software IE `sudo apt-get install filezilla` and then upgrade or destroy/re-create the container that software will be removed and the container will be at a clean state. For some users that will be acceptable and they can update their system packages as well using system native commands like `apt-get upgrade`. If you want Docker to handle upgrading the container and retain your applications and settings we have created [proot-apps](https://github.com/linuxserver/proot-apps) which allow portable applications to be installed to persistent storage in the user's `$HOME` directory and they will work in a confined Docker environment out of the box. These applications and their settings will persist upgrades of the base container and can be mounted into different flavors of KasmVNC based containers on the fly. This can be achieved from the command line with: + +``` +proot-apps install filezilla +``` + +PRoot Apps is included in all KasmVNC based containers, a list of linuxserver.io supported applications is located [HERE](https://github.com/linuxserver/proot-apps?tab=readme-ov-file#supported-apps). + +#### Native Apps + +It is possible to install extra packages during container start using [universal-package-install](https://github.com/linuxserver/docker-mods/tree/universal-package-install). It might increase starting time significantly. PRoot is preferred. + +```yaml + environment: + - DOCKER_MODS=linuxserver/mods:universal-package-install + - INSTALL_PACKAGES=libfuse2|git|gdb +``` ## Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. +>[!NOTE] +>Unless a parameter is flaged as 'optional', it is *mandatory* and a value must be provided. + ### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose)) ```yaml @@ -156,8 +237,8 @@ Containers are configured using parameters passed at runtime (such as those abov | Parameter | Function | | :----: | --- | -| `-p 3000` | Audacity desktop gui. | -| `-p 3001` | Audacity desktop gui HTTPS. | +| `-p 3000:3000` | Audacity desktop gui. | +| `-p 3001:3001` | Audacity desktop gui HTTPS. | | `-e PUID=1000` | for UserID - see below for explanation | | `-e PGID=1000` | for GroupID - see below for explanation | | `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). | @@ -315,16 +396,17 @@ docker build \ -t lscr.io/linuxserver/audacity:latest . ``` -The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` +The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static` ```bash -docker run --rm --privileged multiarch/qemu-user-static:register --reset +docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset ``` Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`. ## Versions +* **31.10.24:** - Fix artifact name. * **19.08.24:** - Rebase to noble. * **10.02.24:** - Update Readme with new env vars, ingest proper PWA icon, and pre-extract appimage. * **05.05.23:** - Start Audacity in full screen. diff --git a/package_versions.txt b/package_versions.txt index ddd7485..50407fb 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -5,10 +5,9 @@ NAME VE @socket.io/component-emitter 3.1.2 npm @socket.io/component-emitter UNKNOWN npm (+1 duplicate) @types/busboy 1.5.0 npm -@types/cookie 0.4.1 npm -@types/cors 2.8.17 npm +@types/cors 2.8.18 npm @types/node 18.18.14 npm -@types/node 22.7.5 npm +@types/node 22.15.21 npm accepts 1.3.8 npm acorn 8.8.1 npm acorn-bigint 1.0.0 npm @@ -35,7 +34,7 @@ async 3. at-spi2-common 2.52.0-1build1 deb at-spi2-core 2.52.0-1build1 deb balanced-match 1.0.2 npm -base-files 13ubuntu10.1 deb +base-files 13ubuntu10.2 deb base-passwd 3.6.3build1 deb base64id 2.0.0 npm bash 5.2.21-2ubuntu4 deb @@ -46,16 +45,17 @@ blinker 1. body-parser 1.20.3 npm brace-expansion 1.1.11 npm brace-expansion 2.0.1 npm -bsdextrautils 2.39.3-9ubuntu6.1 deb -bsdutils 1:2.39.3-9ubuntu6.1 deb +bsdextrautils 2.39.3-9ubuntu6.2 deb +bsdutils 1:2.39.3-9ubuntu6.2 deb busboy 1.6.0 npm bytes 3.1.2 npm ca-certificates 20240203 deb -call-bind 1.0.7 npm +call-bind-apply-helpers 1.0.2 npm +call-bound 1.0.4 npm catatonit 0.1.7-1 deb chalk 4.1.2 npm cjs-module-lexer 1.2.3 npm -cloud.google.com/go/compute/metadata v0.3.0 go-module +cloud.google.com/go/compute/metadata v0.5.2 go-module cloud.google.com/go/logging v1.9.0 go-module cloud.google.com/go/longrunning v0.5.4 go-module code.cloudfoundry.org/clock v1.1.0 go-module @@ -64,7 +64,7 @@ color-name 1. concat-map 0.0.1 npm console-setup 1.226ubuntu1 deb console-setup-linux 1.226ubuntu1 deb -containerd.io 1.7.22-1 deb +containerd.io 1.7.27-1 deb content-disposition 0.5.4 npm content-type 1.0.5 npm cookie 0.7.1 npm @@ -73,8 +73,8 @@ cookie-signature 1. coreutils 9.4-3ubuntu6 deb cors 2.8.5 npm cpp 4:13.2.0-7ubuntu1 deb -cpp-13 13.2.0-23ubuntu4 deb -cpp-13-x86-64-linux-gnu 13.2.0-23ubuntu4 deb +cpp-13 13.3.0-6ubuntu2~24.04 deb +cpp-13-x86-64-linux-gnu 13.3.0-6ubuntu2~24.04 deb cpp-x86-64-linux-gnu 4:13.2.0-7ubuntu1 deb cron 3.0pl1-184ubuntu2 deb cron-daemon-common 3.0pl1-184ubuntu2 deb @@ -89,9 +89,9 @@ cups-filters-core-drivers 2. cups-ipp-utils 2.4.7-1.2ubuntu7.3 deb cups-ppdc 2.4.7-1.2ubuntu7.3 deb cups-server-common 2.4.7-1.2ubuntu7.3 deb -curl 8.5.0-2ubuntu10.4 deb -dario.cat/mergo v1.0.0 go-module (+1 duplicate) -dario.cat/mergo v1.0.1 go-module +curl 8.5.0-2ubuntu10.6 deb +dario.cat/mergo v1.0.0 go-module +dario.cat/mergo v1.0.1 go-module (+1 duplicate) dash 0.5.12-6ubuntu5 deb dbus 1.14.10-4ubuntu4.1 deb dbus-bin 1.14.10-4ubuntu4.1 deb @@ -106,31 +106,32 @@ debconf 1. debianutils 5.17build1 deb debug 2.6.9 npm debug 4.3.7 npm (+3 duplicates) -define-data-property 1.1.4 npm depd 2.0.0 npm destroy 1.2.0 npm diffutils 1:3.10-1build1 deb -dirmngr 2.4.4-2ubuntu17 deb +dirmngr 2.4.4-2ubuntu17.2 deb distro 1.9.0 python -distro-info-data 0.60ubuntu0.1 deb -docker-ce 5:27.3.1-1~ubuntu.24.04~noble deb -docker-ce-cli 5:27.3.1-1~ubuntu.24.04~noble deb -docker-compose-plugin 2.29.7-1~ubuntu.24.04~noble deb +distro-info-data 0.60ubuntu0.3 deb +docker-ce 5:28.1.1-1~ubuntu.24.04~noble deb +docker-ce-cli 5:28.1.1-1~ubuntu.24.04~noble deb +docker-compose-plugin 2.35.1-1~ubuntu.24.04~noble deb dpkg 1.22.6ubuntu6.1 deb +dunder-proto 1.0.1 npm dunst 1.9.2-1build2 deb e2fsprogs 1.47.0-2.4~exp1ubuntu4.1 deb ee-first 1.1.1 npm ejs 3.1.10 npm encodeurl 1.0.2 npm encodeurl 2.0.0 npm -engine.io 6.6.2 npm +engine.io 6.6.4 npm engine.io-parser 5.2.3 npm engine.io-parser UNKNOWN npm (+1 duplicate) -es-define-property 1.0.0 npm +es-define-property 1.0.1 npm es-errors 1.3.0 npm +es-object-atoms 1.1.1 npm escape-html 1.0.3 npm etag 1.8.1 npm -express 4.21.1 npm +express 4.21.2 npm ffmpeg 7:6.1.1-3ubuntu5 deb file 1:5.45-3build1 deb file-uri-to-path 1.0.0 npm @@ -139,7 +140,7 @@ finalhandler 1. findutils 4.9.0-5build1 deb fontconfig 2.15.0-1.1ubuntu2 deb fontconfig-config 2.15.0-1.1ubuntu2 deb -fonts-noto-color-emoji 2.042-1 deb +fonts-noto-color-emoji 2.047-0ubuntu0.24.04.1 deb fonts-noto-core 20201225-2 deb fonts-noto-mono 20201225-2 deb fonts-urw-base35 20200910-8 deb @@ -148,111 +149,123 @@ fresh 0. function-bind 1.1.2 npm fuse-overlayfs 1.13-1 deb fuse3 3.14.0-5build1 deb -gcc-13-base 13.2.0-23ubuntu4 deb -gcc-14-base 14-20240412-0ubuntu1 deb -get-intrinsic 1.2.4 npm -ghostscript 10.02.1~dfsg1-0ubuntu7.3 deb +gcc-13-base 13.3.0-6ubuntu2~24.04 deb +gcc-14-base 14.2.0-4ubuntu2~24.04 deb +get-intrinsic 1.3.0 npm +get-proto 1.0.1 npm +ghostscript 10.02.1~dfsg1-0ubuntu7.6 deb gir1.2-atk-1.0 2.52.0-1build1 deb gir1.2-atspi-2.0 2.52.0-1build1 deb gir1.2-freedesktop 1.80.1-1 deb gir1.2-freedesktop-dev 1.80.1-1 deb gir1.2-girepository-2.0 1.80.1-1 deb -gir1.2-glib-2.0 2.80.0-6ubuntu3.1 deb -gir1.2-glib-2.0-dev 2.80.0-6ubuntu3.1 deb -gir1.2-packagekitglib-1.0 1.2.8-2build3 deb +gir1.2-glib-2.0 2.80.0-6ubuntu3.4 deb +gir1.2-glib-2.0-dev 2.80.0-6ubuntu3.4 deb +gir1.2-packagekitglib-1.0 1.2.8-2ubuntu1.2 deb github.com/AlecAivazis/survey/v2 v2.3.7 go-module +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.16.0 go-module +github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 go-module +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.5.0 go-module +github.com/DefangLabs/secret-detector v0.0.0-20250403165618-22662109213e go-module github.com/Graylog2/go-gelf v0.0.0-20191017102106-1550ee647df0 go-module github.com/Masterminds/semver/v3 v3.2.1 go-module -github.com/Microsoft/hcsshim v0.11.7 go-module (+2 duplicates) +github.com/Microsoft/hcsshim v0.11.7 go-module (+1 duplicate) +github.com/Microsoft/hcsshim v0.12.9 go-module github.com/RackSec/srslog v0.0.0-20180709174129-a4725f04ec91 go-module github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d go-module github.com/agext/levenshtein v1.2.3 go-module github.com/anchore/go-struct-converter v0.0.0-20221118182256-c68fdcfa2092 go-module +github.com/apparentlymart/go-textseg/v15 v15.0.0 go-module github.com/armon/circbuf v0.0.0-20190214190532-5111143e8da2 go-module github.com/armon/go-metrics v0.4.1 go-module -github.com/aws/aws-sdk-go-v2 v1.24.1 go-module (+1 duplicate) -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.4 go-module -github.com/aws/aws-sdk-go-v2/config v1.26.6 go-module (+1 duplicate) -github.com/aws/aws-sdk-go-v2/credentials v1.16.16 go-module (+1 duplicate) -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11 go-module (+1 duplicate) -github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10 go-module (+1 duplicate) -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10 go-module (+1 duplicate) -github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3 go-module (+1 duplicate) +github.com/aws/aws-sdk-go-v2 v1.30.3 go-module (+1 duplicate) +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3 go-module +github.com/aws/aws-sdk-go-v2/config v1.27.27 go-module (+1 duplicate) +github.com/aws/aws-sdk-go-v2/credentials v1.17.27 go-module (+1 duplicate) +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 go-module (+1 duplicate) +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 go-module (+1 duplicate) +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 go-module (+1 duplicate) +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 go-module (+1 duplicate) github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.32.0 go-module -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 go-module (+1 duplicate) -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10 go-module (+1 duplicate) -github.com/aws/aws-sdk-go-v2/service/sso v1.18.7 go-module (+1 duplicate) -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7 go-module (+1 duplicate) -github.com/aws/aws-sdk-go-v2/service/sts v1.26.7 go-module (+1 duplicate) -github.com/aws/smithy-go v1.19.0 go-module (+1 duplicate) +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 go-module (+1 duplicate) +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 go-module (+1 duplicate) +github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 go-module (+1 duplicate) +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 go-module (+1 duplicate) +github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 go-module (+1 duplicate) +github.com/aws/smithy-go v1.20.3 go-module (+1 duplicate) github.com/beorn7/perks v1.0.1 go-module (+2 duplicates) github.com/bits-and-blooms/bitset v1.13.0 go-module github.com/blang/semver/v4 v4.0.0 go-module github.com/buger/goterm v1.0.4 go-module -github.com/cenkalti/backoff/v4 v4.2.1 go-module (+2 duplicates) -github.com/cespare/xxhash/v2 v2.2.0 go-module (+2 duplicates) -github.com/checkpoint-restore/go-criu/v5 v5.3.0 go-module -github.com/cilium/ebpf v0.12.3 go-module -github.com/cilium/ebpf v0.7.0 go-module +github.com/cenkalti/backoff/v4 v4.2.1 go-module +github.com/cenkalti/backoff/v4 v4.3.0 go-module (+1 duplicate) +github.com/cespare/xxhash/v2 v2.2.0 go-module +github.com/cespare/xxhash/v2 v2.3.0 go-module (+1 duplicate) +github.com/checkpoint-restore/go-criu/v6 v6.3.0 go-module +github.com/cilium/ebpf v0.16.0 go-module +github.com/cilium/ebpf v0.17.3 go-module github.com/cilium/ebpf v0.9.1 go-module (+3 duplicates) github.com/cloudflare/cfssl v1.6.4 go-module -github.com/compose-spec/compose-go/v2 v2.2.0 go-module +github.com/compose-spec/compose-go/v2 v2.6.0 go-module github.com/container-storage-interface/spec v1.5.0 go-module github.com/containerd/aufs v1.0.0 go-module github.com/containerd/btrfs/v2 v2.0.0 go-module github.com/containerd/cgroups v1.1.0 go-module (+1 duplicate) github.com/containerd/cgroups/v3 v3.0.2 go-module (+3 duplicates) -github.com/containerd/cgroups/v3 v3.0.3 go-module -github.com/containerd/console v1.0.3 go-module (+5 duplicates) -github.com/containerd/console v1.0.4 go-module (+1 duplicate) -github.com/containerd/containerd v1.7.22 go-module (+6 duplicates) -github.com/containerd/containerd/api v1.7.19 go-module (+6 duplicates) -github.com/containerd/continuity v0.4.2 go-module (+4 duplicates) -github.com/containerd/continuity v0.4.3 go-module (+1 duplicate) -github.com/containerd/errdefs v0.1.0 go-module (+6 duplicates) +github.com/containerd/cgroups/v3 v3.0.5 go-module +github.com/containerd/console v1.0.3 go-module (+4 duplicates) +github.com/containerd/console v1.0.4 go-module (+2 duplicates) +github.com/containerd/containerd v1.7.27 go-module (+4 duplicates) +github.com/containerd/containerd/api v1.8.0 go-module (+6 duplicates) +github.com/containerd/containerd/v2 v2.0.4 go-module +github.com/containerd/containerd/v2 v2.0.5 go-module +github.com/containerd/continuity v0.4.4 go-module (+4 duplicates) +github.com/containerd/continuity v0.4.5 go-module (+1 duplicate) +github.com/containerd/errdefs v0.3.0 go-module (+4 duplicates) +github.com/containerd/errdefs v1.0.0 go-module (+1 duplicate) +github.com/containerd/errdefs/pkg v0.3.0 go-module (+1 duplicate) github.com/containerd/fifo v1.1.0 go-module (+5 duplicates) -github.com/containerd/go-cni v1.1.10 go-module +github.com/containerd/go-cni v1.1.12 go-module github.com/containerd/go-cni v1.1.9 go-module (+1 duplicate) github.com/containerd/go-runc v1.0.0 go-module (+4 duplicates) github.com/containerd/go-runc v1.1.0 go-module github.com/containerd/imgcrypt v1.1.8 go-module github.com/containerd/log v0.1.0 go-module (+7 duplicates) -github.com/containerd/nri v0.6.1 go-module -github.com/containerd/platforms v0.2.1 go-module (+5 duplicates) -github.com/containerd/stargz-snapshotter/estargz v0.15.1 go-module -github.com/containerd/ttrpc v1.2.5 go-module (+6 duplicates) +github.com/containerd/nri v0.8.0 go-module +github.com/containerd/platforms v0.2.1 go-module (+3 duplicates) +github.com/containerd/platforms v1.0.0-rc.1 go-module (+1 duplicate) +github.com/containerd/plugin v1.0.0 go-module +github.com/containerd/stargz-snapshotter/estargz v0.16.3 go-module +github.com/containerd/ttrpc v1.2.7 go-module (+6 duplicates) github.com/containerd/typeurl v1.0.2 go-module github.com/containerd/typeurl/v2 v2.1.1 go-module (+4 duplicates) -github.com/containerd/typeurl/v2 v2.2.0 go-module (+1 duplicate) +github.com/containerd/typeurl/v2 v2.2.3 go-module (+1 duplicate) github.com/containerd/zfs v1.1.0 go-module github.com/containernetworking/cni v1.1.2 go-module (+1 duplicate) -github.com/containernetworking/cni v1.2.2 go-module +github.com/containernetworking/cni v1.2.3 go-module github.com/containernetworking/plugins v1.2.0 go-module -github.com/containernetworking/plugins v1.4.0 go-module +github.com/containernetworking/plugins v1.6.2 go-module github.com/containers/ocicrypt v1.1.10 go-module -github.com/coreos/go-systemd/v22 v22.3.2 go-module -github.com/coreos/go-systemd/v22 v22.5.0 go-module (+4 duplicates) -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d go-module -github.com/cyphar/filepath-securejoin v0.2.4 go-module (+1 duplicate) +github.com/coreos/go-systemd/v22 v22.5.0 go-module (+5 duplicates) +github.com/cyphar/filepath-securejoin v0.4.1 go-module (+1 duplicate) github.com/davecgh/go-spew v1.1.1 go-module (+2 duplicates) github.com/deckarep/golang-set/v2 v2.3.0 go-module github.com/dimchansky/utfbom v1.1.1 go-module github.com/distribution/reference v0.6.0 go-module (+3 duplicates) -github.com/docker/buildx v0.17.1 go-module -github.com/docker/cli v27.3.0-rc.2+incompatible go-module -github.com/docker/cli-docs-tool v0.8.0 go-module -github.com/docker/cli/cmd/docker v27.3.1 go-module -github.com/docker/compose/v2 v2.29.7 go-module +github.com/docker/buildx v0.23.0 go-module +github.com/docker/cli v28.1.0+incompatible go-module +github.com/docker/cli-docs-tool v0.9.0 go-module +github.com/docker/cli/cmd/docker UNKNOWN go-module +github.com/docker/compose/v2 UNKNOWN go-module github.com/docker/distribution v2.8.3+incompatible go-module (+1 duplicate) -github.com/docker/docker v27.3.0-rc.2+incompatible go-module -github.com/docker/docker v27.3.1 go-module (+1 duplicate) -github.com/docker/docker-credential-helpers v0.8.2 go-module +github.com/docker/docker v28.1.0+incompatible go-module +github.com/docker/docker v28.1.1 go-module (+1 duplicate) +github.com/docker/docker-credential-helpers v0.9.3 go-module github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c go-module github.com/docker/go-connections v0.5.0 go-module (+1 duplicate) github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c go-module (+4 duplicates) github.com/docker/go-metrics v0.0.1 go-module (+2 duplicates) -github.com/docker/go-units v0.4.0 go-module -github.com/docker/go-units v0.5.0 go-module (+5 duplicates) +github.com/docker/go-units v0.5.0 go-module (+6 duplicates) github.com/docker/libtrust v0.0.0-20150526203908-9cbd2a1374f4 go-module github.com/dustin/go-humanize v1.0.0 go-module github.com/eiannone/keyboard v0.0.0-20220611211555-0d226195f203 go-module @@ -262,29 +275,29 @@ github.com/felixge/httpsnoop v1 github.com/felixge/httpsnoop v1.0.4 go-module (+1 duplicate) github.com/fernet/fernet-go v0.0.0-20211208181803-9f70042a33ee go-module github.com/fluent/fluent-logger-golang v1.9.0 go-module -github.com/fsnotify/fsnotify v1.6.0 go-module (+1 duplicate) +github.com/fsnotify/fsnotify v1.6.0 go-module +github.com/fsnotify/fsnotify v1.7.0 go-module github.com/fvbommel/sortorder v1.1.0 go-module +github.com/fxamacker/cbor/v2 v2.7.0 go-module github.com/go-jose/go-jose/v3 v3.0.3 go-module -github.com/go-logr/logr v1.3.0 go-module (+1 duplicate) -github.com/go-logr/logr v1.4.1 go-module (+1 duplicate) +github.com/go-logr/logr v1.4.2 go-module (+3 duplicates) github.com/go-logr/stdr v1.2.2 go-module (+3 duplicates) github.com/go-openapi/jsonpointer v0.19.6 go-module github.com/go-openapi/jsonreference v0.20.2 go-module -github.com/go-openapi/swag v0.22.3 go-module +github.com/go-openapi/swag v0.22.4 go-module github.com/go-viper/mapstructure/v2 v2.0.0 go-module -github.com/godbus/dbus/v5 v5.0.6 go-module -github.com/godbus/dbus/v5 v5.1.0 go-module (+4 duplicates) +github.com/godbus/dbus/v5 v5.1.0 go-module (+5 duplicates) github.com/gofrs/flock v0.12.1 go-module (+1 duplicate) -github.com/gogo/googleapis v1.4.1 go-module (+1 duplicate) github.com/gogo/protobuf v1.3.2 go-module (+6 duplicates) -github.com/golang-jwt/jwt/v4 v4.5.0 go-module +github.com/golang-jwt/jwt/v5 v5.2.2 go-module (+1 duplicate) github.com/golang/gddo v0.0.0-20190904175337-72a348e765d2 go-module github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da go-module github.com/golang/protobuf v1.5.4 go-module (+6 duplicates) github.com/google/btree v1.1.2 go-module github.com/google/certificate-transparency-go v1.1.4 go-module github.com/google/gnostic-models v0.6.8 go-module -github.com/google/go-cmp v0.6.0 go-module (+6 duplicates) +github.com/google/go-cmp v0.6.0 go-module (+4 duplicates) +github.com/google/go-cmp v0.7.0 go-module (+1 duplicate) github.com/google/gofuzz v1.2.0 go-module (+1 duplicate) github.com/google/s2a-go v0.1.7 go-module github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 go-module (+1 duplicate) @@ -296,14 +309,15 @@ github.com/gorilla/mux v1 github.com/gorilla/websocket v1.5.0 go-module github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 go-module github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 go-module (+1 duplicate) -github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 go-module (+2 duplicates) -github.com/hashicorp/errwrap v1.1.0 go-module (+6 duplicates) +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 go-module +github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 go-module (+1 duplicate) +github.com/hashicorp/errwrap v1.1.0 go-module (+1 duplicate) github.com/hashicorp/go-cleanhttp v0.5.2 go-module github.com/hashicorp/go-immutable-radix v1.3.1 go-module github.com/hashicorp/go-immutable-radix/v2 v2.1.0 go-module github.com/hashicorp/go-memdb v1.3.2 go-module github.com/hashicorp/go-msgpack v0.5.5 go-module -github.com/hashicorp/go-multierror v1.1.1 go-module (+6 duplicates) +github.com/hashicorp/go-multierror v1.1.1 go-module (+1 duplicate) github.com/hashicorp/go-sockaddr v1.0.2 go-module github.com/hashicorp/go-version v1.7.0 go-module github.com/hashicorp/golang-lru v0.5.4 go-module @@ -312,24 +326,25 @@ github.com/hashicorp/memberlist v0 github.com/hashicorp/serf v0.8.5 go-module github.com/imdario/mergo v0.3.16 go-module github.com/in-toto/in-toto-golang v0.5.0 go-module (+1 duplicate) -github.com/intel/goresctrl v0.3.0 go-module (+1 duplicate) +github.com/inhies/go-bytesize v0.0.0-20220417184213-4913239db9cf go-module +github.com/intel/goresctrl v0.5.0 go-module (+1 duplicate) github.com/ishidawataru/sctp v0.0.0-20230406120618-7ff4192f6ff2 go-module (+1 duplicate) github.com/jmoiron/sqlx v1.3.3 go-module -github.com/jonboulle/clockwork v0.4.0 go-module +github.com/jonboulle/clockwork v0.5.0 go-module github.com/josharian/intern v1.0.0 go-module github.com/json-iterator/go v1.1.12 go-module (+1 duplicate) github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 go-module github.com/klauspost/compress v1.16.7 go-module (+3 duplicates) -github.com/klauspost/compress v1.17.9 go-module (+1 duplicate) +github.com/klauspost/compress v1.18.0 go-module (+1 duplicate) github.com/klauspost/cpuid/v2 v2.0.4 go-module (+1 duplicate) github.com/mailru/easyjson v0.7.7 go-module github.com/mattn/go-colorable v0.1.13 go-module -github.com/mattn/go-isatty v0.0.17 go-module +github.com/mattn/go-isatty v0.0.20 go-module github.com/mattn/go-runewidth v0.0.15 go-module github.com/mattn/go-shellwords v1.0.12 go-module -github.com/matttproud/golang_protobuf_extensions v1.0.4 go-module (+2 duplicates) +github.com/matttproud/golang_protobuf_extensions v1.0.4 go-module github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b go-module -github.com/miekg/dns v1.1.57 go-module +github.com/miekg/dns v1.1.61 go-module github.com/miekg/pkcs11 v1.1.1 go-module github.com/minio/sha256-simd v1.0.0 go-module (+1 duplicate) github.com/mistifyio/go-zfs/v3 v3.0.1 go-module (+1 duplicate) @@ -337,184 +352,213 @@ github.com/mitchellh/copystructure v1 github.com/mitchellh/hashstructure/v2 v2.0.2 go-module (+1 duplicate) github.com/mitchellh/mapstructure v1.5.0 go-module github.com/mitchellh/reflectwalk v1.0.2 go-module -github.com/moby/buildkit v0.16.0 go-module (+1 duplicate) +github.com/moby/buildkit v0.21.0 go-module (+1 duplicate) github.com/moby/docker-image-spec v1.3.1 go-module (+1 duplicate) +github.com/moby/go-archive v0.1.0 go-module (+1 duplicate) github.com/moby/ipvs v1.1.0 go-module github.com/moby/locker v1.0.1 go-module (+3 duplicates) github.com/moby/patternmatcher v0.6.0 go-module (+1 duplicate) github.com/moby/pubsub v1.0.0 go-module -github.com/moby/spdystream v0.2.0 go-module (+1 duplicate) -github.com/moby/swarmkit/v2 v2.0.0-20240611172349-ea1a7cec35cb go-module +github.com/moby/spdystream v0.2.0 go-module +github.com/moby/spdystream v0.4.0 go-module +github.com/moby/swarmkit/v2 v2.0.0-20250103191802-8c1959736554 go-module +github.com/moby/sys/atomicwriter v0.1.0 go-module (+1 duplicate) +github.com/moby/sys/capability v0.4.0 go-module github.com/moby/sys/mount v0.3.4 go-module -github.com/moby/sys/mountinfo v0.5.0 go-module github.com/moby/sys/mountinfo v0.6.2 go-module (+4 duplicates) +github.com/moby/sys/mountinfo v0.7.1 go-module github.com/moby/sys/mountinfo v0.7.2 go-module (+1 duplicate) +github.com/moby/sys/reexec v0.1.0 go-module github.com/moby/sys/sequential v0.6.0 go-module (+1 duplicate) github.com/moby/sys/signal v0.7.0 go-module (+1 duplicate) github.com/moby/sys/signal v0.7.1 go-module (+1 duplicate) github.com/moby/sys/symlink v0.2.0 go-module github.com/moby/sys/symlink v0.3.0 go-module (+1 duplicate) -github.com/moby/sys/user v0.3.0 go-module (+5 duplicates) -github.com/moby/sys/userns v0.1.0 go-module (+6 duplicates) -github.com/moby/term v0.5.0 go-module (+1 duplicate) +github.com/moby/sys/user v0.3.0 go-module (+4 duplicates) +github.com/moby/sys/user v0.4.0 go-module (+1 duplicate) +github.com/moby/sys/userns v0.1.0 go-module (+7 duplicates) +github.com/moby/term v0.5.2 go-module (+1 duplicate) github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd go-module (+1 duplicate) github.com/modern-go/reflect2 v1.0.2 go-module (+1 duplicate) github.com/morikuni/aec v1.0.0 go-module (+1 duplicate) github.com/mrunalp/fileutils v0.5.1 go-module -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 go-module +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 go-module (+1 duplicate) github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f go-module -github.com/opencontainers/go-digest v1.0.0 go-module (+5 duplicates) -github.com/opencontainers/image-spec v1.1.0 go-module (+5 duplicates) -github.com/opencontainers/runc v1.1.14 go-module -github.com/opencontainers/runc v1.1.14-0-g2c9f560 go-module -github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 go-module +github.com/opencontainers/cgroups v0.0.1 go-module +github.com/opencontainers/go-digest v1.0.0 go-module (+6 duplicates) +github.com/opencontainers/image-spec v1.1.0 go-module (+4 duplicates) +github.com/opencontainers/image-spec v1.1.1 go-module (+1 duplicate) +github.com/opencontainers/runc v0.0.0-20250213225849-59923ef18c98 go-module github.com/opencontainers/runtime-spec v1.1.0 go-module (+4 duplicates) -github.com/opencontainers/runtime-spec v1.2.0 go-module +github.com/opencontainers/runtime-spec v1.2.0 go-module (+1 duplicate) github.com/opencontainers/runtime-tools v0.9.1-0.20221107090550-2e043c6bd626 go-module (+1 duplicate) -github.com/opencontainers/selinux v1.10.0 go-module github.com/opencontainers/selinux v1.11.0 go-module (+2 duplicates) -github.com/package-url/packageurl-go v0.1.1-0.20220428063043-89078438f170 go-module +github.com/opencontainers/selinux v1.12.0 go-module +github.com/package-url/packageurl-go v0.1.1 go-module github.com/pelletier/go-toml v1.9.5 go-module (+3 duplicates) +github.com/pelletier/go-toml/v2 v2.2.3 go-module github.com/philhofer/fwd v1.1.2 go-module github.com/pkg/errors v0.9.1 go-module (+6 duplicates) +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 go-module (+1 duplicate) github.com/pmezard/go-difflib v1.0.0 go-module (+1 duplicate) -github.com/prometheus/client_golang v1.14.0 go-module -github.com/prometheus/client_golang v1.17.0 go-module (+1 duplicate) +github.com/prometheus/client_golang v1.16.0 go-module +github.com/prometheus/client_golang v1.20.5 go-module (+1 duplicate) github.com/prometheus/client_model v0.3.0 go-module -github.com/prometheus/client_model v0.5.0 go-module (+1 duplicate) -github.com/prometheus/common v0.37.0 go-module -github.com/prometheus/common v0.44.0 go-module (+1 duplicate) +github.com/prometheus/client_model v0.6.1 go-module (+1 duplicate) +github.com/prometheus/common v0.42.0 go-module +github.com/prometheus/common v0.55.0 go-module (+1 duplicate) +github.com/prometheus/procfs v0.10.1 go-module github.com/prometheus/procfs v0.15.1 go-module (+1 duplicate) -github.com/prometheus/procfs v0.8.0 go-module github.com/r3labs/sse v0.0.0-20210224172625-26fe804710bc go-module github.com/rivo/uniseg v0.2.0 go-module -github.com/rootless-containers/rootlesskit/v2 v2.0.2 go-module -github.com/russross/blackfriday/v2 v2.0.1 go-module +github.com/rootless-containers/rootlesskit/v2 v2.3.4 go-module github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 go-module -github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646 go-module +github.com/seccomp/libseccomp-golang v0.10.0 go-module github.com/secure-systems-lab/go-securesystemslib v0.4.0 go-module (+1 duplicate) github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b go-module github.com/shibumi/go-pathspec v1.3.0 go-module (+1 duplicate) -github.com/shurcooL/sanitized_anchor_name v1.0.0 go-module -github.com/sirupsen/logrus v1.8.1 go-module -github.com/sirupsen/logrus v1.9.3 go-module (+7 duplicates) +github.com/sirupsen/logrus v1.9.3 go-module (+8 duplicates) github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 go-module github.com/spdx/tools-golang v0.5.3 go-module -github.com/spf13/cobra v1.8.1 go-module (+1 duplicate) -github.com/spf13/pflag v1.0.5 go-module (+2 duplicates) +github.com/spf13/cobra v1.8.1 go-module +github.com/spf13/cobra v1.9.1 go-module +github.com/spf13/pflag v1.0.5 go-module +github.com/spf13/pflag v1.0.6 go-module (+1 duplicate) github.com/stefanberger/go-pkcs11uri v0.0.0-20230803200340-78284954bff6 go-module -github.com/stretchr/testify v1.9.0 go-module (+1 duplicate) +github.com/stretchr/testify v1.10.0 go-module (+1 duplicate) github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 go-module (+2 duplicates) github.com/tchap/go-patricia/v2 v2.3.1 go-module github.com/theupdateframework/notary v0.7.0 go-module github.com/tilt-dev/fsnotify v1.4.8-0.20220602155310-fff9c274a375 go-module github.com/tinylib/msgp v1.1.8 go-module -github.com/tonistiigi/fsutil v0.0.0-20240424095704-91a3fc46842c go-module (+1 duplicate) -github.com/tonistiigi/go-actions-cache v0.0.0-20240327122527-58651d5e11d6 go-module +github.com/tonistiigi/dchapes-mode v0.0.0-20250318174251-73d941a28323 go-module (+1 duplicate) +github.com/tonistiigi/fsutil v0.0.0-20250410151801-5b74a7ad7583 go-module (+1 duplicate) +github.com/tonistiigi/go-actions-cache v0.0.0-20250228231703-3e9a6642607f go-module github.com/tonistiigi/go-archvariant v1.0.0 go-module github.com/tonistiigi/go-csvvalue v0.0.0-20240710180619-ddb21b71c0b4 go-module (+1 duplicate) github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea go-module (+1 duplicate) github.com/tonistiigi/vt100 v0.0.0-20240514184818-90bafcd6abab go-module -github.com/urfave/cli v1.22.1 go-module github.com/urfave/cli v1.22.12 go-module (+1 duplicate) -github.com/vbatts/tar-split v0.11.5 go-module +github.com/urfave/cli v1.22.14 go-module +github.com/vbatts/tar-split v0.11.6 go-module github.com/vishvananda/netlink v1.1.0 go-module -github.com/vishvananda/netlink v1.2.1-beta.2 go-module (+1 duplicate) +github.com/vishvananda/netlink v1.2.1-beta.2 go-module +github.com/vishvananda/netlink v1.3.1-0.20250209162617-655392bc778a go-module github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df go-module github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f go-module -github.com/vishvananda/netns v0.0.4 go-module +github.com/vishvananda/netns v0.0.5 go-module github.com/weppos/publicsuffix-go v0.15.1-0.20210511084619-b1f36a2d6c0b go-module +github.com/x448/float16 v0.8.4 go-module github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb go-module github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 go-module github.com/xeipuuv/gojsonschema v1.2.0 go-module +github.com/xhit/go-str2duration/v2 v2.1.0 go-module +github.com/zclconf/go-cty v1.16.0 go-module github.com/zmap/zcrypto v0.0.0-20210511125630-18f1e0152cfc go-module github.com/zmap/zlint/v3 v3.1.0 go-module glib-networking 2.80.0-1build1 deb glib-networking-common 2.80.0-1build1 deb glib-networking-services 2.80.0-1build1 deb -gnupg 2.4.4-2ubuntu17 deb -gnupg-l10n 2.4.4-2ubuntu17 deb -gnupg-utils 2.4.4-2ubuntu17 deb -go.etcd.io/bbolt v1.3.10 go-module (+1 duplicate) -go.etcd.io/etcd/client/pkg/v3 v3.5.6 go-module -go.etcd.io/etcd/pkg/v3 v3.5.6 go-module -go.etcd.io/etcd/raft/v3 v3.5.6 go-module -go.etcd.io/etcd/server/v3 v3.5.6 go-module +gnupg 2.4.4-2ubuntu17.2 deb +gnupg-l10n 2.4.4-2ubuntu17.2 deb +gnupg-utils 2.4.4-2ubuntu17.2 deb +go.etcd.io/bbolt v1.3.10 go-module +go.etcd.io/bbolt v1.3.11 go-module +go.etcd.io/etcd/client/pkg/v3 v3.5.16 go-module +go.etcd.io/etcd/pkg/v3 v3.5.16 go-module +go.etcd.io/etcd/raft/v3 v3.5.16 go-module +go.etcd.io/etcd/server/v3 v3.5.16 go-module go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1 go-module go.opencensus.io v0.24.0 go-module -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 go-module (+2 duplicates) -go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.46.1 go-module (+1 duplicate) +go.opentelemetry.io/auto/sdk v1.1.0 go-module +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 go-module +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 go-module (+1 duplicate) +go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.56.0 go-module (+1 duplicate) go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 go-module (+1 duplicate) -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 go-module (+1 duplicate) -go.opentelemetry.io/otel v1.21.0 go-module (+3 duplicates) -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0 go-module (+1 duplicate) -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.44.0 go-module (+1 duplicate) +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 go-module (+1 duplicate) +go.opentelemetry.io/contrib/processors/baggagecopy v0.4.0 go-module +go.opentelemetry.io/otel v1.21.0 go-module (+1 duplicate) +go.opentelemetry.io/otel v1.31.0 go-module +go.opentelemetry.io/otel v1.34.0 go-module +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 go-module (+1 duplicate) +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0 go-module (+1 duplicate) go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 go-module -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 go-module (+1 duplicate) +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 go-module (+1 duplicate) go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 go-module -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 go-module (+1 duplicate) +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 go-module (+1 duplicate) go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 go-module -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 go-module (+1 duplicate) -go.opentelemetry.io/otel/metric v1.21.0 go-module (+3 duplicates) -go.opentelemetry.io/otel/sdk v1.21.0 go-module (+2 duplicates) -go.opentelemetry.io/otel/sdk/metric v1.21.0 go-module (+1 duplicate) -go.opentelemetry.io/otel/trace v1.21.0 go-module (+3 duplicates) -go.opentelemetry.io/proto/otlp v1.0.0 go-module (+2 duplicates) +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 go-module (+1 duplicate) +go.opentelemetry.io/otel/metric v1.21.0 go-module (+1 duplicate) +go.opentelemetry.io/otel/metric v1.31.0 go-module +go.opentelemetry.io/otel/metric v1.34.0 go-module +go.opentelemetry.io/otel/sdk v1.21.0 go-module +go.opentelemetry.io/otel/sdk v1.31.0 go-module +go.opentelemetry.io/otel/sdk v1.34.0 go-module +go.opentelemetry.io/otel/sdk/metric v1.31.0 go-module +go.opentelemetry.io/otel/sdk/metric v1.34.0 go-module +go.opentelemetry.io/otel/trace v1.21.0 go-module (+1 duplicate) +go.opentelemetry.io/otel/trace v1.31.0 go-module +go.opentelemetry.io/otel/trace v1.34.0 go-module +go.opentelemetry.io/proto/otlp v1.0.0 go-module +go.opentelemetry.io/proto/otlp v1.3.1 go-module (+1 duplicate) go.uber.org/atomic v1.9.0 go-module -go.uber.org/mock v0.4.0 go-module +go.uber.org/mock v0.5.1 go-module go.uber.org/multierr v1.8.0 go-module go.uber.org/zap v1.21.0 go-module -golang.org/x/crypto v0.21.0 go-module -golang.org/x/crypto v0.26.0 go-module (+1 duplicate) -golang.org/x/exp v0.0.0-20240823005443-9b4947da3948 go-module (+1 duplicate) -golang.org/x/mod v0.12.0 go-module -golang.org/x/mod v0.20.0 go-module -golang.org/x/net v0.23.0 go-module (+2 duplicates) -golang.org/x/net v0.24.0 go-module -golang.org/x/net v0.28.0 go-module (+1 duplicate) +golang.org/x/crypto v0.31.0 go-module +golang.org/x/crypto v0.37.0 go-module (+1 duplicate) +golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2 go-module +golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 go-module +golang.org/x/mod v0.17.0 go-module +golang.org/x/mod v0.24.0 go-module +golang.org/x/net v0.33.0 go-module (+3 duplicates) +golang.org/x/net v0.39.0 go-module (+2 duplicates) golang.org/x/oauth2 v0.11.0 go-module -golang.org/x/oauth2 v0.22.0 go-module (+1 duplicate) -golang.org/x/sync v0.5.0 go-module (+4 duplicates) -golang.org/x/sync v0.8.0 go-module (+1 duplicate) -golang.org/x/sys v0.18.0 go-module (+4 duplicates) -golang.org/x/sys v0.19.0 go-module -golang.org/x/sys v0.24.0 go-module (+1 duplicate) -golang.org/x/sys v0.25.0 go-module -golang.org/x/term v0.18.0 go-module -golang.org/x/term v0.23.0 go-module -golang.org/x/text v0.14.0 go-module (+2 duplicates) -golang.org/x/text v0.17.0 go-module (+1 duplicate) +golang.org/x/oauth2 v0.25.0 go-module +golang.org/x/oauth2 v0.29.0 go-module +golang.org/x/sync v0.10.0 go-module (+4 duplicates) +golang.org/x/sync v0.13.0 go-module (+1 duplicate) +golang.org/x/sys v0.28.0 go-module (+5 duplicates) +golang.org/x/sys v0.32.0 go-module (+2 duplicates) +golang.org/x/term v0.27.0 go-module +golang.org/x/term v0.31.0 go-module +golang.org/x/text v0.21.0 go-module (+2 duplicates) +golang.org/x/text v0.24.0 go-module (+1 duplicate) golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 go-module -golang.org/x/time v0.6.0 go-module (+1 duplicate) +golang.org/x/time v0.11.0 go-module (+1 duplicate) google.golang.org/api v0.155.0 go-module google.golang.org/genproto v0.0.0-20231211222908-989df2bf70f3 go-module (+4 duplicates) -google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 go-module (+1 duplicate) +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 go-module google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f go-module -google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 go-module (+1 duplicate) -google.golang.org/genproto/googleapis/rpc v0.0.0-20231212172506-995d672761c0 go-module (+4 duplicates) -google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 go-module (+1 duplicate) +google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38 go-module +google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 go-module +google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda go-module (+4 duplicates) +google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 go-module +google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f go-module google.golang.org/grpc v1.59.0 go-module (+4 duplicates) -google.golang.org/grpc v1.62.0 go-module (+1 duplicate) -google.golang.org/protobuf v1.33.0 go-module (+7 duplicates) -gopd 1.0.1 npm +google.golang.org/grpc v1.69.4 go-module +google.golang.org/grpc v1.71.1 go-module +google.golang.org/protobuf v1.33.0 go-module +google.golang.org/protobuf v1.35.2 go-module (+5 duplicates) +google.golang.org/protobuf v1.36.4 go-module +gopd 1.2.0 npm gopkg.in/cenkalti/backoff.v1 v1.1.0 go-module gopkg.in/inf.v0 v0.9.1 go-module (+2 duplicates) -gopkg.in/yaml.v2 v2.4.0 go-module (+3 duplicates) +gopkg.in/ini.v1 v1.67.0 go-module +gopkg.in/yaml.v2 v2.4.0 go-module (+2 duplicates) gopkg.in/yaml.v3 v3.0.1 go-module (+2 duplicates) -gpg 2.4.4-2ubuntu17 deb -gpg-agent 2.4.4-2ubuntu17 deb -gpg-wks-client 2.4.4-2ubuntu17 deb -gpgconf 2.4.4-2ubuntu17 deb -gpgsm 2.4.4-2ubuntu17 deb -gpgv 2.4.4-2ubuntu17 deb +gpg 2.4.4-2ubuntu17.2 deb +gpg-agent 2.4.4-2ubuntu17.2 deb +gpg-wks-client 2.4.4-2ubuntu17.2 deb +gpgconf 2.4.4-2ubuntu17.2 deb +gpgsm 2.4.4-2ubuntu17.2 deb +gpgv 2.4.4-2ubuntu17.2 deb grep 3.11-4build1 deb groff-base 1.23.0-3build2 deb gsettings-desktop-schemas 46.1-0ubuntu1 deb gzip 1.12-1ubuntu3 deb has-flag 4.0.0 npm -has-property-descriptors 1.0.2 npm -has-proto 1.0.3 npm -has-symbols 1.0.3 npm +has-symbols 1.1.0 npm hasown 2.0.2 npm hostname 3.23+nmu2ubuntu2 deb http-errors 2.0.0 npm @@ -531,31 +575,31 @@ jake 10 jq 1.7.1 binary jq 1.7.1-3build1 deb k8s.io/api v0.26.2 go-module -k8s.io/api v0.29.2 go-module -k8s.io/apimachinery v0.26.2 go-module (+1 duplicate) -k8s.io/apimachinery v0.29.2 go-module +k8s.io/api v0.31.2 go-module +k8s.io/apimachinery v0.27.4 go-module (+1 duplicate) +k8s.io/apimachinery v0.31.2 go-module k8s.io/apiserver v0.26.2 go-module k8s.io/client-go v0.26.2 go-module -k8s.io/client-go v0.29.2 go-module +k8s.io/client-go v0.31.2 go-module k8s.io/component-base v0.26.2 go-module k8s.io/cri-api v0.27.1 go-module -k8s.io/klog/v2 v2.110.1 go-module -k8s.io/klog/v2 v2.90.1 go-module (+1 duplicate) -k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 go-module +k8s.io/klog/v2 v2.130.1 go-module (+1 duplicate) +k8s.io/klog/v2 v2.90.1 go-module +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 go-module k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 go-module -k8s.io/utils v0.0.0-20230726121419-3b25d923346b go-module +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 go-module kbd 2.6.4-2ubuntu2 deb kclient 0.4.1 npm keyboard-configuration 1.226ubuntu1 deb -keyboxd 2.4.4-2ubuntu17 deb -krb5-locales 1.20.1-6ubuntu2.1 deb +keyboxd 2.4.4-2ubuntu17.2 deb +krb5-locales 1.20.1-6ubuntu2.5 deb launchpadlib 1.11.0 python lazr-restfulclient 0.14.6 python lazr-uri 1.0.6 python -libacl1 2.3.2-1build1 deb +libacl1 2.3.2-1build1.1 deb libalgorithm-c3-perl 0.11-2 deb libaom3 3.8.2-2ubuntu0.1 deb -libapparmor1 4.0.1really4.0.1-0ubuntu0.24.04.3 deb +libapparmor1 4.0.1really4.0.1-0ubuntu0.24.04.4 deb libappstream5 1.0.2-1build6 deb libapt-pkg6.0t64 2.7.14build2 deb libargon2-1 0~20190702+dfsg-4build1 deb @@ -572,9 +616,9 @@ libatk1.0-dev 2. libatk1.0-doc 2.52.0-1build1 deb libatspi2.0-0t64 2.52.0-1build1 deb libatspi2.0-dev 2.52.0-1build1 deb -libattr1 1:2.5.2-1build1 deb -libaudit-common 1:3.1.2-2.1build1 deb -libaudit1 1:3.1.2-2.1build1 deb +libattr1 1:2.5.2-1build1.1 deb +libaudit-common 1:3.1.2-2.1build1.1 deb +libaudit1 1:3.1.2-2.1build1.1 deb libavahi-client3 0.8-13ubuntu6 deb libavahi-common-data 0.8-13ubuntu6 deb libavahi-common3 0.8-13ubuntu6 deb @@ -587,25 +631,25 @@ libavutil58 7: libb-hooks-endofscope-perl 0.28-1 deb libb-hooks-op-check-perl 0.22-3build1 deb libblas3 3.12.0-3build1.1 deb -libblkid-dev 2.39.3-9ubuntu6.1 deb -libblkid1 2.39.3-9ubuntu6.1 deb +libblkid-dev 2.39.3-9ubuntu6.2 deb +libblkid1 2.39.3-9ubuntu6.2 deb libbluray2 1:1.3.4-1build1 deb libbpf1 1:1.3.0-2build2 deb libbrotli1 1.1.0-2build2 deb libbs2b0 3.1.0+dfsg-7build1 deb -libbsd0 0.12.1-1build1 deb +libbsd0 0.12.1-1build1.1 deb libbz2-1.0 1.0.8-5.1build0.1 deb -libc-bin 2.39-0ubuntu8.3 deb -libc-dev-bin 2.39-0ubuntu8.3 deb -libc-devtools 2.39-0ubuntu8.3 deb -libc6 2.39-0ubuntu8.3 deb -libc6-dev 2.39-0ubuntu8.3 deb +libc-bin 2.39-0ubuntu8.4 deb +libc-dev-bin 2.39-0ubuntu8.4 deb +libc-devtools 2.39-0ubuntu8.4 deb +libc6 2.39-0ubuntu8.4 deb +libc6-dev 2.39-0ubuntu8.4 deb libcaca0 0.99.beta20-4build2 deb libcairo-gobject2 1.18.0-3build1 deb libcairo2 1.18.0-3build1 deb libcap-ng0 0.8.4-2build2 deb -libcap2 1:2.66-5ubuntu2 deb -libcap2-bin 1:2.66-5ubuntu2 deb +libcap2 1:2.66-5ubuntu2.2 deb +libcap2-bin 1:2.66-5ubuntu2.2 deb libcares2 1.27.0-1.0ubuntu1 deb libcbor0.10 0.10.2-1.2ubuntu2 deb libcdio-cdda2t64 10.2+2.0.1-1.1build2 deb @@ -622,12 +666,12 @@ libcodec2-1.2 1. libcom-err2 1.47.0-2.4~exp1ubuntu4.1 deb libcrypt-dev 1:4.4.36-4build1 deb libcrypt1 1:4.4.36-4build1 deb -libcryptsetup12 2:2.7.0-1ubuntu4.1 deb +libcryptsetup12 2:2.7.0-1ubuntu4.2 deb libcups2t64 2.4.7-1.2ubuntu7.3 deb libcupsfilters2-common 2.0.0-0ubuntu7.1 deb libcupsfilters2t64 2.0.0-0ubuntu7.1 deb -libcurl3t64-gnutls 8.5.0-2ubuntu10.4 deb -libcurl4t64 8.5.0-2ubuntu10.4 deb +libcurl3t64-gnutls 8.5.0-2ubuntu10.6 deb +libcurl4t64 8.5.0-2ubuntu10.6 deb libdata-optlist-perl 0.114-1 deb libdatetime-locale-perl 1:1.37-1 deb libdatetime-perl 2:1.65-1build2 deb @@ -645,28 +689,28 @@ libdecor-0-0 0. libdeflate0 1.19-1build1.1 deb libdevel-callchecker-perl 0.008-2build3 deb libdevel-stacktrace-perl 2.0500-1 deb -libdevmapper1.02.1 2:1.02.185-3ubuntu3.1 deb -libdrm-amdgpu1 2.4.120-2build1 deb -libdrm-common 2.4.120-2build1 deb -libdrm-intel1 2.4.120-2build1 deb -libdrm-nouveau2 2.4.120-2build1 deb -libdrm-radeon1 2.4.120-2build1 deb -libdrm2 2.4.120-2build1 deb +libdevmapper1.02.1 2:1.02.185-3ubuntu3.2 deb +libdrm-amdgpu1 2.4.122-1~ubuntu0.24.04.1 deb +libdrm-common 2.4.122-1~ubuntu0.24.04.1 deb +libdrm-intel1 2.4.122-1~ubuntu0.24.04.1 deb +libdrm-nouveau2 2.4.122-1~ubuntu0.24.04.1 deb +libdrm-radeon1 2.4.122-1~ubuntu0.24.04.1 deb +libdrm2 2.4.122-1~ubuntu0.24.04.1 deb libduktape207 2.7.0+tests-0ubuntu3 deb -libdw1t64 0.190-1.1build4 deb +libdw1t64 0.190-1.1ubuntu0.1 deb libdynaloader-functions-perl 0.003-3 deb libedit2 3.1-20230828-1build1 deb -libegl-mesa0 24.0.9-0ubuntu0.2 deb +libegl-mesa0 24.2.8-1ubuntu1~24.04.1 deb libegl1 1.7.0-1build1 deb -libelf1t64 0.190-1.1build4 deb +libelf1t64 0.190-1.1ubuntu0.1 deb libepoxy0 1.5.10-1build1 deb libeval-closure-perl 0.14-3 deb libexception-class-perl 1.45-1 deb libexif12 0.6.24-1build2 deb -libexpat1 2.6.1-2ubuntu0.1 deb +libexpat1 2.6.1-2ubuntu0.3 deb libexporter-tiny-perl 1.006002-1 deb libext2fs2t64 1.47.0-2.4~exp1ubuntu4.1 deb -libfdisk1 2.39.3-9ubuntu6.1 deb +libfdisk1 2.39.3-9ubuntu6.2 deb libffi-dev 3.4.6-1build1 deb libffi8 3.4.6-1build1 deb libfftw3-double3 3.3.10-1ubuntu3 deb @@ -680,62 +724,62 @@ libfontenc1 1: libfreetype6 2.13.2+dfsg-1build3 deb libfribidi0 1.0.13-3build1 deb libfuse3-3 3.14.0-5build1 deb -libgbm1 24.0.9-0ubuntu0.2 deb -libgcc-s1 14-20240412-0ubuntu1 deb +libgbm1 24.2.8-1ubuntu1~24.04.1 deb +libgcc-s1 14.2.0-4ubuntu2~24.04 deb libgcrypt20 1.10.3-2build1 deb libgd3 2.3.3-9ubuntu5 deb libgdbm-compat4t64 1.23-5.1build1 deb libgdbm6t64 1.23-5.1build1 deb libgdk-pixbuf-2.0-0 2.42.10+dfsg-3ubuntu3.1 deb libgdk-pixbuf2.0-common 2.42.10+dfsg-3ubuntu3.1 deb -libgfortran5 14-20240412-0ubuntu1 deb +libgfortran5 14.2.0-4ubuntu2~24.04 deb libgif7 5.2.2-1ubuntu1 deb libgirepository-1.0-1 1.80.1-1 deb -libgirepository-2.0-0 2.80.0-6ubuntu3.1 deb +libgirepository-2.0-0 2.80.0-6ubuntu3.4 deb libgl1 1.7.0-1build1 deb -libgl1-mesa-dri 24.0.9-0ubuntu0.2 deb -libglapi-mesa 24.0.9-0ubuntu0.2 deb -libglib2.0-0t64 2.80.0-6ubuntu3.1 deb -libglib2.0-bin 2.80.0-6ubuntu3.1 deb -libglib2.0-data 2.80.0-6ubuntu3.1 deb -libglib2.0-dev 2.80.0-6ubuntu3.1 deb -libglib2.0-dev-bin 2.80.0-6ubuntu3.1 deb +libgl1-mesa-dri 24.2.8-1ubuntu1~24.04.1 deb +libglapi-mesa 24.2.8-1ubuntu1~24.04.1 deb +libglib2.0-0t64 2.80.0-6ubuntu3.4 deb +libglib2.0-bin 2.80.0-6ubuntu3.4 deb +libglib2.0-data 2.80.0-6ubuntu3.4 deb +libglib2.0-dev 2.80.0-6ubuntu3.4 deb +libglib2.0-dev-bin 2.80.0-6ubuntu3.4 deb libglu1-mesa 9.0.2-1.1build1 deb libglvnd0 1.7.0-1build1 deb -libglx-mesa0 24.0.9-0ubuntu0.2 deb +libglx-mesa0 24.2.8-1ubuntu1~24.04.1 deb libglx0 1.7.0-1build1 deb libgme0 0.6.3-7build1 deb -libgmp10 2:6.3.0+dfsg-2ubuntu6 deb -libgnutls30t64 3.8.3-1.1ubuntu3.2 deb -libgomp1 14-20240412-0ubuntu1 deb -libgpg-error0 1.47-3build2 deb +libgmp10 2:6.3.0+dfsg-2ubuntu6.1 deb +libgnutls30t64 3.8.3-1.1ubuntu3.3 deb +libgomp1 14.2.0-4ubuntu2~24.04 deb +libgpg-error0 1.47-3build2.1 deb libgraphite2-3 1.3.14-2build1 deb -libgs-common 10.02.1~dfsg1-0ubuntu7.3 deb -libgs10 10.02.1~dfsg1-0ubuntu7.3 deb -libgs10-common 10.02.1~dfsg1-0ubuntu7.3 deb +libgs-common 10.02.1~dfsg1-0ubuntu7.6 deb +libgs10 10.02.1~dfsg1-0ubuntu7.6 deb +libgs10-common 10.02.1~dfsg1-0ubuntu7.6 deb libgsm1 1.0.22-1build1 deb -libgssapi-krb5-2 1.20.1-6ubuntu2.1 deb -libgstreamer-plugins-base1.0-0 1.24.2-1ubuntu0.1 deb -libgstreamer1.0-0 1.24.2-1 deb +libgssapi-krb5-2 1.20.1-6ubuntu2.5 deb +libgstreamer-plugins-base1.0-0 1.24.2-1ubuntu0.2 deb +libgstreamer1.0-0 1.24.2-1ubuntu0.1 deb libharfbuzz0b 8.3.0-2build2 deb libhash-merge-simple-perl 0.051-3 deb -libheif-plugin-aomdec 1.17.6-1ubuntu4 deb -libheif-plugin-libde265 1.17.6-1ubuntu4 deb -libheif1 1.17.6-1ubuntu4 deb +libheif-plugin-aomdec 1.17.6-1ubuntu4.1 deb +libheif-plugin-libde265 1.17.6-1ubuntu4.1 deb +libheif1 1.17.6-1ubuntu4.1 deb libhogweed6t64 3.9.1-2.2build1.1 deb libhwy1t64 1.0.7-8.1build1 deb libice6 2:1.0.10-1build3 deb libicu74 74.2-1ubuntu3.1 deb libid3tag0 0.15.1b-14build1 deb libidn12 1.42-1build1 deb -libidn2-0 2.3.7-2build1 deb +libidn2-0 2.3.7-2build1.1 deb libiec61883-0 1.2.0-6build1 deb libigdgmm12 22.3.17+ds1-1 deb libijs-0.35 0.35-15.1build1 deb libimlib2t64 1.12.1-1.1build2 deb libip4tc2 1.8.10-3ubuntu2 deb libip6tc2 1.8.10-3ubuntu2 deb -libisl23 0.26-3build1 deb +libisl23 0.26-3build1.1 deb libjack-jackd2-0 1.9.21~dfsg-3ubuntu3 deb libjbig0 2.1-6.1ubuntu2 deb libjbig2dec0 0.20-1build3 deb @@ -746,38 +790,38 @@ libjson-c5 0. libjson-glib-1.0-0 1.8.0-2build2 deb libjson-glib-1.0-common 1.8.0-2build2 deb libjxl0.7 0.7.0-10.2ubuntu6 deb -libk5crypto3 1.20.1-6ubuntu2.1 deb +libk5crypto3 1.20.1-6ubuntu2.5 deb libkeyutils1 1.6.3-3build1 deb -libkmod2 31+20240202-2ubuntu7 deb -libkrb5-3 1.20.1-6ubuntu2.1 deb -libkrb5support0 1.20.1-6ubuntu2.1 deb +libkmod2 31+20240202-2ubuntu7.1 deb +libkrb5-3 1.20.1-6ubuntu2.5 deb +libkrb5support0 1.20.1-6ubuntu2.5 deb libksba8 1.6.6-1build1 deb liblapack3 3.12.0-3build1.1 deb liblcms2-2 2.14-2build1 deb -libldap-common 2.6.7+dfsg-1~exp1ubuntu8 deb -libldap2 2.6.7+dfsg-1~exp1ubuntu8 deb +libldap-common 2.6.7+dfsg-1~exp1ubuntu8.2 deb +libldap2 2.6.7+dfsg-1~exp1ubuntu8.2 deb liblerc4 4.0.0+ds-4ubuntu2 deb liblilv-0-0 0.24.22-1build1 deb liblist-moreutils-perl 0.430-2 deb liblist-moreutils-xs-perl 0.430-3build5 deb -libllvm17t64 1:17.0.6-9ubuntu1 deb +libllvm19 1:19.1.1-1ubuntu1~24.04.2 deb liblocale-gettext-perl 1.07-6ubuntu5 deb libltdl7 2.4.7-7build1 deb liblz4-1 1.9.4-1build1.1 deb -liblzma5 5.6.1+really5.4.5-1build0.1 deb +liblzma5 5.6.1+really5.4.5-1ubuntu0.2 deb libmagic-mgc 1:5.45-3build1 deb libmagic1t64 1:5.45-3build1 deb libmbedcrypto7t64 2.28.8-1 deb -libmd0 1.1.0-2build1 deb +libmd0 1.1.0-2build1.1 deb libmnl0 1.0.5-2build1 deb libmodule-implementation-perl 0.09-2 deb libmodule-runtime-perl 0.016-2 deb -libmount-dev 2.39.3-9ubuntu6.1 deb -libmount1 2.39.3-9ubuntu6.1 deb +libmount-dev 2.39.3-9ubuntu6.2 deb +libmount1 2.39.3-9ubuntu6.2 deb libmp3lame0 3.100-6build1 deb -libmpc3 1.3.1-1build1 deb -libmpfr6 4.2.1-1build1 deb -libmpg123-0t64 1.32.5-1ubuntu1 deb +libmpc3 1.3.1-1build1.1 deb +libmpfr6 4.2.1-1build1.1 deb +libmpg123-0t64 1.32.5-1ubuntu1.1 deb libmro-compat-perl 0.15-2 deb libmysofa1 1.3.2+dfsg-2ubuntu2 deb libnamespace-autoclean-perl 0.29-2 deb @@ -787,7 +831,7 @@ libnetfilter-conntrack3 1. libnettle8t64 3.9.1-2.2build1.1 deb libnfnetlink0 1.0.2-2build1 deb libnftnl11 1.2.6-2build1 deb -libnghttp2-14 1.59.0-1ubuntu0.1 deb +libnghttp2-14 1.59.0-1ubuntu0.2 deb libnode109 18.19.1+dfsg-6ubuntu5 deb libnorm1t64 1.5.9+dfsg-3.1build1 deb libnotify-bin 0.8.3-1build2 deb @@ -803,17 +847,17 @@ libonig5 6. libopenal-data 1:1.23.1-4build1 deb libopenal1 1:1.23.1-4build1 deb libopengl0 1.7.0-1build1 deb -libopenjp2-7 2.5.0-2ubuntu0.1 deb +libopenjp2-7 2.5.0-2ubuntu0.3 deb libopenmpt0t64 0.7.3-1.1build3 deb libopus0 1.4-1build1 deb liborc-0.4-0t64 1:0.4.38-1ubuntu0.1 deb libp11-kit0 0.25.3-4ubuntu2.1 deb libpackage-stash-perl 0.40-1 deb -libpackagekit-glib2-18 1.2.8-2build3 deb +libpackagekit-glib2-18 1.2.8-2ubuntu1.2 deb libpam-modules 1.5.3-5ubuntu5.1 deb libpam-modules-bin 1.5.3-5ubuntu5.1 deb libpam-runtime 1.5.3-5ubuntu5.1 deb -libpam-systemd 255.4-1ubuntu8.4 deb +libpam-systemd 255.4-1ubuntu8.6 deb libpam0g 1.5.3-5ubuntu5.1 deb libpango-1.0-0 1.52.1+ds-1build1 deb libpangocairo-1.0-0 1.52.1+ds-1build1 deb @@ -826,12 +870,12 @@ libparams-util-perl 1. libparams-validationcompiler-perl 0.31-1 deb libpci3 1:3.10.0-2build1 deb libpciaccess0 0.17-3build1 deb -libpcre2-16-0 10.42-4ubuntu2 deb -libpcre2-32-0 10.42-4ubuntu2 deb -libpcre2-8-0 10.42-4ubuntu2 deb -libpcre2-dev 10.42-4ubuntu2 deb -libpcre2-posix3 10.42-4ubuntu2 deb -libperl5.38t64 5.38.2-3.2build2 deb +libpcre2-16-0 10.42-4ubuntu2.1 deb +libpcre2-32-0 10.42-4ubuntu2.1 deb +libpcre2-8-0 10.42-4ubuntu2.1 deb +libpcre2-dev 10.42-4ubuntu2.1 deb +libpcre2-posix3 10.42-4ubuntu2.1 deb +libperl5.38t64 5.38.2-3.2ubuntu0.1 deb libpgm-5.3-0t64 5.3.128~dfsg-2.1build1 deb libpipeline1 1.5.7-2 deb libpixman-1-0 0.42.2-1build1 deb @@ -839,10 +883,10 @@ libpkgconf3 1. libplacebo338 6.338.2-2build1 deb libpng16-16t64 1.6.43-5build1 deb libpocketsphinx3 0.8.0+real5prealpha+1-15ubuntu5 deb -libpolkit-agent-1-0 124-2ubuntu1 deb -libpolkit-gobject-1-0 124-2ubuntu1 deb -libpoppler-cpp0t64 24.02.0-1ubuntu9.1 deb -libpoppler134 24.02.0-1ubuntu9.1 deb +libpolkit-agent-1-0 124-2ubuntu1.24.04.2 deb +libpolkit-gobject-1-0 124-2ubuntu1.24.04.2 deb +libpoppler-cpp0t64 24.02.0-1ubuntu9.4 deb +libpoppler134 24.02.0-1ubuntu9.4 deb libportaudio2 19.6.0-1.2build3 deb libpostproc57 7:6.1.1-3ubuntu5 deb libppd2 2:2.0.0-0ubuntu4.1 deb @@ -851,10 +895,10 @@ libproc2-0 2: libproxy1v5 0.5.4-4build1 deb libpsl5t64 0.21.2-1.1build1 deb libpthread-stubs0-dev 0.4-1build3 deb -libpulse0 1:16.1+dfsg1-2ubuntu10 deb +libpulse0 1:16.1+dfsg1-2ubuntu10.1 deb libpython3-stdlib 3.12.3-0ubuntu2 deb -libpython3.12-minimal 3.12.3-1ubuntu0.2 deb -libpython3.12-stdlib 3.12.3-1ubuntu0.2 deb +libpython3.12-minimal 3.12.3-1ubuntu0.5 deb +libpython3.12-stdlib 3.12.3-1ubuntu0.5 deb libqpdf29t64 11.9.0-1.1build1 deb librabbitmq4 0.11.0-1build2 deb librav1e0 0.7.1-2 deb @@ -870,10 +914,10 @@ libsasl2-2 2. libsasl2-modules 2.1.28+dfsg1-5ubuntu3.1 deb libsasl2-modules-db 2.1.28+dfsg1-5ubuntu3.1 deb libscalar-list-utils-perl 1:1.63-1build3 deb -libsdl2-2.0-0 2.30.0+dfsg-1build3 deb +libsdl2-2.0-0 2.30.0+dfsg-1ubuntu3.1 deb libseccomp2 2.5.5-1ubuntu3.1 deb -libselinux1 3.5-2ubuntu2 deb -libselinux1-dev 3.5-2ubuntu2 deb +libselinux1 3.5-2ubuntu2.1 deb +libselinux1-dev 3.5-2ubuntu2.1 deb libsemanage-common 3.5-1build5 deb libsemanage2 3.5-1build5 deb libsensors-config 1:3.6.0-9build1 deb @@ -885,30 +929,30 @@ libsharpyuv0 1. libshine3 3.1.1-2build1 deb libslang2 2.3.3-3build2 deb libsm6 2:1.2.3-1build3 deb -libsmartcols1 2.39.3-9ubuntu6.1 deb +libsmartcols1 2.39.3-9ubuntu6.2 deb libsnapd-glib-2-1 1.64-0ubuntu5 deb libsnappy1v5 1.1.10-1build1 deb -libsndfile1 1.2.2-1ubuntu5 deb +libsndfile1 1.2.2-1ubuntu5.24.04.1 deb libsndio7.0 1.9.0-0.3build3 deb libsodium23 1.0.18-1build3 deb libsord-0-0 0.16.16-2build1 deb -libsoup-3.0-0 3.4.4-5build2 deb -libsoup-3.0-common 3.4.4-5build2 deb +libsoup-3.0-0 3.4.4-5ubuntu0.3 deb +libsoup-3.0-common 3.4.4-5ubuntu0.3 deb libsoxr0 0.1.3-4build3 deb libspecio-perl 0.48-1 deb libspectre1 0.2.12-1build2 deb -libspeex1 1.2.1-2ubuntu2 deb +libspeex1 1.2.1-2ubuntu2.24.04.1 deb libspeexdsp1 1.2.1-1ubuntu3 deb libsphinxbase3t64 0.8+5prealpha+1-17build2 deb -libsqlite3-0 3.45.1-1ubuntu2 deb +libsqlite3-0 3.45.1-1ubuntu2.1 deb libsratom-0-0 0.6.16-1build1 deb libsrt1.5-gnutls 1.5.3-1build2 deb libss2 1.47.0-2.4~exp1ubuntu4.1 deb libssh-4 0.10.6-2build2 deb libssh-gcrypt-4 0.10.6-2build2 deb -libssl3t64 3.0.13-0ubuntu3.4 deb +libssl3t64 3.0.13-0ubuntu3.5 deb libstartup-notification0 0.12-6build3 deb -libstdc++6 14-20240412-0ubuntu1 deb +libstdc++6 14.2.0-4ubuntu2~24.04 deb libstemmer0d 2.2.0-4build1 deb libsub-exporter-perl 0.990-1 deb libsub-exporter-progressive-perl 0.001013-3 deb @@ -920,9 +964,9 @@ libsvtav1enc1d1 1. libswitch-perl 2.17-3 deb libswresample4 7:6.1.1-3ubuntu5 deb libswscale7 7:6.1.1-3ubuntu5 deb -libsystemd-shared 255.4-1ubuntu8.4 deb -libsystemd0 255.4-1ubuntu8.4 deb -libtasn1-6 4.19.0-3build1 deb +libsystemd-shared 255.4-1ubuntu8.6 deb +libsystemd0 255.4-1ubuntu8.6 deb +libtasn1-6 4.19.0-3ubuntu0.24.04.1 deb libtdb1 1.4.10-1build1 deb libthai-data 0.1.29-2build1 deb libthai0 0.1.29-2build1 deb @@ -934,14 +978,14 @@ libtirpc3t64 1. libtry-tiny-perl 0.31-2 deb libtwolame0 0.4.0-2build3 deb libuchardet0 0.0.8-1build1 deb -libudev1 255.4-1ubuntu8.4 deb +libudev1 255.4-1ubuntu8.6 deb libudfread0 1.1.2-1build1 deb libunibreak5 5.1-2build1 deb -libunistring5 1.1-2build1 deb -libunwind8 1.6.2-3build1 deb +libunistring5 1.1-2build1.1 deb +libunwind8 1.6.2-3build1.1 deb libusb-1.0-0 2:1.0.27-1 deb libutempter0 1.2.1-3build1 deb -libuuid1 2.39.3-9ubuntu6.1 deb +libuuid1 2.39.3-9ubuntu6.2 deb libuv1t64 1.48.0-1.1build1 deb libva-drm2 2.20.0-2build1 deb libva-x11-2 2.20.0-2build1 deb @@ -1004,7 +1048,7 @@ libxi6 2: libxinerama1 2:1.1.4-3build1 deb libxkbcommon0 1.6.0-1build1 deb libxkbfile1 1:1.1.0-1build4 deb -libxml2 2.9.14+dfsg-1.3ubuntu3 deb +libxml2 2.9.14+dfsg-1.3ubuntu3.3 deb libxmlb2 0.3.18-1 deb libxmu6 2:1.1.3-3build2 deb libxmuu1 2:1.1.3-3build2 deb @@ -1032,38 +1076,40 @@ libzmq5 4. libzstd1 1.5.5+dfsg2-2build1.1 deb libzvbi-common 0.2.42-2 deb libzvbi0t64 0.2.42-2 deb -linux-libc-dev 6.8.0-45.45 deb -locales 2.39-0ubuntu8.3 deb -locales-all 2.39-0ubuntu8.3 deb -login 1:4.13+dfsg1-4ubuntu3 deb +linux-libc-dev 6.8.0-60.63 deb +locales 2.39-0ubuntu8.4 deb +locales-all 2.39-0ubuntu8.4 deb +login 1:4.13+dfsg1-4ubuntu3.2 deb logsave 1.47.0-2.4~exp1ubuntu4.1 deb lsb-release 12.0-2 deb man-db 2.12.0-4build2 deb manpages 6.7-2 deb manpages-dev 6.7-2 deb +math-intrinsics 1.1.0 npm mawk 1.3.4.20240123-1build1 deb media-typer 0.3.0 npm media-types 10.1.0 deb merge-descriptors 1.0.3 npm -mesa-va-drivers 24.0.9-0ubuntu0.2 deb -mesa-vulkan-drivers 24.0.9-0ubuntu0.2 deb +mesa-libgallium 24.2.8-1ubuntu1~24.04.1 deb +mesa-va-drivers 24.2.8-1ubuntu1~24.04.1 deb +mesa-vulkan-drivers 24.2.8-1ubuntu1~24.04.1 deb methods 1.1.2 npm mime 1.6.0 npm mime-db 1.52.0 npm mime-types 2.1.35 npm minimatch 3.1.2 npm minimatch 5.1.6 npm -mount 2.39.3-9ubuntu6.1 deb +mount 2.39.3-9ubuntu6.2 deb ms 2.0.0 npm ms 2.1.3 npm (+4 duplicates) -nan 2.22.0 npm +nan 2.22.2 npm ncurses-base 6.4+20240113-1ubuntu2 deb ncurses-bin 6.4+20240113-1ubuntu2 deb negotiator 0.6.3 npm netbase 6.4 deb netcat-openbsd 1.226-1ubuntu2 deb -nginx 1.24.0-2ubuntu7.1 deb -nginx-common 1.24.0-2ubuntu7.1 deb +nginx 1.24.0-2ubuntu7.3 deb +nginx-common 1.24.0-2ubuntu7.3 deb node-acorn 8.8.1+ds+~cs25.17.7-2 deb node-busboy 1.6.0+~cs2.6.0-2 deb node-cjs-module-lexer 1.2.3+dfsg-1 deb @@ -1072,42 +1118,42 @@ node-xtend 4. nodejs 18.19.1+dfsg-6ubuntu5 deb oauthlib 3.2.2 python object-assign 4.1.1 npm -object-inspect 1.13.2 npm +object-inspect 1.13.4 npm ocl-icd-libopencl1 2.3.2-1build1 deb on-finished 2.4.1 npm openbox 3.6.1-12build5 deb -openssh-client 1:9.6p1-3ubuntu13.5 deb -openssl 3.0.13-0ubuntu3.4 deb -packagekit 1.2.8-2build3 deb +openssh-client 1:9.6p1-3ubuntu13.11 deb +openssl 3.0.13-0ubuntu3.5 deb +packagekit 1.2.8-2ubuntu1.2 deb packaging 24.0 python parseurl 1.3.3 npm -passwd 1:4.13+dfsg1-4ubuntu3 deb -path-to-regexp 0.1.10 npm -pci.ids 0.0~2024.03.31-1 deb +passwd 1:4.13+dfsg1-4ubuntu3.2 deb +path-to-regexp 0.1.12 npm +pci.ids 0.0~2024.03.31-1ubuntu0.1 deb pciutils 1:3.10.0-2build1 deb -perl 5.38.2-3.2build2 deb -perl-base 5.38.2-3.2build2 deb -perl-modules-5.38 5.38.2-3.2build2 deb +perl 5.38.2-3.2ubuntu0.1 deb +perl-base 5.38.2-3.2ubuntu0.1 deb +perl-modules-5.38 5.38.2-3.2ubuntu0.1 deb pinentry-curses 1.2.1-3ubuntu5 deb pkgconf 1.8.1-2build1 deb pkgconf-bin 1.8.1-2build1 deb -polkitd 124-2ubuntu1 deb +polkitd 124-2ubuntu1.24.04.2 deb poppler-data 0.4.12-1 deb -poppler-utils 24.02.0-1ubuntu9.1 deb +poppler-utils 24.02.0-1ubuntu9.4 deb printer-driver-cups-pdf 3.0.1-14build2 deb procps 2:4.0.4-4ubuntu3.2 deb proxy-addr 2.0.7 npm publicsuffix 20231001.0357-0.1 deb -pulseaudio 1:16.1+dfsg1-2ubuntu10 deb -pulseaudio-utils 1:16.1+dfsg1-2ubuntu10 deb +pulseaudio 1:16.1+dfsg1-2ubuntu10.1 deb +pulseaudio-utils 1:16.1+dfsg1-2ubuntu10.1 deb pulseaudio2 0.5.5 npm pygobject 3.48.2 python pyjwt 2.7.0 python pyparsing 3.1.1 python -python-apt 2.7.7+ubuntu3 python -python-apt-common 2.7.7ubuntu3 deb +python-apt 2.7.7+ubuntu4 python +python-apt-common 2.7.7ubuntu4 deb python3 3.12.3-0ubuntu2 deb -python3-apt 2.7.7ubuntu3 deb +python3-apt 2.7.7ubuntu4 deb python3-blinker 1.7.0-1 deb python3-cffi-backend 1.16.0-2build1 deb python3-cryptography 41.0.7-4ubuntu0.1 deb @@ -1125,17 +1171,17 @@ python3-packaging 24 python3-pkg-resources 68.1.2-2ubuntu1.1 deb python3-pyparsing 3.1.1-1 deb python3-six 1.16.0-4 deb -python3-software-properties 0.99.48 deb +python3-software-properties 0.99.49.2 deb python3-wadllib 1.3.6-5 deb python3-xdg 0.28-2 deb -python3.12 3.12.3-1ubuntu0.2 deb -python3.12-minimal 3.12.3-1ubuntu0.2 deb +python3.12 3.12.3-1ubuntu0.5 deb +python3.12-minimal 3.12.3-1ubuntu0.5 deb pyxdg 0.28 python qs 6.13.0 npm range-parser 1.2.1 npm raw-body 2.5.2 npm readline-common 8.2-4build1 deb -resenje.org/singleflight v0.4.1 go-module +resenje.org/singleflight v0.4.3 go-module rpcsvc-proto 1.4.2-0ubuntu7 deb safe-buffer 5.2.1 npm safer-buffer 2.1.2 npm @@ -1144,47 +1190,52 @@ send 0. sensible-utils 0.0.22 deb serve-static 1.16.2 npm session-migration 0.3.9build1 deb -set-function-length 1.2.2 npm setprototypeof 1.2.0 npm sgml-base 1.31 deb shared-mime-info 2.4-4 deb -side-channel 1.0.6 npm -sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 go-module -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd go-module +side-channel 1.1.0 npm +side-channel-list 1.0.0 npm +side-channel-map 1.0.1 npm +side-channel-weakmap 1.0.2 npm +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd go-module (+1 duplicate) sigs.k8s.io/structured-merge-diff/v4 v4.2.3 go-module sigs.k8s.io/structured-merge-diff/v4 v4.4.1 go-module -sigs.k8s.io/yaml v1.3.0 go-module (+3 duplicates) +sigs.k8s.io/yaml v1.3.0 go-module (+1 duplicate) +sigs.k8s.io/yaml v1.4.0 go-module (+1 duplicate) six 1.16.0 python -socket.io 4.8.0 npm +socket.io 4.8.1 npm socket.io-adapter 2.5.5 npm socket.io-parser 4.2.4 npm -software-properties-common 0.99.48 deb +software-properties-common 0.99.49.2 deb ssl-cert 1.1.2ubuntu1 deb statuses 2.0.1 npm -stdlib go1.22.7 go-module (+9 duplicates) +stdlib go1.23.7 go-module (+5 duplicates) +stdlib go1.23.8 go-module (+3 duplicates) streamsearch 1.1.0 npm sudo 1.9.15p5-3ubuntu5 deb supports-color 7.2.0 npm -systemd 255.4-1ubuntu8.4 deb -systemd-dev 255.4-1ubuntu8.4 deb -systemd-sysv 255.4-1ubuntu8.4 deb +systemd 255.4-1ubuntu8.6 deb +systemd-dev 255.4-1ubuntu8.6 deb +systemd-sysv 255.4-1ubuntu8.6 deb sysvinit-utils 3.08-6ubuntu3 deb -tags.cncf.io/container-device-interface v0.7.2 go-module (+1 duplicate) -tags.cncf.io/container-device-interface v0.8.0 go-module -tags.cncf.io/container-device-interface/specs-go v0.7.0 go-module (+1 duplicate) +tags.cncf.io/container-device-interface v0.8.1 go-module +tags.cncf.io/container-device-interface v1.0.1 go-module (+1 duplicate) +tags.cncf.io/container-device-interface/specs-go v0.8.0 go-module +tags.cncf.io/container-device-interface/specs-go v1.0.0 go-module tar 1.35+dfsg-3build1 deb toidentifier 1.0.1 npm type-is 1.6.18 npm -tzdata 2024a-3ubuntu1.1 deb +tzdata 2025b-0ubuntu0.24.04 deb ubuntu-keyring 2023.11.28.1 deb ucf 3.0043+nmu1 deb -udev 255.4-1ubuntu8.4 deb +udev 255.4-1ubuntu8.6 deb undici 5.26.3 npm -undici-types 6.19.8 npm +undici-types 6.21.0 npm +unminimize 0.2.1 deb unpipe 1.0.0 npm -util-linux 2.39.3-9ubuntu6.1 deb +util-linux 2.39.3-9ubuntu6.2 deb utils-merge 1.0.1 npm -uuid-dev 2.39.3-9ubuntu6.1 deb +uuid-dev 2.39.3-9ubuntu6.2 deb vary 1.1.2 npm vulkan-tools 1.3.275.0+dfsg1-1 deb wadllib 1.3.6 python @@ -1206,8 +1257,8 @@ xfonts-utils 1: xkb-data 2.41-2ubuntu1.1 deb xml-core 0.19 deb xorg-sgml-doctools 1:1.11-1.1 deb -xserver-common 2:21.1.12-1ubuntu1 deb -xserver-xorg-core 2:21.1.12-1ubuntu1 deb +xserver-common 2:21.1.12-1ubuntu1.3 deb +xserver-xorg-core 2:21.1.12-1ubuntu1.3 deb xserver-xorg-video-amdgpu 23.0.0-1build1 deb xserver-xorg-video-ati 1:22.0.0-1build1 deb xserver-xorg-video-intel 2:2.99.917+git20210115-1build1 deb diff --git a/readme-vars.yml b/readme-vars.yml index 8ecc48e..f86f10e 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -6,26 +6,29 @@ project_url: "https://www.audacityteam.org/" project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/audacity-logo.png" project_blurb: "[Audacity]({{ project_url }}) is an easy-to-use, multi-track audio editor and recorder. Developed by a group of volunteers as open source." project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}" +project_categories: "Audio Processing" project_blurb_optional_extras_enabled: false - # supported architectures available_architectures: - - { arch: "{{ arch_x86_64 }}", tag: "latest"} - + - {arch: "{{ arch_x86_64 }}", tag: "latest"} # development version development_versions: false - # container parameters common_param_env_vars_enabled: true param_container_name: "{{ project_name }}" param_usage_include_vols: true param_volumes: - - { vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Users home directory in the container, stores program settings and images" } + - {vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Users home directory in the container, stores program settings and images"} param_usage_include_ports: true param_ports: - - { external_port: "3000", internal_port: "3000", port_desc: "Audacity desktop gui." } - - { external_port: "3001", internal_port: "3001", port_desc: "Audacity desktop gui HTTPS." } - + - {external_port: "3000", internal_port: "3000", port_desc: "Audacity desktop gui."} + - {external_port: "3001", internal_port: "3001", port_desc: "Audacity desktop gui HTTPS."} +# Kasm blurb settings +kasm_blurb: true +show_nvidia: true +external_http_port: "3000" +external_https_port: "3001" +noto_fonts: "fonts-noto-cjk" # application setup block app_setup_block_enabled: true app_setup_block: | @@ -33,60 +36,73 @@ app_setup_block: | * http://yourhost:3000/ * https://yourhost:3001/ - - ### Options in all KasmVNC based GUI containers - - This container is based on [Docker Baseimage KasmVNC](https://github.com/linuxserver/docker-baseimage-kasmvnc) which means there are additional environment variables and run configurations to enable or disable specific functionality. - - #### Optional environment variables - - | Variable | Description | - | :----: | --- | - | CUSTOM_PORT | Internal port the container listens on for http if it needs to be swapped from the default 3000. | - | CUSTOM_HTTPS_PORT | Internal port the container listens on for https if it needs to be swapped from the default 3001. | - | CUSTOM_USER | HTTP Basic auth username, abc is default. | - | PASSWORD | HTTP Basic auth password, abc is default. If unset there will be no auth | - | SUBFOLDER | Subfolder for the application if running a subfolder reverse proxy, need both slashes IE `/subfolder/` | - | TITLE | The page title displayed on the web browser, default "KasmVNC Client". | - | FM_HOME | This is the home directory (landing) for the file manager, default "/config". | - | START_DOCKER | If set to false a container with privilege will not automatically start the DinD Docker setup. | - | DRINODE | If mounting in /dev/dri for [DRI3 GPU Acceleration](https://www.kasmweb.com/kasmvnc/docs/master/gpu_acceleration.html) allows you to specify the device to use IE `/dev/dri/renderD128` | - | LC_ALL | Set the Language for the container to run as IE `fr_FR.UTF-8` `ar_AE.UTF-8` | - | NO_DECOR | If set the application will run without window borders for use as a PWA. | - | NO_FULL | Do not autmatically fullscreen applications when using openbox. | - - #### Optional run configurations - - | Variable | Description | - | :----: | --- | - | `--privileged` | Will start a Docker in Docker (DinD) setup inside the container to use docker in an isolated environment. For increased performance mount the Docker directory inside the container to the host IE `-v /home/user/docker-data:/var/lib/docker`. | - | `-v /var/run/docker.sock:/var/run/docker.sock` | Mount in the host level Docker socket to either interact with it via CLI or use Docker enabled applications. | - | `--device /dev/dri:/dev/dri` | Mount a GPU into the container, this can be used in conjunction with the `DRINODE` environment variable to leverage a host video card for GPU accelerated appplications. Only **Open Source** drivers are supported IE (Intel,AMDGPU,Radeon,ATI,Nouveau) | - - ### Language Support - Internationalization - - The environment variable `LC_ALL` can be used to start this image in a different language than English simply pass for example to launch the Desktop session in French `LC_ALL=fr_FR.UTF-8`. Some languages like Chinese, Japanese, or Korean will be missing fonts needed to render properly known as cjk fonts, but others may exist and not be installed. We only ensure fonts for Latin characters are present. Fonts can be installed with a mod on startup. - - To install cjk fonts on startup as an example pass the environment variables: - - ``` - -e DOCKER_MODS=linuxserver/mods:universal-package-install - -e INSTALL_PACKAGES=fonts-noto-cjk - -e LC_ALL=zh_CN.UTF-8 - ``` - - The web interface has the option for "IME Input Mode" in Settings which will allow non english characters to be used from a non en_US keyboard on the client. Once enabled it will perform the same as a local Linux installation set to your locale. - - ### Lossless mode - - This container is capable of delivering a true lossless image at a high framerate to your web browser by changing the Stream Quality preset to "Lossless", more information [here](https://www.kasmweb.com/docs/latest/how_to/lossless.html#technical-background). In order to use this mode from a non localhost endpoint the HTTPS port on 3001 needs to be used. If using a reverse proxy to port 3000 specific headers will need to be set as outlined [here](https://github.com/linuxserver/docker-baseimage-kasmvnc#lossless). - +# init diagram +init_diagram: | + "audacity:latest": { + docker-mods + base { + fix-attr +\nlegacy cont-init + } + docker-mods -> base + legacy-services + custom services + init-services -> legacy-services + init-services -> custom services + custom services -> legacy-services + legacy-services -> ci-service-check + init-migrations -> init-adduser + init-kasmvnc-end -> init-config + init-os-end -> init-config + init-config -> init-config-end + init-crontab-config -> init-config-end + init-config -> init-crontab-config + init-mods-end -> init-custom-files + init-adduser -> init-device-perms + base -> init-envfile + init-os-end -> init-kasmvnc + init-nginx -> init-kasmvnc-config + init-video -> init-kasmvnc-end + base -> init-migrations + init-config-end -> init-mods + init-mods-package-install -> init-mods-end + init-mods -> init-mods-package-install + init-kasmvnc -> init-nginx + init-adduser -> init-os-end + init-device-perms -> init-os-end + init-envfile -> init-os-end + init-custom-files -> init-services + init-kasmvnc-config -> init-video + init-services -> svc-cron + svc-cron -> legacy-services + init-services -> svc-de + svc-nginx -> svc-de + svc-de -> legacy-services + init-services -> svc-docker + svc-de -> svc-docker + svc-docker -> legacy-services + init-services -> svc-kasmvnc + svc-pulseaudio -> svc-kasmvnc + svc-kasmvnc -> legacy-services + init-services -> svc-kclient + svc-kasmvnc -> svc-kclient + svc-kclient -> legacy-services + init-services -> svc-nginx + svc-kclient -> svc-nginx + svc-nginx -> legacy-services + init-services -> svc-pulseaudio + svc-pulseaudio -> legacy-services + } + Base Images: { + "baseimage-kasmvnc:ubuntunoble" <- "baseimage-ubuntu:noble" + } + "audacity:latest" <- Base Images # changelog changelogs: - - { date: "19.08.24:", desc: "Rebase to noble." } - - { date: "10.02.24:", desc: "Update Readme with new env vars, ingest proper PWA icon, and pre-extract appimage." } - - { date: "05.05.23:", desc: "Start Audacity in full screen." } - - { date: "18.03.23:", desc: "Rebase to KasmVNC base image." } - - { date: "13.12.22:", desc: "Rebase to Jammy." } - - { date: "14.09.21:", desc: "Use the official appimage, switch to single arch (x86_64). Armhf and aarch64 users can remain on version 3.0.2 but there won't be further updates." } - - { date: "07.04.21:", desc: "Initial release." } + - {date: "31.10.24:", desc: "Fix artifact name."} + - {date: "19.08.24:", desc: "Rebase to noble."} + - {date: "10.02.24:", desc: "Update Readme with new env vars, ingest proper PWA icon, and pre-extract appimage."} + - {date: "05.05.23:", desc: "Start Audacity in full screen."} + - {date: "18.03.23:", desc: "Rebase to KasmVNC base image."} + - {date: "13.12.22:", desc: "Rebase to Jammy."} + - {date: "14.09.21:", desc: "Use the official appimage, switch to single arch (x86_64). Armhf and aarch64 users can remain on version 3.0.2 but there won't be further updates."} + - {date: "07.04.21:", desc: "Initial release."}