Skip to content

Commit

Permalink
dev-util/diffoscope: add 274
Browse files Browse the repository at this point in the history
Signed-off-by: Sam James <[email protected]>
  • Loading branch information
thesamesam committed Aug 15, 2024
1 parent 79201ec commit 1961629
Show file tree
Hide file tree
Showing 3 changed files with 232 additions and 0 deletions.
1 change: 1 addition & 0 deletions dev-util/diffoscope/Manifest
Original file line number Diff line number Diff line change
Expand Up @@ -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
144 changes: 144 additions & 0 deletions dev-util/diffoscope/diffoscope-274.ebuild
Original file line number Diff line number Diff line change
@@ -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
}
87 changes: 87 additions & 0 deletions dev-util/diffoscope/files/diffoscope-274-new-zipdetails.patch
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 1961629

Please sign in to comment.