Posted on 2018-09-30 23:09 technical, vtools
As has been discussed in the logs, vtools doesn't stand on its own as a V implementation. Instead it's a collection of tools for working with vpatches. V authors can use vtools so as to not rely on often brittle GNU utilities.
On my own workbench I've been using a patched up version of original asciilifeform's v.py, where I replaced a call to GNU patch with one to vpatch. The replacement is essentially a drop in1, with the advantage of being much stricter about the vpatches that are accepted and also making sure that the press hashes are valid.
I have barely touched v.py otherwise2, so I consider this a proof of concept release. It consists of two patches, the original v.py version 99 genesis3 and my own modifications.
Unless you have a working keccak v, you'll need to bootstrap manually. Assuming you have a working vtools build,
PATH=path to vtools:$PATH mkdir {wot,seals,patches} curl --silent http://wot.deedbot.org/BDDE12104FE81BE7F83B698F5356DE4752432A9E.asc -o wot/phf.asc gpg --import wot/phf.asc curl --silent -o patches/v99.vpatch http://btcbase.org/data/vpy/v99.vpatch curl --silent -o patches/v98.vpatch http://btcbase.org/data/vpy/v98.vpatch curl --silent -o seals/v99.vpatch.phf.sig http://btcbase.org/data/vpy/v99.vpatch.phf.sig curl --silent -o seals/v98.vpatch.phf.sig http://btcbase.org/data/vpy/v98.vpatch.phf.sig gpg --verify seals/v99.vpatch.phf.sig patches/v99.vpatch gpg --verify seals/v98.vpatch.phf.sig patches/v98.vpatch cat patches/v99.vpatch patches/v98.vpatch | vpatch pip install python-gnupg chmod +x v/v.py ./v/v.py --wot ./wot -fingers --seals ./seals ./patches p ./patches/v98.vpatch v_press
You now have a self-pressed v.py in the v_press directory!
Some things to note: the bulk of bootstrapping effort is verifying the patch signatures, something that v does for you. On the other hand you can just cat any number of patches into vpatch utility and it will produce a verified press. Asciilifeform's v.py uses stock python, but it does depend on python-gnupg package, which can be installed through pip or whatever global packaging system (on gentoo it's emerge python-gnupg).
Post a comment
[...] for a Keccak-based v.py, a V in Common Lisp, and a Keccak-based [...]
Posted 2019-10-0910:17 by Botworks manifest+Keccak regrind « The Tar Pit
[...] of a V-presser: one in perl signed by diana_coman and spyked, one in Python signed by phf, one in Lisp signed by [...]
Posted 2020-04-1910:19 by A Walk among the Trees of V « Ossa Sepia