Accepting request 973243 from home:develop7:branches:network:cryptocurrencies

+ 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

OBS-URL: https://build.opensuse.org/request/show/973243
OBS-URL: https://build.opensuse.org/package/show/network:cryptocurrencies/bitcoin?expand=0&rev=45
This commit is contained in:
Martin Pluskal 2022-04-28 06:21:59 +00:00 committed by Git OBS Bridge
parent b3b3a3975f
commit 6cfd88aaf9
5 changed files with 186 additions and 49 deletions

View File

@ -1,36 +0,0 @@
From dc5d6b0d4793ca978f71f69ef7d6b818794676c2 Mon Sep 17 00:00:00 2001
From: Andrew Chow <achow101-github@achow101.com>
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;

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4146f751fc5691bdcf911cbdb8d32d8d25c297d29d58173227ae1ae6438edb9e
size 7762621

3
bitcoin-22.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d0e9d089b57048b1555efa7cd5a63a7ed042482045f6f33402b1df425bf9613b
size 7972234

View File

@ -1,3 +1,159 @@
-------------------------------------------------------------------
Fri Apr 22 13:11:18 UTC 2022 - Andrei Dziahel <develop7@develop7.info>
+ 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=<network>` 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 <bwiedemann@suse.com>

View File

@ -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 <prusnak@opensuse.org>
#
# 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