about summary refs log tree commit diff
path: root/pkgs/development/compilers
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers')
-rw-r--r--pkgs/development/compilers/gambit/bootstrap.nix2
-rw-r--r--pkgs/development/compilers/gambit/default.nix31
-rw-r--r--pkgs/development/compilers/gcc/5/default.nix3
-rw-r--r--pkgs/development/compilers/gerbil/default.nix14
-rw-r--r--pkgs/development/compilers/jhc/default.nix1
-rw-r--r--pkgs/development/compilers/kotlin/default.nix4
-rw-r--r--pkgs/development/compilers/oraclejdk/jdk9-linux.nix175
-rw-r--r--pkgs/development/compilers/ponyc/default.nix4
-rw-r--r--pkgs/development/compilers/swift/default.nix2
9 files changed, 207 insertions, 29 deletions
diff --git a/pkgs/development/compilers/gambit/bootstrap.nix b/pkgs/development/compilers/gambit/bootstrap.nix
index 65fb20aa2603..e645ecb41bd2 100644
--- a/pkgs/development/compilers/gambit/bootstrap.nix
+++ b/pkgs/development/compilers/gambit/bootstrap.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ autoconf ];
 
   configurePhase = ''
-    ./configure --prefix=$out --enable-single-host
+    ./configure --prefix=$out
   '';
 
   buildPhase = ''
diff --git a/pkgs/development/compilers/gambit/default.nix b/pkgs/development/compilers/gambit/default.nix
index 58b08ebd4fb7..79f57c42c50d 100644
--- a/pkgs/development/compilers/gambit/default.nix
+++ b/pkgs/development/compilers/gambit/default.nix
@@ -1,19 +1,16 @@
 { stdenv, fetchurl, fetchgit, git, openssl, autoconf, pkgs }:
 
