On Sat, 7 Jan 2017, Johannes Schauer wrote:

> 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.

I see that's the case indeed, but in an indirect way.

The package cross-toolchain-base-ports, for example, has this in Build-Depends:

  binutils-source (>= 2.27.51.20161101-1~),
  glibc-source (>= 2.24-5~),
  gcc-6-source (>= 6.2.0-11~),
  linux-source (>= 4.8),

So they incorporate code from other source packages, but only as far
as they are distribured in "foo-source"-like packages. This is to be
able to build-depend on them.

So, the normal build-depends mechanism is used to decide which version
need to be installed for the build.

> 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.

That's basically what I thought.

Matthias, I have built these two packages in stretch again.

Now they build ok so I did a diff between old (failed) and new
build logs and found this:


-if dpkg --compare-versions 6.2.0-13 le 6.2.1-4; then \
+if dpkg --compare-versions 6.2.1-5 le 6.2.1-4; then \
   cd gcc; \
   patch -p1 < ../debian/patches/gcc/gcc-stage1.diff; \
 fi
-patching file debian/rules.patch
-Hunk #1 FAILED at 151.
-Hunk #2 FAILED at 187.
-2 out of 2 hunks FAILED -- saving rejects to file debian/rules.patch.rej
-debian/rules:213: recipe for target 'stamp-dir/init-gcc' failed
-make: *** [stamp-dir/init-gcc] Error 1
-dpkg-buildpackage: error: debian/rules build-indep gave error exit status 2


> 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.

Again as I thought: Neither I or sbuild is supposed to look at the
Built-Using field in the binary packages when trying to rebuild
packages for testing purposes.

Instead, I suggest Matthias that he just updates the (already versioned)
build-depends on the *-source packages in the control file.

Then we could avoid filddling with conditional patching in
debian/rules, which we all see that it's prone to error.

If you are worried of this package propagating to testing before its
build-dependencies, I consider that to be a bug in britney and do not
usually report it as a bug in the package itself.

An error of type "build-dependencies not met" (i.e. "wait-dep" in
wannabuild speak) is always better than a tried-then-failed build.


Thanks a lot.

Reply via email to