Subject: CVS commit: pkgsrc/sysutils/fam
To: None <pkgsrc-changes@NetBSD.org>
From: Julio M. Merino Vidal <jmmv@netbsd.org>
List: pkgsrc-changes
Date: 10/17/2004 19:20:53
Module Name:	pkgsrc
Committed By:	jmmv
Date:		Sun Oct 17 19:20:53 UTC 2004

Modified Files:
	pkgsrc/sysutils/fam: MESSAGE Makefile distinfo
	pkgsrc/sysutils/fam/patches: patch-ag
Added Files:
	pkgsrc/sysutils/fam: MESSAGE.kqueue
	pkgsrc/sysutils/fam/files: IMonKQueue.c++ famd.sh imon-compat.h

Log Message:
Add kqueue support.  This way, famd can be notified of changes to files and
directories in "real time", without having to periodically poll(2) for them
after several seconds.  This improves the responsiveness of applications
using famd (specially GNOME) when changes to files occur from the "outside"
(they are notified from changes immediately), or even from the application
itself (for example, have you ever tried to rename several files from
Nautilus?  just a PITA).

To enable kqueue, you have to pass the 'kqueue' option to the package.
I'm not enabling it by default because it needs testing (but it should be
enabled in a future).  Furthermore, I'd like to send these patches to the
FAM developers for comments too.  And a review from somebody knowing kqueue
could be good!  (this is the first time I use the kqueue interface, so I'm
not sure if everything is right).

A description on how this works can be found in the files/IMonKQueue.c++
file.  Note that, due to FAM's design, the easiest way to do this change
is to "emulate" imon functionality.

While here, add an rc.d script for famd, in case the user prefers to run
it at system startup instead of from inetd (I created it while developing
the kqueue functionality, so it's a good moment to add it).  Adjust the
MESSAGE accordingly.

Bump PKGREVISION to 4.


To generate a diff of this commit:
cvs rdiff -r1.3 -r1.4 pkgsrc/sysutils/fam/MESSAGE
cvs rdiff -r0 -r1.1 pkgsrc/sysutils/fam/MESSAGE.kqueue
cvs rdiff -r1.17 -r1.18 pkgsrc/sysutils/fam/Makefile
cvs rdiff -r1.14 -r1.15 pkgsrc/sysutils/fam/distinfo
cvs rdiff -r0 -r1.1 pkgsrc/sysutils/fam/files/IMonKQueue.c++ \
    pkgsrc/sysutils/fam/files/famd.sh pkgsrc/sysutils/fam/files/imon-compat.h
cvs rdiff -r1.4 -r1.5 pkgsrc/sysutils/fam/patches/patch-ag

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.