Maytham Alsudany <maytha8the...@gmail.com> writes:

> +``Static-Built-Using``
> +~~~~~~~~~~~~~~~~~~~~~~
> +
> +This ``Static-Built-Using`` field must list source packages with an
> +"exactly equal" ("=") version relation, which had their contents (like
> +source code or data) incorporated into the binary package during the
> +build.

I have a (possibly non-typical) situation that I believe warrant use of
Static-Built-Using and I find the above explanation ambiguous wrt if the
transitive closure of packages should be included or not.

(A side-note is that referring to source package names in
'Static-Built-Using' makes it hard to know which binary package from
that source package actually ship the embedded code.  I suspect it is
too late to change this though.)

My naive reading of the text above suggests that ALL source packages
with that property ought to be included.  I'm not certain that is a good
idea or even if this is intended.

My situation is that 'tkey-ssh-agent' embeds a RISCV firmware app blob
which comes from the 'tillitis-tkey-device-signer' package which embeds
RISCV object code from the 'tillitis-tkey-libs' package.

In an upcoming upload, I plan to add

Static-Built-Using: tillitis-tkey-libs (= 0.1.2-2)

to the 'tillitis-tkey-device-signer' package.

However, what is the right header for the 'tkey-ssh-agent' package?
Naively interpreted, I think the above policy would suggest this:

Static-Built-Using: tillitis-tkey-libs (= 0.1.2-2), tillitis-tkey-device-signer 
(= 0.1.2-2)

However is that useful?  Wouldn't the following be sufficient:

Static-Built-Using: tillitis-tkey-device-signer (= 0.1.2-2)

Code that goes looking at the 'tillitis-tkey-device-signer' source
package ought to be able to find that one of its binary packages, namely
'tillitis-tkey-device-signer', has a Static-Built-Using on another
package.

The problem with interpreting the text above as indicating the
transitive closure is that there may be no end to the list.  For
example, 'tillitis-tkey-libs' most likely embeds static code coming from
the compiler, in the 'clang-19' package (or some other dependent package
of 'clang-19').  Should 'clang-19' be added to 'Static-Built-Using'?
Recursively, I suspect that the 'clang-19' binary package in Debian of
version X either embeds static code coming from gcc version Y or clang
version X-1.  Should 'clang-19' have a Static-Built-Using on its
compiler?  I'm not sure this is useful or intended.

Maybe adding an example for embedded static C object code like this
would help clarify the intention.

/Simon

Attachment: signature.asc
Description: PGP signature

Reply via email to