Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package melange for openSUSE:Factory checked 
in at 2023-10-19 22:49:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/melange (Old)
 and      /work/SRC/openSUSE:Factory/.melange.new.1945 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "melange"

Thu Oct 19 22:49:18 2023 rev:3 rq:1118765 version:0.5.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/melange/melange.changes  2023-10-15 
19:29:26.417003929 +0200
+++ /work/SRC/openSUSE:Factory/.melange.new.1945/melange.changes        
2023-10-19 22:51:46.312121182 +0200
@@ -1,0 +2,24 @@
+Thu Oct 19 05:46:49 UTC 2023 - ka...@b1-systems.de
+
+- Update to version 0.5.1:
+  * build(deps): bump github.com/klauspost/compress from 1.17.0 to
+    1.17.1
+  * build(deps): bump google.golang.org/api from 0.146.0 to 0.147.0
+  * build(deps): bump github.com/lima-vm/lima from 0.17.2 to 0.18.0
+  * build(deps): bump github.com/google/go-cmp from 0.5.9 to 0.6.0
+  * Fix a bug where substitutions were not done for runtime.
+  * linter: fix a typo in package linting function
+  * build(deps): bump google.golang.org/api from 0.143.0 to 0.146.0
+  * go mod tidy to shut up linter
+  * Small cleanup
+  * Add function to lint APK files.
+  * build(deps): bump golang.org/x/sync from 0.3.0 to 0.4.0
+  * build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0
+  * Extricate config stuff from linter.
+  * build(deps): bump sigs.k8s.io/release-utils
+  * fix release url path
+  * update deprecated fields
+  * update with 0.5.0 changes
+  * Track vendored deps for .PKGINFO
+
+-------------------------------------------------------------------

Old:
----
  melange-0.5.0.obscpio

New:
----
  melange-0.5.1.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ melange.spec ++++++
--- /var/tmp/diff_new_pack.mpcO4E/_old  2023-10-19 22:51:47.044147732 +0200
+++ /var/tmp/diff_new_pack.mpcO4E/_new  2023-10-19 22:51:47.048147876 +0200
@@ -19,7 +19,7 @@
 %define __arch_install_post export NO_BRP_STRIP_DEBUG=true
 
 Name:           melange
-Version:        0.5.0
+Version:        0.5.1
 Release:        0
 Summary:        Build APKs from source code
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.mpcO4E/_old  2023-10-19 22:51:47.076148892 +0200
+++ /var/tmp/diff_new_pack.mpcO4E/_new  2023-10-19 22:51:47.080149038 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/chainguard-dev/melange</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v0.5.0</param>
+    <param name="revision">v0.5.1</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
     <param name="versionrewrite-pattern">v(.*)</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.mpcO4E/_old  2023-10-19 22:51:47.100149763 +0200
+++ /var/tmp/diff_new_pack.mpcO4E/_new  2023-10-19 22:51:47.100149763 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/chainguard-dev/melange</param>
-              <param 
name="changesrevision">b54700f86a4b7d626b519e0ba064b3b1c7e42fbc</param></service></servicedata>
+              <param 
name="changesrevision">7a6447a11e49892ebc96aa3af965998d7eada939</param></service></servicedata>
 (No newline at EOF)
 

++++++ melange-0.5.0.obscpio -> melange-0.5.1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.5.0/.goreleaser.yaml 
new/melange-0.5.1/.goreleaser.yaml
--- old/melange-0.5.0/.goreleaser.yaml  2023-10-05 01:22:56.000000000 +0200
+++ new/melange-0.5.1/.goreleaser.yaml  2023-10-16 18:21:01.000000000 +0200
@@ -42,16 +42,15 @@
   - files:
       - LICENSE
     wrap_in_directory: true
-    rlcp: true
 
 brews:
   - name: melange
-    tap:
+    repository:
       owner: chainguard-dev
       name: homebrew-tap
       branch: main
       token: "{{ .Env.HOMEBREW_TAP_GITHUB_TOKEN }}"
