summaryrefslogtreecommitdiffhomepage
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README187
1 files changed, 187 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..35c600e
--- /dev/null
+++ b/README
@@ -0,0 +1,187 @@
+-*- mode: org -*-
+#+TITLE: D related overlays
+#+DESCRIPTION: ldc, dub, dtools: dlang compiler build tool and tools
+#+FILETAGS: :dlang:build:tools:
+#+AUTHOR: Ralph Amissah
+#+EMAIL: [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]]
+#+COPYRIGHT: Copyright (C) 2022 - 2024 Ralph Amissah
+#+LANGUAGE: en
+#+STARTUP: content hideblocks hidestars noindent entitiespretty
+
+* README for D related dev shells with overlays
+** in emacs write (tangle) this (org) file for its output
+
+This org file: "dlang-nix-flakes.org" when using emacs and saved (tangling output)
+it creates and writes output to the subdirectory path:
+
+ ./dlang-nix-flakes
+
+and writes output there, this is to prevent accidentally writing over anything
+in the directory in which the dlang-nix-flakes.org file happens to be saved.
+
+./dlang-nix-flakes becomes your nix flake work directory.
+
+** dlang-nix-flakes.org
+
+the file dlang-nix-flakes.org contains nix related files for producing more
+recent versions of the dlang compiler and build tools: ldc, dub and dtools, than
+exist in nixpkgs at the time of publishing, in some cases with additional fixes.
+
+.envrc files
+
+nix control files
+ - default.nix
+ - shell.nix
+ - flake.nix
+
+nix overlays for (updates nixpkgs, more recent versions of):
+ - ldc ( 1.30.0 -> 1.37.0 )
+ - dub ( 1.23.0 -> 1.36.0 ) [for nix versions 1.31.0 ... 1.33.0 broken]
+ - dtools ( 2.095.1 -> 2.103.1 )
+
+ - dmd ( 2.100.2 -> 2.106.1 ) KO ✗
+ - gdc [not yet available]
+
+(updates nixpkgs circa 2023-05-12)
+
+dlang-nix-flakes.org --❯
+ .
+ └── dlang-nix-flakes
+ ├── #default.nix
+ ├── flake.lock
+ ├── flake.nix
+ ├── README
+ ├── shell.nix
+ └── nix-overlays
+    ├── dmd [not working]
+    │   ├── binary.nix
+    │   ├── bootstrap.nix
+    │   ├── default.nix
+    │   └── generic.nix
+    ├── dtools
+    │   └── default.nix
+    ├── dub
+    │   └── default.nix
+    └── ldc
+    ├── binary.nix
+    ├── bootstrap.nix
+    ├── default.nix
+    └── generic.nix
+
+search nixpkgs here:
+
+- https://search.nixos.org/packages?channel=unstable&from=0&size=100&sort=relevance&query=
+
+** compilers
+*** ldc OK ✓ ( 1.30.0 -> 1.37.0 )
+
+- https://wiki.dlang.org/LDC
+
+- https://github.com/ldc-developers/ldc
+ - https://github.com/ldc-developers/ldc/releases
+ nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.37.0.tar.gz
+ - https://github.com/ldc-developers/ldc/issues
+
+- version in nixpkgs:
+ - https://search.nixos.org/packages?channel=unstable&show=ldc&from=0&size=100&sort=relevance&type=packages&query=ldc
+
+*** dmd KO ✗ ( 2.100.2 -> 2.106.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.106.1.tar.gz
+ - https://github.com/dlang/dmd/pulls
+
+- version in nixpkgs:
+ - https://search.nixos.org/packages?channel=unstable&show=dmd&from=0&size=100&sort=relevance&type=packages&query=dmd
+
+- dmd nixpkg modified and appears to build ok, but it appears my overlay does
+ not get things right REVIEW
+
+- dmd on nixos FAILS to build (my working projects), appears not to find parts
+ of itself
+
+*** gdc ( not provided yet with gcc12 in nixpkgs )
+
+not yet provided in nixpkgs with gcc12, no attempt made
+
+- https://wiki.dlang.org/GDC
+ - https://wiki.dlang.org/GDC_Development
+
+- https://github.com/D-Programming-GDC/gdc
+
+** build tool
+*** dub ( 1.23.0 -> 1.36.0 )
+
+- 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
+ - https://github.com/dlang/dub/issues
+
+- version in nixpkgs:
+ - https://search.nixos.org/packages?channel=unstable&show=dub&from=0&size=100&sort=relevance&type=packages&query=dub
+
+- dub nixpkg overlay is updated and runs most dub tests correctly
+
+- dub OK ✓ ( 1.30.0 -> 1.36.0 )
+
+ from v1.31.0 requires seeting of pwd in buildPhase else fails to build
+ packages with nix tools that previous version of dub built;
+
+** tools
+*** dtools OK ✓ ( 2.095.1 -> 2.103.1 )
+
+- https://code.dlang.org/packages/dtools
+
+- https://github.com/dlang/tools
+ - https://github.com/dlang/tools/tags
+ nix-prefetch --unpack https://github.com/dlang/tools/archive/refs/tags/v2.103.1.tar.gz
+ - https://github.com/dlang/tools/issues
+
+- version in nixpkgs
+ - https://search.nixos.org/packages?channel=unstable&show=dtools&from=0&size=100&sort=relevance&type=packages&query=dtools
+
+** nixpkgs
+
+It is possible to work directly against a local copy of nixpkgs. To do so you
+would clone nixpkgs and point to the local nixpkgs as your build source.
+
+git clone --depth=1 --branch master https://github.com/nixos/nixpkgs nixpkgs
+
+- ./nixpkgs/pkgs/development/compilers/ldc
+- ./nixpkgs/pkgs/development/compilers/dmd
+- ./nixpkgs/pkgs/development/tools/build-managers/dub
+- ./nixpkgs/pkgs/development/tools/dtools
+
+- ./nixpkgs/pkgs/development/compilers/gcc
+
+Note the overlays if copied to the nixpkgs path locations should work as they do
+in the overlay, with a pointer to the cloned nixpkgs as nixpkgs repository
+source. In fact the starting point for the overlays was to take verbatim what
+was in nixpkgs and then to update and fix where necessary those packages.
+
+It is possible to compare the changes made by the overlays here directly against
+what is currently available in nixpkgs.
+
+- https://search.nixos.org/packages?channel=unstable&size=100&sort=relevance&query=
+
+nix flake update && nix flake check --show-trace && nix flake info && echo "" && nix flake show
+ │
+ ├───devShells
+ │ └───x86_64-linux
+ │ ├───default: development environment 'nix-shell'
+ │ ├───dsh-nixpkgs-ldc-dub: development environment 'nixpkgs---ldc---dub'
+ │ ├───dsh-overlay-dmd-dub: development environment 'overlay---dmd-2.104.0---dub-1.30.0---broken'
+ │ ├───dsh-overlay-dtest-tilix: development environment 'overlay---ldc-1.32.2---dub-1.30.0---tilix---gtkd'
+ │ ├───dsh-overlay-dtools: development environment 'overlay---ldc-1.32.2---dub-1.30.0---dtools-2.103.1'
+ │ └───dsh-overlay-ldc-dub: development environment 'overlay---ldc-1.32.2---dub-1.30.0'
+ └───packages
+ └───x86_64-linux
+ ├───check-local-dir-build: package 'dummy-0.1.0'
+ ├───check-tilix: package 'tilix-1.9.5'
+ └───default: package 'tilix-1.9.5'