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 # GPU/graphics stack
redox-drm = {} redox-drm = {}
mesa = {} # mesa = {} # suppressed
libdrm = {} # libdrm = {} # suppressed
# Wayland protocol # Wayland protocol
libwayland = {} # libwayland = {} # suppressed
wayland-protocols = {} # wayland-protocols = {} # suppressed
redbear-compositor = {} redbear-compositor = {}
# Keyboard/input # Keyboard/input
libxkbcommon = {} # libxkbcommon = {} # suppressed
xkeyboard-config = {} # xkeyboard-config = {} # suppressed
libevdev = {} # libevdev = {} # suppressed
libinput = {} #libinput = {} # suppressed: cascade rebuild
# Seat management # Seat management
seatd = {} seatd = {}
# Qt6 stack # Qt6 stack
qtbase = {} # qtbase = {} # suppressed
qtdeclarative = {} # qtdeclarative = {} # suppressed
qtsvg = {} # qtsvg = {} # suppressed
qtwayland = {} # qtwayland = {} # suppressed
qt6-wayland-smoke = {} # qt6-wayland-smoke = {} # suppressed
# KF6 Frameworks # KF6 Frameworks
kf6-extra-cmake-modules = {} #kf6-extra-cmake-modules = {} # suppressed: cascade rebuild
kf6-kcoreaddons = {} #kf6-kcoreaddons = {} # suppressed: cascade rebuild
kf6-kconfig = {} #kf6-kconfig = {} # suppressed: cascade rebuild
kf6-ki18n = {} #kf6-ki18n = {} # suppressed: cascade rebuild
kf6-kcolorscheme = {} #kf6-kcolorscheme = {} # suppressed: cascade rebuild
kf6-kauth = {} #kf6-kauth = {} # suppressed: cascade rebuild
kf6-kwindowsystem = {} #kf6-kwindowsystem = {} # suppressed: cascade rebuild
kf6-knotifications = {} #kf6-knotifications = {} # suppressed: cascade rebuild
kf6-kconfigwidgets = {} #kf6-kconfigwidgets = {} # suppressed: cascade rebuild
kf6-kcrash = {} #kf6-kcrash = {} # suppressed: cascade rebuild
kf6-kdbusaddons = {} #kf6-kdbusaddons = {} # suppressed: cascade rebuild
kf6-kglobalaccel = {} #kf6-kglobalaccel = {} # suppressed: cascade rebuild
kf6-kservice = {} #kf6-kservice = {} # suppressed: cascade rebuild
kf6-kpackage = {} #kf6-kpackage = {} # suppressed: cascade rebuild
kf6-kiconthemes = {} #kf6-kiconthemes = {} # suppressed: cascade rebuild
kirigami = {} #kirigami = {} # suppressed: cascade rebuild
kf6-kio = {} #kf6-kio = {} # suppressed: cascade rebuild
kf6-kdeclarative = {} #kf6-kdeclarative = {} # suppressed: cascade rebuild
kf6-kcmutils = {} #kf6-kcmutils = {} # suppressed: cascade rebuild
kf6-kwayland = {} #kf6-kwayland = {} # suppressed: cascade rebuild
kf6-kded6 = {} #kf6-kded6 = {} # suppressed: cascade rebuild
kglobalacceld = {} #kglobalacceld = {} # suppressed: cascade rebuild
# KWin Wayland compositor # KWin Wayland compositor
kwin = {} #kwin = {} # suppressed: cascade rebuild
# Greeter/login stack # Greeter/login stack
redbear-authd = {} redbear-authd = {}
redbear-session-launch = {} redbear-session-launch = {}
redbear-greeter = {} redbear-greeter = {}
amdgpu = "ignore"
# Core Red Bear umbrella package # Core Red Bear umbrella package
redbear-meta = {} redbear-meta = {}
@@ -104,6 +105,10 @@ cosmic-icons = "ignore"
cosmic-term = "ignore" cosmic-term = "ignore"
curl = "ignore" curl = "ignore"
git = "ignore" git = "ignore"
libinput = "ignore"
mc = "ignore"
#curl = "ignore" # suppressed: cascade rebuild
#git = "ignore" # suppressed: cascade rebuild
[[files]] [[files]]
path = "/lib/firmware/amdgpu" 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] [build]
template = "cargo" template = "cargo"
dependencies = [ dependencies = [
"amdgpu",
"redox-driver-sys", "redox-driver-sys",
"linux-kpi", "linux-kpi",
] ]
[package] [package]
dependencies = [ dependencies = [
"amdgpu",
] ]
+1 -1
View File
@@ -19,5 +19,5 @@ DYNAMIC_INIT
cookbook_meson \ cookbook_meson \
-Ddefault_library=shared \ -Ddefault_library=shared \
-Dxattr=false \ -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( meson_text = meson_text.replace(
"{ 'header': 'sys/signalfd.h', 'symbol': 'SFD_CLOEXEC' }", "{ '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) meson.write_text(meson_text)
@@ -360,6 +372,6 @@ connection_text = connection_text.replace(
connection.write_text(connection_text) connection.write_text(connection_text)
PY 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 cookbook_meson
""" """