Re: Transitive Build-Depends [Was: Re: Bug#92090: failed autobuild of smpeg_0.4.2-3 (m68k): libXxf86dga (and perhaps libXxf86vm) not found, missing xlibs-dev build-depends]
On Thu, Mar 29, 2001 at 01:26:14PM -0500, Joe Drew wrote:
> On Thu, Mar 29, 2001 at 05:13:23PM +0100, Colin Watson wrote:
> > >On Thu, Mar 29, 2001 at 03:35:35PM +0200, Michael Schmitz wrote:
> > >> smpeg fails to build from source on m68k - during configure, libXxf86dga
> > >> isn't found. libXxf86dga is provided by xlibs-dev so please add xlibs-dev
> > >> to build-depends.
> > >
> > >This should actually be added to libsdl1.1's build-depends, as I just
> > >build-depend on that. libsdl1.1 build-depends on xlibs, while I have
> > >the feeling that it should actually build-depend on xlibs-dev (just
> > >an oversight, then).
> > Build-depends aren't applied transitively like that; only libsdl1.1's
> > dependencies matter while building your package, not its
> > build-dependencies.
> Okay, I accept that - but why is it this way? This is counter-intuitive.
> dpkg-shlibdeps has just finished being modified to detect the least number
> of dependencies, and depending on apt to fulfill the chain of deps which
> results. Why should Build-Depends be any different?
Because if A Build-Deps on B, then you need B installed to build A. If
B Build-Deps on C then you need C installed to *build* B, not just to
Since building A only involves *use* of B, not building B, B's
build-deps are irrelevant.
In a case like the above, if normal use of the headers or librarys in
libsdl1.1-dev requires xlibs-dev then it sounds like libsdl1.1-dev
should *depend* on xlibs-dev, not build-depend.
(Typically, but not invariably I guess, if libfoo depends on libbar
then libfoo-dev should depend on libbar-dev)