pkg-config2

Ian Reinhart Geiser ian at geiseri.com
Sun Jan 23 04:59:11 EET 2005


On Saturday 22 January 2005 20:20, Daniel Stone wrote:
> On Sat, Jan 22, 2005 at 06:49:40PM -0500, Ian Reinhart Geiser wrote:
> > Pkg-conf is one of the most promising tools that I have seen in a while. 
> > It makes a great attempt at solving interdependencies of development
> > packages. The only gripes I have had with it so far have been its lack of
> > formal documentation, and the current implementation seems to lack real
> > development effort behind it.
>
> Not being funny or anything, but what development is there really to do? 
> Some stuff is stagnant just because there isn't really anything to do, bar
> cleaning up an M4 warning.
>
Well currently there is duplication in applications like kde-config and there 
is lack of support in applications like QMake.  This development is 
specificly to address these issues.  The current implementation while it 
provides a nice base seems very difficult to extend.  This development also 
addresses this issue but sporting a slightly more manageable codebase along 
with tests to ensure maintainability.

> > Zack Rusin and I have built a completely testdriven version in C++ and
> > have started on using those tests to build formal documentation of the
> > format.  We have also started to build an API so that applications such
> > at kde-config and other binary *-conf utilities can reuse pkg-conf
> > metadata, dependencies and features without having to re-invent the wheel
> > every time.
>
> Personally, I would've thought it would be far better to just use
> pkg-config directly (y'know you can get arbitrary variables out of it,
> yeah?), and be done with *-conf, forever, and just do everything through
> the one standard interface.
>
Sure, and this is neat for static data.  This fails pretty miserably though 
with dynamic data like kde standard directories that are influenced by KDE 
settings.  The goal is to allow such tools to use the current featureset of 
PkgConf and then extend it at their own requirements.

> > Interested parties should kick it around and suggest patches.  We are
> > still working on Win32 support.  It build right now with mingw32, but the
> > paths are still not correct.  This is alpha and should be updated later
> > this week.
>
> I'm honestly not entirely convinced I see the point:
> 	a) why have you rewritten it?
The code as it stood was not really maintained and very difficult to extend 
and integrate
> 	b) why have you decided to encourage applications to use their own
> 	   frontends,  other than going through pkg-config itself? 
Because forcing applications to duplicate 99% of the functions of pkg-conf 
just because it cannot be extended to provide their required features is not 
a useful way to promote adoption of the .pc format.  This is a big reason why 
kde has their kde-config vs using pkg-conf... The net result is we duplicate 
pkg-conf poorly, and have redundant code.

> 	c) does this version carry any other advantages over the main one?
It will provide documentation of the format. Validation tests to provide devs 
with a way to definitively prove their .pc file is valid.  It will also 
provide an interface to allow build tools like scons, and QMake integrate 
better. 	
> 	d) what are your plans for future development, so it never stagnates?
Without falling back on the argument of Test Driven code is easier to 
maintain, I think the biggest plans are to take a more active role in getting 
this integrated into build systems and to get features that developers want 
into it.  My biggest current gripe is to be able to have environment 
variables to be usable inside of the .pc format.  This is handy when you have 
multiple installs of certain libraries and do not wish to manually update the 
pc files or hack on the build system.

Example:
pc file contains %{prefix} before its libs... this is defined either via a 
cmdline option or prior in the .pc file.  Modifying this within automake is 
difficult.  With env variable support one could set their $PREFIX or 
something and then build with autotools as usual.  Currently you cannot have 
more than one of a module type in packageconf. This make keeping multiple 
copies difficult and requires dorking with the pkgconf path.

> Daniel, quite possibly missing the point
No your questions are good.  I assure you I did not do this out of boredom. I 
did this because I believe the intent of Pkg-Conf is spot on, but I think 
some of the points of the implementation needed refinement.  I think pkgconf 
is here to stay one way or another, I just see this implementation as helping 
make it more popular.  The .pc format is the standard interface imho, the 
implementations can vary as we please.

Cheers
	-ian reinhart geiser
-- 
=======+<KWeather for KDE 3.2>+=+<http://www.kde.org>+===
 Report for Philadelphia, Northeast Philadelphia Airport
            on Saturday 22 January 2005 20:54
 -6.7°C with winds at 20 km/h NNW and 8km of visibility.
===============================+<geiseri at kde.org>+=======
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/xdg/attachments/20050122/468ded3b/attachment.pgp 


More information about the xdg mailing list