7.1. Configuring Evolution

First, we have to configure Evolution, again making sure we point to the pilot-link in /usr/local, and respecting that GNOME itself may be installed in another location on your system, in most cases /usr, but you can find out by using 'glib-config --prefix' (single quotes this time).

 # Change to the Evolution directory and configure evolution   
 hacker:~/build/gnome-pilot-conduits-0.10$ cd ../evolution-1.4.5
 hacker:~/build/evolution-1.4.5$./configure --prefix=`glib-config --prefix`  \
 # backticks around glib-config, NOT single-quotes   \
 --with-pisock=/usr/local                            \
 --enable-pilot-conduits=yes                         \
 --enable-pilotlinktest --enable-gtk-doc             \
 --enable-openssl --with-db3=/usr/local              \
 --with-catgets                                      \

Evolution has a LOT of dependancies, so you'll need to make sure you have all of them installed and configured in the right places. Here are some common errors and how to get past them:

 checking for flex... no
 checking for lex... no
 checking for yywrap in -lfl... no
 checking for yywrap in -ll... no
 checking for bison... no
 checking for byacc... no
 configure: error: You need bison to build Evolution

Solution: Install the 'flex' and 'bison' packages for your distribution and re-run configure again with the same parameters as before.

 checking for db3 compiler flags... -I/usr/local/include
 checking db.h usability... yes
 checking db.h presence... yes
 checking for db.h... yes
 checking db3 header version... configure: error: Found db.h is not version 3.1.17

Solution: Install the 'db3' version 3.1.17 package from SleepyCat Software. To do this, download the version from the link provided and compile it as follows:

 hacker@druid:~/build$ tar zxvf db-3.1.17.tar.gz
 hacker@druid:~/build$ cd db-3.1.17/build_unix
 hacker@druid:~/build/db-3.1.17/build_unix$ ../dist/configure --prefix=/usr/local
 hacker@druid:~/build/db-3.1.17/build_unix$ make

'su - root' as before, and install. It should then put the proper libraries into '/usr/local'.

After successfully buildng db3 and installing db3 into '/usr/local', re-run 'configure' for Evolution again with the same parameters as before, and it should now report the following:

 checking for db3 compiler flags... -I/usr/local/include
 checking db.h usability... yes
 checking db.h presence... yes
 checking for db.h... yes
 checking db3 header version... 3.1.17
 checking for db3 library name... /usr/local/lib/libdb.a
 checking that db3 library version matches header version... yes

You'll notice above that I have the '--with-db3' pointed to '/usr/local' as well. My Debian system had db3 installed, but it is a later version, so I had to install a previous version, as Evolution requires an older version currently.

Now configure should proceed further, but may halt again with the following error:

 checking for libgtkhtml-3.0... Package libgtkhtml-3.0 was not found in the pkg-config search path.
 Perhaps you should add the directory containing `libgtkhtml-3.0.pc'
 to the PKG_CONFIG_PATH environment variable
 No package 'libgtkhtml-3.0' found

Solution: Install the required libgtkhtml development packages for your system. These may be named 'libgtkhtml3.0-dev' or 'gtkhtml-dev', depending on your distribution. You want the package that contains the file called 'libgtkhtml-3.0.pc'. After locating and installing the required package and re-running configure for evolution again, you should see the following:

 checking for libgtkhtml-3.0... yes

The next error in line will likely be with 'libsoup'. As before, locate and install the 'libsoup' and 'libsoup-devel' pacakges for your system. The error will resemble the following:

 checking for gthread-2.0 gconf-2.0 libxml-2.0 libbonoboui-2.0 libglade-2.0 
 gal-2.0 >= 1.99.8 libgnomeui-2.0 libgnome-2.0 libgnomecanvas-2.0 
 soup-2.0 ... Package soup-2.0 was not found in the pkg-config search path.
 Perhaps you should add the directory containing `soup-2.0.pc'
 to the PKG_CONFIG_PATH environment variable
 No package 'soup-2.0' found

After installing 'libsoup' and 'libsoup-devel' (or whatever packages contain the 'soup-2.0.pc' file), the configuration script should continue further with this successful message:

Also, later on in the config, you should see the following successful tests:

 checking if pilot-link handles UTF-8 conversions... yes
 checking for gnome-pilot-2.0 ... yes

One common mistake is not pointing to the right pilot-link build (note the '--with-pisock' path in the above configure command), which will cause the following error to occur:

 checking for pi-version.h... yes
 checking for pi_accept in -lpisock... yes
 ./configure: line 11499: -lpisync: command not found
 checking for pilot-link version >= 0.11.4... yes (found 0.9.4/*something*/)
 checking if pilot-link handles UTF-8 conversions... no
 configure: error: evolution requires pilot-link to have working UTF-8 conversion routines

If you get this error, there are two ways around it:

  1. Make sure you are pointing to the right pilot-link, which we built using the '--with-libiconv' argument earlier.

  2. Add some values to the LDFLAGS environment so that we can force it at configure time as follows:

     # This is all one line, using \ here to continue it and wrap across
     # multiple lines, but all of this must be run on one line
     LDFLAGS="-L/usr/local/lib -lpisync"                       \ 
     ./configure --prefix=`glib-config --prefix`               \
     # backticks around glib-config, NOT single-quotes \ 
     --with-pisock=/usr/local                  \
     --enable-pilot-conduits=yes               \
     --enable-pilotlinktest --enable-gtk-doc   \
     --enable-openssl --with-db3=/usr/local    \
     --with-catgets                            \

Successful configuration should terminate with the following:

      Evolution has been configured as follows:
			   
 Mail Directory:   /var/spool/mail, world writable
 LDAP support:     no
 Pilot conduits:   yes
 Kerberos 4/5:     no/no
 SSL support:      no
 IPv6 support:     no
 Dot Locking:      yes
 File Locking:     fcntl
 Gtk-doc:          yes  
			   
Programming documentation files will be built automatically.

If you see that 'SSL support' returns 'no', you must install the proper openssl headers and libraries for your distribution. It might have slipped past in configure too quick, but you probably passed the warnings that looked like the following:

checking for OpenSSL includes... ""
checking openssl/ssl.h usability... no
checking openssl/ssl.h presence... no
checking for openssl/ssl.h... no
checking openssl/x509.h usability... no
checking openssl/x509.h presence... no
checking for openssl/x509.h... no
checking for dlopen in -ldl... yes
checking for OpenSSL libraries... no

On Debian, these are in the 'openssl' and 'libssl-dev' packages. Other distributions may have different package names. If you get them installed properly, you should now see the following:

      Evolution has been configured as follows:
			   
 Mail Directory:   /var/mail, writable by group mail
 LDAP support:     no
 Pilot conduits:   yes
 Kerberos 4/5:     no/no
 SSL support:      yes (OpenSSL)
 IPv6 support:     no
 Dot Locking:      yes
 File Locking:     fcntl
 Gtk-doc:          yes  
			   
Programming documentation files will be built automatically.

If you get this far, after satisfying all of the other dependancies, you can proceed onto typing 'make' to build Evolution.

Note, this will take quite a long time, so sit back watch television, answer some email, make a few cups of coffee..