git: 3684165dcfc2 - main - print/cups-filters: Update to more recent commit
Date: Sun, 14 Dec 2025 18:30:13 UTC
The branch main has been updated by tijl:
URL: https://cgit.FreeBSD.org/ports/commit/?id=3684165dcfc2facb2a03d70cf4bffd25cf6eb833
commit 3684165dcfc2facb2a03d70cf4bffd25cf6eb833
Author: Tijl Coosemans <tijl@FreeBSD.org>
AuthorDate: 2025-11-29 22:29:30 +0000
Commit: Tijl Coosemans <tijl@FreeBSD.org>
CommitDate: 2025-12-14 18:29:11 +0000
print/cups-filters: Update to more recent commit
---
print/cups-filters/Makefile | 32 +--
print/cups-filters/distinfo | 44 +---
print/cups-filters/files/patch-0001-c3d2f07399da | 170 -------------
print/cups-filters/files/patch-0002-qpdf12 | 292 -----------------------
4 files changed, 9 insertions(+), 529 deletions(-)
diff --git a/print/cups-filters/Makefile b/print/cups-filters/Makefile
index 5034f538345e..3b39149bb9f4 100644
--- a/print/cups-filters/Makefile
+++ b/print/cups-filters/Makefile
@@ -2,28 +2,6 @@ PORTNAME= cups-filters
PORTVERSION= 1.28.17
PORTREVISION= 11
CATEGORIES= print
-MASTER_SITES= https://github.com/OpenPrinting/cups-filters/releases/download/${DISTVERSION}/
-
-PATCH_SITES= https://github.com/OpenPrinting/cups-filters/commit/
-PATCHFILES= 9799398713b941557642d0b2bdbef360837ece0c.diff:-p1 \
- 93e60d3df358c0ae6f3dba79e1c9684657683d89.diff:-p1 \
- d72184e725591f10e2b404b36fe3bf5bc304a299.diff:-p1 \
- e25fd59a7daed00b6a9f235bd5818116fca28e30.diff:-p1 \
- 0cce0968980e8fdd9053cba436a66246b2303a84.diff:-p1 \
- 7b191cb1d4d0fc97ccbbd0fe43eec2544fe0c11e.diff:-p1 \
- 7992eb7c6e4abeffd766f54c98cbb2cbb45c5c04.diff:-p1 \
- 770ec883e68e505c1d1856a42b78f9323dc326a6.diff:-p1 \
- 2076627d33477212f21352ad39e9d305adb63af3.diff:-p1 \
- 10fb02eaaee52e0be9b16917b38aa8ec5bddd87f.diff:-p1 \
- b7461ec2a8d1f2aa627b24e01e118ec4cca78ec0.diff:-p1 \
- 6fd2bdfbdce76149af531ce9fca9062304238451.patch:-p1 \
- 3534e01cb41ddfa61ac78d32052b8822df71d97d.patch:-p1 \
- b378f09c9b8aaa8dccb5eb557938b30da874101d.patch:-p1 \
- c8522bb128546a1910bca538a504a2c9363ebb22.patch:-p1 \
- dccb537afe85af3ea01e3f274974d9d1f53f8e14.patch:-p1 \
- d5cc66b410a3246e74b71f718e86504d08e4bfa3.patch:-p1 \
- 86b060d2ac20d6dee757c609286cfaaa17d65428.patch:-p1 \
- d43610f82e1757b45925a8830ac297ff9dc4abca.patch:-p1
MAINTAINER= tijl@FreeBSD.org
COMMENT= Additional backends, filters and other software for CUPS
@@ -41,13 +19,14 @@ LIB_DEPENDS= liblcms2.so:graphics/lcms2 \
USES= autoreconf compiler:c++11-lib cpe gettext-tools gmake gnome \
iconv libtool localbase pkgconfig shebangfix tar:xz
+CPE_VENDOR= linuxfoundation
+USE_GITHUB= yes
+GH_ACCOUNT= OpenPrinting
+GH_TAGNAME= f87687970d9c
USE_GNOME= glib20
USE_LDCONFIG= yes
USE_RC_SUBR= cups_browsed
-CONFLICTS= foomatic-filters # bin/foomatic-rip
-
-CPE_VENDOR= linuxfoundation
SHEBANG_FILES= filter/braille/drivers/generic/brftoembosser.in \
filter/braille/drivers/index/imageubrltoindexv3.in \
filter/braille/drivers/index/imageubrltoindexv4.in \
@@ -64,9 +43,10 @@ GNU_CONFIGURE= yes
CONFIGURE_ARGS= --with-shell=/bin/sh \
--with-pdftops-path=${LOCALBASE}/bin/pdftops \
--with-test-font-path=${LOCALBASE}/share/fonts/dejavu/DejaVuSans.ttf
-GNU_CONFIGURE_MANPREFIX= ${PREFIX}/share
INSTALL_TARGET= install-strip
+CONFLICTS= foomatic-filters # bin/foomatic-rip
+
OPTIONS_DEFINE= BRAILLE COLORD DOCS
OPTIONS_GROUP= FILTERS CUPS_BROWSED
OPTIONS_GROUP_FILTERS= GHOSTSCRIPT IMAGES MUPDF POPPLER
diff --git a/print/cups-filters/distinfo b/print/cups-filters/distinfo
index db3d2ef4cbda..da5dd1a0e8bb 100644
--- a/print/cups-filters/distinfo
+++ b/print/cups-filters/distinfo
@@ -1,41 +1,3 @@
-TIMESTAMP = 1755616897
-SHA256 (cups-filters-1.28.17.tar.xz) = 270a3752a960368aa99d431fb5d34f4039b2ac943c576d840612d1d8185c9bb9
-SIZE (cups-filters-1.28.17.tar.xz) = 1516052
-SHA256 (9799398713b941557642d0b2bdbef360837ece0c.diff) = c9a061b3c415ff547161360c4fc90e0584c65efbfea90564ec34eb0e2edddf77
-SIZE (9799398713b941557642d0b2bdbef360837ece0c.diff) = 552
-SHA256 (93e60d3df358c0ae6f3dba79e1c9684657683d89.diff) = 445ca6b24390711a2bf7c1056d93628930accbfd974d1533c9b915efd455ad89
-SIZE (93e60d3df358c0ae6f3dba79e1c9684657683d89.diff) = 5272
-SHA256 (d72184e725591f10e2b404b36fe3bf5bc304a299.diff) = 53b883e7b29428cb6dd405143df9abb888ef03573ea2e063cd92d55ca821c3ce
-SIZE (d72184e725591f10e2b404b36fe3bf5bc304a299.diff) = 1321
-SHA256 (e25fd59a7daed00b6a9f235bd5818116fca28e30.diff) = 38a08df9c764cac3cdaaf7de24d41663bb8f538c07fbd92412bc06627c20139e
-SIZE (e25fd59a7daed00b6a9f235bd5818116fca28e30.diff) = 1902
-SHA256 (0cce0968980e8fdd9053cba436a66246b2303a84.diff) = 0d3a162dfa47c3fcde2524edaabf082f713eba16c48c8ed8b6bba69a80d5b7cd
-SIZE (0cce0968980e8fdd9053cba436a66246b2303a84.diff) = 697
-SHA256 (7b191cb1d4d0fc97ccbbd0fe43eec2544fe0c11e.diff) = 662629140a354fc2613be9e8cc72cfb2010fc063a72c0262c62625a281db5a68
-SIZE (7b191cb1d4d0fc97ccbbd0fe43eec2544fe0c11e.diff) = 2551
-SHA256 (7992eb7c6e4abeffd766f54c98cbb2cbb45c5c04.diff) = 983767662fe249e0968ab647e2c59ced4de9f8d96572484e6957656d000e85e9
-SIZE (7992eb7c6e4abeffd766f54c98cbb2cbb45c5c04.diff) = 559
-SHA256 (770ec883e68e505c1d1856a42b78f9323dc326a6.diff) = ffbe02cdb2c4c148a6bb3684c1b08c5c5dcf3372201e0c01729d667e1958a211
-SIZE (770ec883e68e505c1d1856a42b78f9323dc326a6.diff) = 1424
-SHA256 (2076627d33477212f21352ad39e9d305adb63af3.diff) = bfef9f5571da6a05ca0588b42ce634156595badcba66c3eba9de5c4b0cce7ead
-SIZE (2076627d33477212f21352ad39e9d305adb63af3.diff) = 561
-SHA256 (10fb02eaaee52e0be9b16917b38aa8ec5bddd87f.diff) = 6e16e9f046a8bfcbd1552d90e5ef1573f25ec3d39d0ef8330da89d32e9e4bc13
-SIZE (10fb02eaaee52e0be9b16917b38aa8ec5bddd87f.diff) = 460
-SHA256 (b7461ec2a8d1f2aa627b24e01e118ec4cca78ec0.diff) = 9d6d64a20ee0859767ce48df665b429a22a42e213c1aeb2480adeb68bcd4b334
-SIZE (b7461ec2a8d1f2aa627b24e01e118ec4cca78ec0.diff) = 700
-SHA256 (6fd2bdfbdce76149af531ce9fca9062304238451.patch) = 50e450d9cf4fedbac7980661cb5cab2cd3e9faa117747479e92bef5b255194d8
-SIZE (6fd2bdfbdce76149af531ce9fca9062304238451.patch) = 67608
-SHA256 (3534e01cb41ddfa61ac78d32052b8822df71d97d.patch) = ba3f6ed5b9ac0e18100ceed25aedebd29109799c1aa93505131d9264eb09b4b8
-SIZE (3534e01cb41ddfa61ac78d32052b8822df71d97d.patch) = 5483
-SHA256 (b378f09c9b8aaa8dccb5eb557938b30da874101d.patch) = 491d5355d14a255fa9de4d8e3cdec0c0cd49064811cecaec306be3db1ca933fa
-SIZE (b378f09c9b8aaa8dccb5eb557938b30da874101d.patch) = 2683
-SHA256 (c8522bb128546a1910bca538a504a2c9363ebb22.patch) = 426f85b5c64af1d5af778606bbfbaaef4719679dd1881525604202e02778e211
-SIZE (c8522bb128546a1910bca538a504a2c9363ebb22.patch) = 1300
-SHA256 (dccb537afe85af3ea01e3f274974d9d1f53f8e14.patch) = 413ccdce64d3f6886ab4fb956a485e58707a769a5ef725c86517a21058683782
-SIZE (dccb537afe85af3ea01e3f274974d9d1f53f8e14.patch) = 1160
-SHA256 (d5cc66b410a3246e74b71f718e86504d08e4bfa3.patch) = 0a7dd41fd646da9a36d4388d38017665512f03db35874a629a976df57ea76516
-SIZE (d5cc66b410a3246e74b71f718e86504d08e4bfa3.patch) = 1406
-SHA256 (86b060d2ac20d6dee757c609286cfaaa17d65428.patch) = 9211eb922e5cda81df3b02f7844c216c674e3c340bc80ac4e94593fc73084e66
-SIZE (86b060d2ac20d6dee757c609286cfaaa17d65428.patch) = 1023
-SHA256 (d43610f82e1757b45925a8830ac297ff9dc4abca.patch) = 5eea2ad0f42b683f12c8e381f49e8fa2cc511aa61a6e407ac3adaf1d0b29db00
-SIZE (d43610f82e1757b45925a8830ac297ff9dc4abca.patch) = 1144
+TIMESTAMP = 1764429115
+SHA256 (OpenPrinting-cups-filters-1.28.17-f87687970d9c_GH0.tar.gz) = e063eb0677f6a5dc971cc449e30d58327d2c9c088dc2311fec1d3ecb26bc2b70
+SIZE (OpenPrinting-cups-filters-1.28.17-f87687970d9c_GH0.tar.gz) = 1503588
diff --git a/print/cups-filters/files/patch-0001-c3d2f07399da b/print/cups-filters/files/patch-0001-c3d2f07399da
deleted file mode 100644
index 470492a6d495..000000000000
--- a/print/cups-filters/files/patch-0001-c3d2f07399da
+++ /dev/null
@@ -1,170 +0,0 @@
-From c3d2f07399da93f2b5308f499b1ddc5504d087ce Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?G=C3=BCnther=20Noack?= <gnoack3000@gmail.com>
-Date: Thu, 10 Jul 2025 22:31:02 +0200
-Subject: [PATCH] 1.x: Fix NULL-pointer dereference when parsing %%PDFTOPDF
- comments (#644)
-
-* Fix null pointer dereference in %%PDFTOPDF* parsers
-
-* %%PDFTOPDFCollate comment parsing: Increment p where needed
-
-Without this, if strchr succeeds, p will point to a ':' character.
-*p will therefore never be a whitespace in the subsequent loop,
-or compare successfully against the "true" string.
----
- filter/gstoraster.c | 17 +++++++++++------
- filter/mupdftoraster.c | 17 +++++++++++------
- filter/pdftops.c | 36 +++++++++++++++++++++---------------
- filter/pdftoraster.cxx | 17 +++++++++++------
- 4 files changed, 54 insertions(+), 33 deletions(-)
-
-diff --git a/filter/gstoraster.c b/filter/gstoraster.c
-index 87ff948e6..6f4da5991 100644
---- filter/gstoraster.c
-+++ filter/gstoraster.c
-@@ -104,16 +104,21 @@ parse_pdf_header_options(FILE *fp, gs_page_header *h)
- char *p;
-
- p = strchr(buf+19,':');
-- h->NumCopies = atoi(p+1);
-+ if (p) {
-+ h->NumCopies = atoi(p+1);
-+ }
- } else if (strncmp(buf,"%%PDFTOPDFCollate",17) == 0) {
- char *p;
-
- p = strchr(buf+17,':');
-- while (*p == ' ' || *p == '\t') p++;
-- if (strncasecmp(p,"true",4) == 0) {
-- h->Collate = CUPS_TRUE;
-- } else {
-- h->Collate = CUPS_FALSE;
-+ if (p) {
-+ p++;
-+ while (*p == ' ' || *p == '\t') p++;
-+ if (strncasecmp(p,"true",4) == 0) {
-+ h->Collate = CUPS_TRUE;
-+ } else {
-+ h->Collate = CUPS_FALSE;
-+ }
- }
- }
- }
-diff --git a/filter/mupdftoraster.c b/filter/mupdftoraster.c
-index 09c66c00d..a96e9c8c3 100644
---- filter/mupdftoraster.c
-+++ filter/mupdftoraster.c
-@@ -102,16 +102,21 @@ parse_pdf_header_options(FILE *fp, mupdf_page_header *h)
- char *p;
-
- p = strchr(buf+19,':');
-- h->NumCopies = atoi(p+1);
-+ if (p) {
-+ h->NumCopies = atoi(p+1);
-+ }
- } else if (strncmp(buf,"%%PDFTOPDFCollate",17) == 0) {
- char *p;
-
- p = strchr(buf+17,':');
-- while (*p == ' ' || *p == '\t') p++;
-- if (strncasecmp(p,"true",4) == 0) {
-- h->Collate = CUPS_TRUE;
-- } else {
-- h->Collate = CUPS_FALSE;
-+ if (p) {
-+ p++;
-+ while (*p == ' ' || *p == '\t') p++;
-+ if (strncasecmp(p,"true",4) == 0) {
-+ h->Collate = CUPS_TRUE;
-+ } else {
-+ h->Collate = CUPS_FALSE;
-+ }
- }
- }
- }
-diff --git a/filter/pdftops.c b/filter/pdftops.c
-index 1bfe1a2c7..81ccc983e 100644
---- filter/pdftops.c
-+++ filter/pdftops.c
-@@ -138,25 +138,31 @@ static void parsePDFTOPDFComment(char *filename)
- if (strncmp(buf,"%%PDFTOPDFNumCopies",19) == 0) {
- char *p;
-
-- p = strchr(buf+19,':') + 1;
-- while (*p == ' ' || *p == '\t') p++;
-- strncpy(deviceCopies, p, sizeof(deviceCopies));
-- deviceCopies[sizeof(deviceCopies) - 1] = '\0';
-- p = deviceCopies + strlen(deviceCopies) - 1;
-- while (*p == ' ' || *p == '\t' || *p == '\r' || *p == '\n') p--;
-- *(p + 1) = '\0';
-- pdftopdfapplied = 1;
-+ p = strchr(buf+19,':');
-+ if (p) {
-+ p++;
-+ while (*p == ' ' || *p == '\t') p++;
-+ strncpy(deviceCopies, p, sizeof(deviceCopies));
-+ deviceCopies[sizeof(deviceCopies) - 1] = '\0';
-+ p = deviceCopies + strlen(deviceCopies) - 1;
-+ while (*p == ' ' || *p == '\t' || *p == '\r' || *p == '\n') p--;
-+ *(p + 1) = '\0';
-+ pdftopdfapplied = 1;
-+ }
- } else if (strncmp(buf,"%%PDFTOPDFCollate",17) == 0) {
- char *p;
-
-- p = strchr(buf+17,':') + 1;
-- while (*p == ' ' || *p == '\t') p++;
-- if (strncasecmp(p,"true",4) == 0) {
-- deviceCollate = 1;
-- } else {
-- deviceCollate = 0;
-+ p = strchr(buf+17,':');
-+ if (p) {
-+ p++;
-+ while (*p == ' ' || *p == '\t') p++;
-+ if (strncasecmp(p,"true",4) == 0) {
-+ deviceCollate = 1;
-+ } else {
-+ deviceCollate = 0;
-+ }
-+ pdftopdfapplied = 1;
- }
-- pdftopdfapplied = 1;
- } else if (strcmp(buf,"% This file was generated by pdftopdf") == 0) {
- pdftopdfapplied = 1;
- }
-diff --git a/filter/pdftoraster.cxx b/filter/pdftoraster.cxx
-index 1bdde0b1d..7b3af924f 100755
---- filter/pdftoraster.cxx
-+++ filter/pdftoraster.cxx
-@@ -489,16 +489,21 @@ static void parsePDFTOPDFComment(FILE *fp)
- char *p;
-
- p = strchr(buf+19,':');
-- deviceCopies = atoi(p+1);
-+ if (p) {
-+ deviceCopies = atoi(p+1);
-+ }
- } else if (strncmp(buf,"%%PDFTOPDFCollate",17) == 0) {
- char *p;
-
- p = strchr(buf+17,':');
-- while (*p == ' ' || *p == '\t') p++;
-- if (strncasecmp(p,"true",4) == 0) {
-- deviceCollate = true;
-- } else {
-- deviceCollate = false;
-+ if (p) {
-+ p++;
-+ while (*p == ' ' || *p == '\t') p++;
-+ if (strncasecmp(p,"true",4) == 0) {
-+ deviceCollate = true;
-+ } else {
-+ deviceCollate = false;
-+ }
- }
- }
- }
---
-2.50.1
-
diff --git a/print/cups-filters/files/patch-0002-qpdf12 b/print/cups-filters/files/patch-0002-qpdf12
deleted file mode 100644
index b1eed7ab207b..000000000000
--- a/print/cups-filters/files/patch-0002-qpdf12
+++ /dev/null
@@ -1,292 +0,0 @@
---- configure.ac.orig 2025-08-19 16:30:13 UTC
-+++ configure.ac
-@@ -793,9 +793,7 @@ CFLAGS="$CFLAGS -D_GNU_SOURCE"
- CXXFLAGS="$CXXFLAGS -Wall " # -Weffc++" # TODO: enable when it does not print 1MB of warnings
- ])
- CFLAGS="$CFLAGS -D_GNU_SOURCE"
--CXXFLAGS="$CXXFLAGS -D_GNU_SOURCE -DPOINTERHOLDER_TRANSITION=0"
--# ^^ Silence deprecation warnings of QPDF 11
--# See /usr/include/qpdf/PointerHolder.hh
-+CXXFLAGS="$CXXFLAGS -D_GNU_SOURCE"
- CXXFLAGS="$CXXFLAGS -std=c++17" # Needed to build with current QPDF (11.x)
-
- # ==========================
---- filter/pdf.cxx.orig 2023-01-25 01:41:08 UTC
-+++ filter/pdf.cxx
-@@ -138,7 +138,7 @@ extern "C" void pdf_prepend_stream(pdf_t *pdf,
- }
-
- // prepare the new stream which is to be prepended
-- PointerHolder<Buffer> stream_data = PointerHolder<Buffer>(new Buffer(len));
-+ std::shared_ptr<Buffer> stream_data = std::shared_ptr<Buffer>(new Buffer(len));
- memcpy(stream_data->getBuffer(), buf, len);
- QPDFObjectHandle stream = QPDFObjectHandle::newStream(pdf, stream_data);
- stream = pdf->makeIndirectObject(stream);
---- filter/pdftopdf/qpdf_pdftopdf_processor.cc.orig 2023-01-25 01:41:08 UTC
-+++ filter/pdftopdf/qpdf_pdftopdf_processor.cc
-@@ -83,10 +83,10 @@ QPDFObjectHandle QPDF_PDFTOPDF_PageHandle::get() // {{
- page.getKey("/Resources").replaceKey("/XObject",QPDFObjectHandle::newDictionary(xobjs));
- content.append("Q\n");
- page.getKey("/Contents").replaceStreamData(content,QPDFObjectHandle::newNull(),QPDFObjectHandle::newNull());
-- page.replaceOrRemoveKey("/Rotate",makeRotate(rotation));
-+ page.replaceKey("/Rotate",makeRotate(rotation));
- } else {
- Rotation rot=getRotate(page)+rotation;
-- page.replaceOrRemoveKey("/Rotate",makeRotate(rot));
-+ page.replaceKey("/Rotate",makeRotate(rot));
- }
- page=QPDFObjectHandle(); // i.e. uninitialized
- return ret;
-@@ -181,9 +181,9 @@ Rotation QPDF_PDFTOPDF_PageHandle::crop(const PageRect
- page.assertInitialized();
- Rotation save_rotate = getRotate(page);
- if(orientation==ROT_0||orientation==ROT_180)
-- page.replaceOrRemoveKey("/Rotate",makeRotate(ROT_90));
-+ page.replaceKey("/Rotate",makeRotate(ROT_90));
- else
-- page.replaceOrRemoveKey("/Rotate",makeRotate(ROT_0));
-+ page.replaceKey("/Rotate",makeRotate(ROT_0));
-
- PageRect currpage= getBoxAsRect(getTrimBox(page));
- double width = currpage.right-currpage.left;
-@@ -242,7 +242,7 @@ Rotation QPDF_PDFTOPDF_PageHandle::crop(const PageRect
- //Cropping.
- // TODO: Borders are covered by the image. buffer space?
- page.replaceKey("/TrimBox",makeBox(currpage.left,currpage.bottom,currpage.right,currpage.top));
-- page.replaceOrRemoveKey("/Rotate",makeRotate(save_rotate));
-+ page.replaceKey("/Rotate",makeRotate(save_rotate));
- return getRotate(page);
- }
-
-@@ -251,14 +251,14 @@ bool QPDF_PDFTOPDF_PageHandle::is_landscape(Rotation o
- page.assertInitialized();
- Rotation save_rotate = getRotate(page);
- if(orientation==ROT_0||orientation==ROT_180)
-- page.replaceOrRemoveKey("/Rotate",makeRotate(ROT_90));
-+ page.replaceKey("/Rotate",makeRotate(ROT_90));
- else
-- page.replaceOrRemoveKey("/Rotate",makeRotate(ROT_0));
-+ page.replaceKey("/Rotate",makeRotate(ROT_0));
-
- PageRect currpage= getBoxAsRect(getTrimBox(page));
- double width = currpage.right-currpage.left;
- double height = currpage.top-currpage.bottom;
-- page.replaceOrRemoveKey("/Rotate",makeRotate(save_rotate));
-+ page.replaceKey("/Rotate",makeRotate(save_rotate));
- if(width>height)
- return true;
- return false;
-@@ -662,7 +662,7 @@ void QPDF_PDFTOPDF_Processor::autoRotateAll(bool dst_l
- // TODO? other rotation direction, e.g. if (src_rot==ROT_0)&&(param.orientation==ROT_270) ... etc.
- // rotation=ROT_270;
-
-- page.replaceOrRemoveKey("/Rotate",makeRotate(src_rot+rotation));
-+ page.replaceKey("/Rotate",makeRotate(src_rot+rotation));
- }
- }
- }
---- filter/pdftopdf/qpdf_xobject.cc.orig 2025-08-19 16:30:13 UTC
-+++ filter/pdftopdf/qpdf_xobject.cc
-@@ -138,7 +138,7 @@ QPDFObjectHandle makeXObject(QPDF *pdf,QPDFObjectHandl
-
- std::vector<QPDFObjectHandle> contents=page.getPageContents(); // (will assertPageObject)
-
-- auto ph=PointerHolder<QPDFObjectHandle::StreamDataProvider>(new CombineFromContents_Provider(contents));
-+ auto ph=std::shared_ptr<QPDFObjectHandle::StreamDataProvider>(new CombineFromContents_Provider(contents));
- ret.replaceStreamData(ph,filter,decode_parms);
-
- return ret;
---- filter/rastertopdf.cpp.orig 2023-01-25 01:41:08 UTC
-+++ filter/rastertopdf.cpp
-@@ -310,10 +310,10 @@ struct pdf_info
- std::vector<std::string> pclm_source_resolution_supported;
- std::string pclm_source_resolution_default;
- std::string pclm_raster_back_side;
-- std::vector< PointerHolder<Buffer> > pclm_strip_data;
-+ std::vector< std::shared_ptr<Buffer> > pclm_strip_data;
- std::string render_intent;
- cups_cspace_t color_space;
-- PointerHolder<Buffer> page_data;
-+ std::shared_ptr<Buffer> page_data;
- double page_width,page_height;
- OutFormatType outformat;
- };
-@@ -442,7 +442,7 @@ QPDFObjectHandle embedIccProfile(QPDF &pdf)
- std::map<std::string,QPDFObjectHandle> streamdict;
- std::string n_value = "";
- std::string alternate_cs = "";
-- PointerHolder<Buffer>ph;
-+ std::shared_ptr<Buffer>ph;
-
- #ifdef USE_LCMS1
- size_t profile_size;
-@@ -481,7 +481,7 @@ QPDFObjectHandle embedIccProfile(QPDF &pdf)
- cmsSaveProfileToMem(colorProfile, buff, &profile_size);
-
- // Write ICC profile buffer into PDF
-- ph = new Buffer(buff, profile_size);
-+ ph = std::shared_ptr<Buffer>(new Buffer(buff, profile_size));
- iccstream = QPDFObjectHandle::newStream(&pdf, ph);
- iccstream.replaceDict(QPDFObjectHandle::newDictionary(streamdict));
-
-@@ -605,7 +605,7 @@ QPDFObjectHandle getCalGrayArray(double wp[3], double
- * O - std::vector of QPDFObjectHandle
- * I - QPDF object
- * I - number of strips per page
-- * I - std::vector of PointerHolder<Buffer> containing data for each strip
-+ * I - std::vector of std::shared_ptr<Buffer> containing data for each strip
- * I - strip width
- * I - strip height
- * I - color space
-@@ -613,7 +613,7 @@ makePclmStrips(QPDF &pdf, unsigned num_strips,
- */
- std::vector<QPDFObjectHandle>
- makePclmStrips(QPDF &pdf, unsigned num_strips,
-- std::vector< PointerHolder<Buffer> > &strip_data,
-+ std::vector< std::shared_ptr<Buffer> > &strip_data,
- std::vector<CompressionMethod> &compression_methods,
- unsigned width, std::vector<unsigned>& strip_height, cups_cspace_t cs, unsigned bpc)
- {
-@@ -679,7 +679,7 @@ makePclmStrips(QPDF &pdf, unsigned num_strips,
- Pl_Flate pflate("pflate", &psink, Pl_Flate::a_deflate);
- pflate.write(strip_data[i]->getBuffer(), strip_data[i]->getSize());
- pflate.finish();
-- ret[i].replaceStreamData(PointerHolder<Buffer>(psink.getBuffer()),
-+ ret[i].replaceStreamData(std::shared_ptr<Buffer>(psink.getBuffer()),
- QPDFObjectHandle::newName("/FlateDecode"),QPDFObjectHandle::newNull());
- }
- else if (compression == RLE_DECODE)
-@@ -687,7 +687,7 @@ makePclmStrips(QPDF &pdf, unsigned num_strips,
- Pl_RunLength prle("prle", &psink, Pl_RunLength::a_encode);
- prle.write(strip_data[i]->getBuffer(),strip_data[i]->getSize());
- prle.finish();
-- ret[i].replaceStreamData(PointerHolder<Buffer>(psink.getBuffer()),
-+ ret[i].replaceStreamData(std::shared_ptr<Buffer>(psink.getBuffer()),
- QPDFObjectHandle::newName("/RunLengthDecode"),QPDFObjectHandle::newNull());
- }
- else if (compression == DCT_DECODE)
-@@ -695,7 +695,7 @@ makePclmStrips(QPDF &pdf, unsigned num_strips,
- Pl_DCT pdct("pdct", &psink, width, strip_height[i], components, color_space);
- pdct.write(strip_data[i]->getBuffer(),strip_data[i]->getSize());
- pdct.finish();
-- ret[i].replaceStreamData(PointerHolder<Buffer>(psink.getBuffer()),
-+ ret[i].replaceStreamData(std::shared_ptr<Buffer>(psink.getBuffer()),
- QPDFObjectHandle::newName("/DCTDecode"),QPDFObjectHandle::newNull());
- }
- }
-@@ -703,7 +703,7 @@ makePclmStrips(QPDF &pdf, unsigned num_strips,
- }
- #endif
-
--QPDFObjectHandle makeImage(QPDF &pdf, PointerHolder<Buffer> page_data, unsigned width,
-+QPDFObjectHandle makeImage(QPDF &pdf, std::shared_ptr<Buffer> page_data, unsigned width,
- unsigned height, std::string render_intent, cups_cspace_t cs, unsigned bpc)
- {
- QPDFObjectHandle ret = QPDFObjectHandle::newStream(&pdf);
-@@ -843,7 +843,7 @@ QPDFObjectHandle makeImage(QPDF &pdf, PointerHolder<Bu
- pflate.write(page_data->getBuffer(),page_data->getSize());
- pflate.finish();
-
-- ret.replaceStreamData(PointerHolder<Buffer>(psink.getBuffer()),
-+ ret.replaceStreamData(std::shared_ptr<Buffer>(psink.getBuffer()),
- QPDFObjectHandle::newName("/FlateDecode"),QPDFObjectHandle::newNull());
- #else
- ret.replaceStreamData(page_data,QPDFObjectHandle::newNull(),QPDFObjectHandle::newNull());
-@@ -857,7 +857,7 @@ void finish_page(struct pdf_info * info)
- if (info->outformat == OUTPUT_FORMAT_PDF)
- {
- // Finish previous PDF Page
-- if(!info->page_data.getPointer())
-+ if(!info->page_data.get())
- return;
-
- QPDFObjectHandle image = makeImage(info->pdf, info->page_data, info->width, info->height, info->render_intent, info->color_space, info->bpc);
-@@ -874,7 +874,7 @@ void finish_page(struct pdf_info * info)
- return;
-
- for (size_t i = 0; i < info->pclm_strip_data.size(); i ++)
-- if(!info->pclm_strip_data[i].getPointer())
-+ if(!info->pclm_strip_data[i].get())
- return;
-
- std::vector<QPDFObjectHandle> strips = makePclmStrips(info->pdf, info->pclm_num_strips, info->pclm_strip_data, info->pclm_compression_method_preferred, info->width, info->pclm_strip_height, info->color_space, info->bpc);
-@@ -932,7 +932,7 @@ void finish_page(struct pdf_info * info)
- #endif
-
- // bookkeeping
-- info->page_data = PointerHolder<Buffer>();
-+ info->page_data = std::shared_ptr<Buffer>();
- #ifdef QPDF_HAVE_PCLM
- info->pclm_strip_data.clear();
- #endif
-@@ -1101,12 +1101,12 @@ int add_pdf_page(struct pdf_info * info, int pagen, un
- die("Page too big");
- }
- if (info->outformat == OUTPUT_FORMAT_PDF)
-- info->page_data = PointerHolder<Buffer>(new Buffer(info->line_bytes*info->height));
-+ info->page_data = std::shared_ptr<Buffer>(new Buffer(info->line_bytes*info->height));
- else if (info->outformat == OUTPUT_FORMAT_PCLM)
- {
- // reserve space for PCLm strips
- for (size_t i = 0; i < info->pclm_num_strips; i ++)
-- info->pclm_strip_data[i] = PointerHolder<Buffer>(new Buffer(info->line_bytes*info->pclm_strip_height[i]));
-+ info->pclm_strip_data[i] = std::shared_ptr<Buffer>(new Buffer(info->line_bytes*info->pclm_strip_height[i]));
- }
-
- QPDFObjectHandle page = QPDFObjectHandle::parse(
---- filter/urftopdf.cpp.orig 2023-01-25 01:41:08 UTC
-+++ filter/urftopdf.cpp
-@@ -80,7 +80,7 @@ struct pdf_info
- unsigned pixel_bytes;
- unsigned line_bytes;
- unsigned bpp;
-- PointerHolder<Buffer> page_data;
-+ std::shared_ptr<Buffer> page_data;
- double page_width,page_height;
- };
-
-@@ -119,7 +119,7 @@ enum ColorSpace {
- iprintf("Created temporary file '%s'\n", tempfile_name);
- */
-
--QPDFObjectHandle makeImage(QPDF &pdf, PointerHolder<Buffer> page_data, unsigned width, unsigned height, ColorSpace cs, unsigned bpc)
-+QPDFObjectHandle makeImage(QPDF &pdf, std::shared_ptr<Buffer> page_data, unsigned width, unsigned height, ColorSpace cs, unsigned bpc)
- {
- QPDFObjectHandle ret = QPDFObjectHandle::newStream(&pdf);
-
-@@ -153,7 +153,7 @@ QPDFObjectHandle makeImage(QPDF &pdf, PointerHolder<Bu
-
- // /Filter /FlateDecode
- // /DecodeParms [<</Predictor 1 /Colors 1[3] /BitsPerComponent $bits /Columns $x>>] ??
-- ret.replaceStreamData(PointerHolder<Buffer>(psink.getBuffer()),
-+ ret.replaceStreamData(std::shared_ptr<Buffer>(psink.getBuffer()),
- QPDFObjectHandle::newName("/FlateDecode"),QPDFObjectHandle::newNull());
- #else
- ret.replaceStreamData(page_data,QPDFObjectHandle::newNull(),QPDFObjectHandle::newNull());
-@@ -165,7 +165,7 @@ void finish_page(struct pdf_info * info)
- void finish_page(struct pdf_info * info)
- {
- //Finish previous Page
-- if(!info->page_data.getPointer())
-+ if(!info->page_data.get())
- return;
-
- QPDFObjectHandle image = makeImage(info->pdf, info->page_data, info->width, info->height, DEVICE_RGB, 8);
-@@ -182,7 +182,7 @@ void finish_page(struct pdf_info * info)
- info->page.getKey("/Contents").replaceStreamData(content,QPDFObjectHandle::newNull(),QPDFObjectHandle::newNull());
-
- // bookkeeping
-- info->page_data = PointerHolder<Buffer>();
-+ info->page_data = std::shared_ptr<Buffer>();
- }
-
- int add_pdf_page(struct pdf_info * info, int pagen, unsigned width, unsigned height, int bpp, unsigned dpi)
-@@ -199,7 +199,7 @@ int add_pdf_page(struct pdf_info * info, int pagen, un
- if (info->height > (std::numeric_limits<unsigned>::max() / info->line_bytes)) {
- die("Page too big");
- }
-- info->page_data = PointerHolder<Buffer>(new Buffer(info->line_bytes*info->height));
-+ info->page_data = std::shared_ptr<Buffer>(new Buffer(info->line_bytes*info->height));
-
- QPDFObjectHandle page = QPDFObjectHandle::parse(
- "<<"