With the pkgconfig check:
https://github.com/OpenPrinting/libcupsfilters/blob/2.2.0/configure.ac#L131-L136
the datadir is prefixed with prefix, resulting in our case in wrongly installing stuff into arch-specific location /usr/x86_64-pc-linux-gnu/share/cups/ instead of arch independent /usr/share/cups/ like before with querying cups-config.
$ /usr/x86_64-pc-linux-gnu/bin/cups-config --datadir
/usr/share/cups
I wonder why it uses
cups_prefix="$($PKGCONFIG --variable=prefix cups)"
CUPS_DATADIR="$cups_prefix/share/cups"
instead of querying and using the variable cups_datadir directly:
$ pkgconf --variable=cups_datadir cups
/usr/share/cups
like:
--- configure.ac 2026-08-06 01:29:34.000000000 +0200
+++ configure.ac.new 2026-08-06 15:12:05.845094537 +0200
@@ -131,7 +131,7 @@
cups_prefix="$($PKGCONFIG --variable=prefix cups)"
AS_IF([test "x$cups_prefix" = x], [cups_prefix=/usr])
- CUPS_DATADIR="$cups_prefix/share/cups"
+ CUPS_DATADIR="$($PKGCONFIG --variable=cups_datadir cups)"
AC_DEFINE_UNQUOTED(CUPS_DATADIR, "$CUPS_DATADIR", [CUPS datadir])
AC_SUBST(CUPS_DATADIR)
Our /usr/x86_64-pc-linux-gnu/lib/pkgconfig/cups.pc
#
# CUPS pkg-config file
#
# Copyright © 2020-2024 by OpenPrinting.
#
# Licensed under Apache License v2.0. See the file "LICENSE" for more
# information.
#
prefix=/usr/x86_64-pc-linux-gnu
exec_prefix=/usr/x86_64-pc-linux-gnu
includedir=${prefix}/include
libdir=/usr/x86_64-pc-linux-gnu/lib
cups_api_version="2.4"
cups_build="cups-2.4.19"
cups_datadir=/usr/share/cups
cups_serverbin=/usr/x86_64-pc-linux-gnu/libexec/cups
cups_serverroot=/etc/cups
Name: CUPS
Description: CUPS API Library
Version: 2.4.19
URL: https://openprinting.github.io/cups/
Cflags: -I${prefix}/include
Libs: -L/usr/x86_64-pc-linux-gnu/lib -lcups
Requires.private: openssl
Libs.private: -lz -L/usr/x86_64-pc-linux-gnu/lib -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
With the pkgconfig check:
https://github.com/OpenPrinting/libcupsfilters/blob/2.2.0/configure.ac#L131-L136
the datadir is prefixed with
prefix, resulting in our case in wrongly installing stuff into arch-specific location/usr/x86_64-pc-linux-gnu/share/cups/instead of arch independent/usr/share/cups/like before with queryingcups-config.I wonder why it uses
instead of querying and using the variable
cups_datadirdirectly:like:
Our
/usr/x86_64-pc-linux-gnu/lib/pkgconfig/cups.pc