Skip to content

Commit d678eca

Browse files
authored
Allow Syft to read deb files appropriately instead of misclassifying as binary (#17)
* Update run.Dockerfile Updated dpkg-deb command to use `--control` instead of `-e` to be more specific of its function Changed folder to `CONTROL` instead of `MD5SUMS` to explain its use more Moved md5sums file to `/tiny/var/lib/dpkg/status.d/$pkg.md5sums` to follow what is done with Distroless images and to allow Syft to function correctly. * Update metadata_tiny_stack_test.go Modified test to read the md5sums file from status.d directory instead of info.
1 parent ae6273e commit d678eca

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

metadata_tiny_stack_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ func testMetadataTinyStack(t *testing.T, context spec.G, it spec.S) {
122122
ContainSubstring("/."),
123123
)))
124124

125-
Expect(image).To(HaveFile("/var/lib/dpkg/info/base-files.md5sums"))
125+
Expect(image).To(HaveFile("/var/lib/dpkg/status.d/base-files.md5sums"))
126126

127127
Expect(image).To(HaveFileWithContent("/var/lib/dpkg/status.d/ca-certificates", SatisfyAll(
128128
ContainSubstring("Package: ca-certificates"),
@@ -134,7 +134,7 @@ func testMetadataTinyStack(t *testing.T, context spec.G, it spec.S) {
134134
ContainSubstring("/."),
135135
)))
136136

137-
Expect(image).To(HaveFile("/var/lib/dpkg/info/ca-certificates.md5sums"))
137+
Expect(image).To(HaveFile("/var/lib/dpkg/status.d/ca-certificates.md5sums"))
138138

139139
Expect(image).To(HaveFileWithContent("/var/lib/dpkg/status.d/libc6", SatisfyAll(
140140
ContainSubstring("Package: libc6"),
@@ -148,7 +148,7 @@ func testMetadataTinyStack(t *testing.T, context spec.G, it spec.S) {
148148
ContainSubstring("/."),
149149
)))
150150

151-
Expect(image).To(HaveFile("/var/lib/dpkg/info/libc6.md5sums"))
151+
Expect(image).To(HaveFile("/var/lib/dpkg/status.d/libc6.md5sums"))
152152

153153
Expect(image).To(HaveFileWithContent("/var/lib/dpkg/status.d/libssl3t64", SatisfyAll(
154154
ContainSubstring("Package: libssl3t64"),
@@ -162,7 +162,7 @@ func testMetadataTinyStack(t *testing.T, context spec.G, it spec.S) {
162162
ContainSubstring("/."),
163163
)))
164164

165-
Expect(image).To(HaveFile("/var/lib/dpkg/info/libssl3t64.md5sums"))
165+
Expect(image).To(HaveFile("/var/lib/dpkg/status.d/libssl3t64.md5sums"))
166166

167167
Expect(image).To(HaveFileWithContent("/var/lib/dpkg/status.d/netbase", SatisfyAll(
168168
ContainSubstring("Package: netbase"),
@@ -174,7 +174,7 @@ func testMetadataTinyStack(t *testing.T, context spec.G, it spec.S) {
174174
ContainSubstring("/."),
175175
)))
176176

177-
Expect(image).To(HaveFile("/var/lib/dpkg/info/netbase.md5sums"))
177+
Expect(image).To(HaveFile("/var/lib/dpkg/status.d/netbase.md5sums"))
178178

179179
Expect(image).To(HaveFileWithContent("/var/lib/dpkg/status.d/openssl", SatisfyAll(
180180
ContainSubstring("Package: openssl"),
@@ -188,7 +188,7 @@ func testMetadataTinyStack(t *testing.T, context spec.G, it spec.S) {
188188
ContainSubstring("/."),
189189
)))
190190

191-
Expect(image).To(HaveFile("/var/lib/dpkg/info/openssl.md5sums"))
191+
Expect(image).To(HaveFile("/var/lib/dpkg/status.d/openssl.md5sums"))
192192

193193
Expect(image).To(HaveFileWithContent("/var/lib/dpkg/status.d/tzdata", SatisfyAll(
194194
ContainSubstring("Package: tzdata"),
@@ -200,7 +200,7 @@ func testMetadataTinyStack(t *testing.T, context spec.G, it spec.S) {
200200
ContainSubstring("/."),
201201
)))
202202

203-
Expect(image).To(HaveFile("/var/lib/dpkg/info/tzdata.md5sums"))
203+
Expect(image).To(HaveFile("/var/lib/dpkg/status.d/tzdata.md5sums"))
204204

205205
Expect(image).To(HaveFileWithContent("/var/lib/dpkg/status.d/zlib1g", SatisfyAll(
206206
ContainSubstring("Package: zlib1g"),
@@ -214,7 +214,7 @@ func testMetadataTinyStack(t *testing.T, context spec.G, it spec.S) {
214214
ContainSubstring("/."),
215215
)))
216216

217-
Expect(image).To(HaveFile("/var/lib/dpkg/info/zlib1g.md5sums"))
217+
Expect(image).To(HaveFile("/var/lib/dpkg/status.d/zlib1g.md5sums"))
218218

219219
Expect(image).NotTo(HaveFile("/usr/share/ca-certificates"))
220220

stacks/noble-tiny-stack/run/run.Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ RUN apt download $packages \
2727
&& dpkg-deb -c $pkg*.deb | awk '{print substr($6, 2)}' > /tiny/var/lib/dpkg/info/$pkg.list \
2828
&& sed -i '1s|.*|/.|' /tiny/var/lib/dpkg/info/$pkg.list \
2929
&& sed -i '/\/$/s|/$||' /tiny/var/lib/dpkg/info/$pkg.list \
30-
&& dpkg-deb -e $pkg*.deb MD5SUMS \
31-
&& cp MD5SUMS/md5sums /tiny/var/lib/dpkg/info/$pkg.md5sums \
32-
&& rm -rf MD5SUMS; \
30+
&& dpkg-deb --control $pkg*.deb CONTROL \
31+
&& cp CONTROL/md5sums /tiny/var/lib/dpkg/status.d/$pkg.md5sums \
32+
&& rm -rf CONTROL; \
3333
done
3434

3535
RUN ./install-certs.sh

0 commit comments

Comments
 (0)