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=3e2876d6430da....
Change:
+%ifarch aarch64
Thanks.
Full change:
============
commit 3e2876d6430daebb43a788b393a8a1e3882e365f
Author: Zdenek Dohnal <zdohnal(a)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-%{version}.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(a)redhat.com> - 10.3.2-1
-- 1958536 - qpdf-10.3.2 is available
-
-* Mon Apr 19 2021 Zdenek Dohnal <zdohnal(a)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(a)redhat.com> - 10.3.1-1
-- 1937988 - qpdf-10.3.1 is available
-
-* Thu Mar 11 2021 Zdenek Dohnal <zdohnal(a)redhat.com> - 10.3.0-1
-- 1935799 - qpdf-10.3.0 is available
-
-* Wed Feb 24 2021 Zdenek Dohnal <zdohnal(a)redhat.com> - 10.2.0-1
-- 1932052 - qpdf-10.2.0 is available
-
-* Wed Jan 27 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 10.1.0-2
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
-
* Mon Jan 11 2021 Zdenek Dohnal <zdohnal(a)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