commit:     97ae9fec512f106876f53286b153de15266e0949
Author:     Matt Whitlock <gentoo <AT> mattwhitlock <DOT> name>
AuthorDate: Sat Apr 12 14:22:20 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Apr 20 08:11:30 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=97ae9fec

net-p2p/bitcoin-core: bump to 29.0

* switch to CMake build system
* add IUSE="asm" to toggle building libsecp256k1 with assembly optimizations
* apply upstream patch to build GUI against Qt 6
* remove blockers from DEPEND
* drop IUSE="man"; force installing of man pages per Gentoo policy
* drop IUSE="kde"; omit unneeded KIO .protocol file
* add USE="qrcode" to profiles/targets/desktop/packages.use

See: https://github.com/gentoo/gentoo/pull/41395
See: https://github.com/bitcoin/bitcoin/releases/tag/v29.0
Signed-off-by: Matt Whitlock <gentoo <AT> mattwhitlock.name>
Closes: https://github.com/gentoo/gentoo/pull/41558
Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-p2p/bitcoin-core/Manifest                      |  3 +-
 ...re-29.0_rc2.ebuild => bitcoin-core-29.0.ebuild} | 40 ++++++++--------------
 profiles/arch/amd64/package.use                    |  3 +-
 profiles/arch/amd64/package.use.mask               |  2 ++
 profiles/arch/arm/package.use.mask                 |  2 ++
 profiles/arch/base/package.use.mask                |  2 ++
 profiles/targets/desktop/package.use               |  6 ++++
 7 files changed, 31 insertions(+), 27 deletions(-)

diff --git a/net-p2p/bitcoin-core/Manifest b/net-p2p/bitcoin-core/Manifest
index b3d48f6bcca4..71162880c567 100644
--- a/net-p2p/bitcoin-core/Manifest
+++ b/net-p2p/bitcoin-core/Manifest
@@ -1,2 +1,3 @@
 DIST bitcoin-core-28.1.tar.gz 12601466 BLAKE2B 
f6dd3c269b0e132798b3bea96a122a89b95e7544f01fd3401bfc2fd1ef11fc847a3570f8d5c0339778df0a3ecf17cf49af4148c2f68d7719d6f85ac2688e9d3c
 SHA512 
859c5f0b2f927969766d3ebde64173469e5810694ba317629fac64c66311d847698ae093dbf585e327cf4e75983b722ff45a23ed3fe6f1f13752db4cf6846aa9
-DIST bitcoin-core-29.0_rc2.tar.gz 12927429 BLAKE2B 
4d207fd7992f10804a45ef5890a35937875c95c9c202701a6dceed5addaa307d9a0f54fd749d6cc0780cdbcabed21a3742e02b58e14dd7dbc40ac2e45fff2276
 SHA512 
8896eaa0ee6199b5193d68339567cfa774e336506bc18153db1b57c589f4dff71a680a3a1a10781bfc496656c7ec3cb1d4510fa9fbea1cec57ea2d7be5b598c0
+DIST bitcoin-core-29.0-qt6.patch 16090 BLAKE2B 
cfa30f07cb9aad43092598d9b7ab45062b41e5c68836e81199f9d5fc32531239b7dffa9680370808e02953d76c6001f79c2f2558def101c0195e97d8bd978e49
 SHA512 
f8e79a7a90e423a649baccbd89dc4bbaa6f40e4b327ace5a44b183ac363281c5e6e263406daff6f390af4e202c98bff115511ac3a334bcd81af42af6e97e5f24
+DIST bitcoin-core-29.0.tar.gz 12931219 BLAKE2B 
ee4a9b67ceb3e7a1851f844a090a099267798f83fbeb4fb76e0dd30ec24ce3fb967ab032179492cb8c02f0e470b3c2546ad589f940487bb0a0cc4d469bf3e1f9
 SHA512 
1373348fff7ac978fd28a8e29eda9ba9af745f947153a2c6c099b1e997d0d55611627f4c5299e350be3a9b555406da6bf056d2c5f6c123077e2872f5db7b3459

diff --git a/net-p2p/bitcoin-core/bitcoin-core-29.0_rc2.ebuild 
b/net-p2p/bitcoin-core/bitcoin-core-29.0.ebuild
similarity index 94%
rename from net-p2p/bitcoin-core/bitcoin-core-29.0_rc2.ebuild
rename to net-p2p/bitcoin-core/bitcoin-core-29.0.ebuild
index e4a12af72175..beb2264add1e 100644
--- a/net-p2p/bitcoin-core/bitcoin-core-29.0_rc2.ebuild
+++ b/net-p2p/bitcoin-core/bitcoin-core-29.0.ebuild
@@ -11,6 +11,7 @@ DESCRIPTION="Reference implementation of the Bitcoin 
cryptocurrency"
 HOMEPAGE="https://bitcoincore.org/";
 SRC_URI="
        https://github.com/bitcoin/bitcoin/archive/v${PV/_rc/rc}.tar.gz -> 
