This commit is contained in:
Jean-Francois Dockes 2016-11-17 13:32:29 +01:00
parent 3a473a1ae3
commit d0e3c20241
3 changed files with 87 additions and 364 deletions

View file

@ -1,274 +0,0 @@
= Building Recoll on Microsoft Windows with MinGW
Jean-Francois Dockes <jf at dockes.org>
This document describes building a Recoll distribution, starting from a
pristine Windows machine, using the http://www.mingw.org/[MinGW] port of gcc
and associated tools.
The resulting package only needs Python (and optionally 7-zip) to be
installed on the target system.
== Installing MinGW and MSYS
Download the installer from http://www.mingw.org/, and run it.
In the following, a number of commands will use a command window with an
MinGW environment. This can be easily created by executing
C:\MinGW\msys\1.0\msys.bat from File Explorer.
NOTE: you should take care to use the gcc compiler which comes with Qt for
all the following builds. For this, you will want to execute the following
command in the command window:
export PATH=/c/qt/tools/mingw492_32/bin:$PATH
== Tortoise HG
This is needed because there is no source package for recoll or its
dependancies for now, you are going to clone Bitbucket repositories.
Get it from http://tortoisehg.bitbucket.org/download/index.html
Then clone the repositories for
https://medoc@bitbucket.org/medoc/recoll[recoll] to C:/recoll and
https://medoc@bitbucket.org/medoc/recoll-windows-deps[some of the
dependancies] to C:/recolldeps
You can change the target names, but there will be more script editing
later on then (nothing much).
== Qt
Download and install Qt 5.5.x (mingw version) from: http://www.qt.io/download/
Note: it is not possible to build a static webkit, so the installation is
necessarily dynamic, which means that the Qt DLLS will need to be copied
into the installation directory. This is done by the installation-building
script (using `windeployqt`)
== zlib
Download from http://zlib.net/zlib-1.2.8.tar.gz
Don't forget the PATH update if not done yet:
export PATH=/c/qt/tools/mingw492_32/bin:$PATH
Then, from an MSYS command window (see above):
cd c:/temp
tar xzf path-to-tar-file
cd zlib-1.2.8
make -f win32/Makefile.gcc
== Xapian
Download from:
http://oligarchy.co.uk/xapian/1.4.1/xapian-core-1.4.1.tar.xz
Don't forget the PATH update if not done yet:
export PATH=/c/qt/tools/mingw492_32/bin:$PATH
Then:
cd c:/recolldeps
tar xf path-to-tar-file
cd xapian-core-1.4.1
- Edit common/safeunistd.h to neutralize the sleep() function definition as
this conflicts with the definition which is part of recent mingw
editions. Replace the "#ifdef __WIN32__" with "#if 0". This is
already fixed in later Xapian versions
Then:
CPPFLAGS=-I/c/temp/zlib-1.2.8 LDFLAGS=-L/c/temp/zlib-1.2.8 ./configure
make
== Recoll
You need to use the source from the repository, there is no release
supporting Windows at the moment.
- If not already done, clone the recoll repository from:
https://medoc@bitbucket.org/medoc/recoll to `C:/recoll`
- Start `QtCreator` and open
`c:/recoll/src/windows/qmkrecoll/librecoll.pro`. At the bottom of the
file, you may need to fix the locations for the xapian and zlib dlls.
- Build librecoll.pro
- Do the same (adjust locations and build) for:
c:/recoll/src/windows/qmkrecoll/rclstartw.pro
c:/recoll/src/windows/qmkrecoll/recollindex.pro
c:/recoll/src/windows/qmkrecoll/recollq.pro
c:/recoll/src/qtgui/recoll-win.pro
== Helper applications
There are a number of useful files stored in a BitBucket repository, you
will need to clone it on the windows machine (the final script,
mkinstdir.sh, expects C:/recolldeps as a cloned location).
https://medoc@bitbucket.org/medoc/recoll-windows-deps
== 7-zip
7-zip is used for all decompression tasks. Install it from
http://www.7-zip.org/
== Python
All Recoll helper scripts (data extractors) are written in Python, and not
yet compatible with Python3. You need to download and install Python 2.7
from https://www.python.org/downloads/release/python-2710/
== Python modules
Some data formats need library modules not delivered as part of the base
Python installation
=== libxml2/libxslt
The precompiled binary is from :
http://users.skynet.be/sbi/libxml-python/
http://users.skynet.be/sbi/libxml-python/binaries/libxml2-python-2.7.7.win32-py2.7.exe
The useful parts are stored in recoll-windows-deps repo
Slightly newer dlls, which should be compatible, here:
https://www.zlatkovic.com/libxml.en.html
This will be copied into the installation by the mkinstdir.sh script.
=== mutagen
Download and extract mutagen from https://pypi.python.org/pypi/mutagen
Then in the mutagen directory (e.g. C:/temp/mutagen-1.32 where it is
expected by `mkinstdir.sh`):
python setup.py build
The module will be copied by mkinstdir.sh
=== epub
Download from: http://pypi.python.org/pypi/epub/
Extract, then execute the following in the extracted directory (e.g.:
`C:/temp/epub-0.5.2` which is expected by `mkinstdir.sh`):
python setup.py
The module will be copied by mkinstdir.sh
=== pyexiv2
I did not attempt a build (needs boost-python, scons).
Used an installer from http://tilloy.net/dev/pyexiv2/download.html
The resulting site-packages data is stored in the recolldeps
repository and copied into the filters directory by the mkinstdir.sh
script.
== Non-Python helpers
== unrtf
The current unrtf sources can be built with MinGW.
hg clone http://hg.savannah.gnu.org/hgweb/unrtf/
cd c:/unrtf/Windows
make -f Makefile.mingw
== antiword
Use the source from recoll-windows-deps (C:/recolldeps/antiword)
make -f Makefile.mingw.
== Poppler
Did not try to compile. Used the binaries from
http://blog.alivate.com.au/poppler-windows/
There is a copy in the recoll-windows-deps repository, it will be copied by
the mkinstdir.sh script.
== libwpd
We use the wpd2html tool from libwpd 0.10.0, unmodified. This depends on
librevenge 0.0.1 which has been slightly modified to not depend on boost (a
500 MB install if you can believe it). Both files can be found under the
libwpd directory of the recoll-windows-deps repository.
mkdir c:/temp/libwpd
cd c:/temp/libwpd
tar xf librevenge-0.0.1.jfd.tar.gz
cd librevenge-0.0.1.jfd
CPPFLAGS=-I/c/temp/zlib-1.2.8 LDFLAGS=-L/c/temp/zlib-1.2.8 configure --disable-tests --without-docs
make
cd ..
tar xf /c/recolldeps/libwpd/libwpd-0.10.0.tar.gz
cd libwpd-0.10.0
REVENGE_CFLAGS=-Ic:/temp/libwpd/librevenge-0.0.1.jfd/inc \
REVENGE_LIBS="-Lc:/temp/libwpd/librevenge-0.0.1.jfd/src/lib/.libs -lrevenge-0.0" \
REVENGE_GENERATORS_CFLAGS=-Ic:/temp/libwpd/librevenge-0.0.1.jfd/inc \
REVENGE_GENERATORS_LIBS="-Lc:/temp/libwpd/librevenge-0.0.1.jfd/src/lib/.libs -lrevenge-generators-0.0" \
REVENGE_STREAM_CFLAGS=-Ic:/temp/libwpd/librevenge-0.0.1.jfd/inc \
REVENGE_STREAM_LIBS="-Lc:/temp/libwpd/librevenge-0.0.1.jfd/src/lib/.libs -lrevenge-stream-0.0" \
configure --without-docs
make
== chm
This build uses a slightly modified pychm python modules: for
simplification, the relevant C files from chmlib were included in the
python module itself (in addition to its own C extension file).
The source package is inside the recoll-windows-deps repository as
pychm-0.8.4.1-git.tar.gz. The build result is also stored, and will be used
directly by the install building script, so the following instructions are
for reference.
To build the pychm module:
cd c:/temp
tar xf pychm-0.8.4.1-git.tar.gz
cd pychm-0.8.4.1-git
python setup.py build
Will probably complain about a missing vc++ compiler, and indicate where to
download VC++ for Python 2.7 (an official Microsoft location). Do it, then
repeat the command:
python setup.py build
python setup.py bdist
This creates a zip file inside the dist subdirectory. The contents of this
zip are extracted and the chm/ directory is stored in the
recoll-windows-deps repo for convenience (under pychm/chm) and copied to
the recoll install dir by the install script.
== Building the install directory
Once the builds above are performed, edit the mkinstdir.sh script to adjust
the locations, and use it to build the installation directory. The
innosetup script expects it to be c:/install/recoll
== Building the setup executable
Install Inno Setup and use src/windows/recoll-setup.iss to generate the
installation executable.

