On Tue, Aug 05, 2025 at 09:54:35AM +0100, Julian Gilbey wrote: > On Tue, Aug 05, 2025 at 12:48:58AM +0200, Guillem Jover wrote: > > > I would therefore propose changing the Static-Built-Using field to use > > > *binary* packages and versions rather than *source* packages and > > > versions to fix this. > > > > > > At present, there are only about 250 packages in testing that use the > > > Static-Built-Using field, so the impact would be manageable. > > > > > > > > > But there may be a really good reason to use source package versions > > > instead; it would be helpful to hear those. > > > > Although we have some tooling generating the fields (mainly in the Go > > and Rust teams), I don't think there's currently tooling in Debian > > consuming the fields yet. But then also, the fields have been documented > > with those semantics since dpkg 1.21.3 (as present in Debian bookworm), > > so there could be local reliance on those. :/ > > That's good to know. I also doubt there's much local reliance on > those, given how little they've been used within the main archive, and > I expect that anyone who is relying on them locally will be competent > enough to cope with this proposed (breaking) change. I would also > expect that any local users relying on this field would appreciate the > benefit of the changes proposed.
CCing Stefan, who currently schedules binNMUs based on Built-Using and Extra-Source-Only, IIRC. not sure whether RT already acts on S-B-U anywhere as well, in addition to that? > > If there is consensus that we'd want the more precise (although in > > many cases possibly irrelevant) information tracking, I'd be fine > > with the changed semantics, and I'd be happy to update the > > deb-control(5) man pages. Taking into account that while it feels > > early enough in Debian terms (given that we currently have no > > consumers that I'm aware of), this has the unknown of potential local > > users. > > If there is consensus on this, then given what you've pointed out > above, we should probably tighten up the wording of the proposal to > indicate that Static-Built-Using should only list packages whose > upgrading should trigger a rebuild of the package, for example > packages whose content is embedded in the resulting binary package. > But the compiler used should not generally be included in this field. note that for Rust, this is for the most part not true - except for niche use cases (nostd, like when building embedded things or Linux kernel stuff), the standard library which is part of the toolchain packages *is* statically linked into any Rust executable. and even for nostd, the same applies to a smaller standard library (libcore). so while Static-Built-using rustc could go away following this line of reasoning (which I do agree with - grave compiler codegen bugs warrant rebuilding the world anyway), libstd-rust-dev would remain.

