Open Prototyped opened 6 days ago
Ah, apparently the partial installation of cups is essential to build success. Would it make sense to update INSTALL.md in this repo, where it just says the following in passing, to include explicit details in how to partially install cups as a prerequisite?
Dependencies
- libcups of CUPS 2.2.2 or newer
This is what I ended up putting in my Dockerfile as an additional build stage:
FROM base_build AS cups_partial_build
RUN set -eux; \
DEBIAN_FRONTEND=noninteractive; \
export DEBIAN_FRONTEND; \
apt -y build-dep cups; \
apt -y install git autoconf automake autopoint libtool autotools-dev \
pkg-config gettext libavahi-client-dev libavahi-common-dev \
libavahi-compat-libdnssd-dev libdbus-1-dev libfontconfig1-dev \
libfreetype6-dev libgnutls28-dev libjpeg-dev libldap2-dev \
libkrb5-dev libpam0g-dev libpaper-dev libpng-dev libusb-1.0-0-dev \
perl-base curl patch sed; \
mkdir -p /root/cups-build; \
cd /root/cups-build; \
git clone https://github.com/OpenPrinting/cups --depth 1 -b v2.4.10; \
cd cups; \
curl -fLSs https://raw.githubusercontent.com/OpenPrinting/ghostscript-printer-app/f818c779a81ed35457a82917a45e6addaaaaa640/snap/local/cups-dnssd-backend-socket-only.patch | \
patch -p1; \
./configure --prefix=/usr --with-tls=gnutls; \
cd cups; \
make -j$(nproc); \
cd -; \
cd filter; \
make -j$(nproc) rastertoepson rastertohp rastertolabel; \
cd -; \
cd backend; \
sed -i -r 's/"CUPS_DATADIR"/"USB_QUIRK_DIR"/' usb-libusb.c; \
make -j$(nproc) snmp dnssd socket ipp lpd usb; \
cd -; \
mkdir -p /root/cups/usr/lib; \
install -oroot -groot -m0644 cups/libcups*.a cups/libcups*.so* \
/root/cups/usr/lib; \
mkdir -p /root/cups/usr/include/cups; \
install -oroot -groot -m0644 cups/*.h /root/cups/usr/include/cups; \
mkdir -p /root/cups/usr/bin; \
install -oroot -groot -m0755 cups-config /root/cups/usr/bin; \
mkdir -p /root/cups/usr/lib/ghostscript-printer-app/filter; \
install -oroot -groot -m0755 \
filter/rastertoepson \
filter/rastertohp \
filter/rastertolabel \
/root/cups/usr/lib/ghostscript-printer-app/filter; \
mkdir -p /root/cups/usr/lib/ghostscript-printer-app/backend; \
cd backend; \
install -oroot -groot -m0755 snmp dnssd socket ipp ipps lpd usb \
org.cups.usb-quirks \
/root/cups/usr/lib/ghostscript-printer-app/backend; \
cd -; \
install -oroot -groot -m0644 conf/snmp.conf \
/root/cups/usr/lib/ghostscript-printer-app/backend; \
mkdir -p /root/cups/usr/share/ppd; \
install -oroot -groot -m0644 ppdc/sample.drv \
/root/cups/usr/share/ppd/cups.drv
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:
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.