Horde Installation Guide                                        docs/INSTALL
=--------------------------------------------------------------------------=

$Horde: horde/docs/INSTALL,v 1.20 2000/11/07 21:42:16 bjn Exp $

Copyright 2000 Scott Martin <martin@math.ohiou.edu>
Copyright 1998,1999 Charles J. Hagenbuch <chuck@horde.org>
Copyright 1999 Ivan E. Moore II <rkrusty@tdyc.com>
Copyright 1999 Mike Hardy <mikeh@spark.com>
Copyright 1999 Jon Parise <parise@pobox.com>

This code is licensed under the GNU Public License.
See the file COPYING in this directory.


----------------------
Requirements for Horde
======================

 * PHP 4, as recent a version as possible, with gettext enabled.
 * A web server, preferably an SSL web server so that Horde modules can
   use a secure connection.
 * A working session backend for PHP 4 sessions.


------------
Installation
============

Currently there is one way to configure Horde out of the box,
and that's manually.  If you install the IMP module as well, you
have a couple new options.  (Please see the INSTALL file that comes
with IMP for more information).

The following are notes from Scott Martin <martin@math.ohiou.edu> on
how he successfully installed Horde/IMP.

I cleaned off my machine twice and did fresh installs of Red Hat Linux
7.0, PHP, Horde, IMP, Turba, etc. in order to write this document. I also
started with a minimal install. This document does not cover any installs
involving RPM's. I downloaded the source on each package and installed
from there. This is so those who don't have the ability to use RPM's can
still benefit from this document.

---------------------
Prerequisite Packages
=====================

The following are required to get PHP, Apache and the PHP extensions 
configured and made: autoconf, automake, bison, cvs, flex, gcc, libtool,
make and tar. Please make sure you have all of these programs installed
on your box before you proceed with this document.

In order to take full advantage of everything that Horde and IMP have to
offer, I have made a list of every package that they could possibly use
and a URL to obtain the latest release of each package. I suggest you
grab these packages before you go any further with the install process:


Web Servers
-----------

Apache - http://httpd.apache.org/

Secure Server: (This is optional. If you don't want secure <https>
    connections, leave it out.)

mod_ssl - http://www.modssl.org/
OpenSSL - http://www.openssl.org/  - This is a dependency for mod_ssl,
    but you may want to use it for LDAP also.


Scripting Languages
-------------------

PHP 4 - http://www.php.net/ - Don't download a package. You'll have to
    obtain the latest source code using CVS. Instructions below.


PHP Extensions
--------------

mm - http://www.engelschall.com/sw/mm/ - Shared memory library for both
    PHP and mod_ssl
IMAP - http://www.washington.edu/imap/ - Download the file called
    c-client.tar.Z
LDAP - http://www.openldap.org/
Berkeley DB - http://www.sleepycat.com/ - Required for LDBM in LDAP.
mcrypt - http://mcrypt.hellug.gr/index.html - Download the libmcrypt file.
MySQL - http://www.mysql.com/ - Download the binaries for your OS. Not
    the source!
mcal - http://mcal.chek.com/ - Grab both libmcal file and mcaldrivers file.
FTP - (just include --enable-ftp command line on PHP configure)
gettext - http://www.gnu.org/software/gettext/gettext.html
XML - (PHP has XML libraries included. No need to install anything)
zlib - http://www.info-zip.org/pub/infozip/zlib/


External Binaries
-----------------

sendmail - http://www.sendmail.org/
ispell - http://fmg-www.cs.ucla.edu/fmg-members/geoff/ispell.html
    Note: No development has been done on ispell since 1995. Try:
aspell - http://aspell.sourceforge.net/ - A more intelligent ispell
pspell - http://pspell.sourceforge.net/ - Required if you install aspell
wvHtml - http://www.wvware.org/
png - http://www.libpng.org/pub/png/ - Required for wvHtml
ImageMagick - http://www.wizards.dupont.com/cristy/ImageMagick.html
    Required for wvHtml
freetype - http://www.freetype.org - Required for wvHtml
libwmf - http://wvware.sourceforge.net/libwmf.html - Required for wvHtml
xlHtml - http://www.xlhtml.org/
tar - (Hopefully this comes with your operating system)
GnuPG - http://www.gnupg.org/
RPM - http://www.rpm.org/
DPKG - http://www.debian.org/Packages/stable/base/dpkg.html
zipinfo -


