From 58531df6fd9aee17b4e8f9c6c39696682616e700 Mon Sep 17 00:00:00 2001 From: Sopwit <131982697+Sopwit@users.noreply.github.com> Date: Sun, 22 Mar 2026 23:11:04 +0300 Subject: [PATCH 1/2] fix: export RPM version for CI packaging step --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ef845cc..21fdf50 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -98,6 +98,7 @@ jobs: echo "Failed to read project version from CMakeLists.txt" >&2 exit 1 fi + echo "VERSION=${VERSION}" >> "${GITHUB_ENV}" ARCHIVE_BASENAME="ro-control-${VERSION}" mkdir -p ~/rpmbuild/SOURCES ~/rpmbuild/SPECS STAGE_DIR="$(mktemp -d)" From bea20fcff9e5d9a57ccb78a6e2db952608cfb7a7 Mon Sep 17 00:00:00 2001 From: Sopwit <131982697+Sopwit@users.noreply.github.com> Date: Mon, 23 Mar 2026 17:22:34 +0300 Subject: [PATCH 2/2] Fix Fedora bootstrap dependency handling --- docs/BUILDING.md | 5 ++++ docs/FEDORA.md | 5 ++++ scripts/fedora-bootstrap.sh | 59 ++++++++++++++++++++++++++++++++++--- 3 files changed, 65 insertions(+), 4 deletions(-) diff --git a/docs/BUILDING.md b/docs/BUILDING.md index e1d6fc3..b5cc393 100644 --- a/docs/BUILDING.md +++ b/docs/BUILDING.md @@ -36,6 +36,7 @@ sudo dnf install \ gcc-c++ \ ninja-build \ qt6-qtbase-devel \ + qt6-qtbase-private-devel \ qt6-qtdeclarative-devel \ qt6-qttools-devel \ qt6-qtwayland-devel \ @@ -43,6 +44,10 @@ sudo dnf install \ polkit-devel ``` +If `kf6-qqc2-desktop-style` is not available in your enabled repositories, you +can skip it for local builds. The Fedora bootstrap script already treats it as +optional. + Runtime tools used by diagnostics and driver operations: ```bash diff --git a/docs/FEDORA.md b/docs/FEDORA.md index 2698f43..afb651c 100644 --- a/docs/FEDORA.md +++ b/docs/FEDORA.md @@ -28,6 +28,7 @@ sudo dnf install -y \ gcc-c++ \ ninja-build \ qt6-qtbase-devel \ + qt6-qtbase-private-devel \ qt6-qtdeclarative-devel \ qt6-qttools-devel \ qt6-qtwayland-devel \ @@ -35,6 +36,10 @@ sudo dnf install -y \ polkit-devel ``` +On some Fedora setups, `kf6-qqc2-desktop-style` is not exposed by the currently +enabled repositories. The bootstrap script treats it as optional and continues +without it. + Runtime tools used by diagnostics and driver workflows: ```bash diff --git a/scripts/fedora-bootstrap.sh b/scripts/fedora-bootstrap.sh index 28aa179..3b24b9e 100755 --- a/scripts/fedora-bootstrap.sh +++ b/scripts/fedora-bootstrap.sh @@ -9,16 +9,16 @@ ENABLE_TESTS="${ENABLE_TESTS:-1}" INSTALL_AFTER_BUILD="${INSTALL_AFTER_BUILD:-0}" INSTALL_PREFIX="${INSTALL_PREFIX:-/usr/local}" -build_reqs=( +required_build_reqs=( cmake extra-cmake-modules gcc-c++ ninja-build qt6-qtbase-devel + qt6-qtbase-private-devel qt6-qtdeclarative-devel qt6-qttools-devel qt6-qtwayland-devel - kf6-qqc2-desktop-style polkit-devel ) @@ -28,10 +28,61 @@ runtime_tools=( pciutils mokutil kmod + lm_sensors + procps-ng +) + +optional_build_reqs=( + kf6-qqc2-desktop-style ) -echo "[1/4] Installing Fedora build dependencies..." -sudo dnf install -y "${build_reqs[@]}" +has_dnf_package() { + local package="$1" + dnf repoquery --quiet --whatprovides "$package" >/dev/null 2>&1 +} + +install_packages() { + local label="$1" + shift + + if (($# == 0)); then + return 0 + fi + + echo "$label" + sudo dnf install -y "$@" +} + +collect_available_packages() { + local -n requested_packages_ref="$1" + local -n available_packages_ref="$2" + local -n missing_packages_ref="$3" + + local package + for package in "${requested_packages_ref[@]}"; do + if has_dnf_package "$package"; then + available_packages_ref+=( "$package" ) + else + missing_packages_ref+=( "$package" ) + fi + done +} + +available_optional_build_reqs=() +missing_optional_build_reqs=() +collect_available_packages optional_build_reqs available_optional_build_reqs missing_optional_build_reqs + +install_packages "[1/4] Installing Fedora build dependencies..." "${required_build_reqs[@]}" + +if ((${#available_optional_build_reqs[@]} > 0)); then + install_packages "[1.1/4] Installing optional Fedora desktop integration packages..." \ + "${available_optional_build_reqs[@]}" +fi + +if ((${#missing_optional_build_reqs[@]} > 0)); then + printf '[info] Optional Fedora packages not available in enabled repositories: %s\n' \ + "${missing_optional_build_reqs[*]}" +fi echo "[2/4] Installing runtime utilities used by diagnostics/driver workflows..." sudo dnf install -y "${runtime_tools[@]}"