Browse Source

update Nix configuration

The MMGen Project 2 months ago
parent
commit
84b0843be

+ 1 - 1
mmgen/data/version

@@ -1 +1 @@
-15.1.dev54
+15.1.dev55

+ 6 - 0
nix/README

@@ -39,6 +39,12 @@ will make executables from your native environment inaccessible within the
 shell, so you may need to add some additional tools to your environment such as
 a text editor.  For examples, refer to ‘user-packages.nix’
 
+Speedup tip: Look for the commented-out ‘url =’ lines in the *.nix files in
+this directory, and make local shallow clones of the corresponding remote git
+repositories using ‘git clone --depth=1’ plus ‘--revision=<commit>’ or
+‘--branch=<tag>’.  Then uncomment the local paths, adjusting them to suit.
+This will also allow you to use your installation in an offline environment.
+
 NixOS:
 
   To install the MMGen Wallet environment under NixOS, copy the contents of the ‘nix’

+ 3 - 1
nix/bitcoin-cash-node.nix

@@ -5,13 +5,15 @@ pkgs.stdenv.mkDerivation rec {
     version = "v28.0.1";
     src = fetchGit {
         url = "https://gitlab.com/bitcoin-cash-node/bitcoin-cash-node";
+        # url = /path/to/repo/bitcoin-cash-node-28.0.1;
         ref = "refs/tags/${version}";
+        shallow = true;
     };
     nativeBuildInputs = [
         pkgs.cmake
         pkgs.ninja
         pkgs.help2man
-        pkgs.python3
+        pkgs.python313
     ];
     buildInputs = [
         pkgs.boost

+ 1 - 0
nix/go-ethereum.nix

@@ -1,4 +1,5 @@
 # adapted from go-ethereum.nix in nixpkgs repository
+# not currently used, as nixpkgs 25.05 go-ethereum (v1.15.11) is OK
 
 {
     pkgs,

+ 4 - 2
nix/litecoin.nix

@@ -5,7 +5,9 @@ pkgs.stdenv.mkDerivation rec {
     version = "v0.21.4";
     src = fetchGit {
         url = "https://github.com/litecoin-project/litecoin.git";
+        # url = /path/to/repo/litecoin-0.21.4.git;
         ref = "refs/tags/${version}";
+        shallow = true;
     };
     nativeBuildInputs = [
         pkgs.autoconf
@@ -15,7 +17,7 @@ pkgs.stdenv.mkDerivation rec {
         # pkgs.hexdump # for tests
     ];
     buildInputs = [
-        pkgs.boost
+        pkgs.boost183 # 'fs::copy_option' was removed in Boost 1.84
         pkgs.libevent
         pkgs.fmt
         pkgs.db4
@@ -30,7 +32,7 @@ pkgs.stdenv.mkDerivation rec {
         "--with-sqlite"
         "--disable-bench"
         "--disable-tests"
-        "--with-boost-libdir=${pkgs.boost.out}/lib"
+        "--with-boost-libdir=${pkgs.boost183.out}/lib"
     ];
     buildFlags = [
         "src/litecoind"

+ 2 - 2
nix/merged-packages.nix

@@ -1,8 +1,8 @@
 { add_pkgs_path }:
 
 let
-    dfl_nixpkgs = import ./nixpkgs-24.11.nix {};
-    dfl_python = pkgs.python312;
+    dfl_nixpkgs = import ./nixpkgs-25.05.nix {};
+    dfl_python = pkgs.python313;
     null_pkgs = {
         system-packages = {};
         python-packages = {};

+ 0 - 7
nix/nixpkgs-24.05.nix

@@ -1,7 +0,0 @@
-import (
-    fetchGit {
-        url = "https://github.com/NixOS/nixpkgs.git";
-        rev = "63dacb46bf939521bdc93981b4cbb7ecb58427a0"; # refs/tags/24.05
-        shallow = true;
-    }
-)

+ 0 - 8
nix/nixpkgs-24.11.nix

@@ -1,8 +0,0 @@
-import (
-    fetchGit {
-        url = "https://github.com/NixOS/nixpkgs.git";
-        ref = "release-24.11";
-        rev = "8b27c1239e5c421a2bbc2c65d52e4a6fbf2ff296"; # refs/tags/24.11
-        shallow = true;
-    }
-)

+ 9 - 0
nix/nixpkgs-25.05.nix

@@ -0,0 +1,9 @@
+import (
+    fetchGit {
+        url = "https://github.com/NixOS/nixpkgs.git";
+        # url = /path/to/repo/nixpkgs-25.05.git;
+        ref = "release-25.05";
+        rev = "11cb3517b3af6af300dd6c055aeda73c9bf52c48"; # refs/tags/25.05
+        shallow = true;
+    }
+)

+ 1 - 8
nix/packages.nix

@@ -10,17 +10,10 @@
         libtool      = libtool;
         autoconf     = autoconf;
         gmp          = gmp;
-        gmp4         = gmp4;
         openssl      = openssl;
         pcre         = pcre;
         mpfr         = mpfr;
-        secp256k1    = secp256k1.overrideAttrs {
-            pname = "secp256k1-v0.6.0";
-            src = fetchGit {
-                url = "https://github.com/bitcoin-core/secp256k1.git";
-                ref = "refs/tags/v0.6.0";
-            };
-        };
+        secp256k1    = secp256k1;
         less         = less;   # test suite (cmdtest.py regtest)
         procps       = procps; # test suite (pgrep)
         ruff         = ruff;

+ 48 - 0
nix/reth.nix

@@ -0,0 +1,48 @@
+{
+    lib,
+    pkgs,
+    rustPlatform,
+}:
+
+let
+    # cargo and rustc packages from 25.05 are out of date,
+    # so fetch them from a more recent commit:
+    pinnedPkgs = fetchGit {
+        url = "https://github.com/NixOS/nixpkgs.git";
+        # url = /path/to/repo/nixpkgs-fe8997.git;
+        rev = "fe89979ad5e8fd233ae0aac0e7e56f465945ae70";
+        shallow = true;
+    };
+    pkgs2 = import pinnedPkgs {};
+
+in
+
+rustPlatform.buildRustPackage rec {
+    pname = "reth";
+    version = "1.7.0";
+
+    src = fetchGit {
+        url = "https://github.com/paradigmxyz/reth";
+        # url = /path/to/repo/reth;
+        ref = "refs/tags/v${version}";
+        shallow = true;
+    };
+
+    cargoHash = "sha256-2zdilVIHCW0N2yZNfLNoVpTASjXU1ABcZzQLzpAGEsY=";
+
+    nativeBuildInputs = [
+        pkgs.clang
+        pkgs.libclang
+        pkgs2.rustc
+        pkgs2.cargo
+    ];
+
+    env.LIBCLANG_PATH = pkgs.libclang.lib  + "/lib/";
+
+    meta = with lib; {
+        description = "Rust Ethereum daemon";
+        homepage = "https://github.com/paradigmxyz/reth";
+        license = licenses.mit;
+        mainProgram = "reth";
+    };
+}

+ 17 - 8
nix/user-packages.nix

@@ -8,31 +8,40 @@
 rec {
     ### Set nixpkgs globally for the MMGen environment.
     ### If you set it, make sure to uncomment the python variable assignment below.
-    # pkgs = import (bdir + /nixpkgs-24.11.nix) {};
+    # pkgs = import (bdir + /nixpkgs-25.05.nix) {};
 
     ### Set python version globally for the MMGen environment.
     ### Must be set if pkgs is set.
-    # python = pkgs.python312;
+    # python = pkgs.python313;
 
     system-packages = with pkgs; {
         # monero-cli   = monero-cli;                                      # Monero daemon
-        # # go-ethereum = go-ethereum;                     # Geth - latest version for transacting on mainnet
-        # go-ethereum = callPackage (bdir + /go-ethereum.nix) { # Geth - old version for test suite (ethdev)
-        #     buildGoModule = buildGo122Module;
-        #     tag_version = "v1.13.15";
-        #     vendor_hash = "sha256-LWNFuF66KudxrpWBBXjMbrWP5CwEuPE2h3kGfILIII0";
-        # };
+        # go-ethereum  = go-ethereum;                                     # Geth
+        # reth         = callPackage (bdir + /reth.nix) {};               # Rust Ethereum daemon
         # solc         = callPackage (bdir + /solc.nix) {};               # Solidity compiler
         # litecoin     = callPackage (bdir + /litecoin.nix) {};           # Litecoin daemon
         # bitcoin-cash = callPackage (bdir + /bitcoin-cash-node.nix) {};  # Bitcoin Cash Node daemon
         # zcash-mini   = callPackage (bdir + /zcash-mini.nix) {};         # ZEC (test suite)
 
         ### For development with --pure (add/remove packages for your setup):
+        # neovim       = neovim;
         # neovim-qt    = neovim-qt;
         # rxvt-unicode = rxvt-unicode;
         # which        = which;
         # ctags        = ctags;
         # xclip        = xclip;
+        # ruff         = ruff;
+        # perl         = perl;
+        # netcat       = netcat-openbsd;
+        # jq           = jq;
+        # ed           = ed;
+        # rsync        = rsync;
+        # pandoc       = pandoc;
+        # gnupg        = gnupg;
+        # iproute2     = iproute2;
+        # tinyxxd      = tinyxxd;
+        # ranger       = ranger;
+        # hostname     = hostname;
 
         ### For test suite with --pure:
         # openssh      = openssh;

+ 2 - 0
nix/vanitygen-plusplus.nix

@@ -5,7 +5,9 @@ pkgs.stdenv.mkDerivation {
     version = "e7858035";
     src = fetchGit {
         url = "https://github.com/10gic/vanitygen-plusplus";
+        # url = /path/to/repo/vanitygen-plusplus-e78580;
         rev = "e7858035d092f9b9d6468e2b812475faaf7c69c6";
+        shallow = true;
     };
     buildInputs = [ pkgs.openssl pkgs.pcre ];
     installPhase = ''

+ 2 - 0
nix/zcash-mini.nix

@@ -5,7 +5,9 @@ pkgs.stdenvNoCC.mkDerivation {
     version = "a2b35042";
     src = fetchGit {
         url = "https://github.com/FiloSottile/zcash-mini";
+        # url = /path/to/repo/zcash-mini-a2b350;
         rev = "a2b35042ad3a3bc22b925ecfc45e768a376bd29a";
+        shallow = true;
     };
     buildInputs = [ pkgs.go pkgs.binutils ];
     patchPhase = ''