summaryrefslogtreecommitdiffhomepage
path: root/org
diff options
context:
space:
mode:
Diffstat (limited to 'org')
-rw-r--r--org/dlang-nix-flakes.org1031
-rw-r--r--org/nix-develop-dlang-shared.org628
2 files changed, 982 insertions, 677 deletions
diff --git a/org/dlang-nix-flakes.org b/org/dlang-nix-flakes.org
index e41d492..8318729 100644
--- a/org/dlang-nix-flakes.org
+++ b/org/dlang-nix-flakes.org
@@ -21,9 +21,12 @@
- https://github.com/nix-community/nix-direnv/releases
- https://github.com/dlang/dmd/tags
+ https://code.dlang.org/packages/dmd
- https://github.com/ldc-developers/ldc/releases
- https://github.com/dlang/dub/releases
+ https://code.dlang.org/packages/dub
- https://github.com/dlang/tools/tags
+ https://code.dlang.org/packages/dtools
** README
@@ -222,7 +225,7 @@ nix flake update && nix flake check --show-trace && nix flake info && echo "" &&
** .gitignore
#+HEADER: :tangle "../.gitignore"
-#+BEGIN_SRC sh
+#+BEGIN_SRC shell
# git ls-files --others --exclude-from=.git/info/exclude
# git check-ignore -v flake.lock
# git clean -ix
@@ -272,14 +275,14 @@ tmp/**
*** nixDevEnv.sh (.envrc)
#+HEADER: :tangle "../nixDevEnv.sh"
-#+BEGIN_SRC sh
+#+BEGIN_SRC shell
if [ -f .envrc ]; then
source_env_if_exists .envrc || source .envrc
fi
#+END_SRC
#+HEADER: :tangle "../.envrc"
-#+BEGIN_SRC sh
+#+BEGIN_SRC shell
if [ -f .envrc-local ]; then
source_env_if_exists .envrc-local || source .envrc-local
fi
@@ -291,7 +294,7 @@ fi
*** .envrc-local
#+HEADER: :tangle "../.envrc-local"
-#+BEGIN_SRC sh
+#+BEGIN_SRC shell
#if [[ !( -f ./nix-flakes.org) && -f ../dlang-nix-flakes.org ]]; then
# # for editing purpose link to the .org file that creates ./dlang-nix-flakes/ content
# ln -s ../dlang-nix-flakes.org ./nix-flakes.org
@@ -312,11 +315,11 @@ fi
- ${NixDirEnvVersion}
#+HEADER: :tangle "../.envrc-nix"
-#+BEGIN_SRC sh
+#+BEGIN_SRC shell
NIX_ENFORCE_PURITY=1
# - https://github.com/nix-community/nix-direnv
-NixDirEnvVersion="<<direnv-version>>"
-NixDirEnvSHA="<<direnv-sha>>"
+NixDirEnvVersion="<<direnv_version>>"
+NixDirEnvSHA="<<direnv_hash>>"
if ! has nix_direnv_version || ! nix_direnv_version ${NixDirEnvVersion}; then
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "${NixDirEnvSHA}"
fi
@@ -336,67 +339,6 @@ use flake .
#use flake .#default
#+END_SRC
-*** 3.0.6
-
-#+NAME: direnv-version
-#+BEGIN_SRC sh
-3.0.6
-#+END_SRC
-
-#+NAME: direnv-sha
-#+BEGIN_SRC sh
-sha256-RYcUJaRMf8oF5LznDrlCXbkOQrywm0HDv1VjYGaJGdM=
-#+END_SRC
-
-*** 3.0.4
-
-#+BEGIN_SRC sh
-3.0.4
-#+END_SRC
-
-#+BEGIN_SRC sh
-sha256-DzlYZ33mWF/Gs8DDeyjr8mnVmQGx7ASYqA5WlxwvBG4=
-#+END_SRC
-
-*** 3.0.0
-
-#+BEGIN_SRC sh
-3.0.0
-#+END_SRC
-
-#+BEGIN_SRC sh
-sha256-21TMnI2xWX7HkSTjFFri2UaohXVj854mgvWapWrxRXg=
-#+END_SRC
-
-*** 2.4.0
-
-#+BEGIN_SRC sh
-2.4.0
-#+END_SRC
-
-#+BEGIN_SRC sh
-sha256-XQzUAvL6pysIJnRJyR7uVpmUSZfc7LSgWQwq/4mBr1U=
-#+END_SRC
-
-#+BEGIN_SRC sh
-2.3.0
-#+END_SRC
-
-#+BEGIN_SRC sh
-sha256-Dmd+j63L84wuzgyjITIfSxSD57Tx7v51DMxVZOsiUD8=
-#+END_SRC
-
-#+NAME: direnv-sha_
-#+BEGIN_SRC sh
-sha256-0000000000000000000000000000000000000000000=
-#+END_SRC
-
-#+BEGIN_SRC sh
-- https://github.com/nix-community/nix-direnv
-NixDirEnvSHA="sha256-0000000000000000000000000000000000000000000="
-direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc
-#+END_SRC
-
** .nix
*** flake.nix
@@ -493,32 +435,34 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix
inherit shell;
inherit devEnv;
packages = [
- gnumake
ldc
dub
dtools
+ gnumake
];
inherit shellHook;
};
dsh-overlay-ldc-dub = mkShell {
- name = "overlay - ldc-<<ldc_version>> - dub-<<dub_version>>";
+ name = "overlay - ldc-<<ldc_version>> - dub-<<dub_version>> - dtools-<<dtools_version>>";
inherit shell;
inherit devEnv;
packages = [
- gnumake
ldc
dub
+ dtools
+ gnumake
];
inherit shellHook;
};
dsh-overlay-dmd-dub = mkShell {
- name = "overlay - dmd-<<dmd_version>> - dub-<<dub_version>>";
+ name = "overlay - dmd-<<dmd_version>> - dub-<<dub_version>> - dtools-<<dtools_version>>";
inherit shell;
inherit devEnv;
packages = [
- gnumake
dmd
dub
+ dtools
+ gnumake
];
inherit shellHook;
};
@@ -527,11 +471,12 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix
inherit shell;
inherit devEnv;
packages = [
- gnumake
ldc
gtkd
tilix
dub
+ dtools
+ gnumake
];
inherit shellHook;
};
@@ -540,9 +485,10 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix
# inherit shell;
# inherit devEnv;
# packages = [
- # gnumake
# gdc
# dub
+ # dtools
+ # gnumake
# ];
# inherit shellHook;
#};
@@ -553,6 +499,7 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix
packages = with pkgs-nix; [
ldc
dub
+ dtools
gnumake
];
inherit shellHook;
@@ -564,6 +511,7 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix
packages = with pkgs-nix; [
dmd
dub
+ dtools
gnumake
];
inherit shellHook;
@@ -658,41 +606,42 @@ pkgs.callPackage ./shell.nix {}
- OK ldc 1.32.2 tested
-*** overlays
-**** default.nix OK ✓
+*** overlays OK ✓
+**** default.nix
#+HEADER: :tangle "../nix-overlays/ldc/default.nix"
#+BEGIN_SRC nix
import ./package.nix
#+END_SRC
-**** package.nix OK ✓ (unaltered)
+**** package.nix OK ✓
#+HEADER: :tangle "../nix-overlays/ldc/package.nix"
#+BEGIN_SRC nix
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, ninja
-, <<ldc_llvm_set>>
-, curl
-, tzdata
-, lit
-, gdb
-, unzip
-, darwin
-, callPackage
-, makeWrapper
-, runCommand
-, writeText
-, targetPackages
-
-, ldcBootstrap ? callPackage ./bootstrap.nix { }
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ cmake,
+ ninja,
+ <<ldc_llvm_set>>,
+ 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
@@ -778,8 +727,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
@@ -819,34 +767,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"];
};
};
})
@@ -858,7 +807,16 @@ stdenv.mkDerivation (finalAttrs: {
#+HEADER: :tangle "../nix-overlays/ldc/bootstrap.nix"
#+BEGIN_SRC nix
-{ lib, stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames, libxml2 }:
+{
+ lib,
+ stdenv,
+ fetchurl,
+ curl,
+ tzdata,
+ autoPatchelfHook,
+ fixDarwinDylibNames,
+ libxml2,
+}:
let
inherit (stdenv) hostPlatform;
@@ -932,75 +890,6 @@ hashes = {
};
#+END_SRC
-*** versions SET
-**** selected version SET OK ✓
-***** version & sha256 nix composite
-
-#+NAME: ldc_version_info
-#+BEGIN_SRC nix
-version = "<<ldc_version>>";
-sha256 = "<<ldc_hash>>";
-#+END_SRC
-
-***** select version SET OK ✓
-
-#+NAME: ldc_version
-#+BEGIN_SRC nix
-<<ldc_version_1_40_0>>
-#+END_SRC
-
-#+NAME: ldc_hash
-#+BEGIN_SRC nix
-<<ldc_hash_1_40_0>>
-#+END_SRC
-
-#+NAME: ldc_llvm_set
-#+BEGIN_SRC nix
-<<ldc_llvm_set_1_40_0>>
-#+END_SRC
-
-**** 1.40 OK ✓
-***** 1.40.0 OK ✓
-
- - 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_40_0
-#+BEGIN_SRC nix
-1.40.0
-#+END_SRC
-
-#+NAME: ldc_hash_1_40_0
-#+BEGIN_SRC nix
-sha256-LT85DlAebecPpBUgZP0ayKTVrTUqN6DMJVEWTatLOxY=
-#+END_SRC
-
-#+NAME: ldc_llvm_set_1_40_0
-#+BEGIN_SRC nix
-llvm_19
-#+END_SRC
-
-**** 1.39 OK ✓
-***** 1.39.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
-
-#+NAME: ldc_version_1_39_0
-#+BEGIN_SRC nix
-1.39.0
-#+END_SRC
-
-#+NAME: ldc_hash_1_39_0
-#+BEGIN_SRC nix
-sha256-ZiG0ATsY6Asu2nus3Y404fvqIwtKYoHl1JRUDU5A6mo=
-#+END_SRC
-
-#+NAME: ldc_llvm_set_1_39_0
-#+BEGIN_SRC nix
-llvm_18
-#+END_SRC
-
** dmd OK ✓
*** info
**** links
@@ -1023,10 +912,17 @@ llvm_18
*** overlays
**** default.nix
-***** default.nix >=2.108.0)
#+HEADER: :tangle "../nix-overlays/dmd/default.nix"
#+BEGIN_SRC nix
+import ./package.nix
+#+END_SRC
+
+**** package.nix OK ✓
+***** package.nix >=2.108.0)
+
+#+HEADER: :tangle "../nix-overlays/dmd/package.nix"
+#+BEGIN_SRC nix
import ./generic.nix {
version = "<<dmd_version>>";
dmdHash = "<<dmd_hash>>";
@@ -1034,10 +930,9 @@ import ./generic.nix {
}
#+END_SRC
-***** default.nix < 2.108.0)
-
+***** package.nix < 2.108.0)
-#+HEADER: :tangle-NO "../nix-overlays/dmd/default.nix"
+#+HEADER: :tangle-NO "../nix-overlays/dmd/package.nix"
#+BEGIN_SRC nix
import ./generic.nix {
version = "<<dmd_version>>";
@@ -1050,31 +945,33 @@ import ./generic.nix {
#+HEADER: :tangle "../nix-overlays/dmd/generic.nix"
#+BEGIN_SRC nix
-{ 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
@@ -1088,11 +985,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
@@ -1380,189 +1274,6 @@ stdenv.mkDerivation {
}
#+END_SRC
-*** versions SET
-**** selected version SET OK ✓
-
-#+NAME: dmd_version
-#+BEGIN_SRC nix
-<<dmd_version_2_109_1>>
-#+END_SRC
-
-#+NAME: dmd_hash
-#+BEGIN_SRC nix
-<<dmd_hash_2_109_1>>
-#+END_SRC
-
-#+NAME: phobos_hash
-#+BEGIN_SRC nix
-<<phobos_hash_2_109_1>>
-#+END_SRC
-
-**** 2.109.1 OK ✓
-
-- nix-prefetch-url --unpack https://github.com/dlang/dmd/archive/refs/tags/v2.109.1.tar.gz
-- nix-prefetch-url --unpack https://github.com/dlang/phobos/archive/refs/tags/v2.109.1.tar.gz
-
-#+NAME: dmd_version_2_109_1
-#+BEGIN_SRC nix
-2.109.1
-#+END_SRC
-
-#+NAME: phobos_hash_2_109_1
-#+BEGIN_SRC nix
-sha256-73I0k7tCBwe5tl4K6uMs3/nT2JTZ2SppFYzmokS4W5Y=
-#+END_SRC
-
-#+NAME: dmd_hash_2_109_1
-#+BEGIN_SRC nix
-sha256-3nCDPZnb4eQZmhYYxcH6qOmsP8or0KYuzAa5g/C9xdU=
-#+END_SRC
-
-**** 2.109.0 OK ✓
-
-- nix-prefetch-url --unpack https://github.com/dlang/dmd/archive/refs/tags/v2.109.0.tar.gz
-- nix-prefetch-url --unpack https://github.com/dlang/phobos/archive/refs/tags/v2.109.0.tar.gz
-
-#+NAME: dmd_version_2_109_0
-#+BEGIN_SRC nix
-2.109.0
-#+END_SRC
-
-#+NAME: dmd_hash_2_109_0
-#+BEGIN_SRC nix
-sha256-unAZgyZyT6qomlj6pdlOx4h1SKuDjutl1/0FM9AhBWc=
-#+END_SRC
-
-#+NAME: phobos_hash_2_109_0
-#+BEGIN_SRC nix
-sha256-b91FeluFqhmjHd1wwkyq98QzIlwjE646xNj2n6hP3aM=
-#+END_SRC
-
-**** 2.108.0 OK ✓
-
-- nix-prefetch-url --unpack https://github.com/dlang/dmd/archive/refs/tags/v2.108.0.tar.gz
-- nix-prefetch-url --unpack https://github.com/dlang/phobos/archive/refs/tags/v2.108.0.tar.gz
-
-#+NAME: dmd_version_2_108_0
-#+BEGIN_SRC nix
-2.108.0
-#+END_SRC
-
-#+NAME: dmd_hash_2_108_0
-#+BEGIN_SRC nix
-sha256-tlWcFgKtXzfqMMkOq4ezhZHdYCXFckjN5+m6jO4VH0U=
-#+END_SRC
-
-#+NAME: phobos_hash_2_108_0
-#+BEGIN_SRC nix
-sha256-uU8S4rABOfhpKh+MvSbclkbdf0hrsuKF8SIpWMnPpfU=
-#+END_SRC
-
-**** 2.107.0 - skip (asleep here apparently)
-
-- asleep apparently
-
-#+NAME: dmd_version_2_107_0
-#+BEGIN_SRC nix
-2.107.0
-#+END_SRC
-
-#+NAME: dmd_hash_2_107_0
-#+BEGIN_SRC nix
-<<sha256-blank>>
-#+END_SRC
-
-#+NAME: phobos_hash_2_107_0
-#+BEGIN_SRC nix
-<<sha256-blank>>
-#+END_SRC
-
-**** 2.106.1 OK ✓
-
-- nix-prefetch-url --unpack https://github.com/dlang/dmd/archive/refs/tags/v2.106.1.tar.gz
-- nix-prefetch-url --unpack https://github.com/dlang/phobos/archive/refs/tags/v2.106.1.tar.gz
-
-#+NAME: dmd_version_2_106_1
-#+BEGIN_SRC nix
-2.106.1
-#+END_SRC
-
-#+NAME: dmd_hash_2_106_1
-#+BEGIN_SRC nix
-sha256-vjYa/Pxrz7J2htXT+fa+xaeen/Vxne++lELbHTSXBK8=
-#+END_SRC
-
-#+NAME: phobos_hash_2_106_1
-#+BEGIN_SRC nix
-sha256-yRL9ub3u4mREG9PVxBvgQ/LDXD57RadPTZ2h08qyh/s=
-#+END_SRC
-
-**** 2.104.0 KO ✗
-
-- nix-prefetch-url --unpack https://github.com/dlang/dmd/archive/refs/tags/v2.104.0.tar.gz
-- nix-prefetch-url --unpack https://github.com/dlang/phobos/archive/refs/tags/v2.104.0.tar.gz
-
-#+NAME: dmd_version_2_104_0
-#+BEGIN_SRC nix
-2.104.0
-#+END_SRC
-
-#+NAME: dmd_hash_2_104_0
-#+BEGIN_SRC nix
-sha256-yv+uW6cYAId2HK/YSPxsR9Xt0o3LWa97z8KyzjFik6s=
-#+END_SRC
-
-#+NAME: phobos_hash_2_104_0
-#+BEGIN_SRC nix
-sha256-cWp36Gd/lh3gy21bf9z0/RqzlJmf6ypmx72aMeakcec=
-#+END_SRC
-
-**** 2.102.2 KO ✗
-
-- nix-prefetch-url --unpack https://github.com/dlang/dmd/archive/refs/tags/v2.102.2.tar.gz
-- nix-prefetch-url --unpack https://github.com/dlang/phobos/archive/refs/tags/v2.102.2.tar.gz
-
-#+NAME: dmd_version_2_102_2
-#+BEGIN_SRC nix
-2.102.2
-#+END_SRC
-
-#+NAME: dmd_hash_2_102_2
-#+BEGIN_SRC nix
-sha256-der9nb31hJ+K1aJZdzIgs8+eRgVVsH97QnYEnVbKUws=
-#+END_SRC
-
-#+NAME: phobos_hash_2_102_2
-#+BEGIN_SRC nix
-sha256-SracmUm2aY/LDCyDqYuVS39pCbwO8UCL3TSB0CVHpHE=
-#+END_SRC
-
-**** 2.100.2 KO ✗
-
-- nix-prefetch-url --unpack https://github.com/dlang/dmd/archive/refs/tags/v2.100.2.tar.gz
-- nix-prefetch-url --unpack https://github.com/dlang/druntime/archive/refs/tags/v2.100.2.tar.gz
-- nix-prefetch-url --unpack https://github.com/dlang/phobos/archive/refs/tags/v2.100.2.tar.gz
-
-#+NAME: dmd_version_2_100_2
-#+BEGIN_SRC nix
-2.100.2
-#+END_SRC
-
-#+NAME: dmd_hash_2_100_2
-#+BEGIN_SRC nix
-sha256-o4+G3ARXIGObYHtHooYZKr+Al6kHpiwpMIog3i4BlDM=
-#+END_SRC
-
-#+NAME: druntime_hash_2_100_2
-#+BEGIN_SRC nix
-sha256-qXvY1ECN4mPwOGgOE1FWwvxoRvlSww3tGLWgBdhzAKo=
-#+END_SRC
-
-#+NAME: phobos_hash_2_100_2
-#+BEGIN_SRC nix
-sha256-kTHRaAKG7cAGb4IE/NGHWaZ8t7ZceKj03l6E8wLzJzs=
-#+END_SRC
-
** dub OK
*** info
**** links
@@ -1590,23 +1301,26 @@ sha256-kTHRaAKG7cAGb4IE/NGHWaZ8t7ZceKj03l6E8wLzJzs=
- OK dub == 1.30.0 OK ✓
*** overlays
-**** default.nix OK ✓
+**** default.nix
#+HEADER: :tangle "../nix-overlays/dub/default.nix"
#+BEGIN_SRC nix
import ./package.nix
#+END_SRC
+**** package.nix OK ✓
+
#+HEADER: :tangle "../nix-overlays/dub/package.nix"
#+BEGIN_SRC nix
-{ lib
-, stdenv
-, fetchFromGitHub
-, curl
-, <<dcompiler>>
-, dcompiler ? <<dcompiler>>
-, libevent
-, rsync
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ curl,
+ <<dcompiler>>,
+ dcompiler ? <<dcompiler>>,
+ libevent,
+ rsync,
}:
assert dcompiler != null;
@@ -1639,6 +1353,7 @@ stdenv.mkDerivation (finalAttrs: {
break
fi
done
+ #export DMD=${ldc}/bin/ldmd2
if [ "$DC" == "" ]; then
exit "Error: could not find D compiler"
fi
@@ -1703,199 +1418,6 @@ ldc
dmd
#+END_SRC
-*** versions SET
-**** selected version SET
-
-#+NAME: dub_version
-#+BEGIN_SRC nix
-<<dub_version_1_38_1>>
-#+END_SRC
-
-#+NAME: dub_hash
-#+BEGIN_SRC nix
-<<dub_hash_1_38_1>>
-#+END_SRC
-
-**** 1.38 OK ✓
-***** 1.38.1
-
-- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.38.1.tar.gz
-
-#+NAME: dub_version_1_38_1
-#+BEGIN_SRC nix
-1.38.1
-#+END_SRC
-
-#+NAME: dub_hash_1_38_1
-#+BEGIN_SRC nix
-sha256-8Lr/0sx4SKwU1aNOxZArta0RXpDM+EWl29ZsPDdPWFo=
-#+END_SRC
-
-**** 1.36 OK ✓
-***** 1.36.0
-
-- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.36.0.tar.gz
-
-#+NAME: dub_version_1_36_0
-#+BEGIN_SRC nix
-1.36.0
-#+END_SRC
-
-#+NAME: dub_hash_1_36_0
-#+BEGIN_SRC nix
-sha256-S8pls9zxbGAQTwqYf4bDT2q7Ow12S8bBsJE5UmsACBs=
-#+END_SRC
-
-**** 1.35 OK ✓
-***** 1.35.0
-
-- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.35.0.tar.gz
-
-#+NAME: dub_version_1_35_0
-#+BEGIN_SRC nix
-1.35.0
-#+END_SRC
-
-#+NAME: dub_hash_1_35_0
-#+BEGIN_SRC nix
-sha256-hC46XKE6lLLMLGMGl4vDnLDBQy6P/Z7o3ayDJj0Sois=
-#+END_SRC
-
-**** 1.34 OK ✓
-***** 1.34.0
-
-- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.34.0.tar.gz
-
-#+NAME: dub_version_1_34_0
-#+BEGIN_SRC nix
-1.34.0
-#+END_SRC
-
-#+NAME: dub_hash_1_34_0
-#+BEGIN_SRC nix
-sha256-hC46XKE6lLLMLGMGl4vDnLDBQy6P/Z7o3ayDJj0Sois=
-#+END_SRC
-
-**** 1.33 OK ✓
-***** 1.33.1 OK ✓
-
-- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.33.1.tar.gz
-
-#+NAME: dub_version_1_33_1
-#+BEGIN_SRC nix
-1.33.1
-#+END_SRC
-
-#+NAME: dub_hash_1_33_1
-#+BEGIN_SRC nix
-sha256-QFgUsO04VRXBDjGI5QQs7u9XrexG7/V34TMgJP1D8yA=
-#+END_SRC
-
-**** 1.33.0 OK ✓
-
-- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.33.0.tar.gz
-
-#+NAME: dub_version_1_33_0
-#+BEGIN_SRC nix
-1.33.0
-#+END_SRC
-
-#+NAME: dub_hash_1_33_0
-#+BEGIN_SRC nix
-sha256-4Mha7WF6cg3DIccfpvOnheuvgfziv/7wo8iFsPXO4yY=
-#+END_SRC
-
-**** 1.32.1 OK ✓
-
-- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.32.1.tar.gz
-
-#+NAME: dub_version_1_32_1
-#+BEGIN_SRC nix
-1.32.1
-#+END_SRC
-
-#+NAME: dub_hash_1_32_1
-#+BEGIN_SRC nix
-sha256-5pW3Fu3PQ1ZLJnsuh7fPpEBNbVQgGfFyiuMrAVOJKQA=
-#+END_SRC
-
-- ISSUES from 1.31.0 continuing
-
-**** 1.31.1 OK ✓
-
-- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.31.1.tar.gz
-
-#+NAME: dub_version_1_31_1
-#+BEGIN_SRC nix
-1.31.1
-#+END_SRC
-
-#+NAME: dub_hash_1_31_1
-#+BEGIN_SRC nix
-sha256-dp64D51ypowXS1+EYKRXh5hpa3rMmiotvKO2FW+i92w=
-#+END_SRC
-
-- ISSUES from 1.31.0 continuing
-
-**** 1.31.0 OK ✓ NOTE
-
-- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.31.0.tar.gz
-
-behavior change in dub requiring the setting of pwd in buildPhase
-
-#+NAME: dub_version_1_31_0
-#+BEGIN_SRC nix
-1.31.0
-#+END_SRC
-
-#+NAME: dub_hash_1_31_0
-#+BEGIN_SRC nix
-sha256-Ki8HJOfWFM1tF86s7Ng3STgC/uu5acVTP0Dj87M0l54=
-#+END_SRC
-
-- ISSUES from 1.31.0 continuing
-**** 1.30.0 OK ✓
-
-- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.30.0.tar.gz
-
-#+NAME: dub_version_1_30_0
-#+BEGIN_SRC nix
-1.30.0
-#+END_SRC
-
-#+NAME: dub_hash_1_30_0
-#+BEGIN_SRC nix
-sha256-iVl7bjblvIxvrUX7Phq6h4AIAmZjNVkGYYFA1hhsE7c=
-#+END_SRC
-
-**** 1.29.1
-
-- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.29.1.tar.gz
-
-#+NAME: dub_version_1_29_1
-#+BEGIN_SRC nix
-1.29.1
-#+END_SRC
-
-#+NAME: dub_hash_1_29_1
-#+BEGIN_SRC nix
-sha256-XDV9p1bDhRL6gX+nizzjoErNJm8NnQK5O8wNnizloss=
-#+END_SRC
-
-**** 1.28.0
-
-- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.28.0.tar.gz
-
-#+NAME: dub_version_1_28_0
-#+BEGIN_SRC nix
-1.28.0
-#+END_SRC
-
-#+NAME: dub_hash_1_28_0
-#+BEGIN_SRC nix
-sha256-GOeaQyu8Y/DxZEAJPdlGH9ie/ZRTqvAw2jjvM3dESbg=
-#+END_SRC
-
** dtools OK ✓
*** info
**** links
@@ -1919,115 +1441,268 @@ sha256-GOeaQyu8Y/DxZEAJPdlGH9ie/ZRTqvAw2jjvM3dESbg=
#+HEADER: :tangle "../nix-overlays/dtools/default.nix"
#+BEGIN_SRC nix
-{ stdenv, lib, fetchFromGitHub, fetchpatch, ldc, curl, gnumake42 }:
+import ./package.nix
+#+END_SRC
+
+**** package.nix
+
+#+HEADER: :tangle "../nix-overlays/dtools/package.nix"
+#+BEGIN_SRC nix
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ ldc,
+ curl,
+}:
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
pname = "dtools";
version = "<<dtools_version>>";
src = fetchFromGitHub {
owner = "dlang";
repo = "tools";
- rev = "v${version}";
- sha256 = "<<dtools_hash>>";
+ rev = "v${finalAttrs.version}";
+ hash = "<<dtools_hash>>";
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=";
- })
+ # Disable failing tests
+ ./disabled-tests.diff
+ # Fix LDC arm64 build
+ ./fix-ldc-arm64.diff
];
- nativeBuildInputs = [ ldc gnumake42 ]; # fails with make 4.4
+ nativeBuildInputs = [ ldc ];
buildInputs = [ curl ];
- makeCmd = ''
- make -f posix.mak all DMD_DIR=dmd DMD=${ldc.out}/bin/ldmd2 CC=${stdenv.cc}/bin/cc
- '';
+ makeFlags = [
+ "CC=${stdenv.cc}/bin/cc"
+ "DMD=${ldc.out}/bin/ldmd2"
+ "INSTALL_DIR=$(out)"
+ ];
- buildPhase = ''
- $makeCmd
- '';
+ enableParallelBuilding = true;
doCheck = true;
-
- checkPhase = ''
- $makeCmd test_rdmd
- '';
-
- installPhase = ''
- $makeCmd INSTALL_DIR=$out install
- '';
+ checkTarget = "test_rdmd";
meta = with lib; {
- description = "Ancillary tools for the D programming language compiler";
+ description = "Ancillary tools for the D programming language";
homepage = "https://github.com/dlang/tools";
- license = lib.licenses.boost;
- maintainers = with maintainers; [ ThomasMader ];
- platforms = lib.platforms.unix;
+ license = licenses.boost;
+ maintainers = with maintainers; [ jtbx ];
+ platforms = platforms.unix;
};
-}
+})
#+END_SRC
-*** versions SET
-
-- https://github.com/dlang/tools
+#+HEADER: :tangle "../nix-overlays/dtools/disabled-tests.diff"
+#+BEGIN_SRC diff
+--- 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];
+#+END_SRC
+
+#+HEADER: :tangle "../nix-overlays/dtools/fix-ldc-arm64.diff"
+#+BEGIN_SRC diff
+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) \
+#+END_SRC
+
+** versions SET
+*** direnv
+***** select version SET OK ✓
-**** selected version SET OK ✓
+#+NAME: direnv_version
+#+HEADER: :noweb yes
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:direnv-version()>>
+#+END_SRC
-#+NAME: dtools_version
-#+BEGIN_SRC nix
-<<dtools_version_2_103_1>>
+#+NAME: direnv_hash
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:direnv-hash()>>
#+END_SRC
-#+NAME: dtools_hash
-#+BEGIN_SRC nix
-<<dtools_hash_2_103_1>>
+*** ldc
+***** version & sha256 nix composite
+
+#+NAME: ldc_version_info
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:ldc-version-info()>>
#+END_SRC
-**** 2.103.1 OK ✓
+***** select version SET OK ✓
-- https://github.com/dlang/tools/releases/tag/v2.103.1
+#+NAME: ldc_version
+#+HEADER: :noweb yes
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:ldc-version()>>
+#+END_SRC
-#+NAME: dtools_version_2_103_1
-#+BEGIN_SRC nix
-2.103.1
+#+NAME: ldc_hash
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:ldc-hash()>>
#+END_SRC
-#+NAME: dtools_hash_2_103_1
-#+BEGIN_SRC nix
-sha256-XM4gUxcarQCOBR8W/o0iWAI54PyLDkH6CsDce22Cnu4=
+#+NAME: ldc_llvm_set
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:ldc-llvm-set()>>
#+END_SRC
-**** 2.102.2
+*** dmd
-- https://github.com/dlang/tools/releases/tag/v2.102.2
+#+NAME: dmd_version
+#+HEADER: :noweb yes
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:dmd-version()>>
+#+END_SRC
-#+NAME: dtools_version_2_102_2
-#+BEGIN_SRC nix
-2.102.2
+#+NAME: dmd_hash
+#+BEGIN_SRC org
+<<./nix-develop-dlang-shared.org:dmd-hash()>>
#+END_SRC
-#+NAME: dtools_hash_2_102_2
-#+BEGIN_SRC nix
-sha256-XM4gUxcarQCOBR8W/o0iWAI54PyLDkH6CsDce22Cnu4=
+#+NAME: phobos_hash
+#+BEGIN_SRC org
+<<./nix-develop-dlang-shared.org:phobos-hash()>>
#+END_SRC
-**** 2.095.1 current nixpkgs 20-03-17 OK ✓
+*** dub
-- https://github.com/dlang/tools/releases/tag/v2.095.1
+#+NAME: dub_version
+#+HEADER: :noweb yes
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:dub-version()>>
+#+END_SRC
-#+NAME: dtools_version_2_095_1
+#+NAME: dub_hash
#+BEGIN_SRC nix
-2.095.1
+<<./nix-develop-dlang-shared.org:dub-hash()>>
#+END_SRC
-#+NAME: dtools_hash_2_095_1
-#+BEGIN_SRC nix
-sha256:0rdfk3mh3fjrb0h8pr8skwlq6ac9hdl1fkrkdl7n1fa2806b740b
+*** dtools
+
+#+NAME: dtools_version
+#+HEADER: :noweb yes
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:dtools-version()>>
+#+END_SRC
+
+#+NAME: dtools_hash
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:dtools-hash()>>
#+END_SRC
** sha256 blank_hash
@@ -2046,3 +1721,5 @@ sha256-0000000000000000000000000000000000000000000=
#+BEGIN_SRC nix
sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
#+END_SRC
+
+* __END__
diff --git a/org/nix-develop-dlang-shared.org b/org/nix-develop-dlang-shared.org
new file mode 100644
index 0000000..f0a7aac
--- /dev/null
+++ b/org/nix-develop-dlang-shared.org
@@ -0,0 +1,628 @@
+-*- mode: org -*-
+#+TITLE: dlang related shared versions
+#+DESCRIPTION: dlang
+#+FILETAGS: :dlang:develop:shared:
+#+AUTHOR: Ralph Amissah
+#+EMAIL: [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]]
+#+COPYRIGHT: Copyright (C) 2015 - 2025 Ralph Amissah
+#+LANGUAGE: en
+#+STARTUP: content hideblocks hidestars noindent entitiespretty
+#+PROPERTY: header-args :noweb yes
+#+PROPERTY: header-args+ :exports code
+#+PROPERTY: header-args+ :results no
+#+PROPERTY: header-args+ :cache no
+#+PROPERTY: header-args+ :padline no
+#+PROPERTY: header-args+ :mkdirp yes
+#+OPTIONS: H:3 num:nil toc:t \n:t ::t |:t ^:nil -:t f:t *:t
+
+* nix
+** direnv
+*** version SET
+
+#+NAME: direnv-version
+#+BEGIN_SRC org
+<<direnv_version_3_0_6>>
+#+END_SRC
+
+#+NAME: direnv-hash
+#+BEGIN_SRC org
+<<direnv_hash_3_0_6>>
+#+END_SRC
+
+*** versions
+
+**** 3.0.6
+
+#+NAME: direnv_version_3_0_6
+#+BEGIN_SRC org
+3.0.6
+#+END_SRC
+
+#+NAME: direnv_hash_3_0_6
+#+BEGIN_SRC org
+sha256-RYcUJaRMf8oF5LznDrlCXbkOQrywm0HDv1VjYGaJGdM=
+#+END_SRC
+
+**** 3.0.4
+
+#+NAME: direnv_version_3_0_4
+#+BEGIN_SRC org
+3.0.4
+#+END_SRC
+
+#+NAME: direnv_hash_3_0_4
+#+BEGIN_SRC org
+sha256-DzlYZ33mWF/Gs8DDeyjr8mnVmQGx7ASYqA5WlxwvBG4=
+#+END_SRC
+
+**** 3.0.0
+
+#+NAME: direnv_version_3_0_0
+#+BEGIN_SRC org
+3.0.0
+#+END_SRC
+
+#+NAME: direnv_hash_3_0_0
+#+BEGIN_SRC org
+sha256-21TMnI2xWX7HkSTjFFri2UaohXVj854mgvWapWrxRXg=
+#+END_SRC
+
+**** 2.4.0
+
+#+NAME: direnv_version_2_4_0
+#+BEGIN_SRC org
+2.4.0
+#+END_SRC
+
+#+NAME: direnv_hash_2_4_0
+#+BEGIN_SRC org
+sha256-XQzUAvL6pysIJnRJyR7uVpmUSZfc7LSgWQwq/4mBr1U=
+#+END_SRC
+
+* dlang
+** ldc
+*** version SET
+**** version & sha256 nix composite
+
+#+NAME: ldc-version-info
+#+BEGIN_SRC org
+version = "<<ldc-version>>";
+sha256 = "<<ldc-hash>>";
+#+END_SRC
+
+**** select version SET OK ✓
+
+#+NAME: ldc-version
+#+BEGIN_SRC org
+<<ldc_version_1_40_1>>
+#+END_SRC
+
+#+NAME: ldc-hash
+#+BEGIN_SRC org
+<<ldc_hash_1_40_1>>
+#+END_SRC
+
+#+NAME: ldc-llvm-set
+#+BEGIN_SRC org
+<<ldc_llvm_set_1_40_1>>
+#+END_SRC
+
+*** versions
+**** 1.40 OK ✓
+***** 1.40.1 OK ✓
+
+ - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.40.1.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_40_1
+#+BEGIN_SRC nix
+1.40.1
+#+END_SRC
+
+#+NAME: ldc_hash_1_40_1
+#+BEGIN_SRC nix
+sha256-WdnwdH25A5oMNNY3uWG2hxnaAT+S1hNuP7LElH3uuuk=
+#+END_SRC
+
+#+NAME: ldc_llvm_set_1_40_1
+#+BEGIN_SRC nix
+llvm_19
+#+END_SRC
+
+***** 1.40.0 OK ✓
+
+ - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.40.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_40_0
+#+BEGIN_SRC nix
+1.40.0
+#+END_SRC
+
+#+NAME: ldc_hash_1_40_0
+#+BEGIN_SRC nix
+sha256-LT85DlAebecPpBUgZP0ayKTVrTUqN6DMJVEWTatLOxY=
+#+END_SRC
+
+#+NAME: ldc_llvm_set_1_40_0
+#+BEGIN_SRC nix
+llvm_19
+#+END_SRC
+
+**** 1.39 OK ✓
+***** 1.39.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
+
+#+NAME: ldc_version_1_39_0
+#+BEGIN_SRC nix
+1.39.0
+#+END_SRC
+
+#+NAME: ldc_hash_1_39_0
+#+BEGIN_SRC nix
+sha256-ZiG0ATsY6Asu2nus3Y404fvqIwtKYoHl1JRUDU5A6mo=
+#+END_SRC
+
+#+NAME: ldc_llvm_set_1_39_0
+#+BEGIN_SRC nix
+llvm_18
+#+END_SRC
+
+**** =< 1.32
+***** 1.32.2
+
+- 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
+
+***** 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
+
+***** 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
+
+***** 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
+
+***** 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
+
+** dmd
+*** version SET
+
+#+NAME: dmd-version
+#+BEGIN_SRC org
+<<dmd_version_2_110_0>>
+#+END_SRC
+
+#+NAME: dmd-hash
+#+BEGIN_SRC org
+<<dmd_hash_2_110_0>>
+#+END_SRC
+
+#+NAME: phobos-hash
+#+BEGIN_SRC org
+<<phobos_hash_2_110_0>>
+#+END_SRC
+
+*** versions
+**** 2.111.0 OK ✓
+
+- nix-prefetch-url --unpack https://github.com/dlang/dmd/archive/refs/tags/v2.111.0-beta.1.tar.gz
+- nix-prefetch-url --unpack https://github.com/dlang/phobos/archive/refs/tags/v2.111.0-beta.1.tar.gz
+
+#+NAME: dmd_version_2_111_0
+#+BEGIN_SRC nix
+2.111.0-beta.1
+#+END_SRC
+
+#+NAME: phobos_hash_2_111_0
+#+BEGIN_SRC nix
+sha256-yPmstS52J0BboR++9nYaeUq2mAJrFuUjxxi2BGgGCUY=
+#+END_SRC
+
+#+NAME: dmd_hash_2_111_0
+#+BEGIN_SRC nix
+sha256-MfGcno6o+GXZTWyWZ0kGYtMcMPuj2VgQd5I+nPKz1I4=
+#+END_SRC
+
+**** 2.110.0 OK ✓
+
+- nix-prefetch-url --unpack https://github.com/dlang/dmd/archive/refs/tags/v2.110.0.tar.gz
+- nix-prefetch-url --unpack https://github.com/dlang/phobos/archive/refs/tags/v2.110.0.tar.gz
+
+#+NAME: dmd_version_2_110_0
+#+BEGIN_SRC nix
+2.110.0
+#+END_SRC
+
+#+NAME: phobos_hash_2_110_0
+#+BEGIN_SRC nix
+sha256-CmJpcHM+sIsaYBlpALCFoQFG+93s8gUyWmM0tYqjXkk=
+#+END_SRC
+
+#+NAME: dmd_hash_2_110_0
+#+BEGIN_SRC nix
+sha256-icXp9xWF2AI2gp7z/lQFAChmXfQePe9b5pbpQ9Mn19Y=
+#+END_SRC
+
+**** 2.109.1 OK ✓
+
+- nix-prefetch-url --unpack https://github.com/dlang/dmd/archive/refs/tags/v2.109.1.tar.gz
+- nix-prefetch-url --unpack https://github.com/dlang/phobos/archive/refs/tags/v2.109.1.tar.gz
+
+#+NAME: dmd_version_2_109_1
+#+BEGIN_SRC nix
+2.109.1
+#+END_SRC
+
+#+NAME: phobos_hash_2_109_1
+#+BEGIN_SRC nix
+sha256-73I0k7tCBwe5tl4K6uMs3/nT2JTZ2SppFYzmokS4W5Y=
+#+END_SRC
+
+#+NAME: dmd_hash_2_109_1
+#+BEGIN_SRC nix
+sha256-3nCDPZnb4eQZmhYYxcH6qOmsP8or0KYuzAa5g/C9xdU=
+#+END_SRC
+
+**** 2.109.0 OK ✓
+
+- nix-prefetch-url --unpack https://github.com/dlang/dmd/archive/refs/tags/v2.109.0.tar.gz
+- nix-prefetch-url --unpack https://github.com/dlang/phobos/archive/refs/tags/v2.109.0.tar.gz
+
+#+NAME: dmd_version_2_109_0
+#+BEGIN_SRC nix
+2.109.0
+#+END_SRC
+
+#+NAME: dmd_hash_2_109_0
+#+BEGIN_SRC nix
+sha256-unAZgyZyT6qomlj6pdlOx4h1SKuDjutl1/0FM9AhBWc=
+#+END_SRC
+
+#+NAME: phobos_hash_2_109_0
+#+BEGIN_SRC nix
+sha256-b91FeluFqhmjHd1wwkyq98QzIlwjE646xNj2n6hP3aM=
+#+END_SRC
+
+**** 2.108.0 OK ✓
+
+- nix-prefetch-url --unpack https://github.com/dlang/dmd/archive/refs/tags/v2.108.0.tar.gz
+- nix-prefetch-url --unpack https://github.com/dlang/phobos/archive/refs/tags/v2.108.0.tar.gz
+
+#+NAME: dmd_version_2_108_0
+#+BEGIN_SRC nix
+2.108.0
+#+END_SRC
+
+#+NAME: dmd_hash_2_108_0
+#+BEGIN_SRC nix
+sha256-tlWcFgKtXzfqMMkOq4ezhZHdYCXFckjN5+m6jO4VH0U=
+#+END_SRC
+
+#+NAME: phobos_hash_2_108_0
+#+BEGIN_SRC nix
+sha256-uU8S4rABOfhpKh+MvSbclkbdf0hrsuKF8SIpWMnPpfU=
+#+END_SRC
+
+**** 2.107.0 OK ✓
+
+- nix-prefetch-url --unpack https://github.com/dlang/dmd/archive/refs/tags/v2.107.0.tar.gz
+- nix-prefetch-url --unpack https://github.com/dlang/phobos/archive/refs/tags/v2.107.0.tar.gz
+
+#+NAME: dmd_version_2_107_0
+#+BEGIN_SRC nix
+2.107.0
+#+END_SRC
+
+#+NAME: dmd_hash_2_107_0
+#+BEGIN_SRC nix
+<<sha256-blank>>
+#+END_SRC
+
+#+NAME: phobos_hash_2_107_0
+#+BEGIN_SRC nix
+<<sha256-blank>>
+#+END_SRC
+
+**** 2.106.1 OK ✓
+
+- nix-prefetch-url --unpack https://github.com/dlang/dmd/archive/refs/tags/v2.106.1.tar.gz
+- nix-prefetch-url --unpack https://github.com/dlang/phobos/archive/refs/tags/v2.106.1.tar.gz
+
+#+NAME: dmd_version_2_106_1
+#+BEGIN_SRC nix
+2.106.1
+#+END_SRC
+
+#+NAME: dmd_hash_2_106_1
+#+BEGIN_SRC nix
+sha256-vjYa/Pxrz7J2htXT+fa+xaeen/Vxne++lELbHTSXBK8=
+#+END_SRC
+
+#+NAME: phobos_hash_2_106_1
+#+BEGIN_SRC nix
+sha256-yRL9ub3u4mREG9PVxBvgQ/LDXD57RadPTZ2h08qyh/s=
+#+END_SRC
+
+#+NAME: dmd_version
+#+BEGIN_SRC nix
+<<dmd_version_2_104_0>>
+#+END_SRC
+
+#+NAME: dmd_hash
+#+BEGIN_SRC nix
+<<dmd_hash_2_104_0>>
+#+END_SRC
+
+#+NAME: phobos_hash
+#+BEGIN_SRC nix
+<<phobos_hash_2_104_0>>
+#+END_SRC
+
+** dub
+*** version SET
+
+#+NAME: dub-version
+#+HEADER: :noweb yes
+#+BEGIN_SRC org
+<<dub_version_1_39_0>>
+#+END_SRC
+
+#+NAME: dub-hash
+#+BEGIN_SRC org
+<<dub_hash_1_39_0>>
+#+END_SRC
+
+*** versions
+**** 1.39 OK ✓
+***** 1.39.0
+
+- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.39.0.tar.gz
+
+#+NAME: dub_version_1_39_0
+#+BEGIN_SRC nix
+1.39.0
+#+END_SRC
+
+#+NAME: dub_hash_1_39_0
+#+BEGIN_SRC nix
+sha256-73b15A9+hClD6IbuxTy9QZKpTKjUFYBuqGOclUyhrnM=
+#+END_SRC
+
+**** 1.38 OK ✓
+***** 1.38.1
+
+- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.38.1.tar.gz
+
+#+NAME: dub_version_1_38_1
+#+BEGIN_SRC nix
+1.38.1
+#+END_SRC
+
+#+NAME: dub_hash_1_38_1
+#+BEGIN_SRC nix
+sha256-8Lr/0sx4SKwU1aNOxZArta0RXpDM+EWl29ZsPDdPWFo=
+#+END_SRC
+
+**** 1.36 OK ✓
+***** 1.36.0
+
+- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.36.0.tar.gz
+
+#+NAME: dub_version_1_36_0
+#+BEGIN_SRC nix
+1.36.0
+#+END_SRC
+
+#+NAME: dub_hash_1_36_0
+#+BEGIN_SRC nix
+sha256-S8pls9zxbGAQTwqYf4bDT2q7Ow12S8bBsJE5UmsACBs=
+#+END_SRC
+
+**** 1.35 OK ✓
+***** 1.35.0
+
+- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.35.0.tar.gz
+
+#+NAME: dub_version_1_35_0
+#+BEGIN_SRC nix
+1.35.0
+#+END_SRC
+
+#+NAME: dub_hash_1_35_0
+#+BEGIN_SRC nix
+sha256-hC46XKE6lLLMLGMGl4vDnLDBQy6P/Z7o3ayDJj0Sois=
+#+END_SRC
+
+**** 1.34 OK ✓
+***** 1.34.0
+
+- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.34.0.tar.gz
+
+#+NAME: dub_version_1_34_0
+#+BEGIN_SRC nix
+1.34.0
+#+END_SRC
+
+#+NAME: dub_hash_1_34_0
+#+BEGIN_SRC nix
+sha256-hC46XKE6lLLMLGMGl4vDnLDBQy6P/Z7o3ayDJj0Sois=
+#+END_SRC
+
+**** 1.33 OK ✓
+***** 1.33.1
+
+- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.33.1.tar.gz
+
+#+NAME: dub_version_1_33_1
+#+BEGIN_SRC nix
+1.33.1
+#+END_SRC
+
+#+NAME: dub_hash_1_33_1
+#+BEGIN_SRC nix
+sha256-QFgUsO04VRXBDjGI5QQs7u9XrexG7/V34TMgJP1D8yA=
+#+END_SRC
+
+***** 1.33.0
+
+- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.33.0.tar.gz
+
+#+NAME: dub_version_1_33_0
+#+BEGIN_SRC nix
+1.33.0
+#+END_SRC
+
+#+NAME: dub_hash_1_33_0
+#+BEGIN_SRC nix
+sha256-4Mha7WF6cg3DIccfpvOnheuvgfziv/7wo8iFsPXO4yY=
+#+END_SRC
+
+**** 1.32 OK ✓
+***** 1.32.1
+
+- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.32.1.tar.gz
+
+#+NAME: dub_version_1_32_1
+#+BEGIN_SRC nix
+1.32.1
+#+END_SRC
+
+#+NAME: dub_hash_1_32_1
+#+BEGIN_SRC nix
+sha256-5pW3Fu3PQ1ZLJnsuh7fPpEBNbVQgGfFyiuMrAVOJKQA=
+#+END_SRC
+
+** dtools
+
+- https://github.com/dlang/tools
+
+*** version SET
+
+#+NAME: dtools-version
+#+BEGIN_SRC org
+<<dtools_version_2_110_0>>
+#+END_SRC
+
+#+NAME: dtools-hash
+#+BEGIN_SRC org
+<<dtools_hash_2_110_0>>
+#+END_SRC
+
+*** versions
+**** 2.110.0 OK ✓
+
+- https://github.com/dlang/tools/releases/tag/v2.110.0
+
+#+NAME: dtools_version_2_110_0
+#+BEGIN_SRC nix
+2.110.0
+#+END_SRC
+
+#+NAME: dtools_hash_2_110_0
+#+BEGIN_SRC nix
+sha256-xMEHnrstL5hAkhp8+/z1I2KZWZ7eztWZnUGLTKCfbBI=
+#+END_SRC
+
+**** 2.109.1 OK ✓
+
+- https://github.com/dlang/tools/releases/tag/v2.109.1
+
+#+NAME: dtools_version_2_109_1
+#+BEGIN_SRC nix
+2.109.1
+#+END_SRC
+
+#+NAME: dtools_hash_2_109_1
+#+BEGIN_SRC nix
+sha256-Pfj8Kwf5AlcrHhLs5A/0vIFWLZaNR3ro+esbs7oWN9I=
+#+END_SRC
+
+**** 2.104.1 OK ✓
+
+- https://github.com/dlang/tools/releases/tag/v2.104.2
+
+#+NAME: dtools_version_2_104_2
+#+BEGIN_SRC nix
+2.104.2
+#+END_SRC
+
+#+NAME: dtools_hash_2_104_2
+#+BEGIN_SRC nix
+sha256-Pfj8Kwf5AlcrHhLs5A/0vIFWLZaNR3ro+esbs7oWN9I=
+#+END_SRC
+
+** sha256 blank_hash
+
+#+NAME: blank_hash
+#+BEGIN_SRC nix
+<<sha256-blank>>
+#+END_SRC
+
+#+NAME: sha256-blank
+#+BEGIN_SRC nix
+sha256-0000000000000000000000000000000000000000000=
+#+END_SRC
+
+#+NAME: assumed_hash
+#+BEGIN_SRC nix
+sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+#+END_SRC
+
+* __END__