Unverified Commit 50c6933c authored by Peder Bergebakken Sundt's avatar Peder Bergebakken Sundt Committed by GitHub
Browse files

Merge pull request #293417 from jtbx-prs/ldc-1.37.0

ldc: 1.36.0 -> 1.38.0, clean up
parents 1f0ef00c b8eef4c7
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
{ lib, stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames, libxml2
, version, hashes }:
{ lib, stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames, libxml2 }:

let
  inherit (stdenv) hostPlatform;
  OS = if hostPlatform.isDarwin then "osx" else hostPlatform.parsed.kernel.name;
  ARCH = if hostPlatform.isDarwin && hostPlatform.isAarch64 then "arm64" else hostPlatform.parsed.cpu.name;
  version = "1.30.0";
  hashes = {
    # Get these from `nix store prefetch-file https://github.com/ldc-developers/ldc/releases/download/v1.19.0/ldc2-1.19.0-osx-x86_64.tar.xz` etc..
    osx-x86_64 = "sha256-AAWZvxuZC82xvrW6fpYm783TY+H8k3DvqE94ZF1yjmk=";
    linux-x86_64 = "sha256-V4TUzEfQhFrwiX07dHOgjdAoGkzausCkhnQIQNAU/eE=";
    linux-aarch64  = "sha256-kTeglub75iv/jWWNPCn15aCGAbmck0RQl6L7bFOUu7Y=";
    osx-arm64  = "sha256-Nb/owBdIeroB9jLMDvwjo8bvsTC9vFyJPLMTOMsSAd4=";
  };
in stdenv.mkDerivation {
  pname = "ldc-bootstrap";
  inherit version;
@@ -12,7 +19,7 @@ in stdenv.mkDerivation {
  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}");
    hash = hashes."${OS}-${ARCH}" or (throw "missing bootstrap hash for ${OS}-${ARCH}");
  };

  dontConfigure = true;
+53 −45
Original line number Diff line number Diff line
{ version, sha256 }:
{ lib, stdenv, fetchurl, cmake, ninja, llvm_17, curl, tzdata
, libconfig, lit, gdb, unzip, darwin, bash
, callPackage, makeWrapper, runCommand, targetPackages
{ lib
, stdenv
, fetchFromGitHub
, cmake
, ninja
, llvm_17
, curl
, tzdata
, libconfig
, lit
, gdb
, unzip
, darwin
, bash
, callPackage
, makeWrapper
, runCommand
, targetPackages

, ldcBootstrap ? callPackage ./bootstrap.nix { }
}:

@@ -14,52 +29,44 @@ let

in

stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
  pname = "ldc";
  inherit version;

  src = fetchurl {
    url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz";
    inherit sha256;
  version = "1.38.0";

  src = fetchFromGitHub {
    owner = "ldc-developers";
    repo = "ldc";
    rev = "v${finalAttrs.version}";
    hash = "sha256-d/UREh+fHRRh0r3H60uPjHute+qspcm9TBFWZMbGDxk=";
    fetchSubmodules = true;
  };

  # https://issues.dlang.org/show_bug.cgi?id=19553
  hardeningDisable = [ "fortify" ];

  postUnpack = ''
    patchShebangs .
  ''
  + ''
      rm ldc-${version}-src/tests/dmd/fail_compilation/mixin_gc.d
      rm ldc-${version}-src/tests/dmd/runnable/xtest46_gc.d
      rm ldc-${version}-src/tests/dmd/runnable/testptrref_gc.d
  postPatch = ''
    patchShebangs runtime tools tests

    rm tests/dmd/fail_compilation/mixin_gc.d
    rm tests/dmd/runnable/xtest46_gc.d
    rm tests/dmd/runnable/testptrref_gc.d

    # test depends on current year
      rm ldc-${version}-src/tests/dmd/compilable/ddocYear.d
  ''
  + lib.optionalString stdenv.hostPlatform.isDarwin ''
      # https://github.com/NixOS/nixpkgs/issues/34817
      rm -r ldc-${version}-src/tests/plugins/addFuncEntryCall
  '';
    rm tests/dmd/compilable/ddocYear.d
  '' + lib.optionalString stdenv.hostPlatform.isLinux ''
    substituteInPlace runtime/phobos/std/socket.d --replace-fail "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
  '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
    substituteInPlace runtime/phobos/std/socket.d --replace-fail "foreach (name; names)" "names = []; foreach (name; names)"

  postPatch = ''
    # Setting SHELL=$SHELL when dmd testsuite is run doesn't work on Linux somehow
    substituteInPlace tests/dmd/Makefile --replace "SHELL=/bin/bash" "SHELL=${bash}/bin/bash"
  ''
  + lib.optionalString stdenv.hostPlatform.isLinux ''
      substituteInPlace runtime/phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
  ''
  + lib.optionalString stdenv.hostPlatform.isDarwin ''
      substituteInPlace runtime/phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)"
    # https://github.com/NixOS/nixpkgs/issues/34817
    rm -r tests/plugins/addFuncEntryCall
  '';

  nativeBuildInputs = [
    cmake ldcBootstrap lit lit.python llvm_17.dev makeWrapper ninja unzip
  ]
  ++ lib.optionals stdenv.hostPlatform.isDarwin [
  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
    darwin.apple_sdk.frameworks.Foundation
  ]
  ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
  ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
    # https://github.com/NixOS/nixpkgs/pull/36378#issuecomment-385034818
    gdb
  ];
