[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#709382: mksh: broken Built-Using handling



Sune Vuorela dixit:

>The handling of built-using is wrong. It is not meant to encode the
>compiler used, nor binutils or kernel headers should be recorded there

Policy 3.9.4 §7.8 says:

     Some binary packages incorporate parts of other packages when built
     but do not have to depend on those packages.  Examples include linking
     with static libraries or incorporating source code from another

>It is specifically for building against -source packages and for hacks
>like ia32libs where binaries are copied into a source package. Not for
>'everything'.

In this specific case, there are one to two statically linked
programs there. In some cases, they link statically against a
GPL licenced library. So my current interpretation of the text
from Policy above says that Built-Using is indeed required there.

>What you effectively are doing is asking for a mksh rebuild on each

No, just that dak keeps the source versions around for longer.
A final rebuild near the end of the freeze should be enough,
if it is indeed needed at all. (If dak just keeps the relevant
source packages at hand, and they end up on the source CDs, I
believe all requirements are met, and IIRC reading that this,
not rebuilding, is how things are handled on Debian side; the
only requirement is that, upon a binary *entering* the archive,
the source packages in that precise version must be known to
dak, i.e. not already superseded (by newer version, NBFAS or
removal); once a package B-Us them they will not be removed.

I’m closing this as not a bug. Please feel free to file a bug
against the Policy wording in the meantime; as things are now,
the wording specifically includes statically linked binaries.

The composition of B-U in mksh is as follows:

• mksh-static is always built statically;
  either against klibc (plus linux-libc-dev and libgcc),
  or against dietlibc (plus libgcc),
  or against eglibc (plus libgcc)

• lksh is built statically if klibc or dietlibc are
  available, with the same “plus” as above

• the build script records what was actually put into
  the binaries, gets the appropriate source package
  relationships from that and puts it into Built-Using

In the dietlibc case at the very least (since it’s GPL;
would have to look closer at others), the resulting binary
is fully covered by the requirement of the GPL that its
precise and complete sources be available.


I don’t mind changing this *at all*, but I can only do
that (justifiedly) if it’s not against what I believe
to interpret Policy correctly (especially since it
specifically lists static linkage), or if there’s a
CTTE resolution asking me to change it. I’ve had more
troubles with this B-U ever since using it in experi‐
mental, so… really, no argument from me, just following
Policy (with some background in licencing and toolchains).

bye,
//mirabilos
-- 
I believe no one can invent an algorithm. One just happens to hit upon it
when God enlightens him. Or only God invents algorithms, we merely copy them.
If you don't believe in God, just consider God as Nature if you won't deny
existence.		-- Coywolf Qi Hunt


Reply to: