tree checksum vpatch file split hunks

all signers: diana_coman

antecedents: v_mod6_99993

press order:

v_mod6_genesisdiana_coman
v_mod6_99993diana_coman
v_keccak_vtoolsdiana_coman

patch:

- C97446D52E0E61E4453130BF0C3E3DFCEB4C03AB336718629BE96BA1E364313DD3F8D1787F40AC235DF4DEDAD50D6E64C1C78709D4545A73C0217450591AD750
+ 115B06A799EAE048FFBD18642234DC234E9BF879EBDEDF0ED9B4BE69A410187537B618D2B4B581954B89D1F63EF0925F9FF1AE26F0882C28F05D3A1FCDB1A732
v/v.pl
(8 . 9)(8 . 12)
5 # please always : read and understand any software ; verify any PGP signatures
6 # that you use - for any purpose.
7
8 # modified by Diana Coman to use vtools with keccak hashes (vpatch and ksum)
9 # version no changed to 99992
10
11 use strict;
12
13 my $version = "99993 K ";
14 my $version = "99992 K ";
15
16 my $tdir = "";
17
(26 . 8)(29 . 8)
19 my ($pdir, $sdir, $wdir) = "";
20 my (@pfiles, @sfiles, @wfiles) = ();
21
22 my @dep_bins = ("cat", "echo", "gpg", "ls", "mkdir", "patch", "pwd",
23 "rm", "sha512sum", "sort", "wget", "which", "mktemp");
24 my @dep_bins = ("cat", "echo", "gpg", "ls", "mkdir", "vpatch", "pwd",
25 "rm", "ksum", "sort", "wget", "which", "mktemp");
26
27 sub check_required_bins {
28 my (@bins) = @_;
(429 . 11)(432 . 11)
30 `mkdir -p $press[0]`;
31 foreach my $vp (@pp) {
32 if($v) {
33 my @out = `patch -F 0 -E --dir $press[0] -p1 < $pdir/$vp 2>&1`;
34 my @out = `cd $press[0] && vpatch < $pdir/$vp 2>&1`;
35 print "$vp\n";
36 foreach my $o (@out) { print " $o"; }
37 } else {
38 `patch -F 0 -E --dir $press[0] -p1 < $pdir/$vp`;
39 `cd $press[0] && vpatch < $pdir/$vp`;
40 }
41 %vp_map = ();
42 verify_pressed($press[0], add_pressed($vp));
(460 . 7)(463 . 7)
44 my $file_hash = $vp_map{$vp}{$src_file_name}{b};
45 if($file_hash ne "false") {
46 my $fp = $press_dir . "/" . get_filepath($src_file_name);
47 my $hashed = `sha512sum $fp`;
48 my $hashed = `ksum $fp`;
49 $hashed =~ /^(.*) .*$/;
50 my $pressed_hash = $1;
51 if($file_hash ne $pressed_hash) {
(773 . 7)(776 . 7)
53 # (se | sync-everything) (<mirror_url> <pdir> <sdir>) #
54 # (a | ante | antecedents) (<vpatch>) #
55 # (d | desc | descendants) (<vpatch>) #
56 # (o | origin) (<sha512_hash>) #
57 # (o | origin) (<keccak_hash>) #
58 # (g | graph) (<output_dotfile> [<output_svg_html_file>]) #
59 # (v | version) #
60 # (h | help) #
(874 . 7)(877 . 7)
62 # Finds the descendants of a given vpatch and prints the results to #
63 # stdout #
64 # #
65 # o, origin (<sha512_hash>) #
66 # o, origin (<keccak_hash>) #
67 # Returns the vpatch and signatories where the given hash originated in #
68 # the source tree. #
69 # #
- 4E168B252C971A33E205E6E2B7026BB20B968C5F8F286C6B2C27C9884864F0BD5D8218C628A573AC062C163C428CDB2581F42FA7446F4830E5F8F801A04BEFC2
+ BA8A23123F78F346861F89A50A5F3A6F8080FF97A94D00B3B229703B075E7F76AC700C4C5E9A6E0A460DF71DA3A92D32C31A5524DC55AEB90B00A78DBC77B92F
v/v_quick_start.txt
(1 . 16)(1 . 14)
74 ..::[ The Bitcoin Foundation: V Quick Start ]::..
75
76
77 Doc Version: 99993 K
78 Author: mod6
79 Fingerprint: 0x027A8D7C0FB8A16643720F40721705A8B71EADAF
80 Doc Version: 99992 K
81 Author: mod6; modified by diana_coman
82
83 0x00]: Introduction
84
85 Welcome to V!
86
87 This document is intended for the advanced user. This will get you up and
88 running quickly with V.
89 This document is intended to get you up and running quickly with V.
90
91 0x01]: What's required?
92
(18 . 37)(16 . 10)
94 0x011: cpan | cpanm [CPAN | cpanminus]
95 0x012: Graph::Easy [Nice to have, not required]
96 0x013: graphviz [Nice to have, not required]
97 0x014: gpg [GnuPG 1.4.x]
98 0x014: gpg [GnuPG]
99 0x015: wget
100 0x016: cat
101 0x017: echo
102 0x018: ls
103 0x019: mkdir
104 0x01A: patch
105 0x01B: pwd
106 0x01C: rm
107 0x01D: sha512sum
108 0x01E: sort
109 0x01F: which
110 0x020: mktmp
111
112 0x02]: Where do I get V ?
113
114 curl -s http://thebitcoin.foundation/v/V-20180222.tar.gz \
115 -o V-20180222.tar.gz
116 curl -s http://thebitcoin.foundation/v/V-20180222.tar.gz.mod6.sig \
117 -o V-20180222.tar.gz.mod6.sig
118
119 gpg --keyserver pool.sks-keyservers.net \
120 --recv-keys 0x027A8D7C0FB8A16643720F40721705A8B71EADAF
121
122 gpg --verify V-20180222.tar.gz.mod6.sig V-20180222.tar.gz
123
124 If the signature is good, now extract the archive.
125
126 tar -xf V-20180222.tar.gz
127
128 0x03]: How do I setup V?
129 0x02]: How do I setup V?
130
131 First, set the executable bit on v.pl:
132
(64 . 20)(35 . 14)
134
135 For example: mod6.asc
136
137 0x04]: It's my first time running V now what?
138
139 First, check the available signed mirrors:
140 0x03]: It's my first time running V now what?
141
142 ./v.pl m mirrors
143 Simply run V as it will list available options:
144
145 Then run the initial sync of the vpatches and seals from a given mirror:
146
147 ./v.pl i http://thebitcoin.foundation
148
149 0x05]: Now that I've sync'd from a mirror, what's next?
150
151 The rest is up to you, either refer to the Users Guide for a detailed
152 description of each option in V or just execute V and read the long
153 help message:
154 ./v.pl
155
156 Then use V's own help:
157 ./v.pl help
158
159 Or ask someone who knows more about it!
160
- 37EF9B4DA1F2D0D09343DAC421FC3D4497F210EA669F602ED6D73539F3DF3B62DC3F68D8B12BA28F1BED130FBE2E3DA3227A29669A55E1F131A08C830C58DBE6
+
v/v_users_manual.txt
(1 . 581)(0 . 0)
165 ..::[ The Bitcoin Foundation: V Users Manual ]::..
166
167
168 Doc Version: 99993 K
169 Author: mod6
170 Fingerprint: 0x027A8D7C0FB8A16643720F40721705A8B71EADAF
171
172 0x00]: Introduction
173
174 Welcome to V!
175
176 This document is intended to be a users manual for mod6's perl implementation
177 of V. Contained herein the user will find usage explanations and examples of
178 the many options available.
179
180 0x01]: Getting Started
181
182 [ Check if perl is installed & version ]:
183
184 First, in order to execute the perl version of V, the user must have perl
185 version 5.005 or greater installed on the local UNIX environment. Perl
186 typically comes installed on many UNIX environments ahead of time, but just
187 to be sure, do the following from the command prompt:
188
189 perl --version
190
191 The user should see a lengthy version message that starts with something
192 like this:
193
194 `This is perl 5, version 18, subversion 2 (v5.18.2) ...'
195
196 If not, please install perl 5.005 or greater before going any further:
197
198 Ubuntu:
199 apt-get install -y perl
200
201 Gentoo:
202 emerge =perl-5.20.2.ebuild
203
204 [ Install CPAN ]:
205
206 If it is desired to at all use the graphing feature of V the user will need
207 to install CPAN [ `cpan` or `cpanm` or on gentoo, `g-cpan` ] so that the
208 Graph::Easy perl library can be installed.
209
210 Ubuntu:
211 apt-get install cpanminus
212 cpanm -i Graph::Easy
213
214 Gentoo [x86-64]:
215 emerge g-cpan
216
217 [ NOTE: Copy the next nine lines exactly as they are presented here and ]
218 [ then paste them into the shell. ]
219
220 cat <<EOF > /etc/portage/package.accept_keywords
221 # required by perl-gcpan/JSON-MaybeXS-1.003005::x-g-cpan
222 # required by JSON-MaybeXS (argument)
223 =dev-perl/Test-Without-Module-0.180.0 ~amd64
224 # required by perl-gcpan/Cpanel-JSON-XS-3.0115::x-g-cpan
225 # required by Cpanel-JSON-XS (argument)
226 =dev-perl/common-sense-3.730.0 ~amd64
227 EOF
228
229 g-cpan -i Graph::Easy
230
231 [ Install GnuPG ]:
232
233 The user will need GnuPG installed locally to run V, if you already have
234 this installed, skip this step.
235
236 Ubuntu:
237 sudo apt-get install -y gnupg
238
239 [NOTE: 1.4.19 seems to be the oldest portage a recent gentoo ships with)]:
240 Gentoo:
241 emerge =gnupg-1.4.19
242
243 [ Install wget ]:
244
245 Many UNIX systems come with `wget` installed already, if yours does not,
246 install it:
247
248 Ubuntu:
249 sudo apt-get install -y wget
250
251 Gentoo:
252 emerge wget
253
254 [ Additional UNIX Commands Required ]:
255
256 Recent distributions of Linux seem ship without tools that one would
257 automatically imagine are included by default. Unfortunate users have
258 found this out the hard way. You will need the following binaries
259 on your system, or V will not run. If V does not find one of these
260 binaries on your system, it will report which one it can not find and exit.
261
262 They are, as follows (instructions on `gpg` and `wget are posted above):
263
264 gpg [GnuPG]
265 wget
266 cat
267 echo
268 ls
269 mkdir
270 patch
271 pwd
272 rm
273 sha512sum
274 sort
275 which
276 mktmp
277
278 If you do not have one of these binaries on your system, for whatever
279 reason, consult your OS documentation to determine how to install it.
280
281 [ Install GraphViz ]:
282
283 In addition to Graph::Easy, if you wish to have V automatically build the
284 SVG graph in an HTML output file for you from the Dot language output file,
285 also output by V, you need to install GraphViz.
286
287 Ubuntu:
288 sudo apt-get install -y graphviz
289
290 Gentoo:
291 emerge -a graphviz
292 etc-update [ enter -5 when prompted ]
293 emerge -a graphviz [ Answer Yes at prompt ]
294
295 NOTE: Some people have had issue with getting a proper graphviz installed,
296 and subsequently no `dot` binary on their system. It may be resolved by
297 doing the following:
298
299 emerge media-gfx/graphviz
300
301 [ Download V Archive ]:
302
303 Now you must obtain the V archive & signature from:
304
305 http://thebitcoin.foundation/v/V-20180222.tar.gz
306 http://thebitcoin.foundation/v/V-20180222.tar.gz.mod6.sig
307
308 Then check the PGP signatures supplied:
309
310 wget http://mod6.net/mod6.asc -O mod6.asc
311 gpg --import mod6.asc
312
313 [ Key Fingerprint: 0x027A8D7C0FB8A16643720F40721705A8B71EADAF ]
314
315 gpg --verify V-20180222.tar.gz.mod6.sig V-20180222.tar.gz
316
317 Then unpack the archive:
318
319 tar -xf V-20180222.tar.gz
320
321 [ Start V for the first time ]:
322
323 First, set the executable bit on v.pl:
324
325 chmod 0755 v.pl
326
327 Before you get any further, create a '.wot' directory (V looks for '.wot'
328 in the current working directory by default) and populate it with PGP public
329 keys manually. Name the pubkey files as such: <wotid>.asc
330
331 For example: mod6.asc
332
333 Now have V sync the required Seals and Patches directories from a signed
334 mirror. To view the list of mirrors, run the following command, the output
335 you'll see below.
336
337 ./v.pl m v_mirrors
338 Mirrors signed by (mod6):
339 http://thebitcoin.foundation
340
341 As stated from mirrors output we can use URL from The Bitcoin Foundation to
342 sync V up-to-date with all the latest WoT entries (PGP Public Keys), VPatch
343 Signatures (Seals) and Vpatches.
344
345 To begin this initial sync do the following:
346
347 ./v.pl i http://thebitcoin.foundation
348
349
350 0x01]: V Usage
351
352 At this point the user has installed all of V's requirements, performed a
353 look up of available signed mirrors, and sync'd the WoT, Patches and Seals.
354
355 What follows are usages and definitions of V's options with examples.
356
357 A note about option syntax. Any option enclosed with parenthesis ( ) is
358 required. The | separates any aliases of commands. Square brackets [ ]
359 denote optional options. Angle brackets < > denote required arguments to
360 a given command.
361
362 [ m | mirrors ]:
363 Arguments:
364 (<output_dir>)
365
366 The m or mirrors command is available to connect to the main V site:
367 http://thebitcoin.foundation Here, V can connect and pull the list of
368 available mirrors, signed by mirror administrators with L1 trust with
369 deedbot and are in good standing in the WoT. Ask mod6 about this if you
370 want to run an authorized, signed mirror of V.
371
372 The mirrors command takes one required argument, an output directory for the
373 list of mirrors and the signatures so V can verify the list.
374
375 Example:
376 ./v.pl m v_mirrors
377 Mirrors signed by (mod6):
378 http://thebitcoin.foundation
379
380 [ i | init ]:
381
382 Arguments & Options:
383 (mirror_url) [(<pdir> <sdir>)]
384
385 The i or init command is intended to be utilized the first time running V
386 on an environment. It takes one required option, and two optional
387 options. The required argument is a V mirror URL to sync from. Next, the
388 user can choose to use the default Patches ('patches' in the current working
389 directory) and Seals (.seals in the current working directory) directories
390 by not setting the two <pdir> or <sdir> options -- only passing a mirror URL
391 argument to the init command. If the user wishes to use their own named
392 directories, simply pass in those arguments in the exact order specified.
393
394 Example:
395 ./v.pl i http://thebitcoin.foundation
396 Full vpatch sync complete to "/home/mod6/patches"
397 Seal sync complete to "/home/mod6/.seals"
398
399 Example:
400 ./v.pl i http://thebitcoin.foundation wot vpatches seals
401 Full vpatch sync complete to "vpatches"
402 Seal sync complete to "seals"
403
404 [ wd | wotdir ]:
405
406 Arguments:
407 (<wotdir>)
408
409 The wd or wotdir command is available to point V at a specific WoT
410 directory rather than the default: '.wot' (in the current working directory)
411 There is one required argument: a WoT directory.
412
413 Example case, only mod6.asc exists in wot2:
414 ./v.pl f wd wot2
415 genesis.vpatch (mod6)
416 bitcoin-asciilifeform.1.vpatch (mod6)
417 rm_rf_upnp.vpatch (mod6)
418 ...
419
420 [ pd | patchdir ]:
421
422 Arguments:
423 (<patchdir>)
424
425 The pd or patchdir command is available to point V at a specific patch
426 directory rather than the default: 'patches', in V's present working
427 directory. There is one required argument: a vpatches directory.
428
429 Example case, only genesis.vpatch exists in patches2:
430 ./v.pl f pd patches2
431 genesis.vpatch (asciilifeform, mircea_popescu, mod6, trinque)
432
433 [ sd | sealdir ]:
434
435 Arguments:
436 (<sealdir>)
437
438 The sd or sealdir command is available to point V at a specific seal
439 directory rather than the default: '.seals' (in the current working
440 directory)
441 There is one required argument: a seals directory.
442
443 Example case, only seals created by mod6 exist in seal2:
444 ./v.pl f sd seals2/
445 genesis.vpatch (mod6)
446 bitcoin-asciilifeform.1.vpatch (mod6)
447 rm_rf_upnp.vpatch (mod6)
448 ...
449
450 [ w | wot ]:
451
452 Options:
453 [ finger ]
454
455 The w or wot command will build a list of WoT entities eligible for
456 creating seals for approved vpatches. If a specific vpatch has not
457 been signed by a WoT entity, it is considered a 'WILD' vpatch, and will be
458 ignored. A vpatch must be signed by both Co-Chairs of The Bitcoin Foundation
459 to be considered approved for release.
460
461 Example:
462 ./v.pl w
463 asciilifeform:17215D118B7239507FAFED98B98228A001ABFFC7:Stanislav Datskovskiy <stas@loper-os.org>
464 ben_vulpes:4F7907942CA8B89B01E25A762AFA1A9FD2D031DA:Ben Vulpes <benkay@gmail.com>
465 mircea_popescu:6160E1CAC8A3C52966FD76998A736F0E2FB7B452:Mircea Popescu (Acest articol are apriori avantajul aliteralitatii alaturi.) <office@polimedia.us>
466 mod6:027A8D7C0FB8A16643720F40721705A8B71EADAF:mod6 (mod6) <modsix@gmail.com>
467 trinque:FC66C0C5D98C42A1D4A98B6B42F9985AFAB953C4:Michael Trinque <mike@trinque.org>
468
469 ./v.pl w finger
470 asciilifeform-B98228A001ABFFC7:17215D118B7239507FAFED98B98228A001ABFFC7:Stanislav Datskovskiy <stas@loper-os.org>
471 ben_vulpes-2AFA1A9FD2D031DA:4F7907942CA8B89B01E25A762AFA1A9FD2D031DA:Ben Vulpes <benkay@gmail.com>
472 mircea_popescu-8A736F0E2FB7B452:6160E1CAC8A3C52966FD76998A736F0E2FB7B452:Mircea Popescu (Acest articol are apriori avantajul aliteralitatii alaturi.) <office@polimedia.us>
473 mod6-721705A8B71EADAF:027A8D7C0FB8A16643720F40721705A8B71EADAF:mod6 (mod6) <modsix@gmail.com>
474 trinque-42F9985AFAB953C4:FC66C0C5D98C42A1D4A98B6B42F9985AFAB953C4:Michael Trinque <mike@trinque.org>
475
476 [ r | roots ]:
477
478 The r or roots command takes no options or arguments, unless a different
479 pd or patchdir is specified. It simply traverses the vpatch directories
480 contained vpatches and returns any root vpatches found in the topological
481 order.
482
483 Examples:
484 ./v.pl r
485 Root: genesis.vpatch (asciilifeform, mircea_popescu, mod6, trinque)
486
487 Examples:
488 ./v.pl r pd patches2
489 Root: genesis.vpatch (asciilifeform, mircea_popescu, mod6, trinque)
490
491 [ l | leafs ]:
492
493 The l or leafs command takes no options or arguments, unless a different
494 pd or patchdir is specified. It simply traverses the vpatches in the
495 vpatch directory and returns any leaf vpatches found in the topological
496 order.
497
498 Examples:
499 ./v.pl l
500 Leaf: asciilifeform_add_verifyall_option.vpatch (asciilifeform, mod6)
501 Leaf: asciilifeform_maxint_locks_corrected.vpatch (asciilifeform, mod6)
502
503 Example case, only genesis.vpatch exists in patches2:
504 ./v.pl l pd patches2
505 Leaf: genesis.vpatch (asciilifeform, mircea_popescu, mod6, trinque)
506
507 [ f | flow ]:
508
509 The f or flow command prints a topological flow of vpatches based on
510 precedence. By default will look for the 'patches' directory in the present
511 working directory of V and print the flow to stdout.
512
513 Example:
514 ./v.pl f
515 genesis.vpatch (asciilifeform, mircea_popescu, mod6, trinque)
516 bitcoin-asciilifeform.1.vpatch (asciilifeform, mod6)
517 rm_rf_upnp.vpatch (asciilifeform, mod6)
518 bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch (asciilifeform, mod6)
519 bitcoin-asciilifeform.2-https_snipsnip.vpatch (asciilifeform, mod6)
520 bitcoin-asciilifeform.4-goodbye-win32.vpatch (asciilifeform, mod6)
521 asciilifeform_dnsseed_snipsnip.vpatch (asciilifeform, mod6)
522 asciilifeform_zap_hardcoded_seeds.vpatch (asciilifeform, mod6)
523 asciilifeform-kills-integer-retardation.vpatch (asciilifeform, mod6)
524 asciilifeform_zap_showmyip_crud.vpatch (asciilifeform, mod6)
525 asciilifeform_dns_thermonyukyoolar_kleansing.vpatch (asciilifeform, mod6)
526 asciilifeform_and_now_we_have_block_dumper_corrected.vpatch (asciilifeform, mod6)
527 mod6_fix_dumpblock_params.vpatch (asciilifeform, mod6)
528 bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch (asciilifeform, mod6)
529 bitcoin-v0_5_3_1-rev_bump.7.vpatch (asciilifeform, mod6)
530 asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch (asciilifeform, mod6)
531 asciilifeform_orphanage_thermonuke.vpatch (asciilifeform, mod6)
532 asciilifeform_and_now_we_have_eatblock.vpatch (asciilifeform, mod6)
533 bitcoin-v0_5_3-db_config.6.vpatch (asciilifeform, mod6)
534 asciilifeform_tx-orphanage_amputation.vpatch (asciilifeform, mod6)
535 asciilifeform_maxint_locks_corrected.vpatch (asciilifeform, mod6)
536 asciilifeform_lets_lose_testnet.vpatch (asciilifeform, mod6)
537 asciilifeform_add_verifyall_option.vpatch (asciilifeform, mod6)
538
539 Example case, only genesis.vpatch exists in patches2:
540 ./v.pl f pd patches2
541 genesis.vpatch (asciilifeform, mircea_popescu, mod6, trinque)
542
543 [ p | press ]:
544
545 Arguments:
546 (<press_dir> <head>)
547
548 The p or press command is available to apply vpatches up through <head> in
549 topological order (see press-path command) to an output directory
550 <press_dir>. There are two required arguments; an output directory for
551 applied patches <press_dir> and a vpatch <head> as the tip of the tree to
552 press up through. By default, no output is shown; however if the user
553 supplies `v' or `verbose' directly after the p or press command then the
554 output from the patching application process will be directed to stdout.
555
556 Example:
557 ./v.pl p press_output genesis.vpatch
558
559 Example:
560 ./v.pl p verbose press_verbose genesis.vpatch
561 genesis.vpatch
562 patching file bitcoin/.gitignore
563 patching file bitcoin/COPYING
564 patching file bitcoin/src/base58.h
565 patching file bitcoin/src/bignum.h
566 patching file bitcoin/src/bitcoinrpc.cpp
567 patching file bitcoin/src/bitcoinrpc.h
568 patching file bitcoin/src/checkpoints.cpp
569 patching file bitcoin/src/checkpoints.h
570 patching file bitcoin/src/crypter.cpp
571 patching file bitcoin/src/crypter.h
572 patching file bitcoin/src/db.cpp
573 patching file bitcoin/src/db.h
574 patching file bitcoin/src/headers.h
575 patching file bitcoin/src/init.cpp
576 ...
577
578
579 *** SEE ALSO 'press-path' ***
580
581 [ pp | press-path ]:
582
583 Arguments:
584 (<head>)
585
586 The pp or press-path command is available to allow the user to view (via
587 stdout) the actual path to be pressed, given a <head> found in the flow.
588
589 It is encouraged that a V user run this command before pressing to a given
590 <head>. From release 99993 forward, the flow is no longer used to calculate
591 the press path from a given <head>. Instead, with a given <head>, recurse
592 all of the <head>'s antecedents and press those only.
593
594 [ ss | sync-seals ]:
595
596 Arguments:
597 (<mirror_url> <sdir>)
598
599 The ss or sync-seals command is available to allow the user to sync seal to
600 an alternative directory. Two arguments are required; the <mirror_url>
601 from which to sync and the alternative or existing seals directory <sdir>.
602
603 Example:
604 ./v.pl ss http://thebitcoin.foundation seals2
605 Seal sync complete to "seals2"
606
607 [ sv | sync-vpatches ]:
608
609 Arguments:
610 (<mirror_url> <pdir> <vpatches>... )
611
612 The sv or sync-vpatches command is available to allow the user to sync one or
613 more individual vpatches to a alternative output directory. Three arguments
614 are required; the <mirror_url> from which to sync, the alternative or
615 existing directory <pdir> and one or more <vpatches>.
616
617 Example case, sync one vpatch to an existing patches directory:
618 ./v.pl sv http://thebitcoin.foundation patches genesis.vpatch
619 genesis.vpatch sync complete to "patches"
620
621 Example case, sync more than one vpatch to an alternative patches directory:
622 ./v.pl sv http://thebitcoin.foundation patches2 genesis.vpatch rm_rf_upnp.vpatch
623 genesis.vpatch sync complete to "patches2"
624 rm_rf_upnp.vpatch sync complete to "patches2"
625
626 [ sa | sync-all-vpatches ]:
627
628 Arguments:
629 (<mirror_url> <pdir>)
630
631 The sa or sync-all-vpatches command is available to allow the user to sync
632 all vpatches from a given mirror to an alternative output directory. Two
633 arguments are required; the <mirror_url> from which to sync and the
634 alternative or existing patches directory <pdir>.
635
636 Example case, sync all vpatches to the pre-existing patches directory:
637 ./v.pl sa http://thebitcoin.foundation patches
638 Full vpatch sync complete to "patches"
639
640 Example case, sync all vpatches to an alternative patches directory:
641 ./v.pl sa http://thebitcoin.foundation patches2
642 Full vpatch sync complete to "patches2"
643
644 [ se | sync-everything ]:
645
646 Arguments:
647 (<mirror_url> <pdir> <sdir>)
648
649 The se or sync-everything command is available to allow the user to sync
650 all patches and seals from a given mirror to either existing or alternative
651 directories. Three arguments are required; the <mirror_url> from which to
652 sync, the existing or alternative output patches directory <pdir>, and the
653 existing or alternative seals directory <sdir>.
654
655 ./v.pl se http://thebitcoin.foundation patches2 seals2
656 Full vpatch sync complete to "patches2"
657 Seal sync complete to "seals2"
658
659 [ a | ante | antecedents ]:
660
661 Arguments:
662 (<vpatch>)
663
664 The a or ante or antecedents command is available to allow the user to view
665 the antecedents of a given vpatch. One argument is required, the name of a
666 <vpatch>.
667
668 Example:
669 ./v.pl a mod6_fix_dumpblock_params.vpatch
670 Antecedent: asciilifeform_and_now_we_have_block_dumper_corrected.vpatch \
671 (asciilifeform, mod6) [ a/bitcoin/src/bitcoinrpc.cpp ]
672
673 Example case, examine the antecedents of a given vpatch from an alternative
674 directory:
675 ./v.pl a asciilifeform_zap_showmyip_crud.vpatch pd patches2
676 Antecedent: asciilifeform_zap_hardcoded_seeds.vpatch (asciilifeform, mod6) \
677 [ a/bitcoin/src/net.cpp ]
678
679 [ d | desc | descendants ]:
680
681 Arguments:
682 (<vpatch>)
683
684 The d or desc or descendants command is available to allow the user to view
685 the descendants of a given <vpatch>. One argument is required, the name of
686 a <vpatch>.
687
688 Example:
689 ./v.pl d mod6_fix_dumpblock_params.vpatch
690 Descendant: asciilifeform_and_now_we_have_eatblock.vpatch \
691 (asciilifeform, mod6) [ a/bitcoin/src/bitcoinrpc.cpp ]
692
693 Example case, examine the descendants of a given vpatch from an alternative
694 directory:
695 ./v.pl d asciilifeform_zap_showmyip_crud.vpatch pd patches2
696 Descendant: asciilifeform_dns_thermonyukyoolar_kleansing.vpatch \
697 (asciilifeform, mod6) [ a/bitcoin/src/net.cpp ]
698
699 [ o | origin ]:
700
701 Arguments:
702 (<sha512_hash>)
703
704 The o or origin command is available to allow the user to pass a sha512
705 hash and view where the given hash originated in the source tree.
706
707 [ g | graph ]:
708
709 Arguments & Options:
710 (<output_dotfile> [<output_svg_html_file>])
711
712 The g or graph command is available to produce a topological flow graph in
713 SVG format. The command has a required argument, the <output_dotfile>.
714 The output Dot language file can be used to generate the SVG HTML output
715 file with the `dot` binary. To produce the output Dot language file, the
716 perl library Graph::Easy must be installed on the local environment.
717 The optional command is given as a name for the <output_svg_html_file>.
718 If 'graphviz' is installed on the local environment, then the `dot` binary
719 should be available for V to invoke and generate the SVG HTML output for
720 the user automatically. If it is not possible for the user to install
721 'graphviz' on the local environment for whatever reason, the Dot language
722 output file can be copied to a separate environment where 'graphviz' can be
723 installed. A command like this is used to generate the SVG HTML output
724 with the `dot` binary: `dot -Tsvg v-graph.dot > v-graph.html`.
725
726 Example:
727 ./v.pl g vpatch.dot vpatch-graph.html
728 Printed Graphviz dot file to vpatch.dot
729 Executed `dot` and built svg html output file: vpatch-graph.html
730
731 Example case, build a graph from an alternative WoT, Patches and Seals
732 directory:
733 ./v.pl g vpatch-graph2.dot vpatch-graph2.html wd wot2 pd patches2 sd seals2
734 Printed Graphviz dot file to vpatch-graph2.dot
735 Executed `dot` and built svg html output file: vpatch-graph2.html
736
737 [ v | version ]:
738
739 The v or version command simply prints the current version of V to stdout.
740 This command takes no options or arguments.
741
742 [ h | help ]:
743
744 The h or help command will print a longer, more verbose help message
745 to stdout. This command takes no options or arguments.