summaryrefslogtreecommitdiffhomepage
path: root/org
diff options
context:
space:
mode:
Diffstat (limited to 'org')
-rw-r--r--org/dlang-nix-flakes.org1423
-rw-r--r--org/nix-develop-dlang-shared.org711
2 files changed, 1213 insertions, 921 deletions
diff --git a/org/dlang-nix-flakes.org b/org/dlang-nix-flakes.org
index 888b2e0..14e5894 100644
--- a/org/dlang-nix-flakes.org
+++ b/org/dlang-nix-flakes.org
@@ -17,6 +17,17 @@
#+OPTIONS: H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t
* nix ( written to ../ )
+** check updates CHECK
+
+- 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
#+HEADER: :tangle "../README"
@@ -27,7 +38,7 @@
,#+FILETAGS: :dlang:build:tools:
,#+AUTHOR: Ralph Amissah
,#+EMAIL: [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]]
-,#+COPYRIGHT: Copyright (C) 2022 - 2024 Ralph Amissah
+,#+COPYRIGHT: Copyright (C) 2022 - 2025 Ralph Amissah
,#+LANGUAGE: en
,#+STARTUP: content hideblocks hidestars noindent entitiespretty
@@ -214,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
@@ -261,17 +272,17 @@ tmp/**
#+END_SRC
** .env*
-*** .envrc
+*** 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
@@ -283,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
@@ -298,16 +309,17 @@ fi
*** .envrc-nix
- https://github.com/nix-community/nix-direnv
+- https://github.com/nix-community/nix-direnv/releases
- source_url
- direnv fetchurl "https://raw.githubusercontent.com/nix-community/nix-direnv/<<direnv-version>>/direnvrc" "<<direnv-sha>>"
- ${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
@@ -327,57 +339,6 @@ use flake .
#use flake .#default
#+END_SRC
-*** 3.0.4
-
-#+NAME: direnv-version
-#+BEGIN_SRC sh
-3.0.4
-#+END_SRC
-
-#+NAME: direnv-sha
-#+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
@@ -386,11 +347,11 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix
{
description = "build dummy D package using dub build tool";
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
pname = "dummy";
@@ -445,17 +406,16 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix
inherit shell;
inherit devEnv;
buildInputs = [sqlite];
- nativeBuildInputs = [dub ldc gnumake]; # [ dub dmd ]; [ dub ldc ]; [ dub gdc ];
+ nativeBuildInputs = [gnumake dub ldc];
+ preBuild = ''
+ export DCn=ldmd2
+ export DC=$(type -P $DCn || echo "")
+ if [ "$DC" == "" ]; then exit "Error: could not find D compiler"; fi
+ '';
buildPhase = ''
runHook preBuild
- for DC_ in dmd ldmd2 ldc2 gdc gdmd; do
- echo "- check for D compiler $DC_"
- DC=$(type -P $DC_ || echo "")
- if [ ! "$DC" == "" ]; then break; fi
- done
- if [ "$DC" == "" ]; then exit "Error: could not find D compiler"; fi
- echo "$DC_ used as D compiler to build $pname"
- dub build --cache=local --compiler=$DC --build=$DC_ --combined --skip-registry=all
+ echo "$DCn used as D compiler to build $pname"
+ dub build --cache=local --compiler=$DC --build=$DCn --combined --skip-registry=all
runHook postBuild
'';
inherit checkPhase;
@@ -475,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;
};
@@ -509,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;
};
@@ -522,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;
#};
@@ -535,6 +499,7 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix
packages = with pkgs-nix; [
ldc
dub
+ dtools
gnumake
];
inherit shellHook;
@@ -546,6 +511,7 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix
packages = with pkgs-nix; [
dmd
dub
+ dtools
gnumake
];
inherit shellHook;
@@ -561,7 +527,6 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix
#+HEADER: :tangle "../shell.nix"
#+HEADER: :tangle-mode (identity #o755)
#+HEADER: :shebang "#!/usr/bin/env -S nix-shell --pure\n#!nix-shell -i bash"
-#+HEADER: :noweb yes
#+BEGIN_SRC nix
{pkgs-nix ? import <nixpkgs> {}}:
with pkgs-nix;
@@ -570,25 +535,25 @@ with pkgs-nix;
# ❯❯❯ nix_related
#nix
direnv
- nixVersions.nix_2_21 #nixVersions.latest #nixVersions.git
+ nixVersions.latest #nixVersions.latest #nixVersions.git
nix-prefetch-git
validatePkgConfig
nix-output-monitor
#nix-tree
#nvd
jq #gx
- #alejandra
+ #nixfmt-rfc-style
git
# ❯❯❯ dev
gnumake
ps
# ❯❯❯ d_build_related
+ # ❯❯ package manager
+ #dub
# ❯❯ compiler
#dmd
#ldc
#rund
- # ❯❯ package manager
- #dub
# ❯❯ linker
#lld
#mold
@@ -641,29 +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 ./generic.nix {
- <<ldc_version_info>>
-}
+import ./package.nix
#+END_SRC
-**** generic.nix OK ✓ (unaltered)
+**** package.nix OK ✓
-#+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
-, 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
@@ -671,60 +649,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 = ''
@@ -733,7 +707,7 @@ stdenv.mkDerivation rec {
makeFlags = [ "DMD=$DMD" ];
- fixNames = lib.optionalString stdenv.hostPlatform.isDarwin ''
+ fixNames = lib.optionalString stdenv.hostPlatform.isDarwin ''
fixDarwinDylibNames() {
local flags=()
@@ -753,14 +727,13 @@ stdenv.mkDerivation rec {
'';
# 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
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"
@@ -773,90 +746,83 @@ 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;
@@ -864,7 +830,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;
@@ -885,7 +851,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 ];
@@ -895,271 +861,33 @@ in stdenv.mkDerivation {
}
#+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_39_0>>
-#+END_SRC
-
-#+NAME: ldc_hash
-#+BEGIN_SRC nix
-<<ldc_hash_1_39_0>>
-#+END_SRC
-
-#+NAME: ldc_llvm_set
-#+BEGIN_SRC nix
-<<ldc_llvm_set_1_39_0>>
-#+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-g5usNvYHMxjjbwsWN2fgO9vT9X2ZJWuXSUrEObWaRWI=
-#+END_SRC
-
-#+NAME: ldc_llvm_set_1_39_0
-#+BEGIN_SRC nix
-llvm_18
-#+END_SRC
-
-**** 1.38 OK ✓
-***** 1.38.0 OK ✓
+***** bootstrap.nix version SELECT
+****** bootstrap.nix ldc2-1.25.0
-- 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/releases/download/v${version}/ldc-${version}-src.tar.gz
-
-#+NAME: ldc_version_1_38_0
-#+BEGIN_SRC nix
-1.38.0
-#+END_SRC
-
-#+NAME: ldc_hash_1_38_0
-#+BEGIN_SRC nix
-sha256-ymI47+Ai40zTB2dB+KBwxqN3GWNRxhlJpIpIyZN5844=
-#+END_SRC
-
-#+NAME: ldc_llvm_set_1_38_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
+#+NAME: ldc_bootstrap_1-25-0_hashes
#+BEGIN_SRC nix
-1.31.0
+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
-#+NAME: ldc_hash_1_31_0
-#+BEGIN_SRC nix
-sha256-8cjs6eHjWAbDRBvyT75mbN3Y7vN1WSwZzY/uRwHNVFg=
-#+END_SRC
+****** bootstrap.nix ldc2-1.30.0
-#+NAME: ldc_llvm_set_1_31_0
+#+NAME: ldc_bootstrap_1-30-0_hashes
#+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
+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
** dmd OK ✓
@@ -1184,10 +912,17 @@ llvm_14
*** 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>>";
@@ -1195,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>>";
@@ -1211,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
@@ -1249,11 +985,8 @@ let
};
bits = builtins.toString stdenv.hostPlatform.parsed.cpu.bits;
- osname =
- if stdenv.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
@@ -1310,6 +1043,9 @@ stdenv.mkDerivation (finalAttrs: {
rm dmd/compiler/test/runnable/gdb4149.d
rm dmd/compiler/test/runnable/gdb4181.d
rm dmd/compiler/test/compilable/ddocYear.d
+ rm dmd/compiler/test/compilable/sarif_success_test.d
+ rm dmd/compiler/test/fail_compilation/sarif_test.d
+ rm dmd/compiler/test/fail_compilation/sarifmultiple_test.d
# Disable tests that rely on objdump whitespace until fixed upstream:
# https://issues.dlang.org/show_bug.cgi?id=23317
@@ -1319,11 +1055,11 @@ stdenv.mkDerivation (finalAttrs: {
rm dmd/compiler/test/dshell/test6952.d
'' + lib.optionalString (lib.versionAtLeast version "2.092.2") ''
substituteInPlace dmd/compiler/test/dshell/test6952.d --replace-fail "/usr/bin/env bash" "${bash}/bin/bash"
- '' + lib.optionalString stdenv.isLinux ''
+ '' + lib.optionalString stdenv.hostPlatform.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-fail "foreach (name; names)" "names = []; foreach (name; names)"
- '';
+ ''; # + lib.optionalString stdenv.hostPlatform.isDarwin ''
+ # substituteInPlace phobos/std/socket.d --replace-fail "foreach (name; names)" "names = []; foreach (name; names)"
+ #'';
nativeBuildInputs = [
makeWrapper
@@ -1336,7 +1072,7 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
curl
tzdata
- # ] ++ lib.optionals stdenv.isDarwin [
+ # ] ++ lib.optionals stdenv.hostPlatform.isDarwin []
# Foundation
];
@@ -1421,15 +1157,23 @@ stdenv.mkDerivation (finalAttrs: {
disallowedReferences = [ dmdBootstrap ];
+ passthru = {
+ inherit dmdBootstrap;
+ };
+
meta = with lib; {
description = "Official reference compiler for the D language";
homepage = "https://dlang.org/";
+ changelog = "https://dlang.org/changelog/${finalAttrs.version}.html";
# 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" ];
+ # ld: section __DATA/__thread_bss has type zero-fill but non-zero file offset file '/private/tmp/nix-build-dmd-2.109.1.drv-0/.rdmd-301/rdmd-build.d-A1CF043A7D87C5E88A58F3C0EF5A0DF7/objs/build.o' for architecture x86_64
+ # clang-16: error: linker command failed with exit code 1 (use -v to see invocation)
+ broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64;
};
})
#+END_SRC
@@ -1532,169 +1276,6 @@ stdenv.mkDerivation {
}
#+END_SRC
-*** versions SET
-**** selected version SET OK ✓
-
-#+NAME: dmd_version
-#+BEGIN_SRC nix
-<<dmd_version_2_109_0>>
-#+END_SRC
-
-#+NAME: dmd_hash
-#+BEGIN_SRC nix
-<<dmd_hash_2_109_0>>
-#+END_SRC
-
-#+NAME: phobos_hash
-#+BEGIN_SRC nix
-<<phobos_hash_2_109_0>>
-#+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
@@ -1722,15 +1303,31 @@ 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
-{ lib, stdenv, fetchFromGitHub, curl, libevent, rsync, ldc, dcompiler ? ldc }:
+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,
+}:
assert dcompiler != null;
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
pname = "dub";
version = "<<dub_version>>";
@@ -1739,48 +1336,44 @@ 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
done
+ #export DMD=${ldc}/bin/ldmd2
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"
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+ $DC -run ./build.d
+ runHook postBuild
'';
- doCheck = !stdenv.isDarwin;
+ 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
@@ -1788,8 +1381,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
@@ -1797,199 +1389,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
-
-*** versions SET
-**** selected version SET
-
-#+NAME: dub_version
-#+BEGIN_SRC nix
-<<dub_version_1_36_0>>
-#+END_SRC
-
-#+NAME: dub_hash
-#+BEGIN_SRC nix
-<<dub_hash_1_36_0>>
-#+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
+*** dcompiler
-#+NAME: dub_version_1_28_0
+#+NAME: dcompiler
#+BEGIN_SRC nix
-1.28.0
+ldc
#+END_SRC
-#+NAME: dub_hash_1_28_0
#+BEGIN_SRC nix
-sha256-GOeaQyu8Y/DxZEAJPdlGH9ie/ZRTqvAw2jjvM3dESbg=
+dmd
#+END_SRC
** dtools OK ✓
@@ -2015,130 +1443,283 @@ 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
+#+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 GET
+*** direnv
+***** select version
+
+#+NAME: direnv_version
+#+HEADER: :noweb yes
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:direnv-version()>>
+#+END_SRC
-- https://github.com/dlang/tools
+#+NAME: direnv_hash
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:direnv-hash()>>
+#+END_SRC
-**** selected version SET OK ✓
+*** ldc
+***** version & sha256 nix composite
-#+NAME: dtools_version
-#+BEGIN_SRC nix
-<<dtools_version_2_103_1>>
+#+NAME: ldc_version_info
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:ldc-version-info()>>
#+END_SRC
-#+NAME: dtools_hash
-#+BEGIN_SRC nix
-<<dtools_hash_2_103_1>>
+***** selected version
+
+#+NAME: ldc_version
+#+HEADER: :noweb yes
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:ldc-version()>>
#+END_SRC
-**** 2.103.1 OK ✓
+#+NAME: ldc_hash
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:ldc-hash()>>
+#+END_SRC
-- https://github.com/dlang/tools/releases/tag/v2.103.1
+#+NAME: ldc_llvm_set
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:ldc-llvm-set()>>
+#+END_SRC
-#+NAME: dtools_version_2_103_1
-#+BEGIN_SRC nix
-2.103.1
+*** dmd
+**** selected version
+
+#+NAME: dmd_version
+#+HEADER: :noweb yes
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:dmd-version()>>
#+END_SRC
-#+NAME: dtools_hash_2_103_1
-#+BEGIN_SRC nix
-sha256-XM4gUxcarQCOBR8W/o0iWAI54PyLDkH6CsDce22Cnu4=
+#+NAME: dmd_hash
+#+BEGIN_SRC org
+<<./nix-develop-dlang-shared.org:dmd-hash()>>
#+END_SRC
-**** 2.102.2
+#+NAME: phobos_hash
+#+BEGIN_SRC org
+<<./nix-develop-dlang-shared.org:phobos-hash()>>
+#+END_SRC
-- https://github.com/dlang/tools/releases/tag/v2.102.2
+*** dub
+**** selected version
-#+NAME: dtools_version_2_102_2
-#+BEGIN_SRC nix
-2.102.2
+#+NAME: dub_version
+#+HEADER: :noweb yes
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:dub-version()>>
#+END_SRC
-#+NAME: dtools_hash_2_102_2
+#+NAME: dub_hash
#+BEGIN_SRC nix
-sha256-XM4gUxcarQCOBR8W/o0iWAI54PyLDkH6CsDce22Cnu4=
+<<./nix-develop-dlang-shared.org:dub-hash()>>
#+END_SRC
-**** 2.095.1 current nixpkgs 20-03-17 OK ✓
+*** dtools
+**** selected version
-- https://github.com/dlang/tools/releases/tag/v2.095.1
-
-#+NAME: dtools_version_2_095_1
-#+BEGIN_SRC nix
-2.095.1
+#+NAME: dtools_version
+#+HEADER: :noweb yes
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:dtools-version()>>
#+END_SRC
-#+NAME: dtools_hash_2_095_1
-#+BEGIN_SRC nix
-sha256:0rdfk3mh3fjrb0h8pr8skwlq6ac9hdl1fkrkdl7n1fa2806b740b
+#+NAME: dtools_hash
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:dtools-hash()>>
#+END_SRC
** sha256 blank_hash
#+NAME: sha256-blank
#+BEGIN_SRC nix
-sha256-0000000000000000000000000000000000000000000=
+<<./nix-develop-dlang-shared.org:sha256-blank()>>
#+END_SRC
#+NAME: blank_hash
#+BEGIN_SRC nix
-sha256-0000000000000000000000000000000000000000000=
+<<./nix-develop-dlang-shared.org:sha256-blank()>>
#+END_SRC
-#+NAME: assumed_hash
-#+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..b7f4f79
--- /dev/null
+++ b/org/nix-develop-dlang-shared.org
@@ -0,0 +1,711 @@
+-*- 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
+*** NOTES to update direnv in .envrc-nix
+
+- https://github.com/nix-community/nix-direnv
+
+check for latest version:
+
+- https://github.com/nix-community/nix-direnv/releases
+
+update direnv version and sha hash:
+- emacs org/nix-develop-dlang-shared.org
+
+re-tangle file:
+
+- emacs dlang-nix-flakes.org
+ updates: .envrc-nix
+
+update flake.lock:
+- nix flake update && nix flake check && nix flake show
+
+*** version SET
+
+#+NAME: direnv-version
+#+BEGIN_SRC org
+<<direnv_version_3_0_7>>
+#+END_SRC
+
+#+NAME: direnv-hash
+#+BEGIN_SRC org
+<<direnv_hash_3_0_7>>
+#+END_SRC
+
+*** versions
+
+**** 3.0.7
+
+#+NAME: direnv_version_3_0_7
+#+BEGIN_SRC org
+3.0.7
+#+END_SRC
+
+#+NAME: direnv_hash_3_0_7
+#+BEGIN_SRC org
+sha256-bn8WANE5a91RusFmRI7kS751ApelG02nMcwRekC/qzc=
+#+END_SRC
+
+**** 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
+*** NOTES to update ldc
+
+check for latest version:
+
+update ldc version and sha hash:
+- emacs ./org/nix-develop-dlang-shared.org
+
+re-tangle files:
+- emacs dlang-nix-flakes.org
+ updates: nix-overlays/ldc/package.nix
+ updates: flake.nix
+ updates: .envrc-nix
+
+update flake.lock:
+- nix flake update && nix flake check && nix flake show
+
+build:
+- nix build ".#spine-overlay-ldc" --print-build-logs
+
+adjust nix overlay if required (to get started):
+- git clone --depth 1 https://github.com/NixOS/nixpkgs
+- find ./nixpkgs/pkgs/ -type d -name "ldc"
+ ./nixpkgs/pkgs/by-name/ld/ldc
+- compare with overlay:
+ ./nix-overlays/ldc
+- overlay is tangled from:
+ emacs ./org/nixpkgs_overlays_d_related.org
+
+*** 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_41_0>>
+#+END_SRC
+
+#+NAME: ldc-hash
+#+BEGIN_SRC org
+<<ldc_hash_1_41_0>>
+#+END_SRC
+
+#+NAME: ldc-llvm-set
+#+BEGIN_SRC org
+<<ldc_llvm_set_1_41_0>>
+#+END_SRC
+
+*** versions
+**** 1.41 OK ✓
+***** 1.41.0 OK ✓
+
+ - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.41.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_41_0
+#+BEGIN_SRC nix
+1.41.0
+#+END_SRC
+
+#+NAME: ldc_hash_1_41_0
+#+BEGIN_SRC nix
+sha256-6LcpY3LSFK4KgEiGrFp/LONu5Vr+/+vI04wEEpF3s+s=
+#+END_SRC
+
+#+NAME: ldc_llvm_set_1_41_0
+#+BEGIN_SRC nix
+llvm_19
+#+END_SRC
+
+**** 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
+
+- https://github.com/dlang/dmd/tags
+
+*** version SET
+
+#+NAME: dmd-version
+#+BEGIN_SRC org
+<<dmd_version_2_111_0>>
+#+END_SRC
+
+#+NAME: dmd-hash
+#+BEGIN_SRC org
+<<dmd_hash_2_111_0>>
+#+END_SRC
+
+#+NAME: phobos-hash
+#+BEGIN_SRC org
+<<phobos_hash_2_111_0>>
+#+END_SRC
+
+*** versions
+**** 2.111.0 OK ✓
+
+- nix-prefetch-url --unpack https://github.com/dlang/dmd/archive/refs/tags/v2.111.0.tar.gz
+- nix-prefetch-url --unpack https://github.com/dlang/phobos/archive/refs/tags/v2.111.0.tar.gz
+
+#+NAME: dmd_version_2_111_0
+#+BEGIN_SRC nix
+2.111.0
+#+END_SRC
+
+#+NAME: phobos_hash_2_111_0
+#+BEGIN_SRC nix
+sha256-9jySZbODoL8sULhYKj/l4+c/uiG5xY2dO240k9XQtPk=
+#+END_SRC
+
+#+NAME: dmd_hash_2_111_0
+#+BEGIN_SRC nix
+sha256-2bjsGa9nTny818dLRV6LKkes+Ycq8W+PFjwhGVrD5TM=
+#+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__