4 KiB
Buildbot builds
The docker build bins can be found here: https://build.featherwallet.org/files/
Docker static builds
Static builds via Docker are done in 3 steps:
- Cloning this repository (+submodules)
- Creating a base Docker image
- Using the base image to compile a build
Linux x86-64 (reproducible)
The docker image for reproducible Linux static builds uses Ubuntu 16.04 and compiles the required libraries statically
so that the resulting Feather binary is static. For more information, check the Dockerfile: Dockerfile
.
1. Clone
git clone --branch master --recursive https://git.featherwallet.org/feather/feather.git
cd feather
Replace master
with the desired version tag (e.g. beta-8
) to build the release binary.
2. Base image
docker build --tag feather:linux --build-arg THREADS=4 .
Building the base image takes a while. You only need to build the base image once per release.
3. Build
Standalone binary
docker run --rm -it -v $PWD:/feather -w /feather feather:linux sh -c 'WITH_SCANNER=Off make release-static -j8'
If you're re-running a build make sure to rm -rf build/
first.
The resulting binary can be found in build/bin/feather
.
AppImage
rm -rf build
docker run --rm -it -v $PWD:/feather -w /feather feather:linux sh -c 'make release-static -j8'
docker run --rm -it -v $PWD:/feather -w /feather/build feather:linux ../contrib/build-appimage.sh
The resulting AppImage will be located in ./build
.
Linux arm64
1. Clone
git clone https://git.featherwallet.org/feather/feather.git
cd feather
git checkout master
git submodule update --init --recursive
Replace master
with the desired version tag (e.g. beta-8
) to build the release binary.
2. Base image
docker build --tag feather:linux-arm64 -f Dockerfile.linux-arm64 --build-arg THREADS=16 .
Building the base image takes a while (especially when emulated on x86-64). You only need to build the base image once per release.
3. Build
docker run --platform linux/arm64/v8 --rm -it -v $PWD:/feather -w /feather feather:linux-arm64 sh -c 'WITH_SCANNER=Off make release-static-linux-arm64 -j8'
Note: If you intend to run Feather on a Raspberry Pi or any device without AES hardware acceleration, use the following command instead:
docker run --platform linux/arm64/v8 --rm -it -v $PWD:/feather -w /feather feather:linux-arm64 sh -c 'WITH_SCANNER=Off make release-static-linux-arm64-rpi -j8'
The resulting binary can be found in build/bin/
.
Windows (reproducible)
1. Clone
git clone --branch master --recursive https://git.featherwallet.org/feather/feather.git
cd feather
Replace master
with the desired version tag (e.g. beta-8
) to build the release binary.
2. Base image
docker build -f Dockerfile.windows --tag feather:win --build-arg THREADS=4 .
Building the base image takes a while. You only need to build the base image once.
3. Build
docker run --rm -it -v $PWD:/feather -w /feather feather:win sh -c 'make depends root=/depends target=x86_64-w64-mingw32 tag=win-x64 -j4'
If you're re-running a build make sure to rm -rf build/
first.
The resulting binary can be found in build/x86_64-w64-mingw32/release/bin/feather.exe
.
macOS
For macOS it's easiest to leverage brew to install the required dependencies.
HOMEBREW_OPTFLAGS="-march=core2" HOMEBREW_OPTIMIZATION_LEVEL="O0" \
brew install boost zmq openssl libpgm miniupnpc libsodium expat libunwind-headers protobuf libgcrypt qrencode ccache cmake pkgconfig git
Clone the repository.
git clone --recursive https://git.featherwallet.org/feather/feather.git
Get the latest LTS from here: https://www.qt.io/offline-installers and install.
Build Feather.
CMAKE_PREFIX_PATH=~/Qt5.15.1/5.15.1/clang_64 make mac-release
The resulting macOS application can be found build/bin/feather.app
and will not have Tor embedded.