It was brought to the attention of The Bitcoin Foundation by phf that a UTF-8 character was discovered in the original genesis.vpatch of The Bitcoin Reference Implementation, also known as The Real Bitcoin (TRB). UTF-8 characters are forbidden in The Reference Implementation source code, and will be removed. This post meant to present, in detail for Lords of the Most Serene Republic, all of the requisite work to remove the UTF-8 character, and regrind genesis.vpatch as well as descendant vpatches in v0.5.4 RELEASE.
Upon inspection of we have found the original culprit of this offense. The character in question appears on line 23962 of genesis.vpatch. It is a substituted Unicode character for a hyphen.
After the UTF-8 character was found in genesis.vpatch I took it
upon myself to search through the rest of the v0.5.4 Release vpatches to see if any others were lurking in the thousands of lines of
source code.
There are two ways to go about the ``Seek & Destroy UTF-8'' mission: Automate the search, and do the check by hand.
To cover the former, automation, I created two different programs, one in perl, and one in C to check each character and
see if it fell within the 7-Bit ASCII range. It should be said that a check-by-hand is also in necessary, as even the most
well intentioned automation can miss something that would be obvious to the human eye; However, to save us time right now,
(there are well over a million bytes to examine contained in v0.5.4 Release) we'll just check with automation.
mod6@gentoo ~/check_nonascii_bytes $ ls patches/ asciilifeform-kills-integer-retardation.vpatch bitcoin-asciilifeform.2-https_snipsnip.vpatch asciilifeform_add_verifyall_option.vpatch bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch asciilifeform_and_now_we_have_block_dumper_corrected.vpatch bitcoin-asciilifeform.4-goodbye-win32.vpatch asciilifeform_and_now_we_have_eatblock.vpatch bitcoin-v0_5_3-db_config.6.vpatch asciilifeform_dns_thermonyukyoolar_kleansing.vpatch bitcoin-v0_5_3_1-rev_bump.7.vpatch asciilifeform_dnsseed_snipsnip.vpatch bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch asciilifeform_lets_lose_testnet.vpatch genesis.vpatch asciilifeform_maxint_locks_corrected.vpatch makefiles.vpatch asciilifeform_orphanage_thermonuke.vpatch malleus_mikehearnificarum.vpatch asciilifeform_tx-orphanage_amputation.vpatch mod6_der_high_low_s.vpatch asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch mod6_fix_dumpblock_params.vpatch asciilifeform_zap_hardcoded_seeds.vpatch programmable-versionstring.vpatch asciilifeform_zap_showmyip_crud.vpatch rm_rf_upnp.vpatch bitcoin-asciilifeform.1.vpatch mod6@gentoo ~/check_nonascii_bytes $ ls -l patches | awk '{print $5}' | perl -e '@a=<STDIN>; $total=0; foreach $n (@a) { chomp($n); $total+=$n; } print "Total Bytes: $total\n";' Total Bytes: 1049853
WARNING: Neither of these programs are pretty, or meant to be used for anything else, but for our purposes here: They get the job done.
Let's start with the perl program that I wrote to search through all the v0.5.4 Release vpatches. First, I'll present the execution
of this program, followed by posting the source code.
mod6@gentoo ~/check_nonascii_bytes $ ./v.pl i http://thebitcoin.foundation Full vpatch sync complete to "/home/mod6/check_nonascii_bytes/patches" Seal sync complete to "/home/mod6/check_nonascii_bytes/.seals" mod6@gentoo ~/check_nonascii_bytes $ for i in `ls patches`; do echo "vpatch: $i" && cat patches/$i | ./check_nonascii_bytes.pl; done vpatch: asciilifeform-kills-integer-retardation.vpatch vpatch: asciilifeform_add_verifyall_option.vpatch vpatch: asciilifeform_and_now_we_have_block_dumper_corrected.vpatch vpatch: asciilifeform_and_now_we_have_eatblock.vpatch vpatch: asciilifeform_dns_thermonyukyoolar_kleansing.vpatch vpatch: asciilifeform_dnsseed_snipsnip.vpatch vpatch: asciilifeform_lets_lose_testnet.vpatch vpatch: asciilifeform_maxint_locks_corrected.vpatch vpatch: asciilifeform_orphanage_thermonuke.vpatch vpatch: asciilifeform_tx-orphanage_amputation.vpatch vpatch: asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch vpatch: asciilifeform_zap_hardcoded_seeds.vpatch vpatch: asciilifeform_zap_showmyip_crud.vpatch vpatch: bitcoin-asciilifeform.1.vpatch vpatch: bitcoin-asciilifeform.2-https_snipsnip.vpatch vpatch: bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch vpatch: bitcoin-asciilifeform.4-goodbye-win32.vpatch vpatch: bitcoin-v0_5_3-db_config.6.vpatch vpatch: bitcoin-v0_5_3_1-rev_bump.7.vpatch vpatch: bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch vpatch: genesis.vpatch NON-7BIT-ASCII VALUE IN SOURCE FILE: a/bitcoin/src/util.h ; BYTE VALUE: e2 NON-7BIT-ASCII VALUE IN SOURCE FILE: a/bitcoin/src/util.h ; BYTE VALUE: 80 NON-7BIT-ASCII VALUE IN SOURCE FILE: a/bitcoin/src/util.h ; BYTE VALUE: 94 vpatch: makefiles.vpatch vpatch: malleus_mikehearnificarum.vpatch vpatch: mod6_der_high_low_s.vpatch vpatch: mod6_fix_dumpblock_params.vpatch vpatch: programmable-versionstring.vpatch vpatch: rm_rf_upnp.vpatch mod6@gentoo ~/check_nonascii_bytes $
As we can see from the above, we sync'd all of the vpatches and seals from The Bitcoin Foundation's mirror of v0.5.4 Release vpatches.
After sync'ing, we iterate through each vpatch and cat, and feeding them into `check_nonascii_bytes.pl`. Three bytes were discovered
in the whole set of v0.5.4 Release vpatches, specifically 'e2', '80', and '94' from genesis.vpatch, in the source file of 'util.h'; the
very same hyphen as aforementioned in this post.
The following is source code for `check_nonascii_bytes.pl`:
#!/usr/bin/perl use strict; my @vpatch=<STDIN>; # Keep track of the current source file we're looking through. my $src_file = ""; # Iterate over the vpatch one line at a time. foreach my $line (@vpatch) { if($line =~ /^--- (.*) .*/) { $src_file = $1; } # unpack the line into hex i.e. ; # 64696666202d754e7220612f626974636f696e2f2e67697469676e6f726520622f626974636f696e2f2e67697469676e6f72650a my $hex_line = unpack "H*", $line; # add spaces between each two character hex byte, i.e. ; # 64 69 66 66 20 2d 75 4e 72 20 61 2f 62 69 74 63 6f 69 6e 2f 2e 67 69 74 69 67 6e 6f 72 65 20 62 2f 62 69 74 63 6f 69 6e 2f 2e 67 69 74 69 67 6e 6f 72 65 0a $hex_line =~ s/(..)(?!$)/$1 /g; # Split out each two character hex representation by spaces, into array. my @line_bytes = split / /, $hex_line; # Iterate through the array of two character representations of bytes, one at a time. foreach my $lb (@line_bytes) { # Check the current two character representations. # First character must be between 0 and 7 # Second character can be 0-9, or a-f. # If the two character byte representation is *NOT* in this range, # we've found a non-seven-bit-ascii char. if($lb !~ /^[0-7][0-9a-f]$/i) { print "NON-7BIT-ASCII VALUE IN SOURCE FILE: $src_file ; BYTE VALUE: $lb\n"; } } }
Next, I wrote a C program that completes the same task, here's what it's execution looks like:
mod6@gentoo ~/check_nonascii_bytes $ for i in `ls patches`; do echo "vpatch: $i"; ./cb patches/$i; done vpatch: asciilifeform-kills-integer-retardation.vpatch vpatch: asciilifeform_add_verifyall_option.vpatch vpatch: asciilifeform_and_now_we_have_block_dumper_corrected.vpatch vpatch: asciilifeform_and_now_we_have_eatblock.vpatch vpatch: asciilifeform_dns_thermonyukyoolar_kleansing.vpatch vpatch: asciilifeform_dnsseed_snipsnip.vpatch vpatch: asciilifeform_lets_lose_testnet.vpatch vpatch: asciilifeform_maxint_locks_corrected.vpatch vpatch: asciilifeform_orphanage_thermonuke.vpatch vpatch: asciilifeform_tx-orphanage_amputation.vpatch vpatch: asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch vpatch: asciilifeform_zap_hardcoded_seeds.vpatch vpatch: asciilifeform_zap_showmyip_crud.vpatch vpatch: bitcoin-asciilifeform.1.vpatch vpatch: bitcoin-asciilifeform.2-https_snipsnip.vpatch vpatch: bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch vpatch: bitcoin-asciilifeform.4-goodbye-win32.vpatch vpatch: bitcoin-v0_5_3-db_config.6.vpatch vpatch: bitcoin-v0_5_3_1-rev_bump.7.vpatch vpatch: bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch vpatch: genesis.vpatch OUT OF 7-BIT ASCII RANGE! : e2 OUT OF 7-BIT ASCII RANGE! : 80 OUT OF 7-BIT ASCII RANGE! : 94 vpatch: makefiles.vpatch vpatch: malleus_mikehearnificarum.vpatch vpatch: mod6_der_high_low_s.vpatch vpatch: mod6_fix_dumpblock_params.vpatch vpatch: programmable-versionstring.vpatch vpatch: rm_rf_upnp.vpatch
Just as before, we iterate through each vpatch and feed it into our program, `cb` (check_bytes.c). Three bytes were discovered
in the whole set of v0.5.4 Release vpatches, specifically 'e2', '80', and '94' from genesis.vpatch; the very same hyphen as aforementioned
in this post.
The following is source code for `check_bytes.c`:
#include <stdio.h> #include <stdlib.h> void read_file(char *filename) { FILE *file; char *line = NULL; size_t len = 0; ssize_t read; int pos = 0; // Position in line short int d = 0; // holds the short decimal value of the char // attempt to open our file, read-only mode. file = fopen(filename, "r"); // if our file stream is NULL, print error and exit. if (file == NULL) { fprintf(stderr, "FILE COULD NOT BE OPENED! EXITING.\n"); exit(-1); } // Read a file line by line. while((read = getline(&line, &len, file)) != -1) { pos = 0; // Iterate through each character in the line, until we hit the NULL byte. while(line[pos] != '\0') { // set the current line position char in numeric form d = (short int) line[pos]; // test numeric form of char if within 7-BIT ASCII range if(d < 0x0 || d > 0x7f) { fprintf(stdout, "OUT OF 7-BIT ASCII RANGE! : %02x\n", (unsigned char) line[pos]); } // move to the next position in the line pos++; } } // Clean up free(line); fclose(file); } int main(int argc, char **argv) { int i; // Iterate through all of the files given to us via command line for(i = 1; i < argc; i++) { read_file(argv[i]); // Call read_file for each given filename } return 0; }
From running the above two programs we can see that genesis.vpatch has three NON-7BIT-ASCII bytes. Since these bytes
exist in util.h, we'll also need to determine which descendant vpatches are necessary to regrind. Note that every descendant
vpatch that touches util.h will need to be reground. First, I did this by hand; but afterwards, realized that it wouldn't be
hard to have V do this task for us.
I implemented two subroutines to take a descendant hash from a vpatch file, which will recurse to
find all the descendant vpatches that touch the same source file and report them to stdout.
First, we'll need to find util.h's descendant hash from genesis.vpatch, then feed it into V:
mod6@gentoo ~/check_nonascii_bytes $ grep -e "^\+\+\+ b/.*util.h" patches/genesis.vpatch +++ b/bitcoin/src/util.h 04d09e92edd13820ea292bc0c0f66a9bc6f31c4020204817de56b7ae795c660dd47d7442d32403ba58fdc75ed1985174f6c507bcde7ee988a70185ba22fbb418
***NOTE*** THIS IS EXPERIMENTAL ONLY
Before we feed it into our new command, we can double check the hash with the 'origin' or 'o' command:
mod6@gentoo ~/check_nonascii_bytes $ ./v.pl o 04d09e92edd13820ea292bc0c0f66a9bc6f31c4020204817de56b7ae795c660dd47d7442d32403ba58fdc75ed1985174f6c507bcde7ee988a70185ba22fbb418 Origin: genesis.vpatch (mod6) [ a/bitcoin/src/util.h ]
Now that we can see that the hash matches, we can proceed to feed the hash into the new, experimental command 'descendant-hash', or 'dh':
mod6@gentoo ~/check_nonascii_bytes $ ./v.pl dh 04d09e92edd13820ea292bc0c0f66a9bc6f31c4020204817de56b7ae795c660dd47d7442d32403ba58fdc75ed1985174f6c507bcde7ee988a70185ba22fbb418 Origin: genesis.vpatch (mod6) [ a/bitcoin/src/util.h ] | | | bitcoin-asciilifeform.1.vpatch (mod6) [ a/bitcoin/src/util.h ] +--> Antecedent Hash: 04d09e92edd13820ea292bc0c0f66a9bc6f31c4020204817de56b7ae795c660dd47d7442d32403ba58fdc75ed1985174f6c507bcde7ee988a70185ba22fbb418 + <-- Descendant Hash: 1355ad6ce93816fffc1befd7a68a5fbdf034ae24ae99c64a60269ca9db589363d6531f441cd2393630e3128c2762ddcb8101dd6c305551b70cf24e102e59cfd0 | | | bitcoin-asciilifeform.4-goodbye-win32.vpatch (mod6) [ a/bitcoin/src/util.h ] +--> Antecedent Hash: 1355ad6ce93816fffc1befd7a68a5fbdf034ae24ae99c64a60269ca9db589363d6531f441cd2393630e3128c2762ddcb8101dd6c305551b70cf24e102e59cfd0 + <-- Descendant Hash: 1e2275fea3780708aed4d4c7de351b23a9379354df29dda39b8bf2ccc72df95713514b2b7837dc2230d42cf8234744e804bfd608fb4442ff62871257f8d80c12 | | | asciilifeform-kills-integer-retardation.vpatch (mod6) [ a/bitcoin/src/util.h ] +--> Antecedent Hash: 1e2275fea3780708aed4d4c7de351b23a9379354df29dda39b8bf2ccc72df95713514b2b7837dc2230d42cf8234744e804bfd608fb4442ff62871257f8d80c12 + <-- Descendant Hash: e5e5da8c45c0fab1aca83eadb8e98560dc14f65060803b5efd7ea83418be6412ee6a4f59f15fa939e1d639ef2638c9c5d18b5448c246d943827a41e01997ef7b | | | asciilifeform_and_now_we_have_eatblock.vpatch (mod6) [ a/bitcoin/src/util.h ] +--> Antecedent Hash: e5e5da8c45c0fab1aca83eadb8e98560dc14f65060803b5efd7ea83418be6412ee6a4f59f15fa939e1d639ef2638c9c5d18b5448c246d943827a41e01997ef7b + <-- Descendant Hash: b81e7c3eb43eb18d226c7a0ebb5868cc793c7197318bf7954590136b9713cac00c9f44fc90578c52f86d424b272c2a78c0fc7a55b23b566cc0c859d4c699983c | | | asciilifeform_lets_lose_testnet.vpatch (mod6) [ a/bitcoin/src/util.h ] +--> Antecedent Hash: b81e7c3eb43eb18d226c7a0ebb5868cc793c7197318bf7954590136b9713cac00c9f44fc90578c52f86d424b272c2a78c0fc7a55b23b566cc0c859d4c699983c + <-- Descendant Hash: d88425cb5b70d7df2a60d174f99347b3ac00f0a7f17227bd9944f22ffaa3772389989c00c14135fbbb121fe3cb5b68c51eb1120ce214d3732b354c580d1f2fec | | | asciilifeform_add_verifyall_option.vpatch (mod6) [ a/bitcoin/src/util.h ] +--> Antecedent Hash: d88425cb5b70d7df2a60d174f99347b3ac00f0a7f17227bd9944f22ffaa3772389989c00c14135fbbb121fe3cb5b68c51eb1120ce214d3732b354c580d1f2fec + <-- Descendant Hash: 44bd62e864ed9400105aeea2e2ef6499f971577fd28b9c8dc52ef72dcdb4d4928168037cd7d7fca718e5d5a2d4d7c19c65f5b45c87d814d6e24c0d014b307477 | | | programmable-versionstring.vpatch (mod6) [ a/bitcoin/src/util.h ] +--> Antecedent Hash: 44bd62e864ed9400105aeea2e2ef6499f971577fd28b9c8dc52ef72dcdb4d4928168037cd7d7fca718e5d5a2d4d7c19c65f5b45c87d814d6e24c0d014b307477 + <-- Descendant Hash: d7e407108638c11f75b5bed04dc455ac78a96debc0776cd0e71871001c5886fd1472ae060e7a2334fcf3e323b7ad0a1b4fb68757392cc45a1b09721eb67415d1 | | | mod6_der_high_low_s.vpatch (mod6) [ a/bitcoin/src/util.h ] +--> Antecedent Hash: d7e407108638c11f75b5bed04dc455ac78a96debc0776cd0e71871001c5886fd1472ae060e7a2334fcf3e323b7ad0a1b4fb68757392cc45a1b09721eb67415d1 + <-- Descendant Hash: f0c21c349b56516feac63c9cf8018c82b26583ad290a4b3610965e5a5a703d116671b1ef270395b8289c170b603630b5b7e493725e420e187ba1fbd326061ff5 No Descendants Found by Hash: f0c21c349b56516feac63c9cf8018c82b26583ad290a4b3610965e5a5a703d116671b1ef270395b8289c170b603630b5b7e493725e420e187ba1fbd326061ff5
The above output shows there are nine vpatches that need to be reground to excise those three NON-7BIT-ASCII bytes found
in the util.h file included in genesis.vpatch.
Let's take a look at the two subroutines that were written to produce this new output:
sub print_init_desc_tree { my ($hash) = @_; print_origin($hash); print_descendant_hash_tree($hash); } sub print_descendant_hash_tree { my ($hash) = @_; my $found = "f"; foreach my $k (keys %map) { foreach my $sf (keys %{$map{$k}}) { if($map{$k}{$sf}{a} eq $hash) { $found = "t"; print "|\n"; print "|\n"; print "| $k " . get_signatories($k) . " [ $sf ]\n" . "+--> Antecedent Hash: $hash\n" . "+ <-- Descendant Hash: $map{$k}{$sf}{b}\n"; print_descendant_hash_tree($map{$k}{$sf}{b}); } } } print "No Descendants Found by Hash: $hash\n" if $found ne "t"; }
We now have the nine vpatches that needed regrinding:
After regrinding all nine vpatches, I have signed these with my vpatch-testing key.
Here are the reground patches with corresponding new seals:
mod6@gentoo ~/check_nonascii_bytes/test-regrind $ ./v.pl w mod6:027A8D7C0FB8A16643720F40721705A8B71EADAF:mod6 (mod6) <modsix@gmail.com> mod6-vpatch-testing:3ED06EF340C63F185EE5AA068365BB7FD2C02F12:mod6-vpatch-testing (Key is ONLY for signing test vpatches and development) <modsix@gmail.com>
If we check the press-path of v0.5.4 RELEASE with the reground vpatches, we can see that the new ones are signed with 'mod6-vpatch-testing' and the original ones, that did not need regrinding are signed with 'mod6':
mod6@gentoo ~/check_nonascii_bytes/test-regrind $ ./v.pl pp makefiles.vpatch genesis.vpatch (mod6-vpatch-testing) bitcoin-asciilifeform.1.vpatch (mod6-vpatch-testing) rm_rf_upnp.vpatch (mod6) bitcoin-asciilifeform.2-https_snipsnip.vpatch (mod6) bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch (mod6) bitcoin-asciilifeform.4-goodbye-win32.vpatch (mod6-vpatch-testing) bitcoin-v0_5_3-db_config.6.vpatch (mod6) bitcoin-v0_5_3_1-rev_bump.7.vpatch (mod6) bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch (mod6) asciilifeform-kills-integer-retardation.vpatch (mod6-vpatch-testing) asciilifeform_and_now_we_have_block_dumper_corrected.vpatch (mod6) asciilifeform_dnsseed_snipsnip.vpatch (mod6) asciilifeform_maxint_locks_corrected.vpatch (mod6) asciilifeform_orphanage_thermonuke.vpatch (mod6) asciilifeform_tx-orphanage_amputation.vpatch (mod6) asciilifeform_zap_hardcoded_seeds.vpatch (mod6) asciilifeform_zap_showmyip_crud.vpatch (mod6) mod6_fix_dumpblock_params.vpatch (mod6) asciilifeform_dns_thermonyukyoolar_kleansing.vpatch (mod6) asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch (mod6) asciilifeform_and_now_we_have_eatblock.vpatch (mod6-vpatch-testing) asciilifeform_lets_lose_testnet.vpatch (mod6-vpatch-testing) asciilifeform_add_verifyall_option.vpatch (mod6-vpatch-testing) programmable-versionstring.vpatch (mod6-vpatch-testing) malleus_mikehearnificarum.vpatch (mod6) mod6_der_high_low_s.vpatch (mod6-vpatch-testing) makefiles.vpatch (mod6)
The above output shows that V has accepted the reground patches and seals as expected.
Let's press the newly reground vpatches and ensure that everything is satisfactory:
mod6@gentoo ~/check_nonascii_bytes/test-regrind $ ./v.pl p v trb054 makefiles.vpatch genesis.vpatch patching file bitcoin/.gitignore patching file bitcoin/COPYING patching file bitcoin/src/base58.h patching file bitcoin/src/bignum.h patching file bitcoin/src/bitcoinrpc.cpp patching file bitcoin/src/bitcoinrpc.h patching file bitcoin/src/checkpoints.cpp patching file bitcoin/src/checkpoints.h patching file bitcoin/src/crypter.cpp patching file bitcoin/src/crypter.h patching file bitcoin/src/db.cpp patching file bitcoin/src/db.h patching file bitcoin/src/headers.h patching file bitcoin/src/init.cpp patching file bitcoin/src/init.h patching file bitcoin/src/irc.cpp patching file bitcoin/src/irc.h patching file bitcoin/src/json/LICENSE.txt patching file bitcoin/src/json/json_spirit.h patching file bitcoin/src/json/json_spirit_error_position.h patching file bitcoin/src/json/json_spirit_reader.cpp patching file bitcoin/src/json/json_spirit_reader.h patching file bitcoin/src/json/json_spirit_reader_template.h patching file bitcoin/src/json/json_spirit_stream_reader.h patching file bitcoin/src/json/json_spirit_utils.h patching file bitcoin/src/json/json_spirit_value.cpp patching file bitcoin/src/json/json_spirit_value.h patching file bitcoin/src/json/json_spirit_writer.cpp patching file bitcoin/src/json/json_spirit_writer.h patching file bitcoin/src/json/json_spirit_writer_template.h patching file bitcoin/src/key.h patching file bitcoin/src/keystore.cpp patching file bitcoin/src/keystore.h patching file bitcoin/src/main.cpp patching file bitcoin/src/main.h patching file bitcoin/src/makefile.linux-mingw patching file bitcoin/src/makefile.unix patching file bitcoin/src/net.cpp patching file bitcoin/src/net.h patching file bitcoin/src/noui.h patching file bitcoin/src/obj/.gitignore patching file bitcoin/src/obj/nogui/.gitignore patching file bitcoin/src/obj/test/.gitignore patching file bitcoin/src/obj-test/.gitignore patching file bitcoin/src/protocol.cpp patching file bitcoin/src/protocol.h patching file bitcoin/src/qtui.h patching file bitcoin/src/script.cpp patching file bitcoin/src/script.h patching file bitcoin/src/serialize.h patching file bitcoin/src/strlcpy.h patching file bitcoin/src/test/Checkpoints_tests.cpp patching file bitcoin/src/test/DoS_tests.cpp patching file bitcoin/src/test/README patching file bitcoin/src/test/base58_tests.cpp patching file bitcoin/src/test/base64_tests.cpp patching file bitcoin/src/test/miner_tests.cpp patching file bitcoin/src/test/script_tests.cpp patching file bitcoin/src/test/test_bitcoin.cpp patching file bitcoin/src/test/transaction_tests.cpp patching file bitcoin/src/test/uint160_tests.cpp patching file bitcoin/src/test/uint256_tests.cpp patching file bitcoin/src/test/util_tests.cpp patching file bitcoin/src/uint256.h patching file bitcoin/src/util.cpp patching file bitcoin/src/util.h patching file bitcoin/src/wallet.cpp patching file bitcoin/src/wallet.h bitcoin-asciilifeform.1.vpatch patching file bitcoin/src/bitcoinrpc.cpp patching file bitcoin/src/db.cpp patching file bitcoin/src/headers.h patching file bitcoin/src/init.cpp patching file bitcoin/src/qtui.h patching file bitcoin/src/util.h patching file bitcoin/src/wallet.cpp rm_rf_upnp.vpatch patching file bitcoin/src/db.cpp patching file bitcoin/src/init.cpp patching file bitcoin/src/main.cpp patching file bitcoin/src/main.h patching file bitcoin/src/makefile.linux-mingw patching file bitcoin/src/makefile.unix patching file bitcoin/src/net.cpp bitcoin-asciilifeform.2-https_snipsnip.vpatch patching file bitcoin/src/bitcoinrpc.cpp patching file bitcoin/src/init.cpp patching file bitcoin/src/makefile.linux-mingw patching file bitcoin/src/makefile.unix bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch patching file bitcoin/src/main.cpp patching file bitcoin/src/main.h bitcoin-asciilifeform.4-goodbye-win32.vpatch patching file bitcoin/src/bitcoinrpc.cpp patching file bitcoin/src/crypter.cpp patching file bitcoin/src/db.cpp patching file bitcoin/src/headers.h patching file bitcoin/src/init.cpp patching file bitcoin/src/main.h patching file bitcoin/src/makefile.linux-mingw patching file bitcoin/src/net.cpp patching file bitcoin/src/net.h patching file bitcoin/src/protocol.cpp patching file bitcoin/src/script.h patching file bitcoin/src/serialize.h patching file bitcoin/src/uint256.h patching file bitcoin/src/util.cpp patching file bitcoin/src/util.h bitcoin-v0_5_3-db_config.6.vpatch patching file bitcoin/src/db.cpp bitcoin-v0_5_3_1-rev_bump.7.vpatch patching file bitcoin/src/serialize.h bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch patching file bitcoin/src/makefile.unix asciilifeform-kills-integer-retardation.vpatch patching file bitcoin/src/bitcoinrpc.cpp patching file bitcoin/src/util.h asciilifeform_and_now_we_have_block_dumper_corrected.vpatch patching file bitcoin/src/bitcoinrpc.cpp asciilifeform_dnsseed_snipsnip.vpatch patching file bitcoin/src/init.cpp patching file bitcoin/src/net.cpp asciilifeform_maxint_locks_corrected.vpatch patching file bitcoin/src/db.cpp asciilifeform_orphanage_thermonuke.vpatch patching file bitcoin/src/main.cpp asciilifeform_tx-orphanage_amputation.vpatch patching file bitcoin/src/main.cpp patching file bitcoin/src/main.h asciilifeform_zap_hardcoded_seeds.vpatch patching file bitcoin/src/net.cpp asciilifeform_zap_showmyip_crud.vpatch patching file bitcoin/src/net.cpp mod6_fix_dumpblock_params.vpatch patching file bitcoin/src/bitcoinrpc.cpp asciilifeform_dns_thermonyukyoolar_kleansing.vpatch patching file bitcoin/src/init.cpp patching file bitcoin/src/irc.cpp patching file bitcoin/src/net.cpp patching file bitcoin/src/net.h patching file bitcoin/src/protocol.cpp patching file bitcoin/src/protocol.h asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch patching file bitcoin/src/init.cpp patching file bitcoin/src/irc.cpp patching file bitcoin/src/irc.h patching file bitcoin/src/makefile.unix patching file bitcoin/src/net.cpp patching file bitcoin/src/net.h patching file bitcoin/src/serialize.h asciilifeform_and_now_we_have_eatblock.vpatch patching file bitcoin/src/bitcoinrpc.cpp patching file bitcoin/src/init.cpp patching file bitcoin/src/util.cpp patching file bitcoin/src/util.h asciilifeform_lets_lose_testnet.vpatch patching file bitcoin/src/base58.h patching file bitcoin/src/bitcoinrpc.cpp patching file bitcoin/src/checkpoints.cpp patching file bitcoin/src/init.cpp patching file bitcoin/src/main.cpp patching file bitcoin/src/protocol.h patching file bitcoin/src/util.cpp patching file bitcoin/src/util.h asciilifeform_add_verifyall_option.vpatch patching file bitcoin/src/init.cpp patching file bitcoin/src/main.cpp patching file bitcoin/src/util.cpp patching file bitcoin/src/util.h programmable-versionstring.vpatch patching file bitcoin/src/init.cpp patching file bitcoin/src/knobs.h patching file bitcoin/src/main.cpp patching file bitcoin/src/makefile.unix patching file bitcoin/src/net.h patching file bitcoin/src/serialize.h patching file bitcoin/src/util.cpp patching file bitcoin/src/util.h malleus_mikehearnificarum.vpatch patching file bitcoin/src/main.cpp mod6_der_high_low_s.vpatch patching file bitcoin/src/init.cpp patching file bitcoin/src/key.h patching file bitcoin/src/util.cpp patching file bitcoin/src/util.h makefiles.vpatch patching file bitcoin/Makefile patching file bitcoin/bin/Makefile patching file bitcoin/bin/Manifest.sha512 patching file bitcoin/build/Makefile patching file bitcoin/build/Makefile.rotor patching file bitcoin/deps/Makefile patching file bitcoin/deps/Manifest.sha512 patching file bitcoin/src/db.cpp patching file bitcoin/src/init.cpp patching file bitcoin/src/main.cpp patching file bitcoin/verify.mk
Alright, as we can see, the press was successful.
Let's now re-test and ensure that the NON-7BIT-ASCII bytes are removed, as expected:
mod6@gentoo ~/check_nonascii_bytes/test-regrind $ cp ../check_nonascii_bytes.pl . mod6@gentoo ~/check_nonascii_bytes/test-regrind $ cp ../cb . mod6@gentoo ~/check_nonascii_bytes/test-regrind $ for i in `ls patches`; do echo "vpatch: $i" && cat patches/$i | ./check_nonascii_bytes.pl; done vpatch: asciilifeform-kills-integer-retardation.vpatch vpatch: asciilifeform_add_verifyall_option.vpatch vpatch: asciilifeform_and_now_we_have_block_dumper_corrected.vpatch vpatch: asciilifeform_and_now_we_have_eatblock.vpatch vpatch: asciilifeform_dns_thermonyukyoolar_kleansing.vpatch vpatch: asciilifeform_dnsseed_snipsnip.vpatch vpatch: asciilifeform_lets_lose_testnet.vpatch vpatch: asciilifeform_maxint_locks_corrected.vpatch vpatch: asciilifeform_orphanage_thermonuke.vpatch vpatch: asciilifeform_tx-orphanage_amputation.vpatch vpatch: asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch vpatch: asciilifeform_zap_hardcoded_seeds.vpatch vpatch: asciilifeform_zap_showmyip_crud.vpatch vpatch: bitcoin-asciilifeform.1.vpatch vpatch: bitcoin-asciilifeform.2-https_snipsnip.vpatch vpatch: bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch vpatch: bitcoin-asciilifeform.4-goodbye-win32.vpatch vpatch: bitcoin-v0_5_3-db_config.6.vpatch vpatch: bitcoin-v0_5_3_1-rev_bump.7.vpatch vpatch: bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch vpatch: genesis.vpatch vpatch: makefiles.vpatch vpatch: malleus_mikehearnificarum.vpatch vpatch: mod6_der_high_low_s.vpatch vpatch: mod6_fix_dumpblock_params.vpatch vpatch: programmable-versionstring.vpatch vpatch: rm_rf_upnp.vpatch mod6@gentoo ~/check_nonascii_bytes/test-regrind $ for i in `ls patches`; do echo "vpatch: $i"; ./cb patches/$i; done vpatch: asciilifeform-kills-integer-retardation.vpatch vpatch: asciilifeform_add_verifyall_option.vpatch vpatch: asciilifeform_and_now_we_have_block_dumper_corrected.vpatch vpatch: asciilifeform_and_now_we_have_eatblock.vpatch vpatch: asciilifeform_dns_thermonyukyoolar_kleansing.vpatch vpatch: asciilifeform_dnsseed_snipsnip.vpatch vpatch: asciilifeform_lets_lose_testnet.vpatch vpatch: asciilifeform_maxint_locks_corrected.vpatch vpatch: asciilifeform_orphanage_thermonuke.vpatch vpatch: asciilifeform_tx-orphanage_amputation.vpatch vpatch: asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch vpatch: asciilifeform_zap_hardcoded_seeds.vpatch vpatch: asciilifeform_zap_showmyip_crud.vpatch vpatch: bitcoin-asciilifeform.1.vpatch vpatch: bitcoin-asciilifeform.2-https_snipsnip.vpatch vpatch: bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch vpatch: bitcoin-asciilifeform.4-goodbye-win32.vpatch vpatch: bitcoin-v0_5_3-db_config.6.vpatch vpatch: bitcoin-v0_5_3_1-rev_bump.7.vpatch vpatch: bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch vpatch: genesis.vpatch vpatch: makefiles.vpatch vpatch: malleus_mikehearnificarum.vpatch vpatch: mod6_der_high_low_s.vpatch vpatch: mod6_fix_dumpblock_params.vpatch vpatch: programmable-versionstring.vpatch vpatch: rm_rf_upnp.vpatch
Now that we've re-run both `check_nonascii_bytes.pl`, and `cb` (check_bytes.c) against the pressed, reground source, we can see that no NON-7BIT-ASCII characters have been detected.
The last step here is to completely rebuild trb.
mod6@gentoo ~/check_nonascii_bytes/test-regrind/trb054/bitcoin $ make ONLINE=1 ... cd ../src && \ make STATIC=all -f makefile.unix bitcoind make[3]: Entering directory '/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/src' /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/toolchain/usr/bin/x86_64-therealbitcoin-linux-musl-g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/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/checkpoints.o checkpoints.cpp /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/toolchain/usr/bin/x86_64-therealbitcoin-linux-musl-g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/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/crypter.o crypter.cpp /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/toolchain/usr/bin/x86_64-therealbitcoin-linux-musl-g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/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/db.o db.cpp /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/toolchain/usr/bin/x86_64-therealbitcoin-linux-musl-g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/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 /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/toolchain/usr/bin/x86_64-therealbitcoin-linux-musl-g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/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 /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/toolchain/usr/bin/x86_64-therealbitcoin-linux-musl-g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/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 /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/toolchain/usr/bin/x86_64-therealbitcoin-linux-musl-g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/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 /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/toolchain/usr/bin/x86_64-therealbitcoin-linux-musl-g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/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 /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/toolchain/usr/bin/x86_64-therealbitcoin-linux-musl-g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/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/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include/boost/asio/detail/socket_types.hpp:50:0, from /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include/boost/asio/detail/epoll_reactor.hpp:32, from /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include/boost/asio/detail/reactor.hpp:21, from /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include/boost/asio/detail/impl/task_io_service.ipp:24, from /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include/boost/asio/detail/task_io_service.hpp:217, from /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include/boost/asio/impl/io_service.hpp:71, from /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include/boost/asio/io_service.hpp:767, from /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include/boost/asio/basic_io_object.hpp:19, from /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include/boost/asio/basic_socket.hpp:19, from /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include/boost/asio/basic_datagram_socket.hpp:20, from /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include/boost/asio.hpp:20, from bitcoinrpc.cpp:11: /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/toolchain/usr/x86_64-therealbitcoin-linux-musl/sysroot/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp] #warning redirecting incorrect #include <sys/poll.h> to <poll.h> ^ /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/toolchain/usr/bin/x86_64-therealbitcoin-linux-musl-g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/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 /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/toolchain/usr/bin/x86_64-therealbitcoin-linux-musl-g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/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 /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/toolchain/usr/bin/x86_64-therealbitcoin-linux-musl-g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/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 /home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/toolchain/usr/bin/x86_64-therealbitcoin-linux-musl-g++ -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/include -I/home/mod6/check_nonascii_bytes/test-regrind/trb054/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/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/toolchain/usr/lib -L/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/lib -L/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build/ourlibs/lib -L/home/mod6/check_nonascii_bytes/test-regrind/trb054/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/check_nonascii_bytes/test-regrind/trb054/bitcoin/src' strip ../src/bitcoind make[2]: Leaving directory '/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build' cp ../src/bitcoind . make[1]: Leaving directory '/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/build' make -C bin make[1]: Entering directory '/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/bin' cp ../build/bitcoind . #grep " bitcoind$" Manifest.sha512 | sha512sum -c || (mv bitcoind bitcoind.badsum && false) make[1]: Leaving directory '/home/mod6/check_nonascii_bytes/test-regrind/trb054/bitcoin/bin' mod6@gentoo ~/check_nonascii_bytes/test-regrind/trb054/bitcoin $ ls -al bin/bitcoind -rwxr-xr-x 1 mod6 mod6 4889056 Mar 11 04:27 bin/bitcoind mod6@gentoo ~/check_nonascii_bytes/test-regrind/trb054/bitcoin $
Compile successful.
There are some follow up questions here: