Running a development version of Gramps

From Gramps
Revision as of 22:57, 7 November 2013 by Nick H (talk | contribs) (Add gramps40 section from a merge of couple of other pages)
Jump to: navigation, search


  • Install a recent version of Ubuntu, or Mint, which is Ubuntu based. The steps in this document have been tested with Ubuntu 7.04, 7.10, 8.04, 10.04, 10.10 and 12.10, and Mint 14

Gramps 4.0 and the master branch


Do not open your existing databases with the master branch, it might destroy your data, and will make it impossible to use the data in the stable version 51. To try it out, export your database to a gramps xml file, eg test_master.gramps, create a new family tree in the master branch, and import this xml file.

For the internationalization code to work, you need to have the translation tools.

On Debian, just run (as root) - (Only if Debian installs Gramps 4.0+ as Gramps version!):

apt-get build-dep gramps

On Fedora 8 - 10 (Fedora is up to version 17 now so does this still apply?), you will need:

yum install intltool gnome-doc-utils gettext git-core rcs


Now go into the top-level directory and type:

python build

Do not install the development version if you don't know how to version python modules. That is, do not type sudo python install.


Option 1: run from source repo

Here, we use the code in working directory to run Gramps. This means that compiled python files will be stored there. This is not ideal, but the easiest way to develop Gramps, as changes are immediately picked up by the code.

Copy the file created in build to your source directory if you want to use your source directory to work with Gramps:

cp build/lib.linux-$(uname -m)-2.7/gramps/gen/ gramps/gen/

Note: the lib.linux-$(uname -m)-2.7 folder name vary depending on your system (i686 or x86_64).

That is it. If you installed some dependencies of Gramps in non-default positions, you need to indicate with PYTHONPATH where they can be found, and with LD_LIBRARY_PATH where link libraries can be found. Eg, if you install GTK and spell checking from source too, you will need something like:

 PYTHONPATH=/usr/local/lib/python2.7/site-packages/ LD_LIBRARY_PATH=/usr/local/lib python

Option 2: use the build code

Here, we use the code build in trunk/build directory to run Gramps. For compiled programs this is the only way, but for Gramps nothing is compiled. It is not bad however to keep your code separated from your execution, as deleting the build directory is easy. After a code change in your source, you then need to run however python again to update the build direcotry. To run Gramps from build, do

 cd trunk/build/lib.linux-$(uname -m)-2.7/
 python -c 'from gramps.grampsapp import main; main()'

Again, it might be needed to set with PYTHONPATH where dependencies can be found, and with LD_LIBRARY_PATH link libraries, see option 1.

If you point your PYTHONPATH to the build directory, you can actually run Gramps from a random directory. Like this:

PYTHONPATH=~/gramps-trunk/build/lib.linux-$(uname -m)-2.7/ python -c 'from gramps.grampsapp import main; main()'

So, more general:

PYTHONPATH=~/gramps-trunk/build/lib.linux-$(uname -m)-2.7/:/usr/local/lib/python2.7/site-packages/ LD_LIBRARY_PATH=/usr/local/lib  python -c 'from gramps.grampsapp import main; main()'

If the build directory is in your PYTHONPATH, you can also just execute the module. So this will work too:

cd ~/gramps-trunk/build/lib.linux-$(uname -m)-2.7/gramps
PYTHONPATH=~/gramps-trunk/build/lib.linux-$(uname -m)-2.7/ python

or again more generally

PYTHONPATH=~/gramps-trunk/build/lib.linux-$(uname -m)-2.7/:/usr/local/lib/python2.7/site-packages/ LD_LIBRARY_PATH=/usr/local/lib python

Note: At the time of writing, only the last, so using works, as not all imports in Gramps have been converted to relative or absolute imports. This conversion will be finished by end of 2012 however.

Known Problems

Some problems are due to the migration from GTK2 to GTK3: list of known problems

Gramps 3.4 and before

  • Install the tools we will need:
sudo apt-get install build-essential gnome-common libglib2.0-dev git-core gettext


  • Get ready to build Gramps:

The old versions of Gramps use autotools, so you need to run:

  • Build GRAMPS:


  • Run Gramps:
python src/

At this point, any time you want to update to the latest version of Gramps, simply run:

git pull --rebase
python src/

If some of the Gramps constants have changed and you obtain an error in, rerun the commands and make.