Toshaan Bharvani
3 years ago
commit
ad422912cf
5 changed files with 757 additions and 0 deletions
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
diff -up qpdf-8.2.1/manual/fix-qdf.1.in.doc qpdf-8.2.1/manual/fix-qdf.1.in |
||||
--- qpdf-8.2.1/manual/fix-qdf.1.in.doc 2018-08-18 16:56:19.000000000 +0200 |
||||
+++ qpdf-8.2.1/manual/fix-qdf.1.in 2018-09-24 14:24:26.340341484 +0200 |
||||
@@ -14,5 +14,4 @@ the same file with stream lengths, cross |
||||
object stream offset tables regenerated. |
||||
.PP |
||||
For details about fix-qdf and about PDF files in QDF mode, please see |
||||
-the qpdf manual, which can be found in @docdir@/qpdf-manual.html or |
||||
-@docdir@/qpdf-manual.pdf. |
||||
+the qpdf manual, which can be found in qpdf-doc package. |
||||
diff -up qpdf-8.2.1/manual/qpdf.1.in.doc qpdf-8.2.1/manual/qpdf.1.in |
||||
--- qpdf-8.2.1/manual/qpdf.1.in.doc 2018-09-24 14:24:26.340341484 +0200 |
||||
+++ qpdf-8.2.1/manual/qpdf.1.in 2018-09-24 14:26:18.171462618 +0200 |
||||
@@ -16,4 +16,4 @@ useful primarily to PDF developers. |
||||
.PP |
||||
For a summary of qpdf's options, please run |
||||
\fBqpdf \-\-help\fR. A complete manual can be found in |
||||
-@docdir@/qpdf-manual.html or @docdir@/qpdf-manual.pdf. |
||||
+qpdf-doc package. |
||||
diff -up qpdf-8.2.1/manual/zlib-flate.1.in.doc qpdf-8.2.1/manual/zlib-flate.1.in |
||||
--- qpdf-8.2.1/manual/zlib-flate.1.in.doc 2018-08-18 16:56:19.000000000 +0200 |
||||
+++ qpdf-8.2.1/manual/zlib-flate.1.in 2018-09-24 14:24:26.340341484 +0200 |
||||
@@ -21,6 +21,6 @@ This program should not be used as a gen |
||||
tool. Use something like gzip(1) instead. |
||||
.PP |
||||
For details about qpdf, please see the qpdf manual, which can be found |
||||
-in @docdir@/qpdf-manual.html or @docdir@/qpdf-manual.pdf. |
||||
+in qpdf-doc package. |
||||
.SH "SEE ALSO" |
||||
qpdf(1), gzip(1) |
@ -0,0 +1,147 @@
@@ -0,0 +1,147 @@
|
||||
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$/); |
@ -0,0 +1,155 @@
@@ -0,0 +1,155 @@
|
||||
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 @@ |
||||
#include <string.h> |
||||
#include <memory.h> |
||||
|
||||
+#ifdef HAVE_GNUTLS |
||||
+# include <gnutls/crypto.h> |
||||
+#endif |
||||
+ |
||||
#include <qpdf/QTC.hh> |
||||
#include <qpdf/QUtil.hh> |
||||
#include <qpdf/Pipeline.hh> |
||||
@@ -261,7 +265,13 @@ QPDF::processFile(char const* filename, |
||||
{ |
||||
FileInputSource* fi = new FileInputSource(); |
||||
fi->setFilename(filename); |
||||
+#ifdef HAVE_GNUTLS |
||||
+ GNUTLS_FIPS140_SET_LAX_MODE(); |
||||
+#endif |
||||
processInputSource(fi, password); |
||||
+#ifdef HAVE_GNUTLS |
||||
+ GNUTLS_FIPS140_SET_STRICT_MODE(); |
||||
+#endif |
||||
} |
||||
|
||||
void |
||||
@@ -270,7 +280,13 @@ QPDF::processFile(char const* descriptio |
||||
{ |
||||
FileInputSource* fi = new FileInputSource(); |
||||
fi->setFile(description, filep, close_file); |
||||
+#ifdef HAVE_GNUTLS |
||||
+ GNUTLS_FIPS140_SET_LAX_MODE(); |
||||
+#endif |
||||
processInputSource(fi, password); |
||||
+#ifdef HAVE_GNUTLS |
||||
+ GNUTLS_FIPS140_SET_STRICT_MODE(); |
||||
+#endif |
||||
} |
||||
|
||||
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 |
||||
@@ -1,6 +1,8 @@ |
||||
// This file implements methods from the QPDF class that involve |
||||
// encryption. |
||||
|
||||
+#include <qpdf/qpdf-config.h> |
||||
+ |
||||
#include <qpdf/QPDF.hh> |
||||
|
||||
#include <qpdf/QPDFExc.hh> |
||||
@@ -18,6 +20,10 @@ |
||||
#include <assert.h> |
||||
#include <string.h> |
||||
|
||||
+#ifdef HAVE_GNUTLS |
||||
+# include <gnutls/crypto.h> |
||||
+#endif |
||||
+ |
||||
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( |
||||
void |
||||
QPDF::decryptString(std::string& str, int objid, int generation) |
||||
{ |
||||
+#ifdef HAVE_GNUTLS |
||||
+ unsigned oldmode = gnutls_fips140_mode_enabled(); |
||||
+ |
||||
+ gnutls_fips140_set_mode(GNUTLS_FIPS140_LAX, GNUTLS_FIPS140_SET_MODE_THREAD); |
||||
+#endif |
||||
+ |
||||
if (objid == 0) |
||||
{ |
||||
return; |
||||
@@ -1230,6 +1242,10 @@ QPDF::decryptString(std::string& str, in |
||||
QUtil::int_to_string(objid) + " " + |
||||
QUtil::int_to_string(generation) + ": " + e.what()); |
||||
} |
||||
+ |
||||
+#ifdef HAVE_GNUTLS |
||||
+ gnutls_fips140_set_mode(static_cast<gnutls_fips_mode_t>(oldmode), GNUTLS_FIPS140_SET_MODE_THREAD); |
||||
+#endif |
||||
} |
||||
|
||||
void |
||||
@@ -1240,6 +1256,12 @@ QPDF::decryptStream(PointerHolder<Encryp |
||||
QPDFObjectHandle& stream_dict, |
||||
std::vector<PointerHolder<Pipeline> >& heap) |
||||
{ |
||||
+#ifdef HAVE_GNUTLS |
||||
+ unsigned oldmode = gnutls_fips140_mode_enabled(); |
||||
+ |
||||
+ gnutls_fips140_set_mode(GNUTLS_FIPS140_LAX, GNUTLS_FIPS140_SET_MODE_THREAD); |
||||
+#endif |
||||
+ |
||||
std::string type; |
||||
if (stream_dict.getKey("/Type").isName()) |
||||
{ |
||||
@@ -1361,6 +1383,10 @@ QPDF::decryptStream(PointerHolder<Encryp |
||||
toI(key.length())); |
||||
} |
||||
heap.push_back(pipeline); |
||||
+ |
||||
+#ifdef HAVE_GNUTLS |
||||
+ gnutls_fips140_set_mode(static_cast<gnutls_fips_mode_t>(oldmode), GNUTLS_FIPS140_SET_MODE_THREAD); |
||||
+#endif |
||||
} |
||||
|
||||
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 |
||||
@@ -24,6 +24,10 @@ |
||||
#include <algorithm> |
||||
#include <stdlib.h> |
||||
|
||||
+#ifdef HAVE_GNUTLS |
||||
+#include <gnutls/crypto.h> |
||||
+#endif |
||||
+ |
||||
QPDFWriter::Members::Members(QPDF& pdf) : |
||||
pdf(pdf), |
||||
filename("unspecified"), |
||||
@@ -321,6 +325,13 @@ void |
||||
QPDFWriter::setDeterministicID(bool val) |
||||
{ |
||||
this->m->deterministic_id = val; |
||||
+ |
||||
+#ifdef HAVE_GNUTLS |
||||
+ if (val) |
||||
+ GNUTLS_FIPS140_SET_LAX_MODE(); |
||||
+ else |
||||
+ GNUTLS_FIPS140_SET_STRICT_MODE(); |
||||
+#endif |
||||
} |
||||
|
||||
void |
||||
@@ -342,6 +353,13 @@ void |
||||
QPDFWriter::setPreserveEncryption(bool val) |
||||
{ |
||||
this->m->preserve_encryption = val; |
||||
+ |
||||
+#ifdef HAVE_GNUTLS |
||||
+ if (val) |
||||
+ GNUTLS_FIPS140_SET_STRICT_MODE(); |
||||
+ else |
||||
+ GNUTLS_FIPS140_SET_LAX_MODE(); |
||||
+#endif |
||||
} |
||||
|
||||
void |
@ -0,0 +1,36 @@
@@ -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. |
||||
); |
@ -0,0 +1,389 @@
@@ -0,0 +1,389 @@
|
||||
Summary: Command-line tools and library for transforming PDF files |
||||
Name: qpdf |
||||
Version: 10.3.1 |
||||
Release: 4%{?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) |
||||
License: (Artistic 2.0 or ASL 2.0) and MIT |
||||
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 |
||||
Patch1: qpdf-erase-tests-with-generated-object-stream.patch |
||||
# make qpdf working under FIPS, downstream patch |
||||
Patch2: qpdf-relax.patch |
||||
# 1950033 - Possible changes in zlib output causes FTBFS for qpdf |
||||
Patch3: qpdf-s390x-disable-streamtest.patch |
||||
|
||||
# gcc and gcc-c++ are no longer in buildroot by default |
||||
# gcc is needed for qpdf-ctest.c |
||||
BuildRequires: gcc |
||||
# gcc-c++ is need for everything except for qpdf-ctest |
||||
BuildRequires: gcc-c++ |
||||
# uses make |
||||
BuildRequires: make |
||||
|
||||
BuildRequires: zlib-devel |
||||
BuildRequires: libjpeg-turbo-devel |
||||
BuildRequires: pcre-devel |
||||
|
||||
# for gnutls crypto |
||||
BuildRequires: gnutls-devel |
||||
|
||||
# for fix-qdf and test suite |
||||
BuildRequires: perl-generators |
||||
BuildRequires: perl-interpreter |
||||
BuildRequires: perl(Carp) |
||||
BuildRequires: perl(Config) |
||||
BuildRequires: perl(constant) |
||||
BuildRequires: perl(Cwd) |
||||
BuildRequires: perl(Digest::MD5) |
||||
BuildRequires: perl(Digest::SHA) |
||||
BuildRequires: perl(File::Basename) |
||||
BuildRequires: perl(File::Copy) |
||||
BuildRequires: perl(File::Find) |
||||
BuildRequires: perl(File::Spec) |
||||
BuildRequires: perl(FileHandle) |
||||
BuildRequires: perl(IO::Handle) |
||||
BuildRequires: perl(IO::Select) |
||||
BuildRequires: perl(IO::Socket) |
||||
BuildRequires: perl(POSIX) |
||||
BuildRequires: perl(strict) |
||||
# perl(Term::ANSIColor) - not needed for tests |
||||
# perl(Term::ReadKey) - not needed for tests |
||||
|
||||
# for autoreconf |
||||
BuildRequires: autoconf |
||||
BuildRequires: automake |
||||
BuildRequires: libtool |
||||
|
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release} |
||||
|
||||
%package libs |
||||
Summary: QPDF library for transforming PDF files |
||||
|
||||
%package devel |
||||
Summary: Development files for QPDF library |
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release} |
||||
|
||||
%package doc |
||||
Summary: QPDF Manual |
||||
BuildArch: noarch |
||||
Requires: %{name}-libs = %{version}-%{release} |
||||
|
||||
%description |
||||
QPDF is a command-line program that does structural, content-preserving |
||||
transformations on PDF files. It could have been called something |
||||
like pdf-to-pdf. It includes support for merging and splitting PDFs |
||||
and to manipulate the list of pages in a PDF file. It is not a PDF viewer |
||||
or a program capable of converting PDF into other formats. |
||||
|
||||
%description libs |
||||
QPDF is a C++ library that inspect and manipulate the structure of PDF files. |
||||
It can encrypt and linearize files, expose the internals of a PDF file, |
||||
and do many other operations useful to PDF developers. |
||||
|
||||
%description devel |
||||
Header files and libraries necessary |
||||
for developing programs using the QPDF library. |
||||
|
||||
%description doc |
||||
QPDF Manual |
||||
|
||||
%prep |
||||
%setup -q |
||||
|
||||
# fix 'complete manual location' note in man pages |
||||
%patch0 -p1 -b .doc |
||||
%ifarch aarch64 |
||||
%patch1 -p1 -b .erase-tests-with-generated-object-stream |
||||
%endif |
||||
%patch2 -p1 -b .relax |
||||
%ifarch s390x |
||||
%patch3 -p1 -b .s390x-disable-streamtest |
||||
%endif |
||||
|
||||
%build |
||||
# work-around check-rpaths errors |
||||
autoreconf --verbose --force --install |
||||
# automake files needed to be regenerated in 8.4.0 - check if this can be removed |
||||
# in the next qpdf release |
||||
./autogen.sh |
||||
|
||||
%configure --disable-static \ |
||||
--enable-crypto-gnutls \ |
||||
--disable-implicit-crypto \ |
||||
--enable-show-failed-test-output |
||||
|
||||
%make_build |
||||
|
||||
%install |
||||
%make_install |
||||
|
||||
rm -f %{buildroot}%{_libdir}/libqpdf.la |
||||
|
||||
%check |
||||
make check |
||||
|
||||
%ldconfig_scriptlets libs |
||||
|
||||
%files |
||||
%{_bindir}/fix-qdf |
||||
%{_bindir}/qpdf |
||||
%{_bindir}/zlib-flate |
||||
%{_mandir}/man1/* |
||||
|
||||
%files libs |
||||
%doc README.md TODO ChangeLog |
||||
%license Artistic-2.0 |
||||
%{_libdir}/libqpdf.so.28 |
||||
%{_libdir}/libqpdf.so.28.3.1 |
||||
|
||||
%files devel |
||||
%doc examples/*.cc examples/*.c |
||||
%{_includedir}/qpdf/ |
||||
%{_libdir}/libqpdf.so |
||||
%{_libdir}/pkgconfig/libqpdf.pc |
||||
|
||||
%files doc |
||||
%{_pkgdocdir} |
||||
|
||||
|
||||
%changelog |
||||
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 10.3.1-4 |
||||
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags |
||||
Related: rhbz#1991688 |
||||
|
||||
* Tue Apr 20 2021 Zdenek Dohnal <zdohnal@redhat.com> - 10.3.1-3 |
||||
- 1950033 - Possible changes in zlib output causes FTBFS for qpdf |
||||
|
||||
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 10.3.1-2 |
||||
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 |
||||
|
||||
* 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 |
||||
|
||||
* Mon Nov 23 2020 Zdenek Dohnal <zdohnal@redhat.com> - 10.0.4-1 |
||||
- 1900262 - qpdf-10.0.4 is available |
||||
|
||||
* Thu Nov 05 2020 Zdenek Dohnal <zdohnal@redhat.com> - 10.0.3-2 |
||||
- make is no longer in buildroot by default |
||||
|
||||
* Mon Nov 02 2020 Zdenek Dohnal <zdohnal@redhat.com> - 10.0.3-1 |
||||
- 10.0.3 |
||||
|
||||
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 10.0.1-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild |
||||
|
||||
* Tue Apr 14 2020 Zdenek Dohnal <zdohnal@redhat.com> - 10.0.1-1 |
||||
- 10.0.1 |
||||
|
||||
* Wed Mar 25 2020 Jitka Plesnikova <jplesnik@redhat.com> - 9.1.1-3 |
||||
- Add all perl dependencies for tests |
||||
|
||||
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 9.1.1-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild |
||||
|
||||
* Mon Jan 27 2020 Zdenek Dohnal <zdohnal@redhat.com> - 9.1.1-1 |
||||
- 9.1.1 |
||||
|
||||
* Tue Nov 19 2019 Zdenek Dohnal <zdohnal@redhat.com> - 9.1.0-1 |
||||
- 9.1.0 |
||||
|
||||
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 8.4.2-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild |
||||
|
||||
* Fri May 31 2019 Zdenek Dohnal <zdohnal@redhat.com> - 8.4.2-1 |
||||
- 8.4.2 |
||||
|
||||
* Mon Mar 25 2019 Zdenek Dohnal <zdohnal@redhat.com> - 8.4.0-1 |
||||
- 8.4.0 |
||||
|
||||
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 8.3.0-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild |
||||
|
||||
* Mon Jan 14 2019 Zdenek Dohnal <zdohnal@redhat.com> - 8.3.0-1 |
||||
- 8.3.0 |
||||
|
||||
* Mon Sep 24 2018 Zdenek Dohnal <zdohnal@redhat.com> - 8.2.1-1 |
||||
- 8.2.1 |
||||
|
||||
* Tue Jul 24 2018 Zdenek Dohnal <zdohnal@redhat.com> - 8.1.0-4 |
||||
- correcting license |
||||
|
||||
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 8.1.0-3 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild |
||||
|
||||
* Wed Jul 11 2018 Zdenek Dohnal <zdohnal@redhat.com> - 8.1.0-2 |
||||
- ship license in correct tag, mention optional change of license |
||||
|
||||
* Mon Jun 25 2018 Zdenek Dohnal <zdohnal@redhat.com> - 8.1.0-1 |
||||
- 8.1.0 |
||||
- more tests fail because aarch64 zlib optimization - add patch for it |
||||
|
||||
* Fri May 25 2018 Zdenek Dohnal <zdohnal@redhat.com> - 8.0.2-3 |
||||
- erase failing tests for aarch64 because of zlib optimization |
||||
|
||||
* Mon Apr 16 2018 Zdenek Dohnal <zdohnal@redhat.com> |
||||
- CVE-2018-9918 qpdf: stack exhaustion in QPDFObjectHandle and QPDF_Dictionary classes in libqpdf.a [fedora-all] |
||||
|
||||
* Wed Mar 07 2018 Zdenek Dohnal <zdohnal@redhat.com> - 8.0.2-1 |
||||
- 8.0.2 |
||||
|
||||
* Mon Mar 05 2018 Zdenek Dohnal <zdohnal@redhat.com> - 8.0.1-1 |
||||
- 8.0.1 |
||||
|
||||
* Tue Feb 27 2018 Rex Dieter <rdieter@fedoraproject.org> - 8.0.0-2 |
||||
- use %%license, %%ldconfig_scriptlets, %%make_build, %%make_install |
||||
- %%files: track files more closely, libqpdf soname in particular |
||||
|
||||
* Mon Feb 26 2018 Zdenek Dohnal <zdohnal@redhat.com> - 8.0.0-1 |
||||
- rebase to 8.0.0 |
||||
|
||||
* Mon Feb 19 2018 Zdenek Dohnal <zdohnal@redhat.com> - 7.1.1-4 |
||||
- gcc and gcc-c++ are no longer in buildroot by default |
||||
|
||||
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 7.1.1-3 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild |
||||
|
||||
* Thu Feb 08 2018 Zdenek Dohnal <zdohnal@redhat.com> - 7.1.1-2 |
||||
- remove old stuff |
||||
|
||||
* Mon Feb 05 2018 Zdenek Dohnal <zdohnal@redhat.com> - 7.1.1-1 |
||||
- rebase to 7.1.1 |
||||
|
||||
* Tue Sep 19 2017 Zdenek Dohnal <zdohnal@redhat.com> - 7.0.0-1 |
||||
- rebase to 7.0.0 |
||||
|
||||
* Fri Aug 11 2017 Zdenek Dohnal <zdohnal@redhat.com> - 6.0.0-10 |
||||
- adding patches for CVE back (cups-filters needed to rebuild) |
||||
|
||||
* Mon Aug 07 2017 Zdenek Dohnal <zdohnal@redhat.com> - 6.0.0-9 |
||||
- removing patches for CVEs, because they break other things now |
||||
|
||||
* Thu Aug 03 2017 Zdenek Dohnal <zdohnal@redhat.com> - 6.0.0-8 |
||||
- 1477213 - Detect recursions loop resolving objects |
||||
- 1454820 - CVE-2017-9208 |
||||
- 1454820 - CVE-2017-9209 |
||||
- 1454820 - CVE-2017-9210 |
||||
|
||||
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 6.0.0-7 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild |
||||
|
||||
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 6.0.0-6 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild |
||||
|
||||
* Mon May 15 2017 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.0.0-5 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild |
||||
|
||||
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 6.0.0-4 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild |
||||
|
||||
* Wed Aug 03 2016 Jiri Popelka <jpopelka@redhat.com> - 6.0.0-3 |
||||
- %%{_defaultdocdir}/qpdf/ -> %%{_pkgdocdir} |
||||
|
||||
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 6.0.0-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild |
||||
|
||||
* Wed Nov 11 2015 Jiri Popelka <jpopelka@redhat.com> - 6.0.0-1 |
||||
- 6.0.0 |
||||
|
||||
* Mon Nov 09 2015 Jiri Popelka <jpopelka@redhat.com> - 5.2.0-1 |
||||
- 5.2.0 |
||||
|
||||
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.1.3-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild |
||||
|
||||
* Mon May 25 2015 Jiri Popelka <jpopelka@redhat.com> - 5.1.3 |
||||
- New upstream release 5.1.3 |
||||
|
||||
* Tue Apr 14 2015 Jiri Popelka <jpopelka@redhat.com> - 5.1.2-5 |
||||
- rebuilt |
||||
|
||||
* Mon Feb 16 2015 Jiri Popelka <jpopelka@redhat.com> - 5.1.2-4 |
||||
- rebuilt |
||||
|
||||
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.1.2-3 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild |
||||
|
||||
* Fri Aug 15 2014 Jiri Popelka <jpopelka@redhat.com> - 5.1.2-2 |
||||
- Use %%_defaultdocdir instead of %%doc |
||||
|
||||
* Mon Jun 09 2014 Jiri Popelka <jpopelka@redhat.com> - 5.1.2-1 |
||||
- 5.1.2 |
||||
|
||||
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.1.1-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild |
||||
|
||||
* Wed Jan 15 2014 Jiri Popelka <jpopelka@redhat.com> - 5.1.1-1 |
||||
- 5.1.1 |
||||
|
||||
* Wed Dec 18 2013 Jiri Popelka <jpopelka@redhat.com> - 5.1.0-1 |
||||
- 5.1.0 |
||||
|
||||
* Mon Oct 21 2013 Jiri Popelka <jpopelka@redhat.com> - 5.0.1-1 |
||||
- 5.0.1 |
||||
|
||||
* Sat Aug 03 2013 Petr Pisar <ppisar@redhat.com> - 5.0.0-4 |
||||
- Perl 5.18 rebuild |
||||
|
||||
* Mon Jul 22 2013 Jiri Popelka <jpopelka@redhat.com> - 5.0.0-3 |
||||
- change shebang to absolute path (#987040) |
||||
|
||||
* Wed Jul 17 2013 Petr Pisar <ppisar@redhat.com> - 5.0.0-2 |
||||
- Perl 5.18 rebuild |
||||
|
||||
* Thu Jul 11 2013 Jiri Popelka <jpopelka@redhat.com> - 5.0.0-1 |
||||
- 5.0.0 |
||||
|
||||
* Mon Jul 08 2013 Jiri Popelka <jpopelka@redhat.com> - 4.2.0-1 |
||||
- 4.2.0 |
||||
|
||||
* Thu May 23 2013 Jiri Popelka <jpopelka@redhat.com> - 4.1.0-3 |
||||
- fix 'complete manual location' note in man pages (#966534) |
||||
|
||||
* Tue May 07 2013 Jiri Popelka <jpopelka@redhat.com> - 4.1.0-2 |
||||
- some source files are under MIT license |
||||
|
||||
* Mon Apr 15 2013 Jiri Popelka <jpopelka@redhat.com> - 4.1.0-1 |
||||
- 4.1.0 |
||||
|
||||
* Tue Mar 05 2013 Jiri Popelka <jpopelka@redhat.com> - 4.0.1-3 |
||||
- work around gcc 4.8.0 issue on ppc64 (#915321) |
||||
- properly handle overridden compressed objects |
||||
|
||||
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0.1-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild |
||||
|
||||
* Fri Jan 18 2013 Jiri Popelka <jpopelka@redhat.com> 4.0.1-1 |
||||
- 4.0.1 |
||||
|
||||
* Wed Jan 02 2013 Jiri Popelka <jpopelka@redhat.com> 4.0.0-1 |
||||
- 4.0.0 |
||||
|
||||
* Fri Sep 07 2012 Jiri Popelka <jpopelka@redhat.com> 3.0.2-1 |
||||
- 3.0.2 |
||||
|
||||
* Thu Aug 16 2012 Jiri Popelka <jpopelka@redhat.com> 3.0.1-3 |
||||
- the previously added requirement doesn't need to be arch-specific |
||||
|
||||
* Thu Aug 16 2012 Jiri Popelka <jpopelka@redhat.com> 3.0.1-2 |
||||
- doc subpackage requires libs subpackage due to license file (#848466) |
||||
|
||||
* Wed Aug 15 2012 Jiri Popelka <jpopelka@redhat.com> 3.0.1-1 |
||||
- initial spec file |
Loading…
Reference in new issue