1 |
On Sat, Jul 10, 2021 at 11:42:28AM -0400, Craig Andrews wrote: |
2 |
> Gentoo currently has a number of packages required to run a bitcoin node |
3 |
> in its tree, including: |
4 |
> * net-libs/libbitcoinconsensus |
5 |
> * net-p2p/bitcoin-qt |
6 |
> * net-p2p/bitcoind |
7 |
> |
8 |
> In version 0.21.1, bitcoin included a consensus algorithm changed call |
9 |
> taproot. There is no configuration opt-in with this change; bitcoin < |
10 |
> 0.21.1 does not include taproot, bitcoin >= 0.21.1 does include taproot. |
11 |
> |
12 |
> A PR [1] was created the bitcoin packaging proxy maintainer (Like |
13 |
> Dash-Jr, CC'ed) for the bitcoin 0.21.1 version bump. In that PR, Luke |
14 |
> insists that users must explicitly opt-in to the bitcoin 0.21.1 upgrade |
15 |
> because of the taproot consensus algorithm change. I encourage |
16 |
> interested parties to read the conversation in that PR to get the full |
17 |
> context. |
18 |
> |
19 |
> * This is a minor version bump (assuming semver, this is the "patch" |
20 |
> level version change in bitcoin), indicating that upstream does not |
21 |
> consider this to be a major/breaking change. |
22 |
> * Upstream does not have a mechanism for notifying users or requiring |
23 |
> them to opt-in to this change |
24 |
> * Upstream does not have a mechanism to opt out of this change. The |
25 |
> users only option is to develop their own fork of the bitcoin software |
26 |
> or never upgrade the package if they want to avoid taproot. |
27 |
> * Taproot was locked by miners, so the network will be upgrading [2] |
28 |
|
29 |
I suggest the following: |
30 |
|
31 |
1) a newsitem explaining this issue. |
32 |
2) at the same time, package.mask the newer version temporarily and keep |
33 |
the older version in the tree. |
34 |
3) Once the network is upgraded, unmask the newer version and drop the |
35 |
older version. If people want the older version at that point and write |
36 |
a fork, you'll have to rename itt. |
37 |
|
38 |
> |
39 |
> Therefore, I have a few questions for the fellow Gentoo developers: |
40 |
> 1) Should we require users to explicitly opt-in to this upgrade beyond |
41 |
> the usual? |
42 |
> 2) If so, how do we do that? I have been unable to find any |
43 |
> documentation or examples of existing packages that require explicit |
44 |
> upgrade opt-in. A REQUIRED_USE or a LICENSE [3] were suggested as well |
45 |
> as PROPERTIES="interactive" [4], but such approaches seem like |
46 |
> unintended/unconventional abuses of those settings as well as annoying |
47 |
> to the user. |
48 |
|
49 |
If you do, I think you can do it the way I suggested without adding |
50 |
extra things to the ebuild. |
51 |
|
52 |
> |
53 |
> My suggested approach was to notifying the user of the change in the |
54 |
> pkg_pretend phase [5] so they're aware before they actually upgrade; |
55 |
> however, the proxy maintainer disagreed and force a revert. [6] |
56 |
|
57 |
As far as I know proxy maintainers can't force anything; they defer to |
58 |
developers because we are the ones who are more familiar with the way |
59 |
the tree works. |
60 |
|
61 |
That being said, I still think the cleaner solution is to use |
62 |
a temporary package.mask along with a newsitem. |
63 |
|
64 |
Thanks, |
65 |
|
66 |
William |