${P}.tar.gz
+       
https://github.com/bitcoin/bitcoin/pull/30997/commits/f9472962d1cdf58bfc1ad64c4bb44ddf5d0b4db2.patch?full_index=1
 -> ${PN}-29.0-qt6.patch
 "
 S="${WORKDIR}/${PN/-core}-${PV/_rc/rc}"
 
@@ -19,44 +20,42 @@ SLOT="0"
 if [[ "${PV}" != *_rc* ]] ; then
        KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
 fi
-IUSE="+asm +berkdb +cli +daemon dbus examples +external-signer gui kde +man 
+qrcode +sqlite +system-libsecp256k1 systemtap test test-full zeromq"
+IUSE="asm +berkdb +cli +daemon dbus examples +external-signer gui qrcode 
+sqlite +system-libsecp256k1 systemtap test test-full zeromq"
 RESTRICT="!test? ( test )"
 
 REQUIRED_USE="
        dbus? ( gui )
-       kde? ( gui )
        qrcode? ( gui )
        test-full? ( test )
 "
 # dev-libs/univalue is now bundled, as upstream dropped support for system copy
 # and their version in the Bitcoin repo has deviated a fair bit from upstream.
 # Upstream also seems very inactive.
-RDEPEND="
-       !dev-util/bitcoin-tx
+COMMON_DEPEND="
        >=dev-libs/boost-1.81.0:=
        >=dev-libs/libevent-2.1.12:=
        berkdb? ( >=sys-libs/db-4.8.30:$(db_ver_to_slot 4.8)=[cxx] )
-       cli? ( !net-p2p/bitcoin-cli )
        daemon? (
-               !net-p2p/bitcoind
                acct-group/bitcoin
                acct-user/bitcoin
        )
        gui? (
-               !net-p2p/bitcoin-qt
-               >=dev-qt/qtcore-5.15.16:5
-               >=dev-qt/qtgui-5.15.16:5
-               >=dev-qt/qtnetwork-5.15.16:5
-               >=dev-qt/qtwidgets-5.15.16:5
-               dbus? ( >=dev-qt/qtdbus-5.15.16:5 )
+               >=dev-qt/qtbase-6.2:6[dbus?,gui,network,widgets]
        )
        qrcode? ( >=media-gfx/qrencode-4.1.1:= )
        sqlite? ( >=dev-db/sqlite-3.38.5:= )
        system-libsecp256k1? ( 
>=dev-libs/libsecp256k1-0.6.0:=[asm=,ellswift,extrakeys,recovery,schnorr] )
        zeromq? ( >=net-libs/zeromq-4.3.4:= )
 "
+RDEPEND="
+       ${COMMON_DEPEND}
+       !dev-util/bitcoin-tx
+       cli? ( !net-p2p/bitcoin-cli )
+       daemon? ( !net-p2p/bitcoind )
+       gui? ( !net-p2p/bitcoin-qt )
+"
 DEPEND="
-       ${RDEPEND}
+       ${COMMON_DEPEND}
        systemtap? ( >=dev-debug/systemtap-4.8 )
 "
 BDEPEND="
@@ -66,10 +65,9 @@ BDEPEND="
                acct-group/bitcoin
                acct-user/bitcoin
        )
-       gui? ( >=dev-qt/linguist-tools-5.15.16:5 )
+       gui? ( >=dev-qt/qttools-6.2:6[linguist] )
        test? (
                ${PYTHON_DEPS}
-               gui? ( >=dev-qt/qttest-5.15.16:5 )
        )
 "
 IDEPEND="
@@ -94,6 +92,7 @@ DOCS=(
 )
 
 PATCHES=(
+       "${DISTDIR}/${PN}-29.0-qt6.patch"
        "${FILESDIR}/29.0-cmake-syslibs.patch"
        "${FILESDIR}/26.0-init.patch"
 )
@@ -155,6 +154,7 @@ src_prepare() {
 src_configure() {
        local wallet ; if use berkdb || use sqlite ; then wallet=ON ; else 
wallet=OFF ; fi
        local mycmakeargs=(
+               -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON
                -DBUILD_SHARED_LIBS=ON
                -DENABLE_WALLET=${wallet}
                -DWITH_SQLITE=$(usex sqlite)
@@ -166,7 +166,6 @@ src_configure() {
                -DWITH_QRENCODE=$(usex qrcode)
                -DWITH_CCACHE=OFF
                -DWITH_ZMQ=$(usex zeromq)
-               -DINSTALL_MAN=$(usex man)
                -DENABLE_EXTERNAL_SIGNER=$(usex external-signer)
                -DBUILD_CLI=$(usex cli)
                -DBUILD_TX=ON
@@ -252,11 +251,6 @@ src_install() {
                newins src/qt/res/src/bitcoin.svg bitcoin128.svg
 
                domenu "${FILESDIR}/org.bitcoin.bitcoin-qt.desktop"
-
-               if use kde ; then
-                       insinto /usr/share/kservices5
-                       doins "${FILESDIR}/bitcoin-qt.protocol"
-               fi
        fi
 
        if use examples ; then
@@ -285,10 +279,6 @@ pkg_preinst() {
                        dosym -r /var/lib/bitcoin{/.bitcoin,d}
                fi
        fi
-
-       if use kde && [[ -d "${EROOT}/usr/share/kde4" ]] ; then
-               dosym -r 
/usr/share/{kservices5,kde4/services}/bitcoin-qt.protocol
-       fi
 }
 
 pkg_postinst() {

diff --git a/profiles/arch/amd64/package.use b/profiles/arch/amd64/package.use
index eb73ee985cec..4d23f6bdab88 100644
--- a/profiles/arch/amd64/package.use
+++ b/profiles/arch/amd64/package.use
@@ -1,10 +1,11 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # Matt Whitlock <[email protected]> (2024-11-06)
 # Assembly optimization is experimental except on amd64, so we leave it
 # disabled by default on all other arches. Bug #941226
 dev-libs/libsecp256k1 asm
+net-p2p/bitcoin-core asm
 
 # Michał Górny <[email protected]> (2024-09-04)
 # Build with debugging support by default to facilitate dev-debug/dtrace

diff --git a/profiles/arch/amd64/package.use.mask 
b/profiles/arch/amd64/package.use.mask
index 7d7aae672e9b..6dccd5a05794 100644
--- a/profiles/arch/amd64/package.use.mask
+++ b/profiles/arch/amd64/package.use.mask
@@ -432,8 +432,10 @@ app-admin/rsyslog -imhttp -mdblookup
 dev-lang/ocaml -spacetime
 
 # Luke Dashjr <[email protected]> (2017-01-04)
+# Matt Whitlock <[email protected]> (2025-04-12)
 # Assembly optimisations are supported on amd64 for all versions
 dev-libs/libsecp256k1 -asm
+net-p2p/bitcoin-core -asm
 
 # Andreas Sturmlechner <[email protected]> (2016-12-31)
 # on behalf of Andreas K. Hüttel <[email protected]> (2016-12-14)

diff --git a/profiles/arch/arm/package.use.mask 
b/profiles/arch/arm/package.use.mask
index 481c9b17863f..50965ff81fd9 100644
--- a/profiles/arch/arm/package.use.mask
+++ b/profiles/arch/arm/package.use.mask
@@ -339,8 +339,10 @@ app-metrics/collectd -collectd_plugins_mqtt
 sys-cluster/openmpi openmpi_fabrics_knem openmpi_fabrics_ofed openmpi_rm_pbs 
openmpi_ofed_features_rdmacm openmpi_ofed_features_control-hdr-padding 
openmpi_ofed_features_udcm openmpi_ofed_features_dynamic-sl
 
 # Luke Dashjr <[email protected]> (2017-01-04)
+# Matt Whitlock <[email protected]> (2025-04-12)
 # Assembly optimisations are supported on arm since 0.0.0_pre20161213
 dev-libs/libsecp256k1 -asm
+net-p2p/bitcoin-core -asm
 
 # James Le Cuirot <[email protected]> (2016-12-14)
 # DOSBox + OpenGLide is untested on this arch.

diff --git a/profiles/arch/base/package.use.mask 
b/profiles/arch/base/package.use.mask
index 6f6350d35736..bf117c729534 100644
--- a/profiles/arch/base/package.use.mask
+++ b/profiles/arch/base/package.use.mask
@@ -402,8 +402,10 @@ app-admin/rsyslog imhttp mdblookup
 dev-lang/ocaml spacetime
 
 # Luke Dashjr <[email protected]> (2017-01-04)
+# Matt Whitlock <[email protected]> (2025-04-12)
 # Mask assembly optimisations that are platform-specific
 dev-libs/libsecp256k1 asm
+net-p2p/bitcoin-core asm
 
 # Ettore Di Giacinto <[email protected]> (2016-10-18)
 # Enable gambit and scm only on supported arches

diff --git a/profiles/targets/desktop/package.use 
b/profiles/targets/desktop/package.use
index 82b89cf299d4..19128617041d 100644
--- a/profiles/targets/desktop/package.use
+++ b/profiles/targets/desktop/package.use
@@ -1,6 +1,12 @@
 # Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
+# Matt Whitlock <[email protected]> (2025-04-03)
+# Desktop users will probably want QR code scanning in Bitcoin-Qt, but
+# enabling USE=qrcode by default in the ebuild requires also enabling
+# USE=gui, which pulls in Qt that is likely not wanted on servers.
+net-p2p/bitcoin-core qrcode
+
 # Filip Kobierski <[email protected]> (2025-02-27)
 # Most desktop users will get doxygen because a USE=doc dep.
 # With USE=gui, which is the default for this profile, it pulls in

Reply via email to