View file

@ -2,51 +2,6 @@
Jean-Francois Dockes <jf@dockes.org>
:toc:
== File name character case sensitivity
Recoll was born on Unix, on which file names are case-sensitive. At the
moment this is also the case for path-related queries on Windows, including
the drive letters.
When filtering results on location (e.g. with a 'dir:' clause), you need to
enter all path elements as they appear in the URLs in result lists (and use
forward slashes).
It is also advisable to enter configuration filenames with their actual
case (e.g. _topdirs_).
I am looking into fixing this, but this made a bit complicated by non ASCII
character sets issues.
== Using an alternate configuration directory
This tip is useful if you want to manage several configurations, or if you
really have some reason to not let the configuration directory stay in its
default location ($HOMEDIR/AppData/Local/Recoll). If you just have a
storage issue and do not actually want to manage multiple configuration
directories, you can more simply change the index storage location from the
GUI 'Index Configuration' panel.
The easiest approach is to create a shortcut on the desktop and have it
start the GUI with a '-c' option. For example, set the shortcut's 'Target'
to something like:
----
"C:\Program Files (x86)\Recoll\recoll.exe" -c c:/path/to/my/configdir
----
_Do use forward slashes for the configuration directory path_. This will
hopefully be fixed some day.
You will need to create the configuration directory, Recoll will not do it
by itself. You can just leave it empty, Recoll will then propose to start
the configuration editor.
You can find a more complete and general explanation about using shortcuts,
for example http://www.rjlsoftware.com/support/faq/sa.cfm?q=6&n=61[on this
page].
== Checking that Python is in the PATH
Recoll input handlers are the programs which extract the documents text
@ -84,6 +39,50 @@ You can also edit the environment variable directly:
- Edit 'Path' inside 'System variables' and add:
`C:\Python27\;C:\Python27\Scripts;` to it.
== Using an alternate configuration directory
This tip is useful if you want to manage several configurations, or if you
really have some reason to not let the configuration directory stay in its
default location ($HOMEDIR/AppData/Local/Recoll). If your concerns are only
a bout storage space, and do not actually want to manage multiple
configuration directories, you can more simply change the index storage
location from the GUI 'Index Configuration' panel.
The easiest approach is to create a shortcut on the desktop and have it
start the GUI with a '-c' option. For example, set the shortcut's 'Target'
to something like:
----
"C:\Program Files (x86)\Recoll\recoll.exe" -c c:/path/to/my/configdir
----
_Do use forward slashes for the configuration directory path_. This will
hopefully be fixed some day.
You will need to create the configuration directory, Recoll will not do it
by itself. You can just leave it empty, Recoll will then propose to start
the configuration editor.
You can find a more complete and general explanation about using shortcuts,
for example http://www.rjlsoftware.com/support/faq/sa.cfm?q=6&n=61[on this
page].
== File name character case sensitivity
_This should be fixed as of the the November 2016 version. Please report
the problem if you still see case sensitivity issues_
Recoll was born on Unix, on which file names are case-sensitive. At the
moment this is also the case for path-related queries on Windows, including
the drive letters.
When filtering results on location (e.g. with a 'dir:' clause), you need to
enter all path elements as they appear in the URLs in result lists (and use
forward slashes).
It is also advisable to enter configuration filenames with their actual
case (e.g. _topdirs_).
I am looking into fixing this, but this made a bit complicated by non ASCII
character sets issues.

