The Evolution Project specification Miguel de Icaza. * Introduction Evolution is a project aiming at providing the free software community with a professional, high-quality tool for managing mail, appointments, tasks and other personal information tools. We want to make Evolution a system that addresses our needs (the free software development community) and we believe that by addressing our needs, we will provide a system that will scale in the years to come for other users that are just starting to use computers and the internet. The main objectives of Evolution are to provide these powerful features, and to make the user interface as pretty and polished as possible. Evolution is a GNOME application and a number of auxiliary CORBA servers that act as the storage backends. Evolution will copy the best user interface bits and the best ideas and features found on contemporary groupware systems. * Evolution internals. Evolution can store its information locally (files for mail, calendar and address book) or on a remote server (imap/pop, cap, ldap). Given the importance of syncing in this modern PDA world, the Evolution GUI acts as a client to the data repository. The data repository is a GUI-less CORBA server called Wombat. Wombat provides a unified access system to the calendar and addressbook data (doing mail is a bit hard, so we are leaving this as a TODO item for now). Wombat's CORBA interfaces are notifier-based. This means that CORBA requests sent to Wombat do not return values inmediately, but rather than for Wombat requests the user has to provide a CORBA object that will be notified of what happened. Yes, that sounds hairy. It is actually pretty simple. It basically means that you submit requests to Wombat, and a callback is invoked in your code when the request has been carried away. This enables a Palm to sync to the repository without having the GUI for Evolution running. It also means that volunteers will be able to write text-based and web-based versions of Evolution (not me though :-). * Evolution as a platform Evolution is more than a client for managing the above information: Evolution is a platform for building groupware applications that use the above components to get their work done. To achieve this Evolution is designed to be scriptable, and it exports its internals trough CORBA/Bonobo. It is implemented as a collection of Bonobo containers and Bonobo components. There is a clean separation between the views (the user interface) and the model (the view). The views that we are writing are GNOME based, and they talk to the Wombat CORBA server. Wombat takes care of notifications to the various clients for the data. * The overall organization A bar similar to outlook provides shortcuts for accessing the various resources managed by Evolution: mail folders, contacts, tasks, journal entries, notes, messages and other user-defined destinations. * User interface widgets ** The ETable package This package provides a way of displaying and editing tables. Tables are displayed based on a TableColumn definition that defines the layout used for the display. Table Columns can be nested, and the package does grouping of information displayed according to the criteria defined there. This is used in multiple places troughout evolution: it is used for the Mail summary display, for the TODO display and TODO new data entry and for the address book. Nesting in the address book can be performed on various fields. For example, a first level of nesting could be "Company" and a second level would be "Country" the result is a 2-level tree that can be collapsed expanded and contains the information sorted/grouped by those two criteria. The user interface for this will be copied from Outlook: the possibility of adding and removing fields with drag and drop as well as grouping using drag and drop. * The Mail system ** The Mail sources The mail system will support 4 sources of mail: POP3 (transfer to a local file). IMAP Local mbox format in $MAIL. Local mbox format that have other delivery points. On top of that, it will be possible to browse existing mbox archives (and possibly other formats in the future, like Mailbox and Maildir). ** Storing the mail Mail that gets incorporated into the system is stored in mbox format, and summary files are provided for quick access to the files. No modifications to the file on disk is performed (I am not quite sure about this, perhaps we want to add the status flags and some method for adding metadata to the mail). Summary files are rebuilt on demand or rebuild if the mbox file and the summary file have got out of sync. A Metadata system that will enable us to attach information to a message will have to be designed and implemented (enabling users to add annotations to mails, and special keywords and flags in a per-message fashion). ** Folders Michael Zucchi is working on a system that will let users easily define rules for splitting their incoming mail into physical folders. A further refinement to Folders are Virtual Folders. This basically provides a powerful search and viewing facility for mail. It works like this: when a mail is "incorporated" into Evolution it is scanned and indexed. Then users can enter queries into Evolution that will search the entire database of messages. ** Virtual folders Virtual folders will enable users to read/browse their mail in new ways: by specifying search criterias, these folders will contain messages that match the criteria given. There is more information about this in the libcamel directory. We will index all headers from a message, and possible the contents of messages and keep those on a separate file, to enable users to query their mail database. ** Mail summary display The summary will be displayed using the ETable package, to enable users to add a number of sorting criteria and various display methods for the summary view. The Outlook methods for displaying will be present on the system. Message threading will be supported in Evolution. ** Message display engine We are going to be using a combination of libcamel/limime/libjamie to parse messages and render them into an HTML buffer. * The HTML engine The GtkHTML engine will be used to display messages, and will be extended to support a number of features that we require: internal handling of characters will be based on Unicode * The message composer Regular features found in composers will be added: connecting the composer to the address book, support for drag and drop for including attachments, editing the message, archiving drafts and archiving messages sent. Ettore has been working on adding editing support to the GtkHTML and he is working currently on a Bonobo component that will provide a ready-to-use Bonobo control for embedding into other applications. tgraph'>* Bump PORTREVISION after open-mofit updatemakc2011-05-021-1/+1 * The FreeBSD KDE Team is pleased to announce April updates for KDEavilla2011-04-072-2/+19 * The FreeBSD KDE Team is pleased to announce KDE SC 4.6.1 and KDE PIMavilla2011-03-252-16/+9 * - Get Rid MD5 supportmiwi2011-03-195-5/+0 * - Remove unnecessary PKGNAMEPREFIX declarationsunpoet2011-01-094-4/+0 * - The KDE FreeBSD team is proud to announce the release of KDE 4.5.5fluffy2011-01-081-2/+2 * KDE FreeBSD team presents KDE SC 4.5.4.makc2010-12-031-2/+2 * KDE FreeBSD team presents KDE SC 4.5.3.makc2010-11-041-3/+2 * KDE FreeBSD team presents KDE SC 4.5.2.makc2010-10-061-3/+3 * Autotools update. Read ports/UPDATING 20100915 for details.ade2010-09-162-4/+2 * KDE FreeBSD team presents KDE SC 4.5.1.makc2010-09-032-74/+34 * Present KDE SC 4.4.5 for FreeBSD.makc2010-06-301-3/+3 * - Update to 2.01.stefan2010-06-284-16/+21 * Present KDE SC 4.4.4 for FreeBSD.makc2010-06-021-3/+3 * Bounce PORTREVISION for gettext-related ports. Have fun, ya'll.ade2010-05-312-2/+2 * Convert LDCONFIG_DIRS to USE_LDCONFIG for unmaintained ports.makc2010-05-241-2/+1 * - The FreeBSD KDE team is pleased to announce KDE SC 4.4.3 for FreeBSDfluffy2010-05-113-28/+11 * - update to 1.4.1dinoex2010-03-284-3/+4 * Presenting KDE 4.3.5 for FreeBSD. The official release notes for thismiwi2010-02-072-4/+3 * - update to jpeg-8dinoex2010-02-054-3/+4 * - Update to 0.7.0wen2010-01-104-50/+6 * - Update to 1.6.2wen2010-01-103-8/+6 * - SUB_FILES += pkg-messagepgollucci2010-01-082-9/+9 * - SUB_FILES += pkg-messagepgollucci2010-01-083-18/+18 * - Use SUB_FILES for pkg-messagepgollucci2010-01-072-3/+3 * The FreeBSD KDE is please to announce the release of KDE 4.3.4,miwi2009-12-021-3/+3 * The KDE FreeBSD team is proud to announce the release of KDE 4.3.3miwi2009-11-272-5/+5 * - Mark MAKE_JOBS_UNSAFEpav2009-11-201-0/+1 * The FreeBSD KDE is please to announce the release of KDE 4.3.1,tabthorpe2009-09-022-6/+6 * - Switch SourceForge ports to the new File Release System: categories startin...amdmi32009-08-224-7/+4 * Reset sbahra at his request due to lack of time to work on these ports.linimon2009-08-209-18/+6 * clean upmakc2009-08-081-4/+1 * The KDE FreeBSD team is proud to announce the release of KDE 4.3.0miwi2009-08-053-17/+93 * - bump all port that indirectly depends on libjpeg and have not yet been bump...dinoex2009-07-314-2/+4 * The KDE FreeBSD team is pleased to announce KDE 4.2.4, the last bugfixmiwi2009-06-031-3/+3 * Update KDE ports to 4.2.3makc2009-05-101-3/+3 * The KDE FreeBSD team is proud to announce the release of KDE 4.2.2miwi2009-04-022-7/+3 * Update KDE to 4.2.1.makc2009-03-091-3/+3 * The KDE FreeBSD team is proud to announce the release of KDE 4.2.0miwi2009-02-095-290/+275 * The KDE FreeBSD team is proud to announce the releasemiwi2008-08-292-6/+6 * The KDE FreeBSD team is proud to announce the releasemiwi2008-08-182-6/+6 * PHP Documentation in these language has been removed from the distribution.edwin2008-08-042-14/+0 * - Update WWW sitenivit2008-07-291-1/+1 * Bump portrevision due to upgrade of devel/gettext.edwin2008-06-062-1/+2 * Removal of arabic/katoobedwin2008-04-309-129/+0 * - Remove unneeded dependency from gtk12/gtk20 [1]miwi2008-04-2010-35/+34 * - Remove USE_XLIB/USE_X_PREFIX/USE_XPM in favor of USE_XORGmiwi2008-03-261-2/+1 * - Remove USE_XLIB/USE_X_PREFIX/USE_XPM in favor of USE_XORGmiwi2008-03-251-2/+1 * - Remove USE_GETOPT_LONG which is a no-op since March 2007pav2008-03-201-1/+0 * Fix distfile location for outdated koffice-l10ns.lofi2007-11-091-1/+1 * Update to KDE 3.5.8lofi2007-10-304-8/+6 * Presenting GNOME 2.20.1 and all related works for FreeBSD. The officialmarcus2007-10-252-13/+14 * Revert more PORTREVISION accidentslofi2007-07-051-0/+1 * Update to KDE 3.5.7 / KOffice 1.6.3lofi2007-07-047-11/+286 * BROKEN with gcc 4.2kris2007-05-271-0/+4 * - Welcome X.org 7.2 \o/.flz2007-05-2010-3/+9 * Release maintainerships.thierry2007-03-161-1/+1 * Update to KDE 3.5.6 / KOffice 1.6.2lofi2007-03-142-6/+6 * Update maintainer's email address.linimon2007-03-076-6/+6 * Really normalize Aspell dictionaries ports PKGVERSION...thierry2007-02-151-0/+1 * Add Aspell Arabic dictionaries.thierry2007-02-135-0/+32 * Update to KDE 3.5.5 / KOffice 1.6.1lofi2006-12-202-6/+6 * - Updated email address in my portsnivit2006-12-101-1/+1 * Chase the GNOME X11BASE to LOCALBASE move, and fix the build with themarcus2006-10-142-3/+6 * Run ttmkfdir in a writable directory and unbreak.thierry2006-10-031-8/+4 * Run ttmkfdir in a writable directory and unbreak.thierry2006-10-031-7/+3 * KDE 3.5.4 / KOffice 1.5.2lofi2006-09-136-16/+10 * Schedule these broken ports for termination on 2006-12-01kris2006-09-032-0/+4 * BROKEN: Does not buildkris2006-08-182-0/+4 * Update to KDE 3.5.3lofi2006-06-062-6/+6 * Update to KOffice 1.5.1lofi2006-05-272-4/+4 * Fix categorieslofi2006-04-301-1/+1 * Update to KOffice 1.5.0lofi2006-04-293-27/+10 * Change maintainer email address.cperciva2006-04-166-6/+6 * Update to KDE 3.5.2lofi2006-03-312-6/+6 * Conversion to a single libtool environment.ade2006-02-231-5/+5 * Update to KDE 3.5.1.lofi2006-02-012-6/+6 * Update to KDE 3.5.0lofi2006-01-094-66/+8 * Add SHA256 message digest to distinfo fileedwin2005-12-271-0/+1 * update: arabic/kde3-i18nedwin2005-12-272-0/+2 * Add SHA256 message digest to distinfo fileedwin2005-12-271-0/+1 * Add SHA256 message digest to distinfo fileedwin2005-12-271-0/+1 * Add SHA256 message digest to distinfo fileedwin2005-12-271-0/+1 * Add SHA256 message digest to distinfo fileedwin2005-12-271-0/+1 * Add SHA256 message digest to distinfo fileedwin2005-12-271-0/+1 * Add SHA256 message digest to distinfo fileedwin2005-12-271-0/+1 * Mass-conversion to the USE_AUTOTOOLS New World Order. The code presentade2005-11-151-1/+1 * Update to KDE 3.4.3 / KOffice 1.4.2lofi2005-11-055-8/+6 * Bump PORTREVISION to chase the glib20 shared library update.marcus2005-11-051-1/+1 * Update to KDE 3.4.2 / KOffice 1.4.1lofi2005-08-014-7/+11 * - Update to 1.5 [1]jylefort2005-07-255-18/+21 * This LaTeX package extends the capabilities of TeX/LaTeX to generatepav2005-07-205-0/+250 * Remove openoffice.org localized ports as I announced:maho2005-06-292-16/+0 * Update to KDE 3.4.1lofi2005-06-265-9/+4 * Added slave port of lang/php_doc for the Arabic language.edwin2005-05-232-0/+14 * Update to KDE 3.4lofi2005-03-216-41/+14