-    url_template: 
"https://github.com/chainguard-dev/melange/releases/download/{{ .Version }}/{{ 
.ArtifactName }}"
+    url_template: 
"https://github.com/chainguard-dev/melange/releases/download/v{{ .Version }}/{{ 
.ArtifactName }}"
     folder: Formula
     commit_author:
       name: guardian
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.5.0/NEWS.md new/melange-0.5.1/NEWS.md
--- old/melange-0.5.0/NEWS.md   2023-10-05 01:22:56.000000000 +0200
+++ new/melange-0.5.1/NEWS.md   2023-10-16 18:21:01.000000000 +0200
@@ -1,3 +1,153 @@
+# Major changes from 0.4.0 to 0.5.0
+
+* Rename Contexts to Builds by @jonjohnsonjr in 
https://github.com/chainguard-dev/melange/pull/525
+
+* Add missing context propagation by @jonjohnsonjr in 
https://github.com/chainguard-dev/melange/pull/527
+
+* Bug fix: silent env var replacement by @luhring in 
https://github.com/chainguard-dev/melange/pull/533
+
+* Add otel spans by @jonjohnsonjr in 
https://github.com/chainguard-dev/melange/pull/529
+
+* docs: explain how build cache works practically by @luhring in 
https://github.com/chainguard-dev/melange/pull/537
+
+* build: package: forcibly treat libc as a shared library by @kaniini in 
https://github.com/chainguard-dev/melange/pull/538
+
+* Change git-checkout depth default to 1 by @luhring in 
https://github.com/chainguard-dev/melange/pull/539
+
+* Fix/python version issue by @mesaglio in 
https://github.com/chainguard-dev/melange/pull/532
+
+* pull in apko with fix for blank SOURCE_DATE_EPOCH by @deitch in 
https://github.com/chainguard-dev/melange/pull/542
+
+* Remove use of deprecated WaitImmediate by @jonjohnsonjr in 
https://github.com/chainguard-dev/melange/pull/528
+
+* lima startup issues fixed by @deitch in 
https://github.com/chainguard-dev/melange/pull/543
+
+* add dir option to ruby pipelines as not all gemspecs live in the root… by 
@rawlingsj in https://github.com/chainguard-dev/melange/pull/544
+
+* K8s runner template bugs by @joshrwolf in 
https://github.com/chainguard-dev/melange/pull/550
+
+* K8s runner retry exec by @joshrwolf in 
https://github.com/chainguard-dev/melange/pull/549
+
+* Refactor some pipelines to more safely use pipeline expansions by @kaniini 
in https://github.com/chainguard-dev/melange/pull/554
+
+* use go-apk.FullFS for retrieving builder workspaces by @joshrwolf in 
https://github.com/chainguard-dev/melange/pull/548
+
+* Correct the variable name in the patch pipeline by @mattmoor in 
https://github.com/chainguard-dev/melange/pull/555
+
+* Avoid using pargzip for compression by @jonjohnsonjr in 
https://github.com/chainguard-dev/melange/pull/558
+
+* skip the cache mount for kubernetes runner builds by @joshrwolf in 
https://github.com/chainguard-dev/melange/pull/566
+
+* Make sure we log errors. by @mattmoor in 
https://github.com/chainguard-dev/melange/pull/570
+
+* Log errors bundling, enable GGCR Warn/Progress logs by @mattmoor in 
https://github.com/chainguard-dev/melange/pull/574
+
+* add k8s runner config loading from envvars by @joshrwolf in 
https://github.com/chainguard-dev/melange/pull/571
+
+* Remove `wget -q` from `fetch` by @mattmoor in 
https://github.com/chainguard-dev/melange/pull/575
+
+* Tweak the strip pipeline so that it never fails for deleted files by 
@mattmoor in https://github.com/chainguard-dev/melange/pull/573
+
+* convert/python: check if release is found by @Dentrax in 
https://github.com/chainguard-dev/melange/pull/572
+
+* Fix subpackage SBOM generation by @jonjohnsonjr in 
https://github.com/chainguard-dev/melange/pull/569
+
+* renovate: update to use new config infrastructure by @Elizafox in 
https://github.com/chainguard-dev/melange/pull/585
+
+* pipelines: meson/configure: explicitly invoke meson setup action by @kaniini 
in https://github.com/chainguard-dev/melange/pull/582
+
+* Updates on ci and release by @cpanato in 
https://github.com/chainguard-dev/melange/pull/583
+
+* Make var transforms work in bump by @Elizafox in 
https://github.com/chainguard-dev/melange/pull/586
+
+* container: bubblewrap: do not defer closing files by @kaniini in 
https://github.com/chainguard-dev/melange/pull/596
+
+* build: package: add pkgconf-based SCA to catalog SDKs which use it by 
@kaniini in https://github.com/chainguard-dev/melange/pull/590
+
+* Version transform block in melange by @Elizafox in 
https://github.com/chainguard-dev/melange/pull/588
+
+* Add docs about custom pipelines, defining and using. by @vaikas in 
https://github.com/chainguard-dev/melange/pull/604
+
+* Support for setting context in .melange.k8s.yaml by @tcnghia in 
https://github.com/chainguard-dev/melange/pull/605
+
+* allow override go version for uses: go/build and go/install by @rawlingsj in 
https://github.com/chainguard-dev/melange/pull/606
+
+* add melange sign command, slightly refactor and make public the signing 
methods by @joshrwolf in https://github.com/chainguard-dev/melange/pull/607
+
+* support substitutions in provides lists by @imjasonh in 
https://github.com/chainguard-dev/melange/pull/610
+
+* Add ${{targets.contextdir}} by @kaniini in 
https://github.com/chainguard-dev/melange/pull/622
+
+* add --force option to recreate apk indexes with given signatures by 
@joshrwolf in https://github.com/chainguard-dev/melange/pull/626
+
+* cli: index: add --signing-key, --source and --merge options by @kaniini in 
https://github.com/chainguard-dev/melange/pull/629
+
+* feat: support --recurse-submodules in git clone by @stormqueen1990 in 
https://github.com/chainguard-dev/melange/pull/639
+
+* readlinkfs: ignore some security-module specific xattrs by @kaniini in 
https://github.com/chainguard-dev/melange/pull/640
+
+* Add --wolfi-defaults flag, clean up flag handling. by @vaikas in 
https://github.com/chainguard-dev/melange/pull/641
+
+* Add a maven/configure-mirror pipeline to redirect to GCP. by @dlorenc in 
https://github.com/chainguard-dev/melange/pull/644
+
+* add builtin pipelines for python by @imjasonh in 
https://github.com/chainguard-dev/melange/pull/642
+
+* package: dereference symlinks for aliased pkg-config modules by @kaniini in 
https://github.com/chainguard-dev/melange/pull/653
+
+* feat: add output logs for the apkbuild converter by @stormqueen1990 in 
https://github.com/chainguard-dev/melange/pull/660
+
+* Change default python-version from 3.11 to 3. by @vaikas in 
https://github.com/chainguard-dev/melange/pull/649
+
+* feat: add new Perl pipelines for Makefile generation and cleanup by 
@stormqueen1990 in https://github.com/chainguard-dev/melange/pull/657
+
+* add ${{package.full-version}} = ${{package.version}}-r${{package.epoch}} by 
@vaikas in https://github.com/chainguard-dev/melange/pull/662
+
+* config: copy all subpackage variables when doing a range expansion by 
@kaniini in https://github.com/chainguard-dev/melange/pull/661
+
+* docs: add documentation for built-in pipelines by @stormqueen1990 in 
https://github.com/chainguard-dev/melange/pull/665
+
+* construct the package.full-version in higher context than just pipeline. by 
@vaikas in https://github.com/chainguard-dev/melange/pull/667
+
+* package: constrain library SCA to library search paths only by @kaniini in 
https://github.com/chainguard-dev/melange/pull/669
+
+* Add environment var overriding to the pipeline. by @Elizafox in 
https://github.com/chainguard-dev/melange/pull/676
+
+* package: only constrain library search paths for provides entries by 
@kaniini in https://github.com/chainguard-dev/melange/pull/678
+
+* Add pecl pipelines for phpize & install. by @vaikas in 
https://github.com/chainguard-dev/melange/pull/679
+
+* Add regression tests for workdir propagation, fix long-standing bug with 
propagation across referenced pipelines by @kaniini in 
https://github.com/chainguard-dev/melange/pull/681
+
+* git-checkout: Allow tags to matched annotated tag SHAs, don't allow by 
@wlynch in https://github.com/chainguard-dev/melange/pull/686
+
+* Binary package linting by @Elizafox in 
https://github.com/chainguard-dev/melange/pull/680
+
+* add goreleaser pipeline by @developer-guy in 
https://github.com/chainguard-dev/melange/pull/671
+
+* Disable linters on -compat packages by @Elizafox in 
https://github.com/chainguard-dev/melange/pull/691
+
+* log and continue when .pc file can't be loaded by @imjasonh in 
https://github.com/chainguard-dev/melange/pull/694
+
+* Add dev, opt, and srv linters by @Elizafox in 
https://github.com/chainguard-dev/melange/pull/697
+
+* Add worldwrite linter by @Elizafox in 
https://github.com/chainguard-dev/melange/pull/698
+
+* build: do not run linters on skipped subpackages by @kaniini in 
https://github.com/chainguard-dev/melange/pull/701
+
+* Add post-file walk linting and empty package linting by @Elizafox in 
https://github.com/chainguard-dev/melange/pull/700
+
+* Refactor the package linter into a submodule by @Elizafox in 
https://github.com/chainguard-dev/melange/pull/706
+
+* build: refactor package linter invocation by @kaniini in 
https://github.com/chainguard-dev/melange/pull/708
+
+* pipelines: strip: use -g by default when stripping by @kaniini in 
https://github.com/chainguard-dev/melange/pull/722
+
+* update alpine-go to latest git to fix indexing by @kaniini in 
https://github.com/chainguard-dev/melange/pull/723
+
+* Add stripped file linter by @Elizafox in 
https://github.com/chainguard-dev/melange/pull/724
+
+* Enable linters to warn (via callback) instead of just failing. by @mattmoor 
in https://github.com/chainguard-dev/melange/pull/739
+
 # Major changes from 0.3.0 to 0.4.0
 
 * The embedded apko component has been updated to 0.9.0.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.5.0/go.mod new/melange-0.5.1/go.mod
