Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update nixpkgs #690

Merged
merged 1 commit into from
Apr 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

124 changes: 124 additions & 0 deletions pkgs/bitcoin/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
# Copied from nixpkgs 9765893b19b7e121f327f3d2e0d6079386bebea2
{ lib
, stdenv
, fetchurl
, autoreconfHook
, pkg-config
, installShellFiles
, util-linux
, hexdump
, autoSignDarwinBinariesHook
, wrapQtAppsHook ? null
, boost
, libevent
, miniupnpc
, zeromq
, zlib
, db48
, sqlite
, qrencode
, qtbase ? null
, qttools ? null
, python3
, nixosTests
, withGui
, withWallet ? true
}:

let
desktop = fetchurl {
# c2e5f3e is the last commit when the debian/bitcoin-qt.desktop file was changed
url = "https://raw.githubusercontent.com/bitcoin-core/packaging/c2e5f3e20a8093ea02b73cbaf113bc0947b4140e/debian/bitcoin-qt.desktop";
sha256 = "0cpna0nxcd1dw3nnzli36nf9zj28d2g9jf5y0zl9j18lvanvniha";
};
in
stdenv.mkDerivation rec {
pname = if withGui then "bitcoin" else "bitcoind";
version = "26.1";

src = fetchurl {
urls = [
"https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
];
# hash retrieved from signed SHA256SUMS
sha256 = "9164ee5d717b4a20cb09f0496544d9d32f365734814fe399f5cdb4552a9b35ee";
};

nativeBuildInputs =
[ autoreconfHook pkg-config installShellFiles ]
++ lib.optionals stdenv.isLinux [ util-linux ]
++ lib.optionals stdenv.isDarwin [ hexdump ]
++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ autoSignDarwinBinariesHook ]
++ lib.optionals withGui [ wrapQtAppsHook ];

buildInputs = [ boost libevent miniupnpc zeromq zlib ]
++ lib.optionals withWallet [ db48 sqlite ]
++ lib.optionals withGui [ qrencode qtbase qttools ];

postInstall = ''
installShellCompletion --bash contrib/completions/bash/bitcoin-cli.bash
installShellCompletion --bash contrib/completions/bash/bitcoind.bash
installShellCompletion --bash contrib/completions/bash/bitcoin-tx.bash

installShellCompletion --fish contrib/completions/fish/bitcoin-cli.fish
installShellCompletion --fish contrib/completions/fish/bitcoind.fish
installShellCompletion --fish contrib/completions/fish/bitcoin-tx.fish
installShellCompletion --fish contrib/completions/fish/bitcoin-util.fish
installShellCompletion --fish contrib/completions/fish/bitcoin-wallet.fish
'' + lib.optionalString withGui ''
installShellCompletion --fish contrib/completions/fish/bitcoin-qt.fish

install -Dm644 ${desktop} $out/share/applications/bitcoin-qt.desktop
substituteInPlace $out/share/applications/bitcoin-qt.desktop --replace "Icon=bitcoin128" "Icon=bitcoin"
install -Dm644 share/pixmaps/bitcoin256.png $out/share/pixmaps/bitcoin.png
'';

preConfigure = lib.optionalString stdenv.isDarwin ''
export MACOSX_DEPLOYMENT_TARGET=10.13
'';

configureFlags = [
"--with-boost-libdir=${boost.out}/lib"
"--disable-bench"
] ++ lib.optionals (!doCheck) [
"--disable-tests"
"--disable-gui-tests"
] ++ lib.optionals (!withWallet) [
"--disable-wallet"
] ++ lib.optionals withGui [
"--with-gui=qt5"
"--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
];

nativeCheckInputs = [ python3 ];

doCheck = true;

checkFlags =
[ "LC_ALL=en_US.UTF-8" ]
# QT_PLUGIN_PATH needs to be set when executing QT, which is needed when testing Bitcoin's GUI.
# See also https://github.com/NixOS/nixpkgs/issues/24256
++ lib.optional withGui "QT_PLUGIN_PATH=${qtbase}/${qtbase.qtPluginPrefix}";

enableParallelBuilding = true;

passthru.tests = {
smoke-test = nixosTests.bitcoind;
};

meta = with lib; {
description = "Peer-to-peer electronic cash system";
longDescription = ''
Bitcoin is a free open source peer-to-peer electronic cash system that is
completely decentralized, without the need for a central server or trusted
parties. Users hold the crypto keys to their own money and transact directly
with each other, with the help of a P2P network to check for double-spending.
'';
homepage = "https://bitcoin.org/en/";
downloadPage = "https://bitcoincore.org/bin/bitcoin-core-${version}/";
changelog = "https://bitcoincore.org/en/releases/${version}/";
maintainers = with maintainers; [ prusnak roconnor ];
license = licenses.mit;
platforms = platforms.unix;
};
}
16 changes: 16 additions & 0 deletions pkgs/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,22 @@ in
}
}:
let self = {
# TODO-EXTERNAL:
# Remove bitcoin and bitcoind 26.x packages and replace with 27.0 from nixpkgs
# when a version of lnd is released that is compatible with 27.0
# (https://github.com/lightningnetwork/lnd/pull/8664).
bitcoin = let inherit (pkgsUnstable) libsForQt5 stdenv darwin; in
libsForQt5.callPackage ./bitcoin {
stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
withGui = true;
inherit (darwin) autoSignDarwinBinariesHook;
};

bitcoind = let inherit (pkgsUnstable) callPackage darwin; in
callPackage ./bitcoin {
withGui = false;
inherit (darwin) autoSignDarwinBinariesHook;
};
clightning-rest = pkgs.callPackage ./clightning-rest { inherit (self) fetchNodeModules; };
clboss = pkgs.callPackage ./clboss { };
clightning-plugins = pkgs.recurseIntoAttrs (import ./clightning-plugins pkgs self.nbPython3Packages);
Expand Down
2 changes: 0 additions & 2 deletions pkgs/pinned.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
pkgs: pkgsUnstable:
{
inherit (pkgs)
bitcoin
bitcoind
charge-lnd
electrs
extra-container
Expand Down
6 changes: 3 additions & 3 deletions test/nixos-search/flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion test/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ def _():
'"version"',
)
# Test web server response
assert_matches(f"curl -fsS -L {ip('btcpayserver')}:23000", "Welcome to your BTCPay Server")
assert_matches(f"curl -fsS -L {ip('btcpayserver')}:23000", "Welcome to your BTCPay Server")

@test("rtl")
def _():
Expand Down