View file

@ -2,55 +2,27 @@
Jean-Francois Dockes <jf at dockes.org>
:date:
:recollversion: 1.23.0-2477ad-20161115
:recollversion: 1.23.0-2bfd80-20161115
image:recoll-windows10-thumb.png[link="recoll-windows10.png"]
Recoll for Windows was built on Windows 7, and tried on Windows 7 and
10. It now seems quite stable (15 2016)
10. It does not work on Windows XP.
Recoll is free and licensed under the GPL. You will be asked to accept the
license during the installation. For a regular user, and in a nutshell, the
license means that you are free to do what you want with the program (use,
copy, share, etc.). If you are a developper and intend to modify and
distribute the program, you probably know the GPL. Else you should read it.
If you like Recoll on Windows, please help with maintaining the application:
distribute the program, you probably know the GPL, else you should read it.
If you use Recoll on Windows, please consider contributing to its development:
image:/donations/btn_donate_LG.gif[link="/donations/index.html"]
Also, I would very much like to get some feedback from actual Windows users
(I am only a visitor to Windows...). Is this useful at all{nbsp}? What would
make it more useful{nbsp}? You can use the Disqus comments section at the bottom
of this page, send an email, or use the
https://bitbucket.org/medoc/recoll/issues[BitBucket Recoll issues tracker].
== Installation
NOTE: Especially, I would like information about system compatibility. It
seems that Recoll does not work on Windows XP, and there is little I can do
about it. I know that it runs on Windows 7 32 bits, and Windows 10 64 bits
(my two Virtualbox instances). I have a report that the installer sometimes
crashes on Windows 7 64 bits (not always, I also have success reports). I
would really like more data points. Please send me news of your success or
failure.
NOTE: About the installer: this needs administrator rights, in order to
install to `C:\Program Files`. If you want to install on a machine where
you have no administrator rights, you can use the
http://www.recoll.org/windows/recoll-archive-{recollversion}.7z[installation
directory archive] instead and extract it anywhere, this works just the
same (you will need the free http://www.7-zip.org/[7z] to extract it). If
you are in this case, you can ignore the setup-related steps of the
procedure of course.
I have started a small link:recoll-windows-faq.html[Recoll on MS-Windows FAQ].
Procedure:
- Download the Recoll setup file from the
- Download the
http://www.recoll.org/windows/recoll-setup-{recollversion}.exe[Recoll
web site], or (probably faster) from
https://bitbucket.org/medoc/recoll/downloads/recoll-setup-{recollversion}.exe[BitBucket].
setup file].
- Execute the setup file. This is a vanilla installer generated by Inno
Setup, and it will ask the usual questions.
@ -64,29 +36,49 @@ Procedure:
http://www.7-zip.org/. This is only useful if you need to index files
compressed with Unix methods (not needed for zip files).
NOTE: The installer needs administrator rights in order to install to
`C:\Program Files`. If you want to install on a machine where you have no
administrator rights, you can use the
http://www.recoll.org/windows/recoll-archive-{recollversion}.7z[installation
directory archive] instead and extract it anywhere, this works just the
same (you will need the free http://www.7-zip.org/[7z] to extract it). If
you are in this case, you can ignore the setup-related steps of the
procedure of course.
== Configuration
- Start recoll. It will ask if you want to customize the configuration.
The default is to index the content of your user directory. Then start
indexing. This can take some time.
- The default result list font is particularly ugly. Change it from
`Preferences->GUI Configuration->Result List->Result List Font`
The default result list font is particularly ugly. Change it from
`Preferences->GUI Configuration->Result List->Result List Font`
For those of you who would like to build themselves and possibly work on
improving the Windows version, the link:recoll-mingw.html[build instructions].
- Have a look at the
https://www.lesbonscomptes.com/recoll/usermanual/webhelp/docs/index.html[Recoll
manual] !
- I have also started a small link:recoll-windows-faq.html[Recoll on
MS-Windows FAQ].
== Support
Please use the
https://bitbucket.org/medoc/recoll/issues[BitBucket Recoll issues tracker]
for reporting problems, or contact me by email: jfd at recoll.org.
== Known problems:
- Indexing is very slow, especially when using external commands (e.g. for
PDF files). I don't know if this is a case of my doing something stupid,
or if the general architecture is really bad fitted for windows. If
or if the general architecture is really bad fitted for Windows. If
someone with good Windows programming knowledge reads this, I'd be very
interested by a discussion.
interested by a discussion. Windows indexing can be ten times slower than
the Linux version. The index formats are compatible, so, if you have
shared Linux/Windows data, it's best to process it on Linux.
- Filtering by directory location ('dir:' clauses) is currently
case-sensitive, including drive letters. This will hopefully be fixed in
a future version.
- Filtering by directory location ('dir:' clauses) used to be
case-sensitive, including drive letters. This is hopefully fixed by the
November 2016 version.
- Also, when filtering the search with a `dir:` clause, an absolute path
should be specified as `/c/mydir` instead of `c:/mydir`
@ -97,6 +89,12 @@ improving the Windows version, the link:recoll-mingw.html[build instructions].
== Change Log
Changes in 20161115
- File path names case sensitivity and other small path issues should be fixed.
- Based on Xapian 1.4. New stemming languages are available (e.g. Arabic).
- Fixed date display encoding issues.
Changes in 20160414
- The setup script has changed back to needing administrator rights,