From 1613f4c9587c1ab8f2f84e10c1f7385b8ded5e43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niccol=C3=B2=20Fei?= Date: Wed, 26 Nov 2025 13:55:48 +0100 Subject: [PATCH 01/12] feat: automate the update of OS libraries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Niccolò Fei --- .github/workflows/update_os_libraries.yml | 82 ++++++++++++++++++++ Makefile | 42 +++++++++++ postgis/metadata.hcl | 1 + postgis/system-libs/18-bookworm-os-libs.txt | 73 ++++++++++++++++++ postgis/system-libs/18-trixie-os-libs.txt | 84 +++++++++++++++++++++ 5 files changed, 282 insertions(+) create mode 100644 .github/workflows/update_os_libraries.yml create mode 100644 postgis/system-libs/18-bookworm-os-libs.txt create mode 100644 postgis/system-libs/18-trixie-os-libs.txt diff --git a/.github/workflows/update_os_libraries.yml b/.github/workflows/update_os_libraries.yml new file mode 100644 index 0000000..09805c9 --- /dev/null +++ b/.github/workflows/update_os_libraries.yml @@ -0,0 +1,82 @@ +name: Check OS Library Updates + +on: + schedule: + - cron: "0 3 * * *" + workflow_dispatch: + +defaults: + run: + shell: 'bash -Eeuo pipefail -x {0}' + +permissions: {} + +jobs: + fetch-extensions: + name: Fetch target extensions + runs-on: ubuntu-24.04 + outputs: + extensions: ${{ steps.get-extensions.outputs.extensions }} + steps: + - name: Checkout repository + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 + with: + persist-credentials: false + + - name: Fetch extensions + id: get-extensions + run: | + EXTENSIONS=() + all_extensions=$(find . -type f -name metadata.hcl -exec dirname {} \; | sed 's|^\./||') + for e in ${all_extensions}; do + AUTO_UPDATE_OS_LIBS=$(sed -n 's/.*auto_update_os_libs *= *//p' "$e/metadata.hcl") + if [[ $AUTO_UPDATE_OS_LIBS == "true" ]]; then + EXTENSIONS+=("$e") + fi + done + EXTENSIONS_JSON=$(printf "%s\n" "${EXTENSIONS[@]}" | jq -R -s -c 'split("\n")[:-1]') + echo "extensions=$EXTENSIONS_JSON" >> $GITHUB_OUTPUT + + update-extension-os-libs: + name: Update OS libs for ${{ matrix.extension }} + runs-on: ubuntu-24.04 + needs: + - fetch-extensions + strategy: + matrix: + extension: ${{ fromJson(needs.fetch-extensions.outputs.extensions) }} + steps: + - name: Checkout repository + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 + + - name: Log in to the GitHub Container registry + uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Update OS libs for ${{ matrix.extension }} + env: + EXTENSION_NAME: ${{ matrix.extension }} + run: | + make update-os-libs-$EXTENSION_NAME + + - name: Diff + run: | + git status + git diff + + - name: Create a PR if versions have been updated on main + uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7 + if: github.ref == 'refs/heads/main' + with: + token: ${{ secrets.REPO_GHA_PAT }} + title: "chore: update ${{ matrix.extension }} OS libraries" + body: "Updating the OS libraries of ${{ matrix.extension }}" + branch: "${{ matrix.extension }}-os-libraries" + author: "extension-os-libs-updater " + add-paths: | + ${{ matrix.extension }}/** + commit-message: "chore: update ${{ matrix.extension }} OS libraries" + signoff: true diff --git a/Makefile b/Makefile index e670f7a..755f89d 100644 --- a/Makefile +++ b/Makefile @@ -11,9 +11,25 @@ ifeq ($(DIRS),) $(error No subdirectories with metadata.hcl files found) endif +# Default supported distributions +DISTROS := $(shell sed -n '/variable "distributions"/,/}/ { s/^[[:space:]]*"\([^"]*\)".*/\1/p }' docker-bake.hcl) +# Default supported PostgreSQL majors +POSTGRES_MAJORS := $(shell sed -n '/variable "pgVersions"/,/]/ { s/^[[:space:]]*"\([^"]*\)".*/\1/p }' docker-bake.hcl) + +# Find all extensions with AUTO_UPDATE_OS_LIBS = true +EXTENSIONS_WITH_OS_LIBS := $(shell \ + for dir in $(DIRS); do \ + value=$$(sed -n 's/.*auto_update_os_libs *= *//p' "$$dir/metadata.hcl" | tr -d ' '); \ + if [ "$$value" = "true" ]; then echo "$$dir"; fi; \ + done \ +) + # Create push targets for each directory PUSH_TARGETS := $(addprefix push-,$(DIRS)) +# Create UPDATE_OS_LIBS targets for each extension +UPDATE_OS_LIBS_TARGETS := $(addprefix update-os-libs-,$(EXTENSIONS_WITH_OS_LIBS)) + .PHONY: all check prereqs push $(DIRS) $(PUSH_TARGETS) # Colours @@ -48,6 +64,32 @@ check: prereqs docker buildx bake -f $(dir)/metadata.hcl -f docker-bake.hcl --check; \ ) +# -------------------------- +# Update OS libraries for all images +# -------------------------- +update-os-libs: prereqs $(UPDATE_OS_LIBS_TARGETS) + @echo -e "$(GREEN)======================================================$(NC)" + @echo -e "$(GREEN)OS libraries update for all projects: $(EXTENSIONS_WITH_OS_LIBS)$(NC)" + @echo -e "$(GREEN)======================================================$(NC)" + +# -------------------------- +# Generic per-project OS libraries update +# Usage: make update-os-libs- +# -------------------------- +$(UPDATE_OS_LIBS_TARGETS): update-os-libs-%: prereqs + @echo -e "$(BLUE)Performing an OS libraries update for $*...$(NC)" + @mkdir -p "$*/system-libs" ;\ + for DISTRO in $(DISTROS); do \ + for MAJOR in $(POSTGRES_MAJORS); do \ + docker run --rm -u 0 "ghcr.io/cloudnative-pg/postgresql:18-minimal-$$DISTRO" \ + bash -c "apt-get update >/dev/null; apt-get install -qq --print-uris --no-install-recommends postgresql-$$MAJOR-$*" \ + | cut -d ' ' -f 2,4 \ + | grep '^lib' \ + | sort \ + > "$*/system-libs/$$MAJOR-$$DISTRO-os-libs.txt"; \ + done; \ + done + # -------------------------- # Push all images # -------------------------- diff --git a/postgis/metadata.hcl b/postgis/metadata.hcl index ec553c2..be8de2c 100644 --- a/postgis/metadata.hcl +++ b/postgis/metadata.hcl @@ -6,6 +6,7 @@ metadata = { extension_control_path = [] dynamic_library_path = [] ld_library_path = ["/system"] + auto_update_os_libs = true versions = { bookworm = { diff --git a/postgis/system-libs/18-bookworm-os-libs.txt b/postgis/system-libs/18-bookworm-os-libs.txt new file mode 100644 index 0000000..7593691 --- /dev/null +++ b/postgis/system-libs/18-bookworm-os-libs.txt @@ -0,0 +1,73 @@ +libaec0_1.0.6-1+b1_amd64.deb MD5Sum:42611bf8032dad2d74c26d8dc084d322 +libaom3_3.6.0-1+deb12u2_amd64.deb MD5Sum:faae50e521d9a6f39d96953961a2b1f9 +libarmadillo11_1%3a11.4.2+dfsg-1_amd64.deb MD5Sum:0ec736fe1888c654c32c3812add9d61d +libarpack2_3.8.0-3_amd64.deb MD5Sum:8a6381bedc3a4e5eae4af899a804c8c5 +libblas3_3.11.0-2_amd64.deb MD5Sum:b39744800600a80ae852251a16c03d09 +libblosc1_1.21.3+ds-1_amd64.deb MD5Sum:7f3b0f7da1e478f24df9069e4bfb9567 +libboost-serialization1.74.0_1.74.0+ds1-21_amd64.deb MD5Sum:db154c4708c5a4641abfee7ee4ad3dad +libbrotli1_1.0.9-2+b6_amd64.deb MD5Sum:58aff9bd35bab67549bdc84eb7edffcf +libcfitsio10_4.2.0-3_amd64.deb MD5Sum:c9e785735af14b6a90fc80990a634eb2 +libcurl3-gnutls_7.88.1-10+deb12u14_amd64.deb MD5Sum:519c5af2270952ce9727d0c70cc87e75 +libcurl4_7.88.1-10+deb12u14_amd64.deb MD5Sum:72a0750a6cbd7bf11a832966a933fe13 +libdav1d6_1.0.0-2+deb12u1_amd64.deb MD5Sum:e041891f3cff962c8ecd994865318ee3 +libde265-0_1.0.11-1+deb12u2_amd64.deb MD5Sum:27c287d4fd4e486eb99514cf973cef67 +libdeflate0_1.14-1_amd64.deb MD5Sum:e505f1277c856889aa2b539320e3e154 +libexpat1_2.5.0-1+deb12u2_amd64.deb MD5Sum:f5150efb6f21c50361fc1971ab8de870 +libfontconfig1_2.14.1-4_amd64.deb MD5Sum:522c4fa1fecd36d0f11eb6970fcd1364 +libfreetype6_2.12.1+dfsg-5+deb12u4_amd64.deb MD5Sum:8ee3bd604ace008bee4083b14746dedb +libfreexl1_1.0.6-2_amd64.deb MD5Sum:7c2dce7741605298d647487bc584cf36 +libfyba0_4.1.1-8_amd64.deb MD5Sum:972a096e93e0a5bc5b3e5ddcb839178a +libgdal32_3.6.2+dfsg-1+b2_amd64.deb MD5Sum:47a52cb4e21a3ef5a54f277ede0d9c5a +libgeos-c1v5_3.11.1-1_amd64.deb MD5Sum:e2a4c121ff086ade41053030e7069731 +libgeos3.11.1_3.11.1-1_amd64.deb MD5Sum:2cc7fd4a03bdcfcb6e8846054520280b +libgeotiff5_1.7.1-2+b1_amd64.deb MD5Sum:31740ac80f3b6d2fe054ae61de84fb29 +libgfortran5_12.2.0-14+deb12u1_amd64.deb MD5Sum:8a65db502e5fead6b00b77cb649547a6 +libgif7_5.2.1-2.5_amd64.deb MD5Sum:2dc4f441af51115e5f8367d7d6e9b50a +libgmpxx4ldbl_2%3a6.2.1+dfsg1-1.1_amd64.deb MD5Sum:39d27d05b4c898b58bf6643534a3f56a +libhdf4-0-alt_4.2.15-5_amd64.deb MD5Sum:b4c73847eedba3a520ee217208efe6cc +libhdf5-103-1_1.10.8+repack1-1_amd64.deb MD5Sum:99fa047a59160d481d5c8623e66d5b5b +libhdf5-hl-100_1.10.8+repack1-1_amd64.deb MD5Sum:16fd3bf27d8e53d8f65f5fe2b4585dbb +libheif1_1.15.1-1+deb12u1_amd64.deb MD5Sum:548fef31d81accc00bc48be783a6820c +libjbig0_2.1-6.1_amd64.deb MD5Sum:5e126e3852ae239341c233a50690e2d6 +libjpeg62-turbo_1%3a2.1.5-2_amd64.deb MD5Sum:c43c12e2144cad5b82c10d63dcc57ecd +libjson-c5_0.16-2_amd64.deb MD5Sum:f2f6ecf1d26a6e0716cc2cda7a542e52 +libkmlbase1_1.3.0-10_amd64.deb MD5Sum:ade5c0c1c3f065c907046e1bb2a25bab +libkmldom1_1.3.0-10_amd64.deb MD5Sum:0a4c395f2daf8f76507e0837a0660984 +libkmlengine1_1.3.0-10_amd64.deb MD5Sum:9ae0159850a4bdb2cdaecf4d93b2f295 +liblapack3_3.11.0-2_amd64.deb MD5Sum:9f13955c7feaec22a05d6491c3bc2730 +liblcms2-2_2.14-2_amd64.deb MD5Sum:42afbab2e9ece636fe24d93bff4fb11e +liblerc4_4.0.0+ds-2_amd64.deb MD5Sum:100ad75d6812ac853407f24c40076b02 +libltdl7_2.4.7-7~deb12u1_amd64.deb MD5Sum:a02756178c3360b03d56768e366357a4 +libmariadb3_1%3a10.11.14-0+deb12u2_amd64.deb MD5Sum:3df3e924e24c2732f336ebad560f6c81 +libminizip1_1.1-8+deb12u1_amd64.deb MD5Sum:6b6bb50435ee99ca1c9b7da3afb88a56 +libmpfr6_4.2.0-1_amd64.deb MD5Sum:123b9bedbbff443884957045b7228f83 +libnetcdf19_1%3a4.9.0-3+b1_amd64.deb MD5Sum:e73d40a2b2af5352e4451c844229c121 +libnghttp2-14_1.52.0-1+deb12u2_amd64.deb MD5Sum:ece467e644497f898d202ea0e5955cb2 +libnspr4_2%3a4.35-1_amd64.deb MD5Sum:1f8e0fda3f2527e0051768abd071c2fe +libnss3_2%3a3.87.1-1+deb12u1_amd64.deb MD5Sum:1b9542eb4f27a2e1b41d0c902fa8939e +libodbc2_2.3.11-2+deb12u1_amd64.deb MD5Sum:972c6044a881b768dc5c714bc41957b7 +libodbcinst2_2.3.11-2+deb12u1_amd64.deb MD5Sum:7c3f95926a167983c8c79137fe6fdb6d +libogdi4.1_4.1.0+ds-6_amd64.deb MD5Sum:bca573b90eb2ef8e6fa4c7ab66c77927 +libopenjp2-7_2.5.0-2+deb12u2_amd64.deb MD5Sum:f1eebf6b2fff9e531e0386d35fd9e1e6 +libpng16-16_1.6.39-2_amd64.deb MD5Sum:75ed53f30fb73cf2d197d5a87fed907b +libpoppler126_22.12.0-2+deb12u1_amd64.deb MD5Sum:1a8e3334bd9dc09a1b91e002f4c88c02 +libproj25_9.1.1-1+b1_amd64.deb MD5Sum:c21fd1eb543b730bbb79ef8d0144b3d1 +libprotobuf-c1_1.4.1-1+b1_amd64.deb MD5Sum:649286a7feeba56045ca99dd97e0ca58 +libpsl5_0.21.2-1_amd64.deb MD5Sum:37ebfb57fdbf01631629ee9f36c8b478 +libqhull-r8.0_2020.2-5_amd64.deb MD5Sum:781260a36cd4d65a86fc349f26b68338 +libquadmath0_12.2.0-14+deb12u1_amd64.deb MD5Sum:82b5224e36c58f519837f7f4a224d89d +librtmp1_2.4+20151223.gitfa8646d.1-2+b2_amd64.deb MD5Sum:d757abb668fc1ee0d9488805bfb4371e +librttopo1_1.1.0-3_amd64.deb MD5Sum:901bfdc1a4a806d1c9be972018d65368 +libsfcgal1_1.4.1-5_amd64.deb MD5Sum:99a625a0b70865ff07b39652b737e4ba +libsnappy1v5_1.1.9-3_amd64.deb MD5Sum:5867cae0b6dcc8238ac96d31523f2907 +libspatialite7_5.0.1-3_amd64.deb MD5Sum:fb95bb6433ea0a15f712372b1afcf3b5 +libssh2-1_1.10.0-3+b1_amd64.deb MD5Sum:14bb6443448b5fc0477e7c76ca9ba4a5 +libsuperlu5_5.3.0+dfsg1-2+b1_amd64.deb MD5Sum:304793a168ca3212c7240dc5cf68add3 +libsz2_1.0.6-1+b1_amd64.deb MD5Sum:6ab72da8580d02d7cb0d8c968fc83c36 +libtiff6_4.5.0-6+deb12u3_amd64.deb +libtirpc-common_1.3.3+ds-1_all.deb MD5Sum:e49aca93814724ed80fa8932a1f7523b +libtirpc3_1.3.3+ds-1_amd64.deb MD5Sum:b759d3e9dc474c3404da044249e84d2b +liburiparser1_0.9.7+dfsg-2_amd64.deb MD5Sum:7cf05c028b38acd81c591e4f6a112f49 +libwebp7_1.2.4-0.2+deb12u1_amd64.deb MD5Sum:19f6c9801f036b0615b9bf650c3ee1fa +libx265-199_3.5-2+b1_amd64.deb MD5Sum:e34942e4ea1c8063121bb734849b2cc0 +libxerces-c3.2_3.2.4+debian-1_amd64.deb MD5Sum:760e093e5b3528cfdd8a8d6cada2cfbb diff --git a/postgis/system-libs/18-trixie-os-libs.txt b/postgis/system-libs/18-trixie-os-libs.txt new file mode 100644 index 0000000..f311852 --- /dev/null +++ b/postgis/system-libs/18-trixie-os-libs.txt @@ -0,0 +1,84 @@ +libabsl20240722_20240722.0-4_amd64.deb MD5Sum:5407414647aace5e70314f16ff0aeb99 +libaec0_1.1.3-1+b1_amd64.deb MD5Sum:883972a56ece3b4d19cb9c220dbfeafc +libaom3_3.12.1-1_amd64.deb MD5Sum:c7dffeadfdb1999123bdbf14b3e91253 +libarmadillo14_1%3a14.2.3+dfsg-1+b1_amd64.deb MD5Sum:a0536f4ee4b36dc4f685f98587774fa0 +libarpack2t64_3.9.1-6_amd64.deb MD5Sum:d346826fbe0c2d876c779b2291a517ba +libavif16_1.2.1-1.2_amd64.deb MD5Sum:c1583daf87a2cc83a8a311be3f4bc3b5 +libblas3_3.12.1-6_amd64.deb MD5Sum:009269addf607682ff0a0def1acfbafe +libblosc1_1.21.5+ds-1+b2_amd64.deb MD5Sum:6640bac3b9912e70a7fb004338fde1a8 +libboost-serialization1.83.0_1.83.0-4.2_amd64.deb MD5Sum:0db3c604d979abcd786c51e623ca413d +libbrotli1_1.1.0-2+b7_amd64.deb MD5Sum:e268acc326140ae9f1731f335335fc8d +libcfitsio10t64_4.6.2-2_amd64.deb MD5Sum:856f7ba809c5e389e30d711356d158d9 +libcurl3t64-gnutls_8.14.1-2+deb13u2_amd64.deb MD5Sum:bdb9635f46ab5f4ed057e14dfa12c3cd +libcurl4t64_8.14.1-2+deb13u2_amd64.deb MD5Sum:14495a2bf1fe6f95d760fd6896923fbd +libdav1d7_1.5.1-1_amd64.deb MD5Sum:00fd1a932f4d979ef320ea7522f07957 +libde265-0_1.0.15-1+b3_amd64.deb MD5Sum:0c323aaaf6ea41343412aa9da949ef36 +libdeflate0_1.23-2_amd64.deb MD5Sum:7c4b5c0d85726d2d9475d48d3587c775 +libexpat1_2.7.1-2_amd64.deb MD5Sum:f679d79b2aaecfcb335274627a04960c +libfontconfig1_2.15.0-2.3_amd64.deb MD5Sum:51964bf406139551c59047e6cbdd4940 +libfreetype6_2.13.3+dfsg-1_amd64.deb MD5Sum:524c5fb5949c0b3612d29922a3d1f518 +libfreexl1_2.0.0-1+b3_amd64.deb MD5Sum:ce2afecace86bac19538fe0d2937fd0b +libfyba0t64_4.1.1-11+b1_amd64.deb MD5Sum:6c7b2e808aaa789019f8fec42e3b39a5 +libgav1-1_0.19.0-3+b1_amd64.deb MD5Sum:e93049581b24b0e191dd28725918bcac +libgdal36_3.10.3+dfsg-1_amd64.deb MD5Sum:81da37ecbe94b471a807d1f03da1370d +libgeos-c1t64_3.13.1-1_amd64.deb MD5Sum:2a47e1e868bf7ca4bc20d1c85c34ea90 +libgeos3.13.1_3.13.1-1_amd64.deb MD5Sum:47aa57bc0672c6f07edf3762a76f46b7 +libgeotiff5_1.7.4-1_amd64.deb MD5Sum:cde344178cfd6dd8706a86ba587ec534 +libgfortran5_14.2.0-19_amd64.deb MD5Sum:4aa25c9245458f20151c1fa228d9209c +libgif7_5.2.2-1+b1_amd64.deb MD5Sum:35d26913676cf9f5ddf40063629a2ddd +libgmpxx4ldbl_2%3a6.3.0+dfsg-3_amd64.deb MD5Sum:0eb52296a1673c00ff182a65ca9dda52 +libgpgme11t64_1.24.2-3_amd64.deb MD5Sum:0e26d3e34af7581bda9fd6086fd29cc7 +libgpgmepp6t64_1.24.2-3_amd64.deb MD5Sum:9b6067de043f9224848364739828216b +libhdf4-0-alt_4.3.0-1+b1_amd64.deb MD5Sum:d55ae40aad48594e1b02fd87f3c6c061 +libhdf5-310_1.14.5+repack-3_amd64.deb MD5Sum:b96e3a5656dcd4452dee459ba4ac10e1 +libhdf5-hl-310_1.14.5+repack-3_amd64.deb MD5Sum:c8b307b772cb08cea54e85056be5cd09 +libheif-plugin-dav1d_1.19.8-1_amd64.deb MD5Sum:5cc75db5bb05cbf3c3e03d21620882f7 +libheif-plugin-libde265_1.19.8-1_amd64.deb MD5Sum:351ffb8509c45d7db37628f722d013c0 +libheif1_1.19.8-1_amd64.deb MD5Sum:4e065e74764b4e6e4481f335867973a4 +libjbig0_2.1-6.1+b2_amd64.deb MD5Sum:590134f899b900c7c9f8f87cf750ea63 +libjpeg62-turbo_1%3a2.1.5-4_amd64.deb MD5Sum:529794778276370a5b4830dbd8481747 +libjson-c5_0.18+ds-1_amd64.deb MD5Sum:2afaa0abf1f11e7f2d5aa1e789148632 +libkmlbase1t64_1.3.0-12+b2_amd64.deb MD5Sum:d900c2d72fed6fb0b4cb10c1f61a1b54 +libkmldom1t64_1.3.0-12+b2_amd64.deb MD5Sum:32ecd5e632b2240d7db08d5ad1325799 +libkmlengine1t64_1.3.0-12+b2_amd64.deb MD5Sum:968869335d7f7bb993f06eee8b06daa3 +liblapack3_3.12.1-6_amd64.deb MD5Sum:070d94c9032ed79d6d1a7a3b992ac78c +liblcms2-2_2.16-2_amd64.deb MD5Sum:9dc25d9e86bccedc0d2b52b8c2838e58 +liblerc4_4.0.0+ds-5_amd64.deb MD5Sum:8c5933a75125eed15b466c16bf201bfa +libltdl7_2.5.4-4_amd64.deb MD5Sum:74f1031b3bb67ba2d0395689fb05d7b0 +libmariadb3_1%3a11.8.3-0+deb13u1_amd64.deb MD5Sum:8d87f1572af1806d76fc47e74123512d +libminizip1t64_1%3a1.3.dfsg+really1.3.1-1+b1_amd64.deb MD5Sum:4fd908eee3d3daac83c9746532996757 +libmpfr6_4.2.2-1_amd64.deb MD5Sum:839426828463b5c4df709f97e7433015 +libnetcdf22_1%3a4.9.3-1_amd64.deb MD5Sum:9b823d6203627dde68efd86176aa1153 +libnghttp2-14_1.64.0-1.1_amd64.deb MD5Sum:be477fe14db067cc30059ed0aa9cdabe +libnghttp3-9_1.8.0-1_amd64.deb MD5Sum:6b1f90e4153530a76878e9fde0244c66 +libngtcp2-16_1.11.0-1_amd64.deb MD5Sum:bb2aa637e4b61495c53f11cf83707649 +libngtcp2-crypto-gnutls8_1.11.0-1_amd64.deb MD5Sum:0dcb7a63254e77fe5fb8808fdba676fa +libnspr4_2%3a4.36-1_amd64.deb MD5Sum:dc825d7a7868119890f38608de1b5e21 +libnss3_2%3a3.110-1_amd64.deb MD5Sum:67f2d9d60250ba7c0e8a079066795a63 +libodbc2_2.3.12-2_amd64.deb MD5Sum:39e2300a1ab5d5a16de5c22bffabbefd +libodbcinst2_2.3.12-2_amd64.deb MD5Sum:8d70f2bdc4494da9678d6d5b14cef135 +libogdi4.1_4.1.1+ds-5_amd64.deb MD5Sum:6c910ba088247ac4bb86c1603f9c5534 +libopenjp2-7_2.5.3-2.1~deb13u1_amd64.deb MD5Sum:08d52c2f65ad153c466bc133463b4566 +libpng16-16t64_1.6.48-1_amd64.deb MD5Sum:0850124cc5a49a8d654d8ee6c4027fe4 +libpoppler147_25.03.0-5+deb13u2_amd64.deb MD5Sum:b2bbe0f83c7f67176ab9b6800b86fac5 +libproj25_9.6.0-1_amd64.deb MD5Sum:cf5a9d654805f47dc18e83f4ef2af4f6 +libprotobuf-c1_1.5.1-1_amd64.deb MD5Sum:ed43e30035030e79da9b324cb68d9f8d +libpsl5t64_0.21.2-1.1+b1_amd64.deb MD5Sum:09aa06d971ce5ff6d02b452c0e1f15f9 +libqhull-r8.0_2020.2-6+b2_amd64.deb MD5Sum:3b0b21663513226a208f039abea3ad47 +librav1e0.7_0.7.1-9+b2_amd64.deb MD5Sum:fab57a130388143574c34f30d233d3fa +librtmp1_2.4+20151223.gitfa8646d.1-2+b5_amd64.deb MD5Sum:355aeaaf937d70dcc873a458f6244c6e +librttopo1_1.1.0-4_amd64.deb MD5Sum:b522568252b7ba63b0c4f87300400be9 +libsfcgal2_2.0.0-1_amd64.deb MD5Sum:d9f4f4b59f2cae34bbaaa000ba7dc4a8 +libsharpyuv0_1.5.0-0.1_amd64.deb MD5Sum:438d9fd296a1102dfa7f001641d8857a +libsnappy1v5_1.2.2-1_amd64.deb MD5Sum:5e2457205f23689a487168e17d9d4b7e +libspatialite8t64_5.1.0-3+b2_amd64.deb MD5Sum:631307d38ff2755f5955023345b0b05d +libssh2-1t64_1.11.1-1_amd64.deb MD5Sum:d4b36da8909e226c1829bf9c07aca38c +libsvtav1enc2_2.3.0+dfsg-1_amd64.deb MD5Sum:8246119a4f34194b2952d38703a823b3 +libsz2_1.1.3-1+b1_amd64.deb MD5Sum:1d27983f2f9ef5efd8b47652603560cd +libtiff6_4.7.0-3+deb13u1_amd64.deb MD5Sum:a3978a2540d6d52de7fbe3983b1000ec +libtirpc-common_1.3.6+ds-1_all.deb MD5Sum:d536fb98a02d3d13a7b1a29e3a038131 +libtirpc3t64_1.3.6+ds-1_amd64.deb MD5Sum:a53fcff1f56e64fb19db15eb07756ddd +liburiparser1_0.9.8+dfsg-2_amd64.deb MD5Sum:235a70c2df22baa76a41c55799f073c6 +libwebp7_1.5.0-0.1_amd64.deb MD5Sum:bf682e1e438b4927c3807cad4ca6c1a9 +libxerces-c3.2t64_3.2.4+debian-1.3+b2_amd64.deb MD5Sum:628296c5bffd1ebd4aa0cd5baeee9732 +libyuv0_0.0.1904.20250204-1_amd64.deb MD5Sum:aaf4af94f3459bb17f4ee43dbd31a0ea From f2ae5b012c3e53254849e42c199444c0dfbffaa4 Mon Sep 17 00:00:00 2001 From: Gabriele Fedi Date: Thu, 4 Dec 2025 11:47:52 +0100 Subject: [PATCH 02/12] ci: dagger maintenance module Signed-off-by: Gabriele Fedi --- dagger/maintenance/.gitattributes | 4 + dagger/maintenance/.gitignore | 6 + dagger/maintenance/dagger.json | 7 + dagger/maintenance/go.mod | 134 +++++++++++ dagger/maintenance/go.sum | 373 ++++++++++++++++++++++++++++++ dagger/maintenance/main.go | 94 ++++++++ dagger/maintenance/parse.go | 105 +++++++++ dagger/maintenance/updatelibs.go | 83 +++++++ pgaudit/metadata.hcl | 1 + pgvector/metadata.hcl | 1 + 10 files changed, 808 insertions(+) create mode 100644 dagger/maintenance/.gitattributes create mode 100644 dagger/maintenance/.gitignore create mode 100644 dagger/maintenance/dagger.json create mode 100644 dagger/maintenance/go.mod create mode 100644 dagger/maintenance/go.sum create mode 100644 dagger/maintenance/main.go create mode 100644 dagger/maintenance/parse.go create mode 100644 dagger/maintenance/updatelibs.go diff --git a/dagger/maintenance/.gitattributes b/dagger/maintenance/.gitattributes new file mode 100644 index 0000000..3a45493 --- /dev/null +++ b/dagger/maintenance/.gitattributes @@ -0,0 +1,4 @@ +/dagger.gen.go linguist-generated +/internal/dagger/** linguist-generated +/internal/querybuilder/** linguist-generated +/internal/telemetry/** linguist-generated diff --git a/dagger/maintenance/.gitignore b/dagger/maintenance/.gitignore new file mode 100644 index 0000000..a8b873d --- /dev/null +++ b/dagger/maintenance/.gitignore @@ -0,0 +1,6 @@ +/dagger.gen.go +/internal/dagger +/internal/querybuilder +/internal/telemetry +/.env +vendor diff --git a/dagger/maintenance/dagger.json b/dagger/maintenance/dagger.json new file mode 100644 index 0000000..016457b --- /dev/null +++ b/dagger/maintenance/dagger.json @@ -0,0 +1,7 @@ +{ + "name": "maintenance", + "engineVersion": "v0.19.7", + "sdk": { + "source": "go" + } +} diff --git a/dagger/maintenance/go.mod b/dagger/maintenance/go.mod new file mode 100644 index 0000000..2afcaac --- /dev/null +++ b/dagger/maintenance/go.mod @@ -0,0 +1,134 @@ +module dagger/maintenance + +go 1.25.3 + +require ( + github.com/docker/buildx v0.30.1 + github.com/hashicorp/hcl/v2 v2.24.0 + github.com/vektah/gqlparser/v2 v2.5.30 + go.opentelemetry.io/otel v1.38.0 + go.opentelemetry.io/otel/sdk v1.38.0 + go.opentelemetry.io/otel/trace v1.38.0 +) + +require ( + github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect + github.com/agext/levenshtein v1.2.3 // indirect + github.com/apparentlymart/go-cidr v1.0.1 // indirect + github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect + github.com/aws/aws-sdk-go-v2 v1.38.1 // indirect + github.com/aws/aws-sdk-go-v2/config v1.31.3 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.18.7 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.4 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.4 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.4 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.28.2 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.38.0 // indirect + github.com/aws/smithy-go v1.22.5 // indirect + github.com/cenkalti/backoff/v5 v5.0.3 // indirect + github.com/compose-spec/compose-go/v2 v2.9.1 // indirect + github.com/containerd/console v1.0.5 // indirect + github.com/containerd/containerd/api v1.10.0 // indirect + github.com/containerd/containerd/v2 v2.2.1-0.20251115011841-efd86f2b0bc2 // indirect + github.com/containerd/continuity v0.4.5 // indirect + github.com/containerd/errdefs v1.0.0 // indirect + github.com/containerd/errdefs/pkg v0.3.0 // indirect + github.com/containerd/log v0.1.0 // indirect + github.com/containerd/platforms v1.0.0-rc.2 // indirect + github.com/containerd/ttrpc v1.2.7 // indirect + github.com/containerd/typeurl/v2 v2.2.3 // indirect + github.com/distribution/reference v0.6.0 // indirect + github.com/docker/cli v28.5.1+incompatible // indirect + github.com/docker/docker v28.5.1+incompatible // indirect + github.com/docker/docker-credential-helpers v0.9.3 // indirect + github.com/docker/go v1.5.1-1 // indirect + github.com/docker/go-connections v0.5.0 // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/fvbommel/sortorder v1.0.1 // indirect + github.com/go-logr/logr v1.4.3 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-viper/mapstructure/v2 v2.4.0 // indirect + github.com/gofrs/flock v0.13.0 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/google/go-cmp v0.7.0 // indirect + github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/gorilla/mux v1.8.1 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 // indirect + github.com/hashicorp/go-cleanhttp v0.5.2 // indirect + github.com/hashicorp/go-cty-funcs v0.0.0-20250818135842-6aab67130928 // indirect + github.com/in-toto/in-toto-golang v0.9.0 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/klauspost/compress v1.18.1 // indirect + github.com/mattn/go-runewidth v0.0.16 // indirect + github.com/mattn/go-shellwords v1.0.12 // indirect + github.com/mitchellh/go-wordwrap v1.0.1 // indirect + github.com/mitchellh/hashstructure/v2 v2.0.2 // indirect + github.com/moby/buildkit v0.26.1 // indirect + github.com/moby/docker-image-spec v1.3.1 // indirect + github.com/moby/locker v1.0.1 // indirect + github.com/moby/patternmatcher v0.6.0 // indirect + github.com/moby/sys/atomicwriter v0.1.0 // indirect + github.com/moby/sys/mountinfo v0.7.2 // indirect + github.com/moby/sys/sequential v0.6.0 // indirect + github.com/moby/sys/signal v0.7.1 // indirect + github.com/moby/term v0.5.2 // indirect + github.com/morikuni/aec v1.0.0 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.1.1 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect + github.com/rivo/uniseg v0.2.0 // indirect + github.com/santhosh-tekuri/jsonschema/v6 v6.0.1 // indirect + github.com/secure-systems-lab/go-securesystemslib v0.9.1 // indirect + github.com/shibumi/go-pathspec v1.3.0 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/spf13/cobra v1.10.1 // indirect + github.com/spf13/pflag v1.0.10 // indirect + github.com/tonistiigi/dchapes-mode v0.0.0-20250318174251-73d941a28323 // indirect + github.com/tonistiigi/fsutil v0.0.0-20250605211040-586307ad452f // indirect + github.com/tonistiigi/go-csvvalue v0.0.0-20240814133006-030d3b2625d0 // indirect + github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea // indirect + github.com/tonistiigi/vt100 v0.0.0-20240514184818-90bafcd6abab // indirect + github.com/xhit/go-str2duration/v2 v2.1.0 // indirect + github.com/zclconf/go-cty v1.17.0 // indirect + go.opentelemetry.io/auto/sdk v1.2.1 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.61.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 // indirect + go.opentelemetry.io/otel/metric v1.38.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.38.0 // indirect + go.opentelemetry.io/proto/otlp v1.8.0 // indirect + go.yaml.in/yaml/v3 v3.0.4 // indirect + golang.org/x/crypto v0.42.0 // indirect + golang.org/x/mod v0.29.0 // indirect + golang.org/x/net v0.44.0 // indirect + golang.org/x/sync v0.17.0 // indirect + golang.org/x/sys v0.37.0 // indirect + golang.org/x/text v0.29.0 // indirect + golang.org/x/time v0.14.0 // indirect + golang.org/x/tools v0.37.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 // indirect + google.golang.org/grpc v1.76.0 // indirect + google.golang.org/protobuf v1.36.10 // indirect +) + +replace go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc => go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.14.0 + +replace go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp => go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0 + +replace go.opentelemetry.io/otel/log => go.opentelemetry.io/otel/log v0.14.0 + +replace go.opentelemetry.io/otel/sdk/log => go.opentelemetry.io/otel/sdk/log v0.14.0 diff --git a/dagger/maintenance/go.sum b/dagger/maintenance/go.sum new file mode 100644 index 0000000..60f374c --- /dev/null +++ b/dagger/maintenance/go.sum @@ -0,0 +1,373 @@ +github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 h1:He8afgbRMd7mFxO99hRNu+6tazq8nFF9lIwo9JFroBk= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= +github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEKWjV8V+WSxDXJ4NFATAsZjh8iIbsQIg= +github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= +github.com/Microsoft/hcsshim v0.14.0-rc.1 h1:qAPXKwGOkVn8LlqgBN8GS0bxZ83hOJpcjxzmlQKxKsQ= +github.com/Microsoft/hcsshim v0.14.0-rc.1/go.mod h1:hTKFGbnDtQb1wHiOWv4v0eN+7boSWAHyK/tNAaYZL0c= +github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= +github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= +github.com/anchore/go-struct-converter v0.0.0-20221118182256-c68fdcfa2092 h1:aM1rlcoLz8y5B2r4tTLMiVTrMtpfY0O8EScKJxaSaEc= +github.com/anchore/go-struct-converter v0.0.0-20221118182256-c68fdcfa2092/go.mod h1:rYqSE9HbjzpHTI74vwPvae4ZVYZd1lue2ta6xHPdblA= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= +github.com/apparentlymart/go-cidr v1.0.1 h1:NmIwLZ/KdsjIUlhf+/Np40atNXm/+lZ5txfTJ/SpF+U= +github.com/apparentlymart/go-cidr v1.0.1/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc= +github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= +github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= +github.com/aws/aws-sdk-go-v2 v1.38.1 h1:j7sc33amE74Rz0M/PoCpsZQ6OunLqys/m5antM0J+Z8= +github.com/aws/aws-sdk-go-v2 v1.38.1/go.mod h1:9Q0OoGQoboYIAJyslFyF1f5K1Ryddop8gqMhWx/n4Wg= +github.com/aws/aws-sdk-go-v2/config v1.31.3 h1:RIb3yr/+PZ18YYNe6MDiG/3jVoJrPmdoCARwNkMGvco= +github.com/aws/aws-sdk-go-v2/config v1.31.3/go.mod h1:jjgx1n7x0FAKl6TnakqrpkHWWKcX3xfWtdnIJs5K9CE= +github.com/aws/aws-sdk-go-v2/credentials v1.18.7 h1:zqg4OMrKj+t5HlswDApgvAHjxKtlduKS7KicXB+7RLg= +github.com/aws/aws-sdk-go-v2/credentials v1.18.7/go.mod h1:/4M5OidTskkgkv+nCIfC9/tbiQ/c8qTox9QcUDV0cgc= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.4 h1:lpdMwTzmuDLkgW7086jE94HweHCqG+uOJwHf3LZs7T0= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.4/go.mod h1:9xzb8/SV62W6gHQGC/8rrvgNXU6ZoYM3sAIJCIrXJxY= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.4 h1:IdCLsiiIj5YJ3AFevsewURCPV+YWUlOW8JiPhoAy8vg= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.4/go.mod h1:l4bdfCD7XyyZA9BolKBo1eLqgaJxl0/x91PL4Yqe0ao= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.4 h1:j7vjtr1YIssWQOMeOWRbh3z8g2oY/xPjnZH2gLY4sGw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.4/go.mod h1:yDmJgqOiH4EA8Hndnv4KwAo8jCGTSnM5ASG1nBI+toA= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 h1:6+lZi2JeGKtCraAj1rpoZfKqnQ9SptseRZioejfUOLM= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0/go.mod h1:eb3gfbVIxIoGgJsi9pGne19dhCBpK6opTYpQqAmdy44= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.4 h1:ueB2Te0NacDMnaC+68za9jLwkjzxGWm0KB5HTUHjLTI= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.4/go.mod h1:nLEfLnVMmLvyIG58/6gsSA03F1voKGaCfHV7+lR8S7s= +github.com/aws/aws-sdk-go-v2/service/sso v1.28.2 h1:ve9dYBB8CfJGTFqcQ3ZLAAb/KXWgYlgu/2R2TZL2Ko0= +github.com/aws/aws-sdk-go-v2/service/sso v1.28.2/go.mod h1:n9bTZFZcBa9hGGqVz3i/a6+NG0zmZgtkB9qVVFDqPA8= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.0 h1:Bnr+fXrlrPEoR1MAFrHVsge3M/WoK4n23VNhRM7TPHI= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.0/go.mod h1:eknndR9rU8UpE/OmFpqU78V1EcXPKFTTm5l/buZYgvM= +github.com/aws/aws-sdk-go-v2/service/sts v1.38.0 h1:iV1Ko4Em/lkJIsoKyGfc0nQySi+v0Udxr6Igq+y9JZc= +github.com/aws/aws-sdk-go-v2/service/sts v1.38.0/go.mod h1:bEPcjW7IbolPfK67G1nilqWyoxYMSPrDiIQ3RdIdKgo= +github.com/aws/smithy-go v1.22.5 h1:P9ATCXPMb2mPjYBgueqJNCA5S9UfktsW0tTxi+a7eqw= +github.com/aws/smithy-go v1.22.5/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM= +github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb h1:EDmT6Q9Zs+SbUoc7Ik9EfrFqcylYqgPZ9ANSbTAntnE= +github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb/go.mod h1:ZjrT6AXHbDs86ZSdt/osfBi5qfexBrKUdONk989Wnk4= +github.com/compose-spec/compose-go/v2 v2.9.1 h1:8UwI+ujNU+9Ffkf/YgAm/qM9/eU7Jn8nHzWG721W4rs= +github.com/compose-spec/compose-go/v2 v2.9.1/go.mod h1:Oky9AZGTRB4E+0VbTPZTUu4Kp+oEMMuwZXZtPPVT1iE= +github.com/containerd/cgroups/v3 v3.1.0 h1:azxYVj+91ZgSnIBp2eI3k9y2iYQSR/ZQIgh9vKO+HSY= +github.com/containerd/cgroups/v3 v3.1.0/go.mod h1:SA5DLYnXO8pTGYiAHXz94qvLQTKfVM5GEVisn4jpins= +github.com/containerd/console v1.0.5 h1:R0ymNeydRqH2DmakFNdmjR2k0t7UPuiOV/N/27/qqsc= +github.com/containerd/console v1.0.5/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk= +github.com/containerd/containerd/api v1.10.0 h1:5n0oHYVBwN4VhoX9fFykCV9dF1/BvAXeg2F8W6UYq1o= +github.com/containerd/containerd/api v1.10.0/go.mod h1:NBm1OAk8ZL+LG8R0ceObGxT5hbUYj7CzTmR3xh0DlMM= +github.com/containerd/containerd/v2 v2.2.1-0.20251115011841-efd86f2b0bc2 h1:WcvXNS/OmpiitTVdzRAudKwvShKxcOP4Elf2FyxSoTg= +github.com/containerd/containerd/v2 v2.2.1-0.20251115011841-efd86f2b0bc2/go.mod h1:YCMjKjA4ZA7egdHNi3/93bJR1+2oniYlnS+c0N62HdE= +github.com/containerd/continuity v0.4.5 h1:ZRoN1sXq9u7V6QoHMcVWGhOwDFqZ4B9i5H6un1Wh0x4= +github.com/containerd/continuity v0.4.5/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE= +github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= +github.com/containerd/errdefs v1.0.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M= +github.com/containerd/errdefs/pkg v0.3.0 h1:9IKJ06FvyNlexW690DXuQNx2KA2cUJXx151Xdx3ZPPE= +github.com/containerd/errdefs/pkg v0.3.0/go.mod h1:NJw6s9HwNuRhnjJhM7pylWwMyAkmCQvQ4GpJHEqRLVk= +github.com/containerd/fifo v1.1.0 h1:4I2mbh5stb1u6ycIABlBw9zgtlK8viPI9QkQNRQEEmY= +github.com/containerd/fifo v1.1.0/go.mod h1:bmC4NWMbXlt2EZ0Hc7Fx7QzTFxgPID13eH0Qu+MAb2o= +github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= +github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/containerd/nydus-snapshotter v0.15.4 h1:l59kGRVMtwMLDLh322HsWhEsBCkRKMkGWYV5vBeLYCE= +github.com/containerd/nydus-snapshotter v0.15.4/go.mod h1:eRJqnxQDr48HNop15kZdLZpFF5B6vf6Q11Aq1K0E4Ms= +github.com/containerd/platforms v1.0.0-rc.2 h1:0SPgaNZPVWGEi4grZdV8VRYQn78y+nm6acgLGv/QzE4= +github.com/containerd/platforms v1.0.0-rc.2/go.mod h1:J71L7B+aiM5SdIEqmd9wp6THLVRzJGXfNuWCZCllLA4= +github.com/containerd/plugin v1.0.0 h1:c8Kf1TNl6+e2TtMHZt+39yAPDbouRH9WAToRjex483Y= +github.com/containerd/plugin v1.0.0/go.mod h1:hQfJe5nmWfImiqT1q8Si3jLv3ynMUIBB47bQ+KexvO8= +github.com/containerd/stargz-snapshotter v0.17.0 h1:djNS4KU8ztFhLdEDZ1bsfzOiYuVHT6TgSU5qwRk+cNc= +github.com/containerd/stargz-snapshotter/estargz v0.17.0 h1:+TyQIsR/zSFI1Rm31EQBwpAA1ovYgIKHy7kctL3sLcE= +github.com/containerd/stargz-snapshotter/estargz v0.17.0/go.mod h1:s06tWAiJcXQo9/8AReBCIo/QxcXFZ2n4qfsRnpl71SM= +github.com/containerd/ttrpc v1.2.7 h1:qIrroQvuOL9HQ1X6KHe2ohc7p+HP/0VE6XPU7elJRqQ= +github.com/containerd/ttrpc v1.2.7/go.mod h1:YCXHsb32f+Sq5/72xHubdiJRQY9inL4a4ZQrAbN1q9o= +github.com/containerd/typeurl/v2 v2.2.3 h1:yNA/94zxWdvYACdYO8zofhrTVuQY73fFU1y++dYSw40= +github.com/containerd/typeurl/v2 v2.2.3/go.mod h1:95ljDnPfD3bAbDJRugOiShd/DlAAsxGtUBhJxIn7SCk= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= +github.com/creack/pty v1.1.24 h1:bJrF4RRfyJnbTJqzRLHzcGaZK1NeM5kTC9jGgovnR1s= +github.com/creack/pty v1.1.24/go.mod h1:08sCNb52WyoAwi2QDyzUCTgcvVFhUzewun7wtTfvcwE= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= +github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI= +github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/docker/buildx v0.30.1 h1:3vthfaTQOLt5QfN2nl7rKuPLUvx69nL5ZikFIXp//c8= +github.com/docker/buildx v0.30.1/go.mod h1:8nwT0V6UNYNo9rXq6WO/BQd9KrJ0JYcY/QX6x0y1Oro= +github.com/docker/cli v28.5.1+incompatible h1:ESutzBALAD6qyCLqbQSEf1a/U8Ybms5agw59yGVc+yY= +github.com/docker/cli v28.5.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= +github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker v28.5.1+incompatible h1:Bm8DchhSD2J6PsFzxC35TZo4TLGR2PdW/E69rU45NhM= +github.com/docker/docker v28.5.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker-credential-helpers v0.9.3 h1:gAm/VtF9wgqJMoxzT3Gj5p4AqIjCBS4wrsOh9yRqcz8= +github.com/docker/docker-credential-helpers v0.9.3/go.mod h1:x+4Gbw9aGmChi3qTLZj8Dfn0TD20M/fuWy0E5+WDeCo= +github.com/docker/go v1.5.1-1 h1:hr4w35acWBPhGBXlzPoHpmZ/ygPjnmFVxGxxGnMyP7k= +github.com/docker/go v1.5.1-1/go.mod h1:CADgU4DSXK5QUlFslkQu2yW2TKzFZcXq/leZfM0UH5Q= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-metrics v0.0.1 h1:AgB/0SvBxihN0X8OR4SjsblXkbMvalQ8cjmtKQ2rQV8= +github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/fvbommel/sortorder v1.0.1 h1:dSnXLt4mJYH25uDDGa3biZNQsozaUWDSWeKJ0qqFfzE= +github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68= +github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= +github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= +github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw= +github.com/gofrs/flock v0.13.0/go.mod h1:jxeyy9R1auM5S6JYDBhDt+E2TCo7DkratH4Pgi8P+Z0= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ= +github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 h1:8Tjv8EJ+pM1xP8mK6egEbD1OgnVTyacbefKhmbLhIhU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2/go.mod h1:pkJQ2tZHJ0aFOVEEot6oZmaVEZcRme73eIFmhiVuRWs= +github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= +github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= +github.com/hashicorp/go-cty-funcs v0.0.0-20250818135842-6aab67130928 h1:NFpfJOqEV8DUhomtXx9A0FfcMg7OCYRugdyw6Ar/Y7s= +github.com/hashicorp/go-cty-funcs v0.0.0-20250818135842-6aab67130928/go.mod h1:YC9ASYt9Z9sQEAtzCe+yaAzi3E7wcxfRphDXtwZoWC0= +github.com/hashicorp/hcl/v2 v2.24.0 h1:2QJdZ454DSsYGoaE6QheQZjtKZSUs9Nh2izTWiwQxvE= +github.com/hashicorp/hcl/v2 v2.24.0/go.mod h1:oGoO1FIQYfn/AgyOhlg9qLC6/nOJPX3qGbkZpYAcqfM= +github.com/in-toto/in-toto-golang v0.9.0 h1:tHny7ac4KgtsfrG6ybU8gVOZux2H8jN05AXJ9EBM1XU= +github.com/in-toto/in-toto-golang v0.9.0/go.mod h1:xsBVrVsHNsB61++S6Dy2vWosKhuA3lUTQd+eF9HdeMo= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.18.1 h1:bcSGx7UbpBqMChDtsF28Lw6v/G94LPrrbMbdC3JH2co= +github.com/klauspost/compress v1.18.1/go.mod h1:ZQFFVG+MdnR0P+l6wpXgIL4NTtwiKIdBnrBd8Nrxr+0= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= +github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= +github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= +github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU= +github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= +github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= +github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= +github.com/mitchellh/hashstructure/v2 v2.0.2 h1:vGKWl0YJqUNxE8d+h8f6NJLcCJrgbhC4NcD46KavDd4= +github.com/mitchellh/hashstructure/v2 v2.0.2/go.mod h1:MG3aRVU/N29oo/V/IhBX8GR/zz4kQkprJgF2EVszyDE= +github.com/moby/buildkit v0.26.1 h1:Cf/AB/8/5N+GBQnVPBW+hR2tDWoImuZ28ciqaF+mzgs= +github.com/moby/buildkit v0.26.1/go.mod h1:ylDa7IqzVJgLdi/wO7H1qLREFQpmhFbw2fbn4yoTw40= +github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= +github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= +github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= +github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= +github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= +github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= +github.com/moby/sys/atomicwriter v0.1.0 h1:kw5D/EqkBwsBFi0ss9v1VG3wIkVhzGvLklJ+w3A14Sw= +github.com/moby/sys/atomicwriter v0.1.0/go.mod h1:Ul8oqv2ZMNHOceF643P6FKPXeCmYtlQMvpizfsSoaWs= +github.com/moby/sys/mountinfo v0.7.2 h1:1shs6aH5s4o5H2zQLn796ADW1wMrIwHsyJ2v9KouLrg= +github.com/moby/sys/mountinfo v0.7.2/go.mod h1:1YOa8w8Ih7uW0wALDUgT1dTTSBrZ+HiBLGws92L2RU4= +github.com/moby/sys/sequential v0.6.0 h1:qrx7XFUd/5DxtqcoH1h438hF5TmOvzC/lspjy7zgvCU= +github.com/moby/sys/sequential v0.6.0/go.mod h1:uyv8EUTrca5PnDsdMGXhZe6CCe8U/UiTWd+lL+7b/Ko= +github.com/moby/sys/signal v0.7.1 h1:PrQxdvxcGijdo6UXXo/lU/TvHUWyPhj7UOpSo8tuvk0= +github.com/moby/sys/signal v0.7.1/go.mod h1:Se1VGehYokAkrSQwL4tDzHvETwUZlnY7S5XtQ50mQp8= +github.com/moby/sys/user v0.4.0 h1:jhcMKit7SA80hivmFJcbB1vqmw//wU61Zdui2eQXuMs= +github.com/moby/sys/user v0.4.0/go.mod h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs= +github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= +github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= +github.com/moby/term v0.5.2 h1:6qk3FJAFDs6i/q3W/pQ97SX192qKfZgGjCQqfCJkgzQ= +github.com/moby/term v0.5.2/go.mod h1:d3djjFCrjnB+fl8NJux+EJzu0msscUP+f8it8hPkFLc= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= +github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M= +github.com/opencontainers/runtime-spec v1.2.1 h1:S4k4ryNgEpxW1dzyqffOmhI1BHYcjzU8lpJfSlR0xww= +github.com/opencontainers/runtime-spec v1.2.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/selinux v1.12.0 h1:6n5JV4Cf+4y0KNXW48TLj5DwfXpvWlxXplUkdTrmPb8= +github.com/opencontainers/selinux v1.12.0/go.mod h1:BTPX+bjVbWGXw7ZZWUbdENt8w0htPSrlgOOysQaU62U= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= +github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= +github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= +github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= +github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= +github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= +github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= +github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= +github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/santhosh-tekuri/jsonschema/v6 v6.0.1 h1:PKK9DyHxif4LZo+uQSgXNqs0jj5+xZwwfKHgph2lxBw= +github.com/santhosh-tekuri/jsonschema/v6 v6.0.1/go.mod h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU= +github.com/secure-systems-lab/go-securesystemslib v0.9.1 h1:nZZaNz4DiERIQguNy0cL5qTdn9lR8XKHf4RUyG1Sx3g= +github.com/secure-systems-lab/go-securesystemslib v0.9.1/go.mod h1:np53YzT0zXGMv6x4iEWc9Z59uR+x+ndLwCLqPYpLXVU= +github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= +github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= +github.com/shibumi/go-pathspec v1.3.0 h1:QUyMZhFo0Md5B8zV8x2tesohbb5kfbpTi9rBnKh5dkI= +github.com/shibumi/go-pathspec v1.3.0/go.mod h1:Xutfslp817l2I1cZvgcfeMQJG5QnU2lh5tVaaMCl3jE= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/spdx/tools-golang v0.5.5 h1:61c0KLfAcNqAjlg6UNMdkwpMernhw3zVRwDZ2x9XOmk= +github.com/spdx/tools-golang v0.5.5/go.mod h1:MVIsXx8ZZzaRWNQpUDhC4Dud34edUYJYecciXgrw5vE= +github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s= +github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= +github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/theupdateframework/notary v0.7.0 h1:QyagRZ7wlSpjT5N2qQAh/pN+DVqgekv4DzbAiAiEL3c= +github.com/theupdateframework/notary v0.7.0/go.mod h1:c9DRxcmhHmVLDay4/2fUYdISnHqbFDGRSlXPO0AhYWw= +github.com/tonistiigi/dchapes-mode v0.0.0-20250318174251-73d941a28323 h1:r0p7fK56l8WPequOaR3i9LBqfPtEdXIQbUTzT55iqT4= +github.com/tonistiigi/dchapes-mode v0.0.0-20250318174251-73d941a28323/go.mod h1:3Iuxbr0P7D3zUzBMAZB+ois3h/et0shEz0qApgHYGpY= +github.com/tonistiigi/fsutil v0.0.0-20250605211040-586307ad452f h1:MoxeMfHAe5Qj/ySSBfL8A7l1V+hxuluj8owsIEEZipI= +github.com/tonistiigi/fsutil v0.0.0-20250605211040-586307ad452f/go.mod h1:BKdcez7BiVtBvIcef90ZPc6ebqIWr4JWD7+EvLm6J98= +github.com/tonistiigi/go-csvvalue v0.0.0-20240814133006-030d3b2625d0 h1:2f304B10LaZdB8kkVEaoXvAMVan2tl9AiK4G0odjQtE= +github.com/tonistiigi/go-csvvalue v0.0.0-20240814133006-030d3b2625d0/go.mod h1:278M4p8WsNh3n4a1eqiFcV2FGk7wE5fwUpUom9mK9lE= +github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea h1:SXhTLE6pb6eld/v/cCndK0AMpt1wiVFb/YYmqB3/QG0= +github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea/go.mod h1:WPnis/6cRcDZSUvVmezrxJPkiO87ThFYsoUiMwWNDJk= +github.com/tonistiigi/vt100 v0.0.0-20240514184818-90bafcd6abab h1:H6aJ0yKQ0gF49Qb2z5hI1UHxSQt4JMyxebFR15KnApw= +github.com/tonistiigi/vt100 v0.0.0-20240514184818-90bafcd6abab/go.mod h1:ulncasL3N9uLrVann0m+CDlJKWsIAP34MPcOJF6VRvc= +github.com/vbatts/tar-split v0.12.2 h1:w/Y6tjxpeiFMR47yzZPlPj/FcPLpXbTUi/9H7d3CPa4= +github.com/vbatts/tar-split v0.12.2/go.mod h1:eF6B6i6ftWQcDqEn3/iGFRFRo8cBIMSJVOpnNdfTMFA= +github.com/vektah/gqlparser/v2 v2.5.30 h1:EqLwGAFLIzt1wpx1IPpY67DwUujF1OfzgEyDsLrN6kE= +github.com/vektah/gqlparser/v2 v2.5.30/go.mod h1:D1/VCZtV3LPnQrcPBeR/q5jkSQIPti0uYCP/RI0gIeo= +github.com/xhit/go-str2duration/v2 v2.1.0 h1:lxklc02Drh6ynqX+DdPyp5pCKLUQpRT8bp8Ydu2Bstc= +github.com/xhit/go-str2duration/v2 v2.1.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/zclconf/go-cty v1.17.0 h1:seZvECve6XX4tmnvRzWtJNHdscMtYEx5R7bnnVyd/d0= +github.com/zclconf/go-cty v1.17.0/go.mod h1:wqFzcImaLTI6A5HfsRwB0nj5n0MRZFwmey8YoFPPs3U= +github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo= +github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= +go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0 h1:q4XOmH/0opmeuJtPsbFNivyl7bCt7yRBbeEm2sC/XtQ= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0/go.mod h1:snMWehoOh2wsEwnvvwtDyFCxVeDAODenXHtn5vzrKjo= +go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.61.0 h1:lREC4C0ilyP4WibDhQ7Gg2ygAQFP8oR07Fst/5cafwI= +go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.61.0/go.mod h1:HfvuU0kW9HewH14VCOLImqKvUgONodURG7Alj/IrnGI= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q= +go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8= +go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0 h1:vl9obrcoWVKp/lwl8tRE33853I8Xru9HFbw/skNeLs8= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0/go.mod h1:GAXRxmLJcVM3u22IjTg74zWBrRCKq8BnOqUVLodpcpw= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 h1:lwI4Dc5leUqENgGuQImwLo4WnuXFPetmPpkLi2IrX54= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0/go.mod h1:Kz/oCE7z5wuyhPxsXDuaPteSWqjSBD5YaSdbxZYGbGk= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 h1:aTL7F04bJHUlztTsNGJ2l+6he8c+y/b//eR0jjjemT4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0/go.mod h1:kldtb7jDTeol0l3ewcmd8SDvx3EmIE7lyvqbasU3QC4= +go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA= +go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI= +go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E= +go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg= +go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM= +go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA= +go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE= +go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs= +go.opentelemetry.io/proto/otlp v1.8.0 h1:fRAZQDcAFHySxpJ1TwlA1cJ4tvcrw7nXl9xWWC8N5CE= +go.opentelemetry.io/proto/otlp v1.8.0/go.mod h1:tIeYOeNBU4cvmPqpaji1P+KbB4Oloai8wN4rWzRrFF0= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= +go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= +go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI= +golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= +golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I= +golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= +golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ= +golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ= +golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= +golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= +golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= +golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.37.0 h1:DVSRzp7FwePZW356yEAChSdNcQo6Nsp+fex1SUW09lE= +golang.org/x/tools v0.37.0/go.mod h1:MBN5QPQtLMHVdvsbtarmTNukZDdgwdwlO5qGacAzF0w= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= +gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= +google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5 h1:BIRfGDEjiHRrk0QKZe3Xv2ieMhtgRGeLcZQ0mIVn4EY= +google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5/go.mod h1:j3QtIyytwqGr1JUDtYXwtMXWPKsEa5LtzIFN1Wn5WvE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 h1:eaY8u2EuxbRv7c3NiGK0/NedzVsCcV6hDuU5qPX5EGE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5/go.mod h1:M4/wBTSeyLxupu3W3tJtOgB14jILAS/XWPSSa3TAlJc= +google.golang.org/grpc v1.76.0 h1:UnVkv1+uMLYXoIz6o7chp59WfQUYA2ex/BXQ9rHZu7A= +google.golang.org/grpc v1.76.0/go.mod h1:Ju12QI8M6iQJtbcsV+awF5a4hfJMLi4X0JLo94ULZ6c= +google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= +google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= +gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g= diff --git a/dagger/maintenance/main.go b/dagger/maintenance/main.go new file mode 100644 index 0000000..e62a5c1 --- /dev/null +++ b/dagger/maintenance/main.go @@ -0,0 +1,94 @@ +// This dagger module provides maintenance utilities for CloudNativePG +// Postgres extension container images tasks + +package main + +import ( + "context" + "encoding/json" + "maps" + "path" + "slices" + + "dagger/maintenance/internal/dagger" +) + +type Maintenance struct{} + +// Updates the OS dependencies in the system-libs directory for the specified extension(s) +func (m *Maintenance) UpdateOSLibs( + ctx context.Context, +// The source directory containing the extension folders. Defaults to the current directory +// +ignore=["dagger", ".github"] +// +defaultPath="/" + source *dagger.Directory, +// The target extension to update OS libs for. Defaults to "all". +// +default="all" + target string, +) (*dagger.Directory, error) { + extDir := source + if target != "all" { + extDir = source.Filter(dagger.DirectoryFilterOpts{ + Include: []string{path.Join(target, "**")}, + }) + } + + targetExtensions, err := extensionsWithOSLibs(ctx, extDir) + if err != nil { + return source, err + } + + const systemLibsDir = "system-libs" + includeDirs := make([]string, 0, len(targetExtensions)) + + for dir, extension := range targetExtensions { + targetDir := path.Join(dir, systemLibsDir) + includeDirs = append(includeDirs, targetDir) + + matrix, err := parseBuildMatrix(ctx, source, dir) + if err != nil { + return nil, err + } + + files := make([]*dagger.File, 0, len(matrix.Distributions)+len(matrix.MajorVersions)) + for _, distribution := range matrix.Distributions { + for _, majorVersion := range matrix.MajorVersions { + file, err := updateOSLibsOnTarget( + ctx, + extension, + distribution, + majorVersion, + ) + if err != nil { + return source, err + } + files = append(files, file) + } + } + source = source.WithFiles(targetDir, files) + } + + return source.Filter(dagger.DirectoryFilterOpts{ + Include: includeDirs, + }), nil +} + +// Return a list in JSON format of the extensions requiring OS libs updates +func (m *Maintenance) UpdateOSLibsTargets( + ctx context.Context, +// The source directory containing the extension folders. Defaults to the current directory +// +ignore=["dagger", ".github"] +// +defaultPath="/" + source *dagger.Directory, +) (string, error) { + targetExtensions, err := extensionsWithOSLibs(ctx, source) + if err != nil { + return "", err + } + jsonTargets, err := json.Marshal(slices.Sorted(maps.Keys(targetExtensions))) + if err != nil { + return "", err + } + + return string(jsonTargets), nil +} diff --git a/dagger/maintenance/parse.go b/dagger/maintenance/parse.go new file mode 100644 index 0000000..185abad --- /dev/null +++ b/dagger/maintenance/parse.go @@ -0,0 +1,105 @@ +package main + +import ( + "context" + "encoding/json" + "path" + + "github.com/docker/buildx/bake" + "github.com/hashicorp/hcl/v2" + "github.com/hashicorp/hcl/v2/hclsimple" + + "dagger/maintenance/internal/dagger" +) + +type buildMatrix struct { + Distributions []string + MajorVersions []string +} + +type extensionMetadata struct { + Name string `hcl:"name" cty:"name"` + AutoUpdateOsLibs bool `hcl:"auto_update_os_libs" cty:"auto_update_os_libs"` + Remain hcl.Body `hcl:",remain"` +} + +const ( + bakeFileName = "docker-bake.hcl" + metadataFile = "metadata.hcl" +) + +func parseBuildMatrix(ctx context.Context, source *dagger.Directory, target string) (*buildMatrix, error) { + bakeData, err := source.File( + bakeFileName).Contents(ctx) + if err != nil { + return nil, err + } + metadata, err := source.File( + path.Join(target, metadataFile)).Contents(ctx) + if err != nil { + return nil, err + } + _, p, err := bake.ParseFiles([]bake.File{ + { + Name: bakeFileName, + Data: []byte(bakeData), + }, + { + Name: metadataFile, + Data: []byte(metadata), + }, + }, nil) + if err != nil { + return nil, err + } + + var matrix buildMatrix + + for _, variable := range p.AllVariables { + switch variable.Name { + case "distributions": + if variable.Value != nil { + var arr []string + if err := json.Unmarshal([]byte(*variable.Value), &arr); err != nil { + return nil, err + } + matrix.Distributions = arr + } + case "pgVersions": + if variable.Value != nil { + var arr []string + if err := json.Unmarshal([]byte(*variable.Value), &arr); err != nil { + return nil, err + } + matrix.MajorVersions = arr + } + } + } + + return &matrix, nil +} + +func parseExtensionMetadata(ctx context.Context, source *dagger.Directory) (*extensionMetadata, error) { + type Config struct { + Metadata extensionMetadata `hcl:"metadata"` + Remain hcl.Body `hcl:",remain"` + } + + data, err := source.File( + metadataFile).Contents(ctx) + if err != nil { + return nil, err + } + + var rootMeta Config + err = hclsimple.Decode( + metadataFile, + []byte(data), + nil, + &rootMeta, + ) + if err != nil { + return nil, err + } + return &rootMeta.Metadata, nil +} diff --git a/dagger/maintenance/updatelibs.go b/dagger/maintenance/updatelibs.go new file mode 100644 index 0000000..761e8d4 --- /dev/null +++ b/dagger/maintenance/updatelibs.go @@ -0,0 +1,83 @@ +package main + +import ( + "context" + "fmt" + "path" + "regexp" + + "dagger/maintenance/internal/dagger" +) + +func updateOSLibsOnTarget( + ctx context.Context, + target string, + distribution string, + majorVersion string, +) (*dagger.File, error) { + postgresBaseImage := fmt.Sprintf("ghcr.io/cloudnative-pg/postgresql:%s-minimal-%s", + majorVersion, + distribution) + packageName := fmt.Sprintf("postgresql-%s-%s", majorVersion, target) + out, err := dag.Container(). + From(postgresBaseImage). + WithUser("root"). + WithExec([]string{"apt-get", "update"}). + WithExec([]string{"bash", + "-c", + "apt-get install -qq --print-uris --no-install-recommends " + packageName, + }).Stdout(ctx) + if err != nil { + return nil, err + } + var re = regexp.MustCompile(`(?m)^.*\s(lib\S*).*(MD5Sum:.*)$`) + matches := re.FindAllStringSubmatch(out, -1) + var result string + for _, m := range matches { + if len(m) >= 3 { + result += m[1] + " " + m[2] + "\n" + } + } + file := dag.File(fmt.Sprintf("%s-%s-os-libs.txt", majorVersion, distribution), result) + return file, nil +} + +func extensionsWithOSLibs( + ctx context.Context, + source *dagger.Directory, +) (map[string]string, error) { + dirs, err := extensionsDirectories(ctx, source) + if err != nil { + return nil, err + } + + extensions := make(map[string]string, 0) + for _, dir := range dirs { + metadata, err := parseExtensionMetadata(ctx, dir) + if err != nil { + return nil, err + } + if metadata.AutoUpdateOsLibs { + dirName, err := dir.Name(ctx) + if err != nil { + return nil, err + } + extensions[path.Dir(dirName)] = metadata.Name + } + } + + return extensions, nil +} + +func extensionsDirectories(ctx context.Context, source *dagger.Directory) ([]*dagger.Directory, error) { + paths, err := source.Glob(ctx, path.Join("**", metadataFile)) + if err != nil { + return nil, err + } + directories := make([]*dagger.Directory, 0, len(paths)) + for _, p := range paths { + directories = append(directories, source.Directory(path.Dir(p))) + } + + return directories, nil +} diff --git a/pgaudit/metadata.hcl b/pgaudit/metadata.hcl index b1996db..7cdf53a 100644 --- a/pgaudit/metadata.hcl +++ b/pgaudit/metadata.hcl @@ -6,6 +6,7 @@ metadata = { extension_control_path = [] dynamic_library_path = [] ld_library_path = [] + auto_update_os_libs = false versions = { bookworm = { diff --git a/pgvector/metadata.hcl b/pgvector/metadata.hcl index a1c3744..c8ca281 100644 --- a/pgvector/metadata.hcl +++ b/pgvector/metadata.hcl @@ -6,6 +6,7 @@ metadata = { extension_control_path = [] dynamic_library_path = [] ld_library_path = [] + auto_update_os_libs = false versions = { bookworm = { From 9751dbbb877c1c4245689dd5325a54294ce6c786 Mon Sep 17 00:00:00 2001 From: Gabriele Fedi Date: Thu, 4 Dec 2025 14:31:43 +0100 Subject: [PATCH 03/12] ci: update os deps with dagger Signed-off-by: Gabriele Fedi --- .github/workflows/update_os_libraries.yml | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/.github/workflows/update_os_libraries.yml b/.github/workflows/update_os_libraries.yml index 09805c9..50ff0d7 100644 --- a/.github/workflows/update_os_libraries.yml +++ b/.github/workflows/update_os_libraries.yml @@ -23,18 +23,17 @@ jobs: with: persist-credentials: false + - name: Install Dagger + env: + # renovate: datasource=github-tags depName=dagger/dagger versioning=semver + DAGGER_VERSION: 0.19.7 + run: | + curl -L https://dl.dagger.io/dagger/install.sh | BIN_DIR=$HOME/.local/bin sh + - name: Fetch extensions id: get-extensions run: | - EXTENSIONS=() - all_extensions=$(find . -type f -name metadata.hcl -exec dirname {} \; | sed 's|^\./||') - for e in ${all_extensions}; do - AUTO_UPDATE_OS_LIBS=$(sed -n 's/.*auto_update_os_libs *= *//p' "$e/metadata.hcl") - if [[ $AUTO_UPDATE_OS_LIBS == "true" ]]; then - EXTENSIONS+=("$e") - fi - done - EXTENSIONS_JSON=$(printf "%s\n" "${EXTENSIONS[@]}" | jq -R -s -c 'split("\n")[:-1]') + EXTENSIONS_JSON=$(dagger call -m ./dagger/maintenance/ update-oslibs-targets) echo "extensions=$EXTENSIONS_JSON" >> $GITHUB_OUTPUT update-extension-os-libs: @@ -57,10 +56,9 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Update OS libs for ${{ matrix.extension }} - env: - EXTENSION_NAME: ${{ matrix.extension }} run: | - make update-os-libs-$EXTENSION_NAME + dagger call -m ./dagger/maintenance/ update-oslibs --target ${{ matrix.extension }} \ + export --path . - name: Diff run: | From f2c2f933e2c5ac6a60613235be3cca3517a26b11 Mon Sep 17 00:00:00 2001 From: Gabriele Fedi Date: Thu, 4 Dec 2025 14:34:20 +0100 Subject: [PATCH 04/12] chore: remove generated files Signed-off-by: Gabriele Fedi --- postgis/system-libs/18-bookworm-os-libs.txt | 73 ------------------ postgis/system-libs/18-trixie-os-libs.txt | 84 --------------------- 2 files changed, 157 deletions(-) delete mode 100644 postgis/system-libs/18-bookworm-os-libs.txt delete mode 100644 postgis/system-libs/18-trixie-os-libs.txt diff --git a/postgis/system-libs/18-bookworm-os-libs.txt b/postgis/system-libs/18-bookworm-os-libs.txt deleted file mode 100644 index 7593691..0000000 --- a/postgis/system-libs/18-bookworm-os-libs.txt +++ /dev/null @@ -1,73 +0,0 @@ -libaec0_1.0.6-1+b1_amd64.deb MD5Sum:42611bf8032dad2d74c26d8dc084d322 -libaom3_3.6.0-1+deb12u2_amd64.deb MD5Sum:faae50e521d9a6f39d96953961a2b1f9 -libarmadillo11_1%3a11.4.2+dfsg-1_amd64.deb MD5Sum:0ec736fe1888c654c32c3812add9d61d -libarpack2_3.8.0-3_amd64.deb MD5Sum:8a6381bedc3a4e5eae4af899a804c8c5 -libblas3_3.11.0-2_amd64.deb MD5Sum:b39744800600a80ae852251a16c03d09 -libblosc1_1.21.3+ds-1_amd64.deb MD5Sum:7f3b0f7da1e478f24df9069e4bfb9567 -libboost-serialization1.74.0_1.74.0+ds1-21_amd64.deb MD5Sum:db154c4708c5a4641abfee7ee4ad3dad -libbrotli1_1.0.9-2+b6_amd64.deb MD5Sum:58aff9bd35bab67549bdc84eb7edffcf -libcfitsio10_4.2.0-3_amd64.deb MD5Sum:c9e785735af14b6a90fc80990a634eb2 -libcurl3-gnutls_7.88.1-10+deb12u14_amd64.deb MD5Sum:519c5af2270952ce9727d0c70cc87e75 -libcurl4_7.88.1-10+deb12u14_amd64.deb MD5Sum:72a0750a6cbd7bf11a832966a933fe13 -libdav1d6_1.0.0-2+deb12u1_amd64.deb MD5Sum:e041891f3cff962c8ecd994865318ee3 -libde265-0_1.0.11-1+deb12u2_amd64.deb MD5Sum:27c287d4fd4e486eb99514cf973cef67 -libdeflate0_1.14-1_amd64.deb MD5Sum:e505f1277c856889aa2b539320e3e154 -libexpat1_2.5.0-1+deb12u2_amd64.deb MD5Sum:f5150efb6f21c50361fc1971ab8de870 -libfontconfig1_2.14.1-4_amd64.deb MD5Sum:522c4fa1fecd36d0f11eb6970fcd1364 -libfreetype6_2.12.1+dfsg-5+deb12u4_amd64.deb MD5Sum:8ee3bd604ace008bee4083b14746dedb -libfreexl1_1.0.6-2_amd64.deb MD5Sum:7c2dce7741605298d647487bc584cf36 -libfyba0_4.1.1-8_amd64.deb MD5Sum:972a096e93e0a5bc5b3e5ddcb839178a -libgdal32_3.6.2+dfsg-1+b2_amd64.deb MD5Sum:47a52cb4e21a3ef5a54f277ede0d9c5a -libgeos-c1v5_3.11.1-1_amd64.deb MD5Sum:e2a4c121ff086ade41053030e7069731 -libgeos3.11.1_3.11.1-1_amd64.deb MD5Sum:2cc7fd4a03bdcfcb6e8846054520280b -libgeotiff5_1.7.1-2+b1_amd64.deb MD5Sum:31740ac80f3b6d2fe054ae61de84fb29 -libgfortran5_12.2.0-14+deb12u1_amd64.deb MD5Sum:8a65db502e5fead6b00b77cb649547a6 -libgif7_5.2.1-2.5_amd64.deb MD5Sum:2dc4f441af51115e5f8367d7d6e9b50a -libgmpxx4ldbl_2%3a6.2.1+dfsg1-1.1_amd64.deb MD5Sum:39d27d05b4c898b58bf6643534a3f56a -libhdf4-0-alt_4.2.15-5_amd64.deb MD5Sum:b4c73847eedba3a520ee217208efe6cc -libhdf5-103-1_1.10.8+repack1-1_amd64.deb MD5Sum:99fa047a59160d481d5c8623e66d5b5b -libhdf5-hl-100_1.10.8+repack1-1_amd64.deb MD5Sum:16fd3bf27d8e53d8f65f5fe2b4585dbb -libheif1_1.15.1-1+deb12u1_amd64.deb MD5Sum:548fef31d81accc00bc48be783a6820c -libjbig0_2.1-6.1_amd64.deb MD5Sum:5e126e3852ae239341c233a50690e2d6 -libjpeg62-turbo_1%3a2.1.5-2_amd64.deb MD5Sum:c43c12e2144cad5b82c10d63dcc57ecd -libjson-c5_0.16-2_amd64.deb MD5Sum:f2f6ecf1d26a6e0716cc2cda7a542e52 -libkmlbase1_1.3.0-10_amd64.deb MD5Sum:ade5c0c1c3f065c907046e1bb2a25bab -libkmldom1_1.3.0-10_amd64.deb MD5Sum:0a4c395f2daf8f76507e0837a0660984 -libkmlengine1_1.3.0-10_amd64.deb MD5Sum:9ae0159850a4bdb2cdaecf4d93b2f295 -liblapack3_3.11.0-2_amd64.deb MD5Sum:9f13955c7feaec22a05d6491c3bc2730 -liblcms2-2_2.14-2_amd64.deb MD5Sum:42afbab2e9ece636fe24d93bff4fb11e -liblerc4_4.0.0+ds-2_amd64.deb MD5Sum:100ad75d6812ac853407f24c40076b02 -libltdl7_2.4.7-7~deb12u1_amd64.deb MD5Sum:a02756178c3360b03d56768e366357a4 -libmariadb3_1%3a10.11.14-0+deb12u2_amd64.deb MD5Sum:3df3e924e24c2732f336ebad560f6c81 -libminizip1_1.1-8+deb12u1_amd64.deb MD5Sum:6b6bb50435ee99ca1c9b7da3afb88a56 -libmpfr6_4.2.0-1_amd64.deb MD5Sum:123b9bedbbff443884957045b7228f83 -libnetcdf19_1%3a4.9.0-3+b1_amd64.deb MD5Sum:e73d40a2b2af5352e4451c844229c121 -libnghttp2-14_1.52.0-1+deb12u2_amd64.deb MD5Sum:ece467e644497f898d202ea0e5955cb2 -libnspr4_2%3a4.35-1_amd64.deb MD5Sum:1f8e0fda3f2527e0051768abd071c2fe -libnss3_2%3a3.87.1-1+deb12u1_amd64.deb MD5Sum:1b9542eb4f27a2e1b41d0c902fa8939e -libodbc2_2.3.11-2+deb12u1_amd64.deb MD5Sum:972c6044a881b768dc5c714bc41957b7 -libodbcinst2_2.3.11-2+deb12u1_amd64.deb MD5Sum:7c3f95926a167983c8c79137fe6fdb6d -libogdi4.1_4.1.0+ds-6_amd64.deb MD5Sum:bca573b90eb2ef8e6fa4c7ab66c77927 -libopenjp2-7_2.5.0-2+deb12u2_amd64.deb MD5Sum:f1eebf6b2fff9e531e0386d35fd9e1e6 -libpng16-16_1.6.39-2_amd64.deb MD5Sum:75ed53f30fb73cf2d197d5a87fed907b -libpoppler126_22.12.0-2+deb12u1_amd64.deb MD5Sum:1a8e3334bd9dc09a1b91e002f4c88c02 -libproj25_9.1.1-1+b1_amd64.deb MD5Sum:c21fd1eb543b730bbb79ef8d0144b3d1 -libprotobuf-c1_1.4.1-1+b1_amd64.deb MD5Sum:649286a7feeba56045ca99dd97e0ca58 -libpsl5_0.21.2-1_amd64.deb MD5Sum:37ebfb57fdbf01631629ee9f36c8b478 -libqhull-r8.0_2020.2-5_amd64.deb MD5Sum:781260a36cd4d65a86fc349f26b68338 -libquadmath0_12.2.0-14+deb12u1_amd64.deb MD5Sum:82b5224e36c58f519837f7f4a224d89d -librtmp1_2.4+20151223.gitfa8646d.1-2+b2_amd64.deb MD5Sum:d757abb668fc1ee0d9488805bfb4371e -librttopo1_1.1.0-3_amd64.deb MD5Sum:901bfdc1a4a806d1c9be972018d65368 -libsfcgal1_1.4.1-5_amd64.deb MD5Sum:99a625a0b70865ff07b39652b737e4ba -libsnappy1v5_1.1.9-3_amd64.deb MD5Sum:5867cae0b6dcc8238ac96d31523f2907 -libspatialite7_5.0.1-3_amd64.deb MD5Sum:fb95bb6433ea0a15f712372b1afcf3b5 -libssh2-1_1.10.0-3+b1_amd64.deb MD5Sum:14bb6443448b5fc0477e7c76ca9ba4a5 -libsuperlu5_5.3.0+dfsg1-2+b1_amd64.deb MD5Sum:304793a168ca3212c7240dc5cf68add3 -libsz2_1.0.6-1+b1_amd64.deb MD5Sum:6ab72da8580d02d7cb0d8c968fc83c36 -libtiff6_4.5.0-6+deb12u3_amd64.deb -libtirpc-common_1.3.3+ds-1_all.deb MD5Sum:e49aca93814724ed80fa8932a1f7523b -libtirpc3_1.3.3+ds-1_amd64.deb MD5Sum:b759d3e9dc474c3404da044249e84d2b -liburiparser1_0.9.7+dfsg-2_amd64.deb MD5Sum:7cf05c028b38acd81c591e4f6a112f49 -libwebp7_1.2.4-0.2+deb12u1_amd64.deb MD5Sum:19f6c9801f036b0615b9bf650c3ee1fa -libx265-199_3.5-2+b1_amd64.deb MD5Sum:e34942e4ea1c8063121bb734849b2cc0 -libxerces-c3.2_3.2.4+debian-1_amd64.deb MD5Sum:760e093e5b3528cfdd8a8d6cada2cfbb diff --git a/postgis/system-libs/18-trixie-os-libs.txt b/postgis/system-libs/18-trixie-os-libs.txt deleted file mode 100644 index f311852..0000000 --- a/postgis/system-libs/18-trixie-os-libs.txt +++ /dev/null @@ -1,84 +0,0 @@ -libabsl20240722_20240722.0-4_amd64.deb MD5Sum:5407414647aace5e70314f16ff0aeb99 -libaec0_1.1.3-1+b1_amd64.deb MD5Sum:883972a56ece3b4d19cb9c220dbfeafc -libaom3_3.12.1-1_amd64.deb MD5Sum:c7dffeadfdb1999123bdbf14b3e91253 -libarmadillo14_1%3a14.2.3+dfsg-1+b1_amd64.deb MD5Sum:a0536f4ee4b36dc4f685f98587774fa0 -libarpack2t64_3.9.1-6_amd64.deb MD5Sum:d346826fbe0c2d876c779b2291a517ba -libavif16_1.2.1-1.2_amd64.deb MD5Sum:c1583daf87a2cc83a8a311be3f4bc3b5 -libblas3_3.12.1-6_amd64.deb MD5Sum:009269addf607682ff0a0def1acfbafe -libblosc1_1.21.5+ds-1+b2_amd64.deb MD5Sum:6640bac3b9912e70a7fb004338fde1a8 -libboost-serialization1.83.0_1.83.0-4.2_amd64.deb MD5Sum:0db3c604d979abcd786c51e623ca413d -libbrotli1_1.1.0-2+b7_amd64.deb MD5Sum:e268acc326140ae9f1731f335335fc8d -libcfitsio10t64_4.6.2-2_amd64.deb MD5Sum:856f7ba809c5e389e30d711356d158d9 -libcurl3t64-gnutls_8.14.1-2+deb13u2_amd64.deb MD5Sum:bdb9635f46ab5f4ed057e14dfa12c3cd -libcurl4t64_8.14.1-2+deb13u2_amd64.deb MD5Sum:14495a2bf1fe6f95d760fd6896923fbd -libdav1d7_1.5.1-1_amd64.deb MD5Sum:00fd1a932f4d979ef320ea7522f07957 -libde265-0_1.0.15-1+b3_amd64.deb MD5Sum:0c323aaaf6ea41343412aa9da949ef36 -libdeflate0_1.23-2_amd64.deb MD5Sum:7c4b5c0d85726d2d9475d48d3587c775 -libexpat1_2.7.1-2_amd64.deb MD5Sum:f679d79b2aaecfcb335274627a04960c -libfontconfig1_2.15.0-2.3_amd64.deb MD5Sum:51964bf406139551c59047e6cbdd4940 -libfreetype6_2.13.3+dfsg-1_amd64.deb MD5Sum:524c5fb5949c0b3612d29922a3d1f518 -libfreexl1_2.0.0-1+b3_amd64.deb MD5Sum:ce2afecace86bac19538fe0d2937fd0b -libfyba0t64_4.1.1-11+b1_amd64.deb MD5Sum:6c7b2e808aaa789019f8fec42e3b39a5 -libgav1-1_0.19.0-3+b1_amd64.deb MD5Sum:e93049581b24b0e191dd28725918bcac -libgdal36_3.10.3+dfsg-1_amd64.deb MD5Sum:81da37ecbe94b471a807d1f03da1370d -libgeos-c1t64_3.13.1-1_amd64.deb MD5Sum:2a47e1e868bf7ca4bc20d1c85c34ea90 -libgeos3.13.1_3.13.1-1_amd64.deb MD5Sum:47aa57bc0672c6f07edf3762a76f46b7 -libgeotiff5_1.7.4-1_amd64.deb MD5Sum:cde344178cfd6dd8706a86ba587ec534 -libgfortran5_14.2.0-19_amd64.deb MD5Sum:4aa25c9245458f20151c1fa228d9209c -libgif7_5.2.2-1+b1_amd64.deb MD5Sum:35d26913676cf9f5ddf40063629a2ddd -libgmpxx4ldbl_2%3a6.3.0+dfsg-3_amd64.deb MD5Sum:0eb52296a1673c00ff182a65ca9dda52 -libgpgme11t64_1.24.2-3_amd64.deb MD5Sum:0e26d3e34af7581bda9fd6086fd29cc7 -libgpgmepp6t64_1.24.2-3_amd64.deb MD5Sum:9b6067de043f9224848364739828216b -libhdf4-0-alt_4.3.0-1+b1_amd64.deb MD5Sum:d55ae40aad48594e1b02fd87f3c6c061 -libhdf5-310_1.14.5+repack-3_amd64.deb MD5Sum:b96e3a5656dcd4452dee459ba4ac10e1 -libhdf5-hl-310_1.14.5+repack-3_amd64.deb MD5Sum:c8b307b772cb08cea54e85056be5cd09 -libheif-plugin-dav1d_1.19.8-1_amd64.deb MD5Sum:5cc75db5bb05cbf3c3e03d21620882f7 -libheif-plugin-libde265_1.19.8-1_amd64.deb MD5Sum:351ffb8509c45d7db37628f722d013c0 -libheif1_1.19.8-1_amd64.deb MD5Sum:4e065e74764b4e6e4481f335867973a4 -libjbig0_2.1-6.1+b2_amd64.deb MD5Sum:590134f899b900c7c9f8f87cf750ea63 -libjpeg62-turbo_1%3a2.1.5-4_amd64.deb MD5Sum:529794778276370a5b4830dbd8481747 -libjson-c5_0.18+ds-1_amd64.deb MD5Sum:2afaa0abf1f11e7f2d5aa1e789148632 -libkmlbase1t64_1.3.0-12+b2_amd64.deb MD5Sum:d900c2d72fed6fb0b4cb10c1f61a1b54 -libkmldom1t64_1.3.0-12+b2_amd64.deb MD5Sum:32ecd5e632b2240d7db08d5ad1325799 -libkmlengine1t64_1.3.0-12+b2_amd64.deb MD5Sum:968869335d7f7bb993f06eee8b06daa3 -liblapack3_3.12.1-6_amd64.deb MD5Sum:070d94c9032ed79d6d1a7a3b992ac78c -liblcms2-2_2.16-2_amd64.deb MD5Sum:9dc25d9e86bccedc0d2b52b8c2838e58 -liblerc4_4.0.0+ds-5_amd64.deb MD5Sum:8c5933a75125eed15b466c16bf201bfa -libltdl7_2.5.4-4_amd64.deb MD5Sum:74f1031b3bb67ba2d0395689fb05d7b0 -libmariadb3_1%3a11.8.3-0+deb13u1_amd64.deb MD5Sum:8d87f1572af1806d76fc47e74123512d -libminizip1t64_1%3a1.3.dfsg+really1.3.1-1+b1_amd64.deb MD5Sum:4fd908eee3d3daac83c9746532996757 -libmpfr6_4.2.2-1_amd64.deb MD5Sum:839426828463b5c4df709f97e7433015 -libnetcdf22_1%3a4.9.3-1_amd64.deb MD5Sum:9b823d6203627dde68efd86176aa1153 -libnghttp2-14_1.64.0-1.1_amd64.deb MD5Sum:be477fe14db067cc30059ed0aa9cdabe -libnghttp3-9_1.8.0-1_amd64.deb MD5Sum:6b1f90e4153530a76878e9fde0244c66 -libngtcp2-16_1.11.0-1_amd64.deb MD5Sum:bb2aa637e4b61495c53f11cf83707649 -libngtcp2-crypto-gnutls8_1.11.0-1_amd64.deb MD5Sum:0dcb7a63254e77fe5fb8808fdba676fa -libnspr4_2%3a4.36-1_amd64.deb MD5Sum:dc825d7a7868119890f38608de1b5e21 -libnss3_2%3a3.110-1_amd64.deb MD5Sum:67f2d9d60250ba7c0e8a079066795a63 -libodbc2_2.3.12-2_amd64.deb MD5Sum:39e2300a1ab5d5a16de5c22bffabbefd -libodbcinst2_2.3.12-2_amd64.deb MD5Sum:8d70f2bdc4494da9678d6d5b14cef135 -libogdi4.1_4.1.1+ds-5_amd64.deb MD5Sum:6c910ba088247ac4bb86c1603f9c5534 -libopenjp2-7_2.5.3-2.1~deb13u1_amd64.deb MD5Sum:08d52c2f65ad153c466bc133463b4566 -libpng16-16t64_1.6.48-1_amd64.deb MD5Sum:0850124cc5a49a8d654d8ee6c4027fe4 -libpoppler147_25.03.0-5+deb13u2_amd64.deb MD5Sum:b2bbe0f83c7f67176ab9b6800b86fac5 -libproj25_9.6.0-1_amd64.deb MD5Sum:cf5a9d654805f47dc18e83f4ef2af4f6 -libprotobuf-c1_1.5.1-1_amd64.deb MD5Sum:ed43e30035030e79da9b324cb68d9f8d -libpsl5t64_0.21.2-1.1+b1_amd64.deb MD5Sum:09aa06d971ce5ff6d02b452c0e1f15f9 -libqhull-r8.0_2020.2-6+b2_amd64.deb MD5Sum:3b0b21663513226a208f039abea3ad47 -librav1e0.7_0.7.1-9+b2_amd64.deb MD5Sum:fab57a130388143574c34f30d233d3fa -librtmp1_2.4+20151223.gitfa8646d.1-2+b5_amd64.deb MD5Sum:355aeaaf937d70dcc873a458f6244c6e -librttopo1_1.1.0-4_amd64.deb MD5Sum:b522568252b7ba63b0c4f87300400be9 -libsfcgal2_2.0.0-1_amd64.deb MD5Sum:d9f4f4b59f2cae34bbaaa000ba7dc4a8 -libsharpyuv0_1.5.0-0.1_amd64.deb MD5Sum:438d9fd296a1102dfa7f001641d8857a -libsnappy1v5_1.2.2-1_amd64.deb MD5Sum:5e2457205f23689a487168e17d9d4b7e -libspatialite8t64_5.1.0-3+b2_amd64.deb MD5Sum:631307d38ff2755f5955023345b0b05d -libssh2-1t64_1.11.1-1_amd64.deb MD5Sum:d4b36da8909e226c1829bf9c07aca38c -libsvtav1enc2_2.3.0+dfsg-1_amd64.deb MD5Sum:8246119a4f34194b2952d38703a823b3 -libsz2_1.1.3-1+b1_amd64.deb MD5Sum:1d27983f2f9ef5efd8b47652603560cd -libtiff6_4.7.0-3+deb13u1_amd64.deb MD5Sum:a3978a2540d6d52de7fbe3983b1000ec -libtirpc-common_1.3.6+ds-1_all.deb MD5Sum:d536fb98a02d3d13a7b1a29e3a038131 -libtirpc3t64_1.3.6+ds-1_amd64.deb MD5Sum:a53fcff1f56e64fb19db15eb07756ddd -liburiparser1_0.9.8+dfsg-2_amd64.deb MD5Sum:235a70c2df22baa76a41c55799f073c6 -libwebp7_1.5.0-0.1_amd64.deb MD5Sum:bf682e1e438b4927c3807cad4ca6c1a9 -libxerces-c3.2t64_3.2.4+debian-1.3+b2_amd64.deb MD5Sum:628296c5bffd1ebd4aa0cd5baeee9732 -libyuv0_0.0.1904.20250204-1_amd64.deb MD5Sum:aaf4af94f3459bb17f4ee43dbd31a0ea From 535483eaed8c1c20e8bd23809a2980caac64b99a Mon Sep 17 00:00:00 2001 From: Gabriele Fedi Date: Thu, 4 Dec 2025 14:35:48 +0100 Subject: [PATCH 05/12] chore: revert makefile Signed-off-by: Gabriele Fedi --- Makefile | 42 ------------------------------------------ 1 file changed, 42 deletions(-) diff --git a/Makefile b/Makefile index 755f89d..e670f7a 100644 --- a/Makefile +++ b/Makefile @@ -11,25 +11,9 @@ ifeq ($(DIRS),) $(error No subdirectories with metadata.hcl files found) endif -# Default supported distributions -DISTROS := $(shell sed -n '/variable "distributions"/,/}/ { s/^[[:space:]]*"\([^"]*\)".*/\1/p }' docker-bake.hcl) -# Default supported PostgreSQL majors -POSTGRES_MAJORS := $(shell sed -n '/variable "pgVersions"/,/]/ { s/^[[:space:]]*"\([^"]*\)".*/\1/p }' docker-bake.hcl) - -# Find all extensions with AUTO_UPDATE_OS_LIBS = true -EXTENSIONS_WITH_OS_LIBS := $(shell \ - for dir in $(DIRS); do \ - value=$$(sed -n 's/.*auto_update_os_libs *= *//p' "$$dir/metadata.hcl" | tr -d ' '); \ - if [ "$$value" = "true" ]; then echo "$$dir"; fi; \ - done \ -) - # Create push targets for each directory PUSH_TARGETS := $(addprefix push-,$(DIRS)) -# Create UPDATE_OS_LIBS targets for each extension -UPDATE_OS_LIBS_TARGETS := $(addprefix update-os-libs-,$(EXTENSIONS_WITH_OS_LIBS)) - .PHONY: all check prereqs push $(DIRS) $(PUSH_TARGETS) # Colours @@ -64,32 +48,6 @@ check: prereqs docker buildx bake -f $(dir)/metadata.hcl -f docker-bake.hcl --check; \ ) -# -------------------------- -# Update OS libraries for all images -# -------------------------- -update-os-libs: prereqs $(UPDATE_OS_LIBS_TARGETS) - @echo -e "$(GREEN)======================================================$(NC)" - @echo -e "$(GREEN)OS libraries update for all projects: $(EXTENSIONS_WITH_OS_LIBS)$(NC)" - @echo -e "$(GREEN)======================================================$(NC)" - -# -------------------------- -# Generic per-project OS libraries update -# Usage: make update-os-libs- -# -------------------------- -$(UPDATE_OS_LIBS_TARGETS): update-os-libs-%: prereqs - @echo -e "$(BLUE)Performing an OS libraries update for $*...$(NC)" - @mkdir -p "$*/system-libs" ;\ - for DISTRO in $(DISTROS); do \ - for MAJOR in $(POSTGRES_MAJORS); do \ - docker run --rm -u 0 "ghcr.io/cloudnative-pg/postgresql:18-minimal-$$DISTRO" \ - bash -c "apt-get update >/dev/null; apt-get install -qq --print-uris --no-install-recommends postgresql-$$MAJOR-$*" \ - | cut -d ' ' -f 2,4 \ - | grep '^lib' \ - | sort \ - > "$*/system-libs/$$MAJOR-$$DISTRO-os-libs.txt"; \ - done; \ - done - # -------------------------- # Push all images # -------------------------- From 79eda59038b33e0e45efc6bf1e7945a1cbe06f35 Mon Sep 17 00:00:00 2001 From: Gabriele Fedi Date: Thu, 4 Dec 2025 14:53:24 +0100 Subject: [PATCH 06/12] fix: install dagger in each job Signed-off-by: Gabriele Fedi --- .github/workflows/update_os_libraries.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/update_os_libraries.yml b/.github/workflows/update_os_libraries.yml index 50ff0d7..e5e814d 100644 --- a/.github/workflows/update_os_libraries.yml +++ b/.github/workflows/update_os_libraries.yml @@ -55,6 +55,13 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Install Dagger + env: + # renovate: datasource=github-tags depName=dagger/dagger versioning=semver + DAGGER_VERSION: 0.19.7 + run: | + curl -L https://dl.dagger.io/dagger/install.sh | BIN_DIR=$HOME/.local/bin sh + - name: Update OS libs for ${{ matrix.extension }} run: | dagger call -m ./dagger/maintenance/ update-oslibs --target ${{ matrix.extension }} \ From 66536067419f7ce5c137465b3c9035d794062543 Mon Sep 17 00:00:00 2001 From: Gabriele Fedi Date: Thu, 4 Dec 2025 16:19:06 +0100 Subject: [PATCH 07/12] test Signed-off-by: Gabriele Fedi --- dagger/maintenance/go.mod | 23 ++++++++++++++++------- dagger/maintenance/go.sum | 18 ++++++++++++++++++ 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/dagger/maintenance/go.mod b/dagger/maintenance/go.mod index 2afcaac..e94135e 100644 --- a/dagger/maintenance/go.mod +++ b/dagger/maintenance/go.mod @@ -12,7 +12,9 @@ require ( ) require ( + github.com/99designs/gqlgen v0.17.81 github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect + github.com/Khan/genqlient v0.8.1 github.com/Microsoft/go-winio v0.6.2 // indirect github.com/agext/levenshtein v1.2.3 // indirect github.com/apparentlymart/go-cidr v1.0.1 // indirect @@ -91,6 +93,7 @@ require ( github.com/secure-systems-lab/go-securesystemslib v0.9.1 // indirect github.com/shibumi/go-pathspec v1.3.0 // indirect github.com/sirupsen/logrus v1.9.3 // indirect + github.com/sosodev/duration v1.3.1 // indirect github.com/spf13/cobra v1.10.1 // indirect github.com/spf13/pflag v1.0.10 // indirect github.com/tonistiigi/dchapes-mode v0.0.0-20250318174251-73d941a28323 // indirect @@ -104,24 +107,30 @@ require ( go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.61.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.14.0 + go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 // indirect - go.opentelemetry.io/otel/metric v1.38.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.38.0 // indirect - go.opentelemetry.io/proto/otlp v1.8.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 + go.opentelemetry.io/otel/log v0.14.0 + go.opentelemetry.io/otel/metric v1.38.0 + go.opentelemetry.io/otel/sdk/log v0.14.0 + go.opentelemetry.io/otel/sdk/metric v1.38.0 + go.opentelemetry.io/proto/otlp v1.8.0 go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/crypto v0.42.0 // indirect golang.org/x/mod v0.29.0 // indirect golang.org/x/net v0.44.0 // indirect - golang.org/x/sync v0.17.0 // indirect + golang.org/x/sync v0.17.0 golang.org/x/sys v0.37.0 // indirect golang.org/x/text v0.29.0 // indirect golang.org/x/time v0.14.0 // indirect golang.org/x/tools v0.37.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 // indirect - google.golang.org/grpc v1.76.0 // indirect + google.golang.org/grpc v1.76.0 google.golang.org/protobuf v1.36.10 // indirect ) diff --git a/dagger/maintenance/go.sum b/dagger/maintenance/go.sum index 60f374c..7a8e9ae 100644 --- a/dagger/maintenance/go.sum +++ b/dagger/maintenance/go.sum @@ -1,7 +1,11 @@ +github.com/99designs/gqlgen v0.17.81 h1:kCkN/xVyRb5rEQpuwOHRTYq83i0IuTQg9vdIiwEerTs= +github.com/99designs/gqlgen v0.17.81/go.mod h1:vgNcZlLwemsUhYim4dC1pvFP5FX0pr2Y+uYUoHFb1ig= github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 h1:He8afgbRMd7mFxO99hRNu+6tazq8nFF9lIwo9JFroBk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEKWjV8V+WSxDXJ4NFATAsZjh8iIbsQIg= github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Khan/genqlient v0.8.1 h1:wtOCc8N9rNynRLXN3k3CnfzheCUNKBcvXmVv5zt6WCs= +github.com/Khan/genqlient v0.8.1/go.mod h1:R2G6DzjBvCbhjsEajfRjbWdVglSH/73kSivC9TLWVjU= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/Microsoft/hcsshim v0.14.0-rc.1 h1:qAPXKwGOkVn8LlqgBN8GS0bxZ83hOJpcjxzmlQKxKsQ= @@ -235,6 +239,8 @@ github.com/shibumi/go-pathspec v1.3.0 h1:QUyMZhFo0Md5B8zV8x2tesohbb5kfbpTi9rBnKh github.com/shibumi/go-pathspec v1.3.0/go.mod h1:Xutfslp817l2I1cZvgcfeMQJG5QnU2lh5tVaaMCl3jE= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sosodev/duration v1.3.1 h1:qtHBDMQ6lvMQsL15g4aopM4HEfOaYuhWBw3NPTtlqq4= +github.com/sosodev/duration v1.3.1/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg= github.com/spdx/tools-golang v0.5.5 h1:61c0KLfAcNqAjlg6UNMdkwpMernhw3zVRwDZ2x9XOmk= github.com/spdx/tools-golang v0.5.5/go.mod h1:MVIsXx8ZZzaRWNQpUDhC4Dud34edUYJYecciXgrw5vE= github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s= @@ -283,18 +289,30 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6h go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q= go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8= go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.14.0 h1:OMqPldHt79PqWKOMYIAQs3CxAi7RLgPxwfFSwr4ZxtM= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.14.0/go.mod h1:1biG4qiqTxKiUCtoWDPpL3fB3KxVwCiGw81j3nKMuHE= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0 h1:QQqYw3lkrzwVsoEX0w//EhH/TCnpRdEenKBOOEIMjWc= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0/go.mod h1:gSVQcr17jk2ig4jqJ2DX30IdWH251JcNAecvrqTxH1s= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0 h1:vl9obrcoWVKp/lwl8tRE33853I8Xru9HFbw/skNeLs8= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0/go.mod h1:GAXRxmLJcVM3u22IjTg74zWBrRCKq8BnOqUVLodpcpw= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 h1:Oe2z/BCg5q7k4iXC3cqJxKYg0ieRiOqF0cecFYdPTwk= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0/go.mod h1:ZQM5lAJpOsKnYagGg/zV2krVqTtaVdYdDkhMoX6Oalg= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 h1:lwI4Dc5leUqENgGuQImwLo4WnuXFPetmPpkLi2IrX54= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0/go.mod h1:Kz/oCE7z5wuyhPxsXDuaPteSWqjSBD5YaSdbxZYGbGk= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 h1:aTL7F04bJHUlztTsNGJ2l+6he8c+y/b//eR0jjjemT4= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0/go.mod h1:kldtb7jDTeol0l3ewcmd8SDvx3EmIE7lyvqbasU3QC4= +go.opentelemetry.io/otel/log v0.14.0 h1:2rzJ+pOAZ8qmZ3DDHg73NEKzSZkhkGIua9gXtxNGgrM= +go.opentelemetry.io/otel/log v0.14.0/go.mod h1:5jRG92fEAgx0SU/vFPxmJvhIuDU9E1SUnEQrMlJpOno= go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA= go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI= go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E= go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg= +go.opentelemetry.io/otel/sdk/log v0.14.0 h1:JU/U3O7N6fsAXj0+CXz21Czg532dW2V4gG1HE/e8Zrg= +go.opentelemetry.io/otel/sdk/log v0.14.0/go.mod h1:imQvII+0ZylXfKU7/wtOND8Hn4OpT3YUoIgqJVksUkM= +go.opentelemetry.io/otel/sdk/log/logtest v0.14.0 h1:Ijbtz+JKXl8T2MngiwqBlPaHqc4YCaP/i13Qrow6gAM= +go.opentelemetry.io/otel/sdk/log/logtest v0.14.0/go.mod h1:dCU8aEL6q+L9cYTqcVOk8rM9Tp8WdnHOPLiBgp0SGOA= go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM= go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA= go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE= From d22ef38a6043f0c00d2d21fd10cc52f887d5c263 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niccol=C3=B2=20Fei?= Date: Thu, 4 Dec 2025 17:41:10 +0100 Subject: [PATCH 08/12] chore: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Niccolò Fei --- dagger/maintenance/main.go | 22 +++++++++++----------- dagger/maintenance/parse.go | 20 ++++++-------------- dagger/maintenance/updatelibs.go | 7 +++---- 3 files changed, 20 insertions(+), 29 deletions(-) diff --git a/dagger/maintenance/main.go b/dagger/maintenance/main.go index e62a5c1..0d7ed72 100644 --- a/dagger/maintenance/main.go +++ b/dagger/maintenance/main.go @@ -15,15 +15,15 @@ import ( type Maintenance struct{} -// Updates the OS dependencies in the system-libs directory for the specified extension(s) +// UpdateOSLibs updates the OS dependencies in the system-libs directory for the specified extension(s) func (m *Maintenance) UpdateOSLibs( ctx context.Context, -// The source directory containing the extension folders. Defaults to the current directory -// +ignore=["dagger", ".github"] -// +defaultPath="/" + // The source directory containing the extension folders. Defaults to the current directory + // +ignore=["dagger", ".github"] + // +defaultPath="/" source *dagger.Directory, -// The target extension to update OS libs for. Defaults to "all". -// +default="all" + // The target extension to update OS libs for. Defaults to "all". + // +default="all" target string, ) (*dagger.Directory, error) { extDir := source @@ -50,7 +50,7 @@ func (m *Maintenance) UpdateOSLibs( return nil, err } - files := make([]*dagger.File, 0, len(matrix.Distributions)+len(matrix.MajorVersions)) + files := make([]*dagger.File, 0, len(matrix.Distributions)*len(matrix.MajorVersions)) for _, distribution := range matrix.Distributions { for _, majorVersion := range matrix.MajorVersions { file, err := updateOSLibsOnTarget( @@ -73,12 +73,12 @@ func (m *Maintenance) UpdateOSLibs( }), nil } -// Return a list in JSON format of the extensions requiring OS libs updates +// UpdateOSLibsTargets return a list in JSON format of the extensions requiring OS libs updates func (m *Maintenance) UpdateOSLibsTargets( ctx context.Context, -// The source directory containing the extension folders. Defaults to the current directory -// +ignore=["dagger", ".github"] -// +defaultPath="/" + // The source directory containing the extension folders. Defaults to the current directory + // +ignore=["dagger", ".github"] + // +defaultPath="/" source *dagger.Directory, ) (string, error) { targetExtensions, err := extensionsWithOSLibs(ctx, source) diff --git a/dagger/maintenance/parse.go b/dagger/maintenance/parse.go index 185abad..654c5bf 100644 --- a/dagger/maintenance/parse.go +++ b/dagger/maintenance/parse.go @@ -29,13 +29,11 @@ const ( ) func parseBuildMatrix(ctx context.Context, source *dagger.Directory, target string) (*buildMatrix, error) { - bakeData, err := source.File( - bakeFileName).Contents(ctx) + bakeData, err := source.File(bakeFileName).Contents(ctx) if err != nil { return nil, err } - metadata, err := source.File( - path.Join(target, metadataFile)).Contents(ctx) + metadata, err := source.File(path.Join(target, metadataFile)).Contents(ctx) if err != nil { return nil, err } @@ -54,7 +52,6 @@ func parseBuildMatrix(ctx context.Context, source *dagger.Directory, target stri } var matrix buildMatrix - for _, variable := range p.AllVariables { switch variable.Name { case "distributions": @@ -79,27 +76,22 @@ func parseBuildMatrix(ctx context.Context, source *dagger.Directory, target stri return &matrix, nil } -func parseExtensionMetadata(ctx context.Context, source *dagger.Directory) (*extensionMetadata, error) { +func parseExtensionMetadata(ctx context.Context, extensionDirectory *dagger.Directory) (*extensionMetadata, error) { type Config struct { Metadata extensionMetadata `hcl:"metadata"` Remain hcl.Body `hcl:",remain"` } - data, err := source.File( - metadataFile).Contents(ctx) + data, err := extensionDirectory.File(metadataFile).Contents(ctx) if err != nil { return nil, err } var rootMeta Config - err = hclsimple.Decode( - metadataFile, - []byte(data), - nil, - &rootMeta, - ) + err = hclsimple.Decode(metadataFile, []byte(data), nil, &rootMeta) if err != nil { return nil, err } + return &rootMeta.Metadata, nil } diff --git a/dagger/maintenance/updatelibs.go b/dagger/maintenance/updatelibs.go index 761e8d4..b1cad12 100644 --- a/dagger/maintenance/updatelibs.go +++ b/dagger/maintenance/updatelibs.go @@ -15,9 +15,7 @@ func updateOSLibsOnTarget( distribution string, majorVersion string, ) (*dagger.File, error) { - postgresBaseImage := fmt.Sprintf("ghcr.io/cloudnative-pg/postgresql:%s-minimal-%s", - majorVersion, - distribution) + postgresBaseImage := fmt.Sprintf("ghcr.io/cloudnative-pg/postgresql:%s-minimal-%s", majorVersion, distribution) packageName := fmt.Sprintf("postgresql-%s-%s", majorVersion, target) out, err := dag.Container(). From(postgresBaseImage). @@ -39,6 +37,7 @@ func updateOSLibsOnTarget( } } file := dag.File(fmt.Sprintf("%s-%s-os-libs.txt", majorVersion, distribution), result) + return file, nil } @@ -51,7 +50,7 @@ func extensionsWithOSLibs( return nil, err } - extensions := make(map[string]string, 0) + extensions := make(map[string]string) for _, dir := range dirs { metadata, err := parseExtensionMetadata(ctx, dir) if err != nil { From 691cb2fe49dcaa104383450344b2e3eb30e9b1b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niccol=C3=B2=20Fei?= Date: Thu, 4 Dec 2025 17:57:17 +0100 Subject: [PATCH 09/12] chore: rename to get-oslibs-targets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Niccolò Fei --- dagger/maintenance/main.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dagger/maintenance/main.go b/dagger/maintenance/main.go index 0d7ed72..f00be88 100644 --- a/dagger/maintenance/main.go +++ b/dagger/maintenance/main.go @@ -15,7 +15,7 @@ import ( type Maintenance struct{} -// UpdateOSLibs updates the OS dependencies in the system-libs directory for the specified extension(s) +// Updates the OS dependencies in the system-libs directory for the specified extension(s) func (m *Maintenance) UpdateOSLibs( ctx context.Context, // The source directory containing the extension folders. Defaults to the current directory @@ -73,8 +73,8 @@ func (m *Maintenance) UpdateOSLibs( }), nil } -// UpdateOSLibsTargets return a list in JSON format of the extensions requiring OS libs updates -func (m *Maintenance) UpdateOSLibsTargets( +// Retrieves a list in JSON format of the extensions requiring OS libs updates +func (m *Maintenance) GetOSLibsTargets( ctx context.Context, // The source directory containing the extension folders. Defaults to the current directory // +ignore=["dagger", ".github"] From 90484884d1c4bb21fbfe3c298f9243b24261a3d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niccol=C3=B2=20Fei?= Date: Thu, 4 Dec 2025 18:27:55 +0100 Subject: [PATCH 10/12] fix: ci and renovate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Niccolò Fei --- .github/workflows/update_os_libraries.yml | 4 ++-- renovate.json | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/update_os_libraries.yml b/.github/workflows/update_os_libraries.yml index e5e814d..7f55fb2 100644 --- a/.github/workflows/update_os_libraries.yml +++ b/.github/workflows/update_os_libraries.yml @@ -33,7 +33,7 @@ jobs: - name: Fetch extensions id: get-extensions run: | - EXTENSIONS_JSON=$(dagger call -m ./dagger/maintenance/ update-oslibs-targets) + EXTENSIONS_JSON=$(dagger call -m ./dagger/maintenance/ get-oslibs-targets) echo "extensions=$EXTENSIONS_JSON" >> $GITHUB_OUTPUT update-extension-os-libs: @@ -64,7 +64,7 @@ jobs: - name: Update OS libs for ${{ matrix.extension }} run: | - dagger call -m ./dagger/maintenance/ update-oslibs --target ${{ matrix.extension }} \ + dagger call -m ./dagger/maintenance/ update-oslibs --target ${{ matrix.extension }} \ export --path . - name: Diff diff --git a/renovate.json b/renovate.json index adfd46a..36943af 100644 --- a/renovate.json +++ b/renovate.json @@ -2,7 +2,8 @@ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ "config:recommended", - "docker:pinDigests" + "docker:pinDigests", + "customManagers:githubActionsVersions" ], "enabledManagers": [ "github-actions", From e901e44f182b578372b14faa163ad98e1a52980d Mon Sep 17 00:00:00 2001 From: Marco Nenciarini Date: Fri, 5 Dec 2025 19:19:28 +0100 Subject: [PATCH 11/12] fix: improve security and error handling in OS libs automation Signed-off-by: Marco Nenciarini --- .github/workflows/update_os_libraries.yml | 49 ++++++++++++++--------- dagger/maintenance/updatelibs.go | 26 ++++++++++-- 2 files changed, 52 insertions(+), 23 deletions(-) diff --git a/.github/workflows/update_os_libraries.yml b/.github/workflows/update_os_libraries.yml index 7f55fb2..28c27fd 100644 --- a/.github/workflows/update_os_libraries.yml +++ b/.github/workflows/update_os_libraries.yml @@ -23,18 +23,21 @@ jobs: with: persist-credentials: false - - name: Install Dagger - env: + - name: Fetch extensions + id: get-extensions-dagger + uses: dagger/dagger-for-github@d913e70051faf3b907d4dd96ef1161083c88c644 # v8.2.0 + with: # renovate: datasource=github-tags depName=dagger/dagger versioning=semver - DAGGER_VERSION: 0.19.7 - run: | - curl -L https://dl.dagger.io/dagger/install.sh | BIN_DIR=$HOME/.local/bin sh + version: 0.19.7 + verb: call + module: ./dagger/maintenance/ + args: get-oslibs-targets - - name: Fetch extensions + - name: Set extensions output id: get-extensions run: | - EXTENSIONS_JSON=$(dagger call -m ./dagger/maintenance/ get-oslibs-targets) - echo "extensions=$EXTENSIONS_JSON" >> $GITHUB_OUTPUT + EXTENSIONS='${{ steps.get-extensions-dagger.outputs.output }}' + echo "extensions=$(echo "$EXTENSIONS" | jq -c .)" >> $GITHUB_OUTPUT update-extension-os-libs: name: Update OS libs for ${{ matrix.extension }} @@ -55,26 +58,34 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Install Dagger - env: - # renovate: datasource=github-tags depName=dagger/dagger versioning=semver - DAGGER_VERSION: 0.19.7 - run: | - curl -L https://dl.dagger.io/dagger/install.sh | BIN_DIR=$HOME/.local/bin sh - - name: Update OS libs for ${{ matrix.extension }} - run: | - dagger call -m ./dagger/maintenance/ update-oslibs --target ${{ matrix.extension }} \ - export --path . + uses: dagger/dagger-for-github@d913e70051faf3b907d4dd96ef1161083c88c644 # v8.2.0 + with: + # renovate: datasource=github-tags depName=dagger/dagger versioning=semver + version: 0.19.7 + verb: call + module: ./dagger/maintenance/ + args: update-oslibs --target ${{ matrix.extension }} export --path=. - name: Diff run: | git status git diff + - name: Check for changes + id: check-changes + run: | + if git diff --quiet; then + echo "No changes detected for ${{ matrix.extension }}" + echo "changed=false" >> $GITHUB_OUTPUT + else + echo "Changes detected for ${{ matrix.extension }}" + echo "changed=true" >> $GITHUB_OUTPUT + fi + - name: Create a PR if versions have been updated on main uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7 - if: github.ref == 'refs/heads/main' + if: github.ref == 'refs/heads/main' && steps.check-changes.outputs.changed == 'true' with: token: ${{ secrets.REPO_GHA_PAT }} title: "chore: update ${{ matrix.extension }} OS libraries" diff --git a/dagger/maintenance/updatelibs.go b/dagger/maintenance/updatelibs.go index b1cad12..f30073c 100644 --- a/dagger/maintenance/updatelibs.go +++ b/dagger/maintenance/updatelibs.go @@ -9,6 +9,10 @@ import ( "dagger/maintenance/internal/dagger" ) +// libsRegex matches library dependencies from apt-get output +// Format: library-name MD5Sum:checksum +var libsRegex = regexp.MustCompile(`(?m)^.*\s(lib\S*).*(MD5Sum:.*)$`) + func updateOSLibsOnTarget( ctx context.Context, target string, @@ -17,6 +21,7 @@ func updateOSLibsOnTarget( ) (*dagger.File, error) { postgresBaseImage := fmt.Sprintf("ghcr.io/cloudnative-pg/postgresql:%s-minimal-%s", majorVersion, distribution) packageName := fmt.Sprintf("postgresql-%s-%s", majorVersion, target) + out, err := dag.Container(). From(postgresBaseImage). WithUser("root"). @@ -26,17 +31,30 @@ func updateOSLibsOnTarget( "apt-get install -qq --print-uris --no-install-recommends " + packageName, }).Stdout(ctx) if err != nil { - return nil, err + return nil, fmt.Errorf("failed to fetch OS libs for extension %s (PostgreSQL %s on %s): %w", + target, majorVersion, distribution, err) + } + + matches := libsRegex.FindAllStringSubmatch(out, -1) + if len(matches) == 0 { + return nil, fmt.Errorf("no library dependencies found for extension %s (PostgreSQL %s on %s): apt-get may have failed or package has no lib dependencies", + target, majorVersion, distribution) } - var re = regexp.MustCompile(`(?m)^.*\s(lib\S*).*(MD5Sum:.*)$`) - matches := re.FindAllStringSubmatch(out, -1) + var result string for _, m := range matches { if len(m) >= 3 { result += m[1] + " " + m[2] + "\n" } } - file := dag.File(fmt.Sprintf("%s-%s-os-libs.txt", majorVersion, distribution), result) + + if result == "" { + return nil, fmt.Errorf("parsed empty content for extension %s (PostgreSQL %s on %s): regex matched but extracted no data", + target, majorVersion, distribution) + } + + fileName := fmt.Sprintf("%s-%s-os-libs.txt", majorVersion, distribution) + file := dag.File(fileName, result) return file, nil } From 49e87e1ed2e741d532bbc934340de414c042ee45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niccol=C3=B2=20Fei?= Date: Tue, 9 Dec 2025 13:34:04 +0100 Subject: [PATCH 12/12] chore: add a fix for renovate regexp MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Niccolò Fei --- .github/workflows/update_os_libraries.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/update_os_libraries.yml b/.github/workflows/update_os_libraries.yml index 28c27fd..1afa08d 100644 --- a/.github/workflows/update_os_libraries.yml +++ b/.github/workflows/update_os_libraries.yml @@ -26,9 +26,11 @@ jobs: - name: Fetch extensions id: get-extensions-dagger uses: dagger/dagger-for-github@d913e70051faf3b907d4dd96ef1161083c88c644 # v8.2.0 - with: + env: # renovate: datasource=github-tags depName=dagger/dagger versioning=semver - version: 0.19.7 + DAGGER_VERSION: 0.19.7 + with: + version: ${{ env.DAGGER_VERSION }} verb: call module: ./dagger/maintenance/ args: get-oslibs-targets @@ -60,9 +62,11 @@ jobs: - name: Update OS libs for ${{ matrix.extension }} uses: dagger/dagger-for-github@d913e70051faf3b907d4dd96ef1161083c88c644 # v8.2.0 - with: + env: # renovate: datasource=github-tags depName=dagger/dagger versioning=semver - version: 0.19.7 + DAGGER_VERSION: 0.19.7 + with: + version: ${{ env.DAGGER_VERSION }} verb: call module: ./dagger/maintenance/ args: update-oslibs --target ${{ matrix.extension }} export --path=.