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

Re: Build-Depends-Indep and build target



Florent Rougon <f.rougon@free.fr> writes:

> Hi,
>
> Joachim Reichel <joachim.reichel@gmx.de> wrote:
>
>> Hi,
>>
>> section 7.6 of the policy states that Build-Depends-Indep must be
>> satisfied if the build target is invoked.
>
> [...]
>
>> Now, if my sponsor uploads this package, it will still fail, right? If
>> Build-Depends-Indep is not satisfied by accident, the build will fail
>> again ...
>
> Your analysis looks correct to me. It is a known fact that the buildds
> don't conform to Policy as far as Build-Depends and Build-Depends-Indep
> are concerned.
>
>> So what should I do?
>
> I suggest you read the following post:
>
>   http://lists.debian.org/debian-mentors/2006/09/msg00229.html
>
> The first paragraph by Wouter Verhelst (longtime buildd admin) tells you
> what buildds from real life expect, which explains why your build
> failed: because your Build-Depends line didn't contain "all packages
> that are required for a 'dpkg-buildpackage -B' run to complete
> successfully" (since, as you noticed, 'dpkg-buildpackage -B' does call
> 'debian/rules build' and your 'build' target requires tetex-bin, which
> is not in your Build-Depends).
>
> The last paragraph, by Scott James Remnant, confirms this and tells you
> in a more straightforward way what you should do to have the package
> build successfully on the buildds: include tetex-bin in your
> Build-Depends, since it's needed in the 'build' target.
>
> But again, you're right on this: according to Policy, your package build
> should not fail due to latex being unavailable.

But on this point policy is wrong, in the sence of not reflecting the
long tradition of doing this the other way.

The underlying problem is that build-arch/indep are not mandatory and
thus building must call the "build" target.

If build-indep does take a considerable time then you can use the
following hack:

build: build-arch

build-arch:
        # Build arch stuff

build-indep:
        # Build indep stuff

binary: binary-arch binary-indep

binary-arch: build-arch

binary-indep: build-indep


Note that this will only build indep when needed on the plus side but
will build indep as (fake)root on the minus side.

MfG
        Goswin



Reply to: