Skip to content

feat(sbom): include package license metadata - #1208

Merged
jdx merged 9 commits into
mainfrom
agent/sbom-license-metadata
Aug 1, 2026
Merged

jdx merged 9 commits into
mainfrom
agent/sbom-license-metadata

Conversation

@jdx

@jdx jdx commented Aug 1, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • reuse aube licenses installed-package discovery for SBOM generation, including isolated, hoisted, linked, and custom virtual-store layouts
  • emit root and dependency licenses in CycloneDX 1.5 as SPDX identifiers, SPDX expressions, or named licenses
  • populate SPDX 2.3 licenseDeclared for valid expressions while leaving licenseConcluded as NOASSERTION
  • snapshot installed license metadata in a fingerprinted sidecar, with live-manifest fallbacks for older installs and linked packages

Root cause

aube sbom only consumed the lockfile, while aube licenses independently read installed package manifests. Canonical aube/pnpm lockfiles do not preserve package licenses, so SBOM output omitted CycloneDX licenses and hardcoded SPDX license fields.

Performance

The initial implementation raised SBOM instructions by 53.32%. Selective parsing, cached SPDX classification, and a fingerprinted license sidecar reduced that to 6.31%. Warm install is +0.68%, startup +0.68%, and tree +0.23%, all below the 1% gate. The remaining SBOM-only delta covers reading the compact sidecar, validating SPDX values, and serializing the new license objects.

Validation

  • cargo fmt --check
  • cargo clippy -p aube --all-targets -- -D warnings
  • cargo test -p aube commands::sbom::tests
  • cargo test -p aube commands::licenses::tests
  • mise run test:bats test/sbom.bats

Closes discussion #1204.

AI-assisted — Tool: Codex; model: openai/gpt-5; version: unavailable.

Summary by CodeRabbit

  • New Features

    • SBOM output now includes validated license information for the project and its dependencies.
    • CycloneDX and SPDX reports identify license expressions, IDs, names, or NOASSERTION when unavailable.
    • License metadata is preserved across installations for more reliable reporting.
  • Bug Fixes

    • Improved license discovery for custom layouts, hoisted and linked packages, and incomplete manifests.
    • Added support for multiple licenses and fallback metadata sources.
    • Improved handling of malformed or unavailable license declarations.

@coderabbitai

coderabbitai Bot commented Aug 1, 2026 •

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Central YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: fbc8a76d-3be0-4bee-940b-d36fd69aa0f2

📥 Commits

Reviewing files that changed from the base of the PR and between 558bdfe and 57a673d.

📒 Files selected for processing (4)
  • Cargo.toml
  • crates/aube/src/commands/licenses.rs
  • crates/aube/src/commands/sbom.rs
  • crates/aube/src/state.rs

📝 Walkthrough

Walkthrough

The change records package license metadata during installation, resolves it from installed packages and fallback state, and adds license values to CycloneDX and SPDX SBOM output. Tests cover parsing, path layouts, fallback behavior, and SPDX validation.

Changes

License metadata and SBOM generation

Layer / File(s) Summary
License state persistence
crates/aube/src/state.rs
Installation state stores package licenses and the configured virtual-store length. The implementation writes and reads licenses.json with a state-directory fallback.
Installed license metadata collection
Cargo.toml, crates/aube/Cargo.toml, crates/aube/src/commands/licenses.rs
License collection reconstructs package paths for linked, local, hoisted, and virtual-store layouts. It parses manifest fields and applies installed-license and lockfile fallbacks.
CycloneDX and SPDX license rendering
crates/aube/src/commands/sbom.rs
CycloneDX classifies SPDX IDs, expressions, and free-form names. SPDX output accepts valid expressions and uses NOASSERTION for invalid or missing values.
Integration validation
test/sbom.bats
Tests verify root and dependency licenses, custom virtual-store limits, persisted-state fallback, linked-package updates, and SPDX output.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant InstallState
  participant LicenseCollector
  participant PackageManifest
  participant SBOMCommand
  participant SBOMRenderers
  InstallState->>LicenseCollector: Persist package license metadata
  SBOMCommand->>LicenseCollector: Collect installed package metadata
  LicenseCollector->>PackageManifest: Read manifest license fields
  PackageManifest-->>LicenseCollector: Return license metadata
  LicenseCollector-->>SBOMCommand: Return metadata map
  SBOMCommand->>SBOMRenderers: Render CycloneDX or SPDX output
  SBOMRenderers-->>SBOMCommand: Emit classified or validated license values
