Merge pull request #142612 from SuperSandro2000/diffoscope

diffoscope: enable all available tools
This commit is contained in:
Maximilian Bosch 2021-10-23 22:43:44 +02:00 committed by GitHub
commit d448615f5e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 162 additions and 8 deletions

@ -6,7 +6,6 @@ buildPythonPackage rec {
disabled = !isPy3k;
# No tests in PyPi Tarball
src = fetchFromGitHub {
owner = "pdfminer";
repo = "pdfminer.six";
@ -16,6 +15,12 @@ buildPythonPackage rec {
propagatedBuildInputs = [ chardet cryptography sortedcontainers ];
postInstall = ''
for file in $out/bin/*.py; do
ln $file ''${file//.py/}
done
'';
checkInputs = [ nose ];
checkPhase = ''
nosetests

@ -1,8 +1,8 @@
{ lib, stdenv, fetchurl, python3Packages, docutils, help2man, installShellFiles
, abootimg, acl, apksigner, apktool, binutils-unwrapped, bzip2, cbfstool, cdrkit, colord, colordiff, coreutils, cpio, db, diffutils, dtc
, e2fsprogs, file, findutils, fontforge-fonttools, ffmpeg, 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
, radare2, sng, sqlite, squashfsTools, tcpdump, odt2txt, unzip, wabt, xxd, xz, zip, zstd
, e2fsprogs, enjarify, file, findutils, fontforge-fonttools, ffmpeg, fpc, gettext, ghc, ghostscriptX, giflib, gnumeric, gnupg, gnutar
, gzip, hdf5, imagemagick, jdk, libarchive, libcaca, llvm, lz4, mono, ocaml, oggvideotools, openssh, openssl, pdftk, pgpdump, poppler_utils, procyon, qemu, R
, radare2, sng, sqlite, squashfsTools, tcpdump, ubootTools, odt2txt, unzip, wabt, xmlbeans, xxd, xz, zip, zstd
, enableBloat ? false
}:
@ -40,7 +40,7 @@ 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: docx2txt dumpimage dumppdf dumpxsb enjarify lipo ocamlobjinfo oggDump otool procyon
# Still missing these tools: docx2txt lipo otool r2pipe
pythonPath = [
binutils-unwrapped bzip2 colordiff coreutils cpio db diffutils
e2fsprogs file findutils fontforge-fonttools gettext gnutar gzip
@ -53,9 +53,9 @@ python3Packages.buildPythonApplication rec {
])
++ lib.optionals stdenv.isLinux [ python3Packages.pyxattr acl cdrkit dtc ]
++ lib.optionals enableBloat ([
abootimg apksigner apktool cbfstool colord ffmpeg fpc ghc ghostscriptX giflib gnupg gnumeric
hdf5 imagemagick llvm jdk mono odt2txt openssh pdftk poppler_utils qemu R tcpdump wabt radare2
] ++ (with python3Packages; [ binwalk guestfs h5py ]));
abootimg apksigner apktool cbfstool colord enjarify ffmpeg fpc ghc ghostscriptX giflib gnupg gnumeric
hdf5 imagemagick llvm jdk mono ocaml odt2txt oggvideotools openssh pdftk poppler_utils procyon qemu R tcpdump ubootTools wabt radare2 xmlbeans
] ++ (with python3Packages; [ androguard binwalk guestfs h5py pdfminer ]));
checkInputs = with python3Packages; [ pytestCheckHook ] ++ pythonPath;

@ -0,0 +1,35 @@
{ lib, stdenv, fetchFromGitHub, python3, runtimeShell }:
stdenv.mkDerivation rec {
pname = "enjarify";
version = "1.0.3";
src = fetchFromGitHub {
owner = "google";
repo = pname;
rev = version;
sha256 = "sha256-VDBC5n2jWLNJsilX+PV1smL5JeBDj23jYFRwdObXwYs=";
};
installPhase = ''
pypath="$out/${python3.sitePackages}"
mkdir -p $out/bin $pypath
mv enjarify $pypath
cat << EOF > $out/bin/enjarify
#!${runtimeShell}
export PYTHONPATH=$pypath
exec ${python3.interpreter} -O -m enjarify.main "\$@"
EOF
chmod +x $out/bin/enjarify
'';
buildInputs = [ ];
meta = with lib; {
description = "Tool for translating Dalvik bytecode to equivalent Java bytecode";
homepage = "https://github.com/google/enjarify/";
license = licenses.asl20;
maintainers = with maintainers; [ SuperSandro2000 ];
};
}

@ -0,0 +1,26 @@
{ lib, stdenv, fetchurl, cmake, pkg-config, boost, gd, libogg, libtheora, libvorbis }:
stdenv.mkDerivation rec {
pname = "oggvideotools";
version = "0.9.1";
src = fetchurl {
url = "mirror://sourceforge/oggvideotools/oggvideotools/oggvideotools-${version}/oggvideotools-${version}.tar.bz2";
sha256 = "sha256-2dv3iXt86phhIgnYC5EnRzyX1u5ssNzPwrOP4+jilSM=";
};
patches = [
./fix-compile.patch
];
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ boost gd libogg libtheora libvorbis ];
meta = with lib; {
description = "Toolbox for manipulating and creating Ogg video files";
homepage = "http://www.streamnik.de/oggvideotools.html";
license = licenses.gpl2Only;
maintainers = with maintainers; [ SuperSandro2000 ];
};
}

@ -0,0 +1,10 @@
--- oggvideotools-0.9.1/src/base/test/decoderTest.cpp 2016-09-05 10:35:14.000000000 +0200
+++ oggvideotools-0.9.1/src/base/test/decoderTest.cpp 2021-10-22 22:42:48.980473419 +0200
@@ -5,6 +5,7 @@
#include "oggDecoder.h"
#include <vector>
#include <iostream>
+#include <cstring>
int main(int argc, char* argv[])
{

@ -0,0 +1,31 @@
{ lib, stdenv, fetchurl, runtimeShell, jre_headless }:
stdenv.mkDerivation rec {
pname = "procyon";
version = "0.6-prerelease";
src = fetchurl {
url = "https://github.com/mstrobel/procyon/releases/download/${version}/procyon-decompiler-${version}.jar";
sha256 = "sha256-eBVWKCo8ccAT/T9HgjxUCNFzGyzofc9Mbyp0ldUmrdk=";
};
dontUnpack = true;
installPhase = ''
mkdir -p $out/bin $out/share/procyon
cp $src $out/share/procyon/procyon-decompiler.jar
cat << EOF > $out/bin/procyon
#!${runtimeShell}
exec ${jre_headless}/bin/java -jar $out/share/procyon/procyon-decompiler.jar "\$@"
EOF
chmod +x $out/bin/procyon
'';
meta = with lib; {
description = "Procyon is a suite of Java metaprogramming tools including a Java decompiler";
homepage = "https://github.com/mstrobel/procyon/";
license = licenses.asl20;
maintainers = with maintainers; [ SuperSandro2000 ];
};
}

@ -0,0 +1,39 @@
{ lib, stdenv, fetchzip, jre_headless }:
stdenv.mkDerivation rec {
pname = "xmlbeans";
version = "5.0.2-20211014";
src = fetchzip {
url = "https://dlcdn.apache.org/poi/xmlbeans/release/bin/xmlbeans-bin-${version}.zip";
sha256 = "sha256-1o0kfBMhka/Midtg+GzpVDDygixL6mrfxtY5WrjLN+0=";
};
postPatch = ''
rm bin/*.cmd
substituteInPlace bin/dumpxsb \
--replace 'echo `dirname $0`' ""
substituteInPlace bin/_setlib \
--replace 'echo XMLBEANS_LIB=$XMLBEANS_LIB' ""
for file in bin/*; do
substituteInPlace $file \
--replace "java " "${jre_headless}/bin/java "
done
'';
installPhase = ''
mkdir -p $out
chmod +x bin/*
cp -r bin/ lib/ $out/
'';
meta = with lib; {
description = "Java library for accessing XML by binding it to Java types";
homepage = "https://xmlbeans.apache.org/";
downloadPage = "https://dlcdn.apache.org/poi/xmlbeans/release/bin/";
license = licenses.asl20;
maintainers = with maintainers; [ SuperSandro2000 ];
};
}

@ -1271,6 +1271,8 @@ with pkgs;
artyFX = callPackage ../applications/audio/artyFX {};
oggvideotools = callPackage ../tools/misc/oggvideotools { };
owl-lisp = callPackage ../development/compilers/owl-lisp {};
ascii = callPackage ../tools/text/ascii { };
@ -1626,6 +1628,8 @@ with pkgs;
enchive = callPackage ../tools/security/enchive { };
enjarify = callPackage ../tools/misc/enjarify { };
enpass = callPackage ../tools/security/enpass { };
esbuild = callPackage ../development/tools/esbuild { };
@ -3418,6 +3422,8 @@ with pkgs;
inherit (darwin) libiconv;
};
procyon = callPackage ../tools/misc/procyon { };
profetch = callPackage ../tools/misc/profetch { };
psrecord = python3Packages.callPackage ../tools/misc/psrecord {};
@ -3569,6 +3575,8 @@ with pkgs;
libmaxminddb = null;
};
xmlbeans = callPackage ../tools/misc/xmlbeans { };
xmlsort = perlPackages.XMLFilterSort;
xmousepasteblock = callPackage ../tools/X11/xmousepasteblock { };