summary refs log tree commit diff
path: root/pkgs/development/tools
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools')
-rw-r--r--pkgs/development/tools/analysis/radare2-cutter/default.nix17
-rw-r--r--pkgs/development/tools/analysis/snowman/default.nix6
-rw-r--r--pkgs/development/tools/boomerang/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/bazel/default.nix413
-rw-r--r--pkgs/development/tools/build-managers/buildbot/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/buildbot/plugins.nix10
-rw-r--r--pkgs/development/tools/build-managers/buildbot/worker.nix4
-rw-r--r--pkgs/development/tools/build-managers/conan/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/gradle/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/redo/default.nix4
-rw-r--r--pkgs/development/tools/database/sqlitebrowser/default.nix2
-rw-r--r--pkgs/development/tools/easyjson/default.nix6
-rw-r--r--pkgs/development/tools/misc/gob2/default.nix2
-rw-r--r--pkgs/development/tools/misc/tokei/default.nix6
14 files changed, 441 insertions, 47 deletions
diff --git a/pkgs/development/tools/analysis/radare2-cutter/default.nix b/pkgs/development/tools/analysis/radare2-cutter/default.nix
index d1ff712be2d3..a516e6e2a395 100644
--- a/pkgs/development/tools/analysis/radare2-cutter/default.nix
+++ b/pkgs/development/tools/analysis/radare2-cutter/default.nix
@@ -1,23 +1,28 @@
-{ stdenv, fetchFromGitHub, fetchpatch, qmake, pkgconfig, qtbase, qtsvg, radare2 }:
+{ stdenv, fetchFromGitHub
+# nativeBuildInputs
+, qmake, pkgconfig
+# Qt
+, qtbase, qtsvg, qtwebengine
+# buildInputs
+, radare2
+, python3 }:
 
 
 stdenv.mkDerivation rec {
   name = "radare2-cutter-${version}";
-  version = "1.3";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner = "radareorg";
     repo = "cutter";
     rev = "v${version}";
-    sha256 = "1z76yz2i9k8mxjk85k2agdj941szdbl2gi66p3dh50878zqavfrr";
+    sha256 = "0wsxb6jfpsmgsigmbnh08j99779bsjz02v6aasqcwl6hwjx0mjfk";
   };
 
   postUnpack = "export sourceRoot=$sourceRoot/src";
 
-  patchFlags = [ "-p2" ];
-
   nativeBuildInputs = [ qmake pkgconfig ];