Loading

Possibly related PRs

  • jdx/aube#1183: Both changes modify installed package path and license resolution in crates/aube/src/commands/licenses.rs.

Poem

A rabbit records licenses in state,
Then finds them by package path and gate.
CycloneDX names each value with care,
SPDX accepts expressions that parse there.
Missing values become NOASSERTION.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adding package license metadata to SBOM generation.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@socket-security

socket-security Bot commented Aug 1, 2026 •

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedcargo/​spdx@​0.13.41001009310060

View full report

@socket-security

socket-security Bot commented Aug 1, 2026 •

Copy link
Copy Markdown

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
License policy violation: cargo spdx under any-OSI

License: any-OSI - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/any-OSI)

License: App-s2p - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/App-s2p)

License: NGPL - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SMAIL-GPL)

License: Elastic-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SUL-1.0)

License: BitTorrent-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Motosoto)

License: Boehm-GC - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Boehm-GC-without-fee)

License: BSD-Source-beginning-file - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/ngrep)

License: OFL-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Ubuntu-font-1.0)

License: cve-tou - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CAPEC-tou)

License: OAR - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/generic-xts)

License: NIST-Software - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/NTIA-PD)

License: HPND-sell-variant - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-sell-variant-critical-systems)

License: Caldera - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Caldera)

License: CDLA-Sharing-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CDLA-Sharing-1.0)

License: NGPL - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/NGPL)

License: swrule - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/swrule)

License: OGC-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/OGC-1.0)

License: HaskellReport - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HaskellReport)

License: NOSL - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/NOSL)

License: SCEA - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SCEA)

License: ODC-By-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/ODC-By-1.0)

License: Frameworx-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Frameworx-1.0)

License: CC-BY-NC-ND-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CC-BY-NC-ND-1.0)

License: Lucida-Bitmap-Fonts - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Lucida-Bitmap-Fonts)

License: OSET-PL-2.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/OSET-PL-2.1)

License: Kastrup - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Kastrup)

License: iMatix - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/iMatix)

License: snprintf - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/snprintf)

License: etalab-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/etalab-2.0)

License: HPND-Fenneberg-Livingston - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-Fenneberg-Livingston)

License: COIL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/COIL-1.0)

License: HPND-sell-variant-MIT-disclaimer - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-sell-variant-MIT-disclaimer)

License: OGL-UK-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/OGL-UK-2.0)

License: Cronyx - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Cronyx)

License: YPL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/YPL-1.0)

License: xzoom - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/xzoom)

License: mpi-permissive - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/mpi-permissive)

License: xlock - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/xlock)

License: AML-glslang - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/AML-glslang)

License: PADL - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/PADL)

License: Pixar - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Pixar)

License: DL-DE-BY-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/DL-DE-BY-2.0)

License: SchemeReport - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SchemeReport)

License: SMPPL - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SMPPL)

License: Baekmuk - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Baekmuk)

License: VOSTROM - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/VOSTROM)

License: CFITSIO - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CFITSIO)

License: SHL-0.5 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SHL-0.5)

License: NLOD-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/NLOD-2.0)

License: CERN-OHL-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CERN-OHL-1.1)

License: Nunit - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Nunit)

License: Glide - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Glide)

License: NPL-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/NPL-1.1)

License: McPhee-slideshow - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/McPhee-slideshow)

License: Zimbra-1.4 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Zimbra-1.4)

License: TOSL - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/TOSL)

License: Abstyles - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Abstyles)

License: Ferguson-Twofish - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Ferguson-Twofish)

