README-alpha 5.18 KB
This is the GNU mailutils package.
This document describes the actions needed to build the pre-release
or CVS version of the package. See end of file for copying conditions.

* Introduction

This is a *pre-release* version, and not ready for production use
yet. If you are taking source from CVS, you will need to have libtool,
automake, and autoconf installed to help contribute. See the chapter
`Building' for the detailed instructions. The script autogen.sh is
provided to help autoconfigure mailutils from the cvs src.  After you
run autogen.sh, there should be a file 'INSTALL' with (generic)
installation instructions. Package-specific installation instructions
are set forth in the file README.

Please, note that the accompanying documentation may be inaccurate
or incomplete. The ChangeLog file is the authoritative documentation of
all recent changes.

Report bugs to <bug-mailutils@gnu.org>

* Checking Out the Sources

The following instructions apply if you wish to obtain sources from
the CVS repository:

To checkout the source tree from CVS issue the following command:

 cvs -d :pserver:anoncvs@cvs.savannah.gnu.org:/cvsroot/mailutils checkout mailutils

This will give you read-only access.  If you think you need write access,
contact the mailing list.

* Building

In order to build this you will first need to have right versions
of autotools and some auxiliary GNU programs. At the time of this
writing these are: 

  Package   Version (>=)
  ========  ============
  automake  1.8.5
  autoconf  2.59
  libtool   1.5.8
  gettext   0.14.1
  gawk      3.1.3

You will also need bison (or yacc) and flex. The grammar sources
were written so that any version of yacc or bison should be able to 
handle them, however using recent bison is anyway recommended. The lex
sources could theoretically be compiled with AT&T lex. I have not
tested this, however, so using flex is higly recommended. I use flex
2.5.4. 
  
To prepare the package for building run autogen.sh. This may spit out
several warnings like:

pop3d_OBJECTS:.$(OBJEXT: non-POSIX variable name

Ignore them, these are due to the bug in automake. Then run
./configure with the desired options (See INSTALL and README for the
detailed instructions). Finally, run make. Notice that the first make
of the package should be made in the source directory. Subsequent
makes can use build directory different from the source one.

* Debugging

To enable additional debugging information, configure the package
with --enable-debug option.

Unless you compile mailutils statically, you will need to run
following command to debug any utility: 

  libtool --mode execute gdb UTILITY-NAME

Sometimes it is impossible or inconvenient to start a utility from
the debugger. In this case, use --HANG option, which is supported by
any of the mailutils programs. The option instructs the program to
sleep for a given number of seconds (3600 by default) right after
startup. For example, to debug `mimeview' utility, run

	mimeview --HANG [OTHER-OPTIONS]

Then switch to another terminal, get the PID of the ivoked utility and
attach to it using gdb: 

	gdb mimeview PID

Once in gdb, issue the following command

	set _argp_hang=0

Now set your breakpoints and proceed as usual.

* Importing gnulib files

Mailutils imports several source files from gnulib. These go
mainly to the conventional library libmuaux (directory lib/), but
several of them are incorporated into the main library libmailutils
(directory mailbox/). The imported sources are kept in the CVS
repository to avoid using eventually unstable versions appearing in
the main gnulib CVS. Once in a time we update the sources. The update
procedure is quite straightforward: change to the root directory of
the mailutils tree and run `gnulib-sync' script:

  $ cd mailutils
  $ scripts/gnulib-sync $HOME/src/gnulib

The script takes a single argument: the name of the directory with the
copy of gnulib source tree (see http://savannah.gnu.org/projects/gnulib
for information on how to obtain gnulib sources). After incorporating
the files, gnulib-sync leaves in the current directory two files named
gnulib.changelog and gnulib.cvs. The file gnulib.changelog contains
an entry to be prepended to ChangeLog, the file gnulib.cvs is a shell
script with the commands necessary to incorporate all the changes into
CVS. 

If you need to add more gnulib modules to mailutils, add their
names to gnulib.modules file, following the instructions in its
heading comment. Please avoid placing modules in :mailutils section, as
this may lead to unwanted name clashes when linking user programs with
libmailutils. 

* Copyright information:

Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.

   Permission is granted to anyone to make or distribute verbatim copies
   of this document as received, in any medium, provided that the
   copyright notice and this permission notice are preserved,
   thus giving the recipient permission to redistribute in turn.

   Permission is granted to distribute modified versions
   of this document, or of portions of it,
   under the above conditions, provided also that they
   carry prominent notices stating who last changed them.


Local Variables:
mode: outline
paragraph-separate: "[ 	]*$"
version-control: never
End: