From patchwork Mon Jul 25 16:02:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tremer X-Patchwork-Id: 5761 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384 client-signature ECDSA (P-384) client-digest SHA384) (Client CN "mail01.haj.ipfire.org", Issuer "R3" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4Ls4Yd2RZ6z3wvM for ; Mon, 25 Jul 2022 16:02:13 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail02.haj.ipfire.org", Issuer "R3" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4Ls4Yb0S9tzZN; Mon, 25 Jul 2022 16:02:11 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4Ls4YZ63zYz2y4r; Mon, 25 Jul 2022 16:02:10 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384 client-signature ECDSA (P-384) client-digest SHA384) (Client CN "mail01.haj.ipfire.org", Issuer "R3" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4Ls4YX74RMz2xPC for ; Mon, 25 Jul 2022 16:02:08 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by mail01.ipfire.org (Postfix) with ESMTPSA id 4Ls4YX1NbQzZN; Mon, 25 Jul 2022 16:02:08 +0000 (UTC) DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003ed25519; t=1658764928; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=0tDmp2T8czL+0ju0rSiQrVXTJHF4SRCn1OoQL+UVIjw=; b=f6t7BMu4JNFv88C9FsjG+n2f3zC62WcEmF0BLeypwfs0Vh984H1aDfQ6lYCtDpF3R9N1x7 A4IZUXz25YqW/0Ag== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003rsa; t=1658764928; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=0tDmp2T8czL+0ju0rSiQrVXTJHF4SRCn1OoQL+UVIjw=; b=PwWlVHAB0+4mHAnN4HQiRC+JNNUTCu31Tj8ppECNPQGfh8E+dyeJCAeulnX5hP9GWGeZtt FmYFg2soxsyDYebLC9fY+gsWTtVT0U+ZGe3fcpmG58SU1mbRN/OKWenu0EAfL81k1Dur10 9mhTA127sKzQYz5R10tjFHQdNK2kz58LJiTL1Ur1FICiIpNBn7Qt77UGY8sZdejRLHaGf2 Z82HmGcyq7WQxUEs3q1bTM5w1igOY91lrgAdw/Js5EyGq79IJXfFRpvc07BbCWmQQLxEAW juFjMThDBJ1T2eAEqP0TmS8NPDhpsr5UAIIqoIe31C1HTyvDClrK/W6RmkX19Q== From: Michael Tremer To: development@lists.ipfire.org Subject: [PATCH 1/2] cups-pdf: New package Date: Mon, 25 Jul 2022 16:02:03 +0000 Message-Id: <20220725160204.3885100-1-michael.tremer@ipfire.org> MIME-Version: 1.0 X-BeenThere: development@lists.ipfire.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: IPFire development talk List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Michael Tremer Errors-To: development-bounces@lists.ipfire.org Sender: "Development" This package provides a CUPS backend to print into PDF files. Signed-off-by: Michael Tremer --- config/rootfiles/packages/cups-pdf | 5 ++ lfs/cups-pdf | 106 +++++++++++++++++++++++++ make.sh | 1 + src/patches/cups-pdf-setpdfwrite.patch | 27 +++++++ 4 files changed, 139 insertions(+) create mode 100644 config/rootfiles/packages/cups-pdf create mode 100644 lfs/cups-pdf create mode 100644 src/patches/cups-pdf-setpdfwrite.patch diff --git a/config/rootfiles/packages/cups-pdf b/config/rootfiles/packages/cups-pdf new file mode 100644 index 000000000..70324cad1 --- /dev/null +++ b/config/rootfiles/packages/cups-pdf @@ -0,0 +1,5 @@ +usr/lib/cups/backend/cups-pdf +#usr/share/ppd/cups-pdf +usr/share/ppd/cups-pdf/CUPS-PDF_noopt.ppd +usr/share/ppd/cups-pdf/CUPS-PDF_opt.ppd +var/ipfire/cups/cups-pdf.conf diff --git a/lfs/cups-pdf b/lfs/cups-pdf new file mode 100644 index 000000000..efa40e87b --- /dev/null +++ b/lfs/cups-pdf @@ -0,0 +1,106 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2020 IPFire Team # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +SUMMARY = OpenPrinting CUPS filters, backends, and cups-browsed + +VER = 3.0.1 + +THISAPP = cups-pdf-$(VER) +DL_FILE = cups-pdf_$(VER).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = cups-pdf +PAK_VER = 1 + +DEPS = cups + +SERVICES = + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_BLAKE2 = f964358c5e465447e703848a697f6c801624a1836e2a0a4026c507c66048cf4bef92327508598ec7e9a356d4f57894a6b610e55b7a9a34e942cf2b88c6c55b85 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +b2 : $(subst %,%_BLAKE2,$(objects)) + +dist: + $(PAK) + +############################################################################### +# Downloading, checking, b2sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_BLAKE2,$(objects)) : + @$(B2SUM) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/cups-pdf-setpdfwrite.patch + + # Compile backend + cd $(DIR_APP)/src && gcc $(CFLAGS) cups-pdf.c -o cups-pdf -lcups + + # Install backend + cd $(DIR_APP)/src && install -v -m 700 \ + cups-pdf /usr/lib/cups/backend/cups-pdf + + # Install PPD files + -mkdir -pv /usr/share/ppd/cups-pdf + cd $(DIR_APP)/extra && install -v -m 644 \ + CUPS-PDF_noopt.ppd \ + CUPS-PDF_opt.ppd \ + /usr/share/ppd/cups-pdf + + # Install configuration + -mkdir -pv /var/ipfire/cups + cd $(DIR_APP)/extra && install -v -m 644 \ + cups-pdf.conf /var/ipfire/cups/cups-pdf.conf + + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/make.sh b/make.sh index da3f7f467..7fb63b913 100755 --- a/make.sh +++ b/make.sh @@ -1465,6 +1465,7 @@ buildipfire() { lfsmake2 poppler-data lfsmake2 cups-filters lfsmake2 epson-inkjet-printer-escpr + lfsmake2 cups-pdf lfsmake2 foomatic lfsmake2 hplip lfsmake2 cifs-utils diff --git a/src/patches/cups-pdf-setpdfwrite.patch b/src/patches/cups-pdf-setpdfwrite.patch new file mode 100644 index 000000000..58d71c02f --- /dev/null +++ b/src/patches/cups-pdf-setpdfwrite.patch @@ -0,0 +1,27 @@ +diff -ur extra/cups-pdf.conf extra/cups-pdf.conf +--- extra/cups-pdf.conf 2021-06-03 08:50:00.109555813 -0400 ++++ extra/cups-pdf.conf 2021-06-03 08:51:27.530198340 -0400 +@@ -250,9 +250,9 @@ + ### Key: GSCall (config) + ## command line for calling GhostScript (!!! DO NOT USE NEWLINES !!!) + ## MacOSX: for using pstopdf set this to %s %s -o %s %s +-### Default: %s -q -dCompatibilityLevel=%s -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile="%s" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c .setpdfwrite -f %s ++### Default: %s -q -dCompatibilityLevel=%s -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile="%s" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c 30000000 setvmthreshold -f %s + +-#GSCall %s -q -dCompatibilityLevel=%s -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile="%s" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c .setpdfwrite -f %s ++#GSCall %s -q -dCompatibilityLevel=%s -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile="%s" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c 30000000 setvmthreshold -f %s + + ### Key: PDFVer (config, ppd, lptopions) + ## PDF version to be created - can be "1.5", "1.4", "1.3" or "1.2" +diff -ur src/cups-pdf.h src/cups-pdf.h +--- src/cups-pdf.h 2021-06-03 08:50:00.109555813 -0400 ++++ src/cups-pdf.h 2021-06-03 08:51:44.833325511 -0400 +@@ -58,7 +58,7 @@ + { "AnonDirName", SEC_CONF|SEC_PPD, { "/var/spool/cups-pdf/ANONYMOUS" } }, + { "AnonUser", SEC_CONF|SEC_PPD, { "nobody" } }, + { "GhostScript", SEC_CONF|SEC_PPD, { "/usr/bin/gs" } }, +- { "GSCall", SEC_CONF|SEC_PPD, { "%s -q -dCompatibilityLevel=%s -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile=\"%s\" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c .setpdfwrite -f %s" } }, ++ { "GSCall", SEC_CONF|SEC_PPD, { "%s -q -dCompatibilityLevel=%s -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile=\"%s\" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c 30000000 setvmthreshold -f %s" } }, + { "Grp", SEC_CONF|SEC_PPD, { "lp" } }, + { "GSTmp", SEC_CONF|SEC_PPD, { "TMPDIR=/var/tmp" } }, + { "Log", SEC_CONF|SEC_PPD, { "/var/log/cups" } }, From patchwork Mon Jul 25 16:02:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tremer X-Patchwork-Id: 5762 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "R3" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4Ls4Yg09s2z3wvM for ; Mon, 25 Jul 2022 16:02:15 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail02.haj.ipfire.org", Issuer "R3" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4Ls4Yc2l34z3H1; Mon, 25 Jul 2022 16:02:12 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4Ls4YZ6mfMz303X; Mon, 25 Jul 2022 16:02:10 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "R3" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4Ls4YY0Z8qz2xxK for ; Mon, 25 Jul 2022 16:02:09 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by mail01.ipfire.org (Postfix) with ESMTPSA id 4Ls4YX6WtGz1Dy; Mon, 25 Jul 2022 16:02:08 +0000 (UTC) DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003ed25519; t=1658764928; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cxI31ac4SvPWi/gvHrvKBE0mTWMt5dr4mtClwa0aV/c=; b=IHFqWm6ywJ59dwf24U/0JgYmojijzqQQlIrzgpOeMgftAPRW3WXwkoiC8a0+F0k12+ry6V 2HMGh2fmeP7BMCBg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003rsa; t=1658764928; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cxI31ac4SvPWi/gvHrvKBE0mTWMt5dr4mtClwa0aV/c=; b=SrvvGoG1YmfFlxR+TQUfDegPw3q/k+BaatSfg4pmW54Sf3vFCe5I9jUvMzjeXtu5vy8fat DnlMHowCFPIMFHDffSSb+FblxTBq5SKTs584eQCHxfOyspm6Asq9uD95m5PeZesJ5+qkgP xNGg9JrlyMspNzB/ZGrqZqNQXZUBCuiWJd6vzu/iFiQmS2UhN0iuscVKEQLVgpWKDkFu10 9TuTZupgBTOqMBgQft9ggokrKu4merCmHqwo/ksEphQj6hkhhYYU9wVLWz5idEtjX/S8tD RngQyZl3TZCyL2dob6DNWX4ptC4nnLwZ6KWk61My8el3Esb9qzh0P/skLSRTTw== From: Michael Tremer To: development@lists.ipfire.org Subject: [PATCH 2/2] cups: Add link at /etc/cups pointing to configuration Date: Mon, 25 Jul 2022 16:02:04 +0000 Message-Id: <20220725160204.3885100-2-michael.tremer@ipfire.org> In-Reply-To: <20220725160204.3885100-1-michael.tremer@ipfire.org> References: <20220725160204.3885100-1-michael.tremer@ipfire.org> MIME-Version: 1.0 X-BeenThere: development@lists.ipfire.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: IPFire development talk List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Michael Tremer Errors-To: development-bounces@lists.ipfire.org Sender: "Development" This is needed because cups-pdf is looking for its configuration file in /etc/cups. Signed-off-by: Michael Tremer --- config/rootfiles/packages/cups | 1 + lfs/cups | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/config/rootfiles/packages/cups b/config/rootfiles/packages/cups index 18987be0e..65ad4f418 100644 --- a/config/rootfiles/packages/cups +++ b/config/rootfiles/packages/cups @@ -1,3 +1,4 @@ +etc/cups etc/dbus-1/system.d/cups.conf etc/pam.d/cups etc/rc.d/init.d/cups diff --git a/lfs/cups b/lfs/cups index d333532e3..312f165d8 100644 --- a/lfs/cups +++ b/lfs/cups @@ -33,7 +33,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/cups-$(VER) TARGET = $(DIR_INFO)/$(THISAPP) PROG = cups -PAK_VER = 27 +PAK_VER = 28 DEPS = avahi cups-filters dbus ghostscript @@ -104,5 +104,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) $(call INSTALL_INITSCRIPTS,$(SERVICES)) cp -fv $(DIR_SRC)/config/cups/cupsd.conf /var/ipfire/cups/ + # Install convenience link + ln -svf /var/ipfire/cups /etc/cups + @rm -rf $(DIR_APP) @$(POSTBUILD)