Maytham Alsudany pushed to branch maytham/protected-field at lintian / lintian
Commits: f8d3f94d by Fabian Grünbichler at 2025-07-22T12:18:36+08:00 field-too-long: allow Static-Built-Using this field is emitted by dh-cargo-built-using, the length of the field is directly related to the size of the (transitive) (build-)dependency tree. the field needs to capture the complete (transitive build-)dependency tree in order to determine which packages need to be rebuilt (e.g. during freeze time to ensure no outdated builds are part of a soon-to-be-released Debian version, or after some library crate was patched to fix a security issue or other serious bug), since rust doesn't have (usable) dynamic linking yet, and all shipped rust binaries are statically linked with their crate dependencies (regular C-compatible libraries like libssl/.. are linked dynamically). as an alternative, a second much higher limit for this and some other fields might make sense as well, as originally discussed in #942493 Signed-off-by: Fabian Grünbichler <[email protected]> - - - - - a7fdcb0a by Johannes Schauer Marin Rodrigues at 2025-07-22T12:24:02+08:00 data/fields/binary-fields: add support for Protected apt added support for the Protected field for binary packages in version 2.1.7. Closes: #1077637 - - - - - 6 changed files: - data/fields/binary-fields - lib/Lintian/Check/Fields/Length.pm - + t/recipes/checks/fields/length/static-built-using-field-not-too-long/build-spec/debian/control.in - + t/recipes/checks/fields/length/static-built-using-field-not-too-long/build-spec/fill-values - + t/recipes/checks/fields/length/static-built-using-field-not-too-long/eval/desc - + t/recipes/checks/fields/length/static-built-using-field-not-too-long/eval/hints Changes: ===================================== data/fields/binary-fields ===================================== @@ -39,6 +39,7 @@ Gstreamer-Decoders Lua-Versions Auto-Built-Package X-Cargo-Built-Using +Protected # Special-case, original-maintainer is not ok in Debian, but we allow # it in any non-Debian profile by default. ===================================== lib/Lintian/Check/Fields/Length.pm ===================================== @@ -46,6 +46,7 @@ my @ALLOWED_FIELDS = qw( Package-List Installed-Build-Depends Checksums-Sha256 + Static-Built-Using ); sub always { ===================================== t/recipes/checks/fields/length/static-built-using-field-not-too-long/build-spec/debian/control.in ===================================== @@ -0,0 +1,20 @@ +Source: [% $source %] +Priority: [% $priority %] +Section: [% $section %] +Maintainer: [% $author %] +Standards-Version: [% $standards_version %] +Build-Depends: [% $build_depends %] +Rules-Requires-Root: [% $rules_requires_root %] +Homepage: [% $homepage %] + +Package: [% $source %] +Architecture: [% $package_architecture %] +Pre-Depends: ${misc:Pre-Depends} +Depends: ${shlibs:Depends}, ${misc:Depends} +Built-Using: rust-ahash (= 0.8.11-9), rust-axum (= 0.7.9-13), rust-axum-server (= 0.7.2-2), rust-colored (= 2.2.0-1), rust-curve25519-dalek (= 4.1.3+20240618+dfsg-9), rust-ed25519 (= 2.2.3+ds-6), rust-event-listener (= 5.4.0-3), rust-fast-srgb8 (= 1.0.0-7), rust-flume (= 0.11.1+20241019-2), rust-hyper-rustls (= 0.27.5-2), rust-option-ext (= 0.2.0-1), rust-rustls (= 0.23.26+ds-1), rust-rustls-native-certs (= 0.6.3-7), rust-rustls-pki-types (= 1.11.0-2), rust-rustls-webpki (= 0.102.8-5), rust-signature (= 2.2.0+ds-5), rust-tonic (= 0.12.3+dfsg-4), rustc (= 1.85.0+dfsg3-1) +Static-Built-Using: rust-adler (= 1.0.2-2), rust-aead (= 0.5.2-2), rust-ahash (= 0.8.11-9), rust-aho-corasick (= 1.1.3-1), rust-allocator-api2 (= 0.2.16-2), rust-anstream (= 0.6.15-1), rust-anstyle (= 1.0.8-1), rust-anstyle-parse (= 0.2.1-1), rust-anstyle-query (= 1.0.0-1), rust-anyhow (= 1.0.95-1), rust-approx (= 0.5.1-1), rust-arboard (= 3.5.0-1), rust-arc-swap (= 1.7.1-1), rust-argon2 (= 0.5.3-1), rust-async-stream (= 0.3.4-2), rust-atoi (= 2.0.0-1), rust-atomic-waker (= 1.1.2-1), rust-axum (= 0.7.9-13), rust-axum-server (= 0.7.2-2), rust-base64 (= 0.22.1-1), rust-base64ct (= 1.6.0-1), rust-bitflags (= 2.8.0-1), rust-bitflags-1 (= 1.3.2-7), rust-blake2 (= 0.10.6-3), rust-block-buffer (= 0.10.4-1), rust-bytemuck (= 1.21.0-1), rust-byteorder (= 1.5.0-1), rust-bytes (= 1.9.0-1), rust-cassowary (= 0.3.0-2), rust-castaway (= 0.2.3-1), rust-cfg-if (= 1.0.0-1), rust-chacha20 (= 0.9.1-1), rust-cipher (= 0.4.4-3), rust-clap (= 4.5.23-1), rust-clap-builder (= 4.5.23-1), rust-clap-complete (= 4.5.40-1), rust-clap-lex (= 0.7.4-1), rust-colorchoice (= 1.0.0-1), rust-colored (= 2.2.0-1), rust-compact-str (= 0.8.1-1), rust-concurrent-queue (= 2.5.0-4), rust-config (= 0.15.9-2), rust-console (= 0.15.10-1), rust-cpufeatures (= 0.2.16-1), rust-crc (= 3.2.1-1), rust-crc-catalog (= 2.4.0-1), rust-crc32fast (= 1.4.2-1), rust-crossbeam-deque (= 0.8.5-1), rust-crossbeam-epoch (= 0.9.18-1), rust-crossbeam-queue (= 0.3.11-1), rust-crossbeam-utils (= 0.8.19-1), rust-crossterm (= 0.27.0-5), rust-crypto-common (= 0.1.6-1), rust-crypto-secretbox (= 0.1.1-1), rust-curve25519-dalek (= 4.1.3+20240618+dfsg-9), rust-dashmap (= 6.1.0-1), rust-deranged (= 0.3.11-1), rust-diff (= 0.1.13-1), rust-digest (= 0.10.7-2), rust-directories (= 5.0.1-1), rust-dirs (= 5.0.1-1), rust-dirs-sys (= 0.4.1-1), rust-dotenvy (= 0.15.7-1), rust-downcast-rs (= 1.2.0-1), rust-ed25519 (= 2.2.3+ds-6), rust-either (= 1.13.0-1), rust-equivalent (= 1.0.1-1), rust-event-listener (= 5.4.0-3), rust-eyre (= 0.6.12-1), rust-fast-srgb8 (= 1.0.0-7), rust-fastrand (= 2.1.1-4), rust-filedescriptor (= 0.8.2-1), rust-fixedbitset (= 0.4.2-1), rust-flate2 (= 1.1.0-1), rust-flume (= 0.11.1+20241019-2), rust-fnv (= 1.0.7-1), rust-foreign-types-0.3 (= 0.3.2-2), rust-foreign-types-shared-0.1 (= 0.1.1-2), rust-form-urlencoded (= 1.2.1-1), rust-fs-err (= 3.1.0-1), rust-futures (= 0.3.31-2), rust-futures-channel (= 0.3.31-1), rust-futures-core (= 0.3.31-1), rust-futures-executor (= 0.3.31-1), rust-futures-intrusive (= 0.5.0-1), rust-futures-io (= 0.3.31-1), rust-futures-sink (= 0.3.31-1), rust-futures-task (= 0.3.31-3), rust-futures-util (= 0.3.31-1), rust-fuzzy-matcher (= 0.3.7-1), rust-generic-array (= 0.14.7-1), rust-getrandom (= 0.2.15-1), rust-h2 (= 0.4.7-3), rust-hashbrown (= 0.14.5-5), rust-hashlink (= 0.8.4-1), rust-hex (= 0.4.3-2), rust-hkdf (= 0.12.4-1), rust-hmac (= 0.12.1-1), rust-home (= 0.5.9-1), rust-http (= 1.2.0-1), rust-http-body (= 1.0.1-1), rust-http-body-util (= 0.1.2-1), rust-httparse (= 1.8.0-1), rust-httpdate (= 1.0.2-1), rust-humantime (= 2.1.0-2), rust-hyper (= 1.5.2-1), rust-hyper-rustls (= 0.27.5-2), rust-hyper-timeout (= 0.5.2-3), rust-hyper-util (= 0.1.10-1), rust-idna (= 1.0.3-2), rust-idna-adapter (= 1.1.0-1), rust-idna-mapping (= 1.0.0-1), rust-image (= 0.25.5-3), rust-indenter (= 0.3.3-1), rust-indexmap (= 2.7.0-1), rust-indicatif (= 0.17.8-1), rust-inout (= 0.1.3-3), rust-interim (= 0.1.2-2), rust-ipnet (= 2.11.0-1), rust-iso8601 (= 0.6.1-1), rust-itertools (= 0.13.0-3), rust-itoa (= 1.0.14-1), rust-lazy-static (= 1.5.0-1), rust-libc (= 0.2.169-1), rust-libsqlite3-sys (= 0.26.0-1), rust-linux-raw-sys (= 0.4.14-1), rust-listenfd (= 1.0.0-1), rust-lock-api (= 0.4.12-1), rust-log (= 0.4.26-1), rust-logos (= 0.14.0-1), rust-lru (= 0.12.3-2), rust-matchers (= 0.2.0-1), rust-matchit (= 0.7.3-2), rust-md-5 (= 0.10.6-1), rust-memchr (= 2.7.4-1), rust-mime (= 0.3.17-1), rust-minijinja (= 2.5.0-1), rust-minimal-lexical (= 0.2.1-2), rust-miniz-oxide (= 0.7.1-2), rust-minspan (= 0.1.1-1), rust-mio (= 1.0.2-3), rust-native-tls (= 0.2.13-1), rust-nom (= 7.1.3-1), rust-nu-ansi-term (= 0.50.1-1), rust-num-conv (= 0.1.0-1), rust-num-threads (= 0.1.7-1), rust-num-traits (= 0.2.19-2), rust-number-prefix (= 0.4.0-1), rust-once-cell (= 1.20.2-1), rust-opaque-debug (= 0.3.0-1), rust-openssl (= 0.10.72-1), rust-openssl-probe (= 0.1.2-1), rust-openssl-sys (= 0.9.107-1), rust-option-ext (= 0.2.0-1), rust-os-pipe (= 1.2.1-1), rust-palette (= 0.7.6-1), rust-parking (= 2.2.0-1), rust-parking-lot (= 0.12.3-1), rust-parking-lot-core (= 0.9.10-1), rust-password-hash (= 0.5.0-1), rust-pathdiff (= 0.2.3-1), rust-pbkdf2 (= 0.12.2-1), rust-percent-encoding (= 2.3.1-1), rust-petgraph (= 0.6.4-1), rust-phf (= 0.11.2-1), rust-phf-shared (= 0.11.2-2), rust-pin-project (= 1.1.3-1), rust-pin-project-lite (= 0.2.13-1), rust-pin-utils (= 0.1.0-1), rust-png (= 0.17.7-4), rust-poly1305 (= 0.8.0-1), rust-portable-atomic (= 1.10.0-3), rust-powerfmt (= 0.2.0-1), rust-ppv-lite86 (= 0.2.20-1), rust-pretty-assertions (= 1.4.0-2), rust-prost (= 0.12.6-1), rust-prost-types (= 0.12.6-1), rust-rand (= 0.8.5-1), rust-rand-chacha (= 0.3.1-2), rust-rand-core (= 0.6.4-2), rust-ratatui (= 0.28.1-9), rust-rayon (= 1.10.0-1), rust-rayon-core (= 1.12.1-1), rust-regex (= 1.11.1-2), rust-regex-automata (= 0.4.9-2), rust-regex-syntax (= 0.8.5-1), rust-reqwest (= 0.12.15-1), rust-ring (= 0.17.14-2), rust-rmp (= 0.8.14-1), rust-rpassword (= 7.2.0-1), rust-rtoolbox (= 0.0.1-1), rust-runtime-format (= 0.1.3-1), rust-rustc-hash (= 1.1.0-1), rust-rustix (= 0.38.37-4), rust-rustls (= 0.23.26+ds-1), rust-rustls-native-certs (= 0.6.3-7), rust-rustls-pemfile (= 2.2.0-3), rust-rustls-pki-types (= 1.11.0-2), rust-rustls-webpki (= 0.102.8-5), rust-rusty-paserk (= 0.4.0-3), rust-rusty-paseto (= 0.7.1-4), rust-ryu (= 1.0.19-1), rust-salsa20 (= 0.10.2-1), rust-scopeguard (= 1.2.0-1), rust-semver (= 1.0.23-1), rust-serde (= 1.0.217-1), rust-serde-json (= 1.0.139-1), rust-serde-path-to-error (= 0.1.9-1), rust-serde-regex (= 1.1.0-1), rust-serde-spanned (= 0.6.7-1), rust-serde-urlencoded (= 0.7.1-1), rust-serde-with (= 3.12.0-1), rust-sha2 (= 0.10.8-1), rust-sharded-slab (= 0.1.4-2), rust-shellexpand (= 3.1.0-4), rust-signal-hook (= 0.3.17-1), rust-signal-hook-mio (= 0.2.4-2), rust-signal-hook-registry (= 1.4.0-1), rust-signature (= 2.2.0+ds-5), rust-siphasher (= 1.0.1-1), rust-slab (= 0.4.9-1), rust-smallvec (= 1.13.2-1), rust-socket2 (= 0.5.8-1), rust-spin (= 0.9.8-4), rust-sql-builder (= 3.1.1-1), rust-sqlx (= 0.8.3-2), rust-sqlx-core (= 0.8.3-2), rust-sqlx-postgres (= 0.8.3-1), rust-sqlx-sqlite (= 0.8.3-1), rust-static-assertions (= 1.1.0-1), rust-stringprep (= 0.1.5-1), rust-strsim (= 0.11.1-1), rust-strum (= 0.26.3-2), rust-subtle (= 2.6.1-1), rust-sync-wrapper (= 1.0.2-1), rust-sysinfo (= 0.30.13-7), rust-tempfile (= 3.15.0-1), rust-thiserror (= 2.0.11-1), rust-thiserror-1 (= 1.0.69-1), rust-thread-local (= 1.1.4-1), rust-time (= 0.3.37-1), rust-time-core (= 0.1.2-1), rust-tiny-bip39 (= 1.0.0-1), rust-tinyvec (= 1.6.0-2), rust-tinyvec-macros (= 0.1.0-1), rust-tokio (= 1.43.1-1), rust-tokio-rustls (= 0.26.1-2), rust-tokio-stream (= 0.1.16-1), rust-tokio-util (= 0.7.10-1), rust-toml (= 0.8.19-1), rust-toml-datetime (= 0.6.8-1), rust-toml-edit (= 0.22.22-1), rust-tonic (= 0.12.3+dfsg-4), rust-tower (= 0.5.2-2), rust-tower-0.4 (= 0.4.13-5), rust-tower-http (= 0.6.2-1), rust-tower-layer (= 0.3.3-1), rust-tower-service (= 0.3.3-1), rust-tracing (= 0.1.40-1), rust-tracing-core (= 0.1.32-1), rust-tracing-log (= 0.2.0-3), rust-tracing-subscriber (= 0.3.18-4), rust-tree-magic-mini (= 3.1.6-1), rust-try-lock (= 0.2.5-1), rust-typed-builder (= 0.20.1-1), rust-typenum (= 1.17.0-3), rust-unicode-bidi (= 0.3.17-1), rust-unicode-joining-type (= 1.0.0-1), rust-unicode-normalization (= 0.1.24-1), rust-unicode-properties (= 0.1.0-1), rust-unicode-segmentation (= 1.12.0-1), rust-unicode-truncate (= 2.0.0-1), rust-unicode-width (= 0.2.0-1), rust-unicode-width-0.1 (= 0.1.14-2), rust-universal-hash (= 0.5.1-1), rust-untrusted (= 0.9.0-2), rust-url (= 2.5.4-3), rust-urlencoding (= 2.1.3-1), rust-utf8-iter (= 1.0.4-1), rust-utf8parse (= 0.2.1-1), rust-uuid (= 1.10.0-1), rust-want (= 0.3.0-1), rust-wayland-backend (= 0.3.8-3), rust-wayland-client (= 0.31.8-1), rust-wayland-protocols (= 0.32.6-1), rust-wayland-protocols-wlr (= 0.3.6-1), rust-wayland-sys (= 0.31.6-2), rust-whoami (= 1.5.2-1), rust-winnow (= 0.6.26-1), rust-wl-clipboard-rs (= 0.9.2-1), rust-x11rb (= 0.13.0-2), rust-x11rb-protocol (= 0.13.1-2), rust-yansi (= 1.0.1-1), rust-zerocopy (= 0.7.34-1), rust-zeroize (= 1.8.1-1), rustc (= 1.85.0+dfsg3-1) +Description: [% $description %] + This is a test package designed to exercise some feature or tag of + Lintian. It is part of the Lintian test suite and may do very odd + things. It should not be installed like a regular package. It may + be an empty package. ===================================== t/recipes/checks/fields/length/static-built-using-field-not-too-long/build-spec/fill-values ===================================== @@ -0,0 +1,3 @@ +Skeleton: upload-native +Testname: static-built-using-field-not-too-long +Description: The Static-Built-Using: field in d/control is not too long, even if exceeding 5k characters ===================================== t/recipes/checks/fields/length/static-built-using-field-not-too-long/eval/desc ===================================== @@ -0,0 +1,4 @@ +Testname: static-built-using-field-not-too-long +See-Also: Debian Bug#1069256 +Check: fields/length +Test-Against: field-too-long ===================================== t/recipes/checks/fields/length/static-built-using-field-not-too-long/eval/hints ===================================== @@ -0,0 +1 @@ + View it on GitLab: https://salsa.debian.org/lintian/lintian/-/compare/18712022fa81c940fe78d8928cd7b324b95174b2...a7fdcb0a8df20530f67427632e74d24543bd89a1 -- View it on GitLab: https://salsa.debian.org/lintian/lintian/-/compare/18712022fa81c940fe78d8928cd7b324b95174b2...a7fdcb0a8df20530f67427632e74d24543bd89a1 You're receiving this email because of your account on salsa.debian.org.

