diff --git a/README.en.md b/README.en.md deleted file mode 100644 index f8f45f3e2ae3b7ac55f3342ce5a4d204b5e69556..0000000000000000000000000000000000000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# qpdf - -#### Description -{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md deleted file mode 100644 index 5c1b7279da47f72fd8d830c8c5873dadb3b2e809..0000000000000000000000000000000000000000 --- a/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# qpdf - -#### 介绍 -{**以下是码云平台说明,您可以替换此简介** -码云是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 -无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 码云特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 -5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/qpdf-8.4.2.tar.gz b/qpdf-8.4.2.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..cc3a0423d0f47fa7fe9d692d811fa877213c5f3e Binary files /dev/null and b/qpdf-8.4.2.tar.gz differ diff --git a/qpdf-doc.patch b/qpdf-doc.patch new file mode 100644 index 0000000000000000000000000000000000000000..5227358ce12898076eecdcc88748e27e75c324cb --- /dev/null +++ b/qpdf-doc.patch @@ -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) 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 0000000000000000000000000000000000000000..d19f21e01cff98d02ae87214850a46b1deb54ac3 --- /dev/null +++ b/qpdf-erase-tests-with-generated-object-stream.patch @@ -0,0 +1,142 @@ +diff -up qpdf-8.1.0/examples/qtest/filter-tokens.test.erase-tests-with-generated-object-stream qpdf-8.1.0/examples/qtest/filter-tokens.test +--- qpdf-8.1.0/examples/qtest/filter-tokens.test.erase-tests-with-generated-object-stream 2018-06-26 16:25:29.028242814 +0200 ++++ qpdf-8.1.0/examples/qtest/filter-tokens.test 2018-06-26 16:27:17.456366872 +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-8.1.0/examples/qtest/invert-images.test.erase-tests-with-generated-object-stream qpdf-8.1.0/examples/qtest/invert-images.test +--- qpdf-8.1.0/examples/qtest/invert-images.test.erase-tests-with-generated-object-stream 2018-06-23 13:50:11.000000000 +0200 ++++ qpdf-8.1.0/examples/qtest/invert-images.test 2018-06-26 16:25:15.832347910 +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-8.1.0/examples/qtest/set-form-values.test.erase-tests-with-generated-object-stream qpdf-8.1.0/examples/qtest/set-form-values.test +--- qpdf-8.1.0/examples/qtest/set-form-values.test.erase-tests-with-generated-object-stream 2018-06-26 16:25:24.971275053 +0200 ++++ qpdf-8.1.0/examples/qtest/set-form-values.test 2018-06-26 16:27:26.641291590 +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-8.1.0/libqpdf/qpdf-c.cc.erase-tests-with-generated-object-stream qpdf-8.1.0/libqpdf/qpdf-c.cc +--- qpdf-8.1.0/libqpdf/qpdf-c.cc.erase-tests-with-generated-object-stream 2018-06-23 13:50:11.000000000 +0200 ++++ qpdf-8.1.0/libqpdf/qpdf-c.cc 2018-06-26 16:25:15.832347910 +0200 +@@ -302,7 +302,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; + } + +@@ -515,7 +514,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-8.1.0/libqpdf/QPDFWriter.cc.erase-tests-with-generated-object-stream qpdf-8.1.0/libqpdf/QPDFWriter.cc +--- qpdf-8.1.0/libqpdf/QPDFWriter.cc.erase-tests-with-generated-object-stream 2018-06-23 13:50:11.000000000 +0200 ++++ qpdf-8.1.0/libqpdf/QPDFWriter.cc 2018-06-26 16:25:15.833347901 +0200 +@@ -3221,8 +3221,6 @@ QPDFWriter::writeLinearized() + { + if (this->m->deterministic_id) + { +- QTC::TC("qpdf", "QPDFWriter linearized deterministic ID", +- need_xref_stream ? 0 : 1); + computeDeterministicIDData(); + popPipelineStack(); + assert(this->m->md5_pipeline == 0); +@@ -3426,8 +3424,6 @@ QPDFWriter::writeStandard() + + if (this->m->deterministic_id) + { +- QTC::TC("qpdf", "QPDFWriter standard deterministic ID", +- this->m->object_stream_to_objects.empty() ? 0 : 1); + popPipelineStack(); + assert(this->m->md5_pipeline == 0); + } +diff -up qpdf-8.1.0/qpdf/qpdf.testcov.erase-tests-with-generated-object-stream qpdf-8.1.0/qpdf/qpdf.testcov +--- qpdf-8.1.0/qpdf/qpdf.testcov.erase-tests-with-generated-object-stream 2018-06-23 13:50:11.000000000 +0200 ++++ qpdf-8.1.0/qpdf/qpdf.testcov 2018-06-26 16:25:15.833347901 +0200 +@@ -126,7 +126,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 +@@ -180,7 +179,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 +@@ -264,8 +262,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-8.1.0/qpdf/qtest/qpdf.test.erase-tests-with-generated-object-stream qpdf-8.1.0/qpdf/qtest/qpdf.test +--- qpdf-8.1.0/qpdf/qtest/qpdf.test.erase-tests-with-generated-object-stream 2018-06-23 13:50:11.000000000 +0200 ++++ qpdf-8.1.0/qpdf/qtest/qpdf.test 2018-06-26 16:25:15.834347893 +0200 +@@ -1713,7 +1713,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'], +@@ -1757,8 +1756,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 new file mode 100644 index 0000000000000000000000000000000000000000..f3363fa6b459fe5355aea0785b2ba6d224bb001c --- /dev/null +++ b/qpdf.spec @@ -0,0 +1,85 @@ +Name: qpdf +Version: 8.2.1 +Release: 2 +Summary: A command-line program to transform PDF files +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 + +Patch0000: qpdf-doc.patch +%ifarch aarch64 +Patch0001: qpdf-erase-tests-with-generated-object-stream.patch +%endif + +BuildRequires: gcc gcc-c++ zlib-devel libjpeg-turbo-devel pcre-devel +BuildRequires: perl-interpreter perl-generators perl(Digest::MD5) +BuildRequires: autoconf automake libtool + +Provides: %{name}-libs = %{version}-%{release} +Obsoletes: %{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 also provides many +useful capabilities to developers of PDF-producing software or for people who just want +to look at the innards of a PDF file to learn more about how they work. + +%package devel +Summary: Development package for %{name} +Requires: %{name} = %{version}-%{release} + +%description devel +This package contains some header and library files for the development of %{name}. + +%package help +Summary: Help package for %{name} +BuildArch: noarch +Provides: %{name}-doc = %{version}-%{release} +Obsoletes: %{name}-doc < %{version}-%{release} + +%description help +This package contains some man help and other files for %{name}. + +%prep +%autosetup -p1 + +sed -i '1c#!/usr/bin/perl' qpdf/fix-qdf + +%build +autoreconf --verbose --force --install + +%configure --disable-static --enable-show-failed-test-output + +%make_build + +%install +%make_install + +%delete_la + +%check +make check + +%post -p /usr/sbin/ldconfig + +%postun -p /usr/sbin/ldconfig + +%files +%doc README.md TODO ChangeLog +%license Artistic-2.0 +%{_bindir}/* +%{_libdir}/libqpdf.so.* + +%files devel +%doc examples/*.cc examples/*.c +%{_includedir}/qpdf/ +%{_libdir}/libqpdf.so +%{_libdir}/pkgconfig/libqpdf.pc + +%files help +%{_pkgdocdir} +%{_mandir}/man1/* + +%changelog +* Wed Dec 11 2019 catastrowings - 8.2.1-2 +- openEuler init