summary refs log tree commit diff
path: root/pkgs/development/tools
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2017-12-15 21:40:23 +0100
committerVladimír Čunát <vcunat@gmail.com>2017-12-15 21:40:23 +0100
commit24d81d6332bf95574367a1fab9c7b734e2807047 (patch)
tree6b71810cf703d14dbfb74a62c4f4b3014d5ed450 /pkgs/development/tools
parent774559a0ca9cc28d797e2ba912abdfb77895c77b (diff)
parentb256afac58b80adde2605eac434a04b9a23bbe95 (diff)
downloadnixlib-24d81d6332bf95574367a1fab9c7b734e2807047.tar
nixlib-24d81d6332bf95574367a1fab9c7b734e2807047.tar.gz
nixlib-24d81d6332bf95574367a1fab9c7b734e2807047.tar.bz2
nixlib-24d81d6332bf95574367a1fab9c7b734e2807047.tar.lz
nixlib-24d81d6332bf95574367a1fab9c7b734e2807047.tar.xz
nixlib-24d81d6332bf95574367a1fab9c7b734e2807047.tar.zst
nixlib-24d81d6332bf95574367a1fab9c7b734e2807047.zip
Merge branch 'master' into staging
Diffstat (limited to 'pkgs/development/tools')
-rw-r--r--pkgs/development/tools/analysis/retdec/default.nix113
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins/default.nix4
-rw-r--r--pkgs/development/tools/coursier/default.nix4
-rw-r--r--pkgs/development/tools/misc/epm/default.nix16
-rw-r--r--pkgs/development/tools/scalafmt/default.nix44
5 files changed, 154 insertions, 27 deletions
diff --git a/pkgs/development/tools/analysis/retdec/default.nix b/pkgs/development/tools/analysis/retdec/default.nix
new file mode 100644
index 000000000000..adcda4c83241
--- /dev/null
+++ b/pkgs/development/tools/analysis/retdec/default.nix
@@ -0,0 +1,113 @@
+{ stdenv, fetchFromGitHub, fetchurl,
+# Native build inputs
+cmake,
+autoconf, automake, libtool,
+pkgconfig,
+bison, flex,
+groff,
+perl,
+python,
+# Runtime tools
+time,
+upx,
+# Build inputs
+ncurses,
+libffi,
+libxml2,
+zlib,
+}:
+
+let
+  release = "3.0";
+
+  rapidjson = fetchFromGitHub {
+    owner = "Tencent";
+    repo = "rapidjson";
+    rev = "v1.1.0";
+    sha256 = "1jixgb8w97l9gdh3inihz7avz7i770gy2j2irvvlyrq3wi41f5ab";
+  };
+  jsoncpp = fetchFromGitHub {
+    owner = "open-source-parsers";
+    repo = "jsoncpp";
+    rev = "1.8.3";
+    sha256 = "05gkmg6r94q8a0qdymarcjlnlvmy9s365m9jhz3ysvi71cr31lkz";
+  };
+  googletest = fetchFromGitHub {
+    owner = "google";
+    repo = "googletest";
+    rev = "release-1.8.0";
+    sha256 = "0bjlljmbf8glnd9qjabx73w6pd7ibv43yiyngqvmvgxsabzr8399";
+  };
+  tinyxml2 = fetchFromGitHub {
+    owner = "leethomason";
+    repo = "tinyxml2";
+    rev = "5.0.1";
+    sha256 = "015g8520a0c55gwmv7pfdsgfz2rpdmh3d1nq5n9bd65n35492s3q";
+  };
+  yara = fetchurl {
+     url = "https://github.com/avast-tl/yara/archive/v1.0-retdec.zip";
+     sha256 = "1bjrkgp1sgld2y7gvwrlrz5fs16521ink6xyq72v7yxj3vfa9gps";
+  };
+  openssl = fetchurl {
+    url = "https://www.openssl.org/source/openssl-1.1.0f.tar.gz";
+    sha256 = "0r97n4n552ns571diz54qsgarihrxvbn7kvyv8wjyfs9ybrldxqj";
+  };
+
+  retdec-support = fetchurl {
+    url = "https://github.com/avast-tl/retdec-support/releases/download/2017-12-12/retdec-support_2017-12-12.tar.xz";
+    sha256 = "6376af57a77147f1363896963d8c1b3745ddb9a6bcec83d63a5846c3f78aeef9";
+  };
+in stdenv.mkDerivation rec {
+  name = "retdec-${version}";
+  version = "${release}.0";
+
+  src = fetchFromGitHub {
+    owner = "avast-tl";
+    repo = "retdec";
+    name = "retdec-${release}";
+    rev = "refs/tags/v${release}";
+    sha256 = "0cpc5lxg8qphdzl3gg9dx992ar35r8ik8wyysr91l2qvfhx93wks";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake autoconf automake libtool pkgconfig bison flex groff perl python ];
+
+  buildInputs = [ ncurses libffi libxml2 zlib ];
+
+  prePatch = ''
+    find . -wholename "*/deps/rapidjson/CMakeLists.txt" -print0 | \
+      xargs -0 sed -i -e 's|GIT_REPOSITORY.*|URL ${rapidjson}|'
+    find . -wholename "*/deps/jsoncpp/CMakeLists.txt" -print0 | \
+      xargs -0 sed -i -e 's|GIT_REPOSITORY.*|URL ${jsoncpp}|'
+    find . -wholename "*/deps/googletest/CMakeLists.txt" -print0 | \
+      xargs -0 sed -i -e 's|GIT_REPOSITORY.*|URL ${googletest}|'
+    find . -wholename "*/deps/tinyxml2/CMakeLists.txt" -print0 | \
+      xargs -0 sed -i -e 's|GIT_REPOSITORY.*|URL ${tinyxml2}|'
+
+    find . -wholename "*/yaracpp/deps/CMakeLists.txt" -print0 | \
+      xargs -0 sed -i -e 's|URL .*|URL ${yara}|'
+
+    find . -wholename "*/deps/openssl/CMakeLists.txt" -print0 | \
+      xargs -0 sed -i -e 's|OPENSSL_URL .*)|OPENSSL_URL ${openssl})|'
+
+    chmod +x cmake/*.sh
+    patchShebangs cmake/*.sh
+
+    sed -i cmake/install-share.sh \
+      -e 's|WGET_PARAMS.*|cp ${retdec-support} "$INSTALL_PATH/$ARCH_NAME"|' \
+      -e '/echo "RUN: wget/,+7d'
+
+    substituteInPlace scripts/unpack.sh --replace '	upx -d' '	${upx}/bin/upx -d'
+    substituteInPlace scripts/config.sh --replace /usr/bin/time ${time}/bin/time
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "A retargetable machine-code decompiler based on LLVM";
+    inherit (src.meta) homepage;
+    license = licenses.mit;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
+
diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix
index 5f6e35fc75f8..f44187a0ac16 100644
--- a/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "jenkins-${version}";
-  version = "2.93";
+  version = "2.95";
 
   src = fetchurl {
     url = "http://mirrors.jenkins-ci.org/war/${version}/jenkins.war";
-    sha256 = "1wk62lmll0abbgl3drmrf5kg8hya3glkwx7h0gfhcna3vjb95ll1";
+    sha256 = "08pmsxsk5qbs7h3m1ya7xbik95n58ak8m4p01y97l49kc70bj2hv";
   };
 
   buildCommand = ''
diff --git a/pkgs/development/tools/coursier/default.nix b/pkgs/development/tools/coursier/default.nix
index 874f8dcd96a3..2f2200010709 100644
--- a/pkgs/development/tools/coursier/default.nix
+++ b/pkgs/development/tools/coursier/default.nix
@@ -11,13 +11,13 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ makeWrapper ];
 
-  phases = "installPhase";
+  unpackPhase = ":";
 
   installPhase = ''
     mkdir -p $out/bin
     cp ${src} $out/bin/coursier
     chmod +x $out/bin/coursier
-    wrapProgram $out/bin/coursier --prefix PATH ":" ${jre}/bin ;
+    wrapProgram $out/bin/coursier --prefix PATH ":" ${jre}/bin
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/misc/epm/default.nix b/pkgs/development/tools/misc/epm/default.nix
index 9d84011e3657..8d2e67859005 100644
--- a/pkgs/development/tools/misc/epm/default.nix
+++ b/pkgs/development/tools/misc/epm/default.nix
@@ -1,16 +1,22 @@
-{stdenv, fetchurl, rpm}:
+{stdenv, fetchFromGitHub, rpm}:
 
 stdenv.mkDerivation rec {
   name = "epm-${version}";
-  version = "4.2";
+  version = "4.4";
 
-  src = fetchurl {
-    url = "http://www.msweet.org/files/project2/epm-4.2-source.tar.bz2";
-    sha256 = "13imglm1fgd7p5y9lc0xsl6x4cdjsk5lnan5sn8f7m4jwbx8kik6";
+  src = fetchFromGitHub {
+    repo = "epm";
+    owner = "michaelrsweet";
+    rev = "v${version}";
+    sha256 = "0kaw7v2m20qirapkps4dna6nf9xibnwljvvv0l9vpvi920kw7j7p";
   };
 
   buildInputs = [ rpm ];
 
+  preInstall = ''
+    sed -i 's/README/README.md/' Makefile
+  '';
+
   meta = with stdenv.lib; {
     description = "The ESP Package Manager generates distribution archives for a variety of platforms";
     homepage = http://www.msweet.org/projects.php?Z2;
diff --git a/pkgs/development/tools/scalafmt/default.nix b/pkgs/development/tools/scalafmt/default.nix
index 391c653b98ab..6c30768d900c 100644
--- a/pkgs/development/tools/scalafmt/default.nix
+++ b/pkgs/development/tools/scalafmt/default.nix
@@ -1,29 +1,37 @@
-{ stdenv, fetchurl, unzip, jre }:
+{ stdenv, jdk, jre, coursier, makeWrapper }:
 
-stdenv.mkDerivation rec {
-  version = "0.6.8";
+let
   baseName = "scalafmt";
-  name = "${baseName}-${version}";
-
-  src = fetchurl {
-    url = "https://github.com/scalameta/scalafmt/releases/download/v${version}/${baseName}.tar.gz";
-    sha256 = "1iaanrxk5lhxx1zj9gbxzgqbnyy1azfrab984mga7di5z1hs02s2";
+  version = "1.3.0";
+  deps = stdenv.mkDerivation {
+    name = "${baseName}-deps-${version}";
+    buildCommand = ''
+      export COURSIER_CACHE=$(pwd)
+      ${coursier}/bin/coursier fetch com.geirsson:scalafmt-cli_2.12:${version} > deps
+      mkdir -p $out/share/java
+      cp $(< deps) $out/share/java/
+    '';
+    outputHashMode = "recursive";
+    outputHashAlgo = "sha256";
+    outputHash     = "0q1vw6drpdrfifbm3266igpml0phdk6pl0gd3b5amysigx83m251";
   };
+in
+stdenv.mkDerivation rec {
+  name = "${baseName}-${version}";
 
-  unpackPhase = "tar xvzf $src";
+  buildInputs = [ jdk makeWrapper deps ];
 
-  installPhase = ''
-    mkdir -p "$out/bin"
-    mkdir -p "$out/lib"
+  doCheck = true;
 
-    cp cli/target/scala-2.11/scalafmt.jar "$out/lib/${name}.jar"
+  phases = [ "installPhase" "checkPhase" ];
 
-    cat > "$out/bin/${baseName}" << EOF
-    #!${stdenv.shell}
-    exec ${jre}/bin/java -jar "$out/lib/${name}.jar" "\$@"
-    EOF
+  installPhase = ''
+    makeWrapper ${jre}/bin/java $out/bin/${baseName} \
+      --add-flags "-cp $CLASSPATH org.scalafmt.cli.Cli"
+  '';
 
-    chmod a+x "$out/bin/${baseName}"
+  checkPhase = ''
+    $out/bin/${baseName} --version | grep -q "${version}"
   '';
 
   meta = with stdenv.lib; {