+# TODO: distinct packages for gambit-release and gambit-devel
+
 stdenv.mkDerivation rec {
   name    = "gambit-${version}";
-  version = "4.8.8-f3ffeb6";
+  version = "4.8.8-300db59";
   bootstrap = import ./bootstrap.nix ( pkgs );
 
-#  devver  = "4_8_8";
-#  src = fetchurl {
-#    url    = "http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/source/gambit-v${version}-devel.tgz";
-#    sha256 = "0j3ka76cfb007rlcc3nv5p1s6vh31cwp87hwwabawf16vs1jb7bl";
-#  };
   src = fetchgit {
     url = "https://github.com/feeley/gambit.git";
-    rev = "f3ffeb695aeea80c18c1b9ef276b57898c780dca";
-    sha256 = "1lqixsrgk9z2gj6z1nkys0pfd3m5zjxrp3gvqn2wpr9h7hjb8x06";
+    rev = "300db59e1d3b66bcd597f617849df0274d2a4472";
+    sha256 = "1mhy49lasakgvdaswkxasdssik11lx3hfx4h1gs2b6881488ssdp";
   };
 
   buildInputs = [ openssl git autoconf bootstrap ];
@@ -28,6 +25,8 @@ stdenv.mkDerivation rec {
       --enable-absolute-shared-libs # Yes, NixOS will want an absolute path, and fix it.
       --enable-poll
       --enable-openssl
+      --enable-default-runtime-options="f8,-8,t8" # Default to UTF-8 for source and all I/O
+      #--enable-debug # Nope: enables plenty of good stuff, but also the costly console.log
 
       #--enable-multiple-versions # Nope, NixOS already does version multiplexing
       #--enable-guide
@@ -49,15 +48,15 @@ stdenv.mkDerivation rec {
 
   buildPhase = ''
     # Make bootstrap compiler, from release bootstrap
-    mkdir -p boot/wip-compiler &&
-    cp -rp ${bootstrap}/. boot/wip-compiler/. &&
+    mkdir -p boot &&
+    cp -rp ${bootstrap}/. boot/. &&
     chmod -R u+w boot &&
-    cd boot/wip-compiler && \
-    cp ../../gsc/makefile.in ../../gsc/*.scm gsc && \
-    (cd gsc && make bootclean ) &&
-    make bootstrap &&
-    cd ../.. &&
-    cp boot/wip-compiler/gsc/gsc gsc-boot &&
+    cd boot &&
+    cp ../gsc/makefile.in ../gsc/*.scm gsc && # */
+    ./configure &&
+    for i in lib gsi gsc ; do (cd $i ; make ) ; done &&
+    cd .. &&
+    cp boot/gsc/gsc gsc-boot &&
 
     # Now use the bootstrap compiler to build the real thing!
     make -j2 from-scratch
diff --git a/pkgs/development/compilers/gcc/5/default.nix b/pkgs/development/compilers/gcc/5/default.nix
index c3e14d9328e4..d1c76b6097ea 100644
--- a/pkgs/development/compilers/gcc/5/default.nix
+++ b/pkgs/development/compilers/gcc/5/default.nix
@@ -221,8 +221,7 @@ stdenv.mkDerivation ({
     inherit sha256;
   };
 
-  # FIXME stackprotector needs gcc 4.9 in bootstrap tools
-  hardeningDisable = [ "stackprotector" "format" ];
+  hardeningDisable = [ "format" ];
 
   inherit patches;
 
diff --git a/pkgs/development/compilers/gerbil/default.nix b/pkgs/development/compilers/gerbil/default.nix
index 22047b663d04..59cafee3b3a9 100644
--- a/pkgs/development/compilers/gerbil/default.nix
+++ b/pkgs/development/compilers/gerbil/default.nix
@@ -2,23 +2,27 @@
   coreutils, rsync, bash,
   openssl, zlib, sqlite, libxml2, libyaml, libmysql, lmdb, leveldb }:
 
+# TODO: distinct packages for gerbil-release and gerbil-devel
+
 stdenv.mkDerivation rec {
   name    = "gerbil-${version}";
 
-  version = "0.12-DEV";
+  version = "0.12-DEV-777-gd855915";
   src = fetchgit {
     url = "https://github.com/vyzo/gerbil.git";
-    rev = "3657b6e940ea248e0b312f276590e38ff68997e7";
-    sha256 = "11ys7082ghkm4yikz4qxmv3jpxcr42jfi0jhjw1mpzbqdg6004w2";
+    rev = "9db6187dc996eec4087f83b86339e7b17bb69bad";
+    sha256 = "1hqmsy77d62dvil3az4vdr0rmwvxhinjl1dbcxzamz2c2kcjv1jg";
   };
 
   buildInputs = [
-    gambit openssl
+    gambit
     coreutils rsync bash
-    zlib openssl zlib sqlite libxml2 libyaml libmysql lmdb leveldb
+    openssl zlib sqlite libxml2 libyaml libmysql lmdb leveldb
   ];
 
   postPatch = ''
+    echo '(define (gerbil-version-string) "v${version}")' > src/gerbil/runtime/gx-version.scm
+
     patchShebangs .
 
     find . -type f -executable -print0 | while IFS= read -r -d ''$'\0' f; do
diff --git a/pkgs/development/compilers/jhc/default.nix b/pkgs/development/compilers/jhc/default.nix
index cfeff329fb56..6b8c6599062e 100644
--- a/pkgs/development/compilers/jhc/default.nix
+++ b/pkgs/development/compilers/jhc/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = stdenv.lib.licenses.bsd3;
     platforms = ["x86_64-linux"]; # 32 bit builds are broken
     maintainers = with stdenv.lib.maintainers; [ aforemny thoughtpolice ];
+    broken = true; # https://hydra.nixos.org/build/61700723
   };
 }
diff --git a/pkgs/development/compilers/kotlin/default.nix b/pkgs/development/compilers/kotlin/default.nix
index 65c2125dfbca..bc24cdfb87e9 100644
--- a/pkgs/development/compilers/kotlin/default.nix
+++ b/pkgs/development/compilers/kotlin/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, makeWrapper, jre, unzip }:
 
 stdenv.mkDerivation rec {
-  version = "1.1.4-2";
+  version = "1.1.50";
   name = "kotlin-${version}";
 
   src = fetchurl {
     url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip";
-    sha256 = "09sikwk5xxn4b30icbq28mjs4lm9xbj0bv5yjx75r165iz65g2cv";
+    sha256 = "01y7m0r5wa2apd05c38h77060javgbj8072vd08lz4qaw6c6445m";
   };
 
   propagatedBuildInputs = [ jre ] ;
diff --git a/pkgs/development/compilers/oraclejdk/jdk9-linux.nix b/pkgs/development/compilers/oraclejdk/jdk9-linux.nix
new file mode 100644
index 000000000000..7f0a5750c0e8
--- /dev/null
+++ b/pkgs/development/compilers/oraclejdk/jdk9-linux.nix
@@ -0,0 +1,175 @@
+{ swingSupport ? true
+, stdenv
+, requireFile
+, makeWrapper
+, unzip
+, file
+, xorg ? null
+, packageType ? "JDK" # JDK, JRE, or ServerJRE
+, pluginSupport ? true
+, installjce ? false
+, glib
+, libxml2
+, ffmpeg_2
+, libxslt
+, mesa_noglu
+, freetype
+, fontconfig
+, gtk2
+, pango
+, cairo
+, alsaLib
+, atk
+, gdk_pixbuf
+, zlib
+, elfutils
+, setJavaClassPath
+}:
+
+assert stdenv.system == "x86_64-linux";
+assert swingSupport -> xorg != null;
+
+let
+  version = "9";
+
+  downloadUrlBase = http://www.oracle.com/technetwork/java/javase/downloads;
+
+  jce =
+    if installjce then
+      requireFile {
+        name = "jce_policy-8.zip";
+        url = "${downloadUrlBase}/jce8-download-2133166.html";
+        sha256 = "0n8b6b8qmwb14lllk2lk1q1ahd3za9fnjigz5xn65mpg48whl0pk";
+      }
+    else
+      "";
+
+  rSubPaths = [
+    "lib/jli"
+    "lib/server"
+    "lib"
+  ];
+
+in
+
+let result = stdenv.mkDerivation rec {
+  name = if packageType == "JDK"       then "oraclejdk-${version}"
+    else if packageType == "JRE"       then "oraclejre-${version}"
+    else if packageType == "ServerJRE" then "oracleserverjre-${version}"
+    else abort "unknown package Type ${packageType}";
+
+  src =
+    if packageType == "JDK" then
+      requireFile {
+        name = "jdk-${version}_linux-x64_bin.tar.gz";
+        url =  "${downloadUrlBase}/jdk9-downloads-3848520.html";
+        sha256 = "0vbgy7h9h089l3xh6sl57v57g28x1djyiigqs4z6gh7wahx7hv8w";
+      }
+    else if packageType == "JRE" then
+      requireFile {
+        name = "jre-${version}_linux-x64_bin.tar.gz";
+        url = "${downloadUrlBase}/jre9-downloads-3848532.html";
+        sha256 = "18i4jjb6sby67xg5ql6dkk3ja1nackbb23g1bnp522450nclpxdb";
+      }
+    else if packageType == "ServerJRE" then
+      requireFile {
+        name = "serverjre-${version}_linux-x64_bin.tar.gz";
+        url = "${downloadUrlBase}/server-jre9-downloads-3848530.html";
+        sha256 = "01bxi7lx13lhlpbifw93b6r7a9bayiykw8kzwlyyqi8pz3pw8c5h";
+      }
+    else abort "unknown package Type ${packageType}";
+
+  nativeBuildInputs = [ file ]
+    ++ stdenv.lib.optional installjce unzip;
+
+  buildInputs = [ makeWrapper ];
+
+  # See: https://github.com/NixOS/patchelf/issues/10
+  dontStrip = 1;
+
+  installPhase = ''
+    cd ..
+
+    # Set PaX markings
+    exes=$(file $sourceRoot/bin/* 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//')
+    for file in $exes; do
+      paxmark m "$file"
+      # On x86 for heap sizes over 700MB disable SEGMEXEC and PAGEEXEC as well.
+      ${stdenv.lib.optionalString stdenv.isi686 ''paxmark msp "$file"''}
+    done
+
+    mv $sourceRoot $out
+
+    shopt -s extglob
+    for file in $out/*
+    do
+      if test -f $file ; then
+        rm $file
+      fi
+    done
+
+    if test -n "${jce}"; then
+      unzip ${jce}
+      cp -v UnlimitedJCEPolicy*/*.jar $out/lib/security
+    fi
+
+    if test -z "$pluginSupport"; then
+      rm -f $out/bin/javaws
+    fi
+
+    mkdir $out/lib/plugins
+    ln -s $out/lib/libnpjp2.so $out/lib/plugins
+
+    # for backward compatibility
+    ln -s $out $out/jre
+
+    mkdir -p $out/nix-support
+    printWords ${setJavaClassPath} > $out/nix-support/propagated-native-build-inputs
+
+    # Set JAVA_HOME automatically.
+    cat <<EOF >> $out/nix-support/setup-hook
+    if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out; fi
+    EOF
+  '';
+
+  postFixup = ''
+    rpath+="''${rpath:+:}${stdenv.lib.concatStringsSep ":" (map (a: "$out/${a}") rSubPaths)}"
+
+    # set all the dynamic linkers
+    find $out -type f -perm -0100 \
+        -exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+        --set-rpath "$rpath" {} \;
+
+    find $out -name "*.so" -exec patchelf --set-rpath "$rpath" {} \;
+
+    # Oracle Java Mission Control needs to know where libgtk-x11 and related is
+    if test -x $out/bin/jmc; then
+      wrapProgram "$out/bin/jmc" \
+          --suffix-each LD_LIBRARY_PATH ':' "$rpath"
+    fi
+  '';
+
+  /**
+   * libXt is only needed on amd64
+   */
+  libraries =
+    [stdenv.cc.libc glib libxml2 ffmpeg_2 libxslt mesa_noglu xorg.libXxf86vm alsaLib fontconfig freetype pango gtk2 cairo gdk_pixbuf atk zlib elfutils] ++
+    (if swingSupport then [xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXp xorg.libXt xorg.libXrender stdenv.cc.cc] else []);
+
+  rpath = stdenv.lib.strings.makeLibraryPath libraries;
+
+  passthru.mozillaPlugin = "/lib/plugins";
+
+  passthru.jre = result; # FIXME: use multiple outputs or return actual JRE package
+
+  passthru.home = result;
+
+  # for backward compatibility
+  passthru.architecture = "";
+
+  meta = with stdenv.lib; {
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ]; # some inherit jre.meta.platforms
+  };
+
+}; in result
diff --git a/pkgs/development/compilers/ponyc/default.nix b/pkgs/development/compilers/ponyc/default.nix
index 69a8243b6662..19ebd522a4f7 100644
--- a/pkgs/development/compilers/ponyc/default.nix
+++ b/pkgs/development/compilers/ponyc/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation ( rec {
   name = "ponyc-${version}";
-  version = "0.19.1";
+  version = "0.19.2";
 
   src = fetchFromGitHub {
     owner = "ponylang";
     repo = "ponyc";
     rev = version;
-    sha256 = "1zd051syn0n6ign4nnxb40xj2s5vqp0s349nkjqv7051xzvlzf1p";
+    sha256 = "04vbhkkgpjh19pv2bq4b60lgnk5ck8axqs6fgw4l44j3lvxwlwrh";
   };
 
   buildInputs = [ llvm makeWrapper which ];
diff --git a/pkgs/development/compilers/swift/default.nix b/pkgs/development/compilers/swift/default.nix
index 96b22b630f4f..6cc9f372b978 100644
--- a/pkgs/development/compilers/swift/default.nix
+++ b/pkgs/development/compilers/swift/default.nix
@@ -259,7 +259,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "The Swift Programming Language";
     homepage = https://github.com/apple/swift;
-    maintainers = with maintainers; [ jb55 dtzWill ];
+    maintainers = with maintainers; [ dtzWill ];
     license = licenses.asl20;
     # Swift doesn't support 32bit Linux, unknown on other platforms.
     platforms = [ "x86_64-linux" ];