Merge branch 'master' into hyper-haskell

This commit is contained in:
Matthew Justin Bauer
2018-03-22 11:29:45 -05:00
committed by GitHub
10916 changed files with 358238 additions and 283726 deletions

View File

@@ -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 ];
};
}

View File

@@ -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 ];
};
}

View 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 ];
};
}

View File

@@ -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 ];

View File

@@ -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 = ''

View File

@@ -29,6 +29,5 @@ stdenv.mkDerivation rec {
homepage = http://coan2.sourceforge.net/;
license = licenses.bsd3;
platforms = platforms.linux;
maintainers = with maintainers; [ nckx ];
};
}

View File

@@ -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 ];

View File

@@ -28,6 +28,5 @@ buildPerlPackage rec {
homepage = http://www.gson.org/egypt/;
license = with licenses; [ artistic1 gpl1Plus ];
platforms = platforms.linux;
maintainers = with maintainers; [ nckx ];
};
}

View File

@@ -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";

View File

@@ -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 ];

View File

@@ -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/"

View File

@@ -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;

View File

@@ -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");
}

View File

@@ -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;

View File

@@ -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 ];

View File

@@ -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;
};
}

View File

@@ -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";

View File

@@ -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;
};
}

View File

@@ -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 ];
};
}

View File

@@ -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 = ''

View File

@@ -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; {

View File

@@ -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;
};
}

View 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 ];
};
}

View File

@@ -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]

View 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 ];
};
}

View File

@@ -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"];
};
}

View File

@@ -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;
};

View 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;
};
}

View File

@@ -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 = {

View File

@@ -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 ];
};
}

View 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;

View File

@@ -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;
};
}

View File

@@ -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 ];

View File

@@ -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).

View File

@@ -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 ---*/
/*--------------------------------------------------------------------*/

View 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 ];
};
}

View File

@@ -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;

View File

@@ -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";

View File

@@ -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;

View File

@@ -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
'';

View File

@@ -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 ];
};
}

View File

@@ -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

View File

@@ -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

View File

@@ -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 {

View File

@@ -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 ];
};
}

View 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 ];
};
}

View 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;
}

View File

@@ -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;
}

View File

@@ -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();

View 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());
}

View 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)

View File

@@ -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 ];
};
}

View File

@@ -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.

View File

@@ -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 ];
};
}

View File

@@ -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 ];

View File

@@ -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

View 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;
};
}

View File

@@ -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;
};
};
}

View File

@@ -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 ];

View 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 -- "$@"
''

View File

@@ -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; [ ];
};
}

View File

@@ -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 ];
};
}

View File

@@ -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

View File

@@ -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

View File

@@ -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
;;

View File

@@ -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;

View File

@@ -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 = ''

View File

@@ -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;
}

View 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 ];
};
}

View File

@@ -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;
};
}

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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;
};
}

View File

@@ -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

View File

@@ -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;
};
}

View File

@@ -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

View File

@@ -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

View File

@@ -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/;

View File

@@ -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

View 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 ];
};
}

View File

@@ -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

View 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

View File

@@ -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;
};
}

View File

@@ -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";
};
};

View File

@@ -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";

View File

@@ -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;
};
}

View File

@@ -10,6 +10,10 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ yacc ];
preConfigure = ''
unset AR
'';
buildPhase = ''
make jam0
./jam0 -j$NIX_BUILD_CORES -sBINDIR=$out/bin install

View File

@@ -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;
};

View File

@@ -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;

View File

@@ -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):

View File

@@ -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";

View 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

View File

@@ -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):

View 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 mesons 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

View File

@@ -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;

View File

@@ -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 ];
};
}

View 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

View File

@@ -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