Pkgconf Personalties

The pkgconf compilation in the multilib mirror does not cover pkgconf personalities which are needed for some lib32 variants of packages such as Gstreamer. This part is not necessary if you only intend to follow the Steam chapter and not the Wine chapter.

The pkgconf personalities allow for pkgconf to be ran without having to specify the pkgconfig path.

Creating the personalites

Create the following personalties as the root user:

mkdir -pv /usr/share/pkgconfig/personality.d

cat > /usr/share/pkgconfig/personality.d/x86_64-pc-linux-gnu.personality << "EOF"
Triplet: x86_64-pc-linux-gnu
SysrootDir: /
DefaultSearchPaths: /usr/lib/pkgconfig:/usr/share/pkgconfig
SystemIncludePaths: /usr/include
SystemLibraryPaths: /usr/lib
EOF

cat > /usr/share/pkgconfig/personality.d/i686-pc-linux-gnu.personality << "EOF"
Triplet: i686-pc-linux-gnu
SysrootDir: /
DefaultSearchPaths: /usr/lib32/pkgconfig:/usr/share/pkgconfig
SystemIncludePaths: /usr/include
SystemLibraryPaths: /usr/lib32
EOF

Again as the root user, create the symlinks that enable pkgconf to find the personalites:

ln -sv pkgconf /usr/bin/x86_64-pc-linux-gnu-pkg-config
ln -sv pkgconf /usr/bin/i686-pc-linux-gnu-pkg-config

Now verify that the x86_64 pkg-config is using the right personality:

x86_64-pc-linux-gnu-pkg-config --dump-personality

The result should be:

Triplet: x86_64-pc-linux-gnu
SysrootDir: /
DefaultSearchPaths: /usr/lib/pkgconfig /usr/share/pkgconfig
SystemIncludePaths: /usr/include
SystemLibraryPaths: /usr/lib

Then verify the i686 pkg-config is using the right personality:

i686-pc-linux-gnu-pkg-config --dump-personality

The result should be:

Triplet: i686-pc-linux-gnu
SysrootDir: /
DefaultSearchPaths: /usr/lib32/pkgconfig /usr/share/pkgconfig
SystemIncludePaths: /usr/include
SystemLibraryPaths: /usr/lib32