License: Sendmail-8.23 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Sendmail-8.23)

License: CC-BY-NC-ND-2.5 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CC-BY-NC-ND-2.5)

License: OFL-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/OFL-1.1)

License: BSD-3-Clause-acpica - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/BSD-3-Clause-acpica)

License: DRL-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/DRL-1.1)

License: wxWindows - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/wxWindows)

License: 3D-Slicer-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/3D-Slicer-1.0)

License: TTWL - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/TTWL)

License: LOOP - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/LOOP)

License: LPPL-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/LPPL-1.1)

License: D-FSL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/D-FSL-1.0)

License: LPD-document - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/LPD-document)

License: IPA - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/IPA)

License: Eurosym - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Eurosym)

License: Caldera-no-preamble - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Caldera-no-preamble)

License: Unicode-TOU - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Unicode-TOU)

License: LiLiQ-P-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/LiLiQ-P-1.1)

License: threeparttable - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/threeparttable)

License: TAPR-OHL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/TAPR-OHL-1.0)

License: softSurfer - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/softSurfer)

License: UCAR - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/UCAR)

License: CC-BY-ND-3.0-DE - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CC-BY-ND-3.0-DE)

License: Hippocratic-2.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Hippocratic-2.1)

License: HP-1986 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HP-1986)

License: HPND-doc-sell - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-doc-sell)

License: Martin-Birgmeier - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Martin-Birgmeier)

License: CECILL-C - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CECILL-C)

License: CC-BY-ND-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CC-BY-ND-2.0)

License: CERN-OHL-1.2 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CERN-OHL-1.2)

License: CUA-OPL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CUA-OPL-1.0)

License: check-cvs - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/check-cvs)

License: HPND-doc - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-doc)

License: Imlib2 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Imlib2)

License: SGI-B-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SGI-B-1.0)

License: EUPL-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/EUPL-1.1)

License: CERN-OHL-S-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CERN-OHL-S-2.0)

License: FreeImage - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/FreeImage)

License: TMate - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/TMate)

License: CMU-Mach-nodoc - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CMU-Mach-nodoc)

License: CECILL-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CECILL-2.0)

License: Mackerras-3-Clause - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Mackerras-3-Clause)

License: gtkbook - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/gtkbook)

License: HPND-Kevlin-Henney - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-Kevlin-Henney)

License: Interbase-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Interbase-1.0)

License: fwlw - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/fwlw)

License: LAL-1.2 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/LAL-1.2)

License: Glulxe - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Glulxe)

License: JPL-image - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/JPL-image)

License: TPDL - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/TPDL)

License: OPL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/OPL-1.0)

License: TGPPL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/TGPPL-1.0)

License: eCos-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/eCos-2.0)

License: BSD-4.3RENO - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/BSD-4.3RENO)

License: OFFIS - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/OFFIS)

License: TPL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/TPL-1.0)

License: GFDL-1.2 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/GFDL-1.2)

License: Watcom-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Watcom-1.0)

License: TermReadKey - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/TermReadKey)

License: NPL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/NPL-1.0)

License: Graphics-Gems - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Graphics-Gems)

License: UMich-Merit - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/UMich-Merit)

License: HPND-INRIA-IMAG - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-INRIA-IMAG)

License: FSFAP - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/FSFAP)

License: CERN-OHL-P-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CERN-OHL-P-2.0)

License: OpenPBS-2.3 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/OpenPBS-2.3)

License: IEC-Code-Components-EULA - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/IEC-Code-Components-EULA)

License: HPND-sell-variant - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-sell-variant)

License: TORQUE-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/TORQUE-1.1)

License: Dotseqn - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Dotseqn)

License: CECILL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CECILL-1.0)

License: OGL-Canada-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/OGL-Canada-2.0)

License: HPND-merchantability-variant - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-merchantability-variant)

License: dvipdfm - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/dvipdfm)

License: Adobe-Display-PostScript - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Adobe-Display-PostScript)

License: MakeIndex - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/MakeIndex)

License: AdaCore-doc - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/AdaCore-doc)

