get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.2/patches/2231920/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2231920,
    "url": "http://patchwork.ozlabs.org/api/1.2/patches/2231920/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/buildroot/patch/20260501152758.2610763-10-bernd@kuhls.net/",
    "project": {
        "id": 27,
        "url": "http://patchwork.ozlabs.org/api/1.2/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": "<20260501152758.2610763-10-bernd@kuhls.net>",
    "list_archive_url": null,
    "date": "2026-05-01T15:27:45",
    "name": "[v4,09/21] package/cups-filters: fix build against qpdf 12",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "35944a5e0b6d76935e7efa1ba0c2733d503aac5b",
    "submitter": {
        "id": 86624,
        "url": "http://patchwork.ozlabs.org/api/1.2/people/86624/?format=api",
        "name": "Bernd Kuhls",
        "email": "bernd@kuhls.net"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/buildroot/patch/20260501152758.2610763-10-bernd@kuhls.net/mbox/",
    "series": [
        {
            "id": 502474,
            "url": "http://patchwork.ozlabs.org/api/1.2/series/502474/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/buildroot/list/?series=502474",
            "date": "2026-05-01T15:27:39",
            "name": "package/gcc: add version 16.1.0",
            "version": 4,
            "mbox": "http://patchwork.ozlabs.org/series/502474/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2231920/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2231920/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=RpKjFqOQ;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=buildroot.org\n (client-ip=140.211.166.137; helo=smtp4.osuosl.org;\n envelope-from=buildroot-bounces@buildroot.org; receiver=patchwork.ozlabs.org)"
        ],
        "Received": [
            "from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137])\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 4g6Zjp6Pc8z1xqf\n\tfor <incoming-buildroot@patchwork.ozlabs.org>;\n Sat, 02 May 2026 01:30:22 +1000 (AEST)",
            "from localhost (localhost [127.0.0.1])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id 11B02409CB;\n\tFri,  1 May 2026 15:30: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 LYlgVXx1zMjA; Fri,  1 May 2026 15:30:20 +0000 (UTC)",
            "from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id DDBEA40F91;\n\tFri,  1 May 2026 15:30:19 +0000 (UTC)",
            "from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137])\n by lists1.osuosl.org (Postfix) with ESMTP id 19D2F293\n for <buildroot@buildroot.org>; Fri,  1 May 2026 15:30:19 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n by smtp4.osuosl.org (Postfix) with ESMTP id F418040ECF\n for <buildroot@buildroot.org>; Fri,  1 May 2026 15:30:18 +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 9jf45JtnxJfT for <buildroot@buildroot.org>;\n Fri,  1 May 2026 15:30:18 +0000 (UTC)",
            "from dd20012.kasserver.com (dd20012.kasserver.com [85.13.140.57])\n by smtp4.osuosl.org (Postfix) with ESMTPS id 9DD15409CB\n for <buildroot@buildroot.org>; Fri,  1 May 2026 15:30:17 +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 EE845A4C0249;\n Fri,  1 May 2026 17:28:02 +0200 (CEST)",
            "from bruckner.lan.fli4l ([192.168.1.1]:42324)\n by fli4l.lan.fli4l with esmtp (Exim 4.99.2)\n (envelope-from <bernd@kuhls.net>) id 1wIpma-00000000172-2ebs;\n Fri, 01 May 2026 15:28:00 +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 smtp4.osuosl.org DDBEA40F91",
            "OpenDKIM Filter v2.11.0 smtp4.osuosl.org 9DD15409CB"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=buildroot.org;\n\ts=default; t=1777649419;\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=RpKjFqOQjwBrPD9qkEwaBzei+VpNdY36ej+7Fd3u/sLPIeMl1hSjDC9VtZQwAD/9O\n\t gxYNcTs8xYGeUc7r5j7OvaEv6VlOPvVW2fZVwgwyiE5mid+ooC1JwSZlYm5kZCewUu\n\t 8iqT7T05PMMhQGkK0BVJKhrMZzeTUOebrLWFKTiohBg+cvuBRih0Ha5Fs1RZD9vzqW\n\t +6BNsRrm388fa+vg/t1t6zdrXyz4nwsTl54gfwV2OqR0NxjqIMAdXUueH0p9h5Agxb\n\t LI6Xy5A8kO6w6j3goQEUlezwncla392qB737U+ehdI21ArhiNfPwUTYFKY34IxspcZ\n\t be8ennNYN/z2w==",
        "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 9DD15409CB",
        "From": "Bernd Kuhls <bernd@kuhls.net>",
        "To": "buildroot@buildroot.org",
        "Date": "Fri,  1 May 2026 17:27:45 +0200",
        "Message-ID": "<20260501152758.2610763-10-bernd@kuhls.net>",
        "X-Mailer": "git-send-email 2.47.3",
        "In-Reply-To": "<20260501152758.2610763-1-bernd@kuhls.net>",
        "References": "<20260501152758.2610763-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=1777649283;\n bh=L3GiGRnZwx3a8F8WfaAVrVhOvAmkC4bALV5pxraCTDE=;\n h=From:To:Cc:Subject:Date:In-Reply-To:From;\n b=caPO5Y2PzySgf3fdrGE4tofkuRS58l4D4fAWl1dVONSEOBpfuWz5527WLxl37uLbE\n PLItT8t0aVoD5+4Ymje48SIrf+WuZbkLL+et/o8TDy3r8JQMe7x5reEndT5DGvP3c1\n ss6AFMwwzDzgg+mn0oitzwIMr/+8fruKq8z+wWWjwnL2pjg0725FpiQGw7zG7MzuKo\n TZOjhTqSvzkLJdz+1nI0SUzmyrnWRIqOvtguhdz9y5t1nAB9TRQonLI/wLOJx4xbec\n QIny/FEoPBJnIoMPLJo5n3It87feKChkK9m/xUqVm1oPAEMrcWdropRFvkBP5f90Uc\n Ga6ooNugTAG8Q==",
        "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=caPO5Y2P"
        ],
        "Subject": "[Buildroot] [PATCH v4 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": [
        "v4",
        "09/21"
    ]
}