Since I released forked-daapd, I’ve got a couple of emails about porting it to FreeBSD. Apart from isolating and reimplementing the parts of the code using signalfd and inotify, there isn’t much work to do beside taking care of the usual libc/platform issues. However, when you don’t know the codebase and don’t know the APIs you’re replacing, it makes it a bigger job.
So, I’ve just spent a day going through FreeBSD documentation, installing FreeBSD 8.0 in qemu (because it wouldn’t install on my spare machine due to a bootloader issue that’s at least 5 years old…), and started porting the codebase.
A dozen or so commits later, forked-daapd builds and runs on FreeBSD.
With one caveat: the filescanner doesn’t update the database on the fly when the library directory is modified. While I’ve put in support for kqueue/kevent to replace inotify, it’s only a stub for now. Someone will have to write the code to actually act on the events and trigger the rescans/database updates.
kqueue/kevent delivers a lot less information compared to inotify, which means there’s a lot of work needed to track renames and moves. And I didn’t feel like doing it.
So, FreeBSD users: send patches! :)
0 Responses to “forked-daapd: porting to FreeBSD”