mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-02-18 04:43:28 +00:00
start using pinnedNim and pinnedNimble
This commit is contained in:
parent
61e075f9ab
commit
8d0cca3b19
@ -21,8 +21,12 @@ let
|
||||
version = tools.findKeyValue "^version = \"([a-f0-9.-]+)\"$" ../waku.nimble;
|
||||
revision = lib.substring 0 8 (src.rev or src.dirtyRev or "00000000");
|
||||
|
||||
nimPinned = pkgs.callPackage ./nim.nix {};
|
||||
nimblePinned = pkgs.callPackage ./nimble.nix { inherit nimPinned; };
|
||||
|
||||
nimbleDeps = callPackage ./deps.nix {
|
||||
inherit src version revision;
|
||||
mynimble = nimblePinned;
|
||||
};
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
@ -34,7 +38,6 @@ in stdenv.mkDerivation {
|
||||
ANDROID_SDK_ROOT="${pkgs.androidPkgs.sdk}";
|
||||
ANDROID_NDK_HOME="${pkgs.androidPkgs.ndk}";
|
||||
NIMFLAGS = "-d:disableMarchNative -d:git_revision_override=${revision}";
|
||||
XDG_CACHE_HOME = "/tmp";
|
||||
};
|
||||
|
||||
buildInputs = with pkgs; [
|
||||
@ -60,7 +63,13 @@ in stdenv.mkDerivation {
|
||||
];
|
||||
|
||||
configurePhase = ''
|
||||
export NIMBLE_DIR=$NIX_BUILD_TOP/nimbledeps
|
||||
export HOME=$TMPDIR
|
||||
export XDG_CACHE_HOME=$TMPDIR
|
||||
export NIMBLE_DIR=$TMPDIR/nimbledir
|
||||
|
||||
mkdir -p $NIMBLE_DIR/pkgs2/nim-2.2.6/bin
|
||||
cp -r ${nimPinned}/bin/* $NIMBLE_DIR/pkgs2/nim-2.2.6/bin/
|
||||
|
||||
cp -r ${nimbleDeps}/nimbledeps $NIMBLE_DIR
|
||||
cp ${nimbleDeps}/nimble.paths ./
|
||||
chmod 775 -R $NIMBLE_DIR
|
||||
|
||||
13
nix/deps.nix
13
nix/deps.nix
@ -1,4 +1,9 @@
|
||||
{ pkgs, stdenv, src, version, revision }:
|
||||
{ pkgs
|
||||
, stdenv
|
||||
, src
|
||||
, version
|
||||
, revision
|
||||
, mynimble }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "logos-delivery-nimble-deps";
|
||||
@ -7,8 +12,8 @@ stdenv.mkDerivation {
|
||||
inherit src;
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
jq rsync git nimble cacert moreutils
|
||||
];
|
||||
jq rsync git cacert moreutils
|
||||
] ++ [ mynimble ];
|
||||
|
||||
configurePhase = ''
|
||||
export XDG_CACHE_HOME=$TMPDIR
|
||||
@ -49,7 +54,7 @@ stdenv.mkDerivation {
|
||||
'';
|
||||
|
||||
# Make this a fixed-output derivation to allow internet access for Nimble.
|
||||
outputHash = "sha256-faWNLiyNfeyp4ynpO+F3HRj8J/3sJBgClryCrZFKfzs=";
|
||||
outputHash = "sha256-hW01MZL8cb4Iby6HTomYWCP+LkY6PK1o+qaOeWYsWuE=";
|
||||
outputHashAlgo = "sha256";
|
||||
outputHashMode = "recursive";
|
||||
}
|
||||
|
||||
@ -1,12 +1,48 @@
|
||||
{ pkgs ? import <nixpkgs> { } }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchgit
|
||||
, pkg-config
|
||||
, pkgs
|
||||
, nimPinned
|
||||
}:
|
||||
|
||||
let
|
||||
tools = pkgs.callPackage ./tools.nix {};
|
||||
sourceFile = ../vendor/nimbus-build-system/vendor/Nim/koch.nim;
|
||||
in pkgs.fetchFromGitHub {
|
||||
owner = "nim-lang";
|
||||
repo = "nimble";
|
||||
rev = tools.findKeyValue "^ +NimbleStableCommit = \"([a-f0-9]+)\".*$" sourceFile;
|
||||
# WARNING: Requires manual updates when Nim compiler version changes.
|
||||
hash = "sha256-8iutVgNzDtttZ7V+7S11KfLEuwhKA9TsgS51mlUI08k=";
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "my-nimble";
|
||||
version = "0.99.0-9e488db"; # your own human version
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/nim-lang/nimble.git";
|
||||
rev = "9e488db1233004d6fb42923739f8b8cb12485f30";
|
||||
# computed hash of the Git snapshot:
|
||||
sha256 = "sha256-MhLkXgnwsCtbPbxo3J3e+//6BMsTEgvDZlbPY/ONEeE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config nim pkgs.openssl ];
|
||||
|
||||
configurePhase = ''
|
||||
export HOME=$TMPDIR
|
||||
|
||||
mkdir -p $NIMBLE_DIR/pkgs2/nim-2.2.6/bin
|
||||
cp -r ${nimPinned}/bin/* $NIMBLE_DIR/pkgs2/nim-2.2.6/bin/
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
echo "Copying source to build directory..."
|
||||
cp -r $src/* . # Copy into $PWD
|
||||
|
||||
echo "Compiling nimble..."
|
||||
nim c -d:release src/nimble.nim
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp src/nimble $out/bin/
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Nim package manager from specific commit";
|
||||
homepage = "https://github.com/nim-lang/nimble";
|
||||
license = licenses.mit;
|
||||
maintainers = [];
|
||||
};
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user