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 committed 2026-08-13 09:28:26 +02:00
1 parent 6310d9e760
commit b55dada80b
16 files changed
+340 -250

No files matched your search

+7 -11
View File
@@ -1,5 +1,10 @@
# libink — brokerless D-Bus library (server + client), born inside Finit
lib_LTLIBRARIES = libink.la
#
# Internal convenience library: linked statically into finit and
# initctl, nothing installed. Public install (and the ABI promise
# that comes with it) is deferred until libink is extracted into its
# own project.
noinst_LTLIBRARIES = libink.la
libink_la_SOURCES = server.c auth.c connection.c \
proto.c proto.h \
marshal.c marshal.h \
@@ -7,16 +12,7 @@ libink_la_SOURCES = server.c auth.c connection.c \
match.c \
path.c \
client.c io.c \
internal.h
link.h path.h internal.h
libink_la_LDFLAGS = -version-info 0:0:0
libink_la_CPPFLAGS = -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_BSD_SOURCE
libink_la_CFLAGS = -W -Wall -Wextra -Wno-unused-parameter -std=gnu99
# pkg-config support
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libink.pc
# Public headers install to $(includedir)/ink/
inkdir = $(includedir)/ink
ink_HEADERS = link.h path.h