Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2231682/?format=api
{ "id": 2231682, "url": "http://patchwork.ozlabs.org/api/patches/2231682/?format=api", "web_url": "http://patchwork.ozlabs.org/project/buildroot/patch/20260501062316.1942112-10-bernd@kuhls.net/", "project": { "id": 27, "url": "http://patchwork.ozlabs.org/api/projects/27/?format=api", "name": "Buildroot development", "link_name": "buildroot", "list_id": "buildroot.buildroot.org", "list_email": "buildroot@buildroot.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260501062316.1942112-10-bernd@kuhls.net>", "list_archive_url": null, "date": "2026-05-01T06:23:02", "name": "[v3,09/21] package/cups-filters: fix build against qpdf 12", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "35944a5e0b6d76935e7efa1ba0c2733d503aac5b", "submitter": { "id": 86624, "url": "http://patchwork.ozlabs.org/api/people/86624/?format=api", "name": "Bernd Kuhls", "email": "bernd@kuhls.net" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/buildroot/patch/20260501062316.1942112-10-bernd@kuhls.net/mbox/", "series": [ { "id": 502425, "url": "http://patchwork.ozlabs.org/api/series/502425/?format=api", "web_url": "http://patchwork.ozlabs.org/project/buildroot/list/?series=502425", "date": "2026-05-01T06:22:53", "name": "package/gcc: add version 16.1.0", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/502425/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2231682/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2231682/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<buildroot-bounces@buildroot.org>", "X-Original-To": [ "incoming-buildroot@patchwork.ozlabs.org", "buildroot@buildroot.org" ], "Delivered-To": [ "patchwork-incoming-buildroot@legolas.ozlabs.org", "buildroot@buildroot.org" ], "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=buildroot.org header.i=@buildroot.org\n header.a=rsa-sha256 header.s=default header.b=ePJmvd6/;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=buildroot.org\n (client-ip=2605:bc80:3010::138; helo=smtp1.osuosl.org;\n envelope-from=buildroot-bounces@buildroot.org; receiver=patchwork.ozlabs.org)" ], "Received": [ "from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g6Ld14BBPz1y04\n\tfor <incoming-buildroot@patchwork.ozlabs.org>;\n Fri, 01 May 2026 16:25:25 +1000 (AEST)", "from localhost (localhost [127.0.0.1])\n\tby smtp1.osuosl.org (Postfix) with ESMTP id E7758852BA;\n\tFri, 1 May 2026 06:25:23 +0000 (UTC)", "from smtp1.osuosl.org ([127.0.0.1])\n by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id EdAG61Bw87bZ; Fri, 1 May 2026 06:25:22 +0000 (UTC)", "from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp1.osuosl.org (Postfix) with ESMTP id BB0BA8531D;\n\tFri, 1 May 2026 06:25:22 +0000 (UTC)", "from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137])\n by lists1.osuosl.org (Postfix) with ESMTP id 94396204\n for <buildroot@buildroot.org>; Fri, 1 May 2026 06:25:21 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n by smtp4.osuosl.org (Postfix) with ESMTP id 868D341249\n for <buildroot@buildroot.org>; Fri, 1 May 2026 06:25:21 +0000 (UTC)", "from smtp4.osuosl.org ([127.0.0.1])\n by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id bu4DQDtAMEH8 for <buildroot@buildroot.org>;\n Fri, 1 May 2026 06:25:20 +0000 (UTC)", "from dd20012.kasserver.com (dd20012.kasserver.com [85.13.140.57])\n by smtp4.osuosl.org (Postfix) with ESMTPS id 2EC564122B\n for <buildroot@buildroot.org>; Fri, 1 May 2026 06:25:20 +0000 (UTC)", "from fli4l.lan.fli4l (p4fd6c2eb.dip0.t-ipconnect.de\n [79.214.194.235])\n by dd20012.kasserver.com (Postfix) with ESMTPSA id CD036A4C2BD0;\n Fri, 1 May 2026 08:23:27 +0200 (CEST)", "from bruckner.lan.fli4l ([192.168.1.1]:38120)\n by fli4l.lan.fli4l with esmtp (Exim 4.99.2)\n (envelope-from <bernd@kuhls.net>) id 1wIhHS-000000007tD-2DnX;\n Fri, 01 May 2026 06:23:18 +0000" ], "X-Virus-Scanned": [ "amavis at osuosl.org", "amavis at osuosl.org" ], "X-Comment": "SPF check N/A for local connections - client-ip=140.211.166.142;\n helo=lists1.osuosl.org; envelope-from=buildroot-bounces@buildroot.org;\n receiver=<UNKNOWN> ", "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 smtp1.osuosl.org BB0BA8531D", "OpenDKIM Filter v2.11.0 smtp4.osuosl.org 2EC564122B" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=buildroot.org;\n\ts=default; t=1777616722;\n\tbh=UJw4a5s3cCJiQVZstHlO2MTakQLxoz7Qtj5BjtUBgpo=;\n\th=From:To:Date:In-Reply-To:References:Subject:List-Id:\n\t List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:\n\t Cc:From;\n\tb=ePJmvd6/tJ1+p1Op8mlvQMeNxmihyzCYtZHMmW6/I1HlHDeiNiCVxnBjEytV7zSF4\n\t PzhNgqCUShdWGu1dA1BLFvffZdrd518D9bFZc9WuKovm2fO1xUtxrSQkNAVTN0eGYV\n\t X2y7ITLeTjhgwXA4qz3qfoY1Q+GyJmLhZmpyxJjxLhNP+Nyg1yN2IZmIXTTstNaCaM\n\t dhjv/gF5HXHiliR/xJ/Ca3VZjzKFM6rhSQtYHB87qClmBVASh9mOL3NwkPpr/THTXd\n\t qfUTZLbOIlYX1KWI6ainaMoSlm5R0LuEXVk7LUKwEmx6Jt3iz+Uc1D+VK8Gn0l+Pq2\n\t Zf0lFTW+P7UBg==", "Received-SPF": "Pass (mailfrom) identity=mailfrom; client-ip=85.13.140.57;\n helo=dd20012.kasserver.com; envelope-from=bernd@kuhls.net;\n receiver=<UNKNOWN>", "DMARC-Filter": "OpenDMARC Filter v1.4.2 smtp4.osuosl.org 2EC564122B", "From": "Bernd Kuhls <bernd@kuhls.net>", "To": "buildroot@buildroot.org", "Date": "Fri, 1 May 2026 08:23:02 +0200", "Message-ID": "<20260501062316.1942112-10-bernd@kuhls.net>", "X-Mailer": "git-send-email 2.47.3", "In-Reply-To": "<20260501062316.1942112-1-bernd@kuhls.net>", "References": "<20260501062316.1942112-1-bernd@kuhls.net>", "MIME-Version": "1.0", "X-Spamd-Bar": "-", "X-Mailman-Original-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=kuhls.net;\n s=kas202511301023; t=1777616607;\n bh=L3GiGRnZwx3a8F8WfaAVrVhOvAmkC4bALV5pxraCTDE=;\n h=From:To:Cc:Subject:Date:In-Reply-To:From;\n b=gFnHkYVDEuoRuXjraRDE5Ww+iL2fxM0/na9qL1rdDPKoDt23b88PdB51wD02Ol7Vr\n OQwXWRYF9A+YvCGhP3QiwbxnMozAys6DdqJ7rgh774fUspko/PLs6O6Eg9W9RVOWO+\n Xv7RiLX/AvHKjOKInlM9HEA/IFEwTHc4RXjG4hRtCinn5tx274plPCDQG9mHbzMCWk\n FXOZkJ8L9xpY4Ov8I3IhgjYZWtemfq+TNeRWSPpdZaJxsaoYuM3LduIbCEJmFfpRao\n Th/WSOByZRkOrTfXRDDCo5pUBPdWyQkzs2IwMUqQvZ6ZM+DH5JvGBhTDCQubSAq7qx\n pOfXUK167il0Q==", "X-Mailman-Original-Authentication-Results": [ "smtp4.osuosl.org;\n dmarc=pass (p=none dis=none)\n header.from=kuhls.net", "smtp4.osuosl.org;\n dkim=pass (2048-bit key) header.d=kuhls.net header.i=@kuhls.net\n header.a=rsa-sha256 header.s=kas202511301023 header.b=gFnHkYVD" ], "Subject": "[Buildroot] [PATCH v3 09/21] package/cups-filters: fix build\n against qpdf 12", "X-BeenThere": "buildroot@buildroot.org", "X-Mailman-Version": "2.1.30", "Precedence": "list", "List-Id": "Discussion and development of buildroot <buildroot.buildroot.org>", "List-Unsubscribe": "<https://lists.buildroot.org/mailman/options/buildroot>,\n <mailto:buildroot-request@buildroot.org?subject=unsubscribe>", "List-Archive": "<http://lists.buildroot.org/pipermail/buildroot/>", "List-Post": "<mailto:buildroot@buildroot.org>", "List-Help": "<mailto:buildroot-request@buildroot.org?subject=help>", "List-Subscribe": "<https://lists.buildroot.org/mailman/listinfo/buildroot>,\n <mailto:buildroot-request@buildroot.org?subject=subscribe>", "Cc": "Zoltan Gyarmati <mr.zoltan.gyarmati@gmail.com>,\n Tudor Holton <buildroot@tudorholton.com>,\n Fabrice Fontaine <fontaine.fabrice@gmail.com>,\n Angelo Compagnucci <angelo.compagnucci@gmail.com>,\n Olivier Schonken <olivier.schonken@gmail.com>,\n Thomas Petazzoni <thomas.petazzoni@bootlin.com>,\n Romain Naour <romain.naour@gmail.com>,\n Giulio Benetti <giulio.benetti@benettiengineering.com>", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "Errors-To": "buildroot-bounces@buildroot.org", "Sender": "\"buildroot\" <buildroot-bounces@buildroot.org>" }, "content": "This patch adds fixes for cups-filters so it can be build with newer\nversions of qpdf that made changes to PointerHolder:\nhttps://github.com/qpdf/qpdf/blob/v12.3.2/manual/design.rst#smart-pointers\n\nBuild-tested using this defconfig:\n\nBR2_PACKAGE_CUPS=y\nBR2_PACKAGE_CUPS_FILTERS=y\n\n arm-aarch64 [ 1/32]: OK\n bootlin-aarch64-glibc [ 2/32]: OK\n bootlin-aarch64-glibc-old [ 3/32]: SKIPPED\n bootlin-arcle-hs38-uclibc [ 4/32]: OK\n bootlin-armv5-uclibc [ 5/32]: OK\n bootlin-armv7-glibc [ 6/32]: OK\n bootlin-armv7m-uclibc [ 7/32]: SKIPPED\n bootlin-armv7-musl [ 8/32]: OK\n bootlin-m68k-5208-uclibc [ 9/32]: SKIPPED\n bootlin-m68k-68040-uclibc [10/32]: OK\n bootlin-microblazeel-uclibc [11/32]: OK\n bootlin-mips64el-glibc [12/32]: OK\n bootlin-mipsel32r6-glibc [13/32]: OK\n bootlin-mipsel-uclibc [14/32]: OK\n bootlin-openrisc-uclibc [15/32]: OK\n bootlin-powerpc64le-power8-glibc [16/32]: OK\n bootlin-powerpc-e500mc-uclibc [17/32]: OK\n bootlin-riscv32-glibc [18/32]: OK\n bootlin-riscv64-glibc [19/32]: OK\n bootlin-riscv64-musl [20/32]: OK\n bootlin-s390x-z13-glibc [21/32]: OK\n bootlin-sh4-uclibc [22/32]: OK\n bootlin-sparc64-glibc [23/32]: OK\n bootlin-sparc-uclibc [24/32]: OK\n bootlin-x86-64-glibc [25/32]: OK\n bootlin-x86-64-musl [26/32]: OK\n bootlin-x86-64-uclibc [27/32]: OK\n bootlin-x86-i686-musl [28/32]: OK\n bootlin-xtensa-uclibc [29/32]: OK\n br-arm-basic [30/32]: SKIPPED\n br-arm-full-nothread [31/32]: SKIPPED\n br-arm-full-static [32/32]: SKIPPED\n\n32 builds, 6 skipped, 0 build failed, 0 legal-info failed, 0 show-info failed\n\nThis solution avoids[1] a version bump of this package while keeping\ncompatibility with the newest version of qpdf. The bump of qpdf is\nneeded to fix build errors with gcc 16.x.\n\n[1] https://lists.buildroot.org/pipermail/buildroot/2025-August/784931.html\nThomas: \"which means duplicating all the crazy dependencies of\nlibcupsfilters yes :/\"\n\nSigned-off-by: Bernd Kuhls <bernd@kuhls.net>\n---\n ...ilters-Fixed-building-with-QPDF-11.x.patch | 57 ++++++\n ...ated-code-to-be-built-with-QPDF-12.x.patch | 165 ++++++++++++++++++\n package/cups-filters/cups-filters.mk | 4 +\n 3 files changed, 226 insertions(+)\n create mode 100644 package/cups-filters/0003-libcupsfilters-Fixed-building-with-QPDF-11.x.patch\n create mode 100644 package/cups-filters/0004-Updated-code-to-be-built-with-QPDF-12.x.patch", "diff": "diff --git a/package/cups-filters/0003-libcupsfilters-Fixed-building-with-QPDF-11.x.patch b/package/cups-filters/0003-libcupsfilters-Fixed-building-with-QPDF-11.x.patch\nnew file mode 100644\nindex 0000000000..f4dc04d3cf\n--- /dev/null\n+++ b/package/cups-filters/0003-libcupsfilters-Fixed-building-with-QPDF-11.x.patch\n@@ -0,0 +1,57 @@\n+From 0cce0968980e8fdd9053cba436a66246b2303a84 Mon Sep 17 00:00:00 2001\n+From: Till Kamppeter <till.kamppeter@gmail.com>\n+Date: Wed, 6 Dec 2023 22:56:41 +0100\n+Subject: [PATCH] libcupsfilters: Fixed building with QPDF 11.x\n+MIME-Version: 1.0\n+Content-Type: text/plain; charset=UTF-8\n+Content-Transfer-Encoding: 8bit\n+\n+Set CXXFLAGS=\"-DPOINTERHOLDER_TRANSITION=0\" to silence QPDF warnings\n+\n+QPDF 11 issues warnings about deprecated \"PointerHolder\", even if the\n+code does not use \"PointerHolder\" any more. This compiler macro\n+suppresses the warnings.\n+\n+See /usr/include/qpdf/PointerHolder.hh of QPDF 11.\n+\n+Backported from libcupsfilters (2.x), commit 076a994fce\n+\n+Added \"-std=c++17\" C++ compiler flag (PR#18)\n+\n+Needed as otherwise the QPDF.hh file of QPDF 11 causes the error\n+\n+ ‘std::string_view’ has not been declared\n+\n+Adding the \"-std=c++17\" to CXXFLAGS fixes this. See also\n+\n+ https://stackoverflow.com/questions/58295334/error-stdstring-view-has-no\n+t-been-declared\n+\n+Backported from libcupsfilters (2.x), commit e1daf27c59\n+\n+Upstream: https://github.com/OpenPrinting/cups-filters/commit/0cce0968980e8fdd9053cba436a66246b2303a84\n+\n+Signed-off-by: Bernd Kuhls <bernd@kuhls.net>\n+---\n+ configure.ac | 5 ++++-\n+ 1 file changed, 4 insertions(+), 1 deletion(-)\n+\n+diff --git a/configure.ac b/configure.ac\n+index 083aecb83..f293e803b 100644\n+--- a/configure.ac\n++++ b/configure.ac\n+@@ -837,7 +837,10 @@ AS_IF([test x\"$GCC\" = \"xyes\"], [\n+ \tCXXFLAGS=\"$CXXFLAGS -Wall \" # -Weffc++\" # TODO: enable when it does not print 1MB of warnings\n+ ])\n+ CFLAGS=\"$CFLAGS -D_GNU_SOURCE\"\n+-CXXFLAGS=\"$CXXFLAGS -D_GNU_SOURCE\"\n++CXXFLAGS=\"$CXXFLAGS -D_GNU_SOURCE -DPOINTERHOLDER_TRANSITION=0\"\n++# ^^ Silence deprecation warnings of QPDF 11\n++# See /usr/include/qpdf/PointerHolder.hh\n++CXXFLAGS=\"$CXXFLAGS -std=c++17\" # Needed to build with current QPDF (11.x)\n+ \n+ # ==========================\n+ # Braille embossing/liblouis\n+-- \n+2.47.3\n+\ndiff --git a/package/cups-filters/0004-Updated-code-to-be-built-with-QPDF-12.x.patch b/package/cups-filters/0004-Updated-code-to-be-built-with-QPDF-12.x.patch\nnew file mode 100644\nindex 0000000000..8996a6afce\n--- /dev/null\n+++ b/package/cups-filters/0004-Updated-code-to-be-built-with-QPDF-12.x.patch\n@@ -0,0 +1,165 @@\n+From 7b6e46ea6237763104bf2a22eca66ba92a6b71a4 Mon Sep 17 00:00:00 2001\n+From: Till Kamppeter <till.kamppeter@gmail.com>\n+Date: Wed, 12 Nov 2025 16:10:51 +0100\n+Subject: [PATCH] Updated code to be built with QPDF 12.x\n+\n+- Set `#define POINTERHOLDER_TRANSITION 3`\n+- Explicitly `#include <qpdf/PointerHolder.hh>`\n+- `ph = (PointerHolder<Buffer>) new Buffer(buff, profile_size);` in `rastertopdf.cpp`\n+- Removed `-DPOINTERHOLDER_TRANSITION=0` from `CXXFLAGS` in `configure.ac`\n+- Replaced all `replaceOrRemoveKey()` by `replaceKey()`\n+\n+Upstream: https://github.com/OpenPrinting/cups-filters/commit/7b6e46ea6237763104bf2a22eca66ba92a6b71a4\n+\n+Signed-off-by: Bernd Kuhls <bernd@kuhls.net>\n+---\n+ configure.ac | 3 ---\n+ filter/pdf.cxx | 2 ++\n+ filter/pdftopdf/qpdf_pdftopdf_processor.cc | 18 +++++++++---------\n+ filter/pdftopdf/qpdf_xobject.cc | 2 ++\n+ filter/rastertopdf.cpp | 4 +++-\n+ filter/urftopdf.cpp | 2 ++\n+ 6 files changed, 18 insertions(+), 13 deletions(-)\n+\n+diff --git a/configure.ac b/configure.ac\n+index 32180d0da..702b58a0a 100644\n+--- a/configure.ac\n++++ b/configure.ac\n+@@ -793,9 +793,6 @@ AS_IF([test x\"$GCC\" = \"xyes\"], [\n+ \tCXXFLAGS=\"$CXXFLAGS -Wall \" # -Weffc++\" # TODO: enable when it does not print 1MB of warnings\n+ ])\n+ CFLAGS=\"$CFLAGS -D_GNU_SOURCE\"\n+-CXXFLAGS=\"$CXXFLAGS -D_GNU_SOURCE -DPOINTERHOLDER_TRANSITION=0\"\n+-# ^^ Silence deprecation warnings of QPDF 11\n+-# See /usr/include/qpdf/PointerHolder.hh\n+ CXXFLAGS=\"$CXXFLAGS -std=c++17\" # Needed to build with current QPDF (11.x)\n+ \n+ # ==========================\n+diff --git a/filter/pdf.cxx b/filter/pdf.cxx\n+index 68b1af912..7d592dc95 100644\n+--- a/filter/pdf.cxx\n++++ b/filter/pdf.cxx\n+@@ -21,6 +21,8 @@\n+ #include <vector>\n+ #include <string>\n+ #include <cstring>\n++#define POINTERHOLDER_TRANSITION 3\n++#include <qpdf/PointerHolder.hh>\n+ #include <qpdf/QPDF.hh>\n+ #include <qpdf/QPDFObjectHandle.hh>\n+ #include <qpdf/QPDFWriter.hh>\n+diff --git a/filter/pdftopdf/qpdf_pdftopdf_processor.cc b/filter/pdftopdf/qpdf_pdftopdf_processor.cc\n+index beffc2423..3c21a6512 100644\n+--- a/filter/pdftopdf/qpdf_pdftopdf_processor.cc\n++++ b/filter/pdftopdf/qpdf_pdftopdf_processor.cc\n+@@ -83,10 +83,10 @@ QPDFObjectHandle QPDF_PDFTOPDF_PageHandle::get() // {{{\n+ page.getKey(\"/Resources\").replaceKey(\"/XObject\",QPDFObjectHandle::newDictionary(xobjs));\n+ content.append(\"Q\\n\");\n+ page.getKey(\"/Contents\").replaceStreamData(content,QPDFObjectHandle::newNull(),QPDFObjectHandle::newNull());\n+- page.replaceOrRemoveKey(\"/Rotate\",makeRotate(rotation));\n++ page.replaceKey(\"/Rotate\",makeRotate(rotation));\n+ } else {\n+ Rotation rot=getRotate(page)+rotation;\n+- page.replaceOrRemoveKey(\"/Rotate\",makeRotate(rot));\n++ page.replaceKey(\"/Rotate\",makeRotate(rot));\n+ }\n+ page=QPDFObjectHandle(); // i.e. uninitialized\n+ return ret;\n+@@ -181,9 +181,9 @@ Rotation QPDF_PDFTOPDF_PageHandle::crop(const PageRect &cropRect,Rotation orient\n+ page.assertInitialized();\n+ Rotation save_rotate = getRotate(page);\n+ if(orientation==ROT_0||orientation==ROT_180)\n+- page.replaceOrRemoveKey(\"/Rotate\",makeRotate(ROT_90));\n++ page.replaceKey(\"/Rotate\",makeRotate(ROT_90));\n+ else\n+- page.replaceOrRemoveKey(\"/Rotate\",makeRotate(ROT_0));\n++ page.replaceKey(\"/Rotate\",makeRotate(ROT_0));\n+ \n+ PageRect currpage= getBoxAsRect(getTrimBox(page));\n+ double width = currpage.right-currpage.left;\n+@@ -242,7 +242,7 @@ Rotation QPDF_PDFTOPDF_PageHandle::crop(const PageRect &cropRect,Rotation orient\n+ //Cropping.\n+ // TODO: Borders are covered by the image. buffer space?\n+ page.replaceKey(\"/TrimBox\",makeBox(currpage.left,currpage.bottom,currpage.right,currpage.top));\n+- page.replaceOrRemoveKey(\"/Rotate\",makeRotate(save_rotate));\n++ page.replaceKey(\"/Rotate\",makeRotate(save_rotate));\n+ return getRotate(page);\n+ }\n+ \n+@@ -251,14 +251,14 @@ bool QPDF_PDFTOPDF_PageHandle::is_landscape(Rotation orientation)\n+ page.assertInitialized();\n+ Rotation save_rotate = getRotate(page);\n+ if(orientation==ROT_0||orientation==ROT_180)\n+- page.replaceOrRemoveKey(\"/Rotate\",makeRotate(ROT_90));\n++ page.replaceKey(\"/Rotate\",makeRotate(ROT_90));\n+ else\n+- page.replaceOrRemoveKey(\"/Rotate\",makeRotate(ROT_0));\n++ page.replaceKey(\"/Rotate\",makeRotate(ROT_0));\n+ \n+ PageRect currpage= getBoxAsRect(getTrimBox(page));\n+ double width = currpage.right-currpage.left;\n+ double height = currpage.top-currpage.bottom;\n+- page.replaceOrRemoveKey(\"/Rotate\",makeRotate(save_rotate));\n++ page.replaceKey(\"/Rotate\",makeRotate(save_rotate));\n+ if(width>height)\n+ return true;\n+ return false;\n+@@ -665,7 +665,7 @@ void QPDF_PDFTOPDF_Processor::autoRotateAll(bool dst_lscape,Rotation normal_land\n+ // TODO? other rotation direction, e.g. if (src_rot==ROT_0)&&(param.orientation==ROT_270) ... etc.\n+ // rotation=ROT_270;\n+ \n+- page.replaceOrRemoveKey(\"/Rotate\",makeRotate(src_rot+rotation));\n++ page.replaceKey(\"/Rotate\",makeRotate(src_rot+rotation));\n+ }\n+ }\n+ }\n+diff --git a/filter/pdftopdf/qpdf_xobject.cc b/filter/pdftopdf/qpdf_xobject.cc\n+index 12732f1e9..2550bdd4f 100644\n+--- a/filter/pdftopdf/qpdf_xobject.cc\n++++ b/filter/pdftopdf/qpdf_xobject.cc\n+@@ -1,5 +1,7 @@\n+ #include \"qpdf_xobject.h\"\n+ //#include <qpdf/Types.h>\n++#define POINTERHOLDER_TRANSITION 3\n++#include <qpdf/PointerHolder.hh>\n+ #include <qpdf/QPDF.hh>\n+ #include <qpdf/Pl_Discard.hh>\n+ #include <qpdf/Pl_Count.hh>\n+diff --git a/filter/rastertopdf.cpp b/filter/rastertopdf.cpp\n+index ad5dd34c5..6a1aa218f 100644\n+--- a/filter/rastertopdf.cpp\n++++ b/filter/rastertopdf.cpp\n+@@ -39,6 +39,8 @@\n+ #include <arpa/inet.h> // ntohl\n+ \n+ #include <vector>\n++#define POINTERHOLDER_TRANSITION 3\n++#include <qpdf/PointerHolder.hh>\n+ #include <qpdf/QPDF.hh>\n+ #include <qpdf/QPDFWriter.hh>\n+ #include <qpdf/QUtil.hh>\n+@@ -481,7 +483,7 @@ QPDFObjectHandle embedIccProfile(QPDF &pdf)\n+ cmsSaveProfileToMem(colorProfile, buff, &profile_size);\n+ \n+ // Write ICC profile buffer into PDF\n+- ph = new Buffer(buff, profile_size); \n++ ph = (PointerHolder<Buffer>) new Buffer(buff, profile_size);\n+ iccstream = QPDFObjectHandle::newStream(&pdf, ph);\n+ iccstream.replaceDict(QPDFObjectHandle::newDictionary(streamdict));\n+ \n+diff --git a/filter/urftopdf.cpp b/filter/urftopdf.cpp\n+index 4e7f6535a..e5c9f1f33 100644\n+--- a/filter/urftopdf.cpp\n++++ b/filter/urftopdf.cpp\n+@@ -32,6 +32,8 @@\n+ #include <arpa/inet.h> // ntohl\n+ \n+ #include <vector>\n++#define POINTERHOLDER_TRANSITION 3\n++#include <qpdf/PointerHolder.hh>\n+ #include <qpdf/QPDF.hh>\n+ #include <qpdf/QPDFWriter.hh>\n+ #include <qpdf/QUtil.hh>\n+-- \n+2.47.3\n+\ndiff --git a/package/cups-filters/cups-filters.mk b/package/cups-filters/cups-filters.mk\nindex 6bc4610376..eaad301c6d 100644\n--- a/package/cups-filters/cups-filters.mk\n+++ b/package/cups-filters/cups-filters.mk\n@@ -10,6 +10,10 @@ CUPS_FILTERS_LICENSE = GPL-2.0, GPL-2.0+, GPL-3.0, GPL-3.0+, LGPL-2, LGPL-2.1+,\n CUPS_FILTERS_LICENSE_FILES = COPYING\n CUPS_FILTERS_CPE_ID_VENDOR = linuxfoundation\n \n+# 0003-libcupsfilters-Fixed-building-with-QPDF-11.x.patch\n+# 0004-Updated-code-to-be-built-with-QPDF-12.x.patch\n+CUPS_FILTERS_AUTORECONF = YES\n+\n # 0001-beh-backend-Use-execv-instead-of-system-CVE-2023-24805.patch\n CUPS_FILTERS_IGNORE_CVES += CVE-2023-24805\n \n", "prefixes": [ "v3", "09/21" ] }