From 598cfd8565c5dc741adcbedb354dea5ae51eef94 Mon Sep 17 00:00:00 2001 From: Asish Kumar Date: Fri, 24 Apr 2026 02:13:25 +0530 Subject: [PATCH] apk: format install_if fields without brackets Signed-off-by: Asish Kumar --- internal/cli/publish_test.go | 4 +- ...ad15044945893ed8eb8adaaae94e3614864400fd4} | 2 +- ...457a9651a68c4fb9733d4462ae6288b98011277858 | 1 - ...f718e740ab028eb60710feb2d33aeea1c7f3231467 | Bin 0 -> 3072 bytes ...df86446c7e6e7c0b506aa29fecdad53e7da63d014} | 2 +- ...e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724 | 1 + ...eb10e49cd2c42c197435c8cbdd92b7727e24f52181 | Bin 0 -> 3072 bytes ...5f17d03f20ffb776881f1f46258efd9458f7cdaf08 | Bin 3079 -> 0 bytes ...d1798d9107f59e9a1ee28149412fd820195c2f47b} | 2 +- ...d1ac6dcf7e3a2439732aa5981270b4f3a02454b738 | Bin 3072 -> 0 bytes internal/cli/testdata/golden/index.json | 2 +- .../golden/sboms/sbom-aarch64.spdx.json | 28 ++++++------ .../golden/sboms/sbom-index.spdx.json | 42 +++++++++--------- .../golden/sboms/sbom-x86_64.spdx.json | 28 ++++++------ ...e843351d4fc5a0e5a21c89a69849edefe6380ffe2} | 2 +- ...6814bdfd629ef6da668805945c414cb074ddb7f0ed | Bin 2955 -> 0 bytes ...1780dbfd596115820d57d10d5d86bd91776e8496a} | 2 +- ...e195885ccf3c9dfb1c483f751691f0678098113d0c | Bin 0 -> 2947 bytes ...b74b967be6dc05a8767d884bc82c3a6016c746588} | 2 +- ...5f8244642d1105f0613367e0a8e014304e2beb0ae} | 2 +- ...29597c23895d17ff6b6525d29b769c7e377bc11f79 | Bin 0 -> 2949 bytes ...53a7f451c4f6116ec6fac9c22ef41ebaf27704a566 | Bin 2945 -> 0 bytes internal/cli/testdata/top_image/index.json | 2 +- pkg/apk/apk/apkindex.go | 2 +- pkg/apk/apk/apkindex_test.go | 31 +++++++++++++ pkg/apk/apk/installed_test.go | 28 ++++++++++-- pkg/apk/apk/package.go | 2 +- 27 files changed, 118 insertions(+), 67 deletions(-) rename internal/cli/testdata/golden/blobs/sha256/{69f0237c7f8cf0b8a329d1bf1d6870c870c4ec323e39d3a6da59596632d0f2f4 => 01b30a8033ff006a6415e12ad15044945893ed8eb8adaaae94e3614864400fd4} (54%) delete mode 100644 internal/cli/testdata/golden/blobs/sha256/124c885f834cfaf1329987457a9651a68c4fb9733d4462ae6288b98011277858 create mode 100644 internal/cli/testdata/golden/blobs/sha256/1bf87ff185ffacebc20e01f718e740ab028eb60710feb2d33aeea1c7f3231467 rename internal/cli/testdata/golden/blobs/sha256/{6c815259150f37d000417f9a93f41bddf74dff905c745986069d4b03e954ac1d => 1c4e13b3d0d1e30f6ea1011df86446c7e6e7c0b506aa29fecdad53e7da63d014} (80%) create mode 100644 internal/cli/testdata/golden/blobs/sha256/43abcfea61638ef8f4cf63e6fb5df9e56ad82c24432445e06fd6cec1ee2e5724 create mode 100644 internal/cli/testdata/golden/blobs/sha256/67af4d9667bf91d673da3eeb10e49cd2c42c197435c8cbdd92b7727e24f52181 delete mode 100644 internal/cli/testdata/golden/blobs/sha256/7e0f9d62f6cab4785e18a55f17d03f20ffb776881f1f46258efd9458f7cdaf08 rename internal/cli/testdata/golden/blobs/sha256/{fbb854f9d5a601a36c4dc8cc82e5b21e91b11cdd4aab5035340e4f517c5a8eb1 => ba3124d34c81d920e46a3c1d1798d9107f59e9a1ee28149412fd820195c2f47b} (80%) delete mode 100644 internal/cli/testdata/golden/blobs/sha256/c7557730da0e2d7fb242d8d1ac6dcf7e3a2439732aa5981270b4f3a02454b738 rename internal/cli/testdata/top_image/blobs/sha256/{52a254489d2b6d123a52b293b7032cca79834ce9f0176151c52754a0c7b1d1ea => 47457aa55c13b449a672775e843351d4fc5a0e5a21c89a69849edefe6380ffe2} (83%) delete mode 100644 internal/cli/testdata/top_image/blobs/sha256/7bd766d91d366d79c001436814bdfd629ef6da668805945c414cb074ddb7f0ed rename internal/cli/testdata/top_image/blobs/sha256/{e83f38a3553148f2189193b4908cce3576907dacddc14617d0e8d22370c80cce => 86ff4e2b0b097a9f1b2c11f1780dbfd596115820d57d10d5d86bd91776e8496a} (83%) create mode 100644 internal/cli/testdata/top_image/blobs/sha256/b8968c5ebe1dab45ff89b9e195885ccf3c9dfb1c483f751691f0678098113d0c rename internal/cli/testdata/top_image/blobs/sha256/{3c6b4bb5b39be26700e6baff9d83a53bba4a0d994e22638d11a4c104bc9e39c9 => d2b474c8ae961a2b171c246b74b967be6dc05a8767d884bc82c3a6016c746588} (59%) rename internal/cli/testdata/top_image/blobs/sha256/{9743477d70b66d27d627eb7dc1a548dee98ad742b195e24545b73a1c7113aea8 => e571989947311e3847232435f8244642d1105f0613367e0a8e014304e2beb0ae} (59%) create mode 100644 internal/cli/testdata/top_image/blobs/sha256/f74cd0feaeba016ee52ffb29597c23895d17ff6b6525d29b769c7e377bc11f79 delete mode 100644 internal/cli/testdata/top_image/blobs/sha256/ff58773a945b386b75663553a7f451c4f6116ec6fac9c22ef41ebaf27704a566 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 0000000000000000000000000000000000000000..6c1c06174e723497691f8ada86f7b5f79e9e4007 GIT binary patch literal 3072 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 O{{sLo$c?f9fB*nh-c&*W literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..02fa91972994953a9a0a29bd9b209370968b64cd GIT binary patch literal 3072 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 literal 0 HcmV?d00001 diff --git a/internal/cli/testdata/golden/blobs/sha256/7e0f9d62f6cab4785e18a55f17d03f20ffb776881f1f46258efd9458f7cdaf08 b/internal/cli/testdata/golden/blobs/sha256/7e0f9d62f6cab4785e18a55f17d03f20ffb776881f1f46258efd9458f7cdaf08 deleted file mode 100644 index 493f79b37b3f2ef84ac0f99dcd6d03adb7aa6d5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3079 zcmV+i4EXaOiwFP!32ul0|Lk0AbE3?bpVxc}i> z5oyw3yiCn^-@nMT>e)|&TbC;-U#`3$BwgIc5H+aktAuC_n+_&Ba&u83G}Ad(8tl`68XkTR~;6knEFIBawsa8e}k84&@Q?0x@&S&BEqj!Okd|h#GrUQ@j zsA=;0>b_SS%xgfK)w|_N*|@$pWvOkz+T^Cv>O2(mOrhN3#xggm`T1K#GtI@pg<;# zuKPgxl+PDXmYLX@3ubb~`g6G^OsZELZ{AP6Y9r^D^{h6#8@Ot*U$L0+!|0Onr};^> zBwWJWUD=`l#&U7WU)~1~55-m|GrsI;IlndS@LB_SBmSmf-ey~s{{3y~w(oIJs^_{x zwt%}%GTCll7pbId&&#(2OH->WS8J{0rI2B|mF~3381{7*F<`>*Lhl9K8=EI;m zEOdl6>1xG`>#itLxA$HS$w_xKxrGm%nd)dw$;&-lqi(zHbz7eMDD<+uo*!f@LATcE zW^Mqe8lvX&Me`bUB&ziAc&%PdDy_S@{g`FjEzbsna-Wm+WVr-yr^)-u%}Bf#08HM^ z{7FfzH%oeQ%$KJ9nsaSJ${BdDK1pi0%#V%REHT^yys+@()^KvF`q-%G_j0~axe@(g zl5h6BQL&gClANqLfRvlWq*&9Q=I-ulb2ZZrCIeJyjXFs^2?#r^myJr-xX9S;qK|KM z4~_}YF0{!6a5t@MuUar{I0u?K$*XGp{G3XqQmItF zl6zqUU;c2cp8o`S*tY{rY;^Q-z?&vPL5|B?9rG!q~{Fkt{04;n*gAwP}< z{-Ri5W&aaQ9CNGun0V9vMR~{mSqaFo{YPQ{9zg+e%~TKi$bmCF4$j#$NP`ps6hYo@ z(bkzU{sb)TAE)nq>~57G6QMl_Ke2z2U8T)e@gFMz5Ziwg_WzwWup1yZ@M+~cy*&z~ zm4E0xqXYWu89hWZV!PH(jh(j#Va4@H%0Ki^JPmzDzw|Zq*B@szasx8+ug^dJa4Utt(Dg(J^FX#=tP`3al;-CA9U;E#VklO!ul%F37DY-| zcs>i(vK~v^1O_*Dqgl5)fvS%?<1WrsVW%prWZh6Uc|-~-B48B`D52pmu677pZTEuGisu|_S-s8?=qY5P4~x@lLfN=F*r%!>JQD$Yl( z^HDqg-@(T5*8+zAPy*nEi(Kw+KNFVzp9^0X#r{76|G&e(ZxGuH{B-zCJR073{&O$+ z7g#pV|3{Mlj}arr--{jp9}wHJ5IOD=kT?84csP!e>6oW$ps$%{)gk@ z@Bc;f{lCX!4)l)2KagcsiusR-f5w2u;B;Sq{D}PnS&F~^6Up~~*8HC^19Uk5tjNdy zKPvyfq8EJ_jyx`nZ$B$n%s6aVuF z7AboUa1!7+ffaznvMJE-@mx>LKuOI0@3OT-g02z^y7qk0DdNc6BRf@z6Xs( zjn#t5P;6;Tti^_j4WBXAeOWE7W_rC$ADS5xWO|~&%cg+1tSE6=i8o}E7ue_5$)PZv z*Fzgwt@*7zEzC~6#VEDB`>mDSOR;}n3Gk)zR6RssV7pdx<_BoBk@ZTCmh%}l2l}>y zeAR`{Y`#!~K6HGvKDv~aTx@u$MVSgdQ zYAxSTTYBXx)$BG~`EtnAQU`y^&3lP|!P!f@-_&`0vWBHm(`)UCfZwv-`i&ugP;fQSp72I_CDZ=2;1G(mktkZT|f2FSu>7PePYwW4~J zPnFe*dX;a`XM4|BNGtrBL4x*%mIA#Yvoz2>qk;dd$o;=?BGdVDI@2pHw`Sgx?u>~; zuWS5RZhbvaWy??geUI9vm;Nz5gCi&P-Z@Y2(eY<3zpC(uUomQj_uKk0z0z!{rP9Br z?v@=4#yw{F82)eWa;f|Kw*K>8qW|j+9i`9q+U~pTW&KDd$XU27e_(rip3C7lBJV6_ z7V73NJp#5bwCZ9m-_#oVMLzfKqPrn)Q4^WX&7~tT%JT-lH1?lt6F{dh2jA2&ko?;P@v~Miau^zcW<4YIeoacUnFsq7D1F2BSwrE V$H)Hz009600|4A7vvB}`003iqJ^lay 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 4d94d7bbbc7fede26ee04f6c285aae026ea7044e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3072 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 O{{sN3`!%EhfB*pY@mGuh 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 0e8b2d71b47569d65b6863d8ca943b2a7f061f58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2955 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 B1@iy^ 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 0000000000000000000000000000000000000000..bf7a3cb5a300ffa7d1f5ee4e0cdcf1d577b1e51e GIT binary patch literal 2947 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 literal 0 HcmV?d00001 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 c8ca33564f6d37a8b219c4df8271bae0841907c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2945 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 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))