Mac OS X:Build from source:MacPorts

From Gramps
Revision as of 02:49, 20 March 2009 by Emrys (Talk | contribs)

Jump to: navigation, search

Installing gramps for X11 using MacPorts

This page has been updated with information gleaned from installing gramps from Macports onto a brand new iMac with OS X 10.5.6 on 14 March 2009.



The MacPorts information says that you have to install X11, either from an Apple disk or from an open source version. My iMac came pre-installed with X11 out of the Apple box, so that is probably the default nowadays. In that case, no action is needed.

Backup, Desirability Of

MacPorts installs everything as a superuser, using sudo. That could cause a lot of grief if it didn't work, so it is well worth while setting up the Apple Time Machine backup software before starting any of this work. With that in place, it is possible to undo any disasters more or less however bad they get. I've not needed to use it but it's a warm feeling. The Time Machine software works either with an Apple branded network drive, Time Capsule, or with a generic direct-wired USB or firewire disk plugged in the back of the iMac. I picked a generic disk, plugged it in, and the Time Machine software sprang to life and I completed the process in a couple of clicks (and several hours of writing the new disk). Well worth while.


The advice from the Mac OS X page to install OpenOffice first is sound. That should complete without any errors. Be aware that the running openoffice icon in the Mac dock doesn't do anything when clicked. It has to be ctrl-clicked to pop up a menu.


MacPorts should now install successfully with a couple of clicks. I just clicked on the "leopard" link on the install page and it just worked.


Before going further, it's worth finding out whether your Mac is set up for software development. open a terminal window (in finder-applications-utilities-terminal) and type in the line ended with the <CR> key

type make

and if it says

make is /usr/bin/make

then all is well, but if it says

-bash: type: make: not found

then the Mac doesn't have the software development code loaded. This was the case with my new iMac straight from the store.

If you don't already have the software development code, you need the Xcode package from Apple. This free and installs with just a click, despite its size (1 Gbyte download). However, you do have to become a member of the Apple Developer Connection in order to get it. This too is free and can be done straight away online, but does require you to agree to a large legal contract which allows, among other things, Apple staff to enter your home. To complicate matters, I had trouble with the Apple website while applying for membership and had to try three times. However, eventually, the sign-up email came through and all was well and I could go ahead and download xCode. Succeeding in this turns the iMac into a full-fledged software development workstation. You don't actually need to develop any software - not one line of code - to install gramps, but the MacPort software does need the software development tools to do the installation.

After all that (it takes a couple of hours to download and install xCode) the "type make" test above should succeed.

Gramps and the packages it depends on

The following text here was from the orignal version of this page and was what I used to install gramps. In fact, it's out of date. A current experience is shown on the discussion page of this article, and it would have been better for me to do that instead. We should re-hash this page to make more sense, but none of us quite ahs the courage to go ahead and do it!

This is what used to happen

So, assuming you have MacPorts installed and updated, you might as well try: sudo port install gramps Now, if you're like me and didn't have GNOME or anything like that installed, calling that command will attempt to go through all of the dependencies and install them all. This will take a while, and you might be at this installing gramps for a couple hours (there are a lot of dependencies)

What I did instead was run port deps gramps, which listed the major dependencies that gramps has. Then, I installed each separately. They are: shared-mime-info py-gnome py-bsddb I installed them in the following order:

  1. shared-mime-info
  2. py-bsddb
  3. py-gnome (the tough one)


In order to successfully install this, I first had to run: sudo port install p5-xml-sax sudo port install p5-xml-sax-expat After that, things installed smoothly


This actually installed smoothly on my computer.


For now, I merely list the libraries and what I did to fix the problem.

  1. py-gtk2
    • I had to make sure to upgrade expat. After that, it installed fine.
    • I had a real difficulty getting this to fully install. It kept choking on Cairo. After updating XTools to 2.5, Cairo installed without a problem. --A.southern.yankee 23:46, 1 May 2008 (EDT)
  2. py-orbit
    • This installed without any problems for me.
  3. libzvt
    • This package needs "dbus" which in turn needs "xmlto". It appears, however, that "xmlto" is not listed as a dependent of "dbus". Hence, I ran sudo port install xmlto by hand. This installed without any problems on my computer.
    • After installing that, and upgrading gtk2 (do this first), this seems to be installing correctly.
  4. gnome-desktop
    • This was the next problem for me. I installed p5-libxml-perl, p5-xml-simple, py-xml by hand, cleaned gnome-desktop, and then tried the installation again. Worked fine!
  5. gstreamer
    • This was the next problem for me. I installed p5-xml-libxslt, py-libxslt by hand, cleaned gstreamer, and then tried the installation again. Worked fine!
  6. liboil
    • First, I ran sudo port upgrade gtk-doc
    • Then, I installed the newest version of the liboil library from [1] and then tried to make the liboil library again. (From the manual download). This worked. I would assume it would work for the port version as well.
  7. nautilus
    • This was the last problem for me. To get around the error, I had to create a soft link for the libintl.3.dylib file in my /opt/local/lib/ directory.

And this is another error message that happened in March 2009

When I did

sudo port install gnome-desktop

I saw

Error: Target org.macports.activate returned: Image error: /opt/local/bin/nosetests
is being used by the active py-nose port. Please deactivate this port first, 
or use the -f flag to force the activation.
Error: The following dependencies failed to build: py25-gnome py25-gtk py25-cairo 
py25-numpy py25-nose py25-gobject py25-orbit startup-notification xorg-libsm xorg-libice
Error: Status 1 encountered during processing.

and I have no idea what it means or what deactivating a port implies. I typed

sudo port -f install gnome-desktop

and got

Registry error: py25-nose @0.10.4_0 already registered as installed. 
Please uninstall it first.

so I typed

sudo port uninstall py25-nose
sudo port -f install gnome-desktop

and that seemed to work. Goodness knows what chaos I caused!


As well as OpenOffice, Graphviz is needed to view reports. You have to download and install this separately from gramps but it's a simple click-to-install procedure. Once it's installed, the graphviz application appears in finder - applications, and running that gives a menu bar that allows the file to be opened and displayed. The command line version of graphviz, dot, documented at the graphviz website, works too.


It seems that the missing packages that one may trip over when installing via MacPorts vary depending on just who has last modified all the installation scripts. There may be some; it's easy to fix by guesswork; it's odd that the computer doesn't just go ahead and fix them by itself because it sure does everything else! In fact the whole process of installing xCode and MacPorts and then gramps is an astonishing tour de force and a tribute to the good architecture of the Linux and unix software development system. But it is scary!


There are some problems.

  • Gramps on Mac uses ctrl-x, ctrl-c, ctrl-v for cut, copy, paste. The standard for mac programs, inclduing X11 programs, is cmd-x, cmd-c, cmd-v. And, using either ctrl-click with an apple mouse, or right-click with a two-button mouse, doesn't allow copy and paste properly. Only ctrl-V will paste into gramps.
  • Double clicking an image in the media reference editor doen't bring up an external viewer to show the picture full size. In fact, there seems to be no way to do this from within gramps on Mac.
  • Little popup yellow help notices notices which are supposed to appear when you hover over a button do appear, but do so even when the gramps window isn't in focus and there's a window from another application covering it up. This may apply just to windows like the person editor and not to the main original gramps window.
  • It is not possible to start Gramps by double clicking on a Mac OS icon, nor by double clicking on a Gramps database that is associated with the application. (It should be possible to create an installation that allows this, just as it is available for OpenOffice).
  • The plugin cannot be installed because ReportLab is not installed.
    • Note, using macports, run sudo port install py-reportlab . This will take care of this problem.
    • For fink, run fink install reportlab-py25 (py24 or py23, for earlier versions of python).
  • The plugin cannot be loaded because the python bindings for GNOME print are not installed.
  • Spell checking does not work (on starting Gramps, an error warning "Spelling checker is not installed" appears on the xterm). The python "bindings for [GNOME print and spell checking] are probably in fink's gnome-python2-desktop-py24 and gnome-python2-extras-py24 packages. Or would be, if fink had them at all, which we don't. They are only viable for for newer versions of gnome itself than fink presently has, or have other dependencies that are not yet satisfiable within fink. We're working on it".
  • All ODF (ODT) output failed with a "Could not create file" error on an Gramps installed via Macports as described above, on a 'virgin' Mac. Benny Malengier forwarded the suggestion from guylinton that zlib should be installed: with sudo port install py25-zlib all ODT output jumped into action.

In the past the following have been noted on Mac systems, but they worked fine when I tried them:

  • Help does not work (clicking Help or FAQ etc on the Help menu does nothing).
  • 'Enter' or 'return' does not act as OK for closing windows (the button has to be pressed with the mouse). However Esc does work to exit from the window.
  • The browser and email links under the help menu do nothing.

Starting Gramps using X11

Once you have successfully installed gramps using MacPorts, you will need to make a note of where the executable is. You can do this in your terminal, by typing "which gramps" (no quotes, of course). You should make a note of this and then start X11 from the Applications folder (in my case from within the Utilities folder). Once you have an X terminal you can type the command, in my case "/opt/local/bin/gramps". If /opt/local/bin is in the PATH for X11, then you should just be able to type "gramps".