License: EPICS - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/EPICS)

License: HIDAPI - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HIDAPI)

License: RHeCos-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/RHeCos-1.1)

License: LicenseRef-FSL-1.1-MIT - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/FSL-1.1-MIT)

License: LPPL-1.2 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/LPPL-1.2)

License: CECILL-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CECILL-1.1)

License: HPND-Netrek - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-Netrek)

License: OpenSSL-standalone - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/OpenSSL-standalone)

License: OFL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/OFL-1.0)

License: CC-BY-NC-3.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CC-BY-NC-3.0)

License: gnuplot - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/gnuplot)

License: CC-BY-NC-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CC-BY-NC-2.0)

License: LGPLLR - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/LGPLLR)

License: Inner-Net-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Inner-Net-2.0)

License: UCL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/UCL-1.0)

License: PolyForm-Small-Business-1.0.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/PolyForm-Small-Business-1.0.0)

License: Brian-Gladman-3-Clause - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Brian-Gladman-3-Clause)

License: Latex2e - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Latex2e)

License: Linux-man-pages-1-para - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Linux-man-pages-1-para)

License: ISC-Veillard - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/ISC-Veillard)

License: SSLeay-standalone - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SSLeay-standalone)

License: CC-BY-NC-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CC-BY-NC-1.0)

License: gSOAP-1.3b - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/gSOAP-1.3b)

License: CATOSL-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CATOSL-1.1)

License: python-ldap - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/python-ldap)

License: NCL - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/NCL)

License: Clips - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Clips)

License: O-UDA-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/O-UDA-1.0)

License: SHL-0.51 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SHL-0.51)

License: Boehm-GC - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Boehm-GC)

License: Aladdin - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Aladdin)

License: EUPL-1.2 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/EUPL-1.2)

License: Sun-PPP - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Sun-PPP)

License: CC-BY-NC-ND-3.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CC-BY-NC-ND-3.0)

License: LiLiQ-Rplus-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/LiLiQ-Rplus-1.1)

License: DEC-3-Clause - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/DEC-3-Clause)

License: Adobe-Utopia - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Adobe-Utopia)

License: SSH-short - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SSH-short)

License: TTYP0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/TTYP0)

License: SISSL-1.2 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SISSL-1.2)

License: LZMA-SDK-9.22 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/LZMA-SDK-9.22)

License: NTP-0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/NTP-0)

License: BSD-2-Clause-first-lines - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/BSD-2-Clause-first-lines)

License: HPND-MIT-disclaimer - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-MIT-disclaimer)

License: ulem - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/ulem)

License: EUPL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/EUPL-1.0)

License: Intel-ACPI - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Intel-ACPI)

License: GD - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/GD)

License: CC-BY-NC-2.5 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CC-BY-NC-2.5)

License: Zeeff - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Zeeff)

License: hdparm - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/hdparm)

License: ASWF-Digital-Assets-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/ASWF-Digital-Assets-1.0)

License: CPOL-1.02 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CPOL-1.02)

License: psfrag - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/psfrag)

License: LAL-1.3 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/LAL-1.3)

License: SISSL - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SISSL)

License: w3m - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/w3m)

License: PPL - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/PPL)

License: BSD-4.3TAHOE - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/BSD-4.3TAHOE)

License: HPND-Pbmplus - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-Pbmplus)

License: RPSL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/RPSL-1.0)

License: FSFAP-no-warranty-disclaimer - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/FSFAP-no-warranty-disclaimer)

License: FSFULLRWD - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/FSFULLRWD)

License: Zimbra-1.3 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Zimbra-1.3)

License: OGL-UK-3.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/OGL-UK-3.0)

License: lsof - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/lsof)

License: HPND-Markus-Kuhn - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-Markus-Kuhn)

License: SugarCRM-1.1.3 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SugarCRM-1.1.3)

License: OpenVision - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/OpenVision)

License: CC-BY-ND-2.5 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CC-BY-ND-2.5)

License: MPEG-SSG - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/MPEG-SSG)

