Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package qpdf for openSUSE:Factory checked in at 2025-11-20 14:46:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/qpdf (Old) and /work/SRC/openSUSE:Factory/.qpdf.new.2061 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qpdf" Thu Nov 20 14:46:06 2025 rev:82 rq:1318194 version:12.2.0 Changes: -------- --- /work/SRC/openSUSE:Factory/qpdf/qpdf.changes 2025-06-26 14:06:08.839937188 +0200 +++ /work/SRC/openSUSE:Factory/.qpdf.new.2061/qpdf.changes 2025-11-20 14:46:07.923605526 +0100 @@ -1,0 +2,151 @@ +Tue Sep 9 18:35:56 UTC 2025 - Enrico Belleri <[email protected]> + +- Enable Zopfli compression: + still needs the user to manually set QPDF_ZOPFLI +- build: enable SHOW_FAILED_TEST_OUTPUT, WERROR +- rename package htmldoc to doc and move in the PDF documentation +- doc obsoletes htmldoc + +------------------------------------------------------------------- +Wed Sep 3 10:59:55 UTC 2025 - [email protected] + +- version update to 12.2.0 + 12.2.0: May 4, 2025 + - Upcoming C++ Version Change + - This is expected to be the last minor release of qpdf to work + with C++-17. We will be switching to C++-20 for 12.3.0. + - Bug fixes + - In ``QPDF::getAllPages`` detect shared ``/Kids`` arrays to avoid stack + overflows in (specially constructed) damaged input files. + - Fix severe performance issues in ``QPDFFormFieldObjectHelper`` with some + (specially constructed) damaged input files. + - Add missing ``QPDFFormFieldObjectHelper::isChecked`` implementation. + - Fix bug in ``QPDFNameTreeObjectHelper`` / ``QPDFNumberTreeObjectHelper``. + Under certain conditions tree insertions resulted in a ``/Range`` entry + being written to the tree root node, which is not permitted. One of the + possible consequences is that some readers would not recognize + embedded / attached files. + - In ``QPDFFormFieldObjectHelper::getChoices`` return the display string + if an ``/Opt`` entry is a pair of export value and display string rather + than a single string representing both values. Previously no value was + returned if the entry was not a single string. + - Other enhancements + - More sanity checks have been added when files with damaged xref tables + are recovered in order to avoid long runtimes and large memory use. + Objects with with very large arrays or dictionaries (more than 5000 + elements) and duplicate pages are ignored as they are almost certainly + invalid. +12.1.0: April 6, 2025 + - Bug fixes + - In ``QPDF::isLinearized`` return false if the first object in the file is + not a linearization parameter dictionary or its ``/L`` entry is not an + integer object. Previously the method returned false if the first + dictionary object was not a linearization parameter dictionary. + - Fix parsing of object streams containing objects not separated by + white-space. Pre-2020 editions of the PDF specification incorrectly + stated that white-space was required between objects. qpdf relied on this + when parsing object streams. + - Fix two object stream error/warning messages that reported the wrong + object id. + - Accept an array for ``rotate`` in qpdf job JSON since it is a + repeatable option. + - When reading an encrypted PDF with cleartext metadata, only + expect top-level /Metadata to be clear-text. When writing an + encrypted PDF with cleartext metadata, only leave top-level + unencrypted. qpdf has always incorrectly handled all + ``/Metadata`` streams as special with cleartext metadata. + - Library Enhancements + - Add function ``Pl_DCT::make_compress_config`` to return a + ``Pl_DCT::CompressConfig`` unique pointer to a + ``CompressConfig`` from a ``std::function`` for a more modern + configuration option. + - CLI Enhancements + - New :qpdf:ref:`--remove-structure` option to exclude the document + structure tree from the output PDF. + - New :qpdf:ref:`--jpeg-quality` option to set jpeg quality used + with :qpdf:ref:`--optimize-images`. + - Other enhancements + - There have been further enhancements to how files with damaged xref + tables are recovered. + - Other changes + - The ``QPDF::optimize`` method is believed to be not in use and has been + deprecated. If you are relying on it please open a ticket_. + - The parsing of object streams including the creation of error/warning + messages and object descriptions has been refactored with some + improvement both in runtime and memory usage. + - There has been some refactoring of QPDFWriter including how object + streams are written with some performance improvement. + 12.0.0: March 9, 2025 + - API breaking changes + - The header file ``qpdf/QPDFObject.hh`` now generates an error if + included. This is to prevent code that includes it from + accidentally working because an old version is installed + somewhere on the system. Instead of including that header, + include ``<qpdf/Constants.h>``, and replace ``QPDFObject::ot_`` + with ``::ot_`` in your code. + - The deprecated ``QPDFObjectHandle::replaceOrRemoveKey`` method has been + removed since it was identical to ``QPDFObjectHandle::replaceKey``. + - The deprecated ``JSON::checkDictionaryKeySeen`` function has been removed. + If ``JSON::parse`` encounters duplicate keys the last value is silently + accepted instead of throwing a runtime error. This is consistent with the + JSON specification. + - The deprecated versionless overload of ``QPDFObjectHandle::getJSON`` has + been removed. + - The deprecated ``Buffer`` copy constructor and assignment operator have + been removed. ``Buffer`` copy operations are expensive as they always + involve copying the buffer content. Use ``buffer2 = buffer1.copy();`` or + ``Buffer buffer2{buffer1.copy()};`` to make it explicit that copying is + intended. + - ``QIntC.hh`` contained the typo ``substract`` in function names, + which has been fixed to ``subtract``. + - The protected ``QPDFObjectHelper::oh`` data member has been replaced with + the new accessor method ``QPDFObjectHelper::oh()``. + - Except for abstract classes and the exceptions listed below, sub-classing of + qpdf classes is not supported. These classes were never designed to be used as a + base class and will be made final in version 13. If you have a use case for + extending one of these classes, please open a ticket_. + Exceptions: + - ``QPDFDocumentHelper`` + - ``QPDFObjectHelper`` + - Upcasting to ``QPDFObjectHelper`` and ``QPDFDocumentHelper`` is not supported. Their + destructors will be made protected in version 13. + - Catching of logic errors thrown as the result of using an uninitialized + ``QPDFObjectHandle`` is not supported. In version 13 uninitialized object handles + will be treated as immutable `shared null`_ objects. Using them will no longer throw + any logic errors, but may where appropriate generate type warnings or exceptions. + - CLI breaking Changes + - To support the future introduction of sub-commands, the use of filenames without + extension and path element as the first argument is no longer supported, and the + result may change in the future. For example, ``qpdf check out.pdf`` currently + copies the file ``check`` to ``out.pdf`` but may in future check ``out.pdf``. + Use ``qpdf ./check out.pdf`` or ``qpdf -- check out.pdf`` instead. + - Bug fixes + - In object streams, ignore objects with invalid offset. Report objects with invalid + id or offset. + - Library Enhancements + - ``QPDFObjectHandle`` supports move construction/assignment. + This change is invisible to most developers but may break + your code if you rely on specific behavior around how many + references to a QPDFObjectHandle's underlying object exist. You + would have to write code specifically to do that, so if you're not + sure, then you shouldn't have to worry. + - Most ``QPDFObjectHandle`` accessor methods are now ``const`` qualified. + - ``QPDFObjectHandle`` and all object helper classes are now explicitly convertible + to ``QPDFObjGen``, and therefore can be passed as parameter where a ``QPDFObjGen`` + is required. Redundant overloaded methods have been removed. + - All object helper classes are now explicitly convertible to ``QPDFObjectHandle``. + - Other Changes + - The internal implementation of objects has been extensively refactored, using + ``std::variant`` to eliminate one level of indirection. This has saved one shared pointer + per object with some improvement both in runtime and memory usage. A new class + ``BaseHandle`` has been added as common base class of both ``QPDFObjectHandle`` + and ``QPDFObjectHelper`` to provide common functionality appropriate for all + object-handle-like classes such as the operator to convert to ``QPDFObjGen``. + ``BaseHandle`` is an implementation detail and not directly usable by library users. + - There has been significant refactoring of how qpdf internally iterates over + arrays and dictionaries. + - The internal mechanism used to check object sizes for binary + compatibility between releases has been changed. As such, the + ``CHECK_SIZES`` maintainer-only build option has been removed. + +------------------------------------------------------------------- Old: ---- qpdf-11.10.1.tar.gz qpdf-11.10.1.tar.gz.asc New: ---- qpdf-12.2.0.tar.gz qpdf-12.2.0.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ qpdf.spec ++++++ --- /var/tmp/diff_new_pack.exPfIN/_old 2025-11-20 14:46:09.279663052 +0100 +++ /var/tmp/diff_new_pack.exPfIN/_new 2025-11-20 14:46:09.279663052 +0100 @@ -1,7 +1,7 @@ # # spec file for package qpdf # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,18 +16,19 @@ # -%define so_version 29 +%define so_version 30 +%bcond_without zopfli Name: qpdf -Version: 11.10.1 +Version: 12.2.0 Release: 0 Summary: Command-line tools and library for transforming PDF files License: Apache-2.0 Group: Development/Libraries/C and C++ -URL: https://qpdf.sourceforge.io/ +URL: https://qpdf.sourceforge.io Source: https://github.com/qpdf/qpdf/releases/download/v%{version}/qpdf-%{version}.tar.gz Source1: https://github.com/qpdf/qpdf/releases/download/v%{version}/qpdf-%{version}.tar.gz.asc Source2: qpdf.keyring -BuildRequires: cmake +BuildRequires: cmake >= 3.16 BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: pkgconfig @@ -39,6 +40,9 @@ BuildRequires: pkgconfig(gnutls) BuildRequires: pkgconfig(libjpeg) BuildRequires: pkgconfig(zlib) +%if %{with zopfli} +BuildRequires: cmake(Zopfli) +%endif %description QPDF is a program that does structural, content-preserving @@ -54,12 +58,13 @@ from other PDF files or to inspect or extract information from existing PDF files. -%package htmldoc +%package doc Summary: Documentation files for qpdf Group: Documentation/HTML BuildArch: noarch +Obsoletes: %{name}-htmldoc -%description htmldoc +%description doc This package contains the documentation for qpdf %package devel @@ -87,11 +92,16 @@ %build %global optflags %{optflags} -fexcess-precision=fast %cmake \ + -DSHOW_FAILED_TEST_OUTPUT=ON \ + -DWERROR=ON \ -DBUILD_DOC=ON \ -DBUILD_DOC_DIST=ON \ -DBUILD_DOC_HTML=ON \ -DBUILD_DOC_PDF=ON \ - -DCMAKE_INSTALL_DOCDIR='${datarootdir}'share/doc/packages/%{name} +%if %{with zopfli} + -DZOPFLI=ON \ +%endif + %{?nil} %cmake_build %check @@ -99,7 +109,7 @@ rm qpdf/qtest/specific-bugs.test rm qpdf/qtest/inline-images.test %endif -%make_build -C build test +%ctest %install %cmake_install @@ -118,21 +128,23 @@ %files %doc ChangeLog README-doc.txt -%doc qpdf-manual.pdf %license Artistic-2.0 LICENSE.txt -%{_bindir}/* -%{_mandir}/man1/* +%{_bindir}/{fix-qdf,qpdf,zlib-flate} +%{_mandir}/man1/{fix-qdf,qpdf,zlib-flate}.1%{?ext_man} -%files htmldoc +%files doc %doc %{_docdir}/%{name}/html %doc %{_docdir}/%{name}/singlehtml +%doc %{_docdir}/%{name}/qpdf-manual.pdf %files -n libqpdf%{so_version} +%license Artistic-2.0 LICENSE.txt %{_libdir}/libqpdf.so.%{so_version}* %files devel %doc %{_docdir}/%{name}/examples -%{_includedir}/* +%license Artistic-2.0 LICENSE.txt +%{_includedir}/%{name}/ %{_libdir}/pkgconfig/libqpdf.pc %{_libdir}/libqpdf.so %{_libdir}/cmake/qpdf ++++++ qpdf-11.10.1.tar.gz -> qpdf-12.2.0.tar.gz ++++++ /work/SRC/openSUSE:Factory/qpdf/qpdf-11.10.1.tar.gz /work/SRC/openSUSE:Factory/.qpdf.new.2061/qpdf-12.2.0.tar.gz differ: char 12, line 1
