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

Re: Should -dev packages providing .pc files depend on pkg-config?



On Wed, 2008-04-16 at 19:57 +0200, Gabor Gombas wrote:
> On Wed, Apr 16, 2008 at 07:15:53PM +0200, Goswin von Brederlow wrote:
> 
> > You are missing the point.
> > 
> > What if the library says "You must call /usr/bin/foo during build"?
> 
> But the library can't say "foo must come from a Debian package". What if
> I have my local replacement? 

/usr/local/bin/foo ?

> Why should I be forced to install a package
> that is now useless for me (and installing it would only cause confusion
> as there are now two different tools with the same name present in
> $PATH)?

That is a problem with your replacement, not with the Debian package. If
your replacement is a Debian package, you need to use Debian Policy to
handle that situation - it still doesn't mean that it is the fault of
the library or that the library must support your alternative.

> 
> > The libarry does not use foo, only the user, so no depends?
> 
> Of course no dependency is needed. 

To run /usr/bin/foo, if you need bar, the package containing foo must
depend on bar. That, in this case, means libfoo-dev depends on
pkg-config.

> If the library is not used by anyone
> (think about an NFS server that just exports the library), then a
> missing "foo" would not hurt anyone. And if someone _does_ use the
> library, then that user must depend on "foo", and everything is fine.

Or more exactly, the package containing foo which will be the -dev.

> > Or idoes forcing users to use foo make foo part of the API and hence
> > the library should depend on it?
> 
> You can't _force_ anyone to use foo. At most you can say "I'm not going
> to give you support if I somehow find out you didn't use foo" but that's
> it. I should be able to write my own tools and use the library in
> whatever way I want - or the library must go into non-free.

True, but you cannot dictate to the library that it must support your
replacement or even not conflict with it. Your replacement needs to live
with the package as-is, in accordance with Debian Policy. If Policy gets
an update that "you run it, you depend on it" along the lines of my
previous post, then the -dev would depend on pkg-config and most other
applications using the library would depend on pkg-config *if* they need
that to work with other libraries. (That's the usual case - most
applications will end up running pkg-config so most applications will
end up with a Build-Depends: pkg-config, ....)

-- 
Neil Williams <codehelp@debian.org>

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: