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=dcf5187289cfa...
https://src.fedoraproject.org/cgit/rpms/qpdf.git/commit/?id=eae1516501e2e....
Change:
+%ifarch s390x
-%ifarch aarch64
Thanks.
Full change:
============
commit dcf5187289cfa9cc6e6faf8c491c49041b28a989
Author: Zdenek Dohnal <zdohnal(a)redhat.com>
Date: Mon Apr 19 14:48:14 2021 +0200
zlib got downstream patches on s390x, we need to patch qpdf test suite for it
diff --git a/qpdf-s390x-disable-streamtest.patch b/qpdf-s390x-disable-streamtest.patch
new file mode 100644
index 0000000..8a157c3
--- /dev/null
+++ b/qpdf-s390x-disable-streamtest.patch
@@ -0,0 +1,36 @@
+diff --git a/libqpdf/QPDFWriter.cc b/libqpdf/QPDFWriter.cc
+index fccefe0..2793191 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 b4e7c46..3e935d0 100644
+--- a/qpdf/qpdf.testcov
++++ b/qpdf/qpdf.testcov
+@@ -443,7 +443,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 afb6668..b8f55a2 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],
+ # 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 345e410..ac49afb 100644
--- a/qpdf.spec
+++ b/qpdf.spec
@@ -12,6 +12,9 @@ Source0:
http://downloads.sourceforge.net/sourceforge/qpdf/qpdf-%{version}.tar.g
Patch0: qpdf-doc.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
# gcc and gcc-c++ are no longer in buildroot by default
# gcc is needed for qpdf-ctest.c
@@ -94,6 +97,9 @@ 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
+%endif
%build
# work-around check-rpaths errors
@@ -144,6 +150,7 @@ make check
%changelog
* 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
commit eae1516501e2efd536782b636418e716e2fd019a
Author: Zdenek Dohnal <zdohnal(a)redhat.com>
Date: Mon Apr 19 13:54:23 2021 +0200
aarch64 specific patches were removed from zlib, so no need for ours
diff --git a/qpdf-erase-tests-with-generated-object-stream.patch
b/qpdf-erase-tests-with-generated-object-stream.patch
deleted file mode 100644
index 62a06f1..0000000
--- a/qpdf-erase-tests-with-generated-object-stream.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-diff -up
qpdf-10.2.0/examples/qtest/filter-tokens.test.erase-tests-with-generated-object-stream
qpdf-10.2.0/examples/qtest/filter-tokens.test
----
qpdf-10.2.0/examples/qtest/filter-tokens.test.erase-tests-with-generated-object-stream 2021-02-24
12:45:32.347357149 +0100
-+++ qpdf-10.2.0/examples/qtest/filter-tokens.test 2021-02-24 12:47:01.379611993 +0100
-@@ -15,13 +15,9 @@ $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"});
--
- cleanup();
-
--$td->report(2);
-+$td->report(1);
-
- sub cleanup
- {
-diff -up
qpdf-10.2.0/examples/qtest/invert-images.test.erase-tests-with-generated-object-stream
qpdf-10.2.0/examples/qtest/invert-images.test
----
qpdf-10.2.0/examples/qtest/invert-images.test.erase-tests-with-generated-object-stream 2021-02-23
16:41:58.000000000 +0100
-+++ qpdf-10.2.0/examples/qtest/invert-images.test 2021-02-24 12:45:32.347357149 +0100
-@@ -19,13 +19,13 @@ $td->runtest("invert images",
- $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-10.2.0/examples/qtest/set-form-values.test.erase-tests-with-generated-object-stream
qpdf-10.2.0/examples/qtest/set-form-values.test
----
qpdf-10.2.0/examples/qtest/set-form-values.test.erase-tests-with-generated-object-stream 2021-02-23
16:41:58.000000000 +0100
-+++ qpdf-10.2.0/examples/qtest/set-form-values.test 2021-02-24 12:45:32.347357149 +0100
-@@ -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-10.2.0/libqpdf/qpdf-c.cc.erase-tests-with-generated-object-stream
qpdf-10.2.0/libqpdf/qpdf-c.cc
---- qpdf-10.2.0/libqpdf/qpdf-c.cc.erase-tests-with-generated-object-stream 2021-02-23
16:41:58.000000000 +0100
-+++ qpdf-10.2.0/libqpdf/qpdf-c.cc 2021-02-24 12:45:32.348357141 +0100
-@@ -331,7 +331,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;
- }
-
-@@ -542,7 +541,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-10.2.0/libqpdf/QPDFWriter.cc.erase-tests-with-generated-object-stream
qpdf-10.2.0/libqpdf/QPDFWriter.cc
---- qpdf-10.2.0/libqpdf/QPDFWriter.cc.erase-tests-with-generated-object-stream 2021-02-23
16:41:58.000000000 +0100
-+++ qpdf-10.2.0/libqpdf/QPDFWriter.cc 2021-02-24 12:45:32.348357141 +0100
-@@ -3445,8 +3445,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);
-@@ -3654,8 +3652,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-10.2.0/qpdf/qpdf.testcov.erase-tests-with-generated-object-stream
qpdf-10.2.0/qpdf/qpdf.testcov
---- qpdf-10.2.0/qpdf/qpdf.testcov.erase-tests-with-generated-object-stream 2021-02-23
16:41:58.000000000 +0100
-+++ qpdf-10.2.0/qpdf/qpdf.testcov 2021-02-24 12:45:32.348357141 +0100
-@@ -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
-@@ -260,8 +258,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-10.2.0/qpdf/qtest/qpdf.test.erase-tests-with-generated-object-stream
qpdf-10.2.0/qpdf/qtest/qpdf.test
---- qpdf-10.2.0/qpdf/qtest/qpdf.test.erase-tests-with-generated-object-stream 2021-02-23
16:41:58.000000000 +0100
-+++ qpdf-10.2.0/qpdf/qtest/qpdf.test 2021-02-24 12:45:32.349357133 +0100
-@@ -3254,7 +3254,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'],
-@@ -3298,8 +3297,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.spec b/qpdf.spec
index 7f0e54a..345e410 100644
--- a/qpdf.spec
+++ b/qpdf.spec
@@ -1,7 +1,7 @@
Summary: Command-line tools and library for transforming PDF files
Name: qpdf
Version: 10.3.1
-Release: 1%{?dist}
+Release: 2%{?dist}
# MIT: e.g. libqpdf/sha2.c
# upstream uses ASL 2.0 now, but he allowed other to distribute qpdf under
# old license (see README)
@@ -10,11 +10,8 @@ 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
-Patch3: qpdf-relax.patch
+Patch1: qpdf-relax.patch
# gcc and gcc-c++ are no longer in buildroot by default
# gcc is needed for qpdf-ctest.c
@@ -96,10 +93,7 @@ QPDF Manual
# fix 'complete manual location' note in man pages
%patch0 -p1 -b .doc
-%ifarch aarch64
-%patch2 -p1 -b .erase-tests-with-generated-object-stream
-%endif
-%patch3 -p1 -b .relax
+%patch1 -p1 -b .relax
%build
# work-around check-rpaths errors
@@ -148,6 +142,9 @@ make check
%changelog
+* 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
+
* Fri Mar 12 2021 Zdenek Dohnal <zdohnal(a)redhat.com> - 10.3.1-1
- 1937988 - qpdf-10.3.1 is available