This guide covers building ro-Control from source on Linux systems with Qt 6 and CMake.
The primary target is Fedora KDE Desktop, with official release artifacts for
x86_64, aarch64, noarch, and src.
| Component | Minimum Version | Check |
|---|---|---|
| GCC | 13+ | gcc --version |
| CMake | 3.22+ | cmake --version |
| Qt | 6.6+ | rpm -q qt6-qtbase-devel |
| Qt Linguist Tools | Required for release-grade builds | rpm -q qt6-qttools-devel |
| Ninja | Any | ninja --version (optional, faster builds) |
./scripts/fedora-bootstrap.shThe script installs Fedora dependencies, builds the app, and runs tests by default.
It auto-detects the host architecture and reports whether the resulting build is
x86_64 or aarch64.
For Fedora-specific runtime notes, see FEDORA.md.
sudo dnf install \
cmake \
extra-cmake-modules \
gcc-c++ \
ninja-build \
qt6-qtbase-devel \
qt6-qtdeclarative-devel \
qt6-qttools-devel \
qt6-qtwayland-devel \
kf6-qqc2-desktop-style \
polkit-develOfficial release outputs do not include i686. Driver install/update/remove
workflows are supported on x86_64 and aarch64 release builds.
Runtime tools used by diagnostics and driver operations:
sudo dnf install dnf polkit pciutils mokutil kmod lm_sensors procps-nggit clone https://github.com/Project-Ro-ASD/ro-Control.git
cd ro-Controlcmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug
cmake --build build -j$(nproc)cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)The GitHub release pipeline publishes only:
x86_64RPMaarch64RPMnoarchRPMsrcRPM
For branch builds (without creating a GitHub Release), run the RPM Artifacts
workflow. It uploads .rpm artifacts for:
x86_64aarch64
lupdate src -ts i18n/ro-control_en.ts i18n/ro-control_tr.ts
cmake --build build --target ro-control_lrelease# From the repository root
./build/ro-controlCLI examples:
./build/ro-control help
./build/ro-control version
./build/ro-control status
./build/ro-control diagnostics --json
./build/ro-control driver install --proprietary --accept-license
./build/ro-control driver updateNote: Driver install/remove operations require PolicyKit authentication. The UI will prompt you automatically.
After cmake --install, the CLI integration also installs:
man ro-control- Bash completion:
share/bash-completion/completions/ro-control - Zsh completion:
share/zsh/site-functions/_ro-control - Fish completion:
share/fish/vendor_completions.d/ro-control.fish
sudo cmake --install buildThis installs:
- Binary ->
/usr/local/bin/ro-control - Privileged helper ->
/usr/local/libexec/ro-control-helper - Desktop entry ->
/usr/local/share/applications/ - Icons ->
/usr/local/share/icons/ - AppStream metadata ->
/usr/local/share/metainfo/ - PolicyKit policy ->
/usr/local/share/polkit-1/actions/
cmake -S . -B build -G Ninja -DBUILD_TESTS=ON
cmake --build build -j$(nproc)
ctest --test-dir build --output-on-failuremake uninstall is not currently defined in this project.
Use your package manager or the install manifest to remove a local install.
qt6-qtdeclarative-devel not found
sudo dnf install qt6-qtdeclarative-develCMake can't find Qt6
# Make sure Qt6 is installed, then specify path manually:
cmake .. -DCMAKE_PREFIX_PATH=/usr/lib64/cmake/Qt6Build fails with C++20 errors Ensure GCC 13 or newer is installed:
sudo dnf install gcc-c++
gcc --version # Should be 13+Translations do not update
rm -rf build/.qt build/CMakeFiles
cmake -S . -B build
lupdate src -ts i18n/ro-control_en.ts i18n/ro-control_tr.ts
cmake --build build --target ro-control_lreleaseAfter making changes, always verify the build passes before submitting a PR:
cmake --build build -j$(nproc)
ctest --test-dir build --output-on-failureSee CONTRIBUTING.md for the full contribution guide.