@ -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 , a cl , apktool , binutils-unwrapped , build-tools , bzip2 , cbfstool , cdrkit , colord , colordiff , coreutils , cpio , db , diffutils , dtc
, e2fsprogs , file , findutils , fontforge-fonttools , ffmpeg_4 , f pc , 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 , s quashfsTools , 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 " a p k s i g n e r " { nativeBuildInputs = [ makeWrapper ] ; } ''
mkdir - p $ out/bin
makeWrapper " ${ jdk } / b i n / j a v a " " $ o u t / b i n / a p k s i g n e r " \
- - add-flags " - j a r ${ builtins . head build-tools } / l i b e x e c / a n d r o i d - s d k / b u i l d - t o o l s / 2 8 . 0 . 3 / l i b / a p k s i g n e r . j a r "
'' ;
in
python3Packages . buildPythonApplication rec {
pname = " d i f f o s c o p e " ;
version = " 1 4 6 " ;
@ -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