ea014d6af2
internal/uevent: consume kernel-originated events
...
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-28 15:39:16 +09:00
1b48484c16
internal/uevent: exclusive socket access
...
This is a much simplified mutex, since blocking is not required.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-28 01:01:06 +09:00
713bff3eb0
internal/uevent: decode uevent messages
...
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-28 00:49:34 +09:00
30f459e690
internal/uevent: nontrivial errors
...
These errors are best represented as JSON.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-28 00:07:56 +09:00
8766fddcb3
internal/uevent: recoverable errors
...
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-27 22:58:16 +09:00
2745602be3
internal/uevent: wrap netlink socket
...
Unfortunately these messages do not have the same format as rtnetlink.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-27 22:46:18 +09:00
ee22847dde
internal/uevent: kobject_action lookup
...
This is encoded as part of kobject uevent message headers.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-27 22:39:43 +09:00
c61188649b
internal/netlink: export generic connection
...
This enables abstractions around some families to be implemented in a separate package.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-27 19:08:48 +09:00
6a87a96838
internal/rosa/kernel: 6.12.77 to 6.12.78
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-27 10:40:27 +09:00
2548a681e9
internal/rosa: key-value type
...
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-26 16:23:15 +09:00
d514d0679f
internal/rosa: set PYTHONUNBUFFERED=1
...
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-26 15:29:29 +09:00
4407892632
cmd/mbf: optionally enter cure container
...
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-26 15:10:11 +09:00
e661260607
internal/pkg: enter exec container
...
This enables much easier troubleshooting of failing cures.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-26 15:05:04 +09:00
044490e0a5
cmd/mbf: retain session by default
...
This almost never make sense to be turned off.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-26 14:59:17 +09:00
af038c89ff
internal/pkg: collection helper-artifact
...
This was moved from internal/rosa because it is considered generally useful.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-26 14:11:10 +09:00
d2f30173cd
internal/pkg: isolate container params
...
This enables exporting container params for interactive troubleshooting within the cure container.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-26 14:02:58 +09:00
5319ea994c
internal/rosa/libseccomp: fix upstream out-of-bounds read
...
This was revealed by optimisation changes in the latest toolchain.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-26 10:43:11 +09:00
bbe178be3e
internal/rosa/llvm: 22.1.1 to 22.1.2
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-26 09:56:34 +09:00
ca28e9936b
internal/rosa/musl: 1.2.5 to 1.2.6
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-26 09:56:06 +09:00
f61c6ade56
internal/rosa/nss: 3.121 to 3.122
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-26 09:55:27 +09:00
fce3d63823
internal/rosa/gnu: autoconf 2.72 to 2.73
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-26 09:54:44 +09:00
722c3cc54f
internal/netlink: optional check header as reply
...
Not every received message is a reply.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-25 19:33:01 +09:00
372d509e5c
internal/netlink: expose multicast groups
...
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-25 17:55:35 +09:00
d62516ed1e
internal/netlink: enlarge recvfrom buffer
...
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-25 17:18:56 +09:00
d2b635eb55
cmd/mbf: correctly describe --with-toolchain
...
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-25 15:41:28 +09:00
50403e9d60
internal/netlink: wrap netpoll via context
...
This removes netpoll boilerplate for the most common use case.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-25 15:39:29 +09:00
b98c5f2e21
internal/netlink: nonblocking socket I/O
...
This enables use with blocking calls like when used with NETLINK_KOBJECT_UEVENT.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-25 14:06:59 +09:00
d972cffe5a
internal/netlink: make full response available
...
The previous API makes it impossible to retrieve remaining messages in the current iteration.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-23 16:39:25 +09:00
d8648304bb
internal/netlink: isolate receive method
...
This enables use with epoll for receiving events only.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-23 15:03:15 +09:00
f7bfa9a6c2
internal/rosa/go: disable go1.25.7 smtp test
...
This uses certs that had just expired.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-20 17:52:54 +09:00
7035b4b598
internal/rosa/cmake: 4.2.3 to 4.3.0
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-20 16:39:57 +09:00
094b8400dd
internal/rosa/qemu: 10.2.1 to 10.2.2
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-20 16:13:51 +09:00
4652d921d8
internal/rosa/wayland: 1.24.91 to 1.25.0
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-20 16:13:28 +09:00
066213c245
internal/rosa/libexpat: 2.7.4 to 2.7.5
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-20 16:00:50 +09:00
98832c21ee
internal/rosa/fuse: 3.18.1 to 3.18.2
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-20 15:57:49 +09:00
6cdb6a652b
internal/rosa/gtk: glib 2.87.5 to 2.88.0
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-17 20:58:39 +09:00
7c932cbceb
internal/rosa: strace artifact
...
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-17 20:40:17 +09:00
20ebddd9bf
internal/rosa: export source kind
...
This is set for an exported field, so export the constants as well.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-17 20:09:44 +09:00
420c721c7d
all: raise timeout defaults
...
This avoids timing out on systems running very slowly.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-17 17:04:06 +09:00
bac583f89e
internal/stub: move from container
...
This package solves a very specific stubbing use case, in a less than elegant manner.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-17 16:09:14 +09:00
722989c682
fhs: move from container
...
This package is not container-specific.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-17 15:56:36 +09:00
b852402f67
ext: move syscall wrappers from container
...
These are generally useful, and none of them are container-specific. Syscalls subtle to use and requiring container-specific setup remains in container.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-17 15:48:40 +09:00
6d015a949e
check: move from container
...
This package is not container specific, and widely used across the project.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-17 15:39:03 +09:00
e9a72490db
vfs: move from container
...
This package is not container-specific.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-17 15:30:30 +09:00
0a12d456ce
container: set CLOEXEC via close_range
...
This is guarded behind the close_range build tag for now.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-17 14:19:00 +09:00
d1fc1a3db7
ext: wrap close_range syscall
...
This is useful for container when called with CLOSE_RANGE_CLOEXEC.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-17 14:15:16 +09:00
1c2d5f6b57
ext: integer limit values
...
For portably using C integers without cgo.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-17 14:09:38 +09:00
faea1f4bd6
all: remove deprecated packages
...
Closes #24 .
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-17 13:54:56 +09:00
0cb1007daa
ldd: remove deprecated API
...
Closes #25 .
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-17 13:53:14 +09:00
e292031624
ext: move lookup test
...
This was kept in-place to reduce patch size in the previous patch.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-03-17 13:44:59 +09:00