Evolution is the integrated mail, calendar and address book distributed suite from Helix Code, Inc. See http://www.helixcode.com/apps/evolution.php3 for more information. Note that Evolution is still beta. This means it may delete all of your mail if you give it the chance. If you are interested in hacking on Evolution, you should subscribe to the Evolution mailing list. Send mail to "evolution-request@helixcode.com" with the word "subscribe" in the body of the message. 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 a mailing list archive available at http://lists.helixcode.com/archives/public/evolution/ There is also an #evolution IRC channel on irc.gnome.org. HOW TO BUILD EVOLUTION ---------------------- *** READ THIS BEFORE YOU START BUILDING ANYTHING! *** Evolution depends on a large number of unreleased and rapidly-changing libraries. Some of these libraries in turn depend on other unreleased and rapidly-changing libraries. Building Evolution is HARD, and it's going to stay hard until all of the libraries it depends on stabilize, and there's nothing we can do to make it any easier until then. General Principles ------------------ 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, but may make it harder to uninstall later. If you want to install into the same prefix as the rest of GNOME, type: gnome-config --prefix gnome-config --sysconfdir and remember the answers, and pass them to "configure" and "autogen" when building the other packages you need. Eg: ./configure --prefix=/usr --sysconfdir=/etc If you do not do this, you will need to set the GNOME_PATH environment variable (and ACLOCAL_FLAGS as well if building from CVS) to include the prefix you install into. Eg: export GNOME_PATH=/usr/local export ACLOCAL_FLAGS="-I /usr/local/share/aclocal" (Assuming your shell is bash, and you installed into /usr/local.) You need to set GNOME_PATH both during compiling AND when you run evolution. Remember also that if you're installing into an odd prefix such as /evolution, that you also need to make sure to put ${prefix}/bin in your PATH. If you install Evolution into a different prefix from OAF, you will also need to set OAF_INFO_PATH to include the directory where the oafinfo files are installed (${prefix}/share/oaf). (OAF will eventually obey the GNOME_PATH variable, but it does not do so currently.) Eg: export OAF_INFO_PATH=/usr/local/share/oaf If you are already running an oafd, you will need to kill it after setting that variable so it gets restarted later with that in its environment. Dependencies ------------ All of these libraries are available in GNOME CVS, under the given names. Most (but not all) of them are also available as tarballs on ftp.gnome.org. The (*)ed packages are available in Helix GNOME. (http://www.helixcode.com/desktop/) - gnome-xml - 1.8.7 or later in the 1.0 series, but not from the 2.0 series (If you get this from GNOME CVS, use the tag "LIB_XML_1_X".) (*) - gnome-print - 0.20 (*). The gnome-print CVS HEAD will NOT work, nor will 0.21. - gdk-pixbuf - 0.7.0 or later (*) - ORBit - 0.5.3 or later (*) - oaf - 0.5 or later *** If you are using oaf from CVS, you should use the flag *** "--disable-more-warnings" when configure, or it may fail to *** build. - gnome-vfs - 0.3 or later *** If you are using gnome-vfs from CVS, you should use the flag *** "--disable-more-warnings" when configuring, or it may fail to *** build. - bonobo - 0.17 or later *** Note that bonobo must be installed with the same --prefix as *** either gnome-libs or evolution for the Makefiles to work *** properly. - libunicode - 0.4 or later, available from http://www.pango.org/download.shtml - gconf - 0.6 or later - gtkhtml - 0.5 or later - libglade (*) If you want support for PalmPilot syncing (currently only supported by the calendar and not yet very stable/functional), you will also need the following packages: - pilot-link (*) - gnome-pilot - from CVS, with --enable-oaf The layout of the source tree is: addressbook: the Address Book UI art: graphics used by evolution calendar: the Calendar UI camel: libcamel, a messaging library used by the mailer. Camel is inspired by Sun's JavaMail (http://java.sun.com/products/javamail/) and the IMAPv4 spec (RFC 2060). composer: the message composer UI data: the .desktop file for Evolution default_user: initial Evolution config files for new users devel-docs: entirely inadequate documentation doc: more adequate documentation e-util: utility code used by various parts of Evolution filter: libfilter, a mail filtering library libibex: an indexing library used by the mailer libical: a library for the iCalendar format (RFC 2445-2446) libversit: a library for the vCard (RFC 2425-2426) and vCalendar (http://www.imc.org/pdi/vcal-10.txt) formats mail: the mail display UI shell: the Evolution shell (the main program that launches the other components) tests: some test programs tools: utilities, notably "killev", a script to kill of all of the Evolution components widgets: widgets used by Evolution, including the shortcut bar, ETable, and EText wombat: Has source code that will load in the addressbook and calendar backend, and will form the server process we'll be using sertions'>+9 * Addendum to previous commit: Remove "storage_selected" vsDan Winship2002-03-089-109/+27 * Make storages-with-toplevel-views less of a hack.Dan Winship2002-03-0817-342/+192 * Keep the storage name and display_name in EStoragePriv. (impl_get_name,Dan Winship2002-03-0713-261/+75 * Fix up GList/GSList confusion.Dan Winship2002-03-073-2/+15 * Reduce width of the copyright message so it looks prettier with the newEttore Perazzoli2002-03-072-2/+7 * CORBA stuff required for the summary to find out details about storages from ...Iain Holmes2002-03-055-2/+221 * [Fix #20234, Deleting Folder gratuitiously causes /local to open.]Ettore Perazzoli2002-03-053-4/+170 * [This gets rid of some spurious "could not find handler" messagesEttore Perazzoli2002-02-272-5/+18 * Fix license text.Ettore Perazzoli2002-02-242-6/+4 * Add year 2002 to the copyright.Ettore Perazzoli2002-02-242-2/+6 * Renamed from `destroy'. (impl_right_click): Renamed from `right_click'.Ettore Perazzoli2002-02-242-93/+146 * [Fix #3029, Offline mode should be preserved across sessions.]Ettore Perazzoli2002-02-234-8/+81 * New helper function to remove all the matching URIs from the history.Ettore Perazzoli2002-02-234-13/+85 * New. (display_uri): Call it before returning so the navigation buttonsEttore Perazzoli2002-02-234-10/+49 * [First cut at navigation (i.e. back/forward) buttons.]Ettore Perazzoli2002-02-235-6/+416 * `e_shell_folder_title_bar_set_title_clickable()', notEttore Perazzoli2002-02-234-109/+286 * Return NULL if there is no component ID for the current view.Ettore Perazzoli2002-02-222-0/+8 * Set the icons for all the "New..." menu items from the specified one inEttore Perazzoli2002-02-225-54/+97 * Don't show the folder bar and the shortcut bar in the new window.Ettore Perazzoli2002-02-216-8/+58 * Use right_click_row_path rather than selected_row_path, so clients get theNot Zed2002-01-302-1/+7 * Final cleanup for the CFLAGS and LIBS in the Makefiles.Ettore Perazzoli2002-01-283-40/+41 * Just use BONOBO_HTML_GNOME_CFLAGS and BONOBO_HTML_GNOME_LIBS forEttore Perazzoli2002-01-252-18/+14 * Add missing files. Ooops!Ettore Perazzoli2002-01-252-0/+178 * [Implement an Outlook-style "New" dropdown button. It is basicallyEttore Perazzoli2002-01-2415-191/+497 * [Patch by Michael Meeks <michael@ximian.com>.]Ettore Perazzoli2002-01-242-0/+8 * Stop the importer dialog going behind the main windowIain Holmes2002-01-212-1/+7 * [Fix #17441, Crash trying to import Multiple VCard file into LDAPEttore Perazzoli2002-01-162-6/+27 * re-order activate / de-activate to minimise flicker switching betweenMichael Meeks2002-01-152-9/+16 * updatedDamon Chaplin2002-01-121-0/+7 * handle translated timezone names.Damon Chaplin2002-01-122-2/+7 * -- Merging patches from evolution-1-0-branch.Ettore Perazzoli2001-12-204-5/+81 * [Fix #17258, shell displays splash even if Evolution is alreadyEttore Perazzoli2001-12-152-9/+17 * New helper function to create the `~/evolution/private' directory.Ettore Perazzoli2001-12-132-0/+58 * Add missing comma.Ettore Perazzoli2001-12-062-1/+5 * [Fix #7827, Switching desktops leaves the folder bar popped up.]Ettore Perazzoli2001-12-063-1/+43 * Convert folder name to locale's encoding before using it as part of theZbigniew Chyla2001-12-042-2/+9 * Fixes bug #3290.Federico Mena Quintero2001-11-302-1/+30 * Add more contributors to the box.Ettore Perazzoli2001-11-152-0/+12 * make timezone default to "UTC" rather than "".Damon Chaplin2001-11-152-1/+6 * Check for exceptions.Iain Holmes2001-11-132-1/+57 * Get the storage name if we are dragging a storage instead of a folder.Ettore Perazzoli2001-11-062-3/+23 * Fixed spacing and alignment probelms. (See bug #14281)Anna Marie Dirks2001-11-063-9/+23 * Set the shortcut name to be the folder name, not just the last componentDan Winship2001-11-062-6/+11 * Fix for #14281 (missing icons in the druids).Ettore Perazzoli2001-11-032-1/+6 * Changed the welcome message and the finishing message to be moreAnna Marie Dirks2001-11-022-7/+20 * Don't do operations on a NULL path. (updated_folder_cb,Christopher James Lahey2001-11-012-9/+22 * If the source folder is stock and the operation is GDK_ACTION_MOVE, alwaysEttore Perazzoli2001-11-012-0/+11 * Removed. (show_existing_view): Don't call it.Ettore Perazzoli2001-10-312-24/+5 * New utility function. (sleep_with_g_main_loop_timeout_callback): CallbackEttore Perazzoli2001-10-312-1/+34 * Removed. (idle_cb): Don't call it. (warning_dialog_clicked_callback):Ettore Perazzoli2001-10-312-58/+6 * If the display uri is NULL, set the view to the default.Iain Holmes2001-10-312-2/+11 * Duplicate the owner before pinging it. Fixes #13802.Ettore Perazzoli2001-10-312-0/+17 * New. (class_init): Install it. (impl_unsetOwner): Just emit theEttore Perazzoli2001-10-312-13/+48 * Connect to the "removed_folder" signal withEttore Perazzoli2001-10-312-2/+9 * If we're not at the end of the druid list, tell the druid we're going to02001-10-302-2/+20 * Require gal 0.15.99.8Joe Shaw2001-10-302-2/+2 * Slightly change the debugigng message for when the shell has disappeared.Ettore Perazzoli2001-10-302-1/+6 * Remove ping debugging messages.Ettore Perazzoli2001-10-302-5/+6 * Remove debugging message.Ettore Perazzoli2001-10-302-2/+4 * use libical-evolution.laDamon Chaplin2001-10-302-1/+5 * Ref the shell. (destroy): Unref the shell. (destroy): Free theEttore Perazzoli2001-10-293-7/+23 * Call `cleanup_delayed_selection()' as there is a slight chance that theEttore Perazzoli2001-10-292-4/+17 * Don't do the `gtk_signal_disconnect_by_func()' as it's already done inEttore Perazzoli2001-10-292-8/+22 * Set the return type of the signal handlers to GTK_TYPE_NONE.92001-10-292-3/+8 * [The following should fix #13802, crash on exit.]Ettore Perazzoli2001-10-292-4/+18 * Distribute credit equally.Jon Trowbridge2001-10-282-3/+40 * Fixing the license text.Ettore Perazzoli2001-10-2810-10/+0 * We want XFER_FOLDER not REMOVE_FOLDER!72001-10-272-1/+6 * Fix the license text to make sense.Ettore Perazzoli2001-10-27101-101/+0 * Update the licensing information to require version 2 of the GPLEttore Perazzoli2001-10-2710-20/+20 * Update the licensing information to require version 2 of the GPLEttore Perazzoli2001-10-27101-202/+202 * Remove debugging messages. (finalize_offline_hash_foreach): Likewise.Ettore Perazzoli2001-10-272-4/+6 * New member `finished' in `EShellOfflineHandlerPrivate'.Ettore Perazzoli2001-10-272-4/+38 * Implement. (class_init): Add the signal "xfer_folder" signal.Ettore Perazzoli2001-10-273-4/+40 * New, implementation for the ::async_xfer_folder method. (class_init):Ettore Perazzoli2001-10-272-3/+53 * Set ->is_initialized to %FALSE. (e_shell_unregister_all): Same here.Ettore Perazzoli2001-10-272-0/+9 * gtk_widget_show_now() the dialog. Likewise.Ettore Perazzoli2001-10-273-0/+9 * Use gtk_widget_show_now() so the stupid dialog hopefully displays all theEttore Perazzoli2001-10-272-3/+8 * Clear the folder bar label to be empty. [#12553]Ettore Perazzoli2001-10-272-0/+6 * Draw one more line.Ettore Perazzoli2001-10-272-1/+5 * Set the GtkWindow policy so that @allow_shrink, @allow_grow andEttore Perazzoli2001-10-272-0/+7 * Don't allow invalid folder names. [#12027]Ettore Perazzoli2001-10-276-46/+81 * Add accelerators for "Work Offline" and "Work Online".Ettore Perazzoli2001-10-262-2/+7 * Don't allow translators to translate "Ximian Evolution".Ettore Perazzoli2001-10-262-2/+7 * New helper function. (e_component_registry_restart_component): Use it.Ettore Perazzoli2001-10-262-15/+37 * Handle failure from XGetClassHint properly. Also, free res_name andEttore Perazzoli2001-10-262-4/+12 * Don't display an icon for storages that have subfolders.Ettore Perazzoli2001-10-262-0/+11 * #include "e-util/e-gtk-utils.h".Ettore Perazzoli2001-10-265-4/+20 * Set ->priv to NULL. (impl_operationStarted): Check for priv not beingEttore Perazzoli2001-10-262-4/+13 * Set the ->mailer to be CORBA_OBJECT_NIL in case of an exception, otherwiseEttore Perazzoli2001-10-262-0/+7 * Don't use __FUNCTION__. (evolution_wizard_set_show_finish): Likewise.Ettore Perazzoli2001-10-263-5/+16 * Add a few names to the box.Ettore Perazzoli2001-10-252-0/+8 * g_return_if_fail if the display_name is NULL. "Fixes" 11182 although thereDan Winship2001-10-252-0/+8 * Set the WMClass of the quit dialog to be different from the default one inEttore Perazzoli2001-10-252-0/+9 * New. (async_xfer_folder_callback): Use it so we get the right errorEttore Perazzoli2001-10-252-7/+30 * Get the path and the shell view instead. (rename_callback_data_free):Ettore Perazzoli2001-10-242-14/+25 * New. (rename_callback_data_free): New. (rename_cb): Rename the folderEttore Perazzoli2001-10-242-7/+57 * Handle the return codes properly, and invoke the result callback too.Ettore Perazzoli2001-10-242-0/+13 * #if 0'ed for now, per #7427.Ettore Perazzoli2001-10-242-1/+9 * Explicitly deactivate the control frame, and display the default URIEttore Perazzoli2001-10-243-2/+32 * No need to gtk_widget_show() the view anymore.Ettore Perazzoli2001-10-235-36/+99 * Remove the ping timeout.Ettore Perazzoli2001-10-232-0/+8 * Don't die if the parent window has no WMHints.Ettore Perazzoli2001-10-232-3/+7 * If the view is dead, just return FALSE. Prevents crash #12483.Ettore Perazzoli2001-10-232-22/+7 * New member `is_interactive' in `EShellPrivate'. (init): Init to %FALSE.Ettore Perazzoli2001-10-235-7/+108 * Pass the @folder_type to ::handleDrop.Ettore Perazzoli2001-10-205-3/+32 * Use EShellAboutBox. (zero_pointer): Removed.Ettore Perazzoli2001-10-205-64/+483 * Ooops. Remove stale files `e-shell-about-box.[ch]'.Ettore Perazzoli2001-10-192-2/+5 * Fix the WM problems related to the folder selection dialog beingEttore Perazzoli2001-10-196-4/+75 * Urgh. Remove stale line that caused `display_default' to be set to TRUEEttore Perazzoli2001-10-182-2/+6 * Re-set the owner on the component that raised OldOwnerHasDied.Ettore Perazzoli2001-10-182-2/+15 * Fix bug 11114Iain Holmes2001-10-162-0/+7 * Add two missing codes.Dan Winship2001-10-153-1/+14 * New function to try to activate a component when you know it's going toDan Winship2001-10-143-0/+61 * Fix strings and the importer window not drawing correctlyIain Holmes2001-10-133-13/+24 * [Fix #7643, Starting new view doesn't honor "view" settings.]Ettore Perazzoli2001-10-126-9/+35 * Also flush GDK after flushing GTK. Otherwise GTK might queue draw requestsEttore Perazzoli2001-10-122-0/+11 * [Hopefully really, finally fix #8615 and friends.]Ettore Perazzoli2001-10-124-4/+53 * Don't free the folder_command_data here. It is supposed to be freed in theEttore Perazzoli2001-10-122-1/+10 * Only invoke `progress_listener_servant_free()', no need to also doEttore Perazzoli2001-10-122-3/+9 * Don't die if the folder_bar_popup is %NULL. Fixes #10922.Ettore Perazzoli2001-10-122-1/+8 * Display the default view only if we are starting our own shell, or if theEttore Perazzoli2001-10-123-10/+35 * gr. save then commit.Dan Winship2001-10-121-3/+4 * Remove "display_name" arg from update methods. It was only there to do theDan Winship2001-10-128-30/+33 * Ooops, remove debugging message.Ettore Perazzoli2001-10-102-2/+5 * Make this a no-op if the source and the destination path are the same.Ettore Perazzoli2001-10-104-7/+35 * This is a message, not a warning! (command_work_online): This is also aJon Trowbridge2001-10-062-2/+9 * Do not invoke `e_shell_restore_from_settings()' if `shell' is NULL.Ettore Perazzoli2001-10-062-1/+6 * Get the right hpaned positions for when the shortcut bar and/or the folderEttore Perazzoli2001-10-062-2/+14 * Handle the return value fromEttore Perazzoli2001-10-062-1/+10 * Also `gdk_flush()'. (idle_cb): If the user doesn't specify at least oneEttore Perazzoli2001-10-062-20/+34 * New member `ping_timeout_id' in `EvolutionShellComponentPrivate'.Ettore Perazzoli2001-10-062-3/+77 * #include "e-util/e-gtk-utils.h". (quit_box_new): Queue a draw on theEttore Perazzoli2001-10-062-0/+13 * If the owner is dead, emit "owner_died" instead of "owner_unset".Ettore Perazzoli2001-10-063-1/+39 * If setting the owner fails, print the a warning message out. Then restartEttore Perazzoli2001-10-0612-24/+274 * added BONOBO_GNOME_CFLAGS to make it compile with latest BonoboRodrigo Moya2001-10-042-0/+6 * [Fix #11326, The folder list can become detached from its parentEttore Perazzoli2001-10-032-0/+11 * Make the crash message less dorky. [#10264]Ettore Perazzoli2001-10-032-3/+9 * [Don't allow dragging from a folder to one of its descendants orEttore Perazzoli2001-10-032-2/+36 * Use `bonobo_ui_component_new_default()', not `bonobo_ui_component_new()'.Ettore Perazzoli2001-10-033-2/+23 * New, callback for the ::removed_folder signal on the shell's EStorageSet.Ettore Perazzoli2001-10-033-80/+86 * [Fix #8053, `GNOME_Evolution_Shortcuts' doesn't seem to work.]Ettore Perazzoli2001-09-292-10/+7 * [Fix #8434, Shortcut bar not shown properly.]Ettore Perazzoli2001-09-292-8/+15 * New place to start the intelligent importersIain Holmes2001-09-293-28/+548 * Allow callers to set the default type of folder to be created.Iain Holmes2001-09-2911-18/+103 * Remove. (command_new_mail_message): Removed. (command_pilot_settings):Ettore Perazzoli2001-09-282-32/+45 * New helper function. (folder_selected_cb): Call it.Ettore Perazzoli2001-09-274-31/+123 * Put my name in alphabetical orderRodrigo Moya2001-09-271-1/+1 * Added myself to about boxRodrigo Moya2001-09-261-0/+1 * Change the name on the EFolder object too.Ettore Perazzoli2001-09-262-2/+10 * [Implemented the "Rename" command. Warning, it doesn't quite workEttore Perazzoli2001-09-265-112/+80 * New helper function. (command_move_folder): Pass the @folder_path argumentEttore Perazzoli2001-09-268-109/+190 * Expand a ~ in the pathIain Holmes2001-09-222-1/+6 * Check for a component for the given row *after* trying to handleEttore Perazzoli2001-09-222-5/+14 * Removed. (folder_bar_popup_map_callback): Don't connect.Ettore Perazzoli2001-09-212-55/+34 * Only start wizard thing if there are no mail accountsIain Holmes2001-09-212-4/+9 * New member `tooltips' in `ETaskWidgetPrivate'. (init): Init to NULL.Ettore Perazzoli2001-09-20