2017-02-22 19:45:17 +01:00
|
|
|
{ lib, stdenv, fetchgit, fetchpatch, python3, docutils
|
2016-02-17 03:40:27 +01:00
|
|
|
, acl, binutils, bzip2, cbfstool, cdrkit, colord, cpio, diffutils, e2fsprogs, file, fpc, gettext, ghc
|
2016-12-01 16:39:51 +01:00
|
|
|
, gnupg1, gzip, jdk, libcaca, mono, pdftk, poppler_utils, sng, sqlite, squashfsTools, unzip, vim, xz
|
2016-12-08 17:52:56 +01:00
|
|
|
, colordiff
|
2016-01-12 14:25:26 +01:00
|
|
|
, enableBloat ? false
|
2015-08-04 05:04:12 +02:00
|
|
|
}:
|
|
|
|
|
2017-07-20 22:19:11 +02:00
|
|
|
# Still missing these tools: enjarify, otool & lipo (maybe OS X only), showttf
|
|
|
|
# Also these libraries: python3-guestfs
|
|
|
|
# FIXME: move xxd into a separate package so we don't have to pull in all of vim.
|
|
|
|
let tools = [ acl binutils bzip2 cbfstool cdrkit cpio diffutils e2fsprogs file gettext
|
|
|
|
gzip libcaca poppler_utils sng sqlite squashfsTools unzip vim xz colordiff
|
|
|
|
] ++ lib.optionals enableBloat [ colord fpc ghc gnupg1 jdk mono pdftk ];
|
|
|
|
in python3.pkgs.buildPythonApplication rec {
|
2017-02-22 19:45:17 +01:00
|
|
|
pname = "diffoscope";
|
|
|
|
name = "${pname}-${version}";
|
|
|
|
version = "77";
|
2015-08-04 05:04:12 +02:00
|
|
|
|
|
|
|
src = fetchgit {
|
|
|
|
url = "git://anonscm.debian.org/reproducible/diffoscope.git";
|
|
|
|
rev = "refs/tags/${version}";
|
2017-02-22 19:45:17 +01:00
|
|
|
sha256 = "0l5q24sqb88qkz62cz85bq65myfqig3z3m1lj2s92hdlqip9946b";
|
2015-08-04 05:04:12 +02:00
|
|
|
};
|
|
|
|
|
2016-01-12 17:00:24 +01:00
|
|
|
patches =
|
2016-04-28 15:21:40 +02:00
|
|
|
[ # Ignore different link counts.
|
|
|
|
./ignore_links.patch
|
2016-01-12 17:00:24 +01:00
|
|
|
];
|
|
|
|
|
2015-08-04 05:04:12 +02:00
|
|
|
postPatch = ''
|
|
|
|
# Upstream doesn't provide a PKG-INFO file
|
2015-09-27 06:10:25 +02:00
|
|
|
sed -i setup.py -e "/'rpm-python',/d"
|
2015-08-04 05:04:12 +02:00
|
|
|
'';
|
|
|
|
|
2017-03-20 14:19:50 +01:00
|
|
|
pythonPath = with python3.pkgs; [ debian libarchive-c python_magic tlsh rpm ];
|
|
|
|
|
2015-08-04 05:04:12 +02:00
|
|
|
doCheck = false; # Calls 'mknod' in squashfs tests, which needs root
|
|
|
|
|
|
|
|
postInstall = ''
|
|
|
|
mkdir -p $out/share/man/man1
|
|
|
|
${docutils}/bin/rst2man.py debian/diffoscope.1.rst $out/share/man/man1/diffoscope.1
|
2017-07-20 22:19:11 +02:00
|
|
|
wrapProgram $out/bin/diffoscope --prefix PATH : ${lib.makeBinPath tools}
|
2015-08-04 05:04:12 +02: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".
|
|
|
|
'';
|
|
|
|
homepage = https://wiki.debian.org/ReproducibleBuilds;
|
|
|
|
license = licenses.gpl3Plus;
|
|
|
|
maintainers = [ maintainers.dezgeg ];
|
|
|
|
platforms = platforms.linux;
|
|
|
|
};
|
|
|
|
}
|