From 4c538d022d7a573f9d155842327e5751109bec34 Mon Sep 17 00:00:00 2001 From: Lionello Lunesu Date: Sat, 18 Apr 2020 18:11:47 +0800 Subject: [PATCH 1/3] ldc: 1.17.0 -> 1.20.1 --- pkgs/development/compilers/ldc/binary.nix | 41 +++++ pkgs/development/compilers/ldc/bootstrap.nix | 10 ++ pkgs/development/compilers/ldc/default.nix | 174 +------------------ pkgs/development/compilers/ldc/generic.nix | 164 +++++++++++++++++ pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 1 + 6 files changed, 220 insertions(+), 171 deletions(-) create mode 100644 pkgs/development/compilers/ldc/binary.nix create mode 100644 pkgs/development/compilers/ldc/bootstrap.nix create mode 100644 pkgs/development/compilers/ldc/generic.nix diff --git a/pkgs/development/compilers/ldc/binary.nix b/pkgs/development/compilers/ldc/binary.nix new file mode 100644 index 000000000000..41a70662948e --- /dev/null +++ b/pkgs/development/compilers/ldc/binary.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames +, version, hashes }: +with stdenv; +let + OS = if hostPlatform.isDarwin then "osx" else hostPlatform.parsed.kernel.name; + ARCH = toString hostPlatform.parsed.cpu.name; +in mkDerivation { + pname = "ldc-bootstrap"; + inherit version; + + src = fetchurl rec { + name = "ldc2-${version}-${OS}-${ARCH}.tar.xz"; + url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/${name}"; + sha256 = hashes."${OS}-${ARCH}" or (throw "missing bootstrap sha256 for ${OS}-${ARCH}"); + }; + + dontConfigure = true; + dontBuild = true; + + nativeBuildInputs = [ fixDarwinDylibNames autoPatchelfHook ]; + propagatedBuildInputs = [ curl tzdata ]; + + installPhase = '' + mkdir -p $out + + mv bin etc import lib LICENSE README $out/ + + # fix paths in ldc2.conf (one level less) + # substituteInPlace $out/bin/ldc2.conf --replace "/../../" "/../" + ''; + + meta = with lib; { + inherit version; + description = "The LLVM-based D Compiler"; + homepage = "https://github.com/ldc-developers/ldc"; + # from https://github.com/ldc-developers/ldc/blob/master/LICENSE + license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ]; + maintainers = with maintainers; [ ThomasMader lionello ]; + platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]; + }; +} diff --git a/pkgs/development/compilers/ldc/bootstrap.nix b/pkgs/development/compilers/ldc/bootstrap.nix new file mode 100644 index 000000000000..fde4c8426848 --- /dev/null +++ b/pkgs/development/compilers/ldc/bootstrap.nix @@ -0,0 +1,10 @@ +{ callPackage }: +callPackage ./binary.nix { + version = "1.19.0"; + hashes = { + # Get these from `nix-prefetch-url https://github.com/ldc-developers/ldc/releases/download/v1.19.0/ldc2-1.19.0-osx-x86_64.tar.xz` etc.. + osx-x86_64 = "1bp3xkh9zp64dzq8isanib1gacb3nfbl70qv15qygwk1zan6zgy7"; + linux-x86_64 = "146grr2lwarfk13wgkpyb77xb6b3as1is2rf4s2hipqjmc8biy1h"; + linux-aarch64 = "1fv6jshfvi15m7masgxq1hgp216qjd5amizrqdf26vhrq3a08li3"; + }; +} diff --git a/pkgs/development/compilers/ldc/default.nix b/pkgs/development/compilers/ldc/default.nix index 19fe2981c833..5a4baabcf8d8 100644 --- a/pkgs/development/compilers/ldc/default.nix +++ b/pkgs/development/compilers/ldc/default.nix @@ -1,173 +1,5 @@ -{ stdenv, fetchurl, cmake, ninja, llvm_5, llvm_8, curl, tzdata -, libconfig, lit, gdb, unzip, darwin, bash -, callPackage, makeWrapper, runCommand, targetPackages -, bootstrapVersion ? false -, version ? "1.17.0" -, ldcSha256 ? "1aag5jfrng6p4ms0fs90hjbv9bcj3hj8h52r68c3cm6racdajbva" -}: - -let - bootstrapLdc = if !bootstrapVersion then - # LDC 0.17.x is the last version which doesn't need a working D compiler to - # build so we use that version to bootstrap the actual build. - callPackage ./default.nix { - bootstrapVersion = true; - version = "0.17.6"; - ldcSha256 = "0qf5kbxddgmg3kqzi0kf4bgv8vdrnv16y07hcpm0cwv9mc3qr2w6"; - } - else - ""; - - pathConfig = runCommand "ldc-lib-paths" {} '' - mkdir $out - echo ${tzdata}/share/zoneinfo/ > $out/TZDatabaseDirFile - echo ${curl.out}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} > $out/LibcurlPathFile - ''; -in - -stdenv.mkDerivation rec { - pname = "ldc"; - inherit version; - - enableParallelBuilding = true; - - src = fetchurl { - url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz"; - sha256 = ldcSha256; - }; - - # https://issues.dlang.org/show_bug.cgi?id=19553 - hardeningDisable = [ "fortify" ]; - - postUnpack = '' - patchShebangs . - '' - - + stdenv.lib.optionalString (!bootstrapVersion) '' - rm ldc-${version}-src/tests/d2/dmd-testsuite/fail_compilation/mixin_gc.d - rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/xtest46_gc.d - rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/testptrref_gc.d - - # test depends on current year - rm ldc-${version}-src/tests/d2/dmd-testsuite/compilable/ddocYear.d - '' - - + stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isDarwin) '' - # https://github.com/NixOS/nixpkgs/issues/34817 - rm -r ldc-${version}-src/tests/plugins/addFuncEntryCall - ''; - - postPatch = '' - # Setting SHELL=$SHELL when dmd testsuite is run doesn't work on Linux somehow - substituteInPlace tests/d2/dmd-testsuite/Makefile --replace "SHELL=/bin/bash" "SHELL=${bash}/bin/bash" - '' - - + stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isLinux) '' - substituteInPlace runtime/phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" "" - '' - - + stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isDarwin) '' - substituteInPlace runtime/phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)" - '' - - + stdenv.lib.optionalString (bootstrapVersion && stdenv.hostPlatform.isDarwin) '' - # Was not able to compile on darwin due to "__inline_isnanl" - # being undefined. - # TODO Remove with version > 0.17.6 - substituteInPlace dmd2/root/port.c --replace __inline_isnanl __inline_isnan - ''; - - nativeBuildInputs = [ cmake ninja makeWrapper unzip ] - ++ stdenv.lib.optionals (!bootstrapVersion) [ - bootstrapLdc lit lit.python - ] - ++ stdenv.lib.optional (!bootstrapVersion && stdenv.hostPlatform.isDarwin) - # https://github.com/NixOS/nixpkgs/issues/57120 - # https://github.com/NixOS/nixpkgs/pull/59197#issuecomment-481972515 - llvm_5 - ++ stdenv.lib.optional (!bootstrapVersion && !stdenv.hostPlatform.isDarwin) - llvm_8 - ++ stdenv.lib.optional (!bootstrapVersion && !stdenv.hostPlatform.isDarwin) - # https://github.com/NixOS/nixpkgs/pull/36378#issuecomment-385034818 - gdb - ++ stdenv.lib.optionals (bootstrapVersion) [ - libconfig llvm_5 - ] - ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin - darwin.apple_sdk.frameworks.Foundation; - - - buildInputs = [ curl tzdata ]; - - cmakeFlags = stdenv.lib.optionals (!bootstrapVersion) [ - "-DD_FLAGS=-d-version=TZDatabaseDir;-d-version=LibcurlPath;-J${pathConfig}" - "-DCMAKE_BUILD_TYPE=Release" - ]; - - postConfigure = '' - export DMD=$PWD/bin/ldmd2 - ''; - - makeFlags = [ "DMD=$DMD" ]; - - fixNames = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin '' - fixDarwinDylibNames() { - local flags=() - - for fn in "$@"; do - flags+=(-change "$(basename "$fn")" "$fn") - done - - for fn in "$@"; do - if [ -L "$fn" ]; then continue; fi - echo "$fn: fixing dylib" - install_name_tool -id "$fn" "''${flags[@]}" "$fn" - done - } - - fixDarwinDylibNames $(find "$(pwd)/lib" -name "*.dylib") - export DYLD_LIBRARY_PATH=$(pwd)/lib - ''; - - # https://github.com/ldc-developers/ldc/issues/2497#issuecomment-459633746 - additionalExceptions = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin - "|druntime-test-shared"; - - doCheck = !bootstrapVersion; - - checkPhase = stdenv.lib.optionalString doCheck '' - # Build default lib test runners - ninja -j$NIX_BUILD_CORES all-test-runners - - ${fixNames} - - # Run dmd testsuite - export DMD_TESTSUITE_MAKE_ARGS="-j$NIX_BUILD_CORES DMD=$DMD CC=$CXX" - ctest -V -R "dmd-testsuite" - - # Build and run LDC D unittests. - ctest --output-on-failure -R "ldc2-unittest" - - # Run LIT testsuite. - ctest -V -R "lit-tests" - - # Run default lib unittests - ctest -j$NIX_BUILD_CORES --output-on-failure -E "ldc2-unittest|lit-tests|dmd-testsuite${additionalExceptions}" - ''; - - postInstall = '' - wrapProgram $out/bin/ldc2 \ - --prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \ - --set-default CC "${targetPackages.stdenv.cc}/bin/cc" - ''; - - meta = with stdenv.lib; { - description = "The LLVM-based D compiler"; - homepage = "https://github.com/ldc-developers/ldc"; - # from https://github.com/ldc-developers/ldc/blob/master/LICENSE - license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ]; - maintainers = with maintainers; [ ThomasMader ]; - platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ]; - }; +import ./generic.nix { + version = "1.20.1"; + ldcSha256 = "1bqsgab22v02pc3c9gcyf15y7aimadv24d68icaw5lpgnvzxy89b"; } diff --git a/pkgs/development/compilers/ldc/generic.nix b/pkgs/development/compilers/ldc/generic.nix new file mode 100644 index 000000000000..93ffe37785d7 --- /dev/null +++ b/pkgs/development/compilers/ldc/generic.nix @@ -0,0 +1,164 @@ +{ bootstrapVersion ? false +, version +, ldcSha256 +}: +{ stdenv, fetchurl, cmake, ninja, llvm_5, llvm_8, curl, tzdata +, libconfig, lit, gdb, unzip, darwin, bash, ldcBootstrap +, callPackage, makeWrapper, runCommand, targetPackages +}: + +let + pathConfig = runCommand "ldc-lib-paths" {} '' + mkdir $out + echo ${tzdata}/share/zoneinfo/ > $out/TZDatabaseDirFile + echo ${curl.out}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} > $out/LibcurlPathFile + ''; + + bootstrapLdc = if bootstrapVersion then null else ldcBootstrap; + +in + +stdenv.mkDerivation rec { + pname = "ldc"; + inherit version; + + enableParallelBuilding = true; + + src = fetchurl { + url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz"; + sha256 = ldcSha256; + }; + + # https://issues.dlang.org/show_bug.cgi?id=19553 + hardeningDisable = [ "fortify" ]; + + postUnpack = '' + patchShebangs . + '' + + + stdenv.lib.optionalString (!bootstrapVersion) '' + rm ldc-${version}-src/tests/d2/dmd-testsuite/fail_compilation/mixin_gc.d + rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/xtest46_gc.d + rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/testptrref_gc.d + + # test depends on current year + rm ldc-${version}-src/tests/d2/dmd-testsuite/compilable/ddocYear.d + '' + + + stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isDarwin) '' + # https://github.com/NixOS/nixpkgs/issues/34817 + rm -r ldc-${version}-src/tests/plugins/addFuncEntryCall + ''; + + postPatch = '' + # Setting SHELL=$SHELL when dmd testsuite is run doesn't work on Linux somehow + substituteInPlace tests/d2/dmd-testsuite/Makefile --replace "SHELL=/bin/bash" "SHELL=${bash}/bin/bash" + '' + + + stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isLinux) '' + substituteInPlace runtime/phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" "" + '' + + + stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isDarwin) '' + substituteInPlace runtime/phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)" + '' + + + stdenv.lib.optionalString (bootstrapVersion && stdenv.hostPlatform.isDarwin) '' + # Was not able to compile on darwin due to "__inline_isnanl" + # being undefined. + # TODO Remove with version > 0.17.6 + substituteInPlace dmd2/root/port.c --replace __inline_isnanl __inline_isnan + ''; + + nativeBuildInputs = [ cmake ninja makeWrapper unzip ] + ++ stdenv.lib.optionals (!bootstrapVersion) [ + bootstrapLdc lit lit.python + ] + ++ stdenv.lib.optional (!bootstrapVersion && stdenv.hostPlatform.isDarwin) + # https://github.com/NixOS/nixpkgs/issues/57120 + # https://github.com/NixOS/nixpkgs/pull/59197#issuecomment-481972515 + llvm_5 + ++ stdenv.lib.optional (!bootstrapVersion && !stdenv.hostPlatform.isDarwin) + llvm_8 + ++ stdenv.lib.optional (!bootstrapVersion && !stdenv.hostPlatform.isDarwin) + # https://github.com/NixOS/nixpkgs/pull/36378#issuecomment-385034818 + gdb + ++ stdenv.lib.optionals (bootstrapVersion) [ + libconfig llvm_5 + ] + ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin + darwin.apple_sdk.frameworks.Foundation; + + buildInputs = [ curl tzdata ]; + + cmakeFlags = stdenv.lib.optionals (!bootstrapVersion) [ + "-DD_FLAGS=-d-version=TZDatabaseDir;-d-version=LibcurlPath;-J${pathConfig}" + "-DCMAKE_BUILD_TYPE=Release" + ]; + + postConfigure = '' + export DMD=$PWD/bin/ldmd2 + ''; + + makeFlags = [ "DMD=$DMD" ]; + + fixNames = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin '' + fixDarwinDylibNames() { + local flags=() + + for fn in "$@"; do + flags+=(-change "$(basename "$fn")" "$fn") + done + + for fn in "$@"; do + if [ -L "$fn" ]; then continue; fi + echo "$fn: fixing dylib" + install_name_tool -id "$fn" "''${flags[@]}" "$fn" + done + } + + fixDarwinDylibNames $(find "$(pwd)/lib" -name "*.dylib") + export DYLD_LIBRARY_PATH=$(pwd)/lib + ''; + + # https://github.com/ldc-developers/ldc/issues/2497#issuecomment-459633746 + additionalExceptions = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin + "|druntime-test-shared"; + + doCheck = !bootstrapVersion; + + checkPhase = stdenv.lib.optionalString doCheck '' + # Build default lib test runners + ninja -j$NIX_BUILD_CORES all-test-runners + + ${fixNames} + + # Run dmd testsuite + export DMD_TESTSUITE_MAKE_ARGS="-j$NIX_BUILD_CORES DMD=$DMD" + ctest -V -R "dmd-testsuite" + + # Build and run LDC D unittests. + ctest --output-on-failure -R "ldc2-unittest" + + # Run LIT testsuite. + ctest -V -R "lit-tests" + + # Run default lib unittests + ctest -j$NIX_BUILD_CORES --output-on-failure -E "ldc2-unittest|lit-tests|dmd-testsuite${additionalExceptions}" + ''; + + postInstall = '' + wrapProgram $out/bin/ldc2 \ + --prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \ + --set-default CC "${targetPackages.stdenv.cc}/bin/cc" + ''; + + meta = with stdenv.lib; { + description = "The LLVM-based D compiler"; + homepage = "https://github.com/ldc-developers/ldc"; + # from https://github.com/ldc-developers/ldc/blob/master/LICENSE + license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ]; + maintainers = with maintainers; [ ThomasMader lionello ]; + platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ]; + }; +} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 6ebf2bcf8df7..73e2ee3a2074 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -215,6 +215,7 @@ mapAliases ({ keymon = throw "keymon has been removed from nixpkgs, as it's abandoned and archived."; # 2019-12-10 kvm = qemu_kvm; # added 2018-04-25 latinmodern-math = lmmath; + ldc2 = ldc; # added 2020-04-18 letsencrypt = certbot; # added 2016-05-16 libaudit = audit; # added 2018-04-25 libcanberra_gtk2 = libcanberra-gtk2; # added 2018-02-25 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ef8ea2a268c7..3654c4c45a11 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4554,6 +4554,7 @@ in lalezar-fonts = callPackage ../data/fonts/lalezar-fonts { }; + ldcBootstrap = callPackage ../development/compilers/ldc/bootstrap.nix { }; ldc = callPackage ../development/compilers/ldc { }; lbreakout2 = callPackage ../games/lbreakout2 { }; From 0b23e4e5b7a066e3a34775e2a22057c1d1ec461e Mon Sep 17 00:00:00 2001 From: Lionello Lunesu Date: Sun, 19 Apr 2020 20:52:41 +0800 Subject: [PATCH 2/3] Remove top-level ldcBootstrap --- pkgs/development/compilers/ldc/generic.nix | 73 ++++++++-------------- pkgs/top-level/all-packages.nix | 1 - 2 files changed, 26 insertions(+), 48 deletions(-) diff --git a/pkgs/development/compilers/ldc/generic.nix b/pkgs/development/compilers/ldc/generic.nix index 93ffe37785d7..c93d423945cb 100644 --- a/pkgs/development/compilers/ldc/generic.nix +++ b/pkgs/development/compilers/ldc/generic.nix @@ -1,10 +1,8 @@ -{ bootstrapVersion ? false -, version -, ldcSha256 -}: +{ version, ldcSha256 }: { stdenv, fetchurl, cmake, ninja, llvm_5, llvm_8, curl, tzdata -, libconfig, lit, gdb, unzip, darwin, bash, ldcBootstrap +, libconfig, lit, gdb, unzip, darwin, bash , callPackage, makeWrapper, runCommand, targetPackages +, ldcBootstrap ? callPackage ./bootstrap.nix { } }: let @@ -14,8 +12,6 @@ let echo ${curl.out}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} > $out/LibcurlPathFile ''; - bootstrapLdc = if bootstrapVersion then null else ldcBootstrap; - in stdenv.mkDerivation rec { @@ -35,8 +31,7 @@ stdenv.mkDerivation rec { postUnpack = '' patchShebangs . '' - - + stdenv.lib.optionalString (!bootstrapVersion) '' + + '' rm ldc-${version}-src/tests/d2/dmd-testsuite/fail_compilation/mixin_gc.d rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/xtest46_gc.d rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/testptrref_gc.d @@ -44,54 +39,40 @@ stdenv.mkDerivation rec { # test depends on current year rm ldc-${version}-src/tests/d2/dmd-testsuite/compilable/ddocYear.d '' - - + stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isDarwin) '' + + stdenv.lib.optionalString stdenv.hostPlatform.isDarwin '' # https://github.com/NixOS/nixpkgs/issues/34817 rm -r ldc-${version}-src/tests/plugins/addFuncEntryCall ''; postPatch = '' - # Setting SHELL=$SHELL when dmd testsuite is run doesn't work on Linux somehow - substituteInPlace tests/d2/dmd-testsuite/Makefile --replace "SHELL=/bin/bash" "SHELL=${bash}/bin/bash" - '' - - + stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isLinux) '' + # Setting SHELL=$SHELL when dmd testsuite is run doesn't work on Linux somehow + substituteInPlace tests/d2/dmd-testsuite/Makefile --replace "SHELL=/bin/bash" "SHELL=${bash}/bin/bash" + '' + + stdenv.lib.optionalString stdenv.hostPlatform.isLinux '' substituteInPlace runtime/phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" "" '' - - + stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isDarwin) '' + + stdenv.lib.optionalString stdenv.hostPlatform.isDarwin '' substituteInPlace runtime/phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)" - '' - - + stdenv.lib.optionalString (bootstrapVersion && stdenv.hostPlatform.isDarwin) '' - # Was not able to compile on darwin due to "__inline_isnanl" - # being undefined. - # TODO Remove with version > 0.17.6 - substituteInPlace dmd2/root/port.c --replace __inline_isnanl __inline_isnan ''; - nativeBuildInputs = [ cmake ninja makeWrapper unzip ] - ++ stdenv.lib.optionals (!bootstrapVersion) [ - bootstrapLdc lit lit.python - ] - ++ stdenv.lib.optional (!bootstrapVersion && stdenv.hostPlatform.isDarwin) - # https://github.com/NixOS/nixpkgs/issues/57120 - # https://github.com/NixOS/nixpkgs/pull/59197#issuecomment-481972515 - llvm_5 - ++ stdenv.lib.optional (!bootstrapVersion && !stdenv.hostPlatform.isDarwin) - llvm_8 - ++ stdenv.lib.optional (!bootstrapVersion && !stdenv.hostPlatform.isDarwin) - # https://github.com/NixOS/nixpkgs/pull/36378#issuecomment-385034818 - gdb - ++ stdenv.lib.optionals (bootstrapVersion) [ - libconfig llvm_5 - ] - ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin - darwin.apple_sdk.frameworks.Foundation; + nativeBuildInputs = [ + cmake ninja makeWrapper unzip ldcBootstrap lit lit.python + ] + ++ stdenv.lib.optionals stdenv.hostPlatform.isDarwin [ + darwin.apple_sdk.frameworks.Foundation + # https://github.com/NixOS/nixpkgs/issues/57120 + # https://github.com/NixOS/nixpkgs/pull/59197#issuecomment-481972515 + llvm_5 + ] + ++ stdenv.lib.optionals (!stdenv.hostPlatform.isDarwin) [ + llvm_8 + # https://github.com/NixOS/nixpkgs/pull/36378#issuecomment-385034818 + gdb + ]; buildInputs = [ curl tzdata ]; - cmakeFlags = stdenv.lib.optionals (!bootstrapVersion) [ + cmakeFlags = [ "-DD_FLAGS=-d-version=TZDatabaseDir;-d-version=LibcurlPath;-J${pathConfig}" "-DCMAKE_BUILD_TYPE=Release" ]; @@ -125,9 +106,7 @@ stdenv.mkDerivation rec { additionalExceptions = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin "|druntime-test-shared"; - doCheck = !bootstrapVersion; - - checkPhase = stdenv.lib.optionalString doCheck '' + checkPhase = '' # Build default lib test runners ninja -j$NIX_BUILD_CORES all-test-runners diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3654c4c45a11..ef8ea2a268c7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4554,7 +4554,6 @@ in lalezar-fonts = callPackage ../data/fonts/lalezar-fonts { }; - ldcBootstrap = callPackage ../development/compilers/ldc/bootstrap.nix { }; ldc = callPackage ../development/compilers/ldc { }; lbreakout2 = callPackage ../games/lbreakout2 { }; From e727346ccc54c37b8d96fb1765d688e4e4d04189 Mon Sep 17 00:00:00 2001 From: Lionello Lunesu Date: Sun, 19 Apr 2020 21:44:06 +0800 Subject: [PATCH 3/3] Add missing deps for linux --- pkgs/development/compilers/ldc/binary.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/compilers/ldc/binary.nix b/pkgs/development/compilers/ldc/binary.nix index 41a70662948e..56d40be86194 100644 --- a/pkgs/development/compilers/ldc/binary.nix +++ b/pkgs/development/compilers/ldc/binary.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames +{ stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames, libxml2 , version, hashes }: with stdenv; let @@ -18,15 +18,15 @@ in mkDerivation { dontBuild = true; nativeBuildInputs = [ fixDarwinDylibNames autoPatchelfHook ]; + + buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ libxml2 stdenv.cc.cc ]; + propagatedBuildInputs = [ curl tzdata ]; installPhase = '' mkdir -p $out mv bin etc import lib LICENSE README $out/ - - # fix paths in ldc2.conf (one level less) - # substituteInPlace $out/bin/ldc2.conf --replace "/../../" "/../" ''; meta = with lib; {