diff --git a/README.md b/README.md index 0cfcea5ce..f8142e6ca 100644 --- a/README.md +++ b/README.md @@ -23,30 +23,38 @@ is a TL;DR: ``` $ sudo apt-get install libsecp256k1-dev -$ python3 -m pip install --user ".[gui,crypto]" +$ ELECTRUM_ECC_DONT_COMPILE=1 python3 -m pip install --user ".[gui,crypto]" ``` ### Not pure-python dependencies +#### Qt GUI + If you want to use the Qt interface, install the Qt dependencies: ``` $ sudo apt-get install python3-pyqt6 ``` +#### libsecp256k1 + For elliptic curve operations, [libsecp256k1](https://github.com/bitcoin-core/secp256k1) -is a required dependency: -``` -$ sudo apt-get install libsecp256k1-dev -``` +is a required dependency. -Alternatively, when running from a cloned repository, a script is provided to build -libsecp256k1 yourself: +If you "pip install" Electrum, by default libsecp will get compiled locally, +as part of the `electrum-ecc` dependency. This can be opted-out of, +by setting the `ELECTRUM_ECC_DONT_COMPILE=1` environment variable. +For the compilation to work, besides a C compiler, you need at least: ``` $ sudo apt-get install automake libtool -$ ./contrib/make_libsecp256k1.sh +``` +If you opt out of the compilation, you need to provide libsecp in another way, e.g.: +``` +$ sudo apt-get install libsecp256k1-dev ``` +#### cryptography + Due to the need for fast symmetric ciphers, [cryptography](https://github.com/pyca/cryptography) is required. Install from your package manager (or from pip): @@ -54,6 +62,8 @@ Install from your package manager (or from pip): $ sudo apt-get install python3-cryptography ``` +#### hardware-wallet support + If you would like hardware wallet support, [see this](https://github.com/spesmilo/electrum-docs/blob/master/hardware-linux.rst). diff --git a/contrib/build-wine/README_windows.md b/contrib/build-wine/README_windows.md index a34cce1f9..b6ac49ac5 100644 --- a/contrib/build-wine/README_windows.md +++ b/contrib/build-wine/README_windows.md @@ -21,6 +21,10 @@ Run install (this should install most dependencies): ### 2. Install `libsecp256k1` +[comment]: # (technically the dll should be put into site-packages/electrum_ecc/, +but putting it into electrum/ also works because of the `os.add_dll_directory` call in +electrum/__init__.py) + [libsecp256k1](https://github.com/bitcoin-core/secp256k1) is a required dependency. This is a C library, which you need to compile yourself. Electrum needs a dll, named `libsecp256k1-0.dll` (or newer `libsecp256k1-*.dll`), diff --git a/contrib/osx/README_macos.md b/contrib/osx/README_macos.md index 9549d6ed3..a56e63c8d 100644 --- a/contrib/osx/README_macos.md +++ b/contrib/osx/README_macos.md @@ -15,18 +15,23 @@ $ cd electrum $ git submodule update --init ``` -Run install (this should install most dependencies): +### 2. Prepare for compiling libsecp256k1 + +To be able to build the `electrum-ecc` package from source +(which is pulled in when installing Electrum in the next step), +you need: ``` -$ python3 -m pip install --user -e ".[gui,crypto]" +$ brew install autoconf automake libtool coreutils ``` -### 2. Install libsecp256k1 +### 3. Install Electrum + +Run install (this should install the dependencies): ``` -$ brew install autoconf automake libtool coreutils -$ contrib/make_libsecp256k1.sh +$ python3 -m pip install --user -e ".[gui,crypto]" ``` -### 3. Run electrum: +### 4. Run electrum: ``` $ ./run_electrum ```