|
|
|
# Trezor
|
|
|
|
|
|
|
|
## Messages rebuild
|
|
|
|
|
|
|
|
Install `protoc` for your distribution. Requirements:
|
|
|
|
|
|
|
|
- `protobuf-compiler`
|
|
|
|
- `libprotobuf-dev`
|
|
|
|
- `python`
|
|
|
|
|
|
|
|
|
|
|
|
Soft requirement: Python 3, can be easily installed with [pyenv].
|
|
|
|
If Python 3 is used there are no additional python dependencies.
|
|
|
|
|
|
|
|
Since Cmake 3.12 the `FindPython` module is used to locate the Python
|
|
|
|
interpreter in your system. It preferably searches for Python 3, if none
|
|
|
|
is found, it searches for Python 2.
|
|
|
|
|
|
|
|
Lower version of the cmake uses another module which does not guarantee
|
|
|
|
ordering. If you want to override the selected python you can do it in
|
|
|
|
the following way:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
export TREZOR_PYTHON=`which python3`
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Python 2.7+
|
|
|
|
|
|
|
|
Python 3 has `tempfile.TemporaryDirectory` available but Python 2 lacks
|
|
|
|
this class so the message generation code uses `backports.tempfile` package
|
|
|
|
bundled in the repository.
|
|
|
|
|
|
|
|
The minimal Python versions are 2.7 and 3.4
|
|
|
|
|
|
|
|
### Regenerate messages
|
|
|
|
|
|
|
|
```bash
|
|
|
|
cd src/device_trezor/trezor
|
|
|
|
python tools/build_protob.py
|
|
|
|
```
|
|
|
|
|
|
|
|
The messages regeneration is done also automatically via cmake.
|
|
|
|
|
|
|
|
[pyenv]: https://github.com/pyenv/pyenv
|