2015-01-29 :: Development continues!
Development continues on https://github.com/ar-/incron. Please report all bugs and issues there. Feel free to contribute to the software.
2014-11-02 :: Project abandoned
This project was abandoned due to lack of time for further development and maintenance. Additionally, the funding campaign had no effect - zero cents was raised. If you would like to continue with this project please write to email@example.com. Source codes are free as free speech and will remain available in the SVN repository.
2013-07-28 :: Recursive monitoring soon? Please contribute.
A funding campaign for recursive monitoring implementation has been created on Indiegogo. Please consider contribution. If it succeeds the recursive monitoring will be implemented soon.
2012-04-07 :: incron 0.5.10 re-released
Due to wrong version numbers in some files, incron 0.5.10 had to be re-released.
2012-04-05 :: inotify-cxx 0.7.4 and incron 0.5.10 released
New versions of inotify-cxx (0.7.4) and incron (0.5.10) have been released. Some issues (such as crashing on EAGAIN in poll()) were fixed now and some of them will be solved in the future version.
2009-12-09 :: inotify-cxx 0.7.3 released
A bugfix version of inotify-cxx has been released. It "cleans up" some includes.
2009-06-21 :: incron 0.5.9 released
A new bugfix version of incron has been released. It fixes two persistent bugs and adds two small improvements. Thanks to the people who reported bugs and sent me patches.
2008-12-29 :: incron 0.5.8 released
A new bugfix version of incron has been released. This version contains three fixes related to the bugs which was reported.
2008-07-27 :: SVN repository for incron
The source code of all incron versions is now available in the public SVN (Subversion) repository at svn://svn.aiken.cz/public/ (only SVN protocol; HTTP is not yet available). This repository contains also inotify-cxx and some other programs.
2008-07-09 :: incron is not dead
Although it does not appear that way incron is not dead (and the same applies for inotify-cxx as well). Development process of recursive monitoring is unfortunalely delayed. But accepting of bug reports is going on. Because there are many reported bugs a new bugfix release (0.5.8) will be prepared as soon as possible instead of waiting for the next major release.
2008-02-17 :: Concepts of recursive monitoring
A brand new inotify-cxx version will be released in a few days. This version will support recursive monitoring (file events on whole subtrees). It is a good point now for explaining the design of the new inotify-cxx.
- physical path - a file path watched at the kernel level (inotify technology). It has its own watch descriptor. The same path cannot occur multiple times at the same file descriptor. For recursive watching, only directory physical paths are created.
- logical path - a file path watched at the user level. It can be related to one file or a directory subtree.
- physical path list - a data structure which manages physical paths for a file descriptor
- reverse mapping - a relationship allowing access to logical paths by physical paths
It works the way that an user registers various logical paths for watching. The mechanism creates all necessary physical paths. But if some physical paths exists (is contained in the physical path list) only its event mask is updated instead of creating the path.
If an event occurs it is passed for processing to all logical path which have registered the appropriate physical path. Then the event is processed internally which includes creating and/or removing a physical path. At the external view it means the all event objects are enqueued first and then the internal processing is done.
The user receives the event in the form of the standard
InotifyEvent object. This object contains the path to the file
where the event was occurred. It means it is the same behavior as before
(but monitoring whole subtrees is possible).
2007-09-04 :: incron 0.5.7 released
A new version of incron has been released. It contains only small fixes. Bigger changes will be incorporated into 0.6.0.
2007-05-16 :: incron mailing list
incron has its own mailing list now. You can use it for discussions about incron, inotify-cxx and inotify, requesting new features, solving problems etc. Instructions for use are located on the appropriate page.
2007-04-18 :: incron 0.5.6 released
Due to compilation problems of existing versions on Debian Sarge, a new version of incron (based on inotify-cxx 0.7.2) has been released.
2007-04-18 :: inotify-cxx 0.7.2 released
inotify-cxx 0.7.2 has been released. This version adds
#include <stdint.h>. It should eliminate compilation problems on Debian Sarge.
2007-04-07 :: News via RSS
If you want to be notified on changes of this site you can use RSS 2.0 now. See the link at the top-right corner or use the appropriate feature of you browser (for handling alternative content).
2007-03-21 :: inotify-cxx and incron at SourceForge.net
SourceForge.net is a well-known site providing a large set of services for free software development and distribution. Many users search for software just there. Due to this fact you can find both inotify-cxx and incron also at this site.
2007-03-17 :: Website also in Czech
Regarding to the Czech origination of inotify-cxx and incron it was slightly dishonourable that Czech users couldn't see information about these programs in their mother tongue. It's over now. Starting today, the whole site is currently (in addition to English) available also in Czech. The server should choose the right language automatically according to the browser setting. If it fails you can set the appropriate language by links at the top-right corner of the page.
2007-02-17 :: Proposed incrontab format
In addition to other changes, incron 0.6.0 will use an improved format for incron tables. The main goal is to allow comments, add possibility to override environment variables and define precisely what is valid and what is not.
The current proposal is the following (in ABNF - RFC 2234):
table = row 1*br row = comment | envvar | rule comment = *WSP '#' *(^br) envvar = *WSP name *WSP '=' value *WSP name = 1*(ALPHA | DIGIT | "_") value = *(^br) rule = *WSP abspath *WSP mask *WSP cmdline *WSP abspath = "/" *(%x01-09 | %x0a-0b | %x0d-ff) mask = maskitem *("," maskitem) maskitem = 1*(DIGIT) | symbol symbol = ... ; system dependent cmdline = cmd [arg *(*WSP arg)] br = CR | LF | CRLF
This format assumes the tables may use any legal line-feeding scheme (CR, LF, CRLF). inotify symbols must not be defined here because they may vary between inotify header versions. Mask specification (if given as a number) is limited to 32-bit unsigned integer. Environment variables defined inside incrontab affect all lines below unless redefined later.
If you have found a bug in this specification or have got a suggestion please use the bug tracking system. Thanks.
2007-02-14 :: incron 0.5.5 released
One bug related to environment variables is not enough.
incrontab -e -u <user> isn't an often used
way of incrontab use it can be useful in some cases. But there
was a bug which caused that things went wrong. The environment
variables were set incorrectly (e.g.
HOME=/root instead of
something different) and thus some editors tried to access root's
files etc. This version also fixes another bug - malfunction
--version) for both incrond and incrontab.
2007-02-11 :: incron 0.5.4 released
Due to two bugs a new bugfix version has been released.
This version fixes persisting of environment variables (the same
as for incrond itself) and a small mistake inside the configuration
example file. For more information about the current environment
variable behavior, please read the
or the man page (
2007-02-09 :: incron 0.5.3 re-released
If you downloaded incron 0.5.3 before 2007-02-09 14:00 UTC
you could encounter a problem with missing
(the man page for
incron.conf). The problem was reported
(thanks to curx) and fixed. Please download the source
2007-02-08 :: incron 0.5.3 released
A new bugfix version is here. It fixes one very ugly bug which caused that newly created tables were not loaded in some cases. A few more bugs (e.g. documentation and a very benign memory leak) have also been fixed.
2007-02-04 :: incron in Fedora Extras
2007-02-04 :: incron 0.5.2 released
This version contains only two small fixes. It only changes lockfile permissions to 0644 (to allow checking incrond's PID by other users) and fixes incorrect reporting on the case if an user attempts to remove a non-existing table.
2007-01-28 :: incron 0.5.1 released
Hot-headed work isn't good. This style caused two stupid bugs infiltrated into the code. The bugs didn't affect normal use of the program but were able to complicate overall system management.
2007-01-27 :: incron 0.5.0 released
Due to time reason no bugfix versions was released. It's currently better to incorporate all bugfixes into the next feature release. The time is coming now. 0.5.0 introduces configuration at all (including custom configuration files), improves child process clean-up mechanism (to avoid race conditions), contains application locking (only one daemon instance may run) and both incrond and incrontab have a brand new command line argument processing. This version should be the last release before implementing recursive monitoring.
2007-01-20 :: inotify-cxx 0.7.1 released
There was a bug inside
InotifyEvent which caused strange garbage
occurred in event names. This version fixes those problems.
2007-01-14 :: New website launched
inotify technologies now have a brand new website. It provides information about the inotify technology itself and hosts two related projects, inotify-cxx and incron. Now you can find all important things at one place.
2007-01-13 :: incron 0.4.0 released
A nice day, isn't it? There are many new features in incron. System tables, command line arguments for incrond (running on foreground, terminating), reporting supported events and much more. Please enjoy!
2007-01-13 :: inotify-cxx 0.7.0 released
One more feature for lazy people:
2007-01-09 :: incron 0.3.5 released
Security bugfixes again. Please download now!
2007-01-06 :: inotify-cxx 0.6.3 released
IN_IGNORED had the same problems as
IN_ONESHOT. Fixed definitely.
2007-01-03 :: incron 0.3.4 released
Don't touch the permissions if you don't understand them. It's a very good hint!
2007-01-03 :: inotify-cxx 0.6.2 released
Another bugfix version. A small bug was on text conversion but generated many problems.
2006-12-30 :: inotify-cxx 0.6.1 released
IN_ONESHOT? Let's download this one.
2006-12-15 :: incron 0.3.3 released
Many bugs fixed. Like usually.
2006-12-06 :: inotify-cxx 0.5.3 released
Please download it today. There was an ugly bug in
2006-12-02 :: incron 0.3.2 released
The life is difficult. And reiserfs works funny.
2006-11-24 :: incron 0.3.1 released
It's time. Time for user manual pages.
2006-11-12 :: incron 0.3.0 released
Did you requested spaces in paths? And event names in commands? Let it be!
2006-11-12 :: inotify-cxx 0.5.2 released
Another bugfix version.
IN_OPEN failed to work.
2006-11-10 :: inotify-cxx 0.5.1 released
A never-ending story? Maybe... The terrible includes strike back and force me to add more ifdefs.
2006-10-30 :: incron 0.2.3 released
This version fixes a bug with unwanted
2006-10-29 :: incron 0.2.2 released
A memory leak persisted in incrond! But it's over now. No more zombies too!
2006-10-29 :: inotify-cxx 0.5.0 released
Who waited for a thread-safe inotify-cxx now can be satified. It's here.
INOTIFY_THREAD_SAFE when compiling.
2006-10-14 :: incron 0.2.1 released
Another version of incron has been released. This is a bug-fixing release and should solve all reported bugs.
2006-10-13 :: inotify-cxx 0.4.1 released
Oh, no! I hate fridays 13th! A terrible bug infiltrate to inotify-cxx and caused wrong watch count returning. Please download 0.4.1.
2006-10-13 :: inotify-cxx 0.4.0 released
Major changes again. People have reported problems on some distributions thus the inotify-cxx header has been modified to eliminate this malfunction. Additionaly, better enabling/disabling has been implemented and other small changes done.
2006-10-04 :: incron 0.2.0 released
Get cleaner! This version is designed to be more stable than the previous one. Dirty signal handling has been removed and the code has been cleaned. Last but not least, this version can be configured for avoiding event cycles. See Changelog for more details.
2006-10-03 :: inotify-cxx 0.3.1 released
If you have downloaded the 0.3.0 version of inotify-cxx, please slow down.
This version contains a bug which causes throwing an exception in non-blocking
EWOULDBLOCK occurs. The current 0.3.1 has fixed this bug.
2006-10-03 :: inotify-cxx 0.3.0 released
The third version of inotify-cxx, 0.3.0, has been released. This version contains three essential changes: funcionality for enabling/disabling watches, a brand new internal structure and ability for use in non-blocking mode. See Changelog for details.
2006-09-15 :: incron 0.1.0 released
The first version of incron, 0.1.0, has been released. incron is an "inotify cron" system. It consist of a daemon and a table manipulator. You can use it a similar way as the regular cron. The difference is that the inotify cron handles filesystem events rather than time periods.
2006-09-15 :: inotify-cxx 0.2.0 released
Another version of inotify-cxx, 0.2.0, has been released. Due to various reasons this version contains many changes compared to 0.1.0 (see Changelog for details).
2006-09-04 :: inotify-cxx 0.1.0 released
The first version of inotify-cxx, 0.1.0, has been released. It brings new chances to inotify-based applications. Use a few simple objects instead of low-level data and speed up your development.