Build failure -- conflict between libcups ppd.h and libppd ppd.h?
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- c
- Domain
- build-system
Research direction
Start with ppd/ppd.h and compare its ppd_ui_e declarations with /usr/include/cups/ppd.h, following the include path through /usr/include/cupsfilters/driver.h. Reproduce the failure using the reported Debian Bookworm configure and make commands; done means libppd 2.0.0 builds successfully with the stated libcups and libcupsfilters setup.
Written by the indexing model from the issue text.
Description
I'm attempting to build an OCI container of ghostscript-printer-app using podman/buildah and am stuck at trying to build libppd.
I have:
- installed libcups2-dev from Debian bookworm, which includes CUPS 2.4.2 devel files (including cups-config).
- using this, checked out and installed libcupsfilters 2.0.0 from the GitHub repo.
- attempted to build libppd 2.0.0 from the GitHub repo:
What have I done wrong? I've largely been following the snap definition for the build, except that I've picked Debian bookworm's prebuilt libcups2-dev and ghostscript packages rather than rebuilding them myself.
$ podman build --platform=linux/arm/v7 -t gurdasani.com/ghostscript-printer-application/ghostscript-printer-application-splix:latest .
[1/4] STEP 1/2: FROM docker.io/library/debian:12-slim AS base_build
[1/4] STEP 2/2: RUN set -eux; DEBIAN_FRONTEND=noninteractive; export DEBIAN_FRONTEND; apt -y update; apt -y install apt-transport-https ca-certificates; echo 'deb-src https://cdn-aws.deb.debian.org/debian stable main contrib non-free' > /etc/apt/sources.list.d/stable-sources.list; apt -y update; apt -y install build-essential g++ sed quilt
--> Using cache 61d1779678e34149d0fa66f37bb0a31e8f28ef44937673cdfac28a2c9a35add9
--> 61d1779678e
[3/4] STEP 1/2: FROM 61d1779678e34149d0fa66f37bb0a31e8f28ef44937673cdfac28a2c9a35add9 AS libcupsfilters_build
[3/4] STEP 2/2: RUN set -eux; DEBIAN_FRONTEND=noninteractive; export DEBIAN_FRONTEND; apt -y update; apt -y install git autoconf automake autopoint libtool autotools-dev pkg-config gettext g++ sharutils liblcms2-dev libpoppler-cpp-dev libpng-dev libjpeg-dev libtiff5-dev zlib1g-dev libfontconfig1-dev libdbus-1-dev libexif-dev ghostscript fonts-dejavu-core libcups2-dev libqpdf-dev; mkdir -p /root/libcupsfilters-build; cd /root/libcupsfilters-build; git clone https://github.com/OpenPrinting/libcupsfilters --depth 1 -b 2.0.0; cd libcupsfilters; ./autogen.sh; ./configure --prefix=/usr --disable-avahi --disable-mutool; make -j$(nproc); mkdir -p /root/libcupsfilters; make install DESTDIR=/root/libcupsfilters; cd /root; rm -rf /root/libcupsfilters-build /var/lib/apt/lists/* /var/cache/apt/archives/*
--> Using cache b7b942c0e6d5e7046bba9cf6a37ac64eb69df93e7be29cd89bfa7de6c25fbf15
--> b7b942c0e6d
[4/4] STEP 1/3: FROM 61d1779678e34149d0fa66f37bb0a31e8f28ef44937673cdfac28a2c9a35add9 AS libppd_build
[4/4] STEP 2/3: COPY --from=libcupsfilters_build /root/libcupsfilters/. /
--> Using cache 164965bef8f16bd5efb335d4984604b62f6dbc571d862791ef35ef2fa2a320aa
--> 164965bef8f
[4/4] STEP 3/3: RUN set -eux; DEBIAN_FRONTEND=noninteractive; export DEBIAN_FRONTEND; apt -y update; apt -y install git autoconf automake autopoint libtool autotools-dev pkg-config g++ sharutils poppler-utils ghostscript libcups2-dev libqpdf-dev; mkdir -p /root/libppd-build; cd /root/libppd-build; git clone https://github.com/OpenPrinting/libppd --depth 1 -b 2.0.0; cd libppd; ./autogen.sh; ./configure --prefix=/usr --disable-mutool --disable-pdftocairo --disable-acroread --enable-ppdc-utils; make -j$(nproc); make install DESTDIR=/root/libppd; rm -rf /root/libppd-build /var/lib/apt/lists/* /var/cache/apt/archives/*
+ DEBIAN_FRONTEND=noninteractive
+ export DEBIAN_FRONTEND
+ apt -y update
[... snip ...]
+ apt -y install git autoconf automake autopoint libtool autotools-dev pkg-config g++ sharutils poppler-utils ghostscript libcups2-dev libqpdf-dev
[... snip ...]
The following NEW packages will be installed:
autoconf automake autopoint autotools-dev dbus dbus-bin dbus-daemon
dbus-session-bus-common dbus-system-bus-common file fonts-droid-fallback
fonts-noto-mono fonts-urw-base35 ghostscript git git-man libapparmor1
libavahi-client3 libavahi-common-data libavahi-common3 libcairo2 libcbor0.8
libcups2 libcups2-dev libcupsfilters-dev libcupsfilters1 libcupsimage2
libcupsimage2-dev libcurl3-gnutls libdbus-1-3 libdeflate-dev libedit2
liberror-perl libexif12 libfido2-1 libfontenc1 libgs-common libgs10
libgs10-common libice6 libidn12 libijs-0.35 libjbig-dev libjbig2dec0
libjpeg-dev libjpeg62-turbo-dev liblcms2-2 liblerc-dev libltdl-dev libltdl7
liblzma-dev libmagic-mgc libmagic1 libnspr4 libnss3 libopenjp2-7
libpaper-utils libpaper1 libpixman-1-0 libpkgconf3 libpng-dev libpng-tools
libpoppler126 libqpdf-dev libqpdf29 libsm6 libtiff-dev libtiffxx6 libtool
libwebp-dev libwebpdemux2 libwebpmux3 libxcb-render0 libxcb-shm0 libxext6
libxmuu1 libxrender1 libxt6 libzstd-dev m4 openssh-client pkg-config pkgconf
pkgconf-bin poppler-data poppler-utils sharutils ucf x11-common xauth
xfonts-encodings xfonts-utils zlib1g-dev
0 upgraded, 93 newly installed, 0 to remove and 0 not upgraded.
[... snip ...]
+ mkdir -p /root/libppd-build
+ cd /root/libppd-build
+ git clone https://github.com/OpenPrinting/libppd --depth 1 -b 2.0.0
Cloning into 'libppd'...
Note: switching to '62666f01b167bdf5975b08fbab5c2f34d9277db3'.
[... snip ...]
+ cd libppd
+ ./autogen.sh
[... snip ...]
+ ./configure --prefix=/usr --disable-mutool --disable-pdftocairo --disable-acroread --enable-ppdc-utils
[... snip ...]
checking for cups-config... /usr/bin/cups-config
checking for libcupsfilters... yes
[... snip ...]
configure: creating ./config.status
config.status: creating libppd.pc
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing po-directories commands
configure:
==============================================================================
Environment settings:
CFLAGS: -g -O2 -Wall -std=gnu11 -D_GNU_SOURCE
CXXFLAGS: -g -O2 -Wall -D_GNU_SOURCE
LDFLAGS:
Build configuration:
cups-config: system
ghostscript: yes
gs-path: system
gs ps2write: yes
mutool: no
mutool-path:
pdftocairo: no
pdftocairo-path:
acroread: no
acroread-path:
pdftops: HYBRID
Poppler's pdftops: yes
pdftops-path: system
testppdfile: no
ppdc utilities: yes
genstrings: no
werror: no
==============================================================================
+ nproc
+ make -j4
make all-recursive
make[1]: Entering directory '/root/libppd-build/libppd'
make[2]: Entering directory '/root/libppd-build/libppd'
CXX ppd/ppdc.o
CC ppd/libppd_la-ppd-attr.lo
CC ppd/libppd_la-ppd.lo
CC ppd/libppd_la-ppd-cache.lo
In file included from ppd/ppd-cache.c:18:
ppd/ppd.h:102:14: error: redeclaration of 'enum ppd_ui_e'
102 | typedef enum ppd_ui_e // **** UI Types ****
| ^~~~~~~~
In file included from ppd/ppd-attr.c:16:
ppd/ppd.h:102:14: error: redeclaration of 'enum ppd_ui_e'
102 | typedef enum ppd_ui_e // **** UI Types ****
| ^~~~~~~~
In file included from ppd/ppd.c:20:
ppd/ppd.h:102:14: error: redeclaration of 'enum ppd_ui_e'
102 | typedef enum ppd_ui_e // **** UI Types ****
| ^~~~~~~~
In file included from /usr/include/cupsfilters/driver.h:28,
from ppd/ppd.h:27:
/usr/include/cups/ppd.h:73:14: note: originally defined here
73 | typedef enum ppd_ui_e /**** UI Types @deprecated@ ****/
| ^~~~~~~~
ppd/ppd.h:104:3: error: redeclaration of enumerator 'PPD_UI_BOOLEAN'
104 | PPD_UI_BOOLEAN, // True or False option
| ^~~~~~~~~~~~~~
/usr/include/cups/ppd.h:75:3: note: previous definition of 'PPD_UI_BOOLEAN' with type 'enum ppd_ui_e'
75 | PPD_UI_BOOLEAN, /* True or False option */
| ^~~~~~~~~~~~~~
In file included from /usr/include/cupsfilters/driver.h:28,
from ppd/ppd.h:27:
/usr/include/cups/ppd.h:73:14: note: originally defined here
73 | typedef enum ppd_ui_e /**** UI Types @deprecated@ ****/
| ^~~~~~~~
ppd/ppd.h:105:3: error: redeclaration of enumerator 'PPD_UI_PICKONE'
105 | PPD_UI_PICKONE, // Pick one from a list
| ^~~~~~~~~~~~~~
/usr/include/cups/ppd.h:76:3: note: previous definition of 'PPD_UI_PICKONE' with type 'enum ppd_ui_e'
76 | PPD_UI_PICKONE, /* Pick one from a list */
| ^~~~~~~~~~~~~~
ppd/ppd.h:104:3: error: redeclaration of enumerator 'PPD_UI_BOOLEAN'
104 | PPD_UI_BOOLEAN, // True or False option
| ^~~~~~~~~~~~~~
ppd/ppd.h:106:3: error: redeclaration of enumerator 'PPD_UI_PICKMANY'
106 | PPD_UI_PICKMANY // Pick zero or more from a list
| ^~~~~~~~~~~~~~~
/usr/include/cups/ppd.h:77:3: note: previous definition of 'PPD_UI_PICKMANY' with type 'enum ppd_ui_e'
77 | PPD_UI_PICKMANY /* Pick zero or more from a list */
| ^~~~~~~~~~~~~~~
/usr/include/cups/ppd.h:75:3: note: previous definition of 'PPD_UI_BOOLEAN' with type 'enum ppd_ui_e'
75 | PPD_UI_BOOLEAN, /* True or False option */
| ^~~~~~~~~~~~~~
[... and loads more ...]
- Dominant language
- C
- Stars
- 5
- Forks
- 29
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from OpenPrinting/libppd
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
OpenPrinting/libppd#86 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
OpenPrinting/libppd#82 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
OpenPrinting/libppd#81 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
OpenPrinting/libppd#79 · 1 comment ·
-
Difficulty 3/5 1-2 days Newbie friendliness 72/100
OpenPrinting/libppd#85 ·
All issues in OpenPrinting/libppd
Similar issues
-
level/task module/gcp type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
-
Difficulty 1/5 Under an hour Newbie friendliness 86/100
hapostgres/pg_auto_failover#1190 ·
-
docs
Difficulty 1/5 Under an hour Newbie friendliness 85/100
-
P3 sonic-vpp
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
sonic-net/sonic-buildimage#29662 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 94/100
spack/spack-packages#6586 ·