Maytham Alsudany <mayt...@debian.org> writes: > Hi Simon, > > On Mon, 2025-02-03 at 13:32 +0100, Simon Josefsson wrote: > [...] >> Maybe adding an example for embedded static C object code like this >> would help clarify the intention. > > Would adding the following after the first paragraph be sufficient in > your view? > > Note that you do not need to list source packages recursively. For example, > consider the following situation: A package named "foo" declares > Static-Built-Using on "bar". "bar" declares Static-Built-Using on "baz". As > long as "foo" does not directly incorporate the contents of the "baz" > package > during its build, then "foo" must not list "baz" in its Static-Built-Using > field.
That would be an improvement, thank you! Thanks also for agreeing that this is the reasonable interpretation for this situation, I wasn't 100% certain on that. I believe the phrase "does not directly incorporate the contents" still leaves room for ambiguity though. Certaintly to some way of reading "foo" WILL incorporate the particular bits coming from "baz" directly, since those bits are provided identically within the "bar" package. Can we find some better articulation of the concept? If package "bar" has "Static-Built-Using: baz", and could even have a "Depends: baz" so that "baz" is actually installed when "bar" is installed, I believe what we want is that a package "foo" that Build-Depends on "bar" and statically uses files from "bar" to have "Static-Build-Using: bar" when it refers ONLY to files in "bar". If "foo" also refers to and uses files provided by "baz" then it MUST also have "Static-Build-Using: bar, baz". I think the property we care about for distinguishing the recursive case is more about the exposed interface (normally filenames) rather than the actual content of the files. The content WILL be included recursively, that's the point of statically linking. But mirroring that in Static-Built-Using is not useful, as it will chain back to include all compiler versions used to build them (and potentially the compilers that built those, etc). So we only mirror the filename interfaces needed. I hope someone else can find better terminology and description of the desired behaviour. I'm also find with using your improved explanation as-is, and leave my comment describing this detail in the bug tracker for future word tweaks, in case there is ever any real problem due to this ambiguity. /Simon
signature.asc
Description: PGP signature