diff options
Diffstat (limited to 'dev-util/diffoscope')
-rw-r--r-- | dev-util/diffoscope/Manifest | 3 | ||||
-rw-r--r-- | dev-util/diffoscope/diffoscope-231-r1.ebuild (renamed from dev-util/diffoscope/diffoscope-231.ebuild) | 4 | ||||
-rw-r--r-- | dev-util/diffoscope/files/diffoscope-231-pypdf.patch | 180 |
3 files changed, 186 insertions, 1 deletions
diff --git a/dev-util/diffoscope/Manifest b/dev-util/diffoscope/Manifest index 62903b14b98b..fb1f07c36198 100644 --- a/dev-util/diffoscope/Manifest +++ b/dev-util/diffoscope/Manifest @@ -1,7 +1,8 @@ +AUX diffoscope-231-pypdf.patch 5490 BLAKE2B a0226b4cd7b8b0d257968597c19706bf228c720fb5d13ab93aa68187f739c6dcc8e222c5a79b1e4e3ab6209842535080b52a7885d6538b456de8c94ec9154e19 SHA512 91afae48467e84ac85f70854fee56df731fda445b32e852dcf77f9d3afb8f5c6964e3a9912bb332789c60a79da84e6251e270a977ee2f5b5cf16d12eeb312689 DIST diffoscope-229.tar.gz 3164192 BLAKE2B bee9fa1561ddcfde98cfa44cd6d66a28c636dbc7f3ec1f4895e91dfd3b66c039b68d53be0528b94c112552069886c3c81de4d9b9bc9038d183afdc9fdde6ddb9 SHA512 825c9c33f3088ba082ea3b998594445987558ee62b8b1fbfcded9b72a739faaa73908f8753b8772b3b1a8a43dbcfd52978265a18bdd92605defcd174884ccb23 DIST diffoscope-230.tar.gz 3164600 BLAKE2B f5ad44ff36d07fc5724895e661e0946b292146d004e97159fef1cb58ff38669702a3990740e4ea34300a9b48aeb10263aeb6bb332da3ec987c355ed5b910fedd SHA512 e025e5f95ae2fb9de466b886c58a44f64e0f654fb049bf9f035209fe7ca1fd0ccc14a382b17085c13bc9f2be0d368482d57a071a577cb87628ae7eb0060158ad DIST diffoscope-231.tar.gz 3164686 BLAKE2B 5fe1546f63a047def4d1c9acc94360085be87460de1c106381532d937d1ad16be64749b9021caa7980a61a0dfd822ed7163e0f52bb0cab0520962b84bb184650 SHA512 544510de0790fc8f0c62030bc557f923bad6d5c39b7364e9944ebcf9bc5c1ecf2b9ecc91cf9142e54a23b1f004f53e96ed5b6f2f4637fa76cebd2ed7d0e4721d EBUILD diffoscope-229.ebuild 3562 BLAKE2B 103db80102cb91b40241f3beb9b51118381ff90041a3a2e9f66356b4a16d088c9d0d76de19cf66dce634e96f3f0cf2337c9c5ada17460ec643c406a5be32d274 SHA512 ce0f6e56a4b9ce0ed00f2db3b0fa2143ffef59e253c321ac476d213f6937102c8af747016c6f8f5195b3b49c26bf12aef70309b725625869c20e6dfd2cfb39c4 EBUILD diffoscope-230.ebuild 3569 BLAKE2B 0f2c90d2ac24f75a70391d46994b148bdc9ee03793cb5548c8fec4acffc507d494b73e9e0d0d77b9128e8087bd4966af9c8c012dd9482304845026831bcb5a0e SHA512 67999a8f3074b144f9b73b99b0b76884fdfdca4afea7c6eb281ed392501289d99bc28c651530a81d2793427de50e24eaccf2fc9a6cfbcb255bd8ed506d15e859 -EBUILD diffoscope-231.ebuild 3568 BLAKE2B 7fd37f690793787c4855071df56e0a6ab88c3aa8d6a7683dc666956165f5830d3eee62f385376acb98f9ff6311fdf48ea5b7686ff670d34fe620936d197417dd SHA512 a6e2a888f506d2f385a6c59ad435398403b85440fd9b89953ac1956de383cffaf4decc6ecfff76ad7f03c90da719fe14bd2869a9726c99c7b0b5e455a33337d5 +EBUILD diffoscope-231-r1.ebuild 3618 BLAKE2B 6fb0b278c039391f4a004c578abbb70fc094b4bfe811a0e88273bd457816673fce97800ab288fd0166a77fbee9f1ed34f7558332577f72fc9545fa17162722fe SHA512 8a95a7ec9c32fd0e933e0559dac11794709b16c2b2ded689c65140ac0ab845436a433d655f64aeb8b523eb2ea8eeb785f8a3b1ecb1bce7cf32c212404553df89 MISC metadata.xml 2078 BLAKE2B 3bb126836e45e8d4e5b6170a12219ec9cceb1a12dca4658211b1971cb16fa5593622642ade363904cf24df16de0749b957d0fc03838d2a9a004484d0b551c886 SHA512 382cefe0478282000b74e404cdd9d636a0323fceb55b97fd8545190628c319e0c5e213c7d082198e4b8b1fc693a52ce85c52b3ad831778e6fadbe6ba401782f5 diff --git a/dev-util/diffoscope/diffoscope-231.ebuild b/dev-util/diffoscope/diffoscope-231-r1.ebuild index 0f8d6d4ddb54..cab11fbd86b6 100644 --- a/dev-util/diffoscope/diffoscope-231.ebuild +++ b/dev-util/diffoscope/diffoscope-231-r1.ebuild @@ -117,4 +117,8 @@ EPYTEST_DESELECT=( tests/comparators/test_macho.py::test_llvm_diff ) +PATCHES=( + "${FILESDIR}"/${PN}-231-pypdf.patch +) + distutils_enable_tests pytest diff --git a/dev-util/diffoscope/files/diffoscope-231-pypdf.patch b/dev-util/diffoscope/files/diffoscope-231-pypdf.patch new file mode 100644 index 000000000000..7b4365c80eca --- /dev/null +++ b/dev-util/diffoscope/files/diffoscope-231-pypdf.patch @@ -0,0 +1,180 @@ +https://bugs.gentoo.org/889250 + +(Can't yet submit upstream as can't login to gitlab.) +--- a/diffoscope.egg-info/requires.txt ++++ b/diffoscope.egg-info/requires.txt +@@ -11,7 +11,7 @@ binwalk + defusedxml + guestfs + jsondiff +-pypdf2 ++pypdf + python-debian + pyxattr + rpm-python +--- a/diffoscope/comparators/pdf.py ++++ b/diffoscope/comparators/pdf.py +@@ -34,17 +34,23 @@ from .utils.command import Command + logger = logging.getLogger(__name__) + + try: +- import PyPDF2 ++ try: ++ import pypdf ++ except ImportError: ++ import PyPDF2 + + try: +- # PyPDF 2.x +- from PyPDF2.errors import PdfReadError ++ from pypdf.errors import PdfReadError + except ImportError: +- # PyPDF 1.x +- from PyPDF2.utils import PdfReadError ++ try: ++ # PyPDF 2.x ++ from PyPDF2.errors import PdfReadError ++ except ImportError: ++ # PyPDF 1.x ++ from PyPDF2.utils import PdfReadError + + except ImportError: # noqa +- python_module_missing("PyPDF2") ++ python_module_missing("pypdf") + PyPDF2 = None + + +@@ -68,10 +74,10 @@ class PdfFile(File): + xs = [] + + if PyPDF2 is None: +- pkg = get_package_provider("pypdf2") ++ pkg = get_package_provider("pypdf") + infix = f" from the '{pkg}' package " if pkg else " " + self.add_comment( +- f"Installing the 'PyPDF2' Python module{infix}may produce a better output." ++ f"Installing the 'pypdf' Python module{infix}may produce a better output." + ) + else: + difference = Difference.from_text( +@@ -119,7 +125,7 @@ class PdfFile(File): + + return "\n".join(xs) + except PdfReadError as e: +- msg = f"Could not extract PyPDF2 metadata from {os.path.basename(file.name)}: {e}" ++ msg = f"Could not extract pypdf metadata from {os.path.basename(file.name)}: {e}" + self.add_comment(msg) + logger.error(msg) + return "" +@@ -142,7 +148,7 @@ class PdfFile(File): + + return "\n".join(xs) + except PdfReadError as e: +- msg = f"Could not extract PyPDF2 annotations from {os.path.basename(file.name)}: {e}" ++ msg = f"Could not extract pypdf annotations from {os.path.basename(file.name)}: {e}" + file.add_comment(msg) + logger.error(msg) + return "" +--- a/setup.py ++++ b/setup.py +@@ -66,7 +66,7 @@ setup( + "guestfs", + "jsondiff", + "python-debian", +- "pypdf2", ++ "pypdf", + "pyxattr", + "rpm-python", + "tlsh", +--- a/tests/comparators/test_pdf.py ++++ b/tests/comparators/test_pdf.py +@@ -70,7 +70,7 @@ def differences_metadata(pdf1, pdf1a): + + + @skip_unless_tools_exist("pdftotext") +-@skip_unless_module_exists("PyPDF2") ++@skip_unless_module_exists("pypdf") + def test_metadata(differences_metadata): + assert_diff(differences_metadata[0], "pdf_metadata_expected_diff") + +@@ -81,7 +81,7 @@ def differences_annotations(pdf3, pdf4): + + + @skip_unless_tools_exist("pdftotext") +-@skip_unless_module_exists("PyPDF2") ++@skip_unless_module_exists("pypdf") + def test_annotations(differences_annotations): + with open("tests/data/pdf_annotations_expected_diff", "w") as f: + f.write(differences_annotations[0].unified_diff) +--- a/diffoscope/comparators/pdf.py ++++ b/diffoscope/comparators/pdf.py +@@ -38,6 +38,7 @@ try: + import pypdf + except ImportError: + import PyPDF2 ++ pypdf = PyPDF2 + + try: + from pypdf.errors import PdfReadError +@@ -51,7 +52,7 @@ try: + + except ImportError: # noqa + python_module_missing("pypdf") +- PyPDF2 = None ++ pypdf = None + + + class Pdftotext(Command): +@@ -73,7 +74,7 @@ class PdfFile(File): + def compare_details(self, other, source=None): + xs = [] + +- if PyPDF2 is None: ++ if pypdf is None: + pkg = get_package_provider("pypdf") + infix = f" from the '{pkg}' package " if pkg else " " + self.add_comment( +@@ -113,7 +114,7 @@ class PdfFile(File): + + def dump_pypdf2_metadata(self, file): + try: +- pdf = PyPDF2.PdfFileReader(file.path) ++ pdf = pypdf.PdfReader(file.path) + document_info = pdf.getDocumentInfo() + + if document_info is None: +@@ -133,10 +133,10 @@ class PdfFile(File): + + def dump_pypdf2_annotations(self, file): + try: +- pdf = PyPDF2.PdfFileReader(file.path) ++ pdf = pypdf.PdfReader(file.path) + + xs = [] +- for x in range(pdf.getNumPages()): ++ for x in range(len(pdf.pages)): + page = pdf.getPage(x) + + try: +--- a/diffoscope/comparators/pdf.py ++++ b/diffoscope/comparators/pdf.py +@@ -115,7 +115,7 @@ class PdfFile(File): + def dump_pypdf2_metadata(self, file): + try: + pdf = pypdf.PdfReader(file.path) +- document_info = pdf.getDocumentInfo() ++ document_info = pdf.metadata + + if document_info is None: + return "" +--- a/diffoscope/comparators/pdf.py ++++ b/diffoscope/comparators/pdf.py +@@ -137,7 +137,7 @@ class PdfFile(File): + + xs = [] + for x in range(len(pdf.pages)): +- page = pdf.getPage(x) ++ page = pdf.pages[x] + + try: + for annot in page["/Annots"]: |