diff options
-rw-r--r-- | .envrc-nix | 4 | ||||
-rw-r--r-- | COPYRIGHT | 1 | ||||
-rw-r--r-- | derivation.nix | 2 | ||||
-rw-r--r-- | devenv.nix | 4 | ||||
-rw-r--r-- | flake.lock | 12 | ||||
-rw-r--r-- | flake.nix | 6 | ||||
-rw-r--r-- | nix-overlays/README | 14 | ||||
-rw-r--r-- | nix-overlays/dmd/default.nix | 6 | ||||
-rw-r--r-- | nix-overlays/dmd/generic.nix | 17 | ||||
-rw-r--r-- | nix-overlays/dub/default.nix | 5 | ||||
-rw-r--r-- | nix-overlays/ldc/binary.nix | 43 | ||||
-rw-r--r-- | nix-overlays/ldc/bootstrap.nix | 45 | ||||
-rw-r--r-- | nix-overlays/ldc/default.nix | 5 | ||||
-rw-r--r-- | nix-overlays/ldc/generic.nix | 136 | ||||
-rw-r--r-- | nix-overlays/ldc/package.nix | 180 | ||||
-rw-r--r-- | org/config_env.org | 14 | ||||
-rw-r--r-- | org/config_nix.org | 16 | ||||
-rw-r--r-- | org/nixpkgs_overlays_d_related.org | 560 | ||||
-rw-r--r-- | org/spine_info.org | 1 | ||||
-rwxr-xr-x | shell.nix | 4 | ||||
-rw-r--r-- | src/COPYRIGHT | 1 | ||||
-rw-r--r-- | src/sisudoc/COPYRIGHT | 1 |
22 files changed, 517 insertions, 560 deletions
@@ -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 @@ -140,6 +140,7 @@ - code: cgi.d aria2c https://raw.githubusercontent.com/adamdruppe/arsd/master/cgi.d + aria2c https://raw.githubusercontent.com/adamdruppe/arsd/master/core.d - License: BSL-1.0 Boost Software License 1.0 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 = '' @@ -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 @@ -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": 1733097829, + "narHash": "sha256-9hbb1rqGelllb4kVUCZ307G2k3/UhmA8PPGBoyuWaSw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "16e401f01842c5bb2499e78c1fe227f939c0c474", + "rev": "2c15aa59df0017ca140d9ba302412298ab4bf22a", "type": "github" }, "original": { @@ -89,8 +89,8 @@ src = self; inherit shell; inherit devEnv; - buildInputs = with pkgs-ovl; [sqlite]; - nativeBuildInputs = with pkgs-ovl; [dub dmd gnumake]; + buildInputs = with pkgs-nix; [sqlite]; + nativeBuildInputs = with pkgs-nix; [dub dmd gnumake]; buildPhase = '' runHook preBuild buildCMD="dub run --cache=local --compiler=$(type -P dmd) --build=dmd --combined --skip-registry=all" @@ -113,7 +113,7 @@ inherit shell; inherit devEnv; buildInputs = with pkgs-nix; [sqlite]; - nativeBuildInputs = with pkgs-ovl; [dub ldc gnumake]; + nativeBuildInputs = with pkgs-nix; [dub ldc gnumake]; buildPhase = '' runHook preBuild buildCMD="dub run --cache=local --compiler=$(type -P ldmd2) --build=ldmd2 --combined --skip-registry=all" 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..b2a2283 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 = '' @@ -80,6 +80,7 @@ stdenv.mkDerivation rec { description = "Package and build manager for D applications 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" ]; }; diff --git a/nix-overlays/ldc/binary.nix b/nix-overlays/ldc/binary.nix deleted file mode 100644 index ca7fb4f..0000000 --- a/nix-overlays/ldc/binary.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ lib, stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames, libxml2 -, version, hashes }: - -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; -in stdenv.mkDerivation { - pname = "ldc-bootstrap"; - inherit version; - - 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}"); - }; - - dontConfigure = true; - dontBuild = true; - - nativeBuildInputs = lib.optionals hostPlatform.isLinux [ - autoPatchelfHook - ] ++ lib.optional hostPlatform.isDarwin fixDarwinDylibNames; - - buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ libxml2 stdenv.cc.cc ]; - - propagatedBuildInputs = [ curl tzdata ]; - - installPhase = '' - mkdir -p $out - - mv bin etc import lib LICENSE README $out/ - ''; - - meta = with lib; { - description = "The 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 ]; - maintainers = with maintainers; [ lionello ]; - platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; - }; -} diff --git a/nix-overlays/ldc/bootstrap.nix b/nix-overlays/ldc/bootstrap.nix index 7724cbc..d81e5a4 100644 --- a/nix-overlays/ldc/bootstrap.nix +++ b/nix-overlays/ldc/bootstrap.nix @@ -1,11 +1,50 @@ -{ callPackage }: -callPackage ./binary.nix { +{ 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; 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.. + # 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="; }; +in stdenv.mkDerivation { + pname = "ldc-bootstrap"; + inherit version; + + src = fetchurl rec { + name = "ldc2-${version}-${OS}-${ARCH}.tar.xz"; + url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/${name}"; + hash = hashes."${OS}-${ARCH}" or (throw "missing bootstrap hash for ${OS}-${ARCH}"); + }; + + dontConfigure = true; + dontBuild = true; + + nativeBuildInputs = lib.optionals hostPlatform.isLinux [ + autoPatchelfHook + ] ++ lib.optional hostPlatform.isDarwin fixDarwinDylibNames; + + buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ libxml2 stdenv.cc.cc ]; + + propagatedBuildInputs = [ curl tzdata ]; + + installPhase = '' + mkdir -p $out + + mv bin etc import lib LICENSE README $out/ + ''; + + meta = with lib; { + 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 ]; + maintainers = with maintainers; [ lionello ]; + platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; + }; } diff --git a/nix-overlays/ldc/default.nix b/nix-overlays/ldc/default.nix index 1f18529..8375c13 100644 --- a/nix-overlays/ldc/default.nix +++ b/nix-overlays/ldc/default.nix @@ -1,4 +1 @@ -import ./generic.nix { - version = "1.39.0"; - sha256 = "sha256-g5usNvYHMxjjbwsWN2fgO9vT9X2ZJWuXSUrEObWaRWI="; -} +import ./package.nix diff --git a/nix-overlays/ldc/generic.nix b/nix-overlays/ldc/generic.nix deleted file mode 100644 index bc21974..0000000 --- a/nix-overlays/ldc/generic.nix +++ /dev/null @@ -1,136 +0,0 @@ -{ version, sha256 }: -{ lib, stdenv, fetchurl, cmake, ninja, llvm_18, curl, tzdata -, libconfig, lit, gdb, unzip, darwin, bash -, callPackage, makeWrapper, runCommand, targetPackages -, ldcBootstrap ? callPackage ./bootstrap.nix { } -}: - -let - pathConfig = runCommand "ldc-lib-paths" {} '' - mkdir $out - echo ${tzdata}/share/zoneinfo/ > $out/TZDatabaseDirFile - echo ${curl.out}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} > $out/LibcurlPathFile - ''; - -in - -stdenv.mkDerivation rec { - pname = "ldc"; - inherit version; - - src = fetchurl { - url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz"; - inherit sha256; - }; - - # 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)" - ''; - - nativeBuildInputs = [ - cmake ldcBootstrap lit lit.python llvm_18.dev makeWrapper ninja unzip - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - darwin.apple_sdk.frameworks.Foundation - ] - ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ - # https://github.com/NixOS/nixpkgs/pull/36378#issuecomment-385034818 - gdb - ]; - - buildInputs = [ curl tzdata ]; - - cmakeFlags = [ - "-DD_FLAGS=-d-version=TZDatabaseDir;-d-version=LibcurlPath;-J${pathConfig}" - ]; - - postConfigure = '' - export DMD=$PWD/bin/ldmd2 - ''; - - makeFlags = [ "DMD=$DMD" ]; - - fixNames = lib.optionalString stdenv.hostPlatform.isDarwin '' - fixDarwinDylibNames() { - local flags=() - - for fn in "$@"; do - flags+=(-change "$(basename "$fn")" "$fn") - done - - for fn in "$@"; do - if [ -L "$fn" ]; then continue; fi - echo "$fn: fixing dylib" - install_name_tool -id "$fn" "''${flags[@]}" "$fn" - done - } - - fixDarwinDylibNames $(find "$(pwd)/lib" -name "*.dylib") - export DYLD_LIBRARY_PATH=$(pwd)/lib - ''; - - # https://github.com/ldc-developers/ldc/issues/2497#issuecomment-459633746 - additionalExceptions = lib.optionalString stdenv.hostPlatform.isDarwin - "|druntime-test-shared"; - - checkPhase = '' - # Build default lib test runners - ninja -j$NIX_BUILD_CORES all-test-runners - - ${fixNames} - - # Run dmd testsuite - export DMD_TESTSUITE_MAKE_ARGS="-j$NIX_BUILD_CORES DMD=$DMD" - ctest -V -R "dmd-testsuite" - - # Build and run LDC D unittests. - ctest --output-on-failure -R "ldc2-unittest" - - # Run LIT testsuite. - 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}" - ''; - - postInstall = '' - wrapProgram $out/bin/ldc2 \ - --prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \ - --set-default CC "${targetPackages.stdenv.cc}/bin/cc" - ''; - - meta = with lib; { - description = "The 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 ]; - maintainers = with maintainers; [ lionello jtbx ]; - platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; - }; -} diff --git a/nix-overlays/ldc/package.nix b/nix-overlays/ldc/package.nix new file mode 100644 index 0000000..112a9ee --- /dev/null +++ b/nix-overlays/ldc/package.nix @@ -0,0 +1,180 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, ninja +, llvm_18 +, curl +, tzdata +, lit +, gdb +, unzip +, darwin +, callPackage +, makeWrapper +, runCommand +, writeText +, targetPackages + +, ldcBootstrap ? callPackage ./bootstrap.nix { } +}: + +let + pathConfig = runCommand "ldc-lib-paths" {} '' + mkdir $out + echo ${tzdata}/share/zoneinfo/ > $out/TZDatabaseDirFile + echo ${curl.out}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} > $out/LibcurlPathFile + ''; + +in + +stdenv.mkDerivation (finalAttrs: { + pname = "ldc"; + version = "1.39.0"; + + src = fetchFromGitHub { + owner = "ldc-developers"; + repo = "ldc"; + rev = "v${finalAttrs.version}"; + hash = "sha256-ZiG0ATsY6Asu2nus3Y404fvqIwtKYoHl1JRUDU5A6mo="; + fetchSubmodules = true; + }; + + # https://issues.dlang.org/show_bug.cgi?id=19553 + hardeningDisable = [ "fortify" ]; + + postPatch = '' + 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 llvm_18.dev makeWrapper ninja unzip + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ + darwin.apple_sdk.frameworks.Foundation + ] ++ 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 = '' + export DMD=$PWD/bin/ldmd2 + ''; + + makeFlags = [ "DMD=$DMD" ]; + + fixNames = lib.optionalString stdenv.hostPlatform.isDarwin '' + fixDarwinDylibNames() { + local flags=() + + for fn in "$@"; do + flags+=(-change "$(basename "$fn")" "$fn") + done + + for fn in "$@"; do + if [ -L "$fn" ]; then continue; fi + echo "$fn: fixing dylib" + install_name_tool -id "$fn" "''${flags[@]}" "$fn" + done + } + + fixDarwinDylibNames $(find "$(pwd)/lib" -name "*.dylib") + export DYLD_LIBRARY_PATH=$(pwd)/lib + ''; + + # https://github.com/ldc-developers/ldc/issues/2497#issuecomment-459633746 + additionalExceptions = lib.optionalString stdenv.hostPlatform.isDarwin + "|druntime-test-shared"; + + checkPhase = '' + # Build default lib test runners + ninja -j$NIX_BUILD_CORES all-test-runners + + ${finalAttrs.fixNames} + + # Run dmd testsuite + export DMD_TESTSUITE_MAKE_ARGS="-j$NIX_BUILD_CORES DMD=$DMD" + ctest -V -R "dmd-testsuite" + + # Build and run LDC D unittests. + ctest --output-on-failure -R "ldc2-unittest" + + # Run LIT testsuite. + ctest -V -R "lit-tests" + + # Run default lib unittests + 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 + ''; + + meta = with lib; { + 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" ]; + }; + + 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"]; + }; + }; +}) 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,15 +123,25 @@ 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..eced79d 100644 --- a/org/config_nix.org +++ b/org/config_nix.org @@ -112,8 +112,8 @@ src = self; inherit shell; inherit devEnv; - buildInputs = with pkgs-ovl; [sqlite]; - nativeBuildInputs = with pkgs-ovl; [dub dmd gnumake]; + buildInputs = with pkgs-nix; [sqlite]; + nativeBuildInputs = with pkgs-nix; [dub dmd gnumake]; buildPhase = '' runHook preBuild buildCMD="dub run --cache=local --compiler=$(type -P dmd) --build=dmd --combined --skip-registry=all" @@ -136,7 +136,7 @@ inherit shell; inherit devEnv; buildInputs = with pkgs-nix; [sqlite]; - nativeBuildInputs = with pkgs-ovl; [dub ldc gnumake]; + nativeBuildInputs = with pkgs-nix; [dub ldc gnumake]; buildPhase = '' runHook preBuild buildCMD="dub run --cache=local --compiler=$(type -P ldmd2) --build=ldmd2 --combined --skip-registry=all" @@ -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 = "<<spine_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..9467744 100644 --- a/org/nixpkgs_overlays_d_related.org +++ b/org/nixpkgs_overlays_d_related.org @@ -17,6 +17,24 @@ #+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 + +- dependencies sisudoc-spine + - https://github.com/dlang-community/d2sqlite3/releases + - https://github.com/dlang-community/D-YAML + - https://github.com/tjhann/imageformats/tags + - https://github.com/dlang-community/tinyendian/releases + +- dependencies sisudoc-spine-search-cgi + - https://raw.githubusercontent.com/adamdruppe/arsd/master/core.d + - https://raw.githubusercontent.com/adamdruppe/arsd/master/cgi.d + ** README #+HEADER: :tangle "../nix-overlays/README" @@ -243,6 +261,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/<<direnv-version>>/direnvrc" "<<direnv-sha>>" - ${NixDirEnvVersion} @@ -272,15 +291,25 @@ 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 +488,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 @@ -521,19 +550,31 @@ pkgs.callPackage ./shell.nix {} #+HEADER: :tangle "../nix-overlays/ldc/default.nix" #+BEGIN_SRC nix -import ./generic.nix { - <<ldc_version_info>> -} +import ./package.nix #+END_SRC -**** generic.nix OK ✓ (unaltered) +**** package.nix OK ✓ (unaltered) -#+HEADER: :tangle "../nix-overlays/ldc/generic.nix" +#+HEADER: :tangle "../nix-overlays/ldc/package.nix" #+BEGIN_SRC nix -{ version, sha256 }: -{ lib, stdenv, fetchurl, cmake, ninja, <<ldc_llvm_set>>, curl, tzdata -, libconfig, lit, gdb, unzip, darwin, bash -, callPackage, makeWrapper, runCommand, targetPackages +{ lib +, stdenv +, fetchFromGitHub +, cmake +, ninja +, <<ldc_llvm_set>> +, curl +, tzdata +, lit +, gdb +, unzip +, darwin +, callPackage +, makeWrapper +, runCommand +, writeText +, targetPackages + , ldcBootstrap ? callPackage ./bootstrap.nix { } }: @@ -546,60 +587,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 = '' @@ -608,7 +645,7 @@ stdenv.mkDerivation rec { makeFlags = [ "DMD=$DMD" ]; - fixNames = lib.optionalString stdenv.hostPlatform.isDarwin '' + fixNames = lib.optionalString stdenv.hostPlatform.isDarwin '' fixDarwinDylibNames() { local flags=() @@ -635,7 +672,7 @@ stdenv.mkDerivation rec { # Build default lib test runners ninja -j$NIX_BUILD_CORES all-test-runners - ${fixNames} + ${finalAttrs.fixNames} # Run dmd testsuite export DMD_TESTSUITE_MAKE_ARGS="-j$NIX_BUILD_CORES DMD=$DMD" @@ -648,90 +685,73 @@ stdenv.mkDerivation rec { ctest -V -R "lit-tests" # Run default lib unittests - ctest -j$NIX_BUILD_CORES --output-on-failure -E "ldc2-unittest|lit-tests|dmd-testsuite${additionalExceptions}" + ctest -j$NIX_BUILD_CORES --output-on-failure -E "ldc2-unittest|lit-tests|dmd-testsuite${finalAttrs.additionalExceptions}" ''; postInstall = '' wrapProgram $out/bin/ldc2 \ - --prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \ - --set-default CC "${targetPackages.stdenv.cc}/bin/cc" - ''; + --prefix PATH : ${targetPackages.stdenv.cc}/bin \ + --set-default CC ${targetPackages.stdenv.cc}/bin/cc + ''; meta = with lib; { - description = "The LLVM-based D compiler"; + description = "LLVM-based D compiler"; homepage = "https://github.com/ldc-developers/ldc"; + changelog = "https://github.com/ldc-developers/ldc/releases/tag/v${finalAttrs.version}"; # from https://github.com/ldc-developers/ldc/blob/master/LICENSE license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ]; + mainProgram = "ldc2"; maintainers = with maintainers; [ lionello jtbx ]; platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; }; -} -#+END_SRC -**** bootstrap.nix - -#+HEADER: :tangle "../nix-overlays/ldc/bootstrap.nix" -#+BEGIN_SRC nix -<<ldc_bootstrap_1-25-0>> -#+END_SRC - -#+NAME: ldc_bootstrap_1-25-0 -#+BEGIN_SRC nix -{ callPackage }: -callPackage ./binary.nix { - version = "1.25.0"; - hashes = { - # Get these from `nix-prefetch-url https://github.com/ldc-developers/ldc/releases/download/v1.19.0/ldc2-1.19.0-osx-x86_64.tar.xz` etc.. - osx-x86_64 = "sha256-6iKnbS+oalLKmyS8qYD/wS21b7+O+VgsWG2iT4PrWPU="; - linux-x86_64 = "sha256-sfg47RdlsIpryc3iZvE17OtLweh3Zw6DeuNJYgpuH+o="; - linux-aarch64 = "sha256-UDZ43x4flSo+SfsPeE8juZO2Wtk2ZzwySk0ADHnvJBI="; - osx-arm64 = "sha256-O/x0vy0wwQFaDc4uWSeMhx+chJKqbQb6e5QNYf+7DCw="; + passthru.ldcBootstrap = ldcBootstrap; + passthru.tests = let + ldc = finalAttrs.finalPackage; + helloWorld = stdenv.mkDerivation (finalAttrs: { + name = "ldc-hello-world"; + src = writeText "hello_world.d" '' + module hello_world; + import std.stdio; + void main() { + writeln("Hello, world!"); + } + ''; + dontUnpack = true; + buildInputs = [ ldc ]; + dFlags = []; + buildPhase = '' + ldc2 ${lib.escapeShellArgs finalAttrs.dFlags} -of=test $src + ''; + installPhase = '' + mkdir -p $out/bin + mv test $out/bin + ''; + }); + in { + # Without -shared, built binaries should not contain + # references to the compiler binaries. + no-references-to-compiler = helloWorld.overrideAttrs { + disallowedReferences = [ ldc ]; + dFlags = ["-g"]; + }; }; -} +}) #+END_SRC -#+NAME: ldc_bootstrap_1-30-0 -#+BEGIN_SRC nix -{ callPackage }: -callPackage ./binary.nix { - version = "1.30.0"; - hashes = { - # Get these from `nix store prefetch-file https://github.com/ldc-developers/ldc/releases/download/v1.19.0/ldc2-1.19.0-osx-x86_64.tar.xz` etc.. - osx-x86_64 = "sha256-AAWZvxuZC82xvrW6fpYm783TY+H8k3DvqE94ZF1yjmk="; - linux-x86_64 = "sha256-V4TUzEfQhFrwiX07dHOgjdAoGkzausCkhnQIQNAU/eE="; - linux-aarch64 = "sha256-kTeglub75iv/jWWNPCn15aCGAbmck0RQl6L7bFOUu7Y="; - osx-arm64 = "sha256-Nb/owBdIeroB9jLMDvwjo8bvsTC9vFyJPLMTOMsSAd4="; - }; -} -#+END_SRC +**** bootstrap.nix - this is the ldc bootstrap in current use, nixpkgs: +#+HEADER: :tangle "../nix-overlays/ldc/bootstrap.nix" #+BEGIN_SRC nix -{ callPackage }: -callPackage ./binary.nix { - version = "1.30.0"; - hashes = { - # Get these from `nix store prefetch-file https://github.com/ldc-developers/ldc/releases/download/v1.19.0/ldc2-1.19.0-osx-x86_64.tar.xz` etc.. - osx-x86_64 = "sha256-AAWZvxuZC82xvrW6fpYm783TY+H8k3DvqE94ZF1yjmk="; - linux-x86_64 = "sha256-V4TUzEfQhFrwiX07dHOgjdAoGkzausCkhnQIQNAU/eE="; - linux-aarch64 = "sha256-kTeglub75iv/jWWNPCn15aCGAbmck0RQl6L7bFOUu7Y="; - osx-arm64 = "sha256-Nb/owBdIeroB9jLMDvwjo8bvsTC9vFyJPLMTOMsSAd4="; - }; -} -#+END_SRC - -**** binary.nix (unaltered) - -#+HEADER: :tangle "../nix-overlays/ldc/binary.nix" -#+BEGIN_SRC nix -{ lib, stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames, libxml2 -, version, hashes }: +{ lib, stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames, libxml2 }: let inherit (stdenv) hostPlatform; OS = if hostPlatform.isDarwin then "osx" else hostPlatform.parsed.kernel.name; ARCH = if hostPlatform.isDarwin && hostPlatform.isAarch64 then "arm64" else hostPlatform.parsed.cpu.name; + <<ldc_bootstrap_1-25-0_hashes>> in stdenv.mkDerivation { pname = "ldc-bootstrap"; inherit version; @@ -739,7 +759,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; @@ -760,7 +780,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 ]; @@ -770,6 +790,35 @@ in stdenv.mkDerivation { } #+END_SRC +***** bootstrap.nix version SELECT +****** bootstrap.nix ldc2-1.25.0 + +#+NAME: ldc_bootstrap_1-25-0_hashes +#+BEGIN_SRC nix +version = "1.25.0"; +hashes = { + # Get these from `nix store prefetch-file https://github.com/ldc-developers/ldc/releases/download/v1.25.0/ldc2-1.25.0-osx-x86_64.tar.xz` etc.. + osx-x86_64 = "sha256-6iKnbS+oalLKmyS8qYD/wS21b7+O+VgsWG2iT4PrWPU="; + linux-x86_64 = "sha256-sfg47RdlsIpryc3iZvE17OtLweh3Zw6DeuNJYgpuH+o="; + linux-aarch64 = "sha256-UDZ43x4flSo+SfsPeE8juZO2Wtk2ZzwySk0ADHnvJBI="; + osx-arm64 = "sha256-O/x0vy0wwQFaDc4uWSeMhx+chJKqbQb6e5QNYf+7DCw="; +}; +#+END_SRC + +****** bootstrap.nix ldc2-1.30.0 + +#+NAME: ldc_bootstrap_1-30-0_hashes +#+BEGIN_SRC nix +version = "1.30.0"; +hashes = { + # Get these from `nix store prefetch-file https://github.com/ldc-developers/ldc/releases/download/v1.30.0/ldc2-1.30.0-osx-x86_64.tar.xz` etc.. + osx-x86_64 = "sha256-AAWZvxuZC82xvrW6fpYm783TY+H8k3DvqE94ZF1yjmk="; + linux-x86_64 = "sha256-V4TUzEfQhFrwiX07dHOgjdAoGkzausCkhnQIQNAU/eE="; + linux-aarch64 = "sha256-kTeglub75iv/jWWNPCn15aCGAbmck0RQl6L7bFOUu7Y="; + osx-arm64 = "sha256-Nb/owBdIeroB9jLMDvwjo8bvsTC9vFyJPLMTOMsSAd4="; +}; +#+END_SRC + *** versions SET **** selected version SET OK ✓ ***** version & sha256 nix composite @@ -797,246 +846,48 @@ sha256 = "<<ldc_hash>>"; <<ldc_llvm_set_1_39_0>> #+END_SRC -**** 1.39 OK ✓ -***** 1.39.0 OK ✓ +**** 1.40 OK ✓ +***** 1.40.0 OK ✓ -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.39.0.tar.gz -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz + - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.40.0-beta4.tar.gz + - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz -#+NAME: ldc_version_1_39_0 +#+NAME: ldc_version_1_40_0 #+BEGIN_SRC nix -1.39.0 +1.40.0-beta4 #+END_SRC -#+NAME: ldc_hash_1_39_0 +#+NAME: ldc_hash_1_40_0 #+BEGIN_SRC nix -sha256-g5usNvYHMxjjbwsWN2fgO9vT9X2ZJWuXSUrEObWaRWI= +sha256-AzUlWfbG/e/l9kQY3rHq+BkZAW1sRrUAAeB8yIoWZ6Q= #+END_SRC -#+NAME: ldc_llvm_set_1_39_0 +#+NAME: ldc_llvm_set_1_40_0 #+BEGIN_SRC nix llvm_18 #+END_SRC -**** 1.38 OK ✓ -***** 1.38.0 OK ✓ +**** 1.39 OK ✓ +***** 1.39.0 OK ✓ -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.38.0.tar.gz +- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.39.0.tar.gz - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz -#+NAME: ldc_version_1_38_0 +#+NAME: ldc_version_1_39_0 #+BEGIN_SRC nix -1.38.0 +1.39.0 #+END_SRC -#+NAME: ldc_hash_1_38_0 +#+NAME: ldc_hash_1_39_0 #+BEGIN_SRC nix -sha256-ymI47+Ai40zTB2dB+KBwxqN3GWNRxhlJpIpIyZN5844= +sha256-ZiG0ATsY6Asu2nus3Y404fvqIwtKYoHl1JRUDU5A6mo= #+END_SRC -#+NAME: ldc_llvm_set_1_38_0 +#+NAME: ldc_llvm_set_1_39_0 #+BEGIN_SRC nix llvm_18 #+END_SRC -**** 1.37 OK ✓ -***** 1.37.0 OK ✓ - -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.37.0.tar.gz -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz - -#+NAME: ldc_version_1_37_0 -#+BEGIN_SRC nix -1.37.0 -#+END_SRC - -#+NAME: ldc_hash_1_37_0 -#+BEGIN_SRC nix -sha256-UOgK48Q2yQY3wsPUDzktwotyH3qrOh48o79PnCjboGQ= -#+END_SRC - -#+NAME: ldc_llvm_set_1_37_0 -#+BEGIN_SRC nix -llvm_17 -#+END_SRC - -**** 1.36 OK ✓ -***** 1.36.0 OK ✓ - -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.36.0.tar.gz - -#+NAME: ldc_version_1_36_0 -#+BEGIN_SRC nix -1.36.0 -#+END_SRC - -#+NAME: ldc_hash_1_36_0 -#+BEGIN_SRC nix -sha256-oAx5BzEjqIfBf0Rsd4KklVajUSo9Natna31Trhu41u8= -#+END_SRC - -#+NAME: ldc_llvm_set_1_36_0 -#+BEGIN_SRC nix -llvm_17 -#+END_SRC - -**** 1.35 OK ✓ -***** 1.35.0 OK ✓ - -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.35.0.tar.gz - -#+NAME: ldc_version_1_35_0 -#+BEGIN_SRC nix -1.35.0 -#+END_SRC - -#+NAME: ldc_hash_1_35_0 -#+BEGIN_SRC nix -sha256-bilpk3BsdsCT5gkTmqCz+HBDVfoPN1b2dY141EIm36A= -#+END_SRC - -#+NAME: ldc_llvm_set_1_35_0 -#+BEGIN_SRC nix -llvm_16 -#+END_SRC - -**** 1.34 OK ✓ -***** 1.34.0 OK ✓ - -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.34.0.tar.gz - -#+NAME: ldc_version_1_34_0 -#+BEGIN_SRC nix -1.34.0 -#+END_SRC - -#+NAME: ldc_hash_1_34_0 -#+BEGIN_SRC nix -sha256-MAXG6ceSWFOMg5eXZnZ6WePXTzy5CsLLDc5ddXO+txk= -#+END_SRC - -#+NAME: ldc_llvm_set_1_34_0 -#+BEGIN_SRC nix -llvm_16 -#+END_SRC - -**** 1.33 OK ✓ -***** 1.33.0 OK ✓ - -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.33.0.tar.gz - -#+NAME: ldc_version_1_33_0 -#+BEGIN_SRC nix -1.33.0 -#+END_SRC - -#+NAME: ldc_hash_1_33_0 -#+BEGIN_SRC nix -sha256-g0wbCMX1s6mPnvuvhjLw03fRfawcFxDkg8nuaEZYw6g= -#+END_SRC - -#+NAME: ldc_llvm_set_1_33_0 -#+BEGIN_SRC nix -llvm_15 -#+END_SRC - -**** 1.32 -***** 1.32.2 OK ✓ - -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.32.1.tar.gz - -#+NAME: ldc_version_1_32_2 -#+BEGIN_SRC nix -1.32.2 -#+END_SRC - -#+NAME: ldc_hash_1_32_2 -#+BEGIN_SRC nix -sha256-v6Sq7nQyChJohDyI4inzObLfCVOkvLT87VLr4N2hzZU= -#+END_SRC - -#+NAME: ldc_llvm_set_1_32_2 -#+BEGIN_SRC nix -llvm_15 -#+END_SRC - -***** 1.32.1 - -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.32.1.tar.gz - -#+NAME: ldc_version_1_32_1 -#+BEGIN_SRC nix -1.32.1 -#+END_SRC - -#+NAME: ldc_hash_1_32_1 -#+BEGIN_SRC nix -sha256-s1U7+qiVJDF+zSHrLGPG6g+acIChYnXkb9p+OrNX6g8= -#+END_SRC - -#+NAME: ldc_llvm_set_1_32_1 -#+BEGIN_SRC nix -llvm_14 -#+END_SRC - -***** 1.32.0 - -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.32.0.tar.gz - -#+NAME: ldc_version_1_32_0 -#+BEGIN_SRC nix -1.32.0 -#+END_SRC - -#+NAME: ldc_hash_1_32_0 -#+BEGIN_SRC nix -sha256-xO4L+RtBbdVkE1PZsme2pIYAxJnHgr6xEtLkYOMpvqw= -#+END_SRC - -#+NAME: ldc_llvm_set_1_32_0 -#+BEGIN_SRC nix -llvm_14 -#+END_SRC - -**** 1.31 -***** 1.31.0 - -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.31.0.tar.gz - -#+NAME: ldc_version_1_31_0 -#+BEGIN_SRC nix -1.31.0 -#+END_SRC - -#+NAME: ldc_hash_1_31_0 -#+BEGIN_SRC nix -sha256-8cjs6eHjWAbDRBvyT75mbN3Y7vN1WSwZzY/uRwHNVFg= -#+END_SRC - -#+NAME: ldc_llvm_set_1_31_0 -#+BEGIN_SRC nix -llvm_14 -#+END_SRC - -***** 1.30.0 - -- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.30.0.tar.gz - -#+NAME: ldc_version_1_30_0 -#+BEGIN_SRC nix -1.30.0 -#+END_SRC - -#+NAME: ldc_hash_1_30_0 -#+BEGIN_SRC nix -sha256-/bs3bwgkLZF5IqaiKnc5gCF/r6MQBG/F1kWUkK8j2s0= -#+END_SRC - -#+NAME: ldc_llvm_set_1_30_0 -#+BEGIN_SRC nix -llvm_14 -#+END_SRC - ** dmd OK ✓ *** info **** links @@ -1125,7 +976,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 +1036,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 +1046,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 +1063,7 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ curl tzdata - # ] ++ lib.optionals stdenv.isDarwin [ + # ] ++ lib.optionals stdenv.hostPlatform.isDarwin [] # Foundation ]; @@ -1296,15 +1148,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 +1272,37 @@ stdenv.mkDerivation { #+NAME: dmd_version #+BEGIN_SRC nix -<<dmd_version_2_109_0>> +<<dmd_version_2_109_1>> #+END_SRC #+NAME: dmd_hash #+BEGIN_SRC nix -<<dmd_hash_2_109_0>> +<<dmd_hash_2_109_1>> #+END_SRC #+NAME: phobos_hash #+BEGIN_SRC nix -<<phobos_hash_2_109_0>> +<<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 ✓ @@ -1683,6 +1563,7 @@ stdenv.mkDerivation rec { description = "Package and build manager for D applications 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" ]; }; @@ -1694,12 +1575,27 @@ stdenv.mkDerivation rec { #+NAME: dub_version #+BEGIN_SRC nix -<<dub_version_1_36_0>> +<<dub_version_1_38_1>> #+END_SRC #+NAME: dub_hash #+BEGIN_SRC nix -<<dub_hash_1_36_0>> +<<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 ✓ diff --git a/org/spine_info.org b/org/spine_info.org index a5ab360..f5013a7 100644 --- a/org/spine_info.org +++ b/org/spine_info.org @@ -1140,6 +1140,7 @@ webserv: - code: cgi.d aria2c https://raw.githubusercontent.com/adamdruppe/arsd/master/cgi.d + aria2c https://raw.githubusercontent.com/adamdruppe/arsd/master/core.d - License: BSL-1.0 Boost Software License 1.0 @@ -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 diff --git a/src/COPYRIGHT b/src/COPYRIGHT index 88b66fb..2676bf1 100644 --- a/src/COPYRIGHT +++ b/src/COPYRIGHT @@ -140,6 +140,7 @@ - code: cgi.d aria2c https://raw.githubusercontent.com/adamdruppe/arsd/master/cgi.d + aria2c https://raw.githubusercontent.com/adamdruppe/arsd/master/core.d - License: BSL-1.0 Boost Software License 1.0 diff --git a/src/sisudoc/COPYRIGHT b/src/sisudoc/COPYRIGHT index 88b66fb..2676bf1 100644 --- a/src/sisudoc/COPYRIGHT +++ b/src/sisudoc/COPYRIGHT @@ -140,6 +140,7 @@ - code: cgi.d aria2c https://raw.githubusercontent.com/adamdruppe/arsd/master/cgi.d + aria2c https://raw.githubusercontent.com/adamdruppe/arsd/master/core.d - License: BSL-1.0 Boost Software License 1.0 |