1 |
commit: b3cb7b8967205cf814ab9eadc50aa7466814e4c6 |
2 |
Author: Luke Dashjr <luke-jr+git <AT> utopios <DOT> org> |
3 |
AuthorDate: Mon May 20 03:38:24 2019 +0000 |
4 |
Commit: Craig Andrews <candrews <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Aug 7 16:27:52 2019 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b3cb7b89 |
7 |
|
8 |
net-p2p/bitcoind: Bump to 0.18.0 |
9 |
|
10 |
Closes: https://bugs.gentoo.org/685912 |
11 |
|
12 |
Signed-off-by: Luke Dashjr <luke-jr+git <AT> utopios.org> |
13 |
Signed-off-by: Craig Andrews <candrews <AT> gentoo.org> |
14 |
|
15 |
net-p2p/bitcoind/Manifest | 2 + |
16 |
net-p2p/bitcoind/bitcoind-0.18.0.ebuild | 173 +++++++++++++++++++++ |
17 |
net-p2p/bitcoind/files/0.18.0-daemon-fix.patch | 12 ++ |
18 |
.../bitcoind-0.18.0-raii_event_tests-always.patch | 70 +++++++++ |
19 |
4 files changed, 257 insertions(+) |
20 |
|
21 |
diff --git a/net-p2p/bitcoind/Manifest b/net-p2p/bitcoind/Manifest |
22 |
index c3a90d5a2b6..6498fdc5f9f 100644 |
23 |
--- a/net-p2p/bitcoind/Manifest |
24 |
+++ b/net-p2p/bitcoind/Manifest |
25 |
@@ -1,4 +1,6 @@ |
26 |
DIST bitcoin-0.16.3.knots20180918.patches.tar.xz 466344 BLAKE2B c45b96513e4b6317e6a2a55cc3b47302fbe56fb87717ae0197010694013331b5d071b85a11a73c76f08f39e9f0294d3475e89ee63272047df83893de4dbaa390 SHA512 2c3540acc668aeef4b8f01774219736d95395201ddeaccaf70e0bad4a89f05cdd5ffaf630bae0577656efb3580fae92ce0ee4bb1a720ea757ca59e3fd66e1893 |
27 |
DIST bitcoin-0.17.1.knots20181229.patches.tar.xz 475988 BLAKE2B ce19ccbbeaac48f24b2833858a186494f84cb54ac380c42104f4d16b0a6acb44bc7a83c1b11311e2c566326d7067530ea5f34404def5f22b4825e2fa15aca22d SHA512 da89f9510ee523c712aa137512dda752ab8d115eb8a45a999aa742555621f557694db34162a1f6979922268a3e22563883ea6d9d9a47e5c7613235c0ff06fda0 |
28 |
+DIST bitcoin-0.18.0.knots20190502.patches.tar.xz 400252 BLAKE2B 0303bba89b3595a115ec8e5e743c362fc5feb0072ae493455cf3bcf1085b7f44d6b10142c05cb7ea59fadc630095de3a5f648007eb28f79551f2415db5c4f560 SHA512 b4c30c63cb6c770e04abd18e626db6e095b0d8b5aaf59e64b55eb8e19d4fdb559a3a2b939ab0e09967b4d3465b560e1379fa21b8efb3f25c22f84a2a1c655d16 |
29 |
DIST bitcoin-v0.16.3.tar.gz 6658712 BLAKE2B 2c20b32ea30aed264115d1bd336b62fa28de69cbf116385508718efd7ff22537c3bd402c0965e0f6ddd8e79fc8b51f388f52f885847d36207a24523e927ca63e SHA512 2da25f56fe9b1f5a81815c14e70ff1a69ec15f742424e2c24d71303a71d57c8050dea5d5ba57425bbe0a01a3995ad9b30f0beea5dbafd1632a627cd3fd9a984d |
30 |
DIST bitcoin-v0.17.1.tar.gz 6224852 BLAKE2B efc86768ee2d23db83496ff9e62bc86d10c4d24a7343f4c706a4d336aeb94087b2d496db53e393beb5a9dc228bb9fe957ca89254c2fdaf9980b03029efbac2f8 SHA512 ef911ac6b49075a4f3d8db7f9f4dc59590d49847006fa36d7b8cce1634945d418accd95b12da505df38314fb7768f544863169d4b26b230e88dd627a83947466 |
31 |
+DIST bitcoin-v0.18.0.tar.gz 6533794 BLAKE2B 0eb7830e215757efb024be7aff73108c4a8e2f80a204ca71f1b3b6015933a1ab740ad006e58c473c4b9609b3e47885ba6564472a3514335ab6d7f99d32903822 SHA512 a2e38754d459fac0786eaa43f23c62ee326167f325d98964546217bcdc4f68ab88314bfb674ca4efd4cbc21fc3950bd029e1375ee101e0c72bbae7197fc31cf2 |
32 |
|
33 |
diff --git a/net-p2p/bitcoind/bitcoind-0.18.0.ebuild b/net-p2p/bitcoind/bitcoind-0.18.0.ebuild |
34 |
new file mode 100644 |
35 |
index 00000000000..813f8093491 |
36 |
--- /dev/null |
37 |
+++ b/net-p2p/bitcoind/bitcoind-0.18.0.ebuild |
38 |
@@ -0,0 +1,173 @@ |
39 |
+# Copyright 1999-2019 Gentoo Authors |
40 |
+# Distributed under the terms of the GNU General Public License v2 |
41 |
+ |
42 |
+EAPI=7 |
43 |
+ |
44 |
+DB_VER="4.8" |
45 |
+inherit autotools bash-completion-r1 db-use systemd user |
46 |
+ |
47 |
+BITCOINCORE_COMMITHASH="2472733a24a9364e4c6233ccd04166a26a68cc65" |
48 |
+KNOTS_PV="${PV}.knots20190502" |
49 |
+KNOTS_P="bitcoin-${KNOTS_PV}" |
50 |
+ |
51 |
+DESCRIPTION="Original Bitcoin crypto-currency wallet for automated services" |
52 |
+HOMEPAGE="https://bitcoincore.org/ https://bitcoinknots.org/" |
53 |
+SRC_URI=" |
54 |
+ https://github.com/bitcoin/bitcoin/archive/${BITCOINCORE_COMMITHASH}.tar.gz -> bitcoin-v${PV}.tar.gz |
55 |
+ https://bitcoinknots.org/files/0.18.x/${KNOTS_PV}/${KNOTS_P}.patches.txz -> ${KNOTS_P}.patches.tar.xz |
56 |
+" |
57 |
+ |
58 |
+LICENSE="MIT" |
59 |
+SLOT="0" |
60 |
+KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux" |
61 |
+IUSE="+asm +bitcoin_policy_rbf examples knots libressl +system-leveldb test upnp +wallet zeromq" |
62 |
+ |
63 |
+DEPEND=" |
64 |
+ >=dev-libs/boost-1.52.0:=[threads(+)] |
65 |
+ dev-libs/libevent:= |
66 |
+ >=dev-libs/libsecp256k1-0.0.0_pre20151118:=[recovery] |
67 |
+ >=dev-libs/univalue-1.0.4:= |
68 |
+ system-leveldb? ( virtual/bitcoin-leveldb ) |
69 |
+ !libressl? ( dev-libs/openssl:0=[-bindist] ) |
70 |
+ libressl? ( dev-libs/libressl:0= ) |
71 |
+ upnp? ( >=net-libs/miniupnpc-1.9.20150916:= ) |
72 |
+ wallet? ( sys-libs/db:$(db_ver_to_slot "${DB_VER}")=[cxx] ) |
73 |
+ zeromq? ( net-libs/zeromq:= ) |
74 |
+" |
75 |
+RDEPEND="${DEPEND}" |
76 |
+ |
77 |
+DOCS=( doc/bips.md doc/bitcoin-conf.md doc/descriptors.md doc/files.md doc/JSON-RPC-interface.md doc/psbt.md doc/reduce-traffic.md doc/release-notes.md doc/REST-interface.md doc/tor.md ) |
78 |
+ |
79 |
+S="${WORKDIR}/bitcoin-${BITCOINCORE_COMMITHASH}" |
80 |
+ |
81 |
+PATCHES=( |
82 |
+ "${FILESDIR}/${P}-raii_event_tests-always.patch" |
83 |
+) |
84 |
+ |
85 |
+pkg_pretend() { |
86 |
+ if use knots; then |
87 |
+ elog "You are building ${PN} from Bitcoin Knots." |
88 |
+ elog "For more information, see:" |
89 |
+ elog "https://bitcoinknots.org/files/0.18.x/${KNOTS_PV}/${KNOTS_P}.desc.html" |
90 |
+ else |
91 |
+ elog "You are building ${PN} from Bitcoin Core." |
92 |
+ elog "For more information, see:" |
93 |
+ elog "https://bitcoincore.org/en/2019/05/02/release-${PV}/" |
94 |
+ fi |
95 |
+ if use bitcoin_policy_rbf; then |
96 |
+ elog "Replace By Fee policy is enabled: Your node will preferentially mine and" |
97 |
+ elog "relay transactions paying the highest fee, regardless of receive order." |
98 |
+ else |
99 |
+ elog "Replace By Fee policy is disabled: Your node will only accept the first" |
100 |
+ elog "transaction seen consuming a conflicting input, regardless of fee" |
101 |
+ elog "offered by later ones." |
102 |
+ fi |
103 |
+} |
104 |
+ |
105 |
+pkg_setup() { |
106 |
+ enewgroup bitcoin |
107 |
+ enewuser bitcoin -1 -1 /var/lib/bitcoin bitcoin |
108 |
+} |
109 |
+ |
110 |
+src_prepare() { |
111 |
+ sed -i 's/^\(complete -F _bitcoind bitcoind\) bitcoin-qt$/\1/' contrib/${PN}.bash-completion || die |
112 |
+ |
113 |
+ local knots_patchdir="${WORKDIR}/${KNOTS_P}.patches/" |
114 |
+ |
115 |
+ eapply "${knots_patchdir}/${KNOTS_P}.syslibs.patch" |
116 |
+ |
117 |
+ if use knots; then |
118 |
+ eapply "${knots_patchdir}/${KNOTS_P}.f.patch" |
119 |
+ eapply "${knots_patchdir}/${KNOTS_P}.branding.patch" |
120 |
+ eapply "${knots_patchdir}/${KNOTS_P}.ts.patch" |
121 |
+ eapply "${FILESDIR}/${PV}-daemon-fix.patch" |
122 |
+ fi |
123 |
+ |
124 |
+ default |
125 |
+ |
126 |
+ if ! use bitcoin_policy_rbf; then |
127 |
+ sed -i 's/\(DEFAULT_ENABLE_REPLACEMENT = \)true/\1false/' src/validation.h || die |
128 |
+ fi |
129 |
+ |
130 |
+ echo '#!/bin/true' >share/genbuild.sh || die |
131 |
+ mkdir -p src/obj || die |
132 |
+ echo "#define BUILD_SUFFIX gentoo${PVR#${PV}}" >src/obj/build.h || die |
133 |
+ |
134 |
+ eautoreconf |
135 |
+ rm -r src/secp256k1 || die |
136 |
+ if use system-leveldb; then |
137 |
+ rm -r src/leveldb || die |
138 |
+ fi |
139 |
+} |
140 |
+ |
141 |
+src_configure() { |
142 |
+ local my_econf=( |
143 |
+ $(use_enable asm) |
144 |
+ --without-qtdbus |
145 |
+ --without-qrencode |
146 |
+ $(use_with upnp miniupnpc) |
147 |
+ $(use_enable upnp upnp-default) |
148 |
+ $(use_enable test tests) |
149 |
+ $(use_enable wallet) |
150 |
+ $(use_enable zeromq zmq) |
151 |
+ --with-daemon |
152 |
+ --disable-util-cli |
153 |
+ --disable-util-tx |
154 |
+ --disable-util-wallet |
155 |
+ --disable-bench |
156 |
+ --without-libs |
157 |
+ --without-gui |
158 |
+ --without-rapidcheck |
159 |
+ --disable-fuzz |
160 |
+ --disable-ccache |
161 |
+ --disable-static |
162 |
+ $(use_with system-leveldb) |
163 |
+ --with-system-libsecp256k1 |
164 |
+ --with-system-univalue |
165 |
+ ) |
166 |
+ econf "${my_econf[@]}" |
167 |
+} |
168 |
+ |
169 |
+src_install() { |
170 |
+ default |
171 |
+ |
172 |
+ rm -f "${ED%/}/usr/bin/test_bitcoin" || die |
173 |
+ |
174 |
+ insinto /etc/bitcoin |
175 |
+ newins "${FILESDIR}/bitcoin.conf" bitcoin.conf |
176 |
+ fowners bitcoin:bitcoin /etc/bitcoin/bitcoin.conf |
177 |
+ fperms 600 /etc/bitcoin/bitcoin.conf |
178 |
+ |
179 |
+ newconfd "contrib/init/bitcoind.openrcconf" ${PN} |
180 |
+ newinitd "contrib/init/bitcoind.openrc" ${PN} |
181 |
+ systemd_newunit "contrib/init/bitcoind.service" "bitcoind.service" |
182 |
+ |
183 |
+ keepdir /var/lib/bitcoin/.bitcoin |
184 |
+ fperms 700 /var/lib/bitcoin |
185 |
+ fowners bitcoin:bitcoin /var/lib/bitcoin/ |
186 |
+ fowners bitcoin:bitcoin /var/lib/bitcoin/.bitcoin |
187 |
+ dosym ../../../../etc/bitcoin/bitcoin.conf /var/lib/bitcoin/.bitcoin/bitcoin.conf |
188 |
+ |
189 |
+ doman "${FILESDIR}/bitcoin.conf.5" |
190 |
+ |
191 |
+ use zeromq && dodoc doc/zmq.md |
192 |
+ |
193 |
+ newbashcomp contrib/${PN}.bash-completion ${PN} |
194 |
+ |
195 |
+ if use examples; then |
196 |
+ docinto examples |
197 |
+ dodoc -r contrib/{linearize,qos} |
198 |
+ use zeromq && dodoc -r contrib/zmq |
199 |
+ fi |
200 |
+ |
201 |
+ insinto /etc/logrotate.d |
202 |
+ newins "${FILESDIR}/bitcoind.logrotate-r1" bitcoind |
203 |
+} |
204 |
+ |
205 |
+pkg_postinst() { |
206 |
+ elog "To have ${PN} automatically use Tor when it's running, be sure your" |
207 |
+ elog "'torrc' config file has 'ControlPort' and 'CookieAuthentication' setup" |
208 |
+ elog "correctly, and:" |
209 |
+ elog "- Using an init script: add the 'bitcoin' user to the 'tor' user group." |
210 |
+ elog "- Running bitcoind directly: add that user to the 'tor' user group." |
211 |
+} |
212 |
|
213 |
diff --git a/net-p2p/bitcoind/files/0.18.0-daemon-fix.patch b/net-p2p/bitcoind/files/0.18.0-daemon-fix.patch |
214 |
new file mode 100644 |
215 |
index 00000000000..8a6737f8847 |
216 |
--- /dev/null |
217 |
+++ b/net-p2p/bitcoind/files/0.18.0-daemon-fix.patch |
218 |
@@ -0,0 +1,12 @@ |
219 |
+--- a/src/support/lockedpool.cpp |
220 |
++++ b/src/support/lockedpool.cpp |
221 |
+@@ -250,9 +250,6 @@ void *PosixLockedPageAllocator::AllocateLocked(size_t len, bool *lockingSuccess) |
222 |
+ addr = mmap(nullptr, len, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); |
223 |
+ if (addr) { |
224 |
+ *lockingSuccess = mlock(addr, len) == 0; |
225 |
+-#ifdef MADV_DONTFORK |
226 |
+- madvise(addr, len, MADV_DONTFORK); |
227 |
+-#endif |
228 |
+ #ifdef MADV_DONTDUMP |
229 |
+ madvise(addr, len, MADV_DONTDUMP); |
230 |
+ #endif |
231 |
|
232 |
diff --git a/net-p2p/bitcoind/files/bitcoind-0.18.0-raii_event_tests-always.patch b/net-p2p/bitcoind/files/bitcoind-0.18.0-raii_event_tests-always.patch |
233 |
new file mode 100644 |
234 |
index 00000000000..8148d565967 |
235 |
--- /dev/null |
236 |
+++ b/net-p2p/bitcoind/files/bitcoind-0.18.0-raii_event_tests-always.patch |
237 |
@@ -0,0 +1,70 @@ |
238 |
+https://github.com/bitcoin/bitcoin/pull/16564 |
239 |
+ |
240 |
+From 272855746b18de76f51e84945d675904e9b907af Mon Sep 17 00:00:00 2001 |
241 |
+From: Craig Andrews <candrews@××××××××××××.com> |
242 |
+Date: Wed, 7 Aug 2019 11:38:11 -0400 |
243 |
+Subject: [PATCH] Always define the raii_event_tests test suite |
244 |
+ |
245 |
+The test suite must always be defined (even when EVENT_SET_MEM_FUNCTIONS_IMPLEMENTED is not defined) so that the test harness doesn't fail due to not being able to find the raii_event_tests test. |
246 |
+ |
247 |
+This improves upon 95f97f4 actually fixing https://github.com/bitcoin/bitcoin/issues/9493 |
248 |
+--- |
249 |
+ src/test/raii_event_tests.cpp | 24 +++++++++++++++--------- |
250 |
+ 1 file changed, 15 insertions(+), 9 deletions(-) |
251 |
+ |
252 |
+diff --git a/src/test/raii_event_tests.cpp b/src/test/raii_event_tests.cpp |
253 |
+index bdb411d53f57..6691de882930 100644 |
254 |
+--- a/src/test/raii_event_tests.cpp |
255 |
++++ b/src/test/raii_event_tests.cpp |
256 |
+@@ -4,20 +4,28 @@ |
257 |
+ |
258 |
+ #include <event2/event.h> |
259 |
+ |
260 |
++#include <test/test_bitcoin.h> |
261 |
++ |
262 |
++#include <boost/test/unit_test.hpp> |
263 |
++ |
264 |
++BOOST_FIXTURE_TEST_SUITE(raii_event_tests, BasicTestingSetup) |
265 |
++ |
266 |
++#ifndef EVENT_SET_MEM_FUNCTIONS_IMPLEMENTED |
267 |
++BOOST_AUTO_TEST_CASE(raii_event_creation) |
268 |
++{ |
269 |
++ // dummy; do nothing |
270 |
++} |
271 |
++#endif // EVENT_SET_MEM_FUNCTIONS_IMPLEMENTED |
272 |
++ |
273 |
+ #ifdef EVENT_SET_MEM_FUNCTIONS_IMPLEMENTED |
274 |
+-// It would probably be ideal to define dummy test(s) that report skipped, but boost::test doesn't seem to make that practical (at least not in versions available with common distros) |
275 |
+ |
276 |
+ #include <map> |
277 |
+ #include <stdlib.h> |
278 |
+ |
279 |
+ #include <support/events.h> |
280 |
+ |
281 |
+-#include <test/test_bitcoin.h> |
282 |
+- |
283 |
+ #include <vector> |
284 |
+ |
285 |
+-#include <boost/test/unit_test.hpp> |
286 |
+- |
287 |
+ static std::map<void*, short> tags; |
288 |
+ static std::map<void*, uint16_t> orders; |
289 |
+ static uint16_t tagSequence = 0; |
290 |
+@@ -36,8 +44,6 @@ static void tag_free(void* mem) { |
291 |
+ free(mem); |
292 |
+ } |
293 |
+ |
294 |
+-BOOST_FIXTURE_TEST_SUITE(raii_event_tests, BasicTestingSetup) |
295 |
+- |
296 |
+ BOOST_AUTO_TEST_CASE(raii_event_creation) |
297 |
+ { |
298 |
+ event_set_mem_functions(tag_malloc, realloc, tag_free); |
299 |
+@@ -89,6 +95,6 @@ BOOST_AUTO_TEST_CASE(raii_event_order) |
300 |
+ event_set_mem_functions(malloc, realloc, free); |
301 |
+ } |
302 |
+ |
303 |
+-BOOST_AUTO_TEST_SUITE_END() |
304 |
+- |
305 |
+ #endif // EVENT_SET_MEM_FUNCTIONS_IMPLEMENTED |
306 |
++ |
307 |
++BOOST_AUTO_TEST_SUITE_END() |