1 Commits

Author SHA256 Message Date
fe43245ffe Sync changes to SLFO-1.2 branch 2025-08-20 12:52:14 +02:00
6 changed files with 34 additions and 197 deletions

BIN
qpdf-11.10.1.tar.gz LFS Normal file

Binary file not shown.

16
qpdf-11.10.1.tar.gz.asc Normal file
View File

@@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEwslrEAEf4Anm0d+CinXRCZgBLH4FAmexGSMACgkQinXRCZgB
LH66eQ/+KTmVtK53UXL+Cf3OIugcwSXPceJYQEmpwivPtrQF0eGDsxWNCdTFR+VF
J0R+PtxKEl5DMVmLvxye3oUDJWnxvH3rMLHwaTuVort+MLeEV63IUlQ1nIh4Ci/2
CfGX2d4ZU1kLc9W67KjJ576qE78vvTIGUP/16/8haaJ/LB22FeS3Vb4mLq4Q4hH7
XfMp2SFjBQvUvxIAQw7WNblocdYUlHEWynlzKeCo5p7DdRZ1o0D9ec8JRFzkT53H
bmErjY9lvOSqD8ZtFyVsJXyCCphAJ9gVv42LypA86famPcY+9TWEuC07rAlQQTyO
7eR1x4ZS58MyoMPh/jWih4bucnTnj2ZrwrFD3TgWzPvE3J3OLDPNlB/X1AtsKEwd
uLd247196hU4uhzGO4yF+nY3Ncf3sG3snwcyrBOg52Biyak2OEtp4RD71Y9MHjQm
iHVEYWV8hMvmk+KwdSKSofr0g4D4kQwIDwi3xII7ybGZ/wh3fC010uWt+hWBCH56
JioqPTGfEbpoJj7iM+I4BSQkDV1e6jEG38QCo8xetbaDDhn8cWe8scadEvTZTIdR
ZH2d8BQxAv+SlgOQFKp7OvtIaZ2Bd8okSjUPkm2xsjl5dmmo9QLqrN0c7HrBhxCm
sR17YHlz1SeLPfzyk0oOEj9p1eod7cxtRT8msShCIuE3crqPrck=
=JuQP
-----END PGP SIGNATURE-----

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b3d1575b2218badc3549d6977524bb0f8c468c6528eebc8967bbe3078cf2cace
size 19537905

View File

@@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEwslrEAEf4Anm0d+CinXRCZgBLH4FAmgXsfIACgkQinXRCZgB
LH5SYxAAnLJzlk53vs9Egnkzyl2HNASYgv0OcYunycAoVVDiTW2ku9jR68Hg90v6
T/DqNcN+9dJ/OiGKS07TI+0eKo3eujxU67gt1oNz0V59kZCP2y6a6Ig89Qg7ZC8u
2kXJMLEmEFuYpBIYvghBVwn4T8s4EqzpbyDKUFVN06Kom8vTGzLirbTEo93AlonF
DaPwawUsYAYKOl45HPWoFDxFoiL2EFz+H5DK3f9qweTDMa79ze+Oq9tChuTddumM
xjby7yfFRjfYG9g+rzsFt8r8V6QoTlyXMwRfsWfFgxQAUhDZJqsAbtSJumr2C40t
oMaCYtVqFoGH45U8O9R0agQARgRcf9QAUyS2OkRLoVyGx4ESwnhr6BY63owuKzaS
uV5Vf/43YknaeRdF+tEqhTgtx1//i+8pVQt1AQwlPKtOr94OlvVDFOy11mPbKAby
dNy/IGUqnK5w7D+/j6iph2pakUSFlSD/EPkFWhmHLcKfD5dgDQW4XY2Ocje0rpYA
+zmVGUfP6Wg/H5+nfzNXquPMrDcJVZiB+KGlekfboqQ01dV1TUgvAoYY18OgCk3c
e5my7o6mVOMaf+jAO2Dz7E2otpTp7kMePeqt4gSq84wuluk9UEiwNygA8RuERwo0
+a3kZns1WMkGue4xvQiOPNB7vvc/AMTqxrbzLHhXNzBnGLc4BXs=
=E7yG
-----END PGP SIGNATURE-----

View File

@@ -1,156 +1,5 @@
-------------------------------------------------------------------
Tue Sep 9 18:35:56 UTC 2025 - Enrico Belleri <kilgore.trout@idesmi.eu>
- 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 - pgajdos@suse.com
- 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.
-------------------------------------------------------------------
Wed Jun 25 11:27:11 UTC 2025 - pgajdos@suse.com
Wed Jun 25 11:36:58 UTC 2025 - pgajdos@suse.com
- disable specific-bugs and inline-images tests for s390x [bsc#1245308]

View File

@@ -1,7 +1,7 @@
#
# spec file for package qpdf
#
# Copyright (c) 2025 SUSE LLC and contributors
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,19 +16,18 @@
#
%define so_version 30
%bcond_without zopfli
%define so_version 29
Name: qpdf
Version: 12.2.0
Version: 11.10.1
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 >= 3.16
BuildRequires: cmake
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: pkgconfig
@@ -40,9 +39,6 @@ BuildRequires: texlive-latexmk
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
@@ -58,13 +54,12 @@ only used to create PDF files with special characteristics starting
from other PDF files or to inspect or extract information from
existing PDF files.
%package doc
%package htmldoc
Summary: Documentation files for qpdf
Group: Documentation/HTML
BuildArch: noarch
Obsoletes: %{name}-htmldoc
%description doc
%description htmldoc
This package contains the documentation for qpdf
%package devel
@@ -92,16 +87,11 @@ package.
%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 \
%if %{with zopfli}
-DZOPFLI=ON \
%endif
%{?nil}
-DCMAKE_INSTALL_DOCDIR='${datarootdir}'share/doc/packages/%{name}
%cmake_build
%check
@@ -109,7 +99,7 @@ package.
rm qpdf/qtest/specific-bugs.test
rm qpdf/qtest/inline-images.test
%endif
%ctest
%make_build -C build test
%install
%cmake_install
@@ -128,23 +118,21 @@ popd
%files
%doc ChangeLog README-doc.txt
%doc qpdf-manual.pdf
%license Artistic-2.0 LICENSE.txt
%{_bindir}/{fix-qdf,qpdf,zlib-flate}
%{_mandir}/man1/{fix-qdf,qpdf,zlib-flate}.1%{?ext_man}
%{_bindir}/*
%{_mandir}/man1/*
%files doc
%files htmldoc
%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
%license Artistic-2.0 LICENSE.txt
%{_includedir}/%{name}/
%{_includedir}/*
%{_libdir}/pkgconfig/libqpdf.pc
%{_libdir}/libqpdf.so
%{_libdir}/cmake/qpdf