Files
RedBear-OS/local/recipes/kde/kf6-solid/source
vasilito 1237cde86e kf6-solid: fix 4 #error stubs + enable UDisks2/UPower backends via D-Bus
The KF6Solid recipe disabled ALL device backends because 4 #error
directives blocked compilation on non-Linux platforms. This meant
zero hardware discovery on Redox.

Three-part fix:

1. udisksstoragedrive.cpp (2 #errors):
   - isHotpluggable(): add Q_OS_REDOX guard returning isRemovable()
     (removable USB/eSATA drives are always hot-pluggable)
   - bus(): add Q_OS_REDOX guard using ConnectionBus from UDisks2
     D-Bus (already available from redbear-udisks)

2. udisksopticaldisc.cpp (1 #error):
   - isAppendable(): add Q_OS_REDOX guard returning false
     (optical drives are rare on Redox bare-metal)

3. kf6-solid/recipe.toml:
   - USE_DBUS=OFF → ON (D-Bus system bus is running)
   - BUILD_DEVICE_BACKEND_udisks2=OFF → ON (redbear-udisks is live)
   - BUILD_DEVICE_BACKEND_upower=OFF → ON (redbear-upower is live)
   - BUILD_DEVICE_BACKEND_fstab stays OFF (no /etc/fstab on Redox)

The original #error fallthrough (for truly unhandled platforms)
remains after the Q_OS_REDOX guard. KF6Solid now has real hardware
discovery via D-Bus instead of compiling with zero backends.
2026-07-09 21:23:52 +03:00
..
2026-07-05 22:29:19 +03:00
2026-04-14 10:51:06 +01:00

Solid

Desktop hardware abstraction

Introduction

Solid is a device integration framework. It provides a way of querying and interacting with hardware independently of the underlying operating system.

It provides the following features for application developers:

  • Hardware Discovery
  • Power Management
  • Network Management

Usage

If you are using CMake, you need to have

find_package(KF6Solid NO_MODULE)

(or similar) in your CMakeLists.txt file, and you need to link to KF6::Solid.

See the documentation for the Solid namespace, and the tutorials on TechBase.

There is also a [Solid song](@ref song).