diff options
| -rw-r--r-- | nix-overlays/dub/default.nix | 88 | ||||
| -rw-r--r-- | nix-overlays/dub/package.nix | 91 | ||||
| -rw-r--r-- | org/nixpkgs_overlays_d_related.org | 109 | 
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 | 
