Warning: Can't synchronize with the repository (Unsupported version control system "git": Can't find an appropriate component, maybe the corresponding plugin was not enabled? ). Look in the Trac log for more information.

Prerequisites

Higgins requires the following to build and run. Note that I use Ubuntu on my development machine, so the packages referred to are ubuntu-specific package names and versions.

  • python == 2.5

Python 2.4 will almost certainly work, but I haven't tried it. 2.6 will work too i think, since it doesn't introduce any backward-incompatible changes. I don't think 3.0 will work.

  • python-twisted
  • python-pysqlite2

This is a little confusing, because there is python-sqlite (for sqlite version 2), python-pysqlite1.1 (which uses sqlite version 3 but maintains the version 2 interface), and python-pysqlite2 which uses sqlite version 3. I'm not sure if other versions will work, since i do not use sqlite directly (it is used internally by django).

  • python-django >= 1.0

Versions of django earlier than 1.0 will not work. Ubuntu Intrepid has the 1.0 package, earlier versions do not, so you may have to install this by hand. For detailed instructions on installing Django, see the (excellent)  documentation.

  • python-dbus
  • python-avahi
  • avahi-daemon
  • python-mutagen
  • python-pyrex
  • python-setuptools

On ubuntu 8.10 you can install all necessary requirements with one command:

$ sudo apt-get install python2.5 python-twisted python-pysqlite2 python-django
 python-dbus python-avahi python-mutagen python-setuptools python-pyrex avahi-daemon

Getting the source

The source for Higgins is available in a git repository at  git://syntaxjockey.com/higgins.git. First make sure that git is installed on your computer, then retrieve the source using git clone:

$ git clone git://syntaxjockey.com/higgins.git higgins

This grabs the current sources and places them in the directory 'higgins' in the current working directory. If you want to build a stable release, you can grab an archive of your preferred version from  http://dl.syntaxjockey.com/higgins/ and extract it:

$ wget http://dl.syntaxjockey.com/higgins/Higgins-<version>.tar.gz
$ tar -xzvf Higgins-<version>.tar.gz

Building and installing

Inside the toplevel source directory is setup.py, the install script for higgins. setup.py has a lot of commands and options, but the two important commands are install and developer. The install command will build the python packages, pack them into an  egg, and then install the egg into the system site-packages directory. Additionally, the higgins-media-server and higgins-upload scripts will be installed in the system bin directory (usually /usr/local). If you want to install Higgins in an alternate prefix, such as /usr/local, you can use the --prefix option to the install command. For information about all the options available, try running setup.py install --help.

At this point Higgins should be ready to run:

$ higgins-media-server --create /path/to/my/environment

Higgins requires an 'environment directory' to store application data. Passing the --create flag will create the environment directory if it does not exist.

Hopefully higgins didn't crash, and you see a stream of debug messages. Open up a browser and point it at http://localhost:8000 to verify everything is working.

Developer mode

The If you plan to contribute to the Higgins project (hopefully that is why you're reading this page!) then you shouldn't use the install command; instead, setuptools provides a special command called develop which performs a special install:

$ ./setup.py develop

This installs special files in the system site-packages directory which points to the current Higgins source directory. That way, you don't have to keep running the install command to update the site-packages directory after you make changes to the source code. The higgins-media-server script still gets installed in the system bin directory, but it too points to the source directory, so running higgins-media-server will execute the code from the source directory. Pretty slick eh?