EDIT: Removed links as this is now fixed upstream and in portage
So, many of us enjoy GNOME’s super-efficient integration with inotify via gamin and hal, which allows nautilus to show file updates in real-time, as well as file browsers automatically opening when a CD is inserted, or usb stick is plugged in, etc.
However, the above has been a bit broken for a while. Gentoo Bug 74285 has the details – basically, the media change notification stuff sometimes works once if at all, but then never again in that session.
The fix is a total rewrite of the inotify backend inside gamin. Unfortunately, due to major changes in gamin cvs, this isn’t easy to backport into the latest release (0.0.26). So it looks like using a CVS snapshot of gamin may be in order.
The plan is to test out the CVS snapshot that I have produced, which will then be added to portage when Linux 2.6.12 is released, assuming we don’t find any big bugs in the snapshot.
I’ve produced a gamin snapshot(link removed) from GNOME developer CVS as of right now, with patches from GNOME Bug 303612 and GNOME Bug 303615 applied.
If you are a GNOME+gamin+hal+inotify user, here’s what you can do to help test this:
- Get the snapshot ebuild from (link removed) and put it in your overlay directory under app-admin
- emerge the snapshot ebuild:
# emerge --digest =gamin-0.0.26.20050510
- Patch your kernel with inotify 0.23-7. This will involve first reverting the inotify patch included in gentoo-sources-2.6.11 which can be found here. Note that this is the inotify included with 2.6.11-r7 and 2.6.11-r8. If you are using an older version, now would be a good time to upgrade. You can then patch with inotify 0.23-7 which can be found here:
# cd /usr/src/linux
##download the patches
# patch -p1 -R -i 4800_inotify-0.22-3.patch
# patch -p1 -i inotify-0.23-rml-2.6.12-rc3-7.patch
- Recompile and reinstall your kernel in the usual way
- Reboot, start GNOME, and you are done.
To test it, open nautilus on your home directory. Then open a terminal, with both windows visible on screen. In the terminal, create/rename/delete some files, and ensure that nautilus is updated in real-time.
Next, insert a cdrom, and make sure that an icon appears for it on the desktop and the computer:// display is also updated. Use the icon to eject the cdrom, then put it back in again. Check that the icon reappears and computer:// is also updated again. Feel free to do the same with any USB storage you have to hand.
Please leave feedback here – even if it works perfectly! If we get enough testing, we’ll be able to finally solve this.