diff options
Diffstat (limited to 'pkgs/tools/misc/diffoscope/default.nix')
-rw-r--r-- | pkgs/tools/misc/diffoscope/default.nix | 328 |
1 files changed, 0 insertions, 328 deletions
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix deleted file mode 100644 index 89af942966a6..000000000000 --- a/pkgs/tools/misc/diffoscope/default.nix +++ /dev/null @@ -1,328 +0,0 @@ -{ lib -, stdenv -, abootimg -, acl -, apksigcopier -, apksigner -, apktool -, binutils-unwrapped-all-targets -, bzip2 -, cbfstool -, cdrkit -, colord -, colordiff -, coreutils -, cpio -, db -, diffutils -, docutils -, dtc -, e2fsprogs -, enableBloat ? true -, enjarify -, fetchurl -, file -, findutils -, fontforge-fonttools -, ffmpeg -, fpc -, gettext -, ghc -, ghostscriptX -, giflib -, gnumeric -, gnupg -, gnutar -, gzip -, hdf5 -, help2man -, html2text -, imagemagick -, installShellFiles -, jdk -, libarchive -, libcaca -, libxmlb -, llvm -, lz4 -, lzip -, mono -, ocaml -, odt2txt -, oggvideotools -, openssh -, openssl -, pdftk -, pgpdump -, poppler_utils -, procyon -, python3 -, qemu -, R -, sng -, sqlite -, squashfsTools -, tcpdump -, ubootTools -, unzip -, wabt -, xmlbeans -, xxd -, xz -, zip -, zstd - # updater only -, writeScript -}: - -let - python = python3.override { - packageOverrides = final: prev: { - # version 4 or newer would log the followng error but tests currently don't fail because radare2 is disabled - # ValueError: argument TNULL is not a TLSH hex string - tlsh = prev.tlsh.overridePythonAttrs ({ src, ... }: let - version = "3.19.1"; - in { - inherit version; - src = src.override { - rev = version; - hash = "sha256-ZYEjT/yShfA4+zpbGOtaFOx1nSSOWPtMvskPhHv3c9U="; - }; - }); - }; - }; -in - -# Note: when upgrading this package, please run the list-missing-tools.sh script as described below! -python.pkgs.buildPythonApplication rec { - pname = "diffoscope"; - version = "269"; - - src = fetchurl { - url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2"; - hash = "sha256-L2UygmcTXgcc9l8ALpOS52+2dhsO42733nlc1Hzl8L8="; - }; - - outputs = [ - "out" - "man" - ]; - - # https://salsa.debian.org/reproducible-builds/diffoscope/-/issues/378 - sourceRoot = "./-269"; - - patches = [ - ./ignore_links.patch - ./openssh-no-dsa.patch # https://salsa.debian.org/reproducible-builds/diffoscope/-/merge_requests/139 - ]; - - postPatch = '' - # Upstream doesn't provide a PKG-INFO file - sed -i setup.py -e "/'rpm-python',/d" - - # When generating manpage, use the installed version - substituteInPlace doc/Makefile --replace "../bin" "$out/bin" - ''; - - nativeBuildInputs = [ - docutils - help2man - installShellFiles - ]; - - # Most of the non-Python dependencies here are optional command-line tools for various file-format parsers. - # To help figuring out what's missing from the list, run: ./pkgs/tools/misc/diffoscope/list-missing-tools.sh - # - # Still missing these tools: - # Android-specific tools: - # aapt2 - # dexdump - # Darwin-specific tools: - # lipo - # otool - # Other tools: - # docx2txt <- makes tests broken: - # > FAILED tests/comparators/test_docx.py::test_diff - IndexError: list index out of range - # > FAILED tests/comparators/test_docx.py::test_compare_non_existing - AssertionError - # radare2 - # > FAILED tests/comparators/test_elf_decompiler.py::test_ghidra_diff - IndexError: list index out of range - # > FAILED tests/comparators/test_elf_decompiler.py::test_radare2_diff - AssertionError - # > FAILED tests/comparators/test_macho_decompiler.py::test_ghidra_diff - assert 0 == 1 - # > FAILED tests/comparators/test_macho_decompiler.py::test_radare2_diff - AssertionError - # - # We filter automatically all packages for the host platform (some dependencies are not supported on Darwin, aarch64, etc.). - pythonPath = lib.filter (lib.meta.availableOn stdenv.hostPlatform) ([ - acl - binutils-unwrapped-all-targets - bzip2 - cdrkit - colordiff - coreutils - cpio - db - diffutils - dtc - e2fsprogs - file - findutils - fontforge-fonttools - gettext - gnutar - gzip - html2text - libarchive - libxmlb - lz4 - lzip - openssl - pgpdump - sng - sqlite - squashfsTools - unzip - xxd - xz - zip - zstd - ] - ++ (with python.pkgs; [ - argcomplete - debian - defusedxml - jsbeautifier - jsondiff - libarchive-c - progressbar33 - pypdf - python-magic - pyxattr - rpm - tlsh - ]) - ++ lib.optionals enableBloat ( - [ - abootimg - apksigcopier - apksigner - apktool - cbfstool - colord - enjarify - ffmpeg - fpc - ghc - ghostscriptX - giflib - gnupg - hdf5 - imagemagick - jdk - libcaca - llvm - mono - ocaml - odt2txt - openssh - pdftk - poppler_utils - procyon - qemu - R - tcpdump - ubootTools - wabt - xmlbeans - ] - ++ (with python.pkgs; [ - androguard - binwalk - guestfs - h5py - pdfminer-six - r2pipe - # docx2txt, nixpkgs packages another project named the same, which does not work - ]) - # oggvideotools is broken on Darwin, please put it back when it will be fixed? - ++ lib.optionals stdenv.isLinux [ oggvideotools ] - # This doesn't work on aarch64-darwin - ++ lib.optionals (stdenv.hostPlatform.system != "aarch64-darwin") [ gnumeric ] - )); - - nativeCheckInputs = with python.pkgs; [ - pytestCheckHook - ] ++ pythonPath; - - pytestFlagsArray = [ - # Always show more information when tests fail - "-vv" - ]; - - postInstall = '' - make -C doc - installManPage doc/diffoscope.1 - ''; - - disabledTests = [ - "test_sbin_added_to_path" - "test_diff_meta" - "test_diff_meta2" - - # Fails because it fails to determine llvm version - "test_item3_deflate_llvm_bitcode" - ] ++ lib.optionals stdenv.isDarwin [ - # Disable flaky tests on Darwin - "test_non_unicode_filename" - "test_listing" - "test_symlink_root" - - # Appears to be a sandbox related issue - "test_trim_stderr_in_command" - # Seems to be a bug caused by having different versions of rdata than - # expected. Will file upstream. - "test_item_rdb" - # Caused by getting an otool command instead of llvm-objdump. Could be Nix - # setup, could be upstream bug. Will file upstream. - "test_libmix_differences" - ]; - - disabledTestPaths = lib.optionals stdenv.isDarwin [ - "tests/comparators/test_git.py" - "tests/comparators/test_java.py" - "tests/comparators/test_uimage.py" - "tests/comparators/test_device.py" - "tests/comparators/test_macho.py" - ]; - - passthru = { - updateScript = writeScript "update-diffoscope" '' - #!/usr/bin/env nix-shell - #!nix-shell -i bash -p curl pcre common-updater-scripts - - set -eu -o pipefail - - # Expect the text in format of "Latest release: 198 (31 Dec 2021)"'. - newVersion="$(curl -s https://diffoscope.org/ | pcregrep -o1 'Latest release: ([0-9]+)')" - update-source-version ${pname} "$newVersion" - ''; - }; - - meta = with lib; { - description = "Perform in-depth comparison of files, archives, and directories"; - longDescription = '' - diffoscope will try to get to the bottom of what makes files or directories - different. It will recursively unpack archives of many kinds and transform - various binary formats into more human readable form to compare them. It can - compare two tarballs, ISO images, or PDF just as easily. The differences can - be shown in a text or HTML report. - - diffoscope is developed as part of the "reproducible builds" Debian - project and was formerly known as "debbindiff". - ''; - homepage = "https://diffoscope.org/"; - changelog = "https://diffoscope.org/news/diffoscope-${version}-released/"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ dezgeg danielfullmer raitobezarius ]; - platforms = platforms.unix; - mainProgram = "diffoscope"; - }; -} |