diff options
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/nim/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/compilers/nim/default.nix | 59 |
1 files changed, 8 insertions, 51 deletions
diff --git a/nixpkgs/pkgs/development/compilers/nim/default.nix b/nixpkgs/pkgs/development/compilers/nim/default.nix index f18671242130..f0ffa4309f9f 100644 --- a/nixpkgs/pkgs/development/compilers/nim/default.nix +++ b/nixpkgs/pkgs/development/compilers/nim/default.nix @@ -3,7 +3,7 @@ { lib, callPackage, buildPackages, stdenv, fetchurl, fetchgit, fetchFromGitHub , makeWrapper, openssl, pcre, readline, boehmgc, sqlite, Security, nim-unwrapped -, nim-unwrapped-2, nimble-unwrapped, nim }: +, nim-unwrapped-2, nim }: let parseCpu = platform: @@ -163,6 +163,7 @@ in { url = "https://nim-lang.org/download/nim-${version}.tar.xz"; hash = "sha256-vWEB2EADb7eOk6ad9s8/n9DCHNdUtpX/hKO0rdjtCvc="; }; + patches = [ ./NIM_CONFIG_DIR.patch # Override compiler configuration via an environmental variable @@ -172,48 +173,14 @@ in { ./extra-mangling.patch # Mangle store paths of modules to prevent runtime dependence. + + ./openssl.patch + # dlopen is widely used by Python, Ruby, Perl, ... what you're really telling me here is that your OS is fundamentally broken. That might be news for you, but it isn't for me. ]; }); - nimble-unwrapped = stdenv.mkDerivation rec { - pname = "nimble-unwrapped"; - version = "0.14.2"; - strictDeps = true; - - src = fetchFromGitHub { - owner = "nim-lang"; - repo = "nimble"; - rev = "v${version}"; - hash = "sha256-8b5yKvEl7c7wA/8cpdaN2CSvawQJzuRce6mULj3z/mI="; - }; - - depsBuildBuild = [ nim-unwrapped ]; - buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin Security; - - nimFlags = [ "--cpu:${nimHost.cpu}" "--os:${nimHost.os}" "-d:release" ]; - - buildPhase = '' - runHook preBuild - HOME=$NIX_BUILD_TOP nim c $nimFlags src/nimble - runHook postBuild - ''; - - installPhase = '' - runHook preBuild - install -Dt $out/bin src/nimble - runHook postBuild - ''; - - meta = with lib; { - description = "Package manager for the Nim programming language"; - homepage = "https://github.com/nim-lang/nimble"; - license = licenses.bsd3; - maintainers = with maintainers; [ ehmry ]; - mainProgram = "nimble"; - }; - }; } // (let - wrapNim = { nim', nimble', patches }: + wrapNim = { nim', patches }: let targetPlatformConfig = stdenv.targetPlatform.config; self = stdenv.mkDerivation (finalAttrs: { @@ -328,20 +295,11 @@ in { $wrapperArgs ln -s $out/bin/${targetPlatformConfig}-testament $out/bin/testament - '' + lib.strings.optionalString (nimble' != null) '' - makeWrapper \ - ${nimble'}/bin/nimble $out/bin/${targetPlatformConfig}-nimble \ - --suffix PATH : $out/bin - ln -s $out/bin/${targetPlatformConfig}-nimble $out/bin/nimble - '' + '' runHook postInstall ''; - passthru = { - nim = nim'; - nimble = nimble'; - }; + passthru = { nim = nim'; }; meta = nim'.meta // { description = nim'.meta.description @@ -356,13 +314,12 @@ in { nim = wrapNim { nim' = buildPackages.nim-unwrapped; - nimble' = buildPackages.nimble-unwrapped; patches = [ ./nim.cfg.patch ]; }; nim2 = wrapNim { nim' = buildPackages.nim-unwrapped-2; - nimble' = null; patches = [ ./nim2.cfg.patch ]; }; + }) |