commit: 196162918bac8a6025ca7a68c0364519119b12da
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 15 00:15:54 2024 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Aug 15 00:26:14 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=19616291
dev-util/diffoscope: add 274
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-util/diffoscope/Manifest | 1 +
dev-util/diffoscope/diffoscope-274.ebuild | 144 +++++++++++++++++++++
.../files/diffoscope-274-new-zipdetails.patch | 87 +++++++++++++
3 files changed, 232 insertions(+)
diff --git a/dev-util/diffoscope/Manifest b/dev-util/diffoscope/Manifest
index b52abbe5aaca..8a1da68118df 100644
--- a/dev-util/diffoscope/Manifest
+++ b/dev-util/diffoscope/Manifest
@@ -2,3 +2,4 @@ DIST diffoscope-266.tar.bz2 3148610 BLAKE2B
28090b8a1e2315f9df43d254d3dbd4ed8f6d
DIST diffoscope-268.tar.bz2 3151657 BLAKE2B
2133611135347a9babfb55972ef5d456cc274634facc07ea8dc2c214147507d223a6fd8cf24541c04fc19c3510c7548bdaa5549f5587c9d99de7b61e64bd2f7d
SHA512
9a0f3c81e9beb171fdef8282ac3938a5534f894437f898ab1437cdeb30a12c7fb8a1a494479f46c41d65e78fe014b8c1e510a72d0673f3d0d769d71c4af12a5d
DIST diffoscope-271.tar.bz2 3155727 BLAKE2B
fa4ee93158cf41215d071aa3caa1956325fdbb1e4f1a9e392485117cb58b8142ac7f326cd650e72440a2512a08aa2c6a7d9c64a0fa8bf9768c9f0d97a45d872e
SHA512
f5688d82313f54a9b9db88c406cdd67f13aeb65a8aa844fa41a944f6beaa0b2189175c891ddaf3b345492141472ce0366fd22691c2c89fd9a3d8c0b8d62f476c
DIST diffoscope-272.tar.bz2 3155265 BLAKE2B
76f8475993dc8be7297b50a2dda71b965789f6de04143e22b3b28c25e6646d9744088a49181faeb488921eb192b85072d16fee35f41450ba389c491e6a43c7b5
SHA512
f74d0166526da10604f25ba0425d3acc540cb92780776d108b60b07d00fa1039ea5a3fde4fd260497e0cf6ae387457e6fff989c5795bca6ce14199f0c9a15174
+DIST diffoscope-274.tar.bz2 3165288 BLAKE2B
287d4ef0b4ba298a37659cc5599a06d520f3b751bfcf486def6279bbb80e7c72557fcca2ece900d74a8b44c3f9118b7ba8ed2e0933c60671c8c73ae43ea26f30
SHA512
dc0b804fa67bb7e01a3eb1814dbfe25e5d0069c43990b98d6c94dcb40b454e10f5aa20512559fbbd450e6e30f635c6f5dc03afb63e0d25bc04d5e617c7505f0b
diff --git a/dev-util/diffoscope/diffoscope-274.ebuild
b/dev-util/diffoscope/diffoscope-274.ebuild
new file mode 100644
index 000000000000..dfbbd82decc6
--- /dev/null
+++ b/dev-util/diffoscope/diffoscope-274.ebuild
@@ -0,0 +1,144 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..13} )
+PYTHON_REQ_USE="ncurses"
+inherit distutils-r1 toolchain-funcs
+
+DESCRIPTION="Will try to get to the bottom of what makes files or directories
different"
+HOMEPAGE="https://diffoscope.org/ https://pypi.org/project/diffoscope/"
+# We could use pypi, but upstream provide distribution tarballs, so let's use
those.
+# TODO: verify-sig
+SRC_URI="https://diffoscope.org/archive/${P}.tar.bz2"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc64 ~x86"
+IUSE="acl binutils bzip2 libcaca colord cpio +diff docx dtc e2fsprogs file
+find gettext gif gpg haskell hdf5 hex imagemagick iso java llvm lzma
+mono opendocument pascal pdf postscript R rpm sqlite squashfs
+ssh tar test tcpdump zip zlib zstd"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ || (
+ dev-python/python-magic[${PYTHON_USEDEP}]
+ sys-apps/file[python,${PYTHON_USEDEP}]
+ )
+ dev-python/libarchive-c[${PYTHON_USEDEP}]
+ dev-python/distro[${PYTHON_USEDEP}]
+ dev-python/tlsh[${PYTHON_USEDEP}]
+ acl? ( sys-apps/acl )
+ binutils? ( sys-devel/binutils )
+ bzip2? ( app-arch/bzip2 )
+ libcaca? ( media-libs/libcaca )
+ colord? ( x11-misc/colord )
+ cpio? ( app-alternatives/cpio )
+ diff? ( sys-apps/diffutils )
+ docx? ( app-text/docx2txt )
+ dtc? ( sys-apps/dtc )
+ e2fsprogs? ( sys-fs/e2fsprogs )
+ file? ( sys-apps/file )
+ find? ( sys-apps/findutils )
+ gettext? ( sys-devel/gettext )
+ gif? ( media-libs/giflib )
+ gpg? ( app-crypt/gnupg )
+ haskell? ( dev-lang/ghc )
+ hdf5? ( sci-libs/hdf5 )
+ hex? ( app-editors/vim-core )
+ imagemagick? ( media-gfx/imagemagick )
+ iso? ( app-cdr/cdrtools )
+ java? ( virtual/jdk )
+ llvm? ( sys-devel/llvm )
+ lzma? ( app-arch/xz-utils )
+ mono? ( dev-lang/mono )
+ opendocument? ( app-text/odt2txt )
+ pascal? ( dev-lang/fpc )
+ pdf? (
+ app-text/pdftk
+ app-text/poppler
+ dev-python/pypdf[${PYTHON_USEDEP}]
+ )
+ postscript? ( app-text/ghostscript-gpl )
+ R? ( dev-lang/R )
+ rpm? ( app-arch/rpm )
+ sqlite? ( dev-db/sqlite:3 )
+ squashfs? ( sys-fs/squashfs-tools )
+ ssh? ( virtual/openssh )
+ tar? ( app-arch/tar )
+ tcpdump? ( net-analyzer/tcpdump )
+ zip? ( app-arch/unzip )
+ zlib? ( app-arch/gzip )
+ zstd? ( app-arch/zstd )
+"
+
+# pull in optional tools for tests:
+# img2txt: bug #797688
+# docx2txt: bug #797688
+BDEPEND="
+ test? (
+ app-arch/p7zip
+ app-text/docx2txt
+ app-text/html2text
+ media-libs/libcaca
+ virtual/imagemagick-tools[jpeg]
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-new-zipdetails.patch
+)
+
+EPYTEST_DESELECT=(
+ # Test seems to use different tarball
+ tests/test_presenters.py::test_text_proper_indentation
+
+ # Needs triage
+
tests/comparators/test_binary.py::test_with_compare_details_and_tool_not_found
+ tests/comparators/test_rlib.py::test_item3_deflate_llvm_bitcode
+ tests/comparators/test_gif.py::test_has_visuals
+
+ # img2txt based failures, bug #797688
+ tests/comparators/test_ico_image.py::test_diff
+ tests/comparators/test_ico_image.py::test_diff_meta
+ tests/comparators/test_ico_image.py::test_diff_meta2
+ tests/comparators/test_ico_image.py::test_has_visuals
+ tests/comparators/test_jpeg_image.py::test_diff
+ tests/comparators/test_jpeg_image.py::test_compare_non_existing
+ tests/comparators/test_jpeg_image.py::test_diff_meta
+ tests/comparators/test_jpeg_image.py::test_has_visuals
+
+ # docx2txt based falures, bug #797688
+ tests/comparators/test_docx.py::test_diff
+
+ # Formatting
+ tests/test_source.py::test_code_is_black_clean
+
+ # Fails on ZFS
+ tests/test_main.py::test_non_unicode_filename
+
+ # Fails on (unreleased) LLVM 16 with minor difference
+ #tests/comparators/test_macho.py::test_llvm_diff
+ #tests/comparators/test_elf.py::test_libmix_differences
+)
+
+distutils_enable_tests pytest
+
+src_test() {
+ case $(tc-get-ptr-size) in
+ 4)
+ EPYTEST_IGNORE+=(
+ # Needs fixing in Perl itself (bug #934443)
+ tests/comparators/test_epub.py
+ tests/comparators/test_zip.py
+ )
+ ;;
+ *)
+ ;;
+ esac
+
+ distutils-r1_src_test
+}
diff --git a/dev-util/diffoscope/files/diffoscope-274-new-zipdetails.patch
b/dev-util/diffoscope/files/diffoscope-274-new-zipdetails.patch
new file mode 100644
index 000000000000..3ddc99c107fc
--- /dev/null
+++ b/dev-util/diffoscope/files/diffoscope-274-new-zipdetails.patch
@@ -0,0 +1,87 @@
+https://salsa.debian.org/reproducible-builds/diffoscope/-/commit/e6ef110086bcb1272c37b44074fcb083ed0c9b41
+
+From e6ef110086bcb1272c37b44074fcb083ed0c9b41 Mon Sep 17 00:00:00 2001
+From: Chris Lamb <[email protected]>
+Date: Tue, 13 Aug 2024 11:13:17 +0100
+Subject: [PATCH] Update test_zip text fixtures and definitions to support new
+ IO::Compress changes. (Closes: Debian:#1078050)
+
+---
+ tests/comparators/test_zip.py | 8 +++--
+ tests/data/zip2_zipdetails_expected_diff | 38 ++++++++++++------------
+ 2 files changed, 25 insertions(+), 21 deletions(-)
+
+diff --git a/tests/comparators/test_zip.py b/tests/comparators/test_zip.py
+index 570931ee..303b6f80 100644
+--- a/tests/comparators/test_zip.py
++++ b/tests/comparators/test_zip.py
+@@ -93,6 +93,7 @@ def test_compressed_files(differences):
+
+
+ @skip_unless_tools_exist("zipinfo", "bsdtar", "zipdetails")
++@skip_unless_tool_is_at_least("perl", io_compress_zip_version, "2.212")
+ def test_extra_fields(differences2):
+ assert_diff(differences2[0], "zip_bsdtar_expected_diff")
+ assert_diff(differences2[1], "zip2_zipdetails_expected_diff")
+@@ -148,11 +149,14 @@ def jmod_differences(jmod1, jmod2):
+ return jmod1.compare(jmod2).details
+
+
+-@skip_unless_tools_exist("zipinfo", "zipdetails")
++@skip_unless_tools_exist("zipinfo", "zipdetails", "zipnote")
+ @skip_unless_tool_is_at_least("perl", io_compress_zip_version, "2.212")
+ def test_jmod_metadata(jmod_differences, jmod1, jmod2):
++ assert jmod_differences[0].source1 == "zipinfo {}"
++ assert jmod_differences[1].source1.startswith("zipnote")
++ assert jmod_differences[2].source1.startswith("zipdetails")
+ assert_diff(jmod_differences[0], "jmod_zipinfo_expected_diff")
+- assert_diff(jmod_differences[1], "jmod_zipdetails_expected_diff")
++ assert_diff(jmod_differences[2], "jmod_zipdetails_expected_diff")
+
+
+ def test_encrypted(encrypted_zip1, encrypted_zip2):
+diff --git a/tests/data/zip2_zipdetails_expected_diff
b/tests/data/zip2_zipdetails_expected_diff
+index d764a818..291dca88 100644
+--- a/tests/data/zip2_zipdetails_expected_diff
++++ b/tests/data/zip2_zipdetails_expected_diff
+@@ -1,19 +1,19 @@
+-@@ -36,16 +36,16 @@
+- 0054 Uncompressed Length 000001BE
+- 0058 Filename Length 0008
+- 005A Extra Length 001C
+- 005C Filename 'XXX/XXXX'
+- 0064 Extra ID #0001 5455 'UT: Extended Timestamp'
+- 0066 Length 0009
+- 0068 Flags '03 mod access'
+--0069 Mod Time 558AB455 'Wed Jun 24 13:44:53 2015'
+--006D Access Time 558AB45F 'Wed Jun 24 13:45:03 2015'
+-+0069 Mod Time 41414141 'Fri Sep 10 05:53:05 2004'
+-+006D Access Time 41414141 'Fri Sep 10 05:53:05 2004'
+- 0071 Extra ID #0002 7875 'ux: Unix Extra Type 3'
+- 0073 Length 000B
+- 0075 Version 01
+- 0076 UID Size 04
+- 0077 UID 000003E8
+- 007B GID Size 04
+- 007C GID 000003E8
++@@ -44,16 +44,16 @@
++ #
++ # WARNING: Offset 0x5C: Filename 'XXXXXXXX'
++ # Zero length filename
++ #
++ 0064 Extra ID #1 5455 (21589) 'Extended Timestamp [UT]'
++ 0066 Length 0009 (9)
++ 0068 Flags 03 (3) 'Modification Access'
++-0069 Modification Time 558AB455 (1435153493) 'Wed Jun 24 13:44:53 2015'
++-006D Access Time 558AB45F (1435153503) 'Wed Jun 24 13:45:03 2015'
+++0069 Modification Time 41414141 (1094795585) 'Fri Sep 10 05:53:05 2004'
+++006D Access Time 41414141 (1094795585) 'Fri Sep 10 05:53:05 2004'
++ 0071 Extra ID #2 7875 (30837) 'Unix Extra type 3 [ux]'
++ 0073 Length 000B (11)
++ 0075 Version 01 (1)
++ 0076 UID Size 04 (4)
++ 0077 UID 000003E8 (1000)
++ 007B GID Size 04 (4)
++ 007C GID 000003E8 (1000)
+--
+GitLab