diff --git a/flake.lock b/flake.lock index 3c0b06ab8..240b3c337 100644 --- a/flake.lock +++ b/flake.lock @@ -43,11 +43,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1713344939, - "narHash": "sha256-jpHkAt0sG2/J7ueKnG7VvLLkBYUMQbXQ2L8OBpVG53s=", + "lastModified": 1714782413, + "narHash": "sha256-tbg0MEuKaPcUrnmGCu4xiY5F+7LW2+ECPKVAJd2HLwM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e402c3eb6d88384ca6c52ef1c53e61bdc9b84ddd", + "rev": "651b4702e27a388f0f18e1b970534162dec09aff", "type": "github" }, "original": { @@ -59,11 +59,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1713562564, - "narHash": "sha256-NQpYhgoy0M89g9whRixSwsHb8RFIbwlxeYiVSDwSXJg=", + "lastModified": 1714809261, + "narHash": "sha256-hfBmnYFyz9I1mdrC3tX1A+dF9cOUcds5PIMPxrT+cRk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "92d295f588631b0db2da509f381b4fb1e74173c5", + "rev": "d32560238207b8e26d88b265207b216ee46b8450", "type": "github" }, "original": { diff --git a/helper/update-flake.sh b/helper/update-flake.sh index 1a5b05b5c..9bbfd4abf 100755 --- a/helper/update-flake.sh +++ b/helper/update-flake.sh @@ -39,8 +39,22 @@ if [[ $forceRun ]] && ! git diff --quiet ../flake.{nix,lock}; then exit 1 fi +# Support Nix >2.18 +{ + versionGreaterThan() { + [[ $1 != $(echo -e "$1\n$2" | sort -V | head -n1) ]] + } + nixVersion=$(nix --version | cut -d\ -f 3) + if versionGreaterThan "$nixVersion" 2.18; then + # https://nixos.org/manual/nix/stable/release-notes/rl-2.19#:~:text=nix%20flake%20update + nixUpdateArg=--flake + else + nixUpdateArg= + fi +} + echo "Updating flake 'nixos-search'" -nix flake update ../test/nixos-search +nix flake update $nixUpdateArg ../test/nixos-search echo versions=$(nix eval --json -f update-flake.nix versions) @@ -52,7 +66,7 @@ echo "Updating main flake" if [[ $nixosVersion ]]; then sed -Ei "s|(nixpkgs.url = .*nixos-)[^\"]+|\1$nixosVersion|" ../flake.nix fi -nix flake update .. +nix flake update $nixUpdateArg .. echo nix eval --raw -f update-flake.nix --argstr prevVersions "$versions" showUpdates; echo diff --git a/pkgs/bitcoin/default.nix b/pkgs/bitcoin/default.nix deleted file mode 100644 index 8d8f8c89c..000000000 --- a/pkgs/bitcoin/default.nix +++ /dev/null @@ -1,124 +0,0 @@ -# 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; - }; -} diff --git a/pkgs/default.nix b/pkgs/default.nix index 94d6e1698..327ed1a0e 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -10,22 +10,6 @@ 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); diff --git a/pkgs/pinned.nix b/pkgs/pinned.nix index 4ad418ba9..20a217ad7 100644 --- a/pkgs/pinned.nix +++ b/pkgs/pinned.nix @@ -10,6 +10,8 @@ pkgs: pkgsUnstable: lndconnect; inherit (pkgsUnstable) + bitcoin + bitcoind btcpayserver clightning elementsd diff --git a/test/nixos-search/flake.lock b/test/nixos-search/flake.lock index 08bcda5d6..db1842523 100644 --- a/test/nixos-search/flake.lock +++ b/test/nixos-search/flake.lock @@ -39,11 +39,11 @@ "npmlock2nix": "npmlock2nix" }, "locked": { - "lastModified": 1713242159, - "narHash": "sha256-3rZnNNdTDWb5uUHUetY5woURdcnChCik7gd0UfT0fvA=", + "lastModified": 1714664183, + "narHash": "sha256-qceVzCWtdfEvfNgAnhf+X4CfaEJ3XjC1bBVvX3dTH1I=", "owner": "nixos", "repo": "nixos-search", - "rev": "7bdc02cc99a5f293a127048f59b5bf0ae0d6ff24", + "rev": "0c6625918268410ed0f62731b865284536bf91ce", "type": "github" }, "original": {