aboutsummaryrefslogtreecommitdiffstats
path: root/README
blob: 56b4e1820fe3129e7605bbe2d11fa609d4770dc4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
Evolution is the integrated mail, calendar and address book suite from
Ximian, Inc.

See http://www.ximian.com/products/evolution for more information.

If you are using Evolution, you may wish to subscribe to the Evolution
users mailing list.  If you are interested in contributing to
development on it, you should certainly subscribe to the Evolution
Hackers mailing list.  Visit

    http://developer.ximian.com/community/lists.html

to subscribe or view archives of the Ximian mailing lists.

If you are planning to work on any part of Evolution, please send mail
to the mailing list first, to avoid duplicated effort (and to make
sure that you aren't basing your work on interfaces that are expected
to change).

There is also a #evolution IRC channel on irc.gnome.org.

Help for Evolution is available in the user manual (select "Help" from
the menu after running the application), at the Ximian knowledge base
(http://support.ximian.com), in the Evolution man page (run "man
evolution" at the command line), and in the --help strings (run
"evolution --help" at the command line).

The rest of this file is dedicated to building Evolution.


DEPENDENCIES
------------

In order to build Evolution you need to have the full set of GNOME 2
or GNOME 2.2 development libraries installed.

GNOME 2 comes with most of the modern distributions, so in most cases
it should be enough to just install all the devel packages from your
distribution.  If, on the other hand, you want to build GNOME 2 from
source, please refer to this page:

    http://gnome.org/start/2.2/notes/rninstallation.html

Please make sure you have the most recent versions of the libraries
installed, since bugs in the libraries can cause bugs in Evolution.

Additional dependencies, besides the stock GNOME libraries (the
dependencies should be compiled in the order they are listed here):

    * [If compiling against GNOME 2.0] libgnomeprint and
          libgnomeprintui 2.2.0 or later

      These library come with GNOME 2.2 installations, but not
      with GNOME 2.0 ones.  The source code can be downloaded from
      the following locations:

         ftp://ftp.gnome.org/pub/gnome/sources/libgnomeprint
         ftp://ftp.gnome.org/pub/gnome/sources/libgnomeprintui

    * [If compiling against GNOME 2.2] libgnomecanvas 2.2.0.2 or
          later

      If you have a GNOME 2.2 installation, you need to upgrade
      libgnomecanvas to this version (or a later one), since
      Evolution exposes a bug in the older versions of the library
      which causes a crash.

      If you have a GNOME 2.0 installation, libgnomecanvas 2.0 is
      safe to use.

    * gtkhtml 3.0.1 or later

         ftp://ftp.gnome.org/pub/gnome/sources/gtkhtml

    * gal 1.99.8 or later

         ftp://ftp.gnome.org/pub/gnome/sources/gal

    * Berkeley's libdb 3.1.17

      It is important to use *exactly* this version, and not a
      later one, to compile Evolution.  Please check the "Building
      Berkeley DB" section below for more information.

         ftp://ftp.ximian.com/pub/source/evolution

    * [Optional] Mozilla NSPR/NSS libraries

      These are needed if you want to compile Evolution with SSL
      support.

         http://www.mozilla.org/

          Many distributions ship these as Mozilla development
          packages.

    * [Optional] gnome-pilot 2.0 or later

      This is only necessary if you want to be able to synchronize
      your Palm device with Evolution.

         ftp://ftp.gnome.org/pub/gnome/sources/gnome-pilot
         ftp://ftp.gnome.org/pub/gnome/sources/gnome-pilot-conduits

    * [Optional] gnome-spell 1.0.1 or later

      This is only necessary if you want to have the spell
      checking functionality in Evolution's message composer.

         ftp://ftp.gnome.org/pub/gnome/sources/gnome-spell


