summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2026-04-09 10:46:52 -0400
committerRalph Amissah <ralph.amissah@gmail.com>2026-04-09 10:47:30 -0400
commitf806fb0da0f3810c7f941e64fc592c01137212bd (patch)
tree2ec450cffe9e503876652d150936718fbe35d2f1
parentpackage housekeeping, minor (diff)
flake.nix dmd build fix overlay: revert to GCC14
- revert to using GCC14: (current) GCC 15 introduced nullptr in its headers, and DMD's ImportC parser needs update to handle it, monitor and update - spine_search build to result/cgi-bin/spine_search instead of result/share/cgi-bin/spine_search - (nix ldc overlay, minor comsetic)
-rw-r--r--.envrc-local2
-rw-r--r--.envrc-local_2
-rw-r--r--derivation.nix12
-rw-r--r--flake.lock14
-rw-r--r--flake.nix265
-rw-r--r--makefile2
-rw-r--r--nix-overlays/ldc/package.nix4
-rw-r--r--org/config_env.org2
-rw-r--r--org/config_make.org2
-rw-r--r--org/config_nix.org299
-rw-r--r--org/nixpkgs_overlays_d_related.org4
-rwxr-xr-xshell.nix31
12 files changed, 215 insertions, 424 deletions
diff --git a/.envrc-local b/.envrc-local
index 392dd6e..1bafe75 100644
--- a/.envrc-local
+++ b/.envrc-local
@@ -1,5 +1,5 @@
export SpineVER=$(git describe --long --tags | sed 's/^[ a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g')
-export SpineSearchBIN=result/share/cgi-bin
+export SpineSearchBIN=result/cgi-bin
# ❯❯ cgi search form name:
export SpineCGIform='spine_search'
# ❯❯ configuration cgi search form path:
diff --git a/.envrc-local_ b/.envrc-local_
index 23b2355..075787d 100644
--- a/.envrc-local_
+++ b/.envrc-local_
@@ -1,6 +1,6 @@
# -*- mode: sh -*-
export SpineVER=$(git describe --long --tags | sed 's/^[ a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g')
-export SpineSearchBIN=result/share/cgi-bin
+export SpineSearchBIN=result/cgi-bin
# ❯❯ cgi search form name:
export SpineCGIform='spine_search'
# ❯❯ configuration cgi search form path:
diff --git a/derivation.nix b/derivation.nix
index efe8ebf..a27956f 100644
--- a/derivation.nix
+++ b/derivation.nix
@@ -43,7 +43,7 @@ with (
src = lib.cleanSource src;
};
preFixup = ''
- find $out/share/cgi-bin -type f -exec ${removeExpr (disallowedReferences deps)} '{}' + || true
+ find $out/cgi-bin -type f -exec ${removeExpr (disallowedReferences deps)} '{}' + || true
'';
buildPhase = ''
runHook preBuild
@@ -71,14 +71,14 @@ with (
'';
installPhase = ''
runHook preInstall
- mkdir -p $out/share/cgi-bin
- cp -r "${targetOf package}" $out/share/cgi-bin
- install -m755 -D $out/share/cgi-bin/spine_search spine_search
+ mkdir -p $out/cgi-bin
+ cp -r "${targetOf package}" $out/cgi-bin
+ install -m755 -D $out/cgi-bin/spine_search spine_search
runHook postInstall
'';
postInstall = ''
- echo "HERE ${targetOf package} $out/share/cgi-bin"
- echo `ls -la $out/share/cgi-bin/spine_search`
+ echo "HERE ${targetOf package} $out/cgi-bin"
+ echo `ls -la $out/cgi-bin/spine_search`
'';
meta =
lib.optionalAttrs (package ? description) {
diff --git a/flake.lock b/flake.lock
index 1fc60cf..0e700d9 100644
--- a/flake.lock
+++ b/flake.lock
@@ -2,11 +2,11 @@
"nodes": {
"nixpkgs": {
"locked": {
- "lastModified": 1773628058,
- "narHash": "sha256-hpXH0z3K9xv0fHaje136KY872VT2T5uwxtezlAskQgY=",
+ "lastModified": 1775701739,
+ "narHash": "sha256-2FWWY1rr/+pGUJK1npcVcsWNEblzmKs6VxD3VEvwJSs=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "f8573b9c935cfaa162dd62cc9e75ae2db86f85df",
+ "rev": "0f7663154ff2fec150f9dbf5f81ec2785dc1e0db",
"type": "github"
},
"original": {
@@ -29,11 +29,11 @@
]
},
"locked": {
- "lastModified": 1772748350,
- "narHash": "sha256-UwH0m6iqKHqFSbSc63UqjPNis2OprQ7K4h8C+OVUNtI=",
+ "lastModified": 1775708141,
+ "narHash": "sha256-MjjhikIgXjNcsEzyZmjKXHk+DaEk5ic2h15DC6w4W50=",
"ref": "refs/heads/main",
- "rev": "c08461dc2b99618171de1973dc2218d3d14e9fba",
- "revCount": 28,
+ "rev": "bcb38c5014f2870ba7d6412b0b39c757ad4ae725",
+ "revCount": 29,
"type": "git",
"url": "git://git.sisudoc.org/package/dlang-nix-overlays-and-flake"
},
diff --git a/flake.nix b/flake.nix
index cfddea5..7b0bd7f 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,35 +1,28 @@
{
description = "a sisu like document parser search form";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
- #inputs.flake-utils.url = "github:numtide/flake-utils";
inputs.spine-d-overlay = {
url = "git://git.sisudoc.org/package/dlang-nix-overlays-and-flake";
inputs.nixpkgs.follows = "nixpkgs";
- flake = true;
};
outputs = {
self,
nixpkgs,
- #flake-utils,
spine-d-overlay,
...
}@inputs: let
pname = "spine_search";
version = "0.18.0";
- shell = ./shell.nix;
- devEnv = ./nixDevEnv.sh;
+ #shell = ./shell.nix;
+ #devEnv = ./nixDevEnv.sh;
supportedSystems = ["x86_64-linux"];
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;}); # nixpkgs instantiated for supported system types
- checkPhase = ''
- runHook preCheck
- dub test --combined --skip-registry=all
- runHook postCheck
- '';
localOverlay = (final: prev: {
- ldc = prev.callPackage ./nix-overlays/ldc { };
- dmd = prev.callPackage ./nix-overlays/dmd { };
- dub = prev.callPackage ./nix-overlays/dub { };
+ ldc = prev.callPackage ./nix-overlays/ldc { }; # -> ok 1.42.0
+ # dmd overlay: revert to GCC14; (current) GCC 15 introduced nullptr in its headers, and DMD's ImportC parser needs update to handle it, monitor and update:
+ dmd = prev.callPackage ./nix-overlays/dmd { stdenv = prev.gcc14Stdenv; }; # -> ok 2.111.0
+ dub = prev.callPackage ./nix-overlays/dub { }; # -> ? 1.40.0
#gdc = prev.callPackage ./nix-overlays/gdc { };
});
pkgsForSystem = system: import nixpkgs {
@@ -41,165 +34,79 @@
preBuild = ''
export HOME=$(pwd)
'';
+ checkPhase = ''
+ runHook preCheck
+ dub test --combined --skip-registry=all
+ runHook postCheck
+ '';
installPhase = ''
runHook preInstall
- mkdir -p $out/share/cgi-bin
- install -m755 -D ./cgi-bin/spine_search $out/share/cgi-bin/spine_search
+ mkdir -p $out/cgi-bin
+ install -m755 -D ./cgi-bin/spine_search $out/cgi-bin/spine_search
runHook postInstall
'';
postInstall = ''
- echo `ls -la $out/share/cgi-bin/spine_search`
+ echo `ls -la $out/cgi-bin/spine_search`
'';
+ # Helper to reduce duplication across build variants
+ mkSpineSearch = {pkgs, compiler, compilerCmd, dubConfig}: pkgs.stdenv.mkDerivation {
+ inherit pname version;
+ meta.mainProgram = "spine_search";
+ src = self;
+ buildInputs = [pkgs.sqlite];
+ nativeBuildInputs = [pkgs.dub compiler pkgs.gnumake];
+ buildPhase = ''
+ runHook preBuild
+ buildCMD="dub run --cache=local --compiler=$(type -P ${compilerCmd}) --build=${dubConfig} --combined --skip-registry=all"
+ echo $buildCMD
+ $buildCMD
+ echo $buildCMD
+ runHook postBuild
+ '';
+ inherit preBuild;
+ inherit checkPhase;
+ inherit installPhase;
+ inherit postInstall;
+ };
in {
packages = forAllSystems (system: let
pkgs-ovl = pkgsForSystem system;
pkgs-nix = nixpkgsFor.${system};
- in
- with pkgs-nix; {
- default = stdenv.mkDerivation {
- inherit pname;
- inherit version;
- meta.mainProgram = "spine-search";
- executable = true;
- src = self;
- inherit shell;
- inherit devEnv;
- buildInputs = [sqlite];
- nativeBuildInputs = [dub ldc gnumake];
- buildPhase = ''
- runHook preBuild
- for DC_ in dmd ldmd2 ldc2 gdc gdmd; do
- echo "- check for D compiler $DC_"
- DC=$(type -P $DC_ || echo "")
- if [ ! "$DC" == "" ]; then break; fi
- done
- if [ "$DC" == "" ]; then exit "Error: could not find D compiler"; fi
- echo "$DC_ used as D compiler to build $pname"
- buildCMD="dub run --cache=local --compiler=$DC --build=$DC_ --combined --skip-registry=all"
- echo $buildCMD
- $buildCMD
- echo $buildCMD
- runHook postBuild
- '';
- inherit preBuild;
- inherit checkPhase;
- inherit installPhase;
- inherit postInstall;
- };
- spine-search-nixpkgs-dmd = stdenv.mkDerivation {
- inherit pname;
- inherit version;
- meta.mainProgram = "spine_search-dmd";
- executable = true;
- src = self;
- inherit shell;
- inherit devEnv;
- 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"
- echo $buildCMD
- $buildCMD
- echo $buildCMD
- runHook postBuild
- '';
- inherit preBuild;
- inherit checkPhase;
- inherit installPhase;
- inherit postInstall;
- };
- spine-search-nixpkgs-ldc = stdenv.mkDerivation {
- inherit pname;
- inherit version;
- meta.mainProgram = "spine_search-ldc";
- executable = true;
- src = self;
- inherit shell;
- inherit devEnv;
- buildInputs = with pkgs-nix; [sqlite];
- 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"
- echo $buildCMD
- $buildCMD
- echo $buildCMD
- runHook postBuild
- '';
- inherit preBuild;
- inherit checkPhase;
- inherit installPhase;
- inherit postInstall;
- };
- spine-search-overlay-dmd = stdenv.mkDerivation {
- inherit pname;
- inherit version;
- meta.mainProgram = "spine_search-dmd";
- executable = true;
- src = self;
- inherit shell;
- inherit devEnv;
- buildInputs = with pkgs-ovl; [sqlite];
- nativeBuildInputs = with pkgs-ovl; [dub dmd gnumake];
- buildPhase = ''
- runHook preBuild
- buildCMD="dub run --cache=local --compiler=$(type -P dmd) --build=dmd --combined --skip-registry=all"
- echo $buildCMD
- $buildCMD
- echo $buildCMD
- runHook postBuild
- '';
- inherit preBuild;
- inherit checkPhase;
- inherit installPhase;
- inherit postInstall;
- };
- spine-search-overlay-ldc = stdenv.mkDerivation {
- inherit pname;
- inherit version;
- meta.mainProgram = "spine_search-ldc";
- executable = true;
- src = self;
- inherit shell;
- inherit devEnv;
- buildInputs = with pkgs-ovl; [sqlite];
- nativeBuildInputs = with pkgs-ovl; [dub ldc gnumake];
- buildPhase = ''
- runHook preBuild
- buildCMD="dub run --cache=local --compiler=$(type -P ldmd2) --build=ldmd2 --combined --skip-registry=all"
- echo $buildCMD
- $buildCMD
- echo $buildCMD
- runHook postBuild
- '';
- inherit preBuild;
- inherit checkPhase;
- inherit installPhase;
- inherit postInstall;
- };
- #spine-search-overlay-gdc = stdenv.mkDerivation {
- # inherit pname;
- # inherit version;
- # meta.mainProgram = "spine_search-gdc";
- # executable = true;
- # src = self;
- # inherit shell;
- # inherit devEnv;
- # buildInputs = with pkgs-ovl; [ sqlite ];
- # nativeBuildInputs = with pkgs-ovl; [ dub gdc gnumake ];
- # buildPhase = ''
- # runHook preBuild
- # dub run --cache=local --compiler=$(type -P gdc) --build=gdc --combined --skip-registry=all
- # runHook postBuild
- # '';
- # inherit preBuild;
- # inherit checkPhase;
- # inherit installPhase;
- # inherit postInstall;
- #};
- #vendorSha256 = "sha256-0Q00000000000000000000000000000000000000000=";
- });
+ in {
+ default = self.packages.${system}.spine-search-nixpkgs-ldc;
+ spine-search-nixpkgs-dmd = mkSpineSearch {
+ pkgs = pkgs-nix;
+ # nixpkgs dmd: revert to GCC14 (same nullptr/ImportC fix as overlay dmd)
+ compiler = pkgs-nix.dmd.override { stdenv = pkgs-nix.gcc14Stdenv; };
+ #compiler = pkgs-nix.dmd;
+ compilerCmd = "dmd";
+ dubConfig = "dmd";
+ };
+ spine-search-nixpkgs-ldc = mkSpineSearch {
+ pkgs = pkgs-nix;
+ compiler = pkgs-nix.ldc;
+ compilerCmd = "ldmd2";
+ dubConfig = "ldmd2";
+ };
+ spine-search-overlay-dmd = mkSpineSearch {
+ pkgs = pkgs-ovl;
+ compiler = pkgs-ovl.dmd;
+ compilerCmd = "dmd";
+ dubConfig = "dmd";
+ };
+ spine-search-overlay-ldc = mkSpineSearch {
+ pkgs = pkgs-ovl;
+ compiler = pkgs-ovl.ldc;
+ compilerCmd = "ldmd2";
+ dubConfig = "ldmd2";
+ };
+ #spine-search-overlay-gdc = mkSpineSearch {
+ # pkgs = pkgs-ovl;
+ # compiler = pkgs-ovl.gdc;
+ # compilerCmd = "gdc";
+ # dubConfig = "gdc";
+ #};
+ });
devShells = forAllSystems (system: let
pkgs-ovl = pkgsForSystem system;
pkgs-nix = nixpkgsFor.${system};
@@ -211,9 +118,7 @@
with pkgs-nix; {
dsh-d-overlay = spine-d-overlay.devShells.${system}.default;
dsh-overlay = mkShell {
- name = "spine-0.18.0 base dev shell, ldc-1.42.0, dub-1.40.0";
- inherit shell;
- inherit devEnv;
+ name = "${pname}-${version} dev shell (overlay)";
packages = with pkgs-ovl; [
ldc
#dmd
@@ -223,10 +128,8 @@
];
inherit shellHook;
};
- dsh-nixpkgs-dmd-dub = mkShell {
- name = "spine-0.18.0 base dev shell";
- inherit shell;
- inherit devEnv;
+ dsh-nixpkgs-dmd = mkShell {
+ name = "${pname}-${version} dev shell (nixpkgs dmd)";
packages = [
dmd
dub
@@ -235,10 +138,8 @@
];
inherit shellHook;
};
- dsh-nixpkgs-ldc-dub = mkShell {
- name = "spine-0.18.0 base dev shell";
- inherit shell;
- inherit devEnv;
+ dsh-nixpkgs-ldc = mkShell {
+ name = "${pname}-${version} dev shell (nixpkgs ldc)";
packages = [
ldc
dub
@@ -247,10 +148,9 @@
];
inherit shellHook;
};
- dsh-overlay-dmd-dub = mkShell {
- name = "spine-0.18.0 base dev shell, dmd-2.111.0, dub-1.40.0";
- inherit shell;
- inherit devEnv;
+ dsh-overlay-dmd = mkShell {
+ name = "${pname}-${version} dev shell (overlay dmd)";
+ # "spine-0.18.0 base dev shell, dmd-2.111.0, dub-1.40.0";
packages = with pkgs-ovl; [
dmd
dub
@@ -259,10 +159,9 @@
];
inherit shellHook;
};
- dsh-overlay-ldc-dub = mkShell {
- name = "spine-0.18.0 base dev shell, ldc-1.42.0, dub-1.40.0";
- inherit shell;
- inherit devEnv;
+ dsh-overlay-ldc = mkShell {
+ name = "${pname}-${version} dev shell (overlay ldc)";
+ # "spine-0.18.0 base dev shell, ldc-1.42.0, dub-1.40.0";
packages = with pkgs-ovl; [
ldc
dub
@@ -272,9 +171,7 @@
inherit shellHook;
};
dsh-sqlite = mkShell {
- name = "spine dev shell for latex & pdf output";
- inherit shell;
- inherit devEnv;
+ name = "${pname}-${version} dev shell (sqlite)";
packages = [
ldc
#dmd
diff --git a/makefile b/makefile
index b032d64..922516d 100644
--- a/makefile
+++ b/makefile
@@ -83,7 +83,7 @@ set_depends: get_depends
# cp cgi search form
cp-cgi:
sudo cp -vi /var/www/cgi/cgi-bin/spine_search /var/www/cgi/cgi-bin/spine_search_old && \
- sudo cp -vi result/share/cgi-bin/spine_search /var/www/cgi/cgi-bin/spine_search
+ sudo cp -vi result/cgi-bin/spine_search /var/www/cgi/cgi-bin/spine_search
# git archive
gitZip:
diff --git a/nix-overlays/ldc/package.nix b/nix-overlays/ldc/package.nix
index 75eb898..b5daa75 100644
--- a/nix-overlays/ldc/package.nix
+++ b/nix-overlays/ldc/package.nix
@@ -138,6 +138,8 @@ stdenv.mkDerivation (finalAttrs: {
find $out/bin -type f -exec ${removeReferencesTo}/bin/remove-references-to -t ${ldcBootstrap} '{}' +
'';
+ # doCheck = false;
+
disallowedReferences = [ ldcBootstrap ];
meta = with lib; {
@@ -181,6 +183,6 @@ stdenv.mkDerivation (finalAttrs: {
no-references-to-compiler = helloWorld.overrideAttrs {
disallowedReferences = [ ldc ];
dFlags = ["-g"];
+ };
};
- };
})
diff --git a/org/config_env.org b/org/config_env.org
index 8aa8fa7..332f849 100644
--- a/org/config_env.org
+++ b/org/config_env.org
@@ -144,7 +144,7 @@ fi
#+HEADER: :noweb yes
#+BEGIN_SRC shell
export SpineVER=$(git describe --long --tags | sed 's/^[ a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g')
-export SpineSearchBIN=result/share/cgi-bin
+export SpineSearchBIN=result/cgi-bin
# ❯❯ cgi search form name:
export SpineCGIform='spine_search'
# ❯❯ configuration cgi search form path:
diff --git a/org/config_make.org b/org/config_make.org
index 235276f..36a2532 100644
--- a/org/config_make.org
+++ b/org/config_make.org
@@ -134,7 +134,7 @@ set_depends: get_depends
# cp cgi search form
cp-cgi:
sudo cp -vi /var/www/cgi/cgi-bin/spine_search /var/www/cgi/cgi-bin/spine_search_old && \
- sudo cp -vi result/share/cgi-bin/spine_search /var/www/cgi/cgi-bin/spine_search
+ sudo cp -vi result/cgi-bin/spine_search /var/www/cgi/cgi-bin/spine_search
# git archive
gitZip:
diff --git a/org/config_nix.org b/org/config_nix.org
index 142964e..2044cfa 100644
--- a/org/config_nix.org
+++ b/org/config_nix.org
@@ -24,35 +24,28 @@
{
description = "a sisu like document parser search form";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
- #inputs.flake-utils.url = "github:numtide/flake-utils";
inputs.spine-d-overlay = {
url = "<<sisudoc_dlang_nix_overlay_src>>";
inputs.nixpkgs.follows = "nixpkgs";
- flake = true;
};
outputs = {
self,
nixpkgs,
- #flake-utils,
spine-d-overlay,
...
}@inputs: let
pname = "spine_search";
version = "<<spine_version>>";
- shell = ./shell.nix;
- devEnv = ./nixDevEnv.sh;
+ #shell = ./shell.nix;
+ #devEnv = ./nixDevEnv.sh;
supportedSystems = ["x86_64-linux"];
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;}); # nixpkgs instantiated for supported system types
- checkPhase = ''
- runHook preCheck
- dub test --combined --skip-registry=all
- runHook postCheck
- '';
localOverlay = (final: prev: {
- ldc = prev.callPackage ./nix-overlays/ldc { };
- dmd = prev.callPackage ./nix-overlays/dmd { };
- dub = prev.callPackage ./nix-overlays/dub { };
+ ldc = prev.callPackage ./nix-overlays/ldc { }; # -> ok <<ldc_version>>
+ # dmd overlay: revert to GCC14; (current) GCC 15 introduced nullptr in its headers, and DMD's ImportC parser needs update to handle it, monitor and update:
+ dmd = prev.callPackage ./nix-overlays/dmd { stdenv = prev.gcc14Stdenv; }; # -> ok <<dmd_version>>
+ dub = prev.callPackage ./nix-overlays/dub { }; # -> ? <<dub_version>>
#gdc = prev.callPackage ./nix-overlays/gdc { };
});
pkgsForSystem = system: import nixpkgs {
@@ -64,165 +57,79 @@
preBuild = ''
export HOME=$(pwd)
'';
+ checkPhase = ''
+ runHook preCheck
+ dub test --combined --skip-registry=all
+ runHook postCheck
+ '';
installPhase = ''
runHook preInstall
- mkdir -p $out/share/cgi-bin
- install -m755 -D ./cgi-bin/spine_search $out/share/cgi-bin/spine_search
+ mkdir -p $out/cgi-bin
+ install -m755 -D ./cgi-bin/spine_search $out/cgi-bin/spine_search
runHook postInstall
'';
postInstall = ''
- echo `ls -la $out/share/cgi-bin/spine_search`
+ echo `ls -la $out/cgi-bin/spine_search`
'';
+ # Helper to reduce duplication across build variants
+ mkSpineSearch = {pkgs, compiler, compilerCmd, dubConfig}: pkgs.stdenv.mkDerivation {
+ inherit pname version;
+ meta.mainProgram = "spine_search";
+ src = self;
+ buildInputs = [pkgs.sqlite];
+ nativeBuildInputs = [pkgs.dub compiler pkgs.gnumake];
+ buildPhase = ''
+ runHook preBuild
+ buildCMD="dub run --cache=local --compiler=$(type -P ${compilerCmd}) --build=${dubConfig} --combined --skip-registry=all"
+ echo $buildCMD
+ $buildCMD
+ echo $buildCMD
+ runHook postBuild
+ '';
+ inherit preBuild;
+ inherit checkPhase;
+ inherit installPhase;
+ inherit postInstall;
+ };
in {
packages = forAllSystems (system: let
pkgs-ovl = pkgsForSystem system;
pkgs-nix = nixpkgsFor.${system};
- in
- with pkgs-nix; {
- default = stdenv.mkDerivation {
- inherit pname;
- inherit version;
- meta.mainProgram = "spine-search";
- executable = true;
- src = self;
- inherit shell;
- inherit devEnv;
- buildInputs = [sqlite];
- nativeBuildInputs = [dub ldc gnumake];
- buildPhase = ''
- runHook preBuild
- for DC_ in dmd ldmd2 ldc2 gdc gdmd; do
- echo "- check for D compiler $DC_"
- DC=$(type -P $DC_ || echo "")
- if [ ! "$DC" == "" ]; then break; fi
- done
- if [ "$DC" == "" ]; then exit "Error: could not find D compiler"; fi
- echo "$DC_ used as D compiler to build $pname"
- buildCMD="dub run --cache=local --compiler=$DC --build=$DC_ --combined --skip-registry=all"
- echo $buildCMD
- $buildCMD
- echo $buildCMD
- runHook postBuild
- '';
- inherit preBuild;
- inherit checkPhase;
- inherit installPhase;
- inherit postInstall;
- };
- spine-search-nixpkgs-dmd = stdenv.mkDerivation {
- inherit pname;
- inherit version;
- meta.mainProgram = "spine_search-dmd";
- executable = true;
- src = self;
- inherit shell;
- inherit devEnv;
- 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"
- echo $buildCMD
- $buildCMD
- echo $buildCMD
- runHook postBuild
- '';
- inherit preBuild;
- inherit checkPhase;
- inherit installPhase;
- inherit postInstall;
- };
- spine-search-nixpkgs-ldc = stdenv.mkDerivation {
- inherit pname;
- inherit version;
- meta.mainProgram = "spine_search-ldc";
- executable = true;
- src = self;
- inherit shell;
- inherit devEnv;
- buildInputs = with pkgs-nix; [sqlite];
- 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"
- echo $buildCMD
- $buildCMD
- echo $buildCMD
- runHook postBuild
- '';
- inherit preBuild;
- inherit checkPhase;
- inherit installPhase;
- inherit postInstall;
- };
- spine-search-overlay-dmd = stdenv.mkDerivation {
- inherit pname;
- inherit version;
- meta.mainProgram = "spine_search-dmd";
- executable = true;
- src = self;
- inherit shell;
- inherit devEnv;
- buildInputs = with pkgs-ovl; [sqlite];
- nativeBuildInputs = with pkgs-ovl; [dub dmd gnumake];
- buildPhase = ''
- runHook preBuild
- buildCMD="dub run --cache=local --compiler=$(type -P dmd) --build=dmd --combined --skip-registry=all"
- echo $buildCMD
- $buildCMD
- echo $buildCMD
- runHook postBuild
- '';
- inherit preBuild;
- inherit checkPhase;
- inherit installPhase;
- inherit postInstall;
- };
- spine-search-overlay-ldc = stdenv.mkDerivation {
- inherit pname;
- inherit version;
- meta.mainProgram = "spine_search-ldc";
- executable = true;
- src = self;
- inherit shell;
- inherit devEnv;
- buildInputs = with pkgs-ovl; [sqlite];
- nativeBuildInputs = with pkgs-ovl; [dub ldc gnumake];
- buildPhase = ''
- runHook preBuild
- buildCMD="dub run --cache=local --compiler=$(type -P ldmd2) --build=ldmd2 --combined --skip-registry=all"
- echo $buildCMD
- $buildCMD
- echo $buildCMD
- runHook postBuild
- '';
- inherit preBuild;
- inherit checkPhase;
- inherit installPhase;
- inherit postInstall;
- };
- #spine-search-overlay-gdc = stdenv.mkDerivation {
- # inherit pname;
- # inherit version;
- # meta.mainProgram = "spine_search-gdc";
- # executable = true;
- # src = self;
- # inherit shell;
- # inherit devEnv;
- # buildInputs = with pkgs-ovl; [ sqlite ];
- # nativeBuildInputs = with pkgs-ovl; [ dub gdc gnumake ];
- # buildPhase = ''
- # runHook preBuild
- # dub run --cache=local --compiler=$(type -P gdc) --build=gdc --combined --skip-registry=all
- # runHook postBuild
- # '';
- # inherit preBuild;
- # inherit checkPhase;
- # inherit installPhase;
- # inherit postInstall;
- #};
- #vendorSha256 = "sha256-0Q00000000000000000000000000000000000000000=";
- });
+ in {
+ default = self.packages.${system}.spine-search-nixpkgs-ldc;
+ spine-search-nixpkgs-dmd = mkSpineSearch {
+ pkgs = pkgs-nix;
+ # nixpkgs dmd: revert to GCC14 (same nullptr/ImportC fix as overlay dmd)
+ compiler = pkgs-nix.dmd.override { stdenv = pkgs-nix.gcc14Stdenv; };
+ #compiler = pkgs-nix.dmd;
+ compilerCmd = "dmd";
+ dubConfig = "dmd";
+ };
+ spine-search-nixpkgs-ldc = mkSpineSearch {
+ pkgs = pkgs-nix;
+ compiler = pkgs-nix.ldc;
+ compilerCmd = "ldmd2";
+ dubConfig = "ldmd2";
+ };
+ spine-search-overlay-dmd = mkSpineSearch {
+ pkgs = pkgs-ovl;
+ compiler = pkgs-ovl.dmd;
+ compilerCmd = "dmd";
+ dubConfig = "dmd";
+ };
+ spine-search-overlay-ldc = mkSpineSearch {
+ pkgs = pkgs-ovl;
+ compiler = pkgs-ovl.ldc;
+ compilerCmd = "ldmd2";
+ dubConfig = "ldmd2";
+ };
+ #spine-search-overlay-gdc = mkSpineSearch {
+ # pkgs = pkgs-ovl;
+ # compiler = pkgs-ovl.gdc;
+ # compilerCmd = "gdc";
+ # dubConfig = "gdc";
+ #};
+ });
devShells = forAllSystems (system: let
pkgs-ovl = pkgsForSystem system;
pkgs-nix = nixpkgsFor.${system};
@@ -234,9 +141,7 @@
with pkgs-nix; {
dsh-d-overlay = spine-d-overlay.devShells.${system}.default;
dsh-overlay = mkShell {
- name = "spine-<<spine_version>> base dev shell, ldc-<<ldc_version>>, dub-<<dub_version>>";
- inherit shell;
- inherit devEnv;
+ name = "${pname}-${version} dev shell (overlay)";
packages = with pkgs-ovl; [
ldc
#dmd
@@ -246,10 +151,8 @@
];
inherit shellHook;
};
- dsh-nixpkgs-dmd-dub = mkShell {
- name = "spine-<<spine_version>> base dev shell";
- inherit shell;
- inherit devEnv;
+ dsh-nixpkgs-dmd = mkShell {
+ name = "${pname}-${version} dev shell (nixpkgs dmd)";
packages = [
dmd
dub
@@ -258,10 +161,8 @@
];
inherit shellHook;
};
- dsh-nixpkgs-ldc-dub = mkShell {
- name = "spine-<<spine_version>> base dev shell";
- inherit shell;
- inherit devEnv;
+ dsh-nixpkgs-ldc = mkShell {
+ name = "${pname}-${version} dev shell (nixpkgs ldc)";
packages = [
ldc
dub
@@ -270,10 +171,9 @@
];
inherit shellHook;
};
- dsh-overlay-dmd-dub = mkShell {
- name = "spine-<<spine_version>> base dev shell, dmd-<<dmd_version>>, dub-<<dub_version>>";
- inherit shell;
- inherit devEnv;
+ dsh-overlay-dmd = mkShell {
+ name = "${pname}-${version} dev shell (overlay dmd)";
+ # "spine-<<spine_version>> base dev shell, dmd-<<dmd_version>>, dub-<<dub_version>>";
packages = with pkgs-ovl; [
dmd
dub
@@ -282,10 +182,9 @@
];
inherit shellHook;
};
- dsh-overlay-ldc-dub = mkShell {
- name = "spine-<<spine_version>> base dev shell, ldc-<<ldc_version>>, dub-<<dub_version>>";
- inherit shell;
- inherit devEnv;
+ dsh-overlay-ldc = mkShell {
+ name = "${pname}-${version} dev shell (overlay ldc)";
+ # "spine-<<spine_version>> base dev shell, ldc-<<ldc_version>>, dub-<<dub_version>>";
packages = with pkgs-ovl; [
ldc
dub
@@ -295,9 +194,7 @@
inherit shellHook;
};
dsh-sqlite = mkShell {
- name = "spine dev shell for latex & pdf output";
- inherit shell;
- inherit devEnv;
+ name = "${pname}-${version} dev shell (sqlite)";
packages = [
ldc
#dmd
@@ -316,14 +213,32 @@
** shell.nix :shell:
#+HEADER: :tangle ../shell.nix
-#+HEADER: :tangle-mode (identity #o755)
-#+HEADER: :shebang "#!/usr/bin/env -S nix-shell --pure\n#!nix-shell -i bash"
#+HEADER: :noweb yes
#+BEGIN_SRC nix
{pkgs-nix ? import <nixpkgs> {}}:
with pkgs-nix;
mkShell {
buildInputs = [
+ # nix workflow
+ direnv
+ nix-direnv
+ nix-prefetch-git
+ nix-output-monitor
+ nix-tree
+ jq
+ git
+ # project build
+ gnumake
+ sqlite
+ ];
+ }
+#+END_SRC
+
+#+BEGIN_SRC nix
+{pkgs-nix ? import <nixpkgs> {}}:
+with pkgs-nix;
+ mkShell {
+ buildInputs = [
# ❯❯❯ nix_related
#nix
direnv
@@ -486,7 +401,7 @@ with (
src = lib.cleanSource src;
};
preFixup = ''
- find $out/share/cgi-bin -type f -exec ${removeExpr (disallowedReferences deps)} '{}' + || true
+ find $out/cgi-bin -type f -exec ${removeExpr (disallowedReferences deps)} '{}' + || true
'';
buildPhase = ''
runHook preBuild
@@ -514,14 +429,14 @@ with (
'';
installPhase = ''
runHook preInstall
- mkdir -p $out/share/cgi-bin
- cp -r "${targetOf package}" $out/share/cgi-bin
- install -m755 -D $out/share/cgi-bin/spine_search spine_search
+ mkdir -p $out/cgi-bin
+ cp -r "${targetOf package}" $out/cgi-bin
+ install -m755 -D $out/cgi-bin/spine_search spine_search
runHook postInstall
'';
postInstall = ''
- echo "HERE ${targetOf package} $out/share/cgi-bin"
- echo `ls -la $out/share/cgi-bin/spine_search`
+ echo "HERE ${targetOf package} $out/cgi-bin"
+ echo `ls -la $out/cgi-bin/spine_search`
'';
meta =
lib.optionalAttrs (package ? description) {
diff --git a/org/nixpkgs_overlays_d_related.org b/org/nixpkgs_overlays_d_related.org
index 17fd309..6023565 100644
--- a/org/nixpkgs_overlays_d_related.org
+++ b/org/nixpkgs_overlays_d_related.org
@@ -649,6 +649,8 @@ stdenv.mkDerivation (finalAttrs: {
find $out/bin -type f -exec ${removeReferencesTo}/bin/remove-references-to -t ${ldcBootstrap} '{}' +
'';
+ # doCheck = false;
+
disallowedReferences = [ ldcBootstrap ];
meta = with lib; {
@@ -692,8 +694,8 @@ stdenv.mkDerivation (finalAttrs: {
no-references-to-compiler = helloWorld.overrideAttrs {
disallowedReferences = [ ldc ];
dFlags = ["-g"];
+ };
};
- };
})
#+END_SRC
diff --git a/shell.nix b/shell.nix
index e490db9..cd031ed 100755
--- a/shell.nix
+++ b/shell.nix
@@ -1,42 +1,17 @@
-#!/usr/bin/env -S nix-shell --pure
-#!nix-shell -i bash
{pkgs-nix ? import <nixpkgs> {}}:
with pkgs-nix;
mkShell {
buildInputs = [
- # ❯❯❯ nix_related
- #nix
+ # nix workflow
direnv
nix-direnv
- nixVersions.latest #nixVersions.latest #nixVersions.git
nix-prefetch-git
- validatePkgConfig
nix-output-monitor
nix-tree
- jq #gx
- #nixfmt-rfc-style
+ jq
git
- # ❯❯❯ dev
+ # project build
gnumake
- ps
- # ❯❯❯ d_build_related
- # ❯❯ package manager
- #dub
- # ❯❯ compiler
- #dmd
- #ldc
- #rund
- # ❯❯ linker
- #lld
- #mold
- # ❯❯ builder
- #ninja
- #meson
- # ❯❯❯ sqlite search related
sqlite
- # ❯❯❯ tools
- #aria #wget #curl
];
- shellHook = ''
- '';
}