--------------------------------
Installing Prerequisite Packages
================================

First off, I am installing all of these programs as user 'root' so as to
avoid authorization problems. Place all of the archives for the above
programs in one directory (I used /root).

Install these in any order you want. I'll do it in alphabetical order.


UW-IMAP c-client
----------------

"cd" to the directory containing your source files (I used /root):

cd /root

Untar the source file: tar -zxvf c-client.tar.Z

Rename the directory to imap. The name is too long! Type:

mv imap-2000.RELEASE-CANDIDATE.7 imap

"cd" to the imap directory: cd imap

Edit the "Makefile" file and find the proper port name for your operating
system. For most Linux installations it's "slx".

Type "make" followed by the proper port name: make slx


gettext
-------

"cd" to the directory containing your source files: cd ..

Untar the source file: tar -zxvf gettext*

"cd" the source directory: cd gettext*

Type the following commands:

./configure
make
make check
make install


libmcal and mcaldrivers
-----------------------

Make sure you grabbed both the libmcal and mcaldrivers archives from the
mcal website.

"cd" to the directory containing your source files: cd ..

Untar both files: tar -zxvf libmcal*
    tar -zxvf mcaldrivers*

"cd" to mcal-drivers directory: cd mcal-drivers

Move the mstore and icap directories inside of the libmcal directory:

mv * ../libmcal

Remove the mcal-drivers directory (it should be empty now):

cd ..
rm -frv mcal-drivers

"cd" to libmcal/mstore directory.

Type:

make

"cd" to libmcal/icap directory: cd ../icap

Type:

make

"cd" back to libmcal directory: cd ..

Change the permissions on the "configure" file. It's screwed up in the
distribution package:

chmod a+x configure

Type:

./configure --with-mstore --with-icap
make
make install

Create the local mstore directory:

mkdir /var/calendar

Set the permissions on the new directory:

chmod 1777 /var/calendar


libmcrypt
---------

"cd" to the directory containing your source files: cd ..

Untar the source: tar -zxvf libmcrypt*

"cd" to the libmcrypt directory: cd libmcrypt*

Type:

./configure --disable-posix-threads
make
make install


libxml
------

"cd" to the directory containing your source files: cd ..

Untar the source: tar -zxvf libxml*

"cd" to libxml directory: cd libxml*

Type:

./configure
make
make install


mm (shared memory)
------------------

"cd" to the directory containing your source files: cd ..

Untar the source: tar -zxvf mm*

cd to the mm directory: cd mm*

Type:

./configure (Don't use --prefix= like they suggest in the INSTALL
    file. Let the package install in its default location. This will
    save problems later when compiling PHP and Apache.)
make
make install


MySQL
-----

NOTE: You are not required to use MySQL as your Horde/IMP database. PHP
also supports other databases such as PostgreSQL and Microsoft SQL. I
chose to use MySQL because it was the original database used by the Horde
project developers. If you successfully get another database working with
Horde/IMP, please submit the installation instructions for inclusion into
this document.

"cd" to the directory containing your source files: cd ..

Untar the source: tar -zxvf mysql*

Rename the newly created directory to "mysql": (Please note, that I used
    MySQL 3.23.25-beta during this install. The actual name of the
    directory you will rename may differ.)

mv mysql-3.23.25-beta-pc-linux-gnu-i686 mysql

Move the "mysql" directory to /usr/local : mv mysql /usr/local

Type the following commands:
groupadd mysql
useradd -g mysql mysql
cd /usr/local/mysql
scripts/mysql_install_db
chown -R mysql /usr/local/mysql
chgrp -R mysql /usr/local/mysql
bin/safe_mysqld --user=mysql &

Edit the file /etc/profile and add the mysql/bin path to it. Type:

