Merge branch 'master' into hyper-haskell
This commit is contained in:
@@ -54,6 +54,5 @@ stdenv.mkDerivation rec {
|
||||
downloadPage = http://alloy.mit.edu/alloy/download.html;
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ nckx ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
with stdenv.lib;
|
||||
stdenv.mkDerivation rec {
|
||||
name = "ammonite-${version}";
|
||||
version = "1.0.0";
|
||||
version = "1.0.5";
|
||||
scalaVersion = "2.12";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/lihaoyi/Ammonite/releases/download/${version}/${scalaVersion}-${version}";
|
||||
sha256 = "0d74b3aasgg4ap5ishzzm4jbf1k4dxv7gzd88d69miyapsaa4p0c";
|
||||
sha256 = "10y73a4aaz3530qr9mms1j70c6dxgl9kwvnpbh062gnrbyw34z9l";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ jre ] ;
|
||||
@@ -38,6 +38,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = http://www.lihaoyi.com/Ammonite/;
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.all;
|
||||
maintainer = [ lib.maintainers.nequissimus ];
|
||||
maintainers = [ lib.maintainers.nequissimus ];
|
||||
};
|
||||
}
|
||||
|
||||
24
pkgs/development/tools/analysis/autoflake/default.nix
Normal file
24
pkgs/development/tools/analysis/autoflake/default.nix
Normal file
@@ -0,0 +1,24 @@
|
||||
{ stdenv, python3Packages }:
|
||||
|
||||
with python3Packages;
|
||||
buildPythonApplication rec {
|
||||
pname = "autoflake";
|
||||
version = "1.1";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "a74d684a7a02654f74582addc24a3016c06809316cc140457a4fe93a1e6ed131";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ pyflakes ];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://github.com/myint/autoflake;
|
||||
description = "A simple program which removes unused imports and unused variables as reported by pyflakes";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ yuriaisaka ];
|
||||
};
|
||||
}
|
||||
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
|
||||
on various metrics of the code. Metrics supported include lines of code, McCabe's
|
||||
complexity and metrics proposed by Chidamber&Kemerer and Henry&Kafura.
|
||||
'';
|
||||
homepage = "http://cccc.sourceforge.net/";
|
||||
homepage = http://cccc.sourceforge.net/;
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
maintainers = [ stdenv.lib.maintainers.linquize ];
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "6.19";
|
||||
version = "8.8";
|
||||
name = "checkstyle-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/checkstyle/${name}-bin.tar.gz";
|
||||
sha256 = "0x899i5yamwyhv7wgii80fv5hl8bdq0b8wlx1f789l85ik8rjwk9";
|
||||
sha256 = "0yawd6mbz6cqj0qlrh01vy33p30f4s3pfrvsxwg5l11p416zzrz4";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
||||
@@ -29,6 +29,5 @@ stdenv.mkDerivation rec {
|
||||
homepage = http://coan2.sourceforge.net/;
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ nckx ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cppcheck";
|
||||
version = "1.79";
|
||||
version = "1.82";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/${pname}/${name}.tar.bz2";
|
||||
sha256 = "0vgh4zx191d7mcmiilkhcbd9jkspfkppl7l4y5451walvs9vd19b";
|
||||
sha256 = "0kk9injrxbv4mmmjswrh1kidal6l0sdzbp40kv8vwf5aiv8jjaz0";
|
||||
};
|
||||
|
||||
buildInputs = [ pcre ];
|
||||
|
||||
@@ -28,6 +28,5 @@ buildPerlPackage rec {
|
||||
homepage = http://www.gson.org/egypt/;
|
||||
license = with licenses; [ artistic1 gpl1Plus ];
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ nckx ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
{ stdenv, fetchFromGitHub, lib, ocaml, libelf, cf-private, CoreServices, findlib, camlp4, sedlex, ocamlbuild }:
|
||||
{ stdenv, fetchFromGitHub, lib, ocaml, libelf, cf-private, CoreServices,
|
||||
findlib, camlp4, sedlex, ocamlbuild, ocaml_lwt, wtf8, dtoa }:
|
||||
|
||||
with lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.49.1";
|
||||
version = "0.66.0";
|
||||
name = "flow-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "facebook";
|
||||
repo = "flow";
|
||||
rev = "v${version}";
|
||||
sha256 = "1fjqdyl72srla7ysjg0694ym5d3f2rdl5gfq8r9ay4v15jcb5dg6";
|
||||
sha256 = "0l1sdd1n0llmz8m81vym3zhcn824sr9w46h9jpb7i7wrcm4y410d";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
@@ -18,8 +19,9 @@ stdenv.mkDerivation rec {
|
||||
cp bin/flow $out/bin/
|
||||
'';
|
||||
|
||||
buildInputs = [ ocaml libelf findlib camlp4 sedlex ocamlbuild ]
|
||||
++ optionals stdenv.isDarwin [ cf-private CoreServices ];
|
||||
buildInputs = [
|
||||
ocaml libelf findlib camlp4 sedlex ocamlbuild ocaml_lwt wtf8 dtoa
|
||||
] ++ optionals stdenv.isDarwin [ cf-private CoreServices ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A static type checker for JavaScript";
|
||||
|
||||
@@ -9,17 +9,17 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "frama-c-${version}";
|
||||
version = "20170501";
|
||||
slang = "Phosphorus";
|
||||
version = "20171101";
|
||||
slang = "Sulfur";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://frama-c.com/download/frama-c-${slang}-${version}.tar.gz";
|
||||
sha256 = "16bccacms3n4rfpsxdxpdf24bk0hwrnzdpa2pbr6s847li73hkv1";
|
||||
sha256 = "1vwjfqmm1r36gkybsy3a7m89q5zicf4rnz5vlsn9imnpjpl9gjw1";
|
||||
};
|
||||
|
||||
why2 = fetchurl {
|
||||
url = "http://why.lri.fr/download/why-2.37.tar.gz";
|
||||
sha256 = "00xr8aq6zwln0ccfs1ng610j70r6ia6wqdyaqs9iqibqfa1scr3m";
|
||||
url = "http://why.lri.fr/download/why-2.39.tar.gz";
|
||||
sha256 = "0nf17jl00s7q9z8gkbamnf7mglvxqrm3967c17ic4c9xz8g125a8";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoconf makeWrapper ];
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
source "$stdenv"/setup
|
||||
|
||||
cp --recursive "$src" ./
|
||||
|
||||
chmod --recursive u=rwx ./"$(basename "$src")"
|
||||
|
||||
cd ./"$(basename "$src")"
|
||||
|
||||
cmake ./
|
||||
|
||||
make
|
||||
|
||||
mkdir --parents "$out"/bin
|
||||
cp ./TraceFileGen "$out"/bin
|
||||
|
||||
mkdir --parents "$out"/share/doc/"$name"/html
|
||||
cp --recursive ./Documentation/html/* "$out/share/doc/$name/html/"
|
||||
@@ -1,22 +1,29 @@
|
||||
{ stdenv, fetchgit, cmake }:
|
||||
{ stdenv, fetchFromGitHub, cmake }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "tracefilegen-2015-11-14";
|
||||
name = "tracefilegen-2017-05-13";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/GarCoSim/TraceFileGen.git";
|
||||
rev = "4acf75b142683cc475c6b1c841a221db0753b404";
|
||||
sha256 = "0mh661l9d1lczv0mr2y9swzqqlwikyqiv1hdd71r9v8cvm54y5ij";
|
||||
src = fetchFromGitHub {
|
||||
owner = "GarCoSim";
|
||||
repo = "TraceFileGen";
|
||||
rev = "0ebfd1fdb54079d4bdeaa81fc9267ecb9f016d60";
|
||||
sha256 = "1gsx18ksgz5gwl3v62vgrmhxc0wc99i74qwhpn0h57zllk41drjc";
|
||||
};
|
||||
|
||||
buildInputs = [ cmake ];
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
builder = ./builder.sh;
|
||||
patches = [ ./gcc7.patch ];
|
||||
|
||||
installPhase = ''
|
||||
install -Dm755 TraceFileGen $out/bin/TraceFileGen
|
||||
mkdir -p $out/share/doc/${name}/
|
||||
cp -ar $src/Documentation/html $out/share/doc/${name}/.
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Automatically generate all types of basic memory management operations and write into trace files";
|
||||
homepage = "https://github.com/GarCoSim";
|
||||
homepage = https://github.com/GarCoSim;
|
||||
maintainers = [ maintainers.cmcdragonkai ];
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
diff --git a/Utils/Logger.cpp b/Utils/Logger.cpp
|
||||
index 747cd63..e3efdf1 100644
|
||||
--- a/Utils/Logger.cpp
|
||||
+++ b/Utils/Logger.cpp
|
||||
@@ -29,7 +29,7 @@ Logger::Logger(char* tracepath) {
|
||||
trace = fopen(tracepath, "w");
|
||||
|
||||
// dot file is not used, set null as default value
|
||||
- dot = '\0';
|
||||
+ dot = nullptr;
|
||||
//dot = fopen("gcKons.dot", "w");
|
||||
//fprintf(dot,"digraph G {\n");
|
||||
}
|
||||
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Ease the analysis of existing memory management techniques, as well as the prototyping of new memory management techniques.";
|
||||
homepage = "https://github.com/GarCoSim";
|
||||
homepage = https://github.com/GarCoSim;
|
||||
maintainers = [ maintainers.cmcdragonkai ];
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
|
||||
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
|
||||
It takes a perf.data file, parses and evaluates its contents and
|
||||
then displays the result in a graphical way.
|
||||
'';
|
||||
homepage = "https://github.com/KDAB/hotspot";
|
||||
homepage = https://github.com/KDAB/hotspot;
|
||||
license = with stdenv.lib.licenses; [ gpl2 gpl3 ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
maintainers = with stdenv.lib.maintainers; [ nh2 ];
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
stdenv.mkDerivation rec {
|
||||
name = "include-what-you-use-${version}";
|
||||
# Also bump llvmPackages in all-packages.nix to the supported version!
|
||||
version = "0.6";
|
||||
version = "0.8";
|
||||
|
||||
src = fetchurl {
|
||||
sha256 = "0n3z4pfbby0rl338irbs4yvcmjfnza82xg9a8r9amyl0bkfasbxb";
|
||||
sha256 = "0r6n5gqicl0f9c8jrphq40kc2cis952gmnkm3643m3jwad0mn33d";
|
||||
url = "${meta.homepage}/downloads/${name}.src.tar.gz";
|
||||
};
|
||||
|
||||
buildInputs = with llvmPackages; [ clang llvm ];
|
||||
buildInputs = with llvmPackages; [ clang-unwrapped llvm ];
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
cmakeFlags = [ "-DIWYU_LLVM_ROOT_PATH=${llvmPackages.clang-unwrapped}" ];
|
||||
@@ -29,7 +29,6 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
homepage = http://include-what-you-use.org;
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ nckx ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,16 +1,22 @@
|
||||
{stdenv, fetchurl, cmake, pkgconfig, zlib, curl, elfutils, python, libiberty, binutils}:
|
||||
{stdenv, fetchFromGitHub, cmake, pkgconfig, zlib, curl, elfutils, python, libiberty, libopcodes}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "kcov-${version}";
|
||||
version = "32";
|
||||
version = "34";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/SimonKagstrom/kcov/archive/v${version}.tar.gz";
|
||||
sha256 = "0ic5w6r3cpwb32iky1jmyvfclgkqr0rnfyim7j2r6im21846sa85";
|
||||
src = fetchFromGitHub {
|
||||
owner = "SimonKagstrom";
|
||||
repo = "kcov";
|
||||
rev = "v${version}";
|
||||
sha256 = "1i4pn5na8m308pssk8585nmqi8kwd63a9h2rkjrn4w78ibmxvj01";
|
||||
};
|
||||
|
||||
preConfigure = "patchShebangs src/bin-to-c-source.py";
|
||||
buildInputs = [ cmake pkgconfig zlib curl elfutils python libiberty binutils ];
|
||||
nativeBuildInputs = [ cmake pkgconfig ];
|
||||
|
||||
buildInputs = [ zlib curl elfutils python libiberty libopcodes ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Code coverage tester for compiled programs, Python scripts and shell scripts";
|
||||
|
||||
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
|
||||
homepage = http://ltp.sourceforge.net/coverage/lcov.php;
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
|
||||
maintainers = with maintainers; [ dezgeg mornfall ];
|
||||
maintainers = with maintainers; [ dezgeg ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,22 +1,30 @@
|
||||
{ stdenv, fetchurl, automoc4, cmake, gettext, perl, pkgconfig
|
||||
, kdelibs4, kgraphviewer }:
|
||||
{
|
||||
mkDerivation, lib, fetchurl,
|
||||
extra-cmake-modules, shared-mime-info,
|
||||
qtsvg, qtxmlpatterns, karchive, kconfig, kcoreaddons, kparts, kio, ki18n,
|
||||
kdiagram, kgraphviewer
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
name = "massif-visualizer-${version}";
|
||||
version = "0.3.90";
|
||||
version = "0.7.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kde/unstable/massif-visualizer/${version}/src/${name}.tar.xz";
|
||||
sha256 = "9940fa90137ca5eef08b9ec220825fadbf03db423a670a2c7fe3edab271d9922";
|
||||
url = "mirror://kde/stable/massif-visualizer/${version}/src/${name}.tar.xz";
|
||||
sha256 = "0v8z6r9gngzckvqyxjm9kp7hilwfqibyk2f9vag9l98ar0iwr97q";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ automoc4 cmake gettext perl pkgconfig ];
|
||||
buildInputs = [ kdelibs4 kgraphviewer ];
|
||||
nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
buildInputs = [
|
||||
qtsvg qtxmlpatterns karchive kconfig kcoreaddons kparts kio ki18n
|
||||
kdiagram kgraphviewer
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Tool that visualizes massif data generated by valgrind";
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.lethalman ];
|
||||
maintainers = with maintainers; [ lethalman zraexy ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "pmd-${version}";
|
||||
version = "5.2.3";
|
||||
version = "6.0.1";
|
||||
|
||||
buildInputs = [ unzip ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/pmd/pmd-bin-${version}.zip";
|
||||
sha256 = "03frkyiii7304qrcypdqcxqxjf5n3p59zjib0r802mbbx1nzcisn";
|
||||
sha256 = "13wmmy345p8bzvxdb8ldpkv85m3m8x9qs5f0jjhn0gkn65a988iq";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
||||
@@ -1,18 +1,25 @@
|
||||
{ stdenv, fetchurl, cmake, qmake, qtbase, perl, python, php }:
|
||||
{ stdenv, fetchurl, cmake, qmake, qtbase, perl, python, php, kcachegrind, fetchpatch }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "qcachegrind-${version}";
|
||||
version = "16.12.3";
|
||||
let
|
||||
name = stdenv.lib.replaceStrings ["kcachegrind"] ["qcachegrind"] kcachegrind.name;
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.kde.org/stable/applications/${version}/src/kcachegrind-${version}.tar.xz";
|
||||
sha256 = "109y94nz96izzsjjdpj9c6g344rcr86srp5w0433mssbyvym4x7q";
|
||||
};
|
||||
in stdenv.mkDerivation rec {
|
||||
inherit name;
|
||||
|
||||
src = kcachegrind.src;
|
||||
|
||||
buildInputs = [ qtbase perl python php ];
|
||||
|
||||
nativeBuildInputs = [ qmake ];
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "fix-qt5_10-build.patch";
|
||||
url = https://github.com/KDE/kcachegrind/commit/c41607a.patch;
|
||||
sha256 = "00kh5im3hpcarch8rc2dsgxsajfmd8vd7rry9x6mxrbkgr4ifq8y";
|
||||
})
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/bin
|
||||
cp -p converters/dprof2calltree $out/bin/dprof2calltree
|
||||
@@ -28,8 +35,8 @@ stdenv.mkDerivation rec {
|
||||
'' else ''
|
||||
install qcachegrind/qcachegrind cgview/cgview -t "$out/bin"
|
||||
install -Dm644 qcachegrind/qcachegrind.desktop -t "$out/share/applications"
|
||||
install -Dm644 kcachegrind/hi32-app-kcachegrind.png "$out/share/icons/hicolor/32x32/apps/kcachegrind.png"
|
||||
install -Dm644 kcachegrind/hi48-app-kcachegrind.png "$out/share/icons/hicolor/48x48/apps/kcachegrind.png"
|
||||
install -Dm644 kcachegrind/32-apps-kcachegrind.png "$out/share/icons/hicolor/32x32/apps/kcachegrind.png"
|
||||
install -Dm644 kcachegrind/48-apps-kcachegrind.png "$out/share/icons/hicolor/48x48/apps/kcachegrind.png"
|
||||
'');
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
||||
@@ -21,7 +21,8 @@ stdenv.mkDerivation rec {
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
buildInputs = [pkgconfig readline libusb perl]
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [ readline libusb perl]
|
||||
++ optional useX11 [gtkdialog vte gtk2]
|
||||
++ optional rubyBindings [ruby]
|
||||
++ optional pythonBindings [python]
|
||||
@@ -32,6 +33,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = http://radare.org/;
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
maintainers = with stdenv.lib.maintainers; [viric];
|
||||
platforms = with stdenv.lib.platforms; all;
|
||||
platforms = with stdenv.lib.platforms; linux;
|
||||
};
|
||||
}
|
||||
|
||||
48
pkgs/development/tools/analysis/radare2-cutter/default.nix
Normal file
48
pkgs/development/tools/analysis/radare2-cutter/default.nix
Normal file
@@ -0,0 +1,48 @@
|
||||
{ stdenv, fetchFromGitHub, fetchpatch, qmake, pkgconfig, qtbase, qtsvg, radare2 }:
|
||||
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "radare2-cutter-${version}";
|
||||
version = "1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "radareorg";
|
||||
repo = "cutter";
|
||||
rev = "v${version}";
|
||||
sha256 = "02m5sf45n455hn34y7hrqanj830rc5xhz2ppp1z3mzbz0s515pfl";
|
||||
};
|
||||
|
||||
postUnpack = "export sourceRoot=$sourceRoot/src";
|
||||
|
||||
patches = [
|
||||
# Fixup version number :D
|
||||
(fetchpatch {
|
||||
url = "https://github.com/radareorg/cutter/commit/69506b64600df632afdca8b680baa7d946c78644.patch";
|
||||
sha256 = "0ks3ixz8bycjcfi26bd0p6z7qaplhq00alw44hsfzpdm4bmr01x0";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://github.com/radareorg/cutter/commit/8b52c66f4f0091cd9d97389b32aa519c2c602e2b.patch";
|
||||
sha256 = "0wcdn35lx2943pfzm7mkg4sr82pm0qz3yxf74m8fxbd70s3w0gkm";
|
||||
})
|
||||
|
||||
# case-insensitive filtering
|
||||
(fetchpatch {
|
||||
url = "https://github.com/radareorg/cutter/commit/0ebd34370bcaed00000168147572bb78106eeab1.patch";
|
||||
sha256 = "0sc50jwhncfnd2i5mlyld4dbdzi2ws7nh4yglkhlap9l9h1jxn20";
|
||||
})
|
||||
];
|
||||
|
||||
patchFlags = [ "-p2" ];
|
||||
|
||||
nativeBuildInputs = [ qmake pkgconfig ];
|
||||
buildInputs = [ qtbase qtsvg radare2 ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A Qt and C++ GUI for radare2 reverse engineering framework";
|
||||
homepage = src.meta.homepage;
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ dtzWill ];
|
||||
};
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{stdenv, fetchurl, pkgconfig, libusb, readline, libewf, perl, zlib, openssl,
|
||||
{stdenv, fetchFromGitHub, fetchgit, fetchurl, fetchpatch, pkgconfig, libusb, readline, libewf, perl, zlib, openssl, git,
|
||||
gtk2 ? null, vte ? null, gtkdialog ? null,
|
||||
python ? null,
|
||||
ruby ? null,
|
||||
@@ -10,19 +10,37 @@ assert rubyBindings -> ruby != null;
|
||||
assert pythonBindings -> python != null;
|
||||
|
||||
let
|
||||
optional = stdenv.lib.optional;
|
||||
inherit (stdenv.lib) optional;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.4.0";
|
||||
version = "2.4.0";
|
||||
name = "radare2-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://cloud.radare.org/get/${version}/${name}.tar.gz";
|
||||
sha256 = "bf6e9ad94fd5828d3936563b8b13218433fbf44231cacfdf37a7312ae2b3e93e";
|
||||
src = fetchFromGitHub {
|
||||
owner = "radare";
|
||||
repo = "radare2";
|
||||
rev = version;
|
||||
sha256 = "08zvxgsvc6rqpjaapcxz1wm9vzlrbsqgplfkx0lch2s67v6slr7z";
|
||||
};
|
||||
|
||||
postPatch = let
|
||||
cs_tip = "4a1b580d069c82d60070d0869a87000db7cdabe2"; # version from $sourceRoot/shlr/Makefile
|
||||
capstone = fetchgit {
|
||||
url = "https://github.com/aquynh/capstone.git";
|
||||
rev = cs_tip;
|
||||
sha256 = "1b126npshdbwh5y7rafmb9w4dzlvxsf4ca6bx4zs2y7kbk48jyn8";
|
||||
leaveDotGit = true;
|
||||
};
|
||||
in ''
|
||||
if ! grep -F "CS_TIP=${cs_tip}" shlr/Makefile; then echo "CS_TIP mismatch"; exit 1; fi
|
||||
cp -r ${capstone} shlr/capstone
|
||||
chmod -R u+rw shlr/capstone
|
||||
'';
|
||||
|
||||
buildInputs = [pkgconfig readline libusb libewf perl zlib openssl]
|
||||
enableParallelBuilding = true;
|
||||
|
||||
nativeBuildInputs = [ pkgconfig git ];
|
||||
buildInputs = [ readline libusb libewf perl zlib openssl]
|
||||
++ optional useX11 [gtkdialog vte gtk2]
|
||||
++ optional rubyBindings [ruby]
|
||||
++ optional pythonBindings [python]
|
||||
|
||||
120
pkgs/development/tools/analysis/retdec/default.nix
Normal file
120
pkgs/development/tools/analysis/retdec/default.nix
Normal file
@@ -0,0 +1,120 @@
|
||||
{ stdenv, fetchFromGitHub, fetchurl, fetchzip,
|
||||
# Native build inputs
|
||||
cmake,
|
||||
autoconf, automake, libtool,
|
||||
pkgconfig,
|
||||
bison, flex,
|
||||
groff,
|
||||
perl,
|
||||
python,
|
||||
# Runtime tools
|
||||
time,
|
||||
upx,
|
||||
# Build inputs
|
||||
ncurses,
|
||||
libffi,
|
||||
libxml2,
|
||||
zlib,
|
||||
# PE (Windows) data, huge space savings if not needed
|
||||
withPEPatterns ? false,
|
||||
}:
|
||||
|
||||
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 = fetchzip {
|
||||
url = "https://github.com/avast-tl/retdec-support/releases/download/2017-12-12/retdec-support_2017-12-12.tar.xz";
|
||||
sha256 = if withPEPatterns then "0pchl7hb42dm0sdbmpr8d3c6xc0lm6cs4p6g6kdb2cr9c99gjzn3"
|
||||
else "1hcyq6bf4wk739kb53ic2bs71gsbx6zd07pc07lzfnxf8k497mhv";
|
||||
# Removing PE signatures reduces this from 3.8GB -> 642MB (uncompressed)
|
||||
extraPostFetch = stdenv.lib.optionalString (!withPEPatterns) ''
|
||||
rm -rf $out/generic/yara_patterns/static-code/pe
|
||||
'';
|
||||
};
|
||||
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})|'
|
||||
|
||||
cat > cmake/install-share.sh <<EOF
|
||||
#!/bin/sh
|
||||
mkdir -p $out/share/retdec/
|
||||
ln -s ${retdec-support} $out/share/retdec/support
|
||||
EOF
|
||||
chmod +x cmake/*.sh
|
||||
patchShebangs cmake/*.sh
|
||||
|
||||
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";
|
||||
homepage = https://retdec.com;
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ dtzWill ];
|
||||
};
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, libpfm, zlib, pkgconfig, python2Packages, which, procps, gdb }:
|
||||
{ stdenv, fetchFromGitHub, cmake, libpfm, zlib, pkgconfig, python2Packages, which, procps, gdb, capnproto }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "4.5.0";
|
||||
version = "5.1.0";
|
||||
name = "rr-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mozilla";
|
||||
repo = "rr";
|
||||
rev = version;
|
||||
sha256 = "114g1yhpjfyxcn0fkvnfi03lhrs11pj0a1945j2j8z90hx4dwba8";
|
||||
sha256 = "16v08irycb295jjw5yrcjdagvkgcgg4hl5qz215hrw1ff4g7sazy";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@@ -17,8 +17,9 @@ stdenv.mkDerivation rec {
|
||||
patchShebangs .
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [
|
||||
cmake libpfm zlib python2Packages.python pkgconfig python2Packages.pexpect which procps gdb
|
||||
cmake libpfm zlib python2Packages.python python2Packages.pexpect which procps gdb capnproto
|
||||
];
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_C_FLAGS_RELEASE:STRING="
|
||||
@@ -50,6 +51,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
license = "custom";
|
||||
maintainers = with stdenv.lib.maintainers; [ pierron thoughtpolice ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
platforms = ["x86_64-linux"];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -16,7 +16,8 @@ stdenv.mkDerivation {
|
||||
sha256 = "0r43qi6vryqg450fj73yjwbb7gzcgx64rhrhb3r1m6a252srijiy";
|
||||
};
|
||||
|
||||
buildInputs = [sqlite pkgconfig perl]
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [sqlite perl]
|
||||
++ stdenv.lib.optional buildllvmsparse llvm
|
||||
++ stdenv.lib.optional buildc2xml libxml2;
|
||||
|
||||
@@ -27,7 +28,7 @@ stdenv.mkDerivation {
|
||||
|
||||
meta = {
|
||||
description = "A semantic analysis tool for C";
|
||||
homepage = "http://smatch.sourceforge.net/";
|
||||
homepage = http://smatch.sourceforge.net/;
|
||||
license = stdenv.lib.licenses.free; /* OSL, see http://www.opensource.org */
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
|
||||
33
pkgs/development/tools/analysis/snowman/default.nix
Normal file
33
pkgs/development/tools/analysis/snowman/default.nix
Normal file
@@ -0,0 +1,33 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, boost, qtbase }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "snowman-${version}";
|
||||
version = "2017-11-19";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yegord";
|
||||
repo = "snowman";
|
||||
rev = "d03c2d6ffbf262c0011584df59d6bd69c020e08e";
|
||||
sha256 = "0bzqp3zc100dzvybf57bj4dvnybvds0lmn1w2xjb19wkzm9liskn";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
buildInputs = [ boost qtbase ];
|
||||
|
||||
postUnpack = ''
|
||||
export sourceRoot=$sourceRoot/src
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Native code to C/C++ decompiler";
|
||||
homepage = "http://derevenets.com/";
|
||||
|
||||
# https://github.com/yegord/snowman/blob/master/doc/licenses.asciidoc
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ dtzWill ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
@@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
|
||||
sed -i Makefile -e "s|^PREFIX=.*$|PREFIX=$out|g"
|
||||
'';
|
||||
|
||||
buildInputs = [ pkgconfig libxml2 llvm ];
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [ libxml2 llvm ];
|
||||
doCheck = true;
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ stdenv, lib, fetchurl, makeWrapper, yacc, gcc
|
||||
{ stdenv, lib, requireFile, makeWrapper, yacc, gcc
|
||||
, withISpin ? true, tk, swarm, graphviz }:
|
||||
|
||||
let
|
||||
@@ -7,15 +7,17 @@ let
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "spin-${version}";
|
||||
version = "6.4.6";
|
||||
version = "6.4.8";
|
||||
url-version = stdenv.lib.replaceChars ["."] [""] version;
|
||||
|
||||
src = fetchurl {
|
||||
# The homepage is behind CloudFlare anti-DDoS protection, which blocks cURL.
|
||||
# Dropbox mirror from developers:
|
||||
# https://www.dropbox.com/sh/fgzipzp4wpo3qc1/AADZPqS4aoR-pjNF6OQXRLQHa
|
||||
url = "https://www.dropbox.com/sh/fgzipzp4wpo3qc1/AAA-vBeJ7xty-CDZgk7OB58Ta/spin646.tar.gz?raw=1";
|
||||
sha256 = "1n33qzlb7g30vhr5yxssw210b2m0242y9j21c7fqpn9z6b0rbhjp";
|
||||
src = requireFile {
|
||||
name = "spin${url-version}.tar.gz";
|
||||
sha256 = "1rpazi5fj772121cn7r85fxypmaiv0x6x2l82b5y1xqzyf0fi4ph";
|
||||
message = ''
|
||||
reCAPTCHA is preventing us to download the file for you.
|
||||
Please download it at http://spinroot.com/spin/Src/index.html
|
||||
and add it to the nix-store using nix-prefetch-url.
|
||||
'';
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
@@ -23,6 +25,12 @@ in stdenv.mkDerivation rec {
|
||||
|
||||
sourceRoot = "Spin/Src${version}";
|
||||
|
||||
unpackPhase = ''
|
||||
# The archive is compressed twice
|
||||
gunzip -c $src > spin.tar.gz
|
||||
tar -xzf spin.tar.gz
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
install -Dm755 spin $out/bin/spin
|
||||
wrapProgram $out/bin/spin \
|
||||
@@ -38,6 +46,6 @@ in stdenv.mkDerivation rec {
|
||||
homepage = http://spinroot.com/;
|
||||
license = licenses.free;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ mornfall pSub ];
|
||||
maintainers = with maintainers; [ pSub ];
|
||||
};
|
||||
}
|
||||
|
||||
13
pkgs/development/tools/analysis/splint/darwin.patch
Normal file
13
pkgs/development/tools/analysis/splint/darwin.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/src/osd.c b/src/osd.c
|
||||
index ebe214a..4ba81d5 100644
|
||||
--- a/src/osd.c
|
||||
+++ b/src/osd.c
|
||||
@@ -516,7 +516,7 @@ osd_getPid ()
|
||||
# if defined (WIN32) || defined (OS2) && defined (__IBMC__)
|
||||
int pid = _getpid ();
|
||||
# else
|
||||
- __pid_t pid = getpid ();
|
||||
+ pid_t pid = getpid ();
|
||||
# endif
|
||||
|
||||
return (int) pid;
|
||||
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "02pv8kscsrkrzip9r08pfs9xs98q74c52mlxzbii6cv6vx1vd3f7";
|
||||
};
|
||||
|
||||
patches = [ ./tmpdir.patch ];
|
||||
patches = [ ./tmpdir.patch ] ++ stdenv.lib.optional stdenv.isDarwin ./darwin.patch;
|
||||
|
||||
buildInputs = [ flex ];
|
||||
|
||||
@@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Verification script generator for Spin";
|
||||
homepage = "http://spinroot.com/";
|
||||
homepage = http://spinroot.com/;
|
||||
license = licenses.free;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ abbradar ];
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
{ stdenv, fetchurl, fetchpatch, perl, gdb, llvm, cctools, xnu, bootstrap_cmds }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "valgrind-3.12.0";
|
||||
name = "valgrind-3.13.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://valgrind.org/downloads/${name}.tar.bz2";
|
||||
sha256 = "18bnrw9b1d55wi1wnl68n25achsp9w48n51n1xw4fwjjnaal7jk7";
|
||||
url = "https://sourceware.org/pub/valgrind/${name}.tar.bz2";
|
||||
sha256 = "0fqc3684grrbxwsic1rc5ryxzxmigzjx9p5vf3lxa37h0gpq0rnp";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" "man" "doc" ];
|
||||
@@ -18,7 +18,15 @@ stdenv.mkDerivation rec {
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patches = stdenv.lib.optionals (stdenv.isDarwin) [ ./valgrind-bzero.patch ];
|
||||
preConfigure = stdenv.lib.optionalString stdenv.isDarwin (
|
||||
let OSRELEASE = ''
|
||||
$(awk -F '"' '/#define OSRELEASE/{ print $2 }' \
|
||||
<${xnu}/Library/Frameworks/Kernel.framework/Headers/libkern/version.h)'';
|
||||
in ''
|
||||
echo "Don't derive our xnu version using uname -r."
|
||||
substituteInPlace configure --replace "uname -r" "echo ${OSRELEASE}"
|
||||
''
|
||||
);
|
||||
|
||||
postPatch = stdenv.lib.optionalString (stdenv.isDarwin)
|
||||
# Apple's GCC doesn't recognize `-arch' (as of version 4.2.1, build 5666).
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
Index: coregrind/m_main.c
|
||||
===================================================================
|
||||
--- a/coregrind/m_main.c (revision 16102)
|
||||
+++ b/coregrind/m_main.c (revision 16103)
|
||||
@@ -3489,6 +3489,10 @@
|
||||
// skip check
|
||||
return VG_(memset)(s,c,n);
|
||||
}
|
||||
+void __bzero(void* s, UWord n);
|
||||
+void __bzero(void* s, UWord n) {
|
||||
+ (void)VG_(memset)(s,0,n);
|
||||
+}
|
||||
void bzero(void *s, SizeT n);
|
||||
void bzero(void *s, SizeT n) {
|
||||
VG_(memset)(s,0,n);
|
||||
@@ -4058,20 +4062,7 @@
|
||||
|
||||
#endif
|
||||
|
||||
-#if defined(VGO_darwin) && DARWIN_VERS == DARWIN_10_10
|
||||
|
||||
-/* This might also be needed for > DARWIN_10_10, but I have no way
|
||||
- to test for that. Hence '==' rather than '>=' in the version
|
||||
- test above. */
|
||||
-void __bzero ( void* s, UWord n );
|
||||
-void __bzero ( void* s, UWord n )
|
||||
-{
|
||||
- (void) VG_(memset)( s, 0, n );
|
||||
-}
|
||||
-
|
||||
-#endif
|
||||
-
|
||||
-
|
||||
/*--------------------------------------------------------------------*/
|
||||
/*--- end ---*/
|
||||
/*--------------------------------------------------------------------*/
|
||||
|
||||
32
pkgs/development/tools/ansible-lint/default.nix
Normal file
32
pkgs/development/tools/ansible-lint/default.nix
Normal file
@@ -0,0 +1,32 @@
|
||||
{ stdenv, fetchFromGitHub, pythonPackages, ansible }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
pname = "ansible-lint";
|
||||
version = "3.4.20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "willthames";
|
||||
repo = "ansible-lint";
|
||||
rev = "v${version}";
|
||||
sha256 = "0wgczijrg5azn2f63hjbkas1w0f5hbvxnk3ia53w69mybk0gy044";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with pythonPackages; [ pyyaml six ] ++ [ ansible ];
|
||||
|
||||
checkInputs = [ pythonPackages.nose ];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs bin/ansible-lint
|
||||
'';
|
||||
|
||||
checkPhase = ''
|
||||
nosetests test
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/willthames/ansible-lint";
|
||||
description = "Best practices checker for Ansible";
|
||||
license = stdenv.lib.licenses.mit;
|
||||
maintainers = [ stdenv.lib.maintainers.sengaya ];
|
||||
};
|
||||
}
|
||||
@@ -2,11 +2,14 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "apktool-${version}";
|
||||
version = "2.2.2";
|
||||
version = "2.3.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_${version}.jar";
|
||||
sha256 = "1a94jw0ml08xdwls1q9v5p1zak5qrbw2zyychnm5vch8znyws411";
|
||||
urls = [
|
||||
"https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_${version}.jar"
|
||||
"https://github.com/iBotPeaches/Apktool/releases/download/v${version}/apktool_${version}.jar"
|
||||
];
|
||||
sha256 = "01xj2hivwwp3msvv0psxyxrzg95vj2ny56l3n90glhwznn7l60ai";
|
||||
};
|
||||
|
||||
phases = [ "installPhase" ];
|
||||
@@ -25,7 +28,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A tool for reverse engineering Android apk files";
|
||||
homepage = https://code.google.com/p/android-apktool/;
|
||||
homepage = https://ibotpeaches.github.io/Apktool/;
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ offline ];
|
||||
platforms = with platforms; unix;
|
||||
|
||||
@@ -1,30 +1,25 @@
|
||||
{ stdenv, fetchFromGitHub, python2Packages, makeWrapper }:
|
||||
{ stdenv, buildPythonApplication, fetchFromGitHub, makeWrapper, cmake
|
||||
, pytestrunner, pytest, six, pyparsing, asn1ate }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
buildPythonApplication rec {
|
||||
pname = "asn2quickder";
|
||||
name = "${pname}-${version}";
|
||||
version = "0.7-RC1";
|
||||
version = "1.2-6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
sha256 = "0ynajhbml28m4ipbj5mscjcv6g1a7frvxfimxh813rhgl0w3sgq8";
|
||||
sha256 = "00wifjydgmqw2i5vmr049visc3shjqccgzqynkmmhkjhs86ghzr6";
|
||||
rev = "version-${version}";
|
||||
owner = "vanrein";
|
||||
repo = "${pname}";
|
||||
repo = "quick-der";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python2Packages; [ pyparsing makeWrapper ];
|
||||
patchPhase = ''
|
||||
patchShebangs ./python/scripts/*
|
||||
'';
|
||||
|
||||
patchPhase = with python2Packages; ''
|
||||
substituteInPlace Makefile \
|
||||
--replace '..' '..:$(DESTDIR)/${python.sitePackages}:${python2Packages.pyparsing}/${python.sitePackages}' \
|
||||
'';
|
||||
buildInputs = [ makeWrapper cmake ];
|
||||
checkInputs = [ pytestrunner pytest ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/${python2Packages.python.sitePackages}/
|
||||
mkdir -p $out/bin $out/lib $out/sbin $out/man
|
||||
make DESTDIR=$out PREFIX=/ all
|
||||
make DESTDIR=$out PREFIX=/ install
|
||||
'';
|
||||
propagatedBuildInputs = [ pyparsing asn1ate six ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "An ASN.1 compiler with a backend for Quick DER";
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
{ fetchFromGitHub, makeWrapper, pythonPackages, stdenv }:
|
||||
{ lib, buildPythonApplication, fetchFromGitHub, makeWrapper
|
||||
, arrow, futures, logfury, requests, six, tqdm
|
||||
}:
|
||||
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
name = "backblaze-b2-${version}";
|
||||
version = "0.6.2";
|
||||
buildPythonApplication rec {
|
||||
pname = "backblaze-b2";
|
||||
version = "1.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Backblaze";
|
||||
repo = "B2_Command_Line_Tool";
|
||||
rev = "3a4cd3f0b5309f79f98c2e0d51afc19fb2fe4201";
|
||||
sha256 = "1gl1z7zg3s1xgx45i6b1bvx9iwviiiinl4my00h66qkhrw7ag8p1";
|
||||
rev = "v${version}";
|
||||
sha256 = "0697rcdsmxz51p4b8m8klx2mf5xnx6vx56vcf5jmzidh8mc38a6z";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with pythonPackages; [ futures requests six tqdm ];
|
||||
propagatedBuildInputs = [ arrow futures logfury requests six tqdm ];
|
||||
|
||||
checkPhase = ''
|
||||
python test_b2_command_line.py test
|
||||
@@ -27,7 +29,7 @@ pythonPackages.buildPythonApplication rec {
|
||||
cp contrib/bash_completion/b2 "$out/etc/bash_completion.d/backblaze-b2"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "Command-line tool for accessing the Backblaze B2 storage service";
|
||||
homepage = https://github.com/Backblaze/B2_Command_Line_Tool;
|
||||
license = licenses.mit;
|
||||
|
||||
@@ -1,22 +1,31 @@
|
||||
{ stdenv, binutils, fetchgit }:
|
||||
{ stdenv, binutils, cmake, fetchFromGitHub }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "2016.12.28";
|
||||
version = "2017-10-05";
|
||||
name = "bloaty-${version}";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/google/bloaty.git";
|
||||
rev = "2234386bcee7297dfa1b6d8a5d20f95ea4ed9bb0";
|
||||
sha256 = "0cfsjgbp9r16d6qi8v4k609bbhjff4vhdiapfkhr34z1cik1md4l";
|
||||
src = fetchFromGitHub {
|
||||
owner = "google";
|
||||
repo = "bloaty";
|
||||
rev = "e47b21b01ceecf001e1965e9da249d48d86a1749";
|
||||
sha256 = "1il3z49hi0b07agjwr5fg1wzysfxsamfv1snvlp33vrlyl1m7cbm";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
configurePhase = ''
|
||||
sed -i 's,c++filt,${binutils}/bin/c++filt,' src/bloaty.cc
|
||||
preConfigure = ''
|
||||
substituteInPlace src/bloaty.cc \
|
||||
--replace "c++filt" \
|
||||
"${binutils.bintools}/bin/c++filt"
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
|
||||
checkPhase = "ctest";
|
||||
|
||||
installPhase = ''
|
||||
install -Dm755 {.,$out/bin}/bloaty
|
||||
'';
|
||||
|
||||
@@ -1,38 +1,43 @@
|
||||
{ stdenv, fetchgit, cmake, expat, qt5, boost }:
|
||||
{ stdenv, fetchFromGitHub, cmake, qtbase }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "boomerang-${version}";
|
||||
version = "0.3.99-alpha-2016-11-02";
|
||||
version = "0.4.0-alpha-2018-01-18";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/nemerle/boomerang.git";
|
||||
rev = "f95d6436845e9036c8cfbd936731449475f79b7a";
|
||||
sha256 = "1q3q92lfj24ij5sxdbdhcqyan28r6db1w80yrks4csf9zjij1ixh";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ceeac";
|
||||
repo = "boomerang";
|
||||
rev = "b4ff8d573407a8ed6365d4bfe53d2d47d983e393";
|
||||
sha256 = "0x17vlm6y1paa49fi3pmzz7vzdqms19qkr274hkq32ql342b6i6x";
|
||||
};
|
||||
|
||||
buildInputs = [ cmake expat qt5.qtbase boost ];
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ qtbase ];
|
||||
|
||||
patches = [ ./fix-install.patch ./fix-output.patch ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace loader/BinaryFileFactory.cpp \
|
||||
--replace '"lib"' '"../lib"'
|
||||
|
||||
substituteInPlace ui/DecompilerThread.cpp \
|
||||
--replace '"output"' '"./output"'
|
||||
|
||||
substituteInPlace boomerang.cpp \
|
||||
--replace 'progPath("./")' "progPath(\"$out/share/boomerang/\")"
|
||||
|
||||
substituteInPlace ui/commandlinedriver.cpp \
|
||||
--replace "QFileInfo(args[0]).absolutePath()" "\"$out/share/boomerang/\""
|
||||
postPatch =
|
||||
# Look in installation directory for required files, not relative to working directory
|
||||
''
|
||||
substituteInPlace src/boomerang/core/Settings.cpp \
|
||||
--replace "setDataDirectory(\"../share/boomerang\");" \
|
||||
"setDataDirectory(\"$out/share/boomerang\");" \
|
||||
--replace "setPluginDirectory(\"../lib/boomerang/plugins\");" \
|
||||
"setPluginDirectory(\"$out/lib/boomerang/plugins\");"
|
||||
''
|
||||
# Fixup version:
|
||||
# * don't try to inspect with git
|
||||
# (even if we kept .git and such it would be "dirty" because of patching)
|
||||
# * use date so version is monotonically increasing moving forward
|
||||
+ ''
|
||||
sed -i cmake-scripts/boomerang-version.cmake \
|
||||
-e 's/set(\(PROJECT\|BOOMERANG\)_VERSION ".*")/set(\1_VERSION "${version}")/'
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
homepage = "http://boomerang.sourceforge.net/";
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://boomerang.sourceforge.net/;
|
||||
license = licenses.bsd3;
|
||||
description = "A general, open source, retargetable decompiler";
|
||||
maintainers = with maintainers; [ dtzWill ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
From 5851256422a4debc34c956439d8129a4d5f80722 Mon Sep 17 00:00:00 2001
|
||||
From: Will Dietz <w@wdtz.org>
|
||||
Date: Thu, 30 Mar 2017 10:06:03 -0500
|
||||
Subject: [PATCH] cmake: add install bits
|
||||
|
||||
---
|
||||
CMakeLists.txt | 3 +++
|
||||
loader/CMakeLists.txt | 2 ++
|
||||
ui/CMakeLists.txt | 2 ++
|
||||
3 files changed, 7 insertions(+)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 826fe307..740861db 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -113,3 +113,6 @@ SET_PROPERTY(TARGET boom_base PROPERTY CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
ADD_SUBDIRECTORY(loader)
|
||||
ADD_SUBDIRECTORY(ui)
|
||||
+
|
||||
+INSTALL(DIRECTORY signatures DESTINATION share/boomerang)
|
||||
+INSTALL(DIRECTORY frontend/machine DESTINATION share/boomerang/frontend)
|
||||
diff --git a/loader/CMakeLists.txt b/loader/CMakeLists.txt
|
||||
index b371d366..dcf715fd 100644
|
||||
--- a/loader/CMakeLists.txt
|
||||
+++ b/loader/CMakeLists.txt
|
||||
@@ -6,6 +6,8 @@ macro(BOOMERANG_ADD_LOADER name)
|
||||
endif()
|
||||
qt5_use_modules(${target_name} Core)
|
||||
set_target_properties(${target_name} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/out/lib")
|
||||
+ install(TARGETS "${target_name}"
|
||||
+ LIBRARY DESTINATION lib)
|
||||
endmacro()
|
||||
|
||||
BOOMERANG_ADD_LOADER(Elf elf/ElfBinaryFile.cpp elf/ElfBinaryFile.h)
|
||||
diff --git a/ui/CMakeLists.txt b/ui/CMakeLists.txt
|
||||
index f6fe3271..8729b522 100644
|
||||
--- a/ui/CMakeLists.txt
|
||||
+++ b/ui/CMakeLists.txt
|
||||
@@ -26,3 +26,5 @@ boom_base frontend db type boomerang_DSLs codegen util boom_base
|
||||
${CMAKE_THREAD_LIBS_INIT} boomerang_passes
|
||||
)
|
||||
qt5_use_modules(boomerang Core Xml Widgets)
|
||||
+
|
||||
+INSTALL(TARGETS boomerang DESTINATION bin)
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
From f3f5f888a1b1fe72ea8fc8cc96ef4ee386011e1c Mon Sep 17 00:00:00 2001
|
||||
From: Will Dietz <w@wdtz.org>
|
||||
Date: Thu, 30 Mar 2017 11:21:38 -0500
|
||||
Subject: [PATCH] don't default to writing to program directory
|
||||
|
||||
---
|
||||
boomerang.cpp | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/boomerang.cpp b/boomerang.cpp
|
||||
index 5951ed91..b592f482 100644
|
||||
--- a/boomerang.cpp
|
||||
+++ b/boomerang.cpp
|
||||
@@ -601,7 +601,6 @@ int Boomerang::processCommand(QStringList &args) {
|
||||
*/
|
||||
void Boomerang::setProgPath(const QString &p) {
|
||||
progPath = p + "/";
|
||||
- outputPath = progPath + "/output/"; // Default output path (can be overridden with -o below)
|
||||
}
|
||||
|
||||
/**
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ fetchurl, stdenv, coreutils, makeWrapper }:
|
||||
|
||||
let version = "1.9.6"; in
|
||||
let version = "1.10.2"; in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "ant-${version}";
|
||||
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://apache/ant/binaries/apache-ant-${version}-bin.tar.bz2";
|
||||
sha256 = "1cwd5vq175gyicw0hkm8idwa33zxwhf7xlxywaqxcqqdjql0jfx4";
|
||||
sha256 = "0662qammjvibh9kgkxzadkayfn2r7iwnagbwaw28crqqclrb2rp1";
|
||||
};
|
||||
|
||||
contrib = fetchurl {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
assert jdk != null;
|
||||
|
||||
let version = "3.5.0"; in
|
||||
let version = "3.5.2"; in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "apache-maven-${version}";
|
||||
|
||||
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://apache/maven/maven-3/${version}/binaries/${name}-bin.tar.gz";
|
||||
sha256 = "0d7hjnj77hc7qqnnfmqlwij8n6pcldfavvd6lilvv5ak4hci9fdy";
|
||||
sha256 = "1zza5kjf69hnx41gy3yhvsk1kz259nig5njcmzjbsr8a75p1yyvh";
|
||||
};
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = http://maven.apache.org/;
|
||||
license = licenses.asl20;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ cko ];
|
||||
};
|
||||
}
|
||||
|
||||
22
pkgs/development/tools/build-managers/arpa2cm/default.nix
Normal file
22
pkgs/development/tools/build-managers/arpa2cm/default.nix
Normal file
@@ -0,0 +1,22 @@
|
||||
{ stdenv, fetchFromGitHub, cmake }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "arpa2cm";
|
||||
version = "0.5";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
sha256 = "093h7njj8d8iiwnw5byfxkkzlbny60fwv1w57j8f1lsd4yn6rih4";
|
||||
rev = "version-${version}";
|
||||
repo = "${pname}";
|
||||
owner = "arpa2";
|
||||
};
|
||||
|
||||
buildInputs = [ cmake ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "CMake Module library for the ARPA2 project";
|
||||
license = licenses.bsd2;
|
||||
maintainers = with maintainers; [ leenaars ];
|
||||
};
|
||||
}
|
||||
98
pkgs/development/tools/build-managers/bazel/0.4.nix
Normal file
98
pkgs/development/tools/build-managers/bazel/0.4.nix
Normal file
@@ -0,0 +1,98 @@
|
||||
{ stdenv, lib, fetchurl, jdk, zip, unzip, bash, makeWrapper, which, coreutils
|
||||
# Always assume all markers valid (don't redownload dependencies).
|
||||
# Also, don't clean up environment variables.
|
||||
, enableNixHacks ? false
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
version = "0.4.5";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://github.com/bazelbuild/bazel/;
|
||||
description = "Build tool that builds code quickly and reliably";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ cstrahan philandstuff ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
|
||||
name = "bazel-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
|
||||
sha256 = "0asmq3kxnl4326zhgh13mvcrc8jvmiswjj4ymrq0943q4vj7nwrb";
|
||||
};
|
||||
|
||||
preUnpack = ''
|
||||
mkdir bazel
|
||||
cd bazel
|
||||
'';
|
||||
sourceRoot = ".";
|
||||
|
||||
patches = lib.optional enableNixHacks ./nix-hacks-0.4.patch;
|
||||
|
||||
postPatch = ''
|
||||
for f in $(grep -l -r '/bin/bash'); do
|
||||
substituteInPlace "$f" --replace '/bin/bash' '${bash}/bin/bash'
|
||||
done
|
||||
for f in $(grep -l -r '/usr/bin/env'); do
|
||||
substituteInPlace "$f" --replace '/usr/bin/env' '${coreutils}/bin/env'
|
||||
done
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
sed -i 's,/usr/bin/xcrun clang,clang,g' \
|
||||
scripts/bootstrap/compile.sh \
|
||||
src/tools/xcode/realpath/BUILD \
|
||||
src/tools/xcode/stdredirect/BUILD \
|
||||
src/tools/xcode/xcrunwrapper/xcrunwrapper.sh
|
||||
sed -i 's,/usr/bin/xcrun "''${TOOLNAME}","''${TOOLNAME}",g' \
|
||||
src/tools/xcode/xcrunwrapper/xcrunwrapper.sh
|
||||
sed -i 's/"xcrun", "clang"/"clang"/g' tools/osx/xcode_configure.bzl
|
||||
'';
|
||||
|
||||
buildInputs = [
|
||||
jdk
|
||||
zip
|
||||
unzip
|
||||
makeWrapper
|
||||
which
|
||||
];
|
||||
|
||||
# These must be propagated since the dependency is hidden in a compressed
|
||||
# archive.
|
||||
|
||||
propagatedBuildInputs = [
|
||||
bash
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
./compile.sh
|
||||
./output/bazel --output_user_root=/tmp/.bazel build //scripts:bash_completion \
|
||||
--spawn_strategy=standalone \
|
||||
--genrule_strategy=standalone
|
||||
cp bazel-bin/scripts/bazel-complete.bash output/
|
||||
'';
|
||||
|
||||
# Build the CPP and Java examples to verify that Bazel works.
|
||||
|
||||
doCheck = true;
|
||||
checkPhase = ''
|
||||
export TEST_TMPDIR=$(pwd)
|
||||
./output/bazel test --test_output=errors \
|
||||
examples/cpp:hello-success_test \
|
||||
examples/java-native/src/test/java/com/example/myproject:hello
|
||||
'';
|
||||
|
||||
# Bazel expects gcc and java to be in the path.
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
mv output/bazel $out/bin
|
||||
wrapProgram "$out/bin/bazel" --prefix PATH : "${stdenv.cc}/bin:${jdk}/bin"
|
||||
mkdir -p $out/share/bash-completion/completions $out/share/zsh/site-functions
|
||||
mv output/bazel-complete.bash $out/share/bash-completion/completions/
|
||||
cp scripts/zsh_completion/_bazel $out/share/zsh/site-functions/
|
||||
'';
|
||||
|
||||
dontStrip = true;
|
||||
dontPatchELF = true;
|
||||
}
|
||||
@@ -1,11 +1,15 @@
|
||||
{ stdenv, fetchurl, jdk, zip, unzip, bash, makeWrapper, which }:
|
||||
{ stdenv, lib, fetchurl, jdk, zip, unzip, bash, writeScriptBin, coreutils, makeWrapper, which, python
|
||||
# Always assume all markers valid (don't redownload dependencies).
|
||||
# Also, don't clean up environment variables.
|
||||
, enableNixHacks ? false
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
version = "0.4.5";
|
||||
version = "0.10.1";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://github.com/bazelbuild/bazel/;
|
||||
homepage = "https://github.com/bazelbuild/bazel/";
|
||||
description = "Build tool that builds code quickly and reliably";
|
||||
license = licenses.asl20;
|
||||
maintainers = [ maintainers.philandstuff ];
|
||||
@@ -16,40 +20,40 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
|
||||
sha256 = "0asmq3kxnl4326zhgh13mvcrc8jvmiswjj4ymrq0943q4vj7nwrb";
|
||||
sha256 = "0rz6zvkzyglf0mmc178avf52zynz487m4v0089ilsbrgv7v4i0kh";
|
||||
};
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
patches = lib.optional enableNixHacks ./nix-hacks.patch;
|
||||
|
||||
# Bazel expects several utils to be available in Bash even without PATH. Hence this hack.
|
||||
|
||||
customBash = writeScriptBin "bash" ''
|
||||
#!${stdenv.shell}
|
||||
PATH="$PATH:${lib.makeBinPath [ coreutils ]}" exec ${bash}/bin/bash "$@"
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
for f in $(grep -l -r '#!/bin/bash'); do
|
||||
substituteInPlace "$f" --replace '#!/bin/bash' '#!${bash}/bin/bash'
|
||||
done
|
||||
for f in \
|
||||
src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java \
|
||||
src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java \
|
||||
src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShRuleClasses.java \
|
||||
src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java \
|
||||
; do
|
||||
substituteInPlace "$f" --replace /bin/bash ${bash}/bin/bash
|
||||
find src/main/java/com/google/devtools -type f -print0 | while IFS="" read -r -d "" path; do
|
||||
substituteInPlace "$path" \
|
||||
--replace /bin/bash ${customBash}/bin/bash \
|
||||
--replace /usr/bin/env ${coreutils}/bin/env
|
||||
done
|
||||
patchShebangs .
|
||||
'';
|
||||
|
||||
buildInputs = [
|
||||
stdenv.cc
|
||||
stdenv.cc.cc.lib
|
||||
jdk
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
zip
|
||||
python
|
||||
unzip
|
||||
makeWrapper
|
||||
which
|
||||
];
|
||||
|
||||
# These must be propagated since the dependency is hidden in a compressed
|
||||
# archive.
|
||||
|
||||
propagatedBuildInputs = [
|
||||
bash
|
||||
customBash
|
||||
];
|
||||
|
||||
# If TMPDIR is in the unpack dir we run afoul of blaze's infinite symlink
|
||||
@@ -76,16 +80,21 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
# Bazel expects gcc and java to be in the path.
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
mv output/bazel $out/bin
|
||||
wrapProgram "$out/bin/bazel" --prefix PATH : "${stdenv.cc}/bin:${jdk}/bin"
|
||||
wrapProgram "$out/bin/bazel" --prefix PATH : "${lib.makeBinPath [ stdenv.cc jdk ]}"
|
||||
mkdir -p $out/share/bash-completion/completions $out/share/zsh/site-functions
|
||||
mv output/bazel-complete.bash $out/share/bash-completion/completions/
|
||||
cp scripts/zsh_completion/_bazel $out/share/zsh/site-functions/
|
||||
'';
|
||||
|
||||
# Save paths to hardcoded dependencies so Nix can detect them.
|
||||
postFixup = ''
|
||||
mkdir -p $out/nix-support
|
||||
echo "${customBash} ${coreutils}" > $out/nix-support/depends
|
||||
'';
|
||||
|
||||
dontStrip = true;
|
||||
dontPatchELF = true;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java
|
||||
index eafa09fb5..d2d5e40e8 100644
|
||||
--- a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java
|
||||
+++ b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java
|
||||
@@ -287,21 +287,8 @@ public final class RepositoryDelegatorFunction implements SkyFunction {
|
||||
markerData.put(key, value);
|
||||
}
|
||||
}
|
||||
- boolean result = false;
|
||||
- if (markerRuleKey.equals(ruleKey)) {
|
||||
- result = handler.verifyMarkerData(rule, markerData, env);
|
||||
- if (env.valuesMissing()) {
|
||||
- return null;
|
||||
- }
|
||||
- }
|
||||
|
||||
- if (result) {
|
||||
- return new Fingerprint().addString(content).digestAndReset();
|
||||
- } else {
|
||||
- // So that we are in a consistent state if something happens while fetching the repository
|
||||
- markerPath.delete();
|
||||
- return null;
|
||||
- }
|
||||
+ return new Fingerprint().addString(content).digestAndReset();
|
||||
|
||||
} catch (IOException e) {
|
||||
throw new RepositoryFunctionException(e, Transience.TRANSIENT);
|
||||
diff --git a/src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java b/src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java
|
||||
index a7ebc8f7a..40f2049fa 100644
|
||||
--- a/src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java
|
||||
+++ b/src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java
|
||||
@@ -129,7 +129,6 @@ public class JavaSubprocessFactory implements SubprocessFactory {
|
||||
ProcessBuilder builder = new ProcessBuilder();
|
||||
builder.command(params.getArgv());
|
||||
if (params.getEnv() != null) {
|
||||
- builder.environment().clear();
|
||||
builder.environment().putAll(params.getEnv());
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/com/google/devtools/build/lib/worker/Worker.java b/src/main/java/com/google/devtools/build/lib/worker/Worker.java
|
||||
index 0268d1b2b..637364657 100644
|
||||
--- a/src/main/java/com/google/devtools/build/lib/worker/Worker.java
|
||||
+++ b/src/main/java/com/google/devtools/build/lib/worker/Worker.java
|
||||
@@ -77,7 +77,6 @@ class Worker {
|
||||
new ProcessBuilder(command)
|
||||
.directory(workDir.getPathFile())
|
||||
.redirectError(Redirect.appendTo(logFile.getPathFile()));
|
||||
- processBuilder.environment().clear();
|
||||
processBuilder.environment().putAll(workerKey.getEnv());
|
||||
|
||||
this.process = processBuilder.start();
|
||||
37
pkgs/development/tools/build-managers/bazel/nix-hacks.patch
Normal file
37
pkgs/development/tools/build-managers/bazel/nix-hacks.patch
Normal file
@@ -0,0 +1,37 @@
|
||||
diff -Naur a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java
|
||||
--- a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java 1980-01-01 00:00:00.000000000 -0500
|
||||
+++ b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java 2018-01-18 08:17:22.420459162 -0500
|
||||
@@ -287,21 +287,8 @@
|
||||
markerData.put(key, value);
|
||||
}
|
||||
}
|
||||
- boolean result = false;
|
||||
- if (markerRuleKey.equals(ruleKey)) {
|
||||
- result = handler.verifyMarkerData(rule, markerData, env);
|
||||
- if (env.valuesMissing()) {
|
||||
- return null;
|
||||
- }
|
||||
- }
|
||||
|
||||
- if (result) {
|
||||
- return new Fingerprint().addString(content).digestAndReset();
|
||||
- } else {
|
||||
- // So that we are in a consistent state if something happens while fetching the repository
|
||||
- markerPath.delete();
|
||||
- return null;
|
||||
- }
|
||||
+ return new Fingerprint().addString(content).digestAndReset();
|
||||
|
||||
} catch (IOException e) {
|
||||
throw new RepositoryFunctionException(e, Transience.TRANSIENT);
|
||||
diff -Naur a/src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java b/src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java
|
||||
--- a/src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java 1980-01-01 00:00:00.000000000 -0500
|
||||
+++ b/src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java 2018-01-18 08:17:53.274877980 -0500
|
||||
@@ -129,7 +129,6 @@
|
||||
ProcessBuilder builder = new ProcessBuilder();
|
||||
builder.command(params.getArgv());
|
||||
if (params.getEnv() != null) {
|
||||
- builder.environment().clear();
|
||||
builder.environment().putAll(params.getEnv());
|
||||
}
|
||||
|
||||
13
pkgs/development/tools/build-managers/bear/cmakepaths.patch
Normal file
13
pkgs/development/tools/build-managers/bear/cmakepaths.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 04c5c58..429ca47 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -24,7 +24,7 @@ set(CMAKE_OSX_ARCHITECTURES "i386;x86_64" CACHE STRING "Rogue")
|
||||
|
||||
set(EAR_LIB_FILE ${CMAKE_SHARED_LIBRARY_PREFIX}ear${CMAKE_SHARED_LIBRARY_SUFFIX})
|
||||
set(EAR_LIB_PATH "${CMAKE_INSTALL_LIBDIR}/bear")
|
||||
-set(DEFAULT_PRELOAD_FILE ${CMAKE_INSTALL_PREFIX}/${EAR_LIB_PATH}/${EAR_LIB_FILE} CACHE STRING "Default path to libear.")
|
||||
+set(DEFAULT_PRELOAD_FILE ${EAR_LIB_PATH}/${EAR_LIB_FILE} CACHE STRING "Default path to libear.")
|
||||
|
||||
add_subdirectory(libear)
|
||||
add_subdirectory(bear)
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "bear-${version}";
|
||||
version = "2.2.1";
|
||||
version = "2.3.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rizsotto";
|
||||
repo = "Bear";
|
||||
rev = version;
|
||||
sha256 = "1rwar5nvvhfqws4nwyifaysqs3nxpphp48lx9mdg5n6l4z7drz0n";
|
||||
sha256 = "0r6ykvclq9ws055ssd8w33dicmk5l9pisv0fpzkks700n8d3z9f3";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
doCheck = false; # all fail
|
||||
|
||||
patches = [ ./ignore_wrapper.patch ];
|
||||
patches = [ ./ignore_wrapper.patch ./cmakepaths.patch ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Tool that generates a compilation database for clang tooling";
|
||||
@@ -28,7 +28,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = https://github.com/rizsotto/Bear;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.unix;
|
||||
maintainers = [ maintainers.vcunat ];
|
||||
maintainers = [ maintainers.vcunat maintainers.babariviere ];
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,31 +1,23 @@
|
||||
--- Bear-2.2.1-src/bear/main.py.in 1970-01-01 01:00:01.000000000 +0100
|
||||
+++ Bear-2.2.1-src-patch/bear/main.py.in 2016-11-02 20:23:38.050134984 +0100
|
||||
@@ -48,6 +48,7 @@
|
||||
--- Bear-2.3.11-src/bear/main.py.in 1970-01-01 01:00:01.000000000 +0100
|
||||
+++ Bear-2.3.11-src-patch/bear/main.py.in 1970-01-01 01:00:01.000000000 +0100
|
||||
@@ -49,6 +49,7 @@
|
||||
import shutil
|
||||
import contextlib
|
||||
import logging
|
||||
+from distutils.spawn import find_executable
|
||||
|
||||
# Ignored compiler options map for compilation database creation.
|
||||
# The map is used in `split_command` method. (Which does ignore and classify
|
||||
@@ -447,7 +448,6 @@
|
||||
# do extra check on number of source files
|
||||
return result if result.files else None
|
||||
# Map of ignored compiler option for the creation of a compilation database.
|
||||
# This map is used in _split_command method, which classifies the parameters
|
||||
@@ -540,7 +541,11 @@
|
||||
any(pattern.match(cmd) for pattern in COMPILER_PATTERNS_CXX)
|
||||
|
||||
-
|
||||
def split_compiler(command):
|
||||
""" A predicate to decide the command is a compiler call or not.
|
||||
|
||||
@@ -467,7 +467,11 @@
|
||||
for pattern in COMPILER_CPP_PATTERNS)
|
||||
|
||||
if command: # not empty list will allow to index '0' and '1:'
|
||||
- executable = os.path.basename(command[0])
|
||||
+ absolute_executable = os.path.realpath(find_executable(command[0]))
|
||||
+ if 'wrapper' in absolute_executable:
|
||||
+ return None
|
||||
if command: # not empty list will allow to index '0' and '1:'
|
||||
- executable = os.path.basename(command[0]) # type: str
|
||||
+ absolute_executable = os.path.realpath(find_executable(command[0]))
|
||||
+ if 'wrapper' in absolute_executable:
|
||||
+ return None
|
||||
+
|
||||
+ executable = os.path.basename(absolute_executable)
|
||||
parameters = command[1:]
|
||||
# 'wrapper' 'parameters' and
|
||||
# 'wrapper' 'compiler' 'parameters' are valid.
|
||||
+ executable = os.path.basename(absolute_executable) # type: str
|
||||
parameters = command[1:] # type: List[str]
|
||||
# 'wrapper' 'parameters' and
|
||||
# 'wrapper' 'compiler' 'parameters' are valid.
|
||||
@@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl, jdk }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "2.5.2";
|
||||
version = "2.7.2";
|
||||
name = "boot-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/boot-clj/boot-bin/releases/download/${version}/boot.sh";
|
||||
sha256 = "0brsimvmmpksxwc4l5c0x0cl5hhdjz76crd26yxphjvzyf7fypc9";
|
||||
sha256 = "1hqp3xxmsj5vkym0l3blhlaq9g3w0lhjgmp37g6y3rr741znkk8c";
|
||||
};
|
||||
|
||||
inherit jdk;
|
||||
@@ -15,11 +15,11 @@ stdenv.mkDerivation rec {
|
||||
|
||||
propagatedBuildInputs = [ jdk ];
|
||||
|
||||
meta = {
|
||||
meta = with stdenv.lib; {
|
||||
description = "Build tooling for Clojure";
|
||||
homepage = http://boot-clj.com/;
|
||||
license = stdenv.lib.licenses.epl10;
|
||||
platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
|
||||
maintainers = [ stdenv.lib.maintainers.ragge ];
|
||||
license = licenses.epl10;
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
maintainers = with maintainers; [ ragge ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "buck-${version}";
|
||||
version = "v2017.05.31.01";
|
||||
version = "v2017.10.01.01";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "facebook";
|
||||
repo = "buck";
|
||||
rev = "0b8b3828a11afa79dc128832cb55b106f07e48aa";
|
||||
sha256 = "1g3yg8qq91cdhsq7zmir7wxw3767l120f5zhq969gppdw9apqy0s";
|
||||
rev = "2025fd74327477728b524eafdd4619a0170a24ea";
|
||||
sha256 = "05nyyb6f0hv1h67zzvdq8297yl8zjhpbasx35lxnrsjz0m1h8ngw";
|
||||
};
|
||||
|
||||
patches = [ ./pex-mtime.patch ];
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
{ stdenv, lib, openssh, buildbot-worker, pythonPackages, runCommand, makeWrapper }:
|
||||
{ stdenv, lib, openssh, buildbot-worker, buildbot-pkg, pythonPackages, runCommand, makeWrapper }:
|
||||
|
||||
let
|
||||
withPlugins = plugins: runCommand "wrapped-${package.name}" {
|
||||
buildInputs = [ makeWrapper ] ++ plugins;
|
||||
propagatedBuildInputs = package.propagatedBuildInputs;
|
||||
passthru.withPlugins = moarPlugins: withPlugins (moarPlugins ++ plugins);
|
||||
} ''
|
||||
makeWrapper ${package}/bin/buildbot $out/bin/buildbot \
|
||||
@@ -10,14 +11,14 @@ let
|
||||
ln -sfv ${package}/lib $out/lib
|
||||
'';
|
||||
|
||||
package = pythonPackages.buildPythonApplication (rec {
|
||||
package = pythonPackages.buildPythonApplication rec {
|
||||
name = "${pname}-${version}";
|
||||
pname = "buildbot";
|
||||
version = "0.9.9.post2";
|
||||
version = "1.0.0";
|
||||
|
||||
src = pythonPackages.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "0g932pvkxqq3ijwkwwa29jd9sp5895gv40c3k7m2acc5dp8ygb9w";
|
||||
sha256 = "0y7gpymxl09gd9dyqj7zqhaihpl9da1v8ppxi4r161ywd8jv9b1g";
|
||||
};
|
||||
|
||||
buildInputs = with pythonPackages; [
|
||||
@@ -35,11 +36,11 @@ let
|
||||
pyflakes
|
||||
openssh
|
||||
buildbot-worker
|
||||
buildbot-pkg
|
||||
treq
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with pythonPackages; [
|
||||
|
||||
# core
|
||||
twisted
|
||||
jinja2
|
||||
@@ -87,5 +88,5 @@ let
|
||||
maintainers = with maintainers; [ nand0p ryansydnor ];
|
||||
license = licenses.gpl2;
|
||||
};
|
||||
});
|
||||
};
|
||||
in package
|
||||
|
||||
27
pkgs/development/tools/build-managers/buildbot/pkg.nix
Normal file
27
pkgs/development/tools/build-managers/buildbot/pkg.nix
Normal file
@@ -0,0 +1,27 @@
|
||||
{ stdenv, buildPythonPackage, fetchPypi, setuptools }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
name = "${pname}-${version}";
|
||||
pname = "buildbot-pkg";
|
||||
version = "1.0.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1rs2x0b2v92xfsfk0f2nr9x8lz5baawf768s58brj4jiab6mq312";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ setuptools ];
|
||||
|
||||
postPatch = ''
|
||||
# Their listdir function filters out `node_modules` folders.
|
||||
# Do we have to care about that with Nix...?
|
||||
substituteInPlace buildbot_pkg.py --replace "os.listdir = listdir" ""
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://buildbot.net/;
|
||||
description = "Buildbot Packaging Helper";
|
||||
maintainers = with maintainers; [ nand0p ryansydnor ];
|
||||
license = licenses.gpl2;
|
||||
};
|
||||
}
|
||||
@@ -1,38 +1,17 @@
|
||||
{ stdenv, pythonPackages }:
|
||||
{ stdenv, pythonPackages, buildbot-pkg }:
|
||||
|
||||
let
|
||||
buildbot-pkg = pythonPackages.buildPythonPackage rec {
|
||||
name = "${pname}-${version}";
|
||||
pname = "buildbot-pkg";
|
||||
version = "0.9.9.post2";
|
||||
|
||||
src = pythonPackages.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1h24fzyr4kfm1nb2627hgg9nl5mwv1gihc3f2wb5000gxmjdasg8";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with pythonPackages; [ setuptools ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://buildbot.net/;
|
||||
description = "Buildbot Packaging Helper";
|
||||
maintainers = with maintainers; [ nand0p ryansydnor ];
|
||||
license = licenses.gpl2;
|
||||
};
|
||||
};
|
||||
|
||||
in {
|
||||
{
|
||||
www = pythonPackages.buildPythonPackage rec {
|
||||
name = "${pname}-${version}";
|
||||
pname = "buildbot_www";
|
||||
version = "0.9.9.post2";
|
||||
version = buildbot-pkg.version;
|
||||
|
||||
# NOTE: wheel is used due to buildbot circular dependency
|
||||
format = "wheel";
|
||||
|
||||
src = pythonPackages.fetchPypi {
|
||||
inherit pname version format;
|
||||
sha256 = "1yzk3sy9i8g8wz9vvghhxnafs5dzsd3sybmm8lg043129rh116b9";
|
||||
sha256 = "0nmrq50c5ib185rpb8ai1mm7gjq2mjvxik1kqrjfa62i1ia9ikyj";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
@@ -46,11 +25,11 @@ in {
|
||||
console-view = pythonPackages.buildPythonPackage rec {
|
||||
name = "${pname}-${version}";
|
||||
pname = "buildbot-console-view";
|
||||
version = "0.9.9.post2";
|
||||
version = buildbot-pkg.version;
|
||||
|
||||
src = pythonPackages.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "0mmlxzlzl0r97jf0g98m7k1b13mzzy80445i0biazkj0vzkpwxza";
|
||||
sha256 = "1laz7l7cbbz0czb6skxw314bd2qk2f63qw3n2rs7m7v11gd9cdll";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
|
||||
@@ -66,11 +45,11 @@ in {
|
||||
waterfall-view = pythonPackages.buildPythonPackage rec {
|
||||
name = "${pname}-${version}";
|
||||
pname = "buildbot-waterfall-view";
|
||||
version = "0.9.9.post2";
|
||||
version = buildbot-pkg.version;
|
||||
|
||||
src = pythonPackages.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "0pq45gddwjd61nxmr48cl8s533i4gy3wg9wzbj3g1yb30yrz8qf4";
|
||||
sha256 = "0mmri8c4n1zwxc1dx2a11yllrmnwqqxjvvil9224lbs98mpchppi";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
|
||||
@@ -86,11 +65,11 @@ in {
|
||||
grid-view = pythonPackages.buildPythonPackage rec {
|
||||
name = "${pname}-${version}";
|
||||
pname = "buildbot-grid-view";
|
||||
version = "0.9.9.post2";
|
||||
version = buildbot-pkg.version;
|
||||
|
||||
src = pythonPackages.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "16y7br1yniby8yp932ildn14cxvbw5ywx36d703c4d98dmnlrpaw";
|
||||
sha256 = "0nwlw2m3qfifia6gy3d4lrnycra50k98ax071p2zjqknanh563vr";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
|
||||
@@ -103,4 +82,24 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
wsgi-dashboards = pythonPackages.buildPythonPackage rec {
|
||||
name = "${pname}-${version}";
|
||||
pname = "buildbot-wsgi-dashboards";
|
||||
version = buildbot-pkg.version;
|
||||
|
||||
src = pythonPackages.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1zml9bd910zwcby4vr3lmzap2grinha2w5zgb2cmixmz7hfrqswp";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://buildbot.net/;
|
||||
description = "Buildbot WSGI dashboards Plugin";
|
||||
maintainers = with maintainers; [ akazakov ];
|
||||
license = licenses.gpl2;
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
pythonPackages.buildPythonApplication (rec {
|
||||
name = "${pname}-${version}";
|
||||
pname = "buildbot-worker";
|
||||
version = "0.9.9.post2";
|
||||
version = "1.0.0";
|
||||
|
||||
src = pythonPackages.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1wb2fw0djamhn1sb7rwnf12i4ijdq9y4k33ri7dcwxxcavxsvqa0";
|
||||
sha256 = "0ws31ypmksah1c83h4npwg560p8v7n9j6l94p79y5pispjsgzqzl";
|
||||
};
|
||||
|
||||
buildInputs = with pythonPackages; [ setuptoolsTrial mock ];
|
||||
|
||||
11
pkgs/development/tools/build-managers/cask/default.nix
Normal file
11
pkgs/development/tools/build-managers/cask/default.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ emacsPackagesNg, writeScriptBin }:
|
||||
let
|
||||
|
||||
emacs = emacsPackagesNg.emacsWithPackages (epkgs: [ epkgs.cask-package-toolset ]);
|
||||
cpt = emacsPackagesNg.cask-package-toolset;
|
||||
|
||||
in writeScriptBin "cask" ''
|
||||
#!/bin/sh
|
||||
|
||||
exec ${emacs}/bin/emacs --script ${cpt}/share/emacs/site-lisp/elpa/cask-package-toolset-${cpt.version}/cask-package-toolset.el -- "$@"
|
||||
''
|
||||
@@ -43,6 +43,11 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "16acmdr27adma7gs9rs0dxdiqppm15vl3vv3agy7y8s94wyh4ybv";
|
||||
});
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace Utilities/cmlibarchive/CMakeLists.txt \
|
||||
--replace '"-framework CoreServices"' '""'
|
||||
'';
|
||||
|
||||
buildInputs = [ curl expat zlib bzip2 ]
|
||||
++ optional useNcurses ncurses
|
||||
++ optional useQt4 qt4;
|
||||
@@ -76,7 +81,7 @@ stdenv.mkDerivation rec {
|
||||
meta = {
|
||||
homepage = http://www.cmake.org/;
|
||||
description = "Cross-Platform Makefile Generator";
|
||||
platforms = if useQt4 then qt4.meta.platforms else stdenv.lib.platforms.linux;
|
||||
maintainers = with stdenv.lib.maintainers; [ mornfall ];
|
||||
platforms = if useQt4 then qt4.meta.platforms else stdenv.lib.platforms.unix;
|
||||
maintainers = with stdenv.lib.maintainers; [ ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,31 +1,49 @@
|
||||
{ stdenv, fetchurl, pkgconfig
|
||||
, bzip2, curl, expat, libarchive, xz, zlib, libuv, rhash
|
||||
, majorVersion ? "3.10"
|
||||
# darwin attributes
|
||||
, ps
|
||||
, isBootstrap ? false
|
||||
, useSharedLibraries ? (!isBootstrap && !stdenv.isCygwin)
|
||||
, useNcurses ? false, ncurses
|
||||
, useQt4 ? false, qt4
|
||||
, withQt5 ? false, qtbase
|
||||
}:
|
||||
|
||||
assert withQt5 -> useQt4 == false;
|
||||
assert useQt4 -> withQt5 == false;
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
with (
|
||||
{
|
||||
"3.10" = {
|
||||
minorVersion = "2";
|
||||
sha256 = "80d0faad4ab56de07aa21a7fc692c88c4ce6156d42b0579c6962004a70a3218b";
|
||||
};
|
||||
"3.9" = {
|
||||
minorVersion = "6";
|
||||
sha256 = "7410851a783a41b521214ad987bb534a7e4a65e059651a2514e6ebfc8f46b218";
|
||||
};
|
||||
|
||||
}.${majorVersion}
|
||||
or (abort ''Unsupported configuration for cmake: majorVersion = "${majorVersion}";'')
|
||||
);
|
||||
|
||||
let
|
||||
os = stdenv.lib.optionalString;
|
||||
majorVersion = "3.8";
|
||||
minorVersion = "2";
|
||||
version = "${majorVersion}.${minorVersion}";
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "cmake-${os isBootstrap "boot-"}${os useNcurses "cursesUI-"}${os useQt4 "qt4UI-"}${version}";
|
||||
name = "cmake-${os isBootstrap "boot-"}${os useNcurses "cursesUI-"}${os withQt5 "qt5UI-"}${os useQt4 "qt4UI-"}${version}";
|
||||
|
||||
inherit majorVersion;
|
||||
|
||||
src = fetchurl {
|
||||
url = "${meta.homepage}files/v${majorVersion}/cmake-${version}.tar.gz";
|
||||
# from https://cmake.org/files/v3.8/cmake-3.8.2-SHA-256.txt
|
||||
sha256 = "da3072794eb4c09f2d782fcee043847b99bb4cf8d4573978d9b2024214d6e92d";
|
||||
# from https://cmake.org/files/v3.10/cmake-3.10.2-SHA-256.txt
|
||||
inherit sha256;
|
||||
};
|
||||
|
||||
prePatch = optionalString (!useSharedLibraries) ''
|
||||
@@ -34,7 +52,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
# Don't search in non-Nix locations such as /usr, but do search in our libc.
|
||||
patches = [ ./search-path-3.2.patch ]
|
||||
patches = [ ./search-path-3.9.patch ]
|
||||
++ optional stdenv.isCygwin ./3.2.2-cygwin.patch;
|
||||
|
||||
outputs = [ "out" ];
|
||||
@@ -46,7 +64,8 @@ stdenv.mkDerivation rec {
|
||||
[ setupHook pkgconfig ]
|
||||
++ optionals useSharedLibraries [ bzip2 curl expat libarchive xz zlib libuv rhash ]
|
||||
++ optional useNcurses ncurses
|
||||
++ optional useQt4 qt4;
|
||||
++ optional useQt4 qt4
|
||||
++ optional withQt5 qtbase;
|
||||
|
||||
propagatedBuildInputs = optional stdenv.isDarwin ps;
|
||||
|
||||
@@ -63,16 +82,30 @@ stdenv.mkDerivation rec {
|
||||
|
||||
configureFlags = [ "--docdir=share/doc/${name}" ]
|
||||
++ (if useSharedLibraries then [ "--no-system-jsoncpp" "--system-libs" ] else [ "--no-system-libs" ]) # FIXME: cleanup
|
||||
++ optional useQt4 "--qt-gui"
|
||||
++ optionals (!useNcurses) [ "--" "-DBUILD_CursesDialog=OFF" ];
|
||||
++ optional (useQt4 || withQt5) "--qt-gui"
|
||||
++ ["--"]
|
||||
++ optionals (!useNcurses) [ "-DBUILD_CursesDialog=OFF" ]
|
||||
++ optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
||||
"-DCMAKE_CXX_COMPILER=${stdenv.cc.targetPrefix}c++"
|
||||
"-DCMAKE_C_COMPILER=${stdenv.cc.targetPrefix}cc"
|
||||
"-DCMAKE_AR=${getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar"
|
||||
"-DCMAKE_RANLIB=${getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ranlib"
|
||||
"-DCMAKE_STRIP=${getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}strip"
|
||||
# TODO: Why are ar and friends not provided by the bintools wrapper?
|
||||
];
|
||||
|
||||
dontUseCmakeConfigure = true;
|
||||
enableParallelBuilding = true;
|
||||
|
||||
# This isn't an autoconf configure script; triples are passed via
|
||||
# CMAKE_SYSTEM_NAME, etc.
|
||||
configurePlatforms = [ ];
|
||||
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://www.cmake.org/;
|
||||
description = "Cross-Platform Makefile Generator";
|
||||
platforms = if useQt4 then qt4.meta.platforms else platforms.all;
|
||||
maintainers = with maintainers; [ mornfall ttuegel lnl7 ];
|
||||
maintainers = with maintainers; [ ttuegel lnl7 ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
diff -ru3 cmake-3.4.3/Modules/Platform/UnixPaths.cmake cmake-3.4.3-new/Modules/Platform/UnixPaths.cmake
|
||||
--- cmake-3.4.3/Modules/Platform/UnixPaths.cmake 2016-01-25 19:57:19.000000000 +0300
|
||||
+++ cmake-3.4.3-new/Modules/Platform/UnixPaths.cmake 2016-04-14 00:20:08.963492213 +0300
|
||||
@@ -32,9 +32,6 @@
|
||||
# List common installation prefixes. These will be used for all
|
||||
# search types.
|
||||
list(APPEND CMAKE_SYSTEM_PREFIX_PATH
|
||||
- # Standard
|
||||
- /usr/local /usr /
|
||||
-
|
||||
# CMake install location
|
||||
"${_CMAKE_INSTALL_DIR}"
|
||||
)
|
||||
@@ -53,44 +50,25 @@
|
||||
|
||||
# List common include file locations not under the common prefixes.
|
||||
list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
|
||||
- # Windows API on Cygwin
|
||||
- /usr/include/w32api
|
||||
-
|
||||
- # X11
|
||||
- /usr/X11R6/include /usr/include/X11
|
||||
-
|
||||
- # Other
|
||||
- /usr/pkg/include
|
||||
- /opt/csw/include /opt/include
|
||||
- /usr/openwin/include
|
||||
+ @libc_dev@/include
|
||||
)
|
||||
-
|
||||
list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
|
||||
- # Windows API on Cygwin
|
||||
- /usr/lib/w32api
|
||||
-
|
||||
- # X11
|
||||
- /usr/X11R6/lib /usr/lib/X11
|
||||
-
|
||||
- # Other
|
||||
- /usr/pkg/lib
|
||||
- /opt/csw/lib /opt/lib
|
||||
- /usr/openwin/lib
|
||||
+ @libc_lib@/lib
|
||||
)
|
||||
|
||||
list(APPEND CMAKE_SYSTEM_PROGRAM_PATH
|
||||
- /usr/pkg/bin
|
||||
+ @libc_bin@/bin
|
||||
)
|
||||
|
||||
list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
|
||||
- /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64
|
||||
+ @libc_lib@/lib
|
||||
)
|
||||
|
||||
list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES
|
||||
- /usr/include
|
||||
+ @libc_dev@/include
|
||||
)
|
||||
list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES
|
||||
- /usr/include
|
||||
+ @libc_dev@/include
|
||||
)
|
||||
|
||||
# Enable use of lib64 search path variants by default.
|
||||
diff -ur cmake-3.7.2-orig/Modules/Platform/WindowsPaths.cmake cmake-3.7.2/Modules/Platform/WindowsPaths.cmake
|
||||
--- cmake-3.7.2-orig/Modules/Platform/WindowsPaths.cmake 2017-04-26 09:08:39.095674666 -0700
|
||||
+++ cmake-3.7.2/Modules/Platform/WindowsPaths.cmake 2017-04-28 22:32:10.379015998 -0700
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
if(CMAKE_CROSSCOMPILING AND NOT CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
|
||||
# MinGW (useful when cross compiling from linux with CMAKE_FIND_ROOT_PATH set)
|
||||
- list(APPEND CMAKE_SYSTEM_PREFIX_PATH /)
|
||||
+ # list(APPEND CMAKE_SYSTEM_PREFIX_PATH /)
|
||||
endif()
|
||||
|
||||
list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
|
||||
diff -ur cmake-3.7.2-orig/Source/cmFindPackageCommand.cxx cmake-3.7.2/Source/cmFindPackageCommand.cxx
|
||||
@@ -0,0 +1,62 @@
|
||||
diff -ur cmake-3.9.1/Modules/Platform/UnixPaths.cmake cmake-3.9.1-mod/Modules/Platform/UnixPaths.cmake
|
||||
--- cmake-3.9.1/Modules/Platform/UnixPaths.cmake 2017-08-10 13:36:32.000000000 +0000
|
||||
+++ cmake-3.9.1-mod/Modules/Platform/UnixPaths.cmake 2017-09-03 01:24:31.901473539 +0000
|
||||
@@ -22,9 +22,6 @@
|
||||
# List common installation prefixes. These will be used for all
|
||||
# search types.
|
||||
list(APPEND CMAKE_SYSTEM_PREFIX_PATH
|
||||
- # Standard
|
||||
- /usr/local /usr /
|
||||
-
|
||||
# CMake install location
|
||||
"${_CMAKE_INSTALL_DIR}"
|
||||
)
|
||||
@@ -43,31 +40,26 @@
|
||||
|
||||
# Non "standard" but common install prefixes
|
||||
list(APPEND CMAKE_SYSTEM_PREFIX_PATH
|
||||
- /usr/X11R6
|
||||
- /usr/pkg
|
||||
- /opt
|
||||
)
|
||||
|
||||
# List common include file locations not under the common prefixes.
|
||||
list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
|
||||
- # X11
|
||||
- /usr/include/X11
|
||||
+ @libc_dev@/include
|
||||
)
|
||||
|
||||
list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
|
||||
- # X11
|
||||
- /usr/lib/X11
|
||||
+ @libc_lib@/lib
|
||||
)
|
||||
|
||||
list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
|
||||
- /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64
|
||||
+ @libc_lib@/lib
|
||||
)
|
||||
|
||||
list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES
|
||||
- /usr/include
|
||||
+ @libc_dev@/include
|
||||
)
|
||||
list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES
|
||||
- /usr/include
|
||||
+ @libc_dev@/include
|
||||
)
|
||||
|
||||
# Enable use of lib32 and lib64 search path variants by default.
|
||||
diff -ur cmake-3.9.1/Modules/Platform/WindowsPaths.cmake cmake-3.9.1-mod/Modules/Platform/WindowsPaths.cmake
|
||||
--- cmake-3.9.1/Modules/Platform/WindowsPaths.cmake 2017-08-10 13:36:32.000000000 +0000
|
||||
+++ cmake-3.9.1-mod/Modules/Platform/WindowsPaths.cmake 2017-09-03 01:19:32.808355986 +0000
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
if(CMAKE_CROSSCOMPILING AND NOT CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
|
||||
# MinGW (useful when cross compiling from linux with CMAKE_FIND_ROOT_PATH set)
|
||||
- list(APPEND CMAKE_SYSTEM_PREFIX_PATH /)
|
||||
+ # list(APPEND CMAKE_SYSTEM_PREFIX_PATH /)
|
||||
endif()
|
||||
|
||||
list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
|
||||
@@ -33,7 +33,15 @@ cmakeConfigurePhase() {
|
||||
# By now it supports linux builds only. We should set the proper
|
||||
# CMAKE_SYSTEM_NAME otherwise.
|
||||
# http://www.cmake.org/Wiki/CMake_Cross_Compiling
|
||||
cmakeFlags="-DCMAKE_CXX_COMPILER=$crossConfig-g++ -DCMAKE_C_COMPILER=$crossConfig-gcc $cmakeFlags"
|
||||
#
|
||||
# Unfortunately cmake seems to expect absolute paths for ar, ranlib, and
|
||||
# strip. Otherwise they are taken to be relative to the source root of
|
||||
# the package being built.
|
||||
cmakeFlags="-DCMAKE_CXX_COMPILER=$crossConfig-c++ $cmakeFlags"
|
||||
cmakeFlags="-DCMAKE_C_COMPILER=$crossConfig-cc $cmakeFlags"
|
||||
cmakeFlags="-DCMAKE_AR=$(command -v $crossConfig-ar) $cmakeFlags"
|
||||
cmakeFlags="-DCMAKE_RANLIB=$(command -v $crossConfig-ranlib) $cmakeFlags"
|
||||
cmakeFlags="-DCMAKE_STRIP=$(command -v $crossConfig-strip) $cmakeFlags"
|
||||
fi
|
||||
|
||||
# This installs shared libraries with a fully-specified install
|
||||
@@ -43,7 +51,7 @@ cmakeConfigurePhase() {
|
||||
# libraries are in a system path or in the same directory as the
|
||||
# executable. This flag makes the shared library accessible from its
|
||||
# nix/store directory.
|
||||
cmakeFlags="-DCMAKE_INSTALL_NAME_DIR=$prefix/lib $cmakeFlags"
|
||||
cmakeFlags="-DCMAKE_INSTALL_NAME_DIR=${!outputLib}/lib $cmakeFlags"
|
||||
cmakeFlags="-DCMAKE_INSTALL_LIBDIR=${!outputLib}/lib $cmakeFlags"
|
||||
cmakeFlags="-DCMAKE_INSTALL_INCLUDEDIR=${!outputDev}/include $cmakeFlags"
|
||||
|
||||
@@ -51,10 +59,19 @@ cmakeConfigurePhase() {
|
||||
# And build always Release, to ensure optimisation flags
|
||||
cmakeFlags="-DCMAKE_BUILD_TYPE=${cmakeBuildType:-Release} -DCMAKE_SKIP_BUILD_RPATH=ON $cmakeFlags"
|
||||
|
||||
if [ "$buildPhase" = ninjaBuildPhase ]; then
|
||||
cmakeFlags="-GNinja $cmakeFlags"
|
||||
fi
|
||||
|
||||
echo "cmake flags: $cmakeFlags ${cmakeFlagsArray[@]}"
|
||||
|
||||
cmake ${cmakeDir:-.} $cmakeFlags "${cmakeFlagsArray[@]}"
|
||||
|
||||
if ! [[ -v enableParallelBuilding ]]; then
|
||||
enableParallelBuilding=1
|
||||
echo "cmake: enabled parallel building"
|
||||
fi
|
||||
|
||||
runHook postConfigure
|
||||
}
|
||||
|
||||
@@ -63,11 +80,7 @@ if [ -z "$dontUseCmakeConfigure" -a -z "$configurePhase" ]; then
|
||||
configurePhase=cmakeConfigurePhase
|
||||
fi
|
||||
|
||||
if [ -n "$crossConfig" ]; then
|
||||
crossEnvHooks+=(addCMakeParams)
|
||||
else
|
||||
envHooks+=(addCMakeParams)
|
||||
fi
|
||||
addEnvHooks "$targetOffset" addCMakeParams
|
||||
|
||||
makeCmakeFindLibs(){
|
||||
isystem_seen=
|
||||
@@ -84,6 +97,9 @@ makeCmakeFindLibs(){
|
||||
-L*)
|
||||
export CMAKE_LIBRARY_PATH="$CMAKE_LIBRARY_PATH${CMAKE_LIBRARY_PATH:+:}${flag:2}"
|
||||
;;
|
||||
-F*)
|
||||
export CMAKE_FRAMEWORK_PATH="$CMAKE_FRAMEWORK_PATH${CMAKE_FRAMEWORK_PATH:+:}${flag:2}"
|
||||
;;
|
||||
-isystem)
|
||||
isystem_seen=1
|
||||
;;
|
||||
|
||||
@@ -1,25 +1,61 @@
|
||||
{ stdenv, pythonPackages }:
|
||||
{ lib, fetchpatch, python }:
|
||||
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
name = "${pname}-${version}";
|
||||
version = "0.21.2";
|
||||
let newPython = python.override {
|
||||
packageOverrides = self: super: {
|
||||
distro = super.distro.overridePythonAttrs (oldAttrs: rec {
|
||||
version = "1.1.0";
|
||||
src = oldAttrs.src.override {
|
||||
inherit version;
|
||||
sha256 = "1vn1db2akw98ybnpns92qi11v94hydwp130s8753k6ikby95883j";
|
||||
};
|
||||
});
|
||||
node-semver = super.node-semver.overridePythonAttrs (oldAttrs: rec {
|
||||
version = "0.2.0";
|
||||
src = oldAttrs.src.override {
|
||||
inherit version;
|
||||
sha256 = "1080pdxrvnkr8i7b7bk0dfx6cwrkkzzfaranl7207q6rdybzqay3";
|
||||
};
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
in newPython.pkgs.buildPythonApplication rec {
|
||||
version = "1.1.1"; # remove patch below when updating
|
||||
pname = "conan";
|
||||
|
||||
src = pythonPackages.fetchPypi {
|
||||
src = newPython.pkgs.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "0x9s5h81d885xdrjw5x99q18lhmj11kalrs6xnjy2phrr8qzil8c";
|
||||
sha256 = "1k1r401bc9fgmhd5n5f29mjcn346r3zdrm7p28nwpr2r2p3fslrl";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with pythonPackages; [
|
||||
requests fasteners pyyaml pyjwt colorama patch
|
||||
bottle pluginbase six distro pylint node-semver
|
||||
checkInputs = with newPython.pkgs; [
|
||||
nose
|
||||
parameterized
|
||||
mock
|
||||
webtest
|
||||
codecov
|
||||
];
|
||||
|
||||
# enable tests once all of these pythonPackages available:
|
||||
# [ nose nose_parameterized mock WebTest codecov ]
|
||||
doCheck = false;
|
||||
propagatedBuildInputs = with newPython.pkgs; [
|
||||
requests fasteners pyyaml pyjwt colorama patch
|
||||
bottle pluginbase six distro pylint node-semver
|
||||
future pygments mccabe
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
patches = [
|
||||
# already merged, remove with the next package update
|
||||
(fetchpatch {
|
||||
url = "https://github.com/conan-io/conan/commit/51cc4cbd51ac8f9b9efa2bf678a2d7810e273ff3.patch";
|
||||
sha256 = "0d93g4hjpfk8z870imwdswkw5qba2h5zhfgwwijiqhr2pv7fl1y7";
|
||||
})
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
export HOME="$TMP/conan-home"
|
||||
mkdir -p "$HOME"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = https://conan.io;
|
||||
description = "Decentralized and portable C/C++ package manager";
|
||||
license = licenses.mit;
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
let
|
||||
|
||||
name = "doit";
|
||||
version = "0.30.3";
|
||||
version = "0.31.0";
|
||||
|
||||
in python3Packages.buildPythonApplication {
|
||||
name = "${name}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://pypi/d/${name}/${name}-${version}.tar.gz";
|
||||
sha256 = "1fcsslc3mc4bszq5xdqbxv37720s1s31d6pbfwc2iyxk1x2wi219";
|
||||
sha256 = "0v1yr04bfqnz3sp261np3zhf0y1b3a1daxc83iq308lscf39fdgx";
|
||||
};
|
||||
|
||||
buildInputs = with python3Packages; [ mock pytest ];
|
||||
@@ -23,7 +23,7 @@ in python3Packages.buildPythonApplication {
|
||||
checkPhase = "py.test";
|
||||
|
||||
meta = {
|
||||
homepage = "http://pydoit.org/";
|
||||
homepage = http://pydoit.org/;
|
||||
description = "A task management & automation tool";
|
||||
license = stdenv.lib.licenses.mit;
|
||||
longDescription = ''
|
||||
|
||||
@@ -1,38 +1,103 @@
|
||||
{ stdenv, fetchFromGitHub, curl, dmd, gcc }:
|
||||
{ stdenv, fetchFromGitHub, fetchpatch, curl, dmd, libevent, rsync }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "dub-${version}";
|
||||
version = "1.1.0";
|
||||
let
|
||||
|
||||
src = fetchFromGitHub {
|
||||
sha256 = "1smzlfs5gjmrlghccdgn04qzy5b8l0xm8y2virayb2adrwqviscm";
|
||||
rev = "v${version}";
|
||||
repo = "dub";
|
||||
owner = "D-Programming-Language";
|
||||
dubBuild = stdenv.mkDerivation rec {
|
||||
name = "dubBuild-${version}";
|
||||
version = "1.8.0";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dlang";
|
||||
repo = "dub";
|
||||
rev = "v${version}";
|
||||
sha256 = "0788d375sc6xdak9x6xclkkz243lb7di68yxfvl4v0n178mi22bk";
|
||||
};
|
||||
|
||||
postUnpack = ''
|
||||
patchShebangs .
|
||||
'';
|
||||
|
||||
# Can be removed with https://github.com/dlang/dub/pull/1368
|
||||
dubvar = "\\$DUB";
|
||||
postPatch = ''
|
||||
substituteInPlace test/fetchzip.sh \
|
||||
--replace "dub remove" "\"${dubvar}\" remove"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ dmd libevent rsync ];
|
||||
buildInputs = [ curl ];
|
||||
|
||||
buildPhase = ''
|
||||
export DMD=${dmd.out}/bin/dmd
|
||||
./build.sh
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
mkdir $out/bin
|
||||
cp bin/dub $out/bin
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Package and build manager for D applications and libraries";
|
||||
homepage = http://code.dlang.org/;
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ ThomasMader ];
|
||||
platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
|
||||
};
|
||||
};
|
||||
|
||||
buildInputs = [ curl ];
|
||||
propagatedBuildInputs = [ gcc dmd ];
|
||||
# Need to test in a fixed-output derivation, otherwise the
|
||||
# network tests would fail if sandbox mode is enabled.
|
||||
dubUnittests = stdenv.mkDerivation rec {
|
||||
name = "dubUnittests-${version}";
|
||||
version = dubBuild.version;
|
||||
|
||||
buildPhase = ''
|
||||
# Avoid that the version file is overwritten
|
||||
substituteInPlace build.sh \
|
||||
--replace source/dub/version_.d /dev/null
|
||||
patchShebangs ./build.sh
|
||||
./build.sh
|
||||
'';
|
||||
enableParallelBuilding = dubBuild.enableParallelBuilding;
|
||||
preferLocalBuild = true;
|
||||
inputString = dubBuild.outPath;
|
||||
outputHashAlgo = "sha256";
|
||||
outputHash = builtins.hashString "sha256" inputString;
|
||||
|
||||
src = dubBuild.src;
|
||||
|
||||
postUnpack = dubBuild.postUnpack;
|
||||
postPatch = dubBuild.postPatch;
|
||||
|
||||
nativeBuildInputs = dubBuild.nativeBuildInputs;
|
||||
buildInputs = dubBuild.buildInputs;
|
||||
|
||||
buildPhase = ''
|
||||
# Can't use dub from dubBuild directly because one unittest
|
||||
# (issue895-local-configuration) needs to generate a config
|
||||
# file under ../etc relative to the dub location.
|
||||
cp ${dubBuild}/bin/dub bin/
|
||||
export DUB=$NIX_BUILD_TOP/source/bin/dub
|
||||
export DC=${dmd.out}/bin/dmd
|
||||
export HOME=$TMP
|
||||
./test/run-unittest.sh
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
echo -n $inputString > $out
|
||||
'';
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
inherit dubUnittests;
|
||||
name = "dub-${dubBuild.version}";
|
||||
phases = "installPhase";
|
||||
buildInputs = dubBuild.buildInputs;
|
||||
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
mkdir $out/bin
|
||||
cp bin/dub $out/bin
|
||||
cp -r --symbolic-link ${dubBuild}/* $out/
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Build tool for D projects";
|
||||
homepage = http://code.dlang.org/;
|
||||
license = licenses.mit;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
meta = dubBuild.meta;
|
||||
}
|
||||
|
||||
|
||||
77
pkgs/development/tools/build-managers/gn/default.nix
Normal file
77
pkgs/development/tools/build-managers/gn/default.nix
Normal file
@@ -0,0 +1,77 @@
|
||||
{ stdenv, lib, fetchgit, fetchurl, libevent, ninja, python }:
|
||||
|
||||
let
|
||||
depsGit = {
|
||||
"tools/gn" = fetchgit {
|
||||
url = "https://chromium.googlesource.com/chromium/src/tools/gn";
|
||||
rev = "d0c518db129975ce88ff1de26c857873b0619c4b";
|
||||
sha256 = "0l15vzmjyx6bwlz1qhn3fy7yx3qzzxr3drnkj3l0p0fmyxza52vx";
|
||||
};
|
||||
"base" = fetchgit {
|
||||
url = "https://chromium.googlesource.com/chromium/src/base";
|
||||
rev = "bc6e3ce8ca01b894751e1f7b22b561e3ae2e7f17";
|
||||
sha256 = "1yl49v6nxbrfms52xf7fiwh7d4301m2aj744pa3hzzh989c5j6g5";
|
||||
};
|
||||
"build" = fetchgit {
|
||||
url = "https://chromium.googlesource.com/chromium/src/build";
|
||||
rev = "e934a19ae908081fba13769924e4ea45a7a451ce";
|
||||
sha256 = "0jhy418vaiin7djg9zvk83f8zhasigki4442x5j7gkmgmgmyc4am";
|
||||
};
|
||||
"config" = fetchgit {
|
||||
url = "https://chromium.googlesource.com/chromium/src/build/config";
|
||||
rev = "df16c6a2c070704b0a25efe46ee9af16de1e65b3";
|
||||
sha256 = "1x18syzz1scwhd8lf448hy5lnfpq118l403x9qmwm0np318w09wg";
|
||||
};
|
||||
"testing/gtest" = fetchgit {
|
||||
url = "https://chromium.googlesource.com/chromium/testing/gtest";
|
||||
rev = "585ec31ea716f08233a815e680fc0d4699843938";
|
||||
sha256 = "0csn1cza66851nmxxiw42smsm3422mx67vcyykwn0a71lcjng6rc";
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gn";
|
||||
version = "0.0.0.20170629";
|
||||
sourceRoot = ".";
|
||||
|
||||
unpackPhase = ''
|
||||
${lib.concatStringsSep "\n" (
|
||||
lib.mapAttrsToList (n: v: ''
|
||||
mkdir -p $sourceRoot/${n}
|
||||
cp -r ${v}/* $sourceRoot/${n}
|
||||
'') depsGit)}
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
# Patch shebands (for sandbox build)
|
||||
chmod u+w -R build
|
||||
patchShebangs build
|
||||
|
||||
# Patch out Chromium-bundled libevent
|
||||
chmod u+w tools/gn/bootstrap tools/gn/bootstrap/bootstrap.py
|
||||
sed -i -e '/static_libraries.*libevent/,/^ *\]\?[})]$/d' \
|
||||
tools/gn/bootstrap/bootstrap.py
|
||||
'';
|
||||
|
||||
NIX_LDFLAGS = "-levent";
|
||||
|
||||
nativeBuildInputs = [ ninja python ];
|
||||
buildInputs = [ libevent ];
|
||||
|
||||
buildPhase = ''
|
||||
python tools/gn/bootstrap/bootstrap.py -s
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
install -vD out/Release/gn "$out/bin/gn"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A meta-build system that generates NinjaBuild files";
|
||||
homepage = https://chromium.googlesource.com/chromium/src/tools/gn;
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.stesie ];
|
||||
};
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{stdenv, fetchurl}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "gnumake-3.80";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://tarballs.nixos.org/make-3.80.tar.bz2;
|
||||
sha256 = "06rgz6npynr8whmf7rxgkyvcz0clf3ggwf4cyhj3fcscn3kkk6x9";
|
||||
};
|
||||
|
||||
patches = [./log.patch];
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
meta = {
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
@@ -1,125 +0,0 @@
|
||||
diff -rc make-3.80-orig/job.c make-3.80/job.c
|
||||
*** make-3.80-orig/job.c 2002-08-10 03:27:17.000000000 +0200
|
||||
--- make-3.80/job.c 2004-04-02 17:38:04.000000000 +0200
|
||||
***************
|
||||
*** 987,993 ****
|
||||
appear. */
|
||||
|
||||
message (0, (just_print_flag || (!(flags & COMMANDS_SILENT) && !silent_flag))
|
||||
! ? "%s" : (char *) 0, p);
|
||||
|
||||
/* Tell update_goal_chain that a command has been started on behalf of
|
||||
this target. It is important that this happens here and not in
|
||||
--- 987,993 ----
|
||||
appear. */
|
||||
|
||||
message (0, (just_print_flag || (!(flags & COMMANDS_SILENT) && !silent_flag))
|
||||
! ? "\e[3s\e[a%s\e[b" : (char *) 0, p);
|
||||
|
||||
/* Tell update_goal_chain that a command has been started on behalf of
|
||||
this target. It is important that this happens here and not in
|
||||
diff -rc make-3.80-orig/main.c make-3.80/main.c
|
||||
*** make-3.80-orig/main.c 2002-08-10 03:27:17.000000000 +0200
|
||||
--- make-3.80/main.c 2004-04-02 17:42:50.000000000 +0200
|
||||
***************
|
||||
*** 254,259 ****
|
||||
--- 254,263 ----
|
||||
they appear out of date or not. */
|
||||
|
||||
int always_make_flag = 0;
|
||||
+
|
||||
+ int logNestingStdout = 0;
|
||||
+ int logNestingStderr = 0;
|
||||
+
|
||||
|
||||
/* The usage output. We write it this way to make life easier for the
|
||||
translators, especially those trying to translate to right-to-left
|
||||
***************
|
||||
*** 827,832 ****
|
||||
--- 831,845 ----
|
||||
}
|
||||
|
||||
|
||||
+ static void closeNesting()
|
||||
+ {
|
||||
+ while (logNestingStdout--)
|
||||
+ printf("\e[q");
|
||||
+ while (logNestingStderr--)
|
||||
+ fprintf(stderr, "\e[q");
|
||||
+ }
|
||||
+
|
||||
+
|
||||
#ifndef _AMIGA
|
||||
int
|
||||
main (argc, argv, envp)
|
||||
***************
|
||||
*** 854,859 ****
|
||||
--- 867,874 ----
|
||||
no_default_sh_exe = 1;
|
||||
#endif
|
||||
|
||||
+ atexit(closeNesting);
|
||||
+
|
||||
default_goal_file = 0;
|
||||
reading_file = 0;
|
||||
|
||||
***************
|
||||
*** 2782,2787 ****
|
||||
--- 2797,2808 ----
|
||||
|
||||
/* Use entire sentences to give the translators a fighting chance. */
|
||||
|
||||
+ if (entering)
|
||||
+ {
|
||||
+ printf("\e[p");
|
||||
+ logNestingStdout++;
|
||||
+ }
|
||||
+
|
||||
if (makelevel == 0)
|
||||
if (starting_directory == 0)
|
||||
if (entering)
|
||||
***************
|
||||
*** 2810,2813 ****
|
||||
--- 2831,2840 ----
|
||||
else
|
||||
printf (_("%s[%u]: Leaving directory `%s'\n"),
|
||||
program, makelevel, starting_directory);
|
||||
+
|
||||
+ if (!entering)
|
||||
+ {
|
||||
+ printf("\e[q");
|
||||
+ logNestingStdout--;
|
||||
+ }
|
||||
}
|
||||
diff -rc make-3.80-orig/make.h make-3.80/make.h
|
||||
*** make-3.80-orig/make.h 2002-09-11 18:55:44.000000000 +0200
|
||||
--- make-3.80/make.h 2004-04-02 17:42:15.000000000 +0200
|
||||
***************
|
||||
*** 559,562 ****
|
||||
--- 559,567 ----
|
||||
extern int atomic_stat PARAMS ((const char *file, struct stat *buf));
|
||||
extern struct dirent *atomic_readdir PARAMS ((DIR *dir));
|
||||
|
||||
+
|
||||
#endif
|
||||
+
|
||||
+
|
||||
+ extern int logNestingStdout;
|
||||
+ extern int logNestingStderr;
|
||||
diff -rc make-3.80-orig/remake.c make-3.80/remake.c
|
||||
*** make-3.80-orig/remake.c 2002-08-08 02:11:19.000000000 +0200
|
||||
--- make-3.80/remake.c 2004-04-04 23:10:19.000000000 +0200
|
||||
***************
|
||||
*** 1049,1055 ****
|
||||
--- 1049,1059 ----
|
||||
/* The normal case: start some commands. */
|
||||
if (!touch_flag || file->cmds->any_recurse)
|
||||
{
|
||||
+ fprintf(stderr, "\e[pbuilding %s\n", file->name);
|
||||
+ logNestingStderr++;
|
||||
execute_file_commands (file);
|
||||
+ fprintf(stderr, "\e[q");
|
||||
+ logNestingStderr--;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -15,10 +15,6 @@ stdenv.mkDerivation {
|
||||
|
||||
patches =
|
||||
[
|
||||
# Provide nested log output for subsequent pretty-printing by
|
||||
# nix-log2xml.
|
||||
./log.patch
|
||||
|
||||
# Purity: don't look for library dependencies (of the form
|
||||
# `-lfoo') in /lib and /usr/lib. It's a stupid feature anyway.
|
||||
# Likewise, when searching for included Makefiles, don't look in
|
||||
|
||||
@@ -1,125 +0,0 @@
|
||||
diff -rc job.c job.c
|
||||
*** job.c 2006-03-20 04:03:04.000000000 +0100
|
||||
--- job.c 2009-01-19 19:37:28.000000000 +0100
|
||||
***************
|
||||
*** 1083,1089 ****
|
||||
appear. */
|
||||
|
||||
message (0, (just_print_flag || (!(flags & COMMANDS_SILENT) && !silent_flag))
|
||||
! ? "%s" : (char *) 0, p);
|
||||
|
||||
/* Tell update_goal_chain that a command has been started on behalf of
|
||||
this target. It is important that this happens here and not in
|
||||
--- 1083,1089 ----
|
||||
appear. */
|
||||
|
||||
message (0, (just_print_flag || (!(flags & COMMANDS_SILENT) && !silent_flag))
|
||||
! ? (enable_nested_output ? "\e[3s\e[a%s\e[b" : "%s") : (char *) 0, p);
|
||||
|
||||
/* Tell update_goal_chain that a command has been started on behalf of
|
||||
this target. It is important that this happens here and not in
|
||||
diff -rc main.c main.c
|
||||
*** main.c 2006-03-20 03:36:37.000000000 +0100
|
||||
--- main.c 2009-01-19 19:41:41.000000000 +0100
|
||||
***************
|
||||
*** 886,891 ****
|
||||
--- 886,900 ----
|
||||
}
|
||||
|
||||
|
||||
+ static void close_nesting()
|
||||
+ {
|
||||
+ while (stdout_nesting_level--)
|
||||
+ printf("\e[q");
|
||||
+ while (stderr_nesting_level--)
|
||||
+ fprintf(stderr, "\e[q");
|
||||
+ }
|
||||
+
|
||||
+
|
||||
#ifdef _AMIGA
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
***************
|
||||
*** 931,936 ****
|
||||
--- 940,950 ----
|
||||
atexit (close_stdout);
|
||||
#endif
|
||||
|
||||
+ atexit(close_nesting);
|
||||
+
|
||||
+ if (getenv("NIX_INDENT_MAKE"))
|
||||
+ enable_nested_output = 1;
|
||||
+
|
||||
/* Needed for OS/2 */
|
||||
initialize_main(&argc, &argv);
|
||||
|
||||
***************
|
||||
*** 3095,3100 ****
|
||||
--- 3109,3120 ----
|
||||
|
||||
/* Use entire sentences to give the translators a fighting chance. */
|
||||
|
||||
+ if (entering && enable_nested_output)
|
||||
+ {
|
||||
+ printf("\e[p");
|
||||
+ stdout_nesting_level++;
|
||||
+ }
|
||||
+
|
||||
if (makelevel == 0)
|
||||
if (starting_directory == 0)
|
||||
if (entering)
|
||||
***************
|
||||
*** 3124,3129 ****
|
||||
--- 3144,3159 ----
|
||||
printf (_("%s[%u]: Leaving directory `%s'\n"),
|
||||
program, makelevel, starting_directory);
|
||||
|
||||
+ if (!entering && enable_nested_output)
|
||||
+ {
|
||||
+ printf("\e[q");
|
||||
+ stdout_nesting_level--;
|
||||
+ }
|
||||
+
|
||||
/* Flush stdout to be sure this comes before any stderr output. */
|
||||
fflush (stdout);
|
||||
}
|
||||
+
|
||||
+ int enable_nested_output = 0;
|
||||
+ int stdout_nesting_level = 0;
|
||||
+ int stderr_nesting_level = 0;
|
||||
diff -rc make.h
|
||||
*** make.h 2006-02-16 00:54:43.000000000 +0100
|
||||
--- make.h 2009-01-19 19:32:03.000000000 +0100
|
||||
***************
|
||||
*** 609,611 ****
|
||||
--- 609,614 ----
|
||||
|
||||
#define ENULLLOOP(_v,_c) do { errno = 0; (_v) = _c; } \
|
||||
while((_v)==0 && errno==EINTR)
|
||||
+ extern int enable_nested_output;
|
||||
+ extern int stdout_nesting_level;
|
||||
+ extern int stderr_nesting_level;
|
||||
diff -rc reremake.c
|
||||
*** remake.c 2006-03-20 03:36:37.000000000 +0100
|
||||
--- remake.c 2009-01-19 19:39:40.000000000 +0100
|
||||
***************
|
||||
*** 1120,1126 ****
|
||||
--- 1120,1137 ----
|
||||
/* The normal case: start some commands. */
|
||||
if (!touch_flag || file->cmds->any_recurse)
|
||||
{
|
||||
+ if (enable_nested_output)
|
||||
+ {
|
||||
+ log_working_directory (1);
|
||||
+ fprintf(stderr, "\e[pbuilding %s\n", file->name);
|
||||
+ stderr_nesting_level++;
|
||||
+ }
|
||||
execute_file_commands (file);
|
||||
+ if (enable_nested_output)
|
||||
+ {
|
||||
+ fprintf(stderr, "\e[q");
|
||||
+ stderr_nesting_level--;
|
||||
+ }
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
Fixed default libpatttern on Darwin, imported from prefix overlay.
|
||||
Got merged upstream:
|
||||
https://savannah.gnu.org/bugs/?37197
|
||||
--- default.c.orig 2009-05-02 12:25:24 +0200
|
||||
+++ default.c 2009-05-02 12:25:58 +0200
|
||||
@@ -509,7 +509,11 @@
|
||||
#ifdef __MSDOS__
|
||||
".LIBPATTERNS", "lib%.a $(DJDIR)/lib/lib%.a",
|
||||
#else
|
||||
+#ifdef __APPLE__
|
||||
+ ".LIBPATTERNS", "lib%.dylib lib%.a",
|
||||
+#else
|
||||
".LIBPATTERNS", "lib%.so lib%.a",
|
||||
+#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
{stdenv, fetchurl}:
|
||||
|
||||
let version = "4.0"; in
|
||||
stdenv.mkDerivation {
|
||||
name = "gnumake-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/make/make-${version}.tar.bz2";
|
||||
sha256 = "1nyvn8mknw0mf7727lprva3lisl1y0n03lvar342rrpdmz3qc1p6";
|
||||
};
|
||||
|
||||
/* On Darwin, there are 3 test failures that haven't been investigated
|
||||
yet. */
|
||||
doCheck = !stdenv.isDarwin && !stdenv.isFreeBSD;
|
||||
|
||||
patches =
|
||||
[
|
||||
# Purity: don't look for library dependencies (of the form
|
||||
# `-lfoo') in /lib and /usr/lib. It's a stupid feature anyway.
|
||||
# Likewise, when searching for included Makefiles, don't look in
|
||||
# /usr/include and friends.
|
||||
./impure-dirs.patch
|
||||
|
||||
# a bunch of patches from Gentoo, mostly should be from upstream (unreleased)
|
||||
./darwin-library_search-dylib.patch
|
||||
];
|
||||
patchFlags = "-p0";
|
||||
|
||||
meta = {
|
||||
description = "GNU Make, a program controlling the generation of non-source files from sources";
|
||||
|
||||
longDescription =
|
||||
'' Make is a tool which controls the generation of executables and
|
||||
other non-source files of a program from the program's source files.
|
||||
|
||||
Make gets its knowledge of how to build your program from a file
|
||||
called the makefile, which lists each of the non-source files and
|
||||
how to compute it from other files. When you write a program, you
|
||||
should write a makefile for it, so that it is possible to use Make
|
||||
to build and install the program.
|
||||
'';
|
||||
|
||||
homepage = http://www.gnu.org/software/make/;
|
||||
|
||||
license = stdenv.lib.licenses.gpl3Plus;
|
||||
maintainers = [ ];
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
diff -rc read.c read.c
|
||||
*** read.c 2006-03-17 15:24:20.000000000 +0100
|
||||
--- read.c 2007-05-24 17:16:31.000000000 +0200
|
||||
***************
|
||||
*** 99,107 ****
|
||||
--- 99,109 ----
|
||||
#endif
|
||||
INCLUDEDIR,
|
||||
#ifndef _AMIGA
|
||||
+ #if 0
|
||||
"/usr/gnu/include",
|
||||
"/usr/local/include",
|
||||
"/usr/include",
|
||||
+ #endif
|
||||
#endif
|
||||
0
|
||||
};
|
||||
diff -rc reremake.c
|
||||
*** remake.c 2006-03-20 03:36:37.000000000 +0100
|
||||
--- remake.c 2007-05-24 17:06:54.000000000 +0200
|
||||
***************
|
||||
*** 1452,1460 ****
|
||||
--- 1452,1462 ----
|
||||
static char *dirs[] =
|
||||
{
|
||||
#ifndef _AMIGA
|
||||
+ #if 0
|
||||
"/lib",
|
||||
"/usr/lib",
|
||||
#endif
|
||||
+ #endif
|
||||
#if defined(WINDOWS32) && !defined(LIBDIR)
|
||||
/*
|
||||
* This is completely up to the user at product install time. Just define
|
||||
@@ -1,45 +0,0 @@
|
||||
{ stdenv, fetchurl }:
|
||||
|
||||
let
|
||||
version = "4.1";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "gnumake-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/make/make-${version}.tar.bz2";
|
||||
sha256 = "19gwwhik3wdwn0r42b7xcihkbxvjl9r2bdal8nifc3k5i4rn3iqb";
|
||||
};
|
||||
|
||||
patchFlags = "-p0";
|
||||
patches = [
|
||||
# Purity: don't look for library dependencies (of the form `-lfoo') in /lib
|
||||
# and /usr/lib. It's a stupid feature anyway. Likewise, when searching for
|
||||
# included Makefiles, don't look in /usr/include and friends.
|
||||
./impure-dirs.patch
|
||||
|
||||
# Don't segfault if we can't get a tty name.
|
||||
./no-tty-name.patch
|
||||
];
|
||||
|
||||
outputs = [ "out" "doc" ];
|
||||
|
||||
meta = {
|
||||
homepage = http://www.gnu.org/software/make/;
|
||||
description = "A tool to control the generation of non-source files from sources";
|
||||
license = stdenv.lib.licenses.gpl3Plus;
|
||||
|
||||
longDescription = ''
|
||||
Make is a tool which controls the generation of executables and
|
||||
other non-source files of a program from the program's source files.
|
||||
|
||||
Make gets its knowledge of how to build your program from a file
|
||||
called the makefile, which lists each of the non-source files and
|
||||
how to compute it from other files. When you write a program, you
|
||||
should write a makefile for it, so that it is possible to use Make
|
||||
to build and install the program.
|
||||
'';
|
||||
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
diff -rc read.c read.c
|
||||
*** read.c 2006-03-17 15:24:20.000000000 +0100
|
||||
--- read.c 2007-05-24 17:16:31.000000000 +0200
|
||||
***************
|
||||
*** 99,107 ****
|
||||
--- 99,109 ----
|
||||
#endif
|
||||
INCLUDEDIR,
|
||||
#ifndef _AMIGA
|
||||
+ #if 0
|
||||
"/usr/gnu/include",
|
||||
"/usr/local/include",
|
||||
"/usr/include",
|
||||
+ #endif
|
||||
#endif
|
||||
0
|
||||
};
|
||||
diff -rc reremake.c
|
||||
*** remake.c 2006-03-20 03:36:37.000000000 +0100
|
||||
--- remake.c 2007-05-24 17:06:54.000000000 +0200
|
||||
***************
|
||||
*** 1452,1460 ****
|
||||
--- 1452,1462 ----
|
||||
static char *dirs[] =
|
||||
{
|
||||
#ifndef _AMIGA
|
||||
+ #if 0
|
||||
"/lib",
|
||||
"/usr/lib",
|
||||
#endif
|
||||
+ #endif
|
||||
#if defined(WINDOWS32) && !defined(LIBDIR)
|
||||
/*
|
||||
* This is completely up to the user at product install time. Just define
|
||||
@@ -1,53 +0,0 @@
|
||||
From 292da6f6867b75a5af7ddbb639a1feae022f438f Mon Sep 17 00:00:00 2001
|
||||
From: Paul Smith <psmith@gnu.org>
|
||||
Date: Mon, 20 Oct 2014 05:54:56 +0000
|
||||
Subject: * main.c (main): [SV 43434] Handle NULL returns from ttyname().
|
||||
|
||||
---
|
||||
diff --git main.c main.c
|
||||
index b2d169c..0cdb8a8 100644
|
||||
--- main.c
|
||||
+++ main.c
|
||||
@@ -1429,13 +1429,18 @@ main (int argc, char **argv, char **envp)
|
||||
#ifdef HAVE_ISATTY
|
||||
if (isatty (fileno (stdout)))
|
||||
if (! lookup_variable (STRING_SIZE_TUPLE ("MAKE_TERMOUT")))
|
||||
- define_variable_cname ("MAKE_TERMOUT", TTYNAME (fileno (stdout)),
|
||||
- o_default, 0)->export = v_export;
|
||||
-
|
||||
+ {
|
||||
+ const char *tty = TTYNAME (fileno (stdout));
|
||||
+ define_variable_cname ("MAKE_TERMOUT", tty ? tty : DEFAULT_TTYNAME,
|
||||
+ o_default, 0)->export = v_export;
|
||||
+ }
|
||||
if (isatty (fileno (stderr)))
|
||||
if (! lookup_variable (STRING_SIZE_TUPLE ("MAKE_TERMERR")))
|
||||
- define_variable_cname ("MAKE_TERMERR", TTYNAME (fileno (stderr)),
|
||||
- o_default, 0)->export = v_export;
|
||||
+ {
|
||||
+ const char *tty = TTYNAME (fileno (stderr));
|
||||
+ define_variable_cname ("MAKE_TERMERR", tty ? tty : DEFAULT_TTYNAME,
|
||||
+ o_default, 0)->export = v_export;
|
||||
+ }
|
||||
#endif
|
||||
|
||||
/* Reset in case the switches changed our minds. */
|
||||
diff --git makeint.h makeint.h
|
||||
index 6223936..2009f41 100644
|
||||
--- makeint.h
|
||||
+++ makeint.h
|
||||
@@ -436,10 +436,11 @@ extern struct rlimit stack_limit;
|
||||
/* The number of bytes needed to represent the largest integer as a string. */
|
||||
#define INTSTR_LENGTH CSTRLEN ("18446744073709551616")
|
||||
|
||||
+#define DEFAULT_TTYNAME "true"
|
||||
#ifdef HAVE_TTYNAME
|
||||
# define TTYNAME(_f) ttyname (_f)
|
||||
#else
|
||||
-# define TTYNAME(_f) "true"
|
||||
+# define TTYNAME(_f) DEFAULT_TTYNAME
|
||||
#endif
|
||||
|
||||
|
||||
--
|
||||
cgit v0.9.0.2
|
||||
@@ -19,13 +19,15 @@ stdenv.mkDerivation {
|
||||
# and /usr/lib. It's a stupid feature anyway. Likewise, when searching for
|
||||
# included Makefiles, don't look in /usr/include and friends.
|
||||
./impure-dirs.patch
|
||||
./pselect.patch
|
||||
];
|
||||
|
||||
buildInputs = stdenv.lib.optionals guileSupport [ guile pkgconfig ];
|
||||
nativeBuildInputs = stdenv.lib.optionals guileSupport [ pkgconfig ];
|
||||
buildInputs = stdenv.lib.optionals guileSupport [ guile ];
|
||||
|
||||
configureFlags = stdenv.lib.optional guileSupport "--with-guile";
|
||||
|
||||
outputs = [ "out" "doc" ];
|
||||
outputs = [ "out" "man" "info" ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://www.gnu.org/software/make/;
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
From 48c8a116a914a325a0497721f5d8b58d5bba34d4 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Smith <psmith@gnu.org>
|
||||
Date: Sun, 19 Nov 2017 15:09:16 -0500
|
||||
Subject: * configure.ac: Support GLIBC glob interface version 2
|
||||
|
||||
---
|
||||
configure.ac | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff -Naur a/configure b/configure
|
||||
--- configure 2016-06-10 19:03:21.000000000 -0400
|
||||
+++ configure 2018-02-18 04:40:32.971371555 -0500
|
||||
@@ -11481,10 +11481,9 @@
|
||||
#include <glob.h>
|
||||
#include <fnmatch.h>
|
||||
|
||||
-#define GLOB_INTERFACE_VERSION 1
|
||||
#if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1
|
||||
# include <gnu-versions.h>
|
||||
-# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION
|
||||
+# if _GNU_GLOB_INTERFACE_VERSION == 1 || _GNU_GLOB_INTERFACE_VERSION == 2
|
||||
gnu glob
|
||||
# endif
|
||||
#endif
|
||||
69
pkgs/development/tools/build-managers/gnumake/4.2/head.nix
Normal file
69
pkgs/development/tools/build-managers/gnumake/4.2/head.nix
Normal file
@@ -0,0 +1,69 @@
|
||||
{ stdenv, fetchurl, texinfo, guileSupport ? false, pkgconfig , guile ? null, autoreconfHook }:
|
||||
|
||||
assert guileSupport -> ( guile != null );
|
||||
|
||||
let
|
||||
version = "4.2.90";
|
||||
revision = "48c8a116a914a325a0497721f5d8b58d5bba34d4";
|
||||
revCount = "2491";
|
||||
shortRev = "48c8a11";
|
||||
|
||||
baseVersion = "4.2.1";
|
||||
baseTarball = fetchurl {
|
||||
url = "mirror://gnu/make/make-${baseVersion}.tar.bz2";
|
||||
sha256 = "12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "gnumake-${version}pre${revCount}_${shortRev}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://git.savannah.gnu.org/cgit/make.git/snapshot/make-${revision}.tar.gz";
|
||||
sha256 = "0k6yvhr2a5lh1qhflv02dyvq5p20ikgaakm8w6gr4xmkspljwpwx";
|
||||
};
|
||||
|
||||
postUnpack = ''
|
||||
unpackFile ${baseTarball}
|
||||
cp make-${baseVersion}/po/*.po $sourceRoot/po
|
||||
cp make-${baseVersion}/doc/{fdl,make-stds}.texi $sourceRoot/doc
|
||||
'';
|
||||
|
||||
patches = [
|
||||
# Purity: don't look for library dependencies (of the form `-lfoo') in /lib
|
||||
# and /usr/lib. It's a stupid feature anyway. Likewise, when searching for
|
||||
# included Makefiles, don't look in /usr/include and friends.
|
||||
./impure-dirs-head.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# These aren't in the 4.2.1 tarball yet.
|
||||
sed -i -e 's/sr//' -e 's/zh_TW//' po/LINGUAS
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkgconfig texinfo ];
|
||||
buildInputs = stdenv.lib.optional guileSupport guile;
|
||||
|
||||
configureFlags = stdenv.lib.optional guileSupport "--with-guile";
|
||||
|
||||
outputs = [ "out" "man" "info" ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://www.gnu.org/software/make/;
|
||||
description = "A tool to control the generation of non-source files from sources";
|
||||
license = licenses.gpl3Plus;
|
||||
|
||||
longDescription = ''
|
||||
Make is a tool which controls the generation of executables and
|
||||
other non-source files of a program from the program's source files.
|
||||
|
||||
Make gets its knowledge of how to build your program from a file
|
||||
called the makefile, which lists each of the non-source files and
|
||||
how to compute it from other files. When you write a program, you
|
||||
should write a makefile for it, so that it is possible to use Make
|
||||
to build and install the program.
|
||||
'';
|
||||
|
||||
platforms = platforms.all;
|
||||
maintainers = [ maintainers.vrthra ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
diff -Naur a/src/read.c b/src/read.c
|
||||
--- a/src/read.c 2017-11-19 15:17:47.000000000 -0500
|
||||
+++ b/src/read.c 2018-02-19 08:53:51.548755213 -0500
|
||||
@@ -109,10 +109,12 @@
|
||||
#endif
|
||||
INCLUDEDIR,
|
||||
#ifndef _AMIGA
|
||||
+#if 0
|
||||
"/usr/gnu/include",
|
||||
"/usr/local/include",
|
||||
"/usr/include",
|
||||
#endif
|
||||
+#endif
|
||||
0
|
||||
};
|
||||
|
||||
diff -Naur a/src/remake.c b/src/remake.c
|
||||
--- a/src/remake.c 2017-11-19 15:17:47.000000000 -0500
|
||||
+++ b/src/remake.c 2018-02-19 08:54:08.304101943 -0500
|
||||
@@ -1601,9 +1601,11 @@
|
||||
static const char *dirs[] =
|
||||
{
|
||||
#ifndef _AMIGA
|
||||
+#if 0
|
||||
"/lib",
|
||||
"/usr/lib",
|
||||
#endif
|
||||
+#endif
|
||||
#if defined(WINDOWS32) && !defined(LIBDIR)
|
||||
/*
|
||||
* This is completely up to the user at product install time. Just define
|
||||
170
pkgs/development/tools/build-managers/gnumake/4.2/pselect.patch
Normal file
170
pkgs/development/tools/build-managers/gnumake/4.2/pselect.patch
Normal file
@@ -0,0 +1,170 @@
|
||||
From b552b05251980f693c729e251f93f5225b400714 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Smith <psmith@gnu.org>
|
||||
Date: Sat, 3 Jun 2017 16:20:51 -0400
|
||||
Subject: [SV 51159] Use a non-blocking read with pselect to avoid hangs.
|
||||
|
||||
* posixos.c (set_blocking): Set blocking on a file descriptor.
|
||||
(jobserver_setup): Set non-blocking on the jobserver read side.
|
||||
(jobserver_parse_auth): Ditto.
|
||||
(jobserver_acquire_all): Set blocking to avoid a busy-wait loop.
|
||||
(jobserver_acquire): If the non-blocking read() returns without
|
||||
taking a token then try again.
|
||||
---
|
||||
posixos.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++-----------------
|
||||
1 file changed, 71 insertions(+), 26 deletions(-)
|
||||
|
||||
diff --git posixos.c posixos.c
|
||||
index e642d7f..dbafa51 100644
|
||||
--- posixos.c
|
||||
+++ posixos.c
|
||||
@@ -62,6 +62,24 @@ make_job_rfd (void)
|
||||
#endif
|
||||
}
|
||||
|
||||
+static void
|
||||
+set_blocking (int fd, int blocking)
|
||||
+{
|
||||
+ // If we're not using pselect() don't change the blocking
|
||||
+#ifdef HAVE_PSELECT
|
||||
+ int flags;
|
||||
+ EINTRLOOP (flags, fcntl (fd, F_GETFL));
|
||||
+ if (flags >= 0)
|
||||
+ {
|
||||
+ int r;
|
||||
+ flags = blocking ? (flags & ~O_NONBLOCK) : (flags | O_NONBLOCK);
|
||||
+ EINTRLOOP (r, fcntl (fd, F_SETFL, flags));
|
||||
+ if (r < 0)
|
||||
+ pfatal_with_name ("fcntl(O_NONBLOCK)");
|
||||
+ }
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
unsigned int
|
||||
jobserver_setup (int slots)
|
||||
{
|
||||
@@ -86,6 +104,9 @@ jobserver_setup (int slots)
|
||||
pfatal_with_name (_("init jobserver pipe"));
|
||||
}
|
||||
|
||||
+ /* When using pselect() we want the read to be non-blocking. */
|
||||
+ set_blocking (job_fds[0], 0);
|
||||
+
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -121,6 +142,9 @@ jobserver_parse_auth (const char *auth)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+ /* When using pselect() we want the read to be non-blocking. */
|
||||
+ set_blocking (job_fds[0], 0);
|
||||
+
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -169,7 +193,10 @@ jobserver_acquire_all (void)
|
||||
{
|
||||
unsigned int tokens = 0;
|
||||
|
||||
- /* Close the write side, so the read() won't hang. */
|
||||
+ /* Use blocking reads to wait for all outstanding jobs. */
|
||||
+ set_blocking (job_fds[0], 1);
|
||||
+
|
||||
+ /* Close the write side, so the read() won't hang forever. */
|
||||
close (job_fds[1]);
|
||||
job_fds[1] = -1;
|
||||
|
||||
@@ -236,18 +263,12 @@ jobserver_pre_acquire (void)
|
||||
unsigned int
|
||||
jobserver_acquire (int timeout)
|
||||
{
|
||||
- sigset_t empty;
|
||||
- fd_set readfds;
|
||||
struct timespec spec;
|
||||
struct timespec *specp = NULL;
|
||||
- int r;
|
||||
- char intake;
|
||||
+ sigset_t empty;
|
||||
|
||||
sigemptyset (&empty);
|
||||
|
||||
- FD_ZERO (&readfds);
|
||||
- FD_SET (job_fds[0], &readfds);
|
||||
-
|
||||
if (timeout)
|
||||
{
|
||||
/* Alarm after one second (is this too granular?) */
|
||||
@@ -256,28 +277,52 @@ jobserver_acquire (int timeout)
|
||||
specp = &spec;
|
||||
}
|
||||
|
||||
- r = pselect (job_fds[0]+1, &readfds, NULL, NULL, specp, &empty);
|
||||
-
|
||||
- if (r == -1)
|
||||
+ while (1)
|
||||
{
|
||||
- /* Better be SIGCHLD. */
|
||||
- if (errno != EINTR)
|
||||
- pfatal_with_name (_("pselect jobs pipe"));
|
||||
- return 0;
|
||||
- }
|
||||
+ fd_set readfds;
|
||||
+ int r;
|
||||
+ char intake;
|
||||
|
||||
- if (r == 0)
|
||||
- /* Timeout. */
|
||||
- return 0;
|
||||
+ FD_ZERO (&readfds);
|
||||
+ FD_SET (job_fds[0], &readfds);
|
||||
|
||||
- /* The read FD is ready: read it! */
|
||||
- EINTRLOOP (r, read (job_fds[0], &intake, 1));
|
||||
- if (r < 0)
|
||||
- pfatal_with_name (_("read jobs pipe"));
|
||||
+ r = pselect (job_fds[0]+1, &readfds, NULL, NULL, specp, &empty);
|
||||
+ if (r < 0)
|
||||
+ switch (errno)
|
||||
+ {
|
||||
+ case EINTR:
|
||||
+ /* SIGCHLD will show up as an EINTR. */
|
||||
+ return 0;
|
||||
+
|
||||
+ case EBADF:
|
||||
+ /* Someone closed the jobs pipe.
|
||||
+ That shouldn't happen but if it does we're done. */
|
||||
+ O (fatal, NILF, _("job server shut down"));
|
||||
|
||||
- /* What does it mean if read() returns 0? It shouldn't happen because only
|
||||
- the master make can reap all the tokens and close the write side...?? */
|
||||
- return r > 0;
|
||||
+ default:
|
||||
+ pfatal_with_name (_("pselect jobs pipe"));
|
||||
+ }
|
||||
+
|
||||
+ if (r == 0)
|
||||
+ /* Timeout. */
|
||||
+ return 0;
|
||||
+
|
||||
+ /* The read FD is ready: read it! This is non-blocking. */
|
||||
+ EINTRLOOP (r, read (job_fds[0], &intake, 1));
|
||||
+
|
||||
+ if (r < 0)
|
||||
+ {
|
||||
+ /* Someone sniped our token! Try again. */
|
||||
+ if (errno == EAGAIN)
|
||||
+ continue;
|
||||
+
|
||||
+ pfatal_with_name (_("read jobs pipe"));
|
||||
+ }
|
||||
+
|
||||
+ /* read() should never return 0: only the master make can reap all the
|
||||
+ tokens and close the write side...?? */
|
||||
+ return r > 0;
|
||||
+ }
|
||||
}
|
||||
|
||||
#else
|
||||
--
|
||||
cgit v1.0-41-gc330
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
{ stdenv, fetchurl, unzip, jdk, makeWrapper }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gradle-2.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://services.gradle.org/distributions/${name}-bin.zip";
|
||||
sha256 = "0mc5lf6phkncx77r0papzmfvyiqm0y26x50ipvmzkcsbn463x59z";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
mkdir -pv $out/gradle
|
||||
cp -rv lib $out/gradle
|
||||
|
||||
gradle_launcher_jar=$(echo $out/gradle/lib/gradle-launcher-*.jar)
|
||||
test -f $gradle_launcher_jar
|
||||
makeWrapper ${jdk}/bin/java $out/bin/gradle \
|
||||
--set JAVA_HOME ${jdk} \
|
||||
--add-flags "-classpath $gradle_launcher_jar org.gradle.launcher.GradleMain"
|
||||
'';
|
||||
|
||||
phases = "unpackPhase installPhase";
|
||||
|
||||
buildInputs = [ unzip jdk makeWrapper ];
|
||||
|
||||
meta = {
|
||||
description = "Enterprise-grade build system";
|
||||
longDescription = ''
|
||||
Gradle is a build system which offers you ease, power and freedom.
|
||||
You can choose the balance for yourself. It has powerful multi-project
|
||||
build support. It has a layer on top of Ivy that provides a
|
||||
build-by-convention integration for Ivy. It gives you always the choice
|
||||
between the flexibility of Ant and the convenience of a
|
||||
build-by-convention behavior.
|
||||
'';
|
||||
homepage = http://www.gradle.org/;
|
||||
license = stdenv.lib.licenses.asl20;
|
||||
};
|
||||
}
|
||||
@@ -52,12 +52,12 @@ rec {
|
||||
};
|
||||
|
||||
gradle_latest = gradleGen rec {
|
||||
name = "gradle-4.0.1";
|
||||
name = "gradle-4.6";
|
||||
nativeVersion = "0.14";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://services.gradle.org/distributions/${name}-bin.zip";
|
||||
sha256 = "1m2gnh1vs3f5acdqcxmc8d0pi65bzm3v1nliz29rhdfi01if85yp";
|
||||
sha256 = "05drn7a9d2blbmd3l0443bpf5qzf5frwnl9ww0bha1qfng95zgcq";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{ stdenv, fetchFromGitHub, lib, python, which }:
|
||||
let
|
||||
version = "0.6.0";
|
||||
version = "0.7.0";
|
||||
src = fetchFromGitHub {
|
||||
sha256 = "053xnx39jh9kn9l572z4k0q7bbxjpisf1fm9aq27ybj2ha1rh6wr";
|
||||
sha256 = "1pwnmlq2pgkkln9sgz4wlb9dqlqw83bkf105qljnlvggc21zm3pv";
|
||||
rev = "version-${version}";
|
||||
repo = "gup";
|
||||
owner = "timbertson";
|
||||
|
||||
@@ -1,18 +1,22 @@
|
||||
{ stdenv, fetchFromGitHub, gcc }:
|
||||
{ stdenv, fetchFromGitHub, makeWrapper, gcc, ncurses }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "icmake-${version}";
|
||||
version = "9.02.02";
|
||||
version = "9.02.07";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
sha256 = "0f7w3b8r2h6ckgzc6wbfbw5yyxia0f3j3acmzi1yzylj6ak05mmd";
|
||||
sha256 = "1q3rwri5s1sqm4h75bahkjnlym4bk2ygg4fb75yrniwnj8rhdp12";
|
||||
rev = version;
|
||||
repo = "icmake";
|
||||
owner = "fbb-git";
|
||||
};
|
||||
|
||||
sourceRoot = "icmake-${version}-src/icmake";
|
||||
|
||||
setSourceRoot = ''
|
||||
sourceRoot=$(echo */icmake)
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [ gcc ];
|
||||
|
||||
preConfigure = ''
|
||||
@@ -27,13 +31,16 @@ stdenv.mkDerivation rec {
|
||||
|
||||
installPhase = ''
|
||||
./icm_install all /
|
||||
|
||||
wrapProgram $out/bin/icmbuild \
|
||||
--prefix PATH : ${ncurses}/bin
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A program maintenance (make) utility using a C-like grammar";
|
||||
homepage = https://fbb-git.github.io/icmake/;
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ nckx pSub ];
|
||||
maintainers = with maintainers; [ pSub ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -10,6 +10,10 @@ stdenv.mkDerivation rec {
|
||||
|
||||
nativeBuildInputs = [ yacc ];
|
||||
|
||||
preConfigure = ''
|
||||
unset AR
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
make jam0
|
||||
./jam0 -j$NIX_BUILD_CORES -sBINDIR=$out/bin install
|
||||
|
||||
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
meta = {
|
||||
description = "An experimental GNU make clone";
|
||||
homepage = "https://github.com/google/kati";
|
||||
homepage = https://github.com/google/kati;
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
license = stdenv.lib.licenses.asl20;
|
||||
};
|
||||
|
||||
@@ -3,18 +3,18 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "leiningen";
|
||||
version = "2.7.1";
|
||||
version = "2.8.1";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://raw.github.com/technomancy/leiningen/${version}/bin/lein-pkg";
|
||||
sha256 = "0rmshl4xchf3blwvar4q9dpxm9xznn3yzas4vwxqiq3yhapgqkn0";
|
||||
sha256 = "0wk4m7m66xxx7i3nis08mc8qna7acgcmpim562vdyyrpbxdhj24i";
|
||||
};
|
||||
|
||||
jarsrc = fetchurl {
|
||||
# NOTE: This is actually a .jar, Github has issues
|
||||
url = "https://github.com/technomancy/leiningen/releases/download/${version}/${name}-standalone.zip";
|
||||
sha256 = "0ivwb1qlxs1hyical0fjgavm9wfkw3f10sk67p5g2p5lpf4pxp1d";
|
||||
sha256 = "0n3wkb0a9g25r1xq93lskay2lw210qymz2qakjnl5vr5zz3vnjgw";
|
||||
};
|
||||
|
||||
JARNAME = "${name}-standalone.jar";
|
||||
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = http://leiningen.org/;
|
||||
homepage = https://leiningen.org/;
|
||||
description = "Project automation for Clojure";
|
||||
license = stdenv.lib.licenses.epl10;
|
||||
platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
--- a/mesonbuild/coredata.py
|
||||
+++ b/mesonbuild/coredata.py
|
||||
@@ -266,18 +266,13 @@
|
||||
'''
|
||||
if option.endswith('dir') and os.path.isabs(value) and \
|
||||
option not in builtin_dir_noprefix_options:
|
||||
- # Value must be a subdir of the prefix
|
||||
# commonpath will always return a path in the native format, so we
|
||||
# must use pathlib.PurePath to do the same conversion before
|
||||
# comparing.
|
||||
- if commonpath([value, prefix]) != str(PurePath(prefix)):
|
||||
- m = 'The value of the {!r} option is {!r} which must be a ' \
|
||||
- 'subdir of the prefix {!r}.\nNote that if you pass a ' \
|
||||
- 'relative path, it is assumed to be a subdir of prefix.'
|
||||
- raise MesonException(m.format(option, value, prefix))
|
||||
- # Convert path to be relative to prefix
|
||||
- skip = len(prefix) + 1
|
||||
- value = value[skip:]
|
||||
+ if commonpath([value, prefix]) == str(PurePath(prefix)):
|
||||
+ # Convert path to be relative to prefix
|
||||
+ skip = len(prefix) + 1
|
||||
+ value = value[skip:]
|
||||
return value
|
||||
|
||||
def init_builtins(self, options):
|
||||
@@ -1,12 +1,14 @@
|
||||
{ lib, python3Packages }:
|
||||
python3Packages.buildPythonApplication rec {
|
||||
version = "0.40.0";
|
||||
{ lib, python3Packages, stdenv, targetPlatform, writeTextDir, substituteAll }: let
|
||||
targetPrefix = lib.optionalString stdenv.isCross
|
||||
(targetPlatform.config + "-");
|
||||
in python3Packages.buildPythonApplication rec {
|
||||
version = "0.44.0";
|
||||
pname = "meson";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = python3Packages.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1hb6y5phzd5738rlpz78w8hfzk7sbxj81551mb7bbkkqz8ql1gjw";
|
||||
sha256 = "1rpqp9iwbvr4xvfdh3iyfh1ha274hbb66jbgw3pa5a73x4d4ilqn";
|
||||
};
|
||||
|
||||
postFixup = ''
|
||||
@@ -18,6 +20,53 @@ python3Packages.buildPythonApplication rec {
|
||||
popd
|
||||
'';
|
||||
|
||||
patches = [
|
||||
# Upstream insists on not allowing bindir and other dir options
|
||||
# outside of prefix for some reason:
|
||||
# https://github.com/mesonbuild/meson/issues/2561
|
||||
# We remove the check so multiple outputs can work sanely.
|
||||
./allow-dirs-outside-of-prefix.patch
|
||||
|
||||
# Unlike libtool, vanilla Meson does not pass any information
|
||||
# about the path library will be installed to to g-ir-scanner,
|
||||
# breaking the GIR when path other than ${!outputLib}/lib is used.
|
||||
# We patch Meson to add a --fallback-library-path argument with
|
||||
# library install_dir to g-ir-scanner.
|
||||
./gir-fallback-path.patch
|
||||
|
||||
# In common distributions, RPATH is only needed for internal libraries so
|
||||
# meson removes everything else. With Nix, the locations of libraries
|
||||
# are not as predictable, therefore we need to keep them in the RPATH.
|
||||
# At the moment we are keeping the paths starting with /nix/store.
|
||||
# https://github.com/NixOS/nixpkgs/issues/31222#issuecomment-365811634
|
||||
(substituteAll {
|
||||
src = ./fix-rpath.patch;
|
||||
inherit (builtins) storeDir;
|
||||
})
|
||||
];
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
crossFile = writeTextDir "cross-file.conf" ''
|
||||
[binaries]
|
||||
c = '${targetPrefix}cc'
|
||||
cpp = '${targetPrefix}c++'
|
||||
ar = '${targetPrefix}ar'
|
||||
strip = '${targetPrefix}strip'
|
||||
pkgconfig = 'pkg-config'
|
||||
|
||||
[properties]
|
||||
needs_exe_wrapper = true
|
||||
|
||||
[host_machine]
|
||||
system = '${targetPlatform.parsed.kernel.name}'
|
||||
cpu_family = '${targetPlatform.parsed.cpu.family}'
|
||||
cpu = '${targetPlatform.parsed.cpu.name}'
|
||||
endian = ${if targetPlatform.isLittleEndian then "'little'" else "'big'"}
|
||||
'';
|
||||
|
||||
inherit (stdenv) cc isCross;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = http://mesonbuild.com;
|
||||
description = "SCons-like build system that use python as a front-end language and Ninja as a building backend";
|
||||
|
||||
32
pkgs/development/tools/build-managers/meson/fix-rpath.patch
Normal file
32
pkgs/development/tools/build-managers/meson/fix-rpath.patch
Normal file
@@ -0,0 +1,32 @@
|
||||
--- a/mesonbuild/compilers/compilers.py
|
||||
+++ b/mesonbuild/compilers/compilers.py
|
||||
@@ -846,8 +848,10 @@
|
||||
if paths != '':
|
||||
paths += ':'
|
||||
paths += build_rpath
|
||||
- if len(paths) < len(install_rpath):
|
||||
- padding = 'X' * (len(install_rpath) - len(paths))
|
||||
+ store_paths = ':'.join(filter(lambda path: path.startswith('@storeDir@'), paths.split(':')))
|
||||
+ extra_space_needed = len(install_rpath + (':' if install_rpath and store_paths else '') + store_paths) - len(paths)
|
||||
+ if extra_space_needed > 0:
|
||||
+ padding = 'X' * extra_space_needed
|
||||
if not paths:
|
||||
paths = padding
|
||||
else:
|
||||
--- a/mesonbuild/scripts/depfixer.py
|
||||
+++ b/mesonbuild/scripts/depfixer.py
|
||||
@@ -300,6 +300,14 @@
|
||||
return
|
||||
self.bf.seek(rp_off)
|
||||
old_rpath = self.read_str()
|
||||
+
|
||||
+ if new_rpath:
|
||||
+ new_rpath += b':'
|
||||
+ else:
|
||||
+ new_rpath = b''
|
||||
+
|
||||
+ new_rpath += b':'.join(filter(lambda path: path.startswith(b'@storeDir@'), old_rpath.split(b':')))
|
||||
+
|
||||
if len(old_rpath) < len(new_rpath):
|
||||
sys.exit("New rpath must not be longer than the old one.")
|
||||
# The linker does read-only string deduplication. If there is a
|
||||
@@ -0,0 +1,13 @@
|
||||
--- a/mesonbuild/modules/gnome.py
|
||||
+++ b/mesonbuild/modules/gnome.py
|
||||
@@ -427,6 +427,10 @@
|
||||
scan_command += ['--no-libtool', '--namespace=' + ns, '--nsversion=' + nsversion, '--warn-all',
|
||||
'--output', '@OUTPUT@']
|
||||
|
||||
+ fallback_libpath = girtarget.get_custom_install_dir()[0]
|
||||
+ if fallback_libpath is not None and isinstance(fallback_libpath, str) and len(fallback_libpath) > 0 and fallback_libpath[0] == "/":
|
||||
+ scan_command += ['--fallback-library-path=' + fallback_libpath]
|
||||
+
|
||||
header = kwargs.pop('header', None)
|
||||
if header:
|
||||
if not isinstance(header, str):
|
||||
52
pkgs/development/tools/build-managers/meson/setup-hook.sh
Normal file
52
pkgs/development/tools/build-managers/meson/setup-hook.sh
Normal file
@@ -0,0 +1,52 @@
|
||||
mesonConfigurePhase() {
|
||||
runHook preConfigure
|
||||
|
||||
if [ -z "$dontAddPrefix" ]; then
|
||||
mesonFlags="--prefix=$prefix $mesonFlags"
|
||||
fi
|
||||
|
||||
# Build release by default.
|
||||
if [ -n "@isCross@" ]; then
|
||||
crossMesonFlags="--cross-file=@crossFile@/cross-file.conf"
|
||||
fi
|
||||
|
||||
# See multiple-outputs.sh and meson’s coredata.py
|
||||
mesonFlags="\
|
||||
--libdir=${!outputLib}/lib --libexecdir=${!outputLib}/libexec \
|
||||
--bindir=${!outputBin}/bin --sbindir=${!outputBin}/sbin \
|
||||
--includedir=${!outputInclude}/include \
|
||||
--mandir=${!outputMan}/share/man --infodir=${!outputInfo}/share/info \
|
||||
--localedir=${!outputLib}/share/locale \
|
||||
$mesonFlags"
|
||||
|
||||
mesonFlags="${crossMesonFlags+$crossMesonFlags }--buildtype=${mesonBuildType:-release} $mesonFlags"
|
||||
|
||||
echo "meson flags: $mesonFlags ${mesonFlagsArray[@]}"
|
||||
|
||||
CC=@cc@/bin/cc CXX=@cc@/bin/c++ meson build $mesonFlags "${mesonFlagsArray[@]}"
|
||||
cd build
|
||||
|
||||
if ! [[ -v enableParallelBuilding ]]; then
|
||||
enableParallelBuilding=1
|
||||
echo "meson: enabled parallel building"
|
||||
fi
|
||||
|
||||
runHook postConfigure
|
||||
}
|
||||
|
||||
if [ -z "$dontUseMesonConfigure" -a -z "$configurePhase" ]; then
|
||||
setOutputFlags=
|
||||
configurePhase=mesonConfigurePhase
|
||||
fi
|
||||
|
||||
mesonCheckPhase() {
|
||||
runHook preCheck
|
||||
|
||||
meson test --print-errorlogs
|
||||
|
||||
runHook postCheck
|
||||
}
|
||||
|
||||
if [ -z "$dontUseMesonCheck" -a -z "$checkPhase" ]; then
|
||||
checkPhase=mesonCheckPhase
|
||||
fi
|
||||
@@ -15,7 +15,8 @@ let
|
||||
name = "nant-bootstrapped-${version}";
|
||||
inherit src;
|
||||
|
||||
buildInputs = [ pkgconfig mono makeWrapper ];
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [ mono makeWrapper ];
|
||||
|
||||
buildFlags = "bootstrap";
|
||||
|
||||
@@ -35,7 +36,8 @@ in stdenv.mkDerivation {
|
||||
name = "nant-${version}";
|
||||
inherit src;
|
||||
|
||||
buildInputs = [ pkgconfig mono makeWrapper nant-bootstrapped ];
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [ mono makeWrapper nant-bootstrapped ];
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
|
||||
@@ -1,31 +1,32 @@
|
||||
{ stdenv, fetchurl, python, asciidoc, re2c }:
|
||||
{ stdenv, fetchFromGitHub, python, asciidoc, re2c }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "ninja-${version}";
|
||||
version = "1.7.2";
|
||||
version = "1.8.2";
|
||||
|
||||
src = fetchurl {
|
||||
name = "${name}.tar.gz";
|
||||
url = "https://github.com/ninja-build/ninja/archive/v${version}.tar.gz";
|
||||
sha256 = "1n8n3g26ppwh7zwrc37n3alkbpbj0wki34ih53s3rkhs8ajs1p9f";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ninja-build";
|
||||
repo = "ninja";
|
||||
rev = "v${version}";
|
||||
sha256 = "16scq9hcq6c5ap6sy8j4qi75qps1zvrf3p79j1vbrvnqzp928i5f";
|
||||
};
|
||||
|
||||
buildInputs = [ python asciidoc re2c ];
|
||||
nativeBuildInputs = [ python asciidoc re2c ];
|
||||
|
||||
buildPhase = ''
|
||||
python bootstrap.py
|
||||
python configure.py --bootstrap
|
||||
asciidoc doc/manual.asciidoc
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp ninja $out/bin/
|
||||
|
||||
mkdir -p $out/share/doc/ninja
|
||||
cp doc/manual.asciidoc $out/share/doc/ninja/
|
||||
cp doc/manual.html $out/share/doc/ninja/
|
||||
install -Dm555 -t $out/bin ninja
|
||||
install -Dm444 -t $out/share/doc/ninja doc/manual.asciidoc doc/manual.html
|
||||
install -Dm444 misc/bash-completion $out/share/bash-completion/completions/ninja
|
||||
install -Dm444 misc/zsh-completion $out/share/zsh/site-functions/_ninja
|
||||
'';
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Small build system with a focus on speed";
|
||||
longDescription = ''
|
||||
@@ -34,9 +35,9 @@ stdenv.mkDerivation rec {
|
||||
input files generated by a higher-level build system, and it is designed
|
||||
to run builds as fast as possible.
|
||||
'';
|
||||
homepage = http://martine.github.io/ninja/;
|
||||
homepage = https://ninja-build.org/;
|
||||
license = licenses.asl20;
|
||||
platforms = platforms.unix;
|
||||
maintainers = [ maintainers.thoughtpolice maintainers.bjornfor ];
|
||||
maintainers = with maintainers; [ thoughtpolice bjornfor orivej ];
|
||||
};
|
||||
}
|
||||
|
||||
50
pkgs/development/tools/build-managers/ninja/setup-hook.sh
Normal file
50
pkgs/development/tools/build-managers/ninja/setup-hook.sh
Normal file
@@ -0,0 +1,50 @@
|
||||
ninjaBuildPhase() {
|
||||
runHook preBuild
|
||||
|
||||
if [[ -z "$ninjaFlags" && ! ( -e build.ninja ) ]]; then
|
||||
echo "no build.ninja, doing nothing"
|
||||
else
|
||||
local buildCores=1
|
||||
|
||||
# Parallel building is enabled by default.
|
||||
if [ "${enableParallelBuilding-1}" ]; then
|
||||
buildCores="$NIX_BUILD_CORES"
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC2086
|
||||
local flagsArray=( \
|
||||
-j"$buildCores" -l"$NIX_BUILD_CORES" \
|
||||
$ninjaFlags "${ninjaFlagsArray[@]}" \
|
||||
$buildFlags "${buildFlagsArray[@]}")
|
||||
|
||||
echoCmd 'build flags' "${flagsArray[@]}"
|
||||
ninja "${flagsArray[@]}"
|
||||
unset flagsArray
|
||||
fi
|
||||
|
||||
runHook postBuild
|
||||
}
|
||||
|
||||
if [ -z "$dontUseNinjaBuild" -a -z "$buildPhase" ]; then
|
||||
buildPhase=ninjaBuildPhase
|
||||
fi
|
||||
|
||||
ninjaInstallPhase() {
|
||||
runHook preInstall
|
||||
|
||||
installTargets="${installTargets:-install}"
|
||||
|
||||
# shellcheck disable=SC2086
|
||||
local flagsArray=( $installTargets \
|
||||
$ninjaFlags "${ninjaFlagsArray[@]}")
|
||||
|
||||
echoCmd 'install flags' "${flagsArray[@]}"
|
||||
ninja "${flagsArray[@]}"
|
||||
unset flagsArray
|
||||
|
||||
runHook postInstall
|
||||
}
|
||||
|
||||
if [ -z "$dontUseNinjaInstall" -a -z "$installPhase" ]; then
|
||||
installPhase=ninjaInstallPhase
|
||||
fi
|
||||
@@ -32,7 +32,7 @@ in buildPythonApplication rec {
|
||||
|
||||
meta = {
|
||||
description = "A build system for software projects in a variety of languages";
|
||||
homepage = "http://www.pantsbuild.org/";
|
||||
homepage = "https://www.pantsbuild.org/";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ copumpkin ];
|
||||
platforms = platforms.unix;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user