Skip to content

Commit

Permalink
Add architecture property to Package (#153)
Browse files Browse the repository at this point in the history
Arch property is added to Package structure. Architecture is also parsed
from package database and stored in index report.

Architecture should be also used in vulnerability scanner since some
vulnerabilities are arch specific.

Co-authored-by: Louis DeLosSantos <[email protected]>
  • Loading branch information
Allda and Louis DeLosSantos authored Apr 3, 2020
1 parent bb7bef5 commit 8cd6822
Show file tree
Hide file tree
Showing 13 changed files with 315 additions and 20 deletions.
2 changes: 2 additions & 0 deletions alpine/packagescanner.go
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ func (*Scanner) Scan(ctx context.Context, layer *claircore.Layer) ([]*claircore.
p.Version = l
case 'c':
p.RepositoryHint = l
case 'A':
p.Arch = l
case 'o':
if src, ok := srcs[l]; ok {
p.Source = src
Expand Down
14 changes: 14 additions & 0 deletions alpine/packagescanner_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ func TestScan(t *testing.T) {
Name: "musl",
Version: "1.1.22-r3",
Kind: "binary",
Arch: "x86_64",
Source: &claircore.Package{Name: "musl", Version: "1.1.22-r3", Kind: "source"},
PackageDB: "lib/apk/db/installed",
RepositoryHint: "0c777cf840e82cdc528651e3f3f8f9dda6b1b028",
Expand All @@ -31,6 +32,7 @@ func TestScan(t *testing.T) {
Name: "busybox",
Version: "1.30.1-r2",
Kind: "binary",
Arch: "x86_64",
Source: &claircore.Package{Name: "busybox", Version: "1.30.1-r2", Kind: "source"},
PackageDB: "lib/apk/db/installed",
RepositoryHint: "d310e6a3189f51bd55bdc398fca5948c2d044804",
Expand All @@ -39,6 +41,7 @@ func TestScan(t *testing.T) {
Name: "alpine-baselayout",
Version: "3.1.2-r0",
Kind: "binary",
Arch: "x86_64",
Source: &claircore.Package{Name: "alpine-baselayout", Version: "3.1.2-r0", Kind: "source"},
PackageDB: "lib/apk/db/installed",
RepositoryHint: "770d8ce7c6c556d952884ad436dd82b17ceb1a9a",
Expand All @@ -47,6 +50,7 @@ func TestScan(t *testing.T) {
Name: "alpine-keys",
Version: "2.1-r2",
Kind: "binary",
Arch: "x86_64",
Source: &claircore.Package{Name: "alpine-keys", Version: "2.1-r2", Kind: "source"},
PackageDB: "lib/apk/db/installed",
RepositoryHint: "bdc861e495d33e961b7b9884324bea64a16d2b91",
Expand All @@ -55,6 +59,7 @@ func TestScan(t *testing.T) {
Name: "libcrypto1.1",
Version: "1.1.1d-r0",
Kind: "binary",
Arch: "x86_64",
Source: &claircore.Package{Name: "openssl", Version: "1.1.1d-r0", Kind: "source"},
PackageDB: "lib/apk/db/installed",
RepositoryHint: "95e4899bd4d379e6dde69de81fb0506e00322dec",
Expand All @@ -63,6 +68,7 @@ func TestScan(t *testing.T) {
Name: "libssl1.1",
Version: "1.1.1d-r0",
Kind: "binary",
Arch: "x86_64",
Source: &claircore.Package{Name: "openssl", Version: "1.1.1d-r0", Kind: "source"},
PackageDB: "lib/apk/db/installed",
RepositoryHint: "95e4899bd4d379e6dde69de81fb0506e00322dec",
Expand All @@ -71,6 +77,7 @@ func TestScan(t *testing.T) {
Name: "ca-certificates-cacert",
Version: "20190108-r0",
Kind: "binary",
Arch: "x86_64",
Source: &claircore.Package{Name: "ca-certificates", Version: "20190108-r0", Kind: "source"},
PackageDB: "lib/apk/db/installed",
RepositoryHint: "2e508d7528ca4d9496f05d7f453cbd17dbb80f9d",
Expand All @@ -79,6 +86,7 @@ func TestScan(t *testing.T) {
Name: "libtls-standalone",
Version: "2.9.1-r0",
Kind: "binary",
Arch: "x86_64",
Source: &claircore.Package{Name: "libtls-standalone", Version: "2.9.1-r0", Kind: "source"},
PackageDB: "lib/apk/db/installed",
RepositoryHint: "981bf8f8fb3cbbc210ee4f2a2fb5b55d0132e02a",
Expand All @@ -87,6 +95,7 @@ func TestScan(t *testing.T) {
Name: "ssl_client",
Version: "1.30.1-r2",
Kind: "binary",
Arch: "x86_64",
Source: &claircore.Package{Name: "busybox", Version: "1.30.1-r2", Kind: "source"},
PackageDB: "lib/apk/db/installed",
RepositoryHint: "d310e6a3189f51bd55bdc398fca5948c2d044804",
Expand All @@ -95,6 +104,7 @@ func TestScan(t *testing.T) {
Name: "zlib",
Version: "1.2.11-r1",
Kind: "binary",
Arch: "x86_64",
Source: &claircore.Package{Name: "zlib", Version: "1.2.11-r1", Kind: "source"},
PackageDB: "lib/apk/db/installed",
RepositoryHint: "d2bfb22c8e8f67ad7d8d02704f35ec4d2a19f9b9",
Expand All @@ -103,6 +113,7 @@ func TestScan(t *testing.T) {
Name: "apk-tools",
Version: "2.10.4-r2",
Kind: "binary",
Arch: "x86_64",
Source: &claircore.Package{Name: "apk-tools", Version: "2.10.4-r2", Kind: "source"},
PackageDB: "lib/apk/db/installed",
RepositoryHint: "1b98a2fa98c5af24a6a55cc61a4ff1ba1fa1f34f",
Expand All @@ -111,6 +122,7 @@ func TestScan(t *testing.T) {
Name: "scanelf",
Version: "1.2.3-r0",
Kind: "binary",
Arch: "x86_64",
Source: &claircore.Package{Name: "pax-utils", Version: "1.2.3-r0", Kind: "source"},
PackageDB: "lib/apk/db/installed",
RepositoryHint: "7768569c07c52f01b11e62e523cd6ddcb4690889",
Expand All @@ -119,6 +131,7 @@ func TestScan(t *testing.T) {
Name: "musl-utils",
Version: "1.1.22-r3",
Kind: "binary",
Arch: "x86_64",
Source: &claircore.Package{Name: "musl", Version: "1.1.22-r3", Kind: "source"},
PackageDB: "lib/apk/db/installed",
RepositoryHint: "0c777cf840e82cdc528651e3f3f8f9dda6b1b028",
Expand All @@ -127,6 +140,7 @@ func TestScan(t *testing.T) {
Name: "libc-utils",
Version: "0.7.1-r0",
Kind: "binary",
Arch: "x86_64",
Source: &claircore.Package{Name: "libc-dev", Version: "0.7.1-r0", Kind: "source"},
PackageDB: "lib/apk/db/installed",
RepositoryHint: "cdca45021830765ad71e58af7ed31f42d1d3d644",
Expand Down
1 change: 1 addition & 0 deletions dpkg/scanner.go
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ Find:
Name: pkg.Package,
Version: pkg.Version,
Kind: "binary",
Arch: pkg.Architecture,
PackageDB: fn,
}
if pkg.Source != "" {
Expand Down
Loading

0 comments on commit 8cd6822

Please sign in to comment.