From 5aec3f96a26806dc26759bc2f13b062caaad3c17 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Tue, 12 Sep 2017 15:36:41 -0400 Subject: [PATCH] treewide: Use `*Platform.extensions` --- .../networking/cluster/mesos/default.nix | 3 +-- pkgs/development/compilers/llvm/3.9/llvm.nix | 3 +-- pkgs/development/compilers/llvm/4/llvm.nix | 3 +-- pkgs/development/libraries/armadillo/default.nix | 6 ++---- .../libraries/libhdhomerun/default.nix | 6 ++---- pkgs/development/libraries/libsvm/default.nix | 6 +++--- .../science/math/suitesparse/default.nix | 6 +++--- pkgs/development/libraries/tbb/default.nix | 5 +---- pkgs/development/libraries/tinyxml/2.6.2.nix | 6 +++--- pkgs/development/python-modules/Wand/default.nix | 6 +++--- .../python-modules/shapely/default.nix | 4 ++-- .../ruby-modules/gem-config/default.nix | 2 +- pkgs/test/cc-wrapper/default.nix | 11 ++++++----- pkgs/test/stdenv-inputs/default.nix | 12 ++++++++---- pkgs/tools/networking/eggdrop/default.nix | 6 +----- pkgs/tools/security/yara/default.nix | 8 ++------ pkgs/top-level/python-packages.nix | 15 ++++----------- 17 files changed, 44 insertions(+), 64 deletions(-) diff --git a/pkgs/applications/networking/cluster/mesos/default.nix b/pkgs/applications/networking/cluster/mesos/default.nix index 16ef657111f..0506f7c154d 100644 --- a/pkgs/applications/networking/cluster/mesos/default.nix +++ b/pkgs/applications/networking/cluster/mesos/default.nix @@ -8,7 +8,6 @@ let mavenRepo = import ./mesos-deps.nix { inherit stdenv curl; }; - soext = if stdenv.system == "x86_64-darwin" then "dylib" else "so"; # `tar -z` requires gzip on $PATH, so wrap tar. # At some point, we should try to patch mesos so we add gzip to the PATH when # tar is invoked. I think that only needs to be done here: @@ -193,7 +192,7 @@ in stdenv.mkDerivation rec { mkdir -p $out/share/java cp src/java/target/mesos-*.jar $out/share/java - MESOS_NATIVE_JAVA_LIBRARY=$out/lib/libmesos.${soext} + MESOS_NATIVE_JAVA_LIBRARY=$out/lib/libmesos${stdenv.hostPlatform.extensions.sharedLibrary} mkdir -p $out/nix-support touch $out/nix-support/setup-hook diff --git a/pkgs/development/compilers/llvm/3.9/llvm.nix b/pkgs/development/compilers/llvm/3.9/llvm.nix index 654e1ce0023..2cdbef4b5b8 100644 --- a/pkgs/development/compilers/llvm/3.9/llvm.nix +++ b/pkgs/development/compilers/llvm/3.9/llvm.nix @@ -26,7 +26,6 @@ assert (hostPlatform != buildPlatform) -> !enableSharedLibraries; let src = fetch "llvm" "1vi9sf7rx1q04wj479rsvxayb6z740iaz3qniwp266fgp5a07n8z"; - shlib = if stdenv.isDarwin then "dylib" else "so"; # Used when creating a version-suffixed symlink of libLLVM.dylib shortVersion = with stdenv.lib; @@ -124,7 +123,7 @@ in stdenv.mkDerivation rec { postInstall = "" + stdenv.lib.optionalString (enableSharedLibraries) '' moveToOutput "lib/libLLVM-*" "$lib" - moveToOutput "lib/libLLVM.${shlib}" "$lib" + moveToOutput "lib/libLLVM${stdenv.hostPlatform.extensions.sharedLibrary}" "$lib" substituteInPlace "$out/lib/cmake/llvm/LLVMExports-release.cmake" \ --replace "\''${_IMPORT_PREFIX}/lib/libLLVM-" "$lib/lib/libLLVM-" '' diff --git a/pkgs/development/compilers/llvm/4/llvm.nix b/pkgs/development/compilers/llvm/4/llvm.nix index 4978570334e..a5aa810fb80 100644 --- a/pkgs/development/compilers/llvm/4/llvm.nix +++ b/pkgs/development/compilers/llvm/4/llvm.nix @@ -23,7 +23,6 @@ let src = fetch "llvm" "0l9bf7kdwhlj0kq1hawpyxhna1062z3h7qcz2y8nfl9dz2qksy6s"; - shlib = if stdenv.isDarwin then "dylib" else "so"; # Used when creating a version-suffixed symlink of libLLVM.dylib shortVersion = with stdenv.lib; @@ -115,7 +114,7 @@ in stdenv.mkDerivation rec { '' + stdenv.lib.optionalString enableSharedLibraries '' moveToOutput "lib/libLLVM-*" "$lib" - moveToOutput "lib/libLLVM.${shlib}" "$lib" + moveToOutput "lib/libLLVM${stdenv.hostPlatform.extensions.sharedLibrary}" "$lib" substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \ --replace "\''${_IMPORT_PREFIX}/lib/libLLVM-" "$lib/lib/libLLVM-" '' diff --git a/pkgs/development/libraries/armadillo/default.nix b/pkgs/development/libraries/armadillo/default.nix index 514c73f5e0f..7a3e0b2083c 100644 --- a/pkgs/development/libraries/armadillo/default.nix +++ b/pkgs/development/libraries/armadillo/default.nix @@ -12,10 +12,8 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; buildInputs = [ openblasCompat superlu hdf5 ]; - cmakeFlags = let - libSuff = if stdenv.isDarwin then "dylib" else "so"; - in [ - "-DLAPACK_LIBRARY=${openblasCompat}/lib/libopenblas.${libSuff}" + cmakeFlags = [ + "-DLAPACK_LIBRARY=${openblasCompat}/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary}" "-DDETECT_HDF5=ON" ]; diff --git a/pkgs/development/libraries/libhdhomerun/default.nix b/pkgs/development/libraries/libhdhomerun/default.nix index 273563b2a99..5dc1fb93834 100644 --- a/pkgs/development/libraries/libhdhomerun/default.nix +++ b/pkgs/development/libraries/libhdhomerun/default.nix @@ -14,11 +14,9 @@ stdenv.mkDerivation { substituteInPlace Makefile --replace "-arch i386" "" ''; - installPhase = let - libSuff = if stdenv.isDarwin then "dylib" else "so"; - in '' + installPhase = '' mkdir -p $out/{bin,lib,include/hdhomerun} - install -Dm444 libhdhomerun.${libSuff} $out/lib + install -Dm444 libhdhomerun${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib install -Dm555 hdhomerun_config $out/bin cp *.h $out/include/hdhomerun ''; diff --git a/pkgs/development/libraries/libsvm/default.nix b/pkgs/development/libraries/libsvm/default.nix index 8b716d055a0..a366baf27e3 100644 --- a/pkgs/development/libraries/libsvm/default.nix +++ b/pkgs/development/libraries/libsvm/default.nix @@ -15,11 +15,11 @@ stdenv.mkDerivation rec { ''; installPhase = let - libSuff = if stdenv.isDarwin then "dylib" else "so"; + libSuff = stdenv.hostPlatform.extensions.sharedLibrary; in '' mkdir -p $out/lib $out/bin $out/include; - cp libsvm.so.2 $out/lib/libsvm.2.${libSuff}; - ln -s $out/lib/libsvm.2.${libSuff} $out/lib/libsvm.${libSuff}; + cp libsvm.so.2 $out/lib/libsvm.2${libSuff}; + ln -s $out/lib/libsvm.2${libSuff} $out/lib/libsvm${libSuff}; cp svm-scale svm-train svm-predict $out/bin; cp svm.h $out/include; ''; diff --git a/pkgs/development/libraries/science/math/suitesparse/default.nix b/pkgs/development/libraries/science/math/suitesparse/default.nix index f38de088424..1ce56d1e49f 100644 --- a/pkgs/development/libraries/science/math/suitesparse/default.nix +++ b/pkgs/development/libraries/science/math/suitesparse/default.nix @@ -7,7 +7,7 @@ let name = "suitesparse-${version}"; int_t = if openblas.blas64 then "int64_t" else "int32_t"; - SHLIB_EXT = if stdenv.isDarwin then "dylib" else "so"; + SHLIB_EXT = stdenv.hostPlatform.extensions.sharedLibrary; in stdenv.mkDerivation { inherit name; @@ -64,10 +64,10 @@ stdenv.mkDerivation { for i in "$out"/lib/lib*.a; do ar -x $i done - ${if enableCuda then cudatoolkit else stdenv.cc.outPath}/bin/${if enableCuda then "nvcc" else "cc"} *.o ${if stdenv.isDarwin then "-dynamiclib" else "--shared"} -o "$out/lib/libsuitesparse.${SHLIB_EXT}" -lopenblas ${stdenv.lib.optionalString enableCuda "-lcublas"} + ${if enableCuda then cudatoolkit else stdenv.cc.outPath}/bin/${if enableCuda then "nvcc" else "cc"} *.o ${if stdenv.isDarwin then "-dynamiclib" else "--shared"} -o "$out/lib/libsuitesparse${SHLIB_EXT}" -lopenblas ${stdenv.lib.optionalString enableCuda "-lcublas"} ) for i in umfpack cholmod amd camd colamd spqr; do - ln -s libsuitesparse.${SHLIB_EXT} "$out"/lib/lib$i.${SHLIB_EXT} + ln -s libsuitesparse${SHLIB_EXT} "$out"/lib/lib$i${SHLIB_EXT} done # Install documentation diff --git a/pkgs/development/libraries/tbb/default.nix b/pkgs/development/libraries/tbb/default.nix index 8dd96cdd003..a8a0d5dc2b3 100644 --- a/pkgs/development/libraries/tbb/default.nix +++ b/pkgs/development/libraries/tbb/default.nix @@ -1,8 +1,5 @@ { stdenv, fetchurl }: -let - SHLIB_EXT = if stdenv.isDarwin then "dylib" else "so"; -in stdenv.mkDerivation { name = "tbb-4.4-u2"; @@ -16,7 +13,7 @@ stdenv.mkDerivation { installPhase = '' mkdir -p $out/{lib,share/doc} - cp "build/"*release*"/"*${SHLIB_EXT}* $out/lib/ + cp "build/"*release*"/"*${stdenv.hostPlatform.extensions.sharedLibrary}* $out/lib/ mv include $out/ rm $out/include/index.html mv doc/html $out/share/doc/tbb diff --git a/pkgs/development/libraries/tinyxml/2.6.2.nix b/pkgs/development/libraries/tinyxml/2.6.2.nix index b208631eeaf..cc374345c2e 100644 --- a/pkgs/development/libraries/tinyxml/2.6.2.nix +++ b/pkgs/development/libraries/tinyxml/2.6.2.nix @@ -2,7 +2,7 @@ let version = "2.6.2"; - SHLIB_EXT = if stdenv.isDarwin then "dylib" else "so"; + SHLIB_EXT = stdenv.hostPlatform.extensions.sharedLibrary; in stdenv.mkDerivation { name = "tinyxml-${version}"; @@ -38,7 +38,7 @@ in stdenv.mkDerivation { # build the lib as a shared library ''${CXX} -Wall -O2 -shared -fpic tinyxml.cpp \ tinyxmlerror.cpp tinyxmlparser.cpp \ - tinystr.cpp -o libtinyxml.${SHLIB_EXT} + tinystr.cpp -o libtinyxml${SHLIB_EXT} ''; doCheck = true; @@ -55,7 +55,7 @@ in stdenv.mkDerivation { mkdir -pv $out/lib/pkgconfig/ mkdir -pv $out/share/doc/tinyxml/ - cp -v libtinyxml.${SHLIB_EXT} $out/lib/ + cp -v libtinyxml${SHLIB_EXT} $out/lib/ cp -v *.h $out/include/ substituteInPlace tinyxml.pc --replace "@out@" "$out" diff --git a/pkgs/development/python-modules/Wand/default.nix b/pkgs/development/python-modules/Wand/default.nix index f7b6aeae615..bc0472bc005 100644 --- a/pkgs/development/python-modules/Wand/default.nix +++ b/pkgs/development/python-modules/Wand/default.nix @@ -7,12 +7,12 @@ , psutil , memory_profiler , pytest_xdist -, sharedLibraryExtension }: let - magick_wand_library = "${imagemagick}/lib/libMagickWand-6.Q16${sharedLibraryExtension}"; - imagemagick_library = "${imagemagick}/lib/libMagickCore-6.Q16${sharedLibraryExtension}"; + soext = stdenv.hostPlatform.extensions.sharedLibrary; + magick_wand_library = "${imagemagick}/lib/libMagickWand-6.Q16${soext}"; + imagemagick_library = "${imagemagick}/lib/libMagickCore-6.Q16${soext}"; in buildPythonPackage rec { pname = "Wand"; version = "0.4.4"; diff --git a/pkgs/development/python-modules/shapely/default.nix b/pkgs/development/python-modules/shapely/default.nix index 8b8b06f9a2c..48d4fa68f65 100644 --- a/pkgs/development/python-modules/shapely/default.nix +++ b/pkgs/development/python-modules/shapely/default.nix @@ -1,5 +1,5 @@ { stdenv, buildPythonPackage, fetchPypi -, geos, glibcLocales, pytest, cython, sharedLibraryExtension +, geos, glibcLocales, pytest, cython , numpy }: @@ -26,7 +26,7 @@ buildPythonPackage rec { patchPhase = let libc = if stdenv.isDarwin then "libc.dylib" else "libc.so.6"; in '' - sed -i "s|_lgeos = load_dll('geos_c', fallbacks=.*)|_lgeos = load_dll('geos_c', fallbacks=['${geos}/lib/libgeos_c${sharedLibraryExtension}'])|" shapely/geos.py + sed -i "s|_lgeos = load_dll('geos_c', fallbacks=.*)|_lgeos = load_dll('geos_c', fallbacks=['${geos}/lib/libgeos_c${stdenv.hostPlatform.extensions.sharedLibrary}'])|" shapely/geos.py sed -i "s|free = load_dll('c').free|free = load_dll('c', fallbacks=['${stdenv.cc.libc}/lib/${stdenv.cc.libc}']).free|" shapely/geos.py ''; diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix index 19973c18baf..bf1f9d14b77 100644 --- a/pkgs/development/ruby-modules/gem-config/default.nix +++ b/pkgs/development/ruby-modules/gem-config/default.nix @@ -194,7 +194,7 @@ in rbnacl = spec: { postInstall = '' sed -i $(cat $out/nix-support/gem-meta/install-path)/lib/rbnacl.rb -e "2a \ - RBNACL_LIBSODIUM_GEM_LIB_PATH = '${libsodium.out}/lib/libsodium.${if stdenv.isDarwin then "dylib" else "so"}' + RBNACL_LIBSODIUM_GEM_LIB_PATH = '${libsodium.out}/lib/libsodium${stdenv.hostPlatform.extensions.sharedLibrary}' " ''; }; diff --git a/pkgs/test/cc-wrapper/default.nix b/pkgs/test/cc-wrapper/default.nix index d8a5e135581..41a7685ed2e 100644 --- a/pkgs/test/cc-wrapper/default.nix +++ b/pkgs/test/cc-wrapper/default.nix @@ -1,9 +1,5 @@ { stdenv }: -let - shlib = if stdenv.isDarwin then "dylib" else "so"; -in - stdenv.mkDerivation { name = "cc-wrapper-test"; @@ -34,7 +30,12 @@ stdenv.mkDerivation { printf "checking whether compiler uses NIX_LDFLAGS... " >&2 mkdir -p foo/lib - $CC -shared ${stdenv.lib.optionalString stdenv.isDarwin "-Wl,-install_name,@rpath/libfoo.dylib"} -DVALUE=42 -o foo/lib/libfoo.${shlib} ${./foo.c} + $CC -shared \ + ${stdenv.lib.optionalString stdenv.isDarwin "-Wl,-install_name,@rpath/libfoo.dylib"} \ + -DVALUE=42 \ + -o foo/lib/libfoo${stdenv.hostPlatform.extensions.sharedLibrary} \ + ${./foo.c} + NIX_LDFLAGS="-L$NIX_BUILD_TOP/foo/lib -rpath $NIX_BUILD_TOP/foo/lib" $CC -lfoo -o ldflags-check ${./ldflags-main.c} ./ldflags-check diff --git a/pkgs/test/stdenv-inputs/default.nix b/pkgs/test/stdenv-inputs/default.nix index d1eb8b9bfe2..13fa985839d 100644 --- a/pkgs/test/stdenv-inputs/default.nix +++ b/pkgs/test/stdenv-inputs/default.nix @@ -1,8 +1,6 @@ { stdenv }: let - shlib = if stdenv.isDarwin then "dylib" else "so"; - foo = stdenv.mkDerivation { name = "foo-test"; @@ -13,7 +11,10 @@ let $CC -o $out/bin/foo ${./cc-main.c} chmod +x $out/bin/foo cp ${./foo.c} $out/include/foo.h - $CC -shared ${stdenv.lib.optionalString stdenv.isDarwin "-Wl,-install_name,$out/lib/libfoo.dylib"} -o $out/lib/libfoo.${shlib} ${./foo.c} + $CC -shared \ + ${stdenv.lib.optionalString stdenv.isDarwin "-Wl,-install_name,$out/lib/libfoo.dylib"} \ + -o $out/lib/libfoo${stdenv.hostPlatform.extensions.sharedLibrary} \ + ${./foo.c} ''; }; @@ -28,7 +29,10 @@ let $CC -o $out/bin/bar ${./cc-main.c} chmod +x $out/bin/bar cp ${./bar.c} $dev/include/bar.h - $CC -shared ${stdenv.lib.optionalString stdenv.isDarwin "-Wl,-install_name,$dev/lib/libbar.dylib"} -o $dev/lib/libbar.${shlib} ${./bar.c} + $CC -shared \ + ${stdenv.lib.optionalString stdenv.isDarwin "-Wl,-install_name,$dev/lib/libbar.dylib"} \ + -o $dev/lib/libbar${stdenv.hostPlatform.extensions.sharedLibrary} \ + ${./bar.c} ''; }; in diff --git a/pkgs/tools/networking/eggdrop/default.nix b/pkgs/tools/networking/eggdrop/default.nix index fda2b47a244..12d9da87b39 100644 --- a/pkgs/tools/networking/eggdrop/default.nix +++ b/pkgs/tools/networking/eggdrop/default.nix @@ -1,9 +1,5 @@ { stdenv, fetchFromGitHub, tcl }: -let - shlib = if stdenv.isDarwin then "dylib" else "so"; -in - stdenv.mkDerivation rec { name = "eggdrop-${version}"; version = "1.6.21-nix1"; @@ -29,7 +25,7 @@ stdenv.mkDerivation rec { ''; configureFlags = [ - "--with-tcllib=${tcl}/lib/lib${tcl.libPrefix}.${shlib}" + "--with-tcllib=${tcl}/lib/lib${tcl.libPrefix}${stdenv.hostPlatform.extensions.sharedLibrary}" "--with-tclinc=${tcl}/include/tcl.h" ]; diff --git a/pkgs/tools/security/yara/default.nix b/pkgs/tools/security/yara/default.nix index 21e5c3ffcef..34eb5583c45 100644 --- a/pkgs/tools/security/yara/default.nix +++ b/pkgs/tools/security/yara/default.nix @@ -17,20 +17,16 @@ stdenv.mkDerivation rec { # FIXME: this is probably not the right way to make it work # make[2]: *** No rule to make target 'libyara/.libs/libyara.a', needed by 'yara'. Stop. - dynamic_library_extension = "" - + stdenv.lib.optionalString stdenv.isLinux "so" - + stdenv.lib.optionalString stdenv.isDarwin "dylib" - ; prePatch = '' cat >staticlibrary.patch <