License: Nokia - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Nokia)

License: Widget-Workshop - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Widget-Workshop)

License: APL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/APL-1.0)

License: HPND-Intel - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-Intel)

License: checkmk - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/checkmk)

License: CC-BY-NC-ND-3.0-IGO - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CC-BY-NC-ND-3.0-IGO)

License: SGI-B-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SGI-B-1.1)

License: xkeyboard-config-Zinoviev - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/xkeyboard-config-Zinoviev)

License: BSD-3-Clause-Sun - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/BSD-3-Clause-Sun)

License: SGI-OpenGL - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SGI-OpenGL)

License: HPND-UC-export-US - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-UC-export-US)

License: Jam - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Jam)

License: Adobe-Glyph - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Adobe-Glyph)

License: CC-BY-NC-3.0-DE - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CC-BY-NC-3.0-DE)

License: CMU-Mach - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CMU-Mach)

License: CC-BY-NC-ND-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CC-BY-NC-ND-2.0)

License: SNIA - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SNIA)

License: FBM - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/FBM)

License: PolyForm-Noncommercial-1.0.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/PolyForm-Noncommercial-1.0.0)

License: BSD-Systemics-W3Works - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/BSD-Systemics-W3Works)

License: OLFL-1.3 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/OLFL-1.3)

License: BSD-Systemics - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/BSD-Systemics)

License: Elastic-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Elastic-2.0)

License: CC-BY-NC-ND-4.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CC-BY-NC-ND-4.0)

License: BSD-3-Clause-No-Military-License - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/BSD-3-Clause-No-Military-License)

License: URT-RLE - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/URT-RLE)

License: YPL-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/YPL-1.1)

License: LPPL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/LPPL-1.0)

License: NLOD-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/NLOD-1.0)

License: MMIXware - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/MMIXware)

License: NICTA-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/NICTA-1.0)

License: EUDatagrid - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/EUDatagrid)

License: HPND-export-US-modify - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-export-US-modify)

License: GLWTPL - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/GLWTPL)

License: Catharon - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Catharon)

License: GL2PS - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/GL2PS)

License: LPPL-1.3a - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/LPPL-1.3a)

License: CDL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CDL-1.0)

License: JPNIC - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/JPNIC)

License: LicenseRef-FSL-1.1-ALv2 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/FSL-1.1-ALv2)

License: SGP4 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SGP4)

License: Xfig - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Xfig)

License: HPND-export2-US - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-export2-US)

License: CDLA-Permissive-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CDLA-Permissive-2.0)

License: BSD-2-Clause-Darwin - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/BSD-2-Clause-Darwin)

License: HPND-sell-variant-MIT-disclaimer-rev - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-sell-variant-MIT-disclaimer-rev)

License: OAR - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/OAR)

License: cve-tou - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/cve-tou)

License: RSCPL - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/RSCPL)

License: bcrypt-Solar-Designer - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/bcrypt-Solar-Designer)

License: APSL-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/APSL-1.1)

License: HPND-sell-regexpr - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-sell-regexpr)

License: OGDL-Taiwan-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/OGDL-Taiwan-1.0)

License: GFDL-1.3 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/GFDL-1.3)

License: ODbL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/ODbL-1.0)

License: Sendmail - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Sendmail)

License: GCR-docs - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/GCR-docs)

License: Knuth-CTAN - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Knuth-CTAN)

License: HPND-DEC - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-DEC)

License: pnmstitch - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/pnmstitch)

License: mailprio - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/mailprio)

License: NAIST-2003 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/NAIST-2003)

License: APSL-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/APSL-2.0)

License: BSD-Advertising-Acknowledgement - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/BSD-Advertising-Acknowledgement)

License: dtoa - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/dtoa)

License: Mackerras-3-Clause-acknowledgment - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Mackerras-3-Clause-acknowledgment)

License: OPL-UK-3.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/OPL-UK-3.0)

License: Brian-Gladman-2-Clause - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Brian-Gladman-2-Clause)

License: HPND-UC - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-UC)

License: mplus - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/mplus)

