macoscompilationsynchronizationfseventsxnu

Why does lsyncd require xnu?


I am working through the steps of compiling lsyncd on Mac OS X (10.7.3 to be exact).

Finally managed to it get it compiled despite a couple minor syntax errors in the lysncd source code; and I understand from Axel Kittenberger (the developer managing lsyncd) that the compilation requires XNU.

References:-

The configure step was done this way:-

./configure --without-inotify --with-fsevents CFLAGS="-I /Users/calvin/xnu-1699.24.23/" LUA_CFLAGS="-I /opt/local/include" LUA_LIBS="/opt/local/lib/liblua.a" 

followed by some minor changes to the newly created Makefile (relating changing the path to asciidoc to my macports asciidoc location) and running

make

So all goes well and I finally have the resulting lsyncd binary.

My question is: why was xnu required in this process? (am curious to know)


Solution

  • Via Axel Kittenberger, author/maintainer of lsyncd, this is because:-

    Lsyncd accesses /dev/fsevents on a level that apple considers internal. Lsyncds event source on OSX was based on this code: Link