diff options
| author | Ralph Amissah <ralph.amissah@gmail.com> | 2025-03-22 12:29:04 -0400 | 
|---|---|---|
| committer | Ralph Amissah <ralph.amissah@gmail.com> | 2025-03-22 12:57:03 -0400 | 
| commit | 39b16223937fa3fc8da80495a25d7397712b8bae (patch) | |
| tree | dff0c37c726c59140abf792a11c3892ff3a2d9c9 /nix-overlays | |
| parent | ldc-1.40.1 (based on D 2.110.0) - overlay (diff) | |
overlay updates (dub-1.39.0, dtools-2.110.0)
Diffstat (limited to 'nix-overlays')
| -rw-r--r-- | nix-overlays/dmd/default.nix | 6 | ||||
| -rw-r--r-- | nix-overlays/dmd/generic.nix | 55 | ||||
| -rw-r--r-- | nix-overlays/dmd/package.nix | 5 | ||||
| -rw-r--r-- | nix-overlays/dtools/default.nix | 52 | ||||
| -rw-r--r-- | nix-overlays/dtools/disabled-tests.diff | 11 | ||||
| -rw-r--r-- | nix-overlays/dtools/fix-ldc-arm64.diff | 102 | ||||
| -rw-r--r-- | nix-overlays/dtools/package.nix | 49 | ||||
| -rw-r--r-- | nix-overlays/dub/package.nix | 22 | ||||
| -rw-r--r-- | nix-overlays/ldc/bootstrap.nix | 11 | ||||
| -rw-r--r-- | nix-overlays/ldc/package.nix | 101 | 
10 files changed, 269 insertions, 145 deletions
| diff --git a/nix-overlays/dmd/default.nix b/nix-overlays/dmd/default.nix index 69a9f75..8375c13 100644 --- a/nix-overlays/dmd/default.nix +++ b/nix-overlays/dmd/default.nix @@ -1,5 +1 @@ -import ./generic.nix { -  version = "2.110.0"; -  dmdHash = "sha256-icXp9xWF2AI2gp7z/lQFAChmXfQePe9b5pbpQ9Mn19Y="; -  phobosHash = "sha256-CmJpcHM+sIsaYBlpALCFoQFG+93s8gUyWmM0tYqjXkk="; -} +import ./package.nix diff --git a/nix-overlays/dmd/generic.nix b/nix-overlays/dmd/generic.nix index 22f7fa8..e130d69 100644 --- a/nix-overlays/dmd/generic.nix +++ b/nix-overlays/dmd/generic.nix @@ -1,28 +1,30 @@ -{ version -, dmdHash -, phobosHash +{ +  version, +  dmdHash, +  phobosHash,  }: -{ stdenv -, lib -, fetchFromGitHub -, removeReferencesTo -, makeWrapper -, which -, writeTextFile -, curl -, tzdata -, gdb -#, Foundation -, callPackage -, targetPackages -, fetchpatch -, bash -, installShellFiles -, git -, unzip -, dmdBootstrap ? callPackage ./bootstrap.nix { } -, dmdBin ? "${dmdBootstrap}/bin" +{ +  stdenv, +  lib, +  fetchFromGitHub, +  removeReferencesTo, +  makeWrapper, +  which, +  writeTextFile, +  curl, +  tzdata, +  gdb, +  # Foundation, +  callPackage, +  targetPackages, +  fetchpatch, +  bash, +  installShellFiles, +  git, +  unzip, +  dmdBootstrap ? callPackage ./bootstrap.nix { }, +  dmdBin ? "${dmdBootstrap}/bin",  }:  let @@ -36,11 +38,8 @@ let    };    bits = builtins.toString stdenv.hostPlatform.parsed.cpu.bits; -  osname = -    if stdenv.hostPlatform.isDarwin then -      "osx" -    else -      stdenv.hostPlatform.parsed.kernel.name; +  osname = if stdenv.hostPlatform.isDarwin then "osx" +    else stdenv.hostPlatform.parsed.kernel.name;    pathToDmd = "\${NIX_BUILD_TOP}/dmd/generated/${osname}/release/${bits}/dmd";  in diff --git a/nix-overlays/dmd/package.nix b/nix-overlays/dmd/package.nix new file mode 100644 index 0000000..69a9f75 --- /dev/null +++ b/nix-overlays/dmd/package.nix @@ -0,0 +1,5 @@ +import ./generic.nix { +  version = "2.110.0"; +  dmdHash = "sha256-icXp9xWF2AI2gp7z/lQFAChmXfQePe9b5pbpQ9Mn19Y="; +  phobosHash = "sha256-CmJpcHM+sIsaYBlpALCFoQFG+93s8gUyWmM0tYqjXkk="; +} diff --git a/nix-overlays/dtools/default.nix b/nix-overlays/dtools/default.nix index d605e4d..8375c13 100644 --- a/nix-overlays/dtools/default.nix +++ b/nix-overlays/dtools/default.nix @@ -1,51 +1 @@ -{ stdenv, lib, fetchFromGitHub, fetchpatch, ldc, curl, gnumake42 }: - -stdenv.mkDerivation rec { -  pname = "dtools"; -  version = "2.103.1"; - -  src = fetchFromGitHub { -    owner = "dlang"; -    repo = "tools"; -    rev = "v${version}"; -    sha256 = "sha256-XM4gUxcarQCOBR8W/o0iWAI54PyLDkH6CsDce22Cnu4="; -    name = "dtools"; -  }; - -  patches = [ -    (fetchpatch { -      # part of https://github.com/dlang/tools/pull/441 -      url = "https://github.com/dlang/tools/commit/6c6a042d1b08e3ec1790bd07a7f69424625ee866.patch"; # Fix LDC arm64 build -      sha256 = "sha256-x6EclTYN1Y5FG57KLhbBK0BZicSYcZoWO7MTVcP4T18="; -    }) -  ]; - -  nativeBuildInputs = [ ldc gnumake42 ]; # fails with make 4.4 -  buildInputs = [ curl ]; - -  makeCmd = '' -    make -f posix.mak all DMD_DIR=dmd DMD=${ldc.out}/bin/ldmd2 CC=${stdenv.cc}/bin/cc -  ''; - -  buildPhase = '' -    $makeCmd -  ''; - -  doCheck = true; - -  checkPhase = '' -      $makeCmd test_rdmd -    ''; - -  installPhase = '' -      $makeCmd INSTALL_DIR=$out install -  ''; - -  meta = with lib; { -    description = "Ancillary tools for the D programming language compiler"; -    homepage = "https://github.com/dlang/tools"; -    license = lib.licenses.boost; -    maintainers = with maintainers; [ ThomasMader ]; -    platforms = lib.platforms.unix; -  }; -} +import ./package.nix diff --git a/nix-overlays/dtools/disabled-tests.diff b/nix-overlays/dtools/disabled-tests.diff new file mode 100644 index 0000000..a22825a --- /dev/null +++ b/nix-overlays/dtools/disabled-tests.diff @@ -0,0 +1,11 @@ +--- a/rdmd_test.d ++++ b/rdmd_test.d +@@ -616,7 +616,7 @@ void runTests(string rdmdApp, string compiler, string model) +         enforce(res.status == 1, res.output); +     } +  +-    version (Posix) ++    version (none) +     { +         import std.conv : to; +         auto makeVersion = execute(["make", "--version"]).output.splitLines()[0]; diff --git a/nix-overlays/dtools/fix-ldc-arm64.diff b/nix-overlays/dtools/fix-ldc-arm64.diff new file mode 100644 index 0000000..66eaa22 --- /dev/null +++ b/nix-overlays/dtools/fix-ldc-arm64.diff @@ -0,0 +1,102 @@ +Adapted from https://github.com/dlang/tools/commit/6c6a042d1b08e3ec1790bd07a7f69424625ee866.patch +--- /dev/null ++++ b/osmodel.mak +@@ -0,0 +1,75 @@ ++#   osmodel.mak ++# ++# Detects and sets the macros: ++# ++#   OS         = one of {osx,linux,freebsd,openbsd,netbsd,dragonflybsd,solaris} ++#   MODEL      = one of { 32, 64 } ++#   MODEL_FLAG = one of { -m32, -m64 } ++#   ARCH       = one of { x86, x86_64, aarch64 } ++# ++# Note: ++#   Keep this file in sync between druntime, phobos, and dmd repositories! ++# Source: https://github.com/dlang/dmd/blob/master/src/osmodel.mak ++ ++ ++ifeq (,$(OS)) ++  uname_S:=$(shell uname -s) ++  ifeq (Darwin,$(uname_S)) ++    OS:=osx ++  endif ++  ifeq (Linux,$(uname_S)) ++    OS:=linux ++  endif ++  ifeq (FreeBSD,$(uname_S)) ++    OS:=freebsd ++  endif ++  ifeq (OpenBSD,$(uname_S)) ++    OS:=openbsd ++  endif ++  ifeq (NetBSD,$(uname_S)) ++    OS:=netbsd ++  endif ++  ifeq (DragonFly,$(uname_S)) ++    OS:=dragonflybsd ++  endif ++  ifeq (Solaris,$(uname_S)) ++    OS:=solaris ++  endif ++  ifeq (SunOS,$(uname_S)) ++    OS:=solaris ++  endif ++  ifeq (,$(OS)) ++    $(error Unrecognized or unsupported OS for uname: $(uname_S)) ++  endif ++endif ++ ++# When running make from XCode it may set environment var OS=MACOS. ++# Adjust it here: ++ifeq (MACOS,$(OS)) ++  OS:=osx ++endif ++ ++ifeq (,$(MODEL)) ++  ifeq ($(OS), solaris) ++    uname_M:=$(shell isainfo -n) ++  else ++    uname_M:=$(shell uname -m) ++  endif ++  ifneq (,$(findstring $(uname_M),x86_64 amd64)) ++    MODEL:=64 ++    ARCH:=x86_64 ++  endif ++  ifneq (,$(findstring $(uname_M),aarch64 arm64)) ++    MODEL:=64 ++    ARCH:=aarch64 ++  endif ++  ifneq (,$(findstring $(uname_M),i386 i586 i686)) ++    MODEL:=32 ++    ARCH:=x86 ++  endif ++  ifeq (,$(MODEL)) ++    $(error Cannot figure 32/64 model and arch from uname -m: $(uname_M)) ++  endif ++endif ++ ++MODEL_FLAG:=-m$(MODEL) +--- a/Makefile ++++ b/Makefile +@@ -9,9 +9,8 @@ DUB=dub + WITH_DOC = no + DOC = ../dlang.org +  +-# Load operating system $(OS) (e.g. linux, osx, ...) and $(MODEL) (e.g. 32, 64) detection Makefile from dmd +-$(shell [ ! -d $(DMD_DIR) ] && git clone --depth=1 https://github.com/dlang/dmd $(DMD_DIR)) +-include $(DMD_DIR)/compiler/src/osmodel.mak ++# Load operating system $(OS) (e.g. linux, osx, ...) and $(MODEL) (e.g. 32, 64) detection Makefile ++include osmodel.mak +  + ifeq (windows,$(OS)) +     DOTEXE:=.exe +@@ -30,7 +29,7 @@ DFLAGS = $(MODEL_FLAG) $(if $(findstring windows,$(OS)),,-fPIC) -preview=dip1000 + DFLAGS += $(WARNINGS) +  + # Default DUB flags (DUB uses a different architecture format) +-DUBFLAGS = --arch=$(subst 32,x86,$(subst 64,x86_64,$(MODEL))) ++DUBFLAGS = --arch=$(ARCH) +  + TOOLS = \ +     $(ROOT)/catdoc$(DOTEXE) \ diff --git a/nix-overlays/dtools/package.nix b/nix-overlays/dtools/package.nix new file mode 100644 index 0000000..2e72b44 --- /dev/null +++ b/nix-overlays/dtools/package.nix @@ -0,0 +1,49 @@ +{ +  lib, +  stdenv, +  fetchFromGitHub, +  ldc, +  curl, +}: + +stdenv.mkDerivation (finalAttrs: { +  pname = "dtools"; +  version = "2.110.0"; + +  src = fetchFromGitHub { +    owner = "dlang"; +    repo = "tools"; +    rev = "v${finalAttrs.version}"; +    hash = "sha256-xMEHnrstL5hAkhp8+/z1I2KZWZ7eztWZnUGLTKCfbBI="; +    name = "dtools"; +  }; + +  patches = [ +    # Disable failing tests +    ./disabled-tests.diff +    # Fix LDC arm64 build +    ./fix-ldc-arm64.diff +  ]; + +  nativeBuildInputs = [ ldc ]; +  buildInputs = [ curl ]; + +  makeFlags = [ +    "CC=${stdenv.cc}/bin/cc" +    "DMD=${ldc.out}/bin/ldmd2" +    "INSTALL_DIR=$(out)" +  ]; + +  enableParallelBuilding = true; + +  doCheck = true; +  checkTarget = "test_rdmd"; + +  meta = with lib; { +    description = "Ancillary tools for the D programming language"; +    homepage = "https://github.com/dlang/tools"; +    license = licenses.boost; +    maintainers = with maintainers; [ jtbx ]; +    platforms = platforms.unix; +  }; +}) diff --git a/nix-overlays/dub/package.nix b/nix-overlays/dub/package.nix index f13adec..b537a43 100644 --- a/nix-overlays/dub/package.nix +++ b/nix-overlays/dub/package.nix @@ -1,18 +1,19 @@ -{ lib -, stdenv -, fetchFromGitHub -, curl -, ldc -, dcompiler ? ldc -, libevent -, rsync +{ +  lib, +  stdenv, +  fetchFromGitHub, +  curl, +  ldc, +  dcompiler ? ldc, +  libevent, +  rsync,  }:  assert dcompiler != null;  stdenv.mkDerivation (finalAttrs: {    pname = "dub"; -  version = "1.38.1"; +  version = "1.39.0";    enableParallelBuilding = true; @@ -20,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: {      owner = "dlang";      repo = "dub";      rev = "v${finalAttrs.version}"; -    hash = "sha256-8Lr/0sx4SKwU1aNOxZArta0RXpDM+EWl29ZsPDdPWFo="; +    hash = "sha256-73b15A9+hClD6IbuxTy9QZKpTKjUFYBuqGOclUyhrnM=";    };    postPatch = '' @@ -38,6 +39,7 @@ stdenv.mkDerivation (finalAttrs: {          break        fi      done +    #export DMD=${ldc}/bin/ldmd2      if [ "$DC" == "" ]; then        exit "Error: could not find D compiler"      fi diff --git a/nix-overlays/ldc/bootstrap.nix b/nix-overlays/ldc/bootstrap.nix index d81e5a4..8f76b5b 100644 --- a/nix-overlays/ldc/bootstrap.nix +++ b/nix-overlays/ldc/bootstrap.nix @@ -1,4 +1,13 @@ -{ lib, stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames, libxml2 }: +{ +  lib, +  stdenv, +  fetchurl, +  curl, +  tzdata, +  autoPatchelfHook, +  fixDarwinDylibNames, +  libxml2, +}:  let    inherit (stdenv) hostPlatform; diff --git a/nix-overlays/ldc/package.nix b/nix-overlays/ldc/package.nix index 69a6457..39b510a 100644 --- a/nix-overlays/ldc/package.nix +++ b/nix-overlays/ldc/package.nix @@ -1,26 +1,27 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, ninja -, llvm_19 -, curl -, tzdata -, lit -, gdb -, unzip -, darwin -, callPackage -, makeWrapper -, runCommand -, writeText -, targetPackages - -, ldcBootstrap ? callPackage ./bootstrap.nix { } +{ +  lib, +  stdenv, +  fetchFromGitHub, +  cmake, +  ninja, +  llvm_19, +  curl, +  tzdata, +  lit, +  gdb, +  unzip, +  darwin, +  callPackage, +  makeWrapper, +  runCommand, +  writeText, +  targetPackages, + +  ldcBootstrap ? callPackage ./bootstrap.nix { },  }:  let -  pathConfig = runCommand "ldc-lib-paths" {} '' +  pathConfig = runCommand "ldc-lib-paths" { } ''      mkdir $out      echo ${tzdata}/share/zoneinfo/ > $out/TZDatabaseDirFile      echo ${curl.out}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} > $out/LibcurlPathFile @@ -106,8 +107,7 @@ stdenv.mkDerivation (finalAttrs: {    '';    # https://github.com/ldc-developers/ldc/issues/2497#issuecomment-459633746 -  additionalExceptions = lib.optionalString stdenv.hostPlatform.isDarwin -    "|druntime-test-shared"; +  additionalExceptions = lib.optionalString stdenv.hostPlatform.isDarwin "|druntime-test-shared";    checkPhase = ''      # Build default lib test runners @@ -147,34 +147,35 @@ stdenv.mkDerivation (finalAttrs: {    };    passthru.ldcBootstrap = ldcBootstrap; -  passthru.tests = let -    ldc = finalAttrs.finalPackage; -    helloWorld = stdenv.mkDerivation (finalAttrs: { -      name = "ldc-hello-world"; -      src = writeText "hello_world.d" '' -        module hello_world; -        import std.stdio; -        void main() { -          writeln("Hello, world!"); -        } -      ''; -      dontUnpack = true; -      buildInputs = [ ldc ]; -      dFlags = []; -      buildPhase = '' -        ldc2 ${lib.escapeShellArgs finalAttrs.dFlags} -of=test $src -      ''; -      installPhase = '' -        mkdir -p $out/bin -        mv test $out/bin -      ''; -    }); -  in { -    # Without -shared, built binaries should not contain -    # references to the compiler binaries. -    no-references-to-compiler = helloWorld.overrideAttrs { -      disallowedReferences = [ ldc ]; -      dFlags = ["-g"]; +  passthru.tests = +    let +      ldc = finalAttrs.finalPackage; +      helloWorld = stdenv.mkDerivation (finalAttrs: { +        name = "ldc-hello-world"; +        src = writeText "hello_world.d" '' +          module hello_world; +          import std.stdio; +          void main() { +            writeln("Hello, world!"); +          } +        ''; +        dontUnpack = true; +        buildInputs = [ ldc ]; +        dFlags = [ ]; +        buildPhase = '' +          ldc2 ${lib.escapeShellArgs finalAttrs.dFlags} -of=test $src +        ''; +        installPhase = '' +          mkdir -p $out/bin +          mv test $out/bin +        ''; +      }); +    in { +      # Without -shared, built binaries should not contain +      # references to the compiler binaries. +      no-references-to-compiler = helloWorld.overrideAttrs { +        disallowedReferences = [ ldc ]; +        dFlags = ["-g"];      };    };  }) | 
