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

Re: pkg-config



On Sat, 2005-09-03 at 23:13 -0700, Steve Langasek wrote:
> On Sun, Sep 04, 2005 at 01:04:40AM +1000, skaller wrote:
> > On Sat, 2005-09-03 at 04:19 -0700, Steve Langasek wrote:
> 
> > > At the present time and given the current state of the software I
> > > believe it is not in Debian's best interest that you ship a .pc file *at
> > > all* upstream
> 
> > Interesting. Hmm. Can you explain in a bit more detail
> > why you think this is?
> 
> pkg-config and libtool are both tools designed to facilitate portability
> to platforms which have inferior linkers, 

Reading your excellent article, you explain this
(excuse me duplicating text from your article):

"* Glibc[] support[s] transitive dependencies .."

which if I understand correctly: supposed executable E required
library A, and library A requires library B, then you can link
with a command like:

	gcc E -lA

and don't need to specify -lB.

Now you say to use libtool, which prunes extraneous dependencies.
I actually find libtool a superior pain .. it is complex to use
and makes a real mess of build scripts ;( I need more convincing
on this point (I understand the pruning dependencies ..)

Then you say to use 'versioned symbols in all libraries depended
on by other libs' .. which makes sense .. however I could use
some education here: the example:

http://people.debian.org/~vorlon/dependency-hell/img9.html

doesn't make any sense to me. Can you explain what it is doing?

And here:

http://people.debian.org/~vorlon/dependency-hell/img10.html

you have an example of use of the version script: the second
case is headed

libtool(Makefile.am)

which is a worry (I will NEVER use any auto* tools) so I would
like to understand what is being done do I can duplicate it
with a sane build tool (I use Python).

> and in the process they
> duplicate information already provided by ELF libraries on GNU/Linux in
> a manner that makes dependency changes more rigid and fragile.

Yup, that I understand. The system should calculate the transitive
closure of the dependencies.

> http://people.debian.org/~vorlon/dependency-hell/
> 
> > It does seem 'contrary' in some way to Debian's policy
> > of things going in particular places .. yet people don't
> > always actually put them there .. :)
> 
> I really have no idea what you're referring to here.

On an arbitrary system, to use some libary K, you cannot just
write -lK on your link command, because the library will only
be sought in standard locations.. you need to add -Lpath so the
linker can actually find the library.

My commend meant 'Debian policy says to put libraries in /usr/lib'
which means in theory you don't need any -L switches (more or less),
however some packages don't conform to this policy, so you may still
need -L switches: that's what I meant .. :)


-- 
John Skaller <skaller at users dot sourceforge dot net>

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


Reply to: