diff --git a/dev-util/diffoscope/Manifest b/dev-util/diffoscope/Manifest index c1cd28d2bba81..228933067b135 100644 --- a/dev-util/diffoscope/Manifest +++ b/dev-util/diffoscope/Manifest @@ -4,3 +4,5 @@ DIST diffoscope-322.tar.bz2 3149627 BLAKE2B 89e20e9b41ac979ac3344cf07f291d66436c DIST diffoscope-322.tar.bz2.asc 833 BLAKE2B 692cc70f3690d965b4570dca6caf83ef0bad4bb8964592247bc4beb40177ad5d4ed86baec7030153f3c21c3be7289ad5e09adde15ab744b84427a9f69bef4072 SHA512 a5d324ac39a796843ea8507ea11bd607962a86f8df157b32212853b4839df62b45084ed32a59499de8de4dcacf3fdcb0e37704ea5d306424654eefb44375bb67 DIST diffoscope-323.tar.bz2 3149849 BLAKE2B b4ddced4c3d18e7ad664a769340acd9d9f38e828467fef3c333bfb1271e54111182a4c072889ada3a767f1b355249e0ccb13fa4529d3ae74d99fb2f8eff3eedd SHA512 57c6c15d6eb8fc465f5ff70e19a4dfb80488e421badc6f858852de33ca477422c1f3a0e71bfd3e89ec23b8d3b3b79087e9389b66966ac79e3650e96d689116d3 DIST diffoscope-323.tar.bz2.asc 833 BLAKE2B 5aa0816ab4a026cfc35de2c7f2538774d7b00cf969dbc0d2963c9b849c8c38c5a8c27bb281d77701d66dc0f22cca6474f3e6d497e051f890f32c5b05ca29cf77 SHA512 4728464be4d3b3cefb539714501fa621a47f0b8342426e93377a0010f918d794881348ee6e392ce068d455db91ccdcbbe95195a6ef42c9588f357e6d6320dd0a +DIST diffoscope-324.tar.bz2 3148903 BLAKE2B 8d2689845098280ec16af12d5cc34eacc8441f6619d1fa1e3f488fb8ab5947208fe9e059e0d523974ba0608db3a95dade644c27ed43ecaabecb871457f197864 SHA512 b870e58ab16e317ec69356777f72ed1adeb10c877f613654400f1d560903cb6b1bf0896143d1f950305488a20451a67d752e16755c6143b07eaae0805293fb2e +DIST diffoscope-324.tar.bz2.asc 833 BLAKE2B 10e3b89fba95d1a770b6fcc899f4bfb0c4898f9a09aeb20e8b38b8a8abe17c8d65f5c32e98b9f32ace5d7a53a378ebf500030fc2e54c1a9b49da217ef6595408 SHA512 0f2136b0e6c8a048938219c833dfd5b05627220e63a996784c71821a41e773186165de95817c6452c92d910b69fd82855727c93d805d46d34de9238174ac565b diff --git a/dev-util/diffoscope/diffoscope-324.ebuild b/dev-util/diffoscope/diffoscope-324.ebuild new file mode 100644 index 0000000000000..e3579768c0269 --- /dev/null +++ b/dev-util/diffoscope/diffoscope-324.ebuild @@ -0,0 +1,151 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_SINGLE_IMPL=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{12..14} ) +PYTHON_REQ_USE="ncurses" +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/chrislamb.asc +inherit distutils-r1 optfeature toolchain-funcs verify-sig + +DESCRIPTION="Will try to get to the bottom of what makes files or directories different" +HOMEPAGE="https://diffoscope.org/ https://pypi.org/project/diffoscope/" +SRC_URI=" + https://diffoscope.org/archive/${P}.tar.bz2 + verify-sig? ( https://diffoscope.org/archive/${P}.tar.bz2.asc ) +" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" +IUSE="acl binutils bzip2 libcaca colord cpio +diff docx dtc e2fsprogs file +find gettext gif gpg haskell hdf5 hex imagemagick iso java libguestfs llvm +lzma mono opendocument pascal pdf postscript R rpm sqlite squashfs +ssh tar test tcpdump zip zlib zstd" +RESTRICT="!test? ( test )" + +RDEPEND=" + $(python_gen_cond_dep ' + || ( + 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/python-tlsh[${PYTHON_USEDEP}] + hdf5? ( dev-python/h5py[${PYTHON_USEDEP}] ) + pdf? ( dev-python/pypdf[${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 ) + libguestfs? ( app-emulation/libguestfs[python,${PYTHON_SINGLE_USEDEP}] ) + llvm? ( llvm-core/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 + ) + postscript? ( app-text/ghostscript-gpl ) + R? ( dev-lang/R ) + rpm? ( app-arch/rpm[python,${PYTHON_SINGLE_USEDEP}] ) + 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/7zip-24.09[symlink(+)] + app-arch/p7zip + ) + app-text/docx2txt + app-text/html2text + media-libs/libcaca + virtual/imagemagick-tools[jpeg] + ) + verify-sig? ( sec-keys/openpgp-keys-chrislamb ) +" + +EPYTEST_DESELECT=( + # Presumably needs Gentoo specific handling for "nonexistent" like the rest already have + tests/comparators/test_binary.py::test_with_compare_details_and_tool_not_found + + # 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 + + # Slightly different diff output presentation vise + tests/comparators/test_fsimage.py::test_differences + tests/comparators/test_fsimage.py::test_differences_fat +) + +EPYTEST_PLUGINS=() +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 +} + +pkg_postinst() { + optfeature "show an approximate progress bar" dev-python/progressbar2 +}