libink: a message bus is not a peer

libink was written against the only bus it had, its own, where the
peer on the other end is the client.  A broker is not: it routes for
senders it names itself, expects a DESTINATION on anything addressed
through it, and answers on its own schedule rather than next.

Runlevels go on the wire as S and N rather than the digits Finit
keeps internally, since that is what a caller outside Finit means by
one.

The library stays a convenience library, linked into finit and
initctl and installed nowhere: the ABI promise waits until libink is
its own project.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg
2026-08-13 09:28:26 +02:00
parent 6310d9e760
commit b55dada80b
16 changed files with 340 additions and 250 deletions
+5 -5
View File
@@ -62,16 +62,16 @@ jobs:
tree /tmp || true
- name: Check dependencies
run: |
LD_LIBRARY_PATH=/tmp/lib ldd /tmp/sbin/finit
ldd /tmp/sbin/finit
size /tmp/sbin/finit
LD_LIBRARY_PATH=/tmp/lib ldd /tmp/sbin/initctl
ldd /tmp/sbin/initctl
size /tmp/sbin/initctl
LD_LIBRARY_PATH=/tmp/lib ldd /tmp/sbin/reboot
ldd /tmp/sbin/reboot
size /tmp/sbin/reboot
- name: Verify starting and showing usage text
run: |
sudo env LD_LIBRARY_PATH=/tmp/lib /tmp/sbin/finit -h
sudo env LD_LIBRARY_PATH=/tmp/lib /tmp/sbin/initctl -h
sudo /tmp/sbin/finit -h
sudo /tmp/sbin/initctl -h
- name: Enable unprivileged userns (unshare)
run: |
sudo sysctl kernel.apparmor_restrict_unprivileged_userns=0