summaryrefslogtreecommitdiff
path: root/debian
diff options
context:
space:
mode:
Diffstat (limited to 'debian')
-rw-r--r--debian/changelog24
-rw-r--r--debian/compat1
-rw-r--r--debian/control6
-rw-r--r--debian/copyright452
-rw-r--r--debian/patches/Fix-issue-25-year-missing-leading-zero-on-some-platforms.patch51
-rw-r--r--debian/patches/disable-test_docinfo_problems.patch27
-rw-r--r--debian/patches/disable-test_icc_extract.patch27
-rw-r--r--debian/patches/docs-build-use-DEB_VERSION_UPSTREAM.patch6
-rw-r--r--debian/patches/drop-installation-from-docs-contents.patch2
-rw-r--r--debian/patches/drop-pybind11-from-setup.py.patch22
-rw-r--r--debian/patches/drop-setuptools_scm_git_archive-from-setup.py.patch19
-rw-r--r--debian/patches/fix_xmp_metadata_without_xmpmeta_wrapper.patch110
-rw-r--r--debian/patches/series5
-rw-r--r--debian/tests/control2
14 files changed, 545 insertions, 209 deletions
diff --git a/debian/changelog b/debian/changelog
index a9e4c61..8abb809 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,27 @@
+pikepdf (1.5.0.post0+dfsh-1) unstable; urgency=medium
+
+ [ Sean Whitton ]
+ * New upstream release.
+ - Drop python3-defusedxml build-dep
+ - Drop python3-pytest-runner build-dep
+ + Drop rw-build-tree d/tests/control restriction
+ - Tighten python3-pybind11 dependency to require 2.3.0.
+ * Add drop-pybind11-from-setup.py.patch, disable-test_icc_extract.patch.
+ * Drop Fix-issue-25-year-missing-leading-zero-on-some-platforms.patch,
+ drop-setuptools_scm_git_archive-from-setup.py.patch and
+ fix_xmp_metadata_without_xmpmeta_wrapper.patch.
+ * Refresh remaining patches.
+ * d/copyright updates:
+ - Update Files-Excluded
+ - Update upstream copyright years.
+ - Add info for docs/images/pike-{release,tree}.jpg,
+ tests/resources/pike-flate-jp2.pdf
+
+ [ Ondřej Nový ]
+ * Use debhelper-compat instead of debian/compat.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Thu, 15 Aug 2019 18:47:38 +0100
+
pikepdf (1.0.5+dfsg-3) unstable; urgency=medium
* Cherry pick upstream commit 4d22fe4 as
diff --git a/debian/compat b/debian/compat
deleted file mode 100644
index f599e28..0000000
--- a/debian/compat
+++ /dev/null
@@ -1 +0,0 @@
-10
diff --git a/debian/control b/debian/control
index ee1d2cb..5e56555 100644
--- a/debian/control
+++ b/debian/control
@@ -4,13 +4,11 @@ Priority: optional
Maintainer: Debian Python Modules Team <python-modules-team@lists.alioth.debian.org>
Uploaders: Sean Whitton <spwhitton@spwhitton.name>
Build-Depends:
- debhelper (>= 10),
+ debhelper-compat (= 10),
dh-python,
libqpdf-dev,
python3-all-dev,
- python3-defusedxml,
- python3-pybind11,
- python3-pytest-runner,
+ python3-pybind11 (>= 2.3.0),
python3-setuptools,
python3-setuptools-scm,
python3-setuptools-scm-git-archive,
diff --git a/debian/copyright b/debian/copyright
index 815795c..a4356b9 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,10 +1,17 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: pikepdf
Source: https://github.com/pikepdf/pikepdf
-Files-Excluded: tests/resources/enron1_gs.pdf
+Files-Excluded: tests/resources/enron1_gs.pdf tests/resources/tree.png tests/resources/tree-icc.pdf
+Comment:
+ tests/resources/tree* is from
+ https://svgsilh.com/009688/image/1847429.html which claims CC0-1.0,
+ but it is a modified version of
+ https://pixabay.com/illustrations/christmas-tree-tree-christmas-1847429/
+ which is under a license which is not clearly DFSG:
+ https://pixabay.com/service/license/
Files: *
-Copyright: (C) 2017 James R. Barlow
+Copyright: (C) 2017-2019 James R. Barlow
License: MPL-2.0
Comment:
The file licenses/license.wheel.txt is relevant only when a binary
@@ -26,7 +33,7 @@ Files: debian/*
Copyright: (C) 2018 Sean Whitton <spwhitton@spwhitton.name>
License: MPL-2.0
-Files: docs/images/pike.jpg tests/resources/pike-jp2.pdf
+Files: docs/images/pike.jpg tests/resources/pike*jp2.pdf
Copyright: Public domain
License: public-domain
From the U.S. Fish and Wildlife Service National Image Library.
@@ -85,6 +92,18 @@ License: CeCILL-2.0 or CC-BY-SA-2.0-FR
Comment:
Obtained from: https://commons.wikimedia.org/wiki/File:Pike_square_img_3653.jpg
+Files: docs/images/pike-release.jpg
+Copyright: (C) 2014 Azerty197666
+License: CC-BY-SA-4.0
+Comment:
+ Obtained from: https://commons.wikimedia.org/wiki/File:Release_of_a_pike.jpg
+
+Files: docs/images/pike-tree.jpg
+Copyright: Public domain
+License: CC0-1.0
+Comment:
+ Obtained from: https://www.maxpixel.net/Pike-Fish-Fishing-1082782
+
License: MPL-2.0
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0.
@@ -1594,3 +1613,430 @@ License: CC-BY-SA-2.0-FR
demande.
.
Creative Commons peut être contacté à https://creativecommons.org/.
+
+License: CC-BY-SA-4.0
+ Attribution-ShareAlike 4.0 International
+ .
+ =======================================================================
+ .
+ Creative Commons Corporation ("Creative Commons") is not a law firm and
+ does not provide legal services or legal advice. Distribution of
+ Creative Commons public licenses does not create a lawyer-client or
+ other relationship. Creative Commons makes its licenses and related
+ information available on an "as-is" basis. Creative Commons gives no
+ warranties regarding its licenses, any material licensed under their
+ terms and conditions, or any related information. Creative Commons
+ disclaims all liability for damages resulting from their use to the
+ fullest extent possible.
+ .
+ Using Creative Commons Public Licenses
+ .
+ Creative Commons public licenses provide a standard set of terms and
+ conditions that creators and other rights holders may use to share
+ original works of authorship and other material subject to copyright
+ and certain other rights specified in the public license below. The
+ following considerations are for informational purposes only, are not
+ exhaustive, and do not form part of our licenses.
+ .
+ Considerations for licensors: Our public licenses are
+ intended for use by those authorized to give the public
+ permission to use material in ways otherwise restricted by
+ copyright and certain other rights. Our licenses are
+ irrevocable. Licensors should read and understand the terms
+ and conditions of the license they choose before applying it.
+ Licensors should also secure all rights necessary before
+ applying our licenses so that the public can reuse the
+ material as expected. Licensors should clearly mark any
+ material not subject to the license. This includes other CC-
+ licensed material, or material used under an exception or
+ limitation to copyright. More considerations for licensors:
+ wiki.creativecommons.org/Considerations_for_licensors
+ .
+ Considerations for the public: By using one of our public
+ licenses, a licensor grants the public permission to use the
+ licensed material under specified terms and conditions. If
+ the licensor's permission is not necessary for any reason--for
+ example, because of any applicable exception or limitation to
+ copyright--then that use is not regulated by the license. Our
+ licenses grant only permissions under copyright and certain
+ other rights that a licensor has authority to grant. Use of
+ the licensed material may still be restricted for other
+ reasons, including because others have copyright or other
+ rights in the material. A licensor may make special requests,
+ such as asking that all changes be marked or described.
+ Although not required by our licenses, you are encouraged to
+ respect those requests where reasonable. More_considerations
+ for the public:
+ wiki.creativecommons.org/Considerations_for_licensees
+ .
+ =======================================================================
+ .
+ Creative Commons Attribution-ShareAlike 4.0 International Public
+ License
+ .
+ By exercising the Licensed Rights (defined below), You accept and agree
+ to be bound by the terms and conditions of this Creative Commons
+ Attribution-ShareAlike 4.0 International Public License ("Public
+ License"). To the extent this Public License may be interpreted as a
+ contract, You are granted the Licensed Rights in consideration of Your
+ acceptance of these terms and conditions, and the Licensor grants You
+ such rights in consideration of benefits the Licensor receives from
+ making the Licensed Material available under these terms and
+ conditions.
+ .
+ .
+ Section 1 -- Definitions.
+ .
+ a. Adapted Material means material subject to Copyright and Similar
+ Rights that is derived from or based upon the Licensed Material
+ and in which the Licensed Material is translated, altered,
+ arranged, transformed, or otherwise modified in a manner requiring
+ permission under the Copyright and Similar Rights held by the
+ Licensor. For purposes of this Public License, where the Licensed
+ Material is a musical work, performance, or sound recording,
+ Adapted Material is always produced where the Licensed Material is
+ synched in timed relation with a moving image.
+ .
+ b. Adapter's License means the license You apply to Your Copyright
+ and Similar Rights in Your contributions to Adapted Material in
+ accordance with the terms and conditions of this Public License.
+ .
+ c. BY-SA Compatible License means a license listed at
+ creativecommons.org/compatiblelicenses, approved by Creative
+ Commons as essentially the equivalent of this Public License.
+ .
+ d. Copyright and Similar Rights means copyright and/or similar rights
+ closely related to copyright including, without limitation,
+ performance, broadcast, sound recording, and Sui Generis Database
+ Rights, without regard to how the rights are labeled or
+ categorized. For purposes of this Public License, the rights
+ specified in Section 2(b)(1)-(2) are not Copyright and Similar
+ Rights.
+ .
+ e. Effective Technological Measures means those measures that, in the
+ absence of proper authority, may not be circumvented under laws
+ fulfilling obligations under Article 11 of the WIPO Copyright
+ Treaty adopted on December 20, 1996, and/or similar international
+ agreements.
+ .
+ f. Exceptions and Limitations means fair use, fair dealing, and/or
+ any other exception or limitation to Copyright and Similar Rights
+ that applies to Your use of the Licensed Material.
+ .
+ g. License Elements means the license attributes listed in the name
+ of a Creative Commons Public License. The License Elements of this
+ Public License are Attribution and ShareAlike.
+ .
+ h. Licensed Material means the artistic or literary work, database,
+ or other material to which the Licensor applied this Public
+ License.
+ .
+ i. Licensed Rights means the rights granted to You subject to the
+ terms and conditions of this Public License, which are limited to
+ all Copyright and Similar Rights that apply to Your use of the
+ Licensed Material and that the Licensor has authority to license.
+ .
+ j. Licensor means the individual(s) or entity(ies) granting rights
+ under this Public License.
+ .
+ k. Share means to provide material to the public by any means or
+ process that requires permission under the Licensed Rights, such
+ as reproduction, public display, public performance, distribution,
+ dissemination, communication, or importation, and to make material
+ available to the public including in ways that members of the
+ public may access the material from a place and at a time
+ individually chosen by them.
+ .
+ l. Sui Generis Database Rights means rights other than copyright
+ resulting from Directive 96/9/EC of the European Parliament and of
+ the Council of 11 March 1996 on the legal protection of databases,
+ as amended and/or succeeded, as well as other essentially
+ equivalent rights anywhere in the world.
+ .
+ m. You means the individual or entity exercising the Licensed Rights
+ under this Public License. Your has a corresponding meaning.
+ .
+ .
+ Section 2 -- Scope.
+ .
+ a. License grant.
+ .
+ 1. Subject to the terms and conditions of this Public License,
+ the Licensor hereby grants You a worldwide, royalty-free,
+ non-sublicensable, non-exclusive, irrevocable license to
+ exercise the Licensed Rights in the Licensed Material to:
+ .
+ a. reproduce and Share the Licensed Material, in whole or
+ in part; and
+ .
+ b. produce, reproduce, and Share Adapted Material.
+ .
+ 2. Exceptions and Limitations. For the avoidance of doubt, where
+ Exceptions and Limitations apply to Your use, this Public
+ License does not apply, and You do not need to comply with
+ its terms and conditions.
+ .
+ 3. Term. The term of this Public License is specified in Section
+ 6(a).
+ .
+ 4. Media and formats; technical modifications allowed. The
+ Licensor authorizes You to exercise the Licensed Rights in
+ all media and formats whether now known or hereafter created,
+ and to make technical modifications necessary to do so. The
+ Licensor waives and/or agrees not to assert any right or
+ authority to forbid You from making technical modifications
+ necessary to exercise the Licensed Rights, including
+ technical modifications necessary to circumvent Effective
+ Technological Measures. For purposes of this Public License,
+ simply making modifications authorized by this Section 2(a)
+ (4) never produces Adapted Material.
+ .
+ 5. Downstream recipients.
+ .
+ a. Offer from the Licensor -- Licensed Material. Every
+ recipient of the Licensed Material automatically
+ receives an offer from the Licensor to exercise the
+ Licensed Rights under the terms and conditions of this
+ Public License.
+ .
+ b. Additional offer from the Licensor -- Adapted Material.
+ Every recipient of Adapted Material from You
+ automatically receives an offer from the Licensor to
+ exercise the Licensed Rights in the Adapted Material
+ under the conditions of the Adapter's License You apply.
+ .
+ c. No downstream restrictions. You may not offer or impose
+ any additional or different terms or conditions on, or
+ apply any Effective Technological Measures to, the
+ Licensed Material if doing so restricts exercise of the
+ Licensed Rights by any recipient of the Licensed
+ Material.
+ .
+ 6. No endorsement. Nothing in this Public License constitutes or
+ may be construed as permission to assert or imply that You
+ are, or that Your use of the Licensed Material is, connected
+ with, or sponsored, endorsed, or granted official status by,
+ the Licensor or others designated to receive attribution as
+ provided in Section 3(a)(1)(A)(i).
+ .
+ b. Other rights.
+ .
+ 1. Moral rights, such as the right of integrity, are not
+ licensed under this Public License, nor are publicity,
+ privacy, and/or other similar personality rights; however, to
+ the extent possible, the Licensor waives and/or agrees not to
+ assert any such rights held by the Licensor to the limited
+ extent necessary to allow You to exercise the Licensed
+ Rights, but not otherwise.
+ .
+ 2. Patent and trademark rights are not licensed under this
+ Public License.
+ .
+ 3. To the extent possible, the Licensor waives any right to
+ collect royalties from You for the exercise of the Licensed
+ Rights, whether directly or through a collecting society
+ under any voluntary or waivable statutory or compulsory
+ licensing scheme. In all other cases the Licensor expressly
+ reserves any right to collect such royalties.
+ .
+ .
+ Section 3 -- License Conditions.
+ .
+ Your exercise of the Licensed Rights is expressly made subject to the
+ following conditions.
+ .
+ a. Attribution.
+ .
+ 1. If You Share the Licensed Material (including in modified
+ form), You must:
+ .
+ a. retain the following if it is supplied by the Licensor
+ with the Licensed Material:
+ .
+ i. identification of the creator(s) of the Licensed
+ Material and any others designated to receive
+ attribution, in any reasonable manner requested by
+ the Licensor (including by pseudonym if
+ designated);
+ .
+ ii. a copyright notice;
+ .
+ iii. a notice that refers to this Public License;
+ .
+ iv. a notice that refers to the disclaimer of
+ warranties;
+ .
+ v. a URI or hyperlink to the Licensed Material to the
+ extent reasonably practicable;
+ .
+ b. indicate if You modified the Licensed Material and
+ retain an indication of any previous modifications; and
+ .
+ c. indicate the Licensed Material is licensed under this
+ Public License, and include the text of, or the URI or
+ hyperlink to, this Public License.
+ .
+ 2. You may satisfy the conditions in Section 3(a)(1) in any
+ reasonable manner based on the medium, means, and context in
+ which You Share the Licensed Material. For example, it may be
+ reasonable to satisfy the conditions by providing a URI or
+ hyperlink to a resource that includes the required
+ information.
+ .
+ 3. If requested by the Licensor, You must remove any of the
+ information required by Section 3(a)(1)(A) to the extent
+ reasonably practicable.
+ .
+ b. ShareAlike.
+ .
+ In addition to the conditions in Section 3(a), if You Share
+ Adapted Material You produce, the following conditions also apply.
+ .
+ 1. The Adapter's License You apply must be a Creative Commons
+ license with the same License Elements, this version or
+ later, or a BY-SA Compatible License.
+ .
+ 2. You must include the text of, or the URI or hyperlink to, the
+ Adapter's License You apply. You may satisfy this condition
+ in any reasonable manner based on the medium, means, and
+ context in which You Share Adapted Material.
+ .
+ 3. You may not offer or impose any additional or different terms
+ or conditions on, or apply any Effective Technological
+ Measures to, Adapted Material that restrict exercise of the
+ rights granted under the Adapter's License You apply.
+ .
+ .
+ Section 4 -- Sui Generis Database Rights.
+ .
+ Where the Licensed Rights include Sui Generis Database Rights that
+ apply to Your use of the Licensed Material:
+ .
+ a. for the avoidance of doubt, Section 2(a)(1) grants You the right
+ to extract, reuse, reproduce, and Share all or a substantial
+ portion of the contents of the database;
+ .
+ b. if You include all or a substantial portion of the database
+ contents in a database in which You have Sui Generis Database
+ Rights, then the database in which You have Sui Generis Database
+ Rights (but not its individual contents) is Adapted Material,
+ .
+ including for purposes of Section 3(b); and
+ c. You must comply with the conditions in Section 3(a) if You Share
+ all or a substantial portion of the contents of the database.
+ .
+ For the avoidance of doubt, this Section 4 supplements and does not
+ replace Your obligations under this Public License where the Licensed
+ Rights include other Copyright and Similar Rights.
+ .
+ .
+ Section 5 -- Disclaimer of Warranties and Limitation of Liability.
+ .
+ a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
+ EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
+ AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
+ ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
+ IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
+ WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
+ ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
+ KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
+ ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
+ .
+ b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
+ TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
+ NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
+ INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
+ COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
+ USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
+ ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
+ DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
+ IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
+ .
+ c. The disclaimer of warranties and limitation of liability provided
+ above shall be interpreted in a manner that, to the extent
+ possible, most closely approximates an absolute disclaimer and
+ waiver of all liability.
+ .
+ .
+ Section 6 -- Term and Termination.
+ .
+ a. This Public License applies for the term of the Copyright and
+ Similar Rights licensed here. However, if You fail to comply with
+ this Public License, then Your rights under this Public License
+ terminate automatically.
+ .
+ b. Where Your right to use the Licensed Material has terminated under
+ Section 6(a), it reinstates:
+ .
+ 1. automatically as of the date the violation is cured, provided
+ it is cured within 30 days of Your discovery of the
+ violation; or
+ .
+ 2. upon express reinstatement by the Licensor.
+ .
+ For the avoidance of doubt, this Section 6(b) does not affect any
+ right the Licensor may have to seek remedies for Your violations
+ of this Public License.
+ .
+ c. For the avoidance of doubt, the Licensor may also offer the
+ Licensed Material under separate terms or conditions or stop
+ distributing the Licensed Material at any time; however, doing so
+ will not terminate this Public License.
+ .
+ d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
+ License.
+ .
+ .
+ Section 7 -- Other Terms and Conditions.
+ .
+ a. The Licensor shall not be bound by any additional or different
+ terms or conditions communicated by You unless expressly agreed.
+ .
+ b. Any arrangements, understandings, or agreements regarding the
+ Licensed Material not stated herein are separate from and
+ independent of the terms and conditions of this Public License.
+ .
+ .
+ Section 8 -- Interpretation.
+ .
+ a. For the avoidance of doubt, this Public License does not, and
+ shall not be interpreted to, reduce, limit, restrict, or impose
+ conditions on any use of the Licensed Material that could lawfully
+ be made without permission under this Public License.
+ .
+ b. To the extent possible, if any provision of this Public License is
+ deemed unenforceable, it shall be automatically reformed to the
+ minimum extent necessary to make it enforceable. If the provision
+ cannot be reformed, it shall be severed from this Public License
+ without affecting the enforceability of the remaining terms and
+ conditions.
+ .
+ c. No term or condition of this Public License will be waived and no
+ failure to comply consented to unless expressly agreed to by the
+ Licensor.
+ .
+ d. Nothing in this Public License constitutes or may be interpreted
+ as a limitation upon, or waiver of, any privileges and immunities
+ that apply to the Licensor or You, including from the legal
+ processes of any jurisdiction or authority.
+ .
+ .
+ =======================================================================
+ .
+ Creative Commons is not a party to its public licenses.
+ Notwithstanding, Creative Commons may elect to apply one of its public
+ licenses to material it publishes and in those instances will be
+ considered the "Licensor." Except for the limited purpose of indicating
+ that material is shared under a Creative Commons public license or as
+ otherwise permitted by the Creative Commons policies published at
+ creativecommons.org/policies, Creative Commons does not authorize the
+ use of the trademark "Creative Commons" or any other trademark or logo
+ of Creative Commons without its prior written consent including,
+ without limitation, in connection with any unauthorized modifications
+ to any of its public licenses or any other arrangements,
+ understandings, or agreements concerning use of licensed material. For
+ the avoidance of doubt, this paragraph does not form part of the public
+ licenses.
+ .
+ Creative Commons may be contacted at creativecommons.org.
diff --git a/debian/patches/Fix-issue-25-year-missing-leading-zero-on-some-platforms.patch b/debian/patches/Fix-issue-25-year-missing-leading-zero-on-some-platforms.patch
deleted file mode 100644
index 8c51aad..0000000
--- a/debian/patches/Fix-issue-25-year-missing-leading-zero-on-some-platforms.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From: "James R. Barlow" <jim@purplerock.ca>
-Date: Tue, 12 Feb 2019 20:42:11 -0800
-Subject: Fix issue #25 - year missing leading zero on some platforms
-
-Closes #25
-
-(cherry picked from commit 4d22fe47912c518e8b3348aedccdac3f11ed81d7)
----
- src/pikepdf/models/metadata.py | 7 +++++--
- tests/test_metadata.py | 3 ++-
- 2 files changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/src/pikepdf/models/metadata.py b/src/pikepdf/models/metadata.py
-index 1a0eeb2..65934cd 100644
---- a/src/pikepdf/models/metadata.py
-+++ b/src/pikepdf/models/metadata.py
-@@ -121,8 +121,11 @@ def encode_pdf_date(d: datetime) -> str:
- the local time.
- """
-
-- pdfmark_date_fmt = r'%Y%m%d%H%M%S'
-- s = d.strftime(pdfmark_date_fmt)
-+ # The formatting of %Y is not consistent as described in
-+ # https://bugs.python.org/issue13305 and underspecification in libc.
-+ # So explicitly format the year with leading zeros
-+ s = "{:04d}".format(d.year)
-+ s += d.strftime(r'%m%d%H%M%S')
- tz = d.strftime('%z')
- if tz:
- sign, tz_hours, tz_mins = tz[0], tz[1:3], tz[3:5]
-diff --git a/tests/test_metadata.py b/tests/test_metadata.py
-index 1d41878..41a879c 100644
---- a/tests/test_metadata.py
-+++ b/tests/test_metadata.py
-@@ -3,7 +3,7 @@ from datetime import datetime, timezone, timedelta
- import re
-
- import pytest
--from hypothesis import given
-+from hypothesis import given, example
- from hypothesis.strategies import integers
- import pikepdf
- from pikepdf import Pdf, Dictionary, Name, PasswordError, Stream
-@@ -252,6 +252,7 @@ def test_date_docinfo_from_xmp():
- integers(0, 99),
- integers(0, 99),
- )
-+@example(1, 1, 1, 0, 0, 0)
- def test_random_dates(year, month, day, hour, mins, sec):
- date_args = year, month, day, hour, mins, sec
- xmp = '{:04d}-{:02d}-{:02d}T{:02d}:{:02d}:{:02d}'.format(*date_args)
diff --git a/debian/patches/disable-test_docinfo_problems.patch b/debian/patches/disable-test_docinfo_problems.patch
index a69ca9a..fdcd1fa 100644
--- a/debian/patches/disable-test_docinfo_problems.patch
+++ b/debian/patches/disable-test_docinfo_problems.patch
@@ -9,7 +9,7 @@ Needs a test resource whose DFSG status is in doubt.
--- a/tests/test_metadata.py
+++ b/tests/test_metadata.py
-@@ -50,12 +50,6 @@ def trivial(resources):
+@@ -58,12 +58,6 @@ def trivial(resources):
@pytest.fixture
@@ -22,12 +22,10 @@ Needs a test resource whose DFSG status is in doubt.
def invalid_creationdate(resources):
# Has nuls in docinfo, old PDF
return Pdf.open(resources / 'invalid_creationdate.pdf')
-@@ -320,34 +314,6 @@ def test_remove_attribute_metadata(sandw
-
- # Ensure the whole node was deleted
+@@ -337,37 +331,6 @@ def test_remove_attribute_metadata(sandw
assert not re.search(r'rdf:Description xmlns:[^\s]+ rdf:about=""/', str(xmp))
--
--
+
+
-def test_docinfo_problems(enron1, invalid_creationdate):
- meta = enron1.open_metadata()
- meta._load() # File has invalid XML sequence &#0;
@@ -45,15 +43,20 @@ Needs a test resource whose DFSG status is in doubt.
-
-
-def test_wrong_xml(enron1):
-- enron1.Root.Metadata = Stream(enron1, b"""
+- enron1.Root.Metadata = Stream(
+- enron1,
+- b"""
- <test><xml>This is valid xml but not valid XMP</xml></test>
-- """.strip())
+- """.strip(),
+- )
- meta = enron1.open_metadata()
-- with pytest.raises(ValueError, message='not XMP'):
+- with pytest.raises(ValueError, match='not XMP'):
- with meta:
- pass
-- with pytest.raises(ValueError, message='not XMP'):
+- with pytest.raises(ValueError, match='not XMP'):
- meta['pdfaid:part']
-
-
+-
+-
def test_no_x_xmpmeta(trivial):
+ trivial.Root.Metadata = Stream(
+ trivial,
diff --git a/debian/patches/disable-test_icc_extract.patch b/debian/patches/disable-test_icc_extract.patch
new file mode 100644
index 0000000..3f6973f
--- /dev/null
+++ b/debian/patches/disable-test_icc_extract.patch
@@ -0,0 +1,27 @@
+From: Sean Whitton <spwhitton@spwhitton.name>
+Date: Thu, 15 Aug 2019 18:42:49 +0100
+Subject: disable test_icc_extract
+
+Requires a test resource in Files-Excluded.
+---
+ tests/test_image_access.py | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/tests/test_image_access.py b/tests/test_image_access.py
+index d4625d5..113a5ef 100644
+--- a/tests/test_image_access.py
++++ b/tests/test_image_access.py
+@@ -317,13 +317,6 @@ def test_icc_use(resources):
+ assert pim.icc.profile.xcolor_space == 'GRAY'
+
+
+-def test_icc_extract(resources):
+- xobj, _pdf = first_image_in(resources / 'tree-icc.pdf')
+-
+- pim = PdfImage(xobj)
+- assert pim.as_pil_image().info['icc_profile'] == pim.icc.tobytes()
+-
+-
+ def test_stacked_compression(resources):
+ xobj, _pdf = first_image_in(resources / 'pike-flate-jp2.pdf')
+
diff --git a/debian/patches/docs-build-use-DEB_VERSION_UPSTREAM.patch b/debian/patches/docs-build-use-DEB_VERSION_UPSTREAM.patch
index e440dca..f880317 100644
--- a/debian/patches/docs-build-use-DEB_VERSION_UPSTREAM.patch
+++ b/debian/patches/docs-build-use-DEB_VERSION_UPSTREAM.patch
@@ -8,8 +8,8 @@ Subject: docs build use DEB_VERSION_UPSTREAM
--- a/docs/conf.py
+++ b/docs/conf.py
-@@ -52,8 +52,6 @@ else:
- # documentation root, use os.path.abspath to make it absolute, like shown here.
+@@ -76,8 +76,6 @@ else:
+ sys.path.insert(0, os.path.join(os.path.abspath('.'), './_ext'))
sys.path.insert(0, os.path.join(os.path.abspath('.'), '..'))
-import pikepdf
@@ -17,7 +17,7 @@ Subject: docs build use DEB_VERSION_UPSTREAM
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
-@@ -101,7 +99,7 @@ author = u'James R. Barlow'
+@@ -123,7 +121,7 @@ author = u'James R. Barlow'
# |version| and |release|, also used in various other places throughout the
# built documents.
diff --git a/debian/patches/drop-installation-from-docs-contents.patch b/debian/patches/drop-installation-from-docs-contents.patch
index 65ca879..bfd6dae 100644
--- a/debian/patches/drop-installation-from-docs-contents.patch
+++ b/debian/patches/drop-installation-from-docs-contents.patch
@@ -13,6 +13,6 @@ Subject: drop installation from docs contents
:name: intro_toc
- installation
- changelog
+ release_notes
tutorial
objects
diff --git a/debian/patches/drop-pybind11-from-setup.py.patch b/debian/patches/drop-pybind11-from-setup.py.patch
new file mode 100644
index 0000000..90dc374
--- /dev/null
+++ b/debian/patches/drop-pybind11-from-setup.py.patch
@@ -0,0 +1,22 @@
+From: Sean Whitton <spwhitton@spwhitton.name>
+Date: Thu, 15 Aug 2019 18:12:41 +0100
+Subject: drop pybind11 from setup.py
+
+We are successfully providing pybind11 as a build-dep but ocrmypdf's
+setup.py fails to detect it for some reason.
+---
+ setup.py | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 59e9b3b..c1f62b2 100644
+--- a/setup.py
++++ b/setup.py
+@@ -138,7 +138,6 @@ setup(
+ setup_requires=[
+ 'setuptools_scm',
+ 'setuptools_scm_git_archive',
+- 'pybind11 >= 2.3.0, < 3',
+ ],
+ use_scm_version=True,
+ tests_require=tests_require,
diff --git a/debian/patches/drop-setuptools_scm_git_archive-from-setup.py.patch b/debian/patches/drop-setuptools_scm_git_archive-from-setup.py.patch
deleted file mode 100644
index 9349e43..0000000
--- a/debian/patches/drop-setuptools_scm_git_archive-from-setup.py.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-From: Sean Whitton <spwhitton@spwhitton.name>
-Date: Wed, 10 Oct 2018 08:17:05 -0700
-Subject: drop setuptools_scm_git_archive from setup.py
-
-Pending resolution of #910742.
----
- setup.py | 1 -
- 1 file changed, 1 deletion(-)
-
---- a/setup.py
-+++ b/setup.py
-@@ -134,7 +134,6 @@ setup(
- setup_requires=[
- 'pytest-runner',
- 'setuptools_scm',
-- 'setuptools_scm_git_archive',
- 'pybind11 >= 2.2.4, < 3'
- ],
- use_scm_version=True,
diff --git a/debian/patches/fix_xmp_metadata_without_xmpmeta_wrapper.patch b/debian/patches/fix_xmp_metadata_without_xmpmeta_wrapper.patch
deleted file mode 100644
index 0254bee..0000000
--- a/debian/patches/fix_xmp_metadata_without_xmpmeta_wrapper.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From d31ea8fed2004345b3c274172ff0c28b7c6aca16 Mon Sep 17 00:00:00 2001
-From: "James R. Barlow" <jim@purplerock.ca>
-Date: Wed, 6 Feb 2019 00:36:59 -0800
-Subject: [PATCH] Fix handling of XMP metadata with no <x:xmpmeta> wrapper
-
----
- src/pikepdf/models/metadata.py | 12 ++++++++--
- tests/test_metadata.py | 41 ++++++++++++++++++++++++++++++++--
- 2 files changed, 49 insertions(+), 4 deletions(-)
-
-diff --git a/src/pikepdf/models/metadata.py b/src/pikepdf/models/metadata.py
-index 58c5a9d..23d246b 100644
---- a/src/pikepdf/models/metadata.py
-+++ b/src/pikepdf/models/metadata.py
-@@ -428,6 +428,14 @@ def _get_subelements(self, node):
- return result
- return ''
-
-+ def _get_rdf_root(self):
-+ rdf = self._xmp.find('.//rdf:RDF', self.NS)
-+ if rdf is None:
-+ rdf = self._xmp.getroot()
-+ if not rdf.tag == '{http://www.w3.org/1999/02/22-rdf-syntax-ns#}RDF':
-+ raise ValueError("Metadata seems to be XML but not XMP")
-+ return rdf
-+
- def _get_elements(self, name=''):
- """Get elements from XMP
-
-@@ -452,7 +460,7 @@ def _get_elements(self, name=''):
-
- """
- qname = self._qname(name)
-- rdf = self._xmp.find('.//rdf:RDF', self.NS)
-+ rdf = self._get_rdf_root()
- for rdfdesc in rdf.findall('rdf:Description[@rdf:about=""]', self.NS):
- if qname and qname in rdfdesc.keys():
- yield (rdfdesc, qname, rdfdesc.get(qname), rdf)
-@@ -540,7 +548,7 @@ def add_array(node, items):
- raise TypeError(val)
- except StopIteration:
- # Insert a new node
-- rdf = self._xmp.find('.//rdf:RDF', self.NS)
-+ rdf = self._get_rdf_root()
- if str(self._qname(key)) in LANG_ALTS:
- val = AltList([clean(val)])
- if isinstance(val, (list, set)):
-diff --git a/tests/test_metadata.py b/tests/test_metadata.py
-index abe05ff..be654c8 100644
---- a/tests/test_metadata.py
-+++ b/tests/test_metadata.py
-@@ -6,7 +6,7 @@
- from hypothesis import given
- from hypothesis.strategies import integers
- import pikepdf
--from pikepdf import Pdf, Dictionary, Name, PasswordError
-+from pikepdf import Pdf, Dictionary, Name, PasswordError, Stream
- from pikepdf.models.metadata import (
- decode_pdf_date, encode_pdf_date,
- XMP_NS_DC, XMP_NS_PDF, XMP_NS_XMP,
-@@ -285,7 +285,7 @@ def test_bad_char_rejection(trivial):
- ET.fromstring(str(xmp))
-
-
--def test_xpacket(sandwich):
-+def test_xpacket_generation(sandwich):
- xmpstr1 = sandwich.Root.Metadata.read_bytes()
- xpacket_begin = b'<?xpacket begin='
- xpacket_end = b'<?xpacket end='
-@@ -336,3 +336,40 @@ def test_docinfo_problems(enron1, invalid_creationdate):
- with meta as xmp:
- xmp['xmp:CreateDate'] = 'invalid date'
- assert 'could not be updated' in warned[0].message.args[0]
-+
-+
-+def test_wrong_xml(enron1):
-+ enron1.Root.Metadata = Stream(enron1, b"""
-+ <test><xml>This is valid xml but not valid XMP</xml></test>
-+ """.strip())
-+ meta = enron1.open_metadata()
-+ with pytest.raises(ValueError, message='not XMP'):
-+ with meta:
-+ pass
-+ with pytest.raises(ValueError, message='not XMP'):
-+ meta['pdfaid:part']
-+
-+
-+def test_no_x_xmpmeta(trivial):
-+ trivial.Root.Metadata = Stream(trivial, b"""
-+ <?xpacket begin="\xef\xbb\xbf" id="W5M0MpCehiHzreSzNTczkc9d"?>
-+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-+ xmlns:xmp="http://ns.adobe.com/xap/1.0/">
-+ <rdf:Description rdf:about=""
-+ xmlns:pdfaid="http://www.aiim.org/pdfa/ns/id/"
-+ xmlns:xmp="http://ns.adobe.com/xap/1.0/">
-+ <pdfaid:part>1</pdfaid:part>
-+ <pdfaid:conformance>A</pdfaid:conformance>
-+ <xmp:CreatorTool>Simple Scan 3.30.2</xmp:CreatorTool>
-+ <xmp:CreateDate>2019-02-05T07:08:46+01:00</xmp:CreateDate>
-+ <xmp:ModifyDate>2019-02-05T07:08:46+01:00</xmp:ModifyDate>
-+ <xmp:MetadataDate>2019-02-05T07:08:46+01:00</xmp:MetadataDate>
-+ </rdf:Description>
-+ </rdf:RDF>
-+ <?xpacket end="w"?>
-+ """.strip())
-+
-+ with trivial.open_metadata() as xmp:
-+ assert xmp._get_rdf_root() is not None
-+ xmp['pdfaid:part'] = '2'
-+ assert xmp['pdfaid:part'] == '2'
diff --git a/debian/patches/series b/debian/patches/series
index 152c5b8..57f09d3 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,6 +1,5 @@
docs-build-use-DEB_VERSION_UPSTREAM.patch
drop-installation-from-docs-contents.patch
-drop-setuptools_scm_git_archive-from-setup.py.patch
-fix_xmp_metadata_without_xmpmeta_wrapper.patch
disable-test_docinfo_problems.patch
-Fix-issue-25-year-missing-leading-zero-on-some-platforms.patch
+drop-pybind11-from-setup.py.patch
+disable-test_icc_extract.patch
diff --git a/debian/tests/control b/debian/tests/control
index c20747f..3c956a8 100644
--- a/debian/tests/control
+++ b/debian/tests/control
@@ -1,6 +1,4 @@
Tests: test-suite
-Restrictions: rw-build-tree
-# ^ pytest-runner writes stuff to the source tree
Depends: @,
python3-pytest,
python3-pytest-helpers-namespace,