Repository navigation
fix(linux-packaging): describe every vendored crate in the copyright file and bundled code in the RPM - #4057
Merged
Merged
Conversation
…file and bundled code in the RPM debian/copyright now covers the whole vendor tarball, not only the linked crates; the RPM gets bundled() Provides and a license report scoped to the built packages.
…crates that package none
datlechin
enabled auto-merge (squash)
November 5, 2026 10:28
datlechin
disabled auto-merge
November 5, 2026 11:31
…etadata # Conflicts: # linux/docs/decisions/README.md
…etadata # Conflicts: # linux/build-aux/debian/copyright # linux/docs/decisions/0018-ppa-copr-and-flathub-later.md # linux/docs/decisions/README.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
debian/copyrightdescribes the source package: a paragraph for every cratecargo vendorships (all 798 ofCargo.lock, not the 500 linked ones), from each crate's own license and notice files, with Cargo.toml authors and a stand-alone license paragraph for crates that ship no text.build-aux/about/source.json: the gettext and DuckDB archives, SQLite and SQLCipher, ring, lcms2, libm's SunPro files, and the files the hunt found under other licenses (GPL-3 x11rb example, CC-BY-3.0 and Go files, APSL docs, Unicode data). A license file or archive inside a crate that nothing describes fails the update script, and so does an unread license file inside a described archive.license-metadata(Mesonpackagingsuite) now fails when aCargo.lockcrate has novendor/paragraph or a paragraph names a crate the lock dropped. On main's file it reports the 298 missing crates.common-licenses; DEP-5 names themGPL-2+,AGPL-3+.bundled()Provides for AWS-LC, DuckDB and each library DuckDB compiles in, written frombuild-aux/about/bundledwith the version only where the source states one.LICENSE.dependenciescomes from cargo2rpm's owncargo treecall ontableproandtablepro-sshfor the build architecture.%cargo_licensecovers every workspace member and target: the 28.5 macros take no-pand cargo2rpm 0.4 drops it. TheLicensetag stays the linked crates' expression.third_partyfolder: Arrow ADBC and nanoarrow, robin-hood-hashing and the merge sort tree.Test plan
CoverageTests.test_a_build_only_or_platform_only_crate_without_a_paragraph_failsandCommandTests.test_check_fails_when_the_lock_gains_a_crate_the_copyright_file_lacksfail on main's generator;test_source_inventory.pycovers the vendor set, nested code and archive members. 118 packaging tests pass.test_license_metadata.pytests that pinned the old shape change with it: the copyright is rendered from the source inventory, an LGPL text is cut to its pointer, andGPL-2.0is writtenGPL-2.LICENSE.dependencies.Needs the maintainer: cargo2rpm's
license.pybuilds"--package={package}"without itsfprefix (codeberg.org/rust2rpm/cargo2rpm); once a fixed cargo2rpm and macros newer than 28.5 reach f44/f45, the spec can go back to%cargo_license -p tablepro.