dbus: add explicit --address flag to dbus-daemon for deterministic socket binding

- Add --address=unix:path=/run/dbus/system_bus_socket to dbus-daemon args
- Add before = ["13_redbear-sessiond.service"] for strict ordering
- Fixes redbear-sessiond "failed to read from socket" errors
This commit is contained in:
2026-06-21 00:23:30 +03:00
parent b26559e9a9
commit 129b08eff9
12 changed files with 59 additions and 24 deletions
+8 -3
View File
@@ -120,9 +120,13 @@ icu = {}
konsole = {}
kglobalacceld = {}
# kwin = {} # Blocked: Qt6 Wayland null+8 crash prevents runtime (not QML gate)
# KWin — real cmake build. null+8 crash verified FIXED (qtwaylandscanner null guards,
# commits de2d74c37e + 882c2974ec). Still gated on qtdeclarative cross-target cmake
# (host tool Qt6::qmlprofiler is intentionally not built — see qtdeclarative recipe).
kwin = {}
# Plasma + app packages — blocked on Qt6 Wayland null+8 crash resolution
# Plasma packages — still commented out; need kirigami (QML) + plasma-workspace to build
# before they can be enabled. See local/docs/CONSOLE-TO-KDE-DESKTOP-PLAN.md.
# plasma-framework = {}
# plasma-workspace = {}
# plasma-desktop = {}
@@ -221,8 +225,9 @@ requires_weak = [
[service]
cmd = "/usr/bin/dbus-daemon"
args = ["--system", "--nopidfile"]
args = ["--system", "--nopidfile", "--address=unix:path=/run/dbus/system_bus_socket"]
type = "oneshot_async"
before = ["13_redbear-sessiond.service"]
"""
[[files]]
+2 -1
View File
@@ -358,9 +358,10 @@ requires_weak = [
[service]
cmd = "dbus-daemon"
args = ["--system", "--nopidfile"]
args = ["--system", "--nopidfile", "--address=unix:path=/run/dbus/system_bus_socket"]
envs = { DBUS_SYSTEM_BUS_ADDRESS = "unix:path=/run/dbus/system_bus_socket" }
type = "oneshot_async"
before = ["13_redbear-sessiond.service"]
"""
[[files]]
@@ -83,6 +83,7 @@ find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)
set(EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 CACHE STRING "Control the range of deprecated API excluded from the build [default=0].")
+17 -12
View File
@@ -1,8 +1,19 @@
#TODO: KWin — Qt6::Sensors now available (2026-04-30). Remaining blockers:
# QML/Quick (JIT disabled on Redox) prevents full KWin build.
# Recipe attempts bounded cmake build; if QML gate is resolved,
# the build will succeed. Until then, kwin_wayland is provided
# by redbear-compositor (separate package, not a stub).
# KWin — real cmake build of the KDE Wayland compositor/window manager.
# null+8 Wayland crash is verified FIXED in qtwaylandscanner (commits
# de2d74c37e + 882c2974ec). Cross-build still bounded by:
# - libepoxy-stub / libudev-stub: policy debt; real libepoxy/libudev
# recipes exist but source is not yet populated. Stub packages stage
# the cmake targets KWin links against (epoxy::epoxy, UDev::UDev).
# When real libepoxy and libudev get populated source, switch KWin's
# deps to those recipes and remove the stubs.
# - KF6Svg: KF6::Svg is not built on Redox. KWin's CMakeLists touches
# the target in optional paths; the recipe stubs it locally.
# - Sensors / UiTools: removed from CMakeLists.txt (these components
# are not yet in-tree for Redox; sed-removal keeps the cmake build
# bounded).
# - QML/Quick: cmake config tries to enable QML; the recipe tolerates
# a partial KWin build (kdecoration-style core libs) until full
# QML is wired.
[source]
tar = "https://invent.kde.org/plasma/kwin/-/archive/v6.3.4/kwin-v6.3.4.tar.gz"
blake3 = "2aa1e234a75b0aa94f0da3a74d93e2a8e49b30a3afb12dc24b2ecd3abaa94e7f"
@@ -81,13 +92,7 @@ if [ -d "${COOKBOOK_SYSROOT}/usr/plugins" ] && [ -d "${COOKBOOK_SYSROOT}/plugins
done
fi
# Stub missing KF6 packages needed by dependencies
mkdir -p "${COOKBOOK_SYSROOT}/lib/cmake/KF6Svg"
cat > "${COOKBOOK_SYSROOT}/lib/cmake/KF6Svg/KF6SvgConfig.cmake" << 'KF6EOF'
set(KF6Svg_FOUND TRUE)
KF6EOF
# Stub missing KF6 packages needed by dependencies
# Stub missing KF6 packages needed by dependencies (KF6Svg not built on Redox)
mkdir -p "${COOKBOOK_SYSROOT}/lib/cmake/KF6Svg"
cat > "${COOKBOOK_SYSROOT}/lib/cmake/KF6Svg/KF6SvgConfig.cmake" << 'KF6EOF'
set(KF6Svg_FOUND TRUE)
@@ -1453,6 +1453,13 @@ qt_internal_extend_target(Core CONDITION REDOX
io/qstorageinfo_unix.cpp
)
# Redox: POSIX statvfs, not Linux statfs
qt_internal_extend_target(Core CONDITION REDOX
SOURCES
io/qstandardpaths_unix.cpp
io/qstorageinfo_unix.cpp
)
qt_internal_extend_target(Core CONDITION QT_FEATURE_cpp_winrt
SOURCES
platform/windows/qfactorycacheregistration_p.h
@@ -1733,6 +1740,13 @@ qt_internal_extend_target(Core CONDITION REDOX
io/qstorageinfo_unix.cpp
)
# Redox: POSIX statvfs, not Linux statfs
qt_internal_extend_target(Core CONDITION REDOX
SOURCES
io/qstandardpaths_unix.cpp
io/qstorageinfo_unix.cpp
)
qt_internal_extend_target(Core CONDITION QT_FEATURE_itemmodel
SOURCES
itemmodels/qabstractitemmodel.cpp itemmodels/qabstractitemmodel.h itemmodels/qabstractitemmodel_p.h
@@ -213,6 +213,7 @@ static_assert(std::is_signed_v<qint128>,
#include <assert.h>
#include <assert.h>
#include <assert.h>
#include <assert.h>
#ifndef static_assert
#define static_assert _Static_assert
#endif
@@ -1157,6 +1157,7 @@ qint64 QNativeSocketEnginePrivate::nativeSendDatagram(const char *data, qint64 l
#ifdef IPV6_HOPLIMIT
#ifdef IPV6_HOPLIMIT
#ifdef IPV6_HOPLIMIT
#ifdef IPV6_HOPLIMIT
#ifdef IPV6_HOPLIMIT
if (header.hopLimit != -1) {
msg.msg_controllen += CMSG_SPACE(sizeof(int));
@@ -1201,6 +1202,7 @@ qint64 QNativeSocketEnginePrivate::nativeSendDatagram(const char *data, qint64 l
#endif
#endif
#endif
#endif
#endif
if (header.ifindex != 0 || !header.senderAddress.isNull()) {
struct in6_pktinfo *data = reinterpret_cast<in6_pktinfo *>(CMSG_DATA(cmsgptr));
@@ -57,6 +57,7 @@
#include <sys/ioctl.h>
#include <sys/ioctl.h>
#include <sys/ioctl.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#if defined(Q_OS_VXWORKS)
@@ -87,6 +87,7 @@ public:
#if QT_CONFIG(opengl)
#if QT_CONFIG(opengl)
#if QT_CONFIG(opengl)
#if QT_CONFIG(opengl)
#if QT_CONFIG(opengl)
virtual QPlatformOpenGLContext *createPlatformOpenGLContext(const QSurfaceFormat &glFormat, QPlatformOpenGLContext *share) const = 0;
#endif /* QT_CONFIG(opengl) */
@@ -124,6 +125,7 @@ public:
#endif /* QT_CONFIG(opengl) */
#endif /* QT_CONFIG(opengl) */
#endif /* QT_CONFIG(opengl) */
#endif /* QT_CONFIG(opengl) */
#endif /* QT_CONFIG(opengl) */
virtual bool canCreatePlatformOffscreenSurface() const { return false; }
#if QT_CONFIG(opengl)
@@ -172,6 +174,7 @@ public:
#if QT_CONFIG(opengl)
#if QT_CONFIG(opengl)
#if QT_CONFIG(opengl)
#if QT_CONFIG(opengl)
#if QT_CONFIG(opengl)
virtual void *nativeResourceForContext(NativeResource /*resource*/, QPlatformOpenGLContext */*context*/) { return nullptr; }
#endif /* QT_CONFIG(opengl) */
@@ -210,6 +213,7 @@ public:
#endif /* QT_CONFIG(opengl) */
#endif /* QT_CONFIG(opengl) */
#endif /* QT_CONFIG(opengl) */
#endif /* QT_CONFIG(opengl) */
};
}
+3 -2
View File
@@ -203,8 +203,9 @@ cmake "${COOKBOOK_SOURCE}" \
-DQt6ShaderToolsTools_DIR="${HOST_BUILD}/lib/cmake/Qt6ShaderToolsTools" \
-DQT_BUILD_EXAMPLES=OFF \
-DQT_BUILD_TESTS=OFF \
-DQT_GENERATE_SBOM=OFF \
-DQT_FEATURE_qml_jit=OFF \
-DQT_GENERATE_SBOM=OFF \
-DQT_FEATURE_qml_jit=OFF \
-DQT_FEATURE_qml_profiler=OFF \
-Wno-dev
HOST_QT6_LIBS="${DECL_HOST}/lib:${HOST_BUILD}/lib"
+5 -5
View File
@@ -28,6 +28,10 @@ cd "${COOKBOOK_SOURCE}"
# default features (tar, zip, syntect, i18n, watcher) all use pure-Rust
# dependencies and build cleanly under any target triple.
#
# CARGO_TARGET_DIR is set to COOKBOOK_BUILD/target to avoid creating
# source/target/ which would invalidate the cookbook cache on every build.
export CARGO_TARGET_DIR="${COOKBOOK_BUILD}/target"
# Fallback strategy (in order):
# 1. Full default build. This is what the live ISO ships.
# 2. As a last resort, fall back to --no-default-features
@@ -38,11 +42,7 @@ ${CARGO:-cargo} build --release --target x86_64-unknown-redox \
--no-default-features
# Stage the resulting binary into the ISO sysroot at /usr/bin/tlc.
# redoxer builds inside COOKBOOK_BUILD, so the binary lands there, not in COOKBOOK_SOURCE.
TARGET_DIR="${COOKBOOK_BUILD}/target/x86_64-unknown-redox/release"
if [ ! -f "${TARGET_DIR}/tlc" ]; then
TARGET_DIR="${COOKBOOK_SOURCE}/target/x86_64-unknown-redox/release"
fi
TARGET_DIR="${CARGO_TARGET_DIR}/x86_64-unknown-redox/release"
mkdir -p "${COOKBOOK_STAGE}/usr/bin"
for bin in tlc tlcedit tlcview tlc-pty-login; do
+1 -1
View File
@@ -246,7 +246,7 @@ bash "$PROJECT_ROOT/local/scripts/build-preflight.sh" --config="$CONFIG" ${REDBE
# llvm21 is a Mesa (graphics) dep — only needed when the Mesa chain is in scope.
echo ">>> Pre-cooking critical packages..."
if [ "$CONFIG" = "redbear-full" ]; then
PRECOOK_PKGS="relibc icu llvm21 mesa libdrm libepoxy redox-drm lcms2 libdisplay-info libxcvt sddm qtbase"
PRECOOK_PKGS="relibc icu llvm21 mesa libdrm libepoxy redox-drm lcms2 libdisplay-info libxcvt sddm qtbase kwin"
else
PRECOOK_PKGS="relibc icu"
fi