[arch-dev-public] Packages added to todo list 'Some packages put their pkgconfig (.pc) files in /usr/share/pkgconfig instead of /usr/lib/pkgconfig'

Jan de Groot jan at jgc.homeip.net
Mon Dec 19 04:26:07 EST 2011

On Mon, 2011-12-19 at 10:15 +0100, Tom Gundersen wrote:
> On Mon, Dec 19, 2011 at 9:50 AM, Jan de Groot <jan at jgc.homeip.net> wrote:
> > n randomly looking at files and directories, I
> >> found /usr/share/pkgconfig
> >> and though: "this ain't right"
> >
> > For architecture-independent packages like the ones in
> > todo, /usr/share/pkgconfig is a perfectly valid place to store these
> > files. It's also in the default lookup path, so there's no reason to
> > rebuild all these packages.
> I had a look into this. According to pkg-config man both
> /usr/{share,lib}/pkgconfig seem to be equally valid. As to my package
> (udev) there is no clean way to move the pkgconfig files out of share
> without also moving the man pages, so I'd rather not unless there is a
> good reason (in which case I'll push a patch upstream).

The reason for /usr/share/pkgconfig is mainly for multilib systems. The
32bit version of pkg-config will look into /usr/lib32/pkgconfig, the
64bit version whill look into /usr/lib/pkgconfig, or whatever libdirs
are in a distribution. For multi-arch packages like xkeyboard-config, it
would mean that it has to install two pc files. Instead of
that, /usr/share/pkgconfig is used.

Moving these files out of /usr/share means that our multilib repository
will have to fork packages that are architecture-independent.

BTW: As for /usr/share/pkgconfig/udev.pc: that .pc file is installed to
make clear where udev and its rules files are installed. As it's not a
library, there's nothing wrong with installing it there. Rule files are
quite the same on i686 and x86_64.

More information about the arch-dev-public mailing list