aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2026-03-30internal/uevent: separate recvmsg helperOphestra
This enables messages to be received separately. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-30internal/netlink: set receive buffer sizeOphestra
This is done by both systemd sd-device and AOSP ueventd to improve robustness. Rosa OS will still handle ENOBUFS via coldboot but a big buffer should mitigate this as well. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-30internal/uevent: handle state divergenceOphestra
This requires the caller to arrange for a coldboot to happen, some time after this error is encountered, and to resume event processing. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-29internal/netlink: switch to recvmsg/sendmsgOphestra
These are more flexible than recvfrom/sendto. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-28cmd: document Rosa OS programsOphestra
The earlyinit and mbf program are not covered by the compatibility promise, so specify that here. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-28cmd/hsu: alternative hsurc path for Rosa OSOphestra
Rosa OS does not have /etc. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-28cmd/hsu: document hsurc format and internalsOphestra
This was previously only documented via an unexported function. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-28cmd/hakurei: document stable behaviourOphestra
These are undocumented anywhere else and is required by tools invoking hakurei. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-28cmd/hakurei: rename app to runOphestra
The run command was a legacy holdover from very early days and is only useful for testing and demonstration these days. This change also renames it to exec. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-28cmd/hakurei: remove linkname directiveOphestra
This used to be a function that did much more, and was later relocated to another package and exported. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-28internal/uevent: consume kernel-originated eventsOphestra
These are not possible to cover outside integration vm. Extreme care is required when dealing with this method, so keep it simple. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-28internal/uevent: exclusive socket accessOphestra
This is a much simplified mutex, since blocking is not required. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-28internal/uevent: decode uevent messagesOphestra
The wire format and behaviour is entirely undocumented. This is implemented by reading lib/kobject_uevent.c, with testdata collected from the internal/rosa kernel. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-28internal/uevent: nontrivial errorsOphestra
These errors are best represented as JSON. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-27internal/uevent: recoverable errorsOphestra
This runs in the Rosa OS init, so recover as much as possible, as otherwise it is likely to require a full system reboot to resume event processing. The caller is responsible for reporting the error. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-27internal/uevent: wrap netlink socketOphestra
Unfortunately these messages do not have the same format as rtnetlink. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-27internal/uevent: kobject_action lookupOphestra
This is encoded as part of kobject uevent message headers. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-27internal/netlink: export generic connectionOphestra
This enables abstractions around some families to be implemented in a separate package. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-27internal/rosa/kernel: 6.12.77 to 6.12.78Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-26internal/rosa: key-value typeOphestra
This type is used very frequently. The new type is much easier to type and can receive helper methods eventually if needed. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-26internal/rosa: set PYTHONUNBUFFERED=1Ophestra
Some python tools try to be clever and buffers output. This makes the build process appear to hang and is quite frustrating. Instead of trying to address this on a case-by-case basis, this is turned off globally for the interpreter. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-26cmd/mbf: optionally enter cure containerOphestra
This is very useful for troubleshooting failing tests and such. The ephemeral state is cleaned up by internal/pkg. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-26internal/pkg: enter exec containerOphestra
This enables much easier troubleshooting of failing cures. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-26cmd/mbf: retain session by defaultOphestra
This almost never make sense to be turned off. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-26internal/pkg: collection helper-artifactOphestra
This was moved from internal/rosa because it is considered generally useful. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-26internal/pkg: isolate container paramsOphestra
This enables exporting container params for interactive troubleshooting within the cure container. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-26internal/rosa/libseccomp: fix upstream out-of-bounds readOphestra
This was revealed by optimisation changes in the latest toolchain. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-26internal/rosa/llvm: 22.1.1 to 22.1.2Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-26internal/rosa/musl: 1.2.5 to 1.2.6Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-26internal/rosa/nss: 3.121 to 3.122Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-26internal/rosa/gnu: autoconf 2.72 to 2.73Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-25internal/netlink: optional check header as replyOphestra
Not every received message is a reply. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-25internal/netlink: expose multicast groupsOphestra
This also gets rid of the cached pid value for port since that prevents multiple sockets from being open at once. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-25internal/netlink: enlarge recvfrom bufferOphestra
This also uses an array type for the buffer since its size now uses the hardcoded value found in the kernel. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-25cmd/mbf: correctly describe --with-toolchainOphestra
The behaviour of this was changed to include the stage2 toolchain instead, but the help text was never updated. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-25internal/netlink: wrap netpoll via contextOphestra
This removes netpoll boilerplate for the most common use case. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-25internal/netlink: nonblocking socket I/OOphestra
This enables use with blocking calls like when used with NETLINK_KOBJECT_UEVENT. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-23internal/netlink: make full response availableOphestra
The previous API makes it impossible to retrieve remaining messages in the current iteration. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-23internal/netlink: isolate receive methodOphestra
This enables use with epoll for receiving events only. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-20internal/rosa/go: disable go1.25.7 smtp testOphestra
This uses certs that had just expired. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-20internal/rosa/cmake: 4.2.3 to 4.3.0Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-20internal/rosa/qemu: 10.2.1 to 10.2.2Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-20internal/rosa/wayland: 1.24.91 to 1.25.0Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-20internal/rosa/libexpat: 2.7.4 to 2.7.5Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-20internal/rosa/fuse: 3.18.1 to 3.18.2Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-17internal/rosa/gtk: glib 2.87.5 to 2.88.0Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-17internal/rosa: strace artifactOphestra
This is not part of the system, but a useful development tool. The test suite is quite broken but that is considered acceptable for now. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-17internal/rosa: export source kindOphestra
This is set for an exported field, so export the constants as well. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-17all: raise timeout defaultsOphestra
This avoids timing out on systems running very slowly. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-17internal/stub: move from containerOphestra
This package solves a very specific stubbing use case, in a less than elegant manner. Signed-off-by: Ophestra <cat@gensokyo.uk>