diff --git a/24104.patch b/24104.patch deleted file mode 100644 index 01ce9bd..0000000 --- a/24104.patch +++ /dev/null @@ -1,36 +0,0 @@ -From dc5d6b0d4793ca978f71f69ef7d6b818794676c2 Mon Sep 17 00:00:00 2001 -From: Andrew Chow -Date: Wed, 19 Jan 2022 15:21:25 -0500 -Subject: [PATCH] fs: Make compatible with boost 1.78 - ---- - src/wallet/load.cpp | 2 +- - test/functional/wallet_multiwallet.py | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -Index: bitcoin-0.21.2/test/functional/wallet_multiwallet.py -=================================================================== ---- bitcoin-0.21.2.orig/test/functional/wallet_multiwallet.py -+++ bitcoin-0.21.2/test/functional/wallet_multiwallet.py -@@ -138,7 +138,7 @@ class MultiWalletTest(BitcoinTestFramewo - - # should raise rpc error if wallet path can't be created - err_code = -4 if self.options.descriptors else -1 -- assert_raises_rpc_error(err_code, "boost::filesystem::create_directory:", self.nodes[0].createwallet, "w8/bad") -+ assert_raises_rpc_error(err_code, "boost::filesystem::create_director", self.nodes[0].createwallet, "w8/bad") - - # check that all requested wallets were created - self.stop_node(0) -Index: bitcoin-0.21.2/src/wallet/load.cpp -=================================================================== ---- bitcoin-0.21.2.orig/src/wallet/load.cpp -+++ bitcoin-0.21.2/src/wallet/load.cpp -@@ -22,7 +22,7 @@ bool VerifyWallets(interfaces::Chain& ch - fs::path wallet_dir = gArgs.GetArg("-walletdir", ""); - boost::system::error_code error; - // The canonical path cleans the path, preventing >1 Berkeley environment instances for the same directory -- fs::path canonical_wallet_dir = fs::canonical(wallet_dir, error); -+ fs::path canonical_wallet_dir = fs::canonical(wallet_dir, error).remove_trailing_separator(); - if (error || !fs::exists(wallet_dir)) { - chain.initError(strprintf(_("Specified -walletdir \"%s\" does not exist"), wallet_dir.string())); - return false; diff --git a/bitcoin-0.21.2.tar.gz b/bitcoin-0.21.2.tar.gz deleted file mode 100644 index 8147dbf..0000000 --- a/bitcoin-0.21.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4146f751fc5691bdcf911cbdb8d32d8d25c297d29d58173227ae1ae6438edb9e -size 7762621 diff --git a/bitcoin-22.0.tar.gz b/bitcoin-22.0.tar.gz new file mode 100644 index 0000000..73d790b --- /dev/null +++ b/bitcoin-22.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0e9d089b57048b1555efa7cd5a63a7ed042482045f6f33402b1df425bf9613b +size 7972234 diff --git a/bitcoin.changes b/bitcoin.changes index 812bcab..648fec8 100644 --- a/bitcoin.changes +++ b/bitcoin.changes @@ -1,3 +1,159 @@ +------------------------------------------------------------------- +Fri Apr 22 13:11:18 UTC 2022 - Andrei Dziahel + ++ disabled tests to fix Tumbleweed build + ++ updated source tarball URL per the upstream recommendation + ++ drop 24104.patch: fixed upstream + ++ Update to version 0.22.0 + * P2P and network changes + - Added support for running Bitcoin Core as an + [I2P (Invisible Internet Project)](https://en.wikipedia.org/wiki/I2P) service + and connect to such services. See [i2p.md](https://github.com/bitcoin/bitcoin/blob/22.x/doc/i2p.md) for details. (#20685) + - This release removes support for Tor version 2 hidden services in favor of Tor + v3 only, as the Tor network [dropped support for Tor + v2](https://blog.torproject.org/v2-deprecation-timeline) with the release of + Tor version 0.4.6. Henceforth, Bitcoin Core ignores Tor v2 addresses; it + neither rumors them over the network to other peers, nor stores them in memory + or to `peers.dat`. (#22050) + - Added NAT-PMP port mapping support via + [`libnatpmp`](https://miniupnp.tuxfamily.org/libnatpmp.html). (#18077) + * New and Updated RPCs + - Due to [BIP 350](https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki) + being implemented, behavior for all RPCs that accept addresses is changed when + a native witness version 1 (or higher) is passed. These now require a Bech32m + encoding instead of a Bech32 one, and Bech32m encoding will be used for such + addresses in RPC output as well. No version 1 addresses should be created + for mainnet until consensus rules are adopted that give them meaning + (as will happen through [BIP 341](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki)). + Once that happens, Bech32m is expected to be used for them, so this shouldn't + affect any production systems, but may be observed on other networks where such + addresses already have meaning (like signet). (#20861) + - The `getpeerinfo` RPC returns two new boolean fields, `bip152_hb_to` and + `bip152_hb_from`, that respectively indicate whether we selected a peer to be + in compact blocks high-bandwidth mode or whether a peer selected us as a + compact blocks high-bandwidth peer. High-bandwidth peers send new block + announcements via a `cmpctblock` message rather than the usual inv/headers + announcements. See BIP 152 for more details. (#19776) + - `getpeerinfo` no longer returns the following fields: `addnode`, `banscore`, + and `whitelisted`, which were previously deprecated in 0.21. Instead of + `addnode`, the `connection_type` field returns manual. Instead of + `whitelisted`, the `permissions` field indicates if the peer has special + privileges. The `banscore` field has simply been removed. (#20755) + - The following RPCs: `gettxout`, `getrawtransaction`, `decoderawtransaction`, + `decodescript`, `gettransaction`, and REST endpoints: `/rest/tx`, + `/rest/getutxos`, `/rest/block` deprecated the following fields (which are no + longer returned in the responses by default): `addresses`, `reqSigs`. + The `-deprecatedrpc=addresses` flag must be passed for these fields to be + included in the RPC response. This flag/option will be available only for this major release, after which + the deprecation will be removed entirely. Note that these fields are attributes of + the `scriptPubKey` object returned in the RPC response. However, in the response + of `decodescript` these fields are top-level attributes, and included again as attributes + of the `scriptPubKey` object. (#20286) + - When creating a hex-encoded bitcoin transaction using the `bitcoin-tx` utility + with the `-json` option set, the following fields: `addresses`, `reqSigs` are no longer + returned in the tx output of the response. (#20286) + - The `listbanned` RPC now returns two new numeric fields: `ban_duration` and `time_remaining`. + Respectively, these new fields indicate the duration of a ban and the time remaining until a ban expires, + both in seconds. Additionally, the `ban_created` field is repositioned to come before `banned_until`. (#21602) + - The `setban` RPC can ban onion addresses again. This fixes a regression introduced in version 0.21.0. (#20852) + - The `getnodeaddresses` RPC now returns a "network" field indicating the + network type (ipv4, ipv6, onion, or i2p) for each address. (#21594) + - `getnodeaddresses` now also accepts a "network" argument (ipv4, ipv6, onion, + or i2p) to return only addresses of the specified network. (#21843) + - The `testmempoolaccept` RPC now accepts multiple transactions (still experimental at the moment, + API may be unstable). This is intended for testing transaction packages with dependency + relationships; it is not recommended for batch-validating independent transactions. In addition to + mempool policy, package policies apply: the list cannot contain more than 25 transactions or have a + total size exceeding 101K virtual bytes, and cannot conflict with (spend the same inputs as) each other or + the mempool, even if it would be a valid BIP125 replace-by-fee. There are some known limitations to + the accuracy of the test accept: it's possible for `testmempoolaccept` to return "allowed"=True for a + group of transactions, but "too-long-mempool-chain" if they are actually submitted. (#20833) + - `addmultisigaddress` and `createmultisig` now support up to 20 keys for + Segwit addresses. (#20867) + Changes to Wallet or GUI related RPCs can be found in the GUI or Wallet section below. + + * Build System + - Release binaries are now produced using the new `guix`-based build system. + The [/doc/release-process.md](/doc/release-process.md) document has been updated accordingly. + + * Files + - The list of banned hosts and networks (via `setban` RPC) is now saved on disk + in JSON format in `banlist.json` instead of `banlist.dat`. `banlist.dat` is + only read on startup if `banlist.json` is not present. Changes are only written to the new + `banlist.json`. A future version of Bitcoin Core may completely ignore + `banlist.dat`. (#20966) + + * New settings + - The `-natpmp` option has been added to use NAT-PMP to map the listening port. + If both UPnP and NAT-PMP are enabled, a successful allocation from UPnP + prevails over one from NAT-PMP. (#18077) + + * Updated settings + Changes to Wallet or GUI related settings can be found in the GUI or Wallet section below. + - Passing an invalid `-rpcauth` argument now cause bitcoind to fail to start. (#20461) + + * Tools and Utilities + - A new CLI `-addrinfo` command returns the number of addresses known to the + node per network type (including Tor v2 versus v3) and total. This can be + useful to see if the node knows enough addresses in a network to use options + like `-onlynet=` or to upgrade to this release of Bitcoin Core 22.0 + that supports Tor v3 only. (#21595) + + - A new `-rpcwaittimeout` argument to `bitcoin-cli` sets the timeout + in seconds to use with `-rpcwait`. If the timeout expires, + `bitcoin-cli` will report a failure. (#21056) + + * Wallet + - External signers such as hardware wallets can now be used through the new + RPC methods `enumeratesigners` and `displayaddress`. Support is also added + to the `send` RPC call. This feature is experimental. See + [external-signer.md](https://github.com/bitcoin/bitcoin/blob/22.x/doc/external-signer.md) + for details. (#16546) + - A new `listdescriptors` RPC is available to inspect the contents of descriptor-enabled wallets. + The RPC returns public versions of all imported descriptors, including their timestamp and flags. + For ranged descriptors, it also returns the range boundaries and the next index to generate addresses from. (#20226) + - The `bumpfee` RPC is not available with wallets that have private keys + disabled. `psbtbumpfee` can be used instead. (#20891) + - The `fundrawtransaction`, `send` and `walletcreatefundedpsbt` RPCs now support an `include_unsafe` option + that when `true` allows using unsafe inputs to fund the transaction. + Note that the resulting transaction may become invalid if one of the unsafe inputs disappears. + If that happens, the transaction must be funded with different inputs and republished. (#21359) + - We now support up to 20 keys in `multi()` and `sortedmulti()` descriptors + under `wsh()`. (#20867) + - Taproot descriptors can be imported into the wallet only after activation + has occurred on the network (e.g. mainnet, testnet, signet) in use. See + [descriptors.md](https://github.com/bitcoin/bitcoin/blob/22.x/doc/descriptors.md) + for supported descriptors. + + * GUI changes + - External signers such as hardware wallets can now be used. These require + an external tool such as [HWI](https://github.com/bitcoin-core/HWI) to be + installed and configured under Options -> Wallet. When creating a new + wallet a new option "External signer" will appear in the dialog. If the + device is detected, its name is suggested as the wallet name. The + watch-only keys are then automatically imported. Receive addresses can be + verified on the device. The send dialog will automatically use the + connected device. This feature is experimental and the UI may freeze for + a few seconds when performing these actions. + + * RPC + - The RPC server can process a limited number of simultaneous RPC requests. + Previously, if this limit was exceeded, the RPC server would respond with + [status code 500 (`HTTP_INTERNAL_SERVER_ERROR`)](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#5xx_server_errors). + Now it returns status code 503 (`HTTP_SERVICE_UNAVAILABLE`). (#18335) + + - Error codes have been updated to be more accurate for the following error cases (#18466): + - `signmessage` now returns RPC_INVALID_ADDRESS_OR_KEY (-5) if the + passed address is invalid. Previously returned RPC_TYPE_ERROR (-3). + - `verifymessage` now returns RPC_INVALID_ADDRESS_OR_KEY (-5) if the + passed address is invalid. Previously returned RPC_TYPE_ERROR (-3). + - `verifymessage` now returns RPC_TYPE_ERROR (-3) if the passed signature + is malformed. Previously returned RPC_INVALID_ADDRESS_OR_KEY (-5). + * See release-notes-22.0.md for complete changelog + ------------------------------------------------------------------- Mon Jan 24 05:07:54 UTC 2022 - Bernhard Wiedemann diff --git a/bitcoin.spec b/bitcoin.spec index 604a852..c80a5a8 100644 --- a/bitcoin.spec +++ b/bitcoin.spec @@ -1,7 +1,7 @@ # # spec file for package bitcoin # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # Copyright (c) 2011-2014 P Rusnak # # All modifications and additions to the file contributed by third parties @@ -23,20 +23,25 @@ %define name_pretty %{base_pretty} %define consensus 1 %define is_base 1 +%define shortver 22.0 +# Disable tests on Tumbleweed because of an hard to investigate error +%if 0%{?suse_version} > 1500 +%bcond_with tests +%else +%bcond_without tests +%endif Name: bitcoin -Version: 0.21.2 +Version: 0.%{shortver} Release: 0 Summary: P2P Digital Currency License: MIT Group: Productivity/Networking/Other URL: https://%{name}.org -Source0: https://github.com/%{name}/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz +Source0: https://bitcoincore.org/bin/bitcoin-core-%{shortver}/bitcoin-%{shortver}.tar.gz Source1: %{base}d.service Source3: %{base}d.conf Source4: %{base}.conf Patch0: harden_bitcoind.service.patch -# PATCH-FIX-UPSTREAM: https://github.com/bitcoin/bitcoin/pull/24104 -Patch1: 24104.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: gcc-c++ @@ -79,7 +84,7 @@ several GB of space, slowly growing. Summary: An end-user Qt5 GUI for the %{name_pretty} crypto-currency Group: Development/Libraries/Other Requires(post): update-desktop-files -Requires(postun): update-desktop-files +Requires(postun):update-desktop-files %description qt5 %{name_pretty} is a peer-to-peer electronic cash system @@ -151,6 +156,7 @@ several GB of space, slowly growing. This package provides %{name}d, headless %{name} daemon. +%if 0%{with tests} %package test Summary: Automated tests for %{name} client Group: Development/Libraries/Other @@ -166,9 +172,10 @@ Full transaction history is stored locally at each client. This requires several GB of space, slowly growing. This package provides automated tests for %{name}-qt5 and %{name}d. +%endif %prep -%autosetup -p1 +%autosetup -p1 -n %{name}-%{shortver} %build autoreconf -fiv @@ -195,12 +202,18 @@ export LDFLAGS="-pie" --with-qrencode \ %if %{consensus} == 0 --without-libs \ +%endif +%if 0%{without tests} + --disable-tests \ + --disable-bench \ %endif --disable-hardening %make_build +%if 0%{with tests} %check %make_build LC_ALL=C.UTF-8 check +%endif %install %make_install @@ -281,9 +294,11 @@ systemd-tmpfiles --create %{_tmpfilesdir}/%{name}d.conf >/dev/null 2>&1 || : %{_bindir}/%{name}-cli %{_bindir}/%{name}-tx %{_bindir}/%{name}-wallet -%{_mandir}/man1/bitcoin-cli.1%{?ext_man} -%{_mandir}/man1/bitcoin-tx.1%{?ext_man} -%{_mandir}/man1/bitcoin-wallet.1%{?ext_man} +%{_bindir}/%{name}-util +%{_mandir}/man1/%{name}-cli.1%{?ext_man} +%{_mandir}/man1/%{name}-tx.1%{?ext_man} +%{_mandir}/man1/%{name}-wallet.1%{?ext_man} +%{_mandir}/man1/%{name}-util.1%{?ext_man} %if %{consensus} == 1 %files -n lib%{name}consensus0 @@ -311,11 +326,13 @@ systemd-tmpfiles --create %{_tmpfilesdir}/%{name}d.conf >/dev/null 2>&1 || : %{_sbindir}/rc%{name}d %{_tmpfilesdir}/%{name}d.conf +%if 0%{with tests} %files test %license COPYING %doc doc/README.md doc/release-notes.md %{_bindir}/test_%{name} %{_bindir}/test_%{name}-qt %{_bindir}/bench_%{name} +%endif %changelog