aboutsummaryrefslogtreecommitdiffhomepage
path: root/org/nixpkgs_overlays_d_related.org
diff options
context:
space:
mode:
Diffstat (limited to 'org/nixpkgs_overlays_d_related.org')
-rw-r--r--org/nixpkgs_overlays_d_related.org1420
1 files changed, 513 insertions, 907 deletions
diff --git a/org/nixpkgs_overlays_d_related.org b/org/nixpkgs_overlays_d_related.org
index 5eedd71..1b89d89 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"
@@ -27,7 +45,7 @@
,#+FILETAGS: :dlang:build:tools:
,#+AUTHOR: Ralph Amissah
,#+EMAIL: [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]]
-,#+COPYRIGHT: Copyright (C) 2015 - 2024 Ralph Amissah
+,#+COPYRIGHT: Copyright (C) 2015 - 2025 Ralph Amissah
,#+LANGUAGE: en
,#+STARTUP: content hideblocks hidestars noindent entitiespretty
@@ -173,7 +191,7 @@ nix flake update && nix flake check --show-trace && nix flake info && echo "" &&
** .gitignore
#+HEADER: :tangle-NO "../nix-overlays/.gitignore"
-#+BEGIN_SRC sh
+#+BEGIN_SRC gitignore
# git ls-files --others --exclude-from=.git/info/exclude
# git check-ignore -v flake.lock
# git clean -ix
@@ -216,7 +234,7 @@ tmp/**
*** nixDevEnv.sh (.envrc)
#+HEADER: :tangle-NO "../nix-overlays/nixDevEnv.sh"
-#+BEGIN_SRC sh
+#+BEGIN_SRC shell
if [ -f .envrc-local ]; then
source_env_if_exists .envrc-local || source .envrc-local
fi
@@ -228,7 +246,7 @@ fi
*** .envrc-local
#+HEADER: :tangle-NO "../nix-overlays/.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
@@ -243,16 +261,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-NO "../nix-overlays/.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
@@ -272,49 +291,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
-
-#+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
@@ -323,11 +299,11 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix
{
description = "dub d package manager";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
- inputs.flake-utils.url = "github:numtide/flake-utils";
+ #inputs.flake-utils.url = "github:numtide/flake-utils";
outputs = {
self,
nixpkgs,
- flake-utils,
+ #flake-utils,
...
}@inputs: let
name = "dev-dub";
@@ -357,14 +333,14 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix
in {
packages = forAllSystems (system: let
pkgs-ovl = pkgsForSystem system;
- pkgs = nixpkgsFor.${system};
+ pkgs-nix = nixpkgsFor.${system};
in
with pkgs-ovl; {
default = dub;
});
devShells = forAllSystems (system: let
pkgs-ovl = pkgsForSystem system;
- pkgs = nixpkgsFor.${system};
+ pkgs-nix = nixpkgsFor.${system};
shellHook = ''
'';
in
@@ -374,32 +350,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;
};
@@ -408,11 +386,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;
};
@@ -421,9 +400,10 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix
# inherit shell;
# inherit devEnv;
# packages = [
- # gnumake
# gdc
# dub
+ # dtools
+ # gnumake
# ];
# inherit shellHook;
#};
@@ -431,16 +411,27 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix
name = "nixpkgs - ldc - dub";
inherit shell;
inherit devEnv;
- #nativeBuildInputs = [ dub dmd ldc gdc gnumake ];
- #buildInputs = [ sqlite ];
- packages = with pkgs; [
+ packages = with pkgs-nix; [
ldc
dub
+ dtools
+ gnumake
+ ];
+ inherit shellHook;
+ };
+ dsh-nixpkgs-dmd-dub = mkShell {
+ name = "nixpkgs - ldc - dub";
+ inherit shell;
+ inherit devEnv;
+ packages = with pkgs-nix; [
+ dmd
+ dub
+ dtools
gnumake
];
inherit shellHook;
};
- default = import ./shell.nix {inherit pkgs;};
+ default = import ./shell.nix {inherit pkgs-nix;};
});
};
}
@@ -452,21 +443,21 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix
#+HEADER: :tangle-mode (identity #o755)
#+HEADER: :shebang "#!/usr/bin/env -S nix-shell -I nixpkgs=/srv/nix/nixpkgs --pure\n#!nix-shell -i bash"
#+BEGIN_SRC nix
-{pkgs ? import <nixpkgs> {}}:
-with pkgs;
+{pkgs-nix ? import <nixpkgs> {}}:
+with pkgs-nix;
mkShell {
buildInputs = [
# ❯❯❯ nix_related
#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
ldc
@@ -516,29 +507,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
@@ -546,60 +550,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 +608,7 @@ stdenv.mkDerivation rec {
makeFlags = [ "DMD=$DMD" ];
- fixNames = lib.optionalString stdenv.hostPlatform.isDarwin ''
+ fixNames = lib.optionalString stdenv.hostPlatform.isDarwin ''
fixDarwinDylibNames() {
local flags=()
@@ -628,14 +628,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"
@@ -648,90 +647,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;
@@ -739,7 +731,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 +752,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,271 +762,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 ✓
-
-- 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 ✓
+***** bootstrap.nix version SELECT
+****** bootstrap.nix ldc2-1.25.0
-- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.32.1.tar.gz
-
-#+NAME: ldc_version_1_32_2
+#+NAME: ldc_bootstrap_1-25-0_hashes
#+BEGIN_SRC nix
-1.32.2
+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_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
+****** bootstrap.nix ldc2-1.30.0
-#+NAME: ldc_version_1_31_0
+#+NAME: ldc_bootstrap_1-30-0_hashes
#+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
+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 ✓
@@ -1059,10 +813,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>>";
@@ -1070,10 +831,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>>";
@@ -1086,31 +846,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
@@ -1124,11 +886,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
@@ -1185,6 +944,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
@@ -1194,11 +956,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
@@ -1211,7 +973,7 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
curl
tzdata
- # ] ++ lib.optionals stdenv.isDarwin [
+ # ] ++ lib.optionals stdenv.hostPlatform.isDarwin []
# Foundation
];
@@ -1296,15 +1058,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
@@ -1407,169 +1177,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
@@ -1597,15 +1204,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>>";
@@ -1614,30 +1237,21 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "dlang";
repo = "dub";
- rev = "v${version}";
- sha256 = "<<dub_hash>>";
+ rev = "v${finalAttrs.version}";
+ hash = "<<dub_hash>>";
};
- #postUnpack = ''
- # patchShebangs .
- #'';
-
- dubvar = "\\$DUB";
postPatch = ''
patchShebangs test
-
- # Can be removed with https://github.com/dlang/dub/pull/1368
- substituteInPlace test/fetchzip.sh \
- --replace "dub remove" "\"${dubvar}\" remove"
'';
nativeBuildInputs = [ dcompiler libevent rsync ];
buildInputs = [ curl ];
- buildPhase = ''
- for DC_ in dmd ldmd2 gdmd; do
- echo "... check for D compiler $DC_ ..."
- export DC=$(type -P $DC_ || echo "")
+ preBuild = ''
+ for DCn in dmd ldmd2 gdmd; do
+ echo "... check for D compiler $DCn ..."
+ export DC=$(type -P $DCn || echo "")
if [ ! "$DC" == "" ]; then
break
fi
@@ -1645,17 +1259,21 @@ stdenv.mkDerivation rec {
if [ "$DC" == "" ]; then
exit "Error: could not find D compiler"
fi
- echo "$DC_ found and used as D compiler in buildPhase for $pname"
- $DC ./build.d
- ./build
+ echo "$DCn found and used as D compiler in buildPhase for $pname"
+ '';
+
+ 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
@@ -1663,8 +1281,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
@@ -1672,199 +1289,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 ✓
@@ -1890,130 +1343,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
+
+#+NAME: direnv_hash
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:direnv-hash()>>
+#+END_SRC
+
+*** ldc
+***** version & sha256 nix composite
-- https://github.com/dlang/tools
+#+NAME: ldc_version_info
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:ldc-version-info()>>
+#+END_SRC
-**** selected version SET OK ✓
+***** selected version
-#+NAME: dtools_version
-#+BEGIN_SRC nix
-<<dtools_version_2_103_1>>
+#+NAME: ldc_version
+#+HEADER: :noweb yes
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:ldc-version()>>
#+END_SRC
-#+NAME: dtools_hash
-#+BEGIN_SRC nix
-<<dtools_hash_2_103_1>>
+#+NAME: ldc_hash
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:ldc-hash()>>
#+END_SRC
-**** 2.103.1 OK ✓
+#+NAME: ldc_llvm_set
+#+BEGIN_SRC emacs-lisp
+<<./nix-develop-dlang-shared.org:ldc-llvm-set()>>
+#+END_SRC
-- https://github.com/dlang/tools/releases/tag/v2.103.1
+*** dmd
+**** selected version
-#+NAME: dtools_version_2_103_1
-#+BEGIN_SRC nix
-2.103.1
+#+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 ✓
-
-- https://github.com/dlang/tools/releases/tag/v2.095.1
+*** dtools
+**** selected version
-#+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__