Opened 18 years ago

Closed 18 years ago

Last modified 18 years ago

#1845 closed task (fixed)

inotify header

Reported by: archaic@… Owned by: bdubbs@…
Priority: high Milestone: 6.2
Component: Book Version: 6.2
Severity: blocker Keywords:
Cc:

Description

Dan, please provide the header info here, or add it to your patch and put it in the patches repo.

Attachments (2)

linux-libc-headers-2.6.12.0-inotify-2.patch (5.6 KB ) - added by alexander@… 18 years ago.
Better patch
linux-libc-headers-2.6.12.0-inotify-2.2.patch (4.6 KB ) - added by alexander@… 18 years ago.
Better patch

Download all attachments as: .zip

Change History (19)

comment:1 by bdubbs@…, 18 years ago

This is a bit cryptic. If I knew what to do, I'd do it.

comment:3 by jciccone@…, 18 years ago

I belive this is the email with the patch that you were looking for. http://archives.linuxfromscratch.org/mail-archives/lfs-dev/2006-April/056688.html

comment:4 by alexander@…, 18 years ago

One more important piece is still missing: what should I do to see that the patch indeed works as needed, and the unpatched system doesn't?

Udev is already able to reread its configuration files when they are changed, and uses inotify to get the change notification.

comment:5 by alexander@…, 18 years ago

Udev works because it has the udev_libc_wrapper.h, and the suggested patch adds essentially the same stuff and is non-intrusive. This doesn't invalidate my comment about the testcase.

comment:6 by bdubbs@…, 18 years ago

Owner: changed from dbn.lists@… to bdubbs@…
Status: newassigned

I found the patch from the above link and since it merely adds a header file and doesn't change anything else, and since it has been tested, I'll put that in 6.2.

comment:7 by alexander@…, 18 years ago

You apparently need both the new header and the new syscall numbers.

comment:8 by jciccone@…, 18 years ago

In glibc-2.4 sys/inotify.h is installed no-matter what. Glibc-2.3.6 doesn't have this header. I have gamin-0.1.7 with inotify support. Gamin looks for the kernel header (linux/inotify.h) where as inotify-tools package uses its own internal header: http://inotify-tools.sourceforge.net/

comment:9 by bdubbs@…, 18 years ago

Resolution: fixed
Status: assignedclosed

Added the patch at revision 7710.

comment:10 by randy@…, 18 years ago

Resolution: fixed
Status: closedreopened

Reopening because the description of the patch is just plain wrong. The patch is not "needed" by any application, it can be used, but is certainly not needed.

Please, describe it properly.

comment:11 by bdubbs@…, 18 years ago

Resolution: fixed
Status: reopenedclosed

OK, I changed the text, but it would be helpful in these cases to give some suggested wording.

comment:12 by alexander@…, 18 years ago

Resolution: fixed
Status: closedreopened

This is not fixed at all. To use inotify, the following has to be present:

If any of the items above is missing, inotify is unusable. Some packages (like inotify-tools-2.1) provide all pieces by themselves. Some (like dovecot) don't provide any. Packages that provide only some of the items don't exist because doing so is inconsistent.

The current patch, thus, is bad (i.e., not better than nothing) and should be removed. Alternative solutions are accepted as long as dovecot-1.0rc2 builds with the --with-notify=inotify flag passed to the ./configure script (currently, it doesn't).

comment:13 by alexander@…, 18 years ago

Indeed, gamin looks for the <linux/inotify.h> header, and provides a local fallback. The local copy of the syscalls is always used.

Summary of the situation with the current patch:

  • Udev, gamin, perl Linux::Inotify2 module, and inotify-tools compile and work with the patch. Dovecot doesn't even compile with the --with-notify=inotify flag.
  • Udev, gamin, perl Linux::Inotify2 module, and inotify-tools compile successfully and work just as well without the patch, and use inotify. Dovecot doesn't even compile with the --with-notify=inotify flag.

So: the inotify-1 patch is not better then nothing. A better patch that allows Dovecot to use inotify will be attached now.

by alexander@…, 18 years ago

Better patch

by alexander@…, 18 years ago

Better patch

comment:14 by alexander@…, 18 years ago

The linux-libc-headers-2.6.12.0-inotify-2.patch patch has to be used with glibc-2.3.6, linux-libc-headers-2.6.12.0-inotify-2.2.patch is for glibc-2.4. Both are i386 and ppc only (i.e., for the architectures supported by the LiveCD).

Note: with linux-libc-headers-2.6.12.0-inotify-2.patch, you have to install the provided include/sys/inotify.h as /usr/include/sys/inotify.h.

comment:15 by bdubbs@…, 18 years ago

Resolution: fixed
Status: reopenedclosed

Updated the patch at revision 7719.

comment:16 by alexander@…, 18 years ago

The sys/inotify.h header is not installed. Such situation is not better than nothing, because the functions are not available to applications.

comment:17 by dnicholson@…, 18 years ago

Really fixed it (I think) by actually installing sys/inotify.h during Glibc install. See r7738.

Note: See TracTickets for help on using tickets.