From 4a7e14bf851605d35468a37b635bdff5d2fd94bb Mon Sep 17 00:00:00 2001 From: roconnor Date: Tue, 30 Dec 2025 13:41:22 -0500 Subject: [PATCH] bitcoin: Remove libsodium transistive dependency from bitcoin The official binaries for bitcoin-core explicitly configure their dependencies to minimize them. In this commit we bring the zeromq dependency closer to https://github.com/bitcoin/bitcoin/blob/94ddc2dced5736612e358a3b80f2bc718fbd8161/depends/packages/zeromq.mk In particular, libsodium is no longer a runtime dependency of bitcoin. --- pkgs/by-name/ze/zeromq/package.nix | 10 ++++++---- pkgs/top-level/all-packages.nix | 8 ++++++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/ze/zeromq/package.nix b/pkgs/by-name/ze/zeromq/package.nix index cc6869e87bc9..b8aafdf9e5e2 100644 --- a/pkgs/by-name/ze/zeromq/package.nix +++ b/pkgs/by-name/ze/zeromq/package.nix @@ -4,11 +4,13 @@ fetchFromGitHub, cmake, pkg-config, - libsodium, + libsodium ? null, asciidoc, xmlto, + enableCurve ? true, enableDrafts ? false, fetchpatch, + withLibsodium ? libsodium != null, # for passthru.tests azmq, cppzmq, @@ -61,13 +63,13 @@ stdenv.mkDerivation (finalAttrs: { xmlto ]; - buildInputs = [ libsodium ]; + buildInputs = lib.optionals withLibsodium [ libsodium ]; cmakeFlags = [ (lib.cmakeBool "BUILD_SHARED" (!stdenv.hostPlatform.isStatic)) - (lib.cmakeBool "ENABLE_CURVE" true) + (lib.cmakeBool "ENABLE_CURVE" enableCurve) (lib.cmakeBool "ENABLE_DRAFTS" enableDrafts) - (lib.cmakeBool "WITH_LIBSODIUM" true) + (lib.cmakeBool "WITH_LIBSODIUM" withLibsodium) ]; postPatch = '' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d1ad51ba358c..276783503a35 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12546,12 +12546,16 @@ with pkgs; bitcoin = qt6Packages.callPackage ../applications/blockchains/bitcoin { withGui = true; + zeromq = zeromq.override { + enableCurve = false; + enableDrafts = false; + libsodium = null; + }; inherit (darwin) autoSignDarwinBinariesHook; }; - bitcoind = callPackage ../applications/blockchains/bitcoin { + bitcoind = bitcoin.override { withGui = false; - inherit (darwin) autoSignDarwinBinariesHook; }; bitcoin-knots = libsForQt5.callPackage ../applications/blockchains/bitcoin-knots {