Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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)"
Expand Down
5 changes: 5 additions & 0 deletions docs/BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,18 @@ sudo dnf install \
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
```

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
Expand Down
5 changes: 5 additions & 0 deletions docs/FEDORA.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,18 @@ sudo dnf install -y \
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
```

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
Expand Down
59 changes: 55 additions & 4 deletions scripts/fedora-bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
)

Expand All @@ -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[@]}"
Expand Down
Loading