diff options
| author | Ralph Amissah <ralph.amissah@gmail.com> | 2026-04-09 10:46:52 -0400 |
|---|---|---|
| committer | Ralph Amissah <ralph.amissah@gmail.com> | 2026-04-09 10:47:30 -0400 |
| commit | f806fb0da0f3810c7f941e64fc592c01137212bd (patch) | |
| tree | 2ec450cffe9e503876652d150936718fbe35d2f1 | |
| parent | package 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-local | 2 | ||||
| -rw-r--r-- | .envrc-local_ | 2 | ||||
| -rw-r--r-- | derivation.nix | 12 | ||||
| -rw-r--r-- | flake.lock | 14 | ||||
| -rw-r--r-- | flake.nix | 265 | ||||
| -rw-r--r-- | makefile | 2 | ||||
| -rw-r--r-- | nix-overlays/ldc/package.nix | 4 | ||||
| -rw-r--r-- | org/config_env.org | 2 | ||||
| -rw-r--r-- | org/config_make.org | 2 | ||||
| -rw-r--r-- | org/config_nix.org | 299 | ||||
| -rw-r--r-- | org/nixpkgs_overlays_d_related.org | 4 | ||||
| -rwxr-xr-x | shell.nix | 31 |
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) { @@ -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" }, @@ -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 @@ -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 @@ -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 = '' - ''; } |
