#42129: [NEW] lsyncd -------------------------+-------------------------------- Reporter: jul_bsd@… | Owner: macports-tickets@… Type: submission | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.2.1 Resolution: | Keywords: Port: lsyncd | -------------------------+-------------------------------- Comment (by mfeiri@…): Well, the xnu project does not include the relevant file in the regular installation of header files. As a mere packager I am very hesitant to deviate from the intention of the upstream project. Presumably this interface is intentionally kept private because improper use might cause events to get lost. The warnings in lsyncd seem to indicate that this is a known issue, e.g. causing interferences with Spotlight and Time Machine. I think there are several alternative ways to achieve what lsyncd needs on Mac OS X. I see that the developer of lsycnd already dismissed FSEvents (did he consider kFSEventStreamCreateFlagFileEvents?) and kqueue, so let me suggest two other options: * Use scoped Spotlight queries through the MDQuery API (requires a CoreFoundation runloop, e.g. in a thread) * Use dtrace to monitor I/O syscalls for operations in target paths, for example as seen in opensnoop. Frankly, if the developer of lsyncd still insists to use private APIs, then IMHO he has to take the burden of including and maintaining the definitions of these interfaces in his application. If upstream doesn't agree then you could manually fetch the missing header file from http://www.opensource.apple.com/source/xnu/xnu-2422.1.72/bsd/sys/fsevents.h as an additional distfile, see http://guide.macports.org/#reference.phases.fetch for examples. Or we patch xnu-headers just for lsyncd. -- Ticket URL: <https://trac.macports.org/ticket/42129#comment:8> MacPorts <http://www.macports.org/> Ports system for OS X