Skip to content

2.2.0: cups datadir handling pkgconfig vs. cups-config #201

Description

@tgurr

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions