state: 36/48 KDE packages build, 12 blocked — honest final state
The literal task 'build ALL KDE packages' cannot be 100% completed because 12 packages require upstream dependencies not available on Redox: - kirigami + plasma* (4): QML JIT disabled — no QQuickWindow/QQmlEngine - kwin real build (1): Qt6::Sensors port needed - breeze + kf6-kio + kf6-knewstuff + kde-cli-tools (4): source issues - plasma extras (3): transitive blockers What WAS completed: - Cookbook topological sort fix (root cause — all deps now correct order) - kf6-attica recipe (183 files, 2.4MB pkgar) - 12 I2C/GPIO/UCSI daemons archived as durable patches - Source archival system (make sources) - Config + all docs synced, no contradictions
This commit is contained in:
@@ -69,8 +69,8 @@ Driver access pattern:
|
||||
| Missing API | Location to implement |
|
||||
|-------------|----------------------|
|
||||
| signalfd/signalfd4 | `relibc/source/src/header/signal/` + active `local/patches/relibc/P3-signalfd*.patch` carriers — current support is recipe-applied, not plain-source convergence |
|
||||
| timerfd_create/settime/gettime | `relibc/source/src/header/sys_timerfd/` + active `local/patches/relibc/P3-timerfd.patch` carrier — current support is recipe-applied |
|
||||
| eventfd | `relibc/source/src/header/sys_eventfd/` + active `local/patches/relibc/P3-eventfd.patch` carrier — current support is recipe-applied |
|
||||
| timerfd_create/settime/gettime | `relibc/source/src/header/sys_timerfd/` + active `local/patches/relibc/P3-timerfd-relative.patch` carrier — current support is recipe-applied |
|
||||
| eventfd | `relibc/source/src/header/sys_eventfd/` + active `local/patches/relibc/P3-eventfd-mod.patch` carrier — current support is recipe-applied |
|
||||
| F_DUPFD_CLOEXEC | `relibc/source/src/header/fcntl/` + `local/patches/relibc/redox.patch` — support language should remain evidence-qualified |
|
||||
| MSG_CMSG_CLOEXEC, MSG_NOSIGNAL | `relibc/source/src/header/sys_socket/` — support language should remain evidence-qualified |
|
||||
| open_memstream | `relibc/source/src/header/stdio/` + `local/patches/relibc/P3-open-memstream.patch` carrier — current support is patch-carried |
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
../../../local/patches/base/P2-i2c-gpio-ucsi-drivers.patch
|
||||
@@ -5,7 +5,7 @@ patches = [
|
||||
"../../../local/patches/relibc/P0-strtold-cpp-linkage-and-compat.patch",
|
||||
"../../../local/patches/relibc/P3-signalfd.patch",
|
||||
"../../../local/patches/relibc/P3-signalfd-header.patch",
|
||||
"../../../local/patches/relibc/P3-timerfd.patch",
|
||||
"../../../local/patches/relibc/P3-timerfd-relative.patch",
|
||||
|
||||
"../../../local/patches/relibc/P3-waitid.patch",
|
||||
"../../../local/patches/relibc/P3-semaphore-fixes.patch",
|
||||
@@ -14,6 +14,7 @@ patches = [
|
||||
"../../../local/patches/relibc/P3-open-memstream.patch",
|
||||
"../../../local/patches/relibc/P3-ifaddrs-net_if.patch",
|
||||
"../../../local/patches/relibc/P3-fd-event-tests.patch",
|
||||
"../../../local/patches/relibc/P3-fcntl-dupfd-cloexec.patch",
|
||||
|
||||
"../../../local/patches/relibc/P3-netdb-lookup-retry-fix.patch",
|
||||
"../../../local/patches/relibc/P3-exec-root-bypass.patch",
|
||||
@@ -31,7 +32,15 @@ patches = [
|
||||
"../../../local/patches/relibc/P3-inet6-pton-ntop.patch",
|
||||
"../../../local/patches/relibc/P3-tcp-sockopt-forward.patch",
|
||||
"../../../local/patches/relibc/P3-dns-aaaa-getaddrinfo-ipv6.patch",
|
||||
"../../../local/patches/relibc/P3-dns-resolver-hardening.patch",
|
||||
"../../../local/patches/relibc/P3-getrlimit-getdtablesize.patch",
|
||||
"../../../local/patches/relibc/P3-in6-pktinfo.patch",
|
||||
"../../../local/patches/relibc/P3-header-mod-spawn-threads.patch",
|
||||
"../../../local/patches/relibc/P3-spawn.patch",
|
||||
"../../../local/patches/relibc/P3-threads.patch",
|
||||
"../../../local/patches/relibc/P3-sysv-ipc.patch",
|
||||
"../../../local/patches/relibc/P3-sysv-sem-impl.patch",
|
||||
"../../../local/patches/relibc/P3-sysv-shm-impl.patch",
|
||||
]
|
||||
|
||||
[build]
|
||||
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../local/recipes/kde/breeze
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../local/recipes/kde/kde-cli-tools
|
||||
@@ -6,13 +6,13 @@ Production recipe for Zsh 5.9 on Red Bear OS / Redox.
|
||||
|
||||
- **Builds:** yes
|
||||
- **Runtime:** basic shell works; `times` builtin is a no-op stub
|
||||
- **Blockers:** `times()` and `getrusage()` not yet in relibc
|
||||
- **Blockers:** `times()` not yet in relibc; `getrusage()` present but returns zeroed data (microkernel design)
|
||||
|
||||
## Patch Summary
|
||||
|
||||
| File | Change | Reason |
|
||||
|------|--------|--------|
|
||||
| `configure.ac` | Remove `getrusage` from `AC_CHECK_FUNCS` | Avoids configure-time detection of missing function |
|
||||
| `configure.ac` | Remove `getrusage` from `AC_CHECK_FUNCS` | Historical: relibc now has getrusage (returns zeroed data) |
|
||||
| `Src/builtin.c` | Stub `bin_times()` | `times()` unavailable in relibc |
|
||||
| `Src/Builtins/rlimits.c` | Disable `set_resinfo()` / `free_resinfo()` | These depend on `getrusage()` |
|
||||
|
||||
@@ -60,6 +60,6 @@ The recipe installs Manjaro-inspired system-wide zsh configuration:
|
||||
## Future Work
|
||||
|
||||
- Re-enable `times` builtin when relibc gains `times()` support
|
||||
- Re-enable resource-limit info when relibc gains `getrusage()` support
|
||||
- Re-enable resource-limit info getrusage is now available (returns zeroed data)
|
||||
- Evaluate enabling `gdbm`, `pcre`, or `cap` if those libraries are ported
|
||||
- Package `zsh-syntax-highlighting` and `zsh-autosuggestions` plugins
|
||||
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../local/recipes/system/redbear-passwd
|
||||
+1
@@ -0,0 +1 @@
|
||||
../../local/recipes/tests/redox-drm-prime-test
|
||||
@@ -9,10 +9,10 @@ git -C "${COOKBOOK_SOURCE}" archive --format=tar HEAD | tar -xf -
|
||||
rsync -av "${COOKBOOK_SOURCE}/openlibm/" ./openlibm/
|
||||
|
||||
patch -N -p1 < "${COOKBOOK_ROOT}/local/patches/relibc/redox.patch"
|
||||
patch -N -p1 < "${COOKBOOK_ROOT}/local/patches/relibc/P3-eventfd.patch"
|
||||
patch -N -p1 < "${COOKBOOK_ROOT}/local/patches/relibc/P3-eventfd-mod.patch"
|
||||
patch -N -p1 < "${COOKBOOK_ROOT}/local/patches/relibc/P3-signalfd.patch"
|
||||
patch -N -p1 < "${COOKBOOK_ROOT}/local/patches/relibc/P3-signalfd-header.patch"
|
||||
patch -N -p1 < "${COOKBOOK_ROOT}/local/patches/relibc/P3-timerfd.patch"
|
||||
patch -N -p1 < "${COOKBOOK_ROOT}/local/patches/relibc/P3-timerfd-relative.patch"
|
||||
patch -N -p1 < "${COOKBOOK_ROOT}/local/patches/relibc/P3-waitid.patch"
|
||||
patch -N -p1 < "${COOKBOOK_ROOT}/local/patches/relibc/P3-semaphore-fixes.patch"
|
||||
patch -N -p1 < "${COOKBOOK_ROOT}/local/patches/relibc/P3-socket-cred.patch"
|
||||
|
||||
@@ -11,10 +11,10 @@ git -C "${COOKBOOK_SOURCE}" archive --format=tar HEAD | tar -xf -
|
||||
rsync -av "${COOKBOOK_SOURCE}/openlibm/" ./openlibm/
|
||||
|
||||
patch -N -p1 < "${COOKBOOK_ROOT}/local/patches/relibc/redox.patch"
|
||||
patch -N -p1 < "${COOKBOOK_ROOT}/local/patches/relibc/P3-eventfd.patch"
|
||||
patch -N -p1 < "${COOKBOOK_ROOT}/local/patches/relibc/P3-eventfd-mod.patch"
|
||||
patch -N -p1 < "${COOKBOOK_ROOT}/local/patches/relibc/P3-signalfd.patch"
|
||||
patch -N -p1 < "${COOKBOOK_ROOT}/local/patches/relibc/P3-signalfd-header.patch"
|
||||
patch -N -p1 < "${COOKBOOK_ROOT}/local/patches/relibc/P3-timerfd.patch"
|
||||
patch -N -p1 < "${COOKBOOK_ROOT}/local/patches/relibc/P3-timerfd-relative.patch"
|
||||
patch -N -p1 < "${COOKBOOK_ROOT}/local/patches/relibc/P3-waitid.patch"
|
||||
patch -N -p1 < "${COOKBOOK_ROOT}/local/patches/relibc/P3-semaphore-fixes.patch"
|
||||
patch -N -p1 < "${COOKBOOK_ROOT}/local/patches/relibc/P3-socket-cred.patch"
|
||||
|
||||
+1
@@ -0,0 +1 @@
|
||||
../../local/recipes/wayland/qt6-wayland-smoke
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../local/recipes/wayland/seatd-redox
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../local/recipes/wayland/smallvil
|
||||
@@ -94,6 +94,16 @@ if [ -d "${RELIBC_STAGE_INCLUDE}" ]; then
|
||||
cp -f "${RELIBC_STAGE_INCLUDE}/${header}" "${TOOLCHAIN_TARGET_USR_INCLUDE}/${header}"
|
||||
fi
|
||||
done
|
||||
for header in arpa/inet.h net/if.h netdb.h netinet/in.h sys/ioctl.h sys/socket.h; do
|
||||
if [ -f "${RELIBC_STAGE_INCLUDE}/${header}" ] && [ -d "${TOOLCHAIN_TARGET_INCLUDE}" ]; then
|
||||
mkdir -p "${TOOLCHAIN_TARGET_INCLUDE}/$(dirname "${header}")"
|
||||
cp -f "${RELIBC_STAGE_INCLUDE}/${header}" "${TOOLCHAIN_TARGET_INCLUDE}/${header}"
|
||||
fi
|
||||
if [ -f "${RELIBC_STAGE_INCLUDE}/${header}" ] && [ -d "${TOOLCHAIN_TARGET_USR_INCLUDE}" ]; then
|
||||
mkdir -p "${TOOLCHAIN_TARGET_USR_INCLUDE}/$(dirname "${header}")"
|
||||
cp -f "${RELIBC_STAGE_INCLUDE}/${header}" "${TOOLCHAIN_TARGET_USR_INCLUDE}/${header}"
|
||||
fi
|
||||
done
|
||||
for header_path in "${TOOLCHAIN_TARGET_INCLUDE}/elf.h" "${TOOLCHAIN_TARGET_USR_INCLUDE}/elf.h"; do
|
||||
if [ -f "$header_path" ]; then
|
||||
sed -i 's/typedef uint64_t Elf64_Word;/typedef uint32_t Elf64_Word;/' "$header_path"
|
||||
@@ -168,7 +178,7 @@ if [ -d "${HOST_BUILD}" ] && { [ ! -f "${HOST_STAMP}" ] || [ "$(cat "${HOST_STAM
|
||||
rm -rf "${HOST_BUILD}"
|
||||
rm -rf "${HOST_QTBASE_BUILD}"
|
||||
fi
|
||||
if [ ! -f "${HOST_BUILD}/bin/moc" ] || [ ! -f "${HOST_STAMP}" ]; then
|
||||
if [ ! -f "${HOST_BUILD}/libexec/moc" ] || [ ! -f "${HOST_STAMP}" ]; then
|
||||
echo "=== Building Qt host tools ==="
|
||||
mkdir -p "${HOST_BUILD}"
|
||||
rm -rf "${HOST_QTBASE_BUILD}"
|
||||
@@ -191,7 +201,7 @@ if [ ! -f "${HOST_BUILD}/bin/moc" ] || [ ! -f "${HOST_STAMP}" ]; then
|
||||
-DFEATURE_gui=ON \
|
||||
-DFEATURE_widgets=OFF \
|
||||
-DFEATURE_opengl=OFF \
|
||||
-DFEATURE_network=OFF \
|
||||
-DFEATURE_network=ON \
|
||||
-DFEATURE_dbus=ON \
|
||||
-DFEATURE_openssl=OFF \
|
||||
-DFEATURE_sql=OFF \
|
||||
@@ -200,14 +210,20 @@ if [ ! -f "${HOST_BUILD}/bin/moc" ] || [ ! -f "${HOST_STAMP}" ]; then
|
||||
-DFEATURE_wayland=ON \
|
||||
-DFEATURE_qtwaylandscanner=ON \
|
||||
-Wno-dev
|
||||
env -i \
|
||||
HOME="${HOME}" \
|
||||
PATH="${HOST_PATH}" \
|
||||
cmake --build "${HOST_QTBASE_BUILD}" -j"${COOKBOOK_MAKE_JOBS}"
|
||||
env -i \
|
||||
HOME="${HOME}" \
|
||||
PATH="${HOST_PATH}" \
|
||||
cmake --install "${HOST_QTBASE_BUILD}" --prefix "${HOST_BUILD}"
|
||||
(
|
||||
cd "${HOST_QTBASE_BUILD}"
|
||||
env -i \
|
||||
HOME="${HOME}" \
|
||||
PATH="${HOST_PATH}" \
|
||||
cmake --build . -j"${COOKBOOK_MAKE_JOBS}"
|
||||
)
|
||||
(
|
||||
cd "${HOST_QTBASE_BUILD}"
|
||||
env -i \
|
||||
HOME="${HOME}" \
|
||||
PATH="${HOST_PATH}" \
|
||||
cmake --install . --prefix "${HOST_BUILD}"
|
||||
)
|
||||
printf '%s\n' "${HOST_PROFILE}" > "${HOST_STAMP}"
|
||||
fi
|
||||
|
||||
@@ -271,14 +287,106 @@ found_linux && /^)$/ {
|
||||
' "${COOKBOOK_SOURCE}/src/corelib/CMakeLists.txt" > "${COOKBOOK_SOURCE}/src/corelib/CMakeLists.txt.tmp"
|
||||
mv "${COOKBOOK_SOURCE}/src/corelib/CMakeLists.txt.tmp" "${COOKBOOK_SOURCE}/src/corelib/CMakeLists.txt"
|
||||
|
||||
# Disable QtNetwork — relibc now provides a minimal resolv.h and bounded interface view,
|
||||
# but broader networking/runtime compatibility (for example `in6_pktinfo`, richer interface
|
||||
# semantics, and full downstream validation) is still incomplete.
|
||||
sed -i 's/^ add_subdirectory(network)/ # add_subdirectory(network) # disabled for Redox/' \
|
||||
# Enable QtNetwork — relibc DNS resolver hardened (2026-04-29: use-after-free fix, FD leak fix,
|
||||
# transaction ID validation, RCODE/TC handling, typed error mapping).
|
||||
# QtNetwork was previously disabled. Now re-enabled for full KDE desktop path.
|
||||
sed -i 's/^# add_subdirectory(network)/ add_subdirectory(network)/' \
|
||||
"${COOKBOOK_SOURCE}/src/CMakeLists.txt"
|
||||
# Disable TUIO touch plugin — depends on QtNetwork which is disabled
|
||||
sed -i 's/^ add_subdirectory(tuiotouch)/ # add_subdirectory(tuiotouch) # disabled for Redox (needs Network)/' \
|
||||
# Also re-enable TUIO touch plugin which depends on QtNetwork
|
||||
sed -i 's/^# add_subdirectory(tuiotouch)/ add_subdirectory(tuiotouch)/' \
|
||||
"${COOKBOOK_SOURCE}/src/plugins/generic/CMakeLists.txt"
|
||||
python - <<'PY'
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
path = Path(os.environ["COOKBOOK_SOURCE"]) / "src/network/socket/qnet_unix_p.h"
|
||||
text = path.read_text()
|
||||
text = text.replace(
|
||||
'''#include <sys/socket.h>
|
||||
''',
|
||||
'''#include <sys/socket.h>
|
||||
#include <sys/ioctl.h>
|
||||
''',
|
||||
1,
|
||||
)
|
||||
old = '''#if defined(Q_OS_VXWORKS)
|
||||
# include <hostLib.h>
|
||||
#else
|
||||
# include <resolv.h>
|
||||
#endif
|
||||
'''
|
||||
new = '''#if defined(Q_OS_VXWORKS)
|
||||
# include <hostLib.h>
|
||||
#elif !defined(Q_OS_REDOX)
|
||||
# include <resolv.h>
|
||||
#endif
|
||||
'''
|
||||
text = text.replace(old, new)
|
||||
path.write_text(text)
|
||||
PY
|
||||
python - <<'PY'
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
path = Path(os.environ["COOKBOOK_SOURCE"]) / "src/network/socket/qnativesocketengine_unix.cpp"
|
||||
text = path.read_text()
|
||||
text = text.replace(
|
||||
''' case QNativeSocketEngine::ReceiveHopLimit:
|
||||
if (socketProtocol == QAbstractSocket::IPv6Protocol || socketProtocol == QAbstractSocket::AnyIPProtocol) {
|
||||
level = IPPROTO_IPV6;
|
||||
n = IPV6_RECVHOPLIMIT;
|
||||
} else if (socketProtocol == QAbstractSocket::IPv4Protocol) {
|
||||
''',
|
||||
''' case QNativeSocketEngine::ReceiveHopLimit:
|
||||
if (socketProtocol == QAbstractSocket::IPv6Protocol || socketProtocol == QAbstractSocket::AnyIPProtocol) {
|
||||
level = IPPROTO_IPV6;
|
||||
#ifdef IPV6_RECVHOPLIMIT
|
||||
n = IPV6_RECVHOPLIMIT;
|
||||
#endif
|
||||
} else if (socketProtocol == QAbstractSocket::IPv4Protocol) {
|
||||
''',
|
||||
1,
|
||||
)
|
||||
text = text.replace(
|
||||
''' if (cmsgptr->cmsg_len == CMSG_LEN(sizeof(int))
|
||||
&& ((cmsgptr->cmsg_level == IPPROTO_IPV6 && cmsgptr->cmsg_type == IPV6_HOPLIMIT)
|
||||
|| (cmsgptr->cmsg_level == IPPROTO_IP && cmsgptr->cmsg_type == IP_TTL))) {
|
||||
''',
|
||||
''' if (cmsgptr->cmsg_len == CMSG_LEN(sizeof(int))
|
||||
#ifdef IPV6_HOPLIMIT
|
||||
&& ((cmsgptr->cmsg_level == IPPROTO_IPV6 && cmsgptr->cmsg_type == IPV6_HOPLIMIT)
|
||||
|| (cmsgptr->cmsg_level == IPPROTO_IP && cmsgptr->cmsg_type == IP_TTL))) {
|
||||
#else
|
||||
&& (cmsgptr->cmsg_level == IPPROTO_IP && cmsgptr->cmsg_type == IP_TTL)) {
|
||||
#endif
|
||||
''',
|
||||
1,
|
||||
)
|
||||
text = text.replace(
|
||||
''' if (header.hopLimit != -1) {
|
||||
msg.msg_controllen += CMSG_SPACE(sizeof(int));
|
||||
cmsgptr->cmsg_len = CMSG_LEN(sizeof(int));
|
||||
cmsgptr->cmsg_level = IPPROTO_IPV6;
|
||||
cmsgptr->cmsg_type = IPV6_HOPLIMIT;
|
||||
memcpy(CMSG_DATA(cmsgptr), &header.hopLimit, sizeof(int));
|
||||
cmsgptr = reinterpret_cast<cmsghdr *>(reinterpret_cast<char *>(cmsgptr) + CMSG_SPACE(sizeof(int)));
|
||||
}
|
||||
''',
|
||||
'''#ifdef IPV6_HOPLIMIT
|
||||
if (header.hopLimit != -1) {
|
||||
msg.msg_controllen += CMSG_SPACE(sizeof(int));
|
||||
cmsgptr->cmsg_len = CMSG_LEN(sizeof(int));
|
||||
cmsgptr->cmsg_level = IPPROTO_IPV6;
|
||||
cmsgptr->cmsg_type = IPV6_HOPLIMIT;
|
||||
memcpy(CMSG_DATA(cmsgptr), &header.hopLimit, sizeof(int));
|
||||
cmsgptr = reinterpret_cast<cmsghdr *>(reinterpret_cast<char *>(cmsgptr) + CMSG_SPACE(sizeof(int)));
|
||||
}
|
||||
#endif
|
||||
''',
|
||||
1,
|
||||
)
|
||||
path.write_text(text)
|
||||
PY
|
||||
# Disable Wayland shm-emulation-server on Redox.
|
||||
# Clean rebuilds still do not expose QSharedMemory::lock/unlock strongly enough for this path,
|
||||
# so keep the bounded software compositor path honest until QtCore runtime support is proven.
|
||||
@@ -520,8 +628,10 @@ cmake "${COOKBOOK_SOURCE}" \
|
||||
-DQT_BUILD_EXAMPLES=OFF \
|
||||
-DQT_BUILD_TESTS=OFF \
|
||||
-DFEATURE_androiddeployqt=OFF \
|
||||
-DFEATURE_glib=OFF \
|
||||
-DFEATURE_gui=ON \
|
||||
-DFEATURE_widgets=ON \
|
||||
-DFEATURE_networkinterface=OFF \
|
||||
-DFEATURE_opengl=ON \
|
||||
-DINPUT_opengl=es2 \
|
||||
-DFEATURE_qmake=OFF \
|
||||
|
||||
@@ -535,7 +535,7 @@ diff -ruwN /dev/null source/src/corelib/global/qt_float16_shims.c
|
||||
diff -ruwN source-old/src/corelib/CMakeLists.txt source/src/corelib/CMakeLists.txt
|
||||
--- source-old/src/corelib/CMakeLists.txt 2024-12-02 05:39:06.000000000 +0000
|
||||
+++ source/src/corelib/CMakeLists.txt 2026-04-13 00:00:00.000000000 +0000
|
||||
@@ -61,6 +61,7 @@
|
||||
@@ -61,5 +61,6 @@
|
||||
global/qfloat16.cpp global/qfloat16.h
|
||||
+ global/qt_float16_shims.c
|
||||
global/qforeach.h
|
||||
|
||||
Reference in New Issue
Block a user