DFSG NEW Queue

DFSG, Licensing & New Packages Team

Review: golang-github-aquasecurity-trivy-checks 2.2.0+git20261012.ac85645-1

Package Information

Descriptionmisconfiguration checks for Trivy (library)

This package holds the misconfiguration checks that Trivy runs, written in Rego: checks for cloud services (AWS, Azure, Google Cloud, DigitalOcean, GitHub, OpenStack, Oracle, CloudStack, Nifcloud), Dockerfiles and Kubernetes manifests, the Rego libraries they share, and the compliance report specifications. The Go package embeds the checks and loads their metadata.

MaintainerDebian Go Packaging Team <team+pkg-go@tracker.debian.org>
Changed ByJuan Manuel Méndez Rey <juan.mendezr@proton.me>
Sponsortsimonq2@debian.org
Distributionunstable
Architectureall
VCSgit: https://salsa.debian.org/go-team/packages/golang-github-aquasecurity-trivy-checks.git (browse)
Closes#1152495
Trackerhttps://tracker.debian.org/pkg/golang-github-aquasecurity-trivy-checks
Uploaded3 hours ago

New Package Report

.changes◂
Distributionunstable
DateFri, 30 Oct 2026 14:32:03 +0100
Sourcegolang-github-aquasecurity-trivy-checks
Version2.2.0+git20261012.ac85645-1
Changed-ByJuan Manuel Méndez Rey <juan.mendezr@proton.me>
Architecturesource all
Changelog◂
golang-github-aquasecurity-trivy-checks (2.2.0+git20261012.ac85645-1) unstable; urgency=medium
 .
   * Initial release (Closes: #1152495)
.dsc◂
Componentmain
Package-Listgolang-github-aquasecurity-trivy-checks-dev deb golang optional arch=all
Sectiongolang
Priorityoptional
debian/copyright◂
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Source: https://github.com/aquasecurity/trivy-checks
Upstream-Name: trivy-checks
Upstream-Contact: https://github.com/aquasecurity/trivy-checks/issues

Files: *
Copyright: 2024 Aqua Security
License: Expat

Files: debian/*
Copyright: 2026 Juan Manuel Méndez Rey <juan.mendezr@proton.me>
License: Expat
Comment: Debian packaging is licensed under the same terms as upstream

License: Expat
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
 in the Software without restriction, including without limitation the rights
 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 copies of the Software, and to permit persons to whom the Software is
 furnished to do so, subject to the following conditions:
 .
 The above copyright notice and this permission notice shall be included in all
 copies or substantial portions of the Software.
 .
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.

DFSG Assistant LLM REVIEW 0 blocker, 0 important, 2 minor

This is an LLM based review using a Debian Inference based workflow. It was not written by a member of the DFSG team and has not been checked by one. It is not a decision on the package: it may be wrong, and it may have missed things.

Reviewed 2 hours ago.

Report◂

DFSG NEW review for golang-github-aquasecurity-trivy-checks version 2.2.0+git20261012.ac85645-1

Summary

  • Licensing is DFSG-compliant and debian/copyright is accurate: Yes
  • Packaging is of good quality: Yes
  • Issues: 0 blocker, 0 important, 2 minor
  • debian/watch: version 5
  • debian/copyright: machine-readable
  • Scan before the review: nothing found

Licensing

The whole upstream tree carries a single MIT/Expat licence (the root LICENSE, "Copyright (c) 2024 Aqua Security"), and a tree-wide search for copyright, licence and SPDX notices found no other holder and no other licence: the Rego checks and libraries, avd_docs/, examples/, cmd/, integration/ and the dot-files are all Aqua's, as the checks' __defsec_metadata naming and the tfsec/defsec package names confirm. debian/copyright is DEP-5, has a correct Files: * catch-all and a later Files: debian/* stanza for the packaging, and includes the full Expat text, which is needed because MIT/Expat is not in /usr/share/common-licenses. Nothing in the tree is non-free, nothing lacks a licence, and no file is a built artifact without its source (the only generated directory, avd_docs/, has its generator and its inputs in the package).

Packaging

This is an idiomatic pkg-go library package: debhelper compat 14 with dh-go, dpkg-build-api (= 1) (so Rules-Requires-Root: no comes by default), Standards-Version 4.7.4 against Policy 4.7.4.1, Multi-Arch: foreign on an arch:all -dev package, Testsuite: autopkgtest-pkg-go, Vcs-*, Homepage, XS-Go-Import-Path, upstream metadata and salsa-ci all present. debian/rules correctly excludes the tooling (cmd/, integration/, internal/examples) from build, test and install, and installs the non-Go data (checks, lib, commands, pkg/compliance/*.yaml) that the package's //go:embed directives need, including for consumers of the installed sources. Dependencies are complete for the code that is built and tested. The remaining faults are small: one dead environment variable in rules and upstream-test removal done in the build tree rather than as a patch.

Issues

minor packaging 1. debian/rules:9 exports DH_GOLANG_MODULE_MAPPINGS, which dh-go 1.69 does not implement ◂
  • Files: debian/rules:8-9
  • Basis: checked, in the package or with a reference tool
  • Evidence: export DH_GOLANG_MODULE_MAPPINGS := github.com/go-ini/ini:gopkg.in/ini.v1 — grepping /usr/share/perl5/Debian/Debhelper/Buildsystem/golang.pm and /usr/bin/dh_golang (dh-go 1.69, the version in the archive) finds no occurrence of DH_GOLANG_MODULE_MAPPINGS; the variables the buildsystem actually reads are DH_GOPKG, DH_GOLANG_BUILDPKG, DH_GOLANG_EXCLUDES, DH_GOLANG_EXCLUDES_ALL, DH_GOLANG_INSTALL_ALL, DH_GOLANG_INSTALL_EXTRA and DH_GOLANG_GO_GENERATE.
  • Problem: The assignment does nothing: dh-golang has no module-mapping feature, so the export is dead code that suggests the build depends on it. The mapping the comment describes is provided by Debian's own go-ini packaging — golang-github-open-policy-agent-opa-dev depends on golang-github-go-ini-ini-dev — so nothing in rules needs to arrange it.
  • Fix: Delete the comment and the export, or, if a newer dh-go is required for it, raise the dh-go dependency to that version so the setting is not silently ignored.
minor packaging 2. An upstream test file is deleted in the build directory instead of by a quilt patch ◂
  • Files: debian/rules:14-16
  • Basis: inferred from what was read, not seen directly
  • Evidence: # builtins_test.go needs opa.ResultValue, newer than the OPA in Debian. / execute_after_dh_auto_configure: / rm -f debian/_build/src/github.com/aquasecurity/trivy-checks/pkg/rego/builtins_test.go; there is no debian/patches/ in the upload (debian.tar.xz holds only the nine files already in the tree).
  • Problem: The only change the package makes to upstream sources is applied to the build workspace, not expressed as a patch. It is therefore invisible to debian/patches, cannot be reviewed or forwarded upstream through the BTS, and silently drops the test from the sources installed in /usr/share/gocode, so the modification differs from everything else in the package. Debian practice for a source change forced by a library version is a DEP-3-headed quilt patch.
  • Fix: Add debian/patches/builtins-test-newer-opa.patch (plus debian/patches/series) with a DEP-3 Description:/Forwarded: header removing the test, and drop the execute_after_dh_auto_configure target; alternatively forward the removal upstream.
Verified ◂
  • The scan before the review listed no files: its author check reports that every holder it found (Aqua Security) is named in debian/copyright and that it scanned all 2662 files.
  • Read in full: debian/changelog, debian/control, debian/copyright, debian/rules, debian/gbp.conf, debian/salsa-ci.yml, debian/source/format (3.0 (quilt)), debian/upstream/metadata; the uploaded debian.tar.xz contains exactly these and no patch series.
  • Tree-wide grep (gitignore off) for Copyright, (C), ©, SPDX-License-Identifier, Licensed under, All rights reserved, Permission is hereby granted, GNU General Public, Apache License, Mozilla Public, public domain found notices only in LICENSE and debian/copyright; the only other hits were the word "AUTHORS" in the Expat text. A separate search for creativecommons, by-nc, non-commercial, NoDerivatives and proprietary found nothing.
  • LICENSE is MIT ("Copyright (c) 2024 Aqua Security"); debian/copyright gives the same holder for Files: * with short name Expat and reproduces the text, which is required since it is not in /usr/share/common-licenses. Files: debian/* (2026 Juan Manuel Méndez Rey, Expat) is later than Files: *, so it correctly overrides it for the packaging.
  • No binaries, archives, images, fonts or PDFs in the tree: a search for those extensions found none. The only non-textual-looking files are test fixtures: examples/terraform-plan/tfplan.json (a rendered plan whose main.tf and .terraform.lock.hcl are beside it) and examples/cloudformation/template.json.
  • avd_docs/ is generated documentation with its generator present: Makefile has docs: fmt-examples → go run ./cmd/avd_generator, and the per-check *.yaml example files it renders are in checks/ (e.g. checks/cloud/aws/apigateway/enable_cache.yaml next to enable_cache.rego).
  • lib/sh/ holds only sh_test.rego and that is correct: sh.parse_commands is a Go-registered OPA builtin (internal/rego/parse_commands.go, name sh.parse_commands, registered in pkg/rego/builtins.go), not a data.lib.sh module; checks/docker/missing_apk_no_cache.rego and lib/docker/docker.rego call it without any import.
  • checks/kubernetes/outdated_api.rego carries a committed recommendedVersions table refreshed by make update-outdated-api-data (a sed over a documented URL); it is plain source and is not regenerated at build time, so nothing is missing from the package to modify it.
  • Checked debhelper's behaviour rather than guessing: in the installed dh-go golang.pm, DH_GOLANG_EXCLUDES is applied by get_targets() to both go install and go test, and to install because DH_GOLANG_EXCLUDES_ALL defaults to true from compat 12, so cmd/, integration/ and internal/examples are neither built, tested nor shipped; dh skips override_dh_auto_test at compat 13+ under nocheck, so that override needs no nocheck check.
  • Dependencies that are used by the code that is built and tested exist in the archive: dh-go 1.69, golang-any 1.27, golang-github-open-policy-agent-opa-dev, golang-github-hashicorp-hcl-v2-dev, golang-github-samber-lo-dev, golang-golang-x-text-dev, golang-gopkg-yaml.v3-dev, golang-mvdan-sh-dev, golang-github-stretchr-testify-dev, golang-github-xeipuuv-gojsonschema-dev; dpkg-build-api (= 1) is provided by dpkg-dev 1.23.11; golang-any (Go 1.27) satisfies go 1.26.2 in go.mod. The <!nocheck> test-only deps are the ones compiled by go test, and autodep8's pkg-go test template installs @ and @builddeps@, so they are present when the autopkgtest runs.
  • Standards-Version: 4.7.4 matches Policy 4.7.4.1 on the reviewing system; version 2.2.0+git20261012.ac85645-1, distribution unstable, an initial release closing an ITP, are all consistent with debian/changelog.
  • uscan found upstream releases with debian/watch; a newer upstream version is available (upstream 2.2.0+git20261026.f9099b7, packaged 2.2.0+git20261012.ac85645), which is not a fault of the package.
Not confirmed ◂
  • golang-github-owenrumney-squealer-dev is not in the reviewing system's package lists and is not among the binaries of the NEW uploads: internal/rego/squealer.go imports github.com/owenrumney/squealer/pkg/squealer unconditionally and the package is in Build-Depends, so if it really has not been uploaded yet the build cannot resolve it. The lists can be days old, and the maintainer's own clean build would have caught this.
  • Debian's golang-github-open-policy-agent-opa-dev is 1.4.2+ds1, described as a "stripped down library", while go.mod asks for OPA v1.21.0; the source imports opa/v1/loader, opa/v1/topdown/builtins and opa.RegisterBuiltin1, and debian/rules removes pkg/rego/builtins_test.go because opa.ResultValue is absent. I could not check what the stripped Debian package actually contains, so whether the remaining imports all resolve there is unconfirmed (the maintainer built the package, so presumably they do).
  • The descriptions in the checks (e.g. checks/cloud/aws/accessanalyzer/enable_access_analyzer.rego) and the control names/descriptions in pkg/compliance/*.yaml follow AWS/Azure/Google documentation and CIS/NSA benchmark wording; whether any is a substantial verbatim copy whose source terms require attribution could not be checked without network access. The package carries no third-party licence text and no related_resources entry points at anything non-free.
  • checks/kubernetes/configmap_with_sensitive.rego:28 says "some patterns are taken from https://github.com/americanexpress/earlybird/..." and debian/copyright names only Aqua Security. The nine regexps are short and generic (username/email/IBAN/SHA1/MD5 forms), and EarlyBird's licence could not be checked here, so whether this needs a copyright stanza or is de minimis is a judgement call I could not settle.
Proposed changes ◂

None.

Uploader's response to the LLM review

One note for the Human Reviewers, so they may fix this:

1: dh-go does implement DH_GOLANG_MODULE_MAPPINGS (lib/Debian/Debhelper/Buildsystem/golang.pm, documented there and read from the environment, in 1.68, 1.69 and 1.70); the check probably looked at dh-golang.

2: This is a right report and I verified it.

The test is now dropped by a DEP-3 patch for the next revision: https://salsa.debian.org/go-team/packages/golang-github-aquasecurity-trivy-checks/-/commit/19563bbf0ce1c55cc21cb71d2b01d42203fc8fe8 .

Please accept this upload.

— Juan Manuel Méndez Rey (mendezr), 2 hours ago

Review Information

accepted — allocated to awm 0 hours ago, started 0 hours ago, completed 0 hours ago.

Final Comment

Back to Dashboard | View all reviews for this package