From 01b97ab40ec20a0ad73d2271b1397122e7b1bed5 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Mon, 2 Dec 2024 19:18:50 -0500 Subject: nix build houskeeping, version updates, incl. dmd & dub --- .envrc-nix | 4 +- derivation.nix | 2 +- devenv.nix | 4 +- flake.lock | 12 +++--- nix-overlays/README | 14 +++--- nix-overlays/dmd/default.nix | 6 +-- nix-overlays/dmd/generic.nix | 17 ++++++-- nix-overlays/dub/default.nix | 4 +- org/config_env.org | 14 +++++- org/config_nix.org | 10 ++--- org/nixpkgs_overlays_d_related.org | 87 ++++++++++++++++++++++++++++++++------ shell.nix | 4 +- 12 files changed, 130 insertions(+), 48 deletions(-) diff --git a/.envrc-nix b/.envrc-nix index e73a20d..71f009b 100644 --- a/.envrc-nix +++ b/.envrc-nix @@ -1,7 +1,7 @@ NIX_ENFORCE_PURITY=1 # - https://github.com/nix-community/nix-direnv -NixDirEnvVersion="3.0.4" -NixDirEnvSHA="sha256-DzlYZ33mWF/Gs8DDeyjr8mnVmQGx7ASYqA5WlxwvBG4=" +NixDirEnvVersion="3.0.6" +NixDirEnvSHA="sha256-RYcUJaRMf8oF5LznDrlCXbkOQrywm0HDv1VjYGaJGdM=" if ! has nix_direnv_version || ! nix_direnv_version ${NixDirEnvVersion}; then source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "${NixDirEnvSHA}" fi diff --git a/derivation.nix b/derivation.nix index 1457658..3ad7056 100644 --- a/derivation.nix +++ b/derivation.nix @@ -90,7 +90,7 @@ with ( version = "0.17.0"; src = ./.; nativeBuildInputs = with pkgs; [dub ldc]; - buildInputs = with pkgs; [nixVersions.nix_2_21 sqlite]; + buildInputs = with pkgs; [nixVersions.latest sqlite]; meta = with pkgs.lib; { description = "A sisu like parser & document generator"; longDescription = '' diff --git a/devenv.nix b/devenv.nix index b1b3b8d..60a373e 100644 --- a/devenv.nix +++ b/devenv.nix @@ -10,13 +10,13 @@ with pkgs; # ❯❯❯ nix_related #nix # if not on NixOS, this is needed direnv - nixVersions.nix_2_21 #nixVersions.latest #nixVersions.git + nixVersions.latest #nixVersions.latest #nixVersions.git nix-prefetch-git validatePkgConfig nix-output-monitor nix-tree jq #gx - #alejandra + #nixfmt-rfc-style git # ❯❯❯ dev gnumake diff --git a/flake.lock b/flake.lock index 45a3017..e209cb3 100644 --- a/flake.lock +++ b/flake.lock @@ -5,11 +5,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1720571246, - "narHash": "sha256-nkUXwunTck+hNMt2wZuYRN+jf2ySRjKTzI0fo5TDH78=", + "lastModified": 1733064805, + "narHash": "sha256-7NbtSLfZO0q7MXPl5hzA0sbVJt6pWxxtGWbaVUDDmjs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "16e401f01842c5bb2499e78c1fe227f939c0c474", + "rev": "31d66ae40417bb13765b0ad75dd200400e98de84", "type": "github" }, "original": { diff --git a/nix-overlays/README b/nix-overlays/README index 44e76b6..ff0b5bb 100644 --- a/nix-overlays/README +++ b/nix-overlays/README @@ -17,10 +17,10 @@ of publishing, in some cases with additional fixes. nix overlays for (updates nixpkgs, more recent versions of): - ldc ( 1.30.0 -> 1.39.0 ) - - dub ( 1.23.0 -> 1.36.0 ) [for nix versions 1.31.0 ... 1.33.0 broken] + - dub ( 1.23.0 -> 1.38.1 ) [for nix versions 1.31.0 ... 1.33.0 broken] - dtools ( 2.095.1 -> 2.103.1 ) - - dmd ( 2.106.1 -> 2.109.0 ) + - dmd ( 2.106.1 -> 2.109.1 ) - gdc [not yet available] dlang-nix-flakes.org --❯ @@ -59,14 +59,14 @@ search nixpkgs here: - version in nixpkgs: - https://search.nixos.org/packages?channel=unstable&show=ldc&from=0&size=100&sort=relevance&type=packages&query=ldc -*** dmd OK ✓ ( 2.100.2 -> 2.109.0 ) +*** dmd OK ✓ ( 2.100.2 -> 2.109.1 ) - https://dlang.org/ - https://wiki.dlang.org/LDC - https://github.com/dlang/dmd - https://github.com/dlang/dmd/tags - 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/dmd/archive/refs/tags/v2.109.1.tar.gz - https://github.com/dlang/dmd/pulls - version in nixpkgs: @@ -88,13 +88,13 @@ not yet provided in nixpkgs with gcc12, no attempt made - https://github.com/D-Programming-GDC/gdc ** build tool -*** dub ( 1.23.0 -> 1.36.0 ) +*** dub ( 1.23.0 -> 1.38.1 ) - https://code.dlang.org/packages/dub - https://github.com/dlang/dub - https://github.com/dlang/dub/releases - nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.36.0.tar.gz + nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.38.1.tar.gz - https://github.com/dlang/dub/issues - version in nixpkgs: @@ -102,7 +102,7 @@ not yet provided in nixpkgs with gcc12, no attempt made - dub nixpkg overlay is updated and runs most dub tests correctly -- dub OK ✓ ( 1.30.0 -> 1.36.0 ) +- dub OK ✓ ( 1.30.0 -> 1.38.1 ) from v1.31.0 requires seeting of pwd in buildPhase else fails to build packages with nix tools that previous version of dub built; diff --git a/nix-overlays/dmd/default.nix b/nix-overlays/dmd/default.nix index 155a950..b5268b7 100644 --- a/nix-overlays/dmd/default.nix +++ b/nix-overlays/dmd/default.nix @@ -1,5 +1,5 @@ import ./generic.nix { - version = "2.109.0"; - dmdHash = "sha256-unAZgyZyT6qomlj6pdlOx4h1SKuDjutl1/0FM9AhBWc="; - phobosHash = "sha256-b91FeluFqhmjHd1wwkyq98QzIlwjE646xNj2n6hP3aM="; + version = "2.109.1"; + dmdHash = "sha256-3nCDPZnb4eQZmhYYxcH6qOmsP8or0KYuzAa5g/C9xdU="; + phobosHash = "sha256-73I0k7tCBwe5tl4K6uMs3/nT2JTZ2SppFYzmokS4W5Y="; } diff --git a/nix-overlays/dmd/generic.nix b/nix-overlays/dmd/generic.nix index 63c2bd1..22f7fa8 100644 --- a/nix-overlays/dmd/generic.nix +++ b/nix-overlays/dmd/generic.nix @@ -37,7 +37,7 @@ let bits = builtins.toString stdenv.hostPlatform.parsed.cpu.bits; osname = - if stdenv.isDarwin then + if stdenv.hostPlatform.isDarwin then "osx" else stdenv.hostPlatform.parsed.kernel.name; @@ -97,6 +97,7 @@ 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/fail_compilation/needspkgmod.d # Disable tests that rely on objdump whitespace until fixed upstream: # https://issues.dlang.org/show_bug.cgi?id=23317 @@ -106,9 +107,9 @@ 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 '' + '' + lib.optionalString stdenv.hostPlatform.isDarwin '' substituteInPlace phobos/std/socket.d --replace-fail "foreach (name; names)" "names = []; foreach (name; names)" ''; @@ -123,7 +124,7 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ curl tzdata - # ] ++ lib.optionals stdenv.isDarwin [ + # ] ++ lib.optionals stdenv.hostPlatform.isDarwin [] # Foundation ]; @@ -208,14 +209,22 @@ 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; }; }) diff --git a/nix-overlays/dub/default.nix b/nix-overlays/dub/default.nix index 819a5e5..0eec437 100644 --- a/nix-overlays/dub/default.nix +++ b/nix-overlays/dub/default.nix @@ -4,7 +4,7 @@ assert dcompiler != null; stdenv.mkDerivation rec { pname = "dub"; - version = "1.36.0"; + version = "1.38.1"; enableParallelBuilding = true; @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { owner = "dlang"; repo = "dub"; rev = "v${version}"; - sha256 = "sha256-S8pls9zxbGAQTwqYf4bDT2q7Ow12S8bBsJE5UmsACBs="; + sha256 = "sha256-8Lr/0sx4SKwU1aNOxZArta0RXpDM+EWl29ZsPDdPWFo="; }; #postUnpack = '' diff --git a/org/config_env.org b/org/config_env.org index 1ea434a..7b0d67d 100644 --- a/org/config_env.org +++ b/org/config_env.org @@ -123,14 +123,24 @@ echo "• " #+END_SRC -*** 3.0.4 +*** 3.0.6 #+NAME: direnv-version #+BEGIN_SRC sh -3.0.4 +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 diff --git a/org/config_nix.org b/org/config_nix.org index 9f4617d..fc31bd8 100644 --- a/org/config_nix.org +++ b/org/config_nix.org @@ -406,13 +406,13 @@ 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 jq #gx - #alejandra + #nixfmt-rfc-style git # ❯❯❯ dev gnumake @@ -486,13 +486,13 @@ with pkgs; # ❯❯❯ nix_related #nix # if not on NixOS, this is needed direnv - nixVersions.nix_2_21 #nixVersions.latest #nixVersions.git + nixVersions.latest #nixVersions.latest #nixVersions.git nix-prefetch-git validatePkgConfig nix-output-monitor nix-tree jq #gx - #alejandra + #nixfmt-rfc-style git # ❯❯❯ dev gnumake @@ -620,7 +620,7 @@ with ( version = "<>"; src = ./.; nativeBuildInputs = with pkgs; [dub ldc]; - buildInputs = with pkgs; [nixVersions.nix_2_21 sqlite]; + buildInputs = with pkgs; [nixVersions.latest sqlite]; meta = with pkgs.lib; { description = "A sisu like parser & document generator"; longDescription = '' diff --git a/org/nixpkgs_overlays_d_related.org b/org/nixpkgs_overlays_d_related.org index 5eedd71..0190383 100644 --- a/org/nixpkgs_overlays_d_related.org +++ b/org/nixpkgs_overlays_d_related.org @@ -17,6 +17,14 @@ #+OPTIONS: H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t * nix ( written to ./dlang-nix-flakes/ ) +** check updates CHECK + +- https://github.com/nix-community/nix-direnv/releases +- https://github.com/dlang/dmd/tags +- https://github.com/ldc-developers/ldc/releases +- https://github.com/dlang/dub/releases +- https://github.com/dlang/tools/tags + ** README #+HEADER: :tangle "../nix-overlays/README" @@ -243,6 +251,7 @@ 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/<>/direnvrc" "<>" - ${NixDirEnvVersion} @@ -272,14 +281,24 @@ use flake . #use flake .#default #+END_SRC -*** 3.0.4 +*** 3.0.6 #+NAME: direnv-version #+BEGIN_SRC sh -3.0.4 +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 @@ -459,7 +478,7 @@ with pkgs; # ❯❯❯ 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 @@ -1125,7 +1144,7 @@ let bits = builtins.toString stdenv.hostPlatform.parsed.cpu.bits; osname = - if stdenv.isDarwin then + if stdenv.hostPlatform.isDarwin then "osx" else stdenv.hostPlatform.parsed.kernel.name; @@ -1185,6 +1204,7 @@ 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/fail_compilation/needspkgmod.d # Disable tests that rely on objdump whitespace until fixed upstream: # https://issues.dlang.org/show_bug.cgi?id=23317 @@ -1194,9 +1214,9 @@ 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 '' + '' + lib.optionalString stdenv.hostPlatform.isDarwin '' substituteInPlace phobos/std/socket.d --replace-fail "foreach (name; names)" "names = []; foreach (name; names)" ''; @@ -1211,7 +1231,7 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ curl tzdata - # ] ++ lib.optionals stdenv.isDarwin [ + # ] ++ lib.optionals stdenv.hostPlatform.isDarwin [] # Foundation ]; @@ -1296,15 +1316,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 @@ -1412,17 +1440,37 @@ stdenv.mkDerivation { #+NAME: dmd_version #+BEGIN_SRC nix -<> +<> #+END_SRC #+NAME: dmd_hash #+BEGIN_SRC nix -<> +<> #+END_SRC #+NAME: phobos_hash #+BEGIN_SRC nix -<> +<> +#+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 ✓ @@ -1694,12 +1742,27 @@ stdenv.mkDerivation rec { #+NAME: dub_version #+BEGIN_SRC nix -<> +<> #+END_SRC #+NAME: dub_hash #+BEGIN_SRC nix -<> +<> +#+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 ✓ diff --git a/shell.nix b/shell.nix index 389fa7b..22d6dce 100755 --- a/shell.nix +++ b/shell.nix @@ -7,13 +7,13 @@ 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 jq #gx - #alejandra + #nixfmt-rfc-style git # ❯❯❯ dev gnumake -- cgit v1.2.3