From a1e726df1596b70cdd65df785b6da69099eed08d Mon Sep 17 00:00:00 2001
From: Ralph Amissah <ralph.amissah@gmail.com>
Date: Wed, 8 May 2024 23:04:48 -0400
Subject: dmd-2.108.0, as upstream, less passing Foundation

---
 nix-overlays/dmd/default.nix |  6 ++--
 nix-overlays/dmd/generic.nix | 69 ++++++++++++++++++++------------------------
 2 files changed, 35 insertions(+), 40 deletions(-)

(limited to 'nix-overlays/dmd')

diff --git a/nix-overlays/dmd/default.nix b/nix-overlays/dmd/default.nix
index bdc9faf..9f3f5a2 100644
--- a/nix-overlays/dmd/default.nix
+++ b/nix-overlays/dmd/default.nix
@@ -1,5 +1,5 @@
 import ./generic.nix {
-  version = "2.106.1";
-  dmdSha256 = "sha256-vjYa/Pxrz7J2htXT+fa+xaeen/Vxne++lELbHTSXBK8=";
-  phobosSha256 = "sha256-yRL9ub3u4mREG9PVxBvgQ/LDXD57RadPTZ2h08qyh/s=";
+  version = "2.108.0";
+  dmdHash = "sha256-tlWcFgKtXzfqMMkOq4ezhZHdYCXFckjN5+m6jO4VH0U=";
+  phobosHash = "sha256-uU8S4rABOfhpKh+MvSbclkbdf0hrsuKF8SIpWMnPpfU=";
 }
diff --git a/nix-overlays/dmd/generic.nix b/nix-overlays/dmd/generic.nix
index a2a1b8a..63c2bd1 100644
--- a/nix-overlays/dmd/generic.nix
+++ b/nix-overlays/dmd/generic.nix
@@ -1,6 +1,6 @@
 { version
-, dmdSha256
-, phobosSha256
+, dmdHash
+, phobosHash
 }:
 
 { stdenv
@@ -22,7 +22,7 @@
 , git
 , unzip
 , dmdBootstrap ? callPackage ./bootstrap.nix { }
-, dmd_bin ? "${dmdBootstrap}/bin"
+, dmdBin ? "${dmdBootstrap}/bin"
 }:
 
 let
@@ -45,7 +45,7 @@ let
   pathToDmd = "\${NIX_BUILD_TOP}/dmd/generated/${osname}/release/${bits}/dmd";
 in
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "dmd";
   inherit version;
 
@@ -55,15 +55,15 @@ stdenv.mkDerivation rec {
     (fetchFromGitHub {
       owner = "dlang";
       repo = "dmd";
-      rev = "v${version}";
-      sha256 = dmdSha256;
+      rev = "v${finalAttrs.version}";
+      hash = dmdHash;
       name = "dmd";
     })
     (fetchFromGitHub {
       owner = "dlang";
       repo = "phobos";
-      rev = "v${version}";
-      sha256 = phobosSha256;
+      rev = "v${finalAttrs.version}";
+      hash = phobosHash;
       name = "phobos";
     })
   ];
@@ -80,7 +80,7 @@ stdenv.mkDerivation rec {
       url = "https://github.com/dlang/dmd/commit/c4d33e5eb46c123761ac501e8c52f33850483a8a.patch";
       stripLen = 1;
       extraPrefix = "dmd/";
-      sha256 = "sha256-N21mAPfaTo+zGCip4njejasraV5IsWVqlGR5eOdFZZE=";
+      hash = "sha256-N21mAPfaTo+zGCip4njejasraV5IsWVqlGR5eOdFZZE=";
     })
   ];
 
