I think this needs some serious work, at least an updated databases/db/v4 and some solution to that ugly LibreSSL problem.
I'm not really using this in any way, so I won't spend that kind of effort on it. On Wed, 16 Dec 2015 18:26:04 +0800, poweru...@openmailbox.org wrote: > Guys, > > What do you say, do you feel this is a relevant port? > > > > Sorry for not being able to do this myself - > > If you need any extra clear feedback or instructions from me for how to > actually build it, so that you can get the port together, I will be > happy to guide you, if so let me know. > > What made me not be able to make an update of the port complete myself, > was some weird aspect of how the filenaming works out in the ports > system and I cannot dig that deep into the system now. > > Maybe, I could document exactly what I do when I try to upgrade the > openbsd-wip bitcoind port, and paste the exact error I get here, and you > could tell me how to fix it - and we can get the updated BitcoinD port > into OpenBSD that way, > > What do you say? > > > > On 2015-12-16 02:05, poweru...@openmailbox.org wrote: > > ( > > > > Well, the instructions I provided show exactly how to get the BitcoinD > > 0.11.2 port going, however, it uses GCC 4.8 for the compilation. > > > > Using OpenBSD's GCC version should work but will require a bit of > > experimentation, I think adding > > "--disable-tests --disable-debug" to ./configure will be sufficient. > > This was pointed out in the original email already. > > > > ) > > > > On 2015-12-16 01:22, poweru...@openmailbox.org wrote: > >> Hi! > >> > >> I don't know exactly how the port system works. > >> > >> I figured out exactly how to get BitcoinD latest to build, by manually > >> patching the openbsd-wip bitcoind port, which is 2.5 years old. > >> > >> I failed to actually get the port updated, on a stupid detail of the > >> port Makefile though, it was something about the filenaming scheme the > >> ports system will use for its build directory - > >> > >> I am sure YOU know exactly how that works, in no time, so for this > >> reason I'll describe exactly how to build BitcoinD 0.11.2 = latest on > >> OpenBSD based on the port here, and you can incredibly quickly pull > >> together the actual port for it. > >> > >> Which the exact patches are and the exact configure arguments etc. are > >> provided, and this is all a patch to the openbsd-wip bitcoind port > >> already, so the hard work is already done. > >> > >> > >> Please let me know when you got it in place? > >> > >> Thanks!! > >> Poweruser > >> > >> > >> > >> > >> > >> A google search on this topic mentions > >> http://www.thedrinkingrecord.com/2015/02/14/notes-on-building-bitcoin-qt-on-openbsd/ > >> also. > >> > >> Also this post should be followed up on when this port has been > >> published: > >> http://unix.stackexchange.com/questions/82858/compiling-bitcoind-on-openbsd > >> > >> Some things are stated doubly below. In that case just read it as if > >> was written once. > >> > >> > >> There is a previous BitcoinD package in openbsd-wip (version 0.9.1). > >> It's 2.5 years old so it's completely antiquated. > >> > >> Its sources are at > >> https://github.com/jasperla/openbsd-wip/tree/master/net/bitcoin , and > >> this is what my patch here is based on. > >> > >> I used that one before, and to my experience it worked perfectly, > >> except for when trying to use BitcoinD's HTTP RPC server - that > >> crashed when even telnetting to the port I think.. or if it was when > >> posting any request to it. That functionality is completely secondary > >> though. I did not test that on this updated version, perhaps it works > >> now. > >> > >> > >> My installation instructions are a modified version of the openbsd-wip > >> package. > >> > >> Take that bitcoin directory in the openbsd-wip package, and put it in > >> your local /usr/ports/net/ directory. > >> > >> > >> The patch files need some updates. First, let's overview the 8 patch > >> files individually, as some of these changed names, or disappeared, > >> since 0.9.1: > >> > >> > >> * compat.h is now src/compat.h - attaching new version (applied > >> exactly the same thing as in the old patch) > >> > >> * db.cpp - this file was moved to src/wallet/db.cpp . > >> > >> * leveldb/port/port_posix.h is now src/leveldb/port/port_posix.h - > >> applied same thinga sin patch. > >> > >> * src/m4/bitcoin_find_bdb48.m4 changed name to > >> build-aux/m4/bitcoin_find_bdb48.m4 , applied the same patch contents. > >> > >> * can't find src/qt/Makefile.am here. so i just dropped it. > >> > >> * share/genbuild.sh kept its name. figured out what section to > >> remove. > >> > >> * I didn't touch patch-src_Makefile_include and > >> patch-contrib_debian_manpages_bitcoind_1 - you figure out what > >> these should be now please! > >> > >> > >> And now here below are my patch files, these patches compare the > >> unmodified bitcoin-0.11.2 tar gz file with what the same need to be to > >> deliver on OpenBSD. When you compare these patches with the previous > >> ones you'll see great similarity. > >> > >> These patches below here were gotten by reading the old openbsd-wip > >> port patch files and figuring out how to get exactly the same thing in > >> the new version. > >> > >> > >> > >> > >> compat.h: No changes! I.e. remove the patch. > >> > >> src/wallet/db.cpp: > >> > >> /tmp/bitcoin-0.11.2$ diff -ur src/wallet/db.cpp > >> /usr/ports/pobj/bitcoin-0.11.2/bitcoin-0.11.2/src/wallet/db.cpp > >> --- src/wallet/db.cpp Mon Jun 1 00:00:00 2015 > >> +++ /usr/ports/pobj/bitcoin-0.11.2/bitcoin-0.11.2/src/wallet/db.cpp > >> Fri Nov 20 19:55:37 2015 > >> @@ -97,7 +97,9 @@ > >> dbenv->set_errfile(fopen(pathErrorFile.string().c_str(), "a")); > >> /// debug > >> dbenv->set_flags(DB_AUTO_COMMIT, 1); > >> dbenv->set_flags(DB_TXN_WRITE_NOSYNC, 1); > >> +#if DB_VERSION_MINOR > 7 > >> dbenv->log_set_config(DB_LOG_AUTO_REMOVE, 1); > >> +#endif > >> int ret = dbenv->open(strPath.c_str(), > >> DB_CREATE | > >> DB_INIT_LOCK | > >> @@ -131,7 +133,9 @@ > >> dbenv->set_lk_max_locks(10000); > >> dbenv->set_lk_max_objects(10000); > >> dbenv->set_flags(DB_AUTO_COMMIT, 1); > >> +#if DB_VERSION_MINOR > 7 > >> dbenv->log_set_config(DB_LOG_IN_MEMORY, 1); > >> +#endif > >> int ret = dbenv->open(NULL, > >> DB_CREATE | > >> DB_INIT_LOCK | > >> > >> > >> > >> > >> > >> > >> /tmp/bitcoin-0.11.2$ diff -ur src/leveldb/port/port_posix.h > >> /usr/ports/pobj/bitcoin-0.11.2/bitcoin-0.11.2/src/leveldb/port/port_posix.h > >> --- src/leveldb/port/port_posix.h Mon Jun 1 00:00:00 2015 > >> +++ > >> /usr/ports/pobj/bitcoin-0.11.2/bitcoin-0.11.2/src/leveldb/port/port_posix.h > >> Fri Nov 20 19:56:41 2015 > >> @@ -10,6 +10,7 @@ > >> #undef PLATFORM_IS_LITTLE_ENDIAN > >> #if defined(OS_MACOSX) > >> #include <machine/endian.h> > >> + #define PLATFORM_IS_LITTLE_ENDIAN (_BYTE_ORDER == _LITTLE_ENDIAN) > >> #if defined(__DARWIN_LITTLE_ENDIAN) && defined(__DARWIN_BYTE_ORDER) > >> #define PLATFORM_IS_LITTLE_ENDIAN \ > >> (__DARWIN_BYTE_ORDER == __DARWIN_LITTLE_ENDIAN) > >> > >> > >> > >> > >> > >> $ diff -ur build-aux/m4/bitcoin_find_bdb48.m4 > >> /usr/ports/pobj/bitcoin-0.11.2/bitcoin-0.11.2/build-aux/m4/bitcoin_find_bdb48.m4 > >> --- build-aux/m4/bitcoin_find_bdb48.m4 Mon Jun 1 00:00:00 2015 > >> +++ > >> /usr/ports/pobj/bitcoin-0.11.2/bitcoin-0.11.2/build-aux/m4/bitcoin_find_bdb48.m4 > >> Fri Nov 20 19:58:11 2015 > >> @@ -15,8 +15,8 @@ > >> AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ > >> #include <${searchpath}db_cxx.h> > >> ]],[[ > >> - #if !((DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 8) || > >> DB_VERSION_MAJOR > 4) > >> - #error "failed to find bdb 4.8+" > >> + #if !((DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 6) || > >> DB_VERSION_MAJOR > 4) > >> + #error "failed to find bdb 4.6+" > >> #endif > >> ]])],[ > >> if test "x$bdbpath" = "xX"; then > >> > >> > >> > >> > >> > >> > >> > >> > >> Now i'll give some seconds to what did *not* work: > >> > >> > >> I went into the patched Bitcoin directory and did ./configure and that > >> gave "configure: error: libdb_cxx headers missing, Bitcoin Core > >> requires this library for wallet functionality (--disable-wallet to > >> disable wallet functionality)" > >> > >> > >> So instead I did: > >> > >> ./configure --disable-wallet > >> > >> This gave: "configure: error: No working boost sleep implementation > >> found." > >> > >> > >> Apparently this is a known problem, > >> documented at https://github.com/bitcoin/bitcoin/issues/3003 > >> someone found "--disable-tests --disable-debug" to fix it, but, I went > >> with a more novel solution instead - I installed the g++-4.8.4p2 > >> package and did: > >> > >> CXX=/usr/local/bin/eg++ ./configure --disable-wallet > >> > >> > >> This gave "configure: error: Detected LibreSSL: This is NOT supported, > >> and may break consensus compatibility!" > >> > >> That's discussed at https://github.com/bitcoin/bitcoin/pull/6244 . > >> > >> There's a "--with-libressl" option, let's use it. I think BitcoinD > >> will kick out its OpenSSL dependency soon too. And, I did a full > >> network sync using the following so I know that it works for all > >> blocks up to now. > >> > >> CXX=/usr/local/bin/eg++ ./configure --disable-wallet --with-libressl > >> > >> > >> And then, "gmake" will actually make it build - > >> > >> > >> > >> > >> > >> With all the above info in place, here are the instructions for > >> actually getting a bitcoind binary: > >> > >> > >> > >> * The source file is > >> https://bitcoin.org/bin/bitcoin-core-0.11.2/bitcoin-0.11.2.tar.gz , as > >> reflected on https://bitcoin.org/en/download . > >> > >> * Install the dependency packages as not to need the ports system to > >> rebuild those: > >> > >> pkg_add automake-1.14.1 > >> pkg_add boost > >> pkg_add protobuf > >> pkg_add libqrencode > >> pkg_add miniupnpc > >> pkg_add qt4 > >> > >> * Clone the openbsd-wip bitcoin package into the OBSD 5.8 ports tree > >> into /usr/ports/net/bitcoin (as already said above) > >> > >> * Update distinfo to: > >> > >> SHA256 (bitcoin-0.11.2.tar.gz) = > >> a4d2bd642e5f7f1f82dc3f708618ac77e1e45353db7a98bf81c3bdc0e10690d3 > >> SIZE (bitcoin-0.11.2.tar.gz) = 4758492 > >> > >> * In the Makefile: > >> > >> * Change the "V" from 0.9.1 to 0.11.2 . > >> > >> * Change MASTER_SITES to: > >> https://bitcoin.org/bin/bitcoin-core-${V}/ > >> > >> * DISTNAME from "bitcoin-bitcoin-v${V}" to "bitcoin-${V}" (as this > >> influences the file it downloads) > >> > >> * Change WKRDIST from "${WRKDIR}/bitcoin-bitcoin-66a2ae9" to > >> "${WRKDIR}/bitcoin-0.11.2", I guess?? > >> > >> > >> > >> * Then I just cd:ed to /usr/ports/pobj/bitcoin-0.11.2/bitcoin-0.11.2 > >> and tried to get on with the build process! > >> > >> > >> > >> > >> > >> Here's how I applied the patch files manually, and the changes that > >> had happened, also find the same patched files attached here: > >> > >> * compat.h is now src/compat.h - attaching new version (applied > >> exactly the same thing as in the old patch) > >> > >> * db.cpp - this file was moved to src/wallet/db.cpp > >> > >> * leveldb/port/port_posix.h is now src/leveldb/port/port_posix.h - > >> applied same thinga sin patch. > >> > >> * src/m4/bitcoin_find_bdb48.m4 changed name to > >> build-aux/m4/bitcoin_find_bdb48.m4 , applied the same patch contents. > >> > >> * can't find src/qt/Makefile.am here. > >> > >> * share/genbuild.sh kept its name. figured out what section to > >> remove. > >> > >> * I didn't touch patch-src_Makefile_include and > >> patch-contrib_debian_manpages_bitcoind_1 > >> > >> > >> > >> (FIND THESE FILES ATTACHED BELOW) > >> > >> Then: > >> > >> CXX=/usr/local/bin/eg++ ./configure --disable-wallet --with-libressl > >> > >> (Because purely ./configure gives: "configure: error: libdb_cxx > >> headers missing, Bitcoin Core requires this library for wallet > >> functionality (--disable-wallet to disable wallet functionality)", > >> > >> And because "./configure --disable-wallet" gave: "configure: error: No > >> working boost sleep implementation found.", someone at > >> https://github.com/bitcoin/bitcoin/issues/3003 found this could be > >> solved by adding "--disable-tests --disable-debug" but this solution > >> of adding eg++ worked for me, > >> > >> and because "CXX=/usr/local/bin/eg++ ./configure --disable-wallet" > >> gave "configure: error: Detected LibreSSL: This is NOT supported, and > >> may break consensus compatibility!" as discussed on > >> https://github.com/bitcoin/bitcoin/pull/6244 .) > >> > >> > >> gmake > >