$Id$

This file contains some useful details on the installation from source code
for GRAMPS. It does not cover installation of a pre-built binary package.
For that use your package manager, the rest is already done by the packager.

Uninstall old version
---------------------
If you do a source install in the same place of an existing install,
you need to remove the old version first. You can delete the old
version by deleting the installed directories (for example,
        /usr/share/gramps
        /usr/local/lib/pythonx.x/site-packages/gramps
        /usr/local/lib/pythonx.x/dist-packages/gramps
        /usr/lib/pythonx.x/site-packages/gramps
        /usr/lib/pythonx.x/dist-packages/gramps
    where pythonx.x is python2.7 or whatever version you installed gramps with.
Also remove the gramps .egg files that are installed along with the gramps
directory.

If you don't know the list of all files that Gramps installed, you can
reinstall it with the --record option, and take a look at the list this
produces (so python setup.py install --record grampsfiles.txt

GRAMPS is a python application, so loading happens on reading the
files, meaning that files of a previous version that are no longer
present in the new version can still be loaded, making the new install
unstable!

distutils install
-----------------
We do not check all dependencies of Gramps, see README for a 
list of all required and optional dependencies. On running Gramps, errors will
be returned if dependencies are missing.

If you are building from released tarball, you should be able to just
run 

   python setup.py build
   python setup.py install

where the last must be done as root. You can work with Gramps if you only build
it by pointing the PYTHONPATH to the build directory, but things like MIME type
and desktop entries will not be created then.

Typical install directories in linux (ubuntu) are:
  * /usr/local/lib/python2.7/dist-packages/gramps/  : the gramps python module
  * /usr/local/share/mime-info    : mime info so gramps opens files automatically
  * /usr/local/share/icons/gnome  : our icons
  * /usr/local/share/doc/gramps   : documentation, also example .gramps and .gedcom
  * /usr/local/bin                : the gramps executable
  * /usr/local/share/locale/xx/LC_MESSAGES  : xx language code, translation
  * /usr/local/share/man/man1/xx/man1       : xx language code, man file
  * /usr/local/share/mime
  * /usr/local/share/mime-info

Running Gramps
--------------
Gramps is python only, so no compilation is needed, you can even run gramps
from the source directory. 

 a) You installed Gramps, then you can run it with the command

     gramps 

 b) You installed Gramps, and want to start it from the PYTHONPATH. In this
    case use the command:

     python -c 'from gramps.grampsapp import main; main()'

   The executable 'gramps' in /usr/local/bin or /usr/bin from a) does 
   this for you.

 b) You downloaded the Gramps source code to a directory, and want to run it.
    First, copy/rename the gramps/gen/const.py.in to gramps/gen/const.py. 
    Edit this file if needed. Now you can start Gramps from the source code
    directory with

     python Gramps.py


Custom directory installation
-------------------------------------
If you would like to install GRAMPS without being root, or in an 
alternative location on windows, supply the --root argument to setup.py

For example:
   python setup.py install --root ~/test
   or
   python setup.py install --root ~/test --enable-packager-mode

The last option, --enable-packager-mode, is needed if you want to disable
execution of post-install mime processing. If you don't have root/admin 
access, this will be needed

Packager's issues
------------------
There is a MANIFEST.in file to indicate the work needed.
To create a source distribution run:

   python setup.py sdist