License: Kazlib - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Kazlib)

License: XSkat - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/XSkat)

License: LiLiQ-R-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/LiLiQ-R-1.1)

License: SSH-OpenSSH - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SSH-OpenSSH)

License: OGL-UK-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/OGL-UK-1.0)

License: metamail - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/metamail)

License: LZMA-SDK-9.11-to-9.20 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/LZMA-SDK-9.11-to-9.20)

License: CC-BY-ND-3.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CC-BY-ND-3.0)

License: UnixCrypt - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/UnixCrypt)

License: ASWF-Digital-Assets-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/ASWF-Digital-Assets-1.1)

License: Gutmann - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Gutmann)

License: FreeBSD-DOC - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/FreeBSD-DOC)

License: Noweb - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Noweb)

License: FDK-AAC - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/FDK-AAC)

License: SimPL-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SimPL-2.0)

License: OCLC-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/OCLC-2.0)

License: SL - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SL)

License: radvd - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/radvd)

License: CAL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CAL-1.0)

License: CC-BY-ND-4.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CC-BY-ND-4.0)

License: CC-BY-ND-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CC-BY-ND-1.0)

License: Symlinks - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Symlinks)

License: APSL-1.2 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/APSL-1.2)

License: Furuseth - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Furuseth)

License: CC-BY-NC-4.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CC-BY-NC-4.0)

License: Ruby-pty - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Ruby-pty)

License: AMD-newlib - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/AMD-newlib)

License: BUSL-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/BUSL-1.1)

License: DL-DE-ZERO-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/DL-DE-ZERO-2.0)

License: magaz - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/magaz)

License: BSD-Attribution-HPND-disclaimer - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/BSD-Attribution-HPND-disclaimer)

License: Xdebug-1.03 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Xdebug-1.03)

License: OPUBL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/OPUBL-1.0)

License: BSD-Inferno-Nettverk - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/BSD-Inferno-Nettverk)

License: BitTorrent-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/BitTorrent-1.1)

License: BSD-3-Clause-No-Nuclear-License - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/BSD-3-Clause-No-Nuclear-License)

License: ssh-keyscan - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/ssh-keyscan)

License: DRL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/DRL-1.0)

License: SSPL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/SSPL-1.0)

License: Sun-PPP-2000 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Sun-PPP-2000)

License: HPND-export-US-acknowledgement - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-export-US-acknowledgement)

License: HPND-sell-MIT-disclaimer-xserver - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-sell-MIT-disclaimer-xserver)

License: APSL-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/APSL-1.0)

License: Arphic-1999 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Arphic-1999)

License: OCCT-PL - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/OCCT-PL)

License: CDLA-Permissive-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CDLA-Permissive-1.0)

License: CERN-OHL-W-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CERN-OHL-W-2.0)

License: Latex2e-translated-notice - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Latex2e-translated-notice)

License: BitTorrent-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/BitTorrent-1.0)

License: BSD-Source-beginning-file - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/BSD-Source-beginning-file)

License: Community-Spec-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Community-Spec-1.0)

License: BSD-3-Clause-flex - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/BSD-3-Clause-flex)

License: Cornell-Lossless-JPEG - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Cornell-Lossless-JPEG)

License: HPND-export-US - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/HPND-export-US)

License: CECILL-2.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CECILL-2.1)

License: NIST-Software - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/NIST-Software)

License: CC-BY-NC-ND-3.0-DE - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/CC-BY-NC-ND-3.0-DE)

License: pkgconf - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/pkgconf)

License: libutil-David-Nugent - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/libutil-David-Nugent)

License: NCGL-UK-2.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/NCGL-UK-2.0)

License: Soundex - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/Soundex)

License: GFDL-1.1 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/GFDL-1.1)

License: C-UDA-1.0 - The applicable license policy does not permit this license (5) (spdx-0.13.4/src/text/licenses/C-UDA-1.0)

From: Cargo.lock → cargo/spdx@0.13.4

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore cargo/spdx@0.13.4. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

@greptile-apps

