2016-01-28 15:15:43 -08:00
|
|
|
==============================
|
|
|
|
Zcash Protocol Specification
|
|
|
|
==============================
|
|
|
|
|
2016-08-14 15:59:44 -07:00
|
|
|
Build dependencies on Debian-based systems include, at least:
|
2016-01-28 15:15:43 -08:00
|
|
|
|
|
|
|
.. code::
|
|
|
|
|
2022-08-31 06:56:22 -07:00
|
|
|
apt install python3-pip pandoc perl sed perl \
|
|
|
|
texlive texlive-science texlive-fonts-extra texlive-bibtex-extra biber latexmk
|
|
|
|
|
|
|
|
Prior to Bullseye you may also need the ``awk`` and ``texlive-generic-recommended``
|
|
|
|
packages.
|
|
|
|
|
|
|
|
For link checking, you will also need the following Python packages:
|
|
|
|
|
|
|
|
.. code::
|
|
|
|
|
2022-09-20 02:21:45 -07:00
|
|
|
pip3 install docutils==0.19 rst2html5 certifi PyPDF2
|
2018-03-24 02:10:32 -07:00
|
|
|
|
|
|
|
|
|
|
|
Building
|
|
|
|
--------
|
|
|
|
|
|
|
|
Use:
|
|
|
|
|
2020-04-27 07:40:58 -07:00
|
|
|
* ``make nufour`` to make the draft specification for NU4 (``nufour.pdf``);
|
|
|
|
* ``make heartwood`` to make the specification for Heartwood (``protocol.pdf``);
|
|
|
|
* ``make blossom`` to make the specification for the Blossom upgrade
|
2019-04-18 08:39:08 -07:00
|
|
|
(``blossom.pdf``);
|
2020-04-27 07:40:58 -07:00
|
|
|
* ``make sapling`` to make the specification for the Overwinter and
|
|
|
|
Sapling upgrades (``sapling.pdf``);
|
2018-09-02 00:50:40 -07:00
|
|
|
* ``make sprout`` to make a version of the specification that does not
|
2020-04-27 07:40:58 -07:00
|
|
|
include Overwinter or Sapling (``sprout.pdf``).
|
2022-08-31 06:56:22 -07:00
|
|
|
* ``make linkcheck`` (in the root of the repo) to build everything and also
|
|
|
|
perform link checking. This will access the network.
|
2018-03-24 02:10:32 -07:00
|
|
|
|
2022-08-31 06:56:22 -07:00
|
|
|
``make all`` is equivalent to ``make nu5 canopy heartwood blossom sapling``.
|
2019-07-11 09:55:18 -07:00
|
|
|
|
|
|
|
By default these use ``latexmk``. If you have trouble getting ``latexmk`` to
|
|
|
|
work, you can instead use ``make nolatexmk-sapling``, etc. That is not the
|
|
|
|
preferred way of building because it may not run ``pdflatex`` enough times.
|
2018-03-24 02:10:32 -07:00
|
|
|
|
2020-04-27 07:40:58 -07:00
|
|
|
It is also possible to use the incremental (``-pvc``) mode of ``latexmk`` to
|
|
|
|
automatically rebuild when changes in the source files are detected, by adding
|
|
|
|
``EXTRAOPT=-pvc`` to the ``make`` command line. In this case the updated PDF
|
|
|
|
files will be in the ``aux/`` directory. Manual intervention is still needed
|
|
|
|
when there are LaTeX errors.
|
2018-03-24 02:10:32 -07:00
|
|
|
|
|
|
|
|
2019-07-08 14:12:54 -07:00
|
|
|
Alternative TeX engines
|
|
|
|
-----------------------
|
|
|
|
|
|
|
|
There is experimental support for building the specification using LuaTeX
|
|
|
|
or XeTeX; see the comments at the top of the `Makefile`. However, this will
|
|
|
|
`currently produce poor output <https://github.com/zcash/zips/issues/249>`_.
|
|
|
|
A warning is included below the Abstract to indicate this.
|