--- old/melange-0.5.0/go.mod    2023-10-05 01:22:56.000000000 +0200
+++ new/melange-0.5.1/go.mod    2023-10-16 18:21:01.000000000 +0200
@@ -7,7 +7,7 @@
 require (
        chainguard.dev/apko v0.10.1-0.20230918194837-e9722fcc3e50
        cloud.google.com/go/storage v1.33.0
-       github.com/chainguard-dev/go-apk v0.0.0-20230906161245-0728258ab917
+       github.com/chainguard-dev/go-apk v0.0.0-20231011214341-9fd940f239fa
        github.com/chainguard-dev/go-pkgconfig 
v0.0.0-20230818193557-bee0072057ce
        github.com/chainguard-dev/kontext v0.1.0
        github.com/chainguard-dev/yam v0.0.0-20230411155911-ba3a3357c32e
@@ -15,18 +15,18 @@
        github.com/dprotaso/go-yit v0.0.0-20220510233725-9ba8df137936
        github.com/dustin/go-humanize v1.0.1
        github.com/go-git/go-git/v5 v5.9.0
-       github.com/google/go-cmp v0.5.9
+       github.com/google/go-cmp v0.6.0
        github.com/google/go-containerregistry v0.16.1
        github.com/google/go-github/v54 v54.0.0
        github.com/ijt/goparsify v0.0.0-20221203142333-3a5276334b8d
        github.com/imdario/mergo v0.3.16
        github.com/joho/godotenv v1.5.1
        github.com/kelseyhightower/envconfig v1.4.0
-       github.com/klauspost/compress v1.17.0
+       github.com/klauspost/compress v1.17.1
        github.com/klauspost/pgzip v1.2.6
        github.com/korovkin/limiter v0.0.0-20221015170604-22eb1ceceddc
        github.com/kubescape/go-git-url v0.0.25
-       github.com/lima-vm/lima v0.17.2
+       github.com/lima-vm/lima v0.18.0
        github.com/opencontainers/image-spec v1.1.0-rc5
        github.com/package-url/packageurl-go v0.1.2
        github.com/pkg/errors v0.9.1
@@ -39,25 +39,26 @@
        gitlab.alpinelinux.org/alpine/go v0.8.1-0.20230928153721-5381bfaecf9b
        go.opentelemetry.io/otel v1.19.0
        golang.org/x/exp v0.0.0-20230905200255-921286631fa9
-       golang.org/x/sync v0.3.0
-       golang.org/x/sys v0.12.0
+       golang.org/x/sync v0.4.0
+       golang.org/x/sys v0.13.0
        golang.org/x/time v0.3.0
-       google.golang.org/api v0.143.0
+       google.golang.org/api v0.147.0
+       gopkg.in/ini.v1 v1.67.0
        gopkg.in/yaml.v3 v3.0.1
        k8s.io/api v0.28.2
        k8s.io/apimachinery v0.28.2
        k8s.io/client-go v0.28.2
        k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9
        knative.dev/pkg v0.0.0-20230531073936-5671699f23d9
-       sigs.k8s.io/release-utils v0.7.5-0.20230601212346-3866fe05b204
+       sigs.k8s.io/release-utils v0.7.5
        sigs.k8s.io/yaml v1.3.0
 )
 
 require (
-       cloud.google.com/go v0.110.7 // indirect
+       cloud.google.com/go v0.110.8 // indirect
        cloud.google.com/go/compute v1.23.0 // indirect
        cloud.google.com/go/compute/metadata v0.2.3 // indirect
-       cloud.google.com/go/iam v1.1.1 // indirect
+       cloud.google.com/go/iam v1.1.2 // indirect
        dario.cat/mergo v1.0.0 // indirect
        github.com/MakeNowJust/heredoc/v2 v2.0.1 // indirect
        github.com/Microsoft/go-winio v0.6.1 // indirect
@@ -66,9 +67,9 @@
        github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // 
indirect
        github.com/cloudflare/circl v1.3.3 // indirect
        github.com/common-nighthawk/go-figure 
v0.0.0-20210622060536-734e95fb86be // indirect
-       github.com/containerd/containerd v1.7.3 // indirect
+       github.com/containerd/containerd v1.7.7 // indirect
        github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect
-       github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
+       github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect
        github.com/cyphar/filepath-securejoin v0.2.4 // indirect
        github.com/davecgh/go-spew v1.1.1 // indirect
        github.com/docker/cli v24.0.5+incompatible // indirect
@@ -95,7 +96,7 @@
        github.com/go-openapi/strfmt v0.21.7 // indirect
        github.com/go-openapi/swag v0.22.4 // indirect
        github.com/go-openapi/validate v0.22.1 // indirect
-       github.com/goccy/go-yaml v1.11.0 // indirect
+       github.com/goccy/go-yaml v1.11.2 // indirect
        github.com/gogo/protobuf v1.3.2 // indirect
        github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // 
indirect
        github.com/golang/protobuf v1.5.3 // indirect
@@ -123,6 +124,8 @@
        github.com/mailru/easyjson v0.7.7 // indirect
        github.com/mattn/go-colorable v0.1.13 // indirect
        github.com/mattn/go-isatty v0.0.19 // indirect
+       github.com/mdlayher/socket v0.4.1 // indirect
+       github.com/mdlayher/vsock v1.2.1 // indirect
        github.com/mitchellh/go-homedir v1.1.0 // indirect
        github.com/mitchellh/mapstructure v1.5.0 // indirect
        github.com/moby/spdystream v0.2.0 // indirect
@@ -155,23 +158,22 @@
        go.opentelemetry.io/otel/metric v1.19.0 // indirect
        go.opentelemetry.io/otel/trace v1.19.0 // indirect
        golang.org/x/build v0.0.0-20230825202850-d75d44855ad1 // indirect
-       golang.org/x/crypto v0.13.0 // indirect
+       golang.org/x/crypto v0.14.0 // indirect
        golang.org/x/mod v0.12.0 // indirect
-       golang.org/x/net v0.15.0 // indirect
-       golang.org/x/oauth2 v0.12.0 // indirect
-       golang.org/x/term v0.12.0 // indirect
+       golang.org/x/net v0.17.0 // indirect
+       golang.org/x/oauth2 v0.13.0 // indirect
+       golang.org/x/term v0.13.0 // indirect
        golang.org/x/text v0.13.0 // indirect
        golang.org/x/tools v0.13.0 // indirect
        golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
        google.golang.org/appengine v1.6.8-0.20221117013220-504804fb50de // 
indirect
-       google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb // 
indirect
-       google.golang.org/genproto/googleapis/api 
v0.0.0-20230913181813-007df8e322eb // indirect
-       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20230920204549-e6e6cdab5c13 // indirect
-       google.golang.org/grpc v1.57.0 // indirect
+       google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // 
indirect
+       google.golang.org/genproto/googleapis/api 
v0.0.0-20231002182017-d307bd883b97 // indirect
+       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20231009173412-8bfb1ae86b6c // indirect
+       google.golang.org/grpc v1.58.2 // indirect
        google.golang.org/protobuf v1.31.0 // indirect
        gopkg.in/go-jose/go-jose.v2 v2.6.1 // indirect
        gopkg.in/inf.v0 v0.9.1 // indirect
-       gopkg.in/ini.v1 v1.67.0 // indirect
        gopkg.in/warnings.v0 v0.1.2 // indirect
        gopkg.in/yaml.v2 v2.4.0 // indirect
        k8s.io/klog/v2 v2.100.1 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.5.0/go.sum new/melange-0.5.1/go.sum
--- old/melange-0.5.0/go.sum    2023-10-05 01:22:56.000000000 +0200
+++ new/melange-0.5.1/go.sum    2023-10-16 18:21:01.000000000 +0200
@@ -19,8 +19,8 @@
 cloud.google.com/go v0.72.0/go.mod 
h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
 cloud.google.com/go v0.74.0/go.mod 
h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
 cloud.google.com/go v0.75.0/go.mod 
h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY=
-cloud.google.com/go v0.110.7 h1:rJyC7nWRg2jWGZ4wSJ5nY65GTdYJkg0cd/uXb+ACI6o=
-cloud.google.com/go v0.110.7/go.mod 
h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI=
+cloud.google.com/go v0.110.8 h1:tyNdfIxjzaWctIiLYOTalaLKZ17SI44SKFW26QbOhME=
+cloud.google.com/go v0.110.8/go.mod 
h1:Iz8AkXJf1qmxC3Oxoep8R1T36w8B92yU29PcBhHO5fk=
 cloud.google.com/go/bigquery v1.0.1/go.mod 
h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
 cloud.google.com/go/bigquery v1.3.0/go.mod 
h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
 cloud.google.com/go/bigquery v1.4.0/go.mod 
h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
@@ -33,8 +33,8 @@
 cloud.google.com/go/compute/metadata v0.2.3/go.mod 
h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
 cloud.google.com/go/datastore v1.0.0/go.mod 
h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
 cloud.google.com/go/datastore v1.1.0/go.mod 
h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
-cloud.google.com/go/iam v1.1.1 h1:lW7fzj15aVIXYHREOqjRBV9PsH0Z6u8Y46a1YGvQP4Y=
-cloud.google.com/go/iam v1.1.1/go.mod 
h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU=
+cloud.google.com/go/iam v1.1.2 h1:gacbrBdWcoVmGLozRuStX45YKvJtzIjJdAolzUs1sm4=
+cloud.google.com/go/iam v1.1.2/go.mod 
h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU=
 cloud.google.com/go/pubsub v1.0.1/go.mod 
h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
 cloud.google.com/go/pubsub v1.1.0/go.mod 
h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
 cloud.google.com/go/pubsub v1.2.0/go.mod 
h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
@@ -78,8 +78,8 @@
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod 
h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 github.com/cespare/xxhash/v2 v2.2.0 
h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
 github.com/cespare/xxhash/v2 v2.2.0/go.mod 
h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/chainguard-dev/go-apk v0.0.0-20230906161245-0728258ab917 
h1:/FvFggKayia7a3cA/UcD18Dtn53/be/EBhPpQla65g8=
-github.com/chainguard-dev/go-apk v0.0.0-20230906161245-0728258ab917/go.mod 
h1:I7uFl3LBMG1UQONJRQN+3lzZE4tw8myh87FzkDEztHg=
+github.com/chainguard-dev/go-apk v0.0.0-20231011214341-9fd940f239fa 
h1:/0YERfoVMpYqZcRTB3iX9f/2uY3D4UHpDMuJ7dPcPNA=
+github.com/chainguard-dev/go-apk v0.0.0-20231011214341-9fd940f239fa/go.mod 
h1:FLVA+cRnxViZTpVd4m10J5IRM3sl9NI7G1Ob4H1lVEg=
 github.com/chainguard-dev/go-pkgconfig v0.0.0-20230818193557-bee0072057ce 
h1:v3SY2sW8rUIxG9wXMxXlMN7sd9VNUSdZ+FnVqOrm2nI=
 github.com/chainguard-dev/go-pkgconfig 
v0.0.0-20230818193557-bee0072057ce/go.mod 
h1:obzGv2cx3tkRgkLQADSPaRl3OEsYmyfSv7t2Wu60tZw=
 github.com/chainguard-dev/kontext v0.1.0 
h1:GFnDRZiqa+anUi7tzZMECXr0nwt4Eo/zMzTQPLRXUIs=
@@ -97,12 +97,13 @@
 github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod 
h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
 github.com/common-nighthawk/go-figure v0.0.0-20210622060536-734e95fb86be 
h1:J5BL2kskAlV9ckgEsNQXscjIaLiOYiZ75d4e94E6dcQ=
 github.com/common-nighthawk/go-figure 
v0.0.0-20210622060536-734e95fb86be/go.mod 
h1:mk5IQ+Y0ZeO87b858TlA645sVcEcbiX6YqP98kt+7+w=
-github.com/containerd/containerd v1.7.3 
h1:cKwYKkP1eTj54bP3wCdXXBymmKRQMrWjkLSWZZJDa8o=
-github.com/containerd/containerd v1.7.3/go.mod 
h1:32FOM4/O0RkNg7AjQj3hDzN9cUGtu+HMvaKUNiqCZB8=
+github.com/containerd/containerd v1.7.7 
h1:QOC2K4A42RQpcrZyptP6z9EJZnlHfHJUfZrAAHe15q4=
+github.com/containerd/containerd v1.7.7/go.mod 
h1:3c4XZv6VeT9qgf9GMTxNTMFxGJrGpI2vz1yk4ye+YY8=
 github.com/containerd/stargz-snapshotter/estargz v0.14.3 
h1:OqlDCK3ZVUO6C3B/5FSkDwbkEETK84kQgEeFwDC+62k=
 github.com/containerd/stargz-snapshotter/estargz v0.14.3/go.mod 
h1:KY//uOCIkSuNAHhJogcZtrNHdKrA99/FCCRjE3HD36o=
-github.com/cpuguy83/go-md2man/v2 v2.0.2 
h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w=
 github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod 
h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+github.com/cpuguy83/go-md2man/v2 v2.0.3 
h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM=
+github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod 
h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
 github.com/creack/pty v1.1.9/go.mod 
h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
 github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY=
 github.com/creack/pty v1.1.18/go.mod 
h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
@@ -246,8 +247,8 @@
 github.com/gobuffalo/packr/v2 v2.0.9/go.mod 
h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ=
 github.com/gobuffalo/packr/v2 v2.2.0/go.mod 
h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0=
 github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod 
h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=
-github.com/goccy/go-yaml v1.11.0 
h1:n7Z+zx8S9f9KgzG6KtQKf+kwqXZlLNR2F6018Dgau54=
-github.com/goccy/go-yaml v1.11.0/go.mod 
h1:H+mJrWtjPTJAHvRbV09MCK9xYwODM+wRTVFFTWckfng=
+github.com/goccy/go-yaml v1.11.2 
h1:joq77SxuyIs9zzxEjgyLBugMQ9NEgTWxXfz2wVqwAaQ=
+github.com/goccy/go-yaml v1.11.2/go.mod 
h1:wKnAMd44+9JAAnGQpWVEgBzGt3YuTaQ4uXoHvE4m7WU=
 github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
 github.com/gogo/protobuf v1.3.2/go.mod 
h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod 
h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
@@ -297,8 +298,8 @@
 github.com/google/go-cmp v0.5.3/go.mod 
h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/go-cmp v0.5.4/go.mod 
h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/go-cmp v0.5.5/go.mod 
h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
-github.com/google/go-cmp v0.5.9/go.mod 
h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
+github.com/google/go-cmp v0.6.0/go.mod 
h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
 github.com/google/go-containerregistry v0.16.1 
h1:rUEt426sR6nyrL3gt+18ibRcvYpKYdpsa5ZW7MA08dQ=
 github.com/google/go-containerregistry v0.16.1/go.mod 
h1:u0qB2l7mvtWVR5kNcbFIhFY1hLbf8eeGapA+vbFDCtQ=
 github.com/google/go-github/v54 v54.0.0 
h1:OZdXwow4EAD5jEo5qg+dGFH2DpkyZvVsAehjvJuUL/c=
@@ -392,8 +393,8 @@
 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.13.6/go.mod 
h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
-github.com/klauspost/compress v1.17.0 
h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM=
-github.com/klauspost/compress v1.17.0/go.mod 
h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
+github.com/klauspost/compress v1.17.1 
h1:NE3C767s2ak2bweCZo3+rdP4U/HoyVXLv/X9f2gPS5g=
+github.com/klauspost/compress v1.17.1/go.mod 
h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
 github.com/klauspost/pgzip v1.2.6 
h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU=
 github.com/klauspost/pgzip v1.2.6/go.mod 
h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod 
h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
@@ -417,8 +418,8 @@
 github.com/letsencrypt/boulder v0.0.0-20230823180119-72e01b337abc/go.mod 
h1:QxVawq7cLEno3oWIpkQfeylV8DzySjOMzQqXnWeyans=
 github.com/lima-vm/go-qcow2reader v0.1.1 
h1:UegxTAU4usoSzKLDqhbaNmmV4Ec4qhQO11QYeLLy7Jc=
 github.com/lima-vm/go-qcow2reader v0.1.1/go.mod 
h1:e3p29BzLT8hNh4jbLezdFAHU4eBijf0bm5GilStCRKE=
-github.com/lima-vm/lima v0.17.2 h1:qW6hJr9pL9UdKJ4DMre0WByq6/C6GABLt1+L6MURXj4=
-github.com/lima-vm/lima v0.17.2/go.mod 
h1:11OhWybhpOY1MEy6v0D2KInRroGFh70EDqu27mJJlmw=
+github.com/lima-vm/lima v0.18.0 h1:zcTLZ8DKpjsjRwsELmKdg5Mu6t7+MJpI1kErUuBq1Ns=
+github.com/lima-vm/lima v0.18.0/go.mod 
h1:uUZjARIvZIVPWVVaJQDlkEBhpFCddIJcCCmC03mxiYs=
 github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod 
h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod 
h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.7.6/go.mod 
h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
@@ -438,6 +439,10 @@
 github.com/mattn/go-isatty v0.0.19/go.mod 
h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
 github.com/matttproud/golang_protobuf_extensions v1.0.4 
h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
 github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod 
h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
+github.com/mdlayher/socket v0.4.1 
h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U=
+github.com/mdlayher/socket v0.4.1/go.mod 
h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA=
+github.com/mdlayher/vsock v1.2.1 
h1:pC1mTJTvjo1r9n9fbm7S1j04rCgCzhCOS5DY0zqHlnQ=
+github.com/mdlayher/vsock v1.2.1/go.mod 
h1:NRfCibel++DgeMD8z/hP+PPTjlNJsdPOmxcnENvE+SE=
 github.com/mitchellh/go-homedir v1.1.0 
h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
 github.com/mitchellh/go-homedir v1.1.0/go.mod 
h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
 github.com/mitchellh/mapstructure v1.3.3/go.mod 
h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
@@ -460,8 +465,9 @@
 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod 
h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod 
h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
 github.com/nxadm/tail v1.4.4/go.mod 
h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
-github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
 github.com/nxadm/tail v1.4.8/go.mod 
h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
+github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY=
+github.com/nxadm/tail v1.4.11/go.mod 
h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc=
 github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4=
 github.com/oklog/ulid v1.3.1/go.mod 
h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
 github.com/onsi/ginkgo v1.6.0/go.mod 
h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
@@ -623,8 +629,8 @@
 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod 
h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
 golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod 
h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
 golang.org/x/crypto v0.7.0/go.mod 
h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
-golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck=
-golang.org/x/crypto v0.13.0/go.mod 
h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
+golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc=
+golang.org/x/crypto v0.14.0/go.mod 
h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod 
h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -707,8 +713,8 @@
 golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
 golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
 golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
-golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8=
-golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
+golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
+golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod 
h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -718,8 +724,8 @@
 golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod 
h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod 
h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod 
h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.12.0 h1:smVPGxink+n1ZI5pkQa8y6fZT0RW0MgCO5bFpepy4B4=
-golang.org/x/oauth2 v0.12.0/go.mod 
h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba4=
+golang.org/x/oauth2 v0.13.0 h1:jDDenyj+WgFtmV3zYVoi8aE2BwtXFLWOA67ZfNWftiY=
+golang.org/x/oauth2 v0.13.0/go.mod 
h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -734,8 +740,8 @@
 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
-golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
+golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ=
+golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -795,15 +801,15 @@
 golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
-golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
+golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod 
h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
 golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
 golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
-golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU=
-golang.org/x/term v0.12.0/go.mod 
h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
+golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek=
+golang.org/x/term v0.13.0/go.mod 
h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
 golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod 
h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod 
h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -907,8 +913,8 @@
 google.golang.org/api v0.35.0/go.mod 
h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg=
 google.golang.org/api v0.36.0/go.mod 
h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE=
 google.golang.org/api v0.40.0/go.mod 
h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8=
-google.golang.org/api v0.143.0 h1:o8cekTkqhywkbZT6p1UHJPZ9+9uuCAJs/KYomxZB8fA=
-google.golang.org/api v0.143.0/go.mod 
h1:FoX9DO9hT7DLNn97OuoZAGSDuNAXdJRuGK98rSUgurk=
+google.golang.org/api v0.147.0 h1:Can3FaQo9LlVqxJCodNmeZW/ib3/qKAY3rFeXiHo5gc=
+google.golang.org/api v0.147.0/go.mod 
h1:pQ/9j83DcmPd/5C9e2nFOdjjNkDZ1G+zkbK2uvdkJMs=
 google.golang.org/appengine v1.1.0/go.mod 
h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 google.golang.org/appengine v1.4.0/go.mod 
h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 google.golang.org/appengine v1.5.0/go.mod 
h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
@@ -954,12 +960,12 @@
 google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod 
h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod 
h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod 
h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb 
h1:XFBgcDwm7irdHTbz4Zk2h7Mh+eis4nfJEFQFYzJzuIA=
-google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb/go.mod 
h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4=
-google.golang.org/genproto/googleapis/api v0.0.0-20230913181813-007df8e322eb 
h1:lK0oleSc7IQsUxO3U5TjL9DWlsxpEBemh+zpB7IqhWI=
-google.golang.org/genproto/googleapis/api 
v0.0.0-20230913181813-007df8e322eb/go.mod 
h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 
h1:N3bU/SQDCDyD6R528GJ/PwW9KjYcJA3dgyH+MovAkIM=
-google.golang.org/genproto/googleapis/rpc 
v0.0.0-20230920204549-e6e6cdab5c13/go.mod 
h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA=
+google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 
h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0=
+google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod 
h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk=
+google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 
h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU=
+google.golang.org/genproto/googleapis/api 
v0.0.0-20231002182017-d307bd883b97/go.mod 
h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c 
h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY=
+google.golang.org/genproto/googleapis/rpc 
v0.0.0-20231009173412-8bfb1ae86b6c/go.mod 
h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0=
 google.golang.org/grpc v1.19.0/go.mod 
h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 google.golang.org/grpc v1.20.1/go.mod 
h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
 google.golang.org/grpc v1.21.1/go.mod 
h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
@@ -976,8 +982,8 @@
 google.golang.org/grpc v1.33.2/go.mod 
h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
 google.golang.org/grpc v1.34.0/go.mod 
h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
 google.golang.org/grpc v1.35.0/go.mod 
h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
-google.golang.org/grpc v1.57.0 h1:kfzNeI/klCGD2YPMUlaGNT3pxvYfga7smW3Vth8Zsiw=
-google.golang.org/grpc v1.57.0/go.mod 
h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo=
+google.golang.org/grpc v1.58.2 h1:SXUpjxeVF3FKrTYQI4f4KvbGD5u2xccdYdurwowix5I=
+google.golang.org/grpc v1.58.2/go.mod 
h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0=
 google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod 
h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
 google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod 
h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
 google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod 
h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@@ -1023,8 +1029,8 @@
 gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/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.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY=
-gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
+gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU=
+gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
 honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod 
h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod 
h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod 
h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
@@ -1053,8 +1059,8 @@
 rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
 sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd 
h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
 sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod 
h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
-sigs.k8s.io/release-utils v0.7.5-0.20230601212346-3866fe05b204 
h1:oB0LGHHXwo1zRnJpcnvQ8oIH25dF3BPsdpcNy8lFAVs=
-sigs.k8s.io/release-utils v0.7.5-0.20230601212346-3866fe05b204/go.mod 
h1:RKLCuHoXJRu4AdFL61n6j4o7cE8dPVruL1Bzn2Yn0AU=
+sigs.k8s.io/release-utils v0.7.5 
h1:0DYUWILqT0rirJ+8Vrp+Fr8jG8Q32ejFnulkahOvEao=
+sigs.k8s.io/release-utils v0.7.5/go.mod 
h1:GZGWmbINwsLGKsoZKTeWUGp4F+Rbwhq4XDtJ45N+dLw=
 sigs.k8s.io/structured-merge-diff/v4 v4.2.3 
h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
 sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod 
h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
 sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.5.0/pkg/build/build.go 
new/melange-0.5.1/pkg/build/build.go
--- old/melange-0.5.0/pkg/build/build.go        2023-10-05 01:22:56.000000000 
+0200
+++ new/melange-0.5.1/pkg/build/build.go        2023-10-16 18:21:01.000000000 
+0200
@@ -1067,7 +1067,6 @@
                // add the main package to the linter queue
                lintTarget := linterTarget{
                        pkgName: b.Configuration.Package.Name,
-                       checks:  b.Configuration.Package.Checks,
                }
                linterQueue = append(linterQueue, lintTarget)
        }
