summary refs log tree commit diff
path: root/pkgs/development/tools/build-managers
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2018-09-18 16:55:42 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2018-09-18 16:55:42 -0400
commit7319013ea14f94cb360c7bef9e403de7f1db83b0 (patch)
treecb6d4763cee2cc982648762c019b3b77b9ba18b2 /pkgs/development/tools/build-managers
parentce6e72a11cc2f52d6e92224791fe5db7f9e2ecdd (diff)
parent35378f014161c1d794dc89b6969275396cb601de (diff)
downloadnixlib-7319013ea14f94cb360c7bef9e403de7f1db83b0.tar
nixlib-7319013ea14f94cb360c7bef9e403de7f1db83b0.tar.gz
nixlib-7319013ea14f94cb360c7bef9e403de7f1db83b0.tar.bz2
nixlib-7319013ea14f94cb360c7bef9e403de7f1db83b0.tar.lz
nixlib-7319013ea14f94cb360c7bef9e403de7f1db83b0.tar.xz
nixlib-7319013ea14f94cb360c7bef9e403de7f1db83b0.tar.zst
nixlib-7319013ea14f94cb360c7bef9e403de7f1db83b0.zip
Merge remote-tracking branch 'upstream/master' into staging
Diffstat (limited to 'pkgs/development/tools/build-managers')
-rw-r--r--pkgs/development/tools/build-managers/bazel/default.nix21
-rw-r--r--pkgs/development/tools/build-managers/gn/default.nix125
-rw-r--r--pkgs/development/tools/build-managers/nant/default.nix71
-rw-r--r--pkgs/development/tools/build-managers/pants/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/sbt/default.nix4
5 files changed, 44 insertions, 178 deletions
diff --git a/pkgs/development/tools/build-managers/bazel/default.nix b/pkgs/development/tools/build-managers/bazel/default.nix
index 6a25aef8b36a..e9f005f79917 100644
--- a/pkgs/development/tools/build-managers/bazel/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/default.nix
@@ -1,11 +1,13 @@
 { stdenv, lib, fetchurl, fetchpatch, runCommand, makeWrapper
 , jdk, zip, unzip, bash, writeCBin, coreutils
 , which, python, perl, gnused, gnugrep, findutils
+# Apple dependencies
+, cctools, clang, libcxx, CoreFoundation, CoreServices, Foundation
+# Allow to independently override the jdks used to build and run respectively
+, buildJdk ? jdk, runJdk ? jdk
 # Always assume all markers valid (don't redownload dependencies).
 # Also, don't clean up environment variables.
 , enableNixHacks ? false
-# Apple dependencies
-, cctools, clang, libcxx, CoreFoundation, CoreServices, Foundation
 }:
 
 let
