Build the real-time monitor by default on FreeBSD (depend on USE_FAM). Fix a few glitches in the fam/gamin version
This commit is contained in:
parent
6d82d83037
commit
3853c5c0da
3
src/configure
vendored
3
src/configure
vendored
@ -4243,9 +4243,10 @@ fi
|
|||||||
if test "${with_fam+set}" = set; then :
|
if test "${with_fam+set}" = set; then :
|
||||||
withval=$with_fam; withFam=$withval
|
withval=$with_fam; withFam=$withval
|
||||||
else
|
else
|
||||||
withFam=no
|
withFam=yes
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
if test X$withFam != Xno -a X$withInotify != Xno ; then
|
if test X$withFam != Xno -a X$withInotify != Xno ; then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: FAM support enabled but inotify support also enabled. Disabling FAM support and using inotify" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: FAM support enabled but inotify support also enabled. Disabling FAM support and using inotify" >&5
|
||||||
$as_echo "$as_me: FAM support enabled but inotify support also enabled. Disabling FAM support and using inotify" >&6;}
|
$as_echo "$as_me: FAM support enabled but inotify support also enabled. Disabling FAM support and using inotify" >&6;}
|
||||||
|
|||||||
@ -119,7 +119,8 @@ fi
|
|||||||
AC_ARG_WITH(fam,
|
AC_ARG_WITH(fam,
|
||||||
AC_HELP_STRING([--with-fam],
|
AC_HELP_STRING([--with-fam],
|
||||||
[Use File Alteration Monitor for almost real time indexing of modified files. Give the fam/gamin library as argument (ie: /usr/lib/libfam.so) if configure does not find the right one.]),
|
[Use File Alteration Monitor for almost real time indexing of modified files. Give the fam/gamin library as argument (ie: /usr/lib/libfam.so) if configure does not find the right one.]),
|
||||||
withFam=$withval, withFam=no)
|
withFam=$withval, withFam=yes)
|
||||||
|
|
||||||
if test X$withFam != Xno -a X$withInotify != Xno ; then
|
if test X$withFam != Xno -a X$withInotify != Xno ; then
|
||||||
AC_MSG_NOTICE([FAM support enabled but inotify support also enabled. Disabling FAM support and using inotify])
|
AC_MSG_NOTICE([FAM support enabled but inotify support also enabled. Disabling FAM support and using inotify])
|
||||||
withFam=no
|
withFam=no
|
||||||
|
|||||||
@ -179,6 +179,10 @@ void *rclMonRcvRun(void *q)
|
|||||||
LOGERR(("rclMonRcvRun: tree walk failed\n"));
|
LOGERR(("rclMonRcvRun: tree walk failed\n"));
|
||||||
goto terminate;
|
goto terminate;
|
||||||
}
|
}
|
||||||
|
if (walker.getErrCnt() > 0) {
|
||||||
|
LOGINFO(("rclMonRcvRun: fs walker errors: %s\n",
|
||||||
|
walker.getReason().c_str()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -218,10 +222,14 @@ void *rclMonRcvRun(void *q)
|
|||||||
LOGDEB(("rclMonRcvRun: walking new dir %s\n",
|
LOGDEB(("rclMonRcvRun: walking new dir %s\n",
|
||||||
ev.m_path.c_str()));
|
ev.m_path.c_str()));
|
||||||
if (walker.walk(ev.m_path, walkcb) != FsTreeWalker::FtwOk) {
|
if (walker.walk(ev.m_path, walkcb) != FsTreeWalker::FtwOk) {
|
||||||
LOGERR(("rclMonRcvRun: failed walking new dir %s\n",
|
LOGERR(("rclMonRcvRun: walking new dir %s: %s\n",
|
||||||
ev.m_path.c_str()));
|
ev.m_path.c_str(), walker.getReason().c_str()));
|
||||||
goto terminate;
|
goto terminate;
|
||||||
}
|
}
|
||||||
|
if (walker.getErrCnt() > 0) {
|
||||||
|
LOGINFO(("rclMonRcvRun: fs walker errors: %s\n",
|
||||||
|
walker.getReason().c_str()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -241,7 +249,7 @@ terminate:
|
|||||||
bool eraseWatchSubTree(map<int, string>& idtopath, const string& top)
|
bool eraseWatchSubTree(map<int, string>& idtopath, const string& top)
|
||||||
{
|
{
|
||||||
bool found = false;
|
bool found = false;
|
||||||
LOGDEB0(("Clearing map for [%s]\n", top.c_str()));
|
MONDEB(("Clearing map for [%s]\n", top.c_str()));
|
||||||
map<int,string>::iterator it = idtopath.begin();
|
map<int,string>::iterator it = idtopath.begin();
|
||||||
while (it != idtopath.end()) {
|
while (it != idtopath.end()) {
|
||||||
if (it->second.find(top) == 0) {
|
if (it->second.find(top) == 0) {
|
||||||
@ -461,8 +469,8 @@ bool RclFAM::getEvent(RclMonEvent& ev, int msecs)
|
|||||||
ev.m_etyp = RclMonEvent::RCLEVT_DELETE;
|
ev.m_etyp = RclMonEvent::RCLEVT_DELETE;
|
||||||
// We would like to signal a directory here to enable cleaning
|
// We would like to signal a directory here to enable cleaning
|
||||||
// the subtree (on a dir move), but can't test the actual file
|
// the subtree (on a dir move), but can't test the actual file
|
||||||
// which is gone. Let's rely on the fact that a directory
|
// which is gone, and fam doesn't tell us if it's a dir or reg.
|
||||||
// should be watched
|
// Let's rely on the fact that a directory should be watched
|
||||||
if (eraseWatchSubTree(m_idtopath, ev.m_path))
|
if (eraseWatchSubTree(m_idtopath, ev.m_path))
|
||||||
ev.m_etyp |= RclMonEvent::RCLEVT_ISDIR;
|
ev.m_etyp |= RclMonEvent::RCLEVT_ISDIR;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -43,7 +43,7 @@
|
|||||||
unexpected. This is probably dependant on the type of system
|
unexpected. This is probably dependant on the type of system
|
||||||
and/or locale. Workaround: arrange for the offending file
|
and/or locale. Workaround: arrange for the offending file
|
||||||
not to be indexed (move it away or configure it out), or
|
not to be indexed (move it away or configure it out), or
|
||||||
apply <a href="patch-badfileoutput.diff">this patch</a>,
|
apply <a href="files/patch-badfileoutput.diff">this patch</a>,
|
||||||
which should work with all versions from 1.13 to 1.16.1</li>
|
which should work with all versions from 1.13 to 1.16.1</li>
|
||||||
<li>Under certain conditions, the indexer can use all
|
<li>Under certain conditions, the indexer can use all
|
||||||
available memory and crash. This is caused by a memory leak
|
available memory and crash. This is caused by a memory leak
|
||||||
@ -51,7 +51,7 @@
|
|||||||
triggered in specific conditions (all cases seen were from
|
triggered in specific conditions (all cases seen were from
|
||||||
files inside zip archives). Workaround: arrange for the
|
files inside zip archives). Workaround: arrange for the
|
||||||
offending file not to be indexed (move it away or configure
|
offending file not to be indexed (move it away or configure
|
||||||
it out), or apply <a href="patch-unac-icclose.diff">this
|
it out), or apply <a href="files/patch-unac-icclose.diff">this
|
||||||
patch</a>, which should work with all versions from 1.13 to
|
patch</a>, which should work with all versions from 1.13 to
|
||||||
1.16.1</li>
|
1.16.1</li>
|
||||||
<li>Real time indexer: when running with gamin on FreeBSD, the
|
<li>Real time indexer: when running with gamin on FreeBSD, the
|
||||||
@ -64,14 +64,14 @@
|
|||||||
all. Workaround: restart indexer from time to time.</li>
|
all. Workaround: restart indexer from time to time.</li>
|
||||||
<li>Recollq does not delete a temporary directory in some
|
<li>Recollq does not delete a temporary directory in some
|
||||||
cases (/tmp/rcl...).</li>
|
cases (/tmp/rcl...).</li>
|
||||||
|
<li>Most GUI queries are actually run two times which does not
|
||||||
|
help performance...</li>
|
||||||
<li>Cancelling a preview in the GUI will also cancel the indexing
|
<li>Cancelling a preview in the GUI will also cancel the indexing
|
||||||
thread if it is running.</li>
|
thread if it is running.</li>
|
||||||
<li>After an upgrade, the recoll GUI sometimes crashes on
|
<li>After an upgrade, the recoll GUI sometimes crashes on
|
||||||
startup. This is fixed by removing (back it up just in case)
|
startup. This is fixed by removing (back it up just in case)
|
||||||
~/.config/Recoll.org/recoll.conf, the QSettings storage for
|
~/.config/Recoll.org/recoll.conf, the QSettings storage for
|
||||||
recoll.</li>
|
recoll.</li>
|
||||||
<li>Most GUI queries are actually ran two times which does not
|
|
||||||
help performance...</li>
|
|
||||||
<li>Under Solaris, it is necessary to perform the initial
|
<li>Under Solaris, it is necessary to perform the initial
|
||||||
indexing with the recollindex program. For some unknown reason,
|
indexing with the recollindex program. For some unknown reason,
|
||||||
the recoll index thread does not work for creating the database.
|
the recoll index thread does not work for creating the database.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user