Back in September at the Linux Plumbers Conference in New Orleans, James Hunt and I presented Upstart roadmap, which included porting Upstart to kFreeBSD/glibc. The first milestone is now complete.
Libnih is ported to kFreeBSD/eglibc. During the course to get there the following has happened:
- Petr Salinger (ps-guest) adds waitid() support to eglibc-2.18 packaging branch using wait6 syscall
- Later libnih test-suite gets a test case failure, which is then reported to FreeBSD.org. Turns out some syscalls on FreeBSD returned bogus siginfo_t.si_status information in some cases. Luckily there is now a full test-case and kernel patch posted by Jilles Tjoelker. Once that's committed upstream, I'll push for uploads to the affected kernels in Debian.
- A few small patches applied to libnih, mostly adding POSIX compliant header includes and the like.
- nih_watch / inotify support is disabled. This is TODO on my list to port nih_watch to use kevent/kqueue EVFILT_VNODE.
- FreeBSD kernel doesn't have abstract namespace domain sockets, so at the moment I have disabled some abstract namespace test-cases & changed dbus-connection tests to use pathname sockets instead. This is still a TODO because unlink before bind is not done, and the socket is not cleaned up after servers close it at the moment.
With all caveats above, here are the test-suite results:
================================================
libnih 1.0.4: nih-dbus-tool/test-suite.log
================================================
# TOTAL: 2492
# PASS: 2492
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 0
.. contents:: :depth: 2
===========================================
libnih 1.0.4: nih-dbus/test-suite.log
===========================================
# TOTAL: 110
# PASS: 110
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 0
.. contents:: :depth: 2
======================================
libnih 1.0.4: nih/test-suite.log
======================================
# TOTAL: 788
# PASS: 787
# SKIP: 0
# XFAIL: 1
# FAIL: 0
# XPASS: 0
# ERROR: 0
.. contents:: :depth: 2
PASS: test_watch
================
not ok 1 - nih_watch not supprted yet # TODO
XFAIL: test_watch 1 - nih_watch not supprted yet # TODO
at tests/test_watch.c:1594 (main).
1..1
Comments
Post a Comment