Home > Documentation > for Administrators > Installing > Download^

Gale Installation Instructions

For the most part, installing Gale is a matter of building the binaries and getting them in the right places. The exception is the authentication system, which requires a certain amount of finicky setup -- including setuid binaries -- to do its job correctly and securely.

First, download the Gale source code and unpack it. It should create a directory named "gale-(version)", where (version) is the version number you downloaded. (We'll refer to this directory as "gale".)

Fetching Required Libraries

Second, make sure you have some libraries Gale depends on:


Get the RSAREF library. Unpack the rsaref20.tar.Z file in the "gale/rsaref" directory. The configuration and build process will automatically detect its presence, build it and link with it. This will only work with the "genuine" RSAREF.

Alternatively, you can build the library (or a workalike) yourself. If you do, install librsaref.a and the RSAREF headers into system lib and include directories; remember where you put them for the next step.

The Boehm conservative garbage collector

Unpack the tarball in the "gale" directory; it will expand into "gale/gc".

You may alternatively build and install it yourself elsewhere. If so, make sure you know where to find libgc.a and gc.h.

Ian Jackson's asynchronous DNS library (ADNS)

ADNS is now required for Gale. Follow the included directions to configure and install this library. Make sure you know where adns.h and libadns.* are.

** Use version 0.9 or newer! ** At the time of this writing, the only known working versions are 0.5 and 0.9. Versions 0.4, 0.6, 0.7 and 0.8 don't work. Versions after 0.9 should also work (try it and see!).

Unicode conversion library (iconv)

Gale requires the Unix98 standard iconv(3) functions to perform Unicode character set translation. However, some operating systems do not yet provide this function, or do not provide a sufficiently powerful version. To use Unicode character sets on these systems, you will need to install Bruno Haible's libiconv. The GNU libc 2.1 iconv is broken, but GNU libc 2.2 will work.

Without these functions, Gale will still work, but I/O will be limited to the ASCII character set. (This is perfectly sufficient for many English-speaking users.)


Third, get ready to run the provided "configure" script. The typical "configure" options (--prefix etc.) apply; run "sh configure --help" for usage information.

The gzgw (Gale/Zephyr gateway) is not built by default. To enable it, use the --enable-gzgw flag to "configure". If you do this, make sure "configure" can find the Zephyr libraries and headers by using the proper -L and -I flags (if necessary) in the LDFLAGS and CPPFLAGS environment variables, respectively.

If you want to use a preinstalled RSAREF library, include the appropriate flags in LDFLAGS and CPPFLAGS so "configure" can find librsaref.a and the RSAREF headers (rsaref.h etc). (Don't worry about this if you've unpacked rsaref20.tar.Z into gale/rsaref as directed in the second step.)

Similarly, if you want to use a preinstalled Boehm GC library, make sure LDFLAGS and CPPFLAGS include the location of libgc.a and gc.h, respectively. ADNS, libiconv, and any other required libraries must also be available via these paths.

By default and where supported, Gale will install static and shared libraries, and install binaries linked against shared libraries. You may use --disable-shared or --disable-static to modify this behavior.

Once you've figured out the right options and set the right environment variables, run the script.


Fourth, run "make" in the top-level Gale directory. With luck, this will build everything without incident. If not, now you get to figure out what went wrong and why; enjoy! Feel free to contact me with questions and patches. Many architectures are currently unsupported, but the changes are typically not too painful.

Then become a user (eg. "root") which has permission to write (and create, if necessary) the install directories (/usr/local/..., unless you specified otherwise). Run "make install" from the top-level "gale" directory; this should install the Gale binaries, libraries, and header files.

Make sure the installed binaries are on the PATH for future steps!

Final Setup

Fifth, run the "gale-install" script that was installed by "make install". This may ask questions if it can't find a previous configuration. Feel free to interrupt and re-start it at any point.

Finally, if you have not already set up your domain, you need to do so. Become the "gale user" selected in the last step and run "gale-install" again. Follow the directions; these will involve sending your key to the proper authority to get it signed. I manage ROOT and most "top-level" domains (.edu, .com, .org, .nu,, etc.) for now. When in doubt, ask me.

Happy Puffing!

Enjoy your new installation; you may find the user documentation useful. If you have any problems, feel free to send me e-mail.