2017-12-26 16:25:27 +00:00
|
|
|
{ lib, stdenv, fetchgit, python3Packages, docutils, help2man
|
2018-03-03 20:30:00 +00:00
|
|
|
, acl, apktool, binutils-unwrapped, bzip2, cbfstool, cdrkit, colord, colordiff, coreutils, cpio, db, diffutils, dtc
|
2017-09-14 12:25:08 +00:00
|
|
|
, e2fsprogs, file, findutils, fontforge-fonttools, fpc, gettext, ghc, ghostscriptX, giflib, gnupg1, gnutar
|
2018-07-18 21:23:25 +00:00
|
|
|
, gzip, imagemagick, jdk, libarchive, libcaca, llvm, lz4, mono, openssh, pdftk, pgpdump, poppler_utils, sng, sqlite
|
2017-09-14 12:25:08 +00:00
|
|
|
, squashfsTools, tcpdump, unoconv, unzip, xxd, xz
|
2016-01-12 13:25:26 +00:00
|
|
|
, enableBloat ? false
|
2015-08-04 03:04:12 +00:00
|
|
|
}:
|
|
|
|
|
2018-07-18 23:31:23 +00:00
|
|
|
# Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
|
2017-08-31 07:53:02 +00:00
|
|
|
python3Packages.buildPythonApplication rec {
|
|
|
|
name = "diffoscope-${version}";
|
2018-07-18 21:17:38 +00:00
|
|
|
version = "99";
|
2015-08-04 03:04:12 +00:00
|
|
|
|
|
|
|
src = fetchgit {
|
2018-03-13 13:12:00 +00:00
|
|
|
url = "https://anonscm.debian.org/git/reproducible/diffoscope.git";
|
2017-08-31 07:53:02 +00:00
|
|
|
rev = "refs/tags/${version}";
|
2018-07-18 21:17:38 +00:00
|
|
|
sha256 = "04a2sqv43g002b7s0crk9gnpdvf90j8j8p01b6shinxh6an8prs2";
|
2015-08-04 03:04:12 +00:00
|
|
|
};
|
|
|
|
|
2017-08-31 07:53:02 +00:00
|
|
|
patches = [
|
2017-09-13 14:03:38 +00:00
|
|
|
./ignore_links.patch
|
2017-08-31 07:53:02 +00:00
|
|
|
];
|
2016-01-12 16:00:24 +00:00
|
|
|
|
2015-08-04 03:04:12 +00:00
|
|
|
postPatch = ''
|
|
|
|
# Upstream doesn't provide a PKG-INFO file
|
2015-09-27 04:10:25 +00:00
|
|
|
sed -i setup.py -e "/'rpm-python',/d"
|
2018-07-18 21:36:15 +00:00
|
|
|
|
|
|
|
# When generating manpage, use the installed version
|
|
|
|
substituteInPlace doc/Makefile --replace "../bin" "$out/bin"
|
2015-08-04 03:04:12 +00:00
|
|
|
'';
|
|
|
|
|
2017-12-26 16:25:27 +00:00
|
|
|
nativeBuildInputs = [ docutils help2man ];
|
|
|
|
|
2018-07-18 23:31:23 +00:00
|
|
|
# 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
|
|
|
|
#
|
2018-03-03 20:30:00 +00:00
|
|
|
# Still missing these tools: abootimg docx2txt dumpxsb enjarify js-beautify lipo oggDump otool procyon-decompiler Rscript
|
2017-07-21 13:00:50 +00:00
|
|
|
# Also these libraries: python3-guestfs
|
2017-09-13 14:54:23 +00:00
|
|
|
pythonPath = with python3Packages; [ debian libarchive-c python_magic tlsh rpm ] ++ [
|
2018-03-03 20:30:00 +00:00
|
|
|
acl binutils-unwrapped bzip2 cdrkit colordiff coreutils cpio db diffutils
|
|
|
|
dtc e2fsprogs file findutils fontforge-fonttools gettext gnutar gzip
|
2018-07-18 21:23:25 +00:00
|
|
|
libarchive libcaca lz4 pgpdump progressbar33 sng sqlite squashfsTools unzip xxd xz
|
2017-09-14 12:26:19 +00:00
|
|
|
] ++ lib.optionals enableBloat [
|
|
|
|
apktool cbfstool colord fpc ghc ghostscriptX giflib gnupg1 imagemagick
|
|
|
|
llvm jdk mono openssh pdftk poppler_utils tcpdump unoconv
|
|
|
|
];
|
2017-03-20 13:19:50 +00:00
|
|
|
|
2015-08-04 03:04:12 +00:00
|
|
|
doCheck = false; # Calls 'mknod' in squashfs tests, which needs root
|
2017-12-26 16:25:27 +00:00
|
|
|
checkInputs = with python3Packages; [ pytest ];
|
2015-08-04 03:04:12 +00:00
|
|
|
|
|
|
|
postInstall = ''
|
2017-12-26 16:25:27 +00:00
|
|
|
make -C doc
|
2015-08-04 03:04:12 +00:00
|
|
|
mkdir -p $out/share/man/man1
|
2017-12-26 16:25:27 +00:00
|
|
|
cp doc/diffoscope.1 $out/share/man/man1/diffoscope.1
|
2015-08-04 03:04:12 +00:00
|
|
|
'';
|
|
|
|
|
|
|
|
meta = with stdenv.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".
|
|
|
|
'';
|
2017-08-31 07:53:02 +00:00
|
|
|
homepage = https://wiki.debian.org/ReproducibleBuilds;
|
|
|
|
license = licenses.gpl3Plus;
|
|
|
|
maintainers = with maintainers; [ dezgeg ];
|
|
|
|
platforms = platforms.linux;
|
2015-08-04 03:04:12 +00:00
|
|
|
};
|
|
|
|
}
|