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

Re: Some autobuilders wait for build-indep dependencies



On Fri, Aug 15, 2008 at 10:51:08PM +0200, FRANCISCO MOYA FERNANDEZ wrote:
> I already know that people do also build their own packages, thanks. You do
> not need to "rewire" the debian/rules in order to build zeroc-ice binary-arch
> packages but AFAIK in your PowerPC you cannot currently build zeroc-ice
> binary-all packages, no matter what I do.

In that case, it's best to let the build actually *fail* on
non-i386 architectures, rather than allowing it to silently
succeed, perhaps by the non-installability of i386-specific
build-dependencies. Allowing a package builder to build a source
package in such a way that the _all.deb packages aren't built
without an error *will* cause confusion. Trust me.

> You do not need to issue an NMU if you find some binary-all packages that
> could be built in architectures other than i386. Report the bug and I will
> add them in the next release.

There are many reasons why people may need to build your package.
You may be on holiday, and unable to upload a package in time for
the release. The security team may have to prepare a fix. Someone
may want to add a patch to their version of your package in their
derivation of Debian. A user may want to build a version locally
with a different compiler.

I'm sure there are more examples.

Making that hard does not fit my description of "good packaging",
honestly.

> The kludge will add another exception.  Note that this is not a
> guarantee to be able to build binary-all but perhaps you could
> build binary/libzeroc-ice-java (?)
> 
> The zeroc-ice build dependencies are right to the best of my knowledge, but
> dpkg-buildpackage -B do not currently check them all.  Target build must
> satisfy Build-Depends-Indep (cf. Debian Policy 7.7) but dpkg-buildpackage
> fail to enforce that for binary-arch builds.

I'm not sure I understand what you're trying to say here.

> This is a feature rather than a bug in my opinion. This makes it possible to
> use target build while the transition path to build-arch is defined.

For clarity: "the transition to build-arch" is not actually in the
process of being defined, at all. This *is* a bug, IMAO.

> Simply stated, zeroc-ice is a package with lots of dependencies. I'll do my
> best to get most of it working in as much architectures as possible. But I
> won't remove features in some architectures just to homogeneize the behaviour
> of debian/rules.  Therefore I'm eager to receive suggestions on how to make
> it *better* supported on any architecture. But I won't accept "DO NOT DO
> THAT" statements unless properly supported on the Debian Policy.

Debian Policy only knows as much as what we put in it. Therefore it
isn't almighty, and it *certainly* isn't a stick to beat people with, as
you're trying to do here. The fact that some insanity isn't in
policy doesn't mean you should suddenly start doing it in your
package.

Changing the behaviour of your debian/rules file based on the
architecture you're trying to build on, is a *very* bad idea,
policy or no policy. If you really, *really* must make sure that
build-indep isn't ran everywhere, then read Policy 4.9, `build',
paragraph 2:

 ``For some packages, notably ones where the same source tree is
   compiled in different ways to produce two binary packages, the
   `build' target does not make much sense.  For these packages it
   is good enough to provide two (or more) targets (`build-a' and
   `build-b' or whatever) for each of the ways of building the
   package, and a `build' target that does nothing.  The `binary'
   target will have to build the package in each of the possible
   ways and make the binary package out of each.''

I'm sure you understand what I mean here.

-- 
<Lo-lan-do> Home is where you have to wash the dishes.
  -- #debian-devel, Freenode, 2004-09-22


Reply to: