Diff bitcoin-qt-22.0-r1 with a bitcoin-qt-24.0.1

/usr/portage/net-p2p/bitcoin-qt/bitcoin-qt-24.0.1.ebuild 2023-10-09 14:52:34.736368482 +0300
1 1
# Copyright 1999-2023 Gentoo Authors
2 2
# Distributed under the terms of the GNU General Public License v2
3 3

  
4
EAPI=7
4
EAPI=8
5 5

  
6 6
DB_VER="4.8"
7
inherit autotools bash-completion-r1 db-use desktop flag-o-matic xdg-utils
8

  
9
BITCOINCORE_COMMITHASH="a0988140b71485ad12c3c3a4a9573f7c21b1eff8"
10
KNOTS_PV="${PV}.knots20211108"
11
KNOTS_P="bitcoin-${KNOTS_PV}"
7
inherit autotools bash-completion-r1 db-use desktop xdg
12 8

  
13 9
DESCRIPTION="An end-user Qt GUI for the Bitcoin crypto-currency"
14
HOMEPAGE="https://bitcoincore.org/ https://bitcoinknots.org/"
10
HOMEPAGE="https://bitcoincore.org/"
15 11
SRC_URI="
16
	https://github.com/bitcoin/bitcoin/archive/${BITCOINCORE_COMMITHASH}.tar.gz -> bitcoin-v${PV}.tar.gz
17
	https://bitcoinknots.org/files/$(ver_cut 1).x/${KNOTS_PV}/${KNOTS_P}.patches.txz -> ${KNOTS_P}.patches.tar.xz
12
	https://bitcoincore.org/bin/bitcoin-core-${PV}/${P/-qt}.tar.gz
18 13
"
14
S="${WORKDIR}"/${P/-qt}
19 15

  
20 16
LICENSE="MIT"
21 17
SLOT="0"
22
KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
23

  
24
IUSE="+asm +berkdb dbus +external-signer kde knots nat-pmp +qrcode sqlite systemtap test upnp +wallet zeromq"
18
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
19
IUSE="+asm +berkdb dbus +external-signer kde nat-pmp +qrcode sqlite systemtap test upnp +wallet zeromq"
25 20
RESTRICT="!test? ( test )"
26 21

  
27 22
REQUIRED_USE="
......
29 24
	berkdb? ( wallet )
30 25
	wallet? ( || ( berkdb sqlite ) )
31 26
"
27
# dev-libs/univalue is now bundled as upstream dropped support for system copy
28
# and their version in the Bitcoin repo has deviated a fair bit from upstream.
29
# Upstream also seems very inactive.
32 30
RDEPEND="
33 31
	dev-libs/boost:=
34
	>dev-libs/libsecp256k1-0.1_pre20200911:0/0[recovery,schnorr]
35
	!>=dev-libs/libsecp256k1-0.1_pre20210628
36
	>=dev-libs/univalue-1.0.4:=
32
	>=dev-libs/libsecp256k1-0.2.0:=[recovery,schnorr]
37 33
	dev-qt/qtcore:5
38 34
	dev-qt/qtgui:5
39 35
	dev-qt/qtnetwork:5
......
50 46
	berkdb? ( sys-libs/db:$(db_ver_to_slot "${DB_VER}")=[cxx] )
51 47
	zeromq? ( net-libs/zeromq:= )
52 48
"
53
DEPEND="${RDEPEND}
49
DEPEND="
50
	${RDEPEND}
54 51
	systemtap? ( dev-util/systemtap )
55 52
"
56
BDEPEND="
57
	>=sys-devel/automake-1.13
58
	|| ( >=sys-devel/gcc-7[cxx] >=sys-devel/clang-5 )
59
	dev-qt/linguist-tools:5
60
	knots? (
61
		gnome-base/librsvg
62
		media-gfx/imagemagick[png]
63
	)
64
"
53
BDEPEND="dev-qt/linguist-tools:5"
65 54

  
66 55
DOCS=(
67 56
	doc/bips.md
......
77 66
	doc/tor.md
78 67
)
79 68

  
80
S="${WORKDIR}/bitcoin-${BITCOINCORE_COMMITHASH}"
69
PATCHES=(
70
	"${FILESDIR}"/24.0.1-syslibs.patch
71
	"${FILESDIR}"/24.0.1-gcc13.patch
72
)
81 73

  
82 74
pkg_pretend() {
83
	if use knots; then
84
		elog "You are building ${PN} from Bitcoin Knots."
85
		elog "For more information, see:"
86
		elog "https://bitcoinknots.org/files/22.x/${KNOTS_PV}/${KNOTS_P}.desc.html"
87
	else
88
		elog "You are building ${PN} from Bitcoin Core."
89
		elog "For more information, see:"
90
		elog "https://bitcoincore.org/en/2021/09/13/release-${PV}/"
91
	fi
92
	elog
93
	elog "Replace By Fee policy is now always enabled by default: Your node will"
94
	elog "preferentially mine and relay transactions paying the highest fee, regardless"
95
	if use knots; then
96
		elog "of receive order. To disable RBF, set mempoolreplacement=never in bitcoin.conf"
97
	else  # Bitcoin Core doesn't support disabling RBF anymore
98
		elog "of receive order. To disable RBF, rebuild with USE=knots to get ${PN}"
99
		elog "from Bitcoin Knots, and set mempoolreplacement=never in bitcoin.conf"
100
	fi
101
	if has_version "<${CATEGORY}/${PN}-0.21.1" ; then
102
		ewarn "CAUTION: BITCOIN PROTOCOL CHANGE INCLUDED"
103
		ewarn "This release adds enforcement of the Taproot protocol change to the Bitcoin"
104
		ewarn "rules, beginning in November. Protocol changes require user consent to be"
105
		ewarn "effective, and if enforced inconsistently within the community may compromise"
106
		ewarn "your security or others! If you do not know what you are doing, learn more"
107
		ewarn "before November. (You must make a decision either way - simply not upgrading"
108
		ewarn "is insecure in all scenarios.)"
109
		ewarn "To learn more, see https://bitcointaproot.cc"
110
	fi
111

  
112
	if [[ ${MERGE_TYPE} != "binary" ]] ; then
113
		if ! test-flag-CXX -std=c++17 ; then
114
			die "Building ${CATEGORY}/${P} requires at least GCC 7 or Clang 5"
115
		fi
116
	fi
75
	elog "You are building ${PN} from Bitcoin Core."
76
	elog "For more information, see:"
77
	elog "https://bitcoincore.org/en/releases/${PV}/"
117 78
}
118 79

  
119 80
src_prepare() {
......
122 83
	# Save the generic icon for later
123 84
	cp src/qt/res/src/bitcoin.svg bitcoin128.svg || die
124 85

  
125
	local knots_patchdir="${WORKDIR}/${KNOTS_P}.patches/"
126

  
127
	eapply "${knots_patchdir}/${KNOTS_P}_p1-syslibs.patch"
128

  
129
	if use knots; then
130
		eapply "${knots_patchdir}/${KNOTS_P}_p2-fixes.patch"
131
		eapply "${knots_patchdir}/${KNOTS_P}_p3-features.patch"
132
		eapply "${knots_patchdir}/${KNOTS_P}_p4-branding.patch"
133
		eapply "${knots_patchdir}/${KNOTS_P}_p5-ts.patch"
134
	fi
135

  
136
	eapply_user
86
	default
137 87

  
138 88
	eautoreconf
89

  
139 90
	rm -r src/leveldb src/secp256k1 || die
140 91
}
141 92

  
142 93
src_configure() {
143
	local my_econf=(
94
	local myeconfargs=(
144 95
		$(use_enable asm)
145 96
		$(use_with dbus qtdbus)
146 97
		$(use_enable systemtap ebpf)
......
169 120
		$(use_with sqlite)
170 121
		--with-system-leveldb
171 122
		--with-system-libsecp256k1
172
		--with-system-univalue
173 123
	)
174
	econf "${my_econf[@]}"
124

  
125
	econf "${myeconfargs[@]}"
175 126
}
176 127

  
177 128
src_install() {
......
179 130

  
180 131
	if use test; then
181 132
		rm -f "${ED}/usr/bin/test_bitcoin" || die
133
		rm -f "${ED}/usr/bin/test_bitcoin-qt" || die
182 134
	fi
183 135

  
184 136
	insinto /usr/share/icons/hicolor/scalable/apps/
185 137
	doins bitcoin128.svg
186
	if use knots; then
187
		newins src/qt/res/src/bitcoin.svg bitcoinknots.svg
188
	fi
189 138

  
190 139
	cp "${FILESDIR}/org.bitcoin.bitcoin-qt.desktop" "${T}" || die
191
	if ! use knots; then
192
		sed -i 's/Knots/Core/;s/^\(Icon=\).*$/\1bitcoin128/' "${T}/org.bitcoin.bitcoin-qt.desktop" || die
193
	fi
140
	sed -i 's/Knots/Core/;s/^\(Icon=\).*$/\1bitcoin128/' "${T}/org.bitcoin.bitcoin-qt.desktop" || die
194 141
	domenu "${T}/org.bitcoin.bitcoin-qt.desktop"
195 142

  
196 143
	use zeromq && dodoc doc/zmq.md
......
204 151
	fi
205 152
}
206 153

  
207
update_caches() {
208
	xdg_icon_cache_update
209
	xdg_desktop_database_update
210
}
211

  
212 154
pkg_postinst() {
213
	update_caches
155
	xdg_pkg_postinst
214 156

  
215 157
	elog "To have ${PN} automatically use Tor when it's running, be sure your"
216 158
	elog "'torrc' config file has 'ControlPort' and 'CookieAuthentication' setup"
217 159
	elog "correctly, and add your user to the 'tor' user group."
218 160
}
219

  
220
pkg_postrm() {
221
	update_caches
222
}
Thank you!