@@ -103,7 +110,7 @@ stdenv.mkDerivation rec {
    # Build default lib test runners
    ninja -j$NIX_BUILD_CORES all-test-runners

    ${fixNames}
    ${finalAttrs.fixNames}

    # Run dmd testsuite
    export DMD_TESTSUITE_MAKE_ARGS="-j$NIX_BUILD_CORES DMD=$DMD"
@@ -116,22 +123,23 @@ stdenv.mkDerivation rec {
    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}"
    ctest -j$NIX_BUILD_CORES --output-on-failure -E "ldc2-unittest|lit-tests|dmd-testsuite${finalAttrs.additionalExceptions}"
  '';

  postInstall = ''
    wrapProgram $out/bin/ldc2 \
        --prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \
        --set-default CC "${targetPackages.stdenv.cc}/bin/cc"
      --prefix PATH : ${targetPackages.stdenv.cc}/bin \
      --set-default CC ${targetPackages.stdenv.cc}/bin/cc
  '';

  meta = with lib; {
    description = "The LLVM-based D compiler";
    homepage = "https://github.com/ldc-developers/ldc";
    changelog = "https://github.com/ldc-developers/ldc/releases/tag/v${finalAttrs.version}";
    # from https://github.com/ldc-developers/ldc/blob/master/LICENSE
    license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ];
    mainProgram = "ldc2";
    maintainers = with maintainers; [ lionello jtbx ];
    platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
  };
}
})
+0 −11
Original line number Diff line number Diff line
{ callPackage }:
callPackage ./binary.nix {
  version = "1.30.0";
  hashes = {
    # Get these from `nix store prefetch-file https://github.com/ldc-developers/ldc/releases/download/v1.19.0/ldc2-1.19.0-osx-x86_64.tar.xz` etc..
    osx-x86_64 = "sha256-AAWZvxuZC82xvrW6fpYm783TY+H8k3DvqE94ZF1yjmk=";
    linux-x86_64 = "sha256-V4TUzEfQhFrwiX07dHOgjdAoGkzausCkhnQIQNAU/eE=";
    linux-aarch64  = "sha256-kTeglub75iv/jWWNPCn15aCGAbmck0RQl6L7bFOUu7Y=";
    osx-arm64  = "sha256-Nb/owBdIeroB9jLMDvwjo8bvsTC9vFyJPLMTOMsSAd4=";
  };
}
+0 −4
Original line number Diff line number Diff line
import ./generic.nix {
  version = "1.36.0";
  sha256 = "sha256-oAx5BzEjqIfBf0Rsd4KklVajUSo9Natna31Trhu41u8=";
}
+0 −2
Original line number Diff line number Diff line
@@ -9618,8 +9618,6 @@ with pkgs;
  last-resort = callPackage ../data/fonts/last-resort { };
  ldc = callPackage ../development/compilers/ldc { };
  ligo =
    let ocaml_p = ocaml-ng.ocamlPackages_4_14_janeStreet_0_15; in
    callPackage ../development/compilers/ligo {