PKG_LIB_DIR/PKGMODULEDIR expansion issues

"Matsumura, George" <[email protected]> Fri, 1 Jul 2022 21:30:40 -0600
Newsgroups gmane.linux.printing.gimp-print.devel
Message-ID <[email protected]>
Greetings,

My build of Gutenprint, built through Void Linux's standardized build
process, was unable to find the module directories due to PKGMODULEDIR
being defined in config.h as:
#define PKGMODULEDIR "${exec_prefix}/lib64/gutenprint/5.3/modules"

Since the C processor cannot expand exec_prefix, it remains in the path
at runtime and cannot be resolved.

Attached is the config.summary from the build. In particular, the
following flag passed to configure seemed to be responsible:
--libdir=\${exec_prefix}/lib64

There seems to be a specific case in configure.ac for when libdir is
defined as \${exec_prefix}/lib, but this would not cover my case.

This seems to be similar to the problem described here:
https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.71/html_node/Defining-Directories.html

Is there a recommended way to patch configure.ac so that such an option
works correctly? The above reference suggests either moving definitions
to compile-time options in Makefile.am, which, looking at the repository
history, seems to have been done in gutenprint in the past, or using an
additional macro to resolve the pathname.

Thank you for reading this and in advance for any reply.

Regards,
    George

_______________________________________________
Gimp-print-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gimp-print-devel
config.summary (text/plain, 4.3 KB)
Gutenprint Configuration Summary:
---------- ------------- --------

If you have any problems, please report the information below to
[email protected]

================================================================
  Release: gutenprint 5.3.4 generated on 06 Dec 2020
  Generated at Fri Jul  1 01:00:57 UTC 2022 by 

  Features:
    Build CUPS:                                 yes, installing in /usr
        Build CUPS 1.2 enhancements:            yes
        Build CUPS PPD files:                   yes
            Build translated CUPS PPD files:    yes
                Build global CUPS PPD files:    yes
            Build simplified CUPS PPD files:    only
            Install CUPS PPDs at top level:     no
        Generate PS level 3 CUPS PPD files:     yes
        Build genppd statically:                no
            ***WARNING: Use of --disable-static-genppd or --disable-static
                        when building CUPS is very dangerous.  The build may
                        fail when building the PPD files, or may *SILENTLY*
                        build incorrect PPD files or cause other problems.
                        Please review the README and release notes carefully!
        Build CUPS dyesub USB backend:          no
    Build EPSON inkjet utility:                 yes
    Build enhanced Print plugin for GIMP:       no
    Build test programs:                        yes
    Build testpattern generator:                yes

  Installation summary:
    Installation prefix:                        /usr
    Exec prefix:                                /usr (${prefix})
    Data directory:                             /usr/share/gutenprint
    Library directory:                          /usr/lib64/gutenprint (${exec_prefix}/lib64/gutenprint)
    Executable directory:                       /usr/bin (/usr/bin)
    XML data directory:                         /usr/share/gutenprint/5.3/xml
    Module directory:                           /usr/lib64/gutenprint/5.3/modules (${exec_prefix}/lib64/gutenprint/5.3/modules)
    Install sample images:                      yes

  General configuration:
    Configure arguments:                        --prefix=/usr --sysconfdir=/etc --sbindir=/usr/bin --bindir=/usr/bin --mandir=/usr/share/man --infodir=/usr/share/info --localstatedir=/var --host=x86_64-unknown-linux-musl --build=x86_64-unknown-linux-musl --libdir=${exec_prefix}/lib64 --disable-rpath --enable-samples --disable-static --disable-static-genppd --enable-cups-ppds --enable-simplified-cups-ppds=only --enable-translated-cups-ppds --enable-globalized-cups-ppds
    Compiler:                                   cc
    Compiler Version:                           gcc version 10.2.1 20201203 (GCC) 
    Compiler options:                           -Disfinite=finite -fstack-clash-protection -D_FORTIFY_SOURCE=2 -mtune=generic -O2 -pipe   -g -fdebug-prefix-map=/builddir/gutenprint-5.3.4=. -O3 -fstack-clash-protection -D_FORTIFY_SOURCE=2 -mtune=generic -O2 -pipe   -g -fdebug-prefix-map=/builddir/gutenprint-5.3.4=. -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wwrite-strings -Werror-implicit-function-declaration -Winline -Wformat=2 -finline-limit=131072 -Wformat -Werror=format-security -D_POSIX_C_SOURCE=200809L -std=c99
    Build static libraries:                     no
    Build shared libraries:                     yes
    Maintainer mode:                            no
    Use i18n:                                   yes
    Generate profiling information:             no
    Generate debugging symbols:                 no
    Use modules:                                yes
    Use readline libraries:                     yes
    uname -a output:                            Linux void 5.15.50_1 #1 SMP Sat Jun 25 15:23:09 UTC 2022 x86_64 GNU/Linux
================================================================

VERY IMPORTANT:
If you expect to build the CUPS driver or the enhanced Print plugin for
GIMP, but the output above indicates that that component will not be built,
it almost certainly indicates that development packages required to build
that component are not installed on your system.  Please read the README
file and install the necessary development packages before reporting any
error to the development team.  Depending upon your operating system version,
you may have to install packages from the installation medium or over
the network.