@@ -1121,7 +1120,6 @@
                // add the main package to the linter queue
                lintTarget := linterTarget{
                        pkgName: sp.Name,
-                       checks:  sp.Checks,
                }
                linterQueue = append(linterQueue, lintTarget)
        }
@@ -1139,7 +1137,7 @@
 
                path := filepath.Join(b.WorkspaceDir, "melange-out", lt.pkgName)
                fsys := os.DirFS(path)
-               lctx := linter.NewLinterContext(lt.pkgName, fsys, 
&b.Configuration, &lt.checks)
+               lctx := linter.NewLinterContext(lt.pkgName, fsys)
                linters := lt.checks.GetLinters()
 
                var innerErr error
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.5.0/pkg/build/package.go 
new/melange-0.5.1/pkg/build/package.go
--- old/melange-0.5.0/pkg/build/package.go      2023-10-05 01:22:56.000000000 
+0200
+++ new/melange-0.5.1/pkg/build/package.go      2023-10-16 18:21:01.000000000 
+0200
@@ -54,6 +54,8 @@
 // concurrent builds on giant machines, and uses only 1 core on tiny machines.
 var pgzipThreads = min(runtime.GOMAXPROCS(0), 8)
 
+var libDirs = []string{"lib", "usr/lib", "lib64", "usr/lib64"}
+
 func min(l, r int) int {
        if l < r {
                return l
@@ -203,6 +205,9 @@
 {{- range $dep := .Dependencies.Replaces }}
 replaces = {{ $dep }}
 {{- end }}
+{{- range $dep := .Dependencies.Vendored }}
+# vendored = {{ $dep }}
+{{- end }}
 {{- if .Dependencies.ProviderPriority }}
 provider_priority = {{ .Dependencies.ProviderPriority }}
 {{- end }}
@@ -397,7 +402,6 @@
 // dereferenceCrossPackageSymlink attempts to dereference a symlink across 
multiple package
 // directories.
 func (pc *PackageBuild) dereferenceCrossPackageSymlink(path string) (string, 
error) {
-       libDirs := []string{"lib", "usr/lib", "lib64", "usr/lib64"}
        targetPackageNames := []string{pc.PackageName, 
pc.Build.Configuration.Package.Name}
        realPath, err := os.Readlink(filepath.Join(pc.WorkspaceSubdir(), path))
        if err != nil {
@@ -529,11 +533,6 @@
                        // Ugh: libc.so.6 has an PT_INTERP set on itself to 
make the `/lib/libc.so.6 --about`
                        // functionality work.  So we always generate provides 
entries for libc.
                        if !pc.Options.NoProvides && (interp == "" || 
strings.HasPrefix(basename, "libc")) {
-                               libDirs := []string{"lib", "usr/lib", "lib64", 
"usr/lib64"}
-                               if !allowedPrefix(path, libDirs) {
-                                       return nil
-                               }
-
                                sonames, err := ef.DynString(elf.DT_SONAME)
                                // most likely SONAME is not set on this object
                                if err != nil {
@@ -551,7 +550,11 @@
                                                libver = "0"
                                        }
 
-                                       generated.Provides = 
append(generated.Provides, fmt.Sprintf("so:%s=%s", soname, libver))
+                                       if allowedPrefix(path, libDirs) {
+                                               generated.Provides = 
append(generated.Provides, fmt.Sprintf("so:%s=%s", soname, libver))
+                                       } else {
+                                               generated.Vendored = 
append(generated.Vendored, fmt.Sprintf("so:%s=%s", soname, libver))
+                                       }
                                }
                        }
                }
@@ -686,7 +689,13 @@
                }
        }
 
