Archive for May, 2019

Building TRB on Cuntoo: Part 1

Wednesday, May 22nd, 2019

Continuing to build upon last month's post (building ave1's musltronic GNAT on Gentoo), I wanted to try building TRB on Cuntoo.

I utilized diana_coman's Keccak-V to press Keccak-V TRB vpatches and seals that I created back in January. These have not yet been reviewed by other TMSR~ Lords, and subsequently, still are considered experimental at the time of this writing.

After pressing the Keccak TRB Tree up through asciilifeform_aggressive_pushgetblocks.vpatch into directory 'a', I copied all of it's contents into directory 'b'. This way, I'm able to make changes in directory 'b'; removing all of the buildroot requirements throughout the Makefiles. Once these changes were complete, I was able to use the Keccak vdiff tool to compare the original press directory in 'a', with the changes made in 'b' to output a new vpatch.

As a preliminary step, I simply set out to update the Makefile.rotor file in the 'build' directory so that I could utilize the deployed musltronic toolset in '/opt/20180924' and build the following: Boost, BDB, and OpenSSL. I was successful in building both Boost and OpenSSL without any changes at all; however, I did get an error when building BDB:

-L/opt/20180924/x86_64-linux-musl-native/lib -lpthread
-Wl,-soname -Wl,libdb-4.8.so -o
.libs/libdb-4.8.so /opt/20180924/x86_64-linux-musl-native/bin/../lib/gcc/x86_64-linux-musl/4.9.4/../../../../x86_64-linux-musl/bin/ld:
/opt/20180924/x86_64-linux-musl-native/bin/../lib/gcc/x86_64-linux-musl/4.9.4/../../../../x86_64-linux-musl/lib/libc.a(sysconf.o):
relocation R_X86_64_32S against `.rodata.values.2406' can not be used when making a shared object;
recompile with -fPIC /opt/20180924/x86_64-linux-musl-native/bin/../lib/gcc/x86_64-linux-musl/4.9.4/../../../../x86_64-linux-musl/lib/libc.a:
error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:771: libdb-4.8.la] Error 1
make[1]: Leaving directory
'/home/mod6/trb/trb054/bitcoin/build/db-4.8.30/build_unix'
make: *** [Makefile.rotor:41: db-4.8.30] Error 2

Seeing that this was a relocation record error was a clue for me. I wanted ensure that we're not building a shared library, so I dug up some BDB documentation here. Specifically:

--disable-shared, --disable-static

On systems supporting shared libraries, Berkeley DB builds both static and shared libraries by default. (Shared libraries are built using the GNU Project's Libtool distribution, which supports shared library builds on many (although not all) systems.) To not build shared libraries, configure using the --disable-shared argument. To not build static libraries, configure using the --disable-static argument.

I then added the '--disable-shared' flag to the configure options for BDB, it compiled, no problem at all.

The changes to the Makefiles were as follows:

  1. Removal of buildroot, its dependencies, and their checksums
  2. Updating the following environment variables in Makefile.rotor to point at my deployed musltronic native binaries from ave1's 20180924 version:
    1. CC
    2. CXX
    3. LD
    4. CFLAGS
    5. LDFLAGS
    6. PATH
  3. The addition of the '--disable-shared' configure flag for BDB

Once I had a vpatch of the necessary changes, I did another press up through asciilifeform_aggressive_pushgetblocks.vpatch into the 'test' directory. Next, I simply just applied my own vpatch manually (just for testing purposes). I then conducted a full TRB build, with success. Lastly, I started up TRB and was able to connect to the network and pull blocks. More testing is required, of course, but it was nice to see this working!

What follows below is a full log of all of the things that I conducted, as well as the (unsigned) vpatch of the changes that I created.

mod6@cuntoo-test1 ~ $ mkdir trb
mod6@cuntoo-test1 ~ $ cd trb/
mod6@cuntoo-test1 ~/trb $ touch log.txt
mod6@cuntoo-test1 ~/trb $ curl -sL
"http://ossasepia.com/vpatches/starter_v.zip" -O
mod6@cuntoo-test1 ~/trb $ curl -sL
"http://ossasepia.com/vpatches/starter_v.zip.diana_coman.sig" -O
mod6@cuntoo-test1 ~/trb $ gpg --verify starter_v.zip.diana_coman.sig
starter_v.zip
gpg: Signature made Wed Nov 14 10:39:50 2018 UTC using RSA key ID 390F999E
gpg: Good signature from "Diana Coman "
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: E72D CCB7 3A5E 0669 4C5C  D781 D519 6EE6 390F 999E
mod6@cuntoo-test1 ~/trb $ unzip starter_v.zip
Archive:  starter_v.zip
   creating: starter_v/
  inflating: starter_v/clean.sh
  inflating: starter_v/build.sh
   creating: starter_v/vtools/
  inflating: starter_v/vtools/vdiff.gpr
  inflating: starter_v/vtools/vpatch.gpr
  inflating: starter_v/vtools/Makefile
  inflating: starter_v/vtools/ksum.gpr
  inflating: starter_v/vtools/manifest
   creating: starter_v/v/
  inflating: starter_v/v/v.pl
  inflating: starter_v/v/v_quick_start.txt
  inflating: starter_v/v/manifest
   creating: starter_v/vtools/src/
  inflating: starter_v/vtools/src/bits.ads
  inflating: starter_v/vtools/src/keccak_c.adb
  inflating: starter_v/vtools/src/vpatch.adb
  inflating: starter_v/vtools/src/dir.c
  inflating: starter_v/vtools/src/util.c
  inflating: starter_v/vtools/src/keccak.h
  inflating: starter_v/vtools/src/diff.h
  inflating: starter_v/vtools/src/bits.adb
  inflating: starter_v/vtools/src/character_io.ads
  inflating: starter_v/vtools/src/context.c
  inflating: starter_v/vtools/src/smg_keccak.adb
  inflating: starter_v/vtools/src/character_io.adb
  inflating: starter_v/vtools/src/ksum.adb
  inflating: starter_v/vtools/src/analyze.c
  inflating: starter_v/vtools/src/keccak_c.ads
  inflating: starter_v/vtools/src/io.c
  inflating: starter_v/vtools/src/diff.c
  inflating: starter_v/vtools/src/smg_keccak.ads
  inflating: starter_v/vtools/src/system.h
   creating: starter_v/vtools/lib/
  inflating: starter_v/vtools/lib/hash.c
  inflating: starter_v/vtools/lib/cmpbuf.c
  inflating: starter_v/vtools/lib/progname.c
  inflating: starter_v/vtools/lib/filetype.h
  inflating: starter_v/vtools/lib/xalloc.c
  inflating: starter_v/vtools/lib/dirname.h
  inflating: starter_v/vtools/lib/filetype.c
  inflating: starter_v/vtools/lib/progname.h
  inflating: starter_v/vtools/lib/cmpbuf.h
  inflating: starter_v/vtools/lib/error.h
  inflating: starter_v/vtools/lib/error.c
  inflating: starter_v/vtools/lib/filenamecat.c
  inflating: starter_v/vtools/lib/dirname.c
  inflating: starter_v/vtools/lib/diffseq.h
  inflating: starter_v/vtools/lib/hash.h
  inflating: starter_v/vtools/lib/filenamecat.h
  inflating: starter_v/vtools/lib/xalloc.h
   creating: starter_v/vtools/obj/
 extracting: starter_v/vtools/obj/readme
mod6@cuntoo-test1 ~/trb $
mod6@cuntoo-test1 ~/trb $ cd starter_v
mod6@cuntoo-test1 ~/trb/starter_v $ chmod +x build.sh
mod6@cuntoo-test1 ~/trb/starter_v $ ./build.sh
Compile
   [C]            diff.c
   [C]            filetype.c
   [C]            error.c
   [C]            cmpbuf.c
   [C]            progname.c
   [C]            dirname.c
   [C]            hash.c
   [C]            filenamecat.c
   [C]            xalloc.c
   [C]            dir.c
   [C]            io.c
   [C]            util.c
   [C]            context.c
   [C]            analyze.c
   [Ada]          bits.adb
   [Ada]          ksum.adb
   [Ada]          character_io.adb
   [Ada]          keccak_c.adb
   [Ada]          smg_keccak.adb
Bind
   [gprbind]      diff.bexch
   [Ada]          bits.ali -n
Link
   [archive]      libvdiff.a
   [index]        libvdiff.a
   [link]         diff.c
Compile
   [Ada]          vpatch.adb
Bind
   [gprbind]      vpatch.bexch
   [Ada]          vpatch.ali
Link
   [link]         vpatch.adb
Bind
   [gprbind]      ksum.bexch
   [Ada]          ksum.ali
Link
   [link]         ksum.adb
Done.
mod6@cuntoo-test1 ~/trb/starter_v $
mod6@cuntoo-test1 ~/trb/starter_v $ command -v ksum
/usr/local/bin/ksum
mod6@cuntoo-test1 ~/trb/starter_v $ command -v vdiff
/usr/local/bin/vdiff
mod6@cuntoo-test1 ~/trb/starter_v $ command -v vpatch
/usr/local/bin/vpatch
mod6@cuntoo-test1 ~/trb $ mkdir .wot
mod6@cuntoo-test1 ~/trb $ mkdir .seals
mod6@cuntoo-test1 ~/trb $ mkdir patches
mod6@cuntoo-test1 ~/trb $ cd .wot
mod6@cuntoo-test1 ~/trb/.wot $ cp ~/pubkeys/mod6.asc .
mod6@cuntoo-test1 ~/trb/.wot $ cd ../
mod6@cuntoo-test1 ~/trb $ cp starter_v/vk.pl .
mod6@cuntoo-test1 ~/trb $ ./vk.pl w
mod6:027A8D7C0FB8A16643720F40721705A8B71EADAF:mod6 (mod6) 
mod6@cuntoo-test1 ~/trb $ curl -sL "http://mod6.net/trb/regrinds/keccak_trb_20190112.tar.gz" -O
mod6@cuntoo-test1 ~/trb $ curl -sL "http://mod6.net/trb/regrinds/keccak_trb_20190112.tar.gz.mod6.sig" -O
mod6@cuntoo-test1 ~/trb $ gpg --import ~/pubkeys/mod6.asc
gpg: key B71EADAF: public key "mod6 (mod6) " imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
gpg: no ultimately trusted keys found
mod6@cuntoo-test1 ~/trb $ gpg --verify keccak_trb_20190112.tar.gz.mod6.sig keccak_trb_20190112.tar.gz
gpg: Signature made Sun Jan 13 18:39:41 2019 UTC using RSA key ID B71EADAF
gpg: Good signature from "mod6 (mod6) "
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 027A 8D7C 0FB8 A166 4372  0F40 7217 05A8 B71E ADAF
mod6@cuntoo-test1 ~/trb $ tar -xf keccak_trb_20190112.tar.gz
mod6@cuntoo-test1 ~/trb $ ls
keccak_trb_20190112.tar.gz  keccak_trb_20190112.tar.gz.mod6.sig  log.txt  seals  starter_v  starter_v.zip  starter_v.zip.diana_coman.sig  vk.pl  vpatches
mod6@cuntoo-test1 ~/trb $ mv seals/ .seals
mod6@cuntoo-test1 ~/trb $ mv vpatches/ patches
mod6@cuntoo-test1 ~/trb $ ./vk.pl f
genesis.vpatch (mod6)
bitcoin-asciilifeform.1.vpatch (mod6)
rm_rf_upnp.vpatch (mod6)
bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch (mod6)
bitcoin-asciilifeform.2-https_snipsnip.vpatch (mod6)
bitcoin-asciilifeform.4-goodbye-win32.vpatch (mod6)
asciilifeform_dnsseed_snipsnip.vpatch (mod6)
asciilifeform_zap_hardcoded_seeds.vpatch (mod6)
asciilifeform-kills-integer-retardation.vpatch (mod6)
asciilifeform_zap_showmyip_crud.vpatch (mod6)
asciilifeform_dns_thermonyukyoolar_kleansing.vpatch (mod6)
asciilifeform_and_now_we_have_block_dumper_corrected.vpatch (mod6)
mod6_fix_dumpblock_params.vpatch (mod6)
bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch (mod6)
bitcoin-v0_5_3_1-rev_bump.7.vpatch (mod6)
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch (mod6)
asciilifeform_orphanage_thermonuke.vpatch (mod6)
asciilifeform_and_now_we_have_eatblock.vpatch (mod6)
bitcoin-v0_5_3-db_config.6.vpatch (mod6)
asciilifeform_tx-orphanage_amputation.vpatch (mod6)
asciilifeform_maxint_locks_corrected.vpatch (mod6)
asciilifeform_lets_lose_testnet.vpatch (mod6)
asciilifeform_add_verifyall_option.vpatch (mod6)
programmable-versionstring.vpatch (mod6)
mod6_der_high_low_s.vpatch (mod6)
malleus_mikehearnificarum.vpatch (mod6)
makefiles.vpatch (mod6)
asciilifeform_aggressive_pushgetblocks.vpatch (mod6)
mod6@cuntoo-test1 ~/trb $ ./vk.pl p a asciilifeform_aggressive_pushgetblocks.vpatch
mod6@cuntoo-test1 ~/trb $ cp -pr a b
mod6@cuntoo-test1 ~/trb $ ls a
bitcoin
mod6@cuntoo-test1 ~/trb $ ls b
bitcoin

# Here's where I went into directory 'b' and made my changes.
#
# See the full (keccak) vpatch at the bottom of this blog post, or here.

mod6@cuntoo-test1 ~/trb $ vdiff a b > mod6_cuntoo_with_ave1_tools.vpatch
mod6@cuntoo-test1 ~/trb $ ./vk.pl p test asciilifeform_aggressive_pushgetblocks.vpatch
mod6@cuntoo-test1 ~/trb $ cd test/
mod6@cuntoo-test1 ~/trb/test $ cp ../mod6_cuntoo_with_ave1_tools.vpatch .
# ( patching manually just for testing! )
mod6@cuntoo-test1 ~/trb/test $ patch -p1 < mod6_cuntoo_with_ave1_tools.vpatch
patching file bitcoin/build/Makefile
patching file bitcoin/build/Makefile.rotor
patching file bitcoin/deps/Makefile
patching file bitcoin/deps/Manifest.sha512

mod6@cuntoo-test1 ~/trb/test $ cd bitcoin
mod6@cuntoo-test1 ~/trb/test/bitcoin $ make ONLINE=1

...

trb/test/bitcoin/build/ourlibs/include -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/nogui/init.o init.cpp
/opt/20180924/x86_64-linux-musl-native/bin/g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/nogui/keystore.o keystore.cpp
/opt/20180924/x86_64-linux-musl-native/bin/g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/nogui/main.o main.cpp
/opt/20180924/x86_64-linux-musl-native/bin/g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/nogui/net.o net.cpp
/opt/20180924/x86_64-linux-musl-native/bin/g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/nogui/protocol.o protocol.cpp
/opt/20180924/x86_64-linux-musl-native/bin/g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/nogui/bitcoinrpc.o bitcoinrpc.cpp
In file included from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio/detail/socket_types.hpp:50:0,
                 from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio/detail/epoll_reactor.hpp:32,
                 from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio/detail/reactor.hpp:21,
                 from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio/detail/impl/task_io_service.ipp:24,
                 from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio/detail/task_io_service.hpp:217,
                 from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio/impl/io_service.hpp:71,
                 from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio/io_service.hpp:767,
                 from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio/basic_io_object.hpp:19,
                 from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio/basic_socket.hpp:19,
                 from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio/basic_datagram_socket.hpp:20,
                 from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio.hpp:20,
                 from bitcoinrpc.cpp:11:
/opt/20180924/x86_64-linux-musl-native/x86_64-linux-musl/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include  to
 [-Wcpp]
 #warning redirecting incorrect #include  to

  ^
/opt/20180924/x86_64-linux-musl-native/bin/g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/nogui/script.o script.cpp
/opt/20180924/x86_64-linux-musl-native/bin/g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/nogui/util.o util.cpp
/opt/20180924/x86_64-linux-musl-native/bin/g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/nogui/wallet.o wallet.cpp
/opt/20180924/x86_64-linux-musl-native/bin/g++ -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -o bitcoind obj/nogui/checkpoints.o obj/nogui/crypter.o obj/nogui/db.o obj/nogui/init.o obj/nogui/keystore.o obj/nogui/main.o obj/nogui/net.o obj/nogui/protocol.o obj/nogui/bitcoinrpc.o obj/nogui/script.o obj/nogui/util.o obj/nogui/wallet.o -L/opt/20180924/x86_64-linux-musl-native/lib -L/home/mod6/trb/test/bitcoin/build/ourlibs/lib -L/home/mod6/trb/test/bitcoin/build/ourlibs/lib -L/home/mod6/trb/test/bitcoin/build/ourlibs/lib -Wl,-Bstatic -l boost_system -l boost_filesystem -l boost_program_options -l boost_thread -l db_cxx -l ssl -l crypto -static-libgcc -Wl,-Bstatic -l pthread
make[3]: Leaving directory '/home/mod6/trb/test/bitcoin/src'
strip ../src/bitcoind
make[2]: Leaving directory '/home/mod6/trb/test/bitcoin/build'
cp ../src/bitcoind .
make[1]: Leaving directory '/home/mod6/trb/test/bitcoin/build'
make -C bin
make[1]: Entering directory '/home/mod6/trb/test/bitcoin/bin'
cp ../build/bitcoind .
#grep "  bitcoind$" Manifest.sha512 | sha512sum -c || (mv bitcoind bitcoind.badsum && false)
make[1]: Leaving directory '/home/mod6/trb/test/bitcoin/bin'
mod6@cuntoo-test1 ~/trb/test/bitcoin $ ls -al bin/bitcoind
-rwxr-xr-x 1 mod6 mod6 5085296 May 18 00:40 bin/bitcoind
mod6@cuntoo-test1 ~/trb/test/bitcoin $ mkdir ~/.bitcoin
mod6@cuntoo-test1 ~/trb/test/bitcoin $ vim ~/.bitcoin/bitcoin.conf
mod6@cuntoo-test1 ~/trb/test/bitcoin $
...
From here I started up bitcoind, and pulled the first 2000 blocks.

Here is the full (keccak) 'mod6_cuntoo_with_ave1_tools.vpatch' file (for review):

diff -uNr a/bitcoin/build/Makefile b/bitcoin/build/Makefile
--- a/bitcoin/build/Makefile c958ddef742cd53043ad744166918e1e0a16da6e660341adfddb34280e650031dd0ada7ebf0679764a2dbd41a70d78204af34f381f8ed4e48be0098227a19358
+++ b/bitcoin/build/Makefile 1199de9a81356a54737644c0177c48f7c6e558eb0b3e37e3f5a4129b748505725c0117c2f0b96f3d0bec812b6aed042c2cff4dd679426e7675f23c544885119e
@@ -1,6 +1,6 @@
 BUILDER=rotor

-all: buildroot-2015.05 rotor bitcoind
+all: rotor bitcoind

 clean:
 	find . -maxdepth 1 \
@@ -9,31 +9,11 @@
 	-not -name '.' \
 	-exec rm -rf {} \;

-buildroot-2015.05:
-	tar -xvzf ../deps/buildroot-2015.05.tar.gz
-	tar -xvzf ../deps/rotor.tar.gz
-	cp rotor_buildroot_dot_config buildroot-2015.05/.config
-	mkdir -p buildroot-2015.05/dl
-	cp ../deps/binutils-2.24.tar.bz2 \
-	../deps/busybox-1.23.2.tar.bz2 \
-	../deps/expat-2.1.0.tar.gz \
-	../deps/fakeroot_1.18.4.orig.tar.bz2 \
-	../deps/gcc-4.9.2.tar.bz2 \
-	../deps/gdb-7.8.2.tar.xz \
-	../deps/gmp-6.0.0a.tar.xz \
-	../deps/linux-3.18.14.tar.xz \
-	../deps/m4-1.4.17.tar.xz \
-	../deps/mpc-1.0.3.tar.gz \
-	../deps/mpfr-3.1.2.tar.xz \
-	../deps/musl-1.1.8.tar.gz \
-	../deps/ncurses-5.9.tar.gz \
-	../deps/pkgconf-0.8.9.tar.bz2 \
-	buildroot-2015.05/dl
-
 	$(MAKE) -C buildroot-2015.05

 .PHONY: $(BUILDER)
 $(BUILDER):
+	tar -xvzf ../deps/rotor.tar.gz
 	$(MAKE) -f Makefile.$(BUILDER)

 bitcoind:
diff -uNr a/bitcoin/build/Makefile.rotor b/bitcoin/build/Makefile.rotor
--- a/bitcoin/build/Makefile.rotor ba5a6c72cf444b5872fb006ca025ea4df3c7293a8986019b64fb57ef9d28e6a3080a81a169197b956825c1fee92fc025c0ec9a8e36f50d9fb7c2f3a9bd8ac5de
+++ b/bitcoin/build/Makefile.rotor a3138a9e927585e84258b1ab008120e5be73dfa2f1f6bebc41c54fff75e601baf24263b707af9ebcb2ecca8d3436e45242fba0ee456335858b6cd8ff3cafabb6
@@ -7,12 +7,12 @@

 export DIST=$(shell readlink -f ../deps)
 export OURLIBS=$(shell readlink -f ./ourlibs)
-export CC=$(shell readlink -f toolchain/usr/bin/x86_64-therealbitcoin-linux-musl-gcc)
-export CXX=$(shell readlink -f toolchain/usr/bin/x86_64-therealbitcoin-linux-musl-g++)
-export LD=$(shell readlink -f toolchain/usr/bin/x86_64-therealbitcoin-linux-musl-ld)
-export CFLAGS=-I$(shell readlink -f toolchain/usr/include)
-export LDFLAGS=-L$(shell readlink -f toolchain/usr/lib)
-export PATH := $(PATH):$(shell readlink -f toolchain/usr/bin)
+export CC=$(shell readlink -f /opt/20180924/x86_64-linux-musl-native/bin/gcc)
+export CXX=$(shell readlink -f /opt/20180924/x86_64-linux-musl-native/bin/g++)
+export LD=$(shell readlink -f /opt/20180924/x86_64-linux-musl-native/bin/ld)
+export CFLAGS=-I$(shell readlink -f /opt/20180924/x86_64-linux-musl-native/include)
+export LDFLAGS=-L$(shell readlink -f /opt/20180924/x86_64-linux-musl-native/lib)
+export PATH := $(PATH):$(shell readlink -f /opt/20180924/x86_64-linux-musl-native/bin)
 export BOOST_INCLUDE_PATH=$(OURLIBS)/include
 export BDB_INCLUDE_PATH=$(OURLIBS)/include
 export OPENSSL_INCLUDE_PATH=$(OURLIBS)/include
@@ -38,7 +38,7 @@
 $(BDB):
 	tar xvfz $(DIST)/$(BDB).tar.gz
 	cd $(BDB)/build_unix && \
-	../dist/configure --enable-cxx --prefix=$(OURLIBS) --host=x86_64-linux && \
+	../dist/configure --disable-shared --enable-cxx --prefix=$(OURLIBS) --host=x86_64-linux && \
 	$(MAKE) && \
 	$(MAKE) install

diff -uNr a/bitcoin/deps/Makefile b/bitcoin/deps/Makefile
--- a/bitcoin/deps/Makefile 84410767530f3081269fbc0f494b5a00f7d7f665ed442a7330b87cee22fb83d5bd4acdb47f75e0cce984a37372cb81ef16931280aa3b8abcf879caa632258548
+++ b/bitcoin/deps/Makefile 4b8ba13ff82f0e6095a5d1a8a4928b3223fb2be6acb4335eb8026e0f441a49d58fb93dfabbf1f4f8ce8e9ddc613706b8986da4e495d9a4f66452d74544ace01d
@@ -1,32 +1,17 @@
 include ../verify.mk

-all: boost_1_52_0.tar.bz2 buildroot-2015.05.tar.gz db-4.8.30.tar.gz \
-     openssl-1.0.1g.tar.gz binutils-2.24.tar.bz2 busybox-1.23.2.tar.bz2 \
-     expat-2.1.0.tar.gz fakeroot_1.18.4.orig.tar.bz2 gcc-4.9.2.tar.bz2 \
-     gdb-7.8.2.tar.xz gmp-6.0.0a.tar.xz linux-3.18.14.tar.xz \
-     m4-1.4.17.tar.xz mpc-1.0.3.tar.gz mpfr-3.1.2.tar.xz musl-1.1.8.tar.gz \
-     ncurses-5.9.tar.gz pkgconf-0.8.9.tar.bz2 rotor.tar.gz \
-     rotor-db-configure-fix.patch
+all: boost_1_52_0.tar.bz2 db-4.8.30.tar.gz openssl-1.0.1g.tar.gz \
+     rotor.tar.gz rotor-db-configure-fix.patch

 check:
 	$(SHA512) -c Manifest.sha512

 clean:
-	rm -f boost_1_52_0.tar.bz2 buildroot-2015.05.tar.gz db-4.8.30.tar.gz \
-	openssl-1.0.1g.tar.gz binutils-2.24.tar.bz2 busybox-1.23.2.tar.bz2 \
-	expat-2.1.0.tar.gz fakeroot_1.18.4.orig.tar.bz2 gcc-4.9.2.tar.bz2 \
-	gdb-7.8.2.tar.xz gmp-6.0.0a.tar.xz linux-3.18.14.tar.xz \
-	m4-1.4.17.tar.xz mpc-1.0.3.tar.gz mpfr-3.1.2.tar.xz musl-1.1.8.tar.gz \
-	ncurses-5.9.tar.gz pkgconf-0.8.9.tar.bz2 rotor.tar.gz \
-	rotor-db-configure-fix.patch boost_1_52_0.tar.bz2.asc \
-	buildroot-2015.05.tar.gz.asc db-4.8.30.tar.gz.asc \
-	openssl-1.0.1g.tar.gz.asc binutils-2.24.tar.bz2.asc \
-	busybox-1.23.2.tar.bz2.asc expat-2.1.0.tar.gz.asc \
-	fakeroot_1.18.4.orig.tar.bz2.asc gcc-4.9.2.tar.bz2.asc \
-	gdb-7.8.2.tar.xz.asc gmp-6.0.0a.tar.xz.asc linux-3.18.14.tar.xz.asc \
-	m4-1.4.17.tar.xz.asc mpc-1.0.3.tar.gz.asc mpfr-3.1.2.tar.xz.asc \
-	musl-1.1.8.tar.gz.asc ncurses-5.9.tar.gz.asc pkgconf-0.8.9.tar.bz2.asc \
-	rotor.tar.gz.asc rotor-db-configure-fix.patch.asc
+	rm -f boost_1_52_0.tar.bz2.asc boost_1_52_0.tar.bz2 \
+	db-4.8.30.tar.gz.asc db-4.8.30.tar.gz \
+	openssl-1.0.1g.tar.gz.asc openssl-1.0.1g.tar.gz \
+	rotor.tar.gz.asc rotor.tar.gz \
+	rotor-db-configure-fix.patch.asc rotor-db-configure-fix.patch

 boost_1_52_0.tar.bz2:
 ifdef ONLINE
@@ -36,14 +21,6 @@
 	$(DECODE_DEED)
 	$(CHECKSUM_OR_DIE)

-buildroot-2015.05.tar.gz:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-422651-2.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
 db-4.8.30.tar.gz:
 ifdef ONLINE
 	curl -s http://deedbot.org/deed-422651-3.txt -o $@.asc
@@ -58,118 +35,6 @@
 endif
 	$(VERIFY_DEED_OR_DIE)
 	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-binutils-2.24.tar.bz2:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-1.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-busybox-1.23.2.tar.bz2:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-2.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-expat-2.1.0.tar.gz:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-3.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-fakeroot_1.18.4.orig.tar.bz2:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-4.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-gcc-4.9.2.tar.bz2:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-5.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-gdb-7.8.2.tar.xz:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-6.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-gmp-6.0.0a.tar.xz:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-7.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-linux-3.18.14.tar.xz:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-8.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-m4-1.4.17.tar.xz:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-9.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-mpc-1.0.3.tar.gz:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-10.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-mpfr-3.1.2.tar.xz:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-11.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-musl-1.1.8.tar.gz:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-12.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-ncurses-5.9.tar.gz:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-13.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-pkgconf-0.8.9.tar.bz2:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-14.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
 	$(CHECKSUM_OR_DIE)

 rotor-db-configure-fix.patch:
diff -uNr a/bitcoin/deps/Manifest.sha512 b/bitcoin/deps/Manifest.sha512
--- a/bitcoin/deps/Manifest.sha512 15a253bba8d7d35ac2f19017ae7350fd8906ad4ec93783d83aca5d07f9d4e0bab5bbaeef0e091276aac7f1cd7c00f64b3edf23c8a74e0ae66273ac99edf1bda2
+++ b/bitcoin/deps/Manifest.sha512 9a04e9d02fb697d6c5a2b45965d09edc14172a3205159899126c8d26effaa0aa8508c665e44f5d3ad3dfd3b4e92a9d58ab3d719185d857700944a811ab8b0675
@@ -1,20 +1,5 @@
-5ec95ad47d49b12c4558a8db0ca2109d3ee1955e3776057f3330c4506f8f4d1cf5e505fbf8a16b98403a0fcdeaaf986fe0a22be6456247dbdace63ce1f776b12  binutils-2.24.tar.bz2
 fc512d3bfa6a39a60fee548775c97239271cf757587b8df7ed739c800844a819a359dca172be0e69ad7752753753139bf11f0813d650066d58386662fe32842d  boost_1_52_0.tar.bz2
-c42fdd39cb2bc46804a86a7d7b2605bd3cd9ddcb365c4e5a1fb147eb02b234fc31a70c8140be2f4d27cd371c84e0c6701f8cb47697dd1c18dd0e0cce784aa07a  buildroot-2015.05.tar.gz
-209c8ef26e40ccb81510f6b663202b080f9bbecac7faf386bbabf7e36a43d63b15dd6ce9f7a84c1ccc5345c524999812251da1e113ef9faadc6af1fedd24c7c9  busybox-1.23.2.tar.bz2
 d1a3c52b0ab54ae3fd6792e6396c9f74d25f36b2eb9e853b67ef9c872508a58c784c7818108d06d184f59601b70cc877916e67dfea6f0ee1ca2b07468c1041f1  db-4.8.30.tar.gz
-2a9ad2b44b87b84087979fe4114d661838df3b03dbdcb74d590cb74096bf35ce9d5a86617b0941a2655ea441a94537bcbcd78252da92342238823be36de2d09d  expat-2.1.0.tar.gz
-497292fe21d18a37eadd657fbe01db8902f4b8d87d63605928efd59789f4c14737997b9f0abc4d794dbef78066b952064bdb2dd9f0910ec75349d7dd313cd058  fakeroot_1.18.4.orig.tar.bz2
-e96cba06d572dbe7f382a2b00fd9297dcf9f9219d46a9ad0bd904dc36d5e7db3335e422640b79a27fed6fde91b0731732b94a0e2fbcd47344d6779f8ba1f4f9c  gcc-4.9.2.tar.bz2
-face5bf1b4ce144fc8604fc84620beed956177a11fd632b4e41906fc7f632910b2b43a50e6cfdfd6cbd876ee527c813bddab8df29dc560a6c36694cdb8edc4e4  gdb-7.8.2.tar.xz
-50368f4368b244b442438ce1768cf0f1166e490d1bafb8feda1ffc90fea3807e7328f30f3faa861799e4f5ff6e3113049ca3231b2f48571e4583fc3d60441816  gmp-6.0.0a.tar.xz
-688a107e7ff2f0d21196fbf809173fee6620ec8e7694188ff38e45a1b16632bca33c617e012726142d8bd80307fc05207badfb115df95df05ee0734d5569a9cb  linux-3.18.14.tar.xz
-406e6e97c3f5c5f3c8055bac748d4fe8c2e861d97e84ab6d840a2caa7df04f523cc662d6d51f6afae7d6c219d03693c7ae0c1e669a80246a3ceb5e8342b82389  m4-1.4.17.tar.xz
-0028b76df130720c1fad7de937a0d041224806ce5ef76589f19c7b49d956071a683e2f20d154c192a231e69756b19e48208f2889b0c13950ceb7b3cfaf059a43  mpc-1.0.3.tar.gz
-8d594206afb2637ed39ad564d42c8c4d02b042b95925f5c6ec891e5cb87f7155195559c7ff477256a088ecaaa3c2b0d35a9d11a74ed526a1080d49b2950e5587  mpfr-3.1.2.tar.xz
-de2f0b03fd199e2ceb9937686d1092838744dccaddb3916f9baef9cdd2621624fb3c4af2206a3366d12852d84ccc8b0b68350f9d06a9e2bcdbc0309dc05383ff  musl-1.1.8.tar.gz
-d7c5e54b6d4d8b9211f0006ca8786f7609d180cc1aaebf4f25e7e35e12959779cf66447359a602daed625621ca32b0d910d67aef3eb8b6fdc3c373819a88faa1  ncurses-5.9.tar.gz
 66ebbad3c8ad98a07b486d39d0c3ae62b00133f8f2877cf8b97c461e7c7f40b29cf9c3cae82cf73a92dcf1daa63d33aa76c910fbcbe60158589fc7cb48f41e6d  openssl-1.0.1g.tar.gz
-3acb571412dedc2587203ed05537ce3adbaa64f2fab4f561da9824917c15e2ea771db7525f9a026261086f4ae196c3a5183e1bb3d33e14fdd779fbe74e6215c3  pkgconf-0.8.9.tar.bz2
 e232c07238feb16ce055211fba68ed283c47753a8716681ac47c869c21936f48768fafaac678f64ee17cf2b62b669a0d2c481008b5ccaf76007f66501a02990d  rotor.tar.gz
 2c1152a88dd6d8e4b0f736dbf0ce2691c66fc592c1ef6c332a976ae7e9ca86850091032d23042558e3eabc0dc2b591f482566ef433606fb91a06dee9a0485063  rotor-db-configure-fix.patch