diff options
Diffstat (limited to 'org/nixpkgs_overlays_d_related.org')
-rw-r--r-- | org/nixpkgs_overlays_d_related.org | 570 |
1 files changed, 211 insertions, 359 deletions
diff --git a/org/nixpkgs_overlays_d_related.org b/org/nixpkgs_overlays_d_related.org index 7abaa20..a059306 100644 --- a/org/nixpkgs_overlays_d_related.org +++ b/org/nixpkgs_overlays_d_related.org @@ -352,11 +352,11 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix { description = "dub d package manager"; inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; - inputs.flake-utils.url = "github:numtide/flake-utils"; + #inputs.flake-utils.url = "github:numtide/flake-utils"; outputs = { self, nixpkgs, - flake-utils, + #flake-utils, ... }@inputs: let name = "dev-dub"; @@ -386,14 +386,14 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix in { packages = forAllSystems (system: let pkgs-ovl = pkgsForSystem system; - pkgs = nixpkgsFor.${system}; + pkgs-nix = nixpkgsFor.${system}; in with pkgs-ovl; { default = dub; }); devShells = forAllSystems (system: let pkgs-ovl = pkgsForSystem system; - pkgs = nixpkgsFor.${system}; + pkgs-nix = nixpkgsFor.${system}; shellHook = '' ''; in @@ -460,16 +460,25 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix name = "nixpkgs - ldc - dub"; inherit shell; inherit devEnv; - #nativeBuildInputs = [ dub dmd ldc gdc gnumake ]; - #buildInputs = [ sqlite ]; - packages = with pkgs; [ + packages = with pkgs-nix; [ ldc dub gnumake ]; inherit shellHook; }; - default = import ./shell.nix {inherit pkgs;}; + dsh-nixpkgs-dmd-dub = mkShell { + name = "nixpkgs - ldc - dub"; + inherit shell; + inherit devEnv; + packages = with pkgs-nix; [ + dmd + dub + gnumake + ]; + inherit shellHook; + }; + default = import ./shell.nix {inherit pkgs-nix;}; }); }; } @@ -481,8 +490,8 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix #+HEADER: :tangle-mode (identity #o755) #+HEADER: :shebang "#!/usr/bin/env -S nix-shell -I nixpkgs=/srv/nix/nixpkgs --pure\n#!nix-shell -i bash" #+BEGIN_SRC nix -{pkgs ? import <nixpkgs> {}}: -with pkgs; +{pkgs-nix ? import <nixpkgs> {}}: +with pkgs-nix; mkShell { buildInputs = [ # ❯❯❯ nix_related @@ -495,7 +504,7 @@ with pkgs; #nix-tree #nvd jq #gx - #alejandra + #nixfmt-rfc-style git # ❯❯❯ dev ldc @@ -550,19 +559,31 @@ pkgs.callPackage ./shell.nix {} #+HEADER: :tangle "../nix-overlays/ldc/default.nix" #+BEGIN_SRC nix -import ./generic.nix { - <<ldc_version_info>> -} +import ./package.nix #+END_SRC -**** generic.nix OK ✓ (unaltered) +**** package.nix OK ✓ (unaltered) -#+HEADER: :tangle "../nix-overlays/ldc/generic.nix" +#+HEADER: :tangle "../nix-overlays/ldc/package.nix" #+BEGIN_SRC nix -{ version, sha256 }: -{ lib, stdenv, fetchurl, cmake, ninja, <<ldc_llvm_set>>, curl, tzdata -, libconfig, lit, gdb, unzip, darwin, bash -, callPackage, makeWrapper, runCommand, targetPackages +{ lib +, stdenv +, fetchFromGitHub +, cmake +, ninja +, <<ldc_llvm_set>> +, curl +, tzdata +, lit +, gdb +, unzip +, darwin +, callPackage +, makeWrapper +, runCommand +, writeText +, targetPackages + , ldcBootstrap ? callPackage ./bootstrap.nix { } }: @@ -575,60 +596,56 @@ let in -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "ldc"; - inherit version; + version = "<<ldc_version>>"; - src = fetchurl { - url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz"; - inherit sha256; + src = fetchFromGitHub { + owner = "ldc-developers"; + repo = "ldc"; + rev = "v${finalAttrs.version}"; + hash = "<<ldc_hash>>"; + 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 - - # 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 - ''; - 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)" + 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 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)" + + # https://github.com/NixOS/nixpkgs/issues/34817 + rm -r tests/plugins/addFuncEntryCall ''; nativeBuildInputs = [ cmake ldcBootstrap lit lit.python <<ldc_llvm_set>>.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 ]; buildInputs = [ curl tzdata ]; + outputs = [ "out" "include" ]; + outputInclude = "include"; + cmakeFlags = [ "-DD_FLAGS=-d-version=TZDatabaseDir;-d-version=LibcurlPath;-J${pathConfig}" + "-DINCLUDE_INSTALL_DIR=${placeholder "include"}/include/d" ]; postConfigure = '' @@ -637,7 +654,7 @@ stdenv.mkDerivation rec { makeFlags = [ "DMD=$DMD" ]; - fixNames = lib.optionalString stdenv.hostPlatform.isDarwin '' + fixNames = lib.optionalString stdenv.hostPlatform.isDarwin '' fixDarwinDylibNames() { local flags=() @@ -664,7 +681,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" @@ -677,90 +694,73 @@ 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"; + description = "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" ]; }; -} -#+END_SRC - -**** bootstrap.nix - -#+HEADER: :tangle "../nix-overlays/ldc/bootstrap.nix" -#+BEGIN_SRC nix -<<ldc_bootstrap_1-25-0>> -#+END_SRC -#+NAME: ldc_bootstrap_1-25-0 -#+BEGIN_SRC nix -{ callPackage }: -callPackage ./binary.nix { - version = "1.25.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 = "sha256-6iKnbS+oalLKmyS8qYD/wS21b7+O+VgsWG2iT4PrWPU="; - linux-x86_64 = "sha256-sfg47RdlsIpryc3iZvE17OtLweh3Zw6DeuNJYgpuH+o="; - linux-aarch64 = "sha256-UDZ43x4flSo+SfsPeE8juZO2Wtk2ZzwySk0ADHnvJBI="; - osx-arm64 = "sha256-O/x0vy0wwQFaDc4uWSeMhx+chJKqbQb6e5QNYf+7DCw="; + 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"]; + }; }; -} +}) #+END_SRC -#+NAME: ldc_bootstrap_1-30-0 -#+BEGIN_SRC nix -{ 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="; - }; -} -#+END_SRC +**** bootstrap.nix - this is the ldc bootstrap in current use, nixpkgs: +#+HEADER: :tangle "../nix-overlays/ldc/bootstrap.nix" #+BEGIN_SRC nix -{ 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="; - }; -} -#+END_SRC - -**** binary.nix (unaltered) - -#+HEADER: :tangle "../nix-overlays/ldc/binary.nix" -#+BEGIN_SRC nix -{ 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; + <<ldc_bootstrap_1-25-0_hashes>> in stdenv.mkDerivation { pname = "ldc-bootstrap"; inherit version; @@ -768,7 +768,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; @@ -789,7 +789,7 @@ in stdenv.mkDerivation { ''; meta = with lib; { - description = "The LLVM-based D Compiler"; + description = "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 ]; @@ -799,6 +799,35 @@ in stdenv.mkDerivation { } #+END_SRC +***** bootstrap.nix version SELECT +****** bootstrap.nix ldc2-1.25.0 + +#+NAME: ldc_bootstrap_1-25-0_hashes +#+BEGIN_SRC nix +version = "1.25.0"; +hashes = { + # Get these from `nix store prefetch-file https://github.com/ldc-developers/ldc/releases/download/v1.25.0/ldc2-1.25.0-osx-x86_64.tar.xz` etc.. + osx-x86_64 = "sha256-6iKnbS+oalLKmyS8qYD/wS21b7+O+VgsWG2iT4PrWPU="; + linux-x86_64 = "sha256-sfg47RdlsIpryc3iZvE17OtLweh3Zw6DeuNJYgpuH+o="; + linux-aarch64 = "sha256-UDZ43x4flSo+SfsPeE8juZO2Wtk2ZzwySk0ADHnvJBI="; + osx-arm64 = "sha256-O/x0vy0wwQFaDc4uWSeMhx+chJKqbQb6e5QNYf+7DCw="; +}; +#+END_SRC + +****** bootstrap.nix ldc2-1.30.0 + +#+NAME: ldc_bootstrap_1-30-0_hashes +#+BEGIN_SRC nix +version = "1.30.0"; +hashes = { + # Get these from `nix store prefetch-file https://github.com/ldc-developers/ldc/releases/download/v1.30.0/ldc2-1.30.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="; +}; +#+END_SRC + *** versions SET **** selected version SET OK ✓ ***** version & sha256 nix composite @@ -826,246 +855,48 @@ sha256 = "<<ldc_hash>>"; <<ldc_llvm_set_1_39_0>> #+END_SRC -**** 1.39 OK ✓ -***** 1.39.0 OK ✓ +**** 1.40 OK ✓ +***** 1.40.0 OK ✓ -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.39.0.tar.gz -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz + - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.40.0-beta6.tar.gz + - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz -#+NAME: ldc_version_1_39_0 +#+NAME: ldc_version_1_40_0 #+BEGIN_SRC nix -1.39.0 +1.40.0-beta6 #+END_SRC -#+NAME: ldc_hash_1_39_0 +#+NAME: ldc_hash_1_40_0 #+BEGIN_SRC nix -sha256-g5usNvYHMxjjbwsWN2fgO9vT9X2ZJWuXSUrEObWaRWI= +sha256-ErwbOw69HX9epUe8rxzL8Px7iAlZUnfrB9Erq124JnE= #+END_SRC -#+NAME: ldc_llvm_set_1_39_0 +#+NAME: ldc_llvm_set_1_40_0 #+BEGIN_SRC nix llvm_18 #+END_SRC -**** 1.38 OK ✓ -***** 1.38.0 OK ✓ +**** 1.39 OK ✓ +***** 1.39.0 OK ✓ -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.38.0.tar.gz +- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.39.0.tar.gz - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz -#+NAME: ldc_version_1_38_0 +#+NAME: ldc_version_1_39_0 #+BEGIN_SRC nix -1.38.0 +1.39.0 #+END_SRC -#+NAME: ldc_hash_1_38_0 +#+NAME: ldc_hash_1_39_0 #+BEGIN_SRC nix -sha256-ymI47+Ai40zTB2dB+KBwxqN3GWNRxhlJpIpIyZN5844= +sha256-ZiG0ATsY6Asu2nus3Y404fvqIwtKYoHl1JRUDU5A6mo= #+END_SRC -#+NAME: ldc_llvm_set_1_38_0 +#+NAME: ldc_llvm_set_1_39_0 #+BEGIN_SRC nix llvm_18 #+END_SRC -**** 1.37 OK ✓ -***** 1.37.0 OK ✓ - -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.37.0.tar.gz -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz - -#+NAME: ldc_version_1_37_0 -#+BEGIN_SRC nix -1.37.0 -#+END_SRC - -#+NAME: ldc_hash_1_37_0 -#+BEGIN_SRC nix -sha256-UOgK48Q2yQY3wsPUDzktwotyH3qrOh48o79PnCjboGQ= -#+END_SRC - -#+NAME: ldc_llvm_set_1_37_0 -#+BEGIN_SRC nix -llvm_17 -#+END_SRC - -**** 1.36 OK ✓ -***** 1.36.0 OK ✓ - -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.36.0.tar.gz - -#+NAME: ldc_version_1_36_0 -#+BEGIN_SRC nix -1.36.0 -#+END_SRC - -#+NAME: ldc_hash_1_36_0 -#+BEGIN_SRC nix -sha256-oAx5BzEjqIfBf0Rsd4KklVajUSo9Natna31Trhu41u8= -#+END_SRC - -#+NAME: ldc_llvm_set_1_36_0 -#+BEGIN_SRC nix -llvm_17 -#+END_SRC - -**** 1.35 OK ✓ -***** 1.35.0 OK ✓ - -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.35.0.tar.gz - -#+NAME: ldc_version_1_35_0 -#+BEGIN_SRC nix -1.35.0 -#+END_SRC - -#+NAME: ldc_hash_1_35_0 -#+BEGIN_SRC nix -sha256-bilpk3BsdsCT5gkTmqCz+HBDVfoPN1b2dY141EIm36A= -#+END_SRC - -#+NAME: ldc_llvm_set_1_35_0 -#+BEGIN_SRC nix -llvm_16 -#+END_SRC - -**** 1.34 OK ✓ -***** 1.34.0 OK ✓ - -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.34.0.tar.gz - -#+NAME: ldc_version_1_34_0 -#+BEGIN_SRC nix -1.34.0 -#+END_SRC - -#+NAME: ldc_hash_1_34_0 -#+BEGIN_SRC nix -sha256-MAXG6ceSWFOMg5eXZnZ6WePXTzy5CsLLDc5ddXO+txk= -#+END_SRC - -#+NAME: ldc_llvm_set_1_34_0 -#+BEGIN_SRC nix -llvm_16 -#+END_SRC - -**** 1.33 OK ✓ -***** 1.33.0 OK ✓ - -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.33.0.tar.gz - -#+NAME: ldc_version_1_33_0 -#+BEGIN_SRC nix -1.33.0 -#+END_SRC - -#+NAME: ldc_hash_1_33_0 -#+BEGIN_SRC nix -sha256-g0wbCMX1s6mPnvuvhjLw03fRfawcFxDkg8nuaEZYw6g= -#+END_SRC - -#+NAME: ldc_llvm_set_1_33_0 -#+BEGIN_SRC nix -llvm_15 -#+END_SRC - -**** 1.32 -***** 1.32.2 OK ✓ - -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.32.1.tar.gz - -#+NAME: ldc_version_1_32_2 -#+BEGIN_SRC nix -1.32.2 -#+END_SRC - -#+NAME: ldc_hash_1_32_2 -#+BEGIN_SRC nix -sha256-v6Sq7nQyChJohDyI4inzObLfCVOkvLT87VLr4N2hzZU= -#+END_SRC - -#+NAME: ldc_llvm_set_1_32_2 -#+BEGIN_SRC nix -llvm_15 -#+END_SRC - -***** 1.32.1 - -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.32.1.tar.gz - -#+NAME: ldc_version_1_32_1 -#+BEGIN_SRC nix -1.32.1 -#+END_SRC - -#+NAME: ldc_hash_1_32_1 -#+BEGIN_SRC nix -sha256-s1U7+qiVJDF+zSHrLGPG6g+acIChYnXkb9p+OrNX6g8= -#+END_SRC - -#+NAME: ldc_llvm_set_1_32_1 -#+BEGIN_SRC nix -llvm_14 -#+END_SRC - -***** 1.32.0 - -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.32.0.tar.gz - -#+NAME: ldc_version_1_32_0 -#+BEGIN_SRC nix -1.32.0 -#+END_SRC - -#+NAME: ldc_hash_1_32_0 -#+BEGIN_SRC nix -sha256-xO4L+RtBbdVkE1PZsme2pIYAxJnHgr6xEtLkYOMpvqw= -#+END_SRC - -#+NAME: ldc_llvm_set_1_32_0 -#+BEGIN_SRC nix -llvm_14 -#+END_SRC - -**** 1.31 -***** 1.31.0 - -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.31.0.tar.gz - -#+NAME: ldc_version_1_31_0 -#+BEGIN_SRC nix -1.31.0 -#+END_SRC - -#+NAME: ldc_hash_1_31_0 -#+BEGIN_SRC nix -sha256-8cjs6eHjWAbDRBvyT75mbN3Y7vN1WSwZzY/uRwHNVFg= -#+END_SRC - -#+NAME: ldc_llvm_set_1_31_0 -#+BEGIN_SRC nix -llvm_14 -#+END_SRC - -***** 1.30.0 - -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.30.0.tar.gz - -#+NAME: ldc_version_1_30_0 -#+BEGIN_SRC nix -1.30.0 -#+END_SRC - -#+NAME: ldc_hash_1_30_0 -#+BEGIN_SRC nix -sha256-/bs3bwgkLZF5IqaiKnc5gCF/r6MQBG/F1kWUkK8j2s0= -#+END_SRC - -#+NAME: ldc_llvm_set_1_30_0 -#+BEGIN_SRC nix -llvm_14 -#+END_SRC - ** dmd OK ✓ *** info **** links @@ -1659,11 +1490,24 @@ sha256-kTHRaAKG7cAGb4IE/NGHWaZ8t7ZceKj03l6E8wLzJzs= #+HEADER: :tangle "../nix-overlays/dub/default.nix" #+BEGIN_SRC nix -{ lib, stdenv, fetchFromGitHub, curl, libevent, rsync, ldc, dcompiler ? ldc }: +import ./package.nix +#+END_SRC + +#+HEADER: :tangle "../nix-overlays/dub/package.nix" +#+BEGIN_SRC nix +{ lib +, stdenv +, fetchFromGitHub +, curl +, <<dcompiler>> +, dcompiler ? <<dcompiler>> +, libevent +, rsync +}: assert dcompiler != null; -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "dub"; version = "<<dub_version>>"; @@ -1672,30 +1516,21 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "dlang"; repo = "dub"; - rev = "v${version}"; - sha256 = "<<dub_hash>>"; + rev = "v${finalAttrs.version}"; + hash = "<<dub_hash>>"; }; - #postUnpack = '' - # patchShebangs . - #''; - - dubvar = "\\$DUB"; postPatch = '' patchShebangs test - - # Can be removed with https://github.com/dlang/dub/pull/1368 - substituteInPlace test/fetchzip.sh \ - --replace "dub remove" "\"${dubvar}\" remove" ''; nativeBuildInputs = [ dcompiler libevent rsync ]; buildInputs = [ curl ]; - buildPhase = '' - for DC_ in dmd ldmd2 gdmd; do - echo "... check for D compiler $DC_ ..." - export DC=$(type -P $DC_ || echo "") + preBuild = '' + for DCn in dmd ldmd2 gdmd; do + echo "... check for D compiler $DCn ..." + export DC=$(type -P $DCn || echo "") if [ ! "$DC" == "" ]; then break fi @@ -1703,17 +1538,21 @@ stdenv.mkDerivation rec { if [ "$DC" == "" ]; then exit "Error: could not find D compiler" fi - echo "$DC_ found and used as D compiler in buildPhase for $pname" - $DC ./build.d - ./build + echo "$DCn found and used as D compiler in buildPhase for $pname" ''; - doCheck = !stdenv.isDarwin; + buildPhase = '' + runHook preBuild + $DC -run ./build.d + runHook postBuild + ''; + + doCheck = !stdenv.hostPlatform.isDarwin; checkPhase = '' + runHook preCheck export DUB=$NIX_BUILD_TOP/source/bin/dub export PATH=$PATH:$NIX_BUILD_TOP/source/bin/ - #export DC=${dcompiler.out}/bin/${if dcompiler.pname=="ldc" then "ldc2" else dcompiler.pname} if [ "$DC" == "" ]; then exit "Error: could not find D compiler" fi @@ -1721,8 +1560,7 @@ stdenv.mkDerivation rec { export HOME=$TMP rm -rf test/issue502-root-import - rm -rf test/dpath-variable - #rm test/dpath-variable.sh + rm -r test/dpath-variable # requires execution of dpath-variable.sh rm -rf test/git-dependency rm -rf test/use-c-sources # added to build v1.33.0 rm -rf test/pr2642-cache-db # added to build v1.34.0 @@ -1730,21 +1568,35 @@ stdenv.mkDerivation rec { rm -rf test/pr2647-build-deep # added to build v1.36.0 ./test/run-unittest.sh + runHook postCheck ''; installPhase = '' - mkdir -p $out/bin - cp bin/dub $out/bin + runHook preInstall + install -Dm755 bin/dub $out/bin/dub + runHook postInstall ''; meta = with lib; { - description = "Package and build manager for D applications and libraries"; + description = "Package and build manager for D programs and libraries"; homepage = "https://code.dlang.org/"; license = licenses.mit; + mainProgram = "dub"; maintainers = with maintainers; [ jtbx ]; platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; }; -} +}) +#+END_SRC + +*** dcompiler SET + +#+NAME: dcompiler +#+BEGIN_SRC nix +ldc +#+END_SRC + +#+BEGIN_SRC nix +dmd #+END_SRC *** versions SET |