Running Gramps Genealogy program on Solaris 10

Gramps is an acronym for Genealogical Research and Analysis Management Programming System). It is a community project, created, developed and governed by genealogists.
Gramps (Genealogical Research Software)

Gramps official home page is gramps-project.org

Why Gramps on Solaris?

Whilst Gramps is available for various flavours of Linux and Windows. There is no install release available for the Solaris operating system. This is where I come in (I don;t run windows at home) so I created the steps necessary and posted the results on the Gramps project wiki page.

At the time of writing, Gramps version 3.0.1 was available and I have successfully installed on Solaris 10 (SPARC) and OpenSolaris X86 (2008.05)

Installing Dependencies

Even with the latest releases of Solaris/OpenSolaris a number of missing dependencies need to be resolved before you can install Gramps, namely Berkeley DB, Python BSDDB Interface and Python ReportLab.

You will need to install these dependencies before you can move forward and install Gramps.

Berkeley DB

  1. Download the BSDDB core from www.oracle.com. For the Gramps 3.0.1 installation I've used Berkeley DB 4.5.20 (although 4.6 and 4.7 are available I found a number of db corruptions while using these later releases so I stuck with the trusted 4.5x version).
  2. Unpack, build and install
    % gtar zxfB db-4.5.20.tar.gz
    % cd db-4.5.20/build_unix
    % ../dist/configure --prefix=/usr
    % gmake
    % su
    # gmake install
  3. Note: Using the --prefix=/usr on the configure command-line is a must under Solaris, without installing the Berkeley DB in this location Python BSDDB interface fails to install.

Python BSDDB Interface

  1. Download bsddb3-4.5.0.tar.gz from pybsddb.sourceforce.net.
  2. Unpack, build and install
    % gtar zxfB bsddb3-4.5.0.tar.gz
    % cd bsddb3-4.5.0
    % python setup.py build
    Found Berkeley DB 4.5 installation.
      include files in /usr/include
      library files in /usr/lib
      library name is libdb-4.5
      running build
      running build_py
      running build_ext
    
    % su
    # python setup.py install
  3. Note: You must download and build a version of the Python BSDDB Interface which supports the version of Berkeley DB installed on your system.

Python ReportLab

  1. Download Report 2.1 (latest version at the time of writing), from www.reportlab.org/ftp.
  2. Unpack, build and install
    % gtar zxfB ReportLab_2_1.tgz
    % cd reportlab_2_1/reportlab
    % python setup.py build
    
    % su
    # python setup.py install

Installing Gramps

Download & Unpack

  1. Download Gramps 3.0.1 (latest version at time of writing) from the Gramps sourceforge.net page.
  2. Unpack
    % gtar zxvf gramps-3.0.1.tar.gz
    % cd gramps-3.0.1

Prebuild Changes

A small number of changes are needed prior to compiling and installing Gramps 3.0.1 on the Solaris platform

  1. file: configure
    Although the Gramps 3.0.1 package requires a python version of 2.5 or later. The Solaris build of python 2.4 works well with Gramps 3.0.1 and no issues have been noticed. Note: This change negates the need install a later release of python ;-)

    change line 6297 of this file to read:
    minver = map(int, string.split('2.4', '.')) + [0, 0, 0]
    change line 6329 to read:
    minver = map(int, string.split('2.4', '.')) + [0, 0, 0]
  2. file: src/gramps.py
    change line 97 to read:
    MIN_PYTHON_VERSION = (2, 4, 0, , 0)
  3. file: gramps.sh.in
    Unlike other UNIX/Linux versions the default /bin/sh under Solaris is the older bourne shell. In order to allow the script to work we need to modify the first line of this file to read ksh (or bash if you prefer):
    #!/bin/ksh
  4. file: src/gen/db/base.py
    change line 39 to read:
    from bsddb3 import db
  5. file: src/gen/db/dbdir.py
    change line 39 to read:
    from bsddb3 import dbshelve, db
  6. file: src/Editors/_EditFamily.py
    change line 28 to read:
    from bsddb3 import db as bsddb_db
  7. file: src/GrampsDbUtils/_GrampsBSDDB.py
    change line 38 to read:
    from bsddb3 import dbshelve, db
  8. file: src/GrampsLogger/_ErrorReportAssistant.py
    change line 5 to read:
    import sys, os, bsddb3
    change line 102 to read:
    str(bsddb3.__version__),
  9. file: src/plugins/Leak.py
    change line 34 to read:
    from bsddb3.db import DBError

Configure Gramps

  1. To configure Gramps all you need to do is run the configure script:
    % ./configure
  2. Other options to configure that are useful include telling the script to setup Gramps to install in a directory of your choosing instead of the default (/usr/local):
    % ./configure --prefix=/usr

Compile Gramps

  1. To compile Gramps simple issue make.
    % make

Testing the Build

  1. To test the Gramps build, simply run:
    % python ./src/gramps.py

Finally, Install Gramps

  1. Finally, type make to install into your desired location
    % su
    # make install

Running Gramps

To run Gramps, simply type gramps if the installation path for the Gramps binaries are in your $PATH, otherwise type the full path to the binary, ie: /your/dest/dir/gramps

That's all folks!