Merge branch 'master' into staging
This commit is contained in:
@@ -6,12 +6,32 @@
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (stdenv.lib) optionalString;
|
||||
|
||||
needsPatchelf = stdenv.isLinux;
|
||||
inherit (stdenv.lib) getLib optionalString;
|
||||
inherit (darwin) libiconv;
|
||||
inherit (darwin.apple_sdk.frameworks) Security;
|
||||
|
||||
bootstrapping = versionType == "bootstrap";
|
||||
|
||||
patchBootstrapCargo = ''
|
||||
${optionalString (stdenv.isLinux && bootstrapping) ''
|
||||
patchelf \
|
||||
--set-rpath "${stdenv.lib.makeLibraryPath [ curl zlib ]}" \
|
||||
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
|
||||
"$out/bin/cargo"
|
||||
''}
|
||||
${optionalString (stdenv.isDarwin && bootstrapping) ''
|
||||
install_name_tool \
|
||||
-change /usr/lib/libiconv.2.dylib '${getLib libiconv}/lib/libiconv.2.dylib' \
|
||||
"$out/bin/cargo"
|
||||
install_name_tool \
|
||||
-change /usr/lib/libcurl.4.dylib '${getLib curl}/lib/libcurl.4.dylib' \
|
||||
"$out/bin/cargo"
|
||||
install_name_tool \
|
||||
-change /usr/lib/libz.1.dylib '${getLib zlib}/lib/libz.1.dylib' \
|
||||
"$out/bin/cargo"
|
||||
''}
|
||||
'';
|
||||
|
||||
installComponents
|
||||
= "rustc,rust-std-${platform}"
|
||||
+ (optionalString bootstrapping ",rust-docs,cargo")
|
||||
@@ -34,22 +54,21 @@ rec {
|
||||
license = [ licenses.mit licenses.asl20 ];
|
||||
};
|
||||
|
||||
phases = ["unpackPhase" "installPhase"];
|
||||
phases = ["unpackPhase" "installPhase" "fixupPhase"];
|
||||
|
||||
propagatedBuildInputs = stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
|
||||
propagatedBuildInputs = stdenv.lib.optional stdenv.isDarwin Security;
|
||||
|
||||
installPhase = ''
|
||||
./install.sh --prefix=$out \
|
||||
--components=${installComponents}
|
||||
|
||||
${optionalString (needsPatchelf && bootstrapping) ''
|
||||
${optionalString (stdenv.isLinux && bootstrapping) ''
|
||||
patchelf \
|
||||
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
|
||||
"$out/bin/rustc"
|
||||
patchelf \
|
||||
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
|
||||
"$out/bin/rustdoc"
|
||||
patchelf \
|
||||
--set-rpath "${stdenv.lib.makeLibraryPath [ curl zlib ]}" \
|
||||
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
|
||||
"$out/bin/cargo"
|
||||
''}
|
||||
${optionalString (stdenv.isDarwin && bootstrapping) ''
|
||||
install_name_tool -change /usr/lib/libiconv.2.dylib '${darwin.libiconv}/lib/libiconv.2.dylib' "$out/bin/cargo"
|
||||
@@ -57,19 +76,14 @@ rec {
|
||||
install_name_tool -change /usr/lib/libz.1.dylib '${stdenv.lib.getLib zlib}/lib/libz.1.dylib' "$out/bin/cargo"
|
||||
''}
|
||||
|
||||
${optionalString needsPatchelf ''
|
||||
patchelf \
|
||||
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
|
||||
"$out/bin/rustc"
|
||||
${patchBootstrapCargo}
|
||||
|
||||
# Do NOT, I repeat, DO NOT use `wrapProgram` on $out/bin/rustc
|
||||
# (or similar) here. It causes strange effects where rustc loads
|
||||
# the wrong libraries in a bootstrap-build causing failures that
|
||||
# are very hard to track dow. For details, see
|
||||
# https://github.com/rust-lang/rust/issues/34722#issuecomment-232164943
|
||||
''}
|
||||
'';
|
||||
|
||||
};
|
||||
|
||||
cargo = stdenv.mkDerivation rec {
|
||||
@@ -85,19 +99,16 @@ rec {
|
||||
license = [ licenses.mit licenses.asl20 ];
|
||||
};
|
||||
|
||||
phases = ["unpackPhase" "installPhase" "fixupPhase"];
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
phases = ["unpackPhase" "installPhase"];
|
||||
propagatedBuildInputs = stdenv.lib.optional stdenv.isDarwin Security;
|
||||
|
||||
installPhase = ''
|
||||
./install.sh --prefix=$out \
|
||||
--components=cargo
|
||||
|
||||
${optionalString needsPatchelf ''
|
||||
patchelf \
|
||||
--set-rpath "${stdenv.lib.makeLibraryPath [ curl zlib ]}" \
|
||||
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
|
||||
"$out/bin/cargo"
|
||||
''}
|
||||
${patchBootstrapCargo}
|
||||
|
||||
wrapProgram "$out/bin/cargo" \
|
||||
--suffix PATH : "${rustc}/bin"
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
{ stdenv, fetchurl, makeWrapper, cacert, zlib, curl, darwin }:
|
||||
{ stdenv, fetchurl, callPackage }:
|
||||
|
||||
let
|
||||
# Note: the version MUST be one version prior to the version we're
|
||||
# building
|
||||
version = "1.19.0";
|
||||
version = "1.20.0";
|
||||
|
||||
# fetch hashes by running `print-hashes.sh 1.19.0`
|
||||
# fetch hashes by running `print-hashes.sh 1.20.0`
|
||||
hashes = {
|
||||
i686-unknown-linux-gnu = "657b78f3c1a1b4412e12f7278e20cc318022fa276a58f0d38a0d15b515e39713";
|
||||
x86_64-unknown-linux-gnu = "30ff67884464d32f6bbbde4387e7557db98868e87fb2afbb77c9b7716e3bff09";
|
||||
i686-apple-darwin = "bdfd2189245dc5764c9f26bdba1429c2bf9d57477d8e6e3f0ba42ea0dc63edeb";
|
||||
x86_64-apple-darwin = "5c668fb60a3ba3e97dc2cb8967fc4bb9422b629155284dcb89f94d116bb17820";
|
||||
i686-unknown-linux-gnu = "abe592e06616cdc2fcca56ddbe482050dd49a1fada35e2af031c64fe6eb14668";
|
||||
x86_64-unknown-linux-gnu = "ca1cf3aed73ff03d065a7d3e57ecca92228d35dc36d9274a6597441319f18eb8";
|
||||
i686-apple-darwin = "b3c2470f8f132d285e6c989681e251592b67071bc9d93cac8a2e6b66f7bdfcb5";
|
||||
x86_64-apple-darwin = "fa1fb8896d5e327cbe6deeb50e6e9a3346de629f2e6bcbd8c10f19f3e2ed67d5";
|
||||
};
|
||||
|
||||
platform =
|
||||
@@ -29,9 +29,8 @@ let
|
||||
sha256 = hashes."${platform}";
|
||||
};
|
||||
|
||||
in import ./binaryBuild.nix
|
||||
{ inherit stdenv fetchurl makeWrapper cacert zlib curl darwin;
|
||||
in callPackage ./binaryBuild.nix
|
||||
{ inherit version src platform;
|
||||
buildRustPackage = null;
|
||||
inherit version src platform;
|
||||
versionType = "bootstrap";
|
||||
}
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
{ stdenv, fetchFromGitHub, file, curl, pkgconfig, python, openssl, cmake, zlib
|
||||
, makeWrapper, libiconv, cacert, rustPlatform, rustc, libgit2, darwin
|
||||
, version, srcSha, cargoSha256
|
||||
, patches ? []}:
|
||||
, patches ? [] }:
|
||||
|
||||
let
|
||||
inherit (darwin.apple_sdk.frameworks) CoreFoundation;
|
||||
in
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
name = "cargo-${version}";
|
||||
@@ -21,13 +25,17 @@ rustPlatform.buildRustPackage rec {
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [ file curl python openssl cmake zlib makeWrapper libgit2 ]
|
||||
# FIXME: Use impure version of CoreFoundation because of missing symbols.
|
||||
# CFURLSetResourcePropertyForKey is defined in the headers but there's no
|
||||
# corresponding implementation in the sources from opensource.apple.com.
|
||||
++ stdenv.lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.CoreFoundation libiconv ];
|
||||
++ stdenv.lib.optionals stdenv.isDarwin [ CoreFoundation libiconv ];
|
||||
|
||||
LIBGIT2_SYS_USE_PKG_CONFIG=1;
|
||||
|
||||
# FIXME: Use impure version of CoreFoundation because of missing symbols.
|
||||
# CFURLSetResourcePropertyForKey is defined in the headers but there's no
|
||||
# corresponding implementation in the sources from opensource.apple.com.
|
||||
preConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
|
||||
export NIX_CFLAGS_COMPILE="-F${CoreFoundation}/Library/Frameworks $NIX_CFLAGS_COMPILE"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
# NOTE: We override the `http.cainfo` option usually specified in
|
||||
# `.cargo/config`. This is an issue when users want to specify
|
||||
@@ -36,8 +44,7 @@ rustPlatform.buildRustPackage rec {
|
||||
wrapProgram "$out/bin/cargo" \
|
||||
--suffix PATH : "${rustc}/bin" \
|
||||
--set CARGO_HTTP_CAINFO "${cacert}/etc/ssl/certs/ca-bundle.crt" \
|
||||
--set SSL_CERT_FILE "${cacert}/etc/ssl/certs/ca-bundle.crt" \
|
||||
${stdenv.lib.optionalString stdenv.isDarwin ''--suffix DYLD_LIBRARY_PATH : "${rustc}/lib"''}
|
||||
--set SSL_CERT_FILE "${cacert}/etc/ssl/certs/ca-bundle.crt"
|
||||
'';
|
||||
|
||||
checkPhase = ''
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
let
|
||||
rustPlatform = recurseIntoAttrs (makeRustPlatform (callPackage ./bootstrap.nix {}));
|
||||
version = "1.20.0";
|
||||
version = "1.21.0";
|
||||
in
|
||||
rec {
|
||||
rustc = callPackage ./rustc.nix {
|
||||
@@ -18,7 +18,7 @@ rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://static.rust-lang.org/dist/rustc-${version}-src.tar.gz";
|
||||
sha256 = "0542y4rnzlsrricai130mqyxl8r6rd991frb4qsnwb27yigqg91a";
|
||||
sha256 = "1yj8lnxybjrybp00fqhxw8fpr641dh8wcn9mk44xjnsb4i1c21qp";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
{ callPackage, fetchFromGitHub, ... } @ args:
|
||||
|
||||
callPackage ./generic.nix (args // rec {
|
||||
version = "1.4.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "msgpack";
|
||||
repo = "msgpack-c";
|
||||
rev = "cpp-${version}";
|
||||
sha256 = "0zlanifi5hmm303pzykpidq5jbapl891zwkwhkllfn8ab1jvzbaa";
|
||||
};
|
||||
})
|
||||
@@ -1,12 +0,0 @@
|
||||
{ callPackage, fetchFromGitHub, ... } @ args:
|
||||
|
||||
callPackage ./generic.nix (args // rec {
|
||||
version = "2.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "msgpack";
|
||||
repo = "msgpack-c";
|
||||
rev = "cpp-${version}";
|
||||
sha256 = "189m44pwpcpf7g4yhzfla4djqyp2kl54wxmwfaj94gwgj5s370i7";
|
||||
};
|
||||
})
|
||||
@@ -7,12 +7,12 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "ycmd-${version}";
|
||||
version = "2017-03-27";
|
||||
version = "2017-11-05";
|
||||
|
||||
src = fetchgit {
|
||||
url = "git://github.com/Valloric/ycmd.git";
|
||||
rev = "2ef1ae0d00a06a47fed3aacfd465a310e8bdb0d2";
|
||||
sha256 = "0p5knlxgy66zi229ns1lfdhz5lram93vahmmk54w98fr3h8b1yfj";
|
||||
rev = "0ca16e7ba3a9078b697befdce64104e61829aa3b";
|
||||
sha256 = "0bs94iv521ac2n53n3k8mw3s6v0hi3hhxhjsr0ips3n99al8wndi";
|
||||
};
|
||||
|
||||
buildInputs = [ cmake boost ]
|
||||
|
||||
@@ -1,16 +1,33 @@
|
||||
diff --git a/cpp/ycm/CMakeLists.txt b/cpp/ycm/CMakeLists.txt
|
||||
index 00e4882..8f29797 100644
|
||||
index 133c987a..33625271 100644
|
||||
--- a/cpp/ycm/CMakeLists.txt
|
||||
+++ b/cpp/ycm/CMakeLists.txt
|
||||
@@ -310,11 +310,6 @@ if ( EXTERNAL_LIBCLANG_PATH OR USE_SYSTEM_LIBCLANG )
|
||||
# our libraries require, in particular the Python one (from pyenv for
|
||||
# instance).
|
||||
set( CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE )
|
||||
- # When loading our library, the dynamic linker will look for
|
||||
- # libclang.so.4, not libclang.so.4.x.
|
||||
- file( RENAME
|
||||
- ${EXTERNAL_LIBCLANG_PATH}.${CLANG_MAJOR_VERSION}.${CLANG_MINOR_VERSION}
|
||||
- ${EXTERNAL_LIBCLANG_PATH}.${CLANG_MAJOR_VERSION} )
|
||||
endif()
|
||||
@@ -359,28 +359,6 @@ if( LIBCLANG_TARGET )
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "${PATH_TO_LLVM_ROOT}/bin/libclang.dll" "$<TARGET_FILE_DIR:${PROJECT_NAME}>"
|
||||
)
|
||||
- else()
|
||||
- add_custom_command(
|
||||
- TARGET ${PROJECT_NAME}
|
||||
- POST_BUILD
|
||||
- COMMAND ${CMAKE_COMMAND} -E copy "${LIBCLANG_TARGET}" "$<TARGET_FILE_DIR:${PROJECT_NAME}>"
|
||||
- )
|
||||
-
|
||||
- if( NOT APPLE )
|
||||
- # When loading our library, the dynamic linker may look for
|
||||
- # libclang.so.x instead of libclang.so.x.y. Create the corresponding
|
||||
- # symlink.
|
||||
- get_filename_component( LIBCLANG_NAME ${LIBCLANG_TARGET} NAME )
|
||||
- string( REGEX REPLACE "([^.]+).([0-9]+).([0-9]+)$" "\\1.\\2"
|
||||
- LIBCLANG_SONAME ${LIBCLANG_NAME} )
|
||||
- add_custom_command(
|
||||
- TARGET ${PROJECT_NAME}
|
||||
- POST_BUILD
|
||||
- COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||
- "${LIBCLANG_NAME}"
|
||||
- "$<TARGET_FILE_DIR:${PROJECT_NAME}>/${LIBCLANG_SONAME}"
|
||||
- )
|
||||
- endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user