-       newruntime := append(pc.Dependencies.Runtime, generated.Runtime...)
+       // Only consider vendored deps for self-provided generated runtime deps.
+       // If a runtime dep is explicitly configured, assume we actually do 
need it.
+       // This gives us an escape hatch in melange config in case there is a 
runtime
+       // dep that we don't want to be satisfied by a vendored dep.
+       unvendored := removeSelfProvidedDeps(generated.Runtime, 
generated.Vendored)
+
+       newruntime := append(pc.Dependencies.Runtime, unvendored...)
        pc.Dependencies.Runtime = dedup(newruntime)
 
        newprovides := append(pc.Dependencies.Provides, generated.Provides...)
@@ -694,6 +703,9 @@
 
        pc.Dependencies.Runtime = 
removeSelfProvidedDeps(pc.Dependencies.Runtime, pc.Dependencies.Provides)
 
+       // Sets .PKGINFO `# vendored = ...` comments; does not affect 
resolution.
+       pc.Dependencies.Vendored = generated.Vendored
+
        pc.Dependencies.Summarize(pc.Logger)
 
        return nil
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.5.0/pkg/cli/sign.go 
new/melange-0.5.1/pkg/cli/sign.go
--- old/melange-0.5.0/pkg/cli/sign.go   2023-10-05 01:22:56.000000000 +0200
+++ new/melange-0.5.1/pkg/cli/sign.go   2023-10-16 18:21:01.000000000 +0200
@@ -23,7 +23,7 @@
        "log"
        "os"
 
