Skip to content

Commit

Permalink
Merge #690: update nixpkgs
Browse files Browse the repository at this point in the history
97eaa5a update nixpkgs (Jonas Nick)

Pull request description:

ACKs for top commit:
  erikarvstedt:
    ACK 97eaa5a

Tree-SHA512: 2442091150834fce92245b26194b23aa9496cc840651a4b52db9aca4aa83feb7809414fe750558fad5bb7d65b209caef99dfc4351278640ed9f6841710fa2598
  • Loading branch information
jonasnick committed Apr 21, 2024
2 parents fcb7dc4 + 97eaa5a commit 8ff709e
Show file tree
Hide file tree
Showing 6 changed files with 150 additions and 12 deletions.
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

0 comments on commit 8ff709e

Please sign in to comment.