Review: golang-github-aquasecurity-trivy-checks 2.2.0+git20261012.ac85645-1
Package Information
| Description | misconfiguration 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. |
|---|---|
| Maintainer | Debian Go Packaging Team <team+pkg-go@tracker.debian.org> |
| Changed By | Juan Manuel Méndez Rey <juan.mendezr@proton.me> |
| Sponsor | tsimonq2@debian.org |
| Distribution | unstable |
| Architecture | all |
| VCS | git: https://salsa.debian.org/go-team/packages/golang-github-aquasecurity-trivy-checks.git (browse) |
| Closes | #1152495 |
| Tracker | https://tracker.debian.org/pkg/golang-github-aquasecurity-trivy-checks |
| Uploaded | 3 hours ago |
New Package Report
.changes
| Changed-By | Juan Manuel Méndez Rey <juan.mendezr@proton.me> |
|---|---|
| Architecture | source all |
| Distribution | unstable |
| Date | Fri, 30 Oct 2026 14:32:03 +0100 |
| Source | golang-github-aquasecurity-trivy-checks |
| Version | 2.2.0+git20261012.ac85645-1 |
Changelog
golang-github-aquasecurity-trivy-checks (2.2.0+git20261012.ac85645-1) unstable; urgency=medium . * Initial release (Closes: #1152495)
.dsc
| Package-List | golang-github-aquasecurity-trivy-checks-dev deb golang optional arch=all |
|---|---|
| Section | golang |
| Priority | optional |
| Component | main |
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/copyrightis 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.pmand/usr/bin/dh_golang(dh-go 1.69, the version in the archive) finds no occurrence ofDH_GOLANG_MODULE_MAPPINGS; the variables the buildsystem actually reads areDH_GOPKG,DH_GOLANG_BUILDPKG,DH_GOLANG_EXCLUDES,DH_GOLANG_EXCLUDES_ALL,DH_GOLANG_INSTALL_ALL,DH_GOLANG_INSTALL_EXTRAandDH_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-devdepends ongolang-github-go-ini-ini-dev— so nothing inrulesneeds to arrange it. - Fix: Delete the comment and the export, or, if a newer dh-go is required for it, raise the
dh-godependency 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 nodebian/patches/in the upload (debian.tar.xzholds 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(plusdebian/patches/series) with a DEP-3Description:/Forwarded:header removing the test, and drop theexecute_after_dh_auto_configuretarget; 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/copyrightand 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 uploadeddebian.tar.xzcontains 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 domainfound notices only inLICENSEanddebian/copyright; the only other hits were the word "AUTHORS" in the Expat text. A separate search forcreativecommons,by-nc,non-commercial,NoDerivativesandproprietaryfound nothing. LICENSEis MIT ("Copyright (c) 2024 Aqua Security");debian/copyrightgives the same holder forFiles: *with short nameExpatand 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 thanFiles: *, 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 whosemain.tfand.terraform.lock.hclare beside it) andexamples/cloudformation/template.json. avd_docs/is generated documentation with its generator present:Makefilehasdocs: fmt-examples→go run ./cmd/avd_generator, and the per-check*.yamlexample files it renders are inchecks/(e.g.checks/cloud/aws/apigateway/enable_cache.yamlnext toenable_cache.rego).lib/sh/holds onlysh_test.regoand that is correct:sh.parse_commandsis a Go-registered OPA builtin (internal/rego/parse_commands.go, namesh.parse_commands, registered inpkg/rego/builtins.go), not adata.lib.shmodule;checks/docker/missing_apk_no_cache.regoandlib/docker/docker.regocall it without any import.checks/kubernetes/outdated_api.regocarries a committedrecommendedVersionstable refreshed bymake update-outdated-api-data(asedover 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_EXCLUDESis applied byget_targets()to bothgo installandgo test, and toinstallbecauseDH_GOLANG_EXCLUDES_ALLdefaults to true from compat 12, socmd/,integration/andinternal/examplesare neither built, tested nor shipped;dhskipsoverride_dh_auto_testat compat 13+ undernocheck, so that override needs nonocheckcheck. - Dependencies that are used by the code that is built and tested exist in the archive:
dh-go1.69,golang-any1.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) satisfiesgo 1.26.2ingo.mod. The<!nocheck>test-only deps are the ones compiled bygo test, and autodep8's pkg-go test template installs@and@builddeps@, so they are present when the autopkgtest runs. Standards-Version: 4.7.4matches Policy 4.7.4.1 on the reviewing system; version2.2.0+git20261012.ac85645-1, distributionunstable, an initial release closing an ITP, are all consistent withdebian/changelog.- uscan found upstream releases with
debian/watch; a newer upstream version is available (upstream2.2.0+git20261026.f9099b7, packaged2.2.0+git20261012.ac85645), which is not a fault of the package.
Not confirmed ◂
golang-github-owenrumney-squealer-devis not in the reviewing system's package lists and is not among the binaries of the NEW uploads:internal/rego/squealer.goimportsgithub.com/owenrumney/squealer/pkg/squealerunconditionally and the package is inBuild-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-devis 1.4.2+ds1, described as a "stripped down library", whilego.modasks for OPA v1.21.0; the source importsopa/v1/loader,opa/v1/topdown/builtinsandopa.RegisterBuiltin1, anddebian/rulesremovespkg/rego/builtins_test.gobecauseopa.ResultValueis 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 inpkg/compliance/*.yamlfollow 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 norelated_resourcesentry points at anything non-free. checks/kubernetes/configmap_with_sensitive.rego:28says "some patterns are taken from https://github.com/americanexpress/earlybird/..." anddebian/copyrightnames 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), 1 hour ago
Review Information
accepted — allocated to awm 0 hours ago, started 0 hours ago, completed 0 hours ago.