Skip to content
Adil Hanney edited this page Sep 13, 2025 · 6 revisions

You can either build Saber on your local computer, or use GitHub Actions to build it in the cloud.

Build on GitHub

You can build Saber via GitHub Actions without having to set up a local environment.

I will assume you already have some prior understanding of GitHub. If you don't, I recommend following the regular installation instructions instead.

Here is how to run a build through your web browser:

  1. Fork the Saber repository.
  2. Go to the "Actions" tab of your forked repository.
  3. Select a build workflow from the list on the left, e.g. "Build for Android".
  4. Press the "Run workflow" button, and confirm it.
  5. The build will start running, and you will see it after refreshing the page.
  6. Once the build is complete, open the run and scroll down to the "Artifacts" section.
  7. Download and extract the artifact for your platform, e.g. Saber-Android.

Build locally

You will need a computer and technical skills to build Saber yourself. If you encounter an issue, there may be a solution in Troubleshooting below.

1. Install Flutter

Install Flutter either by:

  • Following the official instructions at https://flutter.dev/docs/get-started/install, or;

  • Using my script to install Flutter and its dependencies automatically on Linux:

    curl -s https://raw.githubusercontent.com/adil192/adil192-linux/main/bootstrap/install_flutter.sh | bash

Important

Always exercise caution when running scripts from the internet. This script should be fairly easy to understand if you're familiar with linux, but if you're unsure, follow the official instructions instead.

2. Install Rust

Install Rust following the instructions at https://www.rust-lang.org/tools/install, e.g.

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

3. Build for...

Linux

Install the dependencies:

# For Debian/Ubuntu...
sudo apt install libsecret-1-dev libjsoncpp-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev webkit2gtk-4.1-dev
# Or for Fedora/RHEL...
sudo dnf install libsecret-devel jsoncpp-devel gstreamer1-devel gstreamer1-plugins-base-devel webkit2gtk4.1-devel

Then run the build command:

flutter build linux

You can run the built binary with:

./build/linux/x64/release/bundle/saber

Android

(Optional) If you wish to share your build, you should generate a signing certificate and create the android/key.properties file. More information on https://docs.flutter.dev/deployment/android#create-an-upload-keystore

(Optional) If you want to build the apk without any proprietary code (e.g. for F-Droid), run:

./patches/remove_proprietary_dependencies.sh

(Optional) Prepare Rust for Android builds:

rustup target add armv7-linux-androideabi aarch64-linux-android x86_64-linux-android

Now run the build command:

flutter build apk

Windows

Run the build command to generate a folder with saber.exe and all its dlls:

flutter build windows

If you want to create an installer, edit and run installers/desktop_inno_script.iss with Inno Setup Compiler.

iOS/macOS

Run the build command on a macOS computer:

flutter build apk
# or
flutter build macos

If you don't have access to a Mac, use the GitHub Actions build as mentioned above.

Troubleshooting

Could NOT find JNI (missing: JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2)

The java packages from Fedora are missing some files. I recommend downloading the openjdk from Microsoft and replacing your existing java, e.g.:

sudo cp -r /home/ahann/Downloads/microsoft-jdk-21.0.8-linux-x64/jdk-21.0.8+9/* /usr/lib/jvm/java-21-openjdk/

Disclaimer: This is probably not best practice, but it's what I do.

And add this to your ~/.bashrc or ~/.zshrc:

export JAVA_HOME="/usr/lib/jvm/java-21-openjdk"
Clone this wiki locally