1237cde86e
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.
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).