pkg-config 0.22 does not deal correctly with embedded blanks in directory names (fwd)

Alan W. Irwin irwin at beluga.phys.uvic.ca
Sat Feb 20 10:09:49 PST 2010


Hi Tollef:

My understanding is you are the developer of pkg-config.

I am a Linux developer, but I feel dealing with embedded blanks in directory
names is an important issue.  Thus, I am still hoping for a reply 
from you about an embedded blanks issue I found in pkg-config.

(1) To take a specific example, for

Libs: -L/home/software/plplot svn/installcmake/lib

is there a current way (quotes or escapes or something else?)
to force the correct output result from -libs (i.e.,

-L/home/software/plplot svn/installcmake/lib

rather than the incorrect result that is actually obtained,

svn/installcmake/lib -L/home/software/plplot

?

(2) If not, then I hope you have plans to deal with this bug.

Alan

---------- Forwarded message ----------
Date: Wed, 13 Jan 2010 21:53:31 -0800 (PST)
From: Alan W. Irwin <irwin at beluga.phys.uvic.ca>
To: pkg-config at lists.freedesktop.org
Subject: pkg-config 0.22 does not deal correctly with embedded blanks in
     directory names

My use case is I am testing Linux (Debian Lenny) pkg-config (version 0.22-1)
builds of PLplot examples with embedded blanks in the PLplot installation
prefix in anticipation that PLplot Windows users will tend to use embedded
blanks in directory names.  However, pkg-config is having difficulty
handling those blanks.

Here are the specifics.  The PLplot install prefix is
/home/software/plplot svn/installcmake.  Note the embedded blank.

The corresponding plplotd.pc file (simplified for illustrative purposes) is

libdir=/home/software/plplot svn/installcmake/lib
includedir=/home/software/plplot svn/installcmake/include/plplot
drvdir=/home/software/plplot svn/installcmake/lib/plplot5.9.5/driversd

Name: PLplot
Description: Scientific plotting library (double precision)
Requires:
Version: 5.9.5
Libs: -L${libdir} -lplplotd
Cflags: -I${includedir}

I get the following inconsistent results with the above plplotd.pc file.

software at raven> pkg-config --variable=includedir plplotd
/home/software/plplot svn/installcmake/lib

software at raven> pkg-config --cflags plplotd
svn/installcmake/include/plplot -I/home/software/plplot

software at raven> pkg-config --variable=libdir plplotd
/home/software/plplot svn/installcmake/lib

software at raven> pkg-config --libs plplotd
svn/installcmake/lib -L/home/software/plplot -lplplotd

That is, the embedded blank in ${includedir} and ${libdir} is simply passed
back for the --variable case which is the correct result.  However, the
pkg-config parsing of Libs: and Cflags: treats the variable that contains
the embedded blank as two separate blank-delimited items.

Can you recommend some way to work around this limitation of pkg-config?  I
have tried putting both double quotes and single quotes around ${libdir} and
also replaced ${libdir} in the Libs: line with a string with an escaped
embedded blank, i.e.,

Libs: -L/home/software/plplot\ svn/installcmake/lib -lplplotd

but nothing works.

If there is no current way to convince pkg-config to ignore embedded blanks
when parsing Libs: and Cflags: then please consider this post to be a
wishlist bug item to have a way (perhaps using quotes and/or escaped blank
as in the bash command line) to specify a non-parsed blank for Libs: and
Cflags:. This ability is going to be important on the Unix side of things
for those developers who have escaped from Windows but who still tend to use
embedded blanks in directory names. (This is exactly how this PLplot issue
first came up.) This ability is also obviously important on the Windows side
of things as well.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state implementation
for stellar interiors (freeeos.sf.net); PLplot scientific plotting software
package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of
Linux Links project (loll.sf.net); and the Linux Brochure Project
(lbproject.sf.net).
__________________________

Linux-powered Science
__________________________
_______________________________________________
pkg-config mailing list
pkg-config at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pkg-config


More information about the pkg-config mailing list