Growl Source Installation

Requirements

In order to build Growl, you will need:

Note about XcodeGrowl is not always built with the latest version of Xcode. For example, if we build with Xcode 50000 and release that version and and then Xcode 50000.1 comes out and it breaks the build, that is to be expected. Subsequent releases of Xcode tend to be more aggressive with regards to how the build works. We'll fix this for later builds, but we will not go back and fix previously posted source. Keep that in mind when building Growl.

Note If you have chosen to use the command line mercurial installation, you will most likely need to perform this step. Open the Terminal application, located in the /Applications/Utilities folder, and run the following commands:

export LC_ALL="en_US.UTF-8"

In order to build Growl, you will need to have Mercurial installed. Regardless of whether you use a GUI or not.

Getting the source

You will need to grab the Growl from Mercurial. For a code clone for the casual code cloner, we recommend using our Google Code repository. To get a local copy of the Growl repo from Google Code, please follow the directions located here. If you have a google account, there are some other benefits as well.

For those who wish to work on The Growl Project, please contact us on the Growl Development discussions group We are very interested in working with you to get them involved in Open Source, working with a team, or helping you to prepare to enter the workforce with more skills under your belt. Alternatively you can find us on irc, on Freenode, in #growl. Click here to go directly to that channel if you have an irc client on your mac.

Compiling and Installing Growl

Once you have cloned Growl, you should now have a folder called growl in your home directory. The first thing that you need to do is switch to the tag that you want to build Growl from. A tag is like a bookmark, pointing to a specific revision. This page documents the concept of a tag.

The Growl Project takes advantage of tags to enable you to easily get to the exact revision that was used to build each of our applications. The latest revision in what you initially checkout may not be the most current revision of code for a released version of Growl, GrowlTunes, HardwareGrowler, or Capster.

You can use the following command to find the list of tags if you are not using a GUI like SourceTree. We pipe this the output to the sort command here so that it's easier to find what you are looking for.

hg tags | sort

When you find the tag that you want, you can update to it like this:

hg update "Growl.app 1.3.2"

The rest of this document assumes that you want to build Growl. If you would like to build an Extra, they are in the Extras folder.

In the growl directory you will find an Xcode project file, Growl.xcodeproj.

Xcode files

Open Growl.xcodeproj. Next, select the correct Scheme to build at the top left of Xcode, and then build the "Growl" target. If you are not sure of how to do this, please refer to the Xcode help inside the Help menu in Xcode, or contact us via irc preferably. The Growl target compiles the actual Growl application binary.

You will likely run into an two issues when you go through this process:

  1. A missing hgrevision.h or something like that. Just hit build again and that should go away.
  2. A signing error. You will need to generate a self signed certificate, and can do so at Keychain Access.app -> application's name menu -> certificate assistant -> create a certificate. Be sure to use the same prefix as the certificate that you are receiving errors about.

When you're done, find Growl in the Products folder in Xcode. Right (ctrl+click) Growl, and then choose "Show in Finder". The end result will be Growl.app.

To install Growl, copy it to your /Applications folder. It will be available to all of the users of your computer. Keep in mind that Growl 1.3 and later do not have update checkers built into them, so you will need to keep up with when releases are put out.

Congratulations! You've now built and installed Growl from source.