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

Re: pkg-config



On Sat, 2005-09-03 at 12:38 +0200, Daniel Leidert wrote:

> > The .pc names can be set by the Debian maintainer, 
> > and the original .pc file ignored even if upstream provides it. 
> > 
> > You may well be right this is not a good idea,
> 
> Sorry, but this is an IMO absolutely silly idea. 

What is there to be sorry about? Ideas should stand on 
their own merit, independently of their originator, IMHO.

> Then you have to adjust
> configure scripts, which run tests for these libs/applications. And a
> lot of programs test for apps using pkg-config. Your idea breaks with
> them.

Yes, I agree: you're right. So, what is the way forward?

> > I'm not arguing it is. However a policy could
> > be made and be enforced.
> 
> No.

Please note the language: "A policy *could* .."

This means it is possible. It doesn't mean it is the right
thing to do.

You said: "this is an IMO absolutely silly idea" and that is
the important statement: whether it is *possible* to make
and enforce pkg-config use and conventions, it would be
a bad idea to do so.

> > In particular, at present, pkg-config is plain useless
> > because it isn't consistently supported.
> 
> I cannot agree. Can you give an example?

Sure I can, this is on Ubuntu Hoary:

skaller@rosella:/work/felix/flx$ pkg-config --list-all
Package ORBit-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `ORBit-2.0.pc'
to the PKG_CONFIG_PATH environment variable
Package 'ORBit-2.0', required by 'PyORBit', not found

So you see it is a load of crap. Another example: I am using
some scripts which do not work, related to OpenGL,
because not all the required libraries are linked.

I would like to suggest that instead of me manually editing
the build script, that the script use pkg-config, because that
would work universally.

Unfortunately .. I look on my system and there are no .pc
files for GL, GLU, etc etc .. so I don't make my suggestion
to the script author ;(

I complain here instead: pkg-config is useless because you have
to know in advance that it is provided for a particular library
on a particular system, and if so that all the dependencies
are also supported with .pc files. Since you can't know this ..
pkg-config is useless.

If there were a Policy that all libraries should have .pc files,
and the Policy were enforced, then it would be more useful.
If there were a Policy on the relationship between the library
and package names, it would be even more useful.

That is: it is not that pkg-config program is in itself bad
or useless, it is useless unless it is consistently supported:
it is a 'Standard' which must be followed for it to work
(namely, to actually provide .pc files for every library).

Now, you're saying: we should not do this. We should not make such
a Policy.

I will not disagree. I ask instead: what SHOULD we do?

BTW: this is a question that goes beyond Debian, in the sense
that upstream developers need to support many platforms,
including non-debian ones. What most developers do is
write 'suck it and see' scripts, which is a waste of
time and very hard to get right .. even if you have 20 different
computers running all the common variants of Unix :)

Another solution is 'edit the makefile' which is of course
extremely bad .. because your edits are lost when you
upgrade to a new tarball/package -- and perhaps not even
the one in question, but one of its dependencies.

This problem would just go away if pkg-config we supported
properly, or a new system developed that was. 

I don't know the answer, just the problem .. :)

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

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


Reply to: