commit:     b6c4780de56d5b20318fe17c724c8bbbec4383d8
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue May 28 02:37:37 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue May 28 02:37:37 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b6c4780d

dev-util/diffoscope: add 268

Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-util/diffoscope/Manifest                       |   1 +
 dev-util/diffoscope/diffoscope-268.ebuild          | 128 +++++++++++++++++++++
 .../diffoscope/files/diffoscope-268-7zip.patch     |  43 +++++++
 3 files changed, 172 insertions(+)

diff --git a/dev-util/diffoscope/Manifest b/dev-util/diffoscope/Manifest
index 1dbfa9d6dc17..7f088c347807 100644
--- a/dev-util/diffoscope/Manifest
+++ b/dev-util/diffoscope/Manifest
@@ -1,2 +1,3 @@
 DIST diffoscope-263.tar.bz2 3139927 BLAKE2B 
6d13b9a657c4a7618d24487096a0fb94034f4ea2b84384b388dc8441ebe68f8de12dd7a34ec0075bd03ca3d437e65a23fc086184ba7c3764682390f6290a17e4
 SHA512 
41c5495bd4d4f4a0c340bac444f3cbc4a9b6180227efc02d593590a50b47acd06dc755875419da3a52d8aa831733d76450388c29e856d428b159d3c2c793de1b
 DIST diffoscope-266.tar.bz2 3148610 BLAKE2B 
28090b8a1e2315f9df43d254d3dbd4ed8f6d4ba4d259c764f53b84137ac0b3dc97b51df56ba595eee950c54974e9b6109c423392d198e277d520f11559ecd78e
 SHA512 
2eb7cbd333b6559ba0f66647184f1747cac52cca6304a27eefe914329797469d5fb9519abe92386d3785f4f2c779f8f5dd95ecc8f54f8b08fd4fc94746bf273d
+DIST diffoscope-268.tar.bz2 3151657 BLAKE2B 
2133611135347a9babfb55972ef5d456cc274634facc07ea8dc2c214147507d223a6fd8cf24541c04fc19c3510c7548bdaa5549f5587c9d99de7b61e64bd2f7d
 SHA512 
9a0f3c81e9beb171fdef8282ac3938a5534f894437f898ab1437cdeb30a12c7fb8a1a494479f46c41d65e78fe014b8c1e510a72d0673f3d0d769d71c4af12a5d

diff --git a/dev-util/diffoscope/diffoscope-268.ebuild 
b/dev-util/diffoscope/diffoscope-268.ebuild
new file mode 100644
index 000000000000..52ae1402efb9
--- /dev/null
+++ b/dev-util/diffoscope/diffoscope-268.ebuild
@@ -0,0 +1,128 @@
+# 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..12} )
+PYTHON_REQ_USE="ncurses"
+inherit distutils-r1
+
+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}-7zip.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

diff --git a/dev-util/diffoscope/files/diffoscope-268-7zip.patch 
b/dev-util/diffoscope/files/diffoscope-268-7zip.patch
new file mode 100644
index 000000000000..4f7464c07a33
--- /dev/null
+++ b/dev-util/diffoscope/files/diffoscope-268-7zip.patch
@@ -0,0 +1,43 @@
+https://salsa.debian.org/reproducible-builds/diffoscope/-/commit/2a361d7dff135d3e832161f587a55a62fcbec9f2
+
+From 2a361d7dff135d3e832161f587a55a62fcbec9f2 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <[email protected]>
+Date: Sat, 25 May 2024 22:41:53 +0100
+Subject: [PATCH] Amend 7zip version test for older 7z versions that include
+ "[64]" string. (Closes: #376)
+
+Without the change `7z` test fails with assertion errors:
+
+    FAILED tests/comparators/test_sevenz.py::test_metadata_diff - 
AssertionError
+
+This happens because version guard did not work for my ancient `7z`:
+
+    $ 7z | head -n2
+
+    7-Zip [64] 17.05 : Copyright (c) 1999-2021 Igor Pavlov : 2017-08-28
+
+THe change attempts to skip `[64]` identifier. Tested on 7z 17.05 only.
+---
+ tests/comparators/test_sevenz.py | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/tests/comparators/test_sevenz.py 
b/tests/comparators/test_sevenz.py
+index 1582a0f4..91974701 100644
+--- a/tests/comparators/test_sevenz.py
++++ b/tests/comparators/test_sevenz.py
+@@ -38,7 +38,12 @@ def sevenz_version():
+         out = subprocess.check_output(["7z"])
+     except subprocess.CalledProcessError as e:
+         out = e.output
+-    return out.decode("UTF-8").split()[1].strip()
++    words = out.decode("UTF-8").split()
++    # 7zip 17.04 returns version after "[64]" identifier:
++    #   "7-Zip [64] 17.05 : Copyright (c) 1999-2021 Igor Pavlov : 2017-08-28"
++    if words[1].startswith("["):
++        return words[2].strip()
++    return words[1].strip()
+ 
+ 
+ def test_identification(sevenza):
+-- 
+GitLab

Reply via email to