diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index 28417b1..16a0be2 100644 --- a/.gitignore +++ b/.gitignore @@ -2,11 +2,6 @@ /.build-*.log /.*.swp /results_cyrus-imapd/ -/cyrus-imapd-*.tar.gz /cyrus-imapd-*/ -/cassandane-testdata-20170523.tar.gz -/cassandane-b97ba9c.tar.gz -/cassandane-0a6c13e.tar.gz -/cassandane-2f8f3f4.tar.gz -/cassandane-6d33978.tar.gz -/cassandane-6bd697c.tar.gz +/cyrus-imapd-*.tar.gz +/cyrus-imapd-*.gz.sig diff --git a/1966c22fc4249a1157a4d4c1224138ce78653514.patch b/1966c22fc4249a1157a4d4c1224138ce78653514.patch deleted file mode 100644 index 2cbe95d..0000000 --- a/1966c22fc4249a1157a4d4c1224138ce78653514.patch +++ /dev/null @@ -1,240 +0,0 @@ -From 1966c22fc4249a1157a4d4c1224138ce78653514 Mon Sep 17 00:00:00 2001 -From: Ken Murchison -Date: Sat, 21 Oct 2017 19:04:08 -0400 -Subject: [PATCH] Account for the removal of icaltimetype.is_utc field in - upcoming libical - ---- - configure.ac | 5 +++++ - imap/http_caldav.c | 2 +- - imap/http_caldav_sched.c | 4 ++-- - imap/http_tzdist.c | 22 +++++++++++----------- - imap/ical_support.c | 9 +++++++++ - imap/ical_support.h | 2 ++ - imap/jmap_ical.c | 4 ++-- - imap/xcal.c | 4 ++-- - 8 files changed, 34 insertions(+), 18 deletions(-) - -diff --git a/configure.ac b/configure.ac -index b7f2d0da9..8eb11966d 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1492,6 +1492,11 @@ dnl - icalrecur_freq_to_string, icalrecur_weekday_to_string], - [], [], [[#include ]]) - -+ AC_CHECK_MEMBER(icaltimetype.is_utc, -+ AC_DEFINE(ICALTIME_HAS_IS_UTC,[], -+ [Does icaltimetype have is_utc field?]), -+ [], [#include ]) -+ - AC_CHECK_LIB(ical, icalproperty_new_acknowledged, - AC_DEFINE(HAVE_VALARM_EXT_PROPS,[], - [Do we have built-in support for VALARM extensions props?])) -diff --git a/imap/http_caldav.c b/imap/http_caldav.c -index eb9d4add1..4cb11d228 100644 ---- a/imap/http_caldav.c -+++ b/imap/http_caldav.c -@@ -2391,7 +2391,7 @@ static struct icaltimetype icaltime_from_rfc3339_string(const char *str) - goto fail; - } - -- tt.is_utc = 1; -+ icaltime_set_utc(&tt, 1); - return tt; - - fail: -diff --git a/imap/http_caldav_sched.c b/imap/http_caldav_sched.c -index 1dc97a501..b896d871a 100644 ---- a/imap/http_caldav_sched.c -+++ b/imap/http_caldav_sched.c -@@ -355,7 +355,7 @@ static int imip_send_sendmail(icalcomponent *ical, - cp += sprintf(cp, "%s, %02u %s %04u", - day_of_week[icaltime_day_of_week(start)-1], - start.day, month_of_year[start.month-1], start.year); -- if (!start.is_date) { -+ if (!icaltime_is_date(start)) { - cp += sprintf(cp, " %02u:%02u", start.hour, start.minute); - if (start.second) cp += sprintf(cp, ":%02u", start.second); - strcpy(cp, " UTC"); -@@ -370,7 +370,7 @@ static int imip_send_sendmail(icalcomponent *ical, - day_of_week[icaltime_day_of_week(end)-1], - end.day, month_of_year[end.month-1], end.year); - } -- if (!end.is_date) { -+ if (!icaltime_is_date(end)) { - cp += sprintf(cp, " %02u:%02u", end.hour, end.minute); - if (end.second) cp += sprintf(cp, ":%02u", end.second); - strcpy(cp, " UTC"); -diff --git a/imap/http_tzdist.c b/imap/http_tzdist.c -index 258440ce9..a88e8bf68 100644 ---- a/imap/http_tzdist.c -+++ b/imap/http_tzdist.c -@@ -1376,7 +1376,7 @@ static void truncate_vtimezone(icalcomponent *vtz, - - /* Adjust DTSTART observance to UTC */ - icaltime_adjust(&obs.onset, 0, 0, 0, -obs.offset_from); -- obs.onset.is_utc = 1; -+ icaltime_set_utc(&obs.onset, 1); - - /* Check DTSTART vs window close */ - if (!icaltime_is_null_time(end) && -@@ -1451,7 +1451,7 @@ static void truncate_vtimezone(icalcomponent *vtz, - if (!eternal) { - /* Adjust UNTIL to local time (for iterator) */ - icaltime_adjust(&rrule.until, 0, 0, 0, obs.offset_from); -- rrule.until.is_utc = 0; -+ icaltime_set_utc(&rrule.until, 0); - } - - if (trunc_dtstart) { -@@ -1475,7 +1475,7 @@ static void truncate_vtimezone(icalcomponent *vtz, - - /* Adjust observance to UTC */ - icaltime_adjust(&obs.onset, 0, 0, 0, -obs.offset_from); -- obs.onset.is_utc = 1; -+ icaltime_set_utc(&obs.onset, 1); - - if (trunc_until && icaltime_compare(obs.onset, end) >= 0) { - /* Observance is on/after window close */ -@@ -1580,7 +1580,7 @@ static void truncate_vtimezone(icalcomponent *vtz, - - /* Adjust observance to UTC */ - icaltime_adjust(&obs.onset, 0, 0, 0, -obs.offset_from); -- obs.onset.is_utc = 1; -+ icaltime_set_utc(&obs.onset, 1); - - if (!icaltime_is_null_time(end) && - icaltime_compare(obs.onset, end) >= 0) { -@@ -1691,7 +1691,7 @@ static void truncate_vtimezone(icalcomponent *vtz, - case ICAL_DTSTART_PROPERTY: - /* Adjust window open to local time */ - icaltime_adjust(&start, 0, 0, 0, tombstone.offset_from); -- start.is_utc = 0; -+ icaltime_set_utc(&start, 0); - - icalproperty_set_dtstart(prop, start); - break; -@@ -1775,14 +1775,14 @@ static int action_get(struct transaction_t *txn) - /* Sanity check the parameters */ - if ((param = hash_lookup("start", &txn->req_qparams))) { - start = icaltime_from_string(param->s); -- if (param->next || !start.is_utc) { /* once only, UTC */ -+ if (param->next || !icaltime_is_utc(start)) { /* once only, UTC */ - return json_error_response(txn, TZ_INVALID_START, param, &start); - } - } - - if ((param = hash_lookup("end", &txn->req_qparams))) { - end = icaltime_from_string(param->s); -- if (param->next || !end.is_utc /* once only, UTC */ -+ if (param->next || !icaltime_is_utc(end) /* once only, UTC */ - || icaltime_compare(end, start) <= 0) { /* end MUST be > start */ - return json_error_response(txn, TZ_INVALID_END, param, &end); - } -@@ -1956,7 +1956,7 @@ static int action_expand(struct transaction_t *txn) - return json_error_response(txn, TZ_INVALID_START, param, NULL); - - start = icaltime_from_string(param->s); -- if (!start.is_utc) /* MUST be UTC */ -+ if (!icaltime_is_utc(start)) /* MUST be UTC */ - return json_error_response(txn, TZ_INVALID_START, param, &start); - - param = hash_lookup("end", &txn->req_qparams); -@@ -1964,7 +1964,7 @@ static int action_expand(struct transaction_t *txn) - return json_error_response(txn, TZ_INVALID_END, param, NULL); - - end = icaltime_from_string(param->s); -- if (!end.is_utc /* MUST be UTC */ -+ if (!icaltime_is_utc(end) /* MUST be UTC */ - || icaltime_compare(end, start) <= 0) { /* end MUST be > start */ - return json_error_response(txn, TZ_INVALID_END, param, &end); - } -@@ -2237,7 +2237,7 @@ static int json_error_response(struct transaction_t *txn, long tz_code, - else if (param->next) fmt = "Multiple %s parameters"; - else if (!param->s || !param->s[0]) fmt = "Missing %s value"; - else if (!time) fmt = "Invalid %s value"; -- else if (!time->is_utc) fmt = "Invalid %s UTC value"; -+ else if (!icaltime_is_utc(*time)) fmt = "Invalid %s UTC value"; - else fmt = "End date-time <= start date-time"; - - assert(!buf_len(&txn->buf)); -@@ -2500,7 +2500,7 @@ static struct buf *_icaltimezone_as_tzfile(icalcomponent* ical, - for (n = 0; n < obsarray->num_elements; n++) { - long long int t; - unsigned typeidx; -- icaltimetype tt_1601 = { 1601, 1, 1, 0, 0, 0, 1, 0, 0, NULL }; -+ icaltimetype tt_1601 = icaltime_from_string("1601-01-01T00:00:00Z"); - - obs = icalarray_element_at(obsarray, n); - t = icaltime_to_gmtime64(obs->onset); -diff --git a/imap/ical_support.c b/imap/ical_support.c -index 3deb649b1..13861b25a 100644 ---- a/imap/ical_support.c -+++ b/imap/ical_support.c -@@ -833,6 +833,15 @@ icalrecurrenceset_get_utc_timespan(icalcomponent *ical, - return span; - } - -+EXPORTED void icaltime_set_utc(struct icaltimetype *t, int set) -+{ -+#ifdef ICALTIME_HAS_IS_UTC -+ t->is_utc = set; -+#else -+ icaltime_set_timezone(t, set ? icaltimezone_get_utc_timezone() : NULL); -+#endif -+} -+ - - #ifndef HAVE_TZDIST_PROPS - -diff --git a/imap/ical_support.h b/imap/ical_support.h -index 8db35ed1f..0336d59e1 100644 ---- a/imap/ical_support.h -+++ b/imap/ical_support.h -@@ -100,6 +100,8 @@ extern struct icalperiodtype icalrecurrenceset_get_utc_timespan(icalcomponent *i - void*), - void *cb_rock); - -+extern void icaltime_set_utc(struct icaltimetype *t, int set); -+ - - /* Functions not declared in in libical < v2.0 */ - -diff --git a/imap/jmap_ical.c b/imap/jmap_ical.c -index c0d4910f5..dd8460f36 100644 ---- a/imap/jmap_ical.c -+++ b/imap/jmap_ical.c -@@ -737,7 +737,7 @@ static const char *tzid_from_icalprop(icalproperty *prop, int guess) { - } else { - icalvalue *val = icalproperty_get_value(prop); - icaltimetype dt = icalvalue_get_datetime(val); -- if (icaltime_is_valid_time(dt) && dt.is_utc) { -+ if (icaltime_is_valid_time(dt) && icaltime_is_utc(dt)) { - tzid = "Etc/UTC"; - } - } -@@ -2615,7 +2615,7 @@ static icalproperty *dtprop_to_ical(icalcomponent *comp, - /* Set the new property. */ - prop = icalproperty_new(kind); - icalproperty_set_value(prop, val); -- if (tz && !dt.is_utc) { -+ if (tz && !icaltime_is_utc(dt)) { - icalparameter *param = icalproperty_get_first_parameter(prop, ICAL_TZID_PARAMETER); - const char *tzid = icaltimezone_get_location(tz); - if (param) { -diff --git a/imap/xcal.c b/imap/xcal.c -index 27a32d96b..36129fdcc 100644 ---- a/imap/xcal.c -+++ b/imap/xcal.c -@@ -115,8 +115,8 @@ const char *icaltime_as_iso_string(const struct icaltimetype tt) - static char str[21]; - const char *fmt; - -- if (tt.is_date) fmt = "%04d-%02d-%02d"; -- else if (tt.is_utc) fmt = "%04d-%02d-%02dT%02d:%02d:%02dZ"; -+ if (icaltime_is_date(tt)) fmt = "%04d-%02d-%02d"; -+ else if (icaltime_is_utc(tt)) fmt = "%04d-%02d-%02dT%02d:%02d:%02dZ"; - else fmt = "%04d-%02d-%02dT%02d:%02d:%02d"; - - snprintf(str, sizeof(str), fmt, tt.year, tt.month, tt.day, diff --git a/24af24aa77144e0c1ab976657833b470502be7a8.patch b/24af24aa77144e0c1ab976657833b470502be7a8.patch deleted file mode 100644 index 99d70f8..0000000 --- a/24af24aa77144e0c1ab976657833b470502be7a8.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 24af24aa77144e0c1ab976657833b470502be7a8 Mon Sep 17 00:00:00 2001 -From: Robert Stepanek -Date: Mon, 26 Feb 2018 22:00:34 +0100 -Subject: [PATCH] xapian_wrap.cpp: change set_stem_version signature to return - void - ---- - imap/xapian_wrap.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/imap/xapian_wrap.cpp b/imap/xapian_wrap.cpp -index 0afb73674..ce07cdcf6 100644 ---- a/imap/xapian_wrap.cpp -+++ b/imap/xapian_wrap.cpp -@@ -259,7 +259,7 @@ static int stem_version_get(Xapian::Database *database) - return version; - } - --static int stem_version_set(Xapian::WritableDatabase *database, int version) -+static void stem_version_set(Xapian::WritableDatabase *database, int version) - { - std::ostringstream convert; - convert << version; diff --git a/7214a7e3a60c628575a73dab0437e065b9e9a32a.patch b/7214a7e3a60c628575a73dab0437e065b9e9a32a.patch deleted file mode 100644 index 0ac2548..0000000 --- a/7214a7e3a60c628575a73dab0437e065b9e9a32a.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 7214a7e3a60c628575a73dab0437e065b9e9a32a Mon Sep 17 00:00:00 2001 -From: Pavel Zhukov -Date: Tue, 27 Feb 2018 09:48:13 +0100 -Subject: [PATCH] Check if mechlist buffer is not empty - -Check if mechlist is null is redundant because it's initialized in -ask_capabilities flow. As the result some capabilities may be lost and -reported as not advertised -Keeping (now reduntant) null check to avoid regressions in the future -This is regression in 9fd201ba2b4ab58eda3372fb6765e1d5d8f027b4 - -Bug-Url: https://bugzilla.redhat.com/1543481 ---- - imtest/imtest.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/imtest/imtest.c b/imtest/imtest.c -index 716e2b252..85f4cc5ce 100644 ---- a/imtest/imtest.c -+++ b/imtest/imtest.c -@@ -3084,7 +3084,7 @@ int main(int argc, char **argv) - /* try to get the capabilities from the banner */ - mechlist = ask_capability(protocol, servername, - &capabilities, AUTO_BANNER); -- if (!mechlist && !(capabilities & CAPA_STARTTLS)) { -+ if ((!mechlist || !buf_len(mechlist)) && !(capabilities & CAPA_STARTTLS)) { - /* found no capabilities in banner -> get them explicitly */ - protocol->banner.is_capa = 0; - } diff --git a/79244173353d95149ad1944f61cc6bd2e43bd7d4.patch b/79244173353d95149ad1944f61cc6bd2e43bd7d4.patch deleted file mode 100644 index 835922b..0000000 --- a/79244173353d95149ad1944f61cc6bd2e43bd7d4.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 79244173353d95149ad1944f61cc6bd2e43bd7d4 Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Tue, 20 Feb 2018 13:17:39 +1100 -Subject: [PATCH] master: reject unix domain listen paths that are too long - -Fixes #2253 ---- - master/master.c | 15 ++++++++++++++- - 1 file changed, 14 insertions(+), 1 deletion(-) - -diff --git a/master/master.c b/master/master.c -index 325afd42f..a28731fd0 100644 ---- a/master/master.c -+++ b/master/master.c -@@ -496,6 +496,12 @@ static void service_create(struct service *s) - EX_SOFTWARE); - - if (s->listen[0] == '/') { /* unix socket */ -+ if (strlen(s->listen) >= sizeof(sunsock.sun_path)) { -+ syslog(LOG_ERR, "invalid listen '%s' (too long), disabling %s", -+ s->listen, s->name); -+ service_forget_exec(s); -+ return; -+ } - res0_is_local = 1; - res0 = (struct addrinfo *)xzmalloc(sizeof(struct addrinfo)); - res0->ai_flags = AI_PASSIVE; -@@ -513,7 +519,14 @@ static void service_create(struct service *s) - sunsock.sun_len = res0->ai_addrlen; - #endif - sunsock.sun_family = AF_UNIX; -- strcpy(sunsock.sun_path, s->listen); -+ -+ int r = snprintf(sunsock.sun_path, sizeof(sunsock.sun_path), "%s", s->listen); -+ if (r < 0 || (size_t) r >= sizeof(sunsock.sun_path)) { -+ /* belt and suspenders */ -+ fatal("Serious software bug found: " -+ "over-long listen path not detected earlier!", -+ EX_SOFTWARE); -+ } - unlink(s->listen); - } else { /* inet socket */ - char *port; diff --git a/cassandane.ini b/cassandane.ini index 60e6112..ed9290e 100644 --- a/cassandane.ini +++ b/cassandane.ini @@ -4,12 +4,15 @@ # The idea here is to run tests on the just-compiled version of cyrus-imapd. # However, many of the build locations are just random temporary directories, and # so this requires some finesse. +# +# Example config: https://github.com/cyrusimap/cyrus-imapd/blob/master/cassandane/cassandane.ini.example [cassandane] rootdir = CASSDIR/work pwcheck = alwaystrue # This is enabled in Fedora builds cleanup = no maxworkers = 1 +base_port = 19100 #[valgrind] #enabled = no @@ -34,9 +37,10 @@ quota = cyr_quota # backupd = yes [config] -altnamespace = no -unixhierarchysep = no -client_timeout = 60 +# Keep altnamespace on by default, many tests fail when set to no +#altnamespace = no +#unixhierarchysep = no +#client_timeout = 60 #[caldavtalk] #basedir = CASSDIR/cassandane/testdata diff --git a/changelog b/changelog new file mode 100644 index 0000000..4c596d4 --- /dev/null +++ b/changelog @@ -0,0 +1,1613 @@ +* Mon May 27 2024 Martin Osvald - 3.8.2-3 +- Fix broken imtest links (rhbz#2283375) + +* Wed Apr 17 2024 Martin Osvald - 3.8.2-2 +- Remove dependency on transfig package (rhbz#2274689) + +* Fri Mar 22 2024 Martin Osvald - 3.8.2-1 +- New version 3.8.2 +- spec file clean up + +* Fri Mar 01 2024 Martin Osvald - 3.8.1-11 +- imapd/pop3d crashing on TLS shutdown (rhbz#2256083) +- cyr_info crashes while printing conf-all/default confugiration (rhbz#2267210) + +* Tue Feb 27 2024 Martin Osvald - 3.8.1-10 +- Do not create mail group to prevent dependency loop (rhbz#2266335) + +* Wed Jan 31 2024 Pete Walter - 3.8.1-9 +- Rebuild for ICU 74 + +* Wed Jan 31 2024 Pete Walter - 3.8.1-8 +- Rebuild for ICU 74 + +* Wed Jan 24 2024 Fedora Release Engineering - 3.8.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 3.8.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Dec 24 2023 Sandro Mani - 3.8.1-5 +- Rebuild (shapelib) + +* Fri Dec 08 2023 Martin Osvald - 3.8.1-4 +- Enable jmap support again (rhbz#1940012) + +* Thu Nov 16 2023 Yaakov Selkowitz - 3.8.1-3 +- Use pcre2posix instead of the deprecated pcreposix (rhbz#2128286) +- Fix build with libxml2 2.12.0 (rhbz#2251888) + +* Mon Oct 02 2023 Martin Osvald - 3.8.1-2 +- SPDX migration + +* Wed Sep 13 2023 Martin Osvald - 3.8.1-1 +- New version 3.8.1 (rhbz#2238280) +- Small fix for libs sub-package to better conform with packaging guidelines +- Include cassandane sources in srpm +- Rename imtest to cyr_imtest to solve conflict with python-fslpy (rhbz#2227990) + +* Thu Aug 03 2023 Martin Osvald - 3.8.0-4 +- Improve spec file to conform with packaging guidelines (rhbz#2228751) + +* Thu Jul 27 2023 Martin Osvald - 3.8.0-3 +- cyrus-imapd.spec - Refine Requires: to avoid the need to test interoperability + between various combinations of old and new subpackages + +* Sat Jul 22 2023 Martin Osvald - 3.8.0-2 +- Remove utils dependency on main package (rhbz#2224702) + +* Thu Jul 20 2023 Martin Osvald - 3.8.0-1 +- New version 3.8.0 (rhbz#2169331) +- Remove attribute always_inline for buf_len to fix compilation error +- Use systemd-sysusers for cyrus user and group (rhbz#2139054) + +* Wed Jul 19 2023 Fedora Release Engineering - 3.6.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jul 13 2023 František Zatloukal - 3.6.0-8 +- Rebuilt for ICU 73.2 + +* Thu Jul 13 2023 Jitka Plesnikova - 3.6.0-7 +- Perl 5.38 re-rebuild updated packages + +* Tue Jul 11 2023 František Zatloukal - 3.6.0-6 +- Rebuilt for ICU 73.2 + +* Tue Jul 11 2023 Jitka Plesnikova - 3.6.0-5 +- Perl 5.38 rebuild + +* Thu Jun 29 2023 Martin Osvald - 3.6.0-4 +- Cassandane: Sync split CI test and spec file +- Cassandane: Fully turn off sending messages through syslog() + and allow syslog dependent tests to pass +- Cassandane: Enable building with cld2 support to fix failing tests + +* Sun Jan 22 2023 Orion Poplawski - 3.6.0-3 +- Rebuild for clamav 1.0.0 + +* Thu Jan 19 2023 Fedora Release Engineering - 3.6.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Jan 04 2023 Martin Osvald - 3.6.0-1 +- New version 3.6.0 (rhbz#2134350) +- Add source code signature verification + +* Sat Dec 31 2022 Pete Walter - 3.4.4-4 +- Rebuild for ICU 72 + +* Fri Sep 09 2022 Martin Osvald - 3.4.4-3 +- Require mariadb-connector-c-devel instead of mariadb-devel (rhbz#2116360) +- Drop tzdist module. Clients must use OS provided timezone info +- Drop cyrus-timezones and use system-wide tzdata (rhbz#2116362) + +* Mon Aug 01 2022 Frantisek Zatloukal - 3.4.4-2 +- Rebuilt for ICU 71.1 + +* Thu Jul 21 2022 Martin Osvald - 3.4.4-1 +- New version 3.4.4 +- Fix FTBFS caused by missing pcre-devel in BuildRequires (#2109395) + +* Wed Jul 20 2022 Fedora Release Engineering - 3.4.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jun 09 2022 Martin Osvald - 3.4.3-1 +- New version 3.4.3 + +* Wed Jun 01 2022 Jitka Plesnikova - 3.2.6-10 +- Perl 5.36 rebuild + +* Thu Jan 20 2022 Fedora Release Engineering - 3.2.6-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Sep 14 2021 Sahana Prasad - 3.2.6-8 +- Rebuilt with OpenSSL 3.0.0 + +* Wed Jul 21 2021 Fedora Release Engineering - 3.2.6-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jun 11 2021 Pavel Zhukov - 3.2.6-6 +- Disable tests on 32bit arches. Started to fail with perl rebase + +* Sun May 23 2021 Jitka Plesnikova - 3.2.6-5 +- Perl 5.34 rebuild + +* Wed May 19 2021 Pete Walter - 3.2.6-4 +- Rebuild for ICU 69 + +* Mon May 10 2021 Jeff Law - 3.2.6-3 +- Re-enable LTO + +* Mon Mar 22 2021 Pavel Zhukov - 3.2.6-2 +- Require online target to prevent binding to down devices + +* Thu Mar 11 2021 Pavel Zhukov - 3.2.6-1 +- New version v3.2.6 + +* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 3.2.4-8 +- Rebuilt for updated systemd-rpm-macros + See https://pagure.io/fesco/issue/2583. + +* Wed Feb 17 2021 Pavel Zhukov - 3.2.4-7 +- Require shapelib on Fedoras only + +* Mon Feb 08 2021 Pavel Raiskup - 3.2.4-6 +- rebuild for libpq ABI fix rhbz#1908268 + +* Tue Jan 26 2021 Fedora Release Engineering - 3.2.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Jan 12 2021 Pavel Zhukov - 3.2.4-4 +- Drop clamav BR for eln + +* Mon Dec 14 2020 Pavel Zhukov - 3.2.4-3 +- Add ExecReload to service file (#1907223) + +* Thu Sep 3 2020 Pavel Zhukov - 3.2.3-1 +- New version v3.2.3 + +* Thu Aug 27 2020 Josef Řídký - 3.0.13-13 +- Rebuilt for new net-snmp release + +* Mon Aug 10 2020 Jeff Law - 3.0.13-12 +- Disable LTO on s390x for now + +* Sat Aug 01 2020 Fedora Release Engineering - 3.0.13-11 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 3.0.13-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 13 2020 Pavel Zhukov - 3.0.13-9 +- Fix FTBFS caused by weak certificates (#1852137) + +* Thu Jun 25 2020 Jitka Plesnikova - 3.0.13-8 +- Perl 5.32 rebuild + +* Sat May 16 2020 Pete Walter - 3.0.13-7 +- Rebuild for ICU 67 + +* Wed May 6 2020 Pavel Zhukov - 3.0.13-6 +- Add missed dependencies (#1819685) + +* Thu Apr 23 2020 Pavel Zhukov - 3.0.13-5 +- Specify version of cyrus-imapd for utils to avoid the need to test interoperability + +* Thu Apr 23 2020 Pavel Zhukov - 3.0.13-4 +- Fix pem files permission + +* Wed Apr 01 2020 Petr Pisar - 3.0.13-3 +- Specify all Perl dependencies of Cassandane + +* Tue Jan 28 2020 Fedora Release Engineering - 3.0.13-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Mon Dec 16 2019 Jason L Tibbitts III - 3.0.13-1 +- Update to 3.0.13, fixing CVE-2019-19783. + +* Fri Nov 22 2019 Jason L Tibbitts III - 3.0.12-1 +- Update to 3.0.12, fixing CVE-2019-18928. + +* Tue Jul 30 2019 Jason L Tibbitts III - 3.0.11-1 +- Update to 3.0.11. + +* Wed Jul 24 2019 Fedora Release Engineering - 3.0.10-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri May 31 2019 Jitka Plesnikova - 3.0.10-2 +- Perl 5.30 rebuild + +* Tue May 28 2019 Jason L Tibbitts III - 3.0.10-1 +- Update to 3.0.10. +- Drop upstreamed patch. + +* Thu May 16 2019 Pavel Zhukov - 3.0.9-2 +- Run sscg as mail group for proper certs permissions + +* Thu Mar 14 2019 Jason L Tibbitts III - 3.0.9-1 +- Update to 3.0.9. + +* Mon Feb 11 2019 Jason L Tibbitts III - 3.0.8-10 +- Add pam configuration file for httpd auth. Thanks to Jeroen van Meeuwen. + +* Thu Jan 31 2019 Fedora Release Engineering - 3.0.8-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jan 24 2019 Jason L Tibbitts III - 3.0.8-8 +- Update Perl linkage patch. + +* Wed Jan 23 2019 Pete Walter - 3.0.8-7 +- Rebuild for ICU 63 + +* Wed Jan 23 2019 Jason L Tibbitts III - 3.0.8-6 +- Re-enable --as-needed, now that PCRE has been patched. +- Add workaround for improper linking of some Perl modules. + +* Tue Jan 15 2019 Jason L Tibbitts III - 3.0.8-5 +- Disable passing --as-needed to to the linker. This breaks cyrus horribly. +- Re-enable Cassandane run. + +* Tue Jan 15 2019 Jason L Tibbitts III - 3.0.8-4 +- Allow building against ClamAV 0.101. +- Add build dependency on glibc-langpack-en to slience some Perl complaints. + +* Thu Dec 13 2018 Pavel Zhukov - 3.0.8-3 +- Temporary disable cassandane in master branch + +* Sun Oct 28 2018 Nils Philippsen - 3.0.8-2 +- remove jmap from list of httpmodules + +* Sat Aug 11 2018 Jason L Tibbitts III - 3.0.8-1 +- Update to 3.0.8. +- Drop upstreamed patch. + +* Tue Jul 24 2018 Jason L Tibbitts III - 3.0.7-9 +- Rebuild for unannounced net-snmp soname bump. + +* Thu Jul 12 2018 Fedora Release Engineering - 3.0.7-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jul 10 2018 Pete Walter - 3.0.7-7 +- Rebuild for ICU 62 + +* Sat Jun 30 2018 Jitka Plesnikova - 3.0.7-6 +- Perl 5.28 rebuild + +* Wed Jun 13 2018 Jason L Tibbitts III - 3.0.7-5 +- Split out cyr_virusscan into a -virusscan subpackage. +- Split libraries into a -libs subpackage. +- Fix rpath issues in libraries. +- Split Perl module into a separate perl-Cyrus package. +- Move utilities in /usr/sbin from -utils package to main package. This + matches the way we packaged the 2.4 versions. +- Fix some odd Perl shebangs and an erroneous provided symbol. +- Moved deliver symlink to the main package as well. +- Drop cvt_cyrusdb_all and libdb-utils requirement. Cyrus 3 does not use + BerkeleyDB at all. + +* Thu Jun 07 2018 Jason L Tibbitts III - 3.0.7-4 +- Update Cassandane checkout. Drop upstreamed patch. +- Patch code for RECONSTRUCT implementation to use the renamed cyr_quota. +- Re-exclude maxforkrate test on s390x. + +* Wed May 30 2018 Jason L Tibbitts III - 3.0.7-3 +- Remove ldconfig scriptlets. +- Remove F26-specific test exclusions. +- Update Cassandane checkout. +- Add extra Cassandane patch from https://github.com/cyrusimap/cassandane/pull/57 +- Revalidate the excluded test list. + +* Fri May 18 2018 Jason L Tibbitts III - 3.0.7-2 +- Really enable mysql and clamav support. + +* Fri May 18 2018 Jason L Tibbitts III - 3.0.7-1 +- Update to 3.0.7. +- Update Cassandane checkout. +- Update excluded Cassandane test list. + +* Tue May 01 2018 Jason L Tibbitts III - 3.0.6-1 +- Update to 3.0.6. +- Remove upstreamed patches and renumber the rest. +- Disable one new failing test: + https://github.com/cyrusimap/cyrus-imapd/issues/2332 + +* Mon Apr 30 2018 Pete Walter - 3.0.5-15 +- Rebuild for ICU 61.1 + +* Tue Apr 17 2018 Jason L Tibbitts III - 3.0.5-14 +- Update Cassandane again, fixing a broken test. + +* Fri Apr 13 2018 Jason L Tibbitts III - 3.0.5-13 +- Update Cassandane, fixing a few tests and a class of weird random build + failures. + +* Fri Apr 06 2018 Jason L Tibbitts III - 3.0.5-12 +- Update list of excluded tests. +- Update Cassandane snapshot; use new base_port config setting. No need to + patch that in now. +- Add four new expected-to-fail tests from new Cassandane snapshot. +- Add patch to collect extra Cassandane logging in case we hit some of those + sporadic failures again. + +* Tue Apr 03 2018 Jason L Tibbitts III - 3.0.5-11 +- Re-enable imaptest on >= F29. +- F29's imaptest fixes several bugs, allowing all tests to be run there. +- Relocate cassandane base port to hopefully work better in koji. + +* Mon Apr 02 2018 Jason L Tibbitts III - 3.0.5-10 +- Update cassandane checkout to fix a test that was broken by DST. +- Add patch to fix sieve scripts for usernames containing a dot. +- Disable imaptest in cassandane until + https://bugzilla.redhat.com/show_bug.cgi?id=1562970 is fixed. +- Re-enable tests on s390; it seems to be better now. + +* Thu Mar 15 2018 Jason L Tibbitts III - 3.0.5-9 +- Re-enable clamav on ppc64. + +* Thu Mar 01 2018 Jason L Tibbitts III - 3.0.5-8 +- Bump client_timeout value in test suite. + +* Thu Mar 01 2018 Jason L Tibbitts III - 3.0.5-7 +- Add patch to fix imtest (rhbz#1543481). +- Fix vzic makefile to use proper cflags (rhbz#1550543). + +* Mon Feb 26 2018 Jason L Tibbitts III - 3.0.5-6 +- Update cassandane checkout. +- Add two new build dependencies. +- Remove all JMAP-related tests from the exclusion lists, since cassandane no + longer runs any JMAP tests on cyrus 3.0. +- Collapse unused test skip lists. +- Add ten additional skipped tests, after consultation with upstream. + +* Mon Feb 26 2018 Jason L Tibbitts III - 3.0.5-5 +- Add patch to fix segfaults in squatter. +- Exclude one test on all releases instead of just F28+. +- Remove --cleanup from cassandane invocation. + +* Wed Feb 07 2018 Fedora Release Engineering - 3.0.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Jan 09 2018 Jason L Tibbitts III - 3.0.5-3 +- Re-enable clamav and mariadb support as those are now built with openssl 1.1. +- But no clamav on ppc64 because of + https://bugzilla.redhat.com/show_bug.cgi?id=1534071 + +* Thu Jan 04 2018 Jason L Tibbitts III - 3.0.5-2 +- Reorganize some test exclusions so things build on all releases. + +* Thu Jan 04 2018 Jason L Tibbitts III - 3.0.5-1 +- Update to 3.0.5. +- Add one new failing test. +- Remove one now-passing test on rawhide. + +* Mon Dec 18 2017 Pavel Zhukov - 3.0.4-6 +- Rebuild with new net-snmp + +* Thu Nov 30 2017 Pete Walter - 3.0.4-5 +- Rebuild for ICU 60.1 + +* Wed Nov 29 2017 Pavel Zhukov - 3.0.4-4 +- Do not require tcp_wrappers (#1518759) + +* Tue Nov 14 2017 Jason L Tibbitts III - 3.0.4-3 +- Rebuild for new libical. +- Add patch to fix compilation error with new libical. +- Disable two tests which fail due to the new libical. + +* Tue Oct 24 2017 Jason L Tibbitts III - 3.0.4-2 +- Fix typo in default config; + https://bugzilla.redhat.com/show_bug.cgi?id=1506000 + +* Tue Sep 05 2017 Pavel Zhukov - 3.0.4-1 +- Update to 3.0.4 +- Patched cassandane for new behaviour. It should be updated idealy. +- Disable ImapTest.urlauth2 test; it seems to fail randomly regardless of + architecture. + +* Fri Aug 11 2017 Jason L Tibbitts III - 3.0.3-1 +- Update to 3.0.3, which contains an important security fix. The fix is not + embargoed but no CVE has been assigned yet. +- Drop patches merged upstream. +- An update of imaptest has resulted in three additional cassandane failures, + reported upstream as https://github.com/cyrusimap/cyrus-imapd/issues/2087. + In order to get the security fix out without delay, those three tests have been + disabled. + +* Fri Aug 11 2017 Igor Gnatenko - 3.0.2-9 +- Rebuilt after RPM update (№ 3) + +* Thu Aug 10 2017 Igor Gnatenko - 3.0.2-8 +- Rebuilt for RPM soname bump + +* Wed Aug 02 2017 Fedora Release Engineering - 3.0.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 3.0.2-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Jun 30 2017 Jason L Tibbitts III - 3.0.2-5 +- Add two patches from upstream which fix JMAPCalendars issues on 32-bit and + big-endian architectures. +- Clean up test invocation and exclusion list. More tests pass now. + +* Wed Jun 28 2017 Jason L Tibbitts III - 3.0.2-4 +- Explicitly set specialusealways: 1 in the default config. + +* Tue Jun 27 2017 Jason L Tibbitts III - 3.0.2-3 +- Patch the provided imapd.conf and cyrus.conf to more closely match previous + Fedora defaults and directories included in this package and to enable + features which are supported by the Fedora build. +- Add tmpfiles.d configuration file for directories in /run. + +* Tue Jun 27 2017 Jason L Tibbitts III - 3.0.2-2 +- Exclude one more test from 32-bit arches. Looks like this failure crept in + with the Cassandane update. + +* Thu Jun 22 2017 Jason L Tibbitts III - 3.0.2-1 +- Update to 3.0.2. +- New Cassandane snapshot, with more tests (all of which are passing). + +* Tue Jun 20 2017 Jason L Tibbitts III - 3.0.1-7 +- Add old /usr/lib/cyrus-imapd directory to the utils package and add a symlink + there to the deliver binary. This should help a bit with migrations. +- Add upstream patch to fix reconstruct failures on 32-bit architectures. + Re-enable those five Cassandane tests. + +* Thu Jun 15 2017 Jason L Tibbitts III - 3.0.1-6 +- Rename two commands: quota -> cyr_quota, restore -> cyr_restore. +- Fix Cassandane to handle those renames. +- Fix location of cyr_fetchnews. +- Fix Perl 5.26-related module linking issue which caused a test failure. + Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1461669 + +* Tue Jun 06 2017 Jason L Tibbitts III - 3.0.1-5 +- Use proper path to ctl_mboxlist in cron file. +- Add patch to increase individual test timeout. Sometimes armv7hl can't + complete a single test in 20 seconds. +- Disable the Metronome tests; upstream says that they just won't reliably on + shared hardware. +- Don't bother running Cassandane on s390x for now. The machines are simply + too slow. + +* Tue Jun 06 2017 Jitka Plesnikova - 3.0.1-4 +- Perl 5.26 rebuild + +* Fri Jun 02 2017 Jason L Tibbitts III - 3.0.1-3 +- Remove clamav from build requirements. +- Add --cleanup to Cassandane call to hopefully reduce build disk usage. +- Disable maxforkrate test on s390x; our builders are too slow to run it. + +* Fri Jun 02 2017 Jason L Tibbitts III - 3.0.1-2 +- Add patch to fix up some endianness issues. +- Enable both test suites on all architectures. +- Add arch-specific excludes for a few Cassandane tests. + +* Thu Apr 20 2017 Jason L Tibbitts III - 3.0.1-1 +- Initial attempt at importing 3.0. Many new dependencies. +- Use a stock sample imapd.conf file instead of a Fedora-provided one. + +* Fri Feb 10 2017 Fedora Release Engineering - 2.5.10-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Jan 09 2017 Jason L Tibbitts III - 2.5.10-2 +- Rename httpd manpage to "cyrhttpd" to avoid conflict with the httpd package. + +* Wed Nov 23 2016 Jason L Tibbitts III - 2.5.10-1 +- Initial update to the 2.5 series. +- Significant spec cleanups. +- Add sscg dep and follow + https://fedoraproject.org/wiki/Packaging:Initial_Service_Setup for initial + cert generation. +- Change default conf to use the system crypto policy. + +* Tue May 17 2016 Jitka Plesnikova - 2.4.18-3 +- Perl 5.24 rebuild + +* Wed Feb 03 2016 Fedora Release Engineering - 2.4.18-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Thu Oct 01 2015 Jason L Tibbitts III - 2.4.18-1 +- Update to 2.4.18, rhbz#1267871 and rhbz#1267878 +- Backport ff4e6c71d932b3e6bbfa67d76f095e27ff21bad0 to fix issues from + http://seclists.org/oss-sec/2015/q3/651 + +* Wed Sep 09 2015 Jason L Tibbitts III - 2.4.17-14 +- Use %%license tag +- Have -devel require the base package +- Minor cleanups + +* Sat Aug 08 2015 Jason L Tibbitts III - 2.4.17-13 +- Remove invalid Patch0: URL. +- Use HTTP for upstream source. +- pod2html was split out of the main perl package, breaking cyrus. + Add a build dep for it. + +* Wed Jul 29 2015 Kevin Fenzi 2.4.17-12 +- Rebuild for new librpm + +* Wed Jun 17 2015 Fedora Release Engineering - 2.4.17-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Fri Jun 05 2015 Jitka Plesnikova - 2.4.17-10 +- Perl 5.22 rebuild + +* Wed Aug 27 2014 Jitka Plesnikova - 2.4.17-9 +- Perl 5.20 rebuild + +* Sat Aug 16 2014 Fedora Release Engineering - 2.4.17-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 2.4.17-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sat Aug 03 2013 Fedora Release Engineering - 2.4.17-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Jul 18 2013 Petr Pisar - 2.4.17-5 +- Perl 5.18 rebuild + +* Fri Jul 12 2013 Michal Hlavinka - 2.4.17-4 +- spec clean up + +* Thu Apr 18 2013 Michal Hlavinka - 2.4.17-3 +- make sure binaries are hardened + +* Wed Feb 13 2013 Fedora Release Engineering - 2.4.17-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sat Dec 1 2012 Jeroen van Meeuwen - 2.4.17-1 +- New upstream version, fixes upstream bugs: +- reconstruct doesn't retain internaldate correctly (#3733) +- Race condition in maibox rename (#3696) +- DBERROR db4: Transaction not specified for a transactional database (#3715) +- performance degradation on huge indexes in 2.4 branch (#3717) +- typo fix in imapd.conf man page (#3729) +- quota does not find all quotaroots if quotalegacy, fulldirhash and prefix are used and virtdomains is off (#3735) +- Mail delivered during XFER was lost (#3737) +- replication does not work on RENAME (#3742) +- Failed asserting during APPEND (#3754) + +* Fri Nov 30 2012 Michal Hlavinka - 2.4.16-5 +- do not use strict aliasing + +* Tue Aug 21 2012 Michal Hlavinka - 2.4.16-4 +- use new systemd rpm macros (#850079) + +* Wed Jul 18 2012 Fedora Release Engineering - 2.4.16-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Jun 11 2012 Petr Pisar - 2.4.16-2 +- Perl 5.16 rebuild + +* Thu Apr 19 2012 Jeroen van Meeuwen - 2.4.16-1 +- New upstream release + +* Wed Apr 18 2012 Jeroen van Meeuwen - 2.4.15-1 +- New upstream release + +* Wed Apr 11 2012 Michal Hlavinka - 2.4.14-2 +- rebuilt because of new libdb + +* Wed Mar 14 2012 Michal Hlavinka - 2.4.14-1 +- updated to 2.4.14 + +* Tue Feb 07 2012 Michal Hlavinka - 2.4.13-3 +- use PraveTmp in systemd unit file + +* Fri Jan 13 2012 Fedora Release Engineering - 2.4.13-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Jan 02 2012 Jeroen van Meeuwen - 2.4.13-1 +- New upstream release + +* Wed Dec 07 2011 Michal Hlavinka - 2.4.12-5 +- do not use digest-md5 as part of default auth mechanisms, + it does not coop with pam + +* Tue Nov 22 2011 Michal Hlavinka - 2.4.12-4 +- reduce noisy logging, add option to turn on LOG_DEBUG syslog + messages again (thanks Philip Prindeville) (#754940) + +* Mon Oct 24 2011 Michal Hlavinka - 2.4.12-3 +- add login and digest-md5 as part of default auth mechanisms (#748278) + +* Tue Oct 11 2011 Michal Hlavinka - 2.4.12-2 +- do not hide errors if cyrus user can't be added + +* Wed Oct 05 2011 Michal Hlavinka - 2.4.12-1 +- cyrus-imapd updated to 2.4.12 +- fixes incomplete authentication checks in nntpd (Secunia SA46093) + +* Fri Sep 9 2011 Jeroen van Meeuwen - 2.4.11-1 +- update to 2.4.11 +- Fix CVE-2011-3208 (#734926, #736838) + +* Tue Aug 16 2011 Michal Hlavinka - 2.4.10-4 +- rebuild with db5 + +* Thu Jul 21 2011 Petr Sabata - 2.4.10-3 +- Perl mass rebuild + +* Wed Jul 20 2011 Petr Sabata - 2.4.10-2 +- Perl mass rebuild + +* Wed Jul 6 2011 Jeroen van Meeuwen - 2.4.10-1 +- New upstream release + +* Wed Jun 22 2011 Iain Arnell 2.4.8-5 +- Patch to work with Perl 5.14 + +* Mon Jun 20 2011 Marcela Mašláňová - 2.4.8-4 +- Perl mass rebuild + +* Fri Jun 10 2011 Marcela Mašláňová - 2.4.8-3 +- Perl 5.14 mass rebuild + +* Mon May 09 2011 Michal Hlavinka - 2.4.8-2 +- fixed: systemd commands in %%post (thanks Bill Nottingham) + +* Thu Apr 14 2011 Michal Hlavinka - 2.4.8-1 +- cyrus-imapd updated to 2.4.8 +- fixed: cannot set unlimited quota through proxy +- fixed: reconstruct tries to set timestamps again and again +- fixed: response for LIST "" user is wrong +- fixed: THREAD command doesn't support quoted charset +- fixed crashes in mupdatetest and cyr_expire when using -x + +* Mon Apr 04 2011 Michal Hlaivnka - 2.4.7-2 +- now using systemd + +* Thu Mar 31 2011 Michal Hlavinka - 2.4.7-1 +- updated to 2.4.7 + +* Fri Feb 11 2011 Michal Hlavinka - 2.4.6-1 +- updated to 2.4.6 +- "autocreate" and "autosieve" features were removed + +* Tue Feb 08 2011 Fedora Release Engineering - 2.3.16-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Jan 21 2011 Michal Hlavinka - 2.3.16-7 +- don't force sync io for all filesystems + +* Fri Jul 09 2010 Michal Hlavinka - 2.3.16-6 +- follow licensing guideline update +- devel sub-package has to have virtual static provides (#609604) + +* Mon Jun 07 2010 Michal Hlavinka - 2.3.16-5 +- spec cleanup +- simplified packaging (merge -perl in -utils) +- remove obsoleted and/or unmaintained additional sources/patches +- remove long time not used files from the cvs/srpm +- update additional sources/patches from their upstream + +* Tue Jun 01 2010 Marcela Maslanova - 2.3.16-4 +- Mass rebuild with perl-5.12.0 + +* Tue Apr 20 2010 Michal Hlavinka - 2.3.16-3 +- add support for QoS marked traffic (#576652) + +* Thu Jan 14 2010 Michal Hlavinka - 2.3.16-2 +- ignore user_denny.db if missing (#553011) +- fix location of certificates in default imapd.conf + +* Tue Dec 22 2009 Michal Hlavinka - 2.3.16-1 +- updated to 2.3.16 + +* Fri Dec 04 2009 Michal Hlavinka - 2.3.15-10 +- fix shell for daily cron job (#544182) + +* Fri Dec 04 2009 Stepan Kasal - 2.3.15-9 +- rebuild against perl 5.10.1 + +* Thu Nov 26 2009 Michal Hlavinka - 2.3.15-8 +- spec cleanup + +* Tue Nov 24 2009 Michal Hlavinka - 2.3.15-7 +- rebuild with new db4 (#540093) +- spec cleanup + +* Fri Nov 06 2009 Michal Hlavinka - 2.3.15-6 +- fix sourcing of /etc/sysconfig/cyrus-imapd (#533320) + +* Thu Nov 05 2009 Michal Hlavinka - 2.3.15-5 +- do not fill logs with mail (de)compression messages (#528093) + +* Thu Oct 29 2009 Michal Hlavinka - 2.3.15-4 +- spec cleanup + +* Fri Oct 09 2009 Michal Hlavinka - 2.3.15-3 +- fix cyrus user shell for db import (#528126) + +* Fri Sep 18 2009 Michal Hlavinka - 2.3.15-2 +- make init script LSB-compliant (#523227) + +* Fri Sep 18 2009 Michal Hlavinka - 2.3.15-1 +- fix buffer overflow in cyrus sieve (CVE-2009-3235) + +* Wed Sep 16 2009 Tomas Mraz - 2.3.14-6 +- use password-auth common PAM configuration instead of system-auth + +* Mon Sep 07 2009 Michal Hlavinka - 2.3.14-5 +- fix buffer overflow in cyrus sieve (#521010) + +* Fri Aug 21 2009 Tomas Mraz - 2.3.14-4 +- rebuilt with new openssl + +* Fri Jul 24 2009 Fedora Release Engineering - 2.3.14-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Mon May 25 2009 Michal Hlavinka - 2.3.14-2 +- rebuild because of changed dependencies + +* Thu Apr 02 2009 Michal Hlavinka - 2.3.14-1 +- updated to 2.3.14 + +* Wed Apr 01 2009 Michael Schwendt - 2.3.13-5 +- fix unowned directory (#483336). + +* Tue Feb 24 2009 Fedora Release Engineering - 2.3.13-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Feb 02 2009 Michal Hlavinka - 2.3.13-3 +- fix directory ownership + +* Wed Jan 21 2009 Michal Hlavinka - 2.3.13-2 +- fix: #480138 - assertion failed: libcyr_cfg.c: cyrus_options[opt].opt == opt + +* Tue Jan 13 2009 Michal Hlavinka - 2.3.13-1 +- updated to 2.3.13 + +* Fri Sep 26 2008 Dan Horák - 2.3.11-1 +- update to latest upstream +- (temporarily) dropped the rmquota+deletemailbox patch (doesn't apply) + +* Wed Mar 19 2008 Rex Dieter - 2.3.9-12 +- cyrus-imapd conflicts with uw-imap (#222506) + +* Tue Mar 18 2008 Tom "spot" Callaway - 2.3.9-11 +- add Requires for versioned perl (libperl.so) + +* Wed Feb 20 2008 Fedora Release Engineering - 2.3.9-10 +- Autorebuild for GCC 4.3 + +* Fri Feb 08 2008 Tomas Janousek - 2.3.9-9 +- don't run cronjob if cyrus-imapd has never been started (#418191) + +* Tue Dec 04 2007 Tomas Janousek - 2.3.9-8 +- move certificate creation from -utils postinst to main package +- rebuild with newer openssl and openldap + +* Sun Sep 23 2007 Tomas Janousek - 2.3.9-7 +- updated the getgrouplist patch +- fixed a few undeclared functions (and int to pointer conversions) + +* Wed Aug 22 2007 Tomas Janousek - 2.3.9-6 +- update to latest upstream +- updated all patches from uoa and reenabled rmquota+deletemailbox + +* Thu Aug 16 2007 Tomas Janousek - 2.3.9-5.rc2 +- update to latest upstream beta + +* Tue Aug 14 2007 Tomas Janousek - 2.3.9-4.rc1 +- update to latest upstream beta +- temporarily dropped the rmquota+deletemailbox patch (doesn't apply) +- fixed to compile with newer glibc +- added the getgrouplist patch from RHEL-4, dropped groupcache patch +- dropped the allow_auth_plain patch +- buildrequire perl-devel + +* Mon Jul 23 2007 Tomas Janousek - 2.3.8-3.2 +- removed the lm_sensors-devel dependency, since it's properly required in + net-snmp-devel +- #248984 - cyrus-imapd.logrotate updated for rsyslog + +* Mon Apr 23 2007 Tomas Janousek - 2.3.8-3.1 +- the -devel subpackage no longer requires the main one + +* Wed Apr 11 2007 Tomas Janousek - 2.3.8-3 +- updated the no-bare-nl patch (#235569), thanks to Matthias Hensler + +* Wed Apr 04 2007 Tomas Janousek - 2.3.8-2 +- fixed mboxlist backup rotation (#197054) + +* Mon Mar 12 2007 Tomas Janousek - 2.3.8-1 +- update to latest upstream + +* Wed Jan 24 2007 Tomas Janousek - 2.3.7-8 +- compile with kerberos support + +* Wed Jan 24 2007 Tomas Janousek - 2.3.7-7 +- fixed Makefile typo (caused multiarch conflict) + +* Mon Jan 08 2007 Tomas Janousek - 2.3.7-6 +- #218046: applied patches to compile with db4-4.5 + +* Tue Dec 5 2006 John Dennis - 2.3.7-5 +- Resolves: bug# 218046: Cyrus-imapd in rawhide needs to be rebuilt + against new snmp package + +* Thu Oct 05 2006 Christian Iseli 2.3.7-4 +- rebuilt for unwind info generation, broken in gcc-4.1.1-21 + +* Mon Sep 18 2006 John Dennis - 2.3.7-3 +- bump rev for rebuild + +* Fri Aug 04 2006 Petr Rockai - 2.3.7-2 +- only buildrequire lm_sensors on i386 and x86_64, since it is not + available elsewhere + +* Sun Jul 23 2006 Petr Rockai - 2.3.7-1 +- update to latest upstream version, fixes a fair amount of issues +- forward-port the autocreate and rmquota patches (used latest + upstream patches, those are for 2.3.3) + +* Tue Jul 18 2006 Petr Rockai - 2.3.1-3 +- install perl modules into vendor_perl instead of site_perl +- change mode of perl .so files to 755 instead of 555 +- update pam configuration to use include directive instead + of deprecated pam_stack +- change prereq on cyrus-imapd-utils to requires + +* Tue Jul 11 2006 Petr Rockai - 2.3.1-2.99.test1 +- address bunch of rpmlint errors and warnings +- rename perl-Cyrus to cyrus-imapd-perl to be consistent with rest + of package (the cyrus modules are not part of cpan) +- added provides on cyrus-nntp and cyrus-murder (the functionality + is part of main package now) +- removed generation of README.buildoptions +- the two above made it possible to get rid of most build-time parameter + guessing from environment +- get rid of internal autoconf (iew) +- don't strip binaries, renders -debuginfo useless... +- remove prereq's in favour of newly added requires(...) + +* Tue Feb 28 2006 John Dennis - 2.3.1-2 +- bring up to Simon Matter's 2.3.1-2 release +- fix bug #173319, require cyrus-sasl-lib instead of cyrus-sasl +- fix bug #176470, hardcoded disttag +- add backend_sigsegv patch +- add replication_policycheck patch + +* Mon Jan 23 2006 Simon Matter 2.3.1-1 +- update to official autocreate and autosievefolder patches + +* Thu Jan 19 2006 Simon Matter 2.3.1-0.18 +- update rpm_set_permissions script +- add snmp support as build time option, disabled by default + because it doesn't build on older distributions + +* Wed Jan 18 2006 Simon Matter 2.3.1-0.15 +- add make_md5 patch + +* Mon Jan 16 2006 Simon Matter 2.3.1-0.13 +- add autosievefolder patch +- add rmquota+deletemailbox patch +- change default path for make_md5, add md5 directory + +* Fri Jan 13 2006 Simon Matter 2.3.1-0.10 +- spec file cleanup +- add more cvt_cyrusdb_all fixes +- fix pre/post scripts +- fix requirements +- add patch to set Invoca RPM config defaults +- add sync directory used for replication +- add autocreate patch + +* Thu Jan 12 2006 Simon Matter 2.3.1-0.8 +- update cvt_cyrusdb_all script +- build db.cfg on the fly + +* Thu Jan 05 2006 Simon Matter 2.3.1-0.5 +- create ptclient directory if ldap enabled + +* Wed Jan 04 2006 Simon Matter 2.3.1-0.4 +- build without ldap support if openldap is linked against SASLv1 + +* Tue Jan 03 2006 Simon Matter 2.3.1-0.3 +- fix ldap support + +* Mon Jan 02 2006 Simon Matter 2.3.1-0.2 +- add openldap-devel to buildprereq, build with ldap support + +* Wed Dec 21 2005 Simon Matter 2.3.1-0.1 +- update to 2.3.1, officially called BETA-quality release + +* Fri Dec 16 2005 Simon Matter 2.3.0-0.4 +- add skiplist.py to contrib/ +- port authid_normalize patch + +* Thu Dec 15 2005 Simon Matter 2.3.0-0.3 +- reintroduce subpackage utils, fix requirements +- move some utils to %%{_bindir}/ + +* Wed Dec 14 2005 Simon Matter 2.3.0-0.2 +- integrate subpackages murder, nntp, replication, utils + +* Tue Dec 13 2005 Simon Matter 2.3.0-0.1 +- update to 2.3.0, officially called BETA-quality release +- add replication subpackage + +* Fri Dec 09 2005 Simon Matter 2.2.12-15.1 +- add missing automake to buildprereq +- change package description + +* Tue Dec 06 2005 Simon Matter 2.2.12-15 +- update cvt_cyrusdb_all script +- update autocreate patches + +* Mon Dec 05 2005 Simon Matter 2.2.12-14 +- update cvt_cyrusdb_all script + +* Mon Nov 14 2005 Simon Matter 2.2.12-13 +- add 64bit quota support backported from 2.3 + +* Fri Nov 11 2005 Simon Matter 2.2.12-12 +- add quickstart/stop option to init script to bypass db import/export +- add authid_normalize patch +- add allow_auth_plain_proxying patch +- update gcc4 patch +- remove useless fdatasync patch +- add private autoconf used for build, remove autoconf dependency +- generate correct docs including man pages +- remove unneeded files from doc directory + +* Fri Nov 04 2005 Simon Matter 2.2.12-11 +- add mupdate thread-safe patch + +* Mon Oct 24 2005 Simon Matter 2.2.12-9.4 +- add spool patch, which is already fixed in CVS + +* Tue Aug 30 2005 Simon Matter 2.2.12-9.2 +- pull in CPPFLAGS and LDFLAGS from openssl's pkg-config data, if it exists + +* Wed Aug 24 2005 Simon Matter 2.2.12-9.1 +- add timsieved_reset_sasl_conn patch + +* Mon Aug 22 2005 Simon Matter 2.2.12-9 +- cosmetic changes in pre and post scripts + +* Fri Aug 19 2005 Simon Matter 2.2.12-8 +- add more pki dir fixes for inplace upgrades + +* Thu Aug 18 2005 Simon Matter 2.2.12-7 +- include requirement for Berkeley DB utils + +* Thu Aug 18 2005 Simon Matter 2.2.12-6 +- fix recovery problems with db4, which do not exist with db3 +- fix logic for handling ssl certs +- remove initlog from init script + +* Wed Aug 17 2005 Simon Matter 2.2.12-5 +- add notifytest to the distribution +- add functionality to convert all berkeley databases to skiplist + on shutdown and convert them back as needed on startup. This should + solve the upgrade problems with Berkeley databases. + +* Tue Aug 16 2005 Simon Matter 2.2.12-4.14 +- add gcc4 patch +- determine and handle pki directory for openssl correctly +- add skiplist recovery docs +- add notify_sms patch + +* Mon Jul 18 2005 Simon Matter 2.2.12-4.10 +- update cvt_cyrusdb_all script +- update autocreate patches + +* Fri Jul 15 2005 Simon Matter 2.2.12-4.9 +- add patch to remove ACLs with invalid identifier +- update cvt_cyrusdb_all script + +* Sat Jun 18 2005 Simon Matter 2.2.12-4.1 +- update munge8bit patch + +* Wed Jun 08 2005 Simon Matter 2.2.12-4 +- updated seenstate patch + +* Thu Jun 02 2005 Simon Matter +- removed nolinkimapspool patch, added singleinstancestore patch instead + +* Thu Jun 02 2005 Simon Matter +- added nolinkimapspool patch +- fix debug_package macro, it was still being expanded, + comments don't hide macro expansion +- change license field to BSD, its not exact BSD, but BSD is the closest + +* Fri Apr 22 2005 John Dennis - 2.2.12-6.fc4 +- the openssl package moved all its certs, CA, Makefile, etc. to /etc/pki + now we are consistent with the openssl directory changes. + +* Thu Apr 21 2005 John Dennis - 2.2.12-5.fc4 +- we finally have a common directory, /etc/pki for certs, so create + /etc/pki/cyrus-imapd and put the ssl pem file there. The /etc/cyrus-imapd + location will not be used, this change supercedes that. + +* Mon Apr 18 2005 John Dennis - 2.2.12-4.fc4 +- fix bug #141479, move ssl pem file from /usr/share/ssl/certs to /etc/cyrus-imapd/cyrus-imapd.pem +- change license field to BSD, its not exact BSD, but BSD is the closest. + +* Fri Apr 15 2005 John Dennis - 2.2.12-3.fc4 +- fix release field to be single digit + +* Fri Apr 15 2005 John Dennis - 2.2.12-1.2.fc4 +- fix debug_package macro, it was still being expanded, + comments don't hide macro expansion +- fix changelog chronological order +- fix bug 118832, cyrus-imapd is modifying /etc/services + +* Mon Apr 4 2005 John Dennis - 2.2.12-1.1.fc4 +- bring up to 2.2.12, includes security fix for CAN-2005-0546 + +* Mon Mar 07 2005 Simon Matter +- updated rmquota+deletemailbox patches + +* Fri Mar 4 2005 John Dennis - 2.2.10-11.4.fc4 +- fix gcc4 build problems + +* Thu Mar 3 2005 John Dennis 2.2.10-11.3.fc4 +- bump rev for build + +* Mon Feb 14 2005 Simon Matter +- updated to 2.2.12 +- updated autocreate and autosievefolder patches + +* Fri Feb 11 2005 John Dennis - 2.2.10-11.2.fc4 +- make _contribdir identical to Simon's, + I had been getting burned by rpm's bizarre handling of macros in comments + +* Thu Feb 10 2005 John Dennis - 2.2.10-11.1.fc4 +- bring up to date with Simon Matter's 2.2.10-11 rpm + +* Sat Feb 05 2005 Simon Matter +- updated autosievefolder patch + +* Tue Feb 01 2005 Simon Matter +- remove special ownership and permissions from deliver +- enable deliver-wrapper per default +- enable OutlookExpress seenstate patch per default + +* Wed Jan 19 2005 Simon Matter +- updated autocreate patch + +* Fri Jan 14 2005 Simon Matter +- spec file cleanup + +* Tue Jan 11 2005 Simon Matter +- updated autocreate patch + +* Fri Jan 07 2005 Simon Matter +- moved contrib dir into doc, made scripts not executable + +* Thu Jan 06 2005 Simon Matter +- added more fixes to the autocreate patch +- don't use %%_libdir for %%_cyrexecdir, it's a mess on x86_64 +- don't use %%_libdir for symlinks +- remove %%_libdir pachtes +- change pam configs to work on x86_64 +- changed default build option for IDLED to on +- changed rpm_set_permissions to honor partitions in /etc/imapd.conf + +* Tue Jan 04 2005 Simon Matter +- updated autocreate patch + +* Mon Dec 20 2004 Simon Matter +- remove idled docs when disabled, fixes RedHat's bug #142345 + +* Fri Dec 17 2004 Simon Matter +- removed allnumeric patch, not needed anymore +- made groupcache a compile time option +- rename nntp's pam service, fixes RedHat's bug #142672 + +* Thu Dec 16 2004 Simon Matter +- updated groupcache patch +- updated cvt_cyrusdb_all to use runuser instead of su if available +- added upd_groupcache tool + +* Wed Dec 15 2004 Simon Matter +- added groupfile patch to help those using nss_ldap + +* Thu Dec 02 2004 Simon Matter +- modified config directives and removed verify options + +* Thu Dec 2 2004 John Dennis 2.2.10-3.devel +- fix bug #141673, dup of bug #141470 + Also make cyrus.conf noreplace in addition to imapd.conf + Remove the verify overrides on the noreplace config files, + we do want config file changes visible when verifying + +* Wed Dec 1 2004 John Dennis 2.2.10-2.devel +- fix bug #141470, make imapd.conf a noreplace config file + +* Wed Dec 1 2004 John Dennis 2.2.10-1.devel +- update to Simon Matter's 2.2.10 RPM, + fixes bug #139382, + security advisories: CAN-2004-1011 CAN-2004-1012 CAN-2004-1013 CAN-2004-1015 + +* Wed Nov 24 2004 Simon Matter +- updated to 2.2.10 + +* Tue Nov 23 2004 Simon Matter +- updated to 2.2.9 + +* Fri Nov 19 2004 Simon Matter +- changed scripts to use runuser instead of su if available + +* Thu Nov 18 2004 Simon Matter +- changed requirement for file >= 3.35-1 from BuildPrereq to + Requires, fixes RedHat's bug #124991 +- added acceptinvalidfrom patch to fix RedHat's bug #137705 + +* Mon Oct 4 2004 Dan Walsh 2.2.6-2.FC3.6 +- Change cyrus init scripts and cron job to use runuser instead of su + +* Fri Aug 6 2004 John Dennis 2.2.6-2.FC3.5 +- remove obsoletes tag, fixes bugs #127448, #129274 + +* Wed Aug 4 2004 John Dennis +- replace commas in release field with dots, bump build number + +* Tue Aug 03 2004 Simon Matter +- fixed symlinks for x86_64, now uses the _libdir macro + reported by John Dennis, fixes RedHat's bug #128964 +- removed obsoletes tag, fixes RedHat's bugs #127448, #129274 + +* Mon Aug 2 2004 John Dennis 2.2.6-2,FC3,3 +- fix bug #128964, lib symlinks wrong on x86_64 + +* Thu Jul 29 2004 Simon Matter +- updated to 2.2.8 + +* Thu Jul 29 2004 Simon Matter +- updated autocreate and autosieve patches +- made authorization a compile time option +- added sieve-bc_eval patch + +* Tue Jul 27 2004 Simon Matter +- updated to 2.2.7 +- modified autocreate patch or 2.2.7 +- removed snmpargs patch which was needed for RedHat 6.2 + +* Tue Jul 13 2004 Simon Matter +- added mboxlist / mboxname patches from CVS + +* Tue Jul 06 2004 Simon Matter +- updated rmquota+deletemailbox patch + +* Sat Jul 3 2004 John Dennis - 2.2.6-2,FC3,1 +- bring up to date with Simon Matter's latest upstream rpm 2.2.6-2 +- comment out illegal tags Packager, Vendor, Distribution + build for FC3 + +* Wed Jun 30 2004 Simon Matter +- added quota patches from CVS + +* Fri Jun 25 2004 Simon Matter +- updated autocreate patch + +* Fri Jun 18 2004 Simon Matter +- updated to 2.2.6 + +* Fri Jun 11 2004 Simon Matter +- updated autocreate and autosieve patches + +* Tue Jun 01 2004 Simon Matter +- updated autocreate, autosieve and rmquota patches +- fixed rmquota patch to build on gcc v3.3.x +- added lmtp_sieve patch + +* Sat May 29 2004 Simon Matter +- updated to 2.2.5 + +* Fri May 28 2004 Simon Matter +- updated to 2.2.5 pre-release + +* Mon May 24 2004 Simon Matter +- added hash patch to fix a sig11 problem +- added noncritical typo patch + +* Fri May 21 2004 Simon Matter +- include OutlookExpress seenstate patch +- fixed allnumeric patch + +* Thu May 20 2004 Simon Matter +- don't enable cyrus-imapd per default +- rename fetchnews to cyrfetchnews to avoid namespace conflicts with leafnode +- replace fetchnews with cyrfetchnews in man pages +- replace master with cyrus-master in man pages + +* Tue May 18 2004 Simon Matter +- updated to 2.2.4 + +* Fri Apr 30 2004 Simon Matter +- Don't provides: imap + +* Wed Mar 17 2004 Simon Matter +- fix init script + +* Thu Mar 04 2004 Simon Matter +- strip binaries + +* Tue Mar 02 2004 Simon Matter +- add more SELinux fixes + +* Wed Feb 25 2004 Simon Matter +- add makedepend to path, thank you Andreas Piesk for reporting it + +* Mon Feb 23 2004 Dan Walsh +- change su within init script to get input from /dev/null + this prevents hang when running in SELinux +- don't use -fpie as default, it breaks different distributions + +* Thu Feb 19 2004 Simon Matter +- merged in most changes from Karsten Hopp's RedHat package +- fixed permissions of files in contrib, thank you + Edward Rudd for reporting it. +- modified snmp patch to make it build on RedHat 6.2 again + +* Tue Feb 03 2004 Karsten Hopp +- switch to Simon Matter's cyrus-imapd package, which has + some major improvements over the old Red Hat package. + - configdirectory moved from /var/imap to /var/lib/imap + - sasl_pwcheck_method changed to saslauthd +- needed to delete package/vendor tags for buildsystem. +- added USEPIE variable for linking with -fpie flag +- removed rpath from linker arguments +- removed email header from README.HOWTO-recover-mailboxes +- added lib64 patch +- use CFLAGS from specfile in imtest subdir +- disable -pie on ppc for now + +* Tue Feb 03 2004 Simon Matter +- added tls_ca_file: to imapd.conf +- updated autocreate patch which fixes a small sig11 problem + +* Thu Jan 29 2004 Simon Matter +- convert sieve scripts to UTF-8 only if sievec failed before +- add note to the readme about limiting loggin on busy servers +- added build time option to chose the syslog facility + +* Wed Jan 28 2004 Simon Matter +- sieve scripts are now converted to UTF-8 with cvt_cyrusdb_all + +* Tue Jan 27 2004 Simon Matter +- fixed problems with masssievec +- lots of small fixes in the init scripts + +* Fri Jan 23 2004 Simon Matter +- updated auto db converting functionality +- added auto masssievec functionality + +* Thu Jan 22 2004 Simon Matter +- updated autocreate/autosievefolder patches + +* Fri Jan 16 2004 Simon Matter +- updated to 2.2.3 + +* Wed Jan 14 2004 Simon Matter +- number of mailbox list dumps can now be configured + +* Fri Jan 02 2004 Simon Matter +- updated autosievefolder patch + +* Thu Dec 18 2003 Simon Matter +- updated autocreate/autosievefolder/rmquota patches + +* Tue Oct 28 2003 Simon Matter +- updated to 2.2.2-BETA + +* Tue Aug 05 2003 Simon Matter +- add sendmail m4 macro, some people were looking for it +- just one source for pam default configuration (they were all the same) +- added /etc/pam.d/lmtp +- added build support for RedHat Beta severn + +* Wed Jul 30 2003 Simon Matter +- updated autocreate patch to 0.8.1 +- removed creation of spool/config dirs, not needed anymore +- added cyrus_sharedbackup to contrib + +* Fri Jul 18 2003 Simon Matter +- modified for 2.2.1-BETA + +* Wed Jul 09 2003 Simon Matter +- modified rpm_set_permissions script + +* Mon Jul 07 2003 Simon Matter +- changed permissions on config and spool dirs +- modified init script + +* Thu Jul 03 2003 Simon Matter +- upgraded to 2.1.14 +- removed now obsolete forcedowncase patch +- use --with-extraident to add extra version information +- updated munge8bit patch + +* Wed Jun 04 2003 Simon Matter +- added RedHat 2.1ES support to the perlhack detection + +* Tue May 20 2003 Simon Matter +- upgraded autocreate patch + +* Fri May 09 2003 Simon Matter +- upgraded autocreate patch +- modified init script + +* Mon May 05 2003 Simon Matter +- upgraded to 2.1.13 +- replaced commands with macros, cleaned up spec file + +* Fri May 02 2003 Simon Matter +- added murder subpackage +- changed exec path to /usr/lib/cyrus-imapd + +* Thu May 01 2003 Simon Matter +- included modified munge8bit patch again + +* Tue Apr 29 2003 Simon Matter +- added new 8bit header patch +- upgraded IPv6 patch +- upgraded autocreate patch to 0.7 + +* Mon Apr 28 2003 Simon Matter +- added new autocreate patch + +* Mon Mar 31 2003 H-E Sandstrom +- added munge8bit patch + +* Mon Mar 24 2003 Simon Matter +- added createonpost fix patch + +* Thu Mar 20 2003 Simon Matter +- added functionality to patch the IPv6 patch on the fly if + autoconf > 2.13, we can now use newer autoconf again. + +* Tue Mar 18 2003 Paul Bender +- fixed spec file so that autoconf 2.13 will always be used, + since the IPv6 patch requires autoconf <= 2.13 + +* Fri Mar 14 2003 Simon Matter +- fixed problems with new file package + +* Thu Mar 13 2003 Simon Matter +- added kerberos include for RedHat Beta phoebe 2 +- added Henrique's forcedowncase patch + +* Mon Mar 03 2003 Simon Matter +- corrected imapd.conf + +* Sat Mar 01 2003 Simon Matter +- added note about lmtp socket in sendmail +- added flock patches + +* Fri Feb 07 2003 Simon Matter +- added build time option for fulldirhash + +* Wed Feb 05 2003 Simon Matter +- added IPV6 patch to source rpm +- fixed build on RedHat 6.2 + +* Tue Feb 04 2003 Simon Matter +- update to 2.1.12 +- added logrotate entry for /var/log/auth.log +- modified init script to use builtin daemon mode + +* Fri Jan 10 2003 Simon Matter +- small change in mboxlist backup script + +* Fri Jan 10 2003 Simon Matter +- fixed a cosmetic bug in cvt_cyrusdb_all +- added cron.daily job to backup mailboxes.db + +* Mon Jan 06 2003 Simon Matter +- add more entries to /etc/services + +* Wed Jan 01 2003 Simon Matter +- include snmpargs patch for build on RedHat 6.2 +- added build support for RedHat 6.2 + +* Mon Dec 30 2002 Simon Matter +- removed autoconf hack, not needed anymore +- enabled build on RedHat Beta Phoebe +- added services entry for lmtp +- cleanup spec file + +* Thu Dec 26 2002 Simon Matter +- removed BuildPrereq for e2fsprogs-devel + +* Thu Dec 12 2002 Simon Matter +- modified RedHat release detection +- added BuildPrereq for file + +* Thu Dec 05 2002 Simon Matter +- upgraded to cyrus-imapd 2.1.11 +- upgrade IPV6 patch to 20021205 + +* Thu Nov 28 2002 Simon Matter +- Fixed some default attributes + +* Thu Nov 28 2002 Troels Arvin +- Explicitly changed files-section to + - use defattr for simple (root-owned 0644) files + - explictly set root as user/group owner where + the user/group ownership was previously indicated + as "-"; this allows building valid packages without + having to being root when building + +* Mon Nov 25 2002 Simon Matter +- changed default build option for IDLED to off +- included some useful info in README.* + +* Thu Nov 21 2002 Simon Matter +- added build time option for IDLED, thank you Roland Pope + +* Tue Nov 19 2002 Simon Matter +- fixed spec to really use fdatasync patch +- added createonpost patch + +* Thu Nov 14 2002 Simon Matter +- upgraded to cyrus-imapd 2.1.10 +- build without IPv6 support by default + +* Tue Nov 12 2002 Simon Matter +- fixed db detection in .spec + +* Mon Oct 21 2002 Simon Matter +- updated cvt_cyrusdb_all script + +* Fri Oct 18 2002 Simon Matter +- added fdatasync patch + +* Thu Oct 03 2002 Simon Matter +- add RPM version 4.1 compatibility, which means remove installed + but not packaged files + +* Wed Sep 18 2002 Simon Matter +- added auto db converting functionality +- changed default for MBOXLIST_DB and SEEN_DB to skiplist + +* Mon Sep 16 2002 Simon Matter +- remove creation of cyrus user at build time +- added scripts from ftp://kalamazoolinux.org/pub/projects/awilliam/cyrus/ + +* Mon Sep 02 2002 Simon Matter +- upgraded to cyrus-imapd 2.1.9 + +* Fri Aug 30 2002 Simon Matter +- included extra ident string + +* Thu Aug 29 2002 Simon Matter +- modified path in deliver-wrapper, thank you Richard L. Phipps +- added RedHat 2.1AS support to the perlhack detection +- added build time option to force syncronous updates on ext3 + +* Wed Aug 28 2002 Simon Matter +- added updated IPv6 patch from Hajimu UMEMOTO + +* Wed Aug 28 2002 Simon Matter +- upgraded to cyrus-imapd 2.1.8 + +* Thu Aug 22 2002 Simon Matter +- included IPv6 patch from Hajimu UMEMOTO + +* Wed Aug 21 2002 Simon Matter +- upgraded to cyrus-imapd 2.1.7 because of wrong version info + +* Wed Aug 21 2002 Simon Matter +- upgraded to cyrus-imapd 2.1.6 + +* Mon Aug 19 2002 Simon Matter +- change db version detection, thank you Chris for reporting + +* Tue Aug 13 2002 Simon Matter +- fixed autoconf detection + +* Mon Aug 12 2002 Simon Matter +- included support for different autoconf versions +- modified the perl build and install process +- made some .spec changes to build on RedHat 7.x and limbo + +* Fri Aug 09 2002 Simon Matter +- included sieve matching patch + +* Thu Jun 27 2002 Simon Matter +- fixed %%post script where %%F was expanded to file.file + +* Wed Jun 26 2002 Simon Matter +- fixed missing man page + +* Tue Jun 25 2002 Simon Matter +- upgraded to cyrus-imapd 2.1.5 + +* Mon Jun 24 2002 Simon Matter +- added compile time parameters to configure the package based on + the idea from Luca Olivetti +- make deliver-wrapper a compile time option + +* Fri May 03 2002 Simon Matter +- upgraded to cyrus-imapd 2.1.4 + +* Mon Apr 22 2002 Simon Matter +- small initscript fix + +* Fri Mar 08 2002 Simon Matter +- upgraded to cyrus-imapd 2.1.3 +- removed some stuff that was cleaned up in the sources +- added compile time options for db backends + +* Wed Mar 06 2002 Simon Matter +- removed requires perl-File-Temp for utils package, it's in the RedHat + perl RPM now + +* Fri Feb 22 2002 Simon Matter +- removed deliverdb/db + +* Wed Feb 20 2002 Simon Matter +- upgraded to cyrus-imapd 2.1.2 + +* Mon Feb 11 2002 Simon Matter +- changed sasl_mech_list: PLAIN in /etc/imapd.conf +- added sieve to /etc/pam.d + +* Fri Feb 08 2002 Simon Matter +- added requires perl-File-Temp for utils package + +* Wed Feb 06 2002 Simon Matter +- added some %%dir flags +- removed /usr/lib/sasl/Cyrus.conf +- added conf templates +- build time option for usage of saslauth group + +* Tue Feb 05 2002 Simon Matter +- upgraded to cyrus-imapd 2.1.1 +- dependency of cyrus-sasl >= 2.1.0-1 + +* Sun Feb 03 2002 Simon Matter +- saslauth group is only deleted on uninstall if there is no other + member in this group + +* Sat Feb 02 2002 Simon Matter +- changed start/stop level in init file + +* Tue Jan 29 2002 Simon Matter +- dependency of cyrus-sasl >= 1.5.24-22 +- dotstuffing patch for sendmail calls made by sieve for outgoing + mails +- patch for ability to force ipurge to traverse personal folders + +* Mon Jan 28 2002 Simon Matter +- minor spec file changes + +* Sat Jan 19 2002 Simon Matter +- changed default auth to pam +- remove several %%dir from %%files sections +- change from /usr/lib/cyrus -> /usr/libexec/cyrus +- rename source files to something like cyrus... +- added rehash tool +- changed to hashed spool + +* Fri Jan 18 2002 Simon Matter +- fixed init script +- fixed %%post section in spec + +* Thu Jan 17 2002 Simon Matter +- ready for first build + +* Wed Jan 09 2002 Simon Matter +- initial package, with help from other packages out there diff --git a/ci.fmf b/ci.fmf new file mode 100644 index 0000000..c5aa0e0 --- /dev/null +++ b/ci.fmf @@ -0,0 +1 @@ +resultsdb-testcase: separate diff --git a/cyrus-imapd-init.service b/cyrus-imapd-init.service index e7a2611..3cecdea 100644 --- a/cyrus-imapd-init.service +++ b/cyrus-imapd-init.service @@ -7,5 +7,6 @@ ConditionPathExists=!/etc/pki/cyrus-imapd/cyrus-imapd-ca.pem [Service] Type=oneshot +Group=mail RemainAfterExit=no -ExecStart=/usr/bin/sscg --package cyrus-imapd --cert-file /etc/pki/cyrus-imapd/cyrus-imapd.pem --cert-key-file /etc/pki/cyrus-imapd/cyrus-imapd-key.pem --ca-file /etc/pki/cyrus-imapd/cyrus-imapd-ca.pem +ExecStart=/usr/bin/sscg --cert-file /etc/pki/cyrus-imapd/cyrus-imapd.pem --cert-key-file /etc/pki/cyrus-imapd/cyrus-imapd-key.pem --ca-file /etc/pki/cyrus-imapd/cyrus-imapd-ca.pem --cert-key-mode=0640 diff --git a/cyrus-imapd.cvt_cyrusdb_all b/cyrus-imapd.cvt_cyrusdb_all deleted file mode 100644 index 5a5227d..0000000 --- a/cyrus-imapd.cvt_cyrusdb_all +++ /dev/null @@ -1,409 +0,0 @@ -#!/bin/bash - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -# This script converts all db files of a cyrus installation from their -# existing format to the format required by the current installation. -# The format of current db files is determined using the 'file' command -# with a magic file added for skiplist db, the new format is read from -# a config file usually in /usr/share/cyrus-imapd/rpm/db.cfg, which is -# created while compiling. After converting, the db.cfg file is -# copied to a cache file usually at /var/lib/imap/rpm/db.cfg.cache to -# allow bypassing this converting script if both files are identical. -# While this is a bit less secure, it may be useful on big server where -# db converting is done automatically. -# -# This script can safely be run as root, it will reexec itself as user -# cyrus if needed. -# -# author: Simon Matter, Invoca Systems - -# changelog -# v1.0.1, Oct 22 2002 Simon Matter -# - added two-step conversion method -# -# v1.0.2, Jan 10 2003 Simon Matter -# - fixed a bug where cvt_cyrusdb was called to convert empty or -# nonexistent files -# -# v1.0.3, Mar 14 2003 Simon Matter -# - fixed a problem with new versions of the file command -# -# v1.0.4 -# - added GPL license -# -# v1.0.5, May 02 2003 Simon Matter -# - modified exec path -# -# v1.0.6, Jul 18 2003 Simon Matter -# - changed db3 to berkeley -# - added new db backends for 2.2 -# -# v1.0.7, Jan 23 2004 Simon Matter -# - included some modifications from Luca Olivetti -# - added masssievec functionality -# -# v1.0.8, Jan 28 2004 Simon Matter -# - convert sieve scripts to UTF-8 before calling masssievec -# -# v1.0.9, Jan 29 2004 Simon Matter -# - convert sieve scripts to UTF-8 only if sievec failed before -# -# v1.0.10, Feb 24 2004 Simon Matter -# - change su within init script to get input from -# /dev/null, this prevents hang when running in SELinux -# -# v1.0.11, Mar 02 2004 Simon Matter -# - fixed SELinux fix -# -# v1.0.12, Dec 16 2004 Simon Matter -# - use runuser instead of su if available -# -# v1.0.13, Jul 15 2005 Simon Matter -# - don't use flat in the two step conversion, use skiplist instead -# -# v1.0.14, Jul 18 2005 Simon Matter -# - replace the order of the magic files in the file call to make -# sure skiplist is detected correctly. -# -# v1.0.15, Aug 17 2005 Simon Matter -# - add functionality to export all berkeley db files to skiplist -# -# v1.1.0, Aug 18 2005 Simon Matter -# - fix export functionality, try to recover Berkeley databases -# as much as possible before any conversion. -# -# v1.1.1, Dec 05 2005 Simon Matter -# - run db_checkpoint in background with a timeout to prevent -# that cyrus-imapd doesn't start at all if it hangs. -# -# v1.1.2, Dec 06 2005 Simon Matter -# - make handling of db_checkpoint more robust -# -# v1.2.0, Jan 12 2006 Simon Matter -# - adopt for cyrus-imapd-2.3 -# -# v1.2.1, Jan 13 2006 Simon Matter -# - code cleanup -# -# v1.2.2, Nov 29 2007 Simon Matter -# - add ability to handle "@include" options in imapd.conf, patch -# provided by Tim Bannister -# -# v1.2.3, Feb 07 2008 Simon Matter -# - add ability to handle tabs in imapd.conf, patch provided -# by Franz Knipp -# - disable default values for some config options like sievedir -# -# v1.2.4, Apr 23 2008 Simon Matter -# - add support for statuscache.db -# -# v1.3.0, Sep 29 2008 Simon Matter -# - add multi-instance support -# -# v1.3.1, Oct 09 2008 Simon Matter -# - improve variable handling -# -# v1.3.2, May 26 2009 Simon Matter -# - add some sanity checks to multi-instance support -# -# v1.3.3, May 27 2009 Simon Matter -# - make some cosmetic changes -# -# v1.3.4, Dec 22 2009 Simon Matter -# - add support for user_deny.db - -VERSION=1.3.4 - -PIDFILE=/var/run/cyrus-master${INSTANCE}.pid - -# instance config -CYRUSCONF=/etc/cyrus${INSTANCE}.conf -IMAPDCONF=/etc/imapd${INSTANCE}.conf - -# make sure what we have is a valid instance -# and that config files are present -if [ -n "$INSTANCE" ]; then - [ -L /etc/rc.d/init.d/${BASENAME} ] || exit 0 -fi -[ -f $CYRUSCONF ] || exit 0 -[ -f $IMAPDCONF ] || exit 0 - -if [ -f $PIDFILE ]; then - read CYRUS_PID < $PIDFILE - if [ -n "$CYRUS_PID" ]; then - if ps -p $CYRUS_PID > /dev/null 2>&1; then - echo "ERROR: cyrus-master is running, unable to convert mailboxes!" - exit 1 - fi - fi -fi - -if [ ! -f $IMAPDCONF ]; then - echo "ERROR: configuration file '${IMAPDCONF}' not found, exiting!" - exit 1 -fi - -# fallback to su if runuser not available -if [ -x /sbin/runuser ]; then - RUNUSER=runuser -else - RUNUSER=su -fi - -# force cyrus user for security reasons -if [ ! $(whoami) = "cyrus" ]; then - exec $RUNUSER - cyrus -c "cd $PWD < /dev/null ; INSTANCE=$INSTANCE $0 $*" -fi - -# special function for migration -EXPORT=$1 - -# files get mode 0600 -umask 166 - -# show version info in log files -echo "cvt_cyrusdb_all version: $VERSION" - -# expand_config -# handle "@include" sections from imapd style config file -expand_config() { - while read line; do - if printf "%s\n" "${line}" | grep -q '^@include:'; then - expand_config "$( printf "%s\n" "${line}" | cut -d : -f 2- | sed -e 's/^[\t ]*//' )" - else - printf "%s\n" "${line}" - fi - done < $1 -} - -# get_config [] -# extracts config option from config file -get_config() { - searchstr=$1 - if config="$(expand_config $IMAPDCONF | egrep "^${searchstr}:")"; then - CFGVAL="$(printf "%s\n" "$config" | cut -d : -f 2- | sed -e 's/^[\t ]*//')" - else - if [ -z "$2" ]; then - echo "ERROR: config option '$1' not found in ${IMAPDCONF}, exiting!" 1>&2 - return 1 - fi - CFGVAL="$2" - fi - echo "get_config ${1}: $CFGVAL" 1>&2 - echo "$CFGVAL" -} - -# where to find files and directories -data_dir=/usr/share/cyrus-imapd/rpm -lib_dir=/usr/lib/cyrus-imapd -system_magic=$(file --version | awk '/magic file/ {print $4}') -cyrus_magic=${data_dir}/magic -cvt_cyrusdb=${lib_dir}/cvt_cyrusdb -sievec=${lib_dir}/sievec -masssievec=${lib_dir}/masssievec -imap_prefix=$(get_config configdirectory) || exit 1 -sieve_dir=$(get_config sievedir) || exit 1 -db_cfg=${data_dir}/db.cfg -db_current=${imap_prefix}/rpm/db.cfg.current -db_cache=${imap_prefix}/rpm/db.cfg.cache - -# source default db backend config -. $db_cfg - -# get configured db backend config -duplicate_db=$(get_config duplicate_db $duplicate_db) || exit 1 -mboxlist_db=$(get_config mboxlist_db $mboxlist_db) || exit 1 -seenstate_db=$(get_config seenstate_db $seenstate_db) || exit 1 -subscription_db=$(get_config subscription_db $subscription_db) || exit 1 -tlscache_db=$(get_config tlscache_db $tlscache_db) || exit 1 -annotation_db=$(get_config annotation_db $annotation_db) || exit 1 -mboxkey_db=$(get_config mboxkey_db $mboxkey_db) || exit 1 -ptscache_db=$(get_config ptscache_db $ptscache_db) || exit 1 -quota_db=$(get_config quota_db $quota_db) || exit 1 -statuscache_db=$(get_config statuscache_db $statuscache_db) || exit 1 -userdeny_db=$(get_config userdeny_db $userdeny_db) || exit 1 - -# remember current db backend config -{ -echo "duplicate_db=${duplicate_db}" -echo "mboxlist_db=${mboxlist_db}" -echo "seenstate_db=${seenstate_db}" -echo "subscription_db=${subscription_db}" -echo "tlscache_db=${tlscache_db}" -echo "annotation_db=${annotation_db}" -echo "mboxkey_db=${mboxkey_db}" -echo "ptscache_db=${ptscache_db}" -echo "quota_db=${quota_db}" -echo "statuscache_db=${statuscache_db}" -echo "userdeny_db=${userdeny_db}" -echo "sieve_version=${sieve_version}" -} | sort > $db_current - -# file_type -file_type() { - this_type=$(file -b -m "${cyrus_magic}:${system_magic}" "$1" 2> /dev/null) - if echo "$this_type" | grep -qi skip > /dev/null 2>&1; then - echo skiplist - elif echo "$this_type" | grep -qi text > /dev/null 2>&1; then - echo flat - else - echo berkeley - fi -} - -# cvt_file -cvt_file() { - target="$1" - new_db="$2" - if [ -s "$target" ]; then - old_db=$(file_type "$target") - if [ ! "$old_db" = "$new_db" ]; then - # The two-step conversion is paranoia against the filenames being encoded - # inside the database or logfiles (berkeley does this, for example). - rm -f "${target}.skiplist" - if [ "$old_db" = "skiplist" ]; then - cp -a "$target" "${target}.skiplist" - else - $cvt_cyrusdb -C $IMAPDCONF "$target" "$old_db" "${target}.skiplist" skiplist - fi - RETVAL=$? - ERRVAL=$(( $ERRVAL + $RETVAL )) - if [ $RETVAL -eq 0 ]; then - rm -f "$target" - if [ -s "${target}.skiplist" ]; then - if [ "$new_db" = "skiplist" ]; then - cp -a "${target}.skiplist" "$target" - else - $cvt_cyrusdb -C $IMAPDCONF "${target}.skiplist" skiplist "$target" "$new_db" - fi - fi - RETVAL=$? - ERRVAL=$(( $ERRVAL + $RETVAL )) - if [ $RETVAL -eq 0 ]; then - rm -f "${target}.skiplist" - else - echo "ERROR: unable to convert ${target}.skiplist from skiplist to $new_db" - fi - else - echo "ERROR: unable to convert $target from $old_db to skiplist" - fi - fi - fi -} - -# cvt_to_utf8 -cvt_to_utf8() { - target="$1" - if [ -s "$target" ]; then - if ! $sievec -C $IMAPDCONF "$target" "${target}.sievec"; then - iconv --from-code=ISO-8859-1 --to-code=UTF-8 --output="${target}.UTF-8" "$target" - if [ -s "${target}.UTF-8" ]; then - # preserve timestamp - touch --reference="${target}" "${target}.UTF-8" - mv -f "${target}.UTF-8" "$target" - else - ERRVAL=$(( $ERRVAL + 1 )) - fi - fi - rm -f "${target}.sievec" - fi -} - -ERRVAL=0 - -# make sure our Berkeley databases are in a sane state -# wait for db_checkpoint to end successfully or kill it after a timeout -db_checkpoint -v -1 -h ${imap_prefix}/db & -DB_CHECK_PID=$! -CNT=0 -while [ $CNT -lt 60 ]; do - if ! kill -0 $DB_CHECK_PID > /dev/null 2>&1; then - break - fi - sleep 1 - let CNT+=1 -done -if kill -0 $DB_CHECK_PID > /dev/null 2>&1; then - kill -USR1 $DB_CHECK_PID > /dev/null 2>&1 - sleep 1 - kill -KILL $DB_CHECK_PID > /dev/null 2>&1 - wait $DB_CHECK_PID > /dev/null 2>&1 -fi - -# do a normal recovery -db_recover -v -h ${imap_prefix}/db -RETVAL=$? -if [ $RETVAL -ne 0 ]; then - # try a catastrophic recovery instead of normal recovery - db_recover -v -c -h ${imap_prefix}/db - RETVAL=$? - ERRVAL=$(( $ERRVAL + $RETVAL )) - if [ $RETVAL -ne 0 ]; then - echo "ERROR: catastrophic recovery of Berkeley databases failed" - fi -fi - -if [ "$EXPORT" = "export" ]; then - # convert all db files to portable format for migration - # TODO: quota_db, we don't touch it for now - cvt_file ${imap_prefix}/deliver.db "skiplist" - cvt_file ${imap_prefix}/mailboxes.db "skiplist" - cvt_file ${imap_prefix}/tls_sessions.db "skiplist" - cvt_file ${imap_prefix}/annotations.db "skiplist" - cvt_file ${imap_prefix}/ptclient/ptscache.db "skiplist" - cvt_file ${imap_prefix}/statuscache.db "skiplist" - cvt_file ${imap_prefix}/user_deny.db "flat" - rm -vf ${imap_prefix}/db/log.* - rm -vf ${imap_prefix}/db/__db.* -else - # always convert db files which have been converted to skiplist - # TODO: quota_db, we don't touch it for now - cvt_file ${imap_prefix}/deliver.db "$duplicate_db" - cvt_file ${imap_prefix}/mailboxes.db "$mboxlist_db" - cvt_file ${imap_prefix}/tls_sessions.db "$tlscache_db" - cvt_file ${imap_prefix}/annotations.db "$annotation_db" - cvt_file ${imap_prefix}/ptclient/ptscache.db "$ptscache_db" - cvt_file ${imap_prefix}/statuscache.db "$statuscache_db" - cvt_file ${imap_prefix}/user_deny.db "$userdeny_db" - # do we have to convert all databases? - if ! cmp -s $db_current $db_cache; then - # we treat sieve scripts the same way like db files - find ${sieve_dir}/ -name "*.script" -type f | while read db_file trash; do - cvt_to_utf8 "$db_file" - done - $masssievec $sievec $IMAPDCONF - # convert all db files left - find ${imap_prefix}/user/ -name "*.seen" -type f | while read db_file trash; do - cvt_file "$db_file" "$seenstate_db" - done - find ${imap_prefix}/user/ -name "*.sub" -type f | while read db_file trash; do - cvt_file "$db_file" "$subscription_db" - done - find ${imap_prefix}/user/ -name "*.mboxkey" -type f | while read db_file trash; do - cvt_file "$db_file" "$mboxkey_db" - done - fi -fi - -# update the config cache file so we can check whether something has changed -if [ $ERRVAL -eq 0 ]; then - mv -f $db_current $db_cache -else - rm -f $db_cache - rm -f $db_current -fi - -exit $ERRVAL diff --git a/cyrus-imapd.service b/cyrus-imapd.service index d8f5bde..7993d95 100644 --- a/cyrus-imapd.service +++ b/cyrus-imapd.service @@ -1,6 +1,6 @@ [Unit] Description=Cyrus-imapd IMAP/POP3 email server -After=local-fs.target network.target +After=local-fs.target network-online.target Requires=cyrus-imapd-init.service After=cyrus-imapd-init.service @@ -9,6 +9,7 @@ After=cyrus-imapd-init.service Type=simple EnvironmentFile=/etc/sysconfig/cyrus-imapd ExecStart=/usr/libexec/cyrus-imapd/master $CYRUSOPTIONS +ExecReload=/bin/kill -HUP $MAINPID PrivateTmp=true # Cyrus may spawn many processes in normal operation. These figures are higher diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 028a750..b45d639 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -1,17 +1,15 @@ -%define scmt(l:) %(c=%1; echo ${c:0:%{-l:%{-l*}}%{!-l:7}}) - -# Cassandane commit hash. Cassandane doesn't have releases often, but it -# receives constant development. This was fetched on 20170622. -%global cocas 6bd697c4799cf3f5eed0d89fcc7a365a9ff93680 - -# Cassandane run by default. '--without cassandane' disables. -%bcond_without cassandane +#%%global prever rc1 Name: cyrus-imapd -Version: 3.0.5 -Release: 8%{?dist} +Version: 3.12.1 +Release: %autorelease %{?prever:-e %prever} +Summary: A high-performance email, contacts and calendar server +License: BSD-Attribution-HPND-disclaimer +URL: http://www.cyrusimap.org/ -%define ssl_pem_file /etc/pki/%name/%name.pem +# cyrus-imapd does not to support LTO, but we keep it enabled +# https://github.com/cyrusimap/cyrus-imapd/pull/4679 +#%%define _lto_cflags %%{nil} # UID/GID 76 have long been reserved for Cyrus %define uid 76 @@ -21,117 +19,208 @@ Release: 8%{?dist} %define cyrusgroup mail %define cyrexecdir %_libexecdir/%name -Summary: A high-performance email, contacts and calendar server -License: BSD -URL: http://www.cyrusimap.org/ -Source0: http://www.cyrusimap.org/releases/%name-%version.tar.gz +%define ssl_pem_file_prefix /etc/pki/%name/%name -# Adapt a timeout to handle our slower builders -Patch0: patch-cyrus-testsuite-timeout +%global __provides_exclude ^perl\\(AnnotateInlinedCIDs\\)$ -# Upstream https://github.com/cyrusimap/cyrus-imapd/issues/2026 -Patch1: patch-cyrus-managesieve-linking - -# Fedora-specific patch for the default configuration file -Patch3: patch-cyrus-default-configs - -# Upstream commit which adds libical3 support, picked back from the devel -# branch -Patch4: https://github.com/cyrusimap/cyrus-imapd/commit/1966c22fc4249a1157a4d4c1224138ce78653514.patch - -# gcc8 detects a strcpy overflow in master. -Patch5: https://github.com/elliefm/cyrus-imapd/commit/79244173353d95149ad1944f61cc6bd2e43bd7d4.patch - -# Fix squatter segfaults seen on rawhide. -Patch6: https://github.com/cyrusimap/cyrus-imapd/commit/24af24aa77144e0c1ab976657833b470502be7a8.patch - -# Fix imtest -m gssapi on some servers. -# https://bugzilla.redhat.com/show_bug.cgi?id=1543481 -# https://github.com/cyrusimap/cyrus-imapd/pull/2268 -Patch7: https://github.com/cyrusimap/cyrus-imapd/commit/7214a7e3a60c628575a73dab0437e065b9e9a32a.patch - -# vzic uses an old makefile that needs hacks to use the proper flags -Patch8: patch-vzic-proper-cflags +# Cassandane testsuite is no longer executed during build time. It is called from separate CI test: +# +# https://gitlab.com/redhat/centos-stream/tests/cyrus-imapd/-/tree/main/Sanity/cassandane +# +# Do not remove CASSANDANE* and CASSANDANE*_END tags - the content between them is extracted and executed inside the CI test. +# +# If you want to run cassandane manually through this spec file, run: +# # echo -e '%%_with_cassandane 1\n%%_topdir /tmp/rpmbuild' | sed -e 's/%//' >> ~/.rpmmacros +# # rpm -i cyrus-imapd-*.src.rpm +# # dnf builddep /tmp/rpmbuild/SPECS/cyrus-imapd.spec -y +# # rpmbuild -bi /tmp/rpmbuild/SPECS/cyrus-imapd.spec 2>&1 | tee build.log +%bcond_with cassandane +Source0: https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus-imapd-%version%{?prever:-%prever}/cyrus-imapd-%version%{?prever:-%prever}.tar.gz +Source1: https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus-imapd-%version%{?prever:-%prever}/cyrus-imapd-%version%{?prever:-%prever}.tar.gz.sig +Source2: ellie-pub.key Source10: cyrus-imapd.logrotate Source11: cyrus-imapd.pam-config Source12: cyrus-imapd.sysconfig -Source13: cyrus-imapd.cvt_cyrusdb_all -Source14: cyrus-imapd.magic +Source13: cyrus-imapd.magic # XXX A systemd timer would probably be better -Source15: cyrus-imapd.cron-daily -Source16: README.rpm -Source17: cyrus-imapd.service -Source18: cyrus-imapd-init.service -Source19: cyrus-imapd.tmpfiles.conf - -# Source files for running the Cassandane test suite at build time. -Source80: https://github.com/cyrusimap/cassandane/archive/%cocas.tar.gz#/cassandane-%{scmt %cocas}.tar.gz - -# The CPAN version, and hence the Fedora-packaged version, of Net::CalDAVTalk -# doesn't include the testdata directory. Cassandane can use it for testing -# calendaring, so it's included here. -# This archive was generated by running: -# svn export https://github.com/brong/Net-CalDAVTalk/trunk/testdata -# tar cfz cassandane-testdata-20170523.tar.gz testdata -# Note that this changes very rarely. See -# https://github.com/brong/Net-CalDAVTalk/tree/master/testdata -Source81: cassandane-testdata-20170523.tar.gz +Source14: cyrus-imapd.cron-daily +Source15: README.rpm +Source16: cyrus-imapd.service +Source17: cyrus-imapd-init.service +Source18: systemd-tmpfiles.conf +Source19: systemd-sysusers.conf # A template config file for cassandane; we will substitute in varions values. -Source82: cassandane.ini +Source81: cassandane.ini -# These are source files and not patches because you can't use autosetup to -# apply patches to secondary unpacked source files. +# Adapt a timeout to handle our slower builders +Patch0: patch-cyrus-testsuite-timeout +# Fedora-specific patch for the default configuration file +Patch1: patch-cyrus-default-configs +# We rename quota to cyr_quota to avoid a conflict with /usr/bin/quota; one +# place in the source must be patched to match. +Patch2: patch-cyrus-rename-quota +# cyrus-imapd does not support LTO +# https://github.com/cyrusimap/cyrus-imapd/pull/4679 +# Remove attribute always_inline to fix compilation error and keep LTO enabled: +# https://bugzilla.redhat.com/show_bug.cgi?id=2223951 +Patch3: patch-cyrus-remove-always-inline-for-buf-len +Patch4: patch-cyrus-rename-imtest +# Cassandane patches: # Prevent cassandane from trying to syslog things -Source91: patch-cassandane-no-syslog - +Patch91: patch-cassandane-no-syslog # Tell the annotator script to run as the current user/group # Upstream ticket https://github.com/cyrusimap/cyrus-imapd/issues/1995 -Source92: patch-cassandane-fix-annotator - -BuildRequires: autoconf automake bison flex gcc gcc-c++ git groff libtool -BuildRequires: pkgconfig systemd transfig - -BuildRequires: perl-devel perl-generators perl(ExtUtils::MakeMaker) -BuildRequires: perl(Pod::Html) - -BuildRequires: CUnit-devel clamav-devel cyrus-sasl-devel glib2-devel -BuildRequires: jansson-devel krb5-devel libical-devel libnghttp2-devel -BuildRequires: libxml2-devel mariadb-devel net-snmp-devel openldap-devel -BuildRequires: openssl-devel postgresql-devel shapelib-devel sqlite-devel -BuildRequires: xapian-core-devel +Patch92: patch-cassandane-fix-annotator +# Due to the /usr/sbin->/usr/bin merge, add /usr/bin path to the mix +Patch93: patch-cassandane-build-info.patch +BuildRequires: autoconf automake bison flex gcc gcc-c++ git glibc-langpack-en +BuildRequires: groff libtool make perl-devel perl(ExtUtils::MakeMaker) +BuildRequires: perl-generators perl(Pod::Html) pkgconfig rsync systemd +BuildRequires: systemd-rpm-macros xxd +BuildRequires: CUnit-devel cyrus-sasl-devel glib2-devel +BuildRequires: jansson-devel krb5-devel libical-devel libicu-devel +BuildRequires: libnghttp2-devel libpq-devel libxml2-devel +BuildRequires: mariadb-connector-c-devel net-snmp-devel +BuildRequires: openldap-devel openssl-devel pcre2-devel +BuildRequires: sqlite-devel wslay-devel xapian-core-devel # Miscellaneous modules needed for 'make check' to function: BuildRequires: cyrus-sasl-plain cyrus-sasl-md5 +%if 0%{?fedora} +BuildRequires: clamav-devel shapelib-devel +%endif +%if 0%{?fedora} || 0%{?rhel} > 8 +BuildRequires: gnupg2 +%endif + %if %{with cassandane} # Additional packages required for cassandane to function -BuildRequires: imaptest net-tools words -BuildRequires: perl(AnyEvent) perl(BSD::Resource) perl(Clone) -BuildRequires: perl(experimental) perl(File::chdir) perl(File::Slurp) -BuildRequires: perl(IO::Socket::INET6) perl(Mail::IMAPTalk) -BuildRequires: perl(Config::IniFiles) perl(Mail::JMAPTalk) perl(Math::Int64) -BuildRequires: perl(Net::CalDAVTalk) perl(Net::CardDAVTalk) -BuildRequires: perl(Net::Server) perl(News::NNTPClient) perl(Path::Tiny) -BuildRequires: perl(String::CRC32) perl(Sys::Syslog) -BuildRequires: perl(Test::Unit::TestRunner) perl(Time::HiRes) -BuildRequires: perl(Unix::Syslog) perl(XML::DOM) perl(XML::Generator) - -# These were only for JMAP-Tester -# perl(Moo), perl(Moose), perl(MooseX::Role::Parameterized) perl(Throwable), perl(Safe::Isa) +BuildRequires: cpan dovecot-devel net-tools words +BuildRequires: perl-interpreter +%if 0%{?fedora} +BuildRequires: cld2-devel +%endif +# Dependency list generated by this command: +# cd cassandane; grep -R -h '^[ \t]*use .*;$' | sed -e 's/.*use \([^ ]*\).*;/\1/' | sort | uniq | \ +# egrep -v 'Cassandane::|Cyrus::|v5|Net::XmtpServer' | sed -e 's/\(.*\)/BuildRequires: perl(\1)/' +BuildRequires: perl(AnyEvent) +BuildRequires: perl(AnyEvent::Handle) +BuildRequires: perl(AnyEvent::Socket) +BuildRequires: perl(AnyEvent::Util) +BuildRequires: perl(attributes) +BuildRequires: perl(base) +BuildRequires: perl(BSD::Resource) +BuildRequires: perl(bytes) +BuildRequires: perl(Carp) +BuildRequires: perl(charnames) +BuildRequires: perl(Clone) +BuildRequires: perl(Config) +BuildRequires: perl(Config::IniFiles) +BuildRequires: perl(constant) +BuildRequires: perl(Cwd) +BuildRequires: perl(Data::Dumper) +BuildRequires: perl(Data::GUID) +BuildRequires: perl(Data::ICal) +BuildRequires: perl(Data::UUID) +BuildRequires: perl(DateTime) +BuildRequires: perl(DateTime::Format::ISO8601) +BuildRequires: perl(DBI) +BuildRequires: perl(Digest::file) +BuildRequires: perl(Digest::MD5) +BuildRequires: perl(Encode) +BuildRequires: perl(Errno) +BuildRequires: perl(Error) +BuildRequires: perl(experimental) +BuildRequires: perl(Exporter) +BuildRequires: perl(feature) +BuildRequires: perl(fields) +BuildRequires: perl(File::Basename) +BuildRequires: perl(File::chdir) +BuildRequires: perl(File::Copy) +BuildRequires: perl(File::Find) +BuildRequires: perl(File::Path) +BuildRequires: perl(File::Slurp) +BuildRequires: perl(File::stat) +BuildRequires: perl(File::Temp) +BuildRequires: perl(Getopt::Long) +BuildRequires: perl(Getopt::Std) +BuildRequires: perl(HTTP::Daemon) +BuildRequires: perl(HTTP::Tiny) +BuildRequires: perl(IO::File) +BuildRequires: perl(IO::Handle) +BuildRequires: perl(IO::Scalar) +BuildRequires: perl(IO::Select) +BuildRequires: perl(IO::Socket) +BuildRequires: perl(IO::Socket::INET) +BuildRequires: perl(IO::Socket::INET6) +BuildRequires: perl(IO::Socket::UNIX) +BuildRequires: perl(JSON) +BuildRequires: perl(JSON::XS) +BuildRequires: perl(lib) +BuildRequires: perl(List::Util) +BuildRequires: perl(LWP::UserAgent) +BuildRequires: perl(Mail::IMAPTalk) +BuildRequires: perl(Mail::JMAPTalk) +BuildRequires: perl(Math::Int64) +BuildRequires: perl(MIME::Base64) +BuildRequires: perl(Module::Load::Conditional) +BuildRequires: perl(Net::CalDAVTalk) +BuildRequires: perl(Net::CardDAVTalk) +BuildRequires: perl(Net::CardDAVTalk::VCard) +BuildRequires: perl(Net::DAVTalk) +BuildRequires: perl(Net::LDAP::Filter) +BuildRequires: perl(Net::LDAP::FilterMatch) +BuildRequires: perl(Net::LDAP::LDIF) +BuildRequires: perl(Net::LDAP::Server) +BuildRequires: perl(Net::LDAP::Util) +BuildRequires: perl(Net::POP3) +BuildRequires: perl(Net::Server::PreForkSimple) +BuildRequires: perl(News::NNTPClient) +BuildRequires: perl(overload) +BuildRequires: perl(Plack::Loader) +BuildRequires: perl(Plack::Request) +BuildRequires: perl(Plack::Response) +BuildRequires: perl(POSIX) +BuildRequires: perl(Scalar::Util) +BuildRequires: perl(Storable) +BuildRequires: perl(strict) +BuildRequires: perl(Sys::Hostname) +BuildRequires: perl(Sys::Syslog) +BuildRequires: perl(Test::TCP) +BuildRequires: perl(Test::Unit::Exception) +BuildRequires: perl(Test::Unit::Result) +BuildRequires: perl(Test::Unit::Runner::XML) +BuildRequires: perl(Text::VCardFast) +BuildRequires: perl(Time::HiRes) +BuildRequires: perl(URI) +BuildRequires: perl(URI::Escape) +BuildRequires: perl(User::pwent) +BuildRequires: perl(utf8) +BuildRequires: perl(vars) +BuildRequires: perl(version) +BuildRequires: perl(warnings) +BuildRequires: perl(XML::DOM) +BuildRequires: perl(XML::Generator) +BuildRequires: perl(XML::Simple) +BuildRequires: perl(XML::Spice) +# These were reported as missing during the build itself +BuildRequires: perl(DBD::SQLite) +BuildRequires: perl(Digest::CRC) +BuildRequires: perl(Moo) +BuildRequires: perl(String::CRC32) +BuildRequires: perl(Types::Standard) +BuildRequires: perl(Unix::Syslog) %endif -Requires(pre): shadow-utils -Requires(post): /sbin/ldconfig -Requires(postun): /sbin/ldconfig %{?systemd_requires} -Requires: %name-utils = %version-%release -Recommends: %name-vzic = %version-%release -Requires: file libdb-utils sscg -Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) +Requires: cyrus-imapd-libs%{?_isa} = %{version}-%{release} +Requires: cyrus-imapd-utils = %{version}-%{release} +Requires: file sscg %{?perl_default_filter} @@ -152,22 +241,20 @@ is through software using the IMAP, IMAPS, JMAP, POP3, POP3S, KPOP, CalDAV and/or CardDAV protocols. The private mailbox database design gives the Cyrus IMAP server large -advantages in efficiency, scalability, and administratability. Multiple +advantages in efficiency, scalability, and administrability. Multiple concurrent read/write connections to the same mailbox are permitted. The server supports access control lists on mailboxes and storage quotas on mailbox hierarchies. - %package devel Summary: Cyrus IMAP server development files -Requires: %name%{?_isa} = %version-%release +Requires: cyrus-imapd-libs%{?_isa} = %{version}-%{release} Requires: pkgconfig %description devel The %name-devel package contains header files and libraries necessary for developing applications which use the imclient library. - %package doc-extra Summary: Extra documentation for the Cyrus IMAP server BuildArch: noarch @@ -177,117 +264,137 @@ This package contains the HTML documentation for the Cyrus IMAP server, as well as some legacy and internal documentation not useful for normal operation of the server. +%package libs +Summary: Runtime libraries for cyrus-imapd + +%description libs +The cyrus-imapd-libs package contains libraries shared by the Cyrus IMAP server +and the its utilities. %package utils Summary: Cyrus IMAP server administration utilities +Requires: cyrus-imapd-libs%{?_isa} = %{version}-%{release} +Requires: perl-Cyrus = %{version}-%{release} %description utils The cyrus-imapd-utils package contains administrative tools for the Cyrus IMAP server. It can be installed on systems other than the one running the server. +%package virusscan +Summary: Cyrus virus scanning utility +Requires: cyrus-imapd-libs%{?_isa} = %{version}-%{release} -%package vzic -Summary: Utilities to convert timezone database files -License: GPLv2+ -Requires: %name = %version-%release -# Contains a lightly forked version of vzic. This seems to have been bundled -# into various other things and it's old, so I'm not sure where the upstream -# is. Here are a couple of possible upstreams: -# https://github.com/libical/vzic -# https://sourceforge.net/projects/vzic/ -# It is probably a good idea to split it out and package it separately, but the -# code here definitely differs from that at the second link above. -Provides: bundled(vzic) = 1.3 +%description virusscan +The cyrus-imapd-virusscan package contains the cyr_virusscan utility. It +exists in a separate package so that users who do not wish to install all of +the clamav suite don't have to. -%description vzic -vzic is a program to convert the Olson timezone database files into VTIMEZONE -files compatible with the iCalendar specification (RFC2445). +Install this package if you wish to use the internal cyrus virus scanning +utility. -This package contains a forked version of vzic for internal use by the Cyrus -IMAP server. +%package -n perl-Cyrus +Summary: Perl libraries for interfacing with Cyrus IMAPd + +%description -n perl-Cyrus +This package contains Perl libraries used to interface with Cyrus IMAPd. -# Build dir is either $PWD, $(pwd) or % %prep -%autosetup -p1 -S git +%if 0%{?fedora} || 0%{?rhel} > 8 +%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' +%endif + +%autosetup -p1 -n cyrus-imapd-%{version}%{?prever:-%{prever}} + +# https://github.com/cyrusimap/cyrus-imapd/commit/216934c3f4884999206715db3499fc0162e1d65c echo %version > VERSION # Install the Fedora-specific documentation file -install -m 644 %SOURCE16 doc/ +install -m 644 %SOURCE15 doc/ -# Unpack and prepare cassandane -tar xf %SOURCE80 -ln -s cassandane-%cocas cassandane -pushd cassandane -mkdir work -tar xf %SOURCE81 +# The pm files have shebang lines for some reason +sed -i -e '1{/usr.bin.perl/d}' perl/annotator/{Message,Daemon}.pm -patch -p1 < %SOURCE91 -patch -p1 < %SOURCE92 +# This one uses env +sed -i -e '1i#!/usr/bin/perl' -e '1d' tools/rehash -cp %SOURCE82 cassandane.ini -# RF rpm-buildroot-usage +# These files have a bizarre perl-in-shell shebang setup. The exec perl bit +# sometimes comes after a long comment block. All use magic to turn on -w. +# Some of these aren't installed, but we might as well fix them all just in +# case. sed -i \ - -e "s!CASSDIR!$(pwd)!" \ - -e "s!BUILDROOT!%buildroot!" \ - cassandane.ini + -e '1i#!/usr/bin/perl -w' \ + -e '/^#!\/usr\/bin\/perl/d' \ + -e '/^exec perl/d' \ + -e '/^#!perl -w/d' \ + -e '/^#!perl/d' \ + -e '/^#!\/bin\/sh/d' \ + -e '/^#! \/bin\/sh/d' \ + perl/sieve/scripts/installsieve.pl perl/imap/cyradm.sh tools/translatesieve +# TODO: let the above remnants get fixed upstream like it happened for previous occurences: +# https://github.com/cyrusimap/cyrus-imapd/commit/09fd77717044f96e900c38b1e361028ef39ba381 +# https://github.com/cyrusimap/cyrus-imapd/commit/bbb7c68a6b55ffe9356d2033192fffbcafc4d73f -popd - -%build -# This is the test suite, which doesn't build much but does verify its dependencies. -# If this is done after the configure call, the one thing it does build fails -# because the configure macro puts some hardening flags into the environment. %if %{with cassandane} pushd cassandane -make +cp %SOURCE81 cassandane.ini +# RF rpm-buildroot-usage +sed -i \ + -e "s!CASSDIR!/tmp/cassandane!" \ + -e "s!BUILDROOT!%buildroot!" \ + cassandane.ini popd %endif -# Notes about configure options: -# --enable-objectstore -# It's experimental, and it doesn't appear that either openio or caringo are -# in Fedora. -# --without-clamav (on ppc64 only) -# cyr_virusscan fails with internal llvm errors on ppc64 _only_. See -# https://bugzilla.redhat.com/show_bug.cgi?id=1534071 +%build +autoreconf --verbose --force --install -# --with-cyrus-prefix and --with-service-path went away; use --with-libexecdir= -# instead. +%if %{with cassandane} && 0%{?fedora} +# Needed for Cyrus::FastMail tests to pass +export CLD2_CFLAGS="-I/usr/include/cld2" +export CLD2_LIBS="-lcld2" +%endif -# Needed because of Patch4. -autoreconf -vi +# C++17 or later needed for libicu-devel +export CXXFLAGS="%{optflags} -std=gnu++17" %configure \ --disable-silent-rules \ \ --libexecdir=%cyrexecdir \ + --with-clamav \ +%if %{with cassandane} && 0%{?fedora} +`# Needed for Cyrus::FastMail tests to pass` \ + --with-cld2 \ +%endif --with-extraident="%release Fedora" \ --with-krbimpl=mit \ --with-ldap=/usr \ - --with-pgsql \ --with-libwrap=no \ + --with-mysql \ + --with-pgsql \ --with-perl=%__perl \ --with-snmp \ --with-syslogfacility=MAIL \ \ --enable-autocreate \ - --enable-backup \ --enable-calalarmd \ --enable-http \ --enable-idled \ - --enable-jmap \ --enable-murder \ + --enable-jmap \ --enable-nntp \ --enable-replication \ --enable-unit-tests \ --enable-xapian \ -%ifarch ppc64 - --without-clamav \ -%endif -# +`# Force use of pcre2 in case pcre still available` \ + --disable-pcre + +# Try to get rid of RPATH.... +sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool +sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool # The configure script will set up the Perl makefiles, but not in the way # Fedora needs them. So regenerate them manually. @@ -303,8 +410,64 @@ done # This isn't built by default, but this package has always installed it. make notifyd/notifytest -# Also not built by default, but the tools are needed for serving timezone info -make -C tools/vzic +# CASSANDANE_BUILD +%if %{with cassandane} +# This module is not available in Fedora: +yes | cpan -T IO::File::fcntl + +# This is the test suite, which doesn't build much but does verify its dependencies. +pushd cassandane +export NOCYRUS=1 +make + +export IMAPTEST_COMMIT=44ff753f51d1a767b8d71b04e882847664d9f0c8 + +# Do not depend on imaptest package (missing on RHEL10) +wget https://github.com/dovecot/imaptest/archive/$IMAPTEST_COMMIT/imaptest-$IMAPTEST_COMMIT.tar.gz +rm -rf imaptest-src +mkdir imaptest-src +tar -xf imaptest-$IMAPTEST_COMMIT.tar.gz --strip-components=1 -C imaptest-src +pushd imaptest-src +cat <<'EOF_so-file.patch' > so-file.patch +From 39d3dcc8f8ae4e7e751cb0ba633301630e32f54e Mon Sep 17 00:00:00 2001 +From: Aki Tuomi +Date: Tue, 20 May 2025 11:47:24 +0300 +Subject: [PATCH] configure: Use libssl_iostream_openssl.so with installed + dovecot + +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index d8c3405..df881b5 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -25,8 +25,8 @@ AS_IF([test "$DOVECOT_INSTALLED" = 'no'], [ + LIBDOVECOT=$abs_dovecotdir/src/lib-dovecot/libdovecot.la + LIBDOVECOT_SSL=$abs_dovecotdir/src/lib-ssl-iostream/libssl_iostream_openssl.la + ], [ +- LIBDOVECOT=$dovecot_pkglibdir/libdovecot.la +- LIBDOVECOT_SSL=$dovecot_moduledir/libssl_iostream_openssl.la ++ LIBDOVECOT=$dovecot_pkglibdir/libdovecot.so ++ LIBDOVECOT_SSL=$dovecot_moduledir/libssl_iostream_openssl.so + ]) + AC_SUBST([LIBDOVECOT_SSL]) +EOF_so-file.patch +patch -p1 < so-file.patch +autoreconf -i +# Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1103927#c4 (and later) +sed -e 's@\(^LIBDOVECOT .*\)@\1 -Wl,-rpath -Wl,/usr/lib64/dovecot@' -i src/Makefile.in +./configure --with-dovecot=/usr/lib64/dovecot +make +popd + +mkdir -p imaptest/src +ln -sfr ./imaptest-src/src/imaptest imaptest/src +ln -sfr ./imaptest-src/src/tests imaptest/src +popd +%endif +# CASSANDANE_BUILD_END %install @@ -337,33 +500,34 @@ for i in arbitronsort.pl masssievec mkimap mknewsgroups rehash translatesieve; d install -m 755 tools/$i %buildroot/%cyrexecdir/ done -for i in vzic vzic-test.pl vzic-merge.pl vzic-dump.pl; do - install -m 755 tools/vzic/$i %buildroot/%cyrexecdir/ -done - -# Install additional files install -p -m 644 %SOURCE10 %buildroot/etc/logrotate.d/%name -install -p -m 644 %SOURCE11 %buildroot/etc/pam.d/pop -install -p -m 644 %SOURCE11 %buildroot/etc/pam.d/imap -install -p -m 644 %SOURCE11 %buildroot/etc/pam.d/sieve -install -p -m 644 %SOURCE11 %buildroot/etc/pam.d/mupdate -install -p -m 644 %SOURCE11 %buildroot/etc/pam.d/lmtp -install -p -m 644 %SOURCE11 %buildroot/etc/pam.d/nntp + +# PAM configuration files. install -p -m 644 %SOURCE11 %buildroot/etc/pam.d/csync +install -p -m 644 %SOURCE11 %buildroot/etc/pam.d/http +install -p -m 644 %SOURCE11 %buildroot/etc/pam.d/imap +install -p -m 644 %SOURCE11 %buildroot/etc/pam.d/lmtp +install -p -m 644 %SOURCE11 %buildroot/etc/pam.d/mupdate +install -p -m 644 %SOURCE11 %buildroot/etc/pam.d/nntp +install -p -m 644 %SOURCE11 %buildroot/etc/pam.d/pop +install -p -m 644 %SOURCE11 %buildroot/etc/pam.d/sieve + install -p -m 644 %SOURCE12 %buildroot/etc/sysconfig/%name -install -p -m 755 %SOURCE13 %buildroot/%cyrexecdir/cvt_cyrusdb_all -install -p -m 644 %SOURCE14 %buildroot/%_datadir/%name/rpm/magic -install -p -m 755 %SOURCE15 %buildroot/etc/cron.daily/%name +install -p -m 644 %SOURCE13 %buildroot/%_datadir/%name/rpm/magic +install -p -m 755 %SOURCE14 %buildroot/etc/cron.daily/%name install -p -m 644 doc/examples/cyrus_conf/prefork.conf %buildroot/etc/cyrus.conf install -p -m 644 doc/examples/imapd_conf/normal.conf %buildroot/etc/imapd.conf -install -p -D -m 644 %SOURCE17 %buildroot/%_unitdir/cyrus-imapd.service -install -p -D -m 644 %SOURCE18 %buildroot/%_unitdir/cyrus-imapd-init.service -install -p -D -m 644 %SOURCE19 %buildroot/%_tmpfilesdir/cyrus-imapd.conf +install -p -D -m 644 %SOURCE16 %buildroot/%_unitdir/cyrus-imapd.service +install -p -D -m 644 %SOURCE17 %buildroot/%_unitdir/cyrus-imapd-init.service +install -p -D -m 644 %SOURCE18 %buildroot/%_tmpfilesdir/cyrus-imapd.conf +# systemd-sysusers +install -p -D -m 644 %{SOURCE19} %{buildroot}%{_sysusersdir}/cyrus-imapd.conf # Cleanup of doc dir find doc perl -name CVS -type d -prune -exec rm -rf {} \; find doc perl -name .cvsignore -type f -exec rm -f {} \; rm -f doc/Makefile.dist* +rm -f doc/html/.buildinfo rm -f doc/text/htmlstrip.c rm -f doc/text/Makefile rm -rf doc/man @@ -377,9 +541,6 @@ find %buildroot/%_libdir/perl5/ -type f -name "*.so" -exec chmod 755 {} \; sed -e 's/^ *//' -e 's/-nosync//' -e 's/ *$//' -e 's/"/=/' echo sieve_version=2.2.3 ) | sort > %buildroot/%_datadir/%name/rpm/db.cfg -# create the ghost pem file -touch %buildroot/%ssl_pem_file - # Cyrus has various files with extremely conflicting names. Some of these are # not unexpected ("imapd" itself) but some like "httpd" are rather surprising. @@ -390,15 +551,11 @@ touch %buildroot/%ssl_pem_file # Actual binary conflicts # Rename 'fetchnews' binary and manpage to avoid clash with leafnode -mv %buildroot/%_sbindir/fetchnews %buildroot/%_sbindir/cyr_fetchnews +mv %buildroot/%_bindir/fetchnews %buildroot/%_bindir/cyr_fetchnews mv %buildroot/%_mandir/man8/fetchnews.8 %buildroot/%_mandir/man8/cyr_fetchnews.8 -# Fix conflict with dump -mv %buildroot/%_sbindir/restore %buildroot/%_sbindir/cyr_restore -mv %buildroot/%_mandir/man8/restore.8 %buildroot/%_mandir/man8/cyr_restore.8 - # Fix conceptual conflict with quota -mv %buildroot/%_sbindir/quota %buildroot/%_sbindir/cyr_quota +mv %buildroot/%_bindir/quota %buildroot/%_bindir/cyr_quota mv %buildroot/%_mandir/man8/quota.8 %buildroot/%_mandir/man8/cyr_quota.8 # fix conflicts with uw-imap @@ -411,14 +568,24 @@ mv %buildroot/%_mandir/man8/master.8 %buildroot/%_mandir/man8/master.8cyrus # Rename 'httpd' manpage to avoid clash with Apache mv %buildroot/%_mandir/man8/httpd.8 %buildroot/%_mandir/man8/httpd.8cyrus -# Old cyrus packages used to keep some executables in /usr/lib/cyrus-imapd +# Fix conflict with imtest from python-fslpy +mv %buildroot/%_bindir/imtest %buildroot/%_bindir/cyr_imtest +mv %buildroot/%_mandir/man1/imtest.1 %buildroot/%_mandir/man1/cyr_imtest.1 +# Change individual symlinks to point to cyr_imtest instead of imtest +for i in httptest lmtptest mupdatetest nntptest pop3test sivtest smtptest synctest; do + ln -sfr %buildroot/%_bindir/cyr_imtest %buildroot/%_bindir/$i +done + +# Old cyrus packages used to keep the deliver executable in +# /usr/lib/cyrus-imapd, and MTA configurations might rely on this. +# Remove this hack in the F30 timeframe. # RF hardcoded-library-path in %%buildroot/usr/lib/cyrus-imapd mkdir %buildroot/usr/lib/cyrus-imapd pushd %buildroot/usr/lib/cyrus-imapd ln -s ../../sbin/deliver popd -#remove executable bit from docs +#remove executable bit from docs and Perl modules for ddir in doc perl/imap/examples do find $ddir -type f -exec chmod -x {} \; @@ -432,121 +599,123 @@ rm %buildroot/%cyrexecdir/pop3proxyd find %buildroot -name "perllocal.pod" -exec rm {} \; find %buildroot -name ".packlist" -exec rm {} \; +# And this one gets installed with executable permission +chmod -x %buildroot/%perl_vendorlib/Cyrus/Annotator/Daemon.pm + %check -make %{?_smp_mflags} check || exit 1 +# TODO: unit tests fail on i686 - https://github.com/cyrusimap/cyrus-imapd/issues/5431 +%ifnarch i686 +LD_LIBRARY_PATH=%buildroot/%_libdir make -j%{?_smp_build_ncpus} check || exit 1 +%endif %if %{without cassandane} exit 0 %endif -%ifarch s390x -# If s390x is being too slow to pass the tests, just don't run tests there. -exit 0 -%endif +# Create user&group for Cassandane. Cassandane cannot run solely as root because imap services would otherwise quit: +#$ grep -R "must run as the Cyrus user" | egrep "imapd|httpd|pop3d" +#imap/imapd.c: if (geteuid() == 0) fatal("must run as the Cyrus user", EX_USAGE); +#imap/httpd.c: if (geteuid() == 0) fatal("must run as the Cyrus user", EX_USAGE); +#imap/pop3d.c: if (geteuid() == 0) fatal("must run as the Cyrus user", EX_USAGE); +getent group saslauth >/dev/null || /usr/sbin/groupadd -g %gid -r saslauth +getent passwd saslauth >/dev/null && ( + # Workaround for systemd-sysusers bug: https://github.com/systemd/systemd/issues/37495 + # If cyrus-sasl package is installed first, it creates user saslauth with UID 76 instead of only group. + usermod -g users saslauth + userdel saslauth +) +# Set up shell and home directory for cyrus so that debugging of failing tests is easier. +getent passwd cyrus >/dev/null && /usr/sbin/usermod -s /bin/bash cyrus +getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /var/lib/imap -g %cyrusgroup \ + -G saslauth -s /bin/bash -u %uid -r %cyrususer -m +# Set LD_LIBRARY_PATH for cyrus so that it points to cyrus-imapd libraries we just built. +[ -z "`grep LD_LIBRARY_PATH /var/lib/imap/.bashrc`" ] && echo "export LD_LIBRARY_PATH=%buildroot/%_libdir" >> /var/lib/imap/.bashrc + +mkdir -p /tmp/cassandane/work +chown -R %cyrususer:%cyrusgroup /tmp/cassandane/ + +# CASSANDANE # Run the Cassandane test suite. This will exhaustively test the various # server components, but running it in a mock chroot is rather an exercise. pushd cassandane -mkdir -p imaptest/src -ln -s /usr/bin/imaptest imaptest/src -ln -s /usr/share/imaptest/tests imaptest/src - -export LD_LIBRARY_PATH=%buildroot/%_libdir -export CYRUS_USER=$USER - # Construct the set of excluded tests to pass to Cassandane # --------------------------------------------------------- exclude=() tests=( - # This is more a test of system performance and according to upstream won't - # be reliable on shared hardware like our builders. - Metronome + # This exclusion list was verified on 2025-12-19. # This tests coredumping and won't work on a machine where systemd - # intercepts coredumps. + # intercepts coredumps, which includes our builders. Cassandane::Test::Core - # Upstream recommends disabling this because it has an internal race and - # will fail randomly. - Master.sighup_recycling + # Can't currently be run at build time because of compiled-in paths. See + # https://github.com/cyrusimap/cyrus-imapd/issues/2386 + Cyrus::Admin.imap_admins + Cyrus::Admin.imap_admins_virtdomains - # Fails because our Xapian is too old for proper CJK support. 1.5 will be - # OK, but it is not yet released. The alternative is to bundle. - SearchFuzzy.cjk_words - - # As of yet unexplained - # https://github.com/cyrusimap/cyrus-imapd/issues/2047 - Admin.imap_admins - - # Three new failures with imaptest 20170719 - # https://github.com/cyrusimap/cyrus-imapd/issues/2087 - ImapTest.append-binary - ImapTest.fetch-binary-mime - ImapTest.urlauth-binary - - # This one seems to fail randomly. The new imaptest really isn't great and - # we should consider dropping it entirely. - ImapTest.urlauth2 - - # Not sure why this one is failing. - Caldav.changes_remove - - # Upstream on IRC indicates that all of these are expected to fail on 3.0. - CaldavAlarm.override_multiuser - Annotator.annotator_callout_disabled - CaldavAlarm.simple_multiuser_sametime - CaldavAlarm.simple_multiuser - Carddav.sharing_contactpaths - Info.info_lint_junk - Info.info_lint - Metadata.set_specialuse_twice - SearchFuzzy.search_subjectsnippet + # TODO currently failing + Cyrus::Caldav.freebusy_empty_rrule + Cyrus::ImapTest.urlauth2 + Cyrus::IMAPLimits.maxargssize_append_flags + Cyrus::JMAPCalendars.calendarevent_guesstz_ignore_xjmapid + Cyrus::JMAPCalendars.itip_ignore_invalid_timezone + Cyrus::JMAPEmail.email_query_emailaddress + Cyrus::JMAPEmail.email_query_messageid + Cyrus::LibCyrus.example_libcyrus + Cyrus::LibCyrus.example_libcyrus_min + Cyrus::SearchFuzzy.dedup_part_compact + Cyrus::SearchFuzzy.dedup_part_index + Cyrus::SearchFuzzy.index_tier_audit_bug + Cyrus::SearchSquat.nonincremental + Cyrus::SearchSquat.incremental + Cyrus::SearchSquat.one_doc_per_message + Cyrus::Simple.sasl_ir ) for i in ${tests[@]}; do exclude+=("!$i"); done -%if 0%{?fedora} <= 26 -# Some F26-specific test exclusions -tests=( - # These all fail because F26 perl doesn't support quad types in unpack. - Metadata.expunge_messages - Metadata.msg_replication_new_mas_partial_wwd - Metadata.msg_replication_new_rep - Metadata.msg_replication_new_mas - Metadata.msg_replication_exp_bot - Metadata.msg_replication_new_mas_partial_wwsw - Metadata.msg_replication_exp_mas - Metadata.msg_replication_mod_mas - Metadata.msg_replication_exp_rep - Metadata.msg_replication_mod_bot_msl - Metadata.msg_replication_new_bot_mse_gul - Metadata.msg_replication_mod_bot_msh - Metadata.msg_replication_new_bot_mse_guh - Metadata.msg_replication_mod_rep +# If cyrus-imapd is built without cld2 support, the below tests are expected to fail: +if [ -z "$CLD2_CFLAGS" ]; then +exclude+=( + "!Cyrus::FastMail.cyr_expire_delete_findpaths_legacy" + "!Cyrus::FastMail.cyr_expire_delete_findpaths_nolegacy" + "!Cyrus::FastMail.relocate_legacy_domain" + "!Cyrus::FastMail.relocate_legacy_nodomain" + "!Cyrus::FastMail.relocate_legacy_nosearchdb" + "!Cyrus::FastMail.relocate_messages_still_exist" + "!Cyrus::FastMail.search_deleted_folder" + "!Cyrus::FastMail.sync_reset_legacy" + "!Cyrus::FastMail.sync_reset_nolegacy" ) -for i in ${tests[@]}; do exclude+=("!$i"); done +fi + +%ifarch s390x +# This one test fails occasionally on s390x because the hosts are just too slow +# to complete it.D It's testing something valid (that the fork rate limiting +# settings work properly) but s390x can't fork quickly enough to exceeed the +# limits it's testing. +exclude+=("!Master.maxforkrate") %endif # Add -vvv for too much output -./testrunner.pl %{?_smp_mflags} -v -f pretty ${exclude[@]} 2>&1 +sudo -u cyrus -g mail LD_LIBRARY_PATH=%buildroot/%_libdir ./testrunner.pl -j%{?_smp_build_ncpus} -v -f pretty ${exclude[@]} 2>&1 || : +# CASSANDANE_END +if [ -s "work/failed" ]; then + cat work/failed + exit 1 +fi -%pre -# Create 'cyrus' user on target host -getent group saslauth >/dev/null || /usr/sbin/groupadd -g %gid -r saslauth -getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /var/lib/imap -g %cyrusgroup \ - -G saslauth -s /sbin/nologin -u %uid -r %cyrususer %post -/sbin/ldconfig %systemd_post cyrus-imapd.service %preun %systemd_preun cyrus-imapd.service %postun -/sbin/ldconfig %systemd_postun_with_restart cyrus-imapd.service @@ -554,14 +723,121 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v %license COPYING %doc README.md doc/README.* doc/examples doc/text -%_datadir/cyrus-imapd -%_libdir/libcyrus*.so.* -%_mandir/man5/* -%_mandir/man8/* +%{_sbindir}/arbitron +%{_sbindir}/chk_cyrus +%{_sbindir}/ctl_conversationsdb +%{_sbindir}/ctl_cyrusdb +%{_sbindir}/ctl_deliver +%{_sbindir}/ctl_mboxlist +%{_sbindir}/ctl_zoneinfo +%{_sbindir}/cvt_cyrusdb +%{_sbindir}/cvt_xlist_specialuse +%{_sbindir}/cyr_buildinfo +%{_sbindir}/cyr_cd.sh +%{_sbindir}/cyr_dbtool +%{_sbindir}/cyr_deny +%{_sbindir}/cyr_df +%{_sbindir}/cyr_expire +%{_sbindir}/cyr_fetchnews +%{_sbindir}/cyr_info +%{_sbindir}/cyr_ls +%{_sbindir}/cyr_pwd +%{_sbindir}/cyr_quota +%{_sbindir}/cyr_synclog +%{_sbindir}/cyr_userseen +%{_sbindir}/cyr_withlock_run +%{_sbindir}/cyrdump +%{_sbindir}/dav_reconstruct +%{_sbindir}/deliver +%{_sbindir}/ipurge +%{_sbindir}/mbexamine +%{_sbindir}/mbpath +%{_sbindir}/mbtool +%{_sbindir}/ptdump +%{_sbindir}/ptexpire +%{_sbindir}/reconstruct +%{_sbindir}/relocate_by_id +%{_sbindir}/sievec +%{_sbindir}/sieved +%{_sbindir}/squatter +%{_sbindir}/sync_client +%{_sbindir}/sync_reset +%{_sbindir}/tls_prune +%{_sbindir}/unexpunge +%{_datadir}/cyrus-imapd +%{_mandir}/man1/dav_reconstruct.1* +%{_mandir}/man5/cyrus.conf.5* +%{_mandir}/man5/imapd.conf.5* +%{_mandir}/man8/arbitron.8* +%{_mandir}/man8/calalarmd.8* +%{_mandir}/man8/chk_cyrus.8* +%{_mandir}/man8/ctl_conversationsdb.8* +%{_mandir}/man8/ctl_cyrusdb.8* +%{_mandir}/man8/ctl_deliver.8* +%{_mandir}/man8/ctl_mboxlist.8* +%{_mandir}/man8/ctl_zoneinfo.8* +%{_mandir}/man8/cvt_cyrusdb.8* +%{_mandir}/man8/cvt_xlist_specialuse.8* +%{_mandir}/man8/cyr_buildinfo.8* +%{_mandir}/man8/cyr_dbtool.8* +%{_mandir}/man8/cyr_deny.8* +%{_mandir}/man8/cyr_df.8* +%{_mandir}/man8/cyr_expire.8* +%{_mandir}/man8/cyr_fetchnews.8* +%{_mandir}/man8/cyr_info.8* +%{_mandir}/man8/cyr_ls.8* +%{_mandir}/man8/cyr_quota.8* +%{_mandir}/man8/cyr_synclog.8* +%{_mandir}/man8/cyr_userseen.8* +%{_mandir}/man8/cyr_withlock_run.8* +%{_mandir}/man8/cyradm.8* +%{_mandir}/man8/cyrdump.8* +%{_mandir}/man8/deliver.8* +%{_mandir}/man8/fud.8* +%{_mandir}/man8/httpd.8cyrus* +%{_mandir}/man8/idled.8* +%{_mandir}/man8/imapd.8cyrus* +%{_mandir}/man8/ipurge.8* +%{_mandir}/man8/lmtpd.8* +%{_mandir}/man8/lmtpproxyd.8* +%{_mandir}/man8/master.8cyrus* +%{_mandir}/man8/mbexamine.8* +%{_mandir}/man8/mbpath.8* +%{_mandir}/man8/mbtool.8* +%{_mandir}/man8/mupdate.8* +%{_mandir}/man8/nntpd.8* +%{_mandir}/man8/notifyd.8* +%{_mandir}/man8/pop3d.8cyrus* +%{_mandir}/man8/pop3proxyd.8* +%{_mandir}/man8/promstatsd.8* +%{_mandir}/man8/proxyd.8* +%{_mandir}/man8/ptdump.8* +%{_mandir}/man8/ptexpire.8* +%{_mandir}/man8/ptloader.8* +%{_mandir}/man8/reconstruct.8* +%{_mandir}/man8/relocate_by_id.8* +%{_mandir}/man8/sievec.8* +%{_mandir}/man8/sieved.8* +%{_mandir}/man8/smmapd.8* +%{_mandir}/man8/squatter.8* +%{_mandir}/man8/sync_client.8* +%{_mandir}/man8/sync_reset.8* +%{_mandir}/man8/sync_server.8* +%{_mandir}/man8/timsieved.8* +%{_mandir}/man8/tls_prune.8* +%{_mandir}/man8/unexpunge.8* + +%exclude %{_sbindir}/cyr_virusscan +%exclude %{_mandir}/man8/cyr_virusscan.8* + +# For the legacy symlink to the deliver binary +# RF hardcoded-library-path in /usr/lib/cyrus-imapd +/usr/lib/cyrus-imapd/ %dir /etc/pki/cyrus-imapd -%attr(0640,root,%cyrusgroup) %ghost %config(missingok,noreplace) %verify(not md5 size mtime) %ssl_pem_file - +%attr(0644,root,%cyrusgroup) %ghost %config(missingok,noreplace) %verify(not md5 size mtime) %ssl_pem_file_prefix-ca.pem +%attr(0644,root,%cyrusgroup) %ghost %config(missingok,noreplace) %verify(not md5 size mtime) %ssl_pem_file_prefix.pem +%attr(0640,root,%cyrusgroup) %ghost %config(missingok,noreplace) %verify(not md5 size mtime) %ssl_pem_file_prefix-key.pem %config(noreplace) /etc/cyrus.conf %config(noreplace) /etc/imapd.conf @@ -573,6 +849,7 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v %_unitdir/cyrus-imapd.service %_unitdir/cyrus-imapd-init.service %_tmpfilesdir/cyrus-imapd.conf +%{_sysusersdir}/cyrus-imapd.conf %dir %cyrexecdir/ %cyrexecdir/[a-uw-z]* @@ -605,383 +882,70 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v %attr(0700,%cyrususer,%cyrusgroup) /run/cyrus/proc/ %attr(0750,%cyrususer,%cyrusgroup) /run/cyrus/socket/ - %files devel -%_includedir/cyrus/ -%_libdir/libcyrus*.so -%_libdir/pkgconfig/*.pc -%_mandir/man3/imclient.3* - +%{_includedir}/cyrus/ +%{_libdir}/libcyrus.so +%{_libdir}/libcyrus_imap.so +%{_libdir}/libcyrus_min.so +%{_libdir}/libcyrus_sieve.so +%{_libdir}/pkgconfig/*.pc +%{_mandir}/man3/imclient.3* %files doc-extra %doc doc/html doc/internal doc/legacy +%files libs +%license COPYING +%{_libdir}/libcyrus.so.0* +%{_libdir}/libcyrus_imap.so.0* +%{_libdir}/libcyrus_min.so.0* +%{_libdir}/libcyrus_sieve.so.0* %files utils +%{_bindir}/cyradm +%{_bindir}/httptest +%{_bindir}/cyr_imtest +%{_bindir}/installsieve +%{_bindir}/lmtptest +%{_bindir}/mupdatetest +%{_bindir}/nntptest +%{_bindir}/notifytest +%{_bindir}/pop3test +%{_bindir}/sieveshell +%{_bindir}/sivtest +%{_bindir}/smtptest +%{_bindir}/synctest +%{_mandir}/man1/cyradm.1* +%{_mandir}/man1/httptest.1* +%{_mandir}/man1/cyr_imtest.1* +%{_mandir}/man1/installsieve.1* +%{_mandir}/man1/lmtptest.1* +%{_mandir}/man1/mupdatetest.1* +%{_mandir}/man1/nntptest.1* +%{_mandir}/man1/pop3test.1* +%{_mandir}/man1/sieveshell.1* +%{_mandir}/man1/sivtest.1* +%{_mandir}/man1/smtptest.1* +%{_mandir}/man1/synctest.1* + +%files virusscan +%{_sbindir}/cyr_virusscan +%{_mandir}/man8/cyr_virusscan.8* + +%files -n perl-Cyrus %license COPYING %doc perl/imap/README %doc perl/imap/Changes %doc perl/imap/examples -%{_bindir}/* -%{_sbindir}/* %{perl_vendorarch}/auto/Cyrus %{perl_vendorarch}/Cyrus %{perl_vendorlib}/Cyrus -%{_mandir}/man3/*.3pm* -%{_mandir}/man1/* -# RF hardcoded-library-path in /usr/lib/cyrus-imapd -/usr/lib/cyrus-imapd - - -%files vzic -%cyrexecdir/vzic* - +%{_mandir}/man3/Cyrus::Annotator::Daemon.3pm* +%{_mandir}/man3/Cyrus::Annotator::Message.3pm* +%{_mandir}/man3/Cyrus::IMAP.3pm* +%{_mandir}/man3/Cyrus::IMAP::Admin.3pm* +%{_mandir}/man3/Cyrus::IMAP::Shell.3pm* +%{_mandir}/man3/Cyrus::SIEVE::managesieve.3pm* %changelog -* Thu Mar 01 2018 Jason L Tibbitts III - 3.0.5-8 -- Bump client_timeout value in test suite. - -* Thu Mar 01 2018 Jason L Tibbitts III - 3.0.5-7 -- Add patch to fix imtest (rhbz#1543481). -- Fix vzic makefile to use proper cflags (rhbz#1550543). - -* Mon Feb 26 2018 Jason L Tibbitts III - 3.0.5-6 -- Update cassandane checkout. -- Add two new build dependencies. -- Remove all JMAP-related tests from the exclusion lists, since cassandane no - longer runs any JMAP tests on cyrus 3.0. -- Collapse unused test skip lists. -- Add ten additional skipped tests, after consultation with upstream. - - -* Mon Feb 26 2018 Jason L Tibbitts III - 3.0.5-5 -- Add patch to fix segfaults in squatter. -- Exclude one test on all releases instead of just F28+. -- Remove --cleanup from cassandane invocation. - -* Wed Feb 07 2018 Fedora Release Engineering - 3.0.5-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Tue Jan 09 2018 Jason L Tibbitts III - 3.0.5-3 -- Re-enable clamav and mariadb support as those are now built with openssl 1.1. -- But no clamav on ppc64 because of - https://bugzilla.redhat.com/show_bug.cgi?id=1534071 - -* Thu Jan 04 2018 Jason L Tibbitts III - 3.0.5-2 -- Reorganize some test exclusions so things build on all releases. - -* Thu Jan 04 2018 Jason L Tibbitts III - 3.0.5-1 -- Update to 3.0.5. -- Add one new failing test. -- Remove one now-passing test on rawhide. - -* Mon Dec 18 2017 Pavel Zhukov - 3.0.4-6 -- Rebuild with new net-snmp - -* Thu Nov 30 2017 Pete Walter - 3.0.4-5 -- Rebuild for ICU 60.1 - -* Wed Nov 29 2017 Pavel Zhukov - 3.0.4-4 -- Do not require tcp_wrappers (#1518759) - -* Tue Nov 14 2017 Jason L Tibbitts III - 3.0.4-3 -- Rebuild for new libical. -- Add patch to fix compilation error with new libical. -- Disable two tests which fail due to the new libical. - -* Tue Oct 24 2017 Jason L Tibbitts III - 3.0.4-2 -- Fix typo in default config; - https://bugzilla.redhat.com/show_bug.cgi?id=1506000 - -* Tue Sep 05 2017 Pavel Zhukov - 3.0.4-1 -- Update to 3.0.4 -- Patched cassandane for new behaviour. It should be updated idealy. -- Disable ImapTest.urlauth2 test; it seems to fail randomly regardless of - architecture. - -* Fri Aug 11 2017 Jason L Tibbitts III - 3.0.3-1 -- Update to 3.0.3, which contains an important security fix. The fix is not - embargoed but no CVE has been assigned yet. -- Drop patches merged upstream. -- An update of imaptest has resulted in three additional cassandane failures, - reported upstream as https://github.com/cyrusimap/cyrus-imapd/issues/2087. - In order to get the security fix out without delay, those three tests have been - disabled. - -* Fri Aug 11 2017 Igor Gnatenko - 3.0.2-9 -- Rebuilt after RPM update (№ 3) - -* Thu Aug 10 2017 Igor Gnatenko - 3.0.2-8 -- Rebuilt for RPM soname bump - -* Wed Aug 02 2017 Fedora Release Engineering - 3.0.2-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 3.0.2-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Fri Jun 30 2017 Jason L Tibbitts III - 3.0.2-5 -- Add two patches from upstream which fix JMAPCalendars issues on 32-bit and - big-endian architectures. -- Clean up test invocation and exclusion list. More tests pass now. - -* Wed Jun 28 2017 Jason L Tibbitts III - 3.0.2-4 -- Explicitly set specialusealways: 1 in the default config. - -* Tue Jun 27 2017 Jason L Tibbitts III - 3.0.2-3 -- Patch the provided imapd.conf and cyrus.conf to more closely match previous - Fedora defaults and directories included in this package and to enable - features which are supported by the Fedora build. -- Add tmpfiles.d configuration file for directories in /run. - -* Tue Jun 27 2017 Jason L Tibbitts III - 3.0.2-2 -- Exclude one more test from 32-bit arches. Looks like this failure crept in - with the Cassandane update. - -* Thu Jun 22 2017 Jason L Tibbitts III - 3.0.2-1 -- Update to 3.0.2. -- New Cassandane snapshot, with more tests (all of which are passing). - -* Tue Jun 20 2017 Jason L Tibbitts III - 3.0.1-7 -- Add old /usr/lib/cyrus-imapd directory to the utils package and add a symlink - there to the deliver binary. This should help a bit with migrations. -- Add upstream patch to fix reconstruct failures on 32-bit architectures. - Re-enable those five Cassandane tests. - -* Thu Jun 15 2017 Jason L Tibbitts III - 3.0.1-6 -- Rename two commands: quota -> cyr_quota, restore -> cyr_restore. -- Fix Cassandane to handle those renames. -- Fix location of cyr_fetchnews. -- Fix Perl 5.26-related module linking issue which caused a test failure. - Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1461669 - -* Tue Jun 06 2017 Jason L Tibbitts III - 3.0.1-5 -- Use proper path to ctl_mboxlist in cron file. -- Add patch to increase individual test timeout. Sometimes armv7hl can't - complete a single test in 20 seconds. -- Disable the Metronome tests; upstream says that they just won't reliably on - shared hardware. -- Don't bother running Cassandane on s390x for now. The machines are simply - too slow. - -* Tue Jun 06 2017 Jitka Plesnikova - 3.0.1-4 -- Perl 5.26 rebuild - -* Fri Jun 02 2017 Jason L Tibbitts III - 3.0.1-3 -- Remove clamav from build requirements. -- Add --cleanup to Cassandane call to hopefully reduce build disk usage. -- Disable maxforkrate test on s390x; our builders are too slow to run it. - -* Fri Jun 02 2017 Jason L Tibbitts III - 3.0.1-2 -- Add patch to fix up some endianness issues. -- Enable both test suites on all architectures. -- Add arch-specific excludes for a few Cassandane tests. - -* Thu Apr 20 2017 Jason L Tibbitts III - 3.0.1-1 -- Initial attempt at importing 3.0. Many new dependencies. -- Use a stock sample imapd.conf file instead of a Fedora-provided one. - -* Fri Feb 10 2017 Fedora Release Engineering - 2.5.10-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Mon Jan 09 2017 Jason L Tibbitts III - 2.5.10-2 -- Rename httpd manpage to "cyrhttpd" to avoid conflict with the httpd package. - -* Wed Nov 23 2016 Jason L Tibbitts III - 2.5.10-1 -- Initial update to the 2.5 series. -- Significant spec cleanups. -- Add sscg dep and follow - https://fedoraproject.org/wiki/Packaging:Initial_Service_Setup for initial - cert generation. -- Change default conf to use the system crypto policy. - -* Tue May 17 2016 Jitka Plesnikova - 2.4.18-3 -- Perl 5.24 rebuild - -* Wed Feb 03 2016 Fedora Release Engineering - 2.4.18-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Thu Oct 01 2015 Jason L Tibbitts III - 2.4.18-1 -- Update to 2.4.18, rhbz#1267871 and rhbz#1267878 -- Backport ff4e6c71d932b3e6bbfa67d76f095e27ff21bad0 to fix issues from - http://seclists.org/oss-sec/2015/q3/651 - -* Wed Sep 09 2015 Jason L Tibbitts III - 2.4.17-14 -- Use %%license tag -- Have -devel require the base package -- Minor cleanups - -* Sat Aug 08 2015 Jason L Tibbitts III - 2.4.17-13 -- Remove invalid Patch0: URL. -- Use HTTP for upstream source. -- pod2html was split out of the main perl package, breaking cyrus. - Add a build dep for it. - -* Wed Jul 29 2015 Kevin Fenzi 2.4.17-12 -- Rebuild for new librpm - -* Wed Jun 17 2015 Fedora Release Engineering - 2.4.17-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Fri Jun 05 2015 Jitka Plesnikova - 2.4.17-10 -- Perl 5.22 rebuild - -* Wed Aug 27 2014 Jitka Plesnikova - 2.4.17-9 -- Perl 5.20 rebuild - -* Sat Aug 16 2014 Fedora Release Engineering - 2.4.17-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Sat Jun 07 2014 Fedora Release Engineering - 2.4.17-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Sat Aug 03 2013 Fedora Release Engineering - 2.4.17-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Thu Jul 18 2013 Petr Pisar - 2.4.17-5 -- Perl 5.18 rebuild - -* Fri Jul 12 2013 Michal Hlavinka - 2.4.17-4 -- spec clean up - -* Thu Apr 18 2013 Michal Hlavinka - 2.4.17-3 -- make sure binaries are hardened - -* Wed Feb 13 2013 Fedora Release Engineering - 2.4.17-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Sat Dec 1 2012 Jeroen van Meeuwen - 2.4.17-1 -- New upstream version, fixes upstream bugs: -- reconstruct doesn't retain internaldate correctly (#3733) -- Race condition in maibox rename (#3696) -- DBERROR db4: Transaction not specified for a transactional database (#3715) -- performance degradation on huge indexes in 2.4 branch (#3717) -- typo fix in imapd.conf man page (#3729) -- quota does not find all quotaroots if quotalegacy, fulldirhash and prefix are used and virtdomains is off (#3735) -- Mail delivered during XFER was lost (#3737) -- replication does not work on RENAME (#3742) -- Failed asserting during APPEND (#3754) - -* Fri Nov 30 2012 Michal Hlavinka - 2.4.16-5 -- do not use strict aliasing - -* Tue Aug 21 2012 Michal Hlavinka - 2.4.16-4 -- use new systemd rpm macros (#850079) - -* Wed Jul 18 2012 Fedora Release Engineering - 2.4.16-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Mon Jun 11 2012 Petr Pisar - 2.4.16-2 -- Perl 5.16 rebuild - -* Thu Apr 19 2012 Jeroen van Meeuwen - 2.4.16-1 -- New upstream release - -* Wed Apr 18 2012 Jeroen van Meeuwen - 2.4.15-1 -- New upstream release - -* Wed Apr 11 2012 Michal Hlavinka - 2.4.14-2 -- rebuilt because of new libdb - -* Wed Mar 14 2012 Michal Hlavinka - 2.4.14-1 -- updated to 2.4.14 - -* Tue Feb 07 2012 Michal Hlavinka - 2.4.13-3 -- use PraveTmp in systemd unit file - -* Fri Jan 13 2012 Fedora Release Engineering - 2.4.13-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Mon Jan 02 2012 Jeroen van Meeuwen - 2.4.13-1 -- New upstream release - -* Wed Dec 07 2011 Michal Hlavinka - 2.4.12-5 -- do not use digest-md5 as part of default auth mechanisms, - it does not coop with pam - -* Tue Nov 22 2011 Michal Hlavinka - 2.4.12-4 -- reduce noisy logging, add option to turn on LOG_DEBUG syslog - messages again (thanks Philip Prindeville) (#754940) - -* Mon Oct 24 2011 Michal Hlavinka - 2.4.12-3 -- add login and digest-md5 as part of default auth mechanisms (#748278) - -* Tue Oct 11 2011 Michal Hlavinka - 2.4.12-2 -- do not hide errors if cyrus user can't be added - -* Wed Oct 05 2011 Michal Hlavinka - 2.4.12-1 -- cyrus-imapd updated to 2.4.12 -- fixes incomplete authentication checks in nntpd (Secunia SA46093) - -* Fri Sep 9 2011 Jeroen van Meeuwen - 2.4.11-1 -- update to 2.4.11 -- Fix CVE-2011-3208 (#734926, #736838) - -* Tue Aug 16 2011 Michal Hlavinka - 2.4.10-4 -- rebuild with db5 - -* Thu Jul 21 2011 Petr Sabata - 2.4.10-3 -- Perl mass rebuild - -* Wed Jul 20 2011 Petr Sabata - 2.4.10-2 -- Perl mass rebuild - -* Wed Jul 6 2011 Jeroen van Meeuwen - 2.4.10-1 -- New upstream release - -* Wed Jun 22 2011 Iain Arnell 2.4.8-5 -- Patch to work with Perl 5.14 - -* Mon Jun 20 2011 Marcela Mašláňová - 2.4.8-4 -- Perl mass rebuild - -* Fri Jun 10 2011 Marcela Mašláňová - 2.4.8-3 -- Perl 5.14 mass rebuild - -* Mon May 09 2011 Michal Hlavinka - 2.4.8-2 -- fixed: systemd commands in %%post (thanks Bill Nottingham) - -* Thu Apr 14 2011 Michal Hlavinka - 2.4.8-1 -- cyrus-imapd updated to 2.4.8 -- fixed: cannot set unlimited quota through proxy -- fixed: reconstruct tries to set timestamps again and again -- fixed: response for LIST "" user is wrong -- fixed: THREAD command doesn't support quoted charset -- fixed crashes in mupdatetest and cyr_expire when using -x - -* Mon Apr 04 2011 Michal Hlaivnka - 2.4.7-2 -- now using systemd - -* Thu Mar 31 2011 Michal Hlavinka - 2.4.7-1 -- updated to 2.4.7 - -* Fri Feb 11 2011 Michal Hlavinka - 2.4.6-1 -- updated to 2.4.6 -- "autocreate" and "autosieve" features were removed - -* Tue Feb 08 2011 Fedora Release Engineering - 2.3.16-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Fri Jan 21 2011 Michal Hlavinka - 2.3.16-7 -- don't force sync io for all filesystems - -* Fri Jul 09 2010 Michal Hlavinka - 2.3.16-6 -- follow licensing guideline update -- devel sub-package has to have virtual static provides (#609604) - -* Mon Jun 07 2010 Michal Hlavinka - 2.3.16-5 -- spec cleanup -- simplified packaging (merge -perl in -utils) -- remove obsoleted and/or unmaintained additional sources/patches -- remove long time not used files from the cvs/srpm -- update additional sources/patches from their upstream - -* Tue Jun 01 2010 Marcela Maslanova - 2.3.16-4 -- Mass rebuild with perl-5.12.0 - -* Tue Apr 20 2010 Michal Hlavinka - 2.3.16-3 -- add support for QoS marked traffic (#576652) - -* Thu Jan 14 2010 Michal Hlavinka - 2.3.16-2 -- ignore user_denny.db if missing (#553011) -- fix location of certificates in default imapd.conf +%autochangelog diff --git a/cyrus-imapd.tmpfiles.conf b/cyrus-imapd.tmpfiles.conf deleted file mode 100644 index 14a2791..0000000 --- a/cyrus-imapd.tmpfiles.conf +++ /dev/null @@ -1,5 +0,0 @@ -d /run/cyrus 0750 cyrus mail - -d /run/cyrus/db 0700 cyrus mail - -d /run/cyrus/lock 0700 cyrus mail - -d /run/cyrus/proc 0700 cyrus mail - -d /run/cyrus/socket 0750 cyrus mail - diff --git a/ellie-pub.key b/ellie-pub.key new file mode 100644 index 0000000..9a19109 --- /dev/null +++ b/ellie-pub.key @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQENBFU5pZUBCAC+m05W9nJnBkrfFO9I+iimF1WCsSZNFoASJ3WEeZxIkOQO9BZj +aKf8EP/nK7nEfNGZ2m+OrAtQU/+I8Sk1ppHuwZgENLvRzLsBGbv80kDKBw31Nd1f +sCpVQs4b8zlohXjq0UN8tT5NcGJnGE7ahoOHzJk/0Ll76oVmOZvSw+WHBp1945m2 +Q8CbIbfmyuv7NF6GtGDVilPeIPsDnh5w5usjpKsxjYHKpy6Rtf4MbcCLtkRbHFra +KJD+xum0PgPdCAEEbQsSXQgwOd0TZ59avRVVef674PjWqIuudUGUhJ/f9OWOj7LG +6QgJR6yvCy7Bc2eAN4RnIIzaUZGaJDKDCNozABEBAAG0ImVsbGllIHRpbW9uZXkg +PGVsbGllQGZhc3RtYWlsLmNvbT6JATgEEwECACIFAlU5pZUCGwMGCwkIBwMCBhUI +AgkKCwQWAgMBAh4BAheAAAoJEFVPBP6zY3jgb9gH/3GPDLGybo7SYZMtBmfe+Udf +tcRkTtH+o2pf2rh6KwPhhEDuOXWVCIUPWXsWIVU2K5Y8AdBIHOEoSUp3n8juV57I +u9CfDI718/WaHgEpYrq5DqyROAFr+sGahcb6C40+V/CeUSAmKVhFGniuALUSAQ+B +XVj/i2EAFNg/5ALkPYDnDYDqm7Ak6odDbktYQz987y38sg3EMC/2wi2EoOG1VWeG +twFD8HKmXZw+u6cYtFh9K1hOBZm+PhLHr3h1MHTuWYeBKkT3YqaGtXMwi704LlNr +HU8beOHSNBSsVYJ61B4kgBA7p+qnx6xIpU2KfAJl8cgjCYwrq8yo+Lm9TazagfM= +=dIwC +-----END PGP PUBLIC KEY BLOCK----- diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..8085288 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,25 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_testing +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional} + +#Rawhide +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional} + +#gating rhel +--- !Policy +product_versions: + - rhel-* +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-public.functional} + - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-internal.functional} diff --git a/patch-cassandane-build-info.patch b/patch-cassandane-build-info.patch new file mode 100644 index 0000000..62f1e68 --- /dev/null +++ b/patch-cassandane-build-info.patch @@ -0,0 +1,13 @@ +diff --git a/cassandane/Cassandane/BuildInfo.pm b/cassandane/Cassandane/BuildInfo.pm +index f98bf2d..19720ec 100644 +--- a/cassandane/Cassandane/BuildInfo.pm ++++ b/cassandane/Cassandane/BuildInfo.pm +@@ -71,7 +71,7 @@ sub _read_buildinfo + my ($destdir, $prefix) = @_; + + my $cyr_buildinfo; +- foreach my $bindir (qw(sbin cyrus/bin)) { ++ foreach my $bindir (qw(bin sbin cyrus/bin)) { + my $p = "$destdir$prefix/$bindir/cyr_buildinfo"; + if (-x $p) { + $cyr_buildinfo = $p; diff --git a/patch-cassandane-fix-annotator b/patch-cassandane-fix-annotator index 1899ae0..b5875e6 100644 --- a/patch-cassandane-fix-annotator +++ b/patch-cassandane-fix-annotator @@ -1,14 +1,14 @@ -diff --git a/utils/annotator.pl b/utils/annotator.pl -index 94b84a2..0208831 100755 ---- a/utils/annotator.pl -+++ b/utils/annotator.pl +diff --git a/cassandane/utils/annotator.pl b/cassandane/utils/annotator.pl +index 265c73f..8af3d58 100755 +--- a/cassandane/utils/annotator.pl ++++ b/cassandane/utils/annotator.pl @@ -140,6 +140,8 @@ GetOptions( xlog "annotator $$ starting"; Cassandane::AnnotatorDaemon->run( - pid_file => $pidfile, -- port => $port + pid_file => $pidfile, +- port => $port + port => $port, -+ user => (getpwuid($<))[0], -+ group => (getgrgid($())[0], ++ user => (getpwuid($<))[0], ++ group => (getgrgid($())[0], ); xlog "annotator $$ exiting"; diff --git a/patch-cassandane-no-syslog b/patch-cassandane-no-syslog index 67d30b3..a610726 100644 --- a/patch-cassandane-no-syslog +++ b/patch-cassandane-no-syslog @@ -1,8 +1,8 @@ -diff --git a/Cassandane/Util/Log.pm b/Cassandane/Util/Log.pm -index 9cd93d5..8d3b3c1 100644 ---- a/Cassandane/Util/Log.pm -+++ b/Cassandane/Util/Log.pm -@@ -52,16 +52,12 @@ our @EXPORT = qw( +diff --git a/cassandane/Cassandane/Util/Log.pm b/cassandane/Cassandane/Util/Log.pm +index a44005c..5bb5710 100644 +--- a/cassandane/Cassandane/Util/Log.pm ++++ b/cassandane/Cassandane/Util/Log.pm +@@ -51,9 +51,6 @@ our @EXPORT = qw( my $verbose = 0; @@ -11,11 +11,69 @@ index 9cd93d5..8d3b3c1 100644 - sub xlog { - my ($pkg, $file, $line) = caller; - $pkg =~ s/^Cassandane:://; - my $msg = "=====> " . $pkg . "[" . $line . "] " . join(' ', @_); - print STDERR "$msg\n"; + my $id; +@@ -87,7 +84,6 @@ sub xlog + else { + print STDERR "$msg\n"; + } - syslog(LOG_ERR, "$msg"); } sub set_verbose +diff --git a/cassandane/utils/syslog.c b/cassandane/utils/syslog.c +index 20d3763..0238d82 100644 +--- a/cassandane/utils/syslog.c ++++ b/cassandane/utils/syslog.c +@@ -116,14 +116,28 @@ EXPORTED void syslog(int priority, const char *format, ...) + va_start(ap, format); + fake_vsyslog(priority, format, ap); + va_end(ap); ++} ++ ++EXPORTED void ++__attribute__((format(printf, 3, 4))) ++__syslog_chk(int priority, int whatever __attribute__((unused)), ++ const char *format, ...) ++{ ++ va_list ap; + + va_start(ap, format); +- real_vsyslog(priority, format, ap); ++ fake_vsyslog(priority, format, ap); + va_end(ap); + } + + EXPORTED void vsyslog(int priority, const char *format, va_list ap) + { + fake_vsyslog(priority, format, ap); +- real_vsyslog(priority, format, ap); ++} ++ ++EXPORTED void ++__attribute__((format(printf, 3, 0))) ++__vsyslog_chk(int priority, int whatever __attribute__((unused)), const char *format, va_list ap) ++{ ++ fake_vsyslog(priority, format, ap); + } +diff --git a/cassandane/Cassandane/Instance.pm b/cassandane/Cassandane/Instance.pm +index 77ddd54..3162fc6 100644 +--- a/cassandane/Cassandane/Instance.pm ++++ b/cassandane/Cassandane/Instance.pm +@@ -2347,17 +2347,6 @@ sub setup_syslog_replacement + return; + } + +- # Can't reliably replace syslog when source fortification is in play, +- # and syslog_probe can't reliably detect whether the replacement has +- # worked or not in this case, so just turn syslog replacement off if +- # we detect source fortification +- if ($self->{buildinfo}->get('version', 'FORTIFY_LEVEL')) { +- xlog "Cyrus was built with -D_FORTIFY_SOURCE"; +- xlog "tests will not examine syslog output"; +- $self->{have_syslog_replacement} = 0; +- return; +- } +- + $self->{syslog_fname} = "$self->{basedir}/conf/log/syslog"; + $self->{have_syslog_replacement} = 1; + diff --git a/patch-cassandane-unknown_calendars b/patch-cassandane-unknown_calendars deleted file mode 100644 index 676ef68..0000000 --- a/patch-cassandane-unknown_calendars +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/Cassandane/Cyrus/JMAPCalendars.pm b/Cassandane/Cyrus/JMAPCalendars.pm -index 2179a26..2cf6fa6 100644 ---- a/Cassandane/Cyrus/JMAPCalendars.pm -+++ b/Cassandane/Cyrus/JMAPCalendars.pm -@@ -1811,7 +1811,7 @@ sub test_setcalendarevents_move - "calendarId" => "nope", - } - }}, "R1"]]); -- $self->assert_str_equals($res->[0][1]{notUpdated}{$id}{type}, "calendarNotFound"); -+ $self->assert_str_equals($res->[0][1]{notUpdated}{$id}{type}, "invalidProperties"); - $self->assert_str_equals($res->[0][1]{newState}, $state); - - xlog "get calendar $id from untouched calendar $calidA"; diff --git a/patch-cyrus-default-configs b/patch-cyrus-default-configs index eba50c7..adc8d7d 100644 --- a/patch-cyrus-default-configs +++ b/patch-cyrus-default-configs @@ -1,8 +1,7 @@ -diff --git a/doc/examples/cyrus_conf/prefork.conf b/doc/examples/cyrus_conf/prefork.conf -index 4ce2c0f..3b1e6d7 100644 ---- a/doc/examples/cyrus_conf/prefork.conf -+++ b/doc/examples/cyrus_conf/prefork.conf -@@ -19,15 +19,15 @@ SERVICES { +diff -uap cyrus-imapd-3.8.3/doc/examples/cyrus_conf/prefork.conf.2 cyrus-imapd-3.8.3/doc/examples/cyrus_conf/prefork.conf +--- cyrus-imapd-3.8.3/doc/examples/cyrus_conf/prefork.conf.2 2024-04-26 01:59:22.000000000 +0100 ++++ cyrus-imapd-3.8.3/doc/examples/cyrus_conf/prefork.conf 2025-01-15 15:56:40.112544167 +0000 +@@ -19,8 +19,8 @@ SERVICES { # nntps cmd="nntpd -s" listen="nntps" prefork=1 # these are only necessary if using HTTP for CalDAV, CardDAV, or RSS @@ -13,19 +12,16 @@ index 4ce2c0f..3b1e6d7 100644 # at least one LMTP is required for delivery # lmtp cmd="lmtpd" listen="lmtp" prefork=0 -- lmtpunix cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=1 -+ lmtpunix cmd="lmtpd" listen="/run/cyrus/socket/lmtp" prefork=1 +@@ -51,5 +51,5 @@ EVENTS { - # this is only necessary if using notifications --# notify cmd="notifyd" listen="/var/imap/socket/notify" proto="udp" prefork=1 -+# notify cmd="notifyd" listen="/run/cyrus/socket/notify" proto="udp" prefork=1 + DAEMON { + # this is only necessary if using idled for IMAP IDLE +-# idled cmd="idled" ++ idled cmd="idled" } - - EVENTS { -diff --git a/doc/examples/imapd_conf/normal.conf b/doc/examples/imapd_conf/normal.conf -index 95b54e9..3935b77 100644 ---- a/doc/examples/imapd_conf/normal.conf -+++ b/doc/examples/imapd_conf/normal.conf +diff -uap cyrus-imapd-3.8.3/doc/examples/imapd_conf/normal.conf.2 cyrus-imapd-3.8.3/doc/examples/imapd_conf/normal.conf +--- cyrus-imapd-3.8.3/doc/examples/imapd_conf/normal.conf.2 2024-04-08 04:46:02.000000000 +0100 ++++ cyrus-imapd-3.8.3/doc/examples/imapd_conf/normal.conf 2025-01-15 15:55:44.361093153 +0000 @@ -10,7 +10,7 @@ admins: cyrus ################################################################### @@ -67,8 +63,8 @@ index 95b54e9..3935b77 100644 -# -# Allowed values: caldav, carddav, domainkey, ischedule, rss -httpmodules: caldav carddav -+# Fedora default: enable all modules besides admin -+httpmodules: caldav carddav domainkey freebusy ischedule jmap rss tzdist webdav ++# Fedora default: enable all modules besides admin and tzdist ++httpmodules: caldav carddav domainkey freebusy ischedule jmap rss webdav # If enabled, the partitions will also be hashed, in addition to the # hashing done on configuration directories. This is recommended if one diff --git a/patch-cyrus-managesieve-linking b/patch-cyrus-managesieve-linking deleted file mode 100644 index 9224ac9..0000000 --- a/patch-cyrus-managesieve-linking +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/perl/sieve/managesieve/Makefile.PL.in b/perl/sieve/managesieve/Makefile.PL.in -index 2bb715d..422504d 100644 ---- a/perl/sieve/managesieve/Makefile.PL.in -+++ b/perl/sieve/managesieve/Makefile.PL.in -@@ -69,7 +69,7 @@ WriteMakefile( - 'ABSTRACT' => 'Cyrus Sieve management interface', - 'VERSION_FROM' => "@top_srcdir@/perl/sieve/managesieve/managesieve.pm", # finds $VERSION - 'MYEXTLIB' => '../lib/.libs/libisieve.a @top_builddir@/perl/.libs/libcyrus.a @top_builddir@/perl/.libs/libcyrus_min.a', -- 'LIBS' => ["$LIB_SASL @SSL_LIBS@ @LIB_UUID@ @ZLIB@"], -+ 'LIBS' => ["$LIB_SASL @SSL_LIBS@ @LIB_UUID@ @ZLIB@ -lsqlite3 -lpq"], - 'CCFLAGS' => '@GCOV_CFLAGS@', - 'DEFINE' => '-DPERL_POLLUTE', # e.g., '-DHAVE_SOMETHING' - 'INC' => "-I@top_srcdir@/lib -I@top_srcdir@/perl/sieve -I@top_srcdir@/perl/sieve/lib @SASLFLAGS@ @SSL_CPPFLAGS@", diff --git a/patch-cyrus-remove-always-inline-for-buf-len b/patch-cyrus-remove-always-inline-for-buf-len new file mode 100644 index 0000000..328a72d --- /dev/null +++ b/patch-cyrus-remove-always-inline-for-buf-len @@ -0,0 +1,13 @@ +diff --git a/lib/util.c b/lib/util.c +index a2eae15..ef8c25b 100644 +--- a/lib/util.c ++++ b/lib/util.c +@@ -1188,7 +1188,7 @@ EXPORTED int buf_getline(struct buf *buf, FILE *fp) + + #ifdef HAVE_DECLARE_OPTIMIZE + EXPORTED inline size_t buf_len(const struct buf *buf) +- __attribute__((always_inline, optimize("-O3"))); ++ __attribute__((optimize("-O3"))); + #endif + EXPORTED inline size_t buf_len(const struct buf *buf) + { diff --git a/patch-cyrus-rename-imtest b/patch-cyrus-rename-imtest new file mode 100644 index 0000000..aff3c6c --- /dev/null +++ b/patch-cyrus-rename-imtest @@ -0,0 +1,40 @@ +diff --git a/Makefile.am b/Makefile.am +index 71333b0..52317da 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -2092,14 +2092,14 @@ endif + ## The @$(MKDIR_P) line is added due to a bug in Automake 1.10 and can be removed if using Automake 1.12. + @$(MKDIR_P) $(DESTDIR)$(bindir) + cd $(DESTDIR)$(bindir) && \ +- $(LN_S) -f imtest httptest && \ +- $(LN_S) -f imtest lmtptest && \ +- $(LN_S) -f imtest mupdatetest && \ +- $(LN_S) -f imtest nntptest && \ +- $(LN_S) -f imtest pop3test && \ +- $(LN_S) -f imtest sivtest && \ +- $(LN_S) -f imtest smtptest && \ +- $(LN_S) -f imtest synctest ++ $(LN_S) -f cyr_imtest httptest && \ ++ $(LN_S) -f cyr_imtest lmtptest && \ ++ $(LN_S) -f cyr_imtest mupdatetest && \ ++ $(LN_S) -f cyr_imtest nntptest && \ ++ $(LN_S) -f cyr_imtest pop3test && \ ++ $(LN_S) -f cyr_imtest sivtest && \ ++ $(LN_S) -f cyr_imtest smtptest && \ ++ $(LN_S) -f cyr_imtest synctest + + uninstall-hook: cyrus-makemaker-uninstall-workaround + if PERL +diff --git a/imtest/imtest.c b/imtest/imtest.c +index 725ff62..d9406e1 100644 +--- a/imtest/imtest.c ++++ b/imtest/imtest.c +@@ -3040,7 +3040,7 @@ int main(int argc, char **argv) + } + + if (!*prot) { +- if (!strcasecmp(prog, "imtest")) ++ if (!strcasecmp(prog, "cyr_imtest")) + prot = "imap"; + else if (!strcasecmp(prog, "pop3test")) + prot = "pop3"; diff --git a/patch-cyrus-rename-quota b/patch-cyrus-rename-quota new file mode 100644 index 0000000..8ee854e --- /dev/null +++ b/patch-cyrus-rename-quota @@ -0,0 +1,13 @@ +diff --git a/imap/imapd.c b/imap/imapd.c +index 3cc75f5..a22a356 100644 +--- a/imap/imapd.c ++++ b/imap/imapd.c +@@ -8022,7 +8022,7 @@ static void cmd_reconstruct(const char *tag, const char *name, int recursive) + fclose(stdout); + fclose(stderr); + +- ret = snprintf(buf, sizeof(buf), "%s/quota", SBIN_DIR); ++ ret = snprintf(buf, sizeof(buf), "%s/cyr_quota", SBIN_DIR); + if(ret < 0 || ret >= (int) sizeof(buf)) { + /* in child, so fatailing won't disconnect our user */ + fatal("quota buffer not sufficiently big", EX_CONFIG); diff --git a/patch-cyrus-testsuite-timeout b/patch-cyrus-testsuite-timeout index 74fa4f8..6cff89f 100644 --- a/patch-cyrus-testsuite-timeout +++ b/patch-cyrus-testsuite-timeout @@ -7,7 +7,7 @@ index 46dc358..ca37f22 100644 /* Each test gets a maximum of 20 seconds. */ -#define TEST_TIMEOUT_MS (20*1000) -+#define TEST_TIMEOUT_MS (30*1000) ++#define TEST_TIMEOUT_MS (300*1000) static jmp_buf jbuf; static const char *code; diff --git a/patch-vzic-proper-cflags b/patch-vzic-proper-cflags deleted file mode 100644 index 0e299b3..0000000 --- a/patch-vzic-proper-cflags +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/tools/vzic/Makefile b/tools/vzic/Makefile -index 8ae6afa..3882998 100644 ---- a/tools/vzic/Makefile -+++ b/tools/vzic/Makefile -@@ -45,17 +45,17 @@ LIBICAL_LDADD = -lical - GLIB_CFLAGS = `pkg-config --cflags glib-2.0` - GLIB_LDADD = `pkg-config --libs glib-2.0` - --CFLAGS = -g -I../.. -DOLSON_DIR=\"$(OLSON_DIR)\" -DPRODUCT_ID='"$(PRODUCT_ID)"' -DTZID_PREFIX='"$(TZID_PREFIX)"' $(GLIB_CFLAGS) $(LIBICAL_CFLAGS) -+CFLAGS += -I../.. -DOLSON_DIR=\"$(OLSON_DIR)\" -DPRODUCT_ID='"$(PRODUCT_ID)"' -DTZID_PREFIX='"$(TZID_PREFIX)"' $(GLIB_CFLAGS) $(LIBICAL_CFLAGS) - - OBJECTS = vzic.o vzic-parse.o vzic-dump.o vzic-output.o - - all: vzic - - vzic: $(OBJECTS) -- $(CC) $(OBJECTS) $(GLIB_LDADD) -o vzic -+ $(CC) $(LDFLAGS) $(OBJECTS) $(GLIB_LDADD) -o vzic - - test-vzic: test-vzic.o -- $(CC) test-vzic.o $(LIBICAL_LDADD) -o test-vzic -+ $(CC) $(LDFLAGS) test-vzic.o $(LIBICAL_LDADD) -o test-vzic - - # Dependencies. - $(OBJECTS): vzic.h diff --git a/plans.fmf b/plans.fmf new file mode 100644 index 0000000..3615ed6 --- /dev/null +++ b/plans.fmf @@ -0,0 +1,35 @@ +/tier1-internal: + plan: + import: + url: https://gitlab.com/redhat/centos-stream/tests/cyrus-imapd.git + name: /plans/tier1/internal + +/tier1-public: + plan: + import: + url: https://gitlab.com/redhat/centos-stream/tests/cyrus-imapd.git + name: /plans/tier1/public + +/tier2-tier3-internal: + plan: + import: + url: https://gitlab.com/redhat/centos-stream/tests/cyrus-imapd.git + name: /plans/tier2-tier3/internal + +/tier2-tier3-public: + plan: + import: + url: https://gitlab.com/redhat/centos-stream/tests/cyrus-imapd.git + name: /plans/tier2-tier3/public + +/others-internal: + plan: + import: + url: https://gitlab.com/redhat/centos-stream/tests/cyrus-imapd.git + name: /plans/others/internal + +/others-public: + plan: + import: + url: https://gitlab.com/redhat/centos-stream/tests/cyrus-imapd.git + name: /plans/others/public \ No newline at end of file diff --git a/rpminspect.yaml b/rpminspect.yaml new file mode 100644 index 0000000..8355d23 --- /dev/null +++ b/rpminspect.yaml @@ -0,0 +1,10 @@ +--- +badfuncs: + allowed: + # mupdate uses gethostbyname (safely) to check if the IP address + # of the given hostname is local. + /usr/libexec/cyrus-imapd/mupdate: + - gethostbyname + # smmapd uses gethostbyname (safely) to verify user's host. + /usr/libexec/cyrus-imapd/smmapd: + - gethostbyname diff --git a/sources b/sources index 0631d0d..c9b65e3 100644 --- a/sources +++ b/sources @@ -1,4 +1,2 @@ -SHA512 (cassandane-6d33978.tar.gz) = aafc2a98d49f86b00f5b1af649ce63157c8d0652502248271ca14e6f000aebf6eca8931a6e33cc068e37fdd086e9dc4cdc90cf7eccfdda63dfd73c733d75fc40 -SHA512 (cassandane-testdata-20170523.tar.gz) = 705f5af6a31fe3b8d6e8027bbddbedb2f64d65997f8a06620ec07fcd30a95d98ac3f3fbef7af5080684ee21be1c5b8bcad2374b2749f0571099e780355a04420 -SHA512 (cyrus-imapd-3.0.5.tar.gz) = 262806729d5ee5d753732603aa7af33c6f96bc5145b7a951b8668ffdee0dcd4a90bd287da0949e85c4596cccb471a688f7f8b6f3e39194e1cff311950d4d4410 -SHA512 (cassandane-6bd697c.tar.gz) = aadeb8c1899db17d482ffa0571bb6d308fc35beccb04e093ad1c9c6a6aa542fa8a9004c9f1772eb9f2f066c1ab1a562512f1f8d328342dd2e90e4b014aac0850 +SHA512 (cyrus-imapd-3.12.1.tar.gz) = ec2727eb0567ebf978ff4db9e9086bc01fdc2739b6e06cad73cf74f9af990c30a70130aa2474d822d8ca078e1012a60179101de90845bf40f7a9b47a8b5e4d92 +SHA512 (cyrus-imapd-3.12.1.tar.gz.sig) = a548769b7443a179cbfeabd20fce113d94b9ccbf134aab3c6aa5197edcad41f1a73f1d28ba8e2b80046457053949344385ca68b22489d47721d4760e42cd4dd4 diff --git a/systemd-sysusers.conf b/systemd-sysusers.conf new file mode 100644 index 0000000..3986c28 --- /dev/null +++ b/systemd-sysusers.conf @@ -0,0 +1,4 @@ +#Type Name ID GECOS Home directory Shell +g saslauth 76 +u cyrus 76:mail "Cyrus IMAP Server" /var/lib/imap /sbin/nologin +m cyrus saslauth diff --git a/systemd-tmpfiles.conf b/systemd-tmpfiles.conf new file mode 100644 index 0000000..10f80a3 --- /dev/null +++ b/systemd-tmpfiles.conf @@ -0,0 +1,21 @@ +d /run/cyrus 0750 cyrus mail - +d /run/cyrus/db 0700 cyrus mail - +d /run/cyrus/lock 0700 cyrus mail - +d /run/cyrus/proc 0700 cyrus mail - +d /run/cyrus/socket 0750 cyrus mail - +d /var/lib/imap 0750 cyrus mail - +d /var/lib/imap/backup 0700 cyrus mail - +d /var/lib/imap/db 0700 cyrus mail - +d /var/lib/imap/log 0700 cyrus mail - +d /var/lib/imap/meta 0700 cyrus mail - +d /var/lib/imap/md5 0700 cyrus mail - +d /var/lib/imap/msg 0700 cyrus mail - +d /var/lib/imap/proc 0700 cyrus mail - +d /var/lib/imap/ptclient 0700 cyrus mail - +d /var/lib/imap/quota 0700 cyrus mail - +d /var/lib/imap/rpm 0700 cyrus mail - +d /var/lib/imap/sieve 0700 cyrus mail - +d /var/lib/imap/socket 0750 cyrus mail - +d /var/lib/imap/sync 0700 cyrus mail - +d /var/lib/imap/user 0700 cyrus mail - +d /var/spool/imap 0700 cyrus mail -