Merge remote-tracking branch 'upstream/staging' into binutils-wrapper
This commit is contained in:
@@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "arachne-pnr-${version}";
|
||||
version = "2017.11.05";
|
||||
version = "2017.12.06";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cseed";
|
||||
repo = "arachne-pnr";
|
||||
rev = "1e81432830c75c505c76e419619f605a6c4c7583";
|
||||
sha256 = "0lzblmi1klbsmd32h8nh027npm1z1a199lng13lcrqwr17lhb7my";
|
||||
rev = "a32dd2c137b2bb6ba6704b25109790ac76bc2f45";
|
||||
sha256 = "16pfm8spcm3nsrdsjdj22v7dddnwzlhbj1y71wflvvb84xnbga2y";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
, withContrib ? true }:
|
||||
|
||||
let
|
||||
versionPkg = "0.3.0" ;
|
||||
versionPkg = "0.3.7" ;
|
||||
|
||||
contrib = fetchurl {
|
||||
url = "mirror://sourceforge/ats2-lang/ATS2-Postiats-contrib-${versionPkg}.tgz" ;
|
||||
sha256 = "1s4yscisn9gsr692jmh4y5mz03012pv84cm7l5n51v83wc08fks0" ;
|
||||
sha256 = "1w59ir9ij5bvvnxj6fb1rvzycfqa57i31wmpwawxbsb10bqwzyr6";
|
||||
};
|
||||
|
||||
postInstallContrib = stdenv.lib.optionalString withContrib
|
||||
@@ -31,11 +31,9 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/ats2-lang/ATS2-Postiats-${version}.tgz";
|
||||
sha256 = "1knf03r8a5sis7n8rw54flf1lxfbr3prywxb1czcdp6hsbcd1v1d";
|
||||
sha256 = "19nxyi39fn42sp38kl14a6pvbxq9wr8y405wx0zz7mqb77r0m0h5";
|
||||
};
|
||||
|
||||
patches = [ ./install-postiats-contrib.patch ];
|
||||
|
||||
buildInputs = [ gmp ];
|
||||
|
||||
setupHook = with stdenv.lib;
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
Install the parts of the contrib that have been moved to Postiats.
|
||||
diff -Naur ATS2-Postiats-0.3.0-upstream/Makefile_dist ATS2-Postiats-0.3.0/Makefile_dist
|
||||
--- ATS2-Postiats-0.3.0-upstream/Makefile_dist 2017-01-20 10:23:54.000000000 -0400
|
||||
+++ ATS2-Postiats-0.3.0/Makefile_dist 2017-01-21 13:14:27.614723335 -0400
|
||||
@@ -124,12 +124,12 @@
|
||||
cd "$(abs_top_srcdir)" && \
|
||||
$(MKDIR_P) $(PATSLIBHOME2)/bin && \
|
||||
if [ ! -d $(bindir2) ] ; then $(MKDIR_P) $(bindir2) ; fi && \
|
||||
- for x in share ccomp prelude libc libats ; do \
|
||||
+ for x in share ccomp prelude libc libats contrib atscntrb ; do \
|
||||
find "$$x" -type d -exec $(MKDIR_P) $(PATSLIBHOME2)/\{} \; -print; \
|
||||
done
|
||||
|
||||
install_files_0: install_dirs ; \
|
||||
- for x in share ccomp/runtime prelude libc libats ; do \
|
||||
+ for x in share ccomp/runtime prelude libc libats contrib atscntrb ; do \
|
||||
cd "$(abs_top_srcdir)" && \
|
||||
$(INSTALL) -d $(PATSLIBHOME2)/"$$x" && \
|
||||
find "$$x" -type l -exec cp -d \{} $(PATSLIBHOME2)/\{} \; -print && \
|
||||
@@ -1,11 +1,11 @@
|
||||
{ stdenv, fetchsvn, fetchpatch, gcc, glibc, m4, coreutils }:
|
||||
{ stdenv, fetchurl, gcc, glibc, m4, coreutils }:
|
||||
|
||||
let
|
||||
options = rec {
|
||||
/* TODO: there are also MacOS, FreeBSD and Windows versions */
|
||||
x86_64-linux = {
|
||||
arch = "linuxx86";
|
||||
sha256 = "0g6mkl207ri3ib9w85i9w0sv7srz784pbxidz0d95p6qkvg6shba";
|
||||
sha256 = "0hs1f3z7crgzvinpj990kv9gvbsipxvcvwbmk54n51nasvc5025q";
|
||||
runtime = "lx86cl64";
|
||||
kernel = "linuxx8664";
|
||||
};
|
||||
@@ -17,7 +17,7 @@ let
|
||||
};
|
||||
armv7l-linux = {
|
||||
arch = "linuxarm";
|
||||
sha256 = "0k6wxwyg3pmbb5xdkwma0i3rvbjmy3p604g4minjjc1drzsn1i0q";
|
||||
sha256 = "0p0l1dzsygb6i1xxgbipjpxkn46xhq3jm41a34ga1qqp4x8lkr62";
|
||||
runtime = "armcl";
|
||||
kernel = "linuxarm";
|
||||
};
|
||||
@@ -30,21 +30,13 @@ assert builtins.hasAttr stdenv.system options;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "ccl-${version}";
|
||||
version = "1.11";
|
||||
revision = "16313";
|
||||
version = "1.11.5";
|
||||
|
||||
src = fetchsvn {
|
||||
url = "http://svn.clozure.com/publicsvn/openmcl/release/${version}/${cfg.arch}/ccl";
|
||||
rev = revision;
|
||||
src = fetchurl {
|
||||
url = "https://github.com/Clozure/ccl/releases/download/v${version}/ccl-${version}-${cfg.arch}.tar.gz";
|
||||
sha256 = cfg.sha256;
|
||||
};
|
||||
|
||||
patches = fetchpatch {
|
||||
name = "ccl-1.11-glibc-2.26.patch";
|
||||
url = https://patch-diff.githubusercontent.com/raw/Clozure/ccl/pull/80.patch;
|
||||
sha256 = "02v6287w0nppfpvkn9dyd5rvq2zkgd47ia9gs17hrww2hgzr6agd";
|
||||
};
|
||||
|
||||
buildInputs = [ gcc glibc m4 ];
|
||||
|
||||
CCL_RUNTIME = cfg.runtime;
|
||||
@@ -52,7 +44,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace lisp-kernel/${CCL_KERNEL}/Makefile \
|
||||
--replace "svnversion" "echo ${revision}" \
|
||||
--replace "/bin/rm" "${coreutils}/bin/rm" \
|
||||
--replace "/bin/echo" "${coreutils}/bin/echo"
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchgit, coreutils, ncurses, libX11 }:
|
||||
{ stdenv, fetchgit, coreutils, cctools, ncurses, libiconv, libX11 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "chez-scheme-${version}";
|
||||
@@ -12,8 +12,9 @@ stdenv.mkDerivation rec {
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
buildInputs = [ ncurses libX11 ];
|
||||
nativeBuildInputs = [ coreutils ] ++ stdenv.lib.optional stdenv.isDarwin cctools;
|
||||
|
||||
buildInputs = [ ncurses libiconv libX11 ];
|
||||
|
||||
/* We patch out a very annoying 'feature' in ./configure, which
|
||||
** tries to use 'git' to update submodules.
|
||||
@@ -27,11 +28,14 @@ stdenv.mkDerivation rec {
|
||||
--replace "git submodule init && git submodule update || exit 1" "true"
|
||||
|
||||
substituteInPlace ./workarea \
|
||||
--replace "/bin/ln" "${coreutils}/bin/ln" \
|
||||
--replace "/bin/cp" "${coreutils}/bin/cp"
|
||||
--replace "/bin/ln" ln \
|
||||
--replace "/bin/cp" cp
|
||||
|
||||
substituteInPlace ./makefiles/installsh \
|
||||
--replace "/usr/bin/true" "${coreutils}/bin/true"
|
||||
|
||||
substituteInPlace zlib/configure \
|
||||
--replace "/usr/bin/libtool" libtool
|
||||
'';
|
||||
|
||||
/* Don't use configureFlags, since that just implicitly appends
|
||||
@@ -42,11 +46,13 @@ stdenv.mkDerivation rec {
|
||||
./configure --threads --installprefix=$out --installman=$out/share/man
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
description = "A powerful and incredibly fast R6RS Scheme compiler";
|
||||
homepage = "http://www.scheme.com";
|
||||
license = stdenv.lib.licenses.asl20;
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
maintainers = with stdenv.lib.maintainers; [ thoughtpolice ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,167 +0,0 @@
|
||||
{ stdenv, fetchFromGitHub
|
||||
, makeWrapper, unzip, which
|
||||
, curl, tzdata
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "dmd-${version}";
|
||||
# This is the last version of dmd which is buildable without a D compiler.
|
||||
# So we use this as a bootstrap version.
|
||||
# The DMD frontend has been ported to D in 2.069.0 but idgen was already
|
||||
# ported in 2.068.0.
|
||||
version = "2.067.1";
|
||||
|
||||
srcs = [
|
||||
(fetchFromGitHub {
|
||||
owner = "dlang";
|
||||
repo = "dmd";
|
||||
rev = "v${version}";
|
||||
sha256 = "0fm29lg8axfmzdaj0y6vg70lhwb5d9rv4aavnvdd15xjschinlcz";
|
||||
name = "dmd-v${version}-src";
|
||||
})
|
||||
(fetchFromGitHub {
|
||||
owner = "dlang";
|
||||
repo = "druntime";
|
||||
rev = "v${version}";
|
||||
sha256 = "1n2qfw9kmnql0fk2nxikispqs7vh85nhvyyr00fk227n9lgnqf02";
|
||||
name = "druntime-v${version}-src";
|
||||
})
|
||||
(fetchFromGitHub {
|
||||
owner = "dlang";
|
||||
repo = "phobos";
|
||||
rev = "v${version}";
|
||||
sha256 = "0fywgds9xvjcgnqxmpwr67p3wi2m535619pvj159cgwv5y0nr3p1";
|
||||
name = "phobos-v${version}-src";
|
||||
})
|
||||
];
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
postUnpack = ''
|
||||
mv dmd-v${version}-src dmd
|
||||
mv druntime-v${version}-src druntime
|
||||
mv phobos-v${version}-src phobos
|
||||
'';
|
||||
|
||||
# Compile with PIC to prevent colliding modules with binutils 2.28.
|
||||
# https://issues.dlang.org/show_bug.cgi?id=17375
|
||||
usePIC = "-fPIC";
|
||||
ROOT_HOME_DIR = "$(echo ~root)";
|
||||
|
||||
postPatch = ''
|
||||
# Ugly hack so the dlopen call has a chance to succeed.
|
||||
# https://issues.dlang.org/show_bug.cgi?id=15391
|
||||
substituteInPlace phobos/std/net/curl.d \
|
||||
--replace libcurl.so ${curl.out}/lib/libcurl.so
|
||||
|
||||
# Ugly hack to fix the hardcoded path to zoneinfo in the source file.
|
||||
# https://issues.dlang.org/show_bug.cgi?id=15391
|
||||
substituteInPlace phobos/std/datetime.d \
|
||||
--replace /usr/share/zoneinfo/ ${tzdata}/share/zoneinfo/
|
||||
|
||||
substituteInPlace druntime/test/shared/Makefile \
|
||||
--replace "DFLAGS:=" "DFLAGS:=${usePIC} "
|
||||
|
||||
# phobos uses curl, so we need to patch the path to the lib.
|
||||
substituteInPlace phobos/posix.mak \
|
||||
--replace "-soname=libcurl.so.4" "-soname=${curl.out}/lib/libcurl.so.4"
|
||||
|
||||
# Use proper C++ compiler
|
||||
substituteInPlace dmd/src/posix.mak \
|
||||
--replace g++ $CXX
|
||||
''
|
||||
|
||||
+ stdenv.lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
substituteInPlace dmd/src/root/port.c \
|
||||
--replace "#include <bits/mathdef.h>" "#include <complex.h>"
|
||||
|
||||
# See https://github.com/NixOS/nixpkgs/issues/29443
|
||||
substituteInPlace phobos/std/path.d \
|
||||
--replace "\"/root" "\"${ROOT_HOME_DIR}"
|
||||
''
|
||||
|
||||
+ stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
substituteInPlace dmd/src/posix.mak \
|
||||
--replace MACOSX_DEPLOYMENT_TARGET MACOSX_DEPLOYMENT_TARGET_
|
||||
|
||||
# Was not able to compile on darwin due to "__inline_isnanl"
|
||||
# being undefined.
|
||||
substituteInPlace dmd/src/root/port.c --replace __inline_isnanl __inline_isnan
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ makeWrapper unzip which ];
|
||||
buildInputs = [ curl tzdata ];
|
||||
|
||||
# Buid and install are based on http://wiki.dlang.org/Building_DMD
|
||||
buildPhase = ''
|
||||
cd dmd
|
||||
make -f posix.mak INSTALL_DIR=$out
|
||||
export DMD=$PWD/src/dmd
|
||||
cd ../druntime
|
||||
make -f posix.mak PIC=${usePIC} INSTALL_DIR=$out DMD=$DMD
|
||||
cd ../phobos
|
||||
make -f posix.mak PIC=${usePIC} INSTALL_DIR=$out DMD=$DMD
|
||||
cd ..
|
||||
'';
|
||||
|
||||
# disable check phase because some tests are not working with sandboxing
|
||||
doCheck = false;
|
||||
|
||||
checkPhase = ''
|
||||
cd dmd
|
||||
export DMD=$PWD/src/dmd
|
||||
cd ../druntime
|
||||
make -f posix.mak unittest PIC=${usePIC} DMD=$DMD BUILD=release
|
||||
cd ../phobos
|
||||
make -f posix.mak unittest PIC=${usePIC} DMD=$DMD BUILD=release
|
||||
cd ..
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
cd dmd
|
||||
mkdir $out
|
||||
mkdir $out/bin
|
||||
cp $PWD/src/dmd $out/bin
|
||||
mkdir -p $out/share/man/man1
|
||||
mkdir -p $out/share/man/man5
|
||||
cp -r docs/man/man1/* $out/share/man/man1/
|
||||
cp -r docs/man/man5/* $out/share/man/man5/
|
||||
|
||||
cd ../druntime
|
||||
mkdir $out/include
|
||||
mkdir $out/include/d2
|
||||
cp -r import/* $out/include/d2
|
||||
|
||||
cd ../phobos
|
||||
mkdir $out/lib
|
||||
${
|
||||
let bits = builtins.toString stdenv.hostPlatform.parsed.cpu.bits;
|
||||
osname = if stdenv.hostPlatform.isDarwin then "osx" else stdenv.hostPlatform.parsed.kernel.name;
|
||||
extension = if stdenv.hostPlatform.isDarwin then "a" else "{a,so}"; in
|
||||
"cp generated/${osname}/release/${bits}/libphobos2.${extension} $out/lib"
|
||||
}
|
||||
|
||||
cp -r std $out/include/d2
|
||||
cp -r etc $out/include/d2
|
||||
|
||||
wrapProgram $out/bin/dmd \
|
||||
--prefix PATH ":" "${stdenv.cc}/bin" \
|
||||
--set-default CC "$CC"
|
||||
|
||||
cd $out/bin
|
||||
tee dmd.conf << EOF
|
||||
[Environment]
|
||||
DFLAGS=-I$out/include/d2 -L-L$out/lib ${stdenv.lib.optionalString (!stdenv.cc.isClang) "-L--export-dynamic"} -fPIC
|
||||
EOF
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Official reference compiler for the D language";
|
||||
homepage = http://dlang.org/;
|
||||
# Everything is now Boost licensed, even the backend.
|
||||
# https://github.com/dlang/dmd/pull/6680
|
||||
license = licenses.boost;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,173 +1,289 @@
|
||||
{ stdenv, fetchFromGitHub
|
||||
{ stdenv, fetchFromGitHub, overrideCC, gcc5
|
||||
, makeWrapper, unzip, which
|
||||
, curl, tzdata, gdb, darwin
|
||||
# Versions 2.070.2 and up require a working dmd compiler to build:
|
||||
, bootstrapDmd }:
|
||||
, callPackage
|
||||
, bootstrapVersion ? false
|
||||
, version ? "2.075.1"
|
||||
, dmdSha256 ? "0kq6r8rcghvzk5jcphg89l85rg734s29bssd2rcw3fygx0k9a9k5"
|
||||
, druntimeSha256 ? "0idn2v1lmp7hl637g3i7pdfj9mjk4sclkz4cm77nl8873k2fhk8j"
|
||||
, phobosSha256 ? "1a7q5fd15yspgs5plxgx54jyrcwgzlyw3rahmz04jd2s5h56dj04"
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "dmd-${version}";
|
||||
version = "2.075.1";
|
||||
let
|
||||
|
||||
srcs = [
|
||||
(fetchFromGitHub {
|
||||
owner = "dlang";
|
||||
repo = "dmd";
|
||||
rev = "v${version}";
|
||||
sha256 = "0kq6r8rcghvzk5jcphg89l85rg734s29bssd2rcw3fygx0k9a9k5";
|
||||
name = "dmd-v${version}-src";
|
||||
})
|
||||
(fetchFromGitHub {
|
||||
owner = "dlang";
|
||||
repo = "druntime";
|
||||
rev = "v${version}";
|
||||
sha256 = "0idn2v1lmp7hl637g3i7pdfj9mjk4sclkz4cm77nl8873k2fhk8j";
|
||||
name = "druntime-v${version}-src";
|
||||
})
|
||||
(fetchFromGitHub {
|
||||
owner = "dlang";
|
||||
repo = "phobos";
|
||||
rev = "v${version}";
|
||||
sha256 = "1a7q5fd15yspgs5plxgx54jyrcwgzlyw3rahmz04jd2s5h56dj04";
|
||||
name = "phobos-v${version}-src";
|
||||
})
|
||||
];
|
||||
bootstrapDmd = if !bootstrapVersion then
|
||||
# Versions 2.070.2 and up require a working dmd compiler to build so we just
|
||||
# use the last dmd without any D code to bootstrap the actual build.
|
||||
callPackage ./default.nix {
|
||||
stdenv = if stdenv.hostPlatform.isDarwin then
|
||||
stdenv
|
||||
else
|
||||
# Doesn't build with gcc6 on linux
|
||||
overrideCC stdenv gcc5;
|
||||
bootstrapVersion = true;
|
||||
version = "2.067.1";
|
||||
dmdSha256 = "0fm29lg8axfmzdaj0y6vg70lhwb5d9rv4aavnvdd15xjschinlcz";
|
||||
druntimeSha256 = "1n2qfw9kmnql0fk2nxikispqs7vh85nhvyyr00fk227n9lgnqf02";
|
||||
phobosSha256 = "0fywgds9xvjcgnqxmpwr67p3wi2m535619pvj159cgwv5y0nr3p1";
|
||||
}
|
||||
else
|
||||
"";
|
||||
|
||||
sourceRoot = ".";
|
||||
dmdBuild = stdenv.mkDerivation rec {
|
||||
name = "dmdBuild-${version}";
|
||||
inherit version;
|
||||
|
||||
postUnpack = ''
|
||||
mv dmd-v${version}-src dmd
|
||||
mv druntime-v${version}-src druntime
|
||||
mv phobos-v${version}-src phobos
|
||||
enableParallelBuilding = true;
|
||||
|
||||
# Remove cppa test for now because it doesn't work.
|
||||
rm dmd/test/runnable/cppa.d
|
||||
rm dmd/test/runnable/extra-files/cppb.cpp
|
||||
'';
|
||||
srcs = [
|
||||
(fetchFromGitHub {
|
||||
owner = "dlang";
|
||||
repo = "dmd";
|
||||
rev = "v${version}";
|
||||
sha256 = dmdSha256;
|
||||
name = "dmd";
|
||||
})
|
||||
(fetchFromGitHub {
|
||||
owner = "dlang";
|
||||
repo = "druntime";
|
||||
rev = "v${version}";
|
||||
sha256 = druntimeSha256;
|
||||
name = "druntime";
|
||||
})
|
||||
(fetchFromGitHub {
|
||||
owner = "dlang";
|
||||
repo = "phobos";
|
||||
rev = "v${version}";
|
||||
sha256 = phobosSha256;
|
||||
name = "phobos";
|
||||
})
|
||||
];
|
||||
|
||||
# Compile with PIC to prevent colliding modules with binutils 2.28.
|
||||
# https://issues.dlang.org/show_bug.cgi?id=17375
|
||||
usePIC = "-fPIC";
|
||||
sourceRoot = ".";
|
||||
|
||||
postPatch = ''
|
||||
# Ugly hack so the dlopen call has a chance to succeed.
|
||||
# https://issues.dlang.org/show_bug.cgi?id=15391
|
||||
substituteInPlace phobos/std/net/curl.d \
|
||||
--replace libcurl.so ${curl.out}/lib/libcurl.so
|
||||
postUnpack = ''
|
||||
patchShebangs .
|
||||
|
||||
# Ugly hack to fix the hardcoded path to zoneinfo in the source file.
|
||||
# https://issues.dlang.org/show_bug.cgi?id=15391
|
||||
substituteInPlace phobos/std/datetime/timezone.d \
|
||||
--replace /usr/share/zoneinfo/ ${tzdata}/share/zoneinfo/
|
||||
|
||||
substituteInPlace druntime/test/common.mak \
|
||||
--replace "DFLAGS:=" "DFLAGS:=${usePIC} "
|
||||
|
||||
# phobos uses curl, so we need to patch the path to the lib.
|
||||
substituteInPlace phobos/posix.mak \
|
||||
--replace "-soname=libcurl.so.4" "-soname=${curl.out}/lib/libcurl.so.4"
|
||||
|
||||
# Use proper C++ compiler
|
||||
substituteInPlace dmd/posix.mak \
|
||||
--replace g++ $CXX
|
||||
''
|
||||
|
||||
+ stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
substituteInPlace dmd/posix.mak \
|
||||
--replace MACOSX_DEPLOYMENT_TARGET MACOSX_DEPLOYMENT_TARGET_
|
||||
# Remove cppa test for now because it doesn't work.
|
||||
rm dmd/test/runnable/cppa.d
|
||||
rm dmd/test/runnable/extra-files/cppb.cpp
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ bootstrapDmd makeWrapper unzip which gdb ]
|
||||
# Compile with PIC to prevent colliding modules with binutils 2.28.
|
||||
# https://issues.dlang.org/show_bug.cgi?id=17375
|
||||
usePIC = "-fPIC";
|
||||
ROOT_HOME_DIR = "$(echo ~root)";
|
||||
|
||||
++ stdenv.lib.optional stdenv.hostPlatform.isDarwin (with darwin.apple_sdk.frameworks; [
|
||||
Foundation
|
||||
]);
|
||||
datetimePath = if bootstrapVersion then
|
||||
"phobos/std/datetime.d"
|
||||
else
|
||||
"phobos/std/datetime/timezone.d";
|
||||
|
||||
buildInputs = [ curl tzdata ];
|
||||
phobosPatches = ''
|
||||
substituteInPlace ${datetimePath} \
|
||||
--replace "import core.time;" "import core.time;import std.path;"
|
||||
|
||||
# Buid and install are based on http://wiki.dlang.org/Building_DMD
|
||||
buildPhase = ''
|
||||
cd dmd
|
||||
make -j$NIX_BUILD_CORES -f posix.mak INSTALL_DIR=$out
|
||||
${
|
||||
let bits = builtins.toString stdenv.hostPlatform.parsed.cpu.bits;
|
||||
osname = if stdenv.hostPlatform.isDarwin then "osx" else stdenv.hostPlatform.parsed.kernel.name; in
|
||||
"export DMD=$PWD/generated/${osname}/release/${bits}/dmd"
|
||||
}
|
||||
cd ../druntime
|
||||
make -j$NIX_BUILD_CORES -f posix.mak PIC=${usePIC} INSTALL_DIR=$out DMD=$DMD
|
||||
cd ../phobos
|
||||
make -j$NIX_BUILD_CORES -f posix.mak PIC=${usePIC} INSTALL_DIR=$out DMD=$DMD
|
||||
cd ..
|
||||
'';
|
||||
substituteInPlace ${datetimePath} \
|
||||
--replace "tzName == \"leapseconds\"" "baseName(tzName) == \"leapseconds\""
|
||||
|
||||
# disable check phase because some tests are not working with sandboxing
|
||||
doCheck = false;
|
||||
# Ugly hack to fix the hardcoded path to zoneinfo in the source file.
|
||||
# https://issues.dlang.org/show_bug.cgi?id=15391
|
||||
substituteInPlace ${datetimePath} \
|
||||
--replace /usr/share/zoneinfo/ ${tzdata}/share/zoneinfo/
|
||||
|
||||
checkPhase = ''
|
||||
cd dmd
|
||||
${
|
||||
let bits = builtins.toString stdenv.hostPlatform.parsed.cpu.bits;
|
||||
osname = if stdenv.hostPlatform.isDarwin then "osx" else stdenv.hostPlatform.parsed.kernel.name; in
|
||||
"export DMD=$PWD/generated/${osname}/release/${bits}/dmd"
|
||||
}
|
||||
make -j$NIX_BUILD_CORES -C test -f Makefile PIC=${usePIC} DMD=$DMD BUILD=release SHARED=0
|
||||
cd ../druntime
|
||||
make -j$NIX_BUILD_CORES -f posix.mak unittest PIC=${usePIC} DMD=$DMD BUILD=release
|
||||
cd ../phobos
|
||||
make -j$NIX_BUILD_CORES -f posix.mak unittest PIC=${usePIC} DMD=$DMD BUILD=release
|
||||
cd ..
|
||||
'';
|
||||
# Ugly hack so the dlopen call has a chance to succeed.
|
||||
# https://issues.dlang.org/show_bug.cgi?id=15391
|
||||
substituteInPlace phobos/std/net/curl.d \
|
||||
--replace libcurl.so ${curl.out}/lib/libcurl.so
|
||||
|
||||
# phobos uses curl, so we need to patch the path to the lib.
|
||||
substituteInPlace phobos/posix.mak \
|
||||
--replace "-soname=libcurl.so.4" "-soname=${curl.out}/lib/libcurl.so.4"
|
||||
|
||||
''
|
||||
|
||||
+ stdenv.lib.optionalString (bootstrapVersion) ''
|
||||
substituteInPlace ${datetimePath} \
|
||||
--replace "import std.traits;" "import std.traits;import std.path;"
|
||||
|
||||
substituteInPlace ${datetimePath} \
|
||||
--replace "tzName == \"+VERSION\"" "baseName(tzName) == \"leapseconds\" || tzName == \"+VERSION\""
|
||||
''
|
||||
|
||||
+ stdenv.lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
# See https://github.com/NixOS/nixpkgs/issues/29443
|
||||
substituteInPlace phobos/std/path.d \
|
||||
--replace "\"/root" "\"${ROOT_HOME_DIR}"
|
||||
'';
|
||||
|
||||
dmdPath = if bootstrapVersion then
|
||||
"dmd/src"
|
||||
else
|
||||
"dmd";
|
||||
|
||||
postPatch = ''
|
||||
# Use proper C++ compiler
|
||||
substituteInPlace ${dmdPath}/posix.mak \
|
||||
--replace g++ $CXX
|
||||
|
||||
# TODO
|
||||
substituteInPlace druntime/src/core/memory.d \
|
||||
--replace "assert(z is null);" "//assert(z is null);"
|
||||
''
|
||||
|
||||
+ stdenv.lib.optionalString (!bootstrapVersion) ''
|
||||
substituteInPlace druntime/test/common.mak \
|
||||
--replace "DFLAGS:=" "DFLAGS:=${usePIC} "
|
||||
''
|
||||
|
||||
+ phobosPatches
|
||||
|
||||
+ stdenv.lib.optionalString (stdenv.hostPlatform.isLinux && bootstrapVersion) ''
|
||||
substituteInPlace ${dmdPath}/root/port.c \
|
||||
--replace "#include <bits/mathdef.h>" "#include <complex.h>"
|
||||
''
|
||||
|
||||
+ stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
substituteInPlace ${dmdPath}/posix.mak \
|
||||
--replace MACOSX_DEPLOYMENT_TARGET MACOSX_DEPLOYMENT_TARGET_
|
||||
''
|
||||
|
||||
+ stdenv.lib.optionalString (stdenv.hostPlatform.isDarwin && bootstrapVersion) ''
|
||||
# Was not able to compile on darwin due to "__inline_isnanl"
|
||||
# being undefined.
|
||||
substituteInPlace ${dmdPath}/root/port.c --replace __inline_isnanl __inline_isnan
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ bootstrapDmd makeWrapper unzip which gdb ]
|
||||
|
||||
++ stdenv.lib.optional stdenv.hostPlatform.isDarwin (with darwin.apple_sdk.frameworks; [
|
||||
Foundation
|
||||
]);
|
||||
|
||||
buildInputs = [ curl tzdata ];
|
||||
|
||||
bits = builtins.toString stdenv.hostPlatform.parsed.cpu.bits;
|
||||
osname = if stdenv.hostPlatform.isDarwin then
|
||||
"osx"
|
||||
else
|
||||
stdenv.hostPlatform.parsed.kernel.name;
|
||||
top = "$(echo $NIX_BUILD_TOP)";
|
||||
pathToDmd = if bootstrapVersion then
|
||||
"${top}/dmd/src/dmd"
|
||||
else
|
||||
"${top}/dmd/generated/${osname}/release/${bits}/dmd";
|
||||
|
||||
# Buid and install are based on http://wiki.dlang.org/Building_DMD
|
||||
buildPhase = ''
|
||||
cd dmd
|
||||
make -j$NIX_BUILD_CORES -f posix.mak INSTALL_DIR=$out
|
||||
cd ../druntime
|
||||
make -j$NIX_BUILD_CORES -f posix.mak PIC=1 INSTALL_DIR=$out DMD=${pathToDmd}
|
||||
cd ../phobos
|
||||
make -j$NIX_BUILD_CORES -f posix.mak PIC=1 INSTALL_DIR=$out DMD=${pathToDmd}
|
||||
cd ..
|
||||
'';
|
||||
|
||||
doCheck = !bootstrapVersion;
|
||||
|
||||
checkPhase = ''
|
||||
cd dmd
|
||||
make -j$NIX_BUILD_CORES -C test -f Makefile PIC=1 DMD=${pathToDmd} BUILD=release SHARED=0 SHELL=$SHELL
|
||||
cd ../druntime
|
||||
make -j$NIX_BUILD_CORES -f posix.mak unittest PIC=1 DMD=${pathToDmd} BUILD=release
|
||||
cd ..
|
||||
'';
|
||||
|
||||
extension = if stdenv.hostPlatform.isDarwin then "a" else "{a,so}";
|
||||
|
||||
installPhase = ''
|
||||
cd dmd
|
||||
mkdir $out
|
||||
mkdir $out/bin
|
||||
cp ${pathToDmd} $out/bin
|
||||
|
||||
mkdir -p $out/share/man/man1
|
||||
mkdir -p $out/share/man/man5
|
||||
cp -r docs/man/man1/* $out/share/man/man1/
|
||||
cp -r docs/man/man5/* $out/share/man/man5/
|
||||
|
||||
cd ../druntime
|
||||
mkdir $out/include
|
||||
mkdir $out/include/d2
|
||||
cp -r import/* $out/include/d2
|
||||
|
||||
cd ../phobos
|
||||
mkdir $out/lib
|
||||
cp generated/${osname}/release/${bits}/libphobos2.${extension} $out/lib
|
||||
|
||||
cp -r std $out/include/d2
|
||||
cp -r etc $out/include/d2
|
||||
|
||||
wrapProgram $out/bin/dmd \
|
||||
--prefix PATH ":" "${stdenv.cc}/bin" \
|
||||
--set-default CC "$CC"
|
||||
|
||||
cd $out/bin
|
||||
tee dmd.conf << EOF
|
||||
[Environment]
|
||||
DFLAGS=-I$out/include/d2 -L-L$out/lib ${stdenv.lib.optionalString (!stdenv.cc.isClang) "-L--export-dynamic"} -fPIC
|
||||
EOF
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Official reference compiler for the D language";
|
||||
homepage = http://dlang.org/;
|
||||
# Everything is now Boost licensed, even the backend.
|
||||
# https://github.com/dlang/dmd/pull/6680
|
||||
license = licenses.boost;
|
||||
maintainers = with maintainers; [ ThomasMader ];
|
||||
platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
|
||||
};
|
||||
};
|
||||
|
||||
# Need to test Phobos in a fixed-output derivation, otherwise the
|
||||
# network stuff in Phobos would fail if sandbox mode is enabled.
|
||||
phobosUnittests = stdenv.mkDerivation rec {
|
||||
name = "phobosUnittests-${version}";
|
||||
version = dmdBuild.version;
|
||||
|
||||
enableParallelBuilding = dmdBuild.enableParallelBuilding;
|
||||
preferLocalBuild = true;
|
||||
inputString = dmdBuild.outPath;
|
||||
outputHashAlgo = "sha256";
|
||||
outputHash = builtins.hashString "sha256" inputString;
|
||||
|
||||
srcs = dmdBuild.srcs;
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
postPatch = dmdBuild.phobosPatches;
|
||||
|
||||
nativeBuildInputs = dmdBuild.nativeBuildInputs;
|
||||
buildInputs = dmdBuild.buildInputs;
|
||||
|
||||
buildPhase = ''
|
||||
cd phobos
|
||||
make -j$NIX_BUILD_CORES -f posix.mak unittest PIC=1 DMD=${dmdBuild}/bin/dmd BUILD=release
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
echo -n $inputString > $out
|
||||
'';
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
inherit phobosUnittests;
|
||||
name = "dmd-${version}";
|
||||
phases = "installPhase";
|
||||
buildInputs = dmdBuild.buildInputs;
|
||||
|
||||
installPhase = ''
|
||||
cd dmd
|
||||
mkdir $out
|
||||
mkdir $out/bin
|
||||
${
|
||||
let bits = builtins.toString stdenv.hostPlatform.parsed.cpu.bits;
|
||||
osname = if stdenv.hostPlatform.isDarwin then "osx" else stdenv.hostPlatform.parsed.kernel.name; in
|
||||
"cp $PWD/generated/${osname}/release/${bits}/dmd $out/bin"
|
||||
}
|
||||
|
||||
mkdir -p $out/share/man/man1
|
||||
mkdir -p $out/share/man/man5
|
||||
cp -r docs/man/man1/* $out/share/man/man1/
|
||||
cp -r docs/man/man5/* $out/share/man/man5/
|
||||
|
||||
cd ../druntime
|
||||
mkdir $out/include
|
||||
mkdir $out/include/d2
|
||||
cp -r import/* $out/include/d2
|
||||
|
||||
cd ../phobos
|
||||
mkdir $out/lib
|
||||
${
|
||||
let bits = builtins.toString stdenv.hostPlatform.parsed.cpu.bits;
|
||||
osname = if stdenv.hostPlatform.isDarwin then "osx" else stdenv.hostPlatform.parsed.kernel.name;
|
||||
extension = if stdenv.hostPlatform.isDarwin then "a" else "{a,so}"; in
|
||||
"cp generated/${osname}/release/${bits}/libphobos2.${extension} $out/lib"
|
||||
}
|
||||
|
||||
cp -r std $out/include/d2
|
||||
cp -r etc $out/include/d2
|
||||
|
||||
wrapProgram $out/bin/dmd \
|
||||
--prefix PATH ":" "${stdenv.cc}/bin" \
|
||||
--set-default CC "$CC"
|
||||
|
||||
cd $out/bin
|
||||
tee dmd.conf << EOF
|
||||
[Environment]
|
||||
DFLAGS=-I$out/include/d2 -L-L$out/lib ${stdenv.lib.optionalString (!stdenv.cc.isClang) "-L--export-dynamic"} -fPIC
|
||||
EOF
|
||||
mkdir $out
|
||||
cp -r --symbolic-link ${dmdBuild}/* $out/
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Official reference compiler for the D language";
|
||||
homepage = http://dlang.org/;
|
||||
# Everything is now Boost licensed, even the backend.
|
||||
# https://github.com/dlang/dmd/pull/6680
|
||||
license = licenses.boost;
|
||||
maintainers = with maintainers; [ ThomasMader ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
meta = dmdBuild.meta;
|
||||
}
|
||||
|
||||
|
||||
@@ -72,7 +72,9 @@ let
|
||||
where foo is a tag for a new version, for example "0.3.1-alpha".
|
||||
*/
|
||||
elm-format = self.callPackage ./packages/elm-format.nix { };
|
||||
|
||||
elm-interface-to-json = self.callPackage ./packages/elm-interface-to-json.nix {
|
||||
aeson-pretty = self.aeson-pretty_0_7_2;
|
||||
};
|
||||
};
|
||||
in elmPkgs // {
|
||||
inherit elmPkgs;
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
{ mkDerivation, aeson, aeson-pretty, base, binary, bytestring
|
||||
, concatenative, containers, directory, either, elm-compiler
|
||||
, filemanip, filepath, indents, optparse-applicative, parsec
|
||||
, stdenv, text, transformers, fetchgit
|
||||
}:
|
||||
mkDerivation {
|
||||
pname = "elm-interface-to-json";
|
||||
version = "0.1.0.0";
|
||||
src = fetchgit {
|
||||
url = "https://github.com/stoeffel/elm-interface-to-json";
|
||||
sha256 = "1izc78w91m7nrc9i2b3lgy3kyjsy4d5mkkblx96ws0bp3dpm5f9k";
|
||||
rev = "9884c1c997a55f11cf7c3d99a8afa72cf2e97323";
|
||||
};
|
||||
isLibrary = false;
|
||||
isExecutable = true;
|
||||
jailbreak = true;
|
||||
executableHaskellDepends = [
|
||||
aeson aeson-pretty base binary bytestring concatenative containers
|
||||
directory either elm-compiler filemanip filepath indents
|
||||
optparse-applicative parsec text transformers
|
||||
];
|
||||
homepage = "https://github.com/githubuser/elm-interface-to-json#readme";
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
}
|
||||
@@ -8,10 +8,10 @@ stdenv, fetchurl
|
||||
let
|
||||
s =
|
||||
rec {
|
||||
version = "1.6";
|
||||
versionSuffix = ".0-0";
|
||||
version = "1.8.0";
|
||||
versionSuffix = "";
|
||||
url = "mirror://sourceforge/lazarus/Lazarus%20Zip%20_%20GZip/Lazarus%20${version}/lazarus-${version}${versionSuffix}.tar.gz";
|
||||
sha256 = "1a1w9yibi0rsr51bl7csnq6mr59x0934850kiabs80nr3sz05knb";
|
||||
sha256 = "0i58ngrr1vjyazirfmz0cgikglc02z1m0gcrsfw9awpi3ax8h21j";
|
||||
name = "lazarus-${version}";
|
||||
};
|
||||
buildInputs = [
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gambit-${version}";
|
||||
version = "4.8.8-300db59";
|
||||
version = "4.8.8-415-g29ed48bb";
|
||||
bootstrap = import ./bootstrap.nix ( pkgs );
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/feeley/gambit.git";
|
||||
rev = "300db59e1d3b66bcd597f617849df0274d2a4472";
|
||||
sha256 = "1mhy49lasakgvdaswkxasdssik11lx3hfx4h1gs2b6881488ssdp";
|
||||
rev = "29ed48bb688e8302d2430b5d24a2fc7c2039aeec";
|
||||
sha256 = "1h3kmczvjir0pi6cmqa2bsc09n68jhw0bxq7m6w4b1f0xvgvn3fr";
|
||||
};
|
||||
|
||||
buildInputs = [ openssl git autoconf bootstrap ];
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gerbil-${version}";
|
||||
|
||||
version = "0.12-DEV-777-gd855915";
|
||||
version = "0.12-DEV-836-gcde6802";
|
||||
src = fetchgit {
|
||||
url = "https://github.com/vyzo/gerbil.git";
|
||||
rev = "9db6187dc996eec4087f83b86339e7b17bb69bad";
|
||||
sha256 = "1hqmsy77d62dvil3az4vdr0rmwvxhinjl1dbcxzamz2c2kcjv1jg";
|
||||
rev = "2904b0014fac344409d0ae2ba5835d0e67ac83b5";
|
||||
sha256 = "1nnirqdd11n6pkvidnf8pb39m45jjnpmwj2qy62di024r7ha3y18";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
@@ -52,9 +52,9 @@ stdenv.mkDerivation rec {
|
||||
export GERBIL_HOME=$out
|
||||
case "\$1" in -:*) GSIOPTIONS=\$1 ; shift ;; esac
|
||||
if [[ \$# = 0 ]] ; then
|
||||
${gambit}/bin/gsi \$GSIOPTIONS \$GERBIL_HOME/lib/gxi-init \$GERBIL_HOME/lib/gxi-interactive - ;
|
||||
exec ${gambit}/bin/gsi \$GSIOPTIONS \$GERBIL_HOME/lib/gxi-init \$GERBIL_HOME/lib/gxi-interactive - ;
|
||||
else
|
||||
${gambit}/bin/gsi \$GSIOPTIONS \$GERBIL_HOME/lib/gxi-init "\$@"
|
||||
exec ${gambit}/bin/gsi \$GSIOPTIONS \$GERBIL_HOME/lib/gxi-init "\$@"
|
||||
fi
|
||||
EOF
|
||||
runHook postInstall
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
# If enabled GHC will be build with the GPL-free but slower integer-simple
|
||||
# library instead of the faster but GPLed integer-gmp library.
|
||||
, enableIntegerSimple ? false, gmp
|
||||
, version ? "8.3.20170808"
|
||||
, version ? "8.5.20171209"
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -13,7 +13,7 @@ let
|
||||
|
||||
commonBuildInputs = [ ghc perl autoconf automake happy alex python3 ];
|
||||
|
||||
rev = "14457cf6a50f708eecece8f286f08687791d51f7";
|
||||
rev = "4335c07ca7e64624819b22644d7591853826bd75";
|
||||
|
||||
commonPreConfigure = ''
|
||||
echo ${version} >VERSION
|
||||
@@ -34,7 +34,7 @@ in stdenv.mkDerivation (rec {
|
||||
src = fetchgit {
|
||||
url = "git://git.haskell.org/ghc.git";
|
||||
inherit rev;
|
||||
sha256 = "08vj9ca7rq7rv8pjfl14fg2lg9d6zisrwlq6bi5vzr006816dy8y";
|
||||
sha256 = "19csad94sk0bw2nj97ppmnwh4c193jg0jmg5w2sx9rqm9ih4yg85";
|
||||
};
|
||||
|
||||
postPatch = "patchShebangs .";
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{ stdenv, fetchFromGitHub, tzdata, iana-etc, go_bootstrap, runCommand, writeScriptBin
|
||||
, perl, which, pkgconfig, patch, fetchpatch
|
||||
, perl, which, pkgconfig, patch, procps
|
||||
, pcre, cacert, llvm
|
||||
, Security, Foundation, bash
|
||||
, makeWrapper, git, subversion, mercurial, bazaar }:
|
||||
@@ -35,7 +35,8 @@ stdenv.mkDerivation rec {
|
||||
};
|
||||
|
||||
# perl is used for testing go vet
|
||||
nativeBuildInputs = [ perl which pkgconfig patch makeWrapper ];
|
||||
nativeBuildInputs = [ perl which pkgconfig patch makeWrapper ]
|
||||
++ optionals stdenv.isLinux [ procps ];
|
||||
buildInputs = [ pcre ]
|
||||
++ optionals stdenv.isLinux [ stdenv.glibc.out stdenv.glibc.static ];
|
||||
propagatedBuildInputs = optionals stdenv.isDarwin [ Security Foundation ];
|
||||
@@ -144,6 +145,7 @@ stdenv.mkDerivation rec {
|
||||
export GOROOT=$out/share/go
|
||||
export GOBIN=$GOROOT/bin
|
||||
export PATH=$GOBIN:$PATH
|
||||
ulimit -a
|
||||
'';
|
||||
|
||||
postConfigure = optionalString stdenv.isDarwin ''
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{ stdenv, fetchFromGitHub, tzdata, iana-etc, go_bootstrap, runCommand, writeScriptBin
|
||||
, perl, which, pkgconfig, patch, fetchpatch
|
||||
, perl, which, pkgconfig, patch, procps
|
||||
, pcre, cacert, llvm
|
||||
, Security, Foundation, bash
|
||||
, makeWrapper, git, subversion, mercurial, bazaar }:
|
||||
@@ -35,7 +35,8 @@ stdenv.mkDerivation rec {
|
||||
};
|
||||
|
||||
# perl is used for testing go vet
|
||||
nativeBuildInputs = [ perl which pkgconfig patch makeWrapper ];
|
||||
nativeBuildInputs = [ perl which pkgconfig patch makeWrapper ]
|
||||
++ optionals stdenv.isLinux [ procps ];
|
||||
buildInputs = [ pcre ]
|
||||
++ optionals stdenv.isLinux [ stdenv.glibc.out stdenv.glibc.static ];
|
||||
propagatedBuildInputs = optionals stdenv.isDarwin [ Security Foundation ];
|
||||
@@ -150,6 +151,7 @@ stdenv.mkDerivation rec {
|
||||
export GOROOT=$out/share/go
|
||||
export GOBIN=$GOROOT/bin
|
||||
export PATH=$GOBIN:$PATH
|
||||
ulimit -a
|
||||
'';
|
||||
|
||||
postConfigure = optionalString stdenv.isDarwin ''
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchgit, fetchurl, cmake, pkgconfig, boost, libunwind, libmemcached
|
||||
{ stdenv, fetchgit, cmake, pkgconfig, boost, libunwind, libmemcached
|
||||
, pcre, libevent, gd, curl, libxml2, icu, flex, bison, openssl, zlib, php
|
||||
, expat, libcap, oniguruma, libdwarf, libmcrypt, tbb, gperftools, glog, libkrb5
|
||||
, bzip2, openldap, readline, libelf, uwimap, binutils, cyrus_sasl, pam, libpng
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "hhvm-${version}";
|
||||
version = "3.21";
|
||||
version = "3.23.2";
|
||||
|
||||
# use git version since we need submodules
|
||||
src = fetchgit {
|
||||
url = "https://github.com/facebook/hhvm.git";
|
||||
rev = "56483773e2edd9e61782f1901ce40e47959e71b8";
|
||||
sha256 = "0dmdk98nv04m0fv6909gfbsxqlkckn369yi7kadhir0r7vxsj7wa";
|
||||
rev = "HHVM-${version}";
|
||||
sha256 = "1nic49j8nghx82lgvz0b95r78sqz46qaaqv4nx48p8yrj9ysnd7i";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@@ -29,10 +29,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
patches = [
|
||||
./flexible-array-members-gcc6.patch
|
||||
(fetchurl {
|
||||
url = https://github.com/facebook/hhvm/commit/b506902af2b7c53de6d6c92491c2086472292004.patch;
|
||||
sha256 = "1br7diczqks6b1xjrdsac599fc62m9l17gcx7dvkc0qj54lq7ys4";
|
||||
})
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
@@ -16,7 +16,7 @@ let drv = stdenv.mkDerivation rec {
|
||||
sha256 = "1768f02i3dxdbxn8n29d522h8v0mkgnhpb8ixzq5p54vwjmfl6md";
|
||||
}
|
||||
else
|
||||
abort "unsupported system: ${stdenv.system}";
|
||||
throw "unsupported system: ${stdenv.system}";
|
||||
|
||||
nativeBuildInputs = [ file ];
|
||||
|
||||
@@ -73,7 +73,7 @@ let drv = stdenv.mkDerivation rec {
|
||||
your own risk.
|
||||
'';
|
||||
homepage = "https://bintray.com/jetbrains/intellij-jdk/";
|
||||
licenses = licenses.gpl2;
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ edwtjo ];
|
||||
platforms = with platforms; [ "x86_64-linux" ];
|
||||
};
|
||||
|
||||
@@ -160,7 +160,6 @@ stdenv.mkDerivation rec {
|
||||
# Julia's tests require read/write access to $HOME
|
||||
preCheck = ''
|
||||
export HOME="$NIX_BUILD_TOP"
|
||||
set
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
|
||||
@@ -163,7 +163,6 @@ stdenv.mkDerivation rec {
|
||||
# Julia's tests require read/write access to $HOME
|
||||
preCheck = ''
|
||||
export HOME="$NIX_BUILD_TOP"
|
||||
set
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
|
||||
@@ -1,103 +1,261 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, llvm, dmd, curl, tzdata, python,
|
||||
lit, gdb, unzip, darwin }:
|
||||
{ stdenv, fetchgit, fetchurl, cmake, llvm, curl, tzdata
|
||||
, python, libconfig, lit, gdb, unzip, darwin, bash
|
||||
, callPackage
|
||||
, bootstrapVersion ? false
|
||||
, version ? "1.5.0"
|
||||
, ldcSha256 ? "1150sgns03vplni2wd4afk3rgw3rap8rsiipspw0rzxgki5rlr83"
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
bootstrapLdc = if !bootstrapVersion then
|
||||
# LDC 0.17.x is the last version which doesn't need a working D compiler to
|
||||
# build so we use that version to bootstrap the actual build.
|
||||
callPackage ./default.nix {
|
||||
bootstrapVersion = true;
|
||||
version = "0.17.5";
|
||||
ldcSha256 = "0200r5y8hs5yv2cx24csgyh00dlg18877b9cfblixypr6nhl19bs";
|
||||
}
|
||||
else
|
||||
"";
|
||||
|
||||
ldcBuild = stdenv.mkDerivation rec {
|
||||
name = "ldcBuild-${version}";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz";
|
||||
sha256 = ldcSha256;
|
||||
};
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
postUnpack = ''
|
||||
cd ldc-${version}-src/
|
||||
|
||||
patchShebangs .
|
||||
|
||||
# Remove cppa test for now because it doesn't work.
|
||||
rm tests/d2/dmd-testsuite/runnable/cppa.d
|
||||
rm tests/d2/dmd-testsuite/runnable/extra-files/cppb.cpp
|
||||
''
|
||||
|
||||
+ stdenv.lib.optionalString (bootstrapVersion) ''
|
||||
# ... runnable/variadic.d ()
|
||||
#Test failed. The logged output:
|
||||
#/tmp/nix-build-ldcBuild-0.17.5.drv-0/ldc-0.17.5-src/build/bin/ldmd2 -conf= -m64 -Irunnable -od/tmp/nix-build-ldcBuild-0.17.5.drv-0/ldc-0.17.5-src/build/dmd-testsuite/runnable -of/tmp/nix-build-ldcBuild-0.17.5.drv-0/ldc-0.17.5-src/build/dmd-testsuite/runnable/variadic_0 runnable/variadic.d
|
||||
#Error: integer constant expression expected instead of <cant>
|
||||
#Error: integer constant expression expected instead of <cant>
|
||||
#Error: integer constant expression expected instead of <cant>
|
||||
#Error: integer constant expression expected instead of <cant>
|
||||
#Error: integer constant expression expected instead of <cant>
|
||||
#runnable/variadic.d(84): Error: template instance variadic.Foo3!(int, int, int) error instantiating
|
||||
#
|
||||
#
|
||||
#==============================
|
||||
#Test failed: expected rc == 0, exited with rc == 1
|
||||
rm tests/d2/dmd-testsuite/runnable/variadic.d
|
||||
''
|
||||
|
||||
+ stdenv.lib.optionalString (!bootstrapVersion) ''
|
||||
# https://github.com/NixOS/nixpkgs/issues/29611
|
||||
rm tests/sanitizers/asan_*
|
||||
'';
|
||||
|
||||
ROOT_HOME_DIR = "$(echo ~root)";
|
||||
|
||||
datetimePath = if bootstrapVersion then
|
||||
"phobos/std/datetime.d"
|
||||
else
|
||||
"phobos/std/datetime/timezone.d";
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace cmake/Modules/FindLLVM.cmake \
|
||||
--replace "llvm_set(LIBRARY_DIRS" "#llvm_set(LIBRARY_DIRS"
|
||||
|
||||
substituteInPlace runtime/${datetimePath} \
|
||||
--replace "import core.time;" "import core.time;import std.path;"
|
||||
|
||||
substituteInPlace runtime/${datetimePath} \
|
||||
--replace "tzName == \"leapseconds\"" "baseName(tzName) == \"leapseconds\""
|
||||
|
||||
substituteInPlace runtime/phobos/std/net/curl.d \
|
||||
--replace libcurl.so ${curl.out}/lib/libcurl.so
|
||||
|
||||
# Ugly hack to fix the hardcoded path to zoneinfo in the source file.
|
||||
# https://issues.dlang.org/show_bug.cgi?id=15391
|
||||
substituteInPlace runtime/${datetimePath} \
|
||||
--replace /usr/share/zoneinfo/ ${tzdata}/share/zoneinfo/
|
||||
|
||||
substituteInPlace tests/d2/dmd-testsuite/Makefile \
|
||||
--replace "SHELL=/bin/bash" "SHELL=${bash}/bin/bash"
|
||||
''
|
||||
|
||||
+ stdenv.lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
# See https://github.com/NixOS/nixpkgs/issues/29443
|
||||
substituteInPlace runtime/phobos/std/path.d \
|
||||
--replace "\"/root" "\"${ROOT_HOME_DIR}"
|
||||
|
||||
# TODO
|
||||
substituteInPlace runtime/druntime/src/core/memory.d \
|
||||
--replace "assert(z is null);" "//assert(z is null);"
|
||||
''
|
||||
|
||||
+ stdenv.lib.optionalString (bootstrapVersion && stdenv.hostPlatform.isDarwin) ''
|
||||
# https://github.com/ldc-developers/ldc/pull/2306
|
||||
# Can be removed on bootstrap version > 0.17.5
|
||||
substituteInPlace gen/programs.cpp \
|
||||
--replace "gcc" "clang"
|
||||
|
||||
# Was not able to compile on darwin due to "__inline_isnanl"
|
||||
# being undefined.
|
||||
substituteInPlace dmd2/root/port.c --replace __inline_isnanl __inline_isnan
|
||||
''
|
||||
|
||||
+ stdenv.lib.optionalString (stdenv.hostPlatform.isLinux && bootstrapVersion) ''
|
||||
substituteInPlace dmd2/root/port.c \
|
||||
--replace "#include <bits/mathdef.h>" "#include <complex.h>"
|
||||
''
|
||||
|
||||
+ stdenv.lib.optionalString (bootstrapVersion) ''
|
||||
substituteInPlace runtime/${datetimePath} \
|
||||
--replace "import std.traits;" "import std.traits;import std.path;"
|
||||
|
||||
substituteInPlace runtime/${datetimePath} \
|
||||
--replace "tzName == \"+VERSION\"" "baseName(tzName) == \"leapseconds\" || tzName == \"+VERSION\""
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake llvm bootstrapLdc python lit gdb unzip ]
|
||||
|
||||
++ stdenv.lib.optional (bootstrapVersion) [
|
||||
libconfig
|
||||
]
|
||||
|
||||
++ stdenv.lib.optional stdenv.hostPlatform.isDarwin (with darwin.apple_sdk.frameworks; [
|
||||
Foundation
|
||||
]);
|
||||
|
||||
|
||||
buildInputs = [ curl tzdata stdenv.cc ];
|
||||
|
||||
preConfigure = ''
|
||||
cmakeFlagsArray=("-DINCLUDE_INSTALL_DIR=$out/include/dlang/ldc"
|
||||
"-DCMAKE_BUILD_TYPE=Release"
|
||||
"-DCMAKE_SKIP_RPATH=ON"
|
||||
"-DBUILD_SHARED_LIBS=OFF"
|
||||
"-DLDC_WITH_LLD=OFF"
|
||||
# Xcode 9.0.1 fixes that bug according to ldc release notes
|
||||
"-DRT_ARCHIVE_WITH_LDC=OFF"
|
||||
"-DLLVM_LIBRARY_DIRS=${llvm}/lib"
|
||||
)
|
||||
'';
|
||||
|
||||
|
||||
postConfigure = ''
|
||||
export DMD=$PWD/bin/ldmd2
|
||||
'';
|
||||
|
||||
makeFlags = [ "DMD=$DMD" ];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
checkPhase = ''
|
||||
# Build and run LDC D unittests.
|
||||
ctest --output-on-failure -R "ldc2-unittest"
|
||||
# Run LIT testsuite.
|
||||
ctest -V -R "lit-tests"
|
||||
# Run DMD testsuite.
|
||||
DMD_TESTSUITE_MAKE_ARGS=-j$NIX_BUILD_CORES ctest -V -R "dmd-testsuite"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "The LLVM-based D compiler";
|
||||
homepage = https://github.com/ldc-developers/ldc;
|
||||
# from https://github.com/ldc-developers/ldc/blob/master/LICENSE
|
||||
license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ];
|
||||
maintainers = with maintainers; [ ThomasMader ];
|
||||
platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
|
||||
};
|
||||
};
|
||||
|
||||
# Need to test Phobos in a fixed-output derivation, otherwise the
|
||||
# network stuff in Phobos would fail if sandbox mode is enabled.
|
||||
ldcUnittests = stdenv.mkDerivation rec {
|
||||
name = "ldcUnittests-${version}";
|
||||
|
||||
enableParallelBuilding = ldcBuild.enableParallelBuilding;
|
||||
preferLocalBuild = true;
|
||||
inputString = ldcBuild.outPath;
|
||||
outputHashAlgo = "sha256";
|
||||
outputHash = builtins.hashString "sha256" inputString;
|
||||
|
||||
src = ldcBuild.src;
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
postUnpack = ldcBuild.postUnpack;
|
||||
|
||||
postPatch = ldcBuild.postPatch;
|
||||
|
||||
nativeBuildInputs = ldcBuild.nativeBuildInputs
|
||||
|
||||
++ [
|
||||
ldcBuild
|
||||
];
|
||||
|
||||
buildInputs = ldcBuild.buildInputs;
|
||||
|
||||
preConfigure = ''
|
||||
cmakeFlagsArray=( "-DINCLUDE_INSTALL_DIR=$out/include/dlang/ldc"
|
||||
"-DCMAKE_BUILD_TYPE=Release"
|
||||
"-DCMAKE_SKIP_RPATH=ON"
|
||||
"-DBUILD_SHARED_LIBS=OFF"
|
||||
"-DLDC_WITH_LLD=OFF"
|
||||
# Xcode 9.0.1 fixes that bug according to ldc release notes
|
||||
"-DRT_ARCHIVE_WITH_LDC=OFF"
|
||||
"-DLLVM_LIBRARY_DIRS=${llvm}/lib"
|
||||
"-DD_COMPILER=${ldcBuild}/bin/ldmd2"
|
||||
)
|
||||
'';
|
||||
|
||||
postConfigure = ldcBuild.postConfigure;
|
||||
|
||||
makeFlags = ldcBuild.makeFlags;
|
||||
|
||||
buildCmd = if bootstrapVersion then
|
||||
"ctest -V -R \"build-druntime-ldc-unittest|build-phobos2-ldc-unittest\""
|
||||
else
|
||||
"make -j$NIX_BUILD_CORES DMD=${ldcBuild}/bin/ldc2 druntime-test-runner druntime-test-runner-debug phobos2-test-runner phobos2-test-runner-debug";
|
||||
|
||||
testCmd = if bootstrapVersion then
|
||||
"ctest -j$NIX_BUILD_CORES --output-on-failure -E \"dmd-testsuite|lit-tests|ldc2-unittest|llvm-ir-testsuite\""
|
||||
else
|
||||
"ctest -j$NIX_BUILD_CORES --output-on-failure -E \"dmd-testsuite|lit-tests|ldc2-unittest\"";
|
||||
|
||||
buildPhase = ''
|
||||
${buildCmd}
|
||||
${testCmd}
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
echo -n $inputString > $out
|
||||
'';
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
inherit ldcUnittests;
|
||||
name = "ldc-${version}";
|
||||
version = "1.3.0";
|
||||
phases = "installPhase";
|
||||
buildInputs = ldcBuild.buildInputs;
|
||||
|
||||
srcs = [
|
||||
(fetchFromGitHub {
|
||||
owner = "ldc-developers";
|
||||
repo = "ldc";
|
||||
rev = "v${version}";
|
||||
sha256 = "1ac3j4cwwgjpayhijxx4d6478bc3iqksjxkd7xp7byx7k8w1ppdl";
|
||||
name = "ldc-v${version}-src";
|
||||
})
|
||||
(fetchFromGitHub {
|
||||
owner = "ldc-developers";
|
||||
repo = "druntime";
|
||||
rev = "ldc-v${version}";
|
||||
sha256 = "1m13370wnj3sizqk3sdpzi9am5d24srf27d613qblhqa9n8vwz30";
|
||||
name = "druntime-ldc-v${version}-src";
|
||||
})
|
||||
(fetchFromGitHub {
|
||||
owner = "ldc-developers";
|
||||
repo = "phobos";
|
||||
rev = "ldc-v${version}";
|
||||
sha256 = "0fhcdfi7a00plwj27ysfyv783nhk0kspq7hawf6vbsl3s1nyvn8g";
|
||||
name = "phobos-ldc-v${version}-src";
|
||||
})
|
||||
(fetchFromGitHub {
|
||||
owner = "ldc-developers";
|
||||
repo = "dmd-testsuite";
|
||||
rev = "ldc-v${version}";
|
||||
sha256 = "0dmdkp220gqhxjrmrjfkf0vsvylwfaj70hswavq4q3v4dg17pzmj";
|
||||
name = "dmd-testsuite-ldc-v${version}-src";
|
||||
})
|
||||
];
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
postUnpack = ''
|
||||
mv ldc-v${version}-src/* .
|
||||
|
||||
mv druntime-ldc-v${version}-src/* runtime/druntime
|
||||
|
||||
mv phobos-ldc-v${version}-src/* runtime/phobos
|
||||
|
||||
mv dmd-testsuite-ldc-v${version}-src/* tests/d2/dmd-testsuite
|
||||
|
||||
# Remove cppa test for now because it doesn't work.
|
||||
rm tests/d2/dmd-testsuite/runnable/cppa.d
|
||||
rm tests/d2/dmd-testsuite/runnable/extra-files/cppb.cpp
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
cp -r --symbolic-link ${ldcBuild}/* $out/
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace runtime/phobos/std/net/curl.d \
|
||||
--replace libcurl.so ${curl.out}/lib/libcurl.so
|
||||
|
||||
# Ugly hack to fix the hardcoded path to zoneinfo in the source file.
|
||||
# https://issues.dlang.org/show_bug.cgi?id=15391
|
||||
substituteInPlace runtime/phobos/std/datetime.d \
|
||||
--replace /usr/share/zoneinfo/ ${tzdata}/share/zoneinfo/
|
||||
''
|
||||
|
||||
+ stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
substituteInPlace driver/tool.cpp \
|
||||
--replace "gcc" "clang"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake llvm dmd python lit gdb unzip ]
|
||||
|
||||
++ stdenv.lib.optional stdenv.hostPlatform.isDarwin (with darwin.apple_sdk.frameworks; [
|
||||
Foundation
|
||||
]);
|
||||
|
||||
buildInputs = [ curl tzdata stdenv.cc ];
|
||||
|
||||
preConfigure = ''
|
||||
cmakeFlagsArray=("-DINCLUDE_INSTALL_DIR=$out/include/dlang/ldc")
|
||||
'';
|
||||
|
||||
postConfigure = ''
|
||||
export DMD=$PWD/bin/ldc2
|
||||
'';
|
||||
|
||||
makeFlags = [ "DMD=$DMD" ];
|
||||
|
||||
# disable check phase because some tests are not working with sandboxing
|
||||
doCheck = false;
|
||||
|
||||
checkPhase = ''
|
||||
ctest -j $NIX_BUILD_CORES -V DMD=$DMD
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "The LLVM-based D compiler";
|
||||
homepage = https://github.com/ldc-developers/ldc;
|
||||
# from https://github.com/ldc-developers/ldc/blob/master/LICENSE
|
||||
license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ];
|
||||
maintainers = with maintainers; [ ThomasMader ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
meta = ldcBuild.meta;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,4 +4,5 @@ callPackage ./generic.nix (rec {
|
||||
inherit Foundation libobjc;
|
||||
version = "4.4.2.11";
|
||||
sha256 = "0cxnypw1j7s253wr5hy05k42ghgg2s9qibp10kndwnp5bv12q34h";
|
||||
enableParallelBuilding = false; # #32386, https://hydra.nixos.org/build/65565737
|
||||
})
|
||||
|
||||
@@ -4,4 +4,5 @@ callPackage ./generic.nix (rec {
|
||||
inherit Foundation libobjc;
|
||||
version = "4.6.2.16";
|
||||
sha256 = "190f7kcrm1y5x61s1xwdmjnwc3czsg50s3mml4xmix7byh3x2rc9";
|
||||
enableParallelBuilding = false; # #32386, https://hydra.nixos.org/build/65617511
|
||||
})
|
||||
|
||||
@@ -4,4 +4,5 @@ callPackage ./generic-cmake.nix (rec {
|
||||
inherit Foundation libobjc;
|
||||
version = "4.8.1.0";
|
||||
sha256 = "1vyvp2g28ihcgxgxr8nhzyzdmzicsh5djzk8dk1hj5p5f2k3ijqq";
|
||||
enableParallelBuilding = false; # #32386, https://hydra.nixos.org/build/65600645
|
||||
})
|
||||
|
||||
@@ -4,4 +4,5 @@ callPackage ./generic-cmake.nix (rec {
|
||||
inherit Foundation libobjc;
|
||||
version = "5.0.1.1";
|
||||
sha256 = "064pgsmanpybpbhpam9jv9n8aicx6mlyb7a91yzh3kcksmqsxmj8";
|
||||
enableParallelBuilding = false; # #32386, https://hydra.nixos.org/build/65820147
|
||||
})
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, bison, pkgconfig, glib, gettext, perl, libgdiplus, libX11, callPackage, ncurses, zlib, withLLVM ? false, cacert, Foundation, libobjc, python, version, sha256, autoconf, libtool, automake, cmake, which }:
|
||||
{ stdenv, fetchurl, bison, pkgconfig, glib, gettext, perl, libgdiplus, libX11, callPackage, ncurses, zlib, withLLVM ? false, cacert, Foundation, libobjc, python, version, sha256, autoconf, libtool, automake, cmake, which, enableParallelBuilding ? true }:
|
||||
|
||||
let
|
||||
llvm = callPackage ./llvm.nix { };
|
||||
@@ -45,9 +45,6 @@ stdenv.mkDerivation rec {
|
||||
# The file /nix/store/xxx-mono-2.4.2.1/lib/mscorlib.dll is an invalid CIL image
|
||||
dontStrip = true;
|
||||
|
||||
# Parallel building doesn't work, as shows http://hydra.nixos.org/build/2983601
|
||||
enableParallelBuilding = false;
|
||||
|
||||
# We want pkg-config to take priority over the dlls in the Mono framework and the GAC
|
||||
# because we control pkg-config
|
||||
patches = [ ./pkgconfig-before-gac.patch ];
|
||||
@@ -83,6 +80,8 @@ stdenv.mkDerivation rec {
|
||||
ln -s $out/bin/mcs $out/bin/gmcs
|
||||
'';
|
||||
|
||||
inherit enableParallelBuilding;
|
||||
|
||||
meta = {
|
||||
homepage = http://mono-project.com/;
|
||||
description = "Cross platform, open source .NET development framework";
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
{ stdenv, fetchurl, bison, pkgconfig, glib, gettext, perl, libgdiplus, libX11, callPackage, ncurses, zlib, withLLVM ? false, cacert, Foundation, libobjc, python, version, sha256 }:
|
||||
{ stdenv, fetchurl, bison, pkgconfig, glib, gettext, perl, libgdiplus, libX11
|
||||
, callPackage, ncurses, zlib
|
||||
, cacert, Foundation, libobjc, python
|
||||
|
||||
, version, sha256
|
||||
, withLLVM ? false
|
||||
, enableParallelBuilding ? true
|
||||
}:
|
||||
|
||||
let
|
||||
llvm = callPackage ./llvm.nix { };
|
||||
@@ -40,9 +47,6 @@ stdenv.mkDerivation rec {
|
||||
# The file /nix/store/xxx-mono-2.4.2.1/lib/mscorlib.dll is an invalid CIL image
|
||||
dontStrip = true;
|
||||
|
||||
# Parallel building doesn't work, as shows http://hydra.nixos.org/build/2983601
|
||||
enableParallelBuilding = false;
|
||||
|
||||
# We want pkg-config to take priority over the dlls in the Mono framework and the GAC
|
||||
# because we control pkg-config
|
||||
patches = [ ./pkgconfig-before-gac.patch ];
|
||||
@@ -79,6 +83,8 @@ stdenv.mkDerivation rec {
|
||||
ln -s $out/bin/mcs $out/bin/gmcs
|
||||
'';
|
||||
|
||||
inherit enableParallelBuilding;
|
||||
|
||||
meta = {
|
||||
homepage = http://mono-project.com/;
|
||||
description = "Cross platform, open source .NET development framework";
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "nasm-${version}";
|
||||
version = "2.13.01";
|
||||
version = "2.13.02";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.nasm.us/pub/nasm/releasebuilds/${version}/${name}.tar.bz2";
|
||||
sha256 = "1ylqs4sqh0paia970v6hpdgq5icxns9zlg21qql232bz1apppy88";
|
||||
sha256 = "1gmvjckxvkmx1kbglgrakc98qhy55xlqlk5flrdihz5yhv92hc4d";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ perl ];
|
||||
|
||||
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
|
||||
bin/neko bin/test.n
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
dontStrip = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
@@ -60,4 +61,3 @@ stdenv.mkDerivation rec {
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, ncurses, xlibsWrapper }:
|
||||
{ stdenv, fetchurl, ncurses, libX11, xproto, buildEnv }:
|
||||
|
||||
let
|
||||
useX11 = stdenv.isi686 || stdenv.isx86_64;
|
||||
@@ -7,52 +7,65 @@ let
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
|
||||
name = "ber-metaocaml-${version}";
|
||||
version = "003";
|
||||
|
||||
version = "104";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://caml.inria.fr/pub/distrib/ocaml-3.11/ocaml-3.11.2.tar.bz2";
|
||||
sha256 = "0hw1yp1mmfyn1pmda232d0ry69m7ln1z0fn5lgi8nz3y1mx3iww6";
|
||||
url = "http://caml.inria.fr/pub/distrib/ocaml-4.04/ocaml-4.04.0.tar.gz";
|
||||
sha256 = "1pi2hdm9lxhn45qvfqfss1hpa4jijm14qgmrgajsadxqdiplhqyb";
|
||||
};
|
||||
|
||||
metaocaml = fetchurl {
|
||||
url = "http://okmij.org/ftp/ML/ber-metaocaml.tar.gz";
|
||||
sha256 = "1kq1if25c1wvcdiy4g46xk05dkc1am2gc4qvmg4x19wvvaz09gzf";
|
||||
url = "http://okmij.org/ftp/ML/ber-metaocaml-104.tar.gz";
|
||||
sha256 = "1gmwlxairxqcmqa2r6kbf8b4dxc7pfhfbh48g1s14d3z20rj8nib";
|
||||
};
|
||||
|
||||
# Needed to avoid a SIGBUS on the final executable on mips
|
||||
NIX_CFLAGS_COMPILE = if stdenv.isMips then "-fPIC" else "";
|
||||
|
||||
patches = optionals stdenv.isDarwin [ ./gnused-on-osx-fix.patch ];
|
||||
x11env = buildEnv { name = "x11env"; paths = [libX11 xproto];};
|
||||
x11lib = x11env + "/lib";
|
||||
x11inc = x11env + "/include";
|
||||
|
||||
prefixKey = "-prefix ";
|
||||
configureFlags = ["-no-tk"] ++ optionals useX11 [ "-x11lib" xlibsWrapper ];
|
||||
buildFlags = "core coreboot all"; # "world" + optionalString useNativeCompilers " bootstrap world.opt";
|
||||
buildInputs = [ncurses] ++ optionals useX11 [ xlibsWrapper ];
|
||||
configureFlags = optionals useX11 [ "-x11lib" x11lib
|
||||
"-x11include" x11inc ];
|
||||
|
||||
dontStrip = true;
|
||||
buildInputs = [ncurses] ++ optionals useX11 [ libX11 xproto ];
|
||||
installFlags = "-i";
|
||||
installTargets = "install"; # + optionalString useNativeCompilers " installopt";
|
||||
prePatch = ''
|
||||
CAT=$(type -tp cat)
|
||||
sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang
|
||||
patch -p0 < ${./mips64.patch}
|
||||
'';
|
||||
|
||||
postConfigure = ''
|
||||
tar -xvzf $metaocaml
|
||||
cd ${name}
|
||||
make patch
|
||||
cd ..
|
||||
'';
|
||||
postBuild = ''
|
||||
buildPhase = ''
|
||||
make world
|
||||
make -i install
|
||||
|
||||
make bootstrap
|
||||
make opt.opt
|
||||
make installopt
|
||||
mkdir -p $out/include
|
||||
ln -sv $out/lib/ocaml/caml $out/include/caml
|
||||
'';
|
||||
postInstall = ''
|
||||
cd ${name}
|
||||
make all
|
||||
make install
|
||||
make install.opt
|
||||
cd ..
|
||||
'';
|
||||
installPhase = "";
|
||||
postBuild = ''
|
||||
'';
|
||||
checkPhase = ''
|
||||
cd ${name}
|
||||
make test
|
||||
make test-compile
|
||||
make test-native
|
||||
cd ..
|
||||
'';
|
||||
|
||||
@@ -67,6 +80,5 @@ stdenv.mkDerivation rec {
|
||||
A conservative extension of OCaml with the primitive type of code values,
|
||||
and three basic multi-stage expression forms: Brackets, Escape, and Run
|
||||
'';
|
||||
broken = true;
|
||||
};
|
||||
}
|
||||
@@ -4,6 +4,7 @@
|
||||
, sha256_i686
|
||||
, sha256_x86_64
|
||||
, sha256_armv7l
|
||||
, sha256_aarch64
|
||||
, jceName
|
||||
, jceDownloadUrl
|
||||
, sha256JCE
|
||||
@@ -38,11 +39,12 @@
|
||||
|
||||
assert stdenv.system == "i686-linux"
|
||||
|| stdenv.system == "x86_64-linux"
|
||||
|| stdenv.system == "armv7l-linux";
|
||||
|| stdenv.system == "armv7l-linux"
|
||||
|| stdenv.system == "aarch64-linux";
|
||||
assert swingSupport -> xorg != null;
|
||||
|
||||
let
|
||||
abortArch = abort "jdk requires i686-linux, x86_64-linux, or armv7l-linux";
|
||||
abortArch = throw "Unsupported system: ${stdenv.system}";
|
||||
|
||||
/**
|
||||
* The JRE libraries are in directories that depend on the CPU.
|
||||
@@ -54,6 +56,8 @@ let
|
||||
"amd64"
|
||||
else if stdenv.system == "armv7l-linux" then
|
||||
"arm"
|
||||
else if stdenv.system == "aarch64-linux" then
|
||||
"aarch64"
|
||||
else
|
||||
abortArch;
|
||||
|
||||
@@ -99,6 +103,12 @@ let result = stdenv.mkDerivation rec {
|
||||
url = downloadUrl;
|
||||
sha256 = sha256_armv7l;
|
||||
}
|
||||
else if stdenv.system == "aarch64-linux" then
|
||||
requireFile {
|
||||
name = "jdk-${productVersion}u${patchVersion}-linux-arm64-vfp-hflt.tar.gz";
|
||||
url = downloadUrl;
|
||||
sha256 = sha256_aarch64;
|
||||
}
|
||||
else
|
||||
abortArch;
|
||||
|
||||
@@ -116,7 +126,7 @@ let result = stdenv.mkDerivation rec {
|
||||
# Set PaX markings
|
||||
exes=$(file $sourceRoot/bin/* $sourceRoot/jre/bin/* 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//')
|
||||
for file in $exes; do
|
||||
paxmark m "$file"
|
||||
paxmark m "$file" || true
|
||||
# On x86 for heap sizes over 700MB disable SEGMEXEC and PAGEEXEC as well.
|
||||
${stdenv.lib.optionalString stdenv.isi686 ''paxmark msp "$file"''}
|
||||
done
|
||||
@@ -212,7 +222,7 @@ let result = stdenv.mkDerivation rec {
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
license = licenses.unfree;
|
||||
platforms = [ "i686-linux" "x86_64-linux" "armv7l-linux" ]; # some inherit jre.meta.platforms
|
||||
platforms = [ "i686-linux" "x86_64-linux" "armv7l-linux" "aarch64-linux" ]; # some inherit jre.meta.platforms
|
||||
};
|
||||
|
||||
}; in result
|
||||
|
||||
@@ -4,7 +4,8 @@ import ./jdk-linux-base.nix {
|
||||
downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html;
|
||||
sha256_i686 = "0w1snn9hxwvdnk77frhdzbsm6v30v99dy5zmpy8ij7yxd57z6ql0";
|
||||
sha256_x86_64 = "0zq2dxbxmshz080yskhc8y2wbqi0y0kl9girxjbb4rwk837010n7";
|
||||
sha256_armv7l = "10r3nyssx8piyjaspravwgj2bnq4537041pn0lz4fk5b3473kgfb";
|
||||
sha256_armv7l = "0fdkvg1al7g9lqbq10rlw400aqr0xxi2a802319sw5n0zipkrjic";
|
||||
sha256_aarch64 = "1xva22cjjpwa95h7x3xzyymn1bgxp1q67j5j304kn6cqah4k31j1";
|
||||
jceName = "jce_policy-8.zip";
|
||||
jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html;
|
||||
sha256JCE = "0n8b6b8qmwb14lllk2lk1q1ahd3za9fnjigz5xn65mpg48whl0pk";
|
||||
|
||||
@@ -4,7 +4,8 @@ import ./jdk-linux-base.nix {
|
||||
downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html;
|
||||
sha256_i686 = "0gjc7kcfx40f43z1w1qsn1fqxdz8d46wml2g11qgm55ishhv2q7w";
|
||||
sha256_x86_64 = "1gv1348hrgna9l3sssv3g9jzs37y1lkx05xq83chav9z1hs3p2r1";
|
||||
sha256_armv7l = "10r3nyssx8piyjaspravwgj2bnq4537041pn0lz4fk5b3473kgfb";
|
||||
sha256_armv7l = "1w0hwslsd3z0kvb3z7gmbh20xsyiz73vglmdqz2108y7alim7arm";
|
||||
sha256_aarch64 = "13qpxa8nxsnikmm7h6ysnsdqg5vl8j7hzfa8kgh20z8a17fhj9kk";
|
||||
jceName = "jce_policy-8.zip";
|
||||
jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html;
|
||||
sha256JCE = "0n8b6b8qmwb14lllk2lk1q1ahd3za9fnjigz5xn65mpg48whl0pk";
|
||||
|
||||
@@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
|
||||
sed "/^toolsdir=/ctoolsdir=$dev/bin" -i "$dev"/lib/pkgconfig/orc*.pc
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=728129#c15
|
||||
doCheck = stdenv.system != "i686-linux"; # not sure about cross-compiling
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "The Oil Runtime Compiler";
|
||||
|
||||
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
|
||||
doCheck = false;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
descripton = "A functional lisp";
|
||||
description = "A functional lisp";
|
||||
homepage = https://github.com/aoh/owl-lisp;
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ peterhoeg ];
|
||||
|
||||
@@ -4,13 +4,13 @@ with lib;
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "psc-package";
|
||||
version = "0.2.4";
|
||||
version = "0.2.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "purescript";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0m1vcxa5zs4sqnnwgmxkhw1isdlmirp12yimn5345vwfvlxkc8kp";
|
||||
sha256 = "15g0l8g8l6m5x4f73w68r9iav091x12b3wjxh0rx3ggnj093g6j1";
|
||||
};
|
||||
|
||||
isLibrary = false;
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
|
||||
buildOcaml rec {
|
||||
name = "reason";
|
||||
version = "3.0.3";
|
||||
version = "3.0.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "facebook";
|
||||
repo = "reason";
|
||||
rev = version;
|
||||
sha256 = "19kp1cnxi6dq89xh07c14q7kzkawbxdkwrvn1rl48l78d04agnxx";
|
||||
sha256 = "15qhx85him5rr4j0ygj3jh3qv9ijrn82ibr9scbn0qrnn43kj047";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ menhir merlin_extend ppx_tools_versioned ];
|
||||
@@ -34,7 +34,7 @@ buildOcaml rec {
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://facebook.github.io/reason/;
|
||||
homepage = https://reasonml.github.io/;
|
||||
description = "Facebook's friendly syntax to OCaml";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.volth ];
|
||||
|
||||
@@ -9,6 +9,7 @@ let
|
||||
hashes = {
|
||||
i686-unknown-linux-gnu = "abe592e06616cdc2fcca56ddbe482050dd49a1fada35e2af031c64fe6eb14668";
|
||||
x86_64-unknown-linux-gnu = "ca1cf3aed73ff03d065a7d3e57ecca92228d35dc36d9274a6597441319f18eb8";
|
||||
aarch64-unknown-linux-gnu = "eaab3df489d4d8f976c4327d812b9870730eed6d0bbd52712767083d02be7472";
|
||||
i686-apple-darwin = "b3c2470f8f132d285e6c989681e251592b67071bc9d93cac8a2e6b66f7bdfcb5";
|
||||
x86_64-apple-darwin = "fa1fb8896d5e327cbe6deeb50e6e9a3346de629f2e6bcbd8c10f19f3e2ed67d5";
|
||||
};
|
||||
@@ -18,6 +19,8 @@ let
|
||||
then "i686-unknown-linux-gnu"
|
||||
else if stdenv.system == "x86_64-linux"
|
||||
then "x86_64-unknown-linux-gnu"
|
||||
else if stdenv.system == "aarch64-linux"
|
||||
then "aarch64-unknown-linux-gnu"
|
||||
else if stdenv.system == "i686-darwin"
|
||||
then "i686-apple-darwin"
|
||||
else if stdenv.system == "x86_64-darwin"
|
||||
|
||||
@@ -23,7 +23,9 @@ rec {
|
||||
|
||||
patches = [
|
||||
./patches/0001-Disable-fragile-tests-libstd-net-tcp-on-Darwin-Linux.patch
|
||||
] ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
|
||||
] ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch
|
||||
# https://github.com/rust-lang/rust/issues/45410
|
||||
++ stdenv.lib.optional stdenv.isAarch64 ./patches/aarch64-disable-test_loading_cosine.patch;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
diff --git a/src/librustc_back/dynamic_lib.rs b/src/librustc_back/dynamic_lib.rs
|
||||
index 1b42fa0..92256dc 100644
|
||||
--- a/src/librustc_back/dynamic_lib.rs
|
||||
+++ b/src/librustc_back/dynamic_lib.rs
|
||||
@@ -80,6 +80,7 @@ mod tests {
|
||||
use std::mem;
|
||||
|
||||
#[test]
|
||||
+ #[ignore]
|
||||
fn test_loading_cosine() {
|
||||
if cfg!(windows) {
|
||||
return
|
||||
@@ -10,6 +10,7 @@ set -euo pipefail
|
||||
PLATFORMS=(
|
||||
i686-unknown-linux-gnu
|
||||
x86_64-unknown-linux-gnu
|
||||
aarch64-unknown-linux-gnu
|
||||
i686-apple-darwin
|
||||
x86_64-apple-darwin
|
||||
)
|
||||
|
||||
@@ -34,6 +34,9 @@ stdenv.mkDerivation {
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
# The build will fail at the very end on AArch64 without this.
|
||||
dontUpdateAutotoolsGnuConfigScripts = if stdenv.isAarch64 then true else null;
|
||||
|
||||
NIX_LDFLAGS = optionalString stdenv.isDarwin "-rpath ${llvmShared}/lib";
|
||||
|
||||
# Enable nightly features in stable compiles (used for
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, fetchgit, writeText, sbclBootstrap
|
||||
{ stdenv, fetchurl, writeText, sbclBootstrap
|
||||
, sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit"
|
||||
, threadSupport ? (stdenv.isi686 || stdenv.isx86_64 || "aarch64-linux" == stdenv.system)
|
||||
# Meant for sbcl used for creating binaries portable to non-NixOS via save-lisp-and-die.
|
||||
@@ -9,16 +9,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "sbcl-${version}";
|
||||
version = "1.4.1.0.20171104";
|
||||
version = "1.4.2";
|
||||
|
||||
#src = fetchurl {
|
||||
# url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2";
|
||||
# sha256 = "1qdaf847g5p2zgq00ax5hdy4r82bl3ss382psd0kkca1h83cdiz8";
|
||||
#};
|
||||
src = fetchgit {
|
||||
url = "https://git.code.sf.net/p/sbcl/sbcl";
|
||||
sha256 = "1fq34h8h8pax5q17w84kwv5amiaag3ikkq3cdmb31r64736mxi6r";
|
||||
rev = "11aa57d23bc464d6a6867a80e946907404ceadd1";
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2";
|
||||
sha256 = "05s7wsx6bsnx4h6w3d8yim9apbvi8ih0glmvkmgjz7nrad4abjwd";
|
||||
};
|
||||
|
||||
patchPhase = ''
|
||||
|
||||
@@ -4,22 +4,22 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "yosys-${version}";
|
||||
version = "2017.11.05";
|
||||
version = "2017.12.06";
|
||||
|
||||
srcs = [
|
||||
(fetchFromGitHub {
|
||||
owner = "cliffordwolf";
|
||||
repo = "yosys";
|
||||
rev = "4f31cb6daddedcee467d85797d81b79360ce1826";
|
||||
sha256 = "1a5n0g5kpjsy8f99f64w81gkrr450wvffp407r1pddl8pmb0c3r7";
|
||||
name = "yosys";
|
||||
owner = "cliffordwolf";
|
||||
repo = "yosys";
|
||||
rev = "8f2638ae2f12a48dcad14f24b0211c16ac724762";
|
||||
sha256 = "0synbskclgn97hp28myvl0hp8pqp66awp37z4cv7zl154ipysfl1";
|
||||
name = "yosys";
|
||||
})
|
||||
(fetchFromBitbucket {
|
||||
owner = "alanmi";
|
||||
repo = "abc";
|
||||
rev = "f6838749f234";
|
||||
sha256 = "0n7ywvih958h1c4n7a398a9w3qikhkv885fx5j3y2a0xwqc86m4y";
|
||||
name = "yosys-abc";
|
||||
owner = "alanmi";
|
||||
repo = "abc";
|
||||
rev = "31fc97b0aeed";
|
||||
sha256 = "0ljmclr4hfh3iiyfw7ji0fm8j983la8021xfpnfd20dyc807hh65";
|
||||
name = "yosys-abc";
|
||||
})
|
||||
];
|
||||
sourceRoot = "yosys";
|
||||
|
||||
Reference in New Issue
Block a user