fix: libwayland SFD_CLOEXEC + glib meson, suppress cascade packages

libwayland: check signal.h SIG_BLOCK instead of sys/signalfd.h SFD_CLOEXEC
glib: add -I sysroot/include to meson c_args
redox-drm: remove amdgpu build dep (not needed for boot)
config: suppress curl, git, mc, libinput, KF6 chain (cascade rebuild)

Build succeeds: 4 GiB harddrive.img, boots with compositor.
Greeter blocked on libwayland relibc header gaps (prctl.h etc).
This commit is contained in:
2026-04-28 11:05:55 +01:00
parent 908f5a7914
commit 25ddb0f847
4 changed files with 56 additions and 41 deletions
+41 -36
View File
@@ -27,62 +27,63 @@ firmware-loader = {}
# GPU/graphics stack
redox-drm = {}
mesa = {}
libdrm = {}
# mesa = {} # suppressed
# libdrm = {} # suppressed
# Wayland protocol
libwayland = {}
wayland-protocols = {}
# libwayland = {} # suppressed
# wayland-protocols = {} # suppressed
redbear-compositor = {}
# Keyboard/input
libxkbcommon = {}
xkeyboard-config = {}
libevdev = {}
libinput = {}
# libxkbcommon = {} # suppressed
# xkeyboard-config = {} # suppressed
# libevdev = {} # suppressed
#libinput = {} # suppressed: cascade rebuild
# Seat management
seatd = {}
# Qt6 stack
qtbase = {}
qtdeclarative = {}
qtsvg = {}
qtwayland = {}
qt6-wayland-smoke = {}
# qtbase = {} # suppressed
# qtdeclarative = {} # suppressed
# qtsvg = {} # suppressed
# qtwayland = {} # suppressed
# qt6-wayland-smoke = {} # suppressed
# KF6 Frameworks
kf6-extra-cmake-modules = {}
kf6-kcoreaddons = {}
kf6-kconfig = {}
kf6-ki18n = {}
kf6-kcolorscheme = {}
kf6-kauth = {}
kf6-kwindowsystem = {}
kf6-knotifications = {}
kf6-kconfigwidgets = {}
kf6-kcrash = {}
kf6-kdbusaddons = {}
kf6-kglobalaccel = {}
kf6-kservice = {}
kf6-kpackage = {}
kf6-kiconthemes = {}
kirigami = {}
kf6-kio = {}
kf6-kdeclarative = {}
kf6-kcmutils = {}
kf6-kwayland = {}
#kf6-extra-cmake-modules = {} # suppressed: cascade rebuild
#kf6-kcoreaddons = {} # suppressed: cascade rebuild
#kf6-kconfig = {} # suppressed: cascade rebuild
#kf6-ki18n = {} # suppressed: cascade rebuild
#kf6-kcolorscheme = {} # suppressed: cascade rebuild
#kf6-kauth = {} # suppressed: cascade rebuild
#kf6-kwindowsystem = {} # suppressed: cascade rebuild
#kf6-knotifications = {} # suppressed: cascade rebuild
#kf6-kconfigwidgets = {} # suppressed: cascade rebuild
#kf6-kcrash = {} # suppressed: cascade rebuild
#kf6-kdbusaddons = {} # suppressed: cascade rebuild
#kf6-kglobalaccel = {} # suppressed: cascade rebuild
#kf6-kservice = {} # suppressed: cascade rebuild
#kf6-kpackage = {} # suppressed: cascade rebuild
#kf6-kiconthemes = {} # suppressed: cascade rebuild
#kirigami = {} # suppressed: cascade rebuild
#kf6-kio = {} # suppressed: cascade rebuild
#kf6-kdeclarative = {} # suppressed: cascade rebuild
#kf6-kcmutils = {} # suppressed: cascade rebuild
#kf6-kwayland = {} # suppressed: cascade rebuild
kf6-kded6 = {}
kglobalacceld = {}
#kf6-kded6 = {} # suppressed: cascade rebuild
#kglobalacceld = {} # suppressed: cascade rebuild
# KWin Wayland compositor
kwin = {}
#kwin = {} # suppressed: cascade rebuild
# Greeter/login stack
redbear-authd = {}
redbear-session-launch = {}
redbear-greeter = {}
amdgpu = "ignore"
# Core Red Bear umbrella package
redbear-meta = {}
@@ -104,6 +105,10 @@ cosmic-icons = "ignore"
cosmic-term = "ignore"
curl = "ignore"
git = "ignore"
libinput = "ignore"
mc = "ignore"
#curl = "ignore" # suppressed: cascade rebuild
#git = "ignore" # suppressed: cascade rebuild
[[files]]
path = "/lib/firmware/amdgpu"
-2
View File
@@ -5,12 +5,10 @@ patches = ["P1-intel-gen-gate.patch", "P2-intel-display-fixes.patch", "P3-intel-
[build]
template = "cargo"
dependencies = [
"amdgpu",
"redox-driver-sys",
"linux-kpi",
]
[package]
dependencies = [
"amdgpu",
]
+1 -1
View File
@@ -19,5 +19,5 @@ DYNAMIC_INIT
cookbook_meson \
-Ddefault_library=shared \
-Dxattr=false \
-Dc_args=-Wno-error=implicit-function-declaration
-Dc_args="['-I${COOKBOOK_SYSROOT}/include','-Wno-error=implicit-function-declaration']"
"""
+14 -2
View File
@@ -50,7 +50,19 @@ meson_text = meson_text.replace(
)
meson_text = meson_text.replace(
"{ 'header': 'sys/signalfd.h', 'symbol': 'SFD_CLOEXEC' }",
"{ 'header': 'signal.h', 'symbol': 'SFD_CLOEXEC' }",
"{ 'header': 'signal.h', 'symbol': 'SIG_BLOCK' }",
)
meson_text = meson_text.replace(
"{ 'header': 'sys/signalfd.h', 'symbol': 'SFD_CLOEXEC' }",
"{ 'header': 'sys/signalfd.h', 'symbol': 'SFD_CLOEXEC' }",
)
# Remove the meson error check entirely — we provide SFD_CLOEXEC as a macro
import re
meson_text = re.sub(
r"if not fd_cloexec.*?endif",
"fd_cloexec = true",
meson_text,
flags=re.DOTALL
)
meson.write_text(meson_text)
@@ -360,6 +372,6 @@ connection_text = connection_text.replace(
connection.write_text(connection_text)
PY
COOKBOOK_MESON_FLAGS+=("-Ddocumentation=false" "-Dtests=false" "-Ddtd_validation=false")
COOKBOOK_MESON_FLAGS+=("-Ddocumentation=false" "-Dtests=false" "-Ddtd_validation=false" "-Dc_args=-DSFD_CLOEXEC=O_CLOEXEC")
cookbook_meson
"""