[FTS Xapian] Beta release

Stephan Bosch stephan at rename-it.nl
Mon Jan 14 15:24:46 EET 2019


Op 14-1-2019 om 13:40 schreef Aki Tuomi:
>
> Just to remind that now that there is a github repo for fts-xapian, 
> you could maybe open these issues there instead?
>
Although README.md currently says:

"Please feel free to send your questions, together with the dovecot log 
file, to jom at grosjo.net <mailto:jom at grosjo.net> or to the dovecot ML 
dovecot at dovecot.org <mailto:dovecot at dovecot.org>."


Regards,

Stephan.


> Aki
>
> On 14.1.2019 14.29, Odhiambo Washington wrote:
>> Testing a compile on FreeBSD.
>>
>> gmake[2]: Entering directory 
>> '/usr/home/wash/Tools/Dovecot/fts-xapian/src'
>> /bin/sh ../libtool  --tag=CXX   --mode=compile c++ -DHAVE_CONFIG_H 
>> -I. -I.. -I/opt/dovecot2.3/include/dovecot 
>> -I/opt/dovecot2.3/include/dovecot      -g -O2 -MT 
>> fts-backend-xapian.lo -MD -MP -MF .deps/fts-backend-xapian.Tpo -c -o 
>> fts-backend-xapian.lo fts-backend-xapian.cpp
>> libtool: compile:  c++ -DHAVE_CONFIG_H -I. -I.. 
>> -I/opt/dovecot2.3/include/dovecot -I/opt/dovecot2.3/include/dovecot 
>> -g -O2 -MT fts-backend-xapian.lo -MD -MP -MF 
>> .deps/fts-backend-xapian.Tpo -c fts-backend-xapian.cpp  -fPIC -DPIC 
>> -o .libs/fts-backend-xapian.o
>> fts-backend-xapian.cpp:3:10: fatal error: 'xapian.h' file not found
>> #include <xapian.h>
>>          ^~~~~~~~~~
>>
>> Well, I installed xapian-core and the xapian.h is in /usr/local/include/
>>
>> I can overcome the fatal error by doing:
>>
>>  env CPPFLAGS=-I/usr/local/include PANDOC=false ./configure 
>> --prefix=/opt --with-dovecot=/opt/dovecot2.3/lib/dovecot/
>>
>> Is that something that you can address within the code or we (*BSD) 
>> have to live with it?
>>
>> During `make`, the following warning is generated:
>>
>> /bin/sh ../libtool  --tag=CXX   --mode=compile c++ -DHAVE_CONFIG_H 
>> -I. -I.. -I/opt/dovecot2.3/include/dovecot  -I/usr/local/include 
>> -I/opt/dovecot2.3/include/dovecot      -g -O2 -MT 
>> fts-backend-xapian.lo -MD -MP -MF .deps/fts-backend-xapian.Tpo -c -o 
>> fts-backend-xapian.lo fts-backend-xapian.cpp
>> libtool: compile:  c++ -DHAVE_CONFIG_H -I. -I.. 
>> -I/opt/dovecot2.3/include/dovecot -I/usr/local/include 
>> -I/opt/dovecot2.3/include/dovecot -g -O2 -MT fts-backend-xapian.lo 
>> -MD -MP -MF .deps/fts-backend-xapian.Tpo -c fts-backend-xapian.cpp  
>> -fPIC -DPIC -o .libs/fts-backend-xapian.o
>> fts-backend-xapian.cpp:486:14: warning: format string is not a string 
>> literal (potentially insecure) [-Wformat-security]
>> i_warning(e.get_msg().c_str());
>> ^~~~~~~~~~~~~~~~~~~
>> fts-backend-xapian.cpp:486:14: note: treat the string as an argument 
>> to avoid this
>> i_warning(e.get_msg().c_str());
>>                                   ^
>>                                   "%s",
>> 1 warning generated.
>>
>>
>> Is that something you can look into as well?
>>
>>
>>
>> On Mon, 14 Jan 2019 at 11:43, Joan Moreau <jom at grosjo.net 
>> <mailto:jom at grosjo.net>> wrote:
>>
>>     THank you Odhiambo. I updated accordingly
>>
>>
>>
>>     On 2019-01-14 08:07, Odhiambo Washington wrote:
>>
>>>     In your README.md, perhaps "This project intends to provide a
>>>     straightforward and simple *procedure *to configure FTS plugin
>>>     for Dovecot, leveraging the efforts by the Xapian.org team." is
>>>     better??
>>>     Also in the part after cloning from git:
>>>     ./configure --prefix=/usr --with-dovecot=/path/to/dovecot [ This
>>>     /path/to/dovecot is not obvious. Is it the dovecot binary or what??]
>>>
>>>     On Mon, 14 Jan 2019 at 09:42, Joan Moreau via dovecot
>>>     <dovecot at dovecot.org <mailto:dovecot at dovecot.org>> wrote:
>>>
>>>         Thank you Stephan.
>>>
>>>         The version here shall be up and running :
>>>         https://github.com/grosjo/fts-xapian
>>>
>>>
>>>
>>>         On 2019-01-14 00:07, Stephan Bosch wrote:
>>>
>>>
>>>
>>>             Op 13/01/2019 om 21:25 schreef Joan Moreau via dovecot:
>>>
>>>
>>>                 I tried to combined it, the "autoreconf" errors are solved
>>>
>>>                 Now, when I type "make install", the lib is not
>>>                 pushed into dovecot folder, but somewhere in
>>>                 /usr/local/...
>>>
>>>                 How to adjust this to have it arriving in the proper folder ?
>>>
>>>
>>>             Depends on your system. It mostly a matter of setting a
>>>             proper --prefix directory for configure, but other paths
>>>             are configurable as well. I usually check what the
>>>             official distribution package for Dovecot is doing and
>>>             use that as a basis.
>>>
>>>             For Debian I use the following configure command:
>>>
>>>             ./configure --with-ldap=plugin --with-ssl=openssl
>>>             --with-sql=plugin --with-lua=plugin --with-pgsql
>>>             --with-mysql --with-sqlite \
>>>                     --with-gssapi=plugin --with-solr
>>>             --with-ioloop=best --enable-maintainer-mode \
>>>                     --prefix=/usr --sysconfdir=/etc
>>>             --libexecdir=/usr/lib --localstatedir=/var
>>>             --mandir=/usr/share/man \
>>>                     --infodir=/usr/share/info
>>>             --with-moduledir=/usr/lib/dovecot/modules
>>>             --disable-rpath --disable-static
>>>
>>>             Regards,
>>>
>>>             Stephan
>>>
>>>
>>>                 On 2019-01-13 21:01, Tuomi, Aki wrote:
>>>
>>>                     You copied your Makefile.am there. Stephan made
>>>                     you a working version, can you try that?
>>>                     (sorry for dup)
>>>                     Aki
>>>                     -------- Original message --------
>>>                     From: Joan Moreau <jom at grosjo.net
>>>                     <mailto:jom at grosjo.net>>
>>>                     Date: 13/01/2019 21:39 (GMT+02:00)
>>>                     To: Stephan Bosch <stephan at rename-it.nl
>>>                     <mailto:stephan at rename-it.nl>>
>>>                     Cc: Aki Tuomi <aki.tuomi at open-xchange.com
>>>                     <mailto:aki.tuomi at open-xchange.com>>
>>>                     Subject: Re: [FTS Xapian] Beta release
>>>
>>>                     I used the skeleton from Aki :
>>>                     https://github.com/grosjo/fts-xapian
>>>
>>>                     However, when I try to act as a visitor, I reach teh follwoing error:
>>>
>>>                     # autoreconf -vi
>>>                     autoreconf: Entering directory `.'
>>>                     autoreconf: configure.ac
>>>                     <http://configure.ac>: not using Gettext
>>>                     autoreconf: running: aclocal -I m4
>>>                     autoreconf: configure.ac
>>>                     <http://configure.ac>: tracing
>>>                     autoreconf: running: libtoolize --copy
>>>                     libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, '.'.
>>>                     libtoolize: copying file './ltmain.sh'
>>>                     libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
>>>                     libtoolize: copying file 'm4/libtool.m4'
>>>                     libtoolize: copying file 'm4/ltoptions.m4'
>>>                     libtoolize: copying file 'm4/ltsugar.m4'
>>>                     libtoolize: copying file 'm4/ltversion.m4'
>>>                     libtoolize: copying file 'm4/lt~obsolete.m4'
>>>                     autoreconf: running: /usr/bin/autoconf
>>>                     autoreconf: running: /usr/bin/autoheader
>>>                     autoreconf: running: automake --add-missing --copy --no-force
>>>                     configure.ac:9
>>>                     <http://configure.ac:9>: installing './compile'
>>>                     configure.ac:11
>>>                     <http://configure.ac:11>: installing './config.guess'
>>>                     configure.ac:11
>>>                     <http://configure.ac:11>: installing './config.sub'
>>>                     configure.ac:7
>>>                     <http://configure.ac:7>: installing './install-sh'
>>>                     configure.ac:7
>>>                     <http://configure.ac:7>: installing './missing'
>>>                     src/Makefile.am: installing './depcomp'
>>>                     /usr/share/automake-1.16/am/depend2.am
>>>                     <http://depend2.am>: error: am__fastdepCXX does
>>>                     not appear in AM_CONDITIONAL
>>>                     /usr/share/automake-1.16/am/depend2.am
>>>                     <http://depend2.am>: The usual way to define
>>>                     'am__fastdepCXX' is to add 'AC_PROG_CXX'
>>>                     /usr/share/automake-1.16/am/depend2.am
>>>                     <http://depend2.am>: to 'configure.ac
>>>                     <http://configure.ac>' and run 'aclocal' and
>>>                     'autoconf' again
>>>                     src/Makefile.am: error: C++ source seen but 'CXX' is undefined
>>>                     src/Makefile.am: The usual way to define 'CXX' is to add 'AC_PROG_CXX'
>>>                     src/Makefile.am: to 'configure.ac
>>>                     <http://configure.ac>' and run 'autoconf' again.
>>>                     src/Makefile.am:11: warning: variable
>>>                     'NOPLUGIN_LDFLAGS' is defined but no program or
>>>                     src/Makefile.am:11: library has 'NOPLUGIN' as
>>>                     canonical name (possible typo)
>>>                     autoreconf: automake failed with exit status: 1
>>>
>>>
>>>
>>>                     On 2019-01-13 20:24, Stephan Bosch wrote:
>>>
>>>                         Oh, right, a distribution tarball doesn't include some of the
>>>                         necessary files for your repository like autogen.sh and
>>>                         .gitignore. The attached tarball includes all those and is ready
>>>                         for `git init`. The previous tarball was made with `make
>>>                         distcheck` from this one.
>>>
>>>                         Regards,
>>>
>>>                         Stephan.
>>>
>>>                         Op 13/01/2019 om 20:14 schreef Stephan Bosch:
>>>
>>>                             Hi Joan,
>>>
>>>                             Op 13/01/2019 om 19:03 schreef Aki Tuomi:
>>>
>>>                                 Yes, from compiling point of view it is done.
>>>
>>>                                 Unfortunately what is not done is all the other work
>>>                                 involved, such as fixing all the inevitable bugs it has
>>>                                 and maintaining it. We do not want, at this moment, take
>>>                                 up maintaining and developing yet another FTS plugin as
>>>                                 we have plenty of things to do already.
>>>
>>>                                 I invite you to setup your own repository and provide
>>>                                 this plugin from there, being the maintainer of this
>>>                                 plugin. We can add a link to your plugin on our FTS page
>>>                                 so people can also find it.
>>>
>>>                                 There are other plugins like this, e.g.
>>>                     https://github.com/st3fan/dovecot-xaps-plugin
>>>
>>>
>>>                             I turned the code you provided into a separate plugin
>>>                             package. The distribution tarball is attached.
>>>
>>>                             Notable changes:
>>>
>>>                             - Added example copyright headers and COPYING and AUTHORS
>>>                             files. You should modify those to your preference.
>>>                             - Added README and INSTALL files (in markdown using Pandoc).
>>>                             Those need to be amended with details.
>>>                             - Amended the plugin code to display a debug message with the
>>>                             plugin name and version upon plugin load.
>>>
>>>                             I advise you to turn this into a git repository and continue from there.
>>>
>>>                             I do not recommend releasing this plugin with the
>>>                             -fpermissive flag and the resulting warning as it is now. But
>>>                             I'm assuming this is still a work in progress, so that is OK.
>>>
>>>                             Regards,
>>>
>>>                             Stephan.
>>>
>>>
>>>                                     On 13 January 2019 at 19:52 Joan Moreau <jom at grosjo.net
>>>                     <mailto:jom at grosjo.net>
>>>                                     <mailto:jom at grosjo.net
>>>                     <mailto:jom at grosjo.net>>> wrote:
>>>
>>>
>>>                                     The only point here of this fts-xapian is to get rid
>>>                                     of solr (because it
>>>                                     is just a nightmare to setup) and squat (because it is considere
>>>                                     obsolete).
>>>
>>>                                     I already sent the changed in
>>>                     configure.ac <http://configure.ac>, makefile.am
>>>                     <http://makefile.am>, etc.. in order
>>>                                     to include it in the dovecot, and it compiles properly
>>>
>>>                                     The only remaining point is to push it in hte git (yes, everything is
>>>                                     already done)
>>>
>>>                                     On 2019-01-13 18:45, Aki Tuomi wrote:
>>>
>>>                                             On 13 January 2019 at 17:05 Joan Moreau via
>>>                                             dovecot <dovecot at dovecot.org
>>>                     <mailto:dovecot at dovecot.org>
>>>                                             <mailto:dovecot at dovecot.org
>>>                     <mailto:dovecot at dovecot.org>>> wrote:
>>>
>>>                                             Hi
>>>
>>>                                             Please find attached the beta release of FTS
>>>                                             Xapian, with the objective
>>>                                             to replace fts_squat that is being deprecated.
>>>
>>>                                             Configuration is exactly the same as for fts_squat:
>>>
>>>                                             plugin {
>>>
>>>                                             plugin = fts fts_xapian (...)
>>>                                             fts = xapian
>>>                                             fts_autoindex = yes
>>>                                             fts_enforced = yes
>>>                                             fts_xapian = partial=2 full=20
>>>
>>>                                             This is installed on my production server
>>>                                             (>120Gb of mailboxes), and I
>>>                                             will observe it during the coming days.
>>>
>>>                                             I will definitely appreciate that this is added in the core git of
>>>                                             docevot, in order to have a versionning of
>>>                                             it, to remove squat and let
>>>                                 ��           basic users able to avoid Solr alternative as much as possible.
>>>
>>>                                             Thanks
>>>
>>>                                             JM
>>>
>>>                                         Hi!
>>>
>>>                                         I still recommend you setup a, say, github
>>>                                         repository for your plugin. We are not able to
>>>                                         currently include your work in dovecot core as it
>>>                                         is more work than just pushing the code into the
>>>                                         repo. Maybe it can be included in the future.
>>>
>>>                                         If you want, I can help you in setting up the
>>>                                         required configuration scripts and such to make
>>>                                         it possible to compile it as plugin.
>>>
>>>                                         Then anyone can download it and install it for
>>>                                         their dovecot, even if dovecot itself has been
>>>                                         installed from packages, and also makes it
>>>                                         possible for package maintainers to consider
>>>                                         including it in distributions.
>>>
>>>                                         Aki
>>>
>>>
>>>
>>>
>>>     -- 
>>>     Best regards,
>>>     Odhiambo WASHINGTON,
>>>     Nairobi,KE
>>>     +254 7 3200 0004/+254 7 2274 3223
>>>     "Oh, the cruft.", grep ^[^#] :-)
>>
>>
>>
>> -- 
>> Best regards,
>> Odhiambo WASHINGTON,
>> Nairobi,KE
>> +254 7 3200 0004/+254 7 2274 3223
>> "Oh, the cruft.", grep ^[^#] :-)


More information about the dovecot mailing list