-       "github.com/chainguard-dev/go-apk/pkg/apk"
+       "github.com/chainguard-dev/go-apk/pkg/expandapk"
        sign "github.com/chainguard-dev/go-apk/pkg/signature"
        "github.com/klauspost/compress/gzip"
        "github.com/spf13/cobra"
@@ -204,7 +204,7 @@
                return err
        }
 
-       eapk, err := apk.ExpandApk(ctx, apkr, "")
+       eapk, err := expandapk.ExpandApk(ctx, apkr, "")
        if err != nil {
                return fmt.Errorf("expanding apk: %w", err)
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.5.0/pkg/config/config.go 
new/melange-0.5.1/pkg/config/config.go
--- old/melange-0.5.0/pkg/config/config.go      2023-10-05 01:22:56.000000000 
+0200
+++ new/melange-0.5.1/pkg/config/config.go      2023-10-16 18:21:01.000000000 
+0200
@@ -148,6 +148,27 @@
        return nil
 }
 
+func (cfg *Configuration) applySubstitutionsForRuntime() error {
+       nw := buildConfigMap(cfg)
+       for i, runtime := range cfg.Package.Dependencies.Runtime {
+               var err error
+               cfg.Package.Dependencies.Runtime[i], err = 
util.MutateStringFromMap(nw, runtime)
+               if err != nil {
+                       return fmt.Errorf("failed to apply replacement to 
provides %q: %w", runtime, err)
+               }
+       }
+       for _, srt := range cfg.Subpackages {
+               for i, prov := range srt.Dependencies.Runtime {
+                       var err error
+                       srt.Dependencies.Runtime[i], err = 
util.MutateStringFromMap(nw, prov)
+                       if err != nil {
+                               return fmt.Errorf("failed to apply replacement 
to provides %q: %w", prov, err)
+                       }
+               }
+       }
+       return nil
+}
+
 type Copyright struct {
        // Optional: The license paths, typically '*'
        Paths []string `yaml:"paths,omitempty"`
@@ -437,6 +458,10 @@
        // Optional: An integer compared against other equal package provides 
used to
        // determine priority
        ProviderPriority int `yaml:"provider-priority,omitempty"`
+
+       // List of self-provided dependencies found outside of lib directories
+       // ("lib", "usr/lib", "lib64", or "usr/lib64").
+       Vendored []string `yaml:"-"`
 }
 
 type ConfigurationParsingOption func(*configOptions)
@@ -795,6 +820,9 @@
        if err := cfg.applySubstitutionsForProvides(); err != nil {
                return nil, err
        }
+       if err := cfg.applySubstitutionsForRuntime(); err != nil {
+               return nil, err
+       }
 
        // Propagate all child pipelines
        cfg.propagatePipelines()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.5.0/pkg/config/config_test.go 
new/melange-0.5.1/pkg/config/config_test.go
--- old/melange-0.5.0/pkg/config/config_test.go 2023-10-05 01:22:56.000000000 
+0200
+++ new/melange-0.5.1/pkg/config/config_test.go 2023-10-16 18:21:01.000000000 
+0200
@@ -17,6 +17,9 @@
   epoch: 7
   description: example using a replacement in provides
   dependencies:
+    runtime:
+      - ${{package.name}}-config
+      - ${{vars.bar}}
     provides:
       - replacement-provides-version=${{package.version}}
       - replacement-provides-foo=${{vars.foo}}
@@ -30,6 +33,9 @@
 subpackages:
   - name: subpackage
     dependencies:
+      runtime:
+        - ${{package.name}}-config-${{package.version}}
+        - ${{vars.foo}}
       provides:
         - subpackage-version=${{package.version}}
         - subpackage-foo=${{vars.foo}}
@@ -53,6 +59,16 @@
                "subpackage-foo=FOO",
                "subpackage-bar=BAR",
        }, cfg.Subpackages[0].Dependencies.Provides)
