Next: , Up: Installation



3.1 Configuring and compiling the software

  1. First, unpack your distribution. We provide source code in a tar file which was compressed using gzip. The code can be extracted into a directory unpackdir using
              cd unpackdir
              gunzip gnats-4.1.999.tar.gz
              tar xvf gnats-4.1.999.tar
         

    The sources reside in a directory called gnats-4.1.999 when unpacked. We call this the top level of the source directory, or srcdir. The sources for the gnats tools are in the subdirectory gnats-4.1.999/gnats/*. Lists of files included in the distribution are in each directory in the file MANIFEST.

  2. As of gnats version 4, having Emacs installed on the gnats server is no longer a requirement. If you do not have Emacs installed, disregard this step altogether.

    You may wish to alter the installation directory for the Emacs lisp files. If your Emacs lisp library is not in prefix/share/emacs/site-lisp, edit the file srcdir/gnats/Makefile.in. Change the variable lispdir from prefix/emacs/site-lisp to the directory containing your Emacs lisp library. For information on prefix, see prefix.

  3. Create an account for the gnats user. You can actually name this user whatever you want to, as long as it is a valid username on your system, but we strongly recommend that you call the user gnats. If you do decide to give it some other name, remember to use the option --enable-gnats-user when running configure below. Below, we will anyway refer to this user by the name gnats.

    This user must have an entry in the file /etc/passwd. As for ordinary users, create a standard home directory for the gnats user. The default PATH for this user should contain exec-prefix/bin and exec-prefix/libexec/gnats. The exec-prefix value is configurable with the --exec-prefix configure option described below, but for standard installations, these two directories correspond to /usr/local/bin and /usr/local/libexec/gnats.

  4. Run configure. You can nearly always run configure with the simple command
              ./configure
         

    and the “Right Thing” happens:

    The most common options to configure are listed below:

              configure [ --prefix=prefix ]
                        [ --exec-prefix=exec-prefix ]
                        [ --enable-gnats-service=service-name ]
                        [ --enable-gnats-user=username ]
                        [ --enable-gnatsd-user-access-file=path ]
                        [ --enable-gnatsd-host-access-file=path ]
                        [ --enable-gnats-dblist-file=path ]
                        [ --enable-gnats-default-db=path ]
                        [ --with-kerberos ] [ --with-krb4 ]
                        [ --verbose ]
         
    --prefix=prefix
    All host-independent programs and files are to be installed under prefix. (Host-dependent programs and files are also installed in prefix by default.) The default for prefix is /usr/local. See Where gnats lives.


    --exec-prefix=exec-prefix
    All host-dependent programs and files are to be installed under exec-prefix. The default for exec-prefix is prefix. See Where gnats lives.


    --enable-gnats-service=service-name
    Set service-name to be the gnats network service. Default name is support.


    --enable-gnats-user=username
    Set username to be the user name for gnats. Default username is gnats.


    --enable-gnatsd-user-access-file=path
    Set global (across all databases) gnatsd user access file to path. Default is /usr/local/etc/gnats/gnatsd.user_access. Per-database user access permissions are set in a gnatsd.user_access file in the gnats-adm subdirectory of each database.


    --enable-gnatsd-host-access-file=path
    Set global (across all databases) gnatsd host access file to path. Default is /usr/local/etc/gnats/gnatsd_host.access. There is currently no way to specify host access permissions on a per-database basis.


    --enable-gnats-dblist-file=path
    Specify the file containing the list of databases.

    Default is prefix/etc/gnats/databases.


    --enable-gnats-default-db=path
    Specify the default database to use when gnats tools are invoked without the -d or --databasename option, and when the GNATSDB envrionment variable hasn't been set. Default is /prefix/com/gnatsdb.


    --with-kerberos
    Include code for Kerberos authentication.


    --with-krb4
    Support Kerberos 4.
    --verbose
    Give verbose output while configure runs.

    configure supports several more options which allow you to specify in great detail where files are installed. For a complete list of options, run ./configure --help in the source directory.

    You can build gnats in a different directory (objdir) from the source code by calling the configure program from the new directory, as in

              mkdir objdir
              cd objdir
              srcdir/configure ...
         

    By default, make compiles the programs in the same directory as the sources (srcdir).

  5. Make sure you have gnu make, then run
              make all info
         

    from the directory where configure created a Makefile (this is objdir if you used it, otherwise srcdir.) These targets indicate:

    all
    Compile all programs
    info
    Create info files using makeinfo.