feat: build system transition to release fork + archive hardening
Release fork infrastructure: - REDBEAR_RELEASE=0.1.1 with offline enforcement (fetch/distclean/unfetch blocked) - 195 BLAKE3-verified source archives in standard format - Atomic provisioning via provision-release.sh (staging + .complete sentry) - 5-phase improvement plan: restore format auto-detection, source tree validation (validate-source-trees.py), archive-map.json, REPO_BINARY fallback Archive normalization: - Removed 87 duplicate/unversioned archives from shared pool - Regenerated all archives in consistent format with source/ + recipe.toml - BLAKE3SUMS and manifest.json generated from stable tarball set Patch management: - verify-patches.sh: pre-sync dry-run report (OK/REVERSED/CONFLICT) - 121 upstream-absorbed patches moved to absorbed/ directories - 43 active patches verified clean against rebased sources - Stress test: base updated to upstream HEAD, relibc reset and patched Compilation fixes: - relibc: Vec imports in redox-rt (proc.rs, lib.rs, sys.rs) - relibc: unsafe from_raw_parts in mod.rs (2024 edition) - fetch.rs: rev comparison handles short/full hash prefixes - kibi recipe: corrected rev mismatch New scripts: restore-sources.sh, provision-release.sh, verify-sources-archived.sh, check-upstream-releases.sh, validate-source-trees.py, verify-patches.sh, repair-archive-format.sh, generate-manifest.py Documentation: AGENTS.md, README.md, local/AGENTS.md updated for release fork model
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
--- a/b/src/connection.c 2025-07-06 13:11:26.000000000 +0100
|
||||
+++ b/src/connection.c 2026-05-01 00:15:42.778777823 +0100
|
||||
--- a/src/connection.c
|
||||
+++ b/src/connection.c
|
||||
@@ -40,6 +40,12 @@
|
||||
#include <time.h>
|
||||
#include <ffi.h>
|
||||
@@ -13,56 +13,8 @@
|
||||
#include "wayland-util.h"
|
||||
#include "wayland-private.h"
|
||||
#include "wayland-os.h"
|
||||
--- a/b/src/event-loop.c 2025-07-06 13:11:26.000000000 +0100
|
||||
+++ b/src/event-loop.c 2026-05-01 00:15:42.778845239 +0100
|
||||
@@ -35,9 +35,43 @@
|
||||
#include <sys/socket.h>
|
||||
#include <sys/un.h>
|
||||
#include <sys/epoll.h>
|
||||
-#include <sys/signalfd.h>
|
||||
-#include <sys/timerfd.h>
|
||||
#include <unistd.h>
|
||||
+/* Redox: relibc declares signalfd/timerfd in headers but has no implementation.
|
||||
+ Provide inline implementations via Redox schemes. */
|
||||
+#define SFD_CLOEXEC O_CLOEXEC
|
||||
+#define SFD_NONBLOCK O_NONBLOCK
|
||||
+#define TFD_CLOEXEC O_CLOEXEC
|
||||
+#define TFD_NONBLOCK O_NONBLOCK
|
||||
+#define TFD_TIMER_ABSTIME 0x1
|
||||
+struct signalfd_siginfo { uint8_t pad[128]; };
|
||||
+static int signalfd(int fd, const sigset_t *mask, int flags) {
|
||||
+ int oflag = O_RDWR;
|
||||
+ if (flags & SFD_CLOEXEC) oflag |= O_CLOEXEC;
|
||||
+ if (flags & SFD_NONBLOCK) oflag |= O_NONBLOCK;
|
||||
+ if (fd == -1) { fd = open("/scheme/event", oflag); if (fd < 0) return -1; }
|
||||
+ else { if (flags & SFD_CLOEXEC) fcntl(fd, F_SETFD, FD_CLOEXEC); }
|
||||
+ sigprocmask(SIG_BLOCK, mask, NULL);
|
||||
+ return fd;
|
||||
+}
|
||||
+static int timerfd_create(int clockid, int flags) {
|
||||
+ int oflag = O_RDWR;
|
||||
+ if (flags & TFD_CLOEXEC) oflag |= O_CLOEXEC;
|
||||
+ if (flags & TFD_NONBLOCK) oflag |= O_NONBLOCK;
|
||||
+ char path[64];
|
||||
+ snprintf(path, sizeof(path), "/scheme/time/%d", clockid);
|
||||
+ return open(path, oflag);
|
||||
+}
|
||||
+static int timerfd_settime(int fd, int flags, const struct itimerspec *new_value, struct itimerspec *old_value) {
|
||||
+ if (new_value == NULL) { errno = EFAULT; return -1; }
|
||||
+ ssize_t r = write(fd, &new_value->it_value, sizeof(struct timespec));
|
||||
+ return (r == sizeof(struct timespec)) ? 0 : -1;
|
||||
+}
|
||||
+static int timerfd_gettime(int fd, struct itimerspec *curr) {
|
||||
+ if (curr == NULL) { errno = EFAULT; return -1; }
|
||||
+ curr->it_interval = (struct timespec){0};
|
||||
+ ssize_t r = read(fd, &curr->it_value, sizeof(struct timespec));
|
||||
+ return (r == sizeof(struct timespec)) ? 0 : -1;
|
||||
+}
|
||||
#include "timespec-util.h"
|
||||
#include "wayland-util.h"
|
||||
#include "wayland-private.h"
|
||||
--- a/b/src/meson.build 2025-07-06 13:11:26.000000000 +0100
|
||||
+++ b/src/meson.build 2026-05-01 00:15:42.778925799 +0100
|
||||
--- a/src/meson.build
|
||||
+++ b/src/meson.build
|
||||
@@ -81,8 +81,7 @@
|
||||
endif
|
||||
|
||||
@@ -73,8 +25,8 @@
|
||||
else
|
||||
wayland_scanner_for_build = wayland_scanner
|
||||
endif
|
||||
--- a/b/src/wayland-server.c 2025-07-06 13:11:26.000000000 +0100
|
||||
+++ b/src/wayland-server.c 2026-05-01 00:15:42.779083803 +0100
|
||||
--- a/src/wayland-server.c
|
||||
+++ b/src/wayland-server.c
|
||||
@@ -39,7 +39,23 @@
|
||||
#include <dlfcn.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
Reference in New Issue
Block a user