+
+       require.Equal(t, []string{
+               "replacement-provides-config",
+               "BAR",
+       }, cfg.Package.Dependencies.Runtime)
+
+       require.Equal(t, []string{
+               "replacement-provides-config-0.0.1",
+               "FOO",
+       }, cfg.Subpackages[0].Dependencies.Runtime)
 }
 
 func Test_propagatePipelines(t *testing.T) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.5.0/pkg/linter/linter.go 
new/melange-0.5.1/pkg/linter/linter.go
--- old/melange-0.5.0/pkg/linter/linter.go      2023-10-05 01:22:56.000000000 
+0200
+++ new/melange-0.5.1/pkg/linter/linter.go      2023-10-16 18:21:01.000000000 
+0200
@@ -15,6 +15,7 @@
 package linter
 
 import (
+       "context"
        "debug/elf"
        "fmt"
        "io"
@@ -23,18 +24,18 @@
        "path/filepath"
        "regexp"
 
-       "chainguard.dev/melange/pkg/config"
+       apkofs "github.com/chainguard-dev/go-apk/pkg/fs"
+
+       "gopkg.in/ini.v1"
 )
 
 type LinterContext struct {
        pkgname string
        fsys    fs.FS
-       cfg     *config.Configuration
-       chk     *config.Checks
 }
 