@@ -26,7 +28,7 @@ let
 in
 stdenv.mkDerivation rec {
 
-  version = "0.16.0";
+  version = "0.17.1";
 
   meta = with lib; {
     homepage = "https://github.com/bazelbuild/bazel/";
@@ -40,7 +42,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
-    sha256 = "1ca9pncnj6v4r1kvgxys7607wpz4d2ic6g0i7lpsc2zg2qwmjc67";
+    sha256 = "081z40vsxvw6ndiinik4pn09gxmv140k6l9zv93dgjr86qf2ir13";
   };
 
   sourceRoot = ".";
@@ -87,6 +89,9 @@ stdenv.mkDerivation rec {
       # and linkers from Xcode instead of from PATH
       export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1
 
+      # Explicitly configure gcov since we don't have it on Darwin, so autodetection fails
+      export GCOV=${coreutils}/bin/false
+
       # Framework search paths aren't added by bintools hook
       # https://github.com/NixOS/nixpkgs/pull/41914
       export NIX_LDFLAGS="$NIX_LDFLAGS -F${CoreFoundation}/Library/Frameworks -F${CoreServices}/Library/Frameworks -F${Foundation}/Library/Frameworks"
@@ -95,6 +100,10 @@ stdenv.mkDerivation rec {
       # https://github.com/NixOS/nixpkgs/pull/41589
       export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem ${libcxx}/include/c++/v1"
 
+      # 10.10 apple_sdk Foundation doesn't have type arguments on classes
+      # Remove this when we update apple_sdk
+      sed -i -e 's/<.*\*>//g' tools/osx/xcode_locator.m
+
       # don't use system installed Xcode to run clang, use Nix clang instead
       sed -i -e "s;/usr/bin/xcrun clang;${clang}/bin/clang $NIX_CFLAGS_COMPILE $NIX_LDFLAGS -framework CoreFoundation;g" \
         scripts/bootstrap/compile.sh \
@@ -152,7 +161,7 @@ stdenv.mkDerivation rec {
      + genericPatches;
 
   buildInputs = [
-    jdk
+    buildJdk
   ];
 
   nativeBuildInputs = [
@@ -190,7 +199,7 @@ stdenv.mkDerivation rec {
   installPhase = ''
     mkdir -p $out/bin
     mv output/bazel $out/bin
-    wrapProgram "$out/bin/bazel" --set JAVA_HOME "${jdk}"
+    wrapProgram "$out/bin/bazel" --set JAVA_HOME "${runJdk}"
     mkdir -p $out/share/bash-completion/completions $out/share/zsh/site-functions
     mv output/bazel-complete.bash $out/share/bash-completion/completions/bazel
     cp scripts/zsh_completion/_bazel $out/share/zsh/site-functions/
diff --git a/pkgs/development/tools/build-managers/gn/default.nix b/pkgs/development/tools/build-managers/gn/default.nix
index 399486c4d902..a273afd71580 100644
--- a/pkgs/development/tools/build-managers/gn/default.nix
+++ b/pkgs/development/tools/build-managers/gn/default.nix
@@ -1,107 +1,38 @@
-{ stdenv, lib, fetchgit, fetchzip, fetchpatch
-, libevent, ninja, python, darwin }:
+{ stdenv, lib, fetchgit, fetchzip, fetchpatch, darwin, writeText
+, git, ninja, python }:
 
 let
-  depsGit = {
-    "tools/gn" = fetchgit {
-      url = "https://chromium.googlesource.com/chromium/src/tools/gn";
-      rev = "0fa417a0d2d8484e9a5a636e3301da322f586601";
-      sha256 = "0pigcl14yc4aak6q1ghfjxdz2ah4fg4m2r5y3asw2rz6mpr5y9z0";
-    };
-    "base" = fetchgit {
-      url = "https://chromium.googlesource.com/chromium/src/base";
-      rev = "ab1d7c3b92ce9c9bc756bdefb8338360d1a33a1e";
-      sha256 = "15wis6qg9ka62k6v1vamg0bp3v5vkpapg485jsn4bbfcaqp6di0f";
-    };
-    "build" = fetchgit {
-      url = "https://chromium.googlesource.com/chromium/src/build";
-      rev = "8d44c08a4c9997695db8098198bdd5026bc7a6f9";
-      sha256 = "19sajgf55xfmvnwvy2ss7g6pyljp751cfsws30w415m6m00lmpxl";
-    };
-    "config" = fetchgit {
-      url = "https://chromium.googlesource.com/chromium/src/build/config";
-      rev = "14116c0cdcb9e28995ca8bb384a12e5c9dbd1dbb";
-      sha256 = "04nif0lm4wcy05b7xhal023874s4r0iq067q57cgwdm72i2gml40";
-    };
-    "testing/gtest" = fetchgit {
-      url = "https://chromium.googlesource.com/chromium/testing/gtest";
-      rev = "585ec31ea716f08233a815e680fc0d4699843938";
-      sha256 = "0csn1cza66851nmxxiw42smsm3422mx67vcyykwn0a71lcjng6rc";
-    };
-    "third_party/apple_apsl" = fetchzip {
-      url = "https://chromium.googlesource.com/chromium/src/third_party/+archive/8e6ccb8c74db6dfa15dd21401ace3ac96c054cf7/apple_apsl.tar.gz";
-      sha256 = "1vgcg741lwz84kdy0qc5wn9dxx3j9zh6a9d185fpygdsipwikqv8";
-      stripRoot = false;
-    };
-    "buildtools/third_party/libc++/trunk" = fetchgit {
-      url = "https://chromium.googlesource.com/chromium/llvm-project/libcxx";
-      rev = "ece1de8658d749e19c12cacd4458cc330eca94e3";
-      sha256 = "1nlyvfkzhchwv9b18bh82jcamqv3acj26ah9ajs31f2dql05amhg";
-    };
-    "buildtools/third_party/libc++abi/trunk" = fetchgit {
-      url = "https://chromium.googlesource.com/chromium/llvm-project/libcxxabi";
-      rev = "52c7a3760aef1df328a9bc957f686410872f0dc0";
-      sha256 = "1aam539j01381q27b7xhij18pz3h0lhw08hglvqq4hgvlqx5cn2s";
-    };
-  };
+  rev = "106b823805adcc043b2bfe5bc21d58f160a28a7b";
+  sha256 = "1a5s6i07s8l4f1bakh3fyaym00xz7zgd49sp6awm10xb7yjh95ba";
 
-in stdenv.mkDerivation rec {
-  name = "gn-${version}";
-  version = "20180423";
-  sourceRoot = ".";
+  shortRev = builtins.substring 0 7 rev;
+  lastCommitPosition = writeText "last_commit_position.h" ''
+    #ifndef OUT_LAST_COMMIT_POSITION_H_
+    #define OUT_LAST_COMMIT_POSITION_H_
 
-  unpackPhase = ''
-    ${lib.concatStringsSep "\n" (
-      lib.mapAttrsToList (n: v: ''
-        mkdir -p $sourceRoot/${n}
-        if [ -d ${v} ]; then
-          cp -r ${v}/* $sourceRoot/${n}
-        else
-          mkdir -p $sourceRoot/${n}
-          pushd $sourceRoot/${n}
-          unpackFile ${v}
-          popd
-        fi
-      '') depsGit)}
+    #define LAST_COMMIT_POSITION "(${shortRev})"
 
-    chmod u+w -R $sourceRoot
+    #endif  // OUT_LAST_COMMIT_POSITION_H_
   '';
 
-  patches = [
-    (fetchpatch {
-      url = "https://raw.githubusercontent.com/Eloston/ungoogled-chromium/3375fbc7b865dafe1230431a1e3f9bffd27ec184/resources/patches/ungoogled-chromium/macos/fix-gn-bootstrap.patch";
-      sha256 = "1h8jgxznm7zrxlzb4wcfx4zx4lyvfrmpd0r7cd7h0s23wn8ibb3a";
-    })
-  ];
+in
+stdenv.mkDerivation rec {
+  name = "gn-${version}";
+  version = "20180830";
 
-  postPatch = ''
-    # Disable libevent bootstrapping (we will provide it).
-    sed -i -e '/static_libraries.*libevent/,/^ *\]\?[})]$/d' \
-      tools/gn/bootstrap/bootstrap.py
+  src = fetchgit {
+    url = "https://gn.googlesource.com/gn";
+    inherit rev sha256;
+  };
 
+  postPatch = ''
     # FIXME Needed with old Apple SDKs
     substituteInPlace base/mac/foundation_util.mm \
       --replace "NSArray<NSString*>*" "NSArray*"
-    substituteInPlace base/mac/sdk_forward_declarations.h \
-      --replace "NSDictionary<VNImageOption, id>*" "NSDictionary*" \
-      --replace "NSArray<VNRequest*>*" "NSArray*" \
-      --replace "typedef NSString* VNImageOption NS_STRING_ENUM" "typedef NSString* VNImageOption"
-
-    # Patch shebangs (for sandbox build)
-    patchShebangs build
   '';
 
-  # FIXME again this shouldn't be necessary but I can't figure out a better way
-  NIX_CFLAGS_COMPILE = "-DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_10 -DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_10";
-
-  NIX_LDFLAGS = "-levent";
-
-  nativeBuildInputs = [ ninja python ];
-  buildInputs = [ libevent ]
-
-  # FIXME These dependencies shouldn't be needed but can't find a way
-  # around it. Chromium pulls this in while bootstrapping GN.
-  ++ lib.optionals stdenv.isDarwin (with darwin; with apple_sdk.frameworks; [
+  nativeBuildInputs = [ ninja python git ];
+  buildInputs = lib.optionals stdenv.isDarwin (with darwin; with apple_sdk.frameworks; [
     libobjc
     cctools
 
@@ -109,25 +40,21 @@ in stdenv.mkDerivation rec {
     ApplicationServices
     Foundation
     AppKit
-    ImageCaptureCore
-    CoreBluetooth
-    IOBluetooth
-    CoreWLAN
-    Quartz
-    Cocoa
   ]);
 
   buildPhase = ''
-    python tools/gn/bootstrap/bootstrap.py -s
+    python build/gen.py --no-sysroot --no-last-commit-position
+    ln -s ${lastCommitPosition} out/last_commit_position.h
+    ninja -j $NIX_BUILD_CORES -C out gn
   '';
 
   installPhase = ''
-    install -vD out/Release/gn "$out/bin/gn"
+    install -vD out/gn "$out/bin/gn"
   '';
 
   meta = with lib; {
     description = "A meta-build system that generates NinjaBuild files";
-    homepage = https://chromium.googlesource.com/chromium/src/tools/gn;
+    homepage = https://gn.googlesource.com/gn;
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ stesie matthewbauer ];
diff --git a/pkgs/development/tools/build-managers/nant/default.nix b/pkgs/development/tools/build-managers/nant/default.nix
deleted file mode 100644
index c394d87e09ec..000000000000
--- a/pkgs/development/tools/build-managers/nant/default.nix
+++ /dev/null
@@ -1,71 +0,0 @@
-{ stdenv, fetchFromGitHub, pkgconfig, mono, makeWrapper
-, targetVersion ? "4.5" }:
-
-let
-   version = "2015-11-15";
-
-  src = fetchFromGitHub {
-    owner = "nant";
-    repo = "nant";
-    rev = "19bec6eca205af145e3c176669bbd57e1712be2a";
-    sha256 = "11l5y76csn686p8i3kww9s0sxy659ny9l64krlqg3y2nxaz0fk6l";
-  };
-
-  nant-bootstrapped = stdenv.mkDerivation {
-    name = "nant-bootstrapped-${version}";
-    inherit src;
-
-  nativeBuildInputs = [ pkgconfig ];
-    buildInputs = [ mono makeWrapper ];
-
-    buildFlags = "bootstrap";
-
-    dontStrip = true;
-
-    installPhase = ''
-      mkdir -p $out/lib/nant-bootstrap
-      cp -r bootstrap/* $out/lib/nant-bootstrap
-
-      mkdir -p $out/bin
-      makeWrapper "${mono}/bin/mono" $out/bin/nant \
-        --add-flags "$out/lib/nant-bootstrap/NAnt.exe"
-    '';
-  };
-
-in stdenv.mkDerivation {
-  name = "nant-${version}";
-  inherit src;
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ mono makeWrapper nant-bootstrapped ];
-
-  dontStrip = true;
-
-  buildPhase = ''
-    nant -t:mono-${targetVersion}
-  '';
-
-  installPhase = ''
-    mkdir -p $out/lib/nant
-    cp -r build/mono-${targetVersion}.unix/nant-debug/bin/* $out/lib/nant/
-
-    mkdir -p $out/bin
-    makeWrapper "${mono}/bin/mono" $out/bin/nant \
-      --add-flags "$out/lib/nant/NAnt.exe"
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = http://nant.sourceforge.net;
-    description = "NAnt is a free .NET build tool";
-
-    longDescription = ''
-      NAnt is a free .NET build tool. In theory it is kind of like make without
-      make's wrinkles. In practice it's a lot like Ant.
-    '';
-
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ zohl ];
-    platforms = platforms.linux;
-  };
-}
-
diff --git a/pkgs/development/tools/build-managers/pants/default.nix b/pkgs/development/tools/build-managers/pants/default.nix
index 1ad52f327e15..02bf9c23cbac 100644
--- a/pkgs/development/tools/build-managers/pants/default.nix
+++ b/pkgs/development/tools/build-managers/pants/default.nix
@@ -17,6 +17,7 @@ in buildPythonApplication rec {
 
   prePatch = ''
     sed -E -i "s/'([[:alnum:].-]+)[=><][[:digit:]=><.,]*'/'\\1'/g" setup.py
+    substituteInPlace setup.py --replace "requests[security]<2.19,>=2.5.0" "requests[security]<2.20,>=2.5.0"
   '';
 
   # Unnecessary, and causes some really weird behavior around .class files, which
diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix
index b5751a19455e..bbbbbf462ec8 100644
--- a/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/pkgs/development/tools/build-managers/sbt/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   name = "sbt-${version}";
-  version = "1.2.1";
+  version = "1.2.3";
 
   src = fetchurl {
     urls = [
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
       "https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz"
       "https://cocl.us/sbt-${version}.tgz"
     ];
-    sha256 = "1pyp98svh5x8b6yp5vfl0jhz8aysjm0dqvqf7znyb3l7knfqk726";
+    sha256 = "1szyp9hgrvr3r5rhr98cn5mkhca1mr0qfs6cd8fiihm6hzjzn0nm";
   };
 
   patchPhase = ''