The package rpms/qpdf.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/qpdf.git/commit/?id=3e2876d6430daebb....
Change: +%ifarch aarch64
Thanks.
Full change: ============
commit 3e2876d6430daebb43a788b393a8a1e3882e365f Author: Zdenek Dohnal zdohnal@redhat.com Date: Thu May 20 10:05:27 2021 +0200
Revert to 10.1.0
diff --git a/.gitignore b/.gitignore index 17675c9..ba718e5 100644 --- a/.gitignore +++ b/.gitignore @@ -29,7 +29,3 @@ /qpdf-10.0.3.tar.gz /qpdf-10.0.4.tar.gz /qpdf-10.1.0.tar.gz -/qpdf-10.2.0.tar.gz -/qpdf-10.3.0.tar.gz -/qpdf-10.3.1.tar.gz -/qpdf-10.3.2.tar.gz diff --git a/qpdf-erase-tests-with-generated-object-stream.patch b/qpdf-erase-tests-with-generated-object-stream.patch new file mode 100644 index 0000000..8a076ae --- /dev/null +++ b/qpdf-erase-tests-with-generated-object-stream.patch @@ -0,0 +1,142 @@ +diff -up qpdf-9.0.1/examples/qtest/filter-tokens.test.erase-tests-with-generated-object-stream qpdf-9.0.1/examples/qtest/filter-tokens.test +--- qpdf-9.0.1/examples/qtest/filter-tokens.test.erase-tests-with-generated-object-stream 2019-09-20 14:07:56.000000000 +0200 ++++ qpdf-9.0.1/examples/qtest/filter-tokens.test 2019-10-03 08:05:23.809400490 +0200 +@@ -13,8 +13,4 @@ $td->runtest("filter tokens", + {$td->COMMAND => "pdf-filter-tokens in.pdf a.pdf"}, + {$td->STRING => "", $td->EXIT_STATUS => 0}); + +-$td->runtest("check output", +- {$td->FILE => "a.pdf"}, +- {$td->FILE => "out.pdf"}); +- +-$td->report(2); ++$td->report(1); +diff -up qpdf-9.0.1/examples/qtest/invert-images.test.erase-tests-with-generated-object-stream qpdf-9.0.1/examples/qtest/invert-images.test +--- qpdf-9.0.1/examples/qtest/invert-images.test.erase-tests-with-generated-object-stream 2019-09-20 14:07:56.000000000 +0200 ++++ qpdf-9.0.1/examples/qtest/invert-images.test 2019-10-03 08:05:23.810400481 +0200 +@@ -19,13 +19,13 @@ $td->runtest("double page size", + $td->EXIT_STATUS => 0}, + $td->NORMALIZE_NEWLINES); + +-$td->runtest("check output", +- {$td->FILE => "a.pdf"}, +- {$td->FILE => "out.pdf"}); ++#$td->runtest("check output", ++# {$td->FILE => "a.pdf"}, ++# {$td->FILE => "out.pdf"}); + + cleanup(); + +-$td->report(2); ++$td->report(1); + + sub cleanup + { +diff -up qpdf-9.0.1/examples/qtest/set-form-values.test.erase-tests-with-generated-object-stream qpdf-9.0.1/examples/qtest/set-form-values.test +--- qpdf-9.0.1/examples/qtest/set-form-values.test.erase-tests-with-generated-object-stream 2019-09-20 14:07:56.000000000 +0200 ++++ qpdf-9.0.1/examples/qtest/set-form-values.test 2019-10-03 08:05:23.810400481 +0200 +@@ -14,13 +14,10 @@ cleanup(); + $td->runtest("set form values", + {$td->COMMAND => "pdf-set-form-values form-in.pdf a.pdf soup"}, + {$td->STRING => "", $td->EXIT_STATUS => 0}); +-$td->runtest("compare files", +- {$td->FILE => "a.pdf"}, +- {$td->FILE => "form-out.pdf"}); + + cleanup(); + +-$td->report(2); ++$td->report(1); + + sub cleanup + { +diff -up qpdf-9.0.1/libqpdf/qpdf-c.cc.erase-tests-with-generated-object-stream qpdf-9.0.1/libqpdf/qpdf-c.cc +--- qpdf-9.0.1/libqpdf/qpdf-c.cc.erase-tests-with-generated-object-stream 2019-09-20 14:07:56.000000000 +0200 ++++ qpdf-9.0.1/libqpdf/qpdf-c.cc 2019-10-03 08:05:23.811400473 +0200 +@@ -297,7 +297,6 @@ QPDF_ERROR_CODE qpdf_read_memory(qpdf_da + qpdf->size = size; + qpdf->password = password; + status = trap_errors(qpdf, &call_read_memory); +- QTC::TC("qpdf", "qpdf-c called qpdf_read_memory", status); + return status; + } + +@@ -508,7 +507,6 @@ unsigned char const* qpdf_get_buffer(qpd + + void qpdf_set_object_stream_mode(qpdf_data qpdf, qpdf_object_stream_e mode) + { +- QTC::TC("qpdf", "qpdf-c called qpdf_set_object_stream_mode"); + qpdf->qpdf_writer->setObjectStreamMode(mode); + } + +diff -up qpdf-9.0.1/libqpdf/QPDFWriter.cc.erase-tests-with-generated-object-stream qpdf-9.0.1/libqpdf/QPDFWriter.cc +--- qpdf-9.0.1/libqpdf/QPDFWriter.cc.erase-tests-with-generated-object-stream 2019-10-03 08:05:23.812400464 +0200 ++++ qpdf-9.0.1/libqpdf/QPDFWriter.cc 2019-10-03 08:07:08.083488747 +0200 +@@ -3436,8 +3436,6 @@ QPDFWriter::writeLinearized() + { + if (this->m->deterministic_id) + { +- QTC::TC("qpdf", "QPDFWriter linearized deterministic ID", +- need_xref_stream ? 0 : 1); + computeDeterministicIDData(); + pp_md5 = 0; + assert(this->m->md5_pipeline == 0); +@@ -3645,8 +3643,6 @@ QPDFWriter::writeStandard() + + if (this->m->deterministic_id) + { +- QTC::TC("qpdf", "QPDFWriter standard deterministic ID", +- this->m->object_stream_to_objects.empty() ? 0 : 1); + pp_md5 = 0; + assert(this->m->md5_pipeline == 0); + } +diff -up qpdf-9.0.1/qpdf/qpdf.testcov.erase-tests-with-generated-object-stream qpdf-9.0.1/qpdf/qpdf.testcov +--- qpdf-9.0.1/qpdf/qpdf.testcov.erase-tests-with-generated-object-stream 2019-09-20 14:07:56.000000000 +0200 ++++ qpdf-9.0.1/qpdf/qpdf.testcov 2019-10-03 08:05:23.814400446 +0200 +@@ -123,7 +123,6 @@ qpdf-c called qpdf_get_user_password 0 + qpdf-c called qpdf_is_linearized 0 + qpdf-c called qpdf_is_encrypted 0 + qpdf-c called qpdf_init_write 3 +-qpdf-c called qpdf_set_object_stream_mode 0 + qpdf-c called qpdf_set_stream_data_mode 0 + qpdf-c called qpdf_set_content_normalization 0 + qpdf-c called qpdf_set_qdf_mode 0 +@@ -177,7 +176,6 @@ QPDFObjectHandle append page contents 0 + QPDF_Stream getRawStreamData 0 + QPDF_Stream getStreamData 0 + QPDF_Stream expand filter abbreviation 0 +-qpdf-c called qpdf_read_memory 0 + QPDF stream without newline 0 + QPDF stream with CR only 0 + QPDF stream with CRNL 0 +@@ -261,8 +259,6 @@ qpdf pages range omitted at end 0 + qpdf pages range omitted in middle 0 + qpdf npages 0 + QPDF already reserved object 0 +-QPDFWriter standard deterministic ID 1 +-QPDFWriter linearized deterministic ID 1 + QPDFWriter deterministic with no data 0 + qpdf-c called qpdf_set_deterministic_ID 0 + QPDFObjectHandle indirect with 0 objid 0 +diff -up qpdf-9.0.1/qpdf/qtest/qpdf.test.erase-tests-with-generated-object-stream qpdf-9.0.1/qpdf/qtest/qpdf.test +--- qpdf-9.0.1/qpdf/qtest/qpdf.test.erase-tests-with-generated-object-stream 2019-09-20 14:07:56.000000000 +0200 ++++ qpdf-9.0.1/qpdf/qtest/qpdf.test 2019-10-03 08:05:23.816400429 +0200 +@@ -2584,7 +2584,6 @@ my @capi = ( + [3, 'normalized content'], + [4, 'ignore xref streams'], + [5, 'linearized'], +- [6, 'object streams'], + [7, 'qdf'], + [8, 'no original object ids'], + [9, 'uncompressed streams'], +@@ -2628,8 +2627,8 @@ $td->runtest("write damaged", + show_ntests(); + # ---------- + $td->notify("--- Deterministic ID Tests ---"); +-$n_tests += 11; +-foreach my $d ('nn', 'ny', 'yn', 'yy') ++$n_tests += 7; ++foreach my $d ('nn', 'yn') + { + my $linearize = ($d =~ m/^y/); + my $ostream = ($d =~ m/y$/); diff --git a/qpdf-relax.patch b/qpdf-relax.patch index ae50652..87cc167 100644 --- a/qpdf-relax.patch +++ b/qpdf-relax.patch @@ -1,7 +1,7 @@ -diff -up qpdf-10.2.0/libqpdf/QPDF.cc.relax qpdf-10.2.0/libqpdf/QPDF.cc ---- qpdf-10.2.0/libqpdf/QPDF.cc.relax 2021-02-23 16:41:58.000000000 +0100 -+++ qpdf-10.2.0/libqpdf/QPDF.cc 2021-02-24 12:35:50.715329461 +0100 -@@ -11,6 +11,10 @@ +diff -up qpdf-9.0.1/libqpdf/QPDF.cc.relax qpdf-9.0.1/libqpdf/QPDF.cc +--- qpdf-9.0.1/libqpdf/QPDF.cc.relax 2019-09-20 14:07:56.000000000 +0200 ++++ qpdf-9.0.1/libqpdf/QPDF.cc 2019-10-01 13:15:46.513551565 +0200 +@@ -10,6 +10,10 @@ #include <string.h> #include <memory.h>
@@ -12,7 +12,7 @@ diff -up qpdf-10.2.0/libqpdf/QPDF.cc.relax qpdf-10.2.0/libqpdf/QPDF.cc #include <qpdf/QTC.hh> #include <qpdf/QUtil.hh> #include <qpdf/Pipeline.hh> -@@ -261,7 +265,13 @@ QPDF::processFile(char const* filename, +@@ -207,7 +211,13 @@ QPDF::processFile(char const* filename, { FileInputSource* fi = new FileInputSource(); fi->setFilename(filename); @@ -26,7 +26,7 @@ diff -up qpdf-10.2.0/libqpdf/QPDF.cc.relax qpdf-10.2.0/libqpdf/QPDF.cc }
void -@@ -270,7 +280,13 @@ QPDF::processFile(char const* descriptio +@@ -216,7 +226,13 @@ QPDF::processFile(char const* descriptio { FileInputSource* fi = new FileInputSource(); fi->setFile(description, filep, close_file); @@ -40,9 +40,9 @@ diff -up qpdf-10.2.0/libqpdf/QPDF.cc.relax qpdf-10.2.0/libqpdf/QPDF.cc }
void -diff -up qpdf-10.2.0/libqpdf/QPDF_encryption.cc.relax qpdf-10.2.0/libqpdf/QPDF_encryption.cc ---- qpdf-10.2.0/libqpdf/QPDF_encryption.cc.relax 2021-02-23 16:41:58.000000000 +0100 -+++ qpdf-10.2.0/libqpdf/QPDF_encryption.cc 2021-02-24 12:37:17.267561185 +0100 +diff -up qpdf-9.0.1/libqpdf/QPDF_encryption.cc.relax qpdf-9.0.1/libqpdf/QPDF_encryption.cc +--- qpdf-9.0.1/libqpdf/QPDF_encryption.cc.relax 2019-09-20 14:07:56.000000000 +0200 ++++ qpdf-9.0.1/libqpdf/QPDF_encryption.cc 2019-10-01 13:19:56.086467631 +0200 @@ -1,6 +1,8 @@ // This file implements methods from the QPDF class that involve // encryption. @@ -63,7 +63,7 @@ diff -up qpdf-10.2.0/libqpdf/QPDF_encryption.cc.relax qpdf-10.2.0/libqpdf/QPDF_e static unsigned char const padding_string[] = { 0x28, 0xbf, 0x4e, 0x5e, 0x4e, 0x75, 0x8a, 0x41, 0x64, 0x00, 0x4e, 0x56, 0xff, 0xfa, 0x01, 0x08, -@@ -1150,6 +1156,12 @@ QPDF::getKeyForObject( +@@ -1140,6 +1146,12 @@ QPDF::getKeyForObject( void QPDF::decryptString(std::string& str, int objid, int generation) { @@ -76,7 +76,7 @@ diff -up qpdf-10.2.0/libqpdf/QPDF_encryption.cc.relax qpdf-10.2.0/libqpdf/QPDF_e if (objid == 0) { return; -@@ -1230,6 +1242,10 @@ QPDF::decryptString(std::string& str, in +@@ -1220,6 +1232,10 @@ QPDF::decryptString(std::string& str, in QUtil::int_to_string(objid) + " " + QUtil::int_to_string(generation) + ": " + e.what()); } @@ -87,8 +87,8 @@ diff -up qpdf-10.2.0/libqpdf/QPDF_encryption.cc.relax qpdf-10.2.0/libqpdf/QPDF_e }
void -@@ -1240,6 +1256,12 @@ QPDF::decryptStream(PointerHolder<Encryp - QPDFObjectHandle& stream_dict, +@@ -1231,6 +1247,12 @@ QPDF::decryptStream(PointerHolder<Encryp + bool is_attachment_stream, std::vector<PointerHolder<Pipeline> >& heap) { +#ifdef HAVE_GNUTLS @@ -100,7 +100,7 @@ diff -up qpdf-10.2.0/libqpdf/QPDF_encryption.cc.relax qpdf-10.2.0/libqpdf/QPDF_e std::string type; if (stream_dict.getKey("/Type").isName()) { -@@ -1361,6 +1383,10 @@ QPDF::decryptStream(PointerHolder<Encryp +@@ -1360,6 +1382,10 @@ QPDF::decryptStream(PointerHolder<Encryp toI(key.length())); } heap.push_back(pipeline); @@ -111,9 +111,9 @@ diff -up qpdf-10.2.0/libqpdf/QPDF_encryption.cc.relax qpdf-10.2.0/libqpdf/QPDF_e }
void -diff -up qpdf-10.2.0/libqpdf/QPDFWriter.cc.relax qpdf-10.2.0/libqpdf/QPDFWriter.cc ---- qpdf-10.2.0/libqpdf/QPDFWriter.cc.relax 2021-02-23 16:41:58.000000000 +0100 -+++ qpdf-10.2.0/libqpdf/QPDFWriter.cc 2021-02-24 12:35:50.716329452 +0100 +diff -up qpdf-9.0.1/libqpdf/QPDFWriter.cc.relax qpdf-9.0.1/libqpdf/QPDFWriter.cc +--- qpdf-9.0.1/libqpdf/QPDFWriter.cc.relax 2019-09-20 14:07:56.000000000 +0200 ++++ qpdf-9.0.1/libqpdf/QPDFWriter.cc 2019-10-01 13:16:49.665013937 +0200 @@ -24,6 +24,10 @@ #include <algorithm> #include <stdlib.h> diff --git a/qpdf-s390x-disable-streamtest.patch b/qpdf-s390x-disable-streamtest.patch deleted file mode 100644 index 921d676..0000000 --- a/qpdf-s390x-disable-streamtest.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/libqpdf/QPDFWriter.cc b/libqpdf/QPDFWriter.cc -index 1968214..0b9b59d 100644 ---- a/libqpdf/QPDFWriter.cc -+++ b/libqpdf/QPDFWriter.cc -@@ -2096,7 +2096,6 @@ QPDFWriter::writeObjectStream(QPDFObjectHandle object) - // This condition occurred in a fuzz input. Ideally we - // should block it at at parse time, but it's not - // clear to me how to construct a case for this. -- QTC::TC("qpdf", "QPDFWriter stream in ostream"); - obj_to_write.warnIfPossible( - "stream found inside object stream; treating as null"); - obj_to_write = QPDFObjectHandle::newNull(); -diff --git a/qpdf/qpdf.testcov b/qpdf/qpdf.testcov -index 9a15ae6..ce58c3c 100644 ---- a/qpdf/qpdf.testcov -+++ b/qpdf/qpdf.testcov -@@ -442,7 +442,6 @@ QPDF xref skipped space 0 - QPDF eof skipping spaces before xref 1 - QPDF_encryption user matches owner V < 5 0 - QPDF_encryption same password 1 --QPDFWriter stream in ostream 0 - QPDFObjectHandle duplicate dict key 0 - QPDFWriter no encryption sig contents 0 - QPDFPageObjectHelper colorspace lookup 0 -diff --git a/qpdf/qtest/qpdf.test b/qpdf/qtest/qpdf.test -index 5a978d3..c9002ba 100644 ---- a/qpdf/qtest/qpdf.test -+++ b/qpdf/qtest/qpdf.test -@@ -996,7 +996,6 @@ my @bug_tests = ( - ["263", "empty xref stream", 2], - ["335a", "ozz-fuzz-12152", 2], - ["335b", "ozz-fuzz-14845", 2], -- ["fuzz-16214", "stream in object stream", 3, "--preserve-unreferenced"], - # When adding to this list, consider adding to SEED_CORPUS_FILES - # in fuzz/build.mk and updating the count in fuzz/qtest/fuzz.test. - ); diff --git a/qpdf.spec b/qpdf.spec index 44512e9..d6b329f 100644 --- a/qpdf.spec +++ b/qpdf.spec @@ -1,6 +1,6 @@ Summary: Command-line tools and library for transforming PDF files Name: qpdf -Version: 10.3.2 +Version: 10.1.0 Release: 1%{?dist} # MIT: e.g. libqpdf/sha2.c # upstream uses ASL 2.0 now, but he allowed other to distribute qpdf under @@ -10,11 +10,11 @@ URL: http://qpdf.sourceforge.net/ Source0: http://downloads.sourceforge.net/sourceforge/qpdf/qpdf-%%7Bversion%7D.tar.gz
Patch0: qpdf-doc.patch +# zlib has optimalization for aarch64 now, which gives different output after +# compression - patch erases 3 tests with generated object stream which were failing +Patch2: qpdf-erase-tests-with-generated-object-stream.patch # make qpdf working under FIPS, downstream patch -Patch1: qpdf-relax.patch -# now we have s390x specific patch in zlib which changes output -# so we need to disable one test because of it -Patch2: qpdf-s390x-disable-streamtest.patch +Patch3: qpdf-relax.patch
# gcc and gcc-c++ are no longer in buildroot by default # gcc is needed for qpdf-ctest.c @@ -96,10 +96,10 @@ QPDF Manual
# fix 'complete manual location' note in man pages %patch0 -p1 -b .doc -%patch1 -p1 -b .relax -%ifarch s390x -%patch2 -p1 -b .s390x-disable-streamtest +%ifarch aarch64 +%patch2 -p1 -b .erase-tests-with-generated-object-stream %endif +%patch3 -p1 -b .relax
%build # work-around check-rpaths errors @@ -135,7 +135,7 @@ make check %doc README.md TODO ChangeLog %license Artistic-2.0 %{_libdir}/libqpdf.so.28 -%{_libdir}/libqpdf.so.28.3.2 +%{_libdir}/libqpdf.so.28.1.0
%files devel %doc examples/*.cc examples/*.c @@ -148,25 +148,6 @@ make check
%changelog -* Thu May 20 2021 Zdenek Dohnal zdohnal@redhat.com - 10.3.2-1 -- 1958536 - qpdf-10.3.2 is available - -* Mon Apr 19 2021 Zdenek Dohnal zdohnal@redhat.com - 10.3.1-2 -- aarch64 specific patches were removed from zlib, so no need for ours -- zlib got downstream patches on s390x, we need to patch qpdf test suite for it - -* Fri Mar 12 2021 Zdenek Dohnal zdohnal@redhat.com - 10.3.1-1 -- 1937988 - qpdf-10.3.1 is available - -* Thu Mar 11 2021 Zdenek Dohnal zdohnal@redhat.com - 10.3.0-1 -- 1935799 - qpdf-10.3.0 is available - -* Wed Feb 24 2021 Zdenek Dohnal zdohnal@redhat.com - 10.2.0-1 -- 1932052 - qpdf-10.2.0 is available - -* Wed Jan 27 2021 Fedora Release Engineering releng@fedoraproject.org - 10.1.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - * Mon Jan 11 2021 Zdenek Dohnal zdohnal@redhat.com - 10.1.0-1 - 1912951 - qpdf-10.1.0 is available
diff --git a/sources b/sources index f22c2cf..eeee810 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (qpdf-10.3.2.tar.gz) = 4e630959abf27d1801e36d0cbd754945ded42ade9299057a6b9a642c7cb2a3f8242e274642f1c33a65b4a5a77562d91dcbe64fd5772d483cbe5edb4a6a389219 +SHA512 (qpdf-10.1.0.tar.gz) = f9b22d89fc62e430e6232c840ad74d220ac9eb09d7f2dfe2c42c1c943d35b5fd25e2abec9970ac19ad7ad25dc3d95c74e68e50bad395abf815cf71c432233106