Bug 226155

Summary: net-p2p/bitcoin 0.16.0
Product: Ports & Packages Reporter: Kevin Bowling <kbowling>
Component: Individual Port(s)Assignee: Steve Wills <swills>
Status: Closed FIXED    
Severity: Affects Only Me CC: ale, robbak, robbak, swills, thierry
Priority: --- Flags: robbak: maintainer-feedback+
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
bitcoin-0.16.0.patch
none
Poudriere build failure on 10.4 amd64
none
Updated patch - as per submission, + disable asm optimizations 10.x, swap maintainers
robbak: maintainer-approval+
New updated patch - move OSVERSION check to OUTSIDE of existing If. robbak: maintainer-approval+

Description Kevin Bowling freebsd_committer freebsd_triage 2018-02-24 06:24:57 UTC
Created attachment 190937 [details]
bitcoin-0.16.0.patch

For early testing, should wait for relnotes and blog post to commit.

Looks good on my side.
Comment 1 Kevin Bowling freebsd_committer freebsd_triage 2018-02-25 03:49:00 UTC
Ok I think this version is safe to bump any time.. port changes need to be verified for lint etc

Release tag:
https://github.com/bitcoin/bitcoin/releases/tag/v0.16.0

Relnotes:
https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes.md

Primary feature is segwit exposed in the GUI
Comment 2 robbak 2018-02-25 10:08:30 UTC
I'm currently running my own tests, but I don't foresee any issues - apart from a slow build machine. I also will be dropping mantainership if anyone wants to pick it up, as I don't run this codebase anymore.
Comment 3 Kevin Bowling freebsd_committer freebsd_triage 2018-02-25 10:09:19 UTC
I'm happy to take it for now if you want to bundle that into the version bump
Comment 4 Thierry Thomas freebsd_committer freebsd_triage 2018-02-25 10:32:20 UTC
The wallet still depends on bdb48, which is deprecated, and will expire on 2018-04-30. Is not it time to move to bdb5 (or 6)?
Comment 5 Kevin Bowling freebsd_committer freebsd_triage 2018-02-25 10:50:14 UTC
(In reply to Thierry Thomas from comment #4)
bdb48 is actually part of the official bitcoin-core wallet binary data format, not just a simple dep, so the dep on bdb48 is necessary and correct.  IMO it will be necessary to maintain bdb48 in ports until we see some type of conversion in bitcoin-core, at least somehow for bitcoin if nothing else, but looking at the deps it is also on the other cryptocoins in the tree for the same reason.  So we need to remove that expiration timer.

"Note: Enabling wallet support requires either compiling against a Berkeley DB newer than 4.8 (package db) using --with-incompatible-bdb, or building and depending on a local version of Berkeley DB 4.8. The readily available Arch Linux packages are currently built using --with-incompatible-bdb according to the PKGBUILD. As mentioned above, when maintaining portability of the wallet between the standard Bitcoin Core distributions and independently built node software is desired, Berkeley DB 4.8 must be used."

What the above means is you can't open an existing wallet if you build and link to a newer bdb, and if you choose a new version you're pinned to that version for the life of the wallet.  I imagine at some point BDB will be removed from Bitcoin entirely, but that has not happened yet.
Comment 6 Alex Dupre freebsd_committer freebsd_triage 2018-02-26 16:00:42 UTC
It's been officially released now.
Comment 7 robbak 2018-02-26 22:53:25 UTC
In my build testing I have had a poudrire build failure on 10.4amd64. I'll post the log here if anyone would like to track it down, please post your own logs if it works for you on 10.4. I don't have time to look at this this morning.
Comment 8 robbak 2018-02-26 22:56:43 UTC
Created attachment 191033 [details]
Poudriere build failure on 10.4 amd64

This is a simple build failure, default options on a poudriere run on fresh 10.4 amd64 build. The failure seems to be while handling boost libraries.
Comment 9 Alex Dupre freebsd_committer freebsd_triage 2018-02-27 07:42:18 UTC
Comment on attachment 191033 [details]
Poudriere build failure on 10.4 amd64

I confirm the issue. 0.16.0 enabled ASM optimization by default. You can try to set --disable-asm on FreeBSD 10.x to restore the previous behavior.
Comment 10 robbak 2018-02-27 08:12:37 UTC
Yes, --disable-asm to CONFIGURE_ARGS allows it to build, and passes the test applications.

Any ideas as to what version I should apply this change up to? And is ".if ${OSVERSION} >= {number} \n CONFIGURE_ARGS +=  --disable-asm" the right way to do it?
Comment 11 Alex Dupre freebsd_committer freebsd_triage 2018-02-27 08:30:48 UTC
That's the correct way, I'd apply it with:

.include <bsd.port.pre.mk>

.if ${OSVERSION} < 1100000
CONFIGURE_ARGS+=--disable-asm
.endif
Comment 12 robbak 2018-02-27 11:05:51 UTC
Created attachment 191049 [details]
Updated patch - as per submission, + disable asm optimizations 10.x, swap maintainers

Updated patch to upgrade. This has passed my poudriere builds on 12C, 10.4 amd64; test run on 11.1 i386 is underway. 

Major change in this patch is disabling asm optimizations on 10.x, where they cause a build failure.

This also passes the maintainer baton to kbowling@freebsd.org (thanks!) as discussed in this bug.
Comment 13 robbak 2018-02-27 21:39:30 UTC
And the build on 11.1 i386 worked well too. This is ready to go.
Comment 14 Steve Wills freebsd_committer freebsd_triage 2018-02-28 04:16:55 UTC
Fails to build on 10.3 with:

crypto/sha256_sse4.cpp:953:15: error: cannot compile this unexpected cast lvalue yet
        : "m"(K256), "m"(FLIP_MASK), "m"(SHUF_00BA), "m"(SHUF_DC00)
              ^~~~
crypto/sha256_sse4.cpp:953:26: error: cannot compile this unexpected cast lvalue yet
        : "m"(K256), "m"(FLIP_MASK), "m"(SHUF_00BA), "m"(SHUF_DC00)
                         ^~~~~~~~~
crypto/sha256_sse4.cpp:953:42: error: cannot compile this unexpected cast lvalue yet
        : "m"(K256), "m"(FLIP_MASK), "m"(SHUF_00BA), "m"(SHUF_DC00)
                                         ^~~~~~~~~
crypto/sha256_sse4.cpp:953:58: error: cannot compile this unexpected cast lvalue yet
        : "m"(K256), "m"(FLIP_MASK), "m"(SHUF_00BA), "m"(SHUF_DC00)
                                                         ^~~~~~~~~
Comment 15 Steve Wills freebsd_committer freebsd_triage 2018-02-28 04:42:14 UTC
(In reply to Steve Wills from comment #14)
Forgot to mention, this is net-p2p/bitcoin-daemon that's failing.
Comment 16 robbak 2018-02-28 04:55:57 UTC
(In reply to Steve Wills from comment #14)
That's strange - that's the same error that I had in 10.4, and fixed with the second patch. Which patch are you testing, Steve - the first one, or the updated patch?

Secondly, doing more testing - I went and stuck the OSVERSION check inside an existing if!!?! Updated patch uploading, more testing underway.
Comment 17 robbak 2018-02-28 04:57:12 UTC
Created attachment 191070 [details]
New updated patch - move OSVERSION check to OUTSIDE of existing If.

Pointyhat goes to me on this one.
Comment 18 robbak 2018-02-28 05:59:05 UTC
Comment on attachment 191070 [details]
New updated patch - move OSVERSION check to OUTSIDE of existing If.

OK, that's tested on 10.4, 11.1 and 12C, bitcoin-utils, bitcoin-daemon and bitcoin. This works.
Comment 19 commit-hook freebsd_committer freebsd_triage 2018-02-28 08:13:28 UTC
A commit references this bug:

Author: ale
Date: Wed Feb 28 08:13:20 UTC 2018
New revision: 463186
URL: https://svnweb.freebsd.org/changeset/ports/463186

Log:
  Update to 0.16.0 release and change maintainer.

  PR:		226155
  Submitted by:	kbowling
  Approved by:	maintainer

Changes:
  head/net-p2p/bitcoin/Makefile
  head/net-p2p/bitcoin/distinfo
  head/net-p2p/bitcoin-daemon/Makefile