beagle & soc07 06 Aug 2007 11:01 am

Thunderbird support now available in trunk

The Thunderbird backend and extension have now been merged with trunk and the project is now officially marked as finished (with the exception of bug fixes and future work of course). Now is the time where I need all eager testers to find bugs and issues for me to solve. Make sure to check trunk out if you are interested. I have updated the build system to enable Thunderbird support if the thunderbird development files are available. So you should check if the Thunderbird backend is enabled when building. Otherwise you are probably missing the mentioned thunderbird development files (usually called [mozilla-]thunderbird-dev in most distributions).

I want to point out that the latest version of the extension, 0.1.2, fixes a bunch of issues. Yesterday I realized that I had forgot to check in an update to a locale file. This rendered the new error reporting system that I had implemented before useless. I’ve fixed this now and you should probably try the latest extension out if you had problems with the old version just keeping shutting itself down all the time.

Here’s the latest XPI for all you lazy people out there (nothing will end up in beagle until you build beagle with Thunderbird support enabled though; just installing the extension is pretty useless):

Beagle extension for Thunderbird v0.1.2

11 Responses to “Thunderbird support now available in trunk”

  1. on 06 Aug 2007 at 2:52 pm 1.pisco said …

    Hello,

    thank you for make the extension and the backend. I returned back from Evolution to Thunderbird beause of some lacks in ‘Getting Things Done’ with Evolution.

    After checking out the code, running autogen.sh well (installaing required libraries)
    compilation fails with

    ./Tiles/MailMessage.cs(142,3): error CS1002: Expecting `;’
    Compilation failed: 1 error(s), 0 warnings
    make[2]: *** [Search.exe] Fehler 1
    make[2]: Leaving directory `/usr/src/beagle-tbird-soc07/search’
    make[1]: *** [all-recursive] Fehler 1
    make[1]: Leaving directory `/usr/src/beagle-tbird-soc07′
    make: *** [all] Fehler 2

    I dunno how to fix this :| . Do you have a hint?
    And how to enable the backend? I even had a thunderbird backend in beagle. Would it be replaces by ‘make install’?

    Thx & bye

  2. on 06 Aug 2007 at 3:51 pm 2.Andreas said …

    Kudos to Pierre!
    I just installed the recent xpi to just test out the indexing.
    It’s fast as hell :) The only thing i’m wondering. You said at the beginning that we should create the directory “ToIndex” within the Beagle-Thunderbird Index directory by hand. Is it not possible to include this within the extension?
    Btw even if think of using tracker in favor of beagle, i think this was a great example of a superb summer of code project!

    While i was writing this comment the extension was nearly done with indexing my mails(>30.000)! I’m curious how it deals with even larger mail archives, but don’t see any real problems here :)

    Andreas

  3. on 06 Aug 2007 at 4:53 pm 3.Pierre Östlund said …

    pisco:
    I can’t see anything wrong with the actual code (as it compiles flawlessly both with and without Thunderbird enabled here) and this made me a bit confused. But you mentioned that you already had a Thunderbird extension available and that’s most likely the reason that you are seeing this error. The backend you already have installed is my old implementation. My guess is that beagle tries to link with the installed libraries instead of the one you are building (I have had this problem myself). What you should do is to remove the old version of beagle before compiling. This will probably solve your issues. The important thing is that /usr/lib/beagle/Util.dll does not exist. Try this out and let me know if it works for ya. Thanks for helping me testing this out btw :-)

    Andreas:
    Thanks a lot for you feedback, I really appreciate it :-)

    I think there’s been a bit of a misunderstanding here. You should never under any circumstances create the ToIndex directory manually. That is a very bad idea. What you should create however is the ThunderbirdIndex directory within ~/.beagle/Indexes. And what’s the reason for that? Well, let me tell ya. Each backend in beagle has its own index. They are all placed under the mentioned directory, ~/.beagle/Indexes. The index directory used by beagle for the Thunderbird index is simply called ThunderbirdIndex. The Thunderbird extension will check if this directory is available before starting to index. This is simply because: why produce a lot of data for beagle to index in case there’s no backend that will index the files anyway? That’s basically why I’ve implemented it this way. If the ThunderbirdIndex directory exists however, the extension will assume that beagle will index the data (since beagle have an index for it). The ToIndex directory will automatically be created by the extension and Thunderbird is the maintainer of this directory. The ToIndex directory is used by Thunderbird to determine what to index. If the ThunderbirdIndex directory exists but the ToIndex directory does not, Thunderbird will assume that nothing has been indexed by beagle already and that everything will have to be re-indexed. This is quite logical since Thunderbird is responsible of creating this directory and no one else should touch it. So this is a pretty good assumption. If the ToIndex directory exists however, Thunderbird will assume that data has been indexed by beagle and continue indexing data that hasn’t been indexed yet. Everything that has been indexed is marked with a little flag that says so. So Thunderbird can always continue from where it last left off. We also get the nice side-effect that Thunderbird will start all over if we bump index version in beagle (since beagle will remove and create the ThunderbirdIndex directory again thus removing the ToIndex directory as well).

    This turned out to be a quite long comment but the moral of this story is: if you don’t have beagle with the Thunderbird backend enabled you won’t get the ThunderbirdIndex directory, thus no indexing. To work around this I’ve told you to create this directory manually so that you at least can test the extension without having the backend available. I hope you at least see where I’m going with this? :-)

  4. on 07 Aug 2007 at 9:47 am 4.Martey said …

    Thought you might like to know that in Ubuntu 7.10, installing thunderbird-dev does not satisfy the dependencies, because the package contains “/usr/lib/pkgconfig/thunderbird-xpcom.pc” instead of mozilla-thunderbird-xpcom.pc.

    Besides those found in build-dep and thunderbird-dev, I found that I also needed to install libnspr4-dev.

  5. on 07 Aug 2007 at 3:29 pm 5.Pierre Östlund said …

    Thank you Martey for pointing this out. All these issues pushed my towards figuring out how to work around the need for external libraries/tools. I succeeded and you can read about this in my latest blog post. So we won’t see any of these issues any more :-)

  6. on 18 Aug 2007 at 5:02 pm 6.Aron van Ammers said …

    Hi,

    I tested the extension and Beagle SVN on Ubuntu Feisty. I wrote a bit of an article on it:

    http://clariti.blogspot.com/2007/08/desktop-search-with-thunderbird-and.html

    Short conclusion: the stuff basically works. I encountered 2 bugs, the most critical being that it doesn’t find everything it should. Details in the article. I hope you can easily fix them; let me know if you need more info.

    Kudos for building this!

    Cheers,
    Aron

  7. on 19 Aug 2007 at 4:40 pm 7.Pierre Östlund said …

    Hey Aron,

    Nice article there. The issue you are mentioning about emails not being opened if Thunderbird is already running is a known issue. But it seems like there’s no one in the community willing to help me fix it. I cannot reproduce it with my set-up so I need someone with this issue to help me. It would be very appreciated by me if we could meet up on for instance GTalk and try to settle this.

    The other issue about beagle not being able to find everything is most likely a “daemon” issue. I have the same issue as well but with other backends, so I don’t think it’s Thunderbird specific in this case. Not sure how to fix this.

  8. on 05 Sep 2007 at 1:47 am 8.Aron van Ammers said …

    Hi,

    Yes we could meet up, although I don’t have GTalk, only MSN. E-mail me if you want, this weekend might work.

    I think I have found the cause of my “too little matches” problem: it seems the body of the messages isn’t indexed, only author/subject/recipients. If I run my test query in TB searching only the subject, I get exactly the same amount of matches as in Beagle. And in the files in ToIndex I also don’t see the body text. That’s not by design is it?

    Cheers,
    Aron

  9. on 06 Sep 2007 at 6:04 pm 9.Pierre Östlund said …

    Great! I’ll send you an email and maybe we can work something out.

  10. on 12 Oct 2007 at 9:12 pm 10.Psykotik said …

    Hi Pierre,

    I installed 1.2 release of your plugin. Thanks for the work.

    Which Beagle release is needed to run you plugin? I’m on Ubuntu 7.04 and Beagle 0.2.16.3, with ThunderbirdIndex folder created, but Beagle doesn’t seem to index anything…

    Thanks again.

  11. on 14 Oct 2007 at 12:46 pm 11.Pierre Östlund said …

    Psykotik:
    There hasn’t been any release of beagle containing the backend yet. You will have to pull the SVN version in order to get indexing up and running.

    My guess to why you are seeing the ThunderbirdIndex folder is that you have my old backend running. That’s probably why nothing is indexed.

Trackback This Post | Subscribe to the comments through RSS Feed

Leave a Reply