pico /etc/profile  (or type: vi /etc/profile if you don't have pico)

Here is what my "path" line in the file looked like before editing:

PATH="$PATH:/usr/X11R6/bin"

and after:

PATH="$PATH:/usr/X11R6/bin:/usr/local/mysql/bin"

Save the file and exit the editor.

The following lines are for Red Hat Linux to provide automatic startup at
boot time for MySQL. Your operating system may differ:

cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod a+x /etc/rc.d/init.d/mysqld
ln -s /etc/rc.d/init.d/mysqld /etc/rc.d/rc2.d/S90mysqld
ln -s /etc/rc.d/init.d/mysqld /etc/rc.d/rc3.d/S90mysqld
ln -s /etc/rc.d/init.d/mysqld /etc/rc.d/rc4.d/S90mysqld
ln -s /etc/rc.d/init.d/mysqld /etc/rc.d/rc5.d/S90mysqld


OpenLDAP
--------

"cd" to the directory containing your source files: cd ..

Untar the source: tar -zxvf openldap*

In order to get the source to compile with the default "./configure", we
have to install the LDBM backend first.

NOTE: You are not required to use Berkeley DB for your LDBM backend. There
are other programs which will work. I chose Berkeley DB because it is the
most commonly used LDBM backend. See the OpenLDAP installation
instructions for information on other backends that you can use.

"cd" to the directory containing your source files: cd ..

Untar the DB source: tar -zxvf db*

"cd" to the DB directory: cd db*

"cd" to the build_unix directory: cd build_unix

Type the following:

../dist/configure
make
make install

Note: If you want your LDAP to have SSL support, you need to go to the
section labeled "OpenSSL:" and install OpenSSL before you go any
further.

Now "cd" back to the openldap directory: cd /root/openldap*

If you installed Berkeley DB and OpenSSL your next commands will be:

CPPFLAGS="-I/usr/local/BerkeleyDB.3.1/include -I/usr/local/ssl/include" \
LDFLAGS="-L/usr/local/BerkeleyDB.3.1/lib -L/usr/local/ssl/lib" \
./configure
make depend
make
make install


OpenSSL
-------

"cd" to the directory containing your source files: cd ..

Untar the source: tar -zxvf openssl*

"cd" to the openssl directory: cd openssl*

Type the following:

./config
make
make test
make install


zlib
----

Note: My Red Hat Linux initial setup already had zlib installed. However,
if you are using Red Hat, you need to install the zlib-devel rpm also in
order for the zlib extension to build with PHP. I went ahead and
uninstalled the RPM's so I could build from source.

"cd" to the directory containing your source files: cd ..

Untar the zlib source: tar -zxvf zlib*

"cd" to the zlib directory: cd zlib

Type the following:

./configure
make
make install


Apache and PHP
--------------

"cd" to the directory containing your source files: cd ..

Untar Apache source: tar -zxvf apache*

Rename the apache source directory to "apache":

mv apache_1.3.14 apache

"cd" to the apache directory: cd apache*

Type:

./configure

This will setup enough of a preliminary configuration to allow you to
build PHP. We will come back and reconfigure apache again later.

"cd" back to the directory holding the archives: cd ..

Login to the PHP CVS repository. Use phpfi as the password. Type this
command:

cvs -d :pserver:cvsread@cvs.php.net:/repository login

Obtain the PHP 4.0 CVS tree. Type these commands:

cvs -d :pserver:cvsread@cvs.php.net:/repository co php4
cd php4

Login to the Zend CVS repository. Use zend as the password. Type this
command:

cvs -d :pserver:cvsread@cvs.zend.com:/repository login

Obtain the Zend and TSRM (Thread Safe Resource Manager) CVS tree. Type
this command:

cvs -d :pserver:cvsread@cvs.zend.com:/repository co Zend TSRM

Configure PHP. The following command will give you the proper support for
all of the programs we installed above, but I suggest you type
"./configure --help" and look over all of the options you can use:

./configure --with-zlib --with-mm --with-mysql=/usr/local/mysql \
--with-mcal=../libmcal --with-ldap --with-imap=../imap \
--with-gettext --enable-ftp --with-db3=/usr/local/BerkeleyDB.3.1 \
--with-apache=../apache --with-mcrypt

Now type:

make
make install

If you are NOT installing mod_ssl, skip this next section:

"cd" back to the directory the archives are stored in: cd ..

Untar the mod_ssl source: tar -zxvf mod_ssl*

"cd" to the mod_ssl directory: cd mod_ssl*

Type:

./configure --with-apache=../apache

If you are NOT installing mod_ssl, start again here:

cd ../apache

EAPI_MM=/usr/local ./configure \
--activate-module=src/modules/php4/libphp4.a \
--enable-module=ssl (Leave this line out if you are NOT installing mod_ssl.)

make
make certificate TYPE=custom  (Leave this line out if you are NOT
    installing mod_ssl)
make install
/usr/local/apache/bin/apachectl start  (or startssl for mod_ssl)
cp /usr/local/apache/bin/apachectl /init.d/httpd
cd /etc/rc.d
ln -s ../init.d/httpd rc2.d/S99httpd
ln -s ../init.d/httpd rc3.d/S99httpd
ln -s ../init.d/httpd rc4.d/S99httpd
ln -s ../init.d/httpd rc5.d/S99httpd


----------------------------------
Installing Horde and IMP using CVS
==================================

Well, if you made it this far, your web server is up and running and so is
PHP. We need to grab the Horde and IMP packages from CVS. Let's get
started:

First, "cd" to the Apache web root. This is where we'll put the Horde and
IMP directories.

Type:

cd /usr/local/apache/htdocs
cvs -d :pserver:cvsread@cvs.horde.org:/cvs/horde login

You will be asked for a password. Type: horde
then type:

cvs -z3 -d :pserver:cvsread@cvs.horde.org:/cvs/horde co horde
cd horde
cvs -z3 -d :pserver:cvsread@cvs.horde.org:/cvs/horde co imp
cvs -z3 -d :pserver:cvsread@cvs.horde.org:/cvs/horde co turba
ln -s /usr/local/apache/htdocs/horde /horde
ln -s /usr/local/apache/htdocs/horde/imp /imp
ln -s /usr/local/apache/htdocs/horde/turba /turba

Now, we have the Horde, IMP and Turba source. Let's put our default
configuration files into place. Type:

cd /horde/config
cp horde.php.dist horde.php
cp mime.php.dist mime.php
cp registry.php.dist registry.php
cp html.php.dist html.php
cp modules.php.dist modules.php
cd /imp/config
cp conf.php.dist conf.php
cp prefs.php.dist prefs.php
cp html.php.dist html.php
cp servers.php.dist servers.php
cd /turba/config
cp conf.php.dist conf.php
cp html.php.dist html.php
cp sources.php.dist sources.php

Before we test horde, you need to edit httpd.conf in
/usr/local/apache/conf and uncomment the 4 'AddType' lines related to
PHP3 and PHP4. Also find the line that says:

DirectoryIndex index.html

and change it to say:

DirectoryIndex index.html index.php index.php3

Save the file and exit your editor.

You need to copy the file "php.ini-dist" which is in the directory where
you are storing the PHP CVS to "php.ini" in /usr/local/lib. For me, the
command was:

cp /root/php4/php.ini-dist /usr/local/lib/php.ini

Next, edit the php.ini file and change the line:

magic_quotes_gpc        =       On

To:

magic_quotes_gpc        =       Off


ln -s /usr/local/apache/htdocs/horde /horde
Also, change the following line
from:

include_path =  ; UNIX: "/path1:/path2"  Windows: "\path1;\path2"

To:

include_path = "/usr/local/lib/php"

Save the file and exit your editor, then type:

/etc/rc.d/init.d/httpd restart

This will restart the web server with the above changes and now you are
ready to test horde. Go to your web browser and point it to:

http://example.com/horde/test.php

Hopefully, your PHP setup passed all the required tests in test.php and
you are ready to move on to configuring Horde, IMP and Turba so you can
use them.


-----------------
External Binaries
=================

NOTE: You do not have to install the following items for Horde, IMP and
Turba to work. They are optional. These are the programs that IMP can use
to show attachments to your emails such as Microsoft Word documents,
Microsoft Excel documents, RPM packages, etc.


DPKG
----

Extremely simple to install! Download the binary package for your type of
system from ftp://ftp.debian.org/debian/project/dpkg/. For Red Hat, I
downloaded dpkg-1.6.15_i386.nondebbin.tar.gz.

Now, just switch to your root directory: cd /

Untar the archive: tar -zxvf /(archive_directory)/dpkg*.gz

That's it. It's installed!


GnuPG
-----

"cd" to the directory containing your source files (I used /root):

cd /root

Untar the source: tar -zxvf gnupg*

"cd" to the source directory: cd gnupg*

Type:

./configure
make
make check
make install
gpg --gen-key


aspell
------

"cd" to the directory containing your source files: cd ..

We have to install the required pspell library first:

Untar the source: tar -zxvf pspell*

"cd" to the source directory: cd pspell*

To install the library simply type

./configure
make
make install

Then install at least one pspell module. You can find more information
about available modules from the Pspell home page.

After all the pspell modules are installed

cd modules
./add-modules
cd ..
make
make install

Which will link in the pspell modules.

Now, to install aspell, "cd" back to the aspell source directory:

cd ..\aspell*

Type:

./configure
make
make install


ispell
------

This package is extremely old and I honestly cannot figure out how to
build it under Linux. I will update this section when I do. If you can
build it, please submit the installation instructions to me.


xlHtml
------

"cd" to the directory containing your source files: cd ..

Untar the source: tar -zxvf xlHtml*

"cd" to the source directory: cd xlHtml*

Type:

./configure
make
make check
make install


wvHtml
-------

"cd" to the directory containing your source files: cd ..

You have to install the prerequisites for wvHtml first. We'll start with
freetype:

NOTE: Do NOT install the version 2 Beta of freetype. They have changed
libttf to libfreetype which will cause libwmf to not find freetype.

Untar the truetype source: tar -zxvf freetype*

"cd" to the source directory: cd freetype*

Type :

./configure
make
make install

Now let's install libwmf.

Note: In my initial installation of Red Hat, I already had Xpm installed,
which is required for libwmf. However, libwmf also requires the Xpm header
files, which are in the rpm package XFree86-devel. I had to install this
package from the Red Hat CD-ROM. If you do not have this luxury, you will
have to install the XPM package from: ftp://ftp.x.org/contrib/libraries

"cd" back to the directory where the archives are stored: cd ..

Untar the souce: tar -zxvf libwmf*

"cd" to the libwmf directory:

Type:

./configure --with-ttf=/usr/local
make
make install

Next, we install libpng:

"cd" back to the directory where the archives are stored: cd ..

Untar the source: tar -zxvf libpng*

"cd" to the source directory: cd libpng*

You are probably going to have to read the installation instructions from
the distribution here, because you have to copy the proper "Makefile" from
the "scripts" directory to be able to install. I used "makefile.gcmmx".
Here are the commands I used to install:

cp scripts/makefile.gcmmx Makefile
make test
make install

Onward to ImageMagick install:

NOTE: I had problems getting the pre-compile binary packages to work
correctly, so I downloaded the source and built it. The following
instructions assume you are building from source:

"cd" back to the directory where the archives are stored: cd ..

Untar the source: tar -zxvf Image*

"cd" to the source directory: cd Image*

Type:

./configure --with-xpm=/usr/X11R6 --with-ttf=/usr/local \
--with-Magick=/usr/local
make
make install


--------------------------------------------------
Adding External Binaries To The IMP Configuration File
======================================================

Edit the conf.php file and add the paths to all of the external binaries
that we installed above:

cd /imp/config
pico conf.php (or use vi if you don't have the pine package installed)

Here is what the External Utilities section of IMP's conf.php looked like
after I made the changes:

/**
 ** External Utilities
 **/
$conf['utils']['spellchecker'] = '/usr/local/bin/aspell';
$conf['utils']['wordviewer'] = '/usr/local/bin/wvHtml';
$conf['utils']['excelviewer'] = '/usr/local/bin/xlHtml';
$conf['utils']['tar'] = '/bin/tar';
$conf['utils']['gpg'] = '/usr/bin/gpg';
$conf['utils']['rpm'] = '/bin/rpm';
$conf['utils']['dpkg'] = '/usr/bin/dpkg';
$conf['utils']['unzip'] = '/usr/bin/zipinfo';  # or: '/usr/bin/unzip -Z';


-----------------------------------------
Setting Up The Horde Database Under MySQL
=========================================

First of all, it is very important that you change the MySQL password for
the user 'root'. If you haven't done so already, type:

    mysqladmin [ -h <host> ] -u root -p password <new-password>

Login to MySQL by typing:

    mysql [ -h <host> ] -u root -p

Enter the password for root.

Now, create a database named "horde" and switch to it:

    mysql> create database horde;

    mysql> use horde;

Then set up the two tables called "user_webmail_prefs" and
"connections". You can name these tables anything you like as long as you
use the same names when you alter the conf.php file in the /imp/config
directory (see instructions below). Type:

    mysql> create table user_webmail_prefs (uid char(32) not null,
        pref_name char(32) not null, pref_value text null,
        primary key (uid, pref_name));

    mysql> create table connections (addr varchar(8) not null,
        conn_id varchar(32) not null, conn_ts int(14) not null,
        primary key (addr, conn_id));

Next, create the user for the horde database. You can call this user any
name and give this user any password you want, just make sure that you
use the same name and password when you alter conf.php in /imp/config.
For this example, I will call the user "hordemgr" and make the password
"hordepass". Type:

    mysql> use mysql;

    mysql> replace into user ( host, user, password )
        values ('localhost', 'hordemgr', password('hordepass'));

    mysql> replace into db ( host, db, user, select_priv, insert_priv,
        update_priv, delete_priv, create_priv, drop_priv )
        values ('localhost', 'horde', 'hordemgr', 'Y', 'Y',
        'Y', 'Y', 'Y', 'Y');

    mysql> flush privileges;

Exit MySQL by typing:

    mysql> quit

Now that MySQL is setup with the Horde database and the database user, we
can configure IMP to use MySQL. Edit conf.php in the /imp/config directory
with either the pico or vi editor and make the following changes:

Change:

/**
 ** Preference System Settings
 **/
$conf['prefs']['driver'] = 'none';
$conf['prefs']['params'] = array();

To:

/**
 ** Preference System Settings
 **/
$conf['prefs']['driver'] = 'sql';
$conf['prefs']['params'] = array();
$conf['prefs']['params']['phptype'] = 'mysql';
$conf['prefs']['params']['hostspec'] = 'localhost';
$conf['prefs']['params']['username'] = 'user';
$conf['prefs']['params']['password'] = 'pass';
$conf['prefs']['params']['database'] = 'horde';
$conf['prefs']['params']['table'] = 'user_webmail_prefs';

Change:

/**
 ** Connection Tracking
 **/
$conf['connections']['track'] = false;
$conf['connections']['driver'] = 'sql';
$conf['connections']['params'] = array();

To:

/**
 ** Connection Tracking
 **/
$conf['connections']['track'] = true;
$conf['connections']['driver'] = 'sql';
$conf['connections']['params'] = array();
$conf['connections']['params']['phptype'] = 'mysql';
$conf['connections']['params']['hostspec'] = 'localhost';
$conf['connections']['params']['username'] = 'user';
$conf['connections']['params']['password'] = 'pass';
$conf['connections']['params']['database'] = 'horde';
$conf['connections']['params']['table'] = 'connections';


-----------------------
Getting Help with Horde
=======================

There is an online, user-editable FAQ at http://faq.horde.org/. Use it,
and add anything that you run into to it, so that others can benefit from
everything you figure out, and vice versa...

There is a web page for Horde at http://www.horde.org/. There are also
three mailing lists. One is the general IMP list, for feature requests,
bug questions, discussion, etc. It is imp@lists.horde.org, and you can
subscribe by sending an emp ty email to imp-subscribe@lists.horde.org.

The second list is the developers list at dev@lists.horde.org, and it is
targeted at people who have serious feature requests or are trying to
extend or debug IMP and other Horde modules. You may subscribe to it by
sending an empty mail to dev-subscribe@lists.horde.org.

The third list is the CVS list at cvs@lists.horde.org, and most of the mail
on it is automatically generated announcements of changes to the CVS code.
Developers should definitely be on it, and anyone else who is curious
about the status of Horde development is welcome to join it by sending
email to cvs-subscribe@lists.horde.org.

There are also web archives of all the mailing lists. See:

    http://horde.tdyc.com                                    


------------
Found A Bug?
============

If you have found a bug you can add it to the Bugzilla bug system
we have setup for the Horde projects.  You can find it at:

    http://bugs.horde.org

Please verify that the bug is not already in the database and also
please be as descriptive as possible.  Fill out all the options.  You may
think it's something that affects everyone, but a lot of times it's 
specific to a browser or operating system.  So please be thorough.  In
the case of Bug Tracking, there is never too much information or
documentation.


-----------------------------------------------------------------------
We hope you find Horde useful and easy to use.  We thank you for taking
the time to try it and if you ever have any questions, just ask.

Enjoy,

The Horde Team
horde@lists.horde.org
-----------------------------------------------------------------------