greptile-apps Bot commented Aug 1, 2026 •

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds installed-package license discovery and emits license metadata in CycloneDX and SPDX SBOMs.

  • Snapshots package licenses and linked-package locations during installation.
  • Reuses installed-layout metadata for isolated, hoisted, linked, and truncated virtual-store layouts.
  • Adds SPDX expression parsing and expanded SBOM/license regression coverage.

Confidence Score: 4/5

The PR is not yet safe to merge because legacy or incomplete license snapshots can still lose dependency licenses after a one-shot custom virtual-store setting is removed.

The effective custom virtual-store base path is not persisted, so an SBOM generated later must use current settings when a package lacks a cached license; this reconstructs a nonexistent package path and emits missing or NOASSERTION license metadata.

Files Needing Attention: crates/aube/src/commands/licenses.rs, crates/aube/src/state.rs

Important Files Changed

Filename Overview
crates/aube/src/commands/licenses.rs Centralizes installed-package metadata lookup, cached-license fallback, linked-package refresh behavior, and legacy license-array handling.
crates/aube/src/commands/sbom.rs Adds root and dependency license fields to CycloneDX 1.5 and SPDX 2.3 output.
crates/aube/src/state.rs Introduces fingerprinted license snapshots and persists additional install-layout metadata.
test/sbom.bats Adds end-to-end coverage for SBOM licenses, linked packages, snapshots, and truncated virtual-store paths.

Reviews (9): Last reviewed commit: "chore(deps): loosen spdx patch requireme..." | Re-trigger Greptile

Comment thread crates/aube/src/commands/sbom.rs Resolved
@github-actions

github-actions Bot commented Aug 1, 2026 •

Copy link
Copy Markdown

Instruction counts

benchmark trend instructions Δ wall (min) Δ
graph ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█ 16,717,856 → 17,772,628 +6.31% ⚠️ 3.73 → 3.36ms -9.82%
install ▁▁▂▁▁▁▂▁▁▁▁▂▂▂▂▂▂▃▂█ 103,126,646 → 103,822,815 +0.68% 33.10 → 26.52ms -19.88%
startup ▂▂▃▃▁▂▁▁▃▃▂▁▃▂▁▁▁▁▁█ 7,667,672 → 7,719,814 +0.68% 3.13 → 2.33ms -25.61%
tree ▂▂▂▁▁▁▁▁▁▁▅▅▅▅▆▆▅▅▅█ 17,803,447 → 17,844,515 +0.23% 3.71 → 3.53ms -4.88%

1 benchmark(s) above the 1% gate: graph +6.31%

Only instruction counts gate. Wall clock is shown for context — on identical hardware it moves 4-20% run to run.

Measured by tak — instruction-counted CLI benchmarks, stored in this repository's git notes.

57a673de43f3 vs ce0a768adfdf · measured on this runner, not pushed to the history.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
crates/aube/src/commands/licenses.rs (1)

344-354: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Consider preserving multiple legacy licenses entries as an SPDX expression.

license_from_values only reads the first element of the legacy licenses array. A package declaring several licenses in that field loses all but the first. Joining the entries with OR (matching how SPDX expresses multiple licenses) would keep the full information instead of silently dropping entries.

