From e120915248d2936d9f99ee4498dc29e392891d2a Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Thu, 5 Apr 2018 10:16:20 -0400 Subject: [PATCH 1/3] mesos: fix on darwin by disabling java interface --- .../networking/cluster/mesos/default.nix | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/pkgs/applications/networking/cluster/mesos/default.nix b/pkgs/applications/networking/cluster/mesos/default.nix index 68c66d78de1c..961c0afc5c50 100644 --- a/pkgs/applications/networking/cluster/mesos/default.nix +++ b/pkgs/applications/networking/cluster/mesos/default.nix @@ -4,6 +4,7 @@ , leveldb, glog, perf, utillinux, libnl, iproute, openssl, libevent , ethtool, coreutils, which, iptables, maven , bash, autoreconfHook +, withJava ? !stdenv.isDarwin }: let @@ -46,11 +47,13 @@ in stdenv.mkDerivation rec { autoreconfHook ]; buildInputs = [ - makeWrapper curl sasl jdk + makeWrapper curl sasl python wrapPython boto setuptools leveldb - subversion apr glog openssl libevent maven + subversion apr glog openssl libevent ] ++ lib.optionals stdenv.isLinux [ libnl + ] ++ lib.optionals withJava [ + jdk maven ]; propagatedBuildInputs = [ @@ -181,6 +184,7 @@ in stdenv.mkDerivation rec { "--with-libevent=${libevent.dev}" "--with-protobuf=${pythonProtobuf.protobuf}" "PROTOBUF_JAR=${mavenRepo}/com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.jar" + (if withJava then "--enable-java" else "--disable-java") ] ++ lib.optionals stdenv.isLinux [ "--with-network-isolator" "--with-nl=${libnl.dev}" @@ -190,16 +194,6 @@ in stdenv.mkDerivation rec { rm -rf $out/var rm $out/bin/*.sh - mkdir -p $out/share/java - cp src/java/target/mesos-*.jar $out/share/java - - MESOS_NATIVE_JAVA_LIBRARY=$out/lib/libmesos${stdenv.hostPlatform.extensions.sharedLibrary} - - mkdir -p $out/nix-support - touch $out/nix-support/setup-hook - echo "export MESOS_NATIVE_JAVA_LIBRARY=$MESOS_NATIVE_JAVA_LIBRARY" >> $out/nix-support/setup-hook - echo "export MESOS_NATIVE_LIBRARY=$MESOS_NATIVE_JAVA_LIBRARY" >> $out/nix-support/setup-hook - # Inspired by: pkgs/development/python-modules/generic/default.nix pushd src/python mkdir -p $out/lib/${python.libPrefix}/site-packages @@ -218,6 +212,16 @@ in stdenv.mkDerivation rec { --old-and-unmanageable \ --prefix="$out" popd + '' + stdenv.lib.optionalString withJava '' + mkdir -p $out/share/java + cp src/java/target/mesos-*.jar $out/share/java + + MESOS_NATIVE_JAVA_LIBRARY=$out/lib/libmesos${stdenv.hostPlatform.extensions.sharedLibrary} + + mkdir -p $out/nix-support + touch $out/nix-support/setup-hook + echo "export MESOS_NATIVE_JAVA_LIBRARY=$MESOS_NATIVE_JAVA_LIBRARY" >> $out/nix-support/setup-hook + echo "export MESOS_NATIVE_LIBRARY=$MESOS_NATIVE_JAVA_LIBRARY" >> $out/nix-support/setup-hook ''; postFixup = '' @@ -248,6 +252,6 @@ in stdenv.mkDerivation rec { license = licenses.asl20; description = "A cluster manager that provides efficient resource isolation and sharing across distributed applications, or frameworks"; maintainers = with maintainers; [ cstrahan kevincox offline ]; - platforms = platforms.linux; + platforms = platforms.unix; }; } From c639649ef05a888021bb3d6b7f06d18686b11632 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Thu, 5 Apr 2018 13:58:07 -0400 Subject: [PATCH 2/3] leveldb: fix install_name on darwin --- pkgs/development/libraries/leveldb/default.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/leveldb/default.nix b/pkgs/development/libraries/leveldb/default.nix index 3ff2ca0b0ee4..2b50c09af5cc 100644 --- a/pkgs/development/libraries/leveldb/default.nix +++ b/pkgs/development/libraries/leveldb/default.nix @@ -15,7 +15,12 @@ stdenv.mkDerivation rec { make all leveldbutil libmemenv.a ''; - installPhase = " + installPhase = (stdenv.lib.optionalString stdenv.isDarwin '' + for file in *.dylib*; do + install_name_tool -id $out/lib/$file $file + done + '') + # XXX consider removing above after transition to cmake in the next release + " mkdir -p $out/{bin,lib,include} cp -r include $out From 3868973c414d604f4b441784f5e017367126985d Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Thu, 5 Apr 2018 17:48:57 -0400 Subject: [PATCH 3/3] libevent: fix install_name on darwin --- pkgs/development/libraries/libevent/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/libevent/default.nix b/pkgs/development/libraries/libevent/default.nix index e14f4cbf5d63..871437f19082 100644 --- a/pkgs/development/libraries/libevent/default.nix +++ b/pkgs/development/libraries/libevent/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, findutils +{ stdenv, fetchurl, findutils, fixDarwinDylibNames , sslSupport? true, openssl }: @@ -26,6 +26,7 @@ stdenv.mkDerivation rec { buildInputs = [] ++ stdenv.lib.optional sslSupport openssl ++ stdenv.lib.optional stdenv.isCygwin findutils + ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames ; postInstall = stdenv.lib.optionalString sslSupport ''