Generally we recommend you install Irdest through your platform's package manager (if a package is available), or via our stand-alone installer.
However if no pre-built binaries exist for your platform you can use these instructions to build Irdest from source! However please also come by our Matrix room and tell us what platform you are using Irdest on! We may be able to build binaries for you as part of our CI pipeline.
In case you have
git installed on your system and would like to
follow along with the development version you can clone the repository
~ $ git clone https://git.irde.st/we/irdest ~ $ cd irdest/
Optionally you can only clone a particular release branch (default
$ git clone https://git.irde.st/we/irdest --branch release/ratman-0.4.0
You will need the following dependencies for building Irdest:
- rustc (minimum version ?)
- protobuf-compiler (with support for
On macOS you will need the Security framework from the Apple SDK.
Commonly these packagse can be installed as follows. Note that there is a wide range of operating system setups and so these instructions can not be comprehensive!
sudo apt install rustc cargo pkg-config protobuf-compiler clang-dev llvm-dev libudev-dev
sudo pacman -Sy rustc cargo pkg-config protobuf3 clang llvm libudev
Nix is a package manager and build tool which is used during Irdest development and CI. It is easy for documentation to go out of date and forget to mention a dependency or update a package name. Since we use Nix builds during development they will always be up-to-date.
Installation and usage is a bit more involved than simply installing packages, but it may be worth it if you plan on following along development regularly, or embedding the update process into other automation!
Follow the instructions on how to install nix on your platform here.
After installation you should be able to build the Irdest bundle as follows:
$ nix-build nix/ -A irdest-bundle $ result/install # then run the installer
You can also fetch development dependencies by running
the Irdest repository root!
Since Irdest is written in Rust, you can compile it with Cargo! Once you have all required dependencies installed you can invoke cargo as follows
~/irdest $ cargo release -p ratman --release Compiling version_check v0.9.4 Compiling proc-macro2 v1.0.36 Compiling unicode-xid v0.2.2 Compiling syn v1.0.85 Compiling libc v0.2.112 ... Finished release [optimized] target(s) in 1m 02s
Other buildable targets or features not enabled by default can be found in the [build reference].
Note that Irdest contains some components that require embedded
firmware. This can be found in the
firmware directory in the Irdest
Cross-compilation is extremely difficult! There are
files in each of the firmware sub-projects that configure and install
a cross-compilation build environment.
We strongly recommend using Nix to compile and flash your own firmware. We unfortunately can't give support for setting up cross-compilation bulid environments on other systems, since they are so numerous and complicated to configure!