aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2024-12-05 21:53:24 -0500
committerRalph Amissah <ralph.amissah@gmail.com>2024-12-05 21:53:24 -0500
commitad607f7760ddd3c2bb7d29740feb115a28514948 (patch)
tree90f3ea89bac3e3052781a8416fc24e87683e24fd
parentnix build housekeeping, ldc, follow nixpkgs build (diff)
nix build, dub, take account of nixpkgs build changes
-rw-r--r--nix-overlays/dub/default.nix88
-rw-r--r--nix-overlays/dub/package.nix91
-rw-r--r--org/nixpkgs_overlays_d_related.org109
3 files changed, 161 insertions, 127 deletions
diff --git a/nix-overlays/dub/default.nix b/nix-overlays/dub/default.nix
index b2a2283..8375c13 100644
--- a/nix-overlays/dub/default.nix
+++ b/nix-overlays/dub/default.nix
@@ -1,87 +1 @@
-{ lib, stdenv, fetchFromGitHub, curl, libevent, rsync, ldc, dcompiler ? ldc }:
-
-assert dcompiler != null;
-
-stdenv.mkDerivation rec {
- pname = "dub";
- version = "1.38.1";
-
- enableParallelBuilding = true;
-
- src = fetchFromGitHub {
- owner = "dlang";
- repo = "dub";
- rev = "v${version}";
- sha256 = "sha256-8Lr/0sx4SKwU1aNOxZArta0RXpDM+EWl29ZsPDdPWFo=";
- };
-
- #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 "")
- if [ ! "$DC" == "" ]; then
- break
- fi
- done
- 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
- '';
-
- doCheck = !stdenv.isDarwin;
-
- checkPhase = ''
- 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
- echo "DC out --> $DC"
- export HOME=$TMP
-
- rm -rf test/issue502-root-import
- rm -rf test/dpath-variable
- #rm test/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
- rm -rf test/pr2644-describe-artifact-path # added to build v1.36.0
- rm -rf test/pr2647-build-deep # added to build v1.36.0
-
- ./test/run-unittest.sh
- '';
-
- installPhase = ''
- mkdir -p $out/bin
- cp bin/dub $out/bin
- '';
-
- meta = with lib; {
- description = "Package and build manager for D applications and libraries";
- homepage = "https://code.dlang.org/";
- license = licenses.mit;
- mainProgram = "dub";
- maintainers = with maintainers; [ jtbx ];
- platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
- };
-}
+import ./package.nix
diff --git a/nix-overlays/dub/package.nix b/nix-overlays/dub/package.nix
new file mode 100644
index 0000000..f13adec
--- /dev/null
+++ b/nix-overlays/dub/package.nix
@@ -0,0 +1,91 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, curl
+, ldc
+, dcompiler ? ldc
+, libevent
+, rsync
+}:
+
+assert dcompiler != null;
+
+stdenv.mkDerivation (finalAttrs: {
+ pname = "dub";
+ version = "1.38.1";
+
+ enableParallelBuilding = true;
+
+ src = fetchFromGitHub {
+ owner = "dlang";
+ repo = "dub";
+ rev = "v${finalAttrs.version}";
+ hash = "sha256-8Lr/0sx4SKwU1aNOxZArta0RXpDM+EWl29ZsPDdPWFo=";
+ };
+
+ postPatch = ''
+ patchShebangs test
+ '';
+
+ nativeBuildInputs = [ dcompiler libevent rsync ];
+ buildInputs = [ curl ];
+
+ 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
+ done
+ if [ "$DC" == "" ]; then
+ exit "Error: could not find D compiler"
+ fi
+ echo "$DCn found and used as D compiler in buildPhase for $pname"
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+ $DC -run ./build.d
+ runHook postBuild
+ '';
+
+ doCheck = !stdenv.hostPlatform.isDarwin;
+
+ checkPhase = ''
+ runHook preCheck
+ export DUB=$NIX_BUILD_TOP/source/bin/dub
+ export PATH=$PATH:$NIX_BUILD_TOP/source/bin/
+ if [ "$DC" == "" ]; then
+ exit "Error: could not find D compiler"
+ fi
+ echo "DC out --> $DC"
+ export HOME=$TMP
+
+ rm -rf test/issue502-root-import
+ 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
+ rm -rf test/pr2644-describe-artifact-path # added to build v1.36.0
+ rm -rf test/pr2647-build-deep # added to build v1.36.0
+
+ ./test/run-unittest.sh
+ runHook postCheck
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ install -Dm755 bin/dub $out/bin/dub
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ 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" ];
+ };
+})
diff --git a/org/nixpkgs_overlays_d_related.org b/org/nixpkgs_overlays_d_related.org
index 9467744..532f927 100644
--- a/org/nixpkgs_overlays_d_related.org
+++ b/org/nixpkgs_overlays_d_related.org
@@ -386,14 +386,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
@@ -460,16 +460,25 @@ 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
gnumake
];
inherit shellHook;
};
- default = import ./shell.nix {inherit pkgs;};
+ dsh-nixpkgs-dmd-dub = mkShell {
+ name = "nixpkgs - ldc - dub";
+ inherit shell;
+ inherit devEnv;
+ packages = with pkgs-nix; [
+ dmd
+ dub
+ gnumake
+ ];
+ inherit shellHook;
+ };
+ default = import ./shell.nix {inherit pkgs-nix;};
});
};
}
@@ -481,8 +490,8 @@ 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
@@ -495,7 +504,7 @@ with pkgs;
#nix-tree
#nvd
jq #gx
- #alejandra
+ #nixfmt-rfc-style
git
# ❯❯❯ dev
ldc
@@ -849,17 +858,17 @@ sha256 = "<<ldc_hash>>";
**** 1.40 OK ✓
***** 1.40.0 OK ✓
- - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.40.0-beta4.tar.gz
+ - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.40.0-beta5.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_40_0
#+BEGIN_SRC nix
-1.40.0-beta4
+1.40.0-beta5
#+END_SRC
#+NAME: ldc_hash_1_40_0
#+BEGIN_SRC nix
-sha256-AzUlWfbG/e/l9kQY3rHq+BkZAW1sRrUAAeB8yIoWZ6Q=
+sha256-AaH5xw4hA0LHVx9SU3E+CIZKUHyjJ4TiPaoJnmQZJx4=
#+END_SRC
#+NAME: ldc_llvm_set_1_40_0
@@ -1481,11 +1490,24 @@ sha256-kTHRaAKG7cAGb4IE/NGHWaZ8t7ZceKj03l6E8wLzJzs=
#+HEADER: :tangle "../nix-overlays/dub/default.nix"
#+BEGIN_SRC nix
-{ lib, stdenv, fetchFromGitHub, curl, libevent, rsync, ldc, dcompiler ? ldc }:
+import ./package.nix
+#+END_SRC
+
+#+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>>";
@@ -1494,30 +1516,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
@@ -1525,17 +1538,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"
'';
- doCheck = !stdenv.isDarwin;
+ buildPhase = ''
+ runHook preBuild
+ $DC -run ./build.d
+ runHook postBuild
+ '';
+
+ 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
@@ -1543,8 +1560,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
@@ -1552,22 +1568,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
+
+*** dcompiler SET
+
+#+NAME: dcompiler
+#+BEGIN_SRC nix
+ldc
+#+END_SRC
+
+#+BEGIN_SRC nix
+dmd
#+END_SRC
*** versions SET