diff --git a/internal/cli/publish_test.go b/internal/cli/publish_test.go index 6a5daeece..758c3b9d5 100644 --- a/internal/cli/publish_test.go +++ b/internal/cli/publish_test.go @@ -100,7 +100,7 @@ func TestPublish(t *testing.T) { // This test will fail if we ever make a change in apko that changes the image. // Sometimes, this is intentional, and we need to change this and bump the version. - want := "sha256:b0fb49df7ff53c00f076854213ec9b8d2ac1b04ff7bf872dc262487b849b12b0" + want := "sha256:9b91fa497fd0c04b5e9be1c7e619aa51994f41b77d1fc1cb407804a9bea0aadd" require.Equal(t, want, digest.String()) // Check that the sbomPath is not empty. @@ -174,7 +174,7 @@ func TestPublishLayering(t *testing.T) { // This test will fail if we ever make a change in apko that changes the image. // Sometimes, this is intentional, and we need to change this and bump the version. - want := "sha256:ec5ec0579b8edabcea15445d3058aa0b844bf2fb1122d19b35f555251857b9df" + want := "sha256:e8e7c20a3d7090b2a68ff8be512e8161ec60a72801821b8bde8dedff30f883d6" require.Equal(t, want, digest.String()) im, err := idx.IndexManifest() diff --git a/internal/cli/testdata/golden/blobs/sha256/69f0237c7f8cf0b8a329d1bf1d6870c870c4ec323e39d3a6da59596632d0f2f4 b/internal/cli/testdata/golden/blobs/sha256/01b30a8033ff006a6415e12ad15044945893ed8eb8adaaae94e3614864400fd4 similarity index 54% rename from internal/cli/testdata/golden/blobs/sha256/69f0237c7f8cf0b8a329d1bf1d6870c870c4ec323e39d3a6da59596632d0f2f4 rename to internal/cli/testdata/golden/blobs/sha256/01b30a8033ff006a6415e12ad15044945893ed8eb8adaaae94e3614864400fd4 index b08eaa114..405b02ebc 100644 --- a/internal/cli/testdata/golden/blobs/sha256/69f0237c7f8cf0b8a329d1bf1d6870c870c4ec323e39d3a6da59596632d0f2f4 +++ b/internal/cli/testdata/golden/blobs/sha256/01b30a8033ff006a6415e12ad15044945893ed8eb8adaaae94e3614864400fd4 @@ -1 +1 @@ -{"schemaVersion":2,"mediaType":"application/vnd.oci.image.manifest.v1+json","config":{"mediaType":"application/vnd.oci.image.config.v1+json","size":658,"digest":"sha256:6c815259150f37d000417f9a93f41bddf74dff905c745986069d4b03e954ac1d"},"layers":[{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","size":3072,"digest":"sha256:c7557730da0e2d7fb242d8d1ac6dcf7e3a2439732aa5981270b4f3a02454b738"}],"annotations":{"org.opencontainers.image.created":"1970-01-01T00:00:00Z","org.opencontainers.image.title":"Title","org.opencontainers.image.vendor":"Vendor"}} \ No newline at end of file +{"schemaVersion":2,"mediaType":"application/vnd.oci.image.manifest.v1+json","config":{"mediaType":"application/vnd.oci.image.config.v1+json","size":658,"digest":"sha256:ba3124d34c81d920e46a3c1d1798d9107f59e9a1ee28149412fd820195c2f47b"},"layers":[{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","size":3072,"digest":"sha256:1bf87ff185ffacebc20e01f718e740ab028eb60710feb2d33aeea1c7f3231467"}],"annotations":{"org.opencontainers.image.created":"1970-01-01T00:00:00Z","org.opencontainers.image.title":"Title","org.opencontainers.image.vendor":"Vendor"}} \ No newline at end of file diff --git a/internal/cli/testdata/golden/blobs/sha256/124c885f834cfaf1329987457a9651a68c4fb9733d4462ae6288b98011277858 b/internal/cli/testdata/golden/blobs/sha256/124c885f834cfaf1329987457a9651a68c4fb9733d4462ae6288b98011277858 deleted file mode 100644 index 3e131dfbc..000000000 --- a/internal/cli/testdata/golden/blobs/sha256/124c885f834cfaf1329987457a9651a68c4fb9733d4462ae6288b98011277858 +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":2,"mediaType":"application/vnd.oci.image.manifest.v1+json","config":{"mediaType":"application/vnd.oci.image.config.v1+json","size":658,"digest":"sha256:fbb854f9d5a601a36c4dc8cc82e5b21e91b11cdd4aab5035340e4f517c5a8eb1"},"layers":[{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","size":3079,"digest":"sha256:7e0f9d62f6cab4785e18a55f17d03f20ffb776881f1f46258efd9458f7cdaf08"}],"annotations":{"org.opencontainers.image.created":"1970-01-01T00:00:00Z","org.opencontainers.image.title":"Title","org.opencontainers.image.vendor":"Vendor"}} \ No newline at end of file diff --git a/internal/cli/testdata/golden/blobs/sha256/1bf87ff185ffacebc20e01f718e740ab028eb60710feb2d33aeea1c7f3231467 b/internal/cli/testdata/golden/blobs/sha256/1bf87ff185ffacebc20e01f718e740ab028eb60710feb2d33aeea1c7f3231467 new file mode 100644 index 000000000..6c1c06174 Binary files /dev/null and b/internal/cli/testdata/golden/blobs/sha256/1bf87ff185ffacebc20e01f718e740ab028eb60710feb2d33aeea1c7f3231467 differ diff --git a/internal/cli/testdata/golden/blobs/sha256/6c815259150f37d000417f9a93f41bddf74dff905c745986069d4b03e954ac1d b/internal/cli/testdata/golden/blobs/sha256/1c4e13b3d0d1e30f6ea1011df86446c7e6e7c0b506aa29fecdad53e7da63d014 similarity index 80% rename from internal/cli/testdata/golden/blobs/sha256/6c815259150f37d000417f9a93f41bddf74dff905c745986069d4b03e954ac1d rename to internal/cli/testdata/golden/blobs/sha256/1c4e13b3d0d1e30f6ea1011df86446c7e6e7c0b506aa29fecdad53e7da63d014 index e850efd3a..a0e5a04eb 100644 --- a/internal/cli/testdata/golden/blobs/sha256/6c815259150f37d000417f9a93f41bddf74dff905c745986069d4b03e954ac1d +++ b/internal/cli/testdata/golden/blobs/sha256/1c4e13b3d0d1e30f6ea1011df86446c7e6e7c0b506aa29fecdad53e7da63d014 @@ -1 +1 @@ -{"architecture":"amd64","author":"github.com/chainguard-dev/apko","created":"1970-01-01T00:00:00Z","history":[{"author":"apko","created":"1970-01-01T00:00:00Z","created_by":"apko","comment":"Title by Vendor"}],"os":"linux","rootfs":{"type":"layers","diff_ids":["sha256:20f698463c2755b6dc42b7d07e959ed7455a06e7367d507e829a315898f21a01"]},"config":{"Entrypoint":["/bin/sh","-l"],"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin","SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt"],"Labels":{"org.opencontainers.image.created":"1970-01-01T00:00:00Z","org.opencontainers.image.title":"Title","org.opencontainers.image.vendor":"Vendor"}}} \ No newline at end of file +{"architecture":"amd64","author":"github.com/chainguard-dev/apko","created":"1970-01-01T00:00:00Z","history":[{"author":"apko","created":"1970-01-01T00:00:00Z","created_by":"apko","comment":"Title by Vendor"}],"os":"linux","rootfs":{"type":"layers","diff_ids":["sha256:77d254eed74bfa3e3c1bea5c38163dbc384970dd0e3d1b149b6109cfebe7d957"]},"config":{"Entrypoint":["/bin/sh","-l"],"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin","SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt"],"Labels":{"org.opencontainers.image.created":"1970-01-01T00:00:00Z","org.opencontainers.image.title":"Title","org.opencontainers.image.vendor":"Vendor"}}} \ No newline at end of file diff --git a/internal/cli/testdata/golden/blobs/sha256/43abcfea61638ef8f4cf63e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724 b/internal/cli/testdata/golden/blobs/sha256/43abcfea61638ef8f4cf63e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724 new file mode 100644 index 000000000..99fb92421 --- /dev/null +++ b/internal/cli/testdata/golden/blobs/sha256/43abcfea61638ef8f4cf63e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724 @@ -0,0 +1 @@ +{"schemaVersion":2,"mediaType":"application/vnd.oci.image.manifest.v1+json","config":{"mediaType":"application/vnd.oci.image.config.v1+json","size":658,"digest":"sha256:1c4e13b3d0d1e30f6ea1011df86446c7e6e7c0b506aa29fecdad53e7da63d014"},"layers":[{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","size":3072,"digest":"sha256:67af4d9667bf91d673da3eeb10e49cd2c42c197435c8cbdd92b7727e24f52181"}],"annotations":{"org.opencontainers.image.created":"1970-01-01T00:00:00Z","org.opencontainers.image.title":"Title","org.opencontainers.image.vendor":"Vendor"}} \ No newline at end of file diff --git a/internal/cli/testdata/golden/blobs/sha256/67af4d9667bf91d673da3eeb10e49cd2c42c197435c8cbdd92b7727e24f52181 b/internal/cli/testdata/golden/blobs/sha256/67af4d9667bf91d673da3eeb10e49cd2c42c197435c8cbdd92b7727e24f52181 new file mode 100644 index 000000000..02fa91972 Binary files /dev/null and b/internal/cli/testdata/golden/blobs/sha256/67af4d9667bf91d673da3eeb10e49cd2c42c197435c8cbdd92b7727e24f52181 differ diff --git a/internal/cli/testdata/golden/blobs/sha256/7e0f9d62f6cab4785e18a55f17d03f20ffb776881f1f46258efd9458f7cdaf08 b/internal/cli/testdata/golden/blobs/sha256/7e0f9d62f6cab4785e18a55f17d03f20ffb776881f1f46258efd9458f7cdaf08 deleted file mode 100644 index 493f79b37..000000000 Binary files a/internal/cli/testdata/golden/blobs/sha256/7e0f9d62f6cab4785e18a55f17d03f20ffb776881f1f46258efd9458f7cdaf08 and /dev/null differ diff --git a/internal/cli/testdata/golden/blobs/sha256/fbb854f9d5a601a36c4dc8cc82e5b21e91b11cdd4aab5035340e4f517c5a8eb1 b/internal/cli/testdata/golden/blobs/sha256/ba3124d34c81d920e46a3c1d1798d9107f59e9a1ee28149412fd820195c2f47b similarity index 80% rename from internal/cli/testdata/golden/blobs/sha256/fbb854f9d5a601a36c4dc8cc82e5b21e91b11cdd4aab5035340e4f517c5a8eb1 rename to internal/cli/testdata/golden/blobs/sha256/ba3124d34c81d920e46a3c1d1798d9107f59e9a1ee28149412fd820195c2f47b index cafd71a39..e32d5c7d5 100644 --- a/internal/cli/testdata/golden/blobs/sha256/fbb854f9d5a601a36c4dc8cc82e5b21e91b11cdd4aab5035340e4f517c5a8eb1 +++ b/internal/cli/testdata/golden/blobs/sha256/ba3124d34c81d920e46a3c1d1798d9107f59e9a1ee28149412fd820195c2f47b @@ -1 +1 @@ -{"architecture":"arm64","author":"github.com/chainguard-dev/apko","created":"1970-01-01T00:00:00Z","history":[{"author":"apko","created":"1970-01-01T00:00:00Z","created_by":"apko","comment":"Title by Vendor"}],"os":"linux","rootfs":{"type":"layers","diff_ids":["sha256:ca5e16c7c944d764863cb1a4286e668e72d6d87ef9ddd82337b19d87715bae7e"]},"config":{"Entrypoint":["/bin/sh","-l"],"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin","SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt"],"Labels":{"org.opencontainers.image.created":"1970-01-01T00:00:00Z","org.opencontainers.image.title":"Title","org.opencontainers.image.vendor":"Vendor"}}} \ No newline at end of file +{"architecture":"arm64","author":"github.com/chainguard-dev/apko","created":"1970-01-01T00:00:00Z","history":[{"author":"apko","created":"1970-01-01T00:00:00Z","created_by":"apko","comment":"Title by Vendor"}],"os":"linux","rootfs":{"type":"layers","diff_ids":["sha256:2c5961a5ad5c53b93a3183bd49c80dad9b4265f544ed41172a6dcd89fb256379"]},"config":{"Entrypoint":["/bin/sh","-l"],"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin","SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt"],"Labels":{"org.opencontainers.image.created":"1970-01-01T00:00:00Z","org.opencontainers.image.title":"Title","org.opencontainers.image.vendor":"Vendor"}}} \ No newline at end of file diff --git a/internal/cli/testdata/golden/blobs/sha256/c7557730da0e2d7fb242d8d1ac6dcf7e3a2439732aa5981270b4f3a02454b738 b/internal/cli/testdata/golden/blobs/sha256/c7557730da0e2d7fb242d8d1ac6dcf7e3a2439732aa5981270b4f3a02454b738 deleted file mode 100644 index 4d94d7bbb..000000000 Binary files a/internal/cli/testdata/golden/blobs/sha256/c7557730da0e2d7fb242d8d1ac6dcf7e3a2439732aa5981270b4f3a02454b738 and /dev/null differ diff --git a/internal/cli/testdata/golden/index.json b/internal/cli/testdata/golden/index.json index 0af527177..095a5e84c 100755 --- a/internal/cli/testdata/golden/index.json +++ b/internal/cli/testdata/golden/index.json @@ -1 +1 @@ -{"schemaVersion":2,"mediaType":"application/vnd.oci.image.index.v1+json","manifests":[{"mediaType":"application/vnd.oci.image.manifest.v1+json","size":560,"digest":"sha256:69f0237c7f8cf0b8a329d1bf1d6870c870c4ec323e39d3a6da59596632d0f2f4","platform":{"architecture":"amd64","os":"linux"}},{"mediaType":"application/vnd.oci.image.manifest.v1+json","size":560,"digest":"sha256:124c885f834cfaf1329987457a9651a68c4fb9733d4462ae6288b98011277858","platform":{"architecture":"arm64","os":"linux"}}],"annotations":{"org.opencontainers.image.created":"1970-01-01T00:00:00Z","org.opencontainers.image.title":"Title","org.opencontainers.image.vendor":"Vendor"}} \ No newline at end of file +{"schemaVersion":2,"mediaType":"application/vnd.oci.image.index.v1+json","manifests":[{"mediaType":"application/vnd.oci.image.manifest.v1+json","size":560,"digest":"sha256:43abcfea61638ef8f4cf63e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724","platform":{"architecture":"amd64","os":"linux"}},{"mediaType":"application/vnd.oci.image.manifest.v1+json","size":560,"digest":"sha256:01b30a8033ff006a6415e12ad15044945893ed8eb8adaaae94e3614864400fd4","platform":{"architecture":"arm64","os":"linux"}}],"annotations":{"org.opencontainers.image.created":"1970-01-01T00:00:00Z","org.opencontainers.image.title":"Title","org.opencontainers.image.vendor":"Vendor"}} \ No newline at end of file diff --git a/internal/cli/testdata/golden/sboms/sbom-aarch64.spdx.json b/internal/cli/testdata/golden/sboms/sbom-aarch64.spdx.json index 6094eb0cd..0bee2f062 100644 --- a/internal/cli/testdata/golden/sboms/sbom-aarch64.spdx.json +++ b/internal/cli/testdata/golden/sboms/sbom-aarch64.spdx.json @@ -1,6 +1,6 @@ { "SPDXID": "SPDXRef-DOCUMENT", - "name": "sbom-sha256:7e0f9d62f6cab4785e18a55f17d03f20ffb776881f1f46258efd9458f7cdaf08", + "name": "sbom-sha256:1bf87ff185ffacebc20e01f718e740ab028eb60710feb2d33aeea1c7f3231467", "spdxVersion": "SPDX-2.3", "creationInfo": { "created": "1970-01-01T00:00:00Z", @@ -13,13 +13,13 @@ "dataLicense": "CC0-1.0", "documentNamespace": "https://spdx.org/spdxdocs/apko/", "documentDescribes": [ - "SPDXRef-Package-Image-sha256-124c885f834cfaf1329987457a9651a68c4fb9733d4462ae6288b98011277858" + "SPDXRef-Package-Image-sha256-01b30a8033ff006a6415e12ad15044945893ed8eb8adaaae94e3614864400fd4" ], "packages": [ { - "SPDXID": "SPDXRef-Package-Image-sha256-124c885f834cfaf1329987457a9651a68c4fb9733d4462ae6288b98011277858", - "name": "sha256:124c885f834cfaf1329987457a9651a68c4fb9733d4462ae6288b98011277858", - "versionInfo": "sha256:124c885f834cfaf1329987457a9651a68c4fb9733d4462ae6288b98011277858", + "SPDXID": "SPDXRef-Package-Image-sha256-01b30a8033ff006a6415e12ad15044945893ed8eb8adaaae94e3614864400fd4", + "name": "sha256:01b30a8033ff006a6415e12ad15044945893ed8eb8adaaae94e3614864400fd4", + "versionInfo": "sha256:01b30a8033ff006a6415e12ad15044945893ed8eb8adaaae94e3614864400fd4", "filesAnalyzed": false, "description": "apko container image", "downloadLocation": "NOASSERTION", @@ -28,20 +28,20 @@ "checksums": [ { "algorithm": "SHA256", - "checksumValue": "124c885f834cfaf1329987457a9651a68c4fb9733d4462ae6288b98011277858" + "checksumValue": "01b30a8033ff006a6415e12ad15044945893ed8eb8adaaae94e3614864400fd4" } ], "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:oci/golden@sha256:124c885f834cfaf1329987457a9651a68c4fb9733d4462ae6288b98011277858?arch=arm64\u0026mediaType=application%2Fvnd.oci.image.manifest.v1%2Bjson\u0026os=linux", + "referenceLocator": "pkg:oci/golden@sha256:01b30a8033ff006a6415e12ad15044945893ed8eb8adaaae94e3614864400fd4?arch=arm64\u0026mediaType=application%2Fvnd.oci.image.manifest.v1%2Bjson\u0026os=linux", "referenceType": "purl" } ] }, { - "SPDXID": "SPDXRef-Package-ImageLayer-sha256-7e0f9d62f6cab4785e18a55f17d03f20ffb776881f1f46258efd9458f7cdaf08", - "name": "sha256:7e0f9d62f6cab4785e18a55f17d03f20ffb776881f1f46258efd9458f7cdaf08", + "SPDXID": "SPDXRef-Package-ImageLayer-sha256-1bf87ff185ffacebc20e01f718e740ab028eb60710feb2d33aeea1c7f3231467", + "name": "sha256:1bf87ff185ffacebc20e01f718e740ab028eb60710feb2d33aeea1c7f3231467", "versionInfo": "1.0.0", "filesAnalyzed": false, "description": "apko operating system layer", @@ -51,7 +51,7 @@ "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:oci/golden@sha256:7e0f9d62f6cab4785e18a55f17d03f20ffb776881f1f46258efd9458f7cdaf08?arch=arm64\u0026mediaType=application%2Fvnd.oci.image.layer.v1.tar%2Bgzip\u0026os=linux", + "referenceLocator": "pkg:oci/golden@sha256:1bf87ff185ffacebc20e01f718e740ab028eb60710feb2d33aeea1c7f3231467?arch=arm64\u0026mediaType=application%2Fvnd.oci.image.layer.v1.tar%2Bgzip\u0026os=linux", "referenceType": "purl" } ] @@ -147,9 +147,9 @@ ], "relationships": [ { - "spdxElementId": "SPDXRef-Package-Image-sha256-124c885f834cfaf1329987457a9651a68c4fb9733d4462ae6288b98011277858", + "spdxElementId": "SPDXRef-Package-Image-sha256-01b30a8033ff006a6415e12ad15044945893ed8eb8adaaae94e3614864400fd4", "relationshipType": "CONTAINS", - "relatedSpdxElement": "SPDXRef-Package-ImageLayer-sha256-7e0f9d62f6cab4785e18a55f17d03f20ffb776881f1f46258efd9458f7cdaf08" + "relatedSpdxElement": "SPDXRef-Package-ImageLayer-sha256-1bf87ff185ffacebc20e01f718e740ab028eb60710feb2d33aeea1c7f3231467" }, { "spdxElementId": "SPDXRef-Package-apk-pretend-baselayout-1.0.0-r0", @@ -157,7 +157,7 @@ "relatedSpdxElement": "SPDXRef-Package-Melange-pretend-baselayout.melange.yaml-326e0ed687bdfeadac839dc9b25686e4442c9d04" }, { - "spdxElementId": "SPDXRef-Package-Image-sha256-124c885f834cfaf1329987457a9651a68c4fb9733d4462ae6288b98011277858", + "spdxElementId": "SPDXRef-Package-Image-sha256-01b30a8033ff006a6415e12ad15044945893ed8eb8adaaae94e3614864400fd4", "relationshipType": "CONTAINS", "relatedSpdxElement": "SPDXRef-Package-apk-pretend-baselayout-1.0.0-r0" }, @@ -167,7 +167,7 @@ "relatedSpdxElement": "SPDXRef-Package-Melange-replayout.melange.yaml-326e0ed687bdfeadac839dc9b25686e4442c9d04" }, { - "spdxElementId": "SPDXRef-Package-Image-sha256-124c885f834cfaf1329987457a9651a68c4fb9733d4462ae6288b98011277858", + "spdxElementId": "SPDXRef-Package-Image-sha256-01b30a8033ff006a6415e12ad15044945893ed8eb8adaaae94e3614864400fd4", "relationshipType": "CONTAINS", "relatedSpdxElement": "SPDXRef-Package-apk-replayout-1.0.0-r0" } diff --git a/internal/cli/testdata/golden/sboms/sbom-index.spdx.json b/internal/cli/testdata/golden/sboms/sbom-index.spdx.json index 46b41f44d..24f1203dc 100644 --- a/internal/cli/testdata/golden/sboms/sbom-index.spdx.json +++ b/internal/cli/testdata/golden/sboms/sbom-index.spdx.json @@ -1,6 +1,6 @@ { "SPDXID": "SPDXRef-DOCUMENT", - "name": "sbom-sha256:7d47a5afe35ced97755256fbc89650a7c9763488a263f9e3459e6344230bd3de", + "name": "sbom-sha256:5e139be7e63e72cc27edeb8ef963e759e42218f8d61ce1ddaeac6c1ca4107e27", "spdxVersion": "SPDX-2.3", "creationInfo": { "created": "1970-01-01T00:00:00Z", @@ -13,13 +13,13 @@ "dataLicense": "CC0-1.0", "documentNamespace": "https://spdx.org/spdxdocs/apko/", "documentDescribes": [ - "SPDXRef-Package-sha256-7d47a5afe35ced97755256fbc89650a7c9763488a263f9e3459e6344230bd3de" + "SPDXRef-Package-sha256-5e139be7e63e72cc27edeb8ef963e759e42218f8d61ce1ddaeac6c1ca4107e27" ], "packages": [ { - "SPDXID": "SPDXRef-Package-sha256-7d47a5afe35ced97755256fbc89650a7c9763488a263f9e3459e6344230bd3de", - "name": "sha256:7d47a5afe35ced97755256fbc89650a7c9763488a263f9e3459e6344230bd3de", - "versionInfo": "sha256:7d47a5afe35ced97755256fbc89650a7c9763488a263f9e3459e6344230bd3de", + "SPDXID": "SPDXRef-Package-sha256-5e139be7e63e72cc27edeb8ef963e759e42218f8d61ce1ddaeac6c1ca4107e27", + "name": "sha256:5e139be7e63e72cc27edeb8ef963e759e42218f8d61ce1ddaeac6c1ca4107e27", + "versionInfo": "sha256:5e139be7e63e72cc27edeb8ef963e759e42218f8d61ce1ddaeac6c1ca4107e27", "filesAnalyzed": false, "description": "Multi-arch image index", "downloadLocation": "NOASSERTION", @@ -29,21 +29,21 @@ "checksums": [ { "algorithm": "SHA256", - "checksumValue": "7d47a5afe35ced97755256fbc89650a7c9763488a263f9e3459e6344230bd3de" + "checksumValue": "5e139be7e63e72cc27edeb8ef963e759e42218f8d61ce1ddaeac6c1ca4107e27" } ], "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:oci/golden@sha256:7d47a5afe35ced97755256fbc89650a7c9763488a263f9e3459e6344230bd3de?mediaType=application%2Fvnd.oci.image.index.v1%2Bjson", + "referenceLocator": "pkg:oci/golden@sha256:5e139be7e63e72cc27edeb8ef963e759e42218f8d61ce1ddaeac6c1ca4107e27?mediaType=application%2Fvnd.oci.image.index.v1%2Bjson", "referenceType": "purl" } ] }, { - "SPDXID": "SPDXRef-Package-sha256-69f0237c7f8cf0b8a329d1bf1d6870c870c4ec323e39d3a6da59596632d0f2f4", - "name": "sha256:69f0237c7f8cf0b8a329d1bf1d6870c870c4ec323e39d3a6da59596632d0f2f4", - "versionInfo": "sha256:69f0237c7f8cf0b8a329d1bf1d6870c870c4ec323e39d3a6da59596632d0f2f4", + "SPDXID": "SPDXRef-Package-sha256-43abcfea61638ef8f4cf63e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724", + "name": "sha256:43abcfea61638ef8f4cf63e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724", + "versionInfo": "sha256:43abcfea61638ef8f4cf63e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724", "filesAnalyzed": false, "downloadLocation": "NOASSERTION", "supplier": "Organization: Chainguard, Inc.", @@ -51,21 +51,21 @@ "checksums": [ { "algorithm": "SHA256", - "checksumValue": "69f0237c7f8cf0b8a329d1bf1d6870c870c4ec323e39d3a6da59596632d0f2f4" + "checksumValue": "43abcfea61638ef8f4cf63e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724" } ], "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:oci/golden@sha256:69f0237c7f8cf0b8a329d1bf1d6870c870c4ec323e39d3a6da59596632d0f2f4?arch=amd64\u0026mediaType=application%2Fvnd.oci.image.manifest.v1%2Bjson\u0026os=linux", + "referenceLocator": "pkg:oci/golden@sha256:43abcfea61638ef8f4cf63e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724?arch=amd64\u0026mediaType=application%2Fvnd.oci.image.manifest.v1%2Bjson\u0026os=linux", "referenceType": "purl" } ] }, { - "SPDXID": "SPDXRef-Package-sha256-124c885f834cfaf1329987457a9651a68c4fb9733d4462ae6288b98011277858", - "name": "sha256:124c885f834cfaf1329987457a9651a68c4fb9733d4462ae6288b98011277858", - "versionInfo": "sha256:124c885f834cfaf1329987457a9651a68c4fb9733d4462ae6288b98011277858", + "SPDXID": "SPDXRef-Package-sha256-01b30a8033ff006a6415e12ad15044945893ed8eb8adaaae94e3614864400fd4", + "name": "sha256:01b30a8033ff006a6415e12ad15044945893ed8eb8adaaae94e3614864400fd4", + "versionInfo": "sha256:01b30a8033ff006a6415e12ad15044945893ed8eb8adaaae94e3614864400fd4", "filesAnalyzed": false, "downloadLocation": "NOASSERTION", "supplier": "Organization: Chainguard, Inc.", @@ -73,13 +73,13 @@ "checksums": [ { "algorithm": "SHA256", - "checksumValue": "124c885f834cfaf1329987457a9651a68c4fb9733d4462ae6288b98011277858" + "checksumValue": "01b30a8033ff006a6415e12ad15044945893ed8eb8adaaae94e3614864400fd4" } ], "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:oci/golden@sha256:124c885f834cfaf1329987457a9651a68c4fb9733d4462ae6288b98011277858?arch=arm64\u0026mediaType=application%2Fvnd.oci.image.manifest.v1%2Bjson\u0026os=linux", + "referenceLocator": "pkg:oci/golden@sha256:01b30a8033ff006a6415e12ad15044945893ed8eb8adaaae94e3614864400fd4?arch=arm64\u0026mediaType=application%2Fvnd.oci.image.manifest.v1%2Bjson\u0026os=linux", "referenceType": "purl" } ] @@ -87,14 +87,14 @@ ], "relationships": [ { - "spdxElementId": "SPDXRef-Package-sha256-7d47a5afe35ced97755256fbc89650a7c9763488a263f9e3459e6344230bd3de", + "spdxElementId": "SPDXRef-Package-sha256-5e139be7e63e72cc27edeb8ef963e759e42218f8d61ce1ddaeac6c1ca4107e27", "relationshipType": "VARIANT_OF", - "relatedSpdxElement": "SPDXRef-Package-sha256-69f0237c7f8cf0b8a329d1bf1d6870c870c4ec323e39d3a6da59596632d0f2f4" + "relatedSpdxElement": "SPDXRef-Package-sha256-43abcfea61638ef8f4cf63e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724" }, { - "spdxElementId": "SPDXRef-Package-sha256-7d47a5afe35ced97755256fbc89650a7c9763488a263f9e3459e6344230bd3de", + "spdxElementId": "SPDXRef-Package-sha256-5e139be7e63e72cc27edeb8ef963e759e42218f8d61ce1ddaeac6c1ca4107e27", "relationshipType": "VARIANT_OF", - "relatedSpdxElement": "SPDXRef-Package-sha256-124c885f834cfaf1329987457a9651a68c4fb9733d4462ae6288b98011277858" + "relatedSpdxElement": "SPDXRef-Package-sha256-01b30a8033ff006a6415e12ad15044945893ed8eb8adaaae94e3614864400fd4" } ] } diff --git a/internal/cli/testdata/golden/sboms/sbom-x86_64.spdx.json b/internal/cli/testdata/golden/sboms/sbom-x86_64.spdx.json index 111e814c9..90ed2d9c5 100644 --- a/internal/cli/testdata/golden/sboms/sbom-x86_64.spdx.json +++ b/internal/cli/testdata/golden/sboms/sbom-x86_64.spdx.json @@ -1,6 +1,6 @@ { "SPDXID": "SPDXRef-DOCUMENT", - "name": "sbom-sha256:c7557730da0e2d7fb242d8d1ac6dcf7e3a2439732aa5981270b4f3a02454b738", + "name": "sbom-sha256:67af4d9667bf91d673da3eeb10e49cd2c42c197435c8cbdd92b7727e24f52181", "spdxVersion": "SPDX-2.3", "creationInfo": { "created": "1970-01-01T00:00:00Z", @@ -13,13 +13,13 @@ "dataLicense": "CC0-1.0", "documentNamespace": "https://spdx.org/spdxdocs/apko/", "documentDescribes": [ - "SPDXRef-Package-Image-sha256-69f0237c7f8cf0b8a329d1bf1d6870c870c4ec323e39d3a6da59596632d0f2f4" + "SPDXRef-Package-Image-sha256-43abcfea61638ef8f4cf63e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724" ], "packages": [ { - "SPDXID": "SPDXRef-Package-Image-sha256-69f0237c7f8cf0b8a329d1bf1d6870c870c4ec323e39d3a6da59596632d0f2f4", - "name": "sha256:69f0237c7f8cf0b8a329d1bf1d6870c870c4ec323e39d3a6da59596632d0f2f4", - "versionInfo": "sha256:69f0237c7f8cf0b8a329d1bf1d6870c870c4ec323e39d3a6da59596632d0f2f4", + "SPDXID": "SPDXRef-Package-Image-sha256-43abcfea61638ef8f4cf63e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724", + "name": "sha256:43abcfea61638ef8f4cf63e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724", + "versionInfo": "sha256:43abcfea61638ef8f4cf63e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724", "filesAnalyzed": false, "description": "apko container image", "downloadLocation": "NOASSERTION", @@ -28,20 +28,20 @@ "checksums": [ { "algorithm": "SHA256", - "checksumValue": "69f0237c7f8cf0b8a329d1bf1d6870c870c4ec323e39d3a6da59596632d0f2f4" + "checksumValue": "43abcfea61638ef8f4cf63e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724" } ], "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:oci/golden@sha256:69f0237c7f8cf0b8a329d1bf1d6870c870c4ec323e39d3a6da59596632d0f2f4?arch=amd64\u0026mediaType=application%2Fvnd.oci.image.manifest.v1%2Bjson\u0026os=linux", + "referenceLocator": "pkg:oci/golden@sha256:43abcfea61638ef8f4cf63e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724?arch=amd64\u0026mediaType=application%2Fvnd.oci.image.manifest.v1%2Bjson\u0026os=linux", "referenceType": "purl" } ] }, { - "SPDXID": "SPDXRef-Package-ImageLayer-sha256-c7557730da0e2d7fb242d8d1ac6dcf7e3a2439732aa5981270b4f3a02454b738", - "name": "sha256:c7557730da0e2d7fb242d8d1ac6dcf7e3a2439732aa5981270b4f3a02454b738", + "SPDXID": "SPDXRef-Package-ImageLayer-sha256-67af4d9667bf91d673da3eeb10e49cd2c42c197435c8cbdd92b7727e24f52181", + "name": "sha256:67af4d9667bf91d673da3eeb10e49cd2c42c197435c8cbdd92b7727e24f52181", "versionInfo": "1.0.0", "filesAnalyzed": false, "description": "apko operating system layer", @@ -51,7 +51,7 @@ "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:oci/golden@sha256:c7557730da0e2d7fb242d8d1ac6dcf7e3a2439732aa5981270b4f3a02454b738?arch=amd64\u0026mediaType=application%2Fvnd.oci.image.layer.v1.tar%2Bgzip\u0026os=linux", + "referenceLocator": "pkg:oci/golden@sha256:67af4d9667bf91d673da3eeb10e49cd2c42c197435c8cbdd92b7727e24f52181?arch=amd64\u0026mediaType=application%2Fvnd.oci.image.layer.v1.tar%2Bgzip\u0026os=linux", "referenceType": "purl" } ] @@ -147,9 +147,9 @@ ], "relationships": [ { - "spdxElementId": "SPDXRef-Package-Image-sha256-69f0237c7f8cf0b8a329d1bf1d6870c870c4ec323e39d3a6da59596632d0f2f4", + "spdxElementId": "SPDXRef-Package-Image-sha256-43abcfea61638ef8f4cf63e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724", "relationshipType": "CONTAINS", - "relatedSpdxElement": "SPDXRef-Package-ImageLayer-sha256-c7557730da0e2d7fb242d8d1ac6dcf7e3a2439732aa5981270b4f3a02454b738" + "relatedSpdxElement": "SPDXRef-Package-ImageLayer-sha256-67af4d9667bf91d673da3eeb10e49cd2c42c197435c8cbdd92b7727e24f52181" }, { "spdxElementId": "SPDXRef-Package-apk-pretend-baselayout-1.0.0-r0", @@ -157,7 +157,7 @@ "relatedSpdxElement": "SPDXRef-Package-Melange-pretend-baselayout.melange.yaml-326e0ed687bdfeadac839dc9b25686e4442c9d04" }, { - "spdxElementId": "SPDXRef-Package-Image-sha256-69f0237c7f8cf0b8a329d1bf1d6870c870c4ec323e39d3a6da59596632d0f2f4", + "spdxElementId": "SPDXRef-Package-Image-sha256-43abcfea61638ef8f4cf63e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724", "relationshipType": "CONTAINS", "relatedSpdxElement": "SPDXRef-Package-apk-pretend-baselayout-1.0.0-r0" }, @@ -167,7 +167,7 @@ "relatedSpdxElement": "SPDXRef-Package-Melange-replayout.melange.yaml-326e0ed687bdfeadac839dc9b25686e4442c9d04" }, { - "spdxElementId": "SPDXRef-Package-Image-sha256-69f0237c7f8cf0b8a329d1bf1d6870c870c4ec323e39d3a6da59596632d0f2f4", + "spdxElementId": "SPDXRef-Package-Image-sha256-43abcfea61638ef8f4cf63e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724", "relationshipType": "CONTAINS", "relatedSpdxElement": "SPDXRef-Package-apk-replayout-1.0.0-r0" } diff --git a/internal/cli/testdata/top_image/blobs/sha256/52a254489d2b6d123a52b293b7032cca79834ce9f0176151c52754a0c7b1d1ea b/internal/cli/testdata/top_image/blobs/sha256/47457aa55c13b449a672775e843351d4fc5a0e5a21c89a69849edefe6380ffe2 similarity index 83% rename from internal/cli/testdata/top_image/blobs/sha256/52a254489d2b6d123a52b293b7032cca79834ce9f0176151c52754a0c7b1d1ea rename to internal/cli/testdata/top_image/blobs/sha256/47457aa55c13b449a672775e843351d4fc5a0e5a21c89a69849edefe6380ffe2 index edcba1609..7f26b12f5 100644 --- a/internal/cli/testdata/top_image/blobs/sha256/52a254489d2b6d123a52b293b7032cca79834ce9f0176151c52754a0c7b1d1ea +++ b/internal/cli/testdata/top_image/blobs/sha256/47457aa55c13b449a672775e843351d4fc5a0e5a21c89a69849edefe6380ffe2 @@ -1 +1 @@ -{"architecture":"arm64","author":"github.com/chainguard-dev/apko","created":"1970-01-01T00:00:00Z","history":[{"author":"apko","created":"1970-01-01T00:00:00Z","created_by":"apko","comment":"This is an apko single-layer image"},{"author":"apko","created":"1970-01-01T00:00:00Z","created_by":"apko","comment":"This is an apko single-layer image"}],"os":"linux","rootfs":{"type":"layers","diff_ids":["sha256:2888aac57b90cf66093aa48092bf1f1f1b1bdb85bde8601a5f8cf0f06c814763","sha256:833080c5930b626e29628105bd42d7390dfdbc753f761d111d3ac92256bae9c3"]},"config":{"Entrypoint":["/bin/sh","-l"],"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin","SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt"],"Labels":{"org.opencontainers.image.created":"1970-01-01T00:00:00Z"}}} \ No newline at end of file +{"architecture":"arm64","author":"github.com/chainguard-dev/apko","created":"1970-01-01T00:00:00Z","history":[{"author":"apko","created":"1970-01-01T00:00:00Z","created_by":"apko","comment":"This is an apko single-layer image"},{"author":"apko","created":"1970-01-01T00:00:00Z","created_by":"apko","comment":"This is an apko single-layer image"}],"os":"linux","rootfs":{"type":"layers","diff_ids":["sha256:2888aac57b90cf66093aa48092bf1f1f1b1bdb85bde8601a5f8cf0f06c814763","sha256:db6a98854277a80985f3b71f7da7e1697710ce674f329d8243a55f9bb55c8af0"]},"config":{"Entrypoint":["/bin/sh","-l"],"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin","SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt"],"Labels":{"org.opencontainers.image.created":"1970-01-01T00:00:00Z"}}} \ No newline at end of file diff --git a/internal/cli/testdata/top_image/blobs/sha256/7bd766d91d366d79c001436814bdfd629ef6da668805945c414cb074ddb7f0ed b/internal/cli/testdata/top_image/blobs/sha256/7bd766d91d366d79c001436814bdfd629ef6da668805945c414cb074ddb7f0ed deleted file mode 100644 index 0e8b2d71b..000000000 Binary files a/internal/cli/testdata/top_image/blobs/sha256/7bd766d91d366d79c001436814bdfd629ef6da668805945c414cb074ddb7f0ed and /dev/null differ diff --git a/internal/cli/testdata/top_image/blobs/sha256/e83f38a3553148f2189193b4908cce3576907dacddc14617d0e8d22370c80cce b/internal/cli/testdata/top_image/blobs/sha256/86ff4e2b0b097a9f1b2c11f1780dbfd596115820d57d10d5d86bd91776e8496a similarity index 83% rename from internal/cli/testdata/top_image/blobs/sha256/e83f38a3553148f2189193b4908cce3576907dacddc14617d0e8d22370c80cce rename to internal/cli/testdata/top_image/blobs/sha256/86ff4e2b0b097a9f1b2c11f1780dbfd596115820d57d10d5d86bd91776e8496a index 10db8f89b..8b836767a 100644 --- a/internal/cli/testdata/top_image/blobs/sha256/e83f38a3553148f2189193b4908cce3576907dacddc14617d0e8d22370c80cce +++ b/internal/cli/testdata/top_image/blobs/sha256/86ff4e2b0b097a9f1b2c11f1780dbfd596115820d57d10d5d86bd91776e8496a @@ -1 +1 @@ -{"architecture":"amd64","author":"github.com/chainguard-dev/apko","created":"1970-01-01T00:00:00Z","history":[{"author":"apko","created":"1970-01-01T00:00:00Z","created_by":"apko","comment":"This is an apko single-layer image"},{"author":"apko","created":"1970-01-01T00:00:00Z","created_by":"apko","comment":"This is an apko single-layer image"}],"os":"linux","rootfs":{"type":"layers","diff_ids":["sha256:783b8b05724ae7998917558527ef930f1442af2f071850913fc406992e44606c","sha256:79551ed211a0ca334ac3206473ff5f46a095fb4baf5ee4d13b804d8acca517bf"]},"config":{"Entrypoint":["/bin/sh","-l"],"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin","SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt"],"Labels":{"org.opencontainers.image.created":"1970-01-01T00:00:00Z"}}} \ No newline at end of file +{"architecture":"amd64","author":"github.com/chainguard-dev/apko","created":"1970-01-01T00:00:00Z","history":[{"author":"apko","created":"1970-01-01T00:00:00Z","created_by":"apko","comment":"This is an apko single-layer image"},{"author":"apko","created":"1970-01-01T00:00:00Z","created_by":"apko","comment":"This is an apko single-layer image"}],"os":"linux","rootfs":{"type":"layers","diff_ids":["sha256:783b8b05724ae7998917558527ef930f1442af2f071850913fc406992e44606c","sha256:fc1dba5d93cb494fd80790349b1ebb3459e976815d0089ac334fe04d68e0d99f"]},"config":{"Entrypoint":["/bin/sh","-l"],"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin","SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt"],"Labels":{"org.opencontainers.image.created":"1970-01-01T00:00:00Z"}}} \ No newline at end of file diff --git a/internal/cli/testdata/top_image/blobs/sha256/b8968c5ebe1dab45ff89b9e195885ccf3c9dfb1c483f751691f0678098113d0c b/internal/cli/testdata/top_image/blobs/sha256/b8968c5ebe1dab45ff89b9e195885ccf3c9dfb1c483f751691f0678098113d0c new file mode 100644 index 000000000..bf7a3cb5a Binary files /dev/null and b/internal/cli/testdata/top_image/blobs/sha256/b8968c5ebe1dab45ff89b9e195885ccf3c9dfb1c483f751691f0678098113d0c differ diff --git a/internal/cli/testdata/top_image/blobs/sha256/3c6b4bb5b39be26700e6baff9d83a53bba4a0d994e22638d11a4c104bc9e39c9 b/internal/cli/testdata/top_image/blobs/sha256/d2b474c8ae961a2b171c246b74b967be6dc05a8767d884bc82c3a6016c746588 similarity index 59% rename from internal/cli/testdata/top_image/blobs/sha256/3c6b4bb5b39be26700e6baff9d83a53bba4a0d994e22638d11a4c104bc9e39c9 rename to internal/cli/testdata/top_image/blobs/sha256/d2b474c8ae961a2b171c246b74b967be6dc05a8767d884bc82c3a6016c746588 index 0ede92a2a..f74c855b8 100644 --- a/internal/cli/testdata/top_image/blobs/sha256/3c6b4bb5b39be26700e6baff9d83a53bba4a0d994e22638d11a4c104bc9e39c9 +++ b/internal/cli/testdata/top_image/blobs/sha256/d2b474c8ae961a2b171c246b74b967be6dc05a8767d884bc82c3a6016c746588 @@ -1 +1 @@ -{"schemaVersion":2,"mediaType":"application/vnd.oci.image.manifest.v1+json","config":{"mediaType":"application/vnd.oci.image.config.v1+json","size":785,"digest":"sha256:e83f38a3553148f2189193b4908cce3576907dacddc14617d0e8d22370c80cce"},"layers":[{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","size":4126,"digest":"sha256:bf74ddaf55d32ec9672a0a40efc6cb1bf0a167763c18fc22586c8a301167822f"},{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","size":2955,"digest":"sha256:7bd766d91d366d79c001436814bdfd629ef6da668805945c414cb074ddb7f0ed"}],"annotations":{"org.opencontainers.image.created":"1970-01-01T00:00:00Z"}} \ No newline at end of file +{"schemaVersion":2,"mediaType":"application/vnd.oci.image.manifest.v1+json","config":{"mediaType":"application/vnd.oci.image.config.v1+json","size":785,"digest":"sha256:86ff4e2b0b097a9f1b2c11f1780dbfd596115820d57d10d5d86bd91776e8496a"},"layers":[{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","size":4126,"digest":"sha256:bf74ddaf55d32ec9672a0a40efc6cb1bf0a167763c18fc22586c8a301167822f"},{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","size":2949,"digest":"sha256:f74cd0feaeba016ee52ffb29597c23895d17ff6b6525d29b769c7e377bc11f79"}],"annotations":{"org.opencontainers.image.created":"1970-01-01T00:00:00Z"}} \ No newline at end of file diff --git a/internal/cli/testdata/top_image/blobs/sha256/9743477d70b66d27d627eb7dc1a548dee98ad742b195e24545b73a1c7113aea8 b/internal/cli/testdata/top_image/blobs/sha256/e571989947311e3847232435f8244642d1105f0613367e0a8e014304e2beb0ae similarity index 59% rename from internal/cli/testdata/top_image/blobs/sha256/9743477d70b66d27d627eb7dc1a548dee98ad742b195e24545b73a1c7113aea8 rename to internal/cli/testdata/top_image/blobs/sha256/e571989947311e3847232435f8244642d1105f0613367e0a8e014304e2beb0ae index 0aeed9297..47158175b 100644 --- a/internal/cli/testdata/top_image/blobs/sha256/9743477d70b66d27d627eb7dc1a548dee98ad742b195e24545b73a1c7113aea8 +++ b/internal/cli/testdata/top_image/blobs/sha256/e571989947311e3847232435f8244642d1105f0613367e0a8e014304e2beb0ae @@ -1 +1 @@ -{"schemaVersion":2,"mediaType":"application/vnd.oci.image.manifest.v1+json","config":{"mediaType":"application/vnd.oci.image.config.v1+json","size":785,"digest":"sha256:52a254489d2b6d123a52b293b7032cca79834ce9f0176151c52754a0c7b1d1ea"},"layers":[{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","size":4123,"digest":"sha256:583625b6164fff3b017f62b9fcd60cb53fff18a7e89ee538212134a13fc29fb1"},{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","size":2945,"digest":"sha256:ff58773a945b386b75663553a7f451c4f6116ec6fac9c22ef41ebaf27704a566"}],"annotations":{"org.opencontainers.image.created":"1970-01-01T00:00:00Z"}} \ No newline at end of file +{"schemaVersion":2,"mediaType":"application/vnd.oci.image.manifest.v1+json","config":{"mediaType":"application/vnd.oci.image.config.v1+json","size":785,"digest":"sha256:47457aa55c13b449a672775e843351d4fc5a0e5a21c89a69849edefe6380ffe2"},"layers":[{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","size":4123,"digest":"sha256:583625b6164fff3b017f62b9fcd60cb53fff18a7e89ee538212134a13fc29fb1"},{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","size":2947,"digest":"sha256:b8968c5ebe1dab45ff89b9e195885ccf3c9dfb1c483f751691f0678098113d0c"}],"annotations":{"org.opencontainers.image.created":"1970-01-01T00:00:00Z"}} \ No newline at end of file diff --git a/internal/cli/testdata/top_image/blobs/sha256/f74cd0feaeba016ee52ffb29597c23895d17ff6b6525d29b769c7e377bc11f79 b/internal/cli/testdata/top_image/blobs/sha256/f74cd0feaeba016ee52ffb29597c23895d17ff6b6525d29b769c7e377bc11f79 new file mode 100644 index 000000000..05505348f Binary files /dev/null and b/internal/cli/testdata/top_image/blobs/sha256/f74cd0feaeba016ee52ffb29597c23895d17ff6b6525d29b769c7e377bc11f79 differ diff --git a/internal/cli/testdata/top_image/blobs/sha256/ff58773a945b386b75663553a7f451c4f6116ec6fac9c22ef41ebaf27704a566 b/internal/cli/testdata/top_image/blobs/sha256/ff58773a945b386b75663553a7f451c4f6116ec6fac9c22ef41ebaf27704a566 deleted file mode 100644 index c8ca33564..000000000 Binary files a/internal/cli/testdata/top_image/blobs/sha256/ff58773a945b386b75663553a7f451c4f6116ec6fac9c22ef41ebaf27704a566 and /dev/null differ diff --git a/internal/cli/testdata/top_image/index.json b/internal/cli/testdata/top_image/index.json index c438ee781..4ad813351 100755 --- a/internal/cli/testdata/top_image/index.json +++ b/internal/cli/testdata/top_image/index.json @@ -1 +1 @@ -{"schemaVersion":2,"mediaType":"application/vnd.oci.image.index.v1+json","manifests":[{"mediaType":"application/vnd.oci.image.manifest.v1+json","size":631,"digest":"sha256:3c6b4bb5b39be26700e6baff9d83a53bba4a0d994e22638d11a4c104bc9e39c9","platform":{"architecture":"amd64","os":"linux"}},{"mediaType":"application/vnd.oci.image.manifest.v1+json","size":631,"digest":"sha256:9743477d70b66d27d627eb7dc1a548dee98ad742b195e24545b73a1c7113aea8","platform":{"architecture":"arm64","os":"linux"}}],"annotations":{"org.opencontainers.image.created":"1970-01-01T00:00:00Z"}} \ No newline at end of file +{"schemaVersion":2,"mediaType":"application/vnd.oci.image.index.v1+json","manifests":[{"mediaType":"application/vnd.oci.image.manifest.v1+json","size":631,"digest":"sha256:d2b474c8ae961a2b171c246b74b967be6dc05a8767d884bc82c3a6016c746588","platform":{"architecture":"amd64","os":"linux"}},{"mediaType":"application/vnd.oci.image.manifest.v1+json","size":631,"digest":"sha256:e571989947311e3847232435f8244642d1105f0613367e0a8e014304e2beb0ae","platform":{"architecture":"arm64","os":"linux"}}],"annotations":{"org.opencontainers.image.created":"1970-01-01T00:00:00Z"}} \ No newline at end of file diff --git a/pkg/apk/apk/apkindex.go b/pkg/apk/apk/apkindex.go index 413a4d189..5d74ff95d 100644 --- a/pkg/apk/apk/apkindex.go +++ b/pkg/apk/apk/apkindex.go @@ -67,7 +67,7 @@ c:{{.RepoCommit}} D:{{join .Dependencies}} {{- end}} {{- if .InstallIf}} -i:{{.InstallIf}} +i:{{join .InstallIf}} {{- end}} {{- if .Provides}} p:{{join .Provides}} diff --git a/pkg/apk/apk/apkindex_test.go b/pkg/apk/apk/apkindex_test.go index 3f32ab79b..6a2bbd620 100644 --- a/pkg/apk/apk/apkindex_test.go +++ b/pkg/apk/apk/apkindex_test.go @@ -208,6 +208,37 @@ func TestArchiveFromIndex(t *testing.T) { require.Truef(t, foundDescription, "Could not locate file %s in archive", descriptionFilename) } +func TestArchiveFromIndexFormatsInstallIf(t *testing.T) { + archive, err := ArchiveFromIndex(&APKIndex{ + Packages: []*Package{{ + Name: "test-pkg", + Version: "1.0.0-r0", + Arch: "x86_64", + InstallIf: []string{"eudev", "openrc"}, + }}, + }) + require.NoError(t, err) + + zr, err := gzip.NewReader(archive) + require.NoError(t, err) + defer zr.Close() + + tr := tar.NewReader(zr) + for { + hdr, err := tr.Next() + require.NoError(t, err) + if hdr.Name != apkIndexFilename { + continue + } + + contents, err := io.ReadAll(tr) + require.NoError(t, err) + require.Contains(t, string(contents), "i:eudev openrc\n") + require.NotContains(t, string(contents), "i:[eudev openrc]") + return + } +} + func TestEmptyRepeatedFields(t *testing.T) { apkIndexFile := strings.NewReader(`C:Q1Deb0jNytkrjPW4N/eKLZ43BwOlw= P:a-pkg diff --git a/pkg/apk/apk/installed_test.go b/pkg/apk/apk/installed_test.go index 35a68f4e2..1e3bd0466 100644 --- a/pkg/apk/apk/installed_test.go +++ b/pkg/apk/apk/installed_test.go @@ -187,7 +187,7 @@ func TestAddInstalledPackageAdded(t *testing.T) { "D:testlib", "p:", "c:a2020bf03d408b2ef1585d7dc52c29ce88524a76", - "i:[]", + "i:", "t:1754874000", "S:13282", "I:123541", @@ -314,6 +314,26 @@ func TestAddInstalledPackageAdded(t *testing.T) { } } +func TestAddInstalledPackageFormatsInstallIf(t *testing.T) { + a, _, err := testGetTestAPK() + require.NoError(t, err, "unable to initialize APK implementation") + + pkg := &Package{ + Name: "testpkg", + Version: "1.0.0", + Arch: "x86_64", + InstallIf: []string{"eudev", "openrc"}, + BuildTime: time.Date(2025, 8, 11, 1, 0, 0, 0, time.UTC), + } + + installedBytes, err := a.AddInstalledPackage(pkg, nil) + require.NoError(t, err, "AddInstalledPackage should not return error") + + installedStr := string(installedBytes) + require.Contains(t, installedStr, "i:eudev openrc\n") + require.NotContains(t, installedStr, "i:[eudev openrc]") +} + func TestIsInstalledPackage(t *testing.T) { a, _, err := testGetTestAPK() require.NoErrorf(t, err, "unable to initialize APK implementation: %v", err) @@ -751,7 +771,7 @@ U:https://git.alpinelinux.org/cgit/aports/tree/main/alpine-baselayout D:alpine-baselayout-data=3.2.0-r23 /bin/sh so:libc.musl-aarch64.so.1 p:cmd:mkmntdirs=3.2.0-r23 c:348653a9ba0701e8e968b3344e72313a9ef334e4 -i:[] +i: t:1662926906 S:11012 I:339968 @@ -880,7 +900,7 @@ U: D:busybox p: c: -i:[] +i: t:0 S:499 I:4117 @@ -907,7 +927,7 @@ U:https://git.alpinelinux.org/cgit/aports/tree/main/alpine-baselayout D:alpine-baselayout-data=3.2.0-r23 /bin/sh so:libc.musl-aarch64.so.1 p:cmd:mkmntdirs=3.2.0-r23 c:348653a9ba0701e8e968b3344e72313a9ef334e4 -i:[] +i: t:1662926906 S:11012 I:339968 diff --git a/pkg/apk/apk/package.go b/pkg/apk/apk/package.go index 0f55e33cf..014b60247 100644 --- a/pkg/apk/apk/package.go +++ b/pkg/apk/apk/package.go @@ -46,7 +46,7 @@ func PackageToInstalled(pkg *Package) (out []string) { out = append(out, fmt.Sprintf("r:%s", strings.Join(pkg.Replaces, " "))) } out = append(out, fmt.Sprintf("c:%s", pkg.RepoCommit)) - out = append(out, fmt.Sprintf("i:%s", pkg.InstallIf)) + out = append(out, fmt.Sprintf("i:%s", strings.Join(pkg.InstallIf, " "))) out = append(out, fmt.Sprintf("t:%d", pkg.BuildTime.Unix())) out = append(out, fmt.Sprintf("S:%d", pkg.Size)) out = append(out, fmt.Sprintf("I:%d", pkg.InstalledSize))