diff --git a/.editorconfig b/.editorconfig old mode 100644 new mode 100755 diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index dab7f9e..fd4f11d 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://linuxserver.io/discord) +* 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) ## Common files @@ -105,10 +105,10 @@ docker build \ -t linuxserver/audacity:latest . ``` -The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static` +The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` ```bash -docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset +docker run --rm --privileged multiarch/qemu-user-static:register --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 face150..452b3b9 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://linuxserver.io/discord + url: https://discord.gg/YWrKVTn about: Realtime support / chat with the community and the team. - name: Discourse discussion forum diff --git a/.github/ISSUE_TEMPLATE/issue.bug.yml b/.github/ISSUE_TEMPLATE/issue.bug.yml old mode 100644 new mode 100755 index b812b88..1f25845 --- a/.github/ISSUE_TEMPLATE/issue.bug.yml +++ b/.github/ISSUE_TEMPLATE/issue.bug.yml @@ -66,10 +66,10 @@ body: - type: textarea attributes: description: | - Provide a full docker log, output of "docker logs audacity" + Provide a full docker log, output of "docker logs linuxserver.io" label: Container logs placeholder: | - Output of `docker logs audacity` + Output of `docker logs linuxserver.io` render: bash validations: required: true diff --git a/.github/ISSUE_TEMPLATE/issue.feature.yml b/.github/ISSUE_TEMPLATE/issue.feature.yml old mode 100644 new mode 100755 diff --git a/.github/workflows/call_issue_pr_tracker.yml b/.github/workflows/call_issue_pr_tracker.yml old mode 100644 new mode 100755 index d07cf12..2c30784 --- a/.github/workflows/call_issue_pr_tracker.yml +++ b/.github/workflows/call_issue_pr_tracker.yml @@ -8,9 +8,6 @@ on: pull_request_review: types: [submitted,edited,dismissed] -permissions: - contents: read - jobs: manage-project: permissions: diff --git a/.github/workflows/call_issues_cron.yml b/.github/workflows/call_issues_cron.yml old mode 100644 new mode 100755 index 22be2ed..2b962ad --- a/.github/workflows/call_issues_cron.yml +++ b/.github/workflows/call_issues_cron.yml @@ -4,9 +4,6 @@ on: - cron: '52 17 * * *' workflow_dispatch: -permissions: - contents: read - jobs: stale: permissions: diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index 917bbea..409260b 100644 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -3,42 +3,26 @@ name: External Trigger Main on: workflow_dispatch: -permissions: - contents: read - jobs: external-trigger-main: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.1 + - uses: actions/checkout@v3.1.0 - name: External Trigger if: github.ref == 'refs/heads/main' - env: - 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 - 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 + if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_AUDACITY_MAIN }}" ]; then + echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_AUDACITY_MAIN is set; skipping trigger. ****" + echo "Github secret \`PAUSE_EXTERNAL_TRIGGER_AUDACITY_MAIN\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY exit 0 fi - echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY - echo "> External trigger running off of main branch. To disable this trigger, add \`audacity_main\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY - printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY + echo "**** External trigger running off of main branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_AUDACITY_MAIN\". ****" + echo "External trigger running off of main branch. To disable this trigger, set a Github secret named \`PAUSE_EXTERNAL_TRIGGER_AUDACITY_MAIN\`" >> $GITHUB_STEP_SUMMARY + echo "**** Retrieving external version ****" 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 + echo "**** Can't retrieve external version, exiting ****" FAILURE_REASON="Can't retrieve external version for audacity branch main" GHA_TRIGGER_URL="https://github.com/linuxserver/docker-audacity/actions/runs/${{ github.run_id }}" curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680, @@ -46,43 +30,20 @@ jobs: "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} exit 1 fi - EXT_RELEASE_SANITIZED=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g') - echo "Sanitized external version: \`${EXT_RELEASE_SANITIZED}\`" >> $GITHUB_STEP_SUMMARY - echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY + EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g') + echo "**** External version: ${EXT_RELEASE} ****" + echo "External version: ${EXT_RELEASE}" >> $GITHUB_STEP_SUMMARY + echo "**** Retrieving last pushed version ****" image="linuxserver/audacity" tag="latest" token=$(curl -sX GET \ "https://ghcr.io/token?scope=repository%3Alinuxserver%2Faudacity%3Apull" \ | jq -r '.token') - 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 \ + digest=$(curl -s \ --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ - --header "Accept: application/vnd.oci.image.manifest.v1+json" \ --header "Authorization: Bearer ${token}" \ - "https://ghcr.io/v2/${image}/manifests/${multidigest}"); then - digest=$(jq -r '.config.digest' <<< "${digest}"); - fi - fi + "https://ghcr.io/v2/${image}/manifests/${tag}" \ + | jq -r '.config.digest') image_info=$(curl -sL \ --header "Authorization: Bearer ${token}" \ "https://ghcr.io/v2/${image}/blobs/${digest}") @@ -94,54 +55,45 @@ jobs: IMAGE_RELEASE=$(echo ${image_info} | jq -r '.Labels.build_version' | awk '{print $3}') IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}') if [ -z "${IMAGE_VERSION}" ]; then - echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY - echo "Can't retrieve last pushed version, exiting" >> $GITHUB_STEP_SUMMARY + echo "**** Can't retrieve last pushed version, exiting ****" FAILURE_REASON="Can't retrieve last pushed version for audacity tag latest" curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680, "description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}], "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} exit 1 fi - echo "Last pushed version: \`${IMAGE_VERSION}\`" >> $GITHUB_STEP_SUMMARY - if [ "${EXT_RELEASE_SANITIZED}" == "${IMAGE_VERSION}" ]; then - echo "Sanitized version \`${EXT_RELEASE_SANITIZED}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY + echo "**** Last pushed version: ${IMAGE_VERSION} ****" + echo "Last pushed version: ${IMAGE_VERSION}" >> $GITHUB_STEP_SUMMARY + if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then + echo "**** Version ${EXT_RELEASE} already pushed, exiting ****" + echo "Version ${EXT_RELEASE} already pushed, exiting" >> $GITHUB_STEP_SUMMARY exit 0 elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-audacity/job/main/lastBuild/api/json | jq -r '.building') == "true" ]; then - echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY + echo "**** New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting ****" + echo "New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY exit 0 else - if [[ "${artifacts_found}" == "false" ]]; then - echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY - echo "> New version detected, but not all artifacts are published yet; skipping trigger" >> $GITHUB_STEP_SUMMARY - FAILURE_REASON="New version ${EXT_RELEASE} for audacity tag latest is detected, however not all artifacts are uploaded to upstream release yet. Will try again later." - curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, - "description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}], - "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} - else - printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY - echo "New sanitized version \`${EXT_RELEASE_SANITIZED}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY - if [[ "${artifacts_found}" == "true" ]]; then - echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY - fi - response=$(curl -iX POST \ - https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-audacity/job/main/buildWithParameters?PACKAGE_CHECK=false \ - --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") - echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY - echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY - sleep 10 - buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url') - buildurl="${buildurl%$'\r'}" - echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY - echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY - curl -iX POST \ - "${buildurl}submitDescription" \ - --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \ - --data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \ - --data-urlencode "Submit=Submit" - echo "**** Notifying Discord ****" - TRIGGER_REASON="A version change was detected for audacity tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE_SANITIZED}" - curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, - "description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}], - "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} - fi + echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****" + echo "New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build" >> $GITHUB_STEP_SUMMARY + response=$(curl -iX POST \ + https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-audacity/job/main/buildWithParameters?PACKAGE_CHECK=false \ + --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") + echo "**** Jenkins job queue url: ${response%$'\r'} ****" + echo "**** Sleeping 10 seconds until job starts ****" + sleep 10 + buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url') + buildurl="${buildurl%$'\r'}" + echo "**** Jenkins job build url: ${buildurl} ****" + echo "Jenkins job build url: ${buildurl}" >> $GITHUB_STEP_SUMMARY + echo "**** Attempting to change the Jenkins job description ****" + curl -iX POST \ + "${buildurl}submitDescription" \ + --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \ + --data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \ + --data-urlencode "Submit=Submit" + echo "**** Notifying Discord ****" + TRIGGER_REASON="A version change was detected for audacity tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}" + curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, + "description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}], + "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} fi diff --git a/.github/workflows/external_trigger_scheduler.yml b/.github/workflows/external_trigger_scheduler.yml index ed8ec95..6d36762 100644 --- a/.github/workflows/external_trigger_scheduler.yml +++ b/.github/workflows/external_trigger_scheduler.yml @@ -5,44 +5,41 @@ on: - cron: '34 * * * *' workflow_dispatch: -permissions: - contents: read - jobs: external-trigger-scheduler: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.1 + - uses: actions/checkout@v3.1.0 with: fetch-depth: '0' - name: External Trigger Scheduler run: | - printf "# External trigger scheduler for docker-audacity\n\n" >> $GITHUB_STEP_SUMMARY - printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY - for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes) + echo "**** Branches found: ****" + git for-each-ref --format='%(refname:short)' refs/remotes + for br in $(git for-each-ref --format='%(refname:short)' refs/remotes) do - if [[ "${br}" == "HEAD" ]]; then - printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY - continue - fi - printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY + br=$(echo "$br" | sed 's|origin/||g') + echo "**** Evaluating branch ${br} ****" ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-audacity/${br}/jenkins-vars.yml) ls_branch=$(echo "${ls_jenkins_vars}" | yq -r '.ls_branch') ls_trigger=$(echo "${ls_jenkins_vars}" | yq -r '.external_type') if [[ "${br}" == "${ls_branch}" ]] && [[ "${ls_trigger}" != "os" ]]; then - echo "Branch appears to be live and trigger is not os; checking workflow." >> $GITHUB_STEP_SUMMARY + echo "**** Branch ${br} appears to be live and trigger is not os; checking workflow. ****" if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-audacity/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then - echo "Triggering external trigger workflow for branch." >> $GITHUB_STEP_SUMMARY + echo "**** Workflow exists. Triggering external trigger workflow for branch ${br} ****." + echo "Triggering external trigger workflow for branch ${br}" >> $GITHUB_STEP_SUMMARY curl -iX POST \ -H "Authorization: token ${{ secrets.CR_PAT }}" \ -H "Accept: application/vnd.github.v3+json" \ -d "{\"ref\":\"refs/heads/${br}\"}" \ https://api.github.com/repos/linuxserver/docker-audacity/actions/workflows/external_trigger.yml/dispatches else - echo "Skipping branch due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY + echo "**** Workflow doesn't exist; skipping trigger. ****" + echo "Skipping branch ${br} due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY fi else - echo "Skipping branch due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY + echo "**** ${br} is either a dev branch, or has no external version; skipping trigger. ****" + echo "Skipping branch ${br} due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY fi done diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml index 753384d..5d7ce49 100644 --- a/.github/workflows/greetings.yml +++ b/.github/workflows/greetings.yml @@ -2,14 +2,8 @@ name: Greetings on: [pull_request_target, issues] -permissions: - contents: read - jobs: greeting: - permissions: - issues: write - pull-requests: write runs-on: ubuntu-latest steps: - uses: actions/first-interaction@v1 diff --git a/.github/workflows/package_trigger.yml b/.github/workflows/package_trigger.yml new file mode 100644 index 0000000..2c79d37 --- /dev/null +++ b/.github/workflows/package_trigger.yml @@ -0,0 +1,42 @@ +name: Package Trigger Main + +on: + workflow_dispatch: + +jobs: + package-trigger-main: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3.1.0 + + - name: Package Trigger + if: github.ref == 'refs/heads/main' + run: | + if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_AUDACITY_MAIN }}" ]; then + echo "**** Github secret PAUSE_PACKAGE_TRIGGER_AUDACITY_MAIN is set; skipping trigger. ****" + echo "Github secret \`PAUSE_PACKAGE_TRIGGER_AUDACITY_MAIN\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY + exit 0 + fi + if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-audacity/job/main/lastBuild/api/json | jq -r '.building') == "true" ]; then + echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****" + echo "There already seems to be an active build on Jenkins; skipping package trigger" >> $GITHUB_STEP_SUMMARY + exit 0 + fi + echo "**** Package trigger running off of main branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_AUDACITY_MAIN\". ****" + echo "Package trigger running off of main branch. To disable, set a Github secret named \`PAUSE_PACKAGE_TRIGGER_AUDACITY_MAIN\`" >> $GITHUB_STEP_SUMMARY + response=$(curl -iX POST \ + https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-audacity/job/main/buildWithParameters?PACKAGE_CHECK=true \ + --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") + echo "**** Jenkins job queue url: ${response%$'\r'} ****" + echo "**** Sleeping 10 seconds until job starts ****" + sleep 10 + buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url') + buildurl="${buildurl%$'\r'}" + echo "**** Jenkins job build url: ${buildurl} ****" + echo "Jenkins job build url: ${buildurl}" >> $GITHUB_STEP_SUMMARY + echo "**** Attempting to change the Jenkins job description ****" + curl -iX POST \ + "${buildurl}submitDescription" \ + --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" diff --git a/.github/workflows/package_trigger_scheduler.yml b/.github/workflows/package_trigger_scheduler.yml index 39609c6..3cdd79b 100644 --- a/.github/workflows/package_trigger_scheduler.yml +++ b/.github/workflows/package_trigger_scheduler.yml @@ -5,99 +5,46 @@ on: - cron: '49 4 * * 2' workflow_dispatch: -permissions: - contents: read - jobs: package-trigger-scheduler: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.1 + - uses: actions/checkout@v3.1.0 with: fetch-depth: '0' - name: Package Trigger Scheduler - env: - SKIP_PACKAGE_TRIGGER: ${{ vars.SKIP_PACKAGE_TRIGGER }} run: | - printf "# Package trigger scheduler for docker-audacity\n\n" >> $GITHUB_STEP_SUMMARY - printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY - for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes) + echo "**** Branches found: ****" + git for-each-ref --format='%(refname:short)' refs/remotes + for br in $(git for-each-ref --format='%(refname:short)' refs/remotes) do - if [[ "${br}" == "HEAD" ]]; then - printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY - continue - 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 ! 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 - 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} " - elif grep -q "^audacity_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then - 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' 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} " - else - echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY - echo "> Triggering package trigger for branch ${br}" >> $GITHUB_STEP_SUMMARY - printf "> To disable, add \`audacity_%s\` into the Github organizational variable \`SKIP_PACKAGE_TRIGGER\`.\n\n" "${br}" >> $GITHUB_STEP_SUMMARY + br=$(echo "$br" | sed 's|origin/||g') + echo "**** Evaluating branch ${br} ****" + ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-audacity/${br}/jenkins-vars.yml | yq -r '.ls_branch') + if [ "${br}" == "${ls_branch}" ]; then + echo "**** Branch ${br} appears to be live; checking workflow. ****" + if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-audacity/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then + echo "**** Workflow exists. Triggering package trigger workflow for branch ${br}. ****" + echo "Triggering package trigger workflow for branch ${br}" >> $GITHUB_STEP_SUMMARY triggered_branches="${triggered_branches}${br} " - 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 - buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url') - buildurl="${buildurl%$'\r'}" - echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY - echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY - 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"; then - echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY - echo "> Unable to change the Jenkins job description." - fi - sleep 20 + curl -iX POST \ + -H "Authorization: token ${{ secrets.CR_PAT }}" \ + -H "Accept: application/vnd.github.v3+json" \ + -d "{\"ref\":\"refs/heads/${br}\"}" \ + https://api.github.com/repos/linuxserver/docker-audacity/actions/workflows/package_trigger.yml/dispatches + sleep 30 + else + echo "**** Workflow doesn't exist; skipping trigger. ****" + echo "Skipping branch ${br} due to no package trigger workflow present." >> $GITHUB_STEP_SUMMARY fi else + echo "**** ${br} appears to be a dev branch; skipping trigger. ****" echo "Skipping branch ${br} due to being detected as dev branch." >> $GITHUB_STEP_SUMMARY fi done - 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 "**** 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) for audacity** \n'"${NOTIFY_BRANCHES}"''"${NOTIFY_BUILD_URL}"'"}], - "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} - 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**Branch(es):** '"${triggered_branches}"' \n**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-audacity/activity/"' \n"}], + "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} diff --git a/.github/workflows/permissions.yml b/.github/workflows/permissions.yml old mode 100644 new mode 100755 index 02e1bdb..1447bc5 --- a/.github/workflows/permissions.yml +++ b/.github/workflows/permissions.yml @@ -5,8 +5,6 @@ on: - '**/run' - '**/finish' - '**/check' - - 'root/migrations/*' - jobs: permission_check: uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1 diff --git a/Dockerfile b/Dockerfile index 5d2440b..81a6149 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -FROM ghcr.io/linuxserver/baseimage-selkies:ubuntunoble +FROM ghcr.io/linuxserver/baseimage-kasmvnc:ubuntujammy # set version label ARG BUILD_DATE @@ -13,10 +13,6 @@ LABEL maintainer="aptalca" ENV TITLE=Audacity RUN \ - echo "**** add icon ****" && \ - curl -o \ - /usr/share/selkies/www/icon.png \ - https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/audacity-logo.png && \ echo "**** install packages ****" && \ apt-get update && \ apt-get install -y \ @@ -30,17 +26,15 @@ RUN \ AUDACITY_VERSION=$(curl -sX GET "https://api.github.com/repos/audacity/audacity/releases/latest" \ | awk '/tag_name/{print $4;exit}' FS='[""]' | sed 's|^Audacity-||'); \ fi && \ - cd /tmp && \ + mkdir -p /app/audacity/ && \ curl -o \ - /tmp/audacity.app -L \ - "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 && \ + /app/audacity/audacity -L \ + "https://github.com/audacity/audacity/releases/download/Audacity-${AUDACITY_VERSION}/audacity-linux-${AUDACITY_VERSION}-x64.AppImage" && \ + chmod +x /app/audacity/audacity && \ ln -s \ /usr/lib/x86_64-linux-gnu/libportaudio.so.2 \ /usr/lib/x86_64-linux-gnu/libportaudio.so && \ - printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \ + sed -i 's|| \n yes\n \n|' /etc/xdg/openbox/rc.xml && \ echo "**** cleanup ****" && \ rm -rf \ /tmp/* \ diff --git a/Jenkinsfile b/Jenkinsfile index b59ead7..2f6a482 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 { @@ -17,8 +17,6 @@ pipeline { GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0') GITLAB_NAMESPACE=credentials('gitlab-namespace-id') DOCKERHUB_TOKEN=credentials('docker-hub-ci-pat') - QUAYIO_API_TOKEN=credentials('quayio-repo-api-token') - GIT_SIGNING_KEY=credentials('484fbca6-9a4f-455e-b9e3-97ac98785f5f') BUILD_VERSION_ARG = 'AUDACITY_VERSION' LS_USER = 'linuxserver' LS_REPO = 'docker-audacity' @@ -30,49 +28,23 @@ pipeline { MULTIARCH = 'false' CI = 'true' CI_WEB = 'true' - CI_PORT = '3001' - CI_SSL = 'true' + CI_PORT = '3000' + CI_SSL = 'false' CI_DELAY = '120' - CI_DOCKERENV = '' - CI_AUTH = '' + CI_DOCKERENV = 'TZ=US/Pacific' + CI_AUTH = 'user:password' CI_WEBPATH = '' } stages { - stage("Set git config"){ - steps{ - sh '''#!/bin/bash - cat ${GIT_SIGNING_KEY} > /config/.ssh/id_sign - chmod 600 /config/.ssh/id_sign - ssh-keygen -y -f /config/.ssh/id_sign > /config/.ssh/id_sign.pub - echo "Using $(ssh-keygen -lf /config/.ssh/id_sign) to sign commits" - git config --global gpg.format ssh - git config --global user.signingkey /config/.ssh/id_sign - git config --global commit.gpgsign true - ''' - } - } // Setup all the basic environment variables needed for the build stage("Set ENV Variables base"){ steps{ - echo "Running on node: ${NODE_NAME}" sh '''#! /bin/bash - echo "Pruning builder" - docker builder prune -f --builder container || : - containers=$(docker ps -q) + containers=$(docker ps -aq) if [[ -n "${containers}" ]]; then - 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 + docker stop ${containers} fi - docker system prune -f --volumes || : - docker image prune -af || : - ''' + docker system prune -af --volumes || : ''' script{ env.EXIT_STATUS = '' env.LS_RELEASE = sh( @@ -93,12 +65,8 @@ pipeline { env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/' env.PULL_REQUEST = env.CHANGE_ID - env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml' - if ( env.SYFT_IMAGE_TAG == null ) { - env.SYFT_IMAGE_TAG = 'latest' - } + env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml' } - echo "Using syft image tag ${SYFT_IMAGE_TAG}" sh '''#! /bin/bash echo "The default github branch detected as ${GH_DEFAULT_BRANCH}" ''' script{ @@ -207,7 +175,6 @@ 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' } } } @@ -232,7 +199,6 @@ 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' } } } @@ -257,7 +223,6 @@ 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' } } } @@ -280,11 +245,9 @@ pipeline { -v ${WORKSPACE}:/mnt \ -e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \ -e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \ - ghcr.io/linuxserver/baseimage-alpine:3.20 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\ - apk add --no-cache python3 && \ - python3 -m venv /lsiopy && \ - pip install --no-cache-dir -U pip && \ - pip install --no-cache-dir s3cmd && \ + ghcr.io/linuxserver/baseimage-alpine:3.17 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\ + apk add --no-cache py3-pip && \ + pip install s3cmd && \ s3cmd put --no-preserve --acl-public -m text/xml /mnt/shellcheck-result.xml s3://ci-tests.linuxserver.io/${IMAGE}/${META_TAG}/shellcheck-result.xml" || :''' } } @@ -299,207 +262,150 @@ pipeline { } } steps { - sh '''#! /bin/bash - set -e - TEMPDIR=$(mktemp -d) - docker pull ghcr.io/linuxserver/jenkins-builder:latest - # Cloned repo paths for templating: - # ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch main of ${LS_USER}/${LS_REPO} for running the jenkins builder on - # ${TEMPDIR}/repo/${LS_REPO}: Cloned branch main of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github - # ${TEMPDIR}/docs/docker-documentation: Cloned docs repo for pushing docs updates to Github - # ${TEMPDIR}/unraid/docker-templates: Cloned docker-templates repo to check for logos - # ${TEMPDIR}/unraid/templates: Cloned templates repo for commiting unraid template changes and pushing back to Github - git clone --branch main --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME} - docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true -e PUID=$(id -u) -e PGID=$(id -g) ghcr.io/linuxserver/jenkins-builder:latest - echo "Starting Stage 1 - Jenkinsfile update" - if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then - mkdir -p ${TEMPDIR}/repo - git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} - cd ${TEMPDIR}/repo/${LS_REPO} - git checkout -f main - cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/ - git add Jenkinsfile - 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 Jenkinsfile and exiting build, new one will trigger based on commit" - rm -Rf ${TEMPDIR} - exit 0 - else - echo "Jenkinsfile is up to date." - fi - echo "Starting Stage 2 - Delete old templates" - OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml .github/workflows/package_trigger.yml" - for i in ${OLD_TEMPLATES}; do - if [[ -f "${i}" ]]; then - TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}" + withCredentials([ + [ + $class: 'UsernamePasswordMultiBinding', + credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207', + usernameVariable: 'DOCKERUSER', + passwordVariable: 'DOCKERPASS' + ] + ]) { + sh '''#! /bin/bash + set -e + TEMPDIR=$(mktemp -d) + docker pull ghcr.io/linuxserver/jenkins-builder:latest + docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=main -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest + # Stage 1 - Jenkinsfile update + if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then + mkdir -p ${TEMPDIR}/repo + git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} + cd ${TEMPDIR}/repo/${LS_REPO} + git checkout -f main + cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/ + git add Jenkinsfile + 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 Jenkinsfile" + rm -Rf ${TEMPDIR} + exit 0 + else + echo "Jenkinsfile is up to date." fi - done - if [[ -n "${TEMPLATES_TO_DELETE}" ]]; then - mkdir -p ${TEMPDIR}/repo - git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} - cd ${TEMPDIR}/repo/${LS_REPO} - git checkout -f main - for i in ${TEMPLATES_TO_DELETE}; do - git rm "${i}" + # Stage 2 - Delete old templates + OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml Dockerfile.armhf" + for i in ${OLD_TEMPLATES}; do + if [[ -f "${i}" ]]; then + TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}" + fi done - 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 "Deleting old/deprecated templates and exiting build, new one will trigger based on commit" - rm -Rf ${TEMPDIR} - exit 0 - 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} - NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) - if [[ "${CURRENTHASH}" != "${NEWHASH}" ]] || ! grep -q '.jenkins-external' "${WORKSPACE}/.gitignore" 2>/dev/null; then - mkdir -p ${TEMPDIR}/repo - git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} - cd ${TEMPDIR}/repo/${LS_REPO} - git checkout -f main + if [[ -n "${TEMPLATES_TO_DELETE}" ]]; then + mkdir -p ${TEMPDIR}/repo + git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} + cd ${TEMPDIR}/repo/${LS_REPO} + git checkout -f main + for i in ${TEMPLATES_TO_DELETE}; do + git rm "${i}" + done + 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 "Deleting old and deprecated templates" + rm -Rf ${TEMPDIR} + exit 0 + else + echo "No templates to delete" + fi + # Stage 3 - Update templates + CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) cd ${TEMPDIR}/docker-${CONTAINER_NAME} - mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows - mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE - cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || : - cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || : - cd ${TEMPDIR}/repo/${LS_REPO}/ - if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then - echo ".jenkins-external" >> .gitignore - git add .gitignore - fi - git add readme-vars.yml ${TEMPLATED_FILES} - 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 "No templates to update" - fi - echo "Starting Stage 4 - External repo updates: Docs, Unraid Template and Readme Sync to Docker Hub" - mkdir -p ${TEMPDIR}/docs - git clone --depth=1 https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation - if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then - cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/docs/docker-documentation/docs/images/ - cd ${TEMPDIR}/docs/docker-documentation - GH_DOCS_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||') - git add docs/images/docker-${CONTAINER_NAME}.md - echo "Updating docs repo" - git commit -m 'Bot Updating Documentation' - git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase - git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} || \ - (MAXWAIT="10" && echo "Push to docs failed, trying again in ${MAXWAIT} seconds" && \ - sleep $((RANDOM % MAXWAIT)) && \ - git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase && \ - git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH}) - else - echo "Docs update not needed, skipping" - fi - mkdir -p ${TEMPDIR}/unraid - git clone --depth=1 https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates - git clone --depth=1 https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates - if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then - sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml - elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then - sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml - fi - if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then - echo "Updating Unraid template" - cd ${TEMPDIR}/unraid/templates/ - GH_TEMPLATES_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||') - if grep -wq "^${CONTAINER_NAME}$" ${TEMPDIR}/unraid/templates/unraid/ignore.list && [[ -f ${TEMPDIR}/unraid/templates/unraid/deprecated/${CONTAINER_NAME}.xml ]]; then - echo "Image is on the ignore list, and already in the deprecation folder." - elif grep -wq "^${CONTAINER_NAME}$" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then - echo "Image is on the ignore list, marking Unraid template as deprecated" - cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/ - git add -u unraid/${CONTAINER_NAME}.xml - git mv unraid/${CONTAINER_NAME}.xml unraid/deprecated/${CONTAINER_NAME}.xml || : - git commit -m 'Bot Moving Deprecated Unraid Template' || : + NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) + if [[ "${CURRENTHASH}" != "${NEWHASH}" ]] || ! grep -q '.jenkins-external' "${WORKSPACE}/.gitignore" 2>/dev/null; then + mkdir -p ${TEMPDIR}/repo + git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} + cd ${TEMPDIR}/repo/${LS_REPO} + git checkout -f main + cd ${TEMPDIR}/docker-${CONTAINER_NAME} + mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows + mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE + cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || : + cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || : + cd ${TEMPDIR}/repo/${LS_REPO}/ + if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then + echo ".jenkins-external" >> .gitignore + git add .gitignore + fi + git add readme-vars.yml ${TEMPLATED_FILES} + 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} else - cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/ - git add unraid/${CONTAINER_NAME}.xml - git commit -m 'Bot Updating Unraid Template' + echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} fi - git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} --rebase - git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} || \ - (MAXWAIT="10" && echo "Push to unraid templates failed, trying again in ${MAXWAIT} seconds" && \ - sleep $((RANDOM % MAXWAIT)) && \ - git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} --rebase && \ - git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH}) - else - echo "No updates to Unraid template needed, skipping" - fi - if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]]; then - if [[ $(cat ${TEMPDIR}/docker-${CONTAINER_NAME}/README.md | wc -m) -gt 25000 ]]; then - echo "Readme is longer than 25,000 characters. Syncing the lite version to Docker Hub" - DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/README.lite" - else - echo "Syncing readme to Docker Hub" - DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/README.md" + mkdir -p ${TEMPDIR}/docs + git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation + if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then + cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/docs/docker-documentation/docs/images/ + cd ${TEMPDIR}/docs/docker-documentation + GH_DOCS_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||') + git add docs/images/docker-${CONTAINER_NAME}.md + git commit -m 'Bot Updating Documentation' + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} fi - if curl -s https://hub.docker.com/v2/namespaces/${DOCKERHUB_IMAGE%%/*}/repositories/${DOCKERHUB_IMAGE##*/}/tags | jq -r '.message' | grep -q 404; then - echo "Docker Hub endpoint doesn't exist. Creating endpoint first." - DH_TOKEN=$(curl -d '{"username":"linuxserverci", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token') + mkdir -p ${TEMPDIR}/unraid + git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates + git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates + if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then + sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml + elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then + sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml + fi + if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then + cd ${TEMPDIR}/unraid/templates/ + GH_TEMPLATES_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||') + if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then + echo "Image is on the ignore list, marking Unraid template as deprecated" + cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/ + git add -u unraid/${CONTAINER_NAME}.xml + git mv unraid/${CONTAINER_NAME}.xml unraid/deprecated/${CONTAINER_NAME}.xml || : + git commit -m 'Bot Moving Deprecated Unraid Template' || : + else + cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/ + git add unraid/${CONTAINER_NAME}.xml + git commit -m 'Bot Updating Unraid Template' + fi + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} + fi + # Stage 4 - Sync Readme to Docker Hub + if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]]; then + if [[ $(cat ${TEMPDIR}/docker-${CONTAINER_NAME}/README.md | wc -m) > 25000 ]]; then + echo "Readme is longer than 25,000 characters. Syncing the lite version to Docker Hub" + DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/README.lite" + else + echo "Syncing readme to Docker Hub" + DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/README.md" + fi + DH_TOKEN=$(curl -d '{"username":"'${DOCKERUSER}'", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token') curl -s \ -H "Authorization: JWT ${DH_TOKEN}" \ -H "Content-Type: application/json" \ - -X POST \ - -d '{"name":"'${DOCKERHUB_IMAGE##*/}'", "namespace":"'${DOCKERHUB_IMAGE%%/*}'"}' \ - https://hub.docker.com/v2/repositories/ || : + -X PATCH \ + -d "{\\"full_description\\":$(jq -Rsa . ${DH_README_SYNC_PATH})}" \ + https://hub.docker.com/v2/repositories/${DOCKERHUB_IMAGE} || : + else + echo "Not the default Github branch. Skipping readme sync to Docker Hub." fi - DH_TOKEN=$(curl -d '{"username":"linuxserverci", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token') - curl -s \ - -H "Authorization: JWT ${DH_TOKEN}" \ - -H "Content-Type: application/json" \ - -X PATCH \ - -d "{\\"full_description\\":$(jq -Rsa . ${DH_README_SYNC_PATH})}" \ - https://hub.docker.com/v2/repositories/${DOCKERHUB_IMAGE} || : - else - echo "Not the default Github branch. Skipping readme sync to Docker Hub." - fi - rm -Rf ${TEMPDIR}''' - script{ - env.FILES_UPDATED = sh( - script: '''cat /tmp/${COMMIT_SHA}-${BUILD_NUMBER}''', - returnStdout: true).trim() + rm -Rf ${TEMPDIR}''' + script{ + env.FILES_UPDATED = sh( + script: '''cat /tmp/${COMMIT_SHA}-${BUILD_NUMBER}''', + returnStdout: true).trim() + } } } } @@ -540,27 +446,23 @@ pipeline { } } /* ####################### - GitLab Mirroring and Quay.io Repo Visibility + GitLab Mirroring ####################### */ - // Ping into Gitlab to mirror this repo and have a registry endpoint & mark this repo on Quay.io as public - stage("GitLab Mirror and Quay.io Visibility"){ + // Ping into Gitlab to mirror this repo and have a registry endpoint + stage("GitLab Mirror"){ when { environment name: 'EXIT_STATUS', value: '' } steps{ sh '''curl -H "Content-Type: application/json" -H "Private-Token: ${GITLAB_TOKEN}" -X POST https://gitlab.com/api/v4/projects \ - -d '{"namespace_id":'${GITLAB_NAMESPACE}',\ - "name":"'${LS_REPO}'", - "mirror":true,\ - "import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\ - "issues_access_level":"disabled",\ - "merge_requests_access_level":"disabled",\ - "repository_access_level":"enabled",\ - "visibility":"public"}' ''' - sh '''curl -H "Private-Token: ${GITLAB_TOKEN}" -X PUT "https://gitlab.com/api/v4/projects/Linuxserver.io%2F${LS_REPO}" \ - -d "mirror=true&import_url=https://github.com/linuxserver/${LS_REPO}.git" ''' - sh '''curl -H "Content-Type: application/json" -H "Authorization: Bearer ${QUAYIO_API_TOKEN}" -X POST "https://quay.io/api/v1/repository${QUAYIMAGE/quay.io/}/changevisibility" \ - -d '{"visibility":"public"}' ||: ''' + -d '{"namespace_id":'${GITLAB_NAMESPACE}',\ + "name":"'${LS_REPO}'", + "mirror":true,\ + "import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\ + "issues_access_level":"disabled",\ + "merge_requests_access_level":"disabled",\ + "repository_access_level":"enabled",\ + "visibility":"public"}' ''' } } /* ############### @@ -591,42 +493,7 @@ 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=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 @@ -657,42 +524,7 @@ 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=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') { @@ -701,6 +533,10 @@ 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}\" \ @@ -716,50 +552,17 @@ 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=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}: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 "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" + retry(5) { + sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" } sh '''#! /bin/bash containers=$(docker ps -aq) if [[ -n "${containers}" ]]; then docker stop ${containers} fi - docker system prune -f --volumes || : - docker image prune -af || : - ''' + docker system prune -af --volumes || : ''' } } } @@ -775,7 +578,7 @@ pipeline { sh '''#! /bin/bash set -e TEMPDIR=$(mktemp -d) - if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" != "true" ]; then + if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG} else LOCAL_CONTAINER=${IMAGE}:${META_TAG} @@ -784,7 +587,7 @@ pipeline { docker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v ${TEMPDIR}:/tmp \ - ghcr.io/anchore/syft:${SYFT_IMAGE_TAG} \ + ghcr.io/anchore/syft:latest \ ${LOCAL_CONTAINER} -o table=/tmp/package_versions.txt NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 ) echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github" @@ -863,27 +666,18 @@ pipeline { } sh '''#! /bin/bash set -e - if grep -q 'docker-baseimage' <<< "${LS_REPO}"; then - echo "Detected baseimage, setting LSIO_FIRST_PARTY=true" - if [ -n "${CI_DOCKERENV}" ]; then - CI_DOCKERENV="LSIO_FIRST_PARTY=true|${CI_DOCKERENV}" - else - CI_DOCKERENV="LSIO_FIRST_PARTY=true" - fi - fi docker pull ghcr.io/linuxserver/ci:latest if [ "${MULTIARCH}" == "true" ]; then - docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64 + docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} fi docker run --rm \ --shm-size=1gb \ -v /var/run/docker.sock:/var/run/docker.sock \ -e IMAGE=\"${IMAGE}\" \ - -e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \ + -e DELAY_START=\"${CI_DELAY}\" \ -e TAGS=\"${CI_TAGS}\" \ -e META_TAG=\"${META_TAG}\" \ - -e RELEASE_TAG=\"latest\" \ -e PORT=\"${CI_PORT}\" \ -e SSL=\"${CI_SSL}\" \ -e BASE=\"${DIST_IMAGE}\" \ @@ -893,8 +687,6 @@ pipeline { -e WEB_SCREENSHOT=\"${CI_WEB}\" \ -e WEB_AUTH=\"${CI_AUTH}\" \ -e WEB_PATH=\"${CI_WEBPATH}\" \ - -e NODE_NAME=\"${NODE_NAME}\" \ - -e SYFT_IMAGE_TAG=\"${CI_SYFT_IMAGE_TAG:-${SYFT_IMAGE_TAG}}\" \ -t ghcr.io/linuxserver/ci:latest \ python3 test_build.py''' } @@ -910,23 +702,43 @@ pipeline { environment name: 'EXIT_STATUS', value: '' } steps { - 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 + withCredentials([ + [ + $class: 'UsernamePasswordMultiBinding', + credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207', + usernameVariable: 'DOCKERUSER', + passwordVariable: 'DOCKERPASS' + ], + [ + $class: 'UsernamePasswordMultiBinding', + credentialsId: 'Quay.io-Robot', + usernameVariable: 'QUAYUSER', + passwordVariable: 'QUAYPASS' + ] + ]) { + retry(5) { + sh '''#! /bin/bash + set -e + echo $DOCKERPASS | docker login -u $DOCKERUSER --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 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 - ''' + ''' + } } } } @@ -937,34 +749,85 @@ pipeline { environment name: 'EXIT_STATUS', value: '' } steps { - 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 + withCredentials([ + [ + $class: 'UsernamePasswordMultiBinding', + credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207', + usernameVariable: 'DOCKERUSER', + passwordVariable: 'DOCKERPASS' + ], + [ + $class: 'UsernamePasswordMultiBinding', + credentialsId: 'Quay.io-Robot', + usernameVariable: 'QUAYUSER', + passwordVariable: 'QUAYPASS' + ] + ]) { + retry(5) { + sh '''#! /bin/bash + set -e + echo $DOCKERPASS | docker login -u $DOCKERUSER --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} + docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} + fi + for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do + docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} + docker tag ${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 + docker manifest push --purge ${MANIFESTIMAGE}:latest || : + docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest + docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8 + docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || : + docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} + docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8 + docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || : + docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} + docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8 + if [ -n "${SEMVER}" ]; then + docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || : + docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} + docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8 + fi + token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token') + digest=$(curl -s \ + --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ + --header "Authorization: Bearer ${token}" \ + "https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-latest") + if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then + docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest || : + docker manifest create ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:amd64-latest + docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest + fi + docker manifest push --purge ${MANIFESTIMAGE}:latest + docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} + docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} + if [ -n "${SEMVER}" ]; then + docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} + 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 - 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 - ''' + ''' + } } } } @@ -985,14 +848,14 @@ pipeline { "object": "'${COMMIT_SHA}'",\ "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to main",\ "type": "commit",\ - "tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}' ''' + "tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' ''' echo "Pushing New release for Tag" sh '''#! /bin/bash echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json echo '{"tag_name":"'${META_TAG}'",\ "target_commitish": "main",\ "name": "'${META_TAG}'",\ - "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start + "body": "**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''' @@ -1117,94 +980,32 @@ EOF ###################### */ post { always { - sh '''#!/bin/bash - rm -rf /config/.ssh/id_sign - rm -rf /config/.ssh/id_sign.pub - git config --global --unset gpg.format - git config --global --unset user.signingkey - git config --global --unset commit.gpgsign - ''' script{ - env.JOB_DATE = sh( - script: '''date '+%Y-%m-%dT%H:%M:%S%:z' ''', - returnStdout: true).trim() if (env.EXIT_STATUS == "ABORTED"){ sh 'echo "build aborted"' - }else{ - if (currentBuild.currentResult == "SUCCESS"){ - if (env.GITHUBIMAGE =~ /lspipepr/){ - env.JOB_WEBHOOK_STATUS='Success' - env.JOB_WEBHOOK_COLOUR=3957028 - env.JOB_WEBHOOK_FOOTER='PR Build' - }else if (env.GITHUBIMAGE =~ /lsiodev/){ - env.JOB_WEBHOOK_STATUS='Success' - env.JOB_WEBHOOK_COLOUR=3957028 - env.JOB_WEBHOOK_FOOTER='Dev Build' - }else{ - env.JOB_WEBHOOK_STATUS='Success' - env.JOB_WEBHOOK_COLOUR=1681177 - env.JOB_WEBHOOK_FOOTER='Live Build' - } - }else{ - if (env.GITHUBIMAGE =~ /lspipepr/){ - env.JOB_WEBHOOK_STATUS='Failure' - env.JOB_WEBHOOK_COLOUR=12669523 - env.JOB_WEBHOOK_FOOTER='PR Build' - }else if (env.GITHUBIMAGE =~ /lsiodev/){ - env.JOB_WEBHOOK_STATUS='Failure' - env.JOB_WEBHOOK_COLOUR=12669523 - env.JOB_WEBHOOK_FOOTER='Dev Build' - }else{ - env.JOB_WEBHOOK_STATUS='Failure' - env.JOB_WEBHOOK_COLOUR=16711680 - env.JOB_WEBHOOK_FOOTER='Live Build' - } - } - sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"'color'": '${JOB_WEBHOOK_COLOUR}',\ - "footer": {"text" : "'"${JOB_WEBHOOK_FOOTER}"'"},\ - "timestamp": "'${JOB_DATE}'",\ - "description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** '${JOB_WEBHOOK_STATUS}'\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\ + } + else if (currentBuild.currentResult == "SUCCESS"){ + sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 1681177,\ + "description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\ + "username": "Jenkins"}' ${BUILDS_DISCORD} ''' + } + else { + sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 16711680,\ + "description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\ "username": "Jenkins"}' ${BUILDS_DISCORD} ''' } } } cleanup { sh '''#! /bin/bash - echo "Pruning builder!!" - docker builder prune -f --builder container || : - containers=$(docker ps -q) + echo "Performing docker system prune!!" + containers=$(docker ps -aq) if [[ -n "${containers}" ]]; then - 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 + docker stop ${containers} fi - docker system prune -f --volumes || : - docker image prune -af || : + docker system prune -af --volumes || : ''' cleanWs() } } } - -def retry_backoff(int max_attempts, int power_base, Closure c) { - int n = 0 - while (n < max_attempts) { - try { - c() - return - } catch (err) { - if ((n + 1) >= max_attempts) { - throw err - } - sleep(power_base ** n) - n++ - } - } - return -} diff --git a/README.md b/README.md index 2c825e1..1da5645 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,9 @@ [![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://linuxserver.io/discord "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://discord.gg/YWrKVTn "realtime support / chat with the community and the team.") [![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.") +[![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.") [![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.") [![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Supporters&logo=open%20collective)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget") @@ -19,14 +20,15 @@ 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://linuxserver.io/discord) - realtime support / chat with the community and the team. +* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team. * [Discourse](https://discourse.linuxserver.io) - post on our community forum. +* [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images. * [GitHub](https://github.com/linuxserver) - view the source for all of our repositories. * [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget # [linuxserver/audacity](https://github.com/linuxserver/docker-audacity) -[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Faudacity?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh) +[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Faudacity?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Faudacity) [![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-audacity.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-audacity) [![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-audacity.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-audacity/releases) [![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-audacity/packages) @@ -53,164 +55,49 @@ The architectures supported by this image are: | :----: | :----: | ---- | | x86-64 | ✅ | amd64-\ | | arm64 | ❌ | | +| armhf | ❌ | | ## Application Setup The application can be accessed at: +* http://yourhost:3000/ * https://yourhost:3001/ -### Strict reverse proxies +### Options in all KasmVNC based GUI containers -This image uses a self-signed certificate by default. This naturally means the scheme is `https`. -If you are using a reverse proxy which validates certificates, you need to [disable this check for the container](https://docs.linuxserver.io/faq#strict-proxy). +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. -**Modern GUI desktop apps may have compatibility issues with the latest Docker syscall restrictions. You can use Docker with the `--security-opt seccomp=unconfined` setting to allow these syscalls on hosts with older Kernels or libseccomp versions.** - -### Security - ->[!WARNING] ->This container provides privileged access to the host system. Do not expose it to the Internet unless you have secured it properly. - -**HTTPS is required for full functionality.** Modern browser features such as WebCodecs, used for video and audio, will not function over an insecure HTTP connection. - -By default, this container has no authentication. The optional `CUSTOM_USER` and `PASSWORD` environment variables enable basic HTTP auth, which is suitable only for securing the container on a trusted local network. For internet exposure, we strongly recommend placing the container behind a reverse proxy, such as [SWAG](https://github.com/linuxserver/docker-swag), with a robust authentication mechanism. - -The web interface includes a terminal with passwordless `sudo` access. Any user with access to the GUI can gain root control within the container, install arbitrary software, and probe your local network. - -### Options in all Selkies-based GUI containers - -This container is based on [Docker Baseimage Selkies](https://github.com/linuxserver/docker-baseimage-selkies), which provides the following environment variables and run configurations to customize its functionality. - -#### Optional Environment Variables +#### Optional environment variables | Variable | Description | | :----: | --- | -| `CUSTOM_PORT` | Internal HTTP port. Defaults to `3000`. | -| `CUSTOM_HTTPS_PORT` | Internal HTTPS port. Defaults to `3001`. | -| `CUSTOM_USER` | Username for HTTP Basic Auth. Defaults to `abc`. | -| `PASSWORD` | Password for HTTP Basic Auth. If unset, authentication is disabled. | -| `SUBFOLDER` | Application subfolder for reverse proxy configurations. Must include leading and trailing slashes, e.g., `/subfolder/`. | -| `TITLE` | Page title displayed in the web browser. Defaults to "Selkies". | -| `START_DOCKER` | If set to `false`, the privileged Docker-in-Docker setup will not start automatically. | -| `DISABLE_IPV6` | Set to `true` to disable IPv6 support in the container. | -| `LC_ALL` | Sets the container's locale, e.g., `fr_FR.UTF-8`. | -| `DRINODE` | If mounting in /dev/dri for DRI3 GPU Acceleration allows you to specify the device to use IE `/dev/dri/renderD128` | -| `NO_DECOR` | If set, applications will run without window borders, suitable for PWA usage. | -| `NO_FULL` | If set, applications will not be automatically fullscreened. | -| `DISABLE_ZINK` | If set, Zink-related environment variables will not be configured when a video card is detected. | -| `WATERMARK_PNG` | Full path to a watermark PNG file inside the container, e.g., `/usr/share/selkies/www/icon.png`. | -| `WATERMARK_LOCATION` | Integer specifying the watermark location: `1` (Top Left), `2` (Top Right), `3` (Bottom Left), `4` (Bottom Right), `5` (Centered), `6` (Animated). | +| 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` | -#### Optional Run Configurations +#### Optional run configurations -| Argument | Description | +| Variable | Description | | :----: | --- | -| `--privileged` | Starts a Docker-in-Docker (DinD) environment. For better performance, mount the Docker data directory from the host, e.g., `-v /path/to/docker-data:/var/lib/docker`. | -| `-v /var/run/docker.sock:/var/run/docker.sock` | Mounts the host's Docker socket to manage host containers from within this container. | -| `--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) | +| `--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 +### Lossless mode -To launch the desktop session in a different language, set the `LC_ALL` environment variable. For example: - -* `-e LC_ALL=zh_CN.UTF-8` - Chinese -* `-e LC_ALL=ja_JP.UTF-8` - Japanese -* `-e LC_ALL=ko_KR.UTF-8` - Korean -* `-e LC_ALL=ar_AE.UTF-8` - Arabic -* `-e LC_ALL=ru_RU.UTF-8` - Russian -* `-e LC_ALL=es_MX.UTF-8` - Spanish (Latin America) -* `-e LC_ALL=de_DE.UTF-8` - German -* `-e LC_ALL=fr_FR.UTF-8` - French -* `-e LC_ALL=nl_NL.UTF-8` - Netherlands -* `-e LC_ALL=it_IT.UTF-8` - Italian - -### DRI3 GPU Acceleration - -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. - -DRI3 will work on aarch64 given the correct drivers are installed inside the container for your chipset. - -### Nvidia GPU Support - -**Note: Nvidia support is not available for Alpine-based images.** - -Nvidia GPU support is available by leveraging Zink for OpenGL. When a compatible Nvidia GPU is passed through, it will also be **automatically utilized for hardware-accelerated video stream encoding** (using the `x264enc` full-frame profile), significantly reducing CPU load. - -Enable Nvidia support with the following runtime flags: - -| Flag | Description | -| :----: | --- | -| `--gpus all` | Passes all available host GPUs to the container. This can be filtered to specific GPUs. | -| `--runtime nvidia` | Specifies the Nvidia runtime, which provides the necessary drivers and tools from the host. | - -For Docker Compose, you must first configure the Nvidia runtime as the default on the host: - -``` -sudo nvidia-ctk runtime configure --runtime=docker --set-as-default -sudo systemctl restart docker -``` - -Then, assign the GPU to the service in your `compose.yaml`: - -``` -services: - audacity: - image: lscr.io/linuxserver/audacity:latest - deploy: - resources: - reservations: - devices: - - driver: nvidia - count: 1 - capabilities: [compute,video,graphics,utility] -``` - -### Application Management - -There are two methods for installing applications inside the container: PRoot Apps (recommended for persistence) and Native Apps. - -#### PRoot Apps (Persistent) - -Natively installed packages (e.g., via `apt-get install`) will not persist if the container is recreated. To retain applications and their settings across container updates, we recommend using [proot-apps](https://github.com/linuxserver/proot-apps). These are portable applications installed to the user's persistent `$HOME` directory. - -To install an application, use the command line inside the container: - -``` -proot-apps install filezilla -``` - -A list of supported applications is available [here](https://github.com/linuxserver/proot-apps?tab=readme-ov-file#supported-apps). - -#### Native Apps (Non-Persistent) - -You can install packages from the system's native repository using the [universal-package-install](https://github.com/linuxserver/docker-mods/tree/universal-package-install) mod. This method will increase the container's start time and is not persistent. Add the following to your `compose.yaml`: - -```yaml - environment: - - DOCKER_MODS=linuxserver/mods:universal-package-install - - INSTALL_PACKAGES=libfuse2|git|gdb -``` +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). ## 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 @@ -224,7 +111,7 @@ services: - PGID=1000 - TZ=Etc/UTC volumes: - - /path/to/audacity/config:/config + - /path/to/config:/config ports: - 3000:3000 - 3001:3001 @@ -241,7 +128,7 @@ docker run -d \ -e TZ=Etc/UTC \ -p 3000:3000 \ -p 3001:3001 \ - -v /path/to/audacity/config:/config \ + -v /path/to/config:/config \ --restart unless-stopped \ lscr.io/linuxserver/audacity:latest ``` @@ -252,8 +139,8 @@ Containers are configured using parameters passed at runtime (such as those abov | Parameter | Function | | :----: | --- | -| `-p 3000:3000` | Audacity desktop gui HTTP, must be proxied. | -| `-p 3001:3001` | Audacity desktop gui HTTPS. | +| `-p 3000` | Audacity desktop gui. | +| `-p 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). | @@ -395,8 +282,7 @@ Below are the instructions for updating containers: ### Image Update Notifications - Diun (Docker Image Update Notifier) ->[!TIP] ->We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported. +**tip**: We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported. ## Building locally @@ -411,20 +297,16 @@ docker build \ -t lscr.io/linuxserver/audacity:latest . ``` -The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static` +The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` ```bash -docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset +docker run --rm --privileged multiarch/qemu-user-static:register --reset ``` Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`. ## Versions -* **12.07.25:** - Rebase to Selkies, HTTPS IS NOW REQUIRED. -* **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. * **18.03.23:** - Rebase to KasmVNC base image. * **13.12.22:** - Rebase to Jammy. diff --git a/jenkins-vars.yml b/jenkins-vars.yml index 774d281..c7a6fb3 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -19,9 +19,9 @@ repo_vars: - MULTIARCH = 'false' - CI = 'true' - CI_WEB = 'true' - - CI_PORT = '3001' - - CI_SSL = 'true' + - CI_PORT = '3000' + - CI_SSL = 'false' - CI_DELAY = '120' - - CI_DOCKERENV = '' - - CI_AUTH = '' + - CI_DOCKERENV = 'TZ=US/Pacific' + - CI_AUTH = 'user:password' - CI_WEBPATH = '' diff --git a/package_versions.txt b/package_versions.txt index 215e3f1..36cf29e 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,1156 +1,1393 @@ -NAME VERSION TYPE -adduser 3.137ubuntu1 deb -adwaita-icon-theme 46.0-1 deb -aiohappyeyeballs 2.6.1 python -aiohttp 3.12.14 python -aioice 0.10.1 python -aiosignal 1.4.0 python -apt 2.8.3 deb -apt-transport-https 2.8.3 deb -apt-utils 2.8.3 deb -at-spi2-common 2.52.0-1build1 deb -attrs 25.3.0 python -autoconf 2.71-3 deb -automake 1:1.16.5-1.3ubuntu1 deb -autotools-dev 20220109.1 deb -av 14.4.0 python -base-files 13ubuntu10.2 deb -base-passwd 3.6.3build1 deb -bash 5.2.21-2ubuntu4 deb -binutils 2.42-4ubuntu2.5 deb -binutils-common 2.42-4ubuntu2.5 deb -binutils-x86-64-linux-gnu 2.42-4ubuntu2.5 deb -blinker 1.7.0 python -breeze-cursor-theme 4:5.27.12-0ubuntu0.1 deb -bsdextrautils 2.39.3-9ubuntu6.3 deb -bsdutils 1:2.39.3-9ubuntu6.3 deb -ca-certificates 20240203 deb -catatonit 0.1.7-1 deb -cffi 1.17.1 python -cloud.google.com/go/compute/metadata v0.6.0 go-module -cloud.google.com/go/logging v1.9.0 go-module -cloud.google.com/go/longrunning v0.5.5 go-module -cmake 3.28.3-1build7 deb -cmake-data 3.28.3-1build7 deb -code.cloudfoundry.org/clock v1.1.0 go-module -console-data 2:1.12-9 deb -console-setup 1.226ubuntu1 deb -console-setup-linux 1.226ubuntu1 deb -containerd.io 1.7.27-1 deb -coreutils 9.4-3ubuntu6 deb -cpp 4:13.2.0-7ubuntu1 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 -cryptography 41.0.7 python (+1 duplicate) -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 -dbus-daemon 1.14.10-4ubuntu4.1 deb -dbus-python 1.3.2 python -dbus-session-bus-common 1.14.10-4ubuntu4.1 deb -dbus-system-bus-common 1.14.10-4ubuntu4.1 deb -dbus-x11 1.14.10-4ubuntu4.1 deb -dconf-gsettings-backend 0.40.0-4build2 deb -dconf-service 0.40.0-4build2 deb -debconf 1.5.86ubuntu1 deb -debianutils 5.17build1 deb -diffutils 1:3.10-1build1 deb -dirmngr 2.4.4-2ubuntu17.3 deb -distro 1.9.0 python -distro-info-data 0.60ubuntu0.3 deb -dnspython 2.7.0 python -docker-buildx-plugin 0.25.0-1~ubuntu.24.04~noble deb -docker-ce 5:28.3.2-1~ubuntu.24.04~noble deb -docker-ce-cli 5:28.3.2-1~ubuntu.24.04~noble deb -docker-compose-plugin 2.38.2-1~ubuntu.24.04~noble deb -dpkg 1.22.6ubuntu6.1 deb -dunst 1.9.2-1build2 deb -e2fsprogs 1.47.0-2.4~exp1ubuntu4.1 deb -evdev 1.9.2 python -file 1:5.45-3build1 deb -findutils 4.9.0-5build1 deb -fontconfig 2.15.0-1.1ubuntu2 deb -fontconfig-config 2.15.0-1.1ubuntu2 deb -fonts-noto-cjk 1:20230817+repack1-3 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 -frozenlist 1.7.0 python -fuse-overlayfs 1.13-1 deb -fuse3 3.14.0-5build1 deb -g++ 4:13.2.0-7ubuntu1 deb -g++-13 13.3.0-6ubuntu2~24.04 deb -g++-13-x86-64-linux-gnu 13.3.0-6ubuntu2~24.04 deb -g++-x86-64-linux-gnu 4:13.2.0-7ubuntu1 deb -gcc 4:13.2.0-7ubuntu1 deb -gcc-13 13.3.0-6ubuntu2~24.04 deb -gcc-13-base 13.3.0-6ubuntu2~24.04 deb -gcc-13-x86-64-linux-gnu 13.3.0-6ubuntu2~24.04 deb -gcc-14-base 14.2.0-4ubuntu2~24.04 deb -gcc-x86-64-linux-gnu 4:13.2.0-7ubuntu1 deb -gettext 0.21-14ubuntu2 deb -gettext UNKNOWN java-archive -gettext-base 0.21-14ubuntu2 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.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 -git 1:2.43.0-1ubuntu7.3 deb -git-man 1:2.43.0-1ubuntu7.3 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 (+1 duplicate) -github.com/Microsoft/hcsshim v0.11.7 go-module (+1 duplicate) -github.com/Microsoft/hcsshim v0.13.0 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 (+1 duplicate) -github.com/anchore/go-struct-converter v0.0.0-20221118182256-c68fdcfa2092 go-module -github.com/apparentlymart/go-cidr v1.0.1 go-module -github.com/apparentlymart/go-textseg/v15 v15.0.0 go-module (+1 duplicate) -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.30.3 go-module (+2 duplicates) -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 (+2 duplicates) -github.com/aws/aws-sdk-go-v2/credentials v1.17.27 go-module (+2 duplicates) -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 go-module (+2 duplicates) -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 go-module (+2 duplicates) -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 go-module (+2 duplicates) -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 go-module (+2 duplicates) -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.11.3 go-module (+2 duplicates) -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 go-module (+2 duplicates) -github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 go-module (+2 duplicates) -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 go-module (+2 duplicates) -github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 go-module (+2 duplicates) -github.com/aws/smithy-go v1.20.3 go-module (+2 duplicates) -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 -github.com/cenkalti/backoff/v4 v4.3.0 go-module (+2 duplicates) -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.6.3 go-module -github.com/compose-spec/compose-go/v2 v2.7.1 go-module -github.com/container-storage-interface/spec v1.5.0 go-module -github.com/containerd/accelerated-container-image v1.3.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.5 go-module -github.com/containerd/console v1.0.3 go-module (+4 duplicates) -github.com/containerd/console v1.0.4 go-module -github.com/containerd/console v1.0.5 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 (+4 duplicates) -github.com/containerd/containerd/api v1.9.0 go-module (+2 duplicates) -github.com/containerd/containerd/v2 v2.1.1 go-module -github.com/containerd/containerd/v2 v2.1.3 go-module (+1 duplicate) -github.com/containerd/continuity v0.4.4 go-module (+4 duplicates) -github.com/containerd/continuity v0.4.5 go-module (+2 duplicates) -github.com/containerd/errdefs v0.3.0 go-module (+4 duplicates) -github.com/containerd/errdefs v1.0.0 go-module (+2 duplicates) -github.com/containerd/errdefs/pkg v0.3.0 go-module (+2 duplicates) -github.com/containerd/fifo v1.1.0 go-module (+5 duplicates) -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 (+8 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 (+2 duplicates) -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 (+7 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.3 go-module (+2 duplicates) -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.3.0 go-module -github.com/containernetworking/plugins v1.2.0 go-module -github.com/containernetworking/plugins v1.7.1 go-module -github.com/containers/ocicrypt v1.1.10 go-module -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 (+3 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 (+4 duplicates) -github.com/docker/buildx UNKNOWN go-module -github.com/docker/buildx v0.25.0 go-module -github.com/docker/cli v28.2.2+incompatible go-module -github.com/docker/cli v28.3.1+incompatible go-module -github.com/docker/cli-docs-tool v0.10.0 go-module (+1 duplicate) -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 v28.2.2+incompatible go-module -github.com/docker/docker v28.3.1+incompatible go-module -github.com/docker/docker v28.3.2 go-module (+1 duplicate) -github.com/docker/docker-credential-helpers v0.9.3 go-module (+1 duplicate) -github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c go-module -github.com/docker/go-connections v0.5.0 go-module (+2 duplicates) -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.5.0 go-module (+7 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 -github.com/emicklei/go-restful/v3 v3.10.1 go-module -github.com/emicklei/go-restful/v3 v3.11.0 go-module (+1 duplicate) -github.com/felixge/httpsnoop v1.0.3 go-module (+1 duplicate) -github.com/felixge/httpsnoop v1.0.4 go-module (+2 duplicates) -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 -github.com/fsnotify/fsnotify v1.9.0 go-module -github.com/fvbommel/sortorder v1.0.1 go-module -github.com/fvbommel/sortorder v1.1.0 go-module -github.com/fxamacker/cbor/v2 v2.7.0 go-module (+1 duplicate) -github.com/go-jose/go-jose/v3 v3.0.3 go-module -github.com/go-logr/logr v1.4.2 go-module (+4 duplicates) -github.com/go-logr/stdr v1.2.2 go-module (+4 duplicates) -github.com/go-openapi/jsonpointer v0.21.0 go-module (+1 duplicate) -github.com/go-openapi/jsonreference v0.20.2 go-module (+1 duplicate) -github.com/go-openapi/swag v0.23.0 go-module (+1 duplicate) -github.com/go-viper/mapstructure/v2 v2.0.0 go-module -github.com/go-viper/mapstructure/v2 v2.3.0 go-module -github.com/godbus/dbus/v5 v5.1.0 go-module (+5 duplicates) -github.com/gofrs/flock v0.12.1 go-module (+2 duplicates) -github.com/gogo/protobuf v1.3.2 go-module (+7 duplicates) -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 (+7 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 (+1 duplicate) -github.com/google/go-cmp v0.6.0 go-module (+4 duplicates) -github.com/google/go-cmp v0.7.0 go-module (+2 duplicates) -github.com/google/gofuzz v1.2.0 go-module (+2 duplicates) -github.com/google/s2a-go v0.1.7 go-module -github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 go-module (+2 duplicates) -github.com/google/uuid v1.4.0 go-module (+1 duplicate) -github.com/google/uuid v1.6.0 go-module (+2 duplicates) -github.com/googleapis/enterprise-certificate-proxy v0.3.2 go-module -github.com/googleapis/gax-go/v2 v2.12.0 go-module -github.com/gorilla/mux v1.8.1 go-module (+1 duplicate) -github.com/gorilla/websocket v1.5.0 go-module (+1 duplicate) -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 -github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 go-module (+2 duplicates) -github.com/hashicorp/errwrap v1.1.0 go-module (+2 duplicates) -github.com/hashicorp/go-cleanhttp v0.5.2 go-module (+1 duplicate) -github.com/hashicorp/go-cty-funcs v0.0.0-20250210171435-dda779884a9f 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 (+2 duplicates) -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 -github.com/hashicorp/golang-lru/v2 v2.0.7 go-module -github.com/hashicorp/hcl/v2 v2.23.0 go-module -github.com/hashicorp/memberlist v0.4.0 go-module -github.com/hashicorp/serf v0.8.5 go-module -github.com/in-toto/in-toto-golang v0.9.0 go-module (+2 duplicates) -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.5.0 go-module -github.com/josharian/intern v1.0.0 go-module (+1 duplicate) -github.com/json-iterator/go v1.1.12 go-module (+2 duplicates) -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.18.0 go-module (+2 duplicates) -github.com/klauspost/cpuid/v2 v2.0.4 go-module (+1 duplicate) -github.com/mailru/easyjson v0.7.7 go-module (+1 duplicate) -github.com/mattn/go-colorable v0.1.13 go-module -github.com/mattn/go-isatty v0.0.20 go-module -github.com/mattn/go-runewidth v0.0.16 go-module (+1 duplicate) -github.com/mattn/go-shellwords v1.0.12 go-module (+1 duplicate) -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.66 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) -github.com/mitchellh/copystructure v1.2.0 go-module -github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7 go-module -github.com/mitchellh/hashstructure/v2 v2.0.2 go-module (+2 duplicates) -github.com/mitchellh/mapstructure v1.5.0 go-module -github.com/mitchellh/reflectwalk v1.0.2 go-module -github.com/moby/buildkit v0.23.0 go-module -github.com/moby/buildkit v0.23.2 go-module (+1 duplicate) -github.com/moby/docker-image-spec v1.3.1 go-module (+2 duplicates) -github.com/moby/go-archive v0.1.0 go-module (+2 duplicates) -github.com/moby/ipvs v1.1.0 go-module -github.com/moby/locker v1.0.1 go-module (+4 duplicates) -github.com/moby/patternmatcher v0.6.0 go-module (+2 duplicates) -github.com/moby/pubsub v1.0.0 go-module -github.com/moby/spdystream v0.2.0 go-module -github.com/moby/spdystream v0.5.0 go-module (+1 duplicate) -github.com/moby/swarmkit/v2 v2.0.0 go-module -github.com/moby/sys/atomicwriter v0.1.0 go-module (+2 duplicates) -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.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 (+2 duplicates) -github.com/moby/sys/reexec v0.1.0 go-module -github.com/moby/sys/sequential v0.6.0 go-module (+2 duplicates) -github.com/moby/sys/signal v0.7.0 go-module (+1 duplicate) -github.com/moby/sys/signal v0.7.1 go-module (+2 duplicates) -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 (+4 duplicates) -github.com/moby/sys/user v0.4.0 go-module (+2 duplicates) -github.com/moby/sys/userns v0.1.0 go-module (+8 duplicates) -github.com/moby/term v0.5.2 go-module (+2 duplicates) -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd go-module (+2 duplicates) -github.com/modern-go/reflect2 v1.0.2 go-module (+2 duplicates) -github.com/morikuni/aec v1.0.0 go-module (+2 duplicates) -github.com/mrunalp/fileutils v0.5.1 go-module -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 go-module (+2 duplicates) -github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f go-module (+1 duplicate) -github.com/opencontainers/cgroups v0.0.3 go-module -github.com/opencontainers/go-digest v1.0.0 go-module (+7 duplicates) -github.com/opencontainers/image-spec v1.1.0 go-module (+4 duplicates) -github.com/opencontainers/image-spec v1.1.1 go-module (+2 duplicates) -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.1 go-module -github.com/opencontainers/runtime-tools v0.9.1-0.20221107090550-2e043c6bd626 go-module (+1 duplicate) -github.com/opencontainers/selinux v1.11.0 go-module (+2 duplicates) -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 (+4 duplicates) -github.com/pelletier/go-toml/v2 v2.2.4 go-module -github.com/philhofer/fwd v1.1.2 go-module -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c go-module -github.com/pkg/errors v0.9.1 go-module (+7 duplicates) -github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 go-module (+2 duplicates) -github.com/pmezard/go-difflib v1.0.0 go-module (+1 duplicate) -github.com/prometheus/client_golang v1.16.0 go-module -github.com/prometheus/client_golang v1.22.0 go-module (+1 duplicate) -github.com/prometheus/client_model v0.3.0 go-module -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.62.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/rivo/uniseg v0.2.0 go-module (+1 duplicate) -github.com/rootless-containers/rootlesskit/v2 v2.3.4 go-module -github.com/santhosh-tekuri/jsonschema/v6 v6.0.1 go-module -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 go-module -github.com/seccomp/libseccomp-golang v0.10.0 go-module -github.com/secure-systems-lab/go-securesystemslib v0.6.0 go-module (+2 duplicates) -github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b go-module (+1 duplicate) -github.com/shibumi/go-pathspec v1.3.0 go-module (+2 duplicates) -github.com/sirupsen/logrus v1.9.3 go-module (+9 duplicates) -github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 go-module -github.com/spdx/tools-golang v0.5.5 go-module -github.com/spf13/cobra v1.9.1 go-module (+2 duplicates) -github.com/spf13/pflag v1.0.5 go-module -github.com/spf13/pflag v1.0.6 go-module (+2 duplicates) -github.com/stefanberger/go-pkcs11uri v0.0.0-20230803200340-78284954bff6 go-module -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/dchapes-mode v0.0.0-20250318174251-73d941a28323 go-module (+2 duplicates) -github.com/tonistiigi/fsutil v0.0.0-20250605211040-586307ad452f go-module (+2 duplicates) -github.com/tonistiigi/go-actions-cache v0.0.0-20250626083717-378c5ed1ddd9 go-module -github.com/tonistiigi/go-archvariant v1.0.0 go-module -github.com/tonistiigi/go-csvvalue v0.0.0-20240814133006-030d3b2625d0 go-module (+2 duplicates) -github.com/tonistiigi/jaeger-ui-rest v0.0.0-20250408171107-3dd17559e117 go-module -github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea go-module (+2 duplicates) -github.com/tonistiigi/vt100 v0.0.0-20240514184818-90bafcd6abab go-module (+1 duplicate) -github.com/urfave/cli v1.22.12 go-module (+1 duplicate) -github.com/urfave/cli v1.22.14 go-module -github.com/vbatts/tar-split v0.12.1 go-module -github.com/vishvananda/netlink v1.1.0 go-module -github.com/vishvananda/netlink v1.2.1-beta.2 go-module -github.com/vishvananda/netlink v1.3.1 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.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 (+1 duplicate) -github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb go-module (+1 duplicate) -github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 go-module (+1 duplicate) -github.com/xeipuuv/gojsonschema v1.2.0 go-module (+1 duplicate) -github.com/xhit/go-str2duration/v2 v2.1.0 go-module (+1 duplicate) -github.com/zclconf/go-cty v1.16.2 go-module (+1 duplicate) -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.3 deb -gnupg-l10n 2.4.4-2ubuntu17.3 deb -gnupg-utils 2.4.4-2ubuntu17.3 deb -go.etcd.io/bbolt v1.3.10 go-module -go.etcd.io/bbolt v1.4.0 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/auto/sdk v1.1.0 go-module (+2 duplicates) -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.60.0 go-module (+2 duplicates) -go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.56.0 go-module (+1 duplicate) -go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.60.0 go-module -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 go-module (+1 duplicate) -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 go-module (+2 duplicates) -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.35.0 go-module (+2 duplicates) -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 go-module (+1 duplicate) -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.35.0 go-module -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0 go-module (+1 duplicate) -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.35.0 go-module -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 go-module -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 go-module (+2 duplicates) -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 go-module -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 go-module (+2 duplicates) -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 go-module -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.35.0 go-module (+2 duplicates) -go.opentelemetry.io/otel/metric v1.21.0 go-module (+1 duplicate) -go.opentelemetry.io/otel/metric v1.35.0 go-module (+2 duplicates) -go.opentelemetry.io/otel/sdk v1.21.0 go-module -go.opentelemetry.io/otel/sdk v1.35.0 go-module (+2 duplicates) -go.opentelemetry.io/otel/sdk/metric v1.35.0 go-module (+2 duplicates) -go.opentelemetry.io/otel/trace v1.21.0 go-module (+1 duplicate) -go.opentelemetry.io/otel/trace v1.35.0 go-module (+2 duplicates) -go.opentelemetry.io/proto/otlp v1.0.0 go-module -go.opentelemetry.io/proto/otlp v1.5.0 go-module (+2 duplicates) -go.uber.org/atomic v1.9.0 go-module -go.uber.org/mock v0.5.2 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.31.0 go-module -golang.org/x/crypto v0.37.0 go-module (+2 duplicates) -golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2 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 (+3 duplicates) -golang.org/x/oauth2 v0.11.0 go-module -golang.org/x/oauth2 v0.29.0 go-module (+2 duplicates) -golang.org/x/sync v0.10.0 go-module (+4 duplicates) -golang.org/x/sync v0.14.0 go-module (+1 duplicate) -golang.org/x/sync v0.15.0 go-module -golang.org/x/sys v0.28.0 go-module (+5 duplicates) -golang.org/x/sys v0.33.0 go-module (+3 duplicates) -golang.org/x/term v0.27.0 go-module -golang.org/x/term v0.31.0 go-module (+1 duplicate) -golang.org/x/text v0.21.0 go-module (+2 duplicates) -golang.org/x/text v0.24.0 go-module (+2 duplicates) -golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 go-module -golang.org/x/time v0.11.0 go-module (+2 duplicates) -google-crc32c 1.7.1 python -google.golang.org/api v0.160.0 go-module -google.golang.org/genproto v0.0.0-20231211222908-989df2bf70f3 go-module (+4 duplicates) -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de go-module -google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f go-module -google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a go-module (+1 duplicate) -google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463 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-20250218202821-56aae31c358a go-module (+1 duplicate) -google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 go-module -google.golang.org/grpc v1.59.0 go-module (+4 duplicates) -google.golang.org/grpc v1.72.2 go-module (+1 duplicate) -google.golang.org/grpc v1.73.0 go-module -google.golang.org/protobuf v1.33.0 go-module -google.golang.org/protobuf v1.35.2 go-module (+4 duplicates) -google.golang.org/protobuf v1.36.6 go-module (+2 duplicates) -gopkg.in/evanphx/json-patch.v4 v4.12.0 go-module (+1 duplicate) -gopkg.in/inf.v0 v0.9.1 go-module (+3 duplicates) -gopkg.in/ini.v1 v1.67.0 go-module -gopkg.in/yaml.v2 v2.4.0 go-module (+1 duplicate) -gopkg.in/yaml.v3 v3.0.1 go-module (+3 duplicates) -gpg 2.4.4-2ubuntu17.3 deb -gpg-agent 2.4.4-2ubuntu17.3 deb -gpg-wks-client 2.4.4-2ubuntu17.3 deb -gpgconf 2.4.4-2ubuntu17.3 deb -gpgsm 2.4.4-2ubuntu17.3 deb -gpgv 2.4.4-2ubuntu17.3 deb -gputil 1.4.0 python -grep 3.11-4build1 deb -groff-base 1.23.0-3build2 deb -gsettings-desktop-schemas 46.1-0ubuntu1 deb -gtk-update-icon-cache 3.24.41-4ubuntu1.3 deb -gzip 1.12-1ubuntu3.1 deb -hicolor-icon-theme 0.17-2 deb -hostname 3.23+nmu2ubuntu2 deb -httplib2 0.20.4 python -humanity-icon-theme 0.6.16 deb -idna 3.10 python -ifaddr 0.2.0 python -init-system-helpers 1.66ubuntu1 deb -intel-media-va-driver 24.1.0+dfsg1-1 deb -intltool 0.51.0-6 deb -iproute2 6.1.0-1ubuntu6 deb -iptables 1.8.10-3ubuntu2 deb -iso-codes 4.16.0-1 deb -jq 1.7.1 binary -jq 1.7.1-3ubuntu0.24.04.1 deb -k8s.io/api v0.26.2 go-module -k8s.io/api v0.32.3 go-module (+1 duplicate) -k8s.io/apimachinery v0.27.4 go-module (+1 duplicate) -k8s.io/apimachinery v0.32.3 go-module (+1 duplicate) -k8s.io/apiserver v0.26.2 go-module -k8s.io/client-go v0.26.2 go-module -k8s.io/client-go v0.32.3 go-module (+1 duplicate) -k8s.io/component-base v0.26.2 go-module -k8s.io/cri-api v0.27.1 go-module -k8s.io/klog/v2 v2.130.1 go-module (+2 duplicates) -k8s.io/klog/v2 v2.90.1 go-module -k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f go-module (+1 duplicate) -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 go-module -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 go-module (+1 duplicate) -kbd 2.6.4-2ubuntu2 deb -keyboard-configuration 1.226ubuntu1 deb -keyboxd 2.4.4-2ubuntu17.3 deb -krb5-locales 1.20.1-6ubuntu2.6 deb -launchpadlib 1.11.0 python -lazr-restfulclient 0.14.6 python -lazr-uri 1.0.6 python -libacl1 2.3.2-1build1.1 deb -libaom3 3.8.2-2ubuntu0.1 deb -libapparmor1 4.0.1really4.0.1-0ubuntu0.24.04.4 deb -libappstream5 1.0.2-1build6 deb -libapt-pkg6.0t64 2.8.3 deb -libarchive13t64 3.7.2-2ubuntu0.5 deb -libargon2-1 0~20190702+dfsg-4build1 deb -libasan8 14.2.0-4ubuntu2~24.04 deb -libasound2-data 1.2.11-1ubuntu0.1 deb -libasound2-plugins 1.2.7.1-1ubuntu5 deb -libasound2t64 1.2.11-1ubuntu0.1 deb -libassuan0 2.5.6-1build1 deb -libasyncns0 0.8-6build4 deb -libatk-bridge2.0-0t64 2.52.0-1build1 deb -libatk-bridge2.0-dev 2.52.0-1build1 deb -libatk1.0-0t64 2.52.0-1build1 deb -libatk1.0-dev 2.52.0-1build1 deb -libatk1.0-doc 2.52.0-1build1 deb -libatomic1 14.2.0-4ubuntu2~24.04 deb -libatspi2.0-0t64 2.52.0-1build1 deb -libatspi2.0-dev 2.52.0-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 -libavcodec60 7:6.1.1-3ubuntu5 deb -libavutil58 7:6.1.1-3ubuntu5 deb -libbinutils 2.42-4ubuntu2.5 deb -libblkid-dev 2.39.3-9ubuntu6.3 deb -libblkid1 2.39.3-9ubuntu6.3 deb -libbpf1 1:1.3.0-2build2 deb -libbrotli1 1.1.0-2build2 deb -libbsd0 0.12.1-1build1.1 deb -libbz2-1.0 1.0.8-5.1build0.1 deb -libc-bin 2.39-0ubuntu8.5 deb -libc-dev-bin 2.39-0ubuntu8.5 deb -libc6 2.39-0ubuntu8.5 deb -libc6-dev 2.39-0ubuntu8.5 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.2 deb -libcap2-bin 1:2.66-5ubuntu2.2 deb -libcbor0.10 0.10.2-1.2ubuntu2 deb -libcc1-0 14.2.0-4ubuntu2~24.04 deb -libclone-perl 0.46-1build3 deb -libcodec2-1.2 1.2.0-2build1 deb -libcolord2 1.4.7-1build2 deb -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.2 deb -libctf-nobfd0 2.42-4ubuntu2.5 deb -libctf0 2.42-4ubuntu2.5 deb -libcups2t64 2.4.7-1.2ubuntu7.3 deb -libcurl3t64-gnutls 8.5.0-2ubuntu10.6 deb -libcurl4t64 8.5.0-2ubuntu10.6 deb -libdatrie1 0.2.13-3build1 deb -libdav1d7 1.4.1-1build1 deb -libdb5.3t64 5.3.28+dfsg2-7 deb -libdbus-1-3 1.14.10-4ubuntu4.1 deb -libdbus-1-dev 1.14.10-4ubuntu4.1 deb -libdconf1 0.40.0-4build2 deb -libde265-0 1.0.15-1build3 deb -libdebconfclient0 0.271ubuntu3 deb -libdeflate0 1.19-1build1.1 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.1ubuntu0.1 deb -libedit2 3.1-20230828-1build1 deb -libegl-mesa0 24.2.8-1ubuntu1~24.04.1 deb -libegl1 1.7.0-1build1 deb -libelf1t64 0.190-1.1ubuntu0.1 deb -libencode-locale-perl 1.05-3 deb -libepoxy0 1.5.10-1build1 deb -liberror-perl 0.17029-2 deb -libev4t64 1:4.33-2.1build1 deb -libexpat1 2.6.1-2ubuntu0.3 deb -libext2fs2t64 1.47.0-2.4~exp1ubuntu4.1 deb -libfdisk1 2.39.3-9ubuntu6.3 deb -libffi-dev 3.4.6-1build1 deb -libffi8 3.4.6-1build1 deb -libfftw3-single3 3.3.10-1ubuntu3 deb -libfido2-1 1.14.0-1build3 deb -libfile-listing-perl 6.16-1 deb -libflac12t64 1.4.3+ds-2.1ubuntu2 deb -libfontconfig1 2.15.0-1.1ubuntu2 deb -libfontenc1 1:1.1.8-1build1 deb -libfreetype6 2.13.2+dfsg-1build3 deb -libfribidi0 1.0.13-3build1 deb -libfuse3-3 3.14.0-5build1 deb -libgbm1 24.2.8-1ubuntu1~24.04.1 deb -libgcc-13-dev 13.3.0-6ubuntu2~24.04 deb -libgcc-s1 14.2.0-4ubuntu2~24.04 deb -libgcrypt20 1.10.3-2build1 deb -libgdbm-compat4t64 1.23-5.1build1 deb -libgdbm6t64 1.23-5.1build1 deb -libgdk-pixbuf-2.0-0 2.42.10+dfsg-3ubuntu3.2 deb -libgdk-pixbuf2.0-common 2.42.10+dfsg-3ubuntu3.2 deb -libgif7 5.2.2-1ubuntu1 deb -libgirepository-1.0-1 1.80.1-1 deb -libgirepository-2.0-0 2.80.0-6ubuntu3.4 deb -libgl1 1.7.0-1build1 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.2.8-1ubuntu1~24.04.1 deb -libglx0 1.7.0-1build1 deb -libgmp10 2:6.3.0+dfsg-2ubuntu6.1 deb -libgnutls30t64 3.8.3-1.1ubuntu3.4 deb -libgomp1 14.2.0-4ubuntu2~24.04 deb -libgpg-error0 1.47-3build2.1 deb -libgprofng0 2.42-4ubuntu2.5 deb -libgraphite2-3 1.3.14-2build1 deb -libgs-common 10.02.1~dfsg1-0ubuntu7.7 deb -libgs10 10.02.1~dfsg1-0ubuntu7.7 deb -libgs10-common 10.02.1~dfsg1-0ubuntu7.7 deb -libgsm1 1.0.22-1build1 deb -libgssapi-krb5-2 1.20.1-6ubuntu2.6 deb -libgstreamer-plugins-base1.0-0 1.24.2-1ubuntu0.2 deb -libgstreamer1.0-0 1.24.2-1ubuntu0.1 deb -libgtk-3-0t64 3.24.41-4ubuntu1.3 deb -libgtk-3-common 3.24.41-4ubuntu1.3 deb -libharfbuzz0b 8.3.0-2build2 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 -libhtml-parser-perl 3.81-1build3 deb -libhtml-tagset-perl 3.20-6 deb -libhtml-tree-perl 5.07-3 deb -libhttp-cookies-perl 6.11-1 deb -libhttp-date-perl 6.06-1 deb -libhttp-message-perl 6.45-1ubuntu1 deb -libhttp-negotiate-perl 6.01-2 deb -libhwasan0 14.2.0-4ubuntu2~24.04 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.1 deb -libigdgmm12 22.3.17+ds1-1 deb -libijs-0.35 0.35-15.1build1 deb -libimlib2t64 1.12.1-1.1build2 deb -libintl 0.21 java-archive -libio-html-perl 1.004-3 deb -libio-socket-ssl-perl 2.085-1 deb -libip4tc2 1.8.10-3ubuntu2 deb -libip6tc2 1.8.10-3ubuntu2 deb -libisl23 0.26-3build1.1 deb -libitm1 14.2.0-4ubuntu2~24.04 deb -libjack-jackd2-0 1.9.21~dfsg-3ubuntu3 deb -libjansson4 2.14-2build2 deb -libjbig0 2.1-6.1ubuntu2 deb -libjbig2dec0 0.20-1build3 deb -libjpeg-turbo8 2.1.5-2ubuntu2 deb -libjpeg8 8c-2ubuntu11 deb -libjq1 1.7.1-3ubuntu0.24.04.1 deb -libjson-c5 0.17-1build1 deb -libjson-glib-1.0-0 1.8.0-2build2 deb -libjson-glib-1.0-common 1.8.0-2build2 deb -libjsoncpp25 1.9.5-6build1 deb -libjxl0.7 0.7.0-10.2ubuntu6.1 deb -libk5crypto3 1.20.1-6ubuntu2.6 deb -libkeyutils1 1.6.3-3build1 deb -libkmod2 31+20240202-2ubuntu7.1 deb -libkrb5-3 1.20.1-6ubuntu2.6 deb -libkrb5support0 1.20.1-6ubuntu2.6 deb -libksba8 1.6.6-1build1 deb -liblcms2-2 2.14-2build1 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 -libllvm19 1:19.1.1-1ubuntu1~24.04.2 deb -liblocale-gettext-perl 1.07-6ubuntu5 deb -liblsan0 14.2.0-4ubuntu2~24.04 deb -libltdl7 2.4.7-7build1 deb -liblwp-mediatypes-perl 6.04-2 deb -liblwp-protocol-https-perl 6.13-1 deb -liblz4-1 1.9.4-1build1.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 -libmd0 1.1.0-2build1.1 deb -libmnl0 1.0.5-2build1 deb -libmount-dev 2.39.3-9ubuntu6.3 deb -libmount1 2.39.3-9ubuntu6.3 deb -libmp3lame0 3.100-6build1 deb -libmpc3 1.3.1-1build1.1 deb -libmpfr6 4.2.1-1build1.1 deb -libmpg123-0t64 1.32.5-1ubuntu1.1 deb -libncursesw6 6.4+20240113-1ubuntu2 deb -libnet-http-perl 6.23-1 deb -libnet-ssleay-perl 1.94-1build4 deb -libnetfilter-conntrack3 1.0.9-6build1 deb -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.2 deb -libnginx-mod-http-fancyindex 1:0.5.2-5build1 deb -libnotify-bin 0.8.3-1build2 deb -libnotify4 0.8.3-1build2 deb -libnpth0t64 1.6-3.1build1 deb -libnspr4 2:4.35-1.1build1 deb -libnss3 2:3.98-1build1 deb -libnuma1 2.0.18-1build1 deb -libobrender32v5 3.6.1-12build5 deb -libobt2v5 3.6.1-12build5 deb -libogg0 1.3.5-3build1 deb -libonig5 6.9.9-1build1 deb -libopengl0 1.7.0-1build1 deb -libopenjp2-7 2.5.0-2ubuntu0.3 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 -libpackagekit-glib2-18 1.2.8-2ubuntu1.2 deb -libpam-modules 1.5.3-5ubuntu5.4 deb -libpam-modules-bin 1.5.3-5ubuntu5.4 deb -libpam-runtime 1.5.3-5ubuntu5.4 deb -libpam-systemd 255.4-1ubuntu8.10 deb -libpam0g 1.5.3-5ubuntu5.4 deb -libpango-1.0-0 1.52.1+ds-1build1 deb -libpangocairo-1.0-0 1.52.1+ds-1build1 deb -libpangoft2-1.0-0 1.52.1+ds-1build1 deb -libpangoxft-1.0-0 1.52.1+ds-1build1 deb -libpaper1 1.1.29build1 deb -libpci3 1:3.10.0-2build1 deb -libpciaccess0 0.17-3ubuntu0.24.04.2 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 -libpipeline1 1.5.7-2 deb -libpixman-1-0 0.42.2-1build1 deb -libpkgconf3 1.8.1-2build1 deb -libpng16-16t64 1.6.43-5build1 deb -libpolkit-agent-1-0 124-2ubuntu1.24.04.2 deb -libpolkit-gobject-1-0 124-2ubuntu1.24.04.2 deb -libportaudio2 19.6.0-1.2build3 deb -libproc2-0 2:4.0.4-4ubuntu3.2 deb -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.1 deb -libpython3-stdlib 3.12.3-0ubuntu2 deb -libpython3.12-minimal 3.12.3-1ubuntu0.7 deb -libpython3.12-stdlib 3.12.3-1ubuntu0.7 deb -libquadmath0 14.2.0-4ubuntu2~24.04 deb -librav1e0 0.7.1-2 deb -libreadline8t64 8.2-4build1 deb -librhash0 1.4.3-3build1 deb -librsvg2-2 2.58.0+dfsg-1build1 deb -librtmp1 2.4+20151223.gitfa8646d.1-2build7 deb -libsamplerate0 0.2.2-4build1 deb -libsasl2-2 2.1.28+dfsg1-5ubuntu3.1 deb -libsasl2-modules 2.1.28+dfsg1-5ubuntu3.1 deb -libsasl2-modules-db 2.1.28+dfsg1-5ubuntu3.1 deb -libseccomp2 2.5.5-1ubuntu3.1 deb -libselinux1 3.5-2ubuntu2.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 -libsensors5 1:3.6.0-9build1 deb -libsepol-dev 3.5-2build1 deb -libsepol2 3.5-2build1 deb -libsframe1 2.42-4ubuntu2.5 deb -libsharpyuv0 1.3.2-0.4build3 deb -libshine3 3.1.1-2build1 deb -libsm6 2:1.2.3-1build3 deb -libsmartcols1 2.39.3-9ubuntu6.3 deb -libsnapd-glib-2-1 1.64-0ubuntu5 deb -libsnappy1v5 1.1.10-1build1 deb -libsndfile1 1.2.2-1ubuntu5.24.04.1 deb -libsoup-3.0-0 3.4.4-5ubuntu0.5 deb -libsoup-3.0-common 3.4.4-5ubuntu0.5 deb -libsoxr0 0.1.3-4build3 deb -libspectre1 0.2.12-1build2 deb -libspeex1 1.2.1-2ubuntu2.24.04.1 deb -libspeexdsp1 1.2.1-1ubuntu3 deb -libsqlite3-0 3.45.1-1ubuntu2.3 deb -libss2 1.47.0-2.4~exp1ubuntu4.1 deb -libssh-4 0.10.6-2ubuntu0.1 deb -libssl3t64 3.0.13-0ubuntu3.5 deb -libstartup-notification0 0.12-6build3 deb -libstdc++-13-dev 13.3.0-6ubuntu2~24.04 deb -libstdc++6 14.2.0-4ubuntu2~24.04 deb -libstemmer0d 2.2.0-4build1 deb -libsvtav1enc1d1 1.7.0+dfsg-2build1 deb -libswresample4 7:6.1.1-3ubuntu5 deb -libsystemd-shared 255.4-1ubuntu8.10 deb -libsystemd0 255.4-1ubuntu8.10 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 -libtheora0 1.1.1+dfsg.1-16.1build3 deb -libtiff6 4.5.1+git230720-4ubuntu2.2 deb -libtimedate-perl 2.3300-2 deb -libtinfo6 6.4+20240113-1ubuntu2 deb -libtirpc-common 1.3.4+ds-1.1build1 deb -libtirpc3t64 1.3.4+ds-1.1build1 deb -libtry-tiny-perl 0.31-2 deb -libtsan2 14.2.0-4ubuntu2~24.04 deb -libtwolame0 0.4.0-2build3 deb -libubsan1 14.2.0-4ubuntu2~24.04 deb -libuchardet0 0.0.8-1build1 deb -libudev1 255.4-1ubuntu8.10 deb -libunistring5 1.1-2build1.1 deb -libunwind8 1.6.2-3build1.1 deb -liburi-perl 5.27-1 deb -libutempter0 1.2.1-3build1 deb -libuuid1 2.39.3-9ubuntu6.3 deb -libuv1t64 1.48.0-1.1build1 deb -libva-drm2 2.20.0-2build1 deb -libva-x11-2 2.20.0-2build1 deb -libva2 2.20.0-2build1 deb -libvdpau1 1.5-2build1 deb -libvorbis0a 1.3.7-1build3 deb -libvorbisenc2 1.3.7-1build3 deb -libvpl2 2023.3.0-1build1 deb -libvpx9 1.14.0-1ubuntu2.2 deb -libvulkan1 1.3.275.0-1build1 deb -libwayland-client0 1.22.0-2.1build1 deb -libwayland-cursor0 1.22.0-2.1build1 deb -libwayland-egl1 1.22.0-2.1build1 deb -libwayland-server0 1.22.0-2.1build1 deb -libwebp7 1.3.2-0.4build3 deb -libwebpdemux2 1.3.2-0.4build3 deb -libwebpmux3 1.3.2-0.4build3 deb -libwebrtc-audio-processing1 0.3.1-0ubuntu6 deb -libwrap0 7.6.q-33 deb -libwww-perl 6.76-1 deb -libwww-robotrules-perl 6.02-1 deb -libx11-6 2:1.8.7-1build1 deb -libx11-data 2:1.8.7-1build1 deb -libx11-dev 2:1.8.7-1build1 deb -libx11-xcb1 2:1.8.7-1build1 deb -libx264-164 2:0.164.3108+git31e19f9-1 deb -libx265-199 3.5-2build1 deb -libxau-dev 1:1.0.9-1build6 deb -libxau6 1:1.0.9-1build6 deb -libxaw7 2:1.0.14-1build2 deb -libxcb-damage0 1.15-1ubuntu2 deb -libxcb-dri2-0 1.15-1ubuntu2 deb -libxcb-dri3-0 1.15-1ubuntu2 deb -libxcb-glx0 1.15-1ubuntu2 deb -libxcb-icccm4 0.4.1-1.1build3 deb -libxcb-image0 0.4.0-2build1 deb -libxcb-keysyms1 0.4.0-1build4 deb -libxcb-present0 1.15-1ubuntu2 deb -libxcb-randr0 1.15-1ubuntu2 deb -libxcb-render-util0 0.3.9-1build4 deb -libxcb-render0 1.15-1ubuntu2 deb -libxcb-shape0 1.15-1ubuntu2 deb -libxcb-shm0 1.15-1ubuntu2 deb -libxcb-sync1 1.15-1ubuntu2 deb -libxcb-util1 0.4.0-1build3 deb -libxcb-xfixes0 1.15-1ubuntu2 deb -libxcb-xkb1 1.15-1ubuntu2 deb -libxcb1 1.15-1ubuntu2 deb -libxcb1-dev 1.15-1ubuntu2 deb -libxcomposite1 1:0.4.5-1build3 deb -libxcursor1 1:1.2.1-1build1 deb -libxcvt0 0.1.2-1build1 deb -libxdamage1 1:1.1.6-1build1 deb -libxdmcp-dev 1:1.1.3-0ubuntu6 deb -libxdmcp6 1:1.1.3-0ubuntu6 deb -libxdo3 1:3.20160805.1-5build1 deb -libxext-dev 2:1.3.4-1build2 deb -libxext6 2:1.3.4-1build2 deb -libxfce4util-common 4.18.1-2build3 deb -libxfce4util7 4.18.1-2build3 deb -libxfconf-0-3 4.18.1-1build3 deb -libxfixes-dev 1:6.0.0-2build1 deb -libxfixes3 1:6.0.0-2build1 deb -libxfont2 1:2.0.6-1build1 deb -libxft2 2.3.6-1build1 deb -libxi-dev 2:1.8.1-1build1 deb -libxi6 2:1.8.1-1build1 deb -libxinerama1 2:1.1.4-3build1 deb -libxkbcommon-x11-0 1.6.0-1build1 deb -libxkbcommon0 1.6.0-1build1 deb -libxkbfile1 1:1.1.0-1build4 deb -libxml-parser-perl 2.47-1build3 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 -libxpm4 1:3.5.17-1build2 deb -libxrandr2 2:1.5.2-2build1 deb -libxrender1 1:0.9.10-1.1build1 deb -libxshmfence1 1.3-1build5 deb -libxss1 1:1.2.3-1build3 deb -libxt6t64 1:1.2.1-1.2build1 deb -libxtables12 1.8.10-3ubuntu2 deb -libxtst-dev 2:1.2.3-1.1build1 deb -libxtst6 2:1.2.3-1.1build1 deb -libxv1 2:1.0.11-1.1build1 deb -libxvidcore4 2:1.3.7-1build1 deb -libxvmc1 2:1.0.12-2build3 deb -libxxf86dga1 2:1.1.5-1build1 deb -libxxf86vm1 1:1.1.4-1build4 deb -libxxhash0 0.8.2-2build1 deb -libyaml-0-2 0.2.5-1build1 deb -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-64.67 deb -locales 2.39-0ubuntu8.5 deb -locales-all 2.39-0ubuntu8.5 deb -login 1:4.13+dfsg1-4ubuntu3.2 deb -logsave 1.47.0-2.4~exp1ubuntu4.1 deb -lsb-release 12.0-2 deb -m4 1.4.19-4build1 deb -make 4.3-4.1build2 deb -man-db 2.12.0-4build2 deb -mawk 1.3.4.20240123-1build1 deb -media-types 10.1.0 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 -mount 2.39.3-9ubuntu6.3 deb -msgpack 1.1.1 python -multidict 6.6.3 python -ncurses-base 6.4+20240113-1ubuntu2 deb -ncurses-bin 6.4+20240113-1ubuntu2 deb -ncurses-term 6.4+20240113-1ubuntu2 deb -netbase 6.4 deb -netcat-openbsd 1.226-1ubuntu2 deb -nginx 1.24.0-2ubuntu7.4 deb -nginx-common 1.24.0-2ubuntu7.4 deb -oauthlib 3.2.2 python -ocl-icd-libopencl1 2.3.2-1build1 deb -openbox 3.6.1-12build5 deb -openssh-client 1:9.6p1-3ubuntu13.13 deb -openssl 3.0.13-0ubuntu3.5 deb -packagekit 1.2.8-2ubuntu1.2 deb -packaging 24.0 python -pasimple 0.0.3 python -passwd 1:4.13+dfsg1-4ubuntu3.2 deb -patch 2.7.6-7build3 deb -pci.ids 0.0~2024.03.31-1ubuntu0.1 deb -pciutils 1:3.10.0-2build1 deb -pcmflux 1.0.4 python -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 -perl-openssl-defaults 7build3 deb -pillow 11.3.0 python -pinentry-curses 1.2.1-3ubuntu5 deb -pixelflux 1.3.0 python -pkgconf 1.8.1-2build1 deb -pkgconf-bin 1.8.1-2build1 deb -polkitd 124-2ubuntu1.24.04.2 deb -poppler-data 0.4.12-1 deb -procps 2:4.0.4-4ubuntu3.2 deb -prometheus-client 0.22.1 python -propcache 0.3.2 python -psutil 7.0.0 python -publicsuffix 20231001.0357-0.1 deb -pulseaudio 1:16.1+dfsg1-2ubuntu10.1 deb -pulseaudio-utils 1:16.1+dfsg1-2ubuntu10.1 deb -pulsectl 24.12.0 python -pycparser 2.22 python -pyee 13.0.0 python -pygobject 3.48.2 python -pyjwt 2.7.0 python -pylibsrtp 0.12.0 python -pynput 1.8.1 python -pyopenssl 25.1.0 python -pyparsing 3.1.1 python -python-apt 2.7.7+ubuntu4 python -python-apt-common 2.7.7ubuntu4 deb -python-distutils-extra 3.0 python -python-xlib 0.33 python -python3 3.12.3-0ubuntu2 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 -python3-dbus 1.3.2-5build3 deb -python3-distro 1.9.0-1 deb -python3-distutils-extra 3.0 deb -python3-gi 3.48.2-1 deb -python3-httplib2 0.20.4-3 deb -python3-jwt 2.7.0-1 deb -python3-launchpadlib 1.11.0-6 deb -python3-lazr.restfulclient 0.14.6-1 deb -python3-lazr.uri 1.0.6-3 deb -python3-minimal 3.12.3-0ubuntu2 deb -python3-oauthlib 3.2.2-1 deb -python3-packaging 24.0-1 deb -python3-pkg-resources 68.1.2-2ubuntu1.2 deb -python3-pyparsing 3.1.1-1 deb -python3-setuptools 68.1.2-2ubuntu1.2 deb -python3-six 1.16.0-4 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.7 deb -python3.12-minimal 3.12.3-1ubuntu0.7 deb -pyxdg 0.28 python -readline-common 8.2-4build1 deb -resenje.org/singleflight v0.4.3 go-module -rpcsvc-proto 1.4.2-0ubuntu7 deb -sed 4.9-2build1 deb -selkies 0.0.0 python -sensible-utils 0.0.22 deb -session-migration 0.3.9build1 deb -setuptools 68.1.2 python -sgml-base 1.31 deb -shared-mime-info 2.4-4 deb -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd go-module -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 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.2 go-module (+1 duplicate) -sigs.k8s.io/yaml v1.3.0 go-module (+1 duplicate) -sigs.k8s.io/yaml v1.4.0 go-module (+2 duplicates) -six 1.16.0 python -software-properties-common 0.99.49.2 deb -ssl-cert 1.1.2ubuntu1 deb -stdlib go1.23.7 go-module (+5 duplicates) -stdlib go1.24.4 go-module -stdlib go1.24.5 go-module (+3 duplicates) -stterm 0.9-1 deb -sudo 1.9.15p5-3ubuntu5.24.04.1 deb -systemd 255.4-1ubuntu8.10 deb -systemd-dev 255.4-1ubuntu8.10 deb -systemd-sysv 255.4-1ubuntu8.10 deb -sysvinit-utils 3.08-6ubuntu3 deb -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 -typing-extensions 4.14.1 python -tzdata 2025b-0ubuntu0.24.04.1 deb -ubuntu-keyring 2023.11.28.1 deb -ubuntu-mono 24.04-0ubuntu1 deb -ucf 3.0043+nmu1 deb -udev 255.4-1ubuntu8.10 deb -unminimize 0.2.1 deb -util-linux 2.39.3-9ubuntu6.3 deb -uuid-dev 2.39.3-9ubuntu6.3 deb -vulkan-tools 1.3.275.0+dfsg1-1 deb -wadllib 1.3.6 python -watchdog 6.0.0 python -websockets 15.0.1 python -x11-apps 7.7+11build3 deb -x11-common 1:7.7+23ubuntu3 deb -x11-session-utils 7.7+6build2 deb -x11-utils 7.7+6build2 deb -x11-xkb-utils 7.7+8build2 deb -x11-xserver-utils 7.7+10build2 deb -x11proto-dev 2023.2-1 deb -xauth 1:1.1.2-1build1 deb -xbitmaps 1.1.1-2.2 deb -xcvt 0.1.2-1build1 deb -xdg 5 python -xdg-utils 1.1.3-4.1ubuntu3 deb -xdotool 1:3.20160805.1-5build1 deb -xfconf 4.18.1-1build3 deb -xfonts-base 1:1.0.5+nmu1 deb -xfonts-encodings 1:1.0.5-0ubuntu2 deb -xfonts-utils 1:7.7+6build3 deb -xkb-data 2.41-2ubuntu1.1 deb -xml-core 0.19 deb -xorg-sgml-doctools 1:1.11-1.1 deb -xsel 1.2.1-1 deb -xserver-common 2:21.1.12-1ubuntu1.4 deb -xserver-xorg-core 2:21.1.12-1ubuntu1.4 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 -xserver-xorg-video-nouveau 1:1.0.17-2build1 deb -xserver-xorg-video-qxl 0.1.6-1build1 deb -xserver-xorg-video-radeon 1:22.0.0-1build1 deb -xterm 390-1ubuntu3 deb -xtrans-dev 1.4.0-1 deb -xutils 1:7.7+23ubuntu3 deb -xvfb 2:21.1.12-1ubuntu1.4 deb -yarl 1.20.1 python -zlib1g 1:1.3.dfsg-3.1ubuntu2.1 deb -zlib1g-dev 1:1.3.dfsg-3.1ubuntu2.1 deb +NAME VERSION TYPE +1to2 1.0.0 npm +@colors/colors 1.5.0 npm +@gar/promisify 1.1.3 npm +@isaacs/cliui 8.0.2 npm +@isaacs/string-locale-compare 1.1.0 npm +@kasmtech/novnc 1.3.0 npm +@npmcli/arborist 6.2.9 npm +@npmcli/config 6.1.7 npm +@npmcli/disparity-colors 3.0.0 npm +@npmcli/fs 2.1.2 npm +@npmcli/fs 3.1.0 npm +@npmcli/git 4.0.4 npm +@npmcli/installed-package-contents 2.0.2 npm +@npmcli/map-workspaces 3.0.4 npm +@npmcli/metavuln-calculator 5.0.1 npm +@npmcli/move-file 2.0.1 npm +@npmcli/name-from-folder 2.0.0 npm +@npmcli/node-gyp 3.0.0 npm +@npmcli/package-json 3.1.0 npm +@npmcli/promise-spawn 6.0.2 npm +@npmcli/query 3.0.0 npm +@npmcli/run-script 6.0.2 npm +@pkgjs/parseargs 0.11.0 npm +@sigstore/protobuf-specs 0.1.0 npm +@socket.io/component-emitter 3.1.0 npm +@tootallnate/once 2.0.0 npm +@tufjs/canonical-json 1.0.0 npm +@tufjs/models 1.0.4 npm +@types/cookie 0.4.1 npm +@types/cors 2.8.17 npm +@types/node 20.11.5 npm +PyGObject 3.42.1 python +PyJWT 2.3.0 python +SecretStorage 3.3.1 python +abbrev 1.1.1 npm +abbrev 2.0.0 npm +abort-controller 3.0.0 npm +accepts 1.3.8 npm +adduser 3.118ubuntu5 deb +agent-base 6.0.2 npm +agentkeepalive 4.3.0 npm +aggregate-error 3.1.0 npm +ansi-regex 5.0.1 npm +ansi-regex 6.0.1 npm +ansi-styles 4.3.0 npm +ansi-styles 6.2.1 npm +aproba 2.0.0 npm +apt 2.4.11 deb +apt-utils 2.4.11 deb +archy 1.0.0 npm +are-we-there-yet 3.0.1 npm +are-we-there-yet 4.0.0 npm +array-flatten 1.1.1 npm +async 3.2.5 npm +at-spi2-core 2.44.0-3 deb +balanced-match 1.0.2 npm +base-files 12ubuntu4.3 deb +base-passwd 3.5.52build1 deb +base64-js 1.5.1 npm +base64id 2.0.0 npm +bash 5.1-6ubuntu1 deb +bash 5.1.16 binary +bc 1.07.1-3build1 deb +bin-links 4.0.1 npm +binary-extensions 2.2.0 npm +bindings 1.5.0 npm +blinker 1.4 python +body-parser 1.20.1 npm +brace-expansion 1.1.11 npm +brace-expansion 2.0.1 npm +bsdextrautils 2.37.2-4ubuntu3 deb +bsdutils 1:2.37.2-4ubuntu3 deb +buffer 6.0.3 npm +builtins 5.0.1 npm +bytes 3.1.2 npm +bzip2 1.0.8-5build1 deb +ca-certificates 20230311ubuntu0.22.04.1 deb +cacache 16.1.3 npm +cacache 17.1.2 npm +call-bind 1.0.5 npm +chalk 4.1.2 npm +chownr 2.0.0 npm +ci-info 3.8.0 npm +cidr-regex 3.1.1 npm +clean-stack 2.2.0 npm +cli-columns 4.0.0 npm +cli-table3 0.6.3 npm +clone 1.0.4 npm +cloud.google.com/go/compute/metadata v0.2.3 go-module +cloud.google.com/go/logging v1.7.0 go-module +cloud.google.com/go/longrunning v0.5.1 go-module +cmd-shim 6.0.1 npm +code.cloudfoundry.org/clock v1.0.0 go-module +color-convert 2.0.1 npm +color-name 1.1.4 npm +color-support 1.1.3 npm +columnify 1.6.0 npm +common-ancestor-path 1.0.1 npm +concat-map 0.0.1 npm +console-control-strings 1.1.0 npm +containerd.io 1.6.27-1 deb +content-disposition 0.5.4 npm +content-type 1.0.5 npm +cookie 0.4.2 npm +cookie 0.5.0 npm +cookie-signature 1.0.6 npm +corepack 0.18.0 npm +coreutils 8.32-4.1ubuntu1 deb +cors 2.8.5 npm +cpp 4:11.2.0-1ubuntu1 deb +cpp-11 11.4.0-1ubuntu1~22.04 deb +cron 3.0pl1-137ubuntu3 deb +cross-spawn 7.0.3 npm +cryptography 3.4.8 python +cssesc 3.0.0 npm +cups 2.4.1op1-1ubuntu4.7 deb +cups-client 2.4.1op1-1ubuntu4.7 deb +cups-common 2.4.1op1-1ubuntu4.7 deb +cups-core-drivers 2.4.1op1-1ubuntu4.7 deb +cups-daemon 2.4.1op1-1ubuntu4.7 deb +cups-filters 1.28.15-0ubuntu1.2 deb +cups-filters-core-drivers 1.28.15-0ubuntu1.2 deb +cups-ipp-utils 2.4.1op1-1ubuntu4.7 deb +cups-ppdc 2.4.1op1-1ubuntu4.7 deb +cups-server-common 2.4.1op1-1ubuntu4.7 deb +curl 7.81.0-1ubuntu1.15 deb +dario.cat/mergo v1.0.0 go-module +dash 0.5.11+git20210903+057cd650a4ed-3build1 deb +dbus 1.12.20-2ubuntu4.1 deb +dbus-python 1.2.18 python +dbus-x11 1.12.20-2ubuntu4.1 deb +dconf-gsettings-backend 0.40.0-3 deb +dconf-service 0.40.0-3 deb +debconf 1.5.79ubuntu1 deb +debianutils 5.5-1ubuntu2 deb +debug 2.6.9 npm +debug 4.3.4 npm +defaults 1.0.4 npm +define-data-property 1.1.1 npm +delegates 1.0.0 npm +depd 2.0.0 npm +destroy 1.2.0 npm +diff 5.1.0 npm +diffutils 1:3.8-0ubuntu2 deb +dirmngr 2.2.27-3ubuntu2.1 deb +distro 1.7.0 python +distro-info-data 0.52ubuntu0.6 deb +docker-ce 5:25.0.0-1~ubuntu.22.04~jammy deb +docker-ce-cli 5:25.0.0-1~ubuntu.22.04~jammy deb +docker-compose-plugin 2.24.1-1~ubuntu.22.04~jammy deb +dpkg 1.21.1ubuntu2.2 deb +e2fsprogs 1.46.5-2ubuntu1.1 deb +eastasianwidth 0.2.0 npm +ee-first 1.1.1 npm +ejs 3.1.9 npm +emoji-regex 8.0.0 npm +emoji-regex 9.2.2 npm +encodeurl 1.0.2 npm +encoding 0.1.13 npm +engine.io 6.5.4 npm +engine.io-parser 5.2.1 npm +env-paths 2.2.1 npm +err-code 2.0.3 npm +escape-html 1.0.3 npm +etag 1.8.1 npm +event-target-shim 5.0.1 npm +events 3.3.0 npm +express 4.18.2 npm +fastest-levenshtein 1.0.16 npm +ffmpeg 7:4.4.2-0ubuntu0.22.04.1 deb +file 1:5.41-3ubuntu0.1 deb +file-uri-to-path 1.0.0 npm +filelist 1.0.4 npm +finalhandler 1.2.0 npm +findutils 4.8.0-1ubuntu3 deb +fontconfig 2.13.1-4.2ubuntu5 deb +fontconfig-config 2.13.1-4.2ubuntu5 deb +fonts-dejavu-core 2.37-2build1 deb +fonts-urw-base35 20200910-1 deb +foreground-child 3.1.1 npm +forwarded 0.2.0 npm +fresh 0.5.2 npm +fs-minipass 2.1.0 npm +fs-minipass 3.0.2 npm +fs.realpath 1.0.0 npm +function-bind 1.1.1 npm +function-bind 1.1.2 npm +fuse-overlayfs 1.7.1-1 deb +fuse3 3.10.5-1build1 deb +gauge 4.0.4 npm +gauge 5.0.1 npm +gcc-11-base 11.4.0-1ubuntu1~22.04 deb +gcc-12-base 12.3.0-1ubuntu1~22.04 deb +get-intrinsic 1.2.2 npm +ghostscript 9.55.0~dfsg1-0ubuntu5.6 deb +gir1.2-atk-1.0 2.36.0-3build1 deb +gir1.2-atspi-2.0 2.44.0-3 deb +gir1.2-freedesktop 1.72.0-1 deb +gir1.2-glib-2.0 1.72.0-1 deb +gir1.2-packagekitglib-1.0 1.2.5-2ubuntu2 deb +github.com/AlecAivazis/survey/v2 v2.3.7 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.4 go-module +github.com/Microsoft/hcsshim v0.9.10 go-module +github.com/RackSec/srslog v0.0.0-20180709174129-a4725f04ec91 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/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.17.6 go-module +github.com/aws/aws-sdk-go-v2/config v1.18.16 go-module +github.com/aws/aws-sdk-go-v2/credentials v1.13.16 go-module +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.24 go-module +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.30 go-module +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.24 go-module +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.31 go-module +github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.15.17 go-module +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.24 go-module +github.com/aws/aws-sdk-go-v2/service/sso v1.12.5 go-module +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.5 go-module +github.com/aws/aws-sdk-go-v2/service/sts v1.18.6 go-module +github.com/aws/smithy-go v1.13.5 go-module +github.com/beorn7/perks v1.0.1 go-module +github.com/blang/semver v3.5.1+incompatible go-module +github.com/buger/goterm v1.0.4 go-module +github.com/cenkalti/backoff/v4 v4.1.2 go-module +github.com/cenkalti/backoff/v4 v4.2.1 go-module +github.com/cespare/xxhash/v2 v2.2.0 go-module +github.com/checkpoint-restore/go-criu/v5 v5.3.0 go-module +github.com/cilium/ebpf v0.11.0 go-module +github.com/cilium/ebpf v0.7.0 go-module +github.com/cloudflare/cfssl v1.6.4 go-module +github.com/compose-spec/compose-go/v2 v2.0.0-rc.1 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 v1.0.0 go-module +github.com/containerd/cgroups v1.0.4 go-module +github.com/containerd/cgroups/v3 v3.0.3 go-module +github.com/containerd/console v1.0.3 go-module +github.com/containerd/containerd v1.6.27 go-module +github.com/containerd/containerd v1.7.12 go-module +github.com/containerd/continuity v0.3.0 go-module +github.com/containerd/continuity v0.4.2 go-module +github.com/containerd/fifo v1.0.0 go-module +github.com/containerd/fifo v1.1.0 go-module +github.com/containerd/go-cni v1.1.6 go-module +github.com/containerd/go-cni v1.1.9 go-module +github.com/containerd/go-runc v1.0.0 go-module +github.com/containerd/go-runc v1.1.0 go-module +github.com/containerd/imgcrypt v1.1.4 go-module +github.com/containerd/log v0.1.0 go-module +github.com/containerd/nri v0.1.1 go-module +github.com/containerd/nydus-snapshotter v0.8.2 go-module +github.com/containerd/stargz-snapshotter/estargz v0.14.3 go-module +github.com/containerd/ttrpc v1.1.2 go-module +github.com/containerd/ttrpc v1.2.2 go-module +github.com/containerd/typeurl v1.0.2 go-module +github.com/containerd/typeurl/v2 v2.1.1 go-module +github.com/containerd/zfs v1.1.0 go-module +github.com/containernetworking/cni v1.1.1 go-module +github.com/containernetworking/cni v1.1.2 go-module +github.com/containernetworking/plugins v1.1.1 go-module +github.com/containers/ocicrypt v1.1.3 go-module +github.com/coreos/go-systemd/v22 v22.3.2 go-module +github.com/coreos/go-systemd/v22 v22.5.0 go-module +github.com/cpuguy83/go-md2man/v2 v2.0.0 go-module +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d go-module +github.com/cyphar/filepath-securejoin v0.2.4 go-module +github.com/davecgh/go-spew v1.1.1 go-module +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.5.0 go-module +github.com/docker/buildx v0.12.0-rc2.0.20231219140829-617f538cb315 go-module +github.com/docker/cli v25.0.0-rc.3+incompatible go-module +github.com/docker/cli/cmd/docker v25.0.0 go-module +github.com/docker/compose/v2 (devel) go-module +github.com/docker/distribution v2.8.3+incompatible go-module +github.com/docker/docker v25.0.0 go-module +github.com/docker/docker v25.0.0-rc.3+incompatible go-module +github.com/docker/docker-credential-helpers v0.8.0 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 +github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c go-module +github.com/docker/go-metrics v0.0.1 go-module +github.com/docker/go-units v0.4.0 go-module +github.com/docker/go-units v0.5.0 go-module +github.com/docker/libtrust v0.0.0-20150526203908-9cbd2a1374f4 go-module +github.com/dustin/go-humanize v1.0.0 go-module +github.com/emicklei/go-restful v2.16.0+incompatible go-module +github.com/emicklei/go-restful/v3 v3.10.1 go-module +github.com/felixge/httpsnoop v1.0.4 go-module +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.4.9 go-module +github.com/fsnotify/fsnotify v1.6.0 go-module +github.com/fvbommel/sortorder v1.0.2 go-module +github.com/go-logr/logr v1.2.2 go-module +github.com/go-logr/logr v1.2.4 go-module +github.com/go-logr/stdr v1.2.2 go-module +github.com/go-openapi/jsonpointer v0.19.5 go-module +github.com/go-openapi/jsonreference v0.20.0 go-module +github.com/go-openapi/swag v0.19.14 go-module +github.com/godbus/dbus/v5 v5.0.6 go-module +github.com/godbus/dbus/v5 v5.1.0 go-module +github.com/gofrs/flock v0.8.1 go-module +github.com/gogo/googleapis v1.3.2 go-module +github.com/gogo/googleapis v1.4.1 go-module +github.com/gogo/protobuf v1.3.2 go-module +github.com/golang-jwt/jwt/v4 v4.4.2 go-module +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.3 go-module +github.com/google/btree v1.1.2 go-module +github.com/google/certificate-transparency-go v1.1.4 go-module +github.com/google/gnostic v0.5.7-v3refs go-module +github.com/google/go-cmp v0.5.9 go-module +github.com/google/go-cmp v0.6.0 go-module +github.com/google/gofuzz v1.2.0 go-module +github.com/google/s2a-go v0.1.4 go-module +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 go-module +github.com/google/uuid v1.3.0 go-module +github.com/google/uuid v1.3.1 go-module +github.com/google/uuid v1.5.0 go-module +github.com/googleapis/enterprise-certificate-proxy v0.2.3 go-module +github.com/googleapis/gax-go/v2 v2.11.0 go-module +github.com/gorilla/mux v1.8.1 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 +github.com/grpc-ecosystem/grpc-gateway v1.16.0 go-module +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 go-module +github.com/hashicorp/errwrap v1.1.0 go-module +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-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 +github.com/hashicorp/go-sockaddr v1.0.2 go-module +github.com/hashicorp/go-version v1.6.0 go-module +github.com/hashicorp/golang-lru v0.5.4 go-module +github.com/hashicorp/memberlist v0.4.0 go-module +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 +github.com/intel/goresctrl v0.2.0 go-module +github.com/ishidawataru/sctp v0.0.0-20230406120618-7ff4192f6ff2 go-module +github.com/jmoiron/sqlx v1.3.3 go-module +github.com/jonboulle/clockwork v0.4.0 go-module +github.com/josharian/intern v1.0.0 go-module +github.com/json-iterator/go v1.1.12 go-module +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 go-module +github.com/klauspost/compress v1.15.9 go-module +github.com/klauspost/compress v1.17.4 go-module +github.com/mailru/easyjson v0.7.6 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-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 +github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b go-module +github.com/miekg/dns v1.1.43 go-module +github.com/miekg/pkcs11 v1.1.1 go-module +github.com/mistifyio/go-zfs/v3 v3.0.1 go-module +github.com/mitchellh/copystructure v1.2.0 go-module +github.com/mitchellh/hashstructure/v2 v2.0.2 go-module +github.com/mitchellh/mapstructure v1.5.0 go-module +github.com/mitchellh/reflectwalk v1.0.2 go-module +github.com/moby/buildkit v0.12.5-0.20231208203051-3b6880d2a00f go-module +github.com/moby/buildkit v0.13.0-beta1.0.20231219135447-957cb50df991 go-module +github.com/moby/ipvs v1.1.0 go-module +github.com/moby/locker v1.0.1 go-module +github.com/moby/patternmatcher v0.6.0 go-module +github.com/moby/pubsub v1.0.0 go-module +github.com/moby/spdystream v0.2.0 go-module +github.com/moby/swarmkit/v2 v2.0.0-20230911190601-f082dd7a0cee go-module +github.com/moby/sys/mount v0.3.3 go-module +github.com/moby/sys/mountinfo v0.5.0 go-module +github.com/moby/sys/mountinfo v0.6.2 go-module +github.com/moby/sys/mountinfo v0.7.1 go-module +github.com/moby/sys/sequential v0.5.0 go-module +github.com/moby/sys/signal v0.6.0 go-module +github.com/moby/sys/signal v0.7.0 go-module +github.com/moby/sys/symlink v0.2.0 go-module +github.com/moby/sys/user v0.1.0 go-module +github.com/moby/term v0.5.0 go-module +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd go-module +github.com/modern-go/reflect2 v1.0.2 go-module +github.com/morikuni/aec v1.0.0 go-module +github.com/mrunalp/fileutils v0.5.1 go-module +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 go-module +github.com/opencontainers/go-digest v1.0.0 go-module +github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b go-module +github.com/opencontainers/image-spec v1.1.0-rc5 go-module +github.com/opencontainers/runc v0.0.0-20240102023416-4bccb38cc9cf go-module +github.com/opencontainers/runc v1.1.11 go-module +github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 go-module +github.com/opencontainers/runtime-spec v1.1.0 go-module +github.com/opencontainers/runtime-tools v0.9.1-0.20221107090550-2e043c6bd626 go-module +github.com/opencontainers/selinux v1.10.0 go-module +github.com/opencontainers/selinux v1.10.1 go-module +github.com/opencontainers/selinux v1.11.0 go-module +github.com/package-url/packageurl-go v0.1.1-0.20220428063043-89078438f170 go-module +github.com/pelletier/go-toml v1.9.5 go-module +github.com/philhofer/fwd v1.1.2 go-module +github.com/pkg/errors v0.9.1 go-module +github.com/pmezard/go-difflib v1.0.0 go-module +github.com/prometheus/client_golang v1.11.1 go-module +github.com/prometheus/client_golang v1.14.0 go-module +github.com/prometheus/client_golang v1.16.0 go-module +github.com/prometheus/client_model v0.2.0 go-module +github.com/prometheus/client_model v0.3.0 go-module +github.com/prometheus/client_model v0.4.0 go-module +github.com/prometheus/common v0.30.0 go-module +github.com/prometheus/common v0.42.0 go-module +github.com/prometheus/procfs v0.10.1 go-module +github.com/prometheus/procfs v0.7.3 go-module +github.com/prometheus/procfs v0.9.0 go-module +github.com/rivo/uniseg v0.2.0 go-module +github.com/rootless-containers/rootlesskit/v2 v2.0.0 go-module +github.com/russross/blackfriday/v2 v2.0.1 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/secure-systems-lab/go-securesystemslib v0.4.0 go-module +github.com/serialx/hashring v0.0.0-20190422032157-8b2912629002 go-module +github.com/shibumi/go-pathspec v1.3.0 go-module +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 +github.com/spdx/tools-golang v0.5.1 go-module +github.com/spf13/cobra v1.8.0 go-module +github.com/spf13/pflag v1.0.5 go-module +github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980 go-module +github.com/stretchr/testify v1.8.4 go-module +github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 go-module +github.com/tchap/go-patricia v2.2.6+incompatible 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-20230629203738-36ef4d8c0dbb go-module +github.com/tonistiigi/fsutil v0.0.0-20230825212630-f09800878302 go-module +github.com/tonistiigi/go-actions-cache v0.0.0-20220404170428-0bdeb6e1eac7 go-module +github.com/tonistiigi/go-archvariant v1.0.0 go-module +github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea go-module +github.com/tonistiigi/vt100 v0.0.0-20230623042737-f9a4f7ef6531 go-module +github.com/urfave/cli v1.22.1 go-module +github.com/vbatts/tar-split v0.11.5 go-module +github.com/vishvananda/netlink v1.1.0 go-module +github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5 go-module +github.com/vishvananda/netlink v1.2.1-beta.2 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/weppos/publicsuffix-go v0.15.1-0.20210511084619-b1f36a2d6c0b 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/zmap/zcrypto v0.0.0-20210511125630-18f1e0152cfc go-module +github.com/zmap/zlint/v3 v3.1.0 go-module +glib-networking 2.72.0-1 deb +glib-networking-common 2.72.0-1 deb +glib-networking-services 2.72.0-1 deb +glob 10.2.4 npm +glob 7.2.3 npm +glob 8.1.0 npm +gnupg 2.2.27-3ubuntu2.1 deb +gnupg-l10n 2.2.27-3ubuntu2.1 deb +gnupg-utils 2.2.27-3ubuntu2.1 deb +go.etcd.io/bbolt v1.3.7 go-module +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 +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.28.0 go-module +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.45.0 go-module +go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.45.0 go-module +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 go-module +go.opentelemetry.io/otel v1.19.0 go-module +go.opentelemetry.io/otel v1.3.0 go-module +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.3.0 go-module +go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.42.0 go-module +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.42.0 go-module +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.42.0 go-module +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 go-module +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.3.0 go-module +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 go-module +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.3.0 go-module +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 go-module +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.3.0 go-module +go.opentelemetry.io/otel/exporters/prometheus v0.42.0 go-module +go.opentelemetry.io/otel/metric v1.19.0 go-module +go.opentelemetry.io/otel/sdk v1.19.0 go-module +go.opentelemetry.io/otel/sdk v1.3.0 go-module +go.opentelemetry.io/otel/sdk/metric v1.19.0 go-module +go.opentelemetry.io/otel/trace v1.19.0 go-module +go.opentelemetry.io/otel/trace v1.3.0 go-module +go.opentelemetry.io/proto/otlp v0.11.0 go-module +go.opentelemetry.io/proto/otlp v1.0.0 go-module +go.uber.org/atomic v1.9.0 go-module +go.uber.org/mock v0.4.0 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.14.0 go-module +golang.org/x/crypto v0.17.0 go-module +golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2 go-module +golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 go-module +golang.org/x/mod v0.11.0 go-module +golang.org/x/net v0.17.0 go-module +golang.org/x/net v0.8.0 go-module +golang.org/x/oauth2 v0.10.0 go-module +golang.org/x/oauth2 v0.11.0 go-module +golang.org/x/sync v0.3.0 go-module +golang.org/x/sync v0.6.0 go-module +golang.org/x/sys v0.13.0 go-module +golang.org/x/sys v0.16.0 go-module +golang.org/x/sys v0.6.0 go-module +golang.org/x/term v0.13.0 go-module +golang.org/x/term v0.15.0 go-module +golang.org/x/text v0.13.0 go-module +golang.org/x/text v0.14.0 go-module +golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac go-module +golang.org/x/time v0.3.0 go-module +google.golang.org/api v0.126.0 go-module +google.golang.org/appengine v1.6.7 go-module +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63 go-module +google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 go-module +google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d go-module +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 go-module +google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d go-module +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 go-module +google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d go-module +google.golang.org/grpc v1.58.3 go-module +google.golang.org/grpc v1.59.0 go-module +google.golang.org/protobuf v1.27.1 go-module +google.golang.org/protobuf v1.31.0 go-module +gopd 1.0.1 npm +gopkg.in/inf.v0 v0.9.1 go-module +gopkg.in/square/go-jose.v2 v2.5.1 go-module +gopkg.in/yaml.v2 v2.4.0 go-module +gopkg.in/yaml.v3 v3.0.1 go-module +gpg 2.2.27-3ubuntu2.1 deb +gpg-agent 2.2.27-3ubuntu2.1 deb +gpg-wks-client 2.2.27-3ubuntu2.1 deb +gpg-wks-server 2.2.27-3ubuntu2.1 deb +gpgconf 2.2.27-3ubuntu2.1 deb +gpgsm 2.2.27-3ubuntu2.1 deb +gpgv 2.2.27-3ubuntu2.1 deb +graceful-fs 4.2.11 npm +grep 3.7-1build1 deb +groff-base 1.22.4-8build1 deb +gsettings-desktop-schemas 42.0-1ubuntu1 deb +gzip 1.10-4ubuntu4.1 deb +has 1.0.3 npm +has-flag 4.0.0 npm +has-property-descriptors 1.0.1 npm +has-proto 1.0.1 npm +has-symbols 1.0.3 npm +has-unicode 2.0.1 npm +hasown 2.0.0 npm +hosted-git-info 6.1.1 npm +hostname 3.23ubuntu2 deb +http-cache-semantics 4.1.1 npm +http-errors 2.0.0 npm +http-proxy-agent 5.0.0 npm +httplib2 0.20.2 python +https-proxy-agent 5.0.1 npm +humanize-ms 1.2.1 npm +iconv-lite 0.4.24 npm +iconv-lite 0.6.3 npm +ieee754 1.2.1 npm +ignore-walk 6.0.3 npm +importlib-metadata 4.6.4 python +imurmurhash 0.1.4 npm +indent-string 4.0.0 npm +infer-owner 1.0.4 npm +inflight 1.0.6 npm +inherits 2.0.4 npm +ini 4.1.0 npm +init-package-json 5.0.0 npm +init-system-helpers 1.62 deb +intel-media-va-driver 22.3.1+dfsg1-1ubuntu2 deb +ip 2.0.0 npm +ip-regex 4.3.0 npm +ipaddr.js 1.9.1 npm +iproute2 5.15.0-1ubuntu2 deb +iptables 1.8.7-1ubuntu5.1 deb +is-cidr 4.0.2 npm +is-core-module 2.12.0 npm +is-fullwidth-code-point 3.0.0 npm +is-lambda 1.0.1 npm +isexe 2.0.0 npm +iso-codes 4.9.0-1 deb +jackspeak 2.2.0 npm +jake 10.8.7 npm +jeepney 0.7.1 python +jq 1.6-2.1ubuntu3 deb +json-parse-even-better-errors 3.0.0 npm +json-stringify-nice 1.1.4 npm +jsonparse 1.3.1 npm +just-diff 6.0.2 npm +just-diff-apply 5.5.0 npm +k8s.io/api v0.22.5 go-module +k8s.io/api v0.26.7 go-module +k8s.io/apimachinery v0.22.5 go-module +k8s.io/apimachinery v0.26.7 go-module +k8s.io/apiserver v0.22.5 go-module +k8s.io/apiserver v0.26.7 go-module +k8s.io/client-go v0.22.5 go-module +k8s.io/client-go v0.26.7 go-module +k8s.io/component-base v0.22.5 go-module +k8s.io/cri-api v0.25.0 go-module +k8s.io/klog/v2 v2.30.0 go-module +k8s.io/klog/v2 v2.90.1 go-module +k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 go-module +k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b go-module +k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 go-module +kclient 0.3.7 npm +keyboard-configuration 1.205ubuntu3 deb +keyring 23.5.0 python +launchpadlib 1.10.16 python +lazr.restfulclient 0.14.4 python +lazr.uri 1.0.6 python +libacl1 2.3.1-1 deb +libalgorithm-c3-perl 0.11-1 deb +libaom3 3.3.0-1 deb +libapparmor1 3.0.4-2ubuntu2.3 deb +libappstream4 0.15.2-2 deb +libapt-pkg6.0 2.4.11 deb +libargon2-1 0~20171227-0.3 deb +libasound2 1.2.6.1-1ubuntu1 deb +libasound2-data 1.2.6.1-1ubuntu1 deb +libasound2-plugins 1.2.6-1 deb +libass9 1:0.15.2-1 deb +libassuan0 2.5.5-1build1 deb +libasyncns0 0.8-6build2 deb +libatk-bridge2.0-0 2.38.0-3 deb +libatk-bridge2.0-dev 2.38.0-3 deb +libatk1.0-0 2.36.0-3build1 deb +libatk1.0-data 2.36.0-3build1 deb +libatk1.0-dev 2.36.0-3build1 deb +libatk1.0-doc 2.36.0-3build1 deb +libatspi2.0-0 2.44.0-3 deb +libatspi2.0-dev 2.44.0-3 deb +libattr1 1:2.5.1-1build1 deb +libaudit-common 1:3.0.7-1build1 deb +libaudit1 1:3.0.7-1build1 deb +libavahi-client3 0.8-5ubuntu5.2 deb +libavahi-common-data 0.8-5ubuntu5.2 deb +libavahi-common3 0.8-5ubuntu5.2 deb +libavc1394-0 0.5.4-5build2 deb +libavcodec58 7:4.4.2-0ubuntu0.22.04.1 deb +libavdevice58 7:4.4.2-0ubuntu0.22.04.1 deb +libavfilter7 7:4.4.2-0ubuntu0.22.04.1 deb +libavformat58 7:4.4.2-0ubuntu0.22.04.1 deb +libavutil56 7:4.4.2-0ubuntu0.22.04.1 deb +libb-hooks-endofscope-perl 0.25-1 deb +libb-hooks-op-check-perl 0.22-1build5 deb +libblas3 3.10.0-2ubuntu1 deb +libblkid-dev 2.37.2-4ubuntu3 deb +libblkid1 2.37.2-4ubuntu3 deb +libbluray2 1:1.3.1-1 deb +libbpf0 1:0.5.0-1ubuntu22.04.1 deb +libbrotli1 1.0.9-2build6 deb +libbs2b0 3.1.0+dfsg-2.2build1 deb +libbsd0 0.11.5-1 deb +libbz2-1.0 1.0.8-5build1 deb +libc-bin 2.35-0ubuntu3.1 deb +libc-dev-bin 2.35-0ubuntu3.6 deb +libc-devtools 2.35-0ubuntu3.6 deb +libc6 2.35-0ubuntu3.6 deb +libc6-dev 2.35-0ubuntu3.6 deb +libcaca0 0.99.beta19-2.2ubuntu4 deb +libcairo-gobject2 1.16.0-5ubuntu2 deb +libcairo2 1.16.0-5ubuntu2 deb +libcap-ng0 0.7.9-2.2build3 deb +libcap2 1:2.44-1ubuntu0.22.04.1 deb +libcap2-bin 1:2.44-1ubuntu0.22.04.1 deb +libcbor0.8 0.8.0-2ubuntu1 deb +libcdio-cdda2 10.2+2.0.0-1build3 deb +libcdio-paranoia2 10.2+2.0.0-1build3 deb +libcdio19 2.1.0-3build1 deb +libchromaprint1 1.5.1-2 deb +libclass-c3-perl 0.35-1 deb +libclass-data-inheritable-perl 0.08-3 deb +libclass-inspector-perl 1.36-1 deb +libclass-method-modifiers-perl 2.13-1 deb +libclass-singleton-perl 1.6-1 deb +libcodec2-1.0 1.0.1-3 deb +libcom-err2 1.46.5-2ubuntu1.1 deb +libcrypt-dev 1:4.4.27-1 deb +libcrypt1 1:4.4.27-1 deb +libcryptsetup12 2:2.4.3-1ubuntu1.2 deb +libcups2 2.4.1op1-1ubuntu4.7 deb +libcupsfilters1 1.28.15-0ubuntu1.2 deb +libcurl3-gnutls 7.81.0-1ubuntu1.15 deb +libcurl4 7.81.0-1ubuntu1.15 deb +libdata-optlist-perl 0.112-1 deb +libdatetime-locale-perl 1:1.33-1 deb +libdatetime-perl 2:1.55-1build1 deb +libdatetime-timezone-perl 1:2.51-1+2021e deb +libdatrie1 0.2.13-2 deb +libdav1d5 0.9.2-1 deb +libdb5.3 5.3.28+dfsg1-0.8ubuntu3 deb +libdbus-1-3 1.12.20-2ubuntu4.1 deb +libdbus-1-dev 1.12.20-2ubuntu4.1 deb +libdc1394-25 2.2.6-4 deb +libdconf1 0.40.0-3 deb +libdebconfclient0 0.261ubuntu1 deb +libdecor-0-0 0.1.0-3build1 deb +libdeflate0 1.10-2 deb +libdevel-callchecker-perl 0.008-1ubuntu4 deb +libdevel-stacktrace-perl 2.0400-1 deb +libdevmapper1.02.1 2:1.02.175-2.1ubuntu4 deb +libdpkg-perl 1.21.1ubuntu2.2 deb +libdrm-amdgpu1 2.4.113-2~ubuntu0.22.04.1 deb +libdrm-common 2.4.113-2~ubuntu0.22.04.1 deb +libdrm-intel1 2.4.113-2~ubuntu0.22.04.1 deb +libdrm-nouveau2 2.4.113-2~ubuntu0.22.04.1 deb +libdrm-radeon1 2.4.113-2~ubuntu0.22.04.1 deb +libdrm2 2.4.113-2~ubuntu0.22.04.1 deb +libdw1 0.186-1build1 deb +libdynaloader-functions-perl 0.003-1.1 deb +libedit2 3.1-20210910-1build1 deb +libegl-mesa0 23.0.4-0ubuntu1~22.04.1 deb +libegl1 1.4.0-1 deb +libelf1 0.186-1build1 deb +libepoxy0 1.5.10-1 deb +libeval-closure-perl 0.14-1 deb +libexception-class-perl 1.45-1 deb +libexpat1 2.4.7-1ubuntu0.2 deb +libexporter-tiny-perl 1.002002-1 deb +libext2fs2 1.46.5-2ubuntu1.1 deb +libffi-dev 3.4.2-4 deb +libffi8 3.4.2-4 deb +libfftw3-single3 3.3.8-2ubuntu8 deb +libfido2-1 1.10.0-1 deb +libfile-fcntllock-perl 0.22-3build7 deb +libfile-sharedir-perl 1.118-1 deb +libflac8 1.3.3-2ubuntu0.2 deb +libflite1 2.2-3 deb +libfontconfig1 2.13.1-4.2ubuntu5 deb +libfontembed1 1.28.15-0ubuntu1.2 deb +libfontenc1 1:1.1.4-1build3 deb +libfreetype6 2.11.1+dfsg-1ubuntu0.2 deb +libfribidi0 1.0.8-2ubuntu3.1 deb +libfuse3-3 3.10.5-1build1 deb +libgbm1 23.0.4-0ubuntu1~22.04.1 deb +libgcc-s1 12.3.0-1ubuntu1~22.04 deb +libgcrypt20 1.9.4-3ubuntu3 deb +libgd3 2.3.0-2ubuntu2 deb +libgdbm-compat4 1.23-1 deb +libgdbm6 1.23-1 deb +libgdk-pixbuf-2.0-0 2.42.8+dfsg-1ubuntu0.2 deb +libgdk-pixbuf2.0-common 2.42.8+dfsg-1ubuntu0.2 deb +libgfortran5 12.3.0-1ubuntu1~22.04 deb +libgif7 5.1.9-2build2 deb +libgirepository-1.0-1 1.72.0-1 deb +libgl1 1.4.0-1 deb +libgl1-mesa-dri 23.0.4-0ubuntu1~22.04.1 deb +libglapi-mesa 23.0.4-0ubuntu1~22.04.1 deb +libglib2.0-0 2.72.4-0ubuntu2.2 deb +libglib2.0-bin 2.72.4-0ubuntu2.2 deb +libglib2.0-data 2.72.4-0ubuntu2.2 deb +libglib2.0-dev 2.72.4-0ubuntu2.2 deb +libglib2.0-dev-bin 2.72.4-0ubuntu2.2 deb +libglu1-mesa 9.0.2-1 deb +libglvnd0 1.4.0-1 deb +libglx-mesa0 23.0.4-0ubuntu1~22.04.1 deb +libglx0 1.4.0-1 deb +libgme0 0.6.3-2 deb +libgmp10 2:6.2.1+dfsg-3ubuntu1 deb +libgnutls30 3.7.3-4ubuntu1.3 deb +libgomp1 12.3.0-1ubuntu1~22.04 deb +libgpg-error0 1.43-3 deb +libgraphite2-3 1.3.14-1build2 deb +libgs9 9.55.0~dfsg1-0ubuntu5.6 deb +libgs9-common 9.55.0~dfsg1-0ubuntu5.6 deb +libgsm1 1.0.19-1 deb +libgssapi-krb5-2 1.19.2-2ubuntu0.2 deb +libgstreamer-plugins-base1.0-0 1.20.1-1ubuntu0.1 deb +libgstreamer1.0-0 1.20.3-0ubuntu1 deb +libharfbuzz0b 2.7.4-1ubuntu3.1 deb +libhash-merge-simple-perl 0.051-2.1 deb +libhogweed6 3.7.3-1build2 deb +libice6 2:1.0.10-1build2 deb +libicu70 70.1-2 deb +libid3tag0 0.15.1b-14 deb +libidn12 1.38-4ubuntu1 deb +libidn2-0 2.3.2-2build1 deb +libiec61883-0 1.2.0-4build3 deb +libigdgmm12 22.1.2+ds1-1 deb +libijs-0.35 0.35-15build2 deb +libimlib2 1.7.4-1build1 deb +libip4tc2 1.8.7-1ubuntu5.1 deb +libip6tc2 1.8.7-1ubuntu5.1 deb +libisl23 0.24-2build1 deb +libjack-jackd2-0 1.9.20~dfsg-1 deb +libjbig0 2.1-3.1ubuntu0.22.04.1 deb +libjbig2dec0 0.19-3build2 deb +libjpeg-turbo8 2.1.2-0ubuntu1 deb +libjpeg8 8c-2ubuntu10 deb +libjq1 1.6-2.1ubuntu3 deb +libjson-c5 0.15-3~ubuntu1.22.04.2 deb +libjson-glib-1.0-0 1.6.6-1build1 deb +libjson-glib-1.0-common 1.6.6-1build1 deb +libk5crypto3 1.19.2-2ubuntu0.2 deb +libkeyutils1 1.6.1-2ubuntu3 deb +libkmod2 29-1ubuntu1 deb +libkrb5-3 1.19.2-2ubuntu0.2 deb +libkrb5support0 1.19.2-2ubuntu0.2 deb +libksba8 1.6.0-2ubuntu0.2 deb +liblapack3 3.10.0-2ubuntu1 deb +liblcms2-2 2.12~rc1-2build2 deb +libldap-2.5-0 2.5.16+dfsg-0ubuntu0.22.04.1 deb +libldap-common 2.5.16+dfsg-0ubuntu0.22.04.1 deb +liblilv-0-0 0.24.12-2 deb +liblist-moreutils-perl 0.430-2 deb +liblist-moreutils-xs-perl 0.430-2build2 deb +libllvm15 1:15.0.7-0ubuntu0.22.04.3 deb +liblocale-gettext-perl 1.07-4build3 deb +libltdl7 2.4.6-15build2 deb +liblz4-1 1.9.3-2build2 deb +liblzma5 5.2.5-2ubuntu1 deb +libmagic-mgc 1:5.41-3ubuntu0.1 deb +libmagic1 1:5.41-3ubuntu0.1 deb +libmaxminddb0 1.5.2-1build2 deb +libmd0 1.0.4-1build1 deb +libmfx1 22.3.0-1 deb +libmnl0 1.0.4-3build2 deb +libmodule-implementation-perl 0.09-1.1 deb +libmodule-runtime-perl 0.016-1 deb +libmount-dev 2.37.2-4ubuntu3 deb +libmount1 2.37.2-4ubuntu3 deb +libmp3lame0 3.100-3build2 deb +libmpc3 1.2.1-2build1 deb +libmpdec3 2.5.1-2build2 deb +libmpfr6 4.1.0-3build3 deb +libmpg123-0 1.29.3-1build1 deb +libmro-compat-perl 0.15-1 deb +libmysofa1 1.2.1~dfsg0-1 deb +libnamespace-autoclean-perl 0.29-1 deb +libnamespace-clean-perl 0.27-1 deb +libncurses6 6.3-2ubuntu0.1 deb +libncursesw6 6.3-2ubuntu0.1 deb +libnetfilter-conntrack3 1.0.9-1 deb +libnettle8 3.7.3-1build2 deb +libnfnetlink0 1.0.1-3build3 deb +libnftnl11 1.2.1-1build1 deb +libnghttp2-14 1.43.0-1ubuntu0.1 deb +libnginx-mod-http-geoip2 1.18.0-6ubuntu14.4 deb +libnginx-mod-http-image-filter 1.18.0-6ubuntu14.4 deb +libnginx-mod-http-xslt-filter 1.18.0-6ubuntu14.4 deb +libnginx-mod-mail 1.18.0-6ubuntu14.4 deb +libnginx-mod-stream 1.18.0-6ubuntu14.4 deb +libnginx-mod-stream-geoip2 1.18.0-6ubuntu14.4 deb +libnorm1 1.5.9+dfsg-2 deb +libnpmaccess 7.0.2 npm +libnpmdiff 5.0.17 npm +libnpmexec 5.0.17 npm +libnpmfund 4.0.17 npm +libnpmhook 9.0.3 npm +libnpmorg 5.0.4 npm +libnpmpack 5.0.17 npm +libnpmpublish 7.2.0 npm +libnpmsearch 6.0.2 npm +libnpmteam 5.0.3 npm +libnpmversion 4.0.2 npm +libnpth0 1.6-3build2 deb +libnsl-dev 1.3.0-2build2 deb +libnsl2 1.3.0-2build2 deb +libnspr4 2:4.32-3build1 deb +libnss3 2:3.68.2-0ubuntu1.2 deb +libnuma1 2.0.14-3ubuntu2 deb +libobrender32v5 3.6.1-10 deb +libobt2v5 3.6.1-10 deb +libogg0 1.3.5-0ubuntu3 deb +libonig5 6.9.7.1-2build1 deb +libopenal-data 1:1.19.1-2build3 deb +libopenal1 1:1.19.1-2build3 deb +libopengl0 1.4.0-1 deb +libopenjp2-7 2.4.0-6 deb +libopenmpt0 0.6.1-1 deb +libopus0 1.3.1-0.1build2 deb +liborc-0.4-0 1:0.4.32-2 deb +libp11-kit0 0.24.0-6build1 deb +libpackage-stash-perl 0.39-1 deb +libpackagekit-glib2-18 1.2.5-2ubuntu2 deb +libpam-modules 1.4.0-11ubuntu2.3 deb +libpam-modules-bin 1.4.0-11ubuntu2.3 deb +libpam-runtime 1.4.0-11ubuntu2.3 deb +libpam-systemd 249.11-0ubuntu3.11 deb +libpam0g 1.4.0-11ubuntu2.4 deb +libpango-1.0-0 1.50.6+ds-2ubuntu1 deb +libpangocairo-1.0-0 1.50.6+ds-2ubuntu1 deb +libpangoft2-1.0-0 1.50.6+ds-2ubuntu1 deb +libpangoxft-1.0-0 1.50.6+ds-2ubuntu1 deb +libpaper-utils 1.1.28build2 deb +libpaper1 1.1.28build2 deb +libparams-classify-perl 0.015-1build5 deb +libparams-util-perl 1.102-1build3 deb +libparams-validationcompiler-perl 0.30-1 deb +libpci3 1:3.7.0-6 deb +libpciaccess0 0.16-3 deb +libpcre16-3 2:8.39-13ubuntu0.22.04.1 deb +libpcre2-16-0 10.39-3ubuntu0.1 deb +libpcre2-32-0 10.39-3ubuntu0.1 deb +libpcre2-8-0 10.39-3ubuntu0.1 deb +libpcre2-dev 10.39-3ubuntu0.1 deb +libpcre2-posix3 10.39-3ubuntu0.1 deb +libpcre3 2:8.39-13ubuntu0.22.04.1 deb +libpcre3-dev 2:8.39-13ubuntu0.22.04.1 deb +libpcre32-3 2:8.39-13ubuntu0.22.04.1 deb +libpcrecpp0v5 2:8.39-13ubuntu0.22.04.1 deb +libperl5.34 5.34.0-3ubuntu1.3 deb +libpgm-5.3-0 5.3.128~dfsg-2 deb +libpipeline1 1.5.5-1 deb +libpixman-1-0 0.40.0-1ubuntu0.22.04.1 deb +libpng16-16 1.6.37-3build5 deb +libpocketsphinx3 0.8.0+real5prealpha+1-14ubuntu1 deb +libpolkit-agent-1-0 0.105-33 deb +libpolkit-gobject-1-0 0.105-33 deb +libpoppler-cpp0v5 22.02.0-2ubuntu0.3 deb +libpoppler118 22.02.0-2ubuntu0.3 deb +libportaudio2 19.6.0-1.1 deb +libpostproc55 7:4.4.2-0ubuntu0.22.04.1 deb +libprocps8 2:3.3.17-6ubuntu2 deb +libproxy1v5 0.4.17-2 deb +libpsl5 0.21.0-1.2build2 deb +libpthread-stubs0-dev 0.4-1build2 deb +libpulse0 1:15.99.1+dfsg1-1ubuntu2.1 deb +libpulsedsp 1:15.99.1+dfsg1-1ubuntu2.1 deb +libpython3-stdlib 3.10.6-1~22.04 deb +libpython3.10-minimal 3.10.12-1~22.04.3 deb +libpython3.10-stdlib 3.10.12-1~22.04.3 deb +libqpdf28 10.6.3-1 deb +libquadmath0 12.3.0-1ubuntu1~22.04 deb +librabbitmq4 0.10.0-1ubuntu2 deb +libraw1394-11 2.1.2-2build2 deb +libreadline8 8.1.2-1 deb +librole-tiny-perl 2.002004-1 deb +librsvg2-2 2.52.5+dfsg-3ubuntu0.2 deb +librtmp1 2.4+20151223.gitfa8646d.1-2build4 deb +librubberband2 2.0.0-2 deb +libsamplerate0 0.2.2-1build1 deb +libsasl2-2 2.1.27+dfsg2-3ubuntu1.2 deb +libsasl2-modules 2.1.27+dfsg2-3ubuntu1.2 deb +libsasl2-modules-db 2.1.27+dfsg2-3ubuntu1.2 deb +libscalar-list-utils-perl 1:1.61-1 deb +libsdl2-2.0-0 2.0.20+dfsg-2ubuntu1.22.04.1 deb +libseccomp2 2.5.3-2ubuntu2 deb +libselinux1 3.3-1build2 deb +libselinux1-dev 3.3-1build2 deb +libsemanage-common 3.3-1build2 deb +libsemanage2 3.3-1build2 deb +libsensors-config 1:3.6.0-7ubuntu1 deb +libsensors5 1:3.6.0-7ubuntu1 deb +libsepol-dev 3.3-1build1 deb +libsepol2 3.3-1build1 deb +libserd-0-0 0.30.10-2 deb +libshine3 3.1.1-2 deb +libslang2 2.3.2-5build4 deb +libsm6 2:1.2.3-1build2 deb +libsmartcols1 2.37.2-4ubuntu3 deb +libsnapd-glib1 1.60-0ubuntu1 deb +libsnappy1v5 1.1.8-1build3 deb +libsndfile1 1.0.31-2ubuntu0.1 deb +libsndio7.0 1.8.1-1.1 deb +libsodium23 1.0.18-1build2 deb +libsord-0-0 0.16.8-2 deb +libsoup2.4-1 2.74.2-3 deb +libsoup2.4-common 2.74.2-3 deb +libsoxr0 0.1.3-4build2 deb +libspecio-perl 0.47-1 deb +libspeex1 1.2~rc1.2-1.1ubuntu3 deb +libspeexdsp1 1.2~rc1.2-1.1ubuntu3 deb +libsphinxbase3 0.8+5prealpha+1-13build1 deb +libsqlite3-0 3.37.2-2ubuntu0.3 deb +libsratom-0-0 0.6.8-1 deb +libsrt1.4-gnutls 1.4.4-4 deb +libss2 1.46.5-2ubuntu1.1 deb +libssh-4 0.9.6-2ubuntu0.22.04.2 deb +libssh-gcrypt-4 0.9.6-2ubuntu0.22.04.2 deb +libssl3 3.0.2-0ubuntu1.10 deb +libstartup-notification0 0.12-6build2 deb +libstdc++6 12.3.0-1ubuntu1~22.04 deb +libstemmer0d 2.2.0-1build1 deb +libsub-exporter-perl 0.988-1 deb +libsub-exporter-progressive-perl 0.001013-1 deb +libsub-identify-perl 0.14-1build5 deb +libsub-install-perl 0.928-1.1 deb +libsub-name-perl 0.26-1build3 deb +libsub-quote-perl 2.006006-1 deb +libswitch-perl 2.17-2.1 deb +libswresample3 7:4.4.2-0ubuntu0.22.04.1 deb +libswscale5 7:4.4.2-0ubuntu0.22.04.1 deb +libsystemd0 249.11-0ubuntu3.11 deb +libtasn1-6 4.18.0-4build1 deb +libtdb1 1.4.5-2build1 deb +libthai-data 0.1.29-1build1 deb +libthai0 0.1.29-1build1 deb +libtheora0 1.1.1+dfsg.1-15ubuntu4 deb +libtiff5 4.3.0-6ubuntu0.7 deb +libtinfo6 6.3-2ubuntu0.1 deb +libtirpc-common 1.3.2-2ubuntu0.1 deb +libtirpc-dev 1.3.2-2ubuntu0.1 deb +libtirpc3 1.3.2-2ubuntu0.1 deb +libtry-tiny-perl 0.31-1 deb +libtwolame0 0.4.0-2build2 deb +libuchardet0 0.0.7-1build2 deb +libudev1 249.11-0ubuntu3.11 deb +libudfread0 1.1.2-1 deb +libunistring2 1.0-1 deb +libunwind8 1.3.2-2build2.1 deb +libusb-1.0-0 2:1.0.25-1ubuntu2 deb +libutempter0 1.2.1-2build2 deb +libuuid1 2.37.2-4ubuntu3 deb +libva-drm2 2.14.0-1 deb +libva-x11-2 2.14.0-1 deb +libva2 2.14.0-1 deb +libvariable-magic-perl 0.62-1build5 deb +libvdpau1 1.4-3build2 deb +libvidstab1.1 1.1.0-2 deb +libvorbis0a 1.3.7-1build2 deb +libvorbisenc2 1.3.7-1build2 deb +libvorbisfile3 1.3.7-1build2 deb +libvpx7 1.11.0-2ubuntu2.2 deb +libwayland-client0 1.20.0-1ubuntu0.1 deb +libwayland-cursor0 1.20.0-1ubuntu0.1 deb +libwayland-egl1 1.20.0-1ubuntu0.1 deb +libwayland-server0 1.20.0-1ubuntu0.1 deb +libwebp7 1.2.2-2ubuntu0.22.04.2 deb +libwebpmux3 1.2.2-2ubuntu0.22.04.2 deb +libwebrtc-audio-processing1 0.3.1-0ubuntu5 deb +libwrap0 7.6.q-31build2 deb +libx11-6 2:1.7.5-1ubuntu0.3 deb +libx11-data 2:1.7.5-1ubuntu0.3 deb +libx11-dev 2:1.7.5-1ubuntu0.3 deb +libx11-xcb1 2:1.7.5-1ubuntu0.3 deb +libx264-163 2:0.163.3060+git5db6aa6-2build1 deb +libx265-199 3.5-2 deb +libxau-dev 1:1.0.9-1build5 deb +libxau6 1:1.0.9-1build5 deb +libxaw7 2:1.0.14-1 deb +libxcb-dri2-0 1.14-3ubuntu3 deb +libxcb-dri3-0 1.14-3ubuntu3 deb +libxcb-glx0 1.14-3ubuntu3 deb +libxcb-present0 1.14-3ubuntu3 deb +libxcb-randr0 1.14-3ubuntu3 deb +libxcb-render0 1.14-3ubuntu3 deb +libxcb-shape0 1.14-3ubuntu3 deb +libxcb-shm0 1.14-3ubuntu3 deb +libxcb-sync1 1.14-3ubuntu3 deb +libxcb-util1 0.4.0-1build2 deb +libxcb-xfixes0 1.14-3ubuntu3 deb +libxcb1 1.14-3ubuntu3 deb +libxcb1-dev 1.14-3ubuntu3 deb +libxcomposite1 1:0.4.5-1build2 deb +libxcursor1 1:1.2.0-2build4 deb +libxcvt0 0.1.1-3 deb +libxdamage1 1:1.1.5-2build2 deb +libxdmcp-dev 1:1.1.3-0ubuntu5 deb +libxdmcp6 1:1.1.3-0ubuntu5 deb +libxext-dev 2:1.3.4-1build1 deb +libxext6 2:1.3.4-1build1 deb +libxfixes-dev 1:6.0.0-1 deb +libxfixes3 1:6.0.0-1 deb +libxfont2 1:2.0.5-1build1 deb +libxft2 2.3.4-1 deb +libxi-dev 2:1.8-1build1 deb +libxi6 2:1.8-1build1 deb +libxinerama1 2:1.1.4-3 deb +libxkbcommon0 1.4.0-1 deb +libxkbfile1 1:1.1.0-1build3 deb +libxml2 2.9.13+dfsg-1ubuntu0.3 deb +libxmlb2 0.3.6-2build1 deb +libxmu6 2:1.1.3-3 deb +libxmuu1 2:1.1.3-3 deb +libxpm4 1:3.5.12-1ubuntu0.22.04.2 deb +libxrandr2 2:1.5.2-1build1 deb +libxrender1 1:0.9.10-1build4 deb +libxshmfence1 1.3-1build4 deb +libxslt1.1 1.1.34-4ubuntu0.22.04.1 deb +libxss1 1:1.2.3-1build2 deb +libxstring-perl 0.005-1build2 deb +libxt6 1:1.2.1-1 deb +libxtables12 1.8.7-1ubuntu5.1 deb +libxtst-dev 2:1.2.3-1build4 deb +libxtst6 2:1.2.3-1build4 deb +libxv1 2:1.0.11-1build2 deb +libxvidcore4 2:1.3.7-1 deb +libxvmc1 2:1.0.12-2build2 deb +libxxf86dga1 2:1.1.5-0ubuntu3 deb +libxxf86vm1 1:1.1.4-1build3 deb +libxxhash0 0.8.1-1 deb +libyaml-0-2 0.2.2-1build2 deb +libyaml-tiny-perl 1.73-1 deb +libzimg2 3.0.3+ds1-1 deb +libzmq5 4.3.4-2 deb +libzstd1 1.4.8+dfsg-3build1 deb +libzvbi-common 0.2.35-19 deb +libzvbi0 0.2.35-19 deb +linux-libc-dev 5.15.0-91.101 deb +locales 2.35-0ubuntu3.6 deb +login 1:4.8.1-2ubuntu2.1 deb +logsave 1.46.5-2ubuntu1.1 deb +lru-cache 6.0.0 npm +lru-cache 7.18.3 npm +lru-cache 9.1.1 npm +lsb-base 11.1.0ubuntu4 deb +lsb-release 11.1.0ubuntu4 deb +make-fetch-happen 10.2.1 npm +make-fetch-happen 11.1.1 npm +man-db 2.10.2-1 deb +manpages 5.10-1ubuntu1 deb +manpages-dev 5.10-1ubuntu1 deb +mawk 1.3.4.20200120-3 deb +media-typer 0.3.0 npm +media-types 7.0.0 deb +merge-descriptors 1.0.1 npm +mesa-va-drivers 23.0.4-0ubuntu1~22.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 +minimatch 9.0.0 npm +minipass 3.3.6 npm +minipass 5.0.0 npm +minipass-collect 1.0.2 npm +minipass-fetch 2.1.2 npm +minipass-fetch 3.0.3 npm +minipass-flush 1.0.5 npm +minipass-json-stream 1.0.1 npm +minipass-pipeline 1.2.4 npm +minipass-sized 1.0.3 npm +minizlib 2.1.2 npm +mkdirp 1.0.4 npm +more-itertools 8.10.0 python +mount 2.37.2-4ubuntu3 deb +ms 2.0.0 npm +ms 2.1.2 npm +ms 2.1.3 npm +mute-stream 1.0.0 npm +nan 2.18.0 npm +ncurses-base 6.3-2ubuntu0.1 deb +ncurses-bin 6.3-2ubuntu0.1 deb +negotiator 0.6.3 npm +netbase 6.3 deb +netcat 1.218-4ubuntu1 deb +netcat-openbsd 1.218-4ubuntu1 deb +nginx 1.18.0-6ubuntu14.4 deb +nginx-common 1.18.0-6ubuntu14.4 deb +nginx-core 1.18.0-6ubuntu14.4 deb +node-gyp 9.3.1 npm +nodejs 18.17.1-deb-1nodesource1 deb +nopt 6.0.0 npm +nopt 7.1.0 npm +normalize-package-data 5.0.0 npm +npm 9.6.7 npm +npm-audit-report 4.0.0 npm +npm-bundled 3.0.0 npm +npm-install-checks 6.1.1 npm +npm-normalize-package-bin 3.0.1 npm +npm-package-arg 10.1.0 npm +npm-packlist 7.0.4 npm +npm-pick-manifest 8.0.1 npm +npm-profile 7.0.1 npm +npm-registry-fetch 14.0.5 npm +npm-user-validate 2.0.0 npm +npmlog 6.0.2 npm +npmlog 7.0.1 npm +oauthlib 3.2.0 python +object-assign 4.1.1 npm +object-inspect 1.13.1 npm +ocl-icd-libopencl1 2.2.14-3 deb +on-finished 2.4.1 npm +once 1.4.0 npm +openbox 3.6.1-10 deb +openssh-client 1:8.9p1-3ubuntu0.6 deb +openssl 3.0.2-0ubuntu1.12 deb +p-map 4.0.0 npm +packagekit 1.2.5-2ubuntu2 deb +pacote 15.1.3 npm +parse-conflict-json 3.0.1 npm +parseurl 1.3.3 npm +passwd 1:4.8.1-2ubuntu2.1 deb +path-is-absolute 1.0.1 npm +path-key 3.1.1 npm +path-scurry 1.9.1 npm +path-to-regexp 0.1.7 npm +pci.ids 0.0~2022.01.22-1 deb +pciutils 1:3.7.0-6 deb +perl 5.34.0-3ubuntu1.3 deb +perl-base 5.34.0-3ubuntu1.3 deb +perl-modules-5.34 5.34.0-3ubuntu1.3 deb +pinentry-curses 1.1.1-1build2 deb +pkexec 0.105-33 deb +pkg-config 0.29.2-1ubuntu3 deb +policykit-1 0.105-33 deb +polkitd 0.105-33 deb +poppler-data 0.4.11-1 deb +poppler-utils 22.02.0-2ubuntu0.3 deb +postcss-selector-parser 6.0.13 npm +printer-driver-cups-pdf 3.0.1-14 deb +proc-log 3.0.0 npm +process 0.11.10 npm +procps 2:3.3.17-6ubuntu2.1 deb +promise-all-reject-late 1.0.1 npm +promise-call-limit 1.0.2 npm +promise-inflight 1.0.1 npm +promise-retry 2.0.1 npm +promzard 1.0.0 npm +proxy-addr 2.0.7 npm +publicsuffix 20211207.1025-1 deb +pulseaudio 1:15.99.1+dfsg1-1ubuntu2.1 deb +pulseaudio-utils 1:15.99.1+dfsg1-1ubuntu2.1 deb +pulseaudio2 0.5.5 npm +pyparsing 2.4.7 python +python-apt 2.4.0+ubuntu2 python +python-apt-common 2.4.0ubuntu2 deb +python3 3.10.6-1~22.04 deb +python3-apt 2.4.0ubuntu2 deb +python3-blinker 1.4+dfsg1-0.4 deb +python3-cffi-backend 1.15.0-1build2 deb +python3-cryptography 3.4.8-1ubuntu2.1 deb +python3-dbus 1.2.18-3build1 deb +python3-distro 1.7.0-1 deb +python3-distutils 3.10.8-1~22.04 deb +python3-gi 3.42.1-0ubuntu1 deb +python3-httplib2 0.20.2-2 deb +python3-importlib-metadata 4.6.4-1 deb +python3-jeepney 0.7.1-3 deb +python3-jwt 2.3.0-1ubuntu0.2 deb +python3-keyring 23.5.0-1 deb +python3-launchpadlib 1.10.16-1 deb +python3-lazr.restfulclient 0.14.4-1 deb +python3-lazr.uri 1.0.6-2 deb +python3-lib2to3 3.10.8-1~22.04 deb +python3-minimal 3.10.6-1~22.04 deb +python3-more-itertools 8.10.0-2 deb +python3-oauthlib 3.2.0-1ubuntu0.1 deb +python3-pkg-resources 59.6.0-1.2ubuntu0.22.04.1 deb +python3-pyparsing 2.4.7-1 deb +python3-secretstorage 3.3.1-1 deb +python3-six 1.16.0-3ubuntu1 deb +python3-software-properties 0.99.22.9 deb +python3-wadllib 1.3.6-1 deb +python3-xdg 0.27-2 deb +python3-zipp 1.0.0-3 deb +python3.10 3.10.12-1~22.04.3 deb +python3.10-minimal 3.10.12-1~22.04.3 deb +pyxdg 0.27 python +qrcode-terminal 0.12.0 npm +qs 6.11.0 npm +range-parser 1.2.1 npm +raw-body 2.5.1 npm +read 2.1.0 npm +read-cmd-shim 4.0.0 npm +read-package-json 6.0.3 npm +read-package-json-fast 3.0.2 npm +readable-stream 3.6.2 npm +readable-stream 4.4.0 npm +readline-common 8.1.2-1 deb +resenje.org/singleflight v0.4.1 go-module +retry 0.12.0 npm +rimraf 3.0.2 npm +rpcsvc-proto 1.4.2-0ubuntu6 deb +safe-buffer 5.1.2 npm +safe-buffer 5.2.1 npm +safer-buffer 2.1.2 npm +sed 4.8-1ubuntu2 deb +semver 7.5.1 npm +send 0.18.0 npm +sensible-utils 0.0.17 deb +serve-static 1.15.0 npm +session-migration 0.3.6 deb +set-blocking 2.0.0 npm +set-function-length 1.2.0 npm +setprototypeof 1.2.0 npm +shared-mime-info 2.1-2 deb +shebang-command 2.0.0 npm +shebang-regex 3.0.0 npm +side-channel 1.0.4 npm +signal-exit 3.0.7 npm +signal-exit 4.0.2 npm +sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 go-module +sigs.k8s.io/structured-merge-diff/v4 v4.1.2 go-module +sigs.k8s.io/structured-merge-diff/v4 v4.2.3 go-module +sigs.k8s.io/yaml v1.2.0 go-module +sigs.k8s.io/yaml v1.3.0 go-module +sigstore 1.5.2 npm +six 1.16.0 python +smart-buffer 4.2.0 npm +socket.io 4.7.4 npm +socket.io-adapter 2.5.2 npm +socket.io-parser 4.2.4 npm +socks 2.7.1 npm +socks-proxy-agent 7.0.0 npm +software-properties-common 0.99.22.9 deb +spdx-correct 3.2.0 npm +spdx-exceptions 2.3.0 npm +spdx-expression-parse 3.0.1 npm +spdx-license-ids 3.0.13 npm +ssl-cert 1.1.2 deb +ssri 10.0.4 npm +ssri 9.0.1 npm +statuses 2.0.1 npm +stdlib go1.20.13 go-module +stdlib go1.21.6 go-module +string-width 4.2.3 npm +string-width 5.1.2 npm +string_decoder 1.1.1 npm +strip-ansi 6.0.1 npm +strip-ansi 7.0.1 npm +sudo 1.9.9-1ubuntu2.4 deb +supports-color 7.2.0 npm +systemd 249.11-0ubuntu3.11 deb +systemd-sysv 249.11-0ubuntu3.11 deb +sysvinit-utils 3.01-1ubuntu1 deb +tags.cncf.io/container-device-interface v0.6.2 go-module +tags.cncf.io/container-device-interface/specs-go v0.6.0 go-module +tar 1.34+dfsg-1ubuntu0.1.22.04.2 deb +tar 6.1.14 npm +text-table 0.2.0 npm +tiny-relative-date 1.3.0 npm +toidentifier 1.0.1 npm +treeverse 3.0.0 npm +tuf-js 1.1.6 npm +type-is 1.6.18 npm +tzdata 2023d-0ubuntu0.22.04 deb +ubuntu-keyring 2021.03.26 deb +ucf 3.0043 deb +udev 249.11-0ubuntu3.11 deb +undici-types 5.26.5 npm +unique-filename 2.0.1 npm +unique-filename 3.0.0 npm +unique-slug 3.0.0 npm +unique-slug 4.0.0 npm +unpipe 1.0.0 npm +usrmerge 25ubuntu2 deb +util-deprecate 1.0.2 npm +util-linux 2.37.2-4ubuntu3 deb +utils-merge 1.0.1 npm +uuid-dev 2.37.2-4ubuntu3 deb +validate-npm-package-license 3.0.4 npm +validate-npm-package-name 5.0.0 npm +vary 1.1.2 npm +wadllib 1.3.6 python +walk-up-path 3.0.1 npm +wcwidth 1.0.1 npm +which 2.0.2 npm +which 3.0.1 npm +wide-align 1.1.5 npm +wrap-ansi 7.0.0 npm +wrap-ansi 8.1.0 npm +wrappy 1.0.2 npm +write-file-atomic 5.0.1 npm +ws 8.11.0 npm +x11-apps 7.7+8build2 deb +x11-common 1:7.7+23ubuntu2 deb +x11-session-utils 7.7+4build2 deb +x11-utils 7.7+5build2 deb +x11-xkb-utils 7.7+5build4 deb +x11-xserver-utils 7.7+9build1 deb +x11proto-dev 2021.5-1 deb +xauth 1:1.1-1build2 deb +xbitmaps 1.1.1-2.1ubuntu1 deb +xdg 5 python +xdg-utils 1.1.3-4.1ubuntu3~22.04.1 deb +xfonts-base 1:1.0.5 deb +xfonts-encodings 1:1.0.5-0ubuntu2 deb +xfonts-utils 1:7.7+6build2 deb +xkb-data 2.33-1 deb +xorg-sgml-doctools 1:1.11-1.1 deb +xserver-common 2:21.1.4-2ubuntu1.7~22.04.7 deb +xserver-xorg-core 2:21.1.4-2ubuntu1.7~22.04.7 deb +xserver-xorg-video-amdgpu 22.0.0-1ubuntu0.2 deb +xserver-xorg-video-ati 1:19.1.0-2ubuntu1 deb +xserver-xorg-video-intel 2:2.99.917+git20210115-1 deb +xserver-xorg-video-nouveau 1:1.0.17-2build1 deb +xserver-xorg-video-qxl 0.1.5+git20200331-3 deb +xserver-xorg-video-radeon 1:19.1.0-2ubuntu1 deb +xterm 372-1ubuntu1 deb +xtrans-dev 1.4.0-1 deb +xutils 1:7.7+23ubuntu2 deb +xz-utils 5.2.5-2ubuntu1 deb +yallist 4.0.0 npm +zipp 1.0.0 python +zlib1g 1:1.2.11.dfsg-2ubuntu9.2 deb +zlib1g-dev 1:1.2.11.dfsg-2ubuntu9.2 deb diff --git a/readme-vars.yml b/readme-vars.yml index 9b95a8e..eaaecd1 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -6,104 +6,71 @@ 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_env: true +param_env_vars: + - { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London." } 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/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 HTTP, must be proxied."} - - {external_port: "3001", internal_port: "3001", port_desc: "Audacity desktop gui HTTPS."} -# Selkies blurb settings -selkies_blurb: true -show_nvidia: true + - { external_port: "3000", internal_port: "3000", port_desc: "Audacity desktop gui." } + - { external_port: "3001", internal_port: "3001", port_desc: "Audacity desktop gui HTTPS." } + # application setup block app_setup_block_enabled: true app_setup_block: | The application can be accessed at: + * http://yourhost:3000/ * https://yourhost:3001/ -# 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-os-end -> init-config - init-selkies-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 - base -> init-migrations - init-config-end -> init-mods - init-mods-package-install -> init-mods-end - init-mods -> init-mods-package-install - init-selkies -> init-nginx - init-adduser -> init-os-end - init-device-perms -> init-os-end - init-envfile -> init-os-end - init-os-end -> init-selkies - init-nginx -> init-selkies-config - init-video -> init-selkies-end - init-custom-files -> init-services - init-selkies-config -> init-video - init-services -> svc-cron - svc-cron -> legacy-services - init-services -> svc-dbus - svc-xorg -> svc-dbus - svc-dbus -> legacy-services - init-services -> svc-de - svc-nginx -> svc-de - svc-selkies -> svc-de - svc-xorg -> svc-de - svc-de -> legacy-services - init-services -> svc-docker - svc-docker -> legacy-services - init-services -> svc-nginx - svc-nginx -> legacy-services - init-services -> svc-pulseaudio - svc-pulseaudio -> legacy-services - init-services -> svc-selkies - svc-nginx -> svc-selkies - svc-pulseaudio -> svc-selkies - svc-xorg -> svc-selkies - svc-selkies -> legacy-services - init-services -> svc-xorg - svc-xorg -> legacy-services - } - Base Images: { - "baseimage-selkies:ubuntunoble" <- "baseimage-ubuntu:noble" - } - "audacity:latest" <- Base Images + + ### 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` | + + #### 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) | + + ### 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). + # changelog changelogs: - - {date: "12.07.25:", desc: "Rebase to Selkies, HTTPS IS NOW REQUIRED."} - - {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."} + - { 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." } diff --git a/root/defaults/autostart b/root/defaults/autostart index 982bdb9..8d6612c 100644 --- a/root/defaults/autostart +++ b/root/defaults/autostart @@ -1 +1 @@ -/opt/audacity/AppRun +/app/audacity/audacity --appimage-extract-and-run diff --git a/root/defaults/menu.xml b/root/defaults/menu.xml deleted file mode 100644 index 9bd798f..0000000 --- a/root/defaults/menu.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - -/usr/bin/xterm -/opt/audacity/AppRun - -