♻️ Proposed refactor to combine multiple legacy license entries
 pub(super) fn license_from_values(
     license: Option<&serde_json::Value>,
     licenses: Option<&serde_json::Value>,
 ) -> Option<String> {
     license.and_then(extract_license).or_else(|| {
         licenses
             .and_then(|v| v.as_array())
-            .and_then(|arr| arr.first())
-            .and_then(extract_license)
+            .map(|arr| arr.iter().filter_map(extract_license).collect::<Vec<_>>())
+            .filter(|names| !names.is_empty())
+            .map(|names| names.join(" OR "))
     })
 }
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/aube/src/commands/licenses.rs` around lines 344 - 354, Update
license_from_values to process every entry in the legacy licenses array rather
than only arr.first(), extract each valid license, and combine multiple results
into an SPDX OR expression while preserving the existing single-entry and
primary license behavior.
test/sbom.bats (1)

40-49: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add coverage for the lockfile-fallback license path.

Both new tests exercise licenses read from installed package.json manifests. Neither test exercises the fallback to lockfile license metadata when the installed manifest is unavailable, which is one of the stated PR objectives. Add a test that removes or corrupts an installed package's package.json after aube install and confirms the SBOM still emits a license sourced from lockfile data.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/sbom.bats` around lines 40 - 49, Add a test in test/sbom.bats covering
the lockfile-license fallback: after aube install in the existing fixture setup,
remove or corrupt an installed dependency’s package.json, run aube sbom, and
assert the dependency still reports its expected lockfile-derived license. Keep
the assertion focused on the affected component’s license metadata.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@crates/aube/src/commands/licenses.rs`:
- Around line 344-354: Update license_from_values to process every entry in the
legacy licenses array rather than only arr.first(), extract each valid license,
and combine multiple results into an SPDX OR expression while preserving the
existing single-entry and primary license behavior.

In `@test/sbom.bats`:
- Around line 40-49: Add a test in test/sbom.bats covering the lockfile-license
fallback: after aube install in the existing fixture setup, remove or corrupt an
installed dependency’s package.json, run aube sbom, and assert the dependency
still reports its expected lockfile-derived license. Keep the assertion focused
on the affected component’s license metadata.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Central YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 09f0a720-a857-48cc-a6b4-c1f0b87927cd

📥 Commits

Reviewing files that changed from the base of the PR and between 6796694 and 97b6c50.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (5)
  • Cargo.toml
  • crates/aube/Cargo.toml
  • crates/aube/src/commands/licenses.rs
  • crates/aube/src/commands/sbom.rs
  • test/sbom.bats

Comment thread crates/aube/src/commands/licenses.rs Resolved
Comment thread crates/aube/src/commands/licenses.rs Resolved

jdx commented Aug 1, 2026

Copy link
Copy Markdown
Collaborator Author

Addressed the latest review feedback in 50a0911:

  • preserve every valid legacy licenses entry as an SPDX OR expression;
  • add end-to-end coverage for lockfile license fallback after an installed manifest is removed;
  • tolerate malformed legacy license fields without dropping a valid primary license;
  • persist the install-time virtual-store filename limit so one-shot overrides remain inspectable.

AI-assisted — Tool: Codex; model: openai/gpt-5; version: unavailable.

Comment thread crates/aube/src/commands/licenses.rs Resolved
Comment thread crates/aube/src/commands/licenses.rs Resolved
Comment thread crates/aube/src/state.rs Resolved
Comment thread crates/aube/src/commands/licenses.rs Resolved

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@crates/aube/src/state.rs`:
- Around line 797-805: The fallback in read_state_package_licenses can combine a
stale default license sidecar with the active layout state. Make license lookup
use the same selected state directory as collect_installed_metadata, only
consulting the default sidecar when the default layout is selected; preserve the
empty-map fallback. Add a regression test covering an active legacy state with a
stale default license sidecar.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Central YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 540d2c0a-88a0-4d73-8fb4-18ca233f0ad3

📥 Commits

Reviewing files that changed from the base of the PR and between 97b6c50 and 558bdfe.

📒 Files selected for processing (4)
  • crates/aube/src/commands/licenses.rs
  • crates/aube/src/commands/sbom.rs
  • crates/aube/src/state.rs
  • test/sbom.bats
🚧 Files skipped from review as they are similar to previous changes (2)
  • crates/aube/src/commands/sbom.rs
  • crates/aube/src/commands/licenses.rs

Comment thread crates/aube/src/state.rs Resolved

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 57a673d. Configure here.

Comment thread crates/aube/src/commands/licenses.rs Resolved
@jdx
jdx merged commit 5c2f611 into main Aug 1, 2026
18 of 20 checks passed
@jdx
jdx deleted the agent/sbom-license-metadata branch August 1, 2026 19:12
@cursor cursor Bot mentioned this pull request Aug 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant