diff --git a/pkgs/development/python-modules/pdfminer_six/default.nix b/pkgs/development/python-modules/pdfminer_six/default.nix index 96ba66869055..725fb9ab9f93 100644 --- a/pkgs/development/python-modules/pdfminer_six/default.nix +++ b/pkgs/development/python-modules/pdfminer_six/default.nix @@ -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 diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix index bdac532f07e1..e07d03cddba2 100644 --- a/pkgs/tools/misc/diffoscope/default.nix +++ b/pkgs/tools/misc/diffoscope/default.nix @@ -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; diff --git a/pkgs/tools/misc/enjarify/default.nix b/pkgs/tools/misc/enjarify/default.nix new file mode 100644 index 000000000000..13808b91d051 --- /dev/null +++ b/pkgs/tools/misc/enjarify/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/tools/misc/oggvideotools/default.nix b/pkgs/tools/misc/oggvideotools/default.nix new file mode 100644 index 000000000000..2780354aa0e6 --- /dev/null +++ b/pkgs/tools/misc/oggvideotools/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/tools/misc/oggvideotools/fix-compile.patch b/pkgs/tools/misc/oggvideotools/fix-compile.patch new file mode 100644 index 000000000000..65c3dd6a2351 --- /dev/null +++ b/pkgs/tools/misc/oggvideotools/fix-compile.patch @@ -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 + #include ++#include + + int main(int argc, char* argv[]) + { diff --git a/pkgs/tools/misc/procyon/default.nix b/pkgs/tools/misc/procyon/default.nix new file mode 100644 index 000000000000..c217f25c1e19 --- /dev/null +++ b/pkgs/tools/misc/procyon/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/tools/misc/xmlbeans/default.nix b/pkgs/tools/misc/xmlbeans/default.nix new file mode 100644 index 000000000000..ce174b195412 --- /dev/null +++ b/pkgs/tools/misc/xmlbeans/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cdc5641010d7..01265d3ec38a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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 { };