diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 7bd5793..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -zarafa-6.30.14.tar.gz diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..0f98991 --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +Package is retired diff --git a/sources b/sources deleted file mode 100644 index 8af1e15..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -fa3183f71027b8025373b05f27aaf742 zarafa-6.30.14.tar.gz diff --git a/zarafa-6.30.10-chmod.patch b/zarafa-6.30.10-chmod.patch deleted file mode 100644 index ef7a706..0000000 --- a/zarafa-6.30.10-chmod.patch +++ /dev/null @@ -1,13 +0,0 @@ -Patch by Robert Scheck for zarafa >= 6.30.10, which adds a missing include for -the later in the code used chmod() command. Without this include, building on Fedora 13 fails. - ---- zarafa-6.30.10/provider/server/ECSoapServerConnection.cpp 2010-01-26 17:34:51.000000000 +0100 -+++ zarafa-6.30.10/provider/server/ECSoapServerConnection.cpp.chmod 2010-02-06 12:36:22.000000000 +0100 -@@ -51,6 +51,7 @@ - - #include "ECLogger.h" - -+#include - #ifdef HAVE_SYS_UN_H - #include - #endif diff --git a/zarafa-6.30.10-undefined-symbol.patch b/zarafa-6.30.10-undefined-symbol.patch deleted file mode 100644 index c4b2083..0000000 --- a/zarafa-6.30.10-undefined-symbol.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff -ur zarafa-6.30.10.orig/mapi4linux/src/m4lguids.cpp zarafa-6.30.10/mapi4linux/src/m4lguids.cpp ---- zarafa-6.30.10.orig/mapi4linux/src/m4lguids.cpp 2010-01-26 17:34:48.000000000 +0100 -+++ zarafa-6.30.10/mapi4linux/src/m4lguids.cpp 2010-02-04 09:53:48.459239670 +0100 -@@ -48,6 +48,7 @@ - */ - - #include "platform.h" -+/*#ifndef WINCE - #define USES_IID_IUnknown - #define USES_IID_IStream - #define USES_IID_ISequentialStream -@@ -60,7 +61,8 @@ - #define USES_IID_IMAPIProp - #define USES_IID_IMAPIFolder - #define USES_IID_IMAPITable -+#endif - #include -- -+*/ - #include "mapiguid.h" - #include "m4l.mapiutil.h" -diff -ur zarafa-6.30.10.orig/mapi4linux/src/Makefile.am zarafa-6.30.10/mapi4linux/src/Makefile.am ---- zarafa-6.30.10.orig/mapi4linux/src/Makefile.am 2010-01-26 12:05:22.000000000 +0100 -+++ zarafa-6.30.10/mapi4linux/src/Makefile.am 2010-02-04 09:51:39.285239878 +0100 -@@ -3,7 +3,9 @@ - AM_CPPFLAGS = $(DEBUGFLAGS) -DLINUX -I$(top_srcdir)/mapi4linux/include -I$(top_srcdir)/provider/common -I${top_srcdir}/common -I${top_srcdir}/libfreebusy - AM_LDFLAGS = $(DL_LIBS) -export-symbols ${top_srcdir}/mapi4linux/src/mapi-exports.sym - --libmapi_la_LIBADD = ${top_builddir}/common/libcommon_util.la -+libmapi_la_LIBADD = ${top_builddir}/common/libcommon_util.la \ -+ ${top_builddir}/common/libcommon_mapi.la \ -+ $(PROG_LIBS) - - # required because we're exporting extern "C" functions and want to filter with 'export-symbols' - CXXLD=--tag=none gcc diff --git a/zarafa-6.30.4-brodowski.patch b/zarafa-6.30.4-brodowski.patch deleted file mode 100644 index 9c97208..0000000 --- a/zarafa-6.30.4-brodowski.patch +++ /dev/null @@ -1,774 +0,0 @@ -diff -ruN /usr/src/zarafa/zarafa-6.30.4.17264/php-ext/include/mapi/class.autoarchivesettings.php mapi/class.autoarchivesettings.php ---- /usr/src/zarafa/zarafa-6.30.4.17264/php-ext/include/mapi/class.autoarchivesettings.php Thu Jan 1 01:00:00 1970 -+++ mapi/class.autoarchivesettings.php Sat Aug 8 11:49:05 2009 -@@ -0,0 +1,218 @@ -+. -+ * -+ */ -+ -+?> -+ -+ */ -+ -+class AutoArchiveSettings { -+ -+ var $session; -+ var $store; -+ var $folder; -+ var $proptags; -+ -+ function agingproperties() { -+ $properties = array(); -+ $properties["entryid"] = PR_ENTRYID; -+ $properties["parent_entryid"] = PR_PARENT_ENTRYID; -+ $properties["message_class"] = PR_MESSAGE_CLASS; -+ $properties["icon_index"] = PR_ICON_INDEX; -+ $properties["display_to"] = PR_DISPLAY_TO; -+ $properties["display_cc"] = PR_DISPLAY_CC; -+ $properties["subject"] = PR_SUBJECT; -+ $properties["importance"] = PR_IMPORTANCE; -+ $properties["sent_representing_name"] = PR_SENT_REPRESENTING_NAME; -+ $properties["sent_representing_email_address"] = PR_SENT_REPRESENTING_EMAIL_ADDRESS; -+ $properties["sent_representing_addrtype"] = PR_SENT_REPRESENTING_ADDRTYPE; -+ $properties["sent_representing_entryid"] = PR_SENT_REPRESENTING_ENTRYID; -+ $properties["sender_email_address"] = PR_SENDER_EMAIL_ADDRESS; -+ $properties["sender_name"] = PR_SENDER_NAME; -+ $properties["received_by_name"] = PR_RECEIVED_BY_NAME; -+ $properties["received_by_email_address"] = PR_RECEIVED_BY_EMAIL_ADDRESS; -+ $properties["message_delivery_time"] = PR_MESSAGE_DELIVERY_TIME; -+ $properties["last_modification_time"] = PR_LAST_MODIFICATION_TIME; -+ $properties["last_verb_executed"] = PR_LAST_VERB_EXECUTED; -+ $properties["last_verb_execution_time"] = PR_LAST_VERB_EXECUTION_TIME; -+ $properties["hasattach"] = PR_HASATTACH; -+ $properties["message_size"] = PR_MESSAGE_SIZE; -+ $properties["message_flags"] = PR_MESSAGE_FLAGS; -+ $properties["flag_status"] = PR_FLAG_STATUS; -+ $properties["flag_complete_time"] = PR_FLAG_COMPLETE_TIME; -+ $properties["flag_icon"] = PR_FLAG_ICON; -+ $properties["reminder_time"] = "PT_SYSTIME:PSETID_Common:0x8502"; -+ $properties["reminder_set"] = "PT_BOOLEAN:PSETID_Common:0x8503"; -+ $properties["flag_request"] = "PT_STRING8:PSETID_Common:0x8530"; -+ $properties["flag_due_by"] = "PT_SYSTIME:PSETID_Common:0x8560"; -+ $properties["reply_requested"] = PR_REPLY_REQUESTED; -+ $properties["reply_time"] = PR_REPLY_TIME; -+ $properties["response_requested"] = PR_RESPONSE_REQUESTED; -+ $properties["client_submit_time"] = PR_CLIENT_SUBMIT_TIME; -+ $properties["sensitivity"] = PR_SENSITIVITY; -+ $properties["read_receipt_requested"] = PR_READ_RECEIPT_REQUESTED; -+ $properties["location"] = "PT_STRING8:PSETID_Appointment:0x8208"; -+ $properties["categories"] = "PT_MV_STRING8:PS_PUBLIC_STRINGS:Keywords"; -+ $properties["transport_message_headers"] = PR_TRANSPORT_MESSAGE_HEADERS; -+ $properties["contacts"] = "PT_MV_STRING8:PSETID_Common:0x853A"; -+ $properties["contacts_string"] = "PT_STRING8:PSETID_Common:0x8586"; -+ -+ $properties["aging_period"] = PR_AGING_PERIOD; // max 3 digits -+ $properties["aging_granularity"] = PR_AGING_GRANULARITY; // 0=month, 1=weeks, 2=days -+ $properties["aging_filename"] = PR_AGING_FILENAME; -+ $properties["aging_age_folder"] = PR_AGING_AGE_FOLDER; -+ $properties["aging_deleted_items"] = PR_AGING_DELETE_ITEMS; -+ $properties["aging_dont_age_me"] = PR_AGING_DONT_AGE_ME; -+ $properties["aging_file_name_after9"] = PR_AGING_FILE_NAME_AFTER9; -+ $properties["aging_when_deleted_on_server"] = PR_AGING_WHEN_DELETED_ON_SERVER; -+ $properties["aging_wait_until_expired"] = PR_AGING_WAIT_UNTIL_EXPIRED; -+ $properties["aging_version"] = PR_AGING_VERSION; -+ $properties["aging_default"] = PR_AGING_DEFAULT; -+ -+ $properties["deleted_on"] = PR_DELETED_ON; -+ $properties["updatecounter"] = "PT_LONG:PSETID_Appointment:0x8201"; -+ $properties["hideattachments"] = "PT_BOOLEAN:PSETID_Common:0x8514"; -+ -+ return $properties; -+ } -+ -+ /** -+ * Constuctor -+ * -+ * @param mapi_session $session MAPI Session -+ * @param mapi_folder $folder Folder to use for AutoArchive Settings retrival -+ */ -+ -+ function retrieveSettings($session, $store, $folder, $properties = NULL) -+ { -+ if ($properties == NULL) { -+ $properties = $this->agingproperties(); -+ }; -+ -+ $this->proptags = getPropIdsFromStrings($store, $properties); -+ -+ $this->session = $session; -+ $this->store = $store; -+ $this->folder = $folder; -+ -+ $msg = $this->getMessage(); -+ -+ $props = mapi_getprops($msg,$this->proptags); -+ -+ $data = $props; -+ -+ return $data; -+ } -+ -+ function getMessage() { -+ $table = mapi_folder_getcontentstable($this->folder, MAPI_ASSOCIATED); -+ mapi_table_sort($table, array(PR_RECEIPT_TIME => TABLE_SORT_ASCEND)); -+ $restriction = array ( RES_PROPERTY, -+ array ( RELOP => RELOP_EQ, -+ ULPROPTAG => PR_MESSAGE_CLASS, -+ VALUE => array (PR_MESSAGE_CLASS => "IPC.MS.Outlook.AgingProperties") -+ ) -+ ); -+ $msgs = mapi_table_queryallrows($table,array(PR_ENTRYID),$restriction); -+ if (isset($msgs[0][PR_ENTRYID])) { -+ $msg = mapi_msgstore_openentry($this->store,$msgs[0][PR_ENTRYID]); -+ } else { -+ $this->createMessage(); -+ $msg = $this->getMessage(); -+ } -+ return $msg; -+ } -+ -+ function updateSettings($session, $store, $folder, $uprops) { -+ $properties = $this->agingproperties(); -+ -+ $this->session = $session; -+ $this->store = $store; -+ $this->folder = $folder; -+ -+ $msg = $this->getMessage(); -+ -+ $write_props = array(); -+ -+ if (isset($uprops["aging_period"])) $write_props[$properties["aging_period"]] = $uprops["aging_period"]; -+ if (isset($uprops["aging_granularity"])) $write_props[$properties["aging_granularity"]] = $uprops["aging_granularity"]; -+ if (isset($uprops["aging_age_folder"])) $write_props[$properties["aging_age_folder"]] = $uprops["aging_age_folder"]; -+ if (isset($uprops["aging_deleted_items"])) $write_props[$properties["aging_deleted_items"]] = $uprops["aging_deleted_items"]; -+ if (isset($uprops["aging_filename"])) $write_props[$properties["aging_filename"]] = $uprops["aging_filename"]; -+ if (isset($uprops["aging_file_name_after9"])) $write_props[$properties["aging_file_name_after9"]] = $uprops["aging_file_name_after9"]; -+ if (isset($uprops["aging_version"])) $write_props[$properties["aging_version"]] = $uprops["aging_version"]; -+ if (isset($uprops["aging_default"])) $write_props[$properties["aging_default"]] = $uprops["aging_default"]; -+ -+ mapi_setprops($msg,$write_props); -+ -+ mapi_savechanges($msg); -+ -+ } -+ -+ function createMessage() { -+ -+ $properties = $this->agingproperties(); -+ -+ $write_props = array( $properties["message_class"] => "IPC.MS.Outlook.AgingProperties", -+ $properties["display_to"] => NULL, -+ $properties["display_cc"] => NULL, -+ $properties["aging_period"] => "3", -+ $properties["aging_granularity"] => "0", -+ $properties["aging_age_folder"] => "0", -+ $properties["aging_deleted_items"] => "0", -+ $properties["aging_filename"] => "", -+ $properties["aging_file_name_after9"] => "", -+ $properties["aging_version"] => "2", -+ $properties["aging_default"] => "0" -+ ); -+ -+ $msg = mapi_folder_createmessage($this->folder,MAPI_ASSOCIATED); -+ -+ mapi_setprops($msg,$write_props); -+ -+ mapi_savechanges($msg); -+ -+ } -+ -+} -+?> -diff -ruN /usr/src/zarafa/zarafa-6.30.4.17264/php-ext/include/mapi/class.linkedappointment.php mapi/class.linkedappointment.php ---- /usr/src/zarafa/zarafa-6.30.4.17264/php-ext/include/mapi/class.linkedappointment.php Thu Jan 1 01:00:00 1970 -+++ mapi/class.linkedappointment.php Fri Aug 14 11:16:18 2009 -@@ -0,0 +1,393 @@ -+. -+ * -+ */ -+?> -+ -+ */ -+ -+class linkedAppointment -+{ -+ -+ /** -+ * @var object Mapi Message Store (may be null if readonly) -+ */ -+ var $_store; -+ -+ var $_contactmapping = array ( -+ "fileas" => "PT_STRING8:{00062004-0000-0000-C000-000000000046}:0x8005", -+ "birthday_event_entryid" => "PT_BINARY:{00062004-0000-0000-C000-000000000046}:0x804d", -+ "anniversary_event_entryid" => "PT_BINARY:{00062004-0000-0000-C000-000000000046}:0x804e", -+ "birthday" => PR_BIRTHDAY, -+ "anniversary" => PR_WEDDING_ANNIVERSARY, -+ "entryid" => PR_ENTRYID, -+ "search_key" => PR_SEARCH_KEY -+ ); -+ -+ var $_appointmentmapping = array ( -+ "alldayevent" => "PT_BOOLEAN:{00062002-0000-0000-C000-000000000046}:0x8215", -+ "body" => PR_BODY, -+ "busystatus" => "PT_LONG:{00062002-0000-0000-C000-000000000046}:0x8205", -+ "categories" => "PT_MV_STRING8:{00020329-0000-0000-C000-000000000046}:Keywords", -+ "rtf" => PR_RTF_COMPRESSED, -+ "dtstamp" => PR_LAST_MODIFICATION_TIME, -+ "endtime" => "PT_SYSTIME:{00062002-0000-0000-C000-000000000046}:0x820e", -+ "location" => "PT_STRING8:{00062002-0000-0000-C000-000000000046}:0x8208", -+ "meetingstatus" => "PT_LONG:{00062002-0000-0000-C000-000000000046}:0x8217", -+ "reminder" => "PT_LONG:{00062008-0000-0000-C000-000000000046}:0x8501", -+ "sensitivity" => PR_SENSITIVITY, -+ "subject" => PR_SUBJECT, -+ "starttime" => "PT_SYSTIME:{00062002-0000-0000-C000-000000000046}:0x820d", -+ "uid" => "PT_BINARY:{6ED8DA90-450B-101B-98DA-00AA003F1305}:0x3", -+ // Append the appointment attributes since we need them for appointment creation -+ "label" => "PT_LONG:{00062002-0000-0000-C000-000000000046}:0x8214", -+ "recurring" => "PT_BOOLEAN:{00062002-0000-0000-C000-000000000046}:0x8223", -+ "recurring_data" => "PT_BINARY:{00062002-0000-0000-C000-000000000046}:0x8216", -+ "recurring_pattern" => "PT_STRING8:{00062002-0000-0000-C000-000000000046}:0x8232", -+ "basedate" => "PT_SYSTIME:{00062002-0000-0000-C000-000000000046}:0x8228", -+ "icon_index" => PR_ICON_INDEX, -+ "entryid" => PR_ENTRYID, -+ "message_class" => PR_MESSAGE_CLASS, -+ "parententryid" => PR_PARENT_ENTRYID, -+ "message_flags" => PR_MESSAGE_FLAGS, -+ "importance" => PR_IMPORTANCE, -+ // Append the common attributes since we need them for appointment creation -+ "contacts" => "PT_MV_STRING8:{00062008-0000-0000-C000-000000000046}:0x853a", -+ "contacts_string" => "PT_STRING8:{00062008-0000-0000-C000-000000000046}:0x8586", -+ "commonstart" => "PT_SYSTIME:{00062008-0000-0000-C000-000000000046}:0x8516", -+ "commonend" => "PT_SYSTIME:{00062008-0000-0000-C000-000000000046}:0x8517", -+ "remindertime" => "PT_SYSTIME:{00062008-0000-0000-C000-000000000046}:0x8502", -+ "duration" => "PT_LONG:{00062002-0000-0000-C000-000000000046}:0x8213", -+ "reminder_minutes" => "PT_LONG:{00062008-0000-0000-C000-000000000046}:0x8501", -+ "reminder" => "PT_BOOLEAN:{00062008-0000-0000-C000-000000000046}:0x8503", -+ "flagdueby" => "PT_SYSTIME:{00062008-0000-0000-C000-000000000046}:0x8560", -+ "lid_contact_link_search_key" => "PT_BINARY:{00062008-0000-0000-C000-000000000046}:0x8584", -+ "lid_contact_link_entryid" => "PT_BINARY:{00062008-0000-0000-C000-000000000046}:0x8585" -+ ); -+ -+ /** -+ * Constructor -+ * @param resource $store MAPI Message Store Object -+ * @param resource $message the MAPI Source message -+ */ -+ function linkedAppointment($_store) -+ { -+ $this->_store = $_store; -+ } -+ -+ function setLinkedContact($mapimessage) -+ { -+ // get the linked contact (if any) -+ // Set the appointment attributes -+ $aprops = $this->_appointmentmapping; -+ // Get the id's of the above... -+ foreach ($aprops as $key => $value) { -+ $aprops[$key] = $this->GetPropIDFromString($this->_store, $value); -+ } -+ $appointment = mapi_getprops($mapimessage, $aprops); -+ $recurrence = new Recurrence($this->_store, $mapimessage); -+ $recur = $recurrence->getRecurrence(); -+ if (isset($appointment[$aprops["lid_contact_link_entryid"]])) { -+ // we have a linked contact. so continue here, otherwise exit silently... -+ $entryid = $this->_unpackContactLinkEntryIDS(bin2hex($appointment[$aprops["lid_contact_link_entryid"]])); -+ // Set the contact attributes -+ $cprops = $this->_contactmapping; -+ // Get the id's of the above... -+ foreach ($cprops as $key => $value) { -+ $cprops[$key] = $this->GetPropIDFromString($this->_store, $value); -+ } -+ foreach ($entryid as $value) { -+ if (($contact_msg = mapi_msgstore_openentry($this->_store,$value))) { -+ $contact = mapi_getprops($contact_msg, $cprops); -+ switch ($appointment[$aprops["entryid"]]) { -+ case $contact[$cprops["birthday_event_entryid"]] : -+ if ($contact[$cprops["birthday"]] != $recur["start"]) { -+ mapi_setprops($contact_msg,array($cprops["birthday"] => $recur["start"])); -+ mapi_savechanges($contact_msg); -+ } -+ break; -+ case $contact[$cprops["anniversary_event_entryid"]] : -+ if ($contact[$cprops["anniversary"]] != $recur["start"]) { -+ mapi_setprops($contact_msg,array($cprops["anniversary"] => $recur["start"])); -+ mapi_savechanges($contact_msg); -+ } -+ break; -+ } -+ } -+ } -+ } -+ } -+ // $what 0x01 = birthday 0x02 = anniversary -+ function setLinkedAppointment($mapimessage,$what) -+ { -+ // We love MS for this... -+ $arrayMonth = array(0,44640,84960,129600,172800,217440,260640,305280,348480,393120,437760,480960); -+ -+ // Set the appointment attributes -+ $aprops = $this->_appointmentmapping; -+ // Get the id's of the above... -+ foreach ($aprops as $key => $value) { -+ $aprops[$key] = $this->GetPropIDFromString($this->_store, $value); -+ } -+ -+ // Set the contact attributes -+ $cprops = $this->_contactmapping; -+ // Get the id's of the above... -+ foreach ($cprops as $key => $value) { -+ $cprops[$key] = $this->GetPropIDFromString($this->_store, $value); -+ } -+ -+ // Get the contact properties -+ $contact = mapi_getprops($mapimessage,$cprops); -+ -+ // open root container, if not existing, leave this function... -+ $rootcontainer = mapi_msgstore_openentry($this->_store); -+ if ($rootcontainer) { -+ // find the appointment container, if this fails, leave this function since we cannot proceed... -+ if (($rootcontainerprops = mapi_getprops($rootcontainer, array(PR_IPM_APPOINTMENT_ENTRYID)))) { -+ $parententryid = $rootcontainerprops[PR_IPM_APPOINTMENT_ENTRYID]; -+ -+ $entryid = false; -+ switch ($what) { -+ case 0x01 : if (isset($contact[$cprops["birthday_event_entryid"]])) -+ $entryid = $contact[$cprops["birthday_event_entryid"]]; -+ $entrydate = $contact[$cprops["birthday"]]; -+ $entryprop = $cprops["birthday_event_entryid"]; -+ $entrylabel = 8; -+ $entrysubject = _("Birthday")." "._("of")." ".$contact[$cprops["fileas"]]; -+ break; -+ case 0x02 : if (isset($contact[$cprops["anniversary_event_entryid"]])) -+ $entryid = $contact[$cprops["anniversary_event_entryid"]]; -+ $entrydate = $contact[$cprops["anniversary"]]; -+ $entryprop = $cprops["anniversary_event_entryid"]; -+ $entrylabel = 9; -+ $entrysubject = _("Special Date")." "._("of")." ".$contact[$cprops["fileas"]]; -+ break; -+ } -+ -+ if ($entrydate) { -+ // open if there is a linked appointment and it can be opened (no one deleted it by accident...) -+ // otherwise create it. -+ if ($entryid && -+ ($appointment_msg = mapi_msgstore_openentry($this->_store,$entryid))) { -+ $appointment = mapi_getprops($appointment_msg); -+ } else { -+ // create with base settings -+ $folder = mapi_msgstore_openentry($this->_store,$parententryid); -+ $appointment_msg = mapi_folder_createmessage($folder); -+ $appointment = array($aprops["message_class"] => "IPM.Appointment", -+ $aprops["location"] => "", -+ $aprops["body"] => "", -+ $aprops["busystatus"] => 0 -+ ); -+ mapi_setprops($appointment_msg,$appointment); -+ } -+ // Have the starttime im GMT -+ $starttime = gmmktime(0,0,0, -+ date("m",$entrydate), -+ date("j",$entrydate), -+ date("Y",$entrydate)); -+ // Just update something in case changes occured to reduce amount -+ // of sync activities... -+ -+ if ($entrydate != $appointment[$aprops["starttime"]] || -+ $entrysubject != $appointment[$aprops["subject"]]) { -+ // Reset the subject in case the name has changed -+ $appointment[$aprops["subject"]] = $entrysubject; -+ // Set the label to 8 = birthday and 9 = anniversary -+ $appointment[$aprops["label"]] = $entrylabel; -+ // Instead of having rubbish inside... -+ $appointment[$aprops["recurring_pattern"]] = ""; -+ // Setting the reminder values -+ $appointment[$aprops["reminder"]] = true; -+ $appointment[$aprops["reminder_minutes"]] = 15; -+ $appointment[$aprops["remindertime"]] = $starttime-(15*60); -+ // Setting start & Endtime -+ $appointment[$aprops["starttime"]] = $starttime; -+ $appointment[$aprops["endtime"]] = $starttime + 86400; -+ // Set duration upon diff between start and endtime in minutes. -+ $appointment[$aprops["duration"]] = ($appointment[$aprops["endtime"]] - $appointment[$aprops["starttime"]]) / 60; -+ // Sure... birthdays and anniversaries occur on daily base :-) -+ $appointment[$aprops["recurring"]] = true; -+ $appointment[$aprops["alldayevent"]] = true; -+ // Update the id's and search keys -+ $appointment[$aprops["lid_contact_link_entryid"]] = hex2bin($this->_packContactLinkEntryIDS(array($contact[$cprops["entryid"]]))); -+ $appointment[$aprops["lid_contact_link_search_key"]] = hex2bin($this->_packContactLinkSearchKeys(array($contact[$cprops["search_key"]]))); -+ // Set the changed properties -+ mapi_setprops($appointment_msg,$appointment); -+ $recurrence = new Recurrence($this->_store, $appointment_msg); -+ $tz = array(); -+ $tz["timezone"] = (($entrydate-$starttime)/3600)*60; -+ $tz["timezonedst"] = 0; -+ $tz["dstendmonth"] = 0; -+ $tz["dstendweek"] = 0; -+ $tz["dstendhour"] = 0; -+ $tz["dststartmonth"] = 0; -+ $tz["dststartweek"] = 0; -+ $tz["dststarthour"] = 0; -+ // Set the iconindex to be recurring -+ $appointment[$aprops["icon_index"]] = 1025; -+ // Set the changed properties -+ $appointment = mapi_setprops($appointment_msg,$appointment); -+ // Recurring values -+ $recur["type"] = 13; -+ $recur["subtype"] = 2; -+ $recur["month"] = $arrayMonth[gmdate("m",$starttime)-1]; -+ $recur["everyn"] = 12; -+ $recur["regen"] = 1; -+ $recur["monthday"] = gmdate("j",$starttime); -+ $recur["term"] = 0x23; -+ $recur["numoccur"] = 0; -+ $recur["start"] = $starttime; -+ $recur["end"] = 79870662000; // no end -+ $recur["startocc"] = 0; -+ $recur["endocc"] = 1440; -+ // Let class.recurrence do its job. -+ $recurrence->setRecurrence($tz, $recur); -+ // Save the changes to message -+ mapi_savechanges($appointment_msg); -+ $appointment = mapi_getprops($appointment_msg); -+ mapi_setprops($mapimessage,array($entryprop => $appointment[$aprops['entryid']])); -+ mapi_savechanges($mapimessage); -+ } -+ } -+ } -+ } -+ } -+ /** -+ * unpacks the Contact Link Entry IDs -+ * -+ * @param string in hex with the value -+ * @return array with all binary Contact Link Entry IDS -+ * -+ */ -+ function _unpackContactLinkEntryIDS($value) -+ { -+ $contact_link_entry_ids = unpack("Vcount",hex2bin(substr($value,0,8))); -+ $contact_link_entry_ids["entry_ids"] = array(); -+ $length=8; -+ for ($j=0,$i=8;$j<$contact_link_entry_ids["count"];$j++,$i=$i+$length+8) { -+ $l = unpack("Vlength",hex2bin(substr($value,$i,8))); -+ $length=$l["length"]; -+ $temp = unpack ("VFlags/A16ProviderUID/VVersion/VType/VIndext/Vcbid/A*abeid",hex2bin(substr($value,$i+8,($length*2)))); -+ $temp["abeid"] = hex2bin(substr(bin2hex($temp["abeid"]),0,$temp["cbid"]*2)); -+ $contact_link_entry_ids["entry_ids"][]=$temp["abeid"]; -+ } -+ return $contact_link_entry_ids["entry_ids"]; -+ } -+ -+ /** -+ * packs the Contact Link Entry IDs -+ * -+ * @param array with all binary Contact Link Entry IDs -+ * @return string in hex with the value -+ * -+ */ -+ function _packContactLinkEntryIDS($values) { -+ $temp=""; -+ for ($i=0;$i -diff -ruN /usr/src/zarafa/zarafa-6.30.4.17264/php-ext/include/mapi/class.recurrence.php mapi/class.recurrence.php ---- /usr/src/zarafa/zarafa-6.30.4.17264/php-ext/include/mapi/class.recurrence.php Fri Oct 16 21:05:22 2009 -+++ mapi/class.recurrence.php Tue Oct 20 19:29:54 2009 -@@ -363,9 +363,13 @@ - * @param array $exception_props the exception properties (same properties as normal recurring items) - * @param date $base_date the base date of the exception (actual GMT time of non-exception occurrence) - * @param boolean $delete true - delete occurrence, false - create new exception or modify existing -+ * @param boolean $islocal true - expect the base_date in local time (happens in case basedate is returned from WA! - */ -- function createException($exception_props, $base_date, $delete = false) -+ function createException($exception_props, $base_date, $delete = false, $islocal=false) - { -+ // CHANGED dw2412 to support local base_date as delivered from WebAccess -+ if ($islocal == true) $base_date = $this->toGMT($this->tz, $base_date); -+ - $baseday = $this->dayStartOf($this->fromGMT($this->tz, $base_date)); - $basetime = $baseday + $this->recur["startocc"] * 60; - -@@ -447,8 +451,10 @@ - * Modifies an existing exception, but only updates the given properties - * NOTE: You can't remove properites from an exception, only add new ones - */ -- function modifyException($exception_props, $base_date) -+ function modifyException($exception_props, $base_date, $islocal=false) - { -+ // ADDED dw2412 to support local base_date as delivered from WebAccess -+ if ($islocal == true) $base_date = $this->toGMT($this->tz, $base_date); - if(!$this->isValidExceptionDate($base_date, $exception_props[$this->proptags["startdate"]])) - return false; - -@@ -573,13 +579,17 @@ - - // Returns the start or end time of the occurrence on the given base date. - // This assumes that the basedate you supply is correct .. ! -- function getOccurrenceStart($basedate) { -- $daystart = $this->dayStartOf($this->fromGMT($this->tz, $basedate)); -+ function getOccurrenceStart($basedate, $islocal = false) { -+ // CHANGED dw2412 to support local base_date as delivered from WebAccess -+ if ($islocal == false) $daystart = $this->dayStartOf($this->fromGMT($this->tz, $basedate)); -+ else $daystart = $this->dayStartOf($basedate); - return $this->toGMT($this->tz, $daystart + $this->recur["startocc"] * 60); - } - -- function getOccurrenceEnd($basedate) { -- $daystart = $this->dayStartOf($this->fromGMT($this->tz, $basedate)); -+ function getOccurrenceEnd($basedate, $islocal = false) { -+ // CHANGED dw2412 to support local base_date as delivered from WebAccess -+ if ($islocal == false) $daystart = $this->dayStartOf($this->fromGMT($this->tz, $basedate)); -+ else $daystart = $this->dayStartOf($basedate); - return $this->toGMT($this->tz, $daystart + $this->recur["endocc"] * 60); - } - -@@ -1229,8 +1239,12 @@ - /** - * Returns the exception if there is a CHANGE exception on the given base date, or FALSE otherwise - */ -- function getChangeException($basedate) -+ function getChangeException($basedate, $islocal) - { -+ // CHANGED dw2412 to support local base_date as delivered from WebAccess -+ if ($islocal == true) $basedate = $this->toGMT($this->tz, $basedate); -+ -+ - // Check if the occurrence is modified on the specified date - foreach($this->recur["changed_occurences"] as $changed) - { -@@ -1263,7 +1277,6 @@ - function dayStartOf($date) - { - $time1 = $this->gmtime($date); -- - return gmmktime(0, 0, 0, $time1["tm_mon"] + 1, $time1["tm_mday"], $time1["tm_year"] + 1900); - } - -diff -ruN /usr/src/zarafa/zarafa-6.30.4.17264/php-ext/include/mapi/mapiguid.php mapi/mapiguid.php ---- /usr/src/zarafa/zarafa-6.30.4.17264/php-ext/include/mapi/mapiguid.php Fri Oct 16 21:05:22 2009 -+++ mapi/mapiguid.php Tue Oct 20 19:29:54 2009 -@@ -67,4 +67,7 @@ - define('PS_MAPI', makeguid("{00020328-0000-0000-C000-000000000046}")); - define('PS_PUBLIC_STRINGS', makeguid("{00020329-0000-0000-C000-000000000046}")); - define('PS_INTERNET_HEADERS', makeguid("{00020386-0000-0000-c000-000000000046}")); -+ -+define('MAPIUID_LinkContactEntryID', makeguid("{0aaa42fe-c718-101a-e885-0b651c240000}")); // http://msdn.microsoft.com/en-us/library/bb820924.aspx misc2 in CONTAB structure in Internet This parameter is reserved for Outlook internal use and is not supported. -+ - ?> -diff -ruN /usr/src/zarafa/zarafa-6.30.4.17264/php-ext/include/mapi/mapitags.php mapi/mapitags.php ---- /usr/src/zarafa/zarafa-6.30.4.17264/php-ext/include/mapi/mapitags.php Fri Oct 16 21:05:22 2009 -+++ mapi/mapitags.php Tue Oct 20 19:29:54 2009 -@@ -601,7 +601,25 @@ - define('PR_FINDER_ENTRYID' ,mapi_prop_tag(PT_BINARY, 0x35E7)); - define('PR_IPM_FAVORITES_ENTRYID' ,mapi_prop_tag(PT_BINARY, 0x6630)); - define('PR_IPM_PUBLIC_FOLDERS_ENTRYID' ,mapi_prop_tag(PT_BINARY, 0x6631)); -+//* start: Added dw2412 source www.cdolive.com/cdo10.htm -+define('PR_HAS_RULES' ,mapi_prop_tag(PT_BINARY, 0x663A)); - -+// Outlook AutoArchive Properties -+define('PR_AGING_PERIOD' ,mapi_prop_tag(PT_LONG, 0x36EC)); -+define('PR_AGING_GRANULARITY' ,mapi_prop_tag(PT_LONG, 0x36EE)); -+define('PR_AGING_FILENAME' ,mapi_prop_tag(PT_TSTRING, 0x6856)); -+define('PR_AGING_AGE_FOLDER' ,mapi_prop_tag(PT_BOOLEAN, 0x6857)); -+define('PR_AGING_DELETE_ITEMS' ,mapi_prop_tag(PT_BOOLEAN, 0x6855)); -+define('PR_AGING_FILE_NAME_AFTER9' ,mapi_prop_tag(PT_TSTRING, 0x6859)); -+define('PR_AGING_DONT_AGE_ME' ,mapi_prop_tag(PT_BOOLEAN, 0x6858)); -+define('PR_AGING_WHEN_DELETED_ON_SERVER' ,mapi_prop_tag(PT_BOOLEAN, 0x685B)); -+define('PR_AGING_WAIT_UNTIL_EXPIRED' ,mapi_prop_tag(PT_BOOLEAN, 0x685C)); -+define('PR_AGING_VERSION' ,mapi_prop_tag(PT_LONG, 0x685D)); -+define('PR_AGING_DEFAULT' ,mapi_prop_tag(PT_LONG, 0x685E)); -+ -+ -+ -+//* End : added dw2412 - - /* Proptags 0x35E8-0x35FF reserved for folders "guaranteed" by 'PR_VALID_FOLDER_MASK */ - -@@ -637,6 +655,19 @@ - define('PR_DEFAULT_VIEW_ENTRYID' ,mapi_prop_tag(PT_BINARY, 0x3616)); - define('PR_ASSOC_CONTENT_COUNT' ,mapi_prop_tag(PT_LONG, 0x3617)); - -+//* start: Added dw2412 source www.cdolive.com/cdo10.htm -+define('PR_DEF_FORM_ALLOWED' ,mapi_prop_tag(PT_LONG, 0x3FE2)); -+define('PR_PUBLISH_IN_ADDRESS_BOOK' ,mapi_prop_tag(PT_BOOLEAN, 0x3FE6)); -+define('PR_WEBPAGE' ,mapi_prop_tag(PT_TSTRING, 0x36DF)); -+define('PR_FOLDER_VIEWS_ONLY' ,mapi_prop_tag(PT_LONG, 0x36E1)); -+define('PR_DEF_MSG_CLASS' ,mapi_prop_tag(PT_TSTRING, 0x36E5)); -+define('PR_DEF_FORM_NAME' ,mapi_prop_tag(PT_TSTRING, 0x36E6)); -+define('PR_GENERATE_EXCHANGE_VIEWS' ,mapi_prop_tag(PT_BOOLEAN, 0x36E9)); -+define('PR_VIEW_NAME' ,mapi_prop_tag(PT_TSTRING, 0x7006)); -+define('PR_OFFLINE_FLAG' ,mapi_prop_tag(PT_LONG, 0x663D)); -+define('PR_REPLICA_VERSION' ,mapi_prop_tag(PT_LONG, 0x664B)); -+//* end : Added dw2412 -+ - define('PR_RIGHTS' ,mapi_prop_tag(PT_LONG, 0x6639)); - - /* Reserved 0x36C0-0x36FF */ -@@ -1231,6 +1262,9 @@ - - define('PR_PROCESSED', mapi_prop_tag(PT_BOOLEAN, 0x7D01)); - -+// ADDED dw2412 Contact Photo Attachment -+define('PR_ATTACHMENT_CONTACTPHOTO' ,mapi_prop_tag(PT_BOOLEAN, 0x7FFF)); -+ - // Delegates properties - define('PR_DELEGATES_SEE_PRIVATE', mapi_prop_tag(PT_MV_LONG, 0x686B)); - define('PR_SCHDINFO_DELEGATE_ENTRYIDS', mapi_prop_tag(PT_MV_BINARY, 0x6845)); ---- /usr/src/zarafa/zarafa-6.30.4.17264/php-ext/Makefile.am 2009-10-16 15:55:59.000000000 +0200 -+++ zarafa-6.30.4/php-ext/Makefile.am.brodowski 2009-10-24 23:48:37.000000000 +0200 -@@ -23,7 +23,7 @@ - # and be missing at runtime. - # therefore, we explicitly link mapi.so with -lpthread :( - --dist_data_DATA = include/mapi/mapicode.php include/mapi/mapidefs.php include/mapi/mapitags.php include/mapi/mapi.util.php include/mapi/class.recurrence.php include/mapi/class.meetingrequest.php include/mapi/class.freebusypublish.php include/mapi/mapiguid.php -+dist_data_DATA = include/mapi/mapicode.php include/mapi/mapidefs.php include/mapi/mapitags.php include/mapi/mapi.util.php include/mapi/class.recurrence.php include/mapi/class.meetingrequest.php include/mapi/class.freebusypublish.php include/mapi/mapiguid.php include/mapi/class.autoarchivesettings.php include/mapi/class.linkedappointment.php - datadir = ${datarootdir}/php/mapi - - mapi_la_SOURCES = main.cpp Session.cpp SessionPool.cpp util.cpp \ diff --git a/zarafa-6.30.4-package.patch b/zarafa-6.30.4-package.patch deleted file mode 100644 index 3c42aa1..0000000 --- a/zarafa-6.30.4-package.patch +++ /dev/null @@ -1,48 +0,0 @@ -Patch by Robert Scheck for zarafa >= 6.30.4, which only -removes the paths from autoconf/automake related files, that don't exist in the OSS -version of Zarafa. Having these paths not removed causes autoreconf to fail, but a -re-run of autoreconf is needed in order to get the rpaths completely out of all the -libraries and binaries built during the make process. - ---- zarafa-6.30.4/configure.ac 2009-03-17 17:30:45.000000000 +0100 -+++ zarafa-6.30.4/configure.ac.fedora 2009-03-31 20:34:29.000000000 +0200 -@@ -591,17 +591,6 @@ - version - specialbuild - ]) --dnl non-oss files --if test -d `dirname $0`/licensed; then --AC_CONFIG_FILES([ -- liblicense/Makefile -- licensed/Makefile -- ECtools/zarafa-backup/Makefile -- ECtools/zarafa-backup/helpers/Makefile -- ECtools/zarafa-report/Makefile -- debian/zarafa.install --]) --fi - - AC_OUTPUT - ---- zarafa-6.30.4/ECtools/Makefile.am 2009-04-23 22:10:44.000000000 +0200 -+++ zarafa-6.30.4/ECtools/Makefile.am.fedora 2009-04-25 21:20:43.000000000 +0200 -@@ -1,7 +1,3 @@ --if ! OSS_ONLY --PROSUBS = zarafa-backup zarafa-report --endif -- - if WITH_TESTTOOLS - TESTSUBS = ECTestTools - endif ---- zarafa-6.30.4/Makefile.am 2009-04-23 22:10:44.000000000 +0200 -+++ zarafa-6.30.4/Makefile.am.fedora 2009-04-25 21:20:26.000000000 +0200 -@@ -1,9 +1,5 @@ - AUTOMAKE_OPTIONS = 1.8 foreign - --if ! OSS_ONLY --PROSUBS = liblicense licensed --endif -- - SUBDIRS = common libfreebusy mapi4linux $(PROSUBS) provider libicalmapi inetmapi php-ext spooler gateway caldav ECtools installer po doc - - if WITH_PERL diff --git a/zarafa-6.30.4-perl.patch b/zarafa-6.30.4-perl.patch deleted file mode 100644 index 3c5bed5..0000000 --- a/zarafa-6.30.4-perl.patch +++ /dev/null @@ -1,53 +0,0 @@ -Patch by Robert Scheck for Zarafa >= 6.30.3, which -replaces the hardcoded perl directories by correct ones (in a dynamic way). Only -Debian and Ubuntu have ExtUtils in /usr/share, openSUSE, Fedora and RHEL/CentOS -use /usr/lib. So let us use the correct way to detect the directory. - -This patch should be an advantage to OSS users on non-Debian distributions when -using Perl API, as the correct directory will get picked up. - ---- zarafa-6.30.0/configure.ac 2009-07-20 18:41:07.000000000 +0200 -+++ zarafa-6.30.0/configure.ac.perl 2009-10-16 00:23:52.000000000 +0200 -@@ -127,6 +127,22 @@ - # build perl stuff - AC_ARG_ENABLE(perl, AC_HELP_STRING([--enable-perl], [enable building perl bindings]), [want_perl=${enableval}], [want_perl=no]) - AM_CONDITIONAL(WITH_PERL, test "$want_perl" = "yes") -+if test "x$want_perl" = "xyes"; then -+ AC_PATH_PROG([PERL], [perl], [no]) -+ if test "x$PERL" = "xno"; then -+ AC_MSG_ERROR([perl is required for building perl bindings]) -+ fi -+ -+ AC_MSG_CHECKING([for perl installarchlib]) -+ PERL_ARCHLIB=`$PERL -V:installarchlib | sed -e "s/^.*='//" -e "s/';$//"` -+ AC_MSG_RESULT([$PERL_ARCHLIB]) -+ AC_SUBST(PERL_ARCHLIB) -+ -+ AC_MSG_CHECKING([for perl privlib]) -+ PERL_PRIVLIB=`$PERL -V:privlib | sed -e "s/^.*='//" -e "s/';$//"` -+ AC_MSG_RESULT([$PERL_PRIVLIB]) -+ AC_SUBST(PERL_PRIVLIB) -+fi - - # testtools require ncurses - if test "$want_tests" = "yes"; then ---- zarafa-6.30.0/perl/Makefile.am 2009-07-20 18:41:06.000000000 +0200 -+++ zarafa-6.30.0/perl/Makefile.am.perl 2009-10-16 00:24:51.000000000 +0200 -@@ -1,7 +1,6 @@ - lib_LTLIBRARIES = libperlmapi.la - --PVERSION=5.8.8 --AM_CPPFLAGS = $(DEBUGFLAGS) -DLINUX -I$(top_srcdir)/mapi4linux/include -I$(top_srcdir)/provider/common -I${top_srcdir}/common -I/usr/lib/perl/$(PVERSION)/CORE -+AM_CPPFLAGS = $(DEBUGFLAGS) -DLINUX -I$(top_srcdir)/mapi4linux/include -I$(top_srcdir)/provider/common -I${top_srcdir}/common -I$(PERL_ARCHLIB)/CORE - - libperlmapi_la_LIBADD = ${top_builddir}/mapi4linux/src/libmapi.la \ - ${top_builddir}/common/libcommon_mapi.la \ -@@ -12,7 +11,7 @@ - CLEANFILES = MAPI.cpp - - .xs.cpp: typemap -- xsubpp -noprototypes -nolinenumbers -C++ -typemap /usr/share/perl/$(PVERSION)/ExtUtils/typemap $< > $@; \ -+ xsubpp -noprototypes -nolinenumbers -C++ -typemap $(PERL_PRIVLIB)/ExtUtils/typemap $< > $@; \ - if [ $$? -ne 0 ]; then rm $@; fi - - check-syntax: diff --git a/zarafa.ini b/zarafa.ini deleted file mode 100644 index 160434a..0000000 --- a/zarafa.ini +++ /dev/null @@ -1,2 +0,0 @@ -; Enable Zarafa mapi extension module -extension=mapi.so diff --git a/zarafa.spec b/zarafa.spec deleted file mode 100644 index ea52ca7..0000000 --- a/zarafa.spec +++ /dev/null @@ -1,844 +0,0 @@ -# -# Releasing with this .spec, for fun and profit; -# -# = Beta Release or Release Candidate = -# -# 1. Set beta_or_rc to 1 -# 2. Set actual_release to the actual_release value of the previous -# build attempt, +1 -# - The release tag in case of a beta_or_rc release is (statically) -# prefixed with "0.", so that the first final release ("1") is always -# newer (in rpm-compver). -# 3. Set the SVN revision to the current SVN revision; -# - This ensures a future SVN revision is always *more* recent in -# rpm-compver -# - Lacking a unique zarafa-.svn.tar.gz source -# tarball, setting the correct SVN revision in the .spec is -# critical in order to be able to determine exactly what was in -# the tarball at the time of this build. You may recover the exact -# SVN revision used from the resulting SRPM and RPMs because it ends -# up in the RPM release tag. -# 4. Update %%changelog, considering the following; -# - Possibly change only the release tag for the most recent changelog -# %%changelog entry, if appropriate -# - Add a message about the changes to either the product or the RPM -# packaging -# 5. Build locally -# 6. Build in mock for; -# a) fedora-rawhide-x86_64, -# b) fedora-12-x86_64, -# c) fedora-11-x86_64, -# d) epel-5-x86_64, -# e) epel-4-x86_64 -# -# or scratch build in koji; -# -# for tag in dist-f13 dist-f12-updates-candidate dist-f11-updates-candidate \ -# dist-5E-epel dist-4E-epel; do -# echo "- $tag: `koji build --scratch --nowait $tag $srpm 2>&1 | grep \"Task info\" | awk '{print $3}'`" -# done -# -# 7. Should builds fail, repeat the process. -# -# = Final Release = -# -# NOTE: A final release of a version, or multiple final releases of the -# same version, of Zarafa 6.30.10 requires one unique tarball, probably -# named similar to zarafa-6.30.10.tar.gz. -# -# Once this tarball is used for an RPM package that is actually released, -# the .tar.gz source should not change anymore. You may, though, include -# patches for the 6.30.10 RPM package in this .spec and bumping the release -# number. -# -# When you do so, however, you will need to take into account upgrade paths -# between distribution versions. E.g., when releasing 6.30.10-2 to F-11, you -# would also need to release 6.30.10-2 to F-12. -# -# An alternative is to release 6.30.10.1 with a zarafa-6.30.10.1.tar.gz (yet -# again ensuring there is an upgrade path to later distribution versions) -# -# The point behind this has to do with reproducibility, though admittedly, -# the Source RPM corresponding to the binary RPM (comparing the -# -.src.rpm vs. the installed -# -..rpm) does reveal the actual SVN revision number, -# and should thus also build the exact same thing running in production (euh, -# at customers, that is). -# -# 1. Set beta_or_rc to 0 -# 2. Set actual_release to 1, or the value of actual_release of -# the previous stable release, +1 in case have already released -# this SVN revision as a stable product. -# 3. Set the SVN revision to the current SVN revision; -# - Lacking a unique zarafa-.svn.tar.gz source -# tarball, setting the correct SVN revision in the .spec is -# critical in order to be able to determine exactly what was in -# the tarball at the time of this build. You may recover the exact -# SVN revision used from the resulting SRPM, as the .spec in that -# SRPM contains the SVN revision number (but not the resulting RPMs -# just for the sake of appearance). -# 4. Update %%changelog, considering the following; -# - Remove all %%changelog stamps that have a beta_or_rc type of versioning, -# again just for appearances sake, possibly preserving the important -# messages from each beta_or_rc type of changelog entries, e.g.: -# -# * Some Time Your Name - 6.30.10-0.1svn12345 -# - Improve packaging -# -# might, in a final release, become: -# -# * Some Time Zarafa Release Engineering - 6.30.10-1 -# - Release 6.30.10 -# - Improve packaging -# -# - Possibly change only the release tag for the most recent changelog -# %%changelog entry, if appropriate. This is assuming there is no -# important or significant changes between the beta_or_rc and the final -# product. -# - Add a message about the changes to either the product or the RPM -# packaging if appropriate. -# 5. Build locally -# 6. Build in mock for; -# a) fedora-rawhide-x86_64, -# b) fedora-12-x86_64, -# c) fedora-11-x86_64, -# d) epel-5-x86_64, -# e) epel-4-x86_64 -# -# or scratch build in koji; -# -# for tag in dist-f13 dist-f12-updates-candidate dist-f11-updates-candidate \ -# dist-5E-epel dist-4E-epel; do -# echo "- $tag: `koji build --scratch --nowait $tag $srpm 2>&1 | grep \"Task info\" | awk '{print $3}'`" -# done -# -# 7. When mock or koji scratch builds fail, repeat the process. -# - -%define beta_or_rc 0 -%define actual_release 1 -%define svnrevision 20002 -%define with_ldap 1 -%define with_xmlto 1 - -Summary: Zarafa Outlook Sharing and Open Source Collaboration -Name: zarafa -Version: 6.30.14 -%if %{beta_or_rc} -Release: 0.%{actual_release}.svn%{svnrevision}%{?dist} -%else -Release: %{actual_release}%{?dist} -%endif -# Red Hat Legal has been advised by email from Zarafa that no license is -# required in order to use the letter string "zarafa" (combined with other -# words) in the package naming, to refer to the software as "Zarafa" to -# indicate its intended purpose, and to modify packages with bug fixes and -# enhancements. -License: AGPLv3 with exceptions -Group: Applications/Productivity -URL: http://www.zarafa.com/ -# http://www.zarafa.com/download-community -> "Zarafa Source Package" -Source0: %{name}-%{version}.tar.gz -Source1: %{name}.ini - -Patch0: zarafa-6.30.4-package.patch -# Patch 1, 2 and 3 were sent to upstream -Patch1: zarafa-6.30.4-perl.patch -Patch2: zarafa-6.30.10-undefined-symbol.patch -Patch3: zarafa-6.30.10-chmod.patch -# http://www.brodowski.org/zarafa/php-mapi/6.30.10.18495/18495_patch.diff -Patch10: zarafa-6.30.4-brodowski.patch - -BuildRequires: bison -BuildRequires: gcc-c++ -BuildRequires: byacc -BuildRequires: flex -BuildRequires: gettext -BuildRequires: libical-devel >= 0.42 -BuildRequires: libvmime07-devel -BuildRequires: libxml2-devel -BuildRequires: mysql-devel >= 4.1 -BuildRequires: ncurses-devel -BuildRequires: pam-devel -BuildRequires: php-devel -BuildRequires: libtool, automake, autoconf - -%if 0%{?fedora} > 8 -BuildRequires: libcurl-devel -BuildRequires: perl-devel -%else -BuildRequires: curl-devel -BuildRequires: perl -%endif - -%if 0%{?fedora} >= 12 -BuildRequires: libuuid-devel -%endif - -%if %{with_ldap} -BuildRequires: openldap-devel -%endif - -%if %{with_xmlto} -BuildRequires: xmlto -%endif - -# The normal zarafa package pulls in all of zarafa -Requires: zarafa(ical) = %{version}-%{release} -Requires: zarafa(dagent) = %{version}-%{release} -Requires: zarafa(gateway) = %{version}-%{release} -Requires: zarafa(monitor) = %{version}-%{release} -Requires: zarafa(server) = %{version}-%{release} -Requires: zarafa(spooler) = %{version}-%{release} -Requires: zarafa(utils) = %{version}-%{release} -Requires: zarafa(config) = %{version}-%{release} - -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -%description -Zarafa Outlook Sharing is a Microsoft Exchange replacement. The Open Source -Collaboration provides an integration with your existing Linux mail server, -native mobile phone support by ActiveSync compatibility and a webaccess with -'Look & Feel' similar to Outlook using Ajax. Including an IMAP4 and a POP3 -gateway as well as an iCal/CalDAV gateway, Zarafa can combine the usability -with the stability and flexibility of a Linux server. - -The proven Zarafa groupware solution is using MAPI objects, provides a MAPI -client library as well as programming interfaces for C++, PHP and Perl. The -other Zarafa related packages need to be installed to gain all the features -and benefits of Zarafa Outlook Sharing and Open Source Collaboration. - -## -## Zarafa Client -## -%package client -Summary: Zarafa Client Library -Group: System Environment/Libraries -Requires: zarafa(common) = %{version}-%{release} -Provides: zarafa(client) = %{version}-%{release} - -%description client -Zarafa client libraries for use with integrated MAPI clients. - -## -## Zarafa Common files -## -%package common -Summary: Zarafa common files -Group: System Environment/Daemons -Requires(pre): shadow-utils -Provides: zarafa(common) = %{version}-%{release} - -%description common -Common files and directories required by most Zarafa packages. - -## -## Zarafa Delivery Agent -## -%package dagent -Summary: Zarafa Delivery Agent -Group: System Environment/Daemons -Requires: zarafa(client) = %{version}-%{release} -Requires: zarafa(common) = %{version}-%{release} -Requires(post): /sbin/chkconfig -Requires(preun): /sbin/service -Requires(preun): /sbin/chkconfig -Requires(postun): /sbin/service -Provides: zarafa(dagent) = %{version}-%{release} -Provides: zarafa(config::dagent) = %{version}-%{release} - -%description dagent -The delivery agent delivers e-mails into the Zarafa server. -It can be used to trigger the local mailer or act as the LMTP -server. - -## -## Zarafa Development Headers -## -%package devel -Summary: Development files for several Zarafa libraries -Group: Development/Libraries -Requires: %{name} = %{version}-%{release}, pkgconfig -Requires: zarafa(common) = %{version}-%{release} -Provides: %{name}-static = %{version}-%{release} - -%description devel -The zarafa-devel package includes header files and libraries necessary for -developing programs which use features from the Zarafa Outlook Sharing and -Open Source Collaboration. The proven Zarafa groupware solution is using -MAPI objects, provides a MAPI client library and programming interfaces for -C++, PHP and Perl. - -## -## Zarafa Gateway -## -%package gateway -Summary: Zarafa Gateway server (POP3/IMAP access) -Group: System Environment/Daemons -Requires: zarafa(client) = %{version}-%{release} -Requires: zarafa(common) = %{version}-%{release} -Requires(post): /sbin/chkconfig -Requires(preun): /sbin/service -Requires(preun): /sbin/chkconfig -Requires(postun): /sbin/service -Provides: zarafa(gateway) = %{version}-%{release} -Provides: zarafa(config::gateway) = %{version}-%{release} - -%description gateway -The gateway enables other e-mail clients to connect through -POP3 or IMAP to the Zarafa server to read their e-mail. With -IMAP, it is also possible to view the contents of shared -folders and subfolders. The gateway can be configured to -listen for POP3, POP3S, IMAP and/or IMAPS. - -## -## Zarafa iCal/CalDAV server -## -%package ical -Summary: The Zarafa iCal/CalDAV gateway -Group: System Environment/Daemons -Requires: zarafa(client) = %{version}-%{release} -Requires: zarafa(common) = %{version}-%{release} -Requires(post): /sbin/chkconfig -Requires(preun): /sbin/service -Requires(preun): /sbin/chkconfig -Requires(postun): /sbin/service -Provides: zarafa(ical) = %{version}-%{release} -Provides: zarafa(caldav) = %{version}-%{release} -Provides: zarafa(config::ical) = %{version}-%{release} -Provides: zarafa(config::caldav) = %{version}-%{release} - -%description ical -The iCal/CalDAV gateway enables users to retrieve their -calendar using iCalendar compliant clients. The iCal/CalDAV -gateway can be configured to listen for HTTP and HTTPS -requests. - -## -## Zarafa CalDAV package, merely an alias for zarafa-ical -## -%package caldav -Summary: The Zarafa iCal/CalDAV gateway -Group: System Environment/Daemons -Requires: zarafa(ical) = %{version}-%{release} - -%description caldav -The iCal/CalDAV gateway enables users to retrieve their -calendar using iCalendar compliant clients. The iCal/CalDAV -gateway can be configured to listen for HTTP and HTTPS -requests. - -## -## Zarafa Monitor Service -## -%package monitor -Summary: Zarafa Monitoring service -Group: System Environment/Daemons -Requires: zarafa(client) = %{version}-%{release} -Requires: zarafa(common) = %{version}-%{release} -Requires(post): /sbin/chkconfig -Requires(preun): /sbin/service -Requires(preun): /sbin/chkconfig -Requires(postun): /sbin/service -Provides: zarafa(monitor) = %{version}-%{release} -Provides: zarafa(config::monitor) = %{version}-%{release} - -%description monitor -The monitor checks user mailbox sizes. When a quotum is reached -the monitor sends a quota notification email. - -## -## Zarafa Backend Server -## -%package server -Summary: Zarafa Backend Server -Group: System Environment/Daemons -Requires: zarafa(common) = %{version}-%{release} -Requires(post): /sbin/chkconfig -Requires(preun): /sbin/service -Requires(preun): /sbin/chkconfig -Requires(postun): /sbin/service -Provides: zarafa(server) = %{version}-%{release} -Provides: zarafa(config) = %{version}-%{release} -Provides: zarafa(config::server) = %{version}-%{release} - -%description server -The Zarafa groupware backend server - -## -## Zarafa Spooler Service -## -%package spooler -Summary: Zarafa Spooler Service -Group: System Environment/Daemons -Requires: zarafa(client) = %{version}-%{release} -Requires: zarafa(common) = %{version}-%{release} -Requires(post): /sbin/chkconfig -Requires(preun): /sbin/service -Requires(preun): /sbin/chkconfig -Requires(postun): /sbin/service -Provides: zarafa(spooler) = %{version}-%{release} -Provides: zarafa(config::spooler) = %{version}-%{release} - -%description spooler -The spooler sends all pending Zarafa e-mail to the recipients, -from the Outbox of a user/all users. - -## -## Zarafa Utilities -## -%package utils -Summary: Zarafa Utilities -Group: Applications/System -Requires: zarafa(client) = %{version}-%{release} -Requires: zarafa(common) = %{version}-%{release} -Provides: zarafa(utils) = %{version}-%{release} - -%description utils -Administration utilities for the Zarafa Groupware environment -including reporting and password management. - -## -## MAPI System Libraries -## -%package -n libmapi -Summary: Mapi libraries by Zarafa -Group: System Environment/Libraries -Requires: zarafa(client) = %{version}-%{release} -Requires(post): /sbin/ldconfig -Requires(postun): /sbin/ldconfig - -%description -n libmapi -MAPI libraries by Zarafa. - -## -## MAPI Perl extension -## -%package -n perl-libmapi -Summary: Perl Mapi extension libraries by Zarafa -Group: System Environment/Libraries -Requires: perl - -%description -n perl-libmapi -Perl MAPI extension libraries by Zarafa. - -## -## MAPI PHP Extension -## -%package -n php-mapi -Summary: A PHP Mapi client by Zarafa -Group: Applications/Communications -# Bug: Without mod_ssl, reloading httpd causes core dump -Requires: mod_ssl -Requires: php >= 4.3 -Provides: php(mapi) = %{version}-%{release} - -%description -n php-mapi -PHP MAPI extension by Zarafa to enable MAPI communication in PHP. - -%prep -%setup -q -%patch0 -p1 -b .package -%patch1 -p1 -b .perl -%patch2 -p1 -b .symbol -%patch3 -p1 -b .chmod -#%%patch10 -p5 -b .brodowski - -# Needed to get rid of rpath -libtoolize --force -autoreconf --force --install - -%build -CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -g -ggdb" -export CFLAGS -%configure \ - --with-userscript-prefix=%{_sysconfdir}/%{name}/userscripts \ - --with-quotatemplate-prefix=%{_sysconfdir}/%{name}/quotamail \ -%if 0%{?rhel} > 0 - --enable-release \ -%endif - --disable-static \ - --disable-testtools \ - --enable-perl -make %{?_smp_mflags} - -%install -rm -rf $RPM_BUILD_ROOT -make \ -%if 0%{?rhel} > 0 - docdir=%{_datadir}/doc/%{name}/ \ - datarootdir=%{_datadir} \ -%endif - DESTDIR=$RPM_BUILD_ROOT \ - INSTALL='install -p' \ - install - -# Nuke all overlefts from licensed, managed or other proprietary items -rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/report-ca -rm -f $RPM_BUILD_ROOT%{_mandir}/man?/zarafa-{backup,restore,report,ldapms.cfg,licensed{,.cfg}}.* - -# Move all the initscripts to their appropriate place and -# ensure that all services are off by default at boot time -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/ -for service in server spooler dagent gateway monitor ical; do - if [ -f $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/%{name}-$service.init.fc ]; then - sed -e 's@345@-@' $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/%{name}-$service.init.fc > \ - $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/%{name}-$service - chmod 755 $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/%{name}-$service - touch -c -r $RPM_BUILD_ROOT{%{_datadir}/doc/%{name}/%{name}-$service.init.fc,%{_sysconfdir}/rc.d/init.d/%{name}-$service} - fi -done - -# Move the configuration files to their correct place and handle -# /usr/lib vs. /usr/lib64 for all architectures correct and set -# run_as_user, run_as_group and local_admin_users values correct -for config in $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/*.cfg; do - config=$(basename $config) - if [ -f $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/$config ]; then - sed -e 's@\(run_as_\(user\|group\)[[:space:]]*=\).*@\1 %{name}@' -e 's@/usr/lib/zarafa@%{_libdir}/%{name}@' \ - -e 's@\(local_admin_users[[:space:]]*=[[:space:]]*root.*\)@\1 %{name}@' \ - $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/$config > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/$config - chmod 640 $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/$config - touch -c -r $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/$config $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/$config - fi -done - -# Move the logrotate configuration file to it's correct place -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/ -sed -e 's@\(}\)@ create 0644 %{name} %{name}\n\1@' -e '1,6d' \ - $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/%{name}.logrotate > $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/%{name} -touch -c -r $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/%{name}.logrotate $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/%{name} - -# Install the PHP module configuration file appropriate -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/php.d/ -install -p -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/php.d/%{name}.ini - -# Create missing userscript directories for packaging them -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/userscripts/{create,delete}{user,group,company}.d/ - -# Move the userscripts to their correct place and symlink them -mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/userscripts/ -for userscript in companies_common.sh groups_common.sh users_common.sh \ - createcompany creategroup createuser deletecompany deletegroup deleteuser; do - mv -f $RPM_BUILD_ROOT{%{_sysconfdir},%{_datadir}}/%{name}/userscripts/$userscript - ln -sf ../../..%{_datadir}/%{name}/userscripts/$userscript $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/userscripts/$userscript -done - -# Create the data directory and install some files into -mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/ -install -p -m 755 installer/linux/db-{calc-storesize,convert-attachments-to-files} $RPM_BUILD_ROOT%{_datadir}/%{name}/ -install -p -m 755 installer/linux/ssl-certificates.sh $RPM_BUILD_ROOT%{_datadir}/%{name}/ -install -p -m 644 installer/ldap/%{name}.schema $RPM_BUILD_ROOT%{_datadir}/%{name}/ - -# Create the default log and lib directory for packaging -mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/{log,lib}/%{name}/ - -# Remove all libtool .la files to avoid packaging of them -rm -f $RPM_BUILD_ROOT%{_libdir}/{,php/modules,%{name}}/*.la - -# Remove files that are anyway in %doc or %{_datadir}/%{name}/ -rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/ - -%find_lang %{name} - -%clean -rm -rf $RPM_BUILD_ROOT - -%pre common -getent group %{name} > /dev/null || %{_sbindir}/groupadd -r %{name} -getent passwd %{name} > /dev/null || %{_sbindir}/useradd -r -g %{name} -d %{_localstatedir}/lib/%{name} -s /sbin/nologin -c "Zarafa Service Account" %{name} -exit 0 - -%post dagent -[ $1 -eq 1 ] && /sbin/chkconfig --add %{name}-dagent -# Ensure correct log file ownership after upgrade from official packages -chown %{name}:%{name} %{_localstatedir}/log/%{name}/dagent.* > /dev/null 2>&1 || : - -%post ical -[ $1 -eq 1 ] && /sbin/chkconfig --add %{name}-ical -# Ensure correct log file ownership after upgrade from official packages -chown %{name}:%{name} %{_localstatedir}/log/%{name}/ical.* > /dev/null 2>&1 || : - -%post gateway -[ $1 -eq 1 ] && /sbin/chkconfig --add %{name}-gateway -# Ensure correct log file ownership after upgrade from official packages -chown %{name}:%{name} %{_localstatedir}/log/%{name}/gateway.* > /dev/null 2>&1 || : - -%post monitor -[ $1 -eq 1 ] && /sbin/chkconfig --add %{name}-monitor -# Ensure correct log file ownership after upgrade from official packages -chown %{name}:%{name} %{_localstatedir}/log/%{name}/monitor.* > /dev/null 2>&1 || : - -%post server -[ $1 -eq 1 ] && /sbin/chkconfig --add %{name}-server -# Ensure correct log file ownership after upgrade from official packages -chown %{name}:%{name} %{_localstatedir}/log/%{name}/server.* > /dev/null 2>&1 || : - -%post spooler -[ $1 -eq 1 ] && /sbin/chkconfig --add %{name}-spooler -# Ensure correct log file ownership after upgrade from official packages -chown %{name}:%{name} %{_localstatedir}/log/%{name}/spooler.* > /dev/null 2>&1 || : - -%post -n libmapi -p /sbin/ldconfig - -%preun dagent -if [ $1 -eq 0 ]; then - /sbin/service %{name}-dagent stop > /dev/null 2>&1 || : - /sbin/chkconfig --del %{name}-dagent -fi - -%preun ical -if [ $1 -eq 0 ]; then - /sbin/service %{name}-ical stop > /dev/null 2>&1 || : - /sbin/chkconfig --del %{name}-ical -fi - -%preun gateway -if [ $1 -eq 0 ]; then - /sbin/service %{name}-gateway stop > /dev/null 2>&1 || : - /sbin/chkconfig --del %{name}-gateway -fi - -%preun monitor -if [ $1 -eq 0 ]; then - /sbin/service %{name}-monitor stop > /dev/null 2>&1 || : - /sbin/chkconfig --del %{name}-monitor -fi - -%preun server -if [ $1 -eq 0 ]; then - /sbin/service %{name}-server stop > /dev/null 2>&1 || : - /sbin/chkconfig --del %{name}-server -fi - -%preun spooler -if [ $1 -eq 0 ]; then - /sbin/service %{name}-spooler stop > /dev/null 2>&1 || : - /sbin/chkconfig --del %{name}-spooler -fi - -%postun dagent -if [ $1 -ne 0 ]; then - /sbin/service %{name}-dagent condrestart > /dev/null 2>&1 || : -fi - -%postun ical -if [ $1 -ne 0 ]; then - /sbin/service %{name}-ical condrestart > /dev/null 2>&1 || : -fi - -%postun gateway -if [ $1 -ne 0 ]; then - /sbin/service %{name}-gateway condrestart > /dev/null 2>&1 || : -fi - -%postun monitor -if [ $1 -ne 0 ]; then - /sbin/service %{name}-monitor condrestart > /dev/null 2>&1 || : -fi - -%postun server -if [ $1 -ne 0 ]; then - /sbin/service %{name}-server condrestart > /dev/null 2>&1 || : -fi - -%postun spooler -if [ $1 -ne 0 ]; then - /sbin/service %{name}-spooler condrestart > /dev/null 2>&1 || : -fi - -%postun -n libmapi -p /sbin/ldconfig - -%files -%defattr(-,root,root,-) -%doc installer/licenseagreement/AGPL-3 - -%files caldav -%defattr(-,root,root,-) -%doc installer/licenseagreement/AGPL-3 - -%files client -%defattr(-,root,root,-) -%doc installer/licenseagreement/AGPL-3 -%{_libdir}/libzarafaclient.so - -%files common -%defattr(-,root,root,-) -%doc installer/licenseagreement/AGPL-3 doc/performance-tuning.txt -%dir %{_sysconfdir}/%{name}/ -%config(noreplace) %{_sysconfdir}/logrotate.d/%{name} -%dir %{_libdir}/%{name}/ -%{_mandir}/man1/%{name}.1* -%dir %{_datadir}/%{name}/ -%dir %attr(0755,%{name},%{name}) %{_localstatedir}/lib/%{name}/ -%dir %attr(0755,%{name},%{name}) %{_localstatedir}/log/%{name}/ - -%files dagent -%defattr(-,root,root,-) -%doc installer/licenseagreement/AGPL-3 installer/linux/createuser.dotforward -%{_bindir}/%{name}-autorespond -%{_bindir}/%{name}-dagent -%config(noreplace) %attr(0640,%{name},%{name}) %{_sysconfdir}/%{name}/dagent.cfg -%{_sysconfdir}/rc.d/init.d/%{name}-dagent -%{_mandir}/man1/%{name}-dagent.1* -%{_mandir}/man5/%{name}-dagent.cfg.5* - -%files devel -%defattr(-,root,root,-) -%doc installer/licenseagreement/AGPL-3 -%{_libdir}/libicalmapi.so -%{_libdir}/libinetmapi.so -%{_libdir}/libmapi.so -%{_libdir}/libperlmapi.so -%{_libdir}/libcommon_mapi.a -%{_libdir}/libcommon_ssl.a -%{_libdir}/libcommon_util.a -%{_libdir}/libfreebusy.a -%{_includedir}/icalmapi/ -%{_includedir}/inetmapi/ -%{_includedir}/mapi4linux/ -%{_includedir}/%{name}/ -%{_libdir}/pkgconfig/%{name}.pc - -%files gateway -%defattr(-,root,root,-) -%doc installer/licenseagreement/AGPL-3 -%{_bindir}/%{name}-gateway -%config(noreplace) %attr(0640,%{name},%{name}) %{_sysconfdir}/%{name}/gateway.cfg -%{_sysconfdir}/rc.d/init.d/%{name}-gateway -%{_mandir}/man1/%{name}-gateway.1* -%{_mandir}/man5/%{name}-gateway.cfg.5* - -%files ical -%defattr(-,root,root,-) -%doc installer/licenseagreement/AGPL-3 -%{_bindir}/%{name}-ical -%config(noreplace) %attr(0640,%{name},%{name}) %{_sysconfdir}/%{name}/ical.cfg -%{_sysconfdir}/rc.d/init.d/%{name}-ical -%{_mandir}/man1/%{name}-ical.1* -%{_mandir}/man5/%{name}-ical.cfg.5* - -%files monitor -%defattr(-,root,root,-) -%doc installer/licenseagreement/AGPL-3 -%{_bindir}/%{name}-monitor -%config(noreplace) %attr(0640,%{name},%{name}) %{_sysconfdir}/%{name}/monitor.cfg -%dir %{_sysconfdir}/%{name}/quotamail/ -%config(noreplace) %{_sysconfdir}/%{name}/quotamail/companyhard.mail -%config(noreplace) %{_sysconfdir}/%{name}/quotamail/companysoft.mail -%config(noreplace) %{_sysconfdir}/%{name}/quotamail/companywarning.mail -%config(noreplace) %{_sysconfdir}/%{name}/quotamail/userhard.mail -%config(noreplace) %{_sysconfdir}/%{name}/quotamail/usersoft.mail -%config(noreplace) %{_sysconfdir}/%{name}/quotamail/userwarning.mail -%{_sysconfdir}/rc.d/init.d/%{name}-monitor -%{_mandir}/man1/%{name}-monitor.1* -%{_mandir}/man5/%{name}-monitor.cfg.5* - -%files server -f %{name}.lang -%defattr(-,root,root,-) -%doc installer/licenseagreement/AGPL-3 -%{_bindir}/%{name}-server -%config(noreplace) %attr(0640,%{name},%{name}) %{_sysconfdir}/%{name}/server.cfg -%config(noreplace) %attr(0640,%{name},%{name}) %{_sysconfdir}/%{name}/unix.cfg -%{_sysconfdir}/rc.d/init.d/%{name}-server -%dir %{_sysconfdir}/%{name}/userscripts/ -%{_sysconfdir}/%{name}/userscripts/createuser -%{_sysconfdir}/%{name}/userscripts/creategroup -%{_sysconfdir}/%{name}/userscripts/createcompany -%{_sysconfdir}/%{name}/userscripts/deleteuser -%{_sysconfdir}/%{name}/userscripts/deletegroup -%{_sysconfdir}/%{name}/userscripts/deletecompany -%{_sysconfdir}/%{name}/userscripts/*common.sh -%dir %{_sysconfdir}/%{name}/userscripts/createuser.d/ -%dir %{_sysconfdir}/%{name}/userscripts/creategroup.d/ -%dir %{_sysconfdir}/%{name}/userscripts/createcompany.d/ -%dir %{_sysconfdir}/%{name}/userscripts/deleteuser.d/ -%dir %{_sysconfdir}/%{name}/userscripts/deletegroup.d/ -%dir %{_sysconfdir}/%{name}/userscripts/deletecompany.d/ -%config(noreplace) %{_sysconfdir}/%{name}/userscripts/createcompany.d/00createpublic -%config(noreplace) %{_sysconfdir}/%{name}/userscripts/createuser.d/00createstore -%{_datadir}/%{name}/userscripts/ -%{_libdir}/%{name}/dbplugin.so -%{_libdir}/%{name}/unixplugin.so -%{_mandir}/man1/%{name}-server.1* -%{_mandir}/man5/%{name}-server.cfg.5* -%{_mandir}/man5/%{name}-unix.cfg.5* -%if %{with_ldap} -%{_datadir}/%{name}/%{name}.schema -%config(noreplace) %attr(0640,%{name},%{name}) %{_sysconfdir}/%{name}/ldap.active-directory.cfg -%config(noreplace) %attr(0640,%{name},%{name}) %{_sysconfdir}/%{name}/ldap.openldap.cfg -%{_libdir}/%{name}/ldapplugin.so -%{_mandir}/man5/%{name}-ldap.cfg.5* -%endif - -%files spooler -%defattr(-,root,root,-) -%doc installer/licenseagreement/AGPL-3 -%{_bindir}/%{name}-spooler -%config(noreplace) %attr(0640,%{name},%{name}) %{_sysconfdir}/%{name}/spooler.cfg -%{_sysconfdir}/rc.d/init.d/%{name}-spooler -%{_mandir}/man1/%{name}-spooler.1* -%{_mandir}/man5/%{name}-spooler.cfg.5* - -%files utils -%defattr(-,root,root,-) -%doc installer/licenseagreement/AGPL-3 -%{_bindir}/%{name}-admin -%{_bindir}/%{name}-fsck -%{_bindir}/%{name}-passwd -%{_bindir}/%{name}-stats -%{_datadir}/%{name}/db-calc-storesize -%{_datadir}/%{name}/db-convert-attachments-to-files -%{_datadir}/%{name}/ssl-certificates.sh -%{_mandir}/man1/%{name}-admin.1* -%{_mandir}/man1/%{name}-fsck.1* -%{_mandir}/man1/%{name}-passwd.1* -%{_mandir}/man1/%{name}-stats.1* - -%files -n libmapi -%defattr(-,root,root,-) -%doc installer/licenseagreement/AGPL-3 -%{_libdir}/libicalmapi.so.* -%{_libdir}/libinetmapi.so.* -%{_libdir}/libmapi.so.* - -%files -n perl-libmapi -%defattr(-,root,root,-) -%doc installer/licenseagreement/AGPL-3 -%{_libdir}/libperlmapi.so.* - -%files -n php-mapi -%defattr(-,root,root,-) -%doc installer/licenseagreement/AGPL-3 -%config(noreplace) %{_sysconfdir}/php.d/%{name}.ini -%{_datadir}/php/mapi/ -%if 0%{?rhel}%{?fedora} > 4 -%{_libdir}/php/modules/mapi.so -%else -%{_libdir}/php4/mapi.so -%endif - -%changelog -* Sat May 01 2010 Robert Scheck 6.30.14-1 -- Upgrade to 6.30.14 - -* Sun Apr 25 2010 Robert Scheck 6.30.13-1 -- Upgrade to 6.30.13 -- Moved zarafa.schema file from %%doc to %%{_datadir}/%%{name} - -* Sat Mar 20 2010 Robert Scheck 6.30.12-1 -- Upgrade to 6.30.12 - -* Fri Mar 19 2010 Robert Scheck 6.30.11-1 -- Upgrade to 6.30.11 - -* Tue Feb 23 2010 Robert Scheck 6.30.10-2 -- Backported a patch from trunk to avoid the crash of zarafa-server - when creating new user with db or unix plugin (#564282, #567262) -- Backported another patch from trunk to avoid the crash of httpd - caused by PHP mapi.so during the logon in the webaccess (#564129) - -* Sat Feb 06 2010 Robert Scheck 6.30.10-1 -- Upgrade to 6.30.10 (#498194) -- Initial spec file for Fedora and Red Hat Enterprise Linux (thanks - to Jeroen van Meeuwen, John van der Kamp and Steve Hardy)