-func NewLinterContext(name string, fsys fs.FS, cfg *config.Configuration, chk 
*config.Checks) LinterContext {
-       return LinterContext{name, fsys, cfg, chk}
+func NewLinterContext(name string, fsys fs.FS) LinterContext {
+       return LinterContext{name, fsys}
 }
 
 type linterFunc func(lctx LinterContext, path string, d fs.DirEntry) error
@@ -348,3 +349,36 @@
 
        return nil
 }
+
+func LintApk(ctx context.Context, path string, warn func(error), linters 
[]string) error {
+       apkfs, err := apkofs.NewAPKFS(ctx, path)
+       if err != nil {
+               return err
+       }
+
+       // Get the package name
+       f, err := apkfs.Open("./.PKGINFO")
+       if err != nil {
+               return err
+       }
+       defer f.Close()
+
+       data, err := io.ReadAll(f)
+       if err != nil {
+               return err
+       }
+
+       cfg, err := ini.Load(data)
+       if err != nil {
+               return err
+       }
+
+       pkgname := cfg.Section("").Key("pkgname").MustString("")
+       if pkgname == "" {
+               return fmt.Errorf("pkgname is nonexistent")
+       }
+
+       lctx := NewLinterContext(pkgname, apkfs)
+
+       return lctx.LintPackageFs(apkfs, warn, linters)
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.5.0/pkg/linter/linter_test.go 
new/melange-0.5.1/pkg/linter/linter_test.go
--- old/melange-0.5.0/pkg/linter/linter_test.go 2023-10-05 01:22:56.000000000 
+0200
+++ new/melange-0.5.1/pkg/linter/linter_test.go 2023-10-16 18:21:01.000000000 
+0200
@@ -45,7 +45,7 @@
        linters := cfg.Package.Checks.GetLinters()
        assert.Equal(t, linters, []string{"empty"})
        fsys := os.DirFS(dir)
-       lctx := NewLinterContext(cfg.Package.Name, fsys, &cfg, 
&cfg.Package.Checks)
+       lctx := NewLinterContext(cfg.Package.Name, fsys)
        called := false
        assert.NoError(t, lctx.LintPackageFs(fsys, func(err error) {
                called = true
@@ -78,7 +78,7 @@
        linters := cfg.Package.Checks.GetLinters()
        assert.Equal(t, linters, []string{"usrlocal"})
        fsys := os.DirFS(dir)
-       lctx := NewLinterContext(cfg.Package.Name, fsys, &cfg, 
&cfg.Package.Checks)
+       lctx := NewLinterContext(cfg.Package.Name, fsys)
        called := false
        assert.NoError(t, lctx.LintPackageFs(fsys, func(err error) {
                called = true
@@ -112,7 +112,7 @@
        linters := cfg.Package.Checks.GetLinters()
        assert.Equal(t, linters, []string{"varempty"})
        fsys := os.DirFS(dir)
-       lctx := NewLinterContext(cfg.Package.Name, fsys, &cfg, 
&cfg.Package.Checks)
+       lctx := NewLinterContext(cfg.Package.Name, fsys)
        called := false
        assert.NoError(t, lctx.LintPackageFs(fsys, func(err error) {
                called = true
@@ -146,7 +146,7 @@
        linters := cfg.Package.Checks.GetLinters()
        assert.Equal(t, linters, []string{"dev"})
        fsys := os.DirFS(dir)
-       lctx := NewLinterContext(cfg.Package.Name, fsys, &cfg, 
&cfg.Package.Checks)
+       lctx := NewLinterContext(cfg.Package.Name, fsys)
        called := false
        assert.NoError(t, lctx.LintPackageFs(fsys, func(err error) {
                called = true
@@ -180,7 +180,7 @@
        linters := cfg.Package.Checks.GetLinters()
        assert.Equal(t, linters, []string{"opt"})
        fsys := os.DirFS(dir)
-       lctx := NewLinterContext(cfg.Package.Name, fsys, &cfg, 
&cfg.Package.Checks)
+       lctx := NewLinterContext(cfg.Package.Name, fsys)
        called := false
        assert.NoError(t, lctx.LintPackageFs(fsys, func(err error) {
                called = true
@@ -214,7 +214,7 @@
        linters := cfg.Package.Checks.GetLinters()
        assert.Equal(t, linters, []string{"srv"})
        fsys := os.DirFS(dir)
-       lctx := NewLinterContext(cfg.Package.Name, fsys, &cfg, 
&cfg.Package.Checks)
+       lctx := NewLinterContext(cfg.Package.Name, fsys)
        called := false
        assert.NoError(t, lctx.LintPackageFs(fsys, func(err error) {
                called = true
@@ -260,7 +260,7 @@
        assert.NoError(t, err)
        _, err = os.Create(filename)
        assert.NoError(t, err)
-       lctx := NewLinterContext(cfg.Package.Name, fsys, &cfg, 
&cfg.Package.Checks)
+       lctx := NewLinterContext(cfg.Package.Name, fsys)
        called := false
        assert.NoError(t, lctx.LintPackageFs(fsys, func(err error) {
                called = true
@@ -319,7 +319,7 @@
        linters := cfg.Package.Checks.GetLinters()
        assert.Equal(t, linters, []string{"setuidgid"})
        fsys := os.DirFS(dir)
-       lctx := NewLinterContext(cfg.Package.Name, fsys, &cfg, 
&cfg.Package.Checks)
+       lctx := NewLinterContext(cfg.Package.Name, fsys)
        called := false
        assert.NoError(t, lctx.LintPackageFs(fsys, func(err error) {
                called = true
@@ -352,7 +352,7 @@
        linters := cfg.Package.Checks.GetLinters()
        assert.Equal(t, linters, []string{"worldwrite"})
        fsys := os.DirFS(dir)
-       lctx := NewLinterContext(cfg.Package.Name, fsys, &cfg, 
&cfg.Package.Checks)
+       lctx := NewLinterContext(cfg.Package.Name, fsys)
        called := false
        assert.NoError(t, lctx.LintPackageFs(fsys, func(err error) {
                called = true
@@ -425,7 +425,7 @@
 
        linters := cfg.Package.Checks.GetLinters()
        fsys := os.DirFS(dir)
-       lctx := NewLinterContext(cfg.Package.Name, fsys, &cfg, 
&cfg.Package.Checks)
+       lctx := NewLinterContext(cfg.Package.Name, fsys)
        called := false
        assert.NoError(t, lctx.LintPackageFs(fsys, func(err error) {
                called = true

++++++ melange.obsinfo ++++++
--- /var/tmp/diff_new_pack.mpcO4E/_old  2023-10-19 22:51:47.408160935 +0200
+++ /var/tmp/diff_new_pack.mpcO4E/_new  2023-10-19 22:51:47.412161079 +0200
@@ -1,5 +1,5 @@
 name: melange
-version: 0.5.0
-mtime: 1696461776
-commit: b54700f86a4b7d626b519e0ba064b3b1c7e42fbc
+version: 0.5.1
+mtime: 1697473261
+commit: 7a6447a11e49892ebc96aa3af965998d7eada939
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/melange/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.melange.new.1945/vendor.tar.gz differ: char 5, line 
1

Reply via email to