-  buildInputs = [ qtbase qtsvg radare2 ];
+  buildInputs = [ qtbase qtsvg qtwebengine radare2 python3 ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/tools/analysis/snowman/default.nix b/pkgs/development/tools/analysis/snowman/default.nix
index fba7d3d5cd41..638423ed5972 100644
--- a/pkgs/development/tools/analysis/snowman/default.nix
+++ b/pkgs/development/tools/analysis/snowman/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "snowman-${version}";
-  version = "2017-11-19";
+  version = "0.1.2";
 
   src = fetchFromGitHub {
     owner = "yegord";
     repo = "snowman";
-    rev = "d03c2d6ffbf262c0011584df59d6bd69c020e08e";
-    sha256 = "0bzqp3zc100dzvybf57bj4dvnybvds0lmn1w2xjb19wkzm9liskn";
+    rev = "v${version}";
+    sha256 = "1ry14n8jydg6rzl52gyn0qhmv6bvivk7iwssp89lq5qk8k183x3k";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/tools/boomerang/default.nix b/pkgs/development/tools/boomerang/default.nix
index f83353034a8f..7b5391725423 100644
--- a/pkgs/development/tools/boomerang/default.nix
+++ b/pkgs/development/tools/boomerang/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "boomerang-${version}";
-  version = "0.4.0-alpha-2018-01-18";
+  version = "0.4.0-alpha-2018-07-03";
 
   src = fetchFromGitHub {
     owner = "ceeac";
     repo = "boomerang";
-    rev = "b4ff8d573407a8ed6365d4bfe53d2d47d983e393";
-    sha256 = "0x17vlm6y1paa49fi3pmzz7vzdqms19qkr274hkq32ql342b6i6x";
+    rev = "377ff2d7db93d892c925e2d3e61aef818371ce7d";
+    sha256 = "1ljbyj3b8xckr1wihyii3h576zgq0q88vli0ylpr3p4jxy5sm57j";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/tools/build-managers/bazel/default.nix b/pkgs/development/tools/build-managers/bazel/default.nix
index 28214e94c7aa..112cd840a9f5 100644
--- a/pkgs/development/tools/build-managers/bazel/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, lib, fetchurl, jdk, zip, unzip, bash, writeCBin, coreutils, makeWrapper, which, python, gnused
+{ stdenv, lib, writeText, writeScript, fetchurl, jdk, zip, unzip, bash, writeCBin, coreutils, binutils, makeWrapper, which, python, gnused
 # Always assume all markers valid (don't redownload dependencies).
 # Also, don't clean up environment variables.
 , enableNixHacks ? false
 # Apple dependencies
-, libcxx, CoreFoundation, CoreServices, Foundation
+, cctools, clang, libcxx, CoreFoundation, CoreServices, Foundation
 }:
 
 stdenv.mkDerivation rec {
@@ -56,9 +56,396 @@ stdenv.mkDerivation rec {
     }
   '';
 
+  buildFile = writeText "BUILD" ''
+    package(default_visibility = ['//visibility:public'])
+
+    filegroup(name = "empty")
+
+    cc_toolchain_suite(
+      name = "nix",
+      toolchains = {
+        "darwin|compiler": ":nix_darwin_toolchain",
+        "k8|compiler": ":nix_linux_toolchain",
+      },
+    )
+
+    cc_toolchain(
+      name = "nix_darwin_toolchain",
+      all_files = ":osx_wrapper",
+      compiler_files = ":osx_wrapper",
+      cpu = "darwin",
+      dwp_files = ":empty",
+      dynamic_runtime_libs = [":empty"],
+      linker_files = ":osx_wrapper",
+      objcopy_files = ":empty",
+      static_runtime_libs = [":empty"],
+      strip_files = ":empty",
+      supports_param_files = 0,
+    )
+
+    cc_toolchain(
+      name = "nix_linux_toolchain",
+      all_files = ":empty",
+      compiler_files = ":empty",
+      cpu = "k8",
+      dwp_files = ":empty",
+      dynamic_runtime_libs = [":empty"],
+      linker_files = ":empty",
+      objcopy_files = ":empty",
+      static_runtime_libs = [":empty"],
+      strip_files = ":empty",
+      supports_param_files = 0,
+    )
+
+    filegroup(
+      name = "osx_wrapper",
+      srcs = ["osx_cc_wrapper.sh"],
+    )
+  '';
+
+  crosstoolFile = writeText "CROSSTOOL" (''
+    major_version: "local"
+    minor_version: ""
+    default_target_cpu: "same_as_host"
+    '' + lib.optionalString stdenv.isDarwin ''
+    default_toolchain {
+      cpu: "darwin"
+      toolchain_identifier: "local_darwin"
+    }
+    toolchain {
+      abi_version: "local"
+      abi_libc_version: "local"
+      builtin_sysroot: ""
+      compiler: "compiler"
+      host_system_name: "local"
+      needsPic: true
+      target_libc: "macosx"
+      target_cpu: "darwin"
+      target_system_name: "local"
+      toolchain_identifier: "local_darwin"
+
+      tool_path { name: "ar" path: "${cctools}/bin/libtool" }
+      tool_path { name: "compat-ld" path: "${cctools}/bin/ld" }
+      tool_path { name: "cpp" path: "${clang}/bin/cpp" }
+      tool_path { name: "dwp" path: "${coreutils}/bin/false" }
+      tool_path { name: "gcc" path: "osx_cc_wrapper.sh" }
+      cxx_flag: "-std=c++0x"
+      linker_flag: "-lstdc++"
+      linker_flag: "-undefined"
+      linker_flag: "dynamic_lookup"
+      linker_flag: "-headerpad_max_install_names"
+      # We know all files in `/nix/store` are immutable so it's safe to disable inclusion checks for them
+      cxx_builtin_include_directory: "/nix/store"
+      tool_path { name: "gcov" path: "${coreutils}/bin/false" }
+      tool_path { name: "ld" path: "${cctools}/bin/ld" }
+      tool_path { name: "nm" path: "${cctools}/bin/nm" }
+      tool_path { name: "objcopy" path: "${binutils}/bin/objcopy" }
+      objcopy_embed_flag: "-I"
+      objcopy_embed_flag: "binary"
+      tool_path { name: "objdump" path: "${binutils}/bin/objdump" }
+      tool_path { name: "strip" path: "${cctools}/bin/strip" }
+
+      # Anticipated future default.
+      unfiltered_cxx_flag: "-no-canonical-prefixes"
+
+      # Make C++ compilation deterministic. Use linkstamping instead of these
+      # compiler symbols.
+      unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+      unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+      unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+      unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+
+      # Security hardening on by default.
+      # Conservative choice; -D_FORTIFY_SOURCE=2 may be unsafe in some cases.
+      compiler_flag: "-D_FORTIFY_SOURCE=1"
+      compiler_flag: "-fstack-protector"
+
+      # Enable coloring even if there's no attached terminal. Bazel removes the
+      # escape sequences if --nocolor is specified.
+      compiler_flag: "-fcolor-diagnostics"
+
+      # All warnings are enabled. Maybe enable -Werror as well?
+      compiler_flag: "-Wall"
+      # Enable a few more warnings that aren't part of -Wall.
+      compiler_flag: "-Wthread-safety"
+      compiler_flag: "-Wself-assign"
+
+      # Keep stack frames for debugging, even in opt mode.
+      compiler_flag: "-fno-omit-frame-pointer"
+
+      # Anticipated future default.
+      linker_flag: "-no-canonical-prefixes"
+
+      compilation_mode_flags {
+        mode: DBG
+        # Enable debug symbols.
+        compiler_flag: "-g"
+      }
+      compilation_mode_flags {
+        mode: OPT
+        # No debug symbols.
+        # Maybe we should enable https://gcc.gnu.org/wiki/DebugFission for opt or even generally?
+        # However, that can't happen here, as it requires special handling in Bazel.
+        compiler_flag: "-g0"
+
+        # Conservative choice for -O
+        # -O3 can increase binary size and even slow down the resulting binaries.
+        # Profile first and / or use FDO if you need better performance than this.
+        compiler_flag: "-O2"
+
+        # Disable assertions
+        compiler_flag: "-DNDEBUG"
+
+        # Removal of unused code and data at link time (can this increase binary size in some cases?).
+        compiler_flag: "-ffunction-sections"
+        compiler_flag: "-fdata-sections"
+      }
+      linking_mode_flags { mode: DYNAMIC }
+    }
+  '' + lib.optionalString stdenv.isLinux ''
+    default_toolchain {
+      cpu: "k8"
+      toolchain_identifier: "local_linux"
+    }
+
+    toolchain {
+      abi_version: "local"
+      abi_libc_version: "local"
+      builtin_sysroot: ""
+      compiler: "compiler"
+      host_system_name: "local"
+      needsPic: true
+      supports_gold_linker: false
+      supports_incremental_linker: false
+      supports_fission: false
+      supports_interface_shared_objects: false
+      supports_normalizing_ar: false
+      supports_start_end_lib: false
+      target_libc: "local"
+      target_cpu: "k8"
+      target_system_name: "local"
+      toolchain_identifier: "local_linux"
+
+      tool_path { name: "ar" path: "${binutils}/bin/ar" }
+      tool_path { name: "compat-ld" path: "${binutils}/bin/ld" }
+      tool_path { name: "cpp" path: "${stdenv.cc}/bin/cpp" }
+      tool_path { name: "dwp" path: "${coreutils}/bin/false" }
+      tool_path { name: "gcc" path: "${stdenv.cc}/bin/cc" }
+      cxx_flag: "-std=c++0x"
+      linker_flag: "-lstdc++"
+      # We know all files in `/nix/store` are immutable so it's safe to disable inclusion checks for them
+      cxx_builtin_include_directory: "/nix/store"
+      tool_path { name: "gcov" path: "${coreutils}/bin/false" }
+
+      # C(++) compiles invoke the compiler (as that is the one knowing where
+      # to find libraries), but we provide LD so other rules can invoke the linker.
+      tool_path { name: "ld" path: "${binutils}/bin/ld" }
+
+      tool_path { name: "nm" path: "${binutils}/bin/nm" }
+      tool_path { name: "objcopy" path: "${binutils}/bin/objcopy" }
+      objcopy_embed_flag: "-I"
+      objcopy_embed_flag: "binary"
+      tool_path { name: "objdump" path: "${binutils}/bin/objdump" }
+      tool_path { name: "strip" path: "${binutils}/bin/strip" }
+
+      # Anticipated future default.
+      unfiltered_cxx_flag: "-no-canonical-prefixes"
+      unfiltered_cxx_flag: "-fno-canonical-system-headers"
+
+      # Make C++ compilation deterministic. Use linkstamping instead of these
+      # compiler symbols.
+      unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+      unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+      unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+      unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+
+      # Security hardening on by default.
+      # Conservative choice; -D_FORTIFY_SOURCE=2 may be unsafe in some cases.
+      # We need to undef it before redefining it as some distributions now have
+      # it enabled by default.
+      compiler_flag: "-U_FORTIFY_SOURCE"
+      compiler_flag: "-D_FORTIFY_SOURCE=1"
+      compiler_flag: "-fstack-protector"
+      linker_flag: "-Wl,-z,relro,-z,now"
+
+      # Enable coloring even if there's no attached terminal. Bazel removes the
+      # escape sequences if --nocolor is specified. This isn't supported by gcc
+      # on Ubuntu 14.04.
+      # compiler_flag: "-fcolor-diagnostics"
+
+      # All warnings are enabled. Maybe enable -Werror as well?
+      compiler_flag: "-Wall"
+      # Enable a few more warnings that aren't part of -Wall.
+      compiler_flag: "-Wunused-but-set-parameter"
+      # But disable some that are problematic.
+      compiler_flag: "-Wno-free-nonheap-object" # has false positives
+
+      # Keep stack frames for debugging, even in opt mode.
+      compiler_flag: "-fno-omit-frame-pointer"
+
+      # Anticipated future default.
+      linker_flag: "-no-canonical-prefixes"
+      # Have gcc return the exit code from ld.
+      linker_flag: "-pass-exit-codes"
+      # Gold linker only? Can we enable this by default?
+      # linker_flag: "-Wl,--warn-execstack"
+      # linker_flag: "-Wl,--detect-odr-violations"
+
+      compilation_mode_flags {
+        mode: DBG
+        # Enable debug symbols.
+        compiler_flag: "-g"
+      }
+      compilation_mode_flags {
+        mode: OPT
+
+        # No debug symbols.
+        # Maybe we should enable https://gcc.gnu.org/wiki/DebugFission for opt or
+        # even generally? However, that can't happen here, as it requires special
+        # handling in Bazel.
+        compiler_flag: "-g0"
+
+        # Conservative choice for -O
+        # -O3 can increase binary size and even slow down the resulting binaries.
+        # Profile first and / or use FDO if you need better performance than this.
+        compiler_flag: "-O2"
+
+        # Disable assertions
+        compiler_flag: "-DNDEBUG"
+
+        # Removal of unused code and data at link time (can this increase binary size in some cases?).
+        compiler_flag: "-ffunction-sections"
+        compiler_flag: "-fdata-sections"
+        linker_flag: "-Wl,--gc-sections"
+      }
+      linking_mode_flags { mode: DYNAMIC }
+    }
+  '');
+
+  osxCcWrapperFile = writeScript "osx_cc_wrapper.sh" (if stdenv.isDarwin then ''
+    #!${customBash}/bin/bash
+    #
+    # Copyright 2015 The Bazel Authors. All rights reserved.
+    #
+    # Licensed under the Apache License, Version 2.0 (the "License");
+    # you may not use this file except in compliance with the License.
+    # You may obtain a copy of the License at
+    #
+    #    http://www.apache.org/licenses/LICENSE-2.0
+    #
+    # Unless required by applicable law or agreed to in writing, software
+    # distributed under the License is distributed on an "AS IS" BASIS,
+    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    # See the License for the specific language governing permissions and
+    # limitations under the License.
+    #
+    # OS X relpath is not really working. This is a wrapper script around gcc
+    # to simulate relpath behavior.
+    #
+    # This wrapper uses install_name_tool to replace all paths in the binary
+    # (bazel-out/.../path/to/original/library.so) by the paths relative to
+    # the binary. It parses the command line to behave as rpath is supposed
+    # to work.
+    #
+    # See https://blogs.oracle.com/dipol/entry/dynamic_libraries_rpath_and_mac
+    # on how to set those paths for Mach-O binaries.
+    #
+    set -eu
+
+    GCC="${clang}/bin/clang"
+    INSTALL_NAME_TOOL="${cctools}/bin/install_name_tool"
+
+    LIBS=
+    LIB_DIRS=
+    RPATHS=
+    OUTPUT=
+    # let parse the option list
+    for i in "$@"; do
+        if [[ "''${OUTPUT}" = "1" ]]; then
+            OUTPUT=$i
+        elif [[ "$i" =~ ^-l(.*)$ ]]; then
+            LIBS="''${BASH_REMATCH[1]} $LIBS"
+        elif [[ "$i" =~ ^-L(.*)$ ]]; then
+            LIB_DIRS="''${BASH_REMATCH[1]} $LIB_DIRS"
+        elif [[ "$i" =~ ^-Wl,-rpath,\@loader_path/(.*)$ ]]; then
+            RPATHS="''${BASH_REMATCH[1]} ''${RPATHS}"
+        elif [[ "$i" = "-o" ]]; then
+            # output is coming
+            OUTPUT=1
+        fi
+    done
+
+    # Call gcc
+    ''${GCC} "$@"
+
+    function get_library_path() {
+        for libdir in ''${LIB_DIRS}; do
+            if [ -f ''${libdir}/lib$1.so ]; then
+                echo "''${libdir}/lib$1.so"
+            elif [ -f ''${libdir}/lib$1.dylib ]; then
+                echo "''${libdir}/lib$1.dylib"
+            fi
+        done
+    }
+
+    # A convenient method to return the actual path even for non symlinks
+    # and multi-level symlinks.
+    function get_realpath() {
+        local previous="$1"
+        local next=$(readlink "''${previous}")
+        while [ -n "''${next}" ]; do
+            previous="''${next}"
+            next=$(readlink "''${previous}")
+        done
+        echo "''${previous}"
+    }
+
+    # Get the path of a lib inside a tool
+    function get_otool_path() {
+        # the lib path is the path of the original lib relative to the workspace
+        get_realpath $1 | sed 's|^.*/bazel-out/|bazel-out/|'
+    }
+
+    # Do replacements in the output
+    for rpath in ''${RPATHS}; do
+        for lib in ''${LIBS}; do
+            unset libname
+            if [ -f "$(dirname ''${OUTPUT})/''${rpath}/lib''${lib}.so" ]; then
+                libname="lib''${lib}.so"
+            elif [ -f "$(dirname ''${OUTPUT})/''${rpath}/lib''${lib}.dylib" ]; then
+                libname="lib''${lib}.dylib"
+            fi
+            # ''${libname-} --> return $libname if defined, or undefined otherwise. This is to make
+            # this set -e friendly
+            if [[ -n "''${libname-}" ]]; then
+                libpath=$(get_library_path ''${lib})
+                if [ -n "''${libpath}" ]; then
+                    ''${INSTALL_NAME_TOOL} -change $(get_otool_path "''${libpath}") \
+                        "@loader_path/''${rpath}/''${libname}" "''${OUTPUT}"
+                fi
+            fi
+        done
+    done
+  '' else "");
+
   postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
     export NIX_LDFLAGS="$NIX_LDFLAGS -F${CoreFoundation}/Library/Frameworks -F${CoreServices}/Library/Frameworks -F${Foundation}/Library/Frameworks"
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem ${libcxx}/include/c++/v1"
   '' + ''
+    mkdir nix
+    cp ${buildFile} nix/BUILD
+    cp ${crosstoolFile} nix/CROSSTOOL
+    line=70
+    for flag in $NIX_CFLAGS_COMPILE; do
+      sed -i -e "$line a compiler_flag: \"$flag\"" nix/CROSSTOOL
+      line=$((line + 1))
+    done
+    for flag in $NIX_LDFLAGS; do
+      sed -i -e "$line a linker_flag: \"-Wl,$flag\"" nix/CROSSTOOL
+      line=$((line + 1))
+    done
+
+    cp ${osxCcWrapperFile} nix/osx_cc_wrapper.sh
     find src/main/java/com/google/devtools -type f -print0 | while IFS="" read -r -d "" path; do
       substituteInPlace "$path" \
         --replace /bin/bash ${customBash}/bin/bash \
@@ -67,15 +454,14 @@ stdenv.mkDerivation rec {
     # Fixup scripts that generate scripts. Not fixed up by patchShebangs below.
     substituteInPlace scripts/bootstrap/compile.sh \
         --replace /bin/sh ${customBash}/bin/bash
-    echo "build --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\"" >> .bazelrc
-    echo "build --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\"" >> .bazelrc
-    echo "build --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\"" >> .bazelrc
-    echo "build --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\"" >> .bazelrc
-    sed -i -e "361 a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" scripts/bootstrap/compile.sh
-    sed -i -e "361 a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" scripts/bootstrap/compile.sh
-    sed -i -e "361 a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" scripts/bootstrap/compile.sh
-    sed -i -e "361 a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" scripts/bootstrap/compile.sh
+    sed -i -e "361 a --crosstool_top=//nix:nix --host_crosstool_top=//nix:nix \\\\" scripts/bootstrap/compile.sh
     patchShebangs .
+  '' + lib.optionalString stdenv.isDarwin ''
+    sed -i "s,/usr/bin/xcrun clang,clang $NIX_CFLAGS_COMPILE $NIX_LDFLAGS -framework CoreFoundation,g" \
+      scripts/bootstrap/compile.sh \
+      src/tools/xcode/realpath/BUILD \
+      src/tools/xcode/stdredirect/BUILD \
+      tools/osx/BUILD
   '';
 
   buildInputs = [
@@ -83,13 +469,14 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [
+    gnused
     zip
     python
     unzip
     makeWrapper
     which
     customBash
-  ] ++ lib.optionals (stdenv.isDarwin) [ libcxx CoreFoundation CoreServices Foundation ];
+  ] ++ lib.optionals (stdenv.isDarwin) [ cctools clang libcxx CoreFoundation CoreServices Foundation ];
 
   # If TMPDIR is in the unpack dir we run afoul of blaze's infinite symlink
   # detector (see com.google.devtools.build.lib.skyframe.FileFunction).
@@ -100,7 +487,8 @@ stdenv.mkDerivation rec {
     ./compile.sh
     ./output/bazel --output_user_root=/tmp/.bazel build //scripts:bash_completion \
       --spawn_strategy=standalone \
-      --genrule_strategy=standalone
+      --genrule_strategy=standalone \
+      --crosstool_top=//nix:nix --host_crosstool_top=//nix:nix
     cp bazel-bin/scripts/bazel-complete.bash output/
   '';
 
@@ -110,6 +498,7 @@ stdenv.mkDerivation rec {
   checkPhase = ''
     export TEST_TMPDIR=$(pwd)
     ./output/bazel test --test_output=errors \
+        --crosstool_top=//nix:nix --host_crosstool_top=//nix:nix \
         examples/cpp:hello-success_test \
         examples/java-native/src/test/java/com/example/myproject:hello
   '';
diff --git a/pkgs/development/tools/build-managers/buildbot/default.nix b/pkgs/development/tools/build-managers/buildbot/default.nix
index ed73d26768a4..3729abfe247d 100644
--- a/pkgs/development/tools/build-managers/buildbot/default.nix
+++ b/pkgs/development/tools/build-managers/buildbot/default.nix
@@ -14,11 +14,11 @@ let
   package = pythonPackages.buildPythonApplication rec {
     name = "${pname}-${version}";
     pname = "buildbot";
-    version = "1.1.1";
+    version = "1.2.0";
 
     src = pythonPackages.fetchPypi {
       inherit pname version;
-      sha256 = "1vcmanx3ma3cfyiddjcmsnx6qmxd3m5blqax04rcsiq2zq4dmzir";
+      sha256 = "02gwmls8kgm6scy36hdy0bg645zs1pxlrgwkcn79wrl7cfmabcbv";
     };
 
     buildInputs = with pythonPackages; [
diff --git a/pkgs/development/tools/build-managers/buildbot/plugins.nix b/pkgs/development/tools/build-managers/buildbot/plugins.nix
index c8a12c192647..430cdee3ca8c 100644
--- a/pkgs/development/tools/build-managers/buildbot/plugins.nix
+++ b/pkgs/development/tools/build-managers/buildbot/plugins.nix
@@ -11,7 +11,7 @@
 
     src = pythonPackages.fetchPypi {
       inherit pname version format;
-      sha256 = "01v9w8iy9q6fwrmz6db7fanjixax7whn74k67bj0czrbjjkpfzvb";
+      sha256 = "001kxjcyn5sxiq7m1izy4djj7alw6qpgaid4f518s9xgm4a8hwcb";
     };
 
     meta = with stdenv.lib; {
@@ -29,7 +29,7 @@
 
     src = pythonPackages.fetchPypi {
       inherit pname version;
-      sha256 = "1cwxkzpgwzk9b361rj980bbnmhzzsr46pgf94zqpg3na8xm6hpwj";
+      sha256 = "11p9l9r9rh8cq0ihzjcdxfbi55n7inbsz45zqq67rkvqn5nhj5b6";
     };
 
     propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
@@ -49,7 +49,7 @@
 
     src = pythonPackages.fetchPypi {
       inherit pname version;
-      sha256 = "0ival58f50128315d0nck63pzya2zm7q6hvgmxfbjl0my8il9p2l";
+      sha256 = "1yx63frfpbvwy4hfib1psyq5ad0wysyzfrla8d7lgbdaip021wzw";
     };
 
     propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
@@ -69,7 +69,7 @@
 
     src = pythonPackages.fetchPypi {
       inherit pname version;
-      sha256 = "0jiwfb699nqbmpcm88y187ig4ha6p7d4v98mjwa9blhm54dk8kh1";
+      sha256 = "06my75hli3w1skdkx1qz6zqw2wckanhrcvlqm4inylj9v9pcrgv6";
     };
 
     propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
@@ -89,7 +89,7 @@
 
     src = pythonPackages.fetchPypi {
       inherit pname version;
-      sha256 = "00mfn24gbwr2p3n7nsijzv949l7hiksiafhma18nnh40r8f4l5f2";
+      sha256 = "073gz44fa5k1p8k46k0ld9gg16j8zdj6sc297qfyqpiw28ybhc5s";
     };
 
     propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
diff --git a/pkgs/development/tools/build-managers/buildbot/worker.nix b/pkgs/development/tools/build-managers/buildbot/worker.nix
index b1cfb6aeaf2f..968411ca9cc5 100644
--- a/pkgs/development/tools/build-managers/buildbot/worker.nix
+++ b/pkgs/development/tools/build-managers/buildbot/worker.nix
@@ -3,11 +3,11 @@
 pythonPackages.buildPythonApplication (rec {
   name = "${pname}-${version}";
   pname = "buildbot-worker";
-  version = "1.1.1";
+  version = "1.2.0";
 
   src = pythonPackages.fetchPypi {
     inherit pname version;
-    sha256 = "02xfzlcy3cnvc3cmpl9gs6209a3qm71yz5pahbws9jcyhv6fbrrm";
+    sha256 = "0lcaga16zf75aa6ckl9ahjbrs3n3bw7nj6m8g03n77873cgh94x4";
   };
 
   buildInputs = with pythonPackages; [ setuptoolsTrial mock ];
diff --git a/pkgs/development/tools/build-managers/conan/default.nix b/pkgs/development/tools/build-managers/conan/default.nix
index 46433233992b..d80769bf210b 100644
--- a/pkgs/development/tools/build-managers/conan/default.nix
+++ b/pkgs/development/tools/build-managers/conan/default.nix
@@ -20,12 +20,12 @@ let newPython = python.override {
 };
 
 in newPython.pkgs.buildPythonApplication rec {
-  version = "1.4.5";
+  version = "1.5.1";
   pname = "conan";
 
   src = newPython.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "1mjakrv1d7la3lrxsv6jjqprqwmslpjmfxkw3z7pk56rzlp99nv2";
+    sha256 = "1b0iym41fpgv8vwbyys5hrh87pvh3hy2m9c01ybm72z2ki2pwxim";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/build-managers/gradle/default.nix b/pkgs/development/tools/build-managers/gradle/default.nix
index 7570c3be0679..f810f97ef497 100644
--- a/pkgs/development/tools/build-managers/gradle/default.nix
+++ b/pkgs/development/tools/build-managers/gradle/default.nix
@@ -52,12 +52,12 @@ rec {
   };
 
   gradle_latest = gradleGen rec {
-    name = "gradle-4.8";
+    name = "gradle-4.8.1";
     nativeVersion = "0.14";
 
     src = fetchurl {
       url = "http://services.gradle.org/distributions/${name}-bin.zip";
-      sha256 = "1fpihf35nd2wqh3ghkk9x0x2nr1s4vx3dgrfn2q4xagsm299dqpk";
+      sha256 = "0wgdf1iv0izi957hay1xfsk5xnl6s2vx5dammcwy8say9fclscxg";
     };
   };
 
diff --git a/pkgs/development/tools/build-managers/redo/default.nix b/pkgs/development/tools/build-managers/redo/default.nix
index 8063b6747666..bd0562463fd7 100644
--- a/pkgs/development/tools/build-managers/redo/default.nix
+++ b/pkgs/development/tools/build-managers/redo/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, perl }:
 
 stdenv.mkDerivation rec {
-  name = "redo-1.2";
+  name = "redo-1.3";
   src = fetchurl {
     url = "https://jdebp.eu./Repository/freebsd/${name}.tar.gz";
-    sha256 = "0qr8plllxfn32r4rgnalzlhcs3b4l8a4ga8ig9v8i5iy1qnfhqnf";
+    sha256 = "1yx7nd59s01j096hr1zbnbx6mvd6ljzd4vgawh7p2l644jgwj70r";
   };
 
   nativeBuildInputs = [ perl /* for pod2man */ ];
diff --git a/pkgs/development/tools/database/sqlitebrowser/default.nix b/pkgs/development/tools/database/sqlitebrowser/default.nix
index 054eabdb5e43..1b4a4b7f50b2 100644
--- a/pkgs/development/tools/database/sqlitebrowser/default.nix
+++ b/pkgs/development/tools/database/sqlitebrowser/default.nix
@@ -33,7 +33,7 @@ mkDerivation rec {
     description = "DB Browser for SQLite";
     homepage = http://sqlitebrowser.org/;
     license = licenses.gpl3;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ ma27 ];
     platforms = platforms.linux; # can only test on linux
   };
 }
diff --git a/pkgs/development/tools/easyjson/default.nix b/pkgs/development/tools/easyjson/default.nix
index 9277ebe363fb..253f5b374d3c 100644
--- a/pkgs/development/tools/easyjson/default.nix
+++ b/pkgs/development/tools/easyjson/default.nix
@@ -3,15 +3,15 @@
 
 buildGoPackage rec {
   name = "easyjson-unstable-${version}";
-  version = "2018-03-23";
-  rev = "8b799c424f57fa123fc63a99d6383bc6e4c02578";
+  version = "2018-06-06";
+  rev = "3fdea8d05856a0c8df22ed4bc71b3219245e4485";
 
   goPackagePath = "github.com/mailru/easyjson";
 
   src = fetchgit {
     inherit rev;
     url = "https://github.com/mailru/easyjson";
-    sha256 = "15ba6drfmw98lzw5qjh3ijcxh9iz9rcp3hid169yfd08l06z05w0";
+    sha256 = "0g3crph77yhv4ipdnwqc32z4cp87ahi4ikad5kyy6q4znnxliz74";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/development/tools/misc/gob2/default.nix b/pkgs/development/tools/misc/gob2/default.nix
index 73c9021c5e9f..17aa3214ebcc 100644
--- a/pkgs/development/tools/misc/gob2/default.nix
+++ b/pkgs/development/tools/misc/gob2/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Preprocessor for making GObjects with inline C code";
-    homepage = http://www.jirka.org/gob.html;
+    homepage = https://www.jirka.org/gob.html;
     license = stdenv.lib.licenses.gpl2Plus;
     platforms = stdenv.lib.platforms.unix;
   };
diff --git a/pkgs/development/tools/misc/tokei/default.nix b/pkgs/development/tools/misc/tokei/default.nix
index d1f6cc4ea29b..0059c10afe0c 100644
--- a/pkgs/development/tools/misc/tokei/default.nix
+++ b/pkgs/development/tools/misc/tokei/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   name = "tokei-${version}";
-  version = "7.0.0";
+  version = "7.0.3";
 
   src = fetchFromGitHub {
     owner = "Aaronepower";
     repo = "tokei";
     rev = "v${version}";
-    sha256 = "1c8m2arhy58ky8pzj0dp3w9gpacia9jwmayi0il640l4fm8nr734";
+    sha256 = "1n2ddwmyd414p6a98khq8y0bmljwcclw30wy5zy5b6z1l40yxcza";
   };
 
-  cargoSha256 = "1cl4fjbvrw7zhpb8rxj566ddlxbj9vdsb1cp7mh6llmvaia2vgks";
+  cargoSha256 = "0ngqk8nnw00s25y91vgsl37j26xl2ws75l3lvklf9gbd4bi01crv";
 
   meta = with stdenv.lib; {
     description = "Count code, quickly";