summary refs log tree commit diff
path: root/pkgs/tools/misc/diffoscope/default.nix
diff options
context:
space:
mode:
authorDaniel Fullmer <danielrf12@gmail.com>2020-05-29 19:25:14 -0400
committerDaniel Fullmer <danielrf12@gmail.com>2020-06-02 14:10:35 -0400
commit8214b8bd527c6362e772a19bad8fa665fd620045 (patch)
treece820ce69c307801e04e730772a6dfcc8c079dac /pkgs/tools/misc/diffoscope/default.nix
parent467ce5a9f45aaf96110b41eb863a56866e1c2c3c (diff)
downloadnixpkgs-8214b8bd527c6362e772a19bad8fa665fd620045.tar
nixpkgs-8214b8bd527c6362e772a19bad8fa665fd620045.tar.gz
nixpkgs-8214b8bd527c6362e772a19bad8fa665fd620045.tar.bz2
nixpkgs-8214b8bd527c6362e772a19bad8fa665fd620045.tar.lz
nixpkgs-8214b8bd527c6362e772a19bad8fa665fd620045.tar.xz
nixpkgs-8214b8bd527c6362e772a19bad8fa665fd620045.tar.zst
nixpkgs-8214b8bd527c6362e772a19bad8fa665fd620045.zip
diffoscope: add missing tools
`nix path-info -S` reports the following changes:
diffoscope: 345M -> 356.7M
diffoscope w/ enableBloat: 5.4G -> 6.1G

Also re-enabled the tests and added the dependencies to checkInputs so
the comparator tests are not automatically skipped.
Diffstat (limited to 'pkgs/tools/misc/diffoscope/default.nix')
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix41
1 files changed, 25 insertions, 16 deletions
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index 4ad51e1a9f7..c98ca9cc166 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -1,12 +1,19 @@
-{ lib, stdenv, fetchurl, python3Packages, docutils, help2man
-, acl, apktool, binutils-unwrapped, bzip2, cbfstool, cdrkit, colord, colordiff, coreutils, cpio, db, diffutils, dtc
-, e2fsprogs, file, findutils, fontforge-fonttools, fpc, gettext, ghc, ghostscriptX, giflib, gnumeric, gnupg, gnutar
-, gzip, imagemagick, jdk, libarchive, libcaca, llvm, lz4, mono, openssh, pdftk, pgpdump, poppler_utils, sng, sqlite
-, squashfsTools, tcpdump, unoconv, unzip, xxd, xz
+{ lib, stdenv, fetchurl, runCommand, makeWrapper, python3Packages, docutils, help2man
+, abootimg, acl, apktool, binutils-unwrapped, build-tools, bzip2, cbfstool, cdrkit, colord, colordiff, coreutils, cpio, db, diffutils, dtc
+, e2fsprogs, file, findutils, fontforge-fonttools, ffmpeg_4, fpc, gettext, ghc, ghostscriptX, giflib, gnumeric, gnupg, gnutar
+, gzip, hdf5, imagemagick, jdk, libarchive, libcaca, llvm, lz4, mono, openssh, openssl, pdftk, pgpdump, poppler_utils, qemu, R
+, sng, sqlite, squashfsTools, tcpdump, odt2txt, unzip, wabt, xxd, xz, zip, zstd
 , enableBloat ? false
 }:
 
 # Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
+let
+  apksigner = runCommand "apksigner" { nativeBuildInputs = [ makeWrapper ]; } ''
+    mkdir -p $out/bin
+    makeWrapper "${jdk}/bin/java" "$out/bin/apksigner" \
+      --add-flags "-jar ${builtins.head build-tools}/libexec/android-sdk/build-tools/28.0.3/lib/apksigner.jar"
+  '';
+in
 python3Packages.buildPythonApplication rec {
   pname = "diffoscope";
   version = "146";
@@ -20,6 +27,7 @@ python3Packages.buildPythonApplication rec {
 
   patches = [
     ./ignore_links.patch
+    ./skip-failing-test.patch
   ];
 
   postPatch = ''
@@ -35,23 +43,24 @@ python3Packages.buildPythonApplication rec {
   # 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: abootimg docx2txt dumpxsb enjarify js-beautify lipo oggDump otool procyon-decompiler Rscript wasm2wat zipnode
-  # Also these libraries: python3-guestfs
+  # Still missing these tools: docx2txt dumppdf dumpxsb enjarify lipo ocamlobjinfo oggDump otool procyon
   pythonPath = [
       binutils-unwrapped bzip2 colordiff coreutils cpio db diffutils
       dtc e2fsprogs file findutils fontforge-fonttools gettext gnutar gzip
-      libarchive libcaca lz4 pgpdump sng sqlite squashfsTools unzip xxd xz
+      libarchive libcaca lz4 openssl pgpdump sng sqlite squashfsTools unzip xxd
+      xz zip zstd
     ]
-    ++ (with python3Packages; [ debian libarchive-c python_magic tlsh rpm progressbar33 ])
+    ++ (with python3Packages; [
+      argcomplete debian defusedxml jsondiff jsbeautifier libarchive-c
+      python_magic progressbar33 pypdf2 rpm tlsh
+    ])
     ++ lib.optionals stdenv.isLinux [ python3Packages.pyxattr acl cdrkit ]
-    ++ lib.optionals enableBloat [
-      apktool cbfstool colord fpc ghc ghostscriptX giflib gnupg gnumeric imagemagick
-      llvm jdk mono openssh pdftk poppler_utils tcpdump unoconv
-      python3Packages.guestfs
-    ];
+    ++ lib.optionals enableBloat ([
+      abootimg apksigner apktool cbfstool colord ffmpeg_4 fpc ghc ghostscriptX giflib gnupg gnumeric
+      hdf5 imagemagick llvm jdk mono odt2txt openssh pdftk poppler_utils qemu R tcpdump wabt
+    ] ++ (with python3Packages; [ binwalk guestfs h5py ]));
 
-  doCheck = false; # Calls 'mknod' in squashfs tests, which needs root
-  checkInputs = with python3Packages; [ pytest ];
+  checkInputs = with python3Packages; [ pytest ] ++ pythonPath;
 
   postInstall = ''
     make -C doc