COMPILING BERKELEY DB
---------------------

    --- IMPORTANT WARNING ---

    The on-disk format of DB files has been changing between versions 2, 3
    and 4.  Also, because of the libdb API, there is no way to easily
    handle the different formats from within the application.  For this
    reason, Evolution has chosen to use one specific version of the
    library (version 3) and stick to it, so that users do not need to
    convert their addressbook files to use them with different version of
    Evolution.

    That's why Evolution REQUIRES libdb 3.1.17, and NO OTHER VERSION.

    If you force the check to accept a version different from 3.1.17, your
    binary of Evolution will be using a different format from the chosen
    one; this means that it will not be able to read addressbook databases
    created by other versions of Evolution which were compiled in the
    standard way.  Also, we DO NOT GUARRANTEE that Evolution will work
    with different versions of libdb at all, even if it can be trivially
    made to compile against them.

    SPECIAL NOTE FOR BINARY PACKAGERS:

    If you are making binary packages for end-users (e.g. if you are a
    distribution vendor), please statically link Evolution to Berkeley
    DB 3.1.17, as mandated by the configure.in check.  DO NOT patch
    configure.in to work around the check.  Forcing the check to link
    to a different version of the library will only give headaches and
    pain to your users, who will see their addressbook disappear and
    will complain to us (the Evolution team) about losing their data.

    Besides, libdb will be linked statically, which means that your
    distribution doesn't actually need to ship DB 3.1.17 itself
    separately.

    The Evolution team will be infinitely grateful for your
    co-operation.  Thanks!

If you don't have version 3.1.17 installed on your system or Evolution
doesn't detect it for some reason, here is a way to get Evolution to
link to it without messing up your system installation.

  * Install the content of the tarball somewhere *other* than the
    evolution source tree, e.g: NOT evolution/db-3.1.17 .

  * Compile according to instructions, but installing into some custom
    prefix, for example:

      ../dist/configure --prefix=/home/user/berkeleydb-3.1.17

  * Configure Evolution specifying that it has to look for the DB
    library there, for example:

      ./configure --prefix=/opt/gnome
      --with-db3-includes=/home/user/berkeleydb-3.1.17/include
      --with-db3-libs=/home/user/berkeleydb-3.1.17/lib

Evolution links statically to the library, so after you have compiled
Evolution you can remove the installed library from your system.


CONFIGURING EVOLUTION
---------------------

First you have to decide whether you want to install Evolution (and
its dependencies) into the same prefix as the rest of your GNOME
install, or into a new prefix.

Installing everything into the same prefix as the rest of your GNOME
install will make it much easier to build and run programs, and easier
to switch between using packages and building it yourself, but it may
also make it harder to uninstall later.  Also, it increases the chance
that something goes wrong and your GNOME installation gets ruined.

If you want to install in a different prefix, you need to do the
following things:

    * Set the PKG_CONFIG_PATH environment variable to contain a
          colon-separated list of all the pkg-config directories that
          will be involved in the build.  This basically means a list
          of $prefix/lib/pkgconfig directory names, where $prefix is
          the prefix where a library is installed.

      For example, if you have GNOME installed in /usr and you
          are installing Evolution and its dependencies in
          /opt/evolution, you want to do something like the following
          (assuming you are using Bash):

          export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/opt/evolution/lib/pkgconfig

    * Edit the bonobo-activation-config.xml file (which is
          normally found in /etc/bonobo-activation/) to include the
          location where you are installing Evolution.

      In the example given above (GNOME in /usr, Evolution and
          dependencies in /opt/evolution), your
          bonobo-activation-config.xml will have to look like this:

          <?xml version="1.0"?>
          <oafconfig>
            <searchpath>
              <item>/usr/lib/bonobo/servers</item>
              <item>/opt/evolution/lib/bonobo/servers</item>
            </searchpath>
          </oafconfig>

    * Pass an appropriate --prefix parameter to the configure
          scripts of Evolution and its dependencies, eg:

          ./configure --prefix=/opt/evolution

More information on how to use the configure script is available in
the INSTALL file which is part of the Evolution tarball.


OPTIONAL FEATURES
-----------------

Some optional features can be enabled at compilation time by passing
appropriate flags to the configure script:

    * GNOME Pilot support.

      Assuming you have installed gnome-pilot, add the following
      options:

        --with-pisock=<prefix> --enable-pilot-conduits=yes

      Where <prefix> is the location where pilot-link (a package
      that gnome-pilot depends on) was installed.

    * SSL support.

      Make sure you have Mozilla's NSS nad NSPR libraries
      installed and pass the following flag:

        --enable-nss