Hi,

Quoting Santiago Vila (2017-01-07 15:46:30)
> This package, cross-toolchain-base, has a small collection of Build-Using
> fields on other source packages.
> 
> I'm building packages in stretch, and when a package FTBFS in stretch,
> I report it as a serious bug.
> 
> Matthias complains that I'm not building packages "the same way" he did.
> 
> He seems to suggest (please correct me if I'm wrong) that I should use
> the exact same version he used in the Built-Using field.
> 
> But I think this information is only in the binary packages.
> 
> So: Is sbuild supposed to take this information from the binary
> packages I'm trying to rebuild (unlikely, but I ask just in case),
> or maybe it's that the Built-Using fields should just be versioned
> when there is a risk that not every version of the Built-Used packages
> is ok for the build? (May Built-Using be versioned, like Depends
> or Build-Depends?)
> 
> [ My theory is that this is a bug in either cross-toolchain-base,
>   sbuild, or maybe our package format, but definitely not in myself building
>   packages on stretch ].

thanks!

The Built-Using field is for binary packages to indicate that they incorporate
code from other source packages than the source package that the build from.
This is important so that the archive can keep these source versions around
even if a newer source package gets uploaded. You can identify source packages
that are only kept around because some binary package incorporates material
from them through the "Extra-Source-Only: yes" header in Sources lists.
Conversely, the Packages list files contain the Built-Using header listing
these source packages. This mechanism is used to make sure that the source code
for all binary packages that we ship is still distributed by us. Without the
Built-Using header, it could easily happen that a new version of a source
package gets uploaded, the old version is dropped from the archive and suddenly
we have a binary in the archive for which we do not provide the source anymore.
So the Built-Using header is a mechanism that keeps us copyright compliant. It
is not a mechanism to list the requirements to build a source packages. These
requirements are contained in the Build-Depends, Build-Depends-Indep,
Build-Depends-Arch and their corresponding Conflicts fields.

If the package really fails to build from source because you are not installing
the right package versions or not the right packages, then these are missing
from the Build-Depends-* fields.

The Built-Using header is for binary packages to assure copyright compliance in
the archive. They are not indicators of the binary packages required to build a
source package.

If I misunderstood the Built-Using situation, please point me to the resource
that states otherwise.

Thanks!

cheers, josch

Attachment: signature.asc
Description: signature

Reply via email to