I have a laptop running linux 2.6.13.3, which I downloaded and built myself without using portage. In /etc/portage/profile/package.provided I have this: sys-kernel/gentoo-sources-2.6.13-r4 I have built the kernel with inotify support: lucy ~ # grep INOTIFY /usr/src/linux/.config CONFIG_INOTIFY=y lucy ~ # ls -al /usr/src/linux/include/linux/inotify.h -rw-r--r-- 1 root root 3461 Oct 3 19:27 /usr/src/linux/include/linux/inotify.hlucy ~ # However gamin-0.1.6 does not recognize that I have inotify support: lucy ~ # emerge gamin Calculating dependencies ...done! >>> emerge (1 of 1) app-admin/gamin-0.1.6 to / >>> md5 files ;-) gamin-0.1.5.ebuild ... checking TEST_LIBS... -lglib-2.0 checking linux/inotify.h usability... no checking linux/inotify.h presence... no checking for linux/inotify.h... no checking for kevent... no ... Presumably gamin is looking in the wrong place for the kernel headers, so I figured I'd just emerge linux-headers-2.6.13. However, the latest linux-headers ebuild is version 2.6.11-r2. I haven't tried it, but it seems to me that even if I had gentoo-sources-2.6.13 emerged, inotify would still be disabled because gamin would see the old kernel headers from linux-kernel rather than the headers included in gentoo-sources. Therefore this message in the gamin ebuild is incorrect: * It is strongly suggested you use Gamin with an inotify enabled * kernel for best performance. For this release of gamin you need * at least gentoo-sources-2.6.13 or later. since you actually need linux-headers-2.6.13 or later. Reproducible: Always Steps to Reproduce: 1. 2. 3. Portage 2.0.51.22-r3 (default-linux/x86/2005.0, gcc-3.3.6, glibc-2.3.5-r2, 2.6.13.3 i686) ================================================================= System uname: 2.6.13.3 i686 Pentium III (Coppermine) Gentoo Base System version 1.6.13 dev-lang/python: 2.4.2 sys-apps/sandbox: 1.2.12 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1 sys-devel/binutils: 2.15.92.0.2-r10 sys-devel/libtool: 1.5.20 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=pentium3 -O2 -ffast-math -fomit-frame-pointer -s -mfpmath=sse -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=pentium3 -O2 -ffast-math -fomit-frame-pointer -s -mfpmath=sse -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks nodoc noinfo sandbox sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" LDFLAGS="-Wl,-O1 -Wl,--enable-new-dtags -Wl,--sort-common -s" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage-overlay" SYNC="rsync://jove.eng.yale.edu/gentoo-portage" USE="x86 X a52 acpi alsa apm arts avi bash-completion berkdb bitmap-fonts bzip2 cdparanoia crypt cups curl dio dvd eds emboss encode esd fam flac foomaticdb fortran gdbm gif gnome gpm gstreamer gtk gtk2 imagemagick imlib ipv6 java jpeg kde libg++ libwww mad mikmod motif mp3 mpeg ncurses nls ogg oggvorbis opengl oss pam pdflib perl png python qt quicktime readline sdl spell ssl svga tcpd tiff truetype truetype-fonts type1-fonts udev vorbis xine xml2 xmms xv zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LINGUAS, MAKEOPTS
This doesn't mean gamin with inotify support doesn't work. If gamin can't find the inotify.h provided by the kernel(or headers pkg in this case) it will fall back to using local_inotify.h(That will still require and use inotify in your running kernel). The message at the end is displayed to anybody that is running a linux kernel just as a reminder that you should be using 2.6.13 or later for the best inotify support.
That header isn't necessary. I can build gamin here (outside of portage) without that file in /usr/include, and configure returns no for those checks, but it still builds the inotify backend. Looking through the configure, it looks like inotify is always enabled, unless you explicitly disable it. backends: polling, inotify, dnotify The message from the ebuild is always printed, and has nothing to do with any detected value for inotify.