@@ -102,18 +102,14 @@ stdenv.mkDerivation rec {
     #   https://issues.dlang.org/show_bug.cgi?id=23317
     rm dmd/compiler/test/runnable/cdvecfill.sh
     rm dmd/compiler/test/compilable/cdcmp.d
-  ''
-
-  + lib.optionalString (lib.versionAtLeast version "2.089.0" && lib.versionOlder version "2.092.2") ''
+  '' + lib.optionalString (lib.versionAtLeast version "2.089.0" && lib.versionOlder version "2.092.2") ''
     rm dmd/compiler/test/dshell/test6952.d
   '' + lib.optionalString (lib.versionAtLeast version "2.092.2") ''
-    substituteInPlace dmd/compiler/test/dshell/test6952.d --replace "/usr/bin/env bash" "${bash}/bin/bash"
-  ''
-
-  + lib.optionalString stdenv.isLinux ''
-    substituteInPlace phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
+    substituteInPlace dmd/compiler/test/dshell/test6952.d --replace-fail "/usr/bin/env bash" "${bash}/bin/bash"
+  '' + lib.optionalString stdenv.isLinux ''
+    substituteInPlace phobos/std/socket.d --replace-fail "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
   '' + lib.optionalString stdenv.isDarwin ''
-    substituteInPlace phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)"
+    substituteInPlace phobos/std/socket.d --replace-fail "foreach (name; names)" "names = []; foreach (name; names)"
   '';
 
   nativeBuildInputs = [
@@ -148,24 +144,23 @@ stdenv.mkDerivation rec {
     runHook preBuild
 
     export buildJobs=$NIX_BUILD_CORES
-    if [ -z $enableParallelBuilding ]; then
-      buildJobs=1
-    fi
+    [ -z "$enableParallelBuilding" ] && buildJobs=1
 
-    ${dmd_bin}/rdmd dmd/compiler/src/build.d -j$buildJobs HOST_DMD=${dmd_bin}/dmd $buildFlags
-    make -C dmd/druntime -f posix.mak DMD=${pathToDmd} $buildFlags -j$buildJobs
+    ${dmdBin}/rdmd dmd/compiler/src/build.d -j$buildJobs $buildFlags \
+      HOST_DMD=${dmdBin}/dmd
+    make -C dmd/druntime -j$buildJobs DMD=${pathToDmd} $buildFlags
     echo ${tzdata}/share/zoneinfo/ > TZDatabaseDirFile
-    echo ${lib.getLib curl}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} > LibcurlPathFile
-    make -C phobos -f posix.mak $buildFlags -j$buildJobs DMD=${pathToDmd} DFLAGS="-version=TZDatabaseDir -version=LibcurlPath -J$PWD"
+    echo ${lib.getLib curl}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} \
+      > LibcurlPathFile
+    make -C phobos -j$buildJobs $buildFlags \
+      DMD=${pathToDmd} DFLAGS="-version=TZDatabaseDir -version=LibcurlPath -J$PWD"
 
     runHook postBuild
   '';
 
   doCheck = true;
 
-  checkFlags = buildFlags;
-
-  # many tests are disbled because they are failing
+  # many tests are disabled because they are failing
 
   # NOTE: Purity check is disabled for checkPhase because it doesn't fare well
   # with the DMD linker. See https://github.com/NixOS/nixpkgs/issues/97420
@@ -173,15 +168,14 @@ stdenv.mkDerivation rec {
     runHook preCheck
 
     export checkJobs=$NIX_BUILD_CORES
-    if [ -z $enableParallelChecking ]; then
-      checkJobs=1
-    fi
+    [ -z "$enableParallelChecking" ] && checkJobs=1
 
-    NIX_ENFORCE_PURITY= \
-      make -C dmd/compiler/test $checkFlags CC=$CXX SHELL=$SHELL -j$checkJobs N=$checkJobs
+    CC=$CXX HOST_DMD=${pathToDmd} NIX_ENFORCE_PURITY= \
+      ${dmdBin}/rdmd dmd/compiler/test/run.d -j$checkJobs
 
     NIX_ENFORCE_PURITY= \
-      make -C phobos -f posix.mak unittest $checkFlags -j$checkJobs DFLAGS="-version=TZDatabaseDir -version=LibcurlPath -J$PWD"
+      make -C phobos unittest -j$checkJobs $checkFlags \
+        DFLAGS="-version=TZDatabaseDir -version=LibcurlPath -J$PWD"
 
     runHook postCheck
   '';
@@ -200,7 +194,7 @@ stdenv.mkDerivation rec {
     cp phobos/generated/${osname}/release/${bits}/libphobos2.* $out/lib/
 
     wrapProgram $out/bin/dmd \
-      --prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \
+      --prefix PATH : "${targetPackages.stdenv.cc}/bin" \
       --set-default CC "${targetPackages.stdenv.cc}/bin/cc"
 
     substitute ${dmdConfFile} "$out/bin/dmd.conf" --subst-var out
@@ -209,7 +203,7 @@ stdenv.mkDerivation rec {
   '';
 
   preFixup = ''
-    find $out/bin -type f -exec ${removeReferencesTo}/bin/remove-references-to -t ${dmd_bin}/dmd '{}' +
+    find $out/bin -type f -exec ${removeReferencesTo}/bin/remove-references-to -t ${dmdBin}/dmd '{}' +
   '';
 
   disallowedReferences = [ dmdBootstrap ];
@@ -220,7 +214,8 @@ stdenv.mkDerivation rec {
     # Everything is now Boost licensed, even the backend.
     # https://github.com/dlang/dmd/pull/6680
     license = licenses.boost;
+    mainProgram = "dmd";
     maintainers = with maintainers; [ lionello dukc jtbx ];
     platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
   };
-}
+})
-- 
cgit v1.2.3