Jan 232011
 

During a recent upgrade of the software I have installed on my work laptop, Macports managed to get a trifle confused during the process. Firstly Enlightenment suddenly started crashing at the drop of a hat, and secondly dbus suddenly started refusing connections and claiming that X11 support was not built-in.

The first problem I solved by comping Enlightenment (E16) from scratch and overwriting the Enlightenment installed from Macports – probably not the right thing to do. It turns out that the Macport version of Enlightenment is very outdated and could do with a refresh.

The second problem was a little trickier, and may have been solved in a slightly more Macport compatible manner. In fact this problem was two problems in one. First of all, any attempt to start a GNOME-based (or presumably anything wanting to talk to dbus) would give an error indicating that X11 support was missing.

I fixed this by recompiling dbus manually :-

# port mirror dbus
#   Gets a copy of the source code used to compile the source
# cd /opt/local/var/macports/distfiles/dbus
#   Change to directory where the source code is located
# gunzip -c dbus-1.2.24.tar.gz| tar tvf -
#   Unpack the source code
# cd dbus-1.2.24
#   Enter the directory that we've just unpacked.
# ./configure --prefix=/opt/local
#   Configure the package.

If you look at the last few lines of the output from this configuration process, you will see a message of the form “Building X11 code: yes” which is what we want to see – that X11 support is being built. At this point we can build and install :-

# make
# make install

The next problem was that attempting to use the automatically launched version of dbus resulted in a “permission denied” error when trying to communicate over the socket. The work-around for this turned out to be to :-

  1. To turn off the launchd control of dbus by renaming the files /Library/LaunchAgents/org.freedesktop/dbus-session.plist and /Library/LaunchDaemons/org.freedesktop/dbus-session.plist by putting a “.” in front of their name. This stops launchd from starting anything.
  2. Changing the .xinitrc to start dbus using the syntax eval $(dbus-launch –auto-syntax) (note that I explicitly ensure that this script is launched with zsh).
Feb 042010
 

Macports is a convenient way of adding conventional Unix software to an OSX machine; this guide is not intended as a replacement for the main documentation but as a simple convenient cheat sheet. Mainly for myself, but as it is here, anyone is welcome to use it (and send in corrections!).

After you have installed the main Macports package you need to periodically update the main macports binary and the index files with :-

% sudo port selfupdate -d

This conveniently tells you to update the outdated ports with :-

% sudo port upgrade outdated

But neglects to suggest that removing inactive ports would be wise :-

% sudo port uninstall inactive

As an upgrade does not by itself remove older packages; merely makes them “inactive”. A considerable amount of space can be used by these “inactive” ports!

Variants

Once you have found a port you are interested in installing :-

% port search emacs

It is worth checking what variants are available :-

% port info emacs | grep Variants
Variants:             gtk, motif, universal, x11

This allows you to specify what features you want :-

% port install emacs +gtk

Further details may be added …