Guess who didn't spot that it was Cc:ed to a mailing list?  (-:

Some of the salient points that others may be interested in from what I sent privately, plus some extra general-audience stuff:

Yes, kqueue. Being in the very first bullet point right along with the other important API dependencies is not really not mentioning it, in fairness. (-:

(I might have mentioned this before, but it bears repeating: If you are writing a service manager, kevent() on the BSDs is well worth investigating. One can track orphaned daemon children with NOTE_TRACK on EVFILT_PROC. The Linux library version has a rather nasty open file descriptor security vulnerability, and a sneaky doco change to cover up a difference in signal semantics, both of which are the cause of the majority of the conditional compilation in nosh. But you'll notice that I've not needed to write a "fghack" equivalent. The nosh service-manager is quite happy with the old you-have-to-turn-an-undocumented-debug-option-on-to-stop-it forking Vixie cron on FreeBSD.)

No, redo isn't entering a loop. It simply traverses multiple dependency paths to end at the same failing leaves. There are several paths to some object files, and of course several leaves to end up at in the dependency tree that require the kqueue API. It does stop eventually. Turn on the --verbose option (with REDOFLAGS is easiest) to see.

In early versions, one had to build from source. There were no binary packages. In some ways that's the BSD influence at work, where downloading something from the ports collection and building it from source is the norm. I hadn't even looked at the BSD binary packaging system until quite recently.

The downside of building from source is that you won't reap the benefit of all of the work that I've recently put into maintainer scripts to automatically do all of the service bundle setup. package/export is not the whole story, as the source package page warns. But I'm sure that the package/debian/*.{post,pre}inst scripts won't prove that cryptic to non-Debian Linux people. (BSD people can enjoy the package/bsd/*.{post,pre}-* scripts.) There are some maintainer script bugfixes coming in version 1.17, note.

If you are planning to run under systemd, the Debian maintainer scripts will show you the way. If you are planning to run fully nosh-system-manager-manged, note that packaging that up is still on the roadmap. At the moment you'll have to do some things by hand. There are no prepackaged services yet for loading sysctl settings and loading kernel modules; and running udev and a system-wide dbus are slightly shaky. And how you arrange for init=/bin/system-manager and running something like mdev or s6-devd instead of udev is up to you. (-:

In version 1.17 I hope to have ready the tool for auto-creating the mount@*, fsck@*, ttylogin@*, dump@*, and swap@* service bundles from /etc/ttys and /etc/fstab, as also mentioned on the roadmap. I already have some of it. Of course, you can already run the underlying convert-fstab-services command and do things longhand, but a nice set of redo scripts to do it from a simple "redo all" (and thus only regenerate things when the configuration files change) seems to be turning out to be a good idea in practice. As a consequence preset has had to gain a --fstab option which you will see in version 1.17. A kmod@* bundle generator has yet to be written, though. But you can always convert-systemd-units a new kmod@wibble.service service, or copy one of the existing kernel module service bundles that are provided.

Reply via email to