- Home
- Screenshots
- Downloads
- Documentation

If you wish to become involved in the development of Recoll, you are very much welcome, please send me an email.

# Translation

More translations is good ! If you are a non-english speaker (and understand english, which can probably be assumed, you being reading this), you can take a little time to translate the GUI messages file.

The newest versions of the message files follow. There is an empty one (the xx thing), the others are partially translated, just needing an update for the new messages.

Updating the files can easily be done with the Qt Linguist. Contact me for more directions if needed.

- Blank: recoll_xx.ts
- German: recoll_de.ts
- Italian: recoll_it.ts
- Russian: recoll_ru.ts
- Turkish: recoll_tr.ts
- Ukrainian: recoll_uk.ts

# Development

The Recoll source repository is on Bitbucket. Using Mercurial, you're 2 commands away from cloning it and hacking away.

Apart from the many tasks inside the issue tracking system, these are the general areas where help or ideas are particularly welcome:

- A better GUI design (both the ergonomy and the appearance).
- More support for the more advanced Xapian concepts like relevance feedback.
- More filters for less common or less obviously useful file types.
- Integration with the KDE desktop.
- Integration with some mail user agent. We need a way to jump from a message preview to the message in thread context inside the MUA.
- Etc. :)

# Problem reporting

Once in a while it will happen that a Recoll program will crash (either the "recoll" graphical interface or the "recollindex" command line indexing command).

Reporting crashes is very useful. It can help others, and it can get your own problem to be solved.

All reports are useful. But, in order to maximize usefulness, a crash report should include a so-called stack trace, something that indicates what the program was doing when it crashed. Getting a useful stack trace is not very difficult, but it may need a little work on your part (which will then enable me do my part of the work).

If your distribution includes a separate package for Recoll debugging symbols, it probably also has a page on its web site explaining how to use them to get a stack trace. You should follow these instructions. If there is no debugging package, you should follow the instructions below. A little familiarity with the command line will be necessary.

Compiling and installing a debugging version
  - Obtain the recoll source for the version you are using (www.recoll.org), and extract the source tree.
  - Follow the instructions for building Recoll from source with the following modifications:
    - Before running `configure`, edit the `mk/localdefs.in` file and remove the `-O2` option(s).
    - When running `configure`, specify the standard installation location for your system as a prefix (to avoid ending up with two installed versions, which would almost certainly end in confusion). On Linux this would typically be:
      `configure --prefix=/usr`.
    - When installing, arrange for the installed executables not to be stripped of debugging symbols by specifying a value for the STRIP environment variable (ie: `echo` or `ls`):
      `sudo make install STRIP=ls`
Getting a core dump
  You will need to run the operation that caused the crash inside a writable directory, and tell the system that you accept core dumps. The commands need to be run in a shell inside a terminal window. Ie:

      cd
      ulimit -c unlimited
      recoll  #(or recollindex or whatever you want to run).

  Hopefully, you will succeed in getting the command to crash, and you will get a core file.
Using gdb to get a stack trace
  - Install `gdb` if it is not already on the system.
  - Run `gdb` on the command that crashed and the core file (depending on the system, the core file may be named "core" or something else, like recollindex.core, or core.pid), ie:
    `gdb /usr/bin/recollindex core`
  - Inside `gdb`, you need to use different commands to get a stack trace for `recoll` and `recollindex`. For `recollindex` you can use the `bt` command. For `recoll` use:
    `thread apply all bt full`
  - Copy/paste the output to your report email :), and quit `gdb` ("q").