On 2014-01-18 02:08, Bron Gondwana wrote:
The version of Xapian that we build against has the following patches applied to the upstream Debian xapian-core before building:rm -rf .pc # remove memory of the debian quilt series cp -a $FMPATCHES/xapian_quilt patches QUILT_PATCHES=patches quilt push -a || exit autoreconf || exit I've attached a tarball with the patches in it.
Thanks for these, I've built (without *DAV) using the following patch attached.
The conundrum is the build dependencies are not required by configure, but are required by the code, if --enable-http is not given.
Kind regards, Jeroen van Meeuwen -- Systems Architect, Kolab Systems AG e: vanmeeuwen at kolabsys.com m: +44 74 2516 3817 w: http://www.kolabsys.com pgp: 9342 BF08
diff --git a/imap/mailbox.c b/imap/mailbox.c index f9ae70a..3baf44e 100644 --- a/imap/mailbox.c +++ b/imap/mailbox.c @@ -51,7 +51,9 @@ #elif defined(HAVE_STDINT_H) # include <stdint.h> #endif +#ifdef WITH_DAV #include <libical/vcc.h> +#endif #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -81,8 +83,10 @@ #include "annotate.h" #include "assert.h" +#ifdef WITH_DAV #include "caldav_db.h" #include "carddav_db.h" +#endif #include "crc32.h" #include "md5.h" #include "exitcodes.h" @@ -2666,6 +2670,7 @@ out: return r; } +#ifdef WITH_DAV static int mailbox_update_carddav(struct mailbox *mailbox, struct index_record *old, struct index_record *new) @@ -2886,6 +2891,7 @@ static int mailbox_update_dav(struct mailbox *mailbox, return mailbox_update_caldav(mailbox, old, new); return 0; } +#endif //WITH_DAV EXPORTED int mailbox_update_conversations(struct mailbox *mailbox, struct index_record *old, @@ -3112,8 +3118,10 @@ static int mailbox_update_indexes(struct mailbox *mailbox, { int r = 0; +#ifdef WITH_DAV r = mailbox_update_dav(mailbox, old, new); if (r) return r; +#endif r = mailbox_update_conversations(mailbox, old, new); @@ -4238,6 +4246,7 @@ static int chkchildren(char *name, return r; } +#ifdef WITH_DAV EXPORTED int mailbox_add_dav(struct mailbox *mailbox) { struct index_record record; @@ -4257,6 +4266,7 @@ EXPORTED int mailbox_add_dav(struct mailbox *mailbox) return 0; } +#endif EXPORTED int mailbox_add_conversations(struct mailbox *mailbox) { diff --git a/imap/mailbox.h b/imap/mailbox.h index 5d3ed01..fe0bf91 100644 --- a/imap/mailbox.h +++ b/imap/mailbox.h @@ -587,6 +587,8 @@ extern int mailbox_get_xconvmodseq(struct mailbox *mailbox, modseq_t *); extern int mailbox_update_xconvmodseq(struct mailbox *mailbox, modseq_t, int force); extern int mailbox_has_conversations(struct mailbox *mailbox); +#ifdef WITH_DAV extern int mailbox_add_dav(struct mailbox *mailbox); +#endif #endif /* INCLUDED_MAILBOX_H */ diff --git a/imap/mboxevent.c b/imap/mboxevent.c index eabc462..13f0945 100644 --- a/imap/mboxevent.c +++ b/imap/mboxevent.c @@ -53,8 +53,10 @@ #include "annotate.h" #include "assert.h" +#ifdef WITH_DAV #include "caldav_db.h" #include "carddav_db.h" +#endif #include "exitcodes.h" #include "imapurl.h" #include "libconfig.h" @@ -131,9 +133,11 @@ static struct mboxevent event_template = { EVENT_USER, "user", EVENT_PARAM_STRING, 0, 0 }, { EVENT_MESSAGE_SIZE, "messageSize", EVENT_PARAM_INT, 0, 0 }, { EVENT_MESSAGE_CID, "vnd.fastmail.cid", EVENT_PARAM_STRING, 0, 0 }, +#ifdef WITH_DAV { EVENT_MBTYPE, "vnd.cmu.mbtype", EVENT_PARAM_STRING, 0, 0 }, { EVENT_DAV_FILENAME, "vnd.cmu.davFilename", EVENT_PARAM_STRING, 0, 0 }, { EVENT_DAV_UID, "vnd.cmu.davUid", EVENT_PARAM_STRING, 0, 0 }, +#endif /* always at end to let the parser to easily truncate this part */ { EVENT_ENVELOPE, "vnd.cmu.envelope", EVENT_PARAM_STRING, 0, 0 }, { EVENT_BODYSTRUCTURE, "bodyStructure", EVENT_PARAM_STRING, 0, 0 }, @@ -374,8 +378,10 @@ static int mboxevent_expected_param(enum event_type type, enum event_param param return extra_params & IMAP_ENUM_EVENT_EXTRA_PARAMS_VND_FASTMAIL_SESSIONID; case EVENT_MAILBOX_ID: return (type & MAILBOX_EVENTS); +#ifdef WITH_DAV case EVENT_MBTYPE: return (type & MAILBOX_EVENTS); +#endif case EVENT_MAX_MESSAGES: return type & QUOTA_EVENTS; case EVENT_MESSAGE_CONTENT: @@ -387,12 +393,14 @@ static int mboxevent_expected_param(enum event_type type, enum event_param param case EVENT_MESSAGE_CID: return (extra_params & IMAP_ENUM_EVENT_EXTRA_PARAMS_VND_FASTMAIL_CID) && (type & (EVENT_MESSAGE_APPEND|EVENT_MESSAGE_NEW)); +#ifdef WITH_DAV case EVENT_DAV_FILENAME: return (extra_params & IMAP_ENUM_EVENT_EXTRA_PARAMS_VND_CMU_DAVFILENAME) && (type & EVENT_CALENDAR); case EVENT_DAV_UID: return (extra_params & IMAP_ENUM_EVENT_EXTRA_PARAMS_VND_CMU_DAVUID) && (type & EVENT_CALENDAR); +#endif case EVENT_MESSAGES: if (type & (EVENT_QUOTA_EXCEED|EVENT_QUOTA_WITHIN)) return 1; @@ -738,6 +746,7 @@ EXPORTED void mboxevent_extract_record(struct mboxevent *event, struct mailbox * cacheitem_size(record, CACHE_BODYSTRUCTURE))); } +#ifdef WITH_DAV /* add caldav items */ if ((mailbox->mbtype & (MBTYPES_DAV)) && (mboxevent_expected_param(event->type, EVENT_DAV_FILENAME) || @@ -779,7 +788,7 @@ EXPORTED void mboxevent_extract_record(struct mboxevent *event, struct mailbox * } } } - +#endif //WITH_DAV } void mboxevent_extract_copied_record(struct mboxevent *event, @@ -991,8 +1000,10 @@ EXPORTED void mboxevent_extract_mailbox(struct mboxevent *event, imapurl_toURL(url, &imapurl); FILL_STRING_PARAM(event, EVENT_URI, xstrdup(url)); +#ifdef WITH_DAV FILL_STRING_PARAM(event, EVENT_MBTYPE, xstrdup(mboxlist_mbtype_to_string(mailbox->mbtype))); +#endif /* mailbox related events also require mailboxID */ if (event->type & MAILBOX_EVENTS) { diff --git a/imap/mboxevent.h b/imap/mboxevent.h index f56ad9e..2f1e022 100644 --- a/imap/mboxevent.h +++ b/imap/mboxevent.h @@ -113,9 +113,11 @@ enum event_param { EVENT_USER, EVENT_MESSAGE_SIZE, EVENT_MESSAGE_CID, +#ifdef WITH_DAV EVENT_MBTYPE, EVENT_DAV_FILENAME, EVENT_DAV_UID, +#endif EVENT_ENVELOPE, EVENT_BODYSTRUCTURE, EVENT_CLIENT_ID, diff --git a/imap/sync_server.c b/imap/sync_server.c index 745b3cf..e51983d 100644 --- a/imap/sync_server.c +++ b/imap/sync_server.c @@ -74,9 +74,11 @@ #include "annotate.h" #include "append.h" #include "auth.h" +#ifdef WITH_DAV #include "caldav_db.h" #include "carddav_db.h" #include "dav_db.h" +#endif #include "dlist.h" #include "exitcodes.h" #include "global.h" @@ -291,9 +293,11 @@ int service_init(int argc __attribute__((unused)), statuscache_open(); } +#ifdef WITH_DAV dav_init(); caldav_init(); carddav_init(); +#endif return 0; } @@ -455,9 +459,11 @@ void shut_down(int code) proc_cleanup(); +#ifdef WITH_DAV carddav_done(); caldav_done(); dav_done(); +#endif if (config_getswitch(IMAPOPT_STATUSCACHE)) { statuscache_close();