From e1a37f0ef840748ee07c0329a8880b66344df8d5 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Fri, 13 Jan 2023 09:29:41 +0100 Subject: [PATCH 01/49] Remove perl(MODULE_COMPAT), it will be replaced by generators --- cyrus-imapd.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index a2ec65f..0983fac 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -147,7 +147,6 @@ Requires(pre): shadow-utils Requires: %name-utils = %version-%release Requires: file sscg -Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) %{?perl_default_filter} From 37133f0fe1417cd809b6105715e09b428ae55467 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 19 Jan 2023 00:54:11 +0000 Subject: [PATCH 02/49] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- cyrus-imapd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 0983fac..9460626 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -6,7 +6,7 @@ Name: cyrus-imapd Version: 3.6.0 -Release: 1%{?dist} +Release: 2%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -673,6 +673,9 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v %changelog +* 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 From 473e4cdd2a095a22b7461b97e8205d56ae3a3718 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 22 Jan 2023 13:44:18 -0700 Subject: [PATCH 03/49] Rebuild for clamav 1.0.0 --- cyrus-imapd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 9460626..bcde2e2 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -6,7 +6,7 @@ Name: cyrus-imapd Version: 3.6.0 -Release: 2%{?dist} +Release: 3%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -673,6 +673,9 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v %changelog +* 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 From f8deeb399d39d0656b86912b61220f568f336f9b Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Fri, 30 Jun 2023 12:19:23 +0200 Subject: [PATCH 04/49] Cassandane related improvements 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 --- cyrus-imapd.spec | 85 +++++++++++++++++++++++++++----------- patch-cassandane-no-syslog | 64 +++++++++++++++++----------- 2 files changed, 101 insertions(+), 48 deletions(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index bcde2e2..78306b7 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -1,12 +1,14 @@ %global testdata_commit ca669d4b76c71cbeb4fa840e263e2c031e19ea88 %global testdata_short %(echo %{testdata_commit} | cut -c -8) -# Cassandane was split into separate CI test, run '--with cassandane' to enable it. +# Cassandane was split into separate CI test: +# https://src.fedoraproject.org/tests/cyrus-imapd/blob/main/f/Sanity/cassandane +# Run rpmbuild '--with cassandane' to enable it. %bcond_with cassandane Name: cyrus-imapd Version: 3.6.0 -Release: 3%{?dist} +Release: 4%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -137,6 +139,7 @@ BuildRequires: clamav-data perl(Unix::Syslog) BuildRequires: perl(HTTP::Daemon) perl(DBI) perl(Net::LDAP::Constant) BuildRequires: perl(Net::LDAP::Server) BuildRequires: perl(Module::Load::Conditional) +BuildRequires: cpan cld2-devel # These were only for JMAP-Tester # perl(Moo), perl(Moose), perl(MooseX::Role::Parameterized) perl(Throwable), perl(Safe::Isa) @@ -297,16 +300,26 @@ sed -i \ %build +%if %{with cassandane} +# This module is not available in Fedora: +yes | cpan IO::File::fcntl + # 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 export NOCYRUS=1 make popd + +# 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 + # Notes about configure options: # --enable-objectstore # It's experimental, and it doesn't appear that either openio or caringo are @@ -314,14 +327,15 @@ popd # --with-cyrus-prefix and --with-service-path went away; use --with-libexecdir= # instead. -# Needed because of Patch4. -autoreconf -vi - %configure \ --disable-silent-rules \ \ --libexecdir=%cyrexecdir \ --with-clamav \ +%if %{with cassandane} +`# Needed for Cyrus::FastMail tests to pass` \ + --with-cld2 \ +%endif --with-extraident="%release Fedora" \ --with-krbimpl=mit \ --with-ldap=/usr \ @@ -491,21 +505,29 @@ chmod -x %buildroot/%perl_vendorlib/Cyrus/Annotator/Daemon.pm %check export LD_LIBRARY_PATH=%buildroot/%_libdir -export CYRUS_USER=$USER -# TODO: The mime_boundary_extended cunit test fails due to LTO on ppc64le, skip it for now: -%ifnarch ppc64le -make %{?_smp_mflags} check || exit 1 +%if %{without cassandane} +exit 0 %endif %ifarch %{ix86} armv7hl exit 0 %endif -%if %{without cassandane} -exit 0 +# TODO: The mime_boundary_extended cunit test fails due to LTO on ppc64le, skip it for now: +%ifnarch ppc64le +make %{?_smp_mflags} check || exit 1 %endif +# 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 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 + # 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 @@ -514,11 +536,13 @@ mkdir -p imaptest/src ln -s /usr/bin/imaptest imaptest/src ln -s /usr/share/imaptest/tests imaptest/src +chown -R cyrus:mail . + # Construct the set of excluded tests to pass to Cassandane # --------------------------------------------------------- exclude=() tests=( - # This exclusion list was verified on 2021-08-11. + # This exclusion list was verified on 2023-06-28. # This tests coredumping and won't work on a machine where systemd # intercepts coredumps, which includes our builders. @@ -528,21 +552,28 @@ tests=( # https://github.com/cyrusimap/cyrus-imapd/issues/2386 Admin.imap_admins - Rename.intermediate_cleanup + # Failing with '405 Method Not Allowed': + Cyrus::FastMail.search_deleted_folder + Cyrus::JMAPCalendars.calendarevent_query_no_sched_inbox - # TODO check this one - Cyrus::List.no_tombstones - # TODO run tests outside the build process: - # https://bugzilla.redhat.com/show_bug.cgi?id=1887674 - # The below tests try to search in syslog file which we don't allow due to mock, - # happenes for: - # $ grep -R "assert.*@lines" cyrus-imapd-*/cassandane/ - Reconstruct.reconstruct_snoozed - SearchSquat.simple - SearchSquat.skip_unmodified + # Failing with Perl exception: Cannot connect to server: hostname verification failed: + Cyrus::MboxEvent.tls_login_event ) for i in ${tests[@]}; do exclude+=("!$i"); done +# 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.sync_reset_legacy" + "!Cyrus::FastMail.sync_reset_nolegacy" +) +fi %ifarch s390x # This one test fails occasionally on s390x because the hosts are just too slow @@ -673,6 +704,12 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v %changelog +* 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 diff --git a/patch-cassandane-no-syslog b/patch-cassandane-no-syslog index 5305b8c..ed78f88 100644 --- a/patch-cassandane-no-syslog +++ b/patch-cassandane-no-syslog @@ -1,24 +1,5 @@ -diff --git a/Cassandane/Instance.pm b/Cassandane/Instance.pm -index fb36b8f..78e7100 100644 ---- a/Cassandane/Instance.pm -+++ b/Cassandane/Instance.pm -@@ -2146,12 +2146,8 @@ sub setup_syslog_replacement - { - my ($self) = @_; - -- if (not(-e 'utils/syslog.so') || not(-e 'utils/syslog_probe')) { -- xlog "utils/syslog.so not found (do you need to run 'make'?)"; -- xlog "tests will not examine syslog output"; -- $self->{have_syslog_replacement} = 0; -- return; -- } -+ $self->{have_syslog_replacement} = 0; -+ return; - - $self->{syslog_fname} = "$self->{basedir}/conf/log/syslog"; - $self->{have_syslog_replacement} = 1; diff --git a/Cassandane/Util/Log.pm b/Cassandane/Util/Log.pm -index 7c17f0c..9eb07ad 100644 +index a44005c..5bb5710 100644 --- a/Cassandane/Util/Log.pm +++ b/Cassandane/Util/Log.pm @@ -51,9 +51,6 @@ our @EXPORT = qw( @@ -31,11 +12,46 @@ index 7c17f0c..9eb07ad 100644 sub xlog { my $id; -@@ -74,7 +71,6 @@ sub xlog - $msg .= "($id) " if $id; - $msg .= join(' ', @_); - print STDERR "$msg\n"; +@@ -87,7 +84,6 @@ sub xlog + else { + print STDERR "$msg\n"; + } - syslog(LOG_ERR, "$msg"); } sub set_verbose +diff --git a/utils/syslog.c b/utils/syslog.c +index 20d3763..0238d82 100644 +--- a/utils/syslog.c ++++ b/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); + } From bbb98a98a39bfe276c2b35053eafd88494cc49a8 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Tue, 11 Jul 2023 15:18:14 +0200 Subject: [PATCH 05/49] Perl 5.38 rebuild --- cyrus-imapd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 78306b7..5f74ffd 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -8,7 +8,7 @@ Name: cyrus-imapd Version: 3.6.0 -Release: 4%{?dist} +Release: 5%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -704,6 +704,9 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v %changelog +* 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() From b587f7fb49572f0ab955937d059dcc4cf166b964 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Tue, 11 Jul 2023 22:13:43 +0200 Subject: [PATCH 06/49] Rebuilt for ICU 73.2 --- cyrus-imapd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 5f74ffd..6c80a75 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -8,7 +8,7 @@ Name: cyrus-imapd Version: 3.6.0 -Release: 5%{?dist} +Release: 6%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -704,6 +704,9 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v %changelog +* 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 From c4bb0886acfa535a6ddb83da37b0958ac4d863d4 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Thu, 13 Jul 2023 10:13:20 +0200 Subject: [PATCH 07/49] Perl 5.38 re-rebuild updated packages --- cyrus-imapd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 6c80a75..237e6e4 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -8,7 +8,7 @@ Name: cyrus-imapd Version: 3.6.0 -Release: 6%{?dist} +Release: 7%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -704,6 +704,9 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v %changelog +* 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 From 881fe11b48d04323219dc1c7b94bcd47e8bd4254 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Thu, 13 Jul 2023 22:20:48 +0200 Subject: [PATCH 08/49] Rebuilt for ICU 73.2 --- cyrus-imapd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 237e6e4..8a5768c 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -8,7 +8,7 @@ Name: cyrus-imapd Version: 3.6.0 -Release: 7%{?dist} +Release: 8%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -704,6 +704,9 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v %changelog +* 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 From e38d276f83ddaf4610c4bddf883c1d5a26313a81 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jul 2023 16:53:13 +0000 Subject: [PATCH 09/49] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- cyrus-imapd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 8a5768c..a208b0e 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -8,7 +8,7 @@ Name: cyrus-imapd Version: 3.6.0 -Release: 8%{?dist} +Release: 9%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -704,6 +704,9 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v %changelog +* 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 From 6b9850d1a9e56db03f5be62dfe1776fa2f1cb864 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Fri, 21 Jul 2023 14:25:48 +0200 Subject: [PATCH 10/49] 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) --- .gitignore | 3 +- cyrus-imapd.spec | 88 ++++++++------------ cyrus-imapd.sysusers | 5 ++ ellie-pub.key | 17 ++++ patch-cyrus-remove-always-inline-for-buf-len | 13 +++ sources | 5 +- 6 files changed, 73 insertions(+), 58 deletions(-) create mode 100644 cyrus-imapd.sysusers create mode 100644 ellie-pub.key create mode 100644 patch-cyrus-remove-always-inline-for-buf-len diff --git a/.gitignore b/.gitignore index 02f49a7..5249668 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,5 @@ /cyrus-imapd-3.4.4.tar.gz /cyrus-imapd-3.6.0.tar.gz /cyrus-imapd-3.6.0.tar.gz.sig -/ellie-pub.key +/cyrus-imapd-3.8.0.tar.gz +/cyrus-imapd-3.8.0.tar.gz.sig diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index a208b0e..610b3d0 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -7,8 +7,8 @@ %bcond_with cassandane Name: cyrus-imapd -Version: 3.6.0 -Release: 9%{?dist} +Version: 3.8.0 +Release: 1%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -29,28 +29,6 @@ URL: http://www.cyrusimap.org/ Source0: https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus-imapd-%version/cyrus-imapd-%version.tar.gz Source1: https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus-imapd-%version/cyrus-imapd-%version.tar.gz.sig Source2: ellie-pub.key - - -# 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 - -# Workaround for some compiled Perl modules not being linked against -# libpcreposix, which causes them to fail to load. -# https://bugzilla.redhat.com/show_bug.cgi?id=1668723 -# https://github.com/cyrusimap/cyrus-imapd/issues/2629#issuecomment-456925909 -Patch3: patch-cyrus-perl-linking - -# https://github.com/cyrusimap/cyrus-imapd/pull/3892 -Patch4: patch-cyrus-squatter-assert-crash - - Source10: cyrus-imapd.logrotate Source11: cyrus-imapd.pam-config Source12: cyrus-imapd.sysconfig @@ -61,37 +39,50 @@ Source15: README.rpm Source16: cyrus-imapd.service Source17: cyrus-imapd-init.service Source18: cyrus-imapd.tmpfiles.conf +Source19: cyrus-imapd.sysusers +%if %{with cassandane} # Source files for running the Cassandane test suite at build time. Source80: https://github.com/brong/Net-CalDAVTalk/archive/%{testdata_commit}/cassandane-testdata-%{testdata_short}.tar.gz - # A template config file for cassandane; we will substitute in varions values. Source81: cassandane.ini - # These are source files and not patches because you can't use autosetup to # apply patches to secondary unpacked source files. # Prevent cassandane from trying to syslog things Source91: 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 - # TODO libexec/cyrus-imapd path element got into upstream: # https://github.com/cyrusimap/cyrus-imapd/commit/9233f70bf7a2872ab0b456ea294ce36e0e01e182 # try to get fixed the below upstream to work on Fedora: # https://github.com/cyrusimap/cyrus-imapd/commit/f10eee167313418d84e63d215310477d4fe68e94 Source93: patch-cassandane-xapian-delve-path +%endif +# 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 +# Workaround for some compiled Perl modules not being linked against +# libpcreposix, which causes them to fail to load. +# https://bugzilla.redhat.com/show_bug.cgi?id=1668723 +# https://github.com/cyrusimap/cyrus-imapd/issues/2629#issuecomment-456925909 +Patch3: patch-cyrus-perl-linking +# Remove attribute always_inline to fix compilation error: +# https://bugzilla.redhat.com/show_bug.cgi?id=2223951 +# TODO: report upstream with patch +Patch4: patch-cyrus-remove-always-inline-for-buf-len BuildRequires: autoconf automake bison flex gcc gcc-c++ git glibc-langpack-en BuildRequires: groff libtool make pkgconfig rsync systemd transfig - BuildRequires: perl-devel perl-generators perl(ExtUtils::MakeMaker) BuildRequires: perl(Pod::Html) - %if 0%{?fedora} && 0%{?fedora} >= 0 BuildRequires: clamav-devel shapelib-devel %endif @@ -104,6 +95,8 @@ BuildRequires: sqlite-devel xapian-core-devel # Miscellaneous modules needed for 'make check' to function: BuildRequires: cyrus-sasl-plain cyrus-sasl-md5 +BuildRequires: systemd-rpm-macros + %if %{with cassandane} # Additional packages required for cassandane to function BuildRequires: imaptest net-tools words @@ -140,12 +133,14 @@ BuildRequires: perl(HTTP::Daemon) perl(DBI) perl(Net::LDAP::Constant) BuildRequires: perl(Net::LDAP::Server) BuildRequires: perl(Module::Load::Conditional) BuildRequires: cpan cld2-devel +BuildRequires: perl(Plack::Loader) perl(Test::TCP) perl(Data::GUID) perl(Digest::CRC) perl(Moo) perl(Types::Standard) # These were only for JMAP-Tester # perl(Moo), perl(Moose), perl(MooseX::Role::Parameterized) perl(Throwable), perl(Safe::Isa) %endif Requires(pre): shadow-utils +%{?sysusers_requires_compat} %{?systemd_requires} Requires: %name-utils = %version-%release @@ -175,7 +170,6 @@ 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 @@ -185,7 +179,6 @@ Requires: pkgconfig 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 @@ -195,7 +188,6 @@ 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 @@ -203,7 +195,6 @@ Summary: Runtime libraries for cyrus-imapd 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 = %{version}-%{release} @@ -213,7 +204,6 @@ 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 @@ -225,14 +215,12 @@ the clamav suite don't have to. Install this package if you wish to use the internal cyrus virus scanning utility. - %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. - %prep %if 0%{?fedora} %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' @@ -298,7 +286,6 @@ sed -i \ # cyrus-imapd-*/tools/mkimap - fixed # cyrus-imapd-*/tools/translatesieve - still contains shabang - %build %if %{with cassandane} # This module is not available in Fedora: @@ -376,7 +363,6 @@ done # This isn't built by default, but this package has always installed it. make notifyd/notifytest - %install make install DESTDIR=%buildroot @@ -427,6 +413,8 @@ install -p -m 644 doc/examples/imapd_conf/normal.conf %buildroot/etc/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 {} \; @@ -502,7 +490,6 @@ find %buildroot -name ".packlist" -exec rm {} \; # And this one gets installed with executable permission chmod -x %buildroot/%perl_vendorlib/Cyrus/Annotator/Daemon.pm - %check export LD_LIBRARY_PATH=%buildroot/%_libdir @@ -586,12 +573,8 @@ exclude+=("!Master.maxforkrate") # Add -vvv for too much output ./testrunner.pl %{?_smp_mflags} -v -f pretty ${exclude[@]} 2>&1 - %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 +%sysusers_create_compat %{SOURCE19} %post %systemd_post cyrus-imapd.service @@ -602,7 +585,6 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v %postun %systemd_postun_with_restart cyrus-imapd.service - %files %doc README.md doc/README.* doc/examples doc/text @@ -617,7 +599,6 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v # RF hardcoded-library-path in /usr/lib/cyrus-imapd /usr/lib/cyrus-imapd/ - %dir /etc/pki/cyrus-imapd %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 @@ -633,6 +614,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]* @@ -665,33 +647,27 @@ 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* - %files doc-extra %doc doc/html doc/internal doc/legacy - %files libs %license COPYING %_libdir/libcyrus*.so.* - %files utils %{_bindir}/* %_mandir/man1/* - %files virusscan %_sbindir/cyr_virusscan %_mandir/man8/cyr_virusscan.8* - %files -n perl-Cyrus %license COPYING %doc perl/imap/README @@ -702,8 +678,12 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v %perl_vendorlib/Cyrus %_mandir/man3/*.3pm* - %changelog +* 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 diff --git a/cyrus-imapd.sysusers b/cyrus-imapd.sysusers new file mode 100644 index 0000000..589008b --- /dev/null +++ b/cyrus-imapd.sysusers @@ -0,0 +1,5 @@ +#Type Name ID GECOS Home directory Shell +g saslauth 76 +g mail 12 +u cyrus 76:mail "Cyrus IMAP Server" /var/lib/imap /sbin/nologin +m cyrus saslauth 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/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/sources b/sources index d385021..752e94e 100644 --- a/sources +++ b/sources @@ -1,4 +1,3 @@ -SHA512 (cyrus-imapd-3.6.0.tar.gz) = d2b21117e7d0dd93212a43ca42098dc8b59613cb45ed2287d381c8c363026ac29386dfd90f07fa2ce8a77f56dddd19f2cc5b80d9c60c400d65cbb1d52a8db93c -SHA512 (cyrus-imapd-3.6.0.tar.gz.sig) = 190cc2f1ec43ccd18500855346249dbb1aca834ced862dc601c7c5fd91e3f161a633166969da48b1c185e690b02c6e8c55e2cca06bf4e9bc0c110f2e086bdf5d +SHA512 (cyrus-imapd-3.8.0.tar.gz) = e218639447c56a3608a1d02fbe23033fd38b8805fe672771e5e92477168d877374d0b7cbfaa3b6fcb1272c54f2b791729e24e20c16fb984675ac0632c2fc2073 +SHA512 (cyrus-imapd-3.8.0.tar.gz.sig) = 7fb7fa9cb1fd1ab73e2699f35f5237fade8eb64fb444cef190def223769cc705d7eb353a352c3d569bf5c18769e849d6a5142bf84fb7229d7575a1b012e8d611 SHA512 (cassandane-testdata-ca669d4b.tar.gz) = c153ab0a57d04d9deeabc5ef724eaecc05030c23b170abaa44eaea2e7df409efcdeb24871f7896759e85d64193fb9f289a470b0af9a593a740ffcc45c80033ff -SHA512 (ellie-pub.key) = af6e01f004d57c3f68106a572a62ba8b340d5158e2877c27343bbbab32c23b6df5c4e88ac883dc64388aff276d4c317821ddf90c213a88a295a8e69be781c01c From 90ceccd9f6a235556c7cf7b8918aebfc43820918 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Sat, 22 Jul 2023 11:45:46 +0200 Subject: [PATCH 11/49] Remove utils dependency on main package (rhbz#2224702) --- cyrus-imapd.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 610b3d0..dc02cb9 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -8,7 +8,7 @@ Name: cyrus-imapd Version: 3.8.0 -Release: 1%{?dist} +Release: 2%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -197,7 +197,8 @@ and the its utilities. %package utils Summary: Cyrus IMAP server administration utilities -Requires: cyrus-imapd = %{version}-%{release} +Requires: cyrus-imapd-libs = %{version}-%{release} +Requires: perl-Cyrus = %{version}-%{release} %description utils The cyrus-imapd-utils package contains administrative tools for the @@ -679,6 +680,9 @@ exclude+=("!Master.maxforkrate") %_mandir/man3/*.3pm* %changelog +* 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 From 605db0c5098a56ef4e318b863b943327d9ad94b1 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Mon, 31 Jul 2023 12:17:41 +0200 Subject: [PATCH 12/49] cyrus-imapd.spec - Refine Requires: to avoid the need to test interoperability between various combinations of old and new subpackages --- cyrus-imapd.spec | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index dc02cb9..8008bd3 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -8,7 +8,7 @@ Name: cyrus-imapd Version: 3.8.0 -Release: 2%{?dist} +Release: 3%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -140,10 +140,11 @@ BuildRequires: perl(Plack::Loader) perl(Test::TCP) perl(Data::GUID) perl(Digest: %endif Requires(pre): shadow-utils -%{?sysusers_requires_compat} %{?systemd_requires} +%{?sysusers_requires_compat} -Requires: %name-utils = %version-%release +Requires: cyrus-imapd-libs%{?_isa} = %{version}-%{release} +Requires: cyrus-imapd-utils = %{version}-%{release} Requires: file sscg %{?perl_default_filter} @@ -172,7 +173,7 @@ 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 @@ -197,7 +198,7 @@ and the its utilities. %package utils Summary: Cyrus IMAP server administration utilities -Requires: cyrus-imapd-libs = %{version}-%{release} +Requires: cyrus-imapd-libs%{?_isa} = %{version}-%{release} Requires: perl-Cyrus = %{version}-%{release} %description utils @@ -207,6 +208,7 @@ one running the server. %package virusscan Summary: Cyrus virus scanning utility +Requires: cyrus-imapd-libs%{?_isa} = %{version}-%{release} %description virusscan The cyrus-imapd-virusscan package contains the cyr_virusscan utility. It @@ -680,6 +682,10 @@ exclude+=("!Master.maxforkrate") %_mandir/man3/*.3pm* %changelog +* 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) From 85a66bf880af38701aa94777b649f48710d6016a Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Mon, 31 Jul 2023 14:34:04 +0200 Subject: [PATCH 13/49] Add rpminspect waivers --- rpminspect.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 rpminspect.yaml 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 From f485ab9701c7768b1dacf8d5b8a1bf7f3acbec5b Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Thu, 3 Aug 2023 12:37:14 +0200 Subject: [PATCH 14/49] Improve spec file to conform with packaging guidelines (rhbz#2228751) --- cyrus-imapd.spec | 181 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 159 insertions(+), 22 deletions(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 8008bd3..972f636 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -3,12 +3,14 @@ # Cassandane was split into separate CI test: # https://src.fedoraproject.org/tests/cyrus-imapd/blob/main/f/Sanity/cassandane -# Run rpmbuild '--with cassandane' to enable it. +# Run: `rpmbuild '--with cassandane'` to enable it. +# Run: `echo '%_with_cassandane 1' >> ~/.rpmmacros && dnf builddep rpmbuild/SPECS/cyrus-imapd.spec` +# to install dependencies for it. %bcond_with cassandane Name: cyrus-imapd Version: 3.8.0 -Release: 3%{?dist} +Release: 4%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -23,6 +25,9 @@ Release: 3%{?dist} %global __provides_exclude ^perl\\(AnnotateInlinedCIDs\\)$ Summary: A high-performance email, contacts and calendar server +# Cannot be converted to SPDX format yet due to: +# https://gitlab.com/fedora/legal/fedora-license-data/-/issues/249 +# https://github.com/spdx/license-list-XML/issues/2044 License: BSD URL: http://www.cyrusimap.org/ @@ -82,6 +87,9 @@ BuildRequires: autoconf automake bison flex gcc gcc-c++ git glibc-langpack-en BuildRequires: groff libtool make pkgconfig rsync systemd transfig BuildRequires: perl-devel perl-generators perl(ExtUtils::MakeMaker) BuildRequires: perl(Pod::Html) +%if 0%{?fedora} || 0%{?rhel} > 8 +BuildRequires: gnupg2 +%endif %if 0%{?fedora} && 0%{?fedora} >= 0 BuildRequires: clamav-devel shapelib-devel @@ -225,7 +233,7 @@ Summary: Perl libraries for interfacing with Cyrus IMAPd This package contains Perl libraries used to interface with Cyrus IMAPd. %prep -%if 0%{?fedora} +%if 0%{?fedora} || 0%{?rhel} > 8 %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %endif %autosetup -p1 @@ -589,14 +597,103 @@ exclude+=("!Master.maxforkrate") %systemd_postun_with_restart cyrus-imapd.service %files +%license COPYING %doc README.md doc/README.* doc/examples doc/text -%_sbindir/* -%_datadir/cyrus-imapd -%_mandir/man5/* -%_mandir/man8/* -%exclude %_sbindir/cyr_virusscan -%exclude %_mandir/man8/cyr_virusscan.8* +%{_sbindir}/arbitron +%{_sbindir}/chk_cyrus +%{_sbindir}/ctl_backups +%{_sbindir}/ctl_conversationsdb +%{_sbindir}/ctl_cyrusdb +%{_sbindir}/ctl_deliver +%{_sbindir}/ctl_mboxlist +%{_sbindir}/ctl_zoneinfo +%{_sbindir}/cvt_cyrusdb +%{_sbindir}/cvt_xlist_specialuse +%{_sbindir}/cyr_backup +%{_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_restore +%{_sbindir}/cyr_synclog +%{_sbindir}/cyr_userseen +%{_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}/man5/cyrus.conf.5* +%{_mandir}/man5/imapd.conf.5* +%{_mandir}/man5/krb.equiv.5* +%{_mandir}/man8/arbitron.8* +%{_mandir}/man8/backupd.8* +%{_mandir}/man8/chk_cyrus.8* +%{_mandir}/man8/ctl_backups.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/cyr_backup.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_quota.8* +%{_mandir}/man8/cyr_restore.8* +%{_mandir}/man8/cyr_synclog.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/master.8cyrus* +%{_mandir}/man8/mbexamine.8* +%{_mandir}/man8/mbpath.8* +%{_mandir}/man8/mbtool.8* +%{_mandir}/man8/nntpd.8* +%{_mandir}/man8/notifyd.8* +%{_mandir}/man8/pop3d.8cyrus* +%{_mandir}/man8/reconstruct.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 @@ -651,37 +748,77 @@ exclude+=("!Master.maxforkrate") %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.* +%{_libdir}/libcyrus.so.0 +%{_libdir}/libcyrus.so.0.0.0 +%{_libdir}/libcyrus_imap.so.0 +%{_libdir}/libcyrus_imap.so.0.0.0 +%{_libdir}/libcyrus_min.so.0 +%{_libdir}/libcyrus_min.so.0.0.0 +%{_libdir}/libcyrus_sieve.so.0 +%{_libdir}/libcyrus_sieve.so.0.0.0 %files utils -%{_bindir}/* -%_mandir/man1/* +%{_bindir}/cyradm +%{_bindir}/httptest +%{_bindir}/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/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* %files virusscan -%_sbindir/cyr_virusscan -%_mandir/man8/cyr_virusscan.8* +%{_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 -%perl_vendorarch/auto/Cyrus -%perl_vendorarch/Cyrus -%perl_vendorlib/Cyrus -%_mandir/man3/*.3pm* +%{perl_vendorarch}/auto/Cyrus +%{perl_vendorarch}/Cyrus +%{perl_vendorlib}/Cyrus +%{_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 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 From d6312b4c475830139aa61d135f4bc6fdf0bffbf9 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Wed, 13 Sep 2023 16:13:28 +0200 Subject: [PATCH 15/49] 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) --- .gitignore | 2 ++ cyrus-imapd.spec | 35 +++++++++++++++++++--------------- patch-cyrus-rename-imtest | 40 +++++++++++++++++++++++++++++++++++++++ sources | 4 ++-- 4 files changed, 64 insertions(+), 17 deletions(-) create mode 100644 patch-cyrus-rename-imtest diff --git a/.gitignore b/.gitignore index 5249668..c8f911e 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ /cyrus-imapd-3.6.0.tar.gz.sig /cyrus-imapd-3.8.0.tar.gz /cyrus-imapd-3.8.0.tar.gz.sig +/cyrus-imapd-3.8.1.tar.gz +/cyrus-imapd-3.8.1.tar.gz.sig diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 972f636..ed5f463 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -4,13 +4,13 @@ # Cassandane was split into separate CI test: # https://src.fedoraproject.org/tests/cyrus-imapd/blob/main/f/Sanity/cassandane # Run: `rpmbuild '--with cassandane'` to enable it. -# Run: `echo '%_with_cassandane 1' >> ~/.rpmmacros && dnf builddep rpmbuild/SPECS/cyrus-imapd.spec` +# Run: `echo '%%_with_cassandane 1' >> ~/.rpmmacros && dnf builddep rpmbuild/SPECS/cyrus-imapd.spec` # to install dependencies for it. %bcond_with cassandane Name: cyrus-imapd -Version: 3.8.0 -Release: 4%{?dist} +Version: 3.8.1 +Release: 1%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -46,7 +46,6 @@ Source17: cyrus-imapd-init.service Source18: cyrus-imapd.tmpfiles.conf Source19: cyrus-imapd.sysusers -%if %{with cassandane} # Source files for running the Cassandane test suite at build time. Source80: https://github.com/brong/Net-CalDAVTalk/archive/%{testdata_commit}/cassandane-testdata-%{testdata_short}.tar.gz # A template config file for cassandane; we will substitute in varions values. @@ -64,7 +63,6 @@ Source92: patch-cassandane-fix-annotator # try to get fixed the below upstream to work on Fedora: # https://github.com/cyrusimap/cyrus-imapd/commit/f10eee167313418d84e63d215310477d4fe68e94 Source93: patch-cassandane-xapian-delve-path -%endif # Adapt a timeout to handle our slower builders Patch0: patch-cyrus-testsuite-timeout @@ -82,6 +80,7 @@ Patch3: patch-cyrus-perl-linking # https://bugzilla.redhat.com/show_bug.cgi?id=2223951 # TODO: report upstream with patch Patch4: patch-cyrus-remove-always-inline-for-buf-len +Patch5: patch-cyrus-rename-imtest BuildRequires: autoconf automake bison flex gcc gcc-c++ git glibc-langpack-en BuildRequires: groff libtool make pkgconfig rsync systemd transfig @@ -475,6 +474,10 @@ 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 +# 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 + # 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. @@ -761,19 +764,15 @@ exclude+=("!Master.maxforkrate") %files libs %license COPYING -%{_libdir}/libcyrus.so.0 -%{_libdir}/libcyrus.so.0.0.0 -%{_libdir}/libcyrus_imap.so.0 -%{_libdir}/libcyrus_imap.so.0.0.0 -%{_libdir}/libcyrus_min.so.0 -%{_libdir}/libcyrus_min.so.0.0.0 -%{_libdir}/libcyrus_sieve.so.0 -%{_libdir}/libcyrus_sieve.so.0.0.0 +%{_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}/imtest +%{_bindir}/cyr_imtest %{_bindir}/installsieve %{_bindir}/lmtptest %{_bindir}/mupdatetest @@ -786,7 +785,7 @@ exclude+=("!Master.maxforkrate") %{_bindir}/synctest %{_mandir}/man1/cyradm.1* %{_mandir}/man1/httptest.1* -%{_mandir}/man1/imtest.1* +%{_mandir}/man1/cyr_imtest.1* %{_mandir}/man1/installsieve.1* %{_mandir}/man1/lmtptest.1* %{_mandir}/man1/mupdatetest.1* @@ -816,6 +815,12 @@ exclude+=("!Master.maxforkrate") %{_mandir}/man3/Cyrus::SIEVE::managesieve.3pm* %changelog +* 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) 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/sources b/sources index 752e94e..7d71013 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (cyrus-imapd-3.8.0.tar.gz) = e218639447c56a3608a1d02fbe23033fd38b8805fe672771e5e92477168d877374d0b7cbfaa3b6fcb1272c54f2b791729e24e20c16fb984675ac0632c2fc2073 -SHA512 (cyrus-imapd-3.8.0.tar.gz.sig) = 7fb7fa9cb1fd1ab73e2699f35f5237fade8eb64fb444cef190def223769cc705d7eb353a352c3d569bf5c18769e849d6a5142bf84fb7229d7575a1b012e8d611 +SHA512 (cyrus-imapd-3.8.1.tar.gz) = 95473c7fbe0ccfae2b4f4dddd0448b33079c50848334054d9ce0489e74c70bc99c53f12ec3e46c9d8055480b31cc412896fc26a60ae2844cb8d7f61f9867caed +SHA512 (cyrus-imapd-3.8.1.tar.gz.sig) = 82ffa7791e643dc8ae38c763538a0d819708dc4cc18e0597f2de3c1e243adf6d27d4f41a7b96b5ffa4757ad5e206b4a494262d1936eca58d074355dd606db6f0 SHA512 (cassandane-testdata-ca669d4b.tar.gz) = c153ab0a57d04d9deeabc5ef724eaecc05030c23b170abaa44eaea2e7df409efcdeb24871f7896759e85d64193fb9f289a470b0af9a593a740ffcc45c80033ff From 4176c0e5983b3d19752f2db3860c33bafa7c259b Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Mon, 2 Oct 2023 16:36:50 +0200 Subject: [PATCH 16/49] SPDX migration ref: https://gitlab.com/fedora/legal/fedora-license-data/-/issues/249 https://github.com/spdx/license-list-XML/issues/2044 --- cyrus-imapd.spec | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index ed5f463..d11d3c7 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -10,7 +10,7 @@ Name: cyrus-imapd Version: 3.8.1 -Release: 1%{?dist} +Release: 2%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -25,10 +25,7 @@ Release: 1%{?dist} %global __provides_exclude ^perl\\(AnnotateInlinedCIDs\\)$ Summary: A high-performance email, contacts and calendar server -# Cannot be converted to SPDX format yet due to: -# https://gitlab.com/fedora/legal/fedora-license-data/-/issues/249 -# https://github.com/spdx/license-list-XML/issues/2044 -License: BSD +License: BSD-Attribution-HPND-disclaimer URL: http://www.cyrusimap.org/ Source0: https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus-imapd-%version/cyrus-imapd-%version.tar.gz @@ -815,6 +812,9 @@ exclude+=("!Master.maxforkrate") %{_mandir}/man3/Cyrus::SIEVE::managesieve.3pm* %changelog +* 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 From 379b3a422bdef20d715b53dd1dc61773907c4073 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Thu, 16 Nov 2023 19:32:03 -0500 Subject: [PATCH 17/49] Use pcre2posix instead of the deprecated pcreposix (rhbz#2128286) Patch is based on https://github.com/cyrusimap/cyrus-imapd/pull/4736 and https://github.com/cyrusimap/cyrus-imapd/pull/4741 --- cyrus-imapd.spec | 13 +- patch-cyrus-pcre2 | 729 +++++++++++++++++++++++++++++++++++++++ patch-cyrus-perl-linking | 4 +- 3 files changed, 742 insertions(+), 4 deletions(-) create mode 100644 patch-cyrus-pcre2 diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index d11d3c7..744976c 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -10,7 +10,7 @@ Name: cyrus-imapd Version: 3.8.1 -Release: 2%{?dist} +Release: 3%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -78,6 +78,9 @@ Patch3: patch-cyrus-perl-linking # TODO: report upstream with patch Patch4: patch-cyrus-remove-always-inline-for-buf-len Patch5: patch-cyrus-rename-imtest +# Port to pcre2posix instead of the deprecated pcreposix +# https://github.com/cyrusimap/cyrus-imapd/pull/4736 +Patch6: patch-cyrus-pcre2 BuildRequires: autoconf automake bison flex gcc gcc-c++ git glibc-langpack-en BuildRequires: groff libtool make pkgconfig rsync systemd transfig @@ -93,7 +96,7 @@ BuildRequires: clamav-devel shapelib-devel BuildRequires: CUnit-devel cyrus-sasl-devel glib2-devel BuildRequires: jansson-devel krb5-devel libical-devel libicu-devel BuildRequires: libnghttp2-devel libxml2-devel mariadb-connector-c-devel net-snmp-devel -BuildRequires: openldap-devel openssl-devel pcre-devel libpq-devel +BuildRequires: openldap-devel openssl-devel pcre2-devel libpq-devel BuildRequires: sqlite-devel xapian-core-devel # Miscellaneous modules needed for 'make check' to function: @@ -365,6 +368,9 @@ for i in perl/annotator perl/imap perl/sieve/managesieve; do popd done +# rebuild for patch-cyrus-pcre2 +rm -f sieve/sieve.c + %make_build # This isn't built by default, but this package has always installed it. @@ -812,6 +818,9 @@ exclude+=("!Master.maxforkrate") %{_mandir}/man3/Cyrus::SIEVE::managesieve.3pm* %changelog +* Thu Nov 16 2023 Yaakov Selkowitz - 3.8.1-3 +- Use pcre2posix instead of the deprecated pcreposix (rhbz#2128286) + * Mon Oct 02 2023 Martin Osvald - 3.8.1-2 - SPDX migration diff --git a/patch-cyrus-pcre2 b/patch-cyrus-pcre2 new file mode 100644 index 0000000..952e274 --- /dev/null +++ b/patch-cyrus-pcre2 @@ -0,0 +1,729 @@ +From 259f3c69bfffe5ccc999675f9edda5c99afc79a0 Mon Sep 17 00:00:00 2001 +From: ellie timoney +Date: Wed, 8 Nov 2023 14:23:10 +1100 +Subject: [PATCH 1/5] various: add pcre2 support + +without removing pcre1 support + +Based on a patch from @yselkowitz in #4545 +--- + configure.ac | 21 +++++++++++++++++++++ + docsrc/assets/cyrus-build-devpkg.rst | 2 +- + docsrc/assets/cyrus-build-reqpkg.rst | 2 +- + docsrc/imap/developer/compiling.rst | 3 ++- + docsrc/imap/download/upgrade.rst | 2 +- + imap/cyr_buildinfo.c | 5 +++++ + lib/util.h | 21 ++++++++++++--------- + ptclient/test3.c | 2 +- + sieve/bc_eval.c | 4 +++- + sieve/comparator.h | 21 ++++++++++++--------- + sieve/sieve.y | 4 +++- + 11 files changed, 62 insertions(+), 25 deletions(-) + +diff --git a/configure.ac b/configure.ac +index cad8dd8f16..6b9f6a7a7c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -678,6 +678,8 @@ AC_ARG_ENABLE(sieve, + [AS_HELP_STRING([--disable-sieve], [disable Sieve support])],,[enable_sieve="yes";]) + AC_ARG_ENABLE(pcre, + [AS_HELP_STRING([--disable-pcre], [disable PCRE library])],[cyrus_cv_pcre_utf8="$enableval"]) ++AC_ARG_ENABLE(pcre2, ++ [AS_HELP_STRING([--disable-pcre2], [disable PCRE2 library])],[cyrus_cv_pcre2_utf8="$enableval"]) + + if test "$enable_sieve" != "no"; then + AC_DEFINE(USE_SIEVE,[],[Build in Sieve support?]) +@@ -717,11 +719,29 @@ if test "$enable_pcre" != "no"; then + fi + fi + ++if test "$enable_pcre2" != "no"; then ++ AC_CHECK_HEADER(pcre2posix.h) ++ if test "$ac_cv_header_pcre2posix_h" = "yes"; then ++ AC_MSG_CHECKING(for utf8 enabled pcre2) ++ AC_CACHE_VAL(cyrus_cv_pcre2_utf8, AC_TRY_CPP([#include ++#ifndef REG_UTF ++#include ++#endif],cyrus_cv_pcre2_utf8=yes,cyrus_cv_pcre2_utf8=no)) ++ AC_MSG_RESULT($cyrus_cv_pcre2_utf8) ++ else ++ cyrus_cv_pcre2_utf8="no" ++ fi ++fi ++ + LIB_REGEX= + if test "$cyrus_cv_pcre_utf8" = "yes"; then + LIB_REGEX="-lpcre -lpcreposix"; + AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) + AC_DEFINE(HAVE_PCREPOSIX_H, [], [Do we have usable pcre library?]) ++elif test "$cyrus_cv_pcre2_utf8" = "yes"; then ++ LIB_REGEX="-lpcre2-posix -lpcre2-8"; ++ AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) ++ AC_DEFINE(HAVE_PCRE2POSIX_H, [], [Do we have usable pcre2 library?]) + else + AC_CHECK_HEADERS(rxposix.h) + if test "$ac_cv_header_rxposix_h" = "yes"; then +@@ -2569,6 +2589,7 @@ External dependencies: + zlib: $with_zlib + jansson: $with_jansson + pcre: $cyrus_cv_pcre_utf8 ++ pcre2: $cyrus_cv_pcre2_utf8 + clamav: $with_clamav + ----------------------- + caringo: $with_caringo +diff --git a/docsrc/assets/cyrus-build-devpkg.rst b/docsrc/assets/cyrus-build-devpkg.rst +index cf3eaef1b3..5c0156bb64 100644 +--- a/docsrc/assets/cyrus-build-devpkg.rst ++++ b/docsrc/assets/cyrus-build-devpkg.rst +@@ -8,7 +8,7 @@ automated test facility. + debhelper flex g++ git gperf groff heimdal-dev libbsd-resource-perl libclone-perl libconfig-inifiles-perl \ + libcunit1-dev libdatetime-perl libbsd-dev libdigest-sha-perl libencode-imaputf7-perl \ libfile-chdir-perl libglib2.0-dev libical-dev libio-socket-inet6-perl \ + libio-stringy-perl libldap2-dev libmysqlclient-dev \ +- libnet-server-perl libnews-nntpclient-perl libpam0g-dev libpcre3-dev libsasl2-dev \ ++ libnet-server-perl libnews-nntpclient-perl libpam0g-dev libpcre2-dev libsasl2-dev \ + libsqlite3-dev libssl-dev libtest-unit-perl libtool libunix-syslog-perl liburi-perl \ + libxapian-dev libxml-generator-perl libxml-xpath-perl libxml2-dev libwrap0-dev libzephyr-dev lsb-base \ + net-tools perl php-cli php-curl pkg-config po-debconf tcl-dev \ +diff --git a/docsrc/assets/cyrus-build-reqpkg.rst b/docsrc/assets/cyrus-build-reqpkg.rst +index a3a530cc39..1c8bb45951 100644 +--- a/docsrc/assets/cyrus-build-reqpkg.rst ++++ b/docsrc/assets/cyrus-build-reqpkg.rst +@@ -2,6 +2,6 @@ + + sudo apt-get install git build-essential autoconf automake libtool \ + pkg-config bison flex libssl-dev libjansson-dev libxml2-dev \ +- libsqlite3-dev libical-dev libsasl2-dev libpcre3-dev uuid-dev \ ++ libsqlite3-dev libical-dev libsasl2-dev libpcre2-dev uuid-dev \ + libicu-dev + sudo apt-get -t jessie-backports install libxapian-dev +diff --git a/docsrc/imap/developer/compiling.rst b/docsrc/imap/developer/compiling.rst +index e05f3e43b1..2a351df5b1 100644 +--- a/docsrc/imap/developer/compiling.rst ++++ b/docsrc/imap/developer/compiling.rst +@@ -194,7 +194,7 @@ Other + to enable **ptloader** to interface with LDAP directly, for canonification + of login usernames to mailbox names, and verification of login usernames, + ACL subjects and group membership. Configure option: ``--with-ldap``." +- `pcre`_, libpcre3-dev, pcre-devel, "yes", "PCRE 1 (8.x) - for utf-8/unicode ++ `pcre2`_, libpcre2-dev, pcre2-devel, "yes", "PCRE 2 (10.x) - for utf-8/unicode + regular expression matching. Could be replaced by something else in the + future. See `issues/1731`_ for more information." + `perl(Term::ReadLine)`_,,, "no", "Perl library needed by **cyradm**." +@@ -219,6 +219,7 @@ Other + .. _nghttp2: https://nghttp2.org/ + .. _openldap: http://www.openldap.org/ + .. _pcre: http://www.pcre.org/ ++.. _pcre2: http://www.pcre.org/ + .. _perl(Term::ReadLine): https://metacpan.org/pod/Term::ReadLine + .. _perl(ExtUtils::MakeMaker): http://search.cpan.org/dist/ExtUtils-MakeMaker/ + .. _perl(Pod::POM::View::Restructured): https://metacpan.org/pod/Pod::POM::View::Restructured +diff --git a/docsrc/imap/download/upgrade.rst b/docsrc/imap/download/upgrade.rst +index 353a0114b8..09db9232b7 100644 +--- a/docsrc/imap/download/upgrade.rst ++++ b/docsrc/imap/download/upgrade.rst +@@ -223,7 +223,7 @@ packages) for Debian is:: + libcunit1-dev libdatetime-perl libdigest-sha-perl libencode-imaputf7-perl \ + libfile-chdir-perl libglib2.0-dev libical-dev libio-socket-inet6-perl \ + libio-stringy-perl libjansson-dev libldap2-dev libmysqlclient-dev \ +- libnet-server-perl libnews-nntpclient-perl libpam0g-dev libpcre3-dev \ ++ libnet-server-perl libnews-nntpclient-perl libpam0g-dev libpcre2-dev \ + libsasl2-dev libsqlite3-dev libssl-dev libtest-unit-perl libtool \ + libunix-syslog-perl liburi-perl libxapian-dev libxml-generator-perl \ + libxml-xpath-perl libxml2-dev libwrap0-dev libzephyr-dev lsb-base \ +diff --git a/imap/cyr_buildinfo.c b/imap/cyr_buildinfo.c +index 3d596c726a..a011101993 100644 +--- a/imap/cyr_buildinfo.c ++++ b/imap/cyr_buildinfo.c +@@ -202,6 +202,11 @@ static json_t *buildinfo() + #else + json_object_set_new(dependency, "pcre", json_false()); + #endif ++#if defined(ENABLE_REGEX) && defined(HAVE_PCRE2POSIX_H) ++ json_object_set_new(dependency, "pcre2", json_true()); ++#else ++ json_object_set_new(dependency, "pcre2", json_false()); ++#endif + #ifdef HAVE_CLAMAV + json_object_set_new(dependency, "clamav", json_true()); + #else +diff --git a/lib/util.h b/lib/util.h +index 7f7ab9f655..6cdd95a271 100644 +--- a/lib/util.h ++++ b/lib/util.h +@@ -71,17 +71,20 @@ + extern const char CYRUS_VERSION[]; + + #ifdef ENABLE_REGEX +-# ifdef HAVE_PCREPOSIX_H ++# if defined HAVE_PCREPOSIX_H + # include + # include +-# else /* !HAVE_PCREPOSIX_H */ +-# ifdef HAVE_RXPOSIX_H +-# include +-# else /* !HAVE_RXPOSIX_H */ +-# include +-# endif /* HAVE_RXPOSIX_H */ +-# endif /* HAVE_PCREPOSIX_H */ +-#endif /* ENABLE_REGEX */ ++# elif defined HAVE_PCRE2POSIX_H ++# ifndef PCRE2POSIX_H_INCLUDED ++# include ++# define PCRE2POSIX_H_INCLUDED ++# endif ++# elif defined HAVE_RXPOSIX_H ++# include ++# else ++# include ++# endif ++#endif + + #ifdef HAVE_LIBUUID + #include +diff --git a/sieve/bc_eval.c b/sieve/bc_eval.c +index 17241e166f..67d39355fa 100644 +--- a/sieve/bc_eval.c ++++ b/sieve/bc_eval.c +@@ -321,9 +321,11 @@ static int regcomp_flags(int comparator, int requires) + { + int cflags = REG_EXTENDED; + +-#ifdef HAVE_PCREPOSIX_H + /* support UTF8 comparisons */ ++#if defined HAVE_PCREPOSIX_H + cflags |= REG_UTF8; ++#elif defined HAVE_PCRE2POSIX_H ++ cflags |= REG_UTF; + #endif + + if (comparator == B_ASCIICASEMAP) { +diff --git a/sieve/comparator.h b/sieve/comparator.h +index b043bc296b..8c58bd1e73 100644 +--- a/sieve/comparator.h ++++ b/sieve/comparator.h +@@ -47,17 +47,20 @@ + #include + + #ifdef ENABLE_REGEX +-# ifdef HAVE_PCREPOSIX_H ++# if defined HAVE_PCREPOSIX_H + # include + # include +-# else /* !HAVE_PCREPOSIX_H */ +-# ifdef HAVE_RXPOSIX_H +-# include +-# else /* !HAVE_RXPOSIX_H */ +-# include +-# endif /* HAVE_RXPOSIX_H */ +-# endif /* HAVE_PCREPOSIX_H */ +-#endif /* ENABLE_REGEX */ ++# elif defined HAVE_PCRE2POSIX_H ++# ifndef PCRE2POSIX_H_INCLUDED ++# include ++# define PCRE2POSIX_H_INCLUDED ++# endif ++# elif defined HAVE_RXPOSIX_H ++# include ++# else ++# include ++# endif ++#endif + + #include "sieve_interface.h" + #include "strarray.h" +diff --git a/sieve/sieve.y b/sieve/sieve.y +index 71aa503bd3..17adb65112 100644 +--- a/sieve/sieve.y ++++ b/sieve/sieve.y +@@ -2143,9 +2143,11 @@ static int verify_regexlist(sieve_script_t *sscript, + regex_t reg; + int cflags = REG_EXTENDED | REG_NOSUB; + +-#ifdef HAVE_PCREPOSIX_H + /* support UTF8 comparisons */ ++#if defined HAVE_PCREPOSIX_H + cflags |= REG_UTF8; ++#elif defined HAVE_PCRE2POSIX_H ++ cflags |= REG_UTF; + #endif + + if (collation == B_ASCIICASEMAP) { + +From 7c7e1957d9a8074aa3dd7fe113cf551eadcb494f Mon Sep 17 00:00:00 2001 +From: ellie timoney +Date: Mon, 13 Nov 2023 11:10:28 +1100 +Subject: [PATCH 2/5] configure.ac: tidy up sieve/pcre checks + +--- + configure.ac | 101 ++++++++++++++++++++++++++------------------------- + 1 file changed, 51 insertions(+), 50 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 6b9f6a7a7c..975925bebe 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -675,82 +675,83 @@ AM_CONDITIONAL([SQUATTER], + [test "${enable_squat}" != "no" -o "${enable_xapian}" != "no" ]) + + AC_ARG_ENABLE(sieve, +- [AS_HELP_STRING([--disable-sieve], [disable Sieve support])],,[enable_sieve="yes";]) +-AC_ARG_ENABLE(pcre, +- [AS_HELP_STRING([--disable-pcre], [disable PCRE library])],[cyrus_cv_pcre_utf8="$enableval"]) +-AC_ARG_ENABLE(pcre2, +- [AS_HELP_STRING([--disable-pcre2], [disable PCRE2 library])],[cyrus_cv_pcre2_utf8="$enableval"]) ++ [AS_HELP_STRING([--disable-sieve], [disable Sieve support])],,[enable_sieve="yes";]) + + if test "$enable_sieve" != "no"; then +- AC_DEFINE(USE_SIEVE,[],[Build in Sieve support?]) ++ AC_DEFINE(USE_SIEVE,[],[Build in Sieve support?]) + +- if test "x$HAVE_SQLITE" != x1; then +- AC_MSG_ERROR([Need sqlite3 for sieve]) +- else +- use_sqlite="yes" +- fi ++ if test "x$HAVE_SQLITE" != x1; then ++ AC_MSG_ERROR([Need sqlite3 for sieve]) ++ else ++ use_sqlite="yes" ++ fi + +- dnl Sieve configure stuff +- AC_PROG_YACC +- AM_PROG_LEX ++ dnl Sieve configure stuff ++ AC_PROG_YACC ++ AM_PROG_LEX + +- if test -z "$ac_cv_prog_YACC"; then +- AC_MSG_ERROR([Sieve requires bison/byacc/yacc, but none is installed]) +- fi ++ if test -z "$ac_cv_prog_YACC"; then ++ AC_MSG_ERROR([Sieve requires bison/byacc/yacc, but none is installed]) ++ fi + +- if test -z "$ac_cv_prog_LEX"; then +- AC_MSG_ERROR([Sieve requires flex/lex, but none is installed]) +- fi ++ if test -z "$ac_cv_prog_LEX"; then ++ AC_MSG_ERROR([Sieve requires flex/lex, but none is installed]) ++ fi + fi + + AM_CONDITIONAL([SIEVE], [test "${enable_sieve}" != "no"]) + ++AC_ARG_ENABLE(pcre, ++ [AS_HELP_STRING([--disable-pcre], [disable PCRE library])],[cyrus_cv_pcre_utf8="$enableval"]) ++AC_ARG_ENABLE(pcre2, ++ [AS_HELP_STRING([--disable-pcre2], [disable PCRE2 library])],[cyrus_cv_pcre2_utf8="$enableval"]) ++ + if test "$enable_pcre" != "no"; then +- AC_CHECK_HEADER(pcreposix.h) +- if test "$ac_cv_header_pcreposix_h" = "yes"; then +- AC_MSG_CHECKING(for utf8 enabled pcre) +- AC_CACHE_VAL(cyrus_cv_pcre_utf8, AC_TRY_CPP([#include ++ AC_CHECK_HEADER(pcreposix.h) ++ if test "$ac_cv_header_pcreposix_h" = "yes"; then ++ AC_MSG_CHECKING(for utf8 enabled pcre) ++ AC_CACHE_VAL(cyrus_cv_pcre_utf8, AC_TRY_CPP([#include + #ifndef REG_UTF8 + #include + #endif],cyrus_cv_pcre_utf8=yes,cyrus_cv_pcre_utf8=no)) +- AC_MSG_RESULT($cyrus_cv_pcre_utf8) +- else +- cyrus_cv_pcre_utf8="no" +- fi ++ AC_MSG_RESULT($cyrus_cv_pcre_utf8) ++ else ++ cyrus_cv_pcre_utf8="no" ++ fi + fi + + if test "$enable_pcre2" != "no"; then +- AC_CHECK_HEADER(pcre2posix.h) +- if test "$ac_cv_header_pcre2posix_h" = "yes"; then +- AC_MSG_CHECKING(for utf8 enabled pcre2) +- AC_CACHE_VAL(cyrus_cv_pcre2_utf8, AC_TRY_CPP([#include ++ AC_CHECK_HEADER(pcre2posix.h) ++ if test "$ac_cv_header_pcre2posix_h" = "yes"; then ++ AC_MSG_CHECKING(for utf8 enabled pcre2) ++ AC_CACHE_VAL(cyrus_cv_pcre2_utf8, AC_TRY_CPP([#include + #ifndef REG_UTF + #include + #endif],cyrus_cv_pcre2_utf8=yes,cyrus_cv_pcre2_utf8=no)) +- AC_MSG_RESULT($cyrus_cv_pcre2_utf8) +- else +- cyrus_cv_pcre2_utf8="no" +- fi ++ AC_MSG_RESULT($cyrus_cv_pcre2_utf8) ++ else ++ cyrus_cv_pcre2_utf8="no" ++ fi + fi + + LIB_REGEX= + if test "$cyrus_cv_pcre_utf8" = "yes"; then +- LIB_REGEX="-lpcre -lpcreposix"; +- AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) +- AC_DEFINE(HAVE_PCREPOSIX_H, [], [Do we have usable pcre library?]) ++ LIB_REGEX="-lpcre -lpcreposix"; ++ AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) ++ AC_DEFINE(HAVE_PCREPOSIX_H, [], [Do we have usable pcre library?]) + elif test "$cyrus_cv_pcre2_utf8" = "yes"; then +- LIB_REGEX="-lpcre2-posix -lpcre2-8"; +- AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) +- AC_DEFINE(HAVE_PCRE2POSIX_H, [], [Do we have usable pcre2 library?]) ++ LIB_REGEX="-lpcre2-posix -lpcre2-8"; ++ AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) ++ AC_DEFINE(HAVE_PCRE2POSIX_H, [], [Do we have usable pcre2 library?]) + else +- AC_CHECK_HEADERS(rxposix.h) +- if test "$ac_cv_header_rxposix_h" = "yes"; then +- LIB_REGEX="-lrx" +- AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) +- else +- AC_SEARCH_LIBS(regcomp, regex, +- AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]), []) +- fi ++ AC_CHECK_HEADERS(rxposix.h) ++ if test "$ac_cv_header_rxposix_h" = "yes"; then ++ LIB_REGEX="-lrx" ++ AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) ++ else ++ AC_SEARCH_LIBS(regcomp, regex, ++ AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]), []) ++ fi + fi + AC_SUBST(LIB_REGEX) + LIBS="$LIBS $LIB_REGEX" + +From b9002dba94eaa8a688df4f3c280db31a4eb77f69 Mon Sep 17 00:00:00 2001 +From: ellie timoney +Date: Mon, 13 Nov 2023 11:32:13 +1100 +Subject: [PATCH 3/5] configure.ac: use pkg-config to find pcre/pcre2 + +Fixes #4711 +--- + configure.ac | 73 +++++++++++++++++++++++++++++++++++----------------- + 1 file changed, 49 insertions(+), 24 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 975925bebe..7fed07e129 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -707,42 +707,65 @@ AC_ARG_ENABLE(pcre2, + [AS_HELP_STRING([--disable-pcre2], [disable PCRE2 library])],[cyrus_cv_pcre2_utf8="$enableval"]) + + if test "$enable_pcre" != "no"; then +- AC_CHECK_HEADER(pcreposix.h) +- if test "$ac_cv_header_pcreposix_h" = "yes"; then +- AC_MSG_CHECKING(for utf8 enabled pcre) +- AC_CACHE_VAL(cyrus_cv_pcre_utf8, AC_TRY_CPP([#include +-#ifndef REG_UTF8 +-#include +-#endif],cyrus_cv_pcre_utf8=yes,cyrus_cv_pcre_utf8=no)) +- AC_MSG_RESULT($cyrus_cv_pcre_utf8) +- else +- cyrus_cv_pcre_utf8="no" +- fi ++ PKG_CHECK_MODULES([PCRE], ++ [libpcreposix libpcre], ++ [ AC_MSG_CHECKING(for utf8 enabled pcre) ++ saved_CFLAGS="$CFLAGS" ++ saved_LIBS="$LIBS" ++ CFLAGS="$CFLAGS PCRE_CFLAGS" ++ LIBS="$LIBS PCRE_LIBS" ++ AC_CACHE_VAL(cyrus_cv_pcre_utf8, ++ AC_TRY_CPP([ #include ++ #ifndef REG_UTF8 ++ #include ++ #endif ++ ], ++ [cyrus_cv_pcre_utf8=yes], ++ [cyrus_cv_pcre_utf8=no])) ++ AC_MSG_RESULT($cyrus_cv_pcre_utf8) ++ CFLAGS="$saved_CFLAGS" ++ LIBS="$saved_LIBS" ++ ], ++ [cyrus_cv_pcre_utf8="no"]) + fi + + if test "$enable_pcre2" != "no"; then +- AC_CHECK_HEADER(pcre2posix.h) +- if test "$ac_cv_header_pcre2posix_h" = "yes"; then +- AC_MSG_CHECKING(for utf8 enabled pcre2) +- AC_CACHE_VAL(cyrus_cv_pcre2_utf8, AC_TRY_CPP([#include +-#ifndef REG_UTF +-#include +-#endif],cyrus_cv_pcre2_utf8=yes,cyrus_cv_pcre2_utf8=no)) +- AC_MSG_RESULT($cyrus_cv_pcre2_utf8) +- else +- cyrus_cv_pcre2_utf8="no" +- fi ++ PKG_CHECK_MODULES([PCRE2], ++ [libpcre2-posix libpcre2-8], ++ [ AC_MSG_CHECKING(for utf8 enabled pcre2) ++ saved_CFLAGS="$CFLAGS" ++ saved_LIBS="$LIBS" ++ CFLAGS="$CFLAGS PCRE2_CFLAGS" ++ LIBS="$LIBS PCRE2_LIBS" ++ AC_CACHE_VAL(cyrus_cv_pcre2_utf8, ++ AC_TRY_CPP([ #include ++ #ifndef REG_UTF ++ #include ++ #endif ++ ], ++ [cyrus_cv_pcre2_utf8=yes], ++ [cyrus_cv_pcre2_utf8=no])) ++ AC_MSG_RESULT($cyrus_cv_pcre2_utf8) ++ CFLAGS="$saved_CFLAGS" ++ LIBS="$saved_LIBS" ++ ], ++ [cyrus_cv_pcre2_utf8="no"]) + fi + + LIB_REGEX= ++CFLAGS_REGEX= + if test "$cyrus_cv_pcre_utf8" = "yes"; then +- LIB_REGEX="-lpcre -lpcreposix"; ++ CFLAGS_REGEX="$PCRE_CFLAGS" ++ LIB_REGEX="$PCRE_LIBS"; + AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) + AC_DEFINE(HAVE_PCREPOSIX_H, [], [Do we have usable pcre library?]) ++ cyrus_cv_pcre2_utf8="no" + elif test "$cyrus_cv_pcre2_utf8" = "yes"; then +- LIB_REGEX="-lpcre2-posix -lpcre2-8"; ++ CFLAGS_REGEX="$PCRE2_CFLAGS" ++ LIB_REGEX="$PCRE2_LIBS" + AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) + AC_DEFINE(HAVE_PCRE2POSIX_H, [], [Do we have usable pcre2 library?]) ++ cyrus_cv_pcre_utf8="no" + else + AC_CHECK_HEADERS(rxposix.h) + if test "$ac_cv_header_rxposix_h" = "yes"; then +@@ -754,7 +777,9 @@ else + fi + fi + AC_SUBST(LIB_REGEX) ++AC_SUBST(CFLAGS_REGEX) + LIBS="$LIBS $LIB_REGEX" ++CFLAGS="$CFLAGS $CFLAGS_REGEX" + + dnl + dnl see if we're compiling with SRS + +From 3ff27055f73097123b7c1c8e3d83adc1f1c1f026 Mon Sep 17 00:00:00 2001 +From: ellie timoney +Date: Mon, 13 Nov 2023 13:38:25 +1100 +Subject: [PATCH 4/5] configure.ac: prefer pcre2 if both available + +--- + configure.ac | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 7fed07e129..186b0f1872 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -754,18 +754,18 @@ fi + + LIB_REGEX= + CFLAGS_REGEX= +-if test "$cyrus_cv_pcre_utf8" = "yes"; then +- CFLAGS_REGEX="$PCRE_CFLAGS" +- LIB_REGEX="$PCRE_LIBS"; +- AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) +- AC_DEFINE(HAVE_PCREPOSIX_H, [], [Do we have usable pcre library?]) +- cyrus_cv_pcre2_utf8="no" +-elif test "$cyrus_cv_pcre2_utf8" = "yes"; then ++if test "$cyrus_cv_pcre2_utf8" = "yes"; then + CFLAGS_REGEX="$PCRE2_CFLAGS" + LIB_REGEX="$PCRE2_LIBS" + AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) + AC_DEFINE(HAVE_PCRE2POSIX_H, [], [Do we have usable pcre2 library?]) + cyrus_cv_pcre_utf8="no" ++elif test "$cyrus_cv_pcre_utf8" = "yes"; then ++ CFLAGS_REGEX="$PCRE_CFLAGS" ++ LIB_REGEX="$PCRE_LIBS"; ++ AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) ++ AC_DEFINE(HAVE_PCREPOSIX_H, [], [Do we have usable pcre library?]) ++ cyrus_cv_pcre2_utf8="no" + else + AC_CHECK_HEADERS(rxposix.h) + if test "$ac_cv_header_rxposix_h" = "yes"; then + +From 1dc08fef4805f74a0b4f51dd090337d8c75f9e10 Mon Sep 17 00:00:00 2001 +From: ellie timoney +Date: Mon, 13 Nov 2023 14:15:33 +1100 +Subject: [PATCH 5/5] add changes file + +--- + changes/next/pcre2-support | 30 ++++++++++++++++++++++++++++++ + 1 file changed, 30 insertions(+) + create mode 100644 changes/next/pcre2-support + +diff --git a/changes/next/pcre2-support b/changes/next/pcre2-support +new file mode 100644 +index 0000000000..87ac924f94 +--- /dev/null ++++ b/changes/next/pcre2-support +@@ -0,0 +1,30 @@ ++Description: ++ ++Adds pcre2 support. Prefers pcre2 over pcre if both are available. ++ ++ ++Config changes: ++ ++None ++ ++ ++Upgrade instructions: ++ ++Cyrus will prefer pcre2 over pcre if both are installed. If you have both ++installed and wish to use pcre rather than pcre2, run configure with ++--disable-pcre2. ++ ++If you haven't specifically installed libpcre2-dev (or whatever your system's ++equivalent is), you might still have parts of pcre2 installed due to other ++packages on your system depending on it. This can confuse configure into ++thinking you have a usable pcre2 when you don't. Either properly install ++libpcre2-dev so Cyrus can use it, or configure Cyrus with --disable-pcre2 ++so that it ignores the partial installation. ++ ++Please note that on Debian-based systems, pcre (the old one, no longer ++maintained) is called "pcre3". Yes, this is confusing. ++ ++ ++GitHub issue: ++ ++#3861 #4711 +From 19f286ad8f2eda1cccb688edb7369050d92bb6c6 Mon Sep 17 00:00:00 2001 +From: ellie timoney +Date: Wed, 22 Nov 2023 16:28:14 +1100 +Subject: [PATCH 1/4] Sieve: add bad regex case to badscript tests + +--- + cassandane/Cassandane/Cyrus/Sieve.pm | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/cassandane/Cassandane/Cyrus/Sieve.pm b/cassandane/Cassandane/Cyrus/Sieve.pm +index 2cd463f37f..0f0a3e66a6 100644 +--- a/cassandane/Cassandane/Cyrus/Sieve.pm ++++ b/cassandane/Cassandane/Cyrus/Sieve.pm +@@ -488,6 +488,16 @@ sub badscript_common + "require [\"fileinto\",\"copy\"];\nfileinto :copy \"foo\";\n"); + $self->assert_str_equals('success', $res); + ++ my $badregex1 = << 'EOF'; ++require ["regex"]; ++if header :regex "Subject" "Message (x)?(.*" { ++ stop; ++} ++EOF ++ ($res, $errs) = $self->compile_sieve_script('badregex1', $badregex1); ++ $self->assert_str_equals('failure', $res); ++ $self->assert_matches(qr/unbalanced/, $errs); ++ + # TODO: test UTF-8 verification of the string parameter + } + + +From 0395da350fdca0b8af57f01decc26d9ccc5375eb Mon Sep 17 00:00:00 2001 +From: ellie timoney +Date: Wed, 22 Nov 2023 16:29:12 +1100 +Subject: [PATCH 2/4] sieve/sieve.y: fix pcre2 crash when regex_t uninitialised + +Fixes crash when trying to regfree() after regcomp() failure + +Seems like this usage was fine with the old pcreposix, but is a +problem with pcre2posix. +--- + sieve/sieve.y | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sieve/sieve.y b/sieve/sieve.y +index 17adb65112..908f2a4ed0 100644 +--- a/sieve/sieve.y ++++ b/sieve/sieve.y +@@ -2140,7 +2140,6 @@ static int verify_regexlist(sieve_script_t *sscript, + const strarray_t *sa, int collation) + { + int i, ret = 0; +- regex_t reg; + int cflags = REG_EXTENDED | REG_NOSUB; + + /* support UTF8 comparisons */ +@@ -2156,6 +2155,7 @@ static int verify_regexlist(sieve_script_t *sscript, + + for (i = 0 ; !ret && i < strarray_size(sa) ; i++) { + const char *s = strarray_nth(sa, i); ++ regex_t reg = {0}; + + /* Don't try to validate a regex that includes variables */ + if (supported(SIEVE_CAPA_VARIABLES) && strstr(s, "${")) continue; + +From eae2966b2198b4446a5f311cb6b25070dffa4335 Mon Sep 17 00:00:00 2001 +From: ellie timoney +Date: Wed, 22 Nov 2023 16:50:52 +1100 +Subject: [PATCH 3/4] buf.testc: regcomp failure is fatal + +--- + cunit/buf.testc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cunit/buf.testc b/cunit/buf.testc +index 19f52e8cb2..c88a54e8b0 100644 +--- a/cunit/buf.testc ++++ b/cunit/buf.testc +@@ -646,7 +646,7 @@ static void test_replace_all(void) + CU_ASSERT_STRING_EQUAL(b.s, _in); \ + \ + r = regcomp(&re, _reg, REG_EXTENDED); \ +- CU_ASSERT_EQUAL(r, 0); ++ CU_ASSERT_EQUAL_FATAL(r, 0); + #define TESTCASE_MIDDLE \ + n = buf_replace_one_re(&b, &re, _rep); + #define TESTCASE_END \ + +From ba43ab2462adca1a6f2dbfc54d967f02bd1dcb33 Mon Sep 17 00:00:00 2001 +From: ellie timoney +Date: Wed, 22 Nov 2023 16:51:37 +1100 +Subject: [PATCH 4/4] glob: assert that regcomp succeeded + +instead of assuming it succeeded +--- + lib/glob.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/lib/glob.c b/lib/glob.c +index 06d5cb282b..89c45f0eae 100644 +--- a/lib/glob.c ++++ b/lib/glob.c +@@ -46,6 +46,7 @@ + #include + #include + #include ++#include + #include "util.h" + #include "glob.h" + #include "xmalloc.h" +@@ -58,6 +59,7 @@ + EXPORTED glob *glob_init(const char *str, char sep) + { + struct buf buf = BUF_INITIALIZER; ++ int r; + + buf_appendcstr(&buf, "(^"); + while (*str) { +@@ -109,7 +111,9 @@ EXPORTED glob *glob_init(const char *str, char sep) + buf_appendcstr(&buf, "]|$)"); + + glob *g = xmalloc(sizeof(glob)); +- regcomp(&g->regex, buf_cstring(&buf), REG_EXTENDED); ++ r = regcomp(&g->regex, buf_cstring(&buf), REG_EXTENDED); ++ /* XXX handle regex compilation failure properly! */ ++ assert(r == 0); + buf_free(&buf); + + return g; diff --git a/patch-cyrus-perl-linking b/patch-cyrus-perl-linking index 853d05f..c8cbcfd 100644 --- a/patch-cyrus-perl-linking +++ b/patch-cyrus-perl-linking @@ -7,7 +7,7 @@ index 7180b98..d589ebe 100644 '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@ @LIB_REGEX@ @ZLIB@ @SQLITE_LIBADD@ @MYSQL_LIBADD@ @PGSQL_LIBADD@"], -+ 'LIBS' => ["$LIB_SASL @SSL_LIBS@ @LIB_UUID@ @LIB_REGEX@ @ZLIB@ @SQLITE_LIBADD@ @MYSQL_LIBADD@ @PGSQL_LIBADD@ -lpcreposix"], ++ 'LIBS' => ["$LIB_SASL @SSL_LIBS@ @LIB_UUID@ @LIB_REGEX@ @ZLIB@ @SQLITE_LIBADD@ @MYSQL_LIBADD@ @PGSQL_LIBADD@ -lpcre2-posix"], '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@", @@ -20,7 +20,7 @@ index 71416cc..f76cda6 100644 'OBJECT' => 'IMAP.o', 'MYEXTLIB' => '@top_builddir@/perl/.libs/libcyrus.a @top_builddir@/perl/.libs/libcyrus_min.a', - 'LIBS' => [ "$LIB_SASL @SSL_LIBS@ @LIB_UUID@ @ZLIB@ @GCOV_LIBS@ @LIBCAP_LIBS@"], -+ 'LIBS' => [ "$LIB_SASL @SSL_LIBS@ @LIB_UUID@ @ZLIB@ @GCOV_LIBS@ @LIBCAP_LIBS@ -lpcreposix"], ++ 'LIBS' => [ "$LIB_SASL @SSL_LIBS@ @LIB_UUID@ @ZLIB@ @GCOV_LIBS@ @LIBCAP_LIBS@ -lpcre2-posix"], 'DEFINE' => '-DPERL_POLLUTE', # e.g., '-DHAVE_SOMETHING' 'INC' => "-I@top_srcdir@ -I@top_srcdir@/com_err/et @SASLFLAGS@ @SSL_CPPFLAGS@ @GCOV_CFLAGS@ -I@top_srcdir@/perl/imap", 'EXE_FILES' => [cyradm], From f318097aba9bd6e93101e0ffabb9281f608086d0 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Mon, 27 Nov 2023 11:50:39 -0500 Subject: [PATCH 18/49] Fix build with libxml2 2.12.0 Resolves: rhbz#2251888 --- cyrus-imapd.spec | 4 ++ patch-cyrus-libxml212 | 89 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 patch-cyrus-libxml212 diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 744976c..63a5d2d 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -81,6 +81,9 @@ Patch5: patch-cyrus-rename-imtest # Port to pcre2posix instead of the deprecated pcreposix # https://github.com/cyrusimap/cyrus-imapd/pull/4736 Patch6: patch-cyrus-pcre2 +# Fix build with libxml2 2.12.0 +# https://github.com/cyrusimap/cyrus-imapd/pull/4745 +Patch7: patch-cyrus-libxml212 BuildRequires: autoconf automake bison flex gcc gcc-c++ git glibc-langpack-en BuildRequires: groff libtool make pkgconfig rsync systemd transfig @@ -820,6 +823,7 @@ exclude+=("!Master.maxforkrate") %changelog * 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 diff --git a/patch-cyrus-libxml212 b/patch-cyrus-libxml212 new file mode 100644 index 0000000..9832366 --- /dev/null +++ b/patch-cyrus-libxml212 @@ -0,0 +1,89 @@ +From 37ceb82f0641b03d25d9a158423abbb270fe3867 Mon Sep 17 00:00:00 2001 +From: David King +Date: Mon, 27 Nov 2023 10:34:40 +0000 +Subject: [PATCH] Add libxml/parser.h include + +This is required for libxml2 2.12.0 and above. +--- + imap/ctl_zoneinfo.c | 1 + + imap/http_dav.c | 1 + + imap/http_dav_sharing.c | 2 ++ + imap/http_ischedule.c | 2 ++ + imap/vcard_support.c | 1 + + imap/xcal.c | 1 + + 6 files changed, 8 insertions(+) + +diff --git a/imap/ctl_zoneinfo.c b/imap/ctl_zoneinfo.c +index 76e3cfdd17..f42cff3131 100644 +--- a/imap/ctl_zoneinfo.c ++++ b/imap/ctl_zoneinfo.c +@@ -57,6 +57,7 @@ + #include + + #include ++#include + #include + + #include "annotate.h" /* for strlist functionality */ +diff --git a/imap/http_dav.c b/imap/http_dav.c +index efa817a192..581b80e573 100644 +--- a/imap/http_dav.c ++++ b/imap/http_dav.c +@@ -93,6 +93,7 @@ + #include "imap/imap_err.h" + + #include ++#include + #include + + static const struct dav_namespace_t { +diff --git a/imap/http_dav_sharing.c b/imap/http_dav_sharing.c +index 5fff46eba4..26fe7f4e6a 100644 +--- a/imap/http_dav_sharing.c ++++ b/imap/http_dav_sharing.c +@@ -59,6 +59,8 @@ + #include "imap/http_err.h" + #include "imap/imap_err.h" + ++#include ++ + #define DAVNOTIFICATION_CONTENT_TYPE \ + "application/davnotification+xml; charset=utf-8" + +diff --git a/imap/http_ischedule.c b/imap/http_ischedule.c +index 24c30b48e1..9ac1b6fa7d 100644 +--- a/imap/http_ischedule.c ++++ b/imap/http_ischedule.c +@@ -52,6 +52,8 @@ + + #include + ++#include ++ + #include "global.h" + #include "httpd.h" + #include "http_caldav_sched.h" +diff --git a/imap/vcard_support.c b/imap/vcard_support.c +index aa9e15ac7e..f15824225e 100644 +--- a/imap/vcard_support.c ++++ b/imap/vcard_support.c +@@ -42,6 +42,7 @@ + */ + + #include ++#include + #include + + #include "vcard_support.h" +diff --git a/imap/xcal.c b/imap/xcal.c +index 1f43d75488..cc749ab439 100644 +--- a/imap/xcal.c ++++ b/imap/xcal.c +@@ -47,6 +47,7 @@ + #include /* for offsetof() macro */ + #include + ++#include + #include + + #include "httpd.h" From 9c6f263a2898b17cd913bbab02ad63a349e17073 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Sun, 10 Dec 2023 18:41:21 +0100 Subject: [PATCH 19/49] Enable jmap support again (rhbz#1940012) --- cyrus-imapd.spec | 15 +++++++++++++-- patch-cassandane-getsyslog-fix | 20 ++++++++++++++++++++ patch-cyrus-default-configs | 2 +- patch-cyrus-libxml212 | 13 +++++++++++++ 4 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 patch-cassandane-getsyslog-fix diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 63a5d2d..63ce409 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -10,7 +10,7 @@ Name: cyrus-imapd Version: 3.8.1 -Release: 3%{?dist} +Release: 4%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -60,6 +60,10 @@ Source92: patch-cassandane-fix-annotator # try to get fixed the below upstream to work on Fedora: # https://github.com/cyrusimap/cyrus-imapd/commit/f10eee167313418d84e63d215310477d4fe68e94 Source93: patch-cassandane-xapian-delve-path +# Syslog depending tests started to fail after perl fix: +# https://github.com/Perl/perl5/commit/80c1f1e45e8ef8c27d170fae7ade41971fe20218 +# https://github.com/Perl/perl5/issues/21240 +Source94: patch-cassandane-getsyslog-fix # Adapt a timeout to handle our slower builders Patch0: patch-cyrus-testsuite-timeout @@ -83,6 +87,7 @@ Patch5: patch-cyrus-rename-imtest Patch6: patch-cyrus-pcre2 # Fix build with libxml2 2.12.0 # https://github.com/cyrusimap/cyrus-imapd/pull/4745 +# https://github.com/cyrusimap/cyrus-imapd/pull/4768 Patch7: patch-cyrus-libxml212 BuildRequires: autoconf automake bison flex gcc gcc-c++ git glibc-langpack-en @@ -144,6 +149,7 @@ BuildRequires: perl(Net::LDAP::Server) BuildRequires: perl(Module::Load::Conditional) BuildRequires: cpan cld2-devel BuildRequires: perl(Plack::Loader) perl(Test::TCP) perl(Data::GUID) perl(Digest::CRC) perl(Moo) perl(Types::Standard) +BuildRequires: perl(DBD::SQLite) # These were only for JMAP-Tester # perl(Moo), perl(Moose), perl(MooseX::Role::Parameterized) perl(Throwable), perl(Safe::Isa) @@ -252,6 +258,7 @@ tar xf %SOURCE80 patch -p1 < %SOURCE91 patch -p1 < %SOURCE92 patch -p1 < %SOURCE93 +patch -p1 < %SOURCE94 cp %SOURCE81 cassandane.ini # RF rpm-buildroot-usage @@ -352,6 +359,7 @@ autoreconf -vi --enable-http \ --enable-idled \ --enable-murder \ + --enable-jmap \ --enable-nntp \ --enable-replication \ --enable-unit-tests \ @@ -591,7 +599,7 @@ exclude+=("!Master.maxforkrate") %endif # Add -vvv for too much output -./testrunner.pl %{?_smp_mflags} -v -f pretty ${exclude[@]} 2>&1 +sudo -u cyrus LD_LIBRARY_PATH=%buildroot/%_libdir ./testrunner.pl %{?_smp_mflags} -v -f pretty ${exclude[@]} 2>&1 %pre %sysusers_create_compat %{SOURCE19} @@ -821,6 +829,9 @@ exclude+=("!Master.maxforkrate") %{_mandir}/man3/Cyrus::SIEVE::managesieve.3pm* %changelog +* 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) diff --git a/patch-cassandane-getsyslog-fix b/patch-cassandane-getsyslog-fix new file mode 100644 index 0000000..60b0011 --- /dev/null +++ b/patch-cassandane-getsyslog-fix @@ -0,0 +1,20 @@ +diff --git a/cassandane/Cassandane/Instance.pm b/cassandane/Cassandane/Instance.pm +index a2dc672..cc29490 100644 +--- a/Cassandane/Instance.pm ++++ b/Cassandane/Instance.pm +@@ -2250,6 +2250,15 @@ sub getsyslog + my ($self) = @_; + my $logname = $self->{name}; + if ($self->{have_syslog_replacement} && $self->{_syslogfh}) { ++ # https://github.com/Perl/perl5/issues/21240 ++ # eof status is no longer cleared automatically in newer perls ++ if ($self->{_syslogfh}->eof()) { ++ $self->{_syslogfh}->clearerr(); ++ } ++ if ($self->{_syslogfh}->error()) { ++ die "error reading $self->{syslog_fname}"; ++ } ++ + # hopefully unobtrusively, let busy log finish writing + usleep(100_000); # 100ms (0.1s) as us + my @lines = grep { m/$logname/ } $self->{_syslogfh}->getlines(); diff --git a/patch-cyrus-default-configs b/patch-cyrus-default-configs index be96c68..31c3647 100644 --- a/patch-cyrus-default-configs +++ b/patch-cyrus-default-configs @@ -44,7 +44,7 @@ index 95b54e9..3935b77 100644 -# Allowed values: caldav, carddav, domainkey, ischedule, rss -httpmodules: caldav carddav +# Fedora default: enable all modules besides admin and tzdist -+httpmodules: caldav carddav domainkey freebusy ischedule rss webdav ++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-libxml212 b/patch-cyrus-libxml212 index 9832366..2e993b6 100644 --- a/patch-cyrus-libxml212 +++ b/patch-cyrus-libxml212 @@ -87,3 +87,16 @@ index 1f43d75488..cc749ab439 100644 #include #include "httpd.h" +diff --git a/imap/jmap_calendar.c b/imap/jmap_calendar.c +index b60470e..553ef1c 100644 +--- a/imap/jmap_calendar.c ++++ b/imap/jmap_calendar.c +@@ -52,6 +52,8 @@ + #include + #endif + ++#include ++ + #include "acl.h" + #include "annotate.h" + #include "append.h" From 9b1a600f394a8ccdadaa8a6e2d52ace11604dd80 Mon Sep 17 00:00:00 2001 From: Sandro Mani Date: Sun, 24 Dec 2023 10:57:25 +0100 Subject: [PATCH 20/49] Rebuild (shapelib) --- cyrus-imapd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 63ce409..400c436 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -10,7 +10,7 @@ Name: cyrus-imapd Version: 3.8.1 -Release: 4%{?dist} +Release: 5%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -829,6 +829,9 @@ sudo -u cyrus LD_LIBRARY_PATH=%buildroot/%_libdir ./testrunner.pl %{?_smp_mflags %{_mandir}/man3/Cyrus::SIEVE::managesieve.3pm* %changelog +* 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) From 93db7ba835a22967e485b2a28c0095fffab78411 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jan 2024 16:35:40 +0000 Subject: [PATCH 21/49] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- cyrus-imapd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 400c436..824a69c 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -10,7 +10,7 @@ Name: cyrus-imapd Version: 3.8.1 -Release: 5%{?dist} +Release: 6%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -829,6 +829,9 @@ sudo -u cyrus LD_LIBRARY_PATH=%buildroot/%_libdir ./testrunner.pl %{?_smp_mflags %{_mandir}/man3/Cyrus::SIEVE::managesieve.3pm* %changelog +* 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) From c5f36b05bb63b513bb6d74a8219edf4ff3186123 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 24 Jan 2024 08:49:02 +0000 Subject: [PATCH 22/49] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- cyrus-imapd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 824a69c..8e7322f 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -10,7 +10,7 @@ Name: cyrus-imapd Version: 3.8.1 -Release: 6%{?dist} +Release: 7%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -829,6 +829,9 @@ sudo -u cyrus LD_LIBRARY_PATH=%buildroot/%_libdir ./testrunner.pl %{?_smp_mflags %{_mandir}/man3/Cyrus::SIEVE::managesieve.3pm* %changelog +* 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 From 1f11bd7b846a606cd3fd4c3c31f6013fa364f8f7 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Wed, 31 Jan 2024 19:19:05 +0000 Subject: [PATCH 23/49] Rebuild for ICU 74 --- cyrus-imapd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 8e7322f..bb67055 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -10,7 +10,7 @@ Name: cyrus-imapd Version: 3.8.1 -Release: 7%{?dist} +Release: 8%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -829,6 +829,9 @@ sudo -u cyrus LD_LIBRARY_PATH=%buildroot/%_libdir ./testrunner.pl %{?_smp_mflags %{_mandir}/man3/Cyrus::SIEVE::managesieve.3pm* %changelog +* 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 From b7ef6cbe6c4ba45c2002efb83737160b4c2e40db Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Wed, 31 Jan 2024 22:56:06 +0000 Subject: [PATCH 24/49] Rebuild for ICU 74 --- cyrus-imapd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index bb67055..6ec439b 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -10,7 +10,7 @@ Name: cyrus-imapd Version: 3.8.1 -Release: 8%{?dist} +Release: 9%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -829,6 +829,9 @@ sudo -u cyrus LD_LIBRARY_PATH=%buildroot/%_libdir ./testrunner.pl %{?_smp_mflags %{_mandir}/man3/Cyrus::SIEVE::managesieve.3pm* %changelog +* 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 From f7ad189e5eac3807fef9317bc775eaee93e4ffd6 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Tue, 27 Feb 2024 17:26:52 +0100 Subject: [PATCH 25/49] Do not create mail group to prevent dependency loop (rhbz#2266335) --- cyrus-imapd.spec | 5 ++++- cyrus-imapd.sysusers | 1 - 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 6ec439b..871e99b 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -10,7 +10,7 @@ Name: cyrus-imapd Version: 3.8.1 -Release: 9%{?dist} +Release: 10%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -829,6 +829,9 @@ sudo -u cyrus LD_LIBRARY_PATH=%buildroot/%_libdir ./testrunner.pl %{?_smp_mflags %{_mandir}/man3/Cyrus::SIEVE::managesieve.3pm* %changelog +* 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 diff --git a/cyrus-imapd.sysusers b/cyrus-imapd.sysusers index 589008b..3986c28 100644 --- a/cyrus-imapd.sysusers +++ b/cyrus-imapd.sysusers @@ -1,5 +1,4 @@ #Type Name ID GECOS Home directory Shell g saslauth 76 -g mail 12 u cyrus 76:mail "Cyrus IMAP Server" /var/lib/imap /sbin/nologin m cyrus saslauth From 817bcc506678e7ad248968a579b69352ce37def9 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Sat, 2 Mar 2024 07:15:35 +0100 Subject: [PATCH 26/49] Fixed crashes in imapd/pop3d & cyr_info imapd/pop3d crashing on TLS shutdown (rhbz#2256083) cyr_info crashes while printing conf-all/default confugiration (rhbz#2267210) --- cyrus-imapd.spec | 10 +++++++- patch-cyrus-cyr_info-conf-all-default-crash | 28 +++++++++++++++++++++ patch-cyrus-imap-pop3d-TLS-shutdown-crash | 22 ++++++++++++++++ 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 patch-cyrus-cyr_info-conf-all-default-crash create mode 100644 patch-cyrus-imap-pop3d-TLS-shutdown-crash diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 871e99b..0d212fc 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -10,7 +10,7 @@ Name: cyrus-imapd Version: 3.8.1 -Release: 10%{?dist} +Release: 11%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -89,6 +89,10 @@ Patch6: patch-cyrus-pcre2 # https://github.com/cyrusimap/cyrus-imapd/pull/4745 # https://github.com/cyrusimap/cyrus-imapd/pull/4768 Patch7: patch-cyrus-libxml212 +# https://bugzilla.redhat.com/show_bug.cgi?id=2256083 +Patch8: patch-cyrus-imap-pop3d-TLS-shutdown-crash +# https://bugzilla.redhat.com/show_bug.cgi?id=2267210 +Patch9: patch-cyrus-cyr_info-conf-all-default-crash BuildRequires: autoconf automake bison flex gcc gcc-c++ git glibc-langpack-en BuildRequires: groff libtool make pkgconfig rsync systemd transfig @@ -829,6 +833,10 @@ sudo -u cyrus LD_LIBRARY_PATH=%buildroot/%_libdir ./testrunner.pl %{?_smp_mflags %{_mandir}/man3/Cyrus::SIEVE::managesieve.3pm* %changelog +* 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) diff --git a/patch-cyrus-cyr_info-conf-all-default-crash b/patch-cyrus-cyr_info-conf-all-default-crash new file mode 100644 index 0000000..4ec744e --- /dev/null +++ b/patch-cyrus-cyr_info-conf-all-default-crash @@ -0,0 +1,28 @@ +commit a2bf7ed5aee1386a450dc6bd5dd3c6750fe39592 +Author: ellie timoney +Date: Fri Sep 15 11:39:35 2023 +1000 + + cyr_info: update to support BYTESIZE options + + Fixes #4650 + +diff --git a/imap/cyr_info.c b/imap/cyr_info.c +index ce43b09ed..9597a425c 100644 +--- a/imap/cyr_info.c ++++ b/imap/cyr_info.c +@@ -150,6 +150,7 @@ static void do_conf(int only_changed, int want_since, uint32_t since) + printf("\n"); + break; + ++ case OPT_BYTESIZE: + case OPT_DURATION: + if (only_changed) { + if (0 == strcmpsafe(imapopts[i].def.s, imapopts[i].val.s)) +@@ -264,6 +265,7 @@ static void do_defconf(int want_since, uint32_t since) + printf("%s: %ld\n", imapopts[i].optname, imapopts[i].def.i); + break; + ++ case OPT_BYTESIZE: + case OPT_DURATION: + case OPT_STRING: + case OPT_STRINGLIST: diff --git a/patch-cyrus-imap-pop3d-TLS-shutdown-crash b/patch-cyrus-imap-pop3d-TLS-shutdown-crash new file mode 100644 index 0000000..f0c3873 --- /dev/null +++ b/patch-cyrus-imap-pop3d-TLS-shutdown-crash @@ -0,0 +1,22 @@ +commit 6bbe2fe8cd44c4a3a78496ea5c3173961c61a2cb +Author: Дилян Палаузов +Date: Sun Feb 25 17:14:28 2024 +0100 + + Revert "tls.c: need to free SSL_SESSION when removing it from cache" + + This reverts commit a3523d4067c502a52cb7ee859c1493d1a980b7e0. + + Closes: https://github.com/cyrusimap/cyrus-imapd/issues/4785 + +diff --git a/imap/tls.c b/imap/tls.c +index cee70d9b9..31de7a757 100644 +--- a/imap/tls.c ++++ b/imap/tls.c +@@ -637,7 +637,6 @@ static void remove_session_cb(SSL_CTX *ctx __attribute__((unused)), + session_id = SSL_SESSION_get_id(sess, &session_id_length); + + remove_session(session_id, session_id_length); +- SSL_SESSION_free(sess); + } + + /* From 8ac0598a00710fb27796a601f62539094ff84ab4 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Thu, 28 Mar 2024 18:46:14 +0100 Subject: [PATCH 27/49] New version 3.8.2 spec file clean up --- .gitignore | 2 + cyrus-imapd.spec | 255 +++---- gating.yaml | 10 + patch-cassandane-fix-annotator | 6 +- patch-cassandane-getsyslog-fix | 20 - patch-cassandane-no-syslog | 12 +- patch-cassandane-xapian-delve-path | 6 +- patch-cyrus-cyr_info-conf-all-default-crash | 28 - patch-cyrus-imap-pop3d-TLS-shutdown-crash | 22 - patch-cyrus-libxml212 | 102 --- patch-cyrus-pcre2 | 729 -------------------- patch-cyrus-squatter-assert-crash | 20 - sources | 5 +- 13 files changed, 154 insertions(+), 1063 deletions(-) delete mode 100644 patch-cassandane-getsyslog-fix delete mode 100644 patch-cyrus-cyr_info-conf-all-default-crash delete mode 100644 patch-cyrus-imap-pop3d-TLS-shutdown-crash delete mode 100644 patch-cyrus-libxml212 delete mode 100644 patch-cyrus-pcre2 delete mode 100644 patch-cyrus-squatter-assert-crash diff --git a/.gitignore b/.gitignore index c8f911e..1a32802 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,5 @@ /cyrus-imapd-3.8.0.tar.gz.sig /cyrus-imapd-3.8.1.tar.gz /cyrus-imapd-3.8.1.tar.gz.sig +/cyrus-imapd-3.8.2.tar.gz +/cyrus-imapd-3.8.2.tar.gz.sig diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 0d212fc..d9e1761 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -1,18 +1,13 @@ -%global testdata_commit ca669d4b76c71cbeb4fa840e263e2c031e19ea88 -%global testdata_short %(echo %{testdata_commit} | cut -c -8) - -# Cassandane was split into separate CI test: -# https://src.fedoraproject.org/tests/cyrus-imapd/blob/main/f/Sanity/cassandane -# Run: `rpmbuild '--with cassandane'` to enable it. -# Run: `echo '%%_with_cassandane 1' >> ~/.rpmmacros && dnf builddep rpmbuild/SPECS/cyrus-imapd.spec` -# to install dependencies for it. -%bcond_with cassandane - Name: cyrus-imapd -Version: 3.8.1 -Release: 11%{?dist} +Version: 3.8.2 +Release: 1%{?dist} +Summary: A high-performance email, contacts and calendar server +License: BSD-Attribution-HPND-disclaimer +URL: http://www.cyrusimap.org/ -%define ssl_pem_file_prefix /etc/pki/%name/%name +# cyrus-imapd does not to support LTO +# https://github.com/cyrusimap/cyrus-imapd/pull/4679 +%define _lto_cflags %{nil} # UID/GID 76 have long been reserved for Cyrus %define uid 76 @@ -22,11 +17,17 @@ Release: 11%{?dist} %define cyrusgroup mail %define cyrexecdir %_libexecdir/%name +%define ssl_pem_file_prefix /etc/pki/%name/%name + %global __provides_exclude ^perl\\(AnnotateInlinedCIDs\\)$ -Summary: A high-performance email, contacts and calendar server -License: BSD-Attribution-HPND-disclaimer -URL: http://www.cyrusimap.org/ +# Cassandane testsuite now called from separate CI test and no longer executed during build time: +# https://src.fedoraproject.org/tests/cyrus-imapd/blob/main/f/Sanity/cassandane +# CASSANDANE* and CASSANDANE*_END used for extracting commands needed for running the testsuite. +# Run: `rpmbuild '--with cassandane'` to enable it. +# Run: `echo '%%_with_cassandane 1' >> ~/.rpmmacros && dnf builddep rpmbuild/SPECS/cyrus-imapd.spec` +# to install cassandane dependencies. +%bcond_with cassandane Source0: https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus-imapd-%version/cyrus-imapd-%version.tar.gz Source1: https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus-imapd-%version/cyrus-imapd-%version.tar.gz.sig @@ -43,27 +44,8 @@ Source17: cyrus-imapd-init.service Source18: cyrus-imapd.tmpfiles.conf Source19: cyrus-imapd.sysusers -# Source files for running the Cassandane test suite at build time. -Source80: https://github.com/brong/Net-CalDAVTalk/archive/%{testdata_commit}/cassandane-testdata-%{testdata_short}.tar.gz # A template config file for cassandane; we will substitute in varions values. Source81: cassandane.ini -# These are source files and not patches because you can't use autosetup to -# apply patches to secondary unpacked source files. - -# Prevent cassandane from trying to syslog things -Source91: 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 -# TODO libexec/cyrus-imapd path element got into upstream: -# https://github.com/cyrusimap/cyrus-imapd/commit/9233f70bf7a2872ab0b456ea294ce36e0e01e182 -# try to get fixed the below upstream to work on Fedora: -# https://github.com/cyrusimap/cyrus-imapd/commit/f10eee167313418d84e63d215310477d4fe68e94 -Source93: patch-cassandane-xapian-delve-path -# Syslog depending tests started to fail after perl fix: -# https://github.com/Perl/perl5/commit/80c1f1e45e8ef8c27d170fae7ade41971fe20218 -# https://github.com/Perl/perl5/issues/21240 -Source94: patch-cassandane-getsyslog-fix # Adapt a timeout to handle our slower builders Patch0: patch-cyrus-testsuite-timeout @@ -77,22 +59,19 @@ Patch2: patch-cyrus-rename-quota # https://bugzilla.redhat.com/show_bug.cgi?id=1668723 # https://github.com/cyrusimap/cyrus-imapd/issues/2629#issuecomment-456925909 Patch3: patch-cyrus-perl-linking -# Remove attribute always_inline to fix compilation error: -# https://bugzilla.redhat.com/show_bug.cgi?id=2223951 -# TODO: report upstream with patch -Patch4: patch-cyrus-remove-always-inline-for-buf-len Patch5: patch-cyrus-rename-imtest -# Port to pcre2posix instead of the deprecated pcreposix -# https://github.com/cyrusimap/cyrus-imapd/pull/4736 -Patch6: patch-cyrus-pcre2 -# Fix build with libxml2 2.12.0 -# https://github.com/cyrusimap/cyrus-imapd/pull/4745 -# https://github.com/cyrusimap/cyrus-imapd/pull/4768 -Patch7: patch-cyrus-libxml212 -# https://bugzilla.redhat.com/show_bug.cgi?id=2256083 -Patch8: patch-cyrus-imap-pop3d-TLS-shutdown-crash -# https://bugzilla.redhat.com/show_bug.cgi?id=2267210 -Patch9: patch-cyrus-cyr_info-conf-all-default-crash + +# Cassandane patches: +# Prevent cassandane from trying to syslog things +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 +Patch92: patch-cassandane-fix-annotator +# TODO libexec/cyrus-imapd path element got into upstream: +# https://github.com/cyrusimap/cyrus-imapd/commit/9233f70bf7a2872ab0b456ea294ce36e0e01e182 +# try to get fixed the below upstream to work on Fedora: +# https://github.com/cyrusimap/cyrus-imapd/commit/f10eee167313418d84e63d215310477d4fe68e94 +Patch93: patch-cassandane-xapian-delve-path BuildRequires: autoconf automake bison flex gcc gcc-c++ git glibc-langpack-en BuildRequires: groff libtool make pkgconfig rsync systemd transfig @@ -154,9 +133,6 @@ BuildRequires: perl(Module::Load::Conditional) BuildRequires: cpan cld2-devel BuildRequires: perl(Plack::Loader) perl(Test::TCP) perl(Data::GUID) perl(Digest::CRC) perl(Moo) perl(Types::Standard) BuildRequires: perl(DBD::SQLite) - -# These were only for JMAP-Tester -# perl(Moo), perl(Moose), perl(MooseX::Role::Parameterized) perl(Throwable), perl(Safe::Isa) %endif Requires(pre): shadow-utils @@ -244,36 +220,20 @@ Summary: Perl libraries for interfacing with Cyrus IMAPd %description -n perl-Cyrus This package contains Perl libraries used to interface with Cyrus IMAPd. + %prep %if 0%{?fedora} || 0%{?rhel} > 8 %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %endif + %autosetup -p1 + +# https://github.com/cyrusimap/cyrus-imapd/commit/216934c3f4884999206715db3499fc0162e1d65c echo %version > VERSION # Install the Fedora-specific documentation file install -m 644 %SOURCE15 doc/ -%if %{with cassandane} -pushd cassandane -mkdir work -tar xf %SOURCE80 - -patch -p1 < %SOURCE91 -patch -p1 < %SOURCE92 -patch -p1 < %SOURCE93 -patch -p1 < %SOURCE94 - -cp %SOURCE81 cassandane.ini -# RF rpm-buildroot-usage -sed -i \ - -e "s!CASSDIR!$(pwd)!" \ - -e "s!BUILDROOT!%buildroot!" \ - cassandane.ini - -popd -%endif - # The pm files have shebang lines for some reason sed -i -e '1{/usr.bin.perl/d}' perl/annotator/{Message,Daemon}.pm @@ -292,52 +252,33 @@ sed -i \ -e '/^#!perl/d' \ -e '/^#!\/bin\/sh/d' \ -e '/^#! \/bin\/sh/d' \ - perl/sieve/scripts/installsieve.pl \ - perl/sieve/scripts/sieveshell.pl perl/imap/cyradm.sh tools/config2header \ - tools/masssievec tools/config2rst tools/mknewsgroups tools/config2sample \ - tools/mkimap tools/translatesieve -# UPDATE: as of 3.4.2 most of the above files got the shabang fixed. Leaving -# the fixed files and this memo here temporarily: -# cyrus-imapd-*/nmp/snmpgen - no longer exists -# cyrus-imapd-*/perl/sieve/scripts/installsieve.pl - still contains shabang -# cyrus-imapd-*/perl/sieve/scripts/sieveshell.pl - fixed -# cyrus-imapd-*/perl/imap/cyradm.sh - still contains shabang -# cyrus-imapd-*/tools/config2header - fixed -# cyrus-imapd-*/tools/masssievec - fixed -# cyrus-imapd-*/tools/config2rst - fixed -# cyrus-imapd-*/tools/mknewsgroups - fixed -# cyrus-imapd-*/tools/config2sample - fixed -# cyrus-imapd-*/tools/mkimap - fixed -# cyrus-imapd-*/tools/translatesieve - still contains shabang + 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 + +%if %{with cassandane} +pushd cassandane +mkdir work +cp %SOURCE81 cassandane.ini +# RF rpm-buildroot-usage +sed -i \ + -e "s!CASSDIR!$(pwd)!" \ + -e "s!BUILDROOT!%buildroot!" \ + cassandane.ini +popd +%endif + %build +#autoreconf -vi + %if %{with cassandane} -# This module is not available in Fedora: -yes | cpan IO::File::fcntl - -# 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. -pushd cassandane -export NOCYRUS=1 -make -popd - # 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 - -# Notes about configure options: -# --enable-objectstore -# It's experimental, and it doesn't appear that either openio or caringo are -# in Fedora. -# --with-cyrus-prefix and --with-service-path went away; use --with-libexecdir= -# instead. - %configure \ --disable-silent-rules \ \ @@ -368,7 +309,8 @@ autoreconf -vi --enable-replication \ --enable-unit-tests \ --enable-xapian \ -# +`# 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 @@ -383,14 +325,25 @@ for i in perl/annotator perl/imap perl/sieve/managesieve; do popd done -# rebuild for patch-cyrus-pcre2 -rm -f sieve/sieve.c - %make_build # This isn't built by default, but this package has always installed it. make notifyd/notifytest +# CASSANDANE_BUILD +%if %{with cassandane} +# This module is not available in Fedora: +yes | cpan IO::File::fcntl + +# This is the test suite, which doesn't build much but does verify its dependencies. +pushd cassandane +export NOCYRUS=1 +make +popd +%endif +# CASSANDANE_BUILD_END + + %install make install DESTDIR=%buildroot @@ -522,9 +475,8 @@ find %buildroot -name ".packlist" -exec rm {} \; # And this one gets installed with executable permission chmod -x %buildroot/%perl_vendorlib/Cyrus/Annotator/Daemon.pm -%check -export LD_LIBRARY_PATH=%buildroot/%_libdir +%check %if %{without cassandane} exit 0 %endif @@ -535,7 +487,7 @@ exit 0 # TODO: The mime_boundary_extended cunit test fails due to LTO on ppc64le, skip it for now: %ifnarch ppc64le -make %{?_smp_mflags} check || exit 1 +make -j%{?_smp_build_ncpus} check || exit 1 %endif # Cassandane cannot run solely as root because imap services would otherwise quit: @@ -544,8 +496,18 @@ make %{?_smp_mflags} check || exit 1 #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 +# 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 /sbin/nologin -u %uid -r %cyrususer + -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 + +# CASSANDANE +# TODO: Temporary workaround for missing mail::IMAPTalk methods. +# https://github.com/robmueller/mail-imaptalk/commit/0cf2624edca6fc0dd1cdc851a8710af928ba1f1e +dnf downgrade -y https://kojipkgs.fedoraproject.org//packages/perl-Mail-IMAPTalk/4.04/22.fc39/noarch/perl-Mail-IMAPTalk-4.04-22.fc39.noarch.rpm # Run the Cassandane test suite. This will exhaustively test the various # server components, but running it in a mock chroot is rather an exercise. @@ -561,7 +523,7 @@ chown -R cyrus:mail . # --------------------------------------------------------- exclude=() tests=( - # This exclusion list was verified on 2023-06-28. + # This exclusion list was verified on 2024-03-27. # This tests coredumping and won't work on a machine where systemd # intercepts coredumps, which includes our builders. @@ -571,12 +533,19 @@ tests=( # https://github.com/cyrusimap/cyrus-imapd/issues/2386 Admin.imap_admins - # Failing with '405 Method Not Allowed': - Cyrus::FastMail.search_deleted_folder - Cyrus::JMAPCalendars.calendarevent_query_no_sched_inbox - - # Failing with Perl exception: Cannot connect to server: hostname verification failed: - Cyrus::MboxEvent.tls_login_event + # TODO currently failing + Cyrus::Flags.userflags_crash + Cyrus::JMAPCore.eventsource + Cyrus::JMAPEmail.email_query_no_guidsearch_ignore_jmapuploads + Cyrus::JMAPEmail.email_query_seen_multimbox + Cyrus::JMAPEmail.email_query_unicodefdfx + Cyrus::JMAPMailbox.mailbox_ignore_notes_subfolders + Cyrus::JMAPMailbox.mailbox_set_create_specialuse_nochildren + Cyrus::JMAPMailbox.mailbox_set_sharewith_acl + Cyrus::JMAPSieve.getmetadata + Cyrus::SearchSquat.nonincremental + Cyrus::SearchSquat.incremental + Cyrus::SearchSquat.one_doc_per_message ) for i in ${tests[@]}; do exclude+=("!$i"); done @@ -589,6 +558,7 @@ exclude+=( "!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" ) @@ -603,7 +573,14 @@ exclude+=("!Master.maxforkrate") %endif # Add -vvv for too much output -sudo -u cyrus LD_LIBRARY_PATH=%buildroot/%_libdir ./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 %sysusers_create_compat %{SOURCE19} @@ -617,6 +594,7 @@ sudo -u cyrus LD_LIBRARY_PATH=%buildroot/%_libdir ./testrunner.pl %{?_smp_mflags %postun %systemd_postun_with_restart cyrus-imapd.service + %files %license COPYING %doc README.md doc/README.* doc/examples doc/text @@ -665,6 +643,7 @@ sudo -u cyrus LD_LIBRARY_PATH=%buildroot/%_libdir ./testrunner.pl %{?_smp_mflags %{_sbindir}/tls_prune %{_sbindir}/unexpunge %{_datadir}/cyrus-imapd +%{_mandir}/man1/dav_reconstruct.1* %{_mandir}/man5/cyrus.conf.5* %{_mandir}/man5/imapd.conf.5* %{_mandir}/man5/krb.equiv.5* @@ -678,6 +657,7 @@ sudo -u cyrus LD_LIBRARY_PATH=%buildroot/%_libdir ./testrunner.pl %{?_smp_mflags %{_mandir}/man8/ctl_mboxlist.8* %{_mandir}/man8/ctl_zoneinfo.8* %{_mandir}/man8/cvt_cyrusdb.8* +%{_mandir}/man8/cvt_xlist_specialuse.8* %{_mandir}/man8/cyr_backup.8* %{_mandir}/man8/cyr_buildinfo.8* %{_mandir}/man8/cyr_dbtool.8* @@ -686,9 +666,13 @@ sudo -u cyrus LD_LIBRARY_PATH=%buildroot/%_libdir ./testrunner.pl %{?_smp_mflags %{_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_restore.8* %{_mandir}/man8/cyr_synclog.8* +%{_mandir}/man8/cyr_userseen.8* +%{_mandir}/man8/cyradm.8* +%{_mandir}/man8/cyrdump.8* %{_mandir}/man8/deliver.8* %{_mandir}/man8/fud.8* %{_mandir}/man8/httpd.8cyrus* @@ -696,14 +680,25 @@ sudo -u cyrus LD_LIBRARY_PATH=%buildroot/%_libdir ./testrunner.pl %{?_smp_mflags %{_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* @@ -812,6 +807,7 @@ sudo -u cyrus LD_LIBRARY_PATH=%buildroot/%_libdir ./testrunner.pl %{?_smp_mflags %{_mandir}/man1/sieveshell.1* %{_mandir}/man1/sivtest.1* %{_mandir}/man1/smtptest.1* +%{_mandir}/man1/synctest.1* %files virusscan %{_sbindir}/cyr_virusscan @@ -832,7 +828,12 @@ sudo -u cyrus LD_LIBRARY_PATH=%buildroot/%_libdir ./testrunner.pl %{?_smp_mflags %{_mandir}/man3/Cyrus::IMAP::Shell.3pm* %{_mandir}/man3/Cyrus::SIEVE::managesieve.3pm* + %changelog +* 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) diff --git a/gating.yaml b/gating.yaml index ce1b655..1773d0c 100644 --- a/gating.yaml +++ b/gating.yaml @@ -14,3 +14,13 @@ decision_contexts: [bodhi_update_push_stable] subject_type: koji_build rules: - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} + +#gating rhel +--- !Policy +product_versions: + - rhel-* +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} + - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-internal.functional} + - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/public.functional} diff --git a/patch-cassandane-fix-annotator b/patch-cassandane-fix-annotator index 406813e..b5875e6 100644 --- a/patch-cassandane-fix-annotator +++ b/patch-cassandane-fix-annotator @@ -1,7 +1,7 @@ -diff --git 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/utils/annotator.pl -+++ b/utils/annotator.pl +--- a/cassandane/utils/annotator.pl ++++ b/cassandane/utils/annotator.pl @@ -140,6 +140,8 @@ GetOptions( xlog "annotator $$ starting"; Cassandane::AnnotatorDaemon->run( diff --git a/patch-cassandane-getsyslog-fix b/patch-cassandane-getsyslog-fix deleted file mode 100644 index 60b0011..0000000 --- a/patch-cassandane-getsyslog-fix +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/cassandane/Cassandane/Instance.pm b/cassandane/Cassandane/Instance.pm -index a2dc672..cc29490 100644 ---- a/Cassandane/Instance.pm -+++ b/Cassandane/Instance.pm -@@ -2250,6 +2250,15 @@ sub getsyslog - my ($self) = @_; - my $logname = $self->{name}; - if ($self->{have_syslog_replacement} && $self->{_syslogfh}) { -+ # https://github.com/Perl/perl5/issues/21240 -+ # eof status is no longer cleared automatically in newer perls -+ if ($self->{_syslogfh}->eof()) { -+ $self->{_syslogfh}->clearerr(); -+ } -+ if ($self->{_syslogfh}->error()) { -+ die "error reading $self->{syslog_fname}"; -+ } -+ - # hopefully unobtrusively, let busy log finish writing - usleep(100_000); # 100ms (0.1s) as us - my @lines = grep { m/$logname/ } $self->{_syslogfh}->getlines(); diff --git a/patch-cassandane-no-syslog b/patch-cassandane-no-syslog index ed78f88..556bdf4 100644 --- a/patch-cassandane-no-syslog +++ b/patch-cassandane-no-syslog @@ -1,7 +1,7 @@ -diff --git a/Cassandane/Util/Log.pm b/Cassandane/Util/Log.pm +diff --git a/cassandane/Cassandane/Util/Log.pm b/cassandane/Cassandane/Util/Log.pm index a44005c..5bb5710 100644 ---- a/Cassandane/Util/Log.pm -+++ b/Cassandane/Util/Log.pm +--- a/cassandane/Cassandane/Util/Log.pm ++++ b/cassandane/Cassandane/Util/Log.pm @@ -51,9 +51,6 @@ our @EXPORT = qw( my $verbose = 0; @@ -20,10 +20,10 @@ index a44005c..5bb5710 100644 } sub set_verbose -diff --git a/utils/syslog.c b/utils/syslog.c +diff --git a/cassandane/utils/syslog.c b/cassandane/utils/syslog.c index 20d3763..0238d82 100644 ---- a/utils/syslog.c -+++ b/utils/syslog.c +--- 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); diff --git a/patch-cassandane-xapian-delve-path b/patch-cassandane-xapian-delve-path index c079c2d..2ca64eb 100644 --- a/patch-cassandane-xapian-delve-path +++ b/patch-cassandane-xapian-delve-path @@ -1,7 +1,7 @@ -diff --git a/Cassandane/Instance.pm b/Cassandane/Instance.pm +diff --git a/cassandane/Cassandane/Instance.pm b/cassandane/Cassandane/Instance.pm index 78e7100..edf6f5d 100644 ---- a/Cassandane/Instance.pm -+++ b/Cassandane/Instance.pm +--- a/cassandane/Cassandane/Instance.pm ++++ b/cassandane/Cassandane/Instance.pm @@ -492,9 +492,7 @@ sub _find_binary my $base = $self->{cyrus_destdir} . $self->{cyrus_prefix}; diff --git a/patch-cyrus-cyr_info-conf-all-default-crash b/patch-cyrus-cyr_info-conf-all-default-crash deleted file mode 100644 index 4ec744e..0000000 --- a/patch-cyrus-cyr_info-conf-all-default-crash +++ /dev/null @@ -1,28 +0,0 @@ -commit a2bf7ed5aee1386a450dc6bd5dd3c6750fe39592 -Author: ellie timoney -Date: Fri Sep 15 11:39:35 2023 +1000 - - cyr_info: update to support BYTESIZE options - - Fixes #4650 - -diff --git a/imap/cyr_info.c b/imap/cyr_info.c -index ce43b09ed..9597a425c 100644 ---- a/imap/cyr_info.c -+++ b/imap/cyr_info.c -@@ -150,6 +150,7 @@ static void do_conf(int only_changed, int want_since, uint32_t since) - printf("\n"); - break; - -+ case OPT_BYTESIZE: - case OPT_DURATION: - if (only_changed) { - if (0 == strcmpsafe(imapopts[i].def.s, imapopts[i].val.s)) -@@ -264,6 +265,7 @@ static void do_defconf(int want_since, uint32_t since) - printf("%s: %ld\n", imapopts[i].optname, imapopts[i].def.i); - break; - -+ case OPT_BYTESIZE: - case OPT_DURATION: - case OPT_STRING: - case OPT_STRINGLIST: diff --git a/patch-cyrus-imap-pop3d-TLS-shutdown-crash b/patch-cyrus-imap-pop3d-TLS-shutdown-crash deleted file mode 100644 index f0c3873..0000000 --- a/patch-cyrus-imap-pop3d-TLS-shutdown-crash +++ /dev/null @@ -1,22 +0,0 @@ -commit 6bbe2fe8cd44c4a3a78496ea5c3173961c61a2cb -Author: Дилян Палаузов -Date: Sun Feb 25 17:14:28 2024 +0100 - - Revert "tls.c: need to free SSL_SESSION when removing it from cache" - - This reverts commit a3523d4067c502a52cb7ee859c1493d1a980b7e0. - - Closes: https://github.com/cyrusimap/cyrus-imapd/issues/4785 - -diff --git a/imap/tls.c b/imap/tls.c -index cee70d9b9..31de7a757 100644 ---- a/imap/tls.c -+++ b/imap/tls.c -@@ -637,7 +637,6 @@ static void remove_session_cb(SSL_CTX *ctx __attribute__((unused)), - session_id = SSL_SESSION_get_id(sess, &session_id_length); - - remove_session(session_id, session_id_length); -- SSL_SESSION_free(sess); - } - - /* diff --git a/patch-cyrus-libxml212 b/patch-cyrus-libxml212 deleted file mode 100644 index 2e993b6..0000000 --- a/patch-cyrus-libxml212 +++ /dev/null @@ -1,102 +0,0 @@ -From 37ceb82f0641b03d25d9a158423abbb270fe3867 Mon Sep 17 00:00:00 2001 -From: David King -Date: Mon, 27 Nov 2023 10:34:40 +0000 -Subject: [PATCH] Add libxml/parser.h include - -This is required for libxml2 2.12.0 and above. ---- - imap/ctl_zoneinfo.c | 1 + - imap/http_dav.c | 1 + - imap/http_dav_sharing.c | 2 ++ - imap/http_ischedule.c | 2 ++ - imap/vcard_support.c | 1 + - imap/xcal.c | 1 + - 6 files changed, 8 insertions(+) - -diff --git a/imap/ctl_zoneinfo.c b/imap/ctl_zoneinfo.c -index 76e3cfdd17..f42cff3131 100644 ---- a/imap/ctl_zoneinfo.c -+++ b/imap/ctl_zoneinfo.c -@@ -57,6 +57,7 @@ - #include - - #include -+#include - #include - - #include "annotate.h" /* for strlist functionality */ -diff --git a/imap/http_dav.c b/imap/http_dav.c -index efa817a192..581b80e573 100644 ---- a/imap/http_dav.c -+++ b/imap/http_dav.c -@@ -93,6 +93,7 @@ - #include "imap/imap_err.h" - - #include -+#include - #include - - static const struct dav_namespace_t { -diff --git a/imap/http_dav_sharing.c b/imap/http_dav_sharing.c -index 5fff46eba4..26fe7f4e6a 100644 ---- a/imap/http_dav_sharing.c -+++ b/imap/http_dav_sharing.c -@@ -59,6 +59,8 @@ - #include "imap/http_err.h" - #include "imap/imap_err.h" - -+#include -+ - #define DAVNOTIFICATION_CONTENT_TYPE \ - "application/davnotification+xml; charset=utf-8" - -diff --git a/imap/http_ischedule.c b/imap/http_ischedule.c -index 24c30b48e1..9ac1b6fa7d 100644 ---- a/imap/http_ischedule.c -+++ b/imap/http_ischedule.c -@@ -52,6 +52,8 @@ - - #include - -+#include -+ - #include "global.h" - #include "httpd.h" - #include "http_caldav_sched.h" -diff --git a/imap/vcard_support.c b/imap/vcard_support.c -index aa9e15ac7e..f15824225e 100644 ---- a/imap/vcard_support.c -+++ b/imap/vcard_support.c -@@ -42,6 +42,7 @@ - */ - - #include -+#include - #include - - #include "vcard_support.h" -diff --git a/imap/xcal.c b/imap/xcal.c -index 1f43d75488..cc749ab439 100644 ---- a/imap/xcal.c -+++ b/imap/xcal.c -@@ -47,6 +47,7 @@ - #include /* for offsetof() macro */ - #include - -+#include - #include - - #include "httpd.h" -diff --git a/imap/jmap_calendar.c b/imap/jmap_calendar.c -index b60470e..553ef1c 100644 ---- a/imap/jmap_calendar.c -+++ b/imap/jmap_calendar.c -@@ -52,6 +52,8 @@ - #include - #endif - -+#include -+ - #include "acl.h" - #include "annotate.h" - #include "append.h" diff --git a/patch-cyrus-pcre2 b/patch-cyrus-pcre2 deleted file mode 100644 index 952e274..0000000 --- a/patch-cyrus-pcre2 +++ /dev/null @@ -1,729 +0,0 @@ -From 259f3c69bfffe5ccc999675f9edda5c99afc79a0 Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Wed, 8 Nov 2023 14:23:10 +1100 -Subject: [PATCH 1/5] various: add pcre2 support - -without removing pcre1 support - -Based on a patch from @yselkowitz in #4545 ---- - configure.ac | 21 +++++++++++++++++++++ - docsrc/assets/cyrus-build-devpkg.rst | 2 +- - docsrc/assets/cyrus-build-reqpkg.rst | 2 +- - docsrc/imap/developer/compiling.rst | 3 ++- - docsrc/imap/download/upgrade.rst | 2 +- - imap/cyr_buildinfo.c | 5 +++++ - lib/util.h | 21 ++++++++++++--------- - ptclient/test3.c | 2 +- - sieve/bc_eval.c | 4 +++- - sieve/comparator.h | 21 ++++++++++++--------- - sieve/sieve.y | 4 +++- - 11 files changed, 62 insertions(+), 25 deletions(-) - -diff --git a/configure.ac b/configure.ac -index cad8dd8f16..6b9f6a7a7c 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -678,6 +678,8 @@ AC_ARG_ENABLE(sieve, - [AS_HELP_STRING([--disable-sieve], [disable Sieve support])],,[enable_sieve="yes";]) - AC_ARG_ENABLE(pcre, - [AS_HELP_STRING([--disable-pcre], [disable PCRE library])],[cyrus_cv_pcre_utf8="$enableval"]) -+AC_ARG_ENABLE(pcre2, -+ [AS_HELP_STRING([--disable-pcre2], [disable PCRE2 library])],[cyrus_cv_pcre2_utf8="$enableval"]) - - if test "$enable_sieve" != "no"; then - AC_DEFINE(USE_SIEVE,[],[Build in Sieve support?]) -@@ -717,11 +719,29 @@ if test "$enable_pcre" != "no"; then - fi - fi - -+if test "$enable_pcre2" != "no"; then -+ AC_CHECK_HEADER(pcre2posix.h) -+ if test "$ac_cv_header_pcre2posix_h" = "yes"; then -+ AC_MSG_CHECKING(for utf8 enabled pcre2) -+ AC_CACHE_VAL(cyrus_cv_pcre2_utf8, AC_TRY_CPP([#include -+#ifndef REG_UTF -+#include -+#endif],cyrus_cv_pcre2_utf8=yes,cyrus_cv_pcre2_utf8=no)) -+ AC_MSG_RESULT($cyrus_cv_pcre2_utf8) -+ else -+ cyrus_cv_pcre2_utf8="no" -+ fi -+fi -+ - LIB_REGEX= - if test "$cyrus_cv_pcre_utf8" = "yes"; then - LIB_REGEX="-lpcre -lpcreposix"; - AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) - AC_DEFINE(HAVE_PCREPOSIX_H, [], [Do we have usable pcre library?]) -+elif test "$cyrus_cv_pcre2_utf8" = "yes"; then -+ LIB_REGEX="-lpcre2-posix -lpcre2-8"; -+ AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) -+ AC_DEFINE(HAVE_PCRE2POSIX_H, [], [Do we have usable pcre2 library?]) - else - AC_CHECK_HEADERS(rxposix.h) - if test "$ac_cv_header_rxposix_h" = "yes"; then -@@ -2569,6 +2589,7 @@ External dependencies: - zlib: $with_zlib - jansson: $with_jansson - pcre: $cyrus_cv_pcre_utf8 -+ pcre2: $cyrus_cv_pcre2_utf8 - clamav: $with_clamav - ----------------------- - caringo: $with_caringo -diff --git a/docsrc/assets/cyrus-build-devpkg.rst b/docsrc/assets/cyrus-build-devpkg.rst -index cf3eaef1b3..5c0156bb64 100644 ---- a/docsrc/assets/cyrus-build-devpkg.rst -+++ b/docsrc/assets/cyrus-build-devpkg.rst -@@ -8,7 +8,7 @@ automated test facility. - debhelper flex g++ git gperf groff heimdal-dev libbsd-resource-perl libclone-perl libconfig-inifiles-perl \ - libcunit1-dev libdatetime-perl libbsd-dev libdigest-sha-perl libencode-imaputf7-perl \ libfile-chdir-perl libglib2.0-dev libical-dev libio-socket-inet6-perl \ - libio-stringy-perl libldap2-dev libmysqlclient-dev \ -- libnet-server-perl libnews-nntpclient-perl libpam0g-dev libpcre3-dev libsasl2-dev \ -+ libnet-server-perl libnews-nntpclient-perl libpam0g-dev libpcre2-dev libsasl2-dev \ - libsqlite3-dev libssl-dev libtest-unit-perl libtool libunix-syslog-perl liburi-perl \ - libxapian-dev libxml-generator-perl libxml-xpath-perl libxml2-dev libwrap0-dev libzephyr-dev lsb-base \ - net-tools perl php-cli php-curl pkg-config po-debconf tcl-dev \ -diff --git a/docsrc/assets/cyrus-build-reqpkg.rst b/docsrc/assets/cyrus-build-reqpkg.rst -index a3a530cc39..1c8bb45951 100644 ---- a/docsrc/assets/cyrus-build-reqpkg.rst -+++ b/docsrc/assets/cyrus-build-reqpkg.rst -@@ -2,6 +2,6 @@ - - sudo apt-get install git build-essential autoconf automake libtool \ - pkg-config bison flex libssl-dev libjansson-dev libxml2-dev \ -- libsqlite3-dev libical-dev libsasl2-dev libpcre3-dev uuid-dev \ -+ libsqlite3-dev libical-dev libsasl2-dev libpcre2-dev uuid-dev \ - libicu-dev - sudo apt-get -t jessie-backports install libxapian-dev -diff --git a/docsrc/imap/developer/compiling.rst b/docsrc/imap/developer/compiling.rst -index e05f3e43b1..2a351df5b1 100644 ---- a/docsrc/imap/developer/compiling.rst -+++ b/docsrc/imap/developer/compiling.rst -@@ -194,7 +194,7 @@ Other - to enable **ptloader** to interface with LDAP directly, for canonification - of login usernames to mailbox names, and verification of login usernames, - ACL subjects and group membership. Configure option: ``--with-ldap``." -- `pcre`_, libpcre3-dev, pcre-devel, "yes", "PCRE 1 (8.x) - for utf-8/unicode -+ `pcre2`_, libpcre2-dev, pcre2-devel, "yes", "PCRE 2 (10.x) - for utf-8/unicode - regular expression matching. Could be replaced by something else in the - future. See `issues/1731`_ for more information." - `perl(Term::ReadLine)`_,,, "no", "Perl library needed by **cyradm**." -@@ -219,6 +219,7 @@ Other - .. _nghttp2: https://nghttp2.org/ - .. _openldap: http://www.openldap.org/ - .. _pcre: http://www.pcre.org/ -+.. _pcre2: http://www.pcre.org/ - .. _perl(Term::ReadLine): https://metacpan.org/pod/Term::ReadLine - .. _perl(ExtUtils::MakeMaker): http://search.cpan.org/dist/ExtUtils-MakeMaker/ - .. _perl(Pod::POM::View::Restructured): https://metacpan.org/pod/Pod::POM::View::Restructured -diff --git a/docsrc/imap/download/upgrade.rst b/docsrc/imap/download/upgrade.rst -index 353a0114b8..09db9232b7 100644 ---- a/docsrc/imap/download/upgrade.rst -+++ b/docsrc/imap/download/upgrade.rst -@@ -223,7 +223,7 @@ packages) for Debian is:: - libcunit1-dev libdatetime-perl libdigest-sha-perl libencode-imaputf7-perl \ - libfile-chdir-perl libglib2.0-dev libical-dev libio-socket-inet6-perl \ - libio-stringy-perl libjansson-dev libldap2-dev libmysqlclient-dev \ -- libnet-server-perl libnews-nntpclient-perl libpam0g-dev libpcre3-dev \ -+ libnet-server-perl libnews-nntpclient-perl libpam0g-dev libpcre2-dev \ - libsasl2-dev libsqlite3-dev libssl-dev libtest-unit-perl libtool \ - libunix-syslog-perl liburi-perl libxapian-dev libxml-generator-perl \ - libxml-xpath-perl libxml2-dev libwrap0-dev libzephyr-dev lsb-base \ -diff --git a/imap/cyr_buildinfo.c b/imap/cyr_buildinfo.c -index 3d596c726a..a011101993 100644 ---- a/imap/cyr_buildinfo.c -+++ b/imap/cyr_buildinfo.c -@@ -202,6 +202,11 @@ static json_t *buildinfo() - #else - json_object_set_new(dependency, "pcre", json_false()); - #endif -+#if defined(ENABLE_REGEX) && defined(HAVE_PCRE2POSIX_H) -+ json_object_set_new(dependency, "pcre2", json_true()); -+#else -+ json_object_set_new(dependency, "pcre2", json_false()); -+#endif - #ifdef HAVE_CLAMAV - json_object_set_new(dependency, "clamav", json_true()); - #else -diff --git a/lib/util.h b/lib/util.h -index 7f7ab9f655..6cdd95a271 100644 ---- a/lib/util.h -+++ b/lib/util.h -@@ -71,17 +71,20 @@ - extern const char CYRUS_VERSION[]; - - #ifdef ENABLE_REGEX --# ifdef HAVE_PCREPOSIX_H -+# if defined HAVE_PCREPOSIX_H - # include - # include --# else /* !HAVE_PCREPOSIX_H */ --# ifdef HAVE_RXPOSIX_H --# include --# else /* !HAVE_RXPOSIX_H */ --# include --# endif /* HAVE_RXPOSIX_H */ --# endif /* HAVE_PCREPOSIX_H */ --#endif /* ENABLE_REGEX */ -+# elif defined HAVE_PCRE2POSIX_H -+# ifndef PCRE2POSIX_H_INCLUDED -+# include -+# define PCRE2POSIX_H_INCLUDED -+# endif -+# elif defined HAVE_RXPOSIX_H -+# include -+# else -+# include -+# endif -+#endif - - #ifdef HAVE_LIBUUID - #include -diff --git a/sieve/bc_eval.c b/sieve/bc_eval.c -index 17241e166f..67d39355fa 100644 ---- a/sieve/bc_eval.c -+++ b/sieve/bc_eval.c -@@ -321,9 +321,11 @@ static int regcomp_flags(int comparator, int requires) - { - int cflags = REG_EXTENDED; - --#ifdef HAVE_PCREPOSIX_H - /* support UTF8 comparisons */ -+#if defined HAVE_PCREPOSIX_H - cflags |= REG_UTF8; -+#elif defined HAVE_PCRE2POSIX_H -+ cflags |= REG_UTF; - #endif - - if (comparator == B_ASCIICASEMAP) { -diff --git a/sieve/comparator.h b/sieve/comparator.h -index b043bc296b..8c58bd1e73 100644 ---- a/sieve/comparator.h -+++ b/sieve/comparator.h -@@ -47,17 +47,20 @@ - #include - - #ifdef ENABLE_REGEX --# ifdef HAVE_PCREPOSIX_H -+# if defined HAVE_PCREPOSIX_H - # include - # include --# else /* !HAVE_PCREPOSIX_H */ --# ifdef HAVE_RXPOSIX_H --# include --# else /* !HAVE_RXPOSIX_H */ --# include --# endif /* HAVE_RXPOSIX_H */ --# endif /* HAVE_PCREPOSIX_H */ --#endif /* ENABLE_REGEX */ -+# elif defined HAVE_PCRE2POSIX_H -+# ifndef PCRE2POSIX_H_INCLUDED -+# include -+# define PCRE2POSIX_H_INCLUDED -+# endif -+# elif defined HAVE_RXPOSIX_H -+# include -+# else -+# include -+# endif -+#endif - - #include "sieve_interface.h" - #include "strarray.h" -diff --git a/sieve/sieve.y b/sieve/sieve.y -index 71aa503bd3..17adb65112 100644 ---- a/sieve/sieve.y -+++ b/sieve/sieve.y -@@ -2143,9 +2143,11 @@ static int verify_regexlist(sieve_script_t *sscript, - regex_t reg; - int cflags = REG_EXTENDED | REG_NOSUB; - --#ifdef HAVE_PCREPOSIX_H - /* support UTF8 comparisons */ -+#if defined HAVE_PCREPOSIX_H - cflags |= REG_UTF8; -+#elif defined HAVE_PCRE2POSIX_H -+ cflags |= REG_UTF; - #endif - - if (collation == B_ASCIICASEMAP) { - -From 7c7e1957d9a8074aa3dd7fe113cf551eadcb494f Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Mon, 13 Nov 2023 11:10:28 +1100 -Subject: [PATCH 2/5] configure.ac: tidy up sieve/pcre checks - ---- - configure.ac | 101 ++++++++++++++++++++++++++------------------------- - 1 file changed, 51 insertions(+), 50 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 6b9f6a7a7c..975925bebe 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -675,82 +675,83 @@ AM_CONDITIONAL([SQUATTER], - [test "${enable_squat}" != "no" -o "${enable_xapian}" != "no" ]) - - AC_ARG_ENABLE(sieve, -- [AS_HELP_STRING([--disable-sieve], [disable Sieve support])],,[enable_sieve="yes";]) --AC_ARG_ENABLE(pcre, -- [AS_HELP_STRING([--disable-pcre], [disable PCRE library])],[cyrus_cv_pcre_utf8="$enableval"]) --AC_ARG_ENABLE(pcre2, -- [AS_HELP_STRING([--disable-pcre2], [disable PCRE2 library])],[cyrus_cv_pcre2_utf8="$enableval"]) -+ [AS_HELP_STRING([--disable-sieve], [disable Sieve support])],,[enable_sieve="yes";]) - - if test "$enable_sieve" != "no"; then -- AC_DEFINE(USE_SIEVE,[],[Build in Sieve support?]) -+ AC_DEFINE(USE_SIEVE,[],[Build in Sieve support?]) - -- if test "x$HAVE_SQLITE" != x1; then -- AC_MSG_ERROR([Need sqlite3 for sieve]) -- else -- use_sqlite="yes" -- fi -+ if test "x$HAVE_SQLITE" != x1; then -+ AC_MSG_ERROR([Need sqlite3 for sieve]) -+ else -+ use_sqlite="yes" -+ fi - -- dnl Sieve configure stuff -- AC_PROG_YACC -- AM_PROG_LEX -+ dnl Sieve configure stuff -+ AC_PROG_YACC -+ AM_PROG_LEX - -- if test -z "$ac_cv_prog_YACC"; then -- AC_MSG_ERROR([Sieve requires bison/byacc/yacc, but none is installed]) -- fi -+ if test -z "$ac_cv_prog_YACC"; then -+ AC_MSG_ERROR([Sieve requires bison/byacc/yacc, but none is installed]) -+ fi - -- if test -z "$ac_cv_prog_LEX"; then -- AC_MSG_ERROR([Sieve requires flex/lex, but none is installed]) -- fi -+ if test -z "$ac_cv_prog_LEX"; then -+ AC_MSG_ERROR([Sieve requires flex/lex, but none is installed]) -+ fi - fi - - AM_CONDITIONAL([SIEVE], [test "${enable_sieve}" != "no"]) - -+AC_ARG_ENABLE(pcre, -+ [AS_HELP_STRING([--disable-pcre], [disable PCRE library])],[cyrus_cv_pcre_utf8="$enableval"]) -+AC_ARG_ENABLE(pcre2, -+ [AS_HELP_STRING([--disable-pcre2], [disable PCRE2 library])],[cyrus_cv_pcre2_utf8="$enableval"]) -+ - if test "$enable_pcre" != "no"; then -- AC_CHECK_HEADER(pcreposix.h) -- if test "$ac_cv_header_pcreposix_h" = "yes"; then -- AC_MSG_CHECKING(for utf8 enabled pcre) -- AC_CACHE_VAL(cyrus_cv_pcre_utf8, AC_TRY_CPP([#include -+ AC_CHECK_HEADER(pcreposix.h) -+ if test "$ac_cv_header_pcreposix_h" = "yes"; then -+ AC_MSG_CHECKING(for utf8 enabled pcre) -+ AC_CACHE_VAL(cyrus_cv_pcre_utf8, AC_TRY_CPP([#include - #ifndef REG_UTF8 - #include - #endif],cyrus_cv_pcre_utf8=yes,cyrus_cv_pcre_utf8=no)) -- AC_MSG_RESULT($cyrus_cv_pcre_utf8) -- else -- cyrus_cv_pcre_utf8="no" -- fi -+ AC_MSG_RESULT($cyrus_cv_pcre_utf8) -+ else -+ cyrus_cv_pcre_utf8="no" -+ fi - fi - - if test "$enable_pcre2" != "no"; then -- AC_CHECK_HEADER(pcre2posix.h) -- if test "$ac_cv_header_pcre2posix_h" = "yes"; then -- AC_MSG_CHECKING(for utf8 enabled pcre2) -- AC_CACHE_VAL(cyrus_cv_pcre2_utf8, AC_TRY_CPP([#include -+ AC_CHECK_HEADER(pcre2posix.h) -+ if test "$ac_cv_header_pcre2posix_h" = "yes"; then -+ AC_MSG_CHECKING(for utf8 enabled pcre2) -+ AC_CACHE_VAL(cyrus_cv_pcre2_utf8, AC_TRY_CPP([#include - #ifndef REG_UTF - #include - #endif],cyrus_cv_pcre2_utf8=yes,cyrus_cv_pcre2_utf8=no)) -- AC_MSG_RESULT($cyrus_cv_pcre2_utf8) -- else -- cyrus_cv_pcre2_utf8="no" -- fi -+ AC_MSG_RESULT($cyrus_cv_pcre2_utf8) -+ else -+ cyrus_cv_pcre2_utf8="no" -+ fi - fi - - LIB_REGEX= - if test "$cyrus_cv_pcre_utf8" = "yes"; then -- LIB_REGEX="-lpcre -lpcreposix"; -- AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) -- AC_DEFINE(HAVE_PCREPOSIX_H, [], [Do we have usable pcre library?]) -+ LIB_REGEX="-lpcre -lpcreposix"; -+ AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) -+ AC_DEFINE(HAVE_PCREPOSIX_H, [], [Do we have usable pcre library?]) - elif test "$cyrus_cv_pcre2_utf8" = "yes"; then -- LIB_REGEX="-lpcre2-posix -lpcre2-8"; -- AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) -- AC_DEFINE(HAVE_PCRE2POSIX_H, [], [Do we have usable pcre2 library?]) -+ LIB_REGEX="-lpcre2-posix -lpcre2-8"; -+ AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) -+ AC_DEFINE(HAVE_PCRE2POSIX_H, [], [Do we have usable pcre2 library?]) - else -- AC_CHECK_HEADERS(rxposix.h) -- if test "$ac_cv_header_rxposix_h" = "yes"; then -- LIB_REGEX="-lrx" -- AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) -- else -- AC_SEARCH_LIBS(regcomp, regex, -- AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]), []) -- fi -+ AC_CHECK_HEADERS(rxposix.h) -+ if test "$ac_cv_header_rxposix_h" = "yes"; then -+ LIB_REGEX="-lrx" -+ AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) -+ else -+ AC_SEARCH_LIBS(regcomp, regex, -+ AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]), []) -+ fi - fi - AC_SUBST(LIB_REGEX) - LIBS="$LIBS $LIB_REGEX" - -From b9002dba94eaa8a688df4f3c280db31a4eb77f69 Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Mon, 13 Nov 2023 11:32:13 +1100 -Subject: [PATCH 3/5] configure.ac: use pkg-config to find pcre/pcre2 - -Fixes #4711 ---- - configure.ac | 73 +++++++++++++++++++++++++++++++++++----------------- - 1 file changed, 49 insertions(+), 24 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 975925bebe..7fed07e129 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -707,42 +707,65 @@ AC_ARG_ENABLE(pcre2, - [AS_HELP_STRING([--disable-pcre2], [disable PCRE2 library])],[cyrus_cv_pcre2_utf8="$enableval"]) - - if test "$enable_pcre" != "no"; then -- AC_CHECK_HEADER(pcreposix.h) -- if test "$ac_cv_header_pcreposix_h" = "yes"; then -- AC_MSG_CHECKING(for utf8 enabled pcre) -- AC_CACHE_VAL(cyrus_cv_pcre_utf8, AC_TRY_CPP([#include --#ifndef REG_UTF8 --#include --#endif],cyrus_cv_pcre_utf8=yes,cyrus_cv_pcre_utf8=no)) -- AC_MSG_RESULT($cyrus_cv_pcre_utf8) -- else -- cyrus_cv_pcre_utf8="no" -- fi -+ PKG_CHECK_MODULES([PCRE], -+ [libpcreposix libpcre], -+ [ AC_MSG_CHECKING(for utf8 enabled pcre) -+ saved_CFLAGS="$CFLAGS" -+ saved_LIBS="$LIBS" -+ CFLAGS="$CFLAGS PCRE_CFLAGS" -+ LIBS="$LIBS PCRE_LIBS" -+ AC_CACHE_VAL(cyrus_cv_pcre_utf8, -+ AC_TRY_CPP([ #include -+ #ifndef REG_UTF8 -+ #include -+ #endif -+ ], -+ [cyrus_cv_pcre_utf8=yes], -+ [cyrus_cv_pcre_utf8=no])) -+ AC_MSG_RESULT($cyrus_cv_pcre_utf8) -+ CFLAGS="$saved_CFLAGS" -+ LIBS="$saved_LIBS" -+ ], -+ [cyrus_cv_pcre_utf8="no"]) - fi - - if test "$enable_pcre2" != "no"; then -- AC_CHECK_HEADER(pcre2posix.h) -- if test "$ac_cv_header_pcre2posix_h" = "yes"; then -- AC_MSG_CHECKING(for utf8 enabled pcre2) -- AC_CACHE_VAL(cyrus_cv_pcre2_utf8, AC_TRY_CPP([#include --#ifndef REG_UTF --#include --#endif],cyrus_cv_pcre2_utf8=yes,cyrus_cv_pcre2_utf8=no)) -- AC_MSG_RESULT($cyrus_cv_pcre2_utf8) -- else -- cyrus_cv_pcre2_utf8="no" -- fi -+ PKG_CHECK_MODULES([PCRE2], -+ [libpcre2-posix libpcre2-8], -+ [ AC_MSG_CHECKING(for utf8 enabled pcre2) -+ saved_CFLAGS="$CFLAGS" -+ saved_LIBS="$LIBS" -+ CFLAGS="$CFLAGS PCRE2_CFLAGS" -+ LIBS="$LIBS PCRE2_LIBS" -+ AC_CACHE_VAL(cyrus_cv_pcre2_utf8, -+ AC_TRY_CPP([ #include -+ #ifndef REG_UTF -+ #include -+ #endif -+ ], -+ [cyrus_cv_pcre2_utf8=yes], -+ [cyrus_cv_pcre2_utf8=no])) -+ AC_MSG_RESULT($cyrus_cv_pcre2_utf8) -+ CFLAGS="$saved_CFLAGS" -+ LIBS="$saved_LIBS" -+ ], -+ [cyrus_cv_pcre2_utf8="no"]) - fi - - LIB_REGEX= -+CFLAGS_REGEX= - if test "$cyrus_cv_pcre_utf8" = "yes"; then -- LIB_REGEX="-lpcre -lpcreposix"; -+ CFLAGS_REGEX="$PCRE_CFLAGS" -+ LIB_REGEX="$PCRE_LIBS"; - AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) - AC_DEFINE(HAVE_PCREPOSIX_H, [], [Do we have usable pcre library?]) -+ cyrus_cv_pcre2_utf8="no" - elif test "$cyrus_cv_pcre2_utf8" = "yes"; then -- LIB_REGEX="-lpcre2-posix -lpcre2-8"; -+ CFLAGS_REGEX="$PCRE2_CFLAGS" -+ LIB_REGEX="$PCRE2_LIBS" - AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) - AC_DEFINE(HAVE_PCRE2POSIX_H, [], [Do we have usable pcre2 library?]) -+ cyrus_cv_pcre_utf8="no" - else - AC_CHECK_HEADERS(rxposix.h) - if test "$ac_cv_header_rxposix_h" = "yes"; then -@@ -754,7 +777,9 @@ else - fi - fi - AC_SUBST(LIB_REGEX) -+AC_SUBST(CFLAGS_REGEX) - LIBS="$LIBS $LIB_REGEX" -+CFLAGS="$CFLAGS $CFLAGS_REGEX" - - dnl - dnl see if we're compiling with SRS - -From 3ff27055f73097123b7c1c8e3d83adc1f1c1f026 Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Mon, 13 Nov 2023 13:38:25 +1100 -Subject: [PATCH 4/5] configure.ac: prefer pcre2 if both available - ---- - configure.ac | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 7fed07e129..186b0f1872 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -754,18 +754,18 @@ fi - - LIB_REGEX= - CFLAGS_REGEX= --if test "$cyrus_cv_pcre_utf8" = "yes"; then -- CFLAGS_REGEX="$PCRE_CFLAGS" -- LIB_REGEX="$PCRE_LIBS"; -- AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) -- AC_DEFINE(HAVE_PCREPOSIX_H, [], [Do we have usable pcre library?]) -- cyrus_cv_pcre2_utf8="no" --elif test "$cyrus_cv_pcre2_utf8" = "yes"; then -+if test "$cyrus_cv_pcre2_utf8" = "yes"; then - CFLAGS_REGEX="$PCRE2_CFLAGS" - LIB_REGEX="$PCRE2_LIBS" - AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) - AC_DEFINE(HAVE_PCRE2POSIX_H, [], [Do we have usable pcre2 library?]) - cyrus_cv_pcre_utf8="no" -+elif test "$cyrus_cv_pcre_utf8" = "yes"; then -+ CFLAGS_REGEX="$PCRE_CFLAGS" -+ LIB_REGEX="$PCRE_LIBS"; -+ AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) -+ AC_DEFINE(HAVE_PCREPOSIX_H, [], [Do we have usable pcre library?]) -+ cyrus_cv_pcre2_utf8="no" - else - AC_CHECK_HEADERS(rxposix.h) - if test "$ac_cv_header_rxposix_h" = "yes"; then - -From 1dc08fef4805f74a0b4f51dd090337d8c75f9e10 Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Mon, 13 Nov 2023 14:15:33 +1100 -Subject: [PATCH 5/5] add changes file - ---- - changes/next/pcre2-support | 30 ++++++++++++++++++++++++++++++ - 1 file changed, 30 insertions(+) - create mode 100644 changes/next/pcre2-support - -diff --git a/changes/next/pcre2-support b/changes/next/pcre2-support -new file mode 100644 -index 0000000000..87ac924f94 ---- /dev/null -+++ b/changes/next/pcre2-support -@@ -0,0 +1,30 @@ -+Description: -+ -+Adds pcre2 support. Prefers pcre2 over pcre if both are available. -+ -+ -+Config changes: -+ -+None -+ -+ -+Upgrade instructions: -+ -+Cyrus will prefer pcre2 over pcre if both are installed. If you have both -+installed and wish to use pcre rather than pcre2, run configure with -+--disable-pcre2. -+ -+If you haven't specifically installed libpcre2-dev (or whatever your system's -+equivalent is), you might still have parts of pcre2 installed due to other -+packages on your system depending on it. This can confuse configure into -+thinking you have a usable pcre2 when you don't. Either properly install -+libpcre2-dev so Cyrus can use it, or configure Cyrus with --disable-pcre2 -+so that it ignores the partial installation. -+ -+Please note that on Debian-based systems, pcre (the old one, no longer -+maintained) is called "pcre3". Yes, this is confusing. -+ -+ -+GitHub issue: -+ -+#3861 #4711 -From 19f286ad8f2eda1cccb688edb7369050d92bb6c6 Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Wed, 22 Nov 2023 16:28:14 +1100 -Subject: [PATCH 1/4] Sieve: add bad regex case to badscript tests - ---- - cassandane/Cassandane/Cyrus/Sieve.pm | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/cassandane/Cassandane/Cyrus/Sieve.pm b/cassandane/Cassandane/Cyrus/Sieve.pm -index 2cd463f37f..0f0a3e66a6 100644 ---- a/cassandane/Cassandane/Cyrus/Sieve.pm -+++ b/cassandane/Cassandane/Cyrus/Sieve.pm -@@ -488,6 +488,16 @@ sub badscript_common - "require [\"fileinto\",\"copy\"];\nfileinto :copy \"foo\";\n"); - $self->assert_str_equals('success', $res); - -+ my $badregex1 = << 'EOF'; -+require ["regex"]; -+if header :regex "Subject" "Message (x)?(.*" { -+ stop; -+} -+EOF -+ ($res, $errs) = $self->compile_sieve_script('badregex1', $badregex1); -+ $self->assert_str_equals('failure', $res); -+ $self->assert_matches(qr/unbalanced/, $errs); -+ - # TODO: test UTF-8 verification of the string parameter - } - - -From 0395da350fdca0b8af57f01decc26d9ccc5375eb Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Wed, 22 Nov 2023 16:29:12 +1100 -Subject: [PATCH 2/4] sieve/sieve.y: fix pcre2 crash when regex_t uninitialised - -Fixes crash when trying to regfree() after regcomp() failure - -Seems like this usage was fine with the old pcreposix, but is a -problem with pcre2posix. ---- - sieve/sieve.y | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sieve/sieve.y b/sieve/sieve.y -index 17adb65112..908f2a4ed0 100644 ---- a/sieve/sieve.y -+++ b/sieve/sieve.y -@@ -2140,7 +2140,6 @@ static int verify_regexlist(sieve_script_t *sscript, - const strarray_t *sa, int collation) - { - int i, ret = 0; -- regex_t reg; - int cflags = REG_EXTENDED | REG_NOSUB; - - /* support UTF8 comparisons */ -@@ -2156,6 +2155,7 @@ static int verify_regexlist(sieve_script_t *sscript, - - for (i = 0 ; !ret && i < strarray_size(sa) ; i++) { - const char *s = strarray_nth(sa, i); -+ regex_t reg = {0}; - - /* Don't try to validate a regex that includes variables */ - if (supported(SIEVE_CAPA_VARIABLES) && strstr(s, "${")) continue; - -From eae2966b2198b4446a5f311cb6b25070dffa4335 Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Wed, 22 Nov 2023 16:50:52 +1100 -Subject: [PATCH 3/4] buf.testc: regcomp failure is fatal - ---- - cunit/buf.testc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/cunit/buf.testc b/cunit/buf.testc -index 19f52e8cb2..c88a54e8b0 100644 ---- a/cunit/buf.testc -+++ b/cunit/buf.testc -@@ -646,7 +646,7 @@ static void test_replace_all(void) - CU_ASSERT_STRING_EQUAL(b.s, _in); \ - \ - r = regcomp(&re, _reg, REG_EXTENDED); \ -- CU_ASSERT_EQUAL(r, 0); -+ CU_ASSERT_EQUAL_FATAL(r, 0); - #define TESTCASE_MIDDLE \ - n = buf_replace_one_re(&b, &re, _rep); - #define TESTCASE_END \ - -From ba43ab2462adca1a6f2dbfc54d967f02bd1dcb33 Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Wed, 22 Nov 2023 16:51:37 +1100 -Subject: [PATCH 4/4] glob: assert that regcomp succeeded - -instead of assuming it succeeded ---- - lib/glob.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/lib/glob.c b/lib/glob.c -index 06d5cb282b..89c45f0eae 100644 ---- a/lib/glob.c -+++ b/lib/glob.c -@@ -46,6 +46,7 @@ - #include - #include - #include -+#include - #include "util.h" - #include "glob.h" - #include "xmalloc.h" -@@ -58,6 +59,7 @@ - EXPORTED glob *glob_init(const char *str, char sep) - { - struct buf buf = BUF_INITIALIZER; -+ int r; - - buf_appendcstr(&buf, "(^"); - while (*str) { -@@ -109,7 +111,9 @@ EXPORTED glob *glob_init(const char *str, char sep) - buf_appendcstr(&buf, "]|$)"); - - glob *g = xmalloc(sizeof(glob)); -- regcomp(&g->regex, buf_cstring(&buf), REG_EXTENDED); -+ r = regcomp(&g->regex, buf_cstring(&buf), REG_EXTENDED); -+ /* XXX handle regex compilation failure properly! */ -+ assert(r == 0); - buf_free(&buf); - - return g; diff --git a/patch-cyrus-squatter-assert-crash b/patch-cyrus-squatter-assert-crash deleted file mode 100644 index c066d14..0000000 --- a/patch-cyrus-squatter-assert-crash +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/imap/squatter.c b/imap/squatter.c -index 6a7accf1b..0c2de4d7a 100644 ---- a/imap/squatter.c -+++ b/imap/squatter.c -@@ -427,8 +427,13 @@ static void expand_mboxnames(strarray_t *sa, int nmboxnames, - else { - /* Translate any separators in mailboxname */ - char *intname = mboxname_from_external(mboxnames[i], &squat_namespace, NULL); -- int flags = recursive_flag ? 0 : MBOXTREE_SKIP_CHILDREN; -- mboxlist_mboxtree(intname, addmbox, sa, flags); -+ if (!intname || *intname == '\0') { -+ fprintf(stderr, "Mailbox %s: %s\n", -+ mboxnames[i], error_message(IMAP_MAILBOX_BADNAME)); -+ } else { -+ int flags = recursive_flag ? 0 : MBOXTREE_SKIP_CHILDREN; -+ mboxlist_mboxtree(intname, addmbox, sa, flags); -+ } - free(intname); - } - diff --git a/sources b/sources index 7d71013..bac79d7 100644 --- a/sources +++ b/sources @@ -1,3 +1,2 @@ -SHA512 (cyrus-imapd-3.8.1.tar.gz) = 95473c7fbe0ccfae2b4f4dddd0448b33079c50848334054d9ce0489e74c70bc99c53f12ec3e46c9d8055480b31cc412896fc26a60ae2844cb8d7f61f9867caed -SHA512 (cyrus-imapd-3.8.1.tar.gz.sig) = 82ffa7791e643dc8ae38c763538a0d819708dc4cc18e0597f2de3c1e243adf6d27d4f41a7b96b5ffa4757ad5e206b4a494262d1936eca58d074355dd606db6f0 -SHA512 (cassandane-testdata-ca669d4b.tar.gz) = c153ab0a57d04d9deeabc5ef724eaecc05030c23b170abaa44eaea2e7df409efcdeb24871f7896759e85d64193fb9f289a470b0af9a593a740ffcc45c80033ff +SHA512 (cyrus-imapd-3.8.2.tar.gz) = 16319110ad4ad10700a4e08273a7411534b4b8fa5700eca09704d2079ef95a702520083b87ac47c71a9cb223372956465d14804fbdfc78b999bf519261827501 +SHA512 (cyrus-imapd-3.8.2.tar.gz.sig) = ef7cd4e85929e4b920aa322a1a28f1fd898635a0cb188dfbf5d7f7bcef13adc138877c48b1e86dbe8dd69e604732a749082e10e41b6d54283350892b063a2b3b From 17f4394a601e8644b2c44ad8f2bf0aab9f74f1c5 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Wed, 17 Apr 2024 10:52:13 +0200 Subject: [PATCH 28/49] Remove dependency on transfig package (rhbz#2274689) --- cyrus-imapd.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index d9e1761..8fb6c60 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -1,6 +1,6 @@ Name: cyrus-imapd Version: 3.8.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A high-performance email, contacts and calendar server License: BSD-Attribution-HPND-disclaimer URL: http://www.cyrusimap.org/ @@ -74,7 +74,7 @@ Patch92: patch-cassandane-fix-annotator Patch93: patch-cassandane-xapian-delve-path BuildRequires: autoconf automake bison flex gcc gcc-c++ git glibc-langpack-en -BuildRequires: groff libtool make pkgconfig rsync systemd transfig +BuildRequires: groff libtool make pkgconfig rsync systemd BuildRequires: perl-devel perl-generators perl(ExtUtils::MakeMaker) BuildRequires: perl(Pod::Html) %if 0%{?fedora} || 0%{?rhel} > 8 @@ -830,6 +830,9 @@ fi %changelog +* 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 From 29e8a4b74dcb3ae9bd09d6e987040085756540c0 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Mon, 27 May 2024 13:37:09 +0200 Subject: [PATCH 29/49] Fix broken imtest links (rhbz#2283375) --- cyrus-imapd.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 8fb6c60..74802aa 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -1,6 +1,6 @@ Name: cyrus-imapd Version: 3.8.2 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A high-performance email, contacts and calendar server License: BSD-Attribution-HPND-disclaimer URL: http://www.cyrusimap.org/ @@ -448,6 +448,10 @@ mv %buildroot/%_mandir/man8/httpd.8 %buildroot/%_mandir/man8/httpd.8cyrus # 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. @@ -830,6 +834,9 @@ fi %changelog +* 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) From 4fc0a4e86e86d70e3d46f83d5e02eaf38a0f750a Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Wed, 5 Jun 2024 09:14:32 +0200 Subject: [PATCH 30/49] Convert to %autorelease and %autochangelog [skip changelog] --- changelog | 1613 +++++++++++++++++++++++++++++++++++++++++++++ cyrus-imapd.spec | 1616 +--------------------------------------------- 2 files changed, 1615 insertions(+), 1614 deletions(-) create mode 100644 changelog 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/cyrus-imapd.spec b/cyrus-imapd.spec index 74802aa..a4b5a05 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -1,6 +1,6 @@ Name: cyrus-imapd Version: 3.8.2 -Release: 3%{?dist} +Release: %autorelease Summary: A high-performance email, contacts and calendar server License: BSD-Attribution-HPND-disclaimer URL: http://www.cyrusimap.org/ @@ -834,1616 +834,4 @@ fi %changelog -* 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 +%autochangelog From 2ba4b274b81423f115f671be4a803dcebab030e5 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Wed, 5 Jun 2024 09:17:58 +0200 Subject: [PATCH 31/49] Fix CVE-2024-34055 (rhbz#2290512) - Convert to %autorelease and %autochangelog --- .gitignore | 2 ++ cyrus-imapd.spec | 27 ++++++++++++++++++++++++--- sources | 4 ++-- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 1a32802..ef9e8db 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,5 @@ /cyrus-imapd-3.8.1.tar.gz.sig /cyrus-imapd-3.8.2.tar.gz /cyrus-imapd-3.8.2.tar.gz.sig +/cyrus-imapd-3.8.3.tar.gz +/cyrus-imapd-3.8.3.tar.gz.sig diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index a4b5a05..9275ac8 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -1,5 +1,5 @@ Name: cyrus-imapd -Version: 3.8.2 +Version: 3.8.3 Release: %autorelease Summary: A high-performance email, contacts and calendar server License: BSD-Attribution-HPND-disclaimer @@ -527,7 +527,7 @@ chown -R cyrus:mail . # --------------------------------------------------------- exclude=() tests=( - # This exclusion list was verified on 2024-03-27. + # This exclusion list was verified on 2024-06-05. # This tests coredumping and won't work on a machine where systemd # intercepts coredumps, which includes our builders. @@ -542,7 +542,6 @@ tests=( Cyrus::JMAPCore.eventsource Cyrus::JMAPEmail.email_query_no_guidsearch_ignore_jmapuploads Cyrus::JMAPEmail.email_query_seen_multimbox - Cyrus::JMAPEmail.email_query_unicodefdfx Cyrus::JMAPMailbox.mailbox_ignore_notes_subfolders Cyrus::JMAPMailbox.mailbox_set_create_specialuse_nochildren Cyrus::JMAPMailbox.mailbox_set_sharewith_acl @@ -550,6 +549,28 @@ tests=( Cyrus::SearchSquat.nonincremental Cyrus::SearchSquat.incremental Cyrus::SearchSquat.one_doc_per_message + + # The following fail only on f41 (f39,f40 pass) + # These time out: + Cyrus::Annotator.add_annot_deliver + Cyrus::Annotator.add_annot_splitconv + Cyrus::Annotator.add_annot_deliver_tomailbox + Cyrus::Annotator.add_annot_splitconv_rerun + Cyrus::Annotator.annotator_callout_disabled + Cyrus::Annotator.fetch_after_annotate + Cyrus::Annotator.reconstruct_after_delivery + Cyrus::Annotator.set_system_flag_deliver + Cyrus::Annotator.set_user_flag_deliver + Cyrus::Master.service_unix + # This unexpectedly ends with unsolicited response: + Cyrus::Idle.idled_default_timeout + # These end with 'BYE Fatal error: socket path too long' + Cyrus::MurderIMAP.frontend_commands + Cyrus::MurderIMAP.list_specialuse + Cyrus::MurderIMAP.move_to_backend_nonexistent + Cyrus::MurderIMAP.move_to_nonexistent + Cyrus::MurderIMAP.rename_with_location + Cyrus::MurderIMAP.xlist ) for i in ${tests[@]}; do exclude+=("!$i"); done diff --git a/sources b/sources index bac79d7..e33c6fc 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (cyrus-imapd-3.8.2.tar.gz) = 16319110ad4ad10700a4e08273a7411534b4b8fa5700eca09704d2079ef95a702520083b87ac47c71a9cb223372956465d14804fbdfc78b999bf519261827501 -SHA512 (cyrus-imapd-3.8.2.tar.gz.sig) = ef7cd4e85929e4b920aa322a1a28f1fd898635a0cb188dfbf5d7f7bcef13adc138877c48b1e86dbe8dd69e604732a749082e10e41b6d54283350892b063a2b3b +SHA512 (cyrus-imapd-3.8.3.tar.gz) = 6af60863ae2b8491bc36c74a760c080c94fa163851877976c33c43793409723660293ad469d1547e779d39b35a36c7c2d7ae7352260a9e8af18cb9f3fa566a1a +SHA512 (cyrus-imapd-3.8.3.tar.gz.sig) = f8bc7172b9f9f70bb3533efcd9f556c6b0c9a9c0e568b0585a0d8ba790ad57a732e918f12b5711c165d3ad806bd55d1ab52e396a91255f43a7da188be1a11c43 From 7124191fa5aea32e1a5d1b980c47eb7e2e12dd24 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Mon, 10 Jun 2024 17:39:39 +0200 Subject: [PATCH 32/49] Cassandane: do not depend on imaptest, clean up BuildRequires - Re-enable LTO --- cyrus-imapd.spec | 192 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 141 insertions(+), 51 deletions(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 9275ac8..1b44b5e 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -5,10 +5,6 @@ Summary: A high-performance email, contacts and calendar server License: BSD-Attribution-HPND-disclaimer URL: http://www.cyrusimap.org/ -# cyrus-imapd does not to support LTO -# https://github.com/cyrusimap/cyrus-imapd/pull/4679 -%define _lto_cflags %{nil} - # UID/GID 76 have long been reserved for Cyrus %define uid 76 %define gid 76 @@ -21,12 +17,11 @@ URL: http://www.cyrusimap.org/ %global __provides_exclude ^perl\\(AnnotateInlinedCIDs\\)$ -# Cassandane testsuite now called from separate CI test and no longer executed during build time: +# Cassandane testsuite is no longer executed during build time. It is called from separate CI test: # https://src.fedoraproject.org/tests/cyrus-imapd/blob/main/f/Sanity/cassandane -# CASSANDANE* and CASSANDANE*_END used for extracting commands needed for running the testsuite. -# Run: `rpmbuild '--with cassandane'` to enable it. -# Run: `echo '%%_with_cassandane 1' >> ~/.rpmmacros && dnf builddep rpmbuild/SPECS/cyrus-imapd.spec` -# to install cassandane dependencies. +# 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 locally: +# Run: `rpmbuild '--with cassandane'` or `echo '%%_with_cassandane 1' >> ~/.rpmmacros`. %bcond_with cassandane Source0: https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus-imapd-%version/cyrus-imapd-%version.tar.gz @@ -59,6 +54,11 @@ Patch2: patch-cyrus-rename-quota # https://bugzilla.redhat.com/show_bug.cgi?id=1668723 # https://github.com/cyrusimap/cyrus-imapd/issues/2629#issuecomment-456925909 Patch3: patch-cyrus-perl-linking +# 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 +Patch4: patch-cyrus-remove-always-inline-for-buf-len Patch5: patch-cyrus-rename-imtest # Cassandane patches: @@ -81,7 +81,7 @@ BuildRequires: perl(Pod::Html) BuildRequires: gnupg2 %endif -%if 0%{?fedora} && 0%{?fedora} >= 0 +%if 0%{?fedora} BuildRequires: clamav-devel shapelib-devel %endif BuildRequires: CUnit-devel cyrus-sasl-devel glib2-devel @@ -97,42 +97,120 @@ BuildRequires: systemd-rpm-macros %if %{with cassandane} # Additional packages required for cassandane to function -BuildRequires: imaptest net-tools words +BuildRequires: cpan dovecot-devel net-tools words BuildRequires: perl-interpreter -BuildRequires: perl(AnyEvent) perl(AnyEvent::Handle) perl(AnyEvent::Socket) -BuildRequires: perl(AnyEvent::Util) perl(attributes) perl(base) -BuildRequires: perl(BSD::Resource) perl(bytes) perl(Carp) perl(charnames) -BuildRequires: perl(Clone) perl(Config) perl(Config::IniFiles) perl(constant) -BuildRequires: perl(Cwd) perl(Data::Dumper) perl(DateTime) -BuildRequires: perl(DateTime::Format::ISO8601) perl(Digest::MD5) perl(Encode) -BuildRequires: perl(Errno) perl(experimental) perl(Exporter) -BuildRequires: perl(File::Basename) perl(File::chdir) perl(File::Find) -BuildRequires: perl(File::Path) perl(File::Slurp) perl(File::stat) -BuildRequires: perl(File::Temp) perl(Getopt::Long) perl(HTTP::Tiny) -BuildRequires: perl(IO::File) perl(IO::Handle) perl(IO::Scalar) -BuildRequires: perl(IO::Socket::INET) perl(IO::Socket::INET6) -BuildRequires: perl(IO::Socket::UNIX) perl(JSON) perl(JSON::XS) perl(lib) -BuildRequires: perl(Mail::IMAPTalk) perl(Mail::JMAPTalk) >= 0.11 -BuildRequires: perl(Math::Int64) perl(MIME::Base64) -BuildRequires: perl(Net::CalDAVTalk) >= 0.12 perl(Net::CardDAVTalk) >= 0.05 -BuildRequires: perl(Net::CardDAVTalk::VCard) perl(Net::DAVTalk) -BuildRequires: perl(Net::POP3) perl(Net::Server::PreForkSimple) -BuildRequires: perl(News::NNTPClient) perl(overload) -BuildRequires: perl(POSIX) perl(Scalar::Util) perl(Storable) perl(strict) -BuildRequires: perl(String::CRC32) perl(Sys::Hostname) perl(Sys::Syslog) -BuildRequires: perl(Test::Unit::Exception) perl(Test::Unit::Listener) -BuildRequires: perl(Test::Unit::Result) perl(Test::Unit::Runner) -BuildRequires: perl(Test::Unit::TestCase) perl(Test::Unit::TestRunner) -BuildRequires: perl(Time::HiRes) perl(URI) perl(URI::Escape) perl(User::pwent) -BuildRequires: perl(utf8) perl(vars) perl(warnings) perl(XML::DOM) -BuildRequires: perl(XML::Generator) perl(XML::Spice) -BuildRequires: clamav-data perl(Unix::Syslog) -BuildRequires: perl(HTTP::Daemon) perl(DBI) perl(Net::LDAP::Constant) -BuildRequires: perl(Net::LDAP::Server) +%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: cpan cld2-devel -BuildRequires: perl(Plack::Loader) perl(Test::TCP) perl(Data::GUID) perl(Digest::CRC) perl(Moo) perl(Types::Standard) +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::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 @@ -273,7 +351,7 @@ popd %build #autoreconf -vi -%if %{with cassandane} +%if %{with cassandane} && 0%{?fedora} # Needed for Cyrus::FastMail tests to pass export CLD2_CFLAGS="-I/usr/include/cld2" export CLD2_LIBS="-lcld2" @@ -284,7 +362,7 @@ export CLD2_LIBS="-lcld2" \ --libexecdir=%cyrexecdir \ --with-clamav \ -%if %{with cassandane} +%if %{with cassandane} && 0%{?fedora} `# Needed for Cyrus::FastMail tests to pass` \ --with-cld2 \ %endif @@ -333,7 +411,7 @@ make notifyd/notifytest # CASSANDANE_BUILD %if %{with cassandane} # This module is not available in Fedora: -yes | cpan IO::File::fcntl +yes | cpan -T IO::File::fcntl # This is the test suite, which doesn't build much but does verify its dependencies. pushd cassandane @@ -491,7 +569,7 @@ exit 0 # TODO: The mime_boundary_extended cunit test fails due to LTO on ppc64le, skip it for now: %ifnarch ppc64le -make -j%{?_smp_build_ncpus} check || exit 1 +LD_LIBRARY_PATH=%buildroot/%_libdir make -j%{?_smp_build_ncpus} check || exit 1 %endif # Cassandane cannot run solely as root because imap services would otherwise quit: @@ -517,9 +595,21 @@ dnf downgrade -y https://kojipkgs.fedoraproject.org//packages/perl-Mail-IMAPTalk # server components, but running it in a mock chroot is rather an exercise. pushd cassandane +# Do not depend on imaptest package (missing on RHEL10) +wget https://dovecot.org/nightly/imaptest/imaptest-20210511.tar.gz +rm -rf imaptest-src +mkdir imaptest-src +tar -xf imaptest-20210511.tar.gz --strip-components=1 -C imaptest-src +pushd imaptest-src +# 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 -s /usr/bin/imaptest imaptest/src -ln -s /usr/share/imaptest/tests imaptest/src +ln -sfr ./imaptest-src/src/imaptest imaptest/src +ln -sfr ./imaptest-src/src/tests imaptest/src chown -R cyrus:mail . @@ -527,7 +617,7 @@ chown -R cyrus:mail . # --------------------------------------------------------- exclude=() tests=( - # This exclusion list was verified on 2024-06-05. + # This exclusion list was verified on 2024-06-10. # This tests coredumping and won't work on a machine where systemd # intercepts coredumps, which includes our builders. @@ -542,6 +632,7 @@ tests=( Cyrus::JMAPCore.eventsource Cyrus::JMAPEmail.email_query_no_guidsearch_ignore_jmapuploads Cyrus::JMAPEmail.email_query_seen_multimbox + Cyrus::JMAPEmail.email_query_unicodefdfx Cyrus::JMAPMailbox.mailbox_ignore_notes_subfolders Cyrus::JMAPMailbox.mailbox_set_create_specialuse_nochildren Cyrus::JMAPMailbox.mailbox_set_sharewith_acl @@ -853,6 +944,5 @@ fi %{_mandir}/man3/Cyrus::IMAP::Shell.3pm* %{_mandir}/man3/Cyrus::SIEVE::managesieve.3pm* - %changelog %autochangelog From c609550ba86b4c277e85d15d9c545203c88bdd10 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Tue, 11 Jun 2024 06:21:50 +0200 Subject: [PATCH 33/49] Perl 5.40 rebuild From ed0770d28f7c2c559f1abc2027e14af0d0b6efd6 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 17 Jul 2024 20:26:49 +0000 Subject: [PATCH 34/49] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 978b5ce25f438e47bdc9614e47ed94e8aa42268d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 22 Oct 2024 16:53:21 +0100 Subject: [PATCH 35/49] Rebuild for Jansson 2.14 (https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/3PYINSQGKQ4BB25NQUI2A2UCGGLAG5ND/) From 9085a5dda208c18705b7cf4b90f508c8caa3622d Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Thu, 24 Oct 2024 21:23:58 -0600 Subject: [PATCH 36/49] Rebuild for clamav 1.4.1 From c8494b5a171ae72c0c3d5b8a18d2a2176a739a11 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Sun, 8 Dec 2024 22:08:58 +0000 Subject: [PATCH 37/49] Rebuild for ICU 76 From 32d115906fc201b63661e44f5f27e6767b2a0857 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 15:09:06 +0000 Subject: [PATCH 38/49] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From e188d2585e63960c56a87b4cb3fe226c7e85a1ec Mon Sep 17 00:00:00 2001 From: Nikita Sanjay Patwa Date: Mon, 27 Jan 2025 14:54:50 +0530 Subject: [PATCH 39/49] Corrected the declaration and defination of patch_doc_t and find_cb --- cyrus-imapd.spec | 1 + ...laration-initialization-of-functions.patch | 35 +++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 patch-cyrus-corrected-declaration-initialization-of-functions.patch diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 1b44b5e..8ea4ed3 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -72,6 +72,7 @@ Patch92: patch-cassandane-fix-annotator # try to get fixed the below upstream to work on Fedora: # https://github.com/cyrusimap/cyrus-imapd/commit/f10eee167313418d84e63d215310477d4fe68e94 Patch93: patch-cassandane-xapian-delve-path +Patch94: patch-cyrus-corrected-declaration-initialization-of-functions.patch BuildRequires: autoconf automake bison flex gcc gcc-c++ git glibc-langpack-en BuildRequires: groff libtool make pkgconfig rsync systemd diff --git a/patch-cyrus-corrected-declaration-initialization-of-functions.patch b/patch-cyrus-corrected-declaration-initialization-of-functions.patch new file mode 100644 index 0000000..f87fe6a --- /dev/null +++ b/patch-cyrus-corrected-declaration-initialization-of-functions.patch @@ -0,0 +1,35 @@ +diff --git a/imap/httpd.h b/imap/httpd.h +index 67279a9..c381b02 100644 +--- a/imap/httpd.h ++++ b/imap/httpd.h +@@ -280,7 +280,7 @@ struct range { + + struct patch_doc_t { + const char *format; /* MIME format of patch document */ +- int (*proc)(); /* Function to parse and apply doc */ ++ int (*proc)(struct transaction_t *, void *); /* Function to parse and apply doc */ + }; + + typedef int (*encode_proc_t)(struct transaction_t *txn, +diff --git a/imap/zoneinfo_db.c b/imap/zoneinfo_db.c +index 3be631c..92584d6 100644 +--- a/imap/zoneinfo_db.c ++++ b/imap/zoneinfo_db.c +@@ -243,7 +243,7 @@ struct findrock { + const char *find; + int tzid_only; + time_t changedsince; +- int (*proc)(); ++ int (*proc)(const char *, int, struct zoneinfo *, void *); + void *rock; + }; + +@@ -302,7 +302,7 @@ static int find_cb(void *rock, + } + + EXPORTED int zoneinfo_find(const char *find, int tzid_only, time_t changedsince, +- int (*proc)(), void *rock) ++ int (*proc)(const char *tzid, int tzidlen, struct zoneinfo *zi, void *rock), void *rock) + { + struct findrock frock; + From 234d299804fd6a6226a78bd148f849e45c3dfa19 Mon Sep 17 00:00:00 2001 From: Joe Orton Date: Wed, 15 Jan 2025 16:13:50 +0000 Subject: [PATCH 40/49] - enable the idled daemon in the default cyrus.conf --- patch-cyrus-default-configs | 43 +++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/patch-cyrus-default-configs b/patch-cyrus-default-configs index 31c3647..adc8d7d 100644 --- a/patch-cyrus-default-configs +++ b/patch-cyrus-default-configs @@ -1,7 +1,27 @@ -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/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 +-# http cmd="httpd" listen="http" prefork=3 +-# https cmd="httpd -s" listen="https" prefork=1 ++ http cmd="httpd" listen="http" prefork=3 ++ https cmd="httpd -s" listen="https" prefork=1 + + # at least one LMTP is required for delivery + # lmtp cmd="lmtpd" listen="lmtp" prefork=0 +@@ -51,5 +51,5 @@ EVENTS { + + DAEMON { + # this is only necessary if using idled for IMAP IDLE +-# idled cmd="idled" ++ idled cmd="idled" + } +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 ################################################################### @@ -88,18 +108,3 @@ index 95b54e9..3935b77 100644 # File containing the global certificate used for ALL services (imap, # pop3, lmtp, sieve) #tls_server_cert: /etc/ssl/certs/ssl-cert-snakeoil.pem -diff --git a/doc/examples/cyrus_conf/prefork.conf b/doc/examples/cyrus_conf/prefork.conf -index 186fe66..ab97848 100644 ---- a/doc/examples/cyrus_conf/prefork.conf -+++ b/doc/examples/cyrus_conf/prefork.conf -@@ -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 --# http cmd="httpd" listen="http" prefork=3 --# https cmd="httpd -s" listen="https" prefork=1 -+ http cmd="httpd" listen="http" prefork=3 -+ https cmd="httpd -s" listen="https" prefork=1 - - # at least one LMTP is required for delivery - # lmtp cmd="lmtpd" listen="lmtp" prefork=0 From c33ad39dd57fd12633eab7cbcd49209b9472fde0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 11 Feb 2025 14:36:23 +0100 Subject: [PATCH 41/49] Drop call to %sysusers_create_compat After https://fedoraproject.org/wiki/Changes/RPMSuportForSystemdSysusers, rpm will handle account creation automatically. --- cyrus-imapd.spec | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 8ea4ed3..3d285b2 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -214,9 +214,7 @@ BuildRequires: perl(Types::Standard) BuildRequires: perl(Unix::Syslog) %endif -Requires(pre): shadow-utils %{?systemd_requires} -%{?sysusers_requires_compat} Requires: cyrus-imapd-libs%{?_isa} = %{version}-%{release} Requires: cyrus-imapd-utils = %{version}-%{release} @@ -699,8 +697,6 @@ if [ -s "work/failed" ]; then fi -%pre -%sysusers_create_compat %{SOURCE19} %post %systemd_post cyrus-imapd.service From 0d1778b5d4648509cc58026012a17264f612fdc4 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Tue, 8 Jul 2025 14:25:18 +0200 Subject: [PATCH 42/49] Perl 5.42 rebuild From 0a4d6d316ab33b0a79a077bd296a252c4d8447b8 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 18:58:33 +0000 Subject: [PATCH 43/49] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From ec9a720aee76c875f007ea59d116598cfc6e0033 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Wed, 6 Aug 2025 09:52:54 +0200 Subject: [PATCH 44/49] Rebuilt for icu 77.1 From adaa75194466af2d6248ecdba317f7c8d03d9233 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Hrdina?= Date: Tue, 12 Aug 2025 09:50:44 +0200 Subject: [PATCH 45/49] Update of fmf plans --- ci.fmf | 1 + gating.yaml | 15 +++++++-------- plans.fmf | 35 +++++++++++++++++++++++++++++++++++ plans/all.fmf | 6 ------ 4 files changed, 43 insertions(+), 14 deletions(-) create mode 100644 ci.fmf create mode 100644 plans.fmf delete mode 100644 plans/all.fmf 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/gating.yaml b/gating.yaml index 1773d0c..8085288 100644 --- a/gating.yaml +++ b/gating.yaml @@ -1,26 +1,25 @@ --- !Policy product_versions: - fedora-* -decision_contexts: [bodhi_update_push_testing] +decision_context: bodhi_update_push_testing subject_type: koji_build rules: - - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional} -#gating rawhide +#Rawhide --- !Policy product_versions: - fedora-* -decision_contexts: [bodhi_update_push_stable] +decision_context: bodhi_update_push_stable subject_type: koji_build rules: - - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} - + - !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: baseos-ci.brew-build.tier1.functional} + - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-public.functional} - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-internal.functional} - - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/public.functional} 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/plans/all.fmf b/plans/all.fmf deleted file mode 100644 index 29b5c4f..0000000 --- a/plans/all.fmf +++ /dev/null @@ -1,6 +0,0 @@ -summary: Test plan with all Fedora tests -discover: - how: fmf - url: https://src.fedoraproject.org/tests/cyrus-imapd.git -execute: - how: tmt From cac73e1fb84517bbb79c5007c2823c834cfbaf17 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Mon, 24 Nov 2025 07:58:01 +0100 Subject: [PATCH 46/49] Remove sscg option --package from cyrus-imapd-init.service (rhbz#2416688) Ref: https://sgallagh.wordpress.com/2025/10/23/sscg-4-0-0-release-announcement/ --- cyrus-imapd-init.service | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cyrus-imapd-init.service b/cyrus-imapd-init.service index 10823b7..3cecdea 100644 --- a/cyrus-imapd-init.service +++ b/cyrus-imapd-init.service @@ -9,4 +9,4 @@ ConditionPathExists=!/etc/pki/cyrus-imapd/cyrus-imapd-ca.pem 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 --cert-key-mode=0640 +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 From 65b8e0d76b345303c0ee694300d4e6ac29d79382 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Fri, 12 Dec 2025 15:12:10 +0100 Subject: [PATCH 47/49] Create directory structure under /var using tmpfiles.d --- cyrus-imapd.spec | 4 ++-- cyrus-imapd.tmpfiles.conf | 5 ----- cyrus-imapd.sysusers => systemd-sysusers.conf | 0 systemd-tmpfiles.conf | 21 +++++++++++++++++++ 4 files changed, 23 insertions(+), 7 deletions(-) delete mode 100644 cyrus-imapd.tmpfiles.conf rename cyrus-imapd.sysusers => systemd-sysusers.conf (100%) create mode 100644 systemd-tmpfiles.conf diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 3d285b2..f0c70c7 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -36,8 +36,8 @@ Source14: cyrus-imapd.cron-daily Source15: README.rpm Source16: cyrus-imapd.service Source17: cyrus-imapd-init.service -Source18: cyrus-imapd.tmpfiles.conf -Source19: cyrus-imapd.sysusers +Source18: systemd-tmpfiles.conf +Source19: systemd-sysusers.conf # A template config file for cassandane; we will substitute in varions values. Source81: cassandane.ini 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/cyrus-imapd.sysusers b/systemd-sysusers.conf similarity index 100% rename from cyrus-imapd.sysusers rename to systemd-sysusers.conf 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 - From 45c38600d423179f10a0d349468f7e8f52318f22 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Fri, 12 Jul 2024 17:13:46 +0200 Subject: [PATCH 48/49] New version 3.12.1 (rhbz#2290535) Fix cassandane test failures --- .gitignore | 19 +- cassandane.ini | 9 +- cyrus-imapd.spec | 251 +++++++++--------- patch-cassandane-build-info.patch | 13 + patch-cassandane-no-syslog | 22 ++ patch-cassandane-xapian-delve-path | 15 -- ...laration-initialization-of-functions.patch | 35 --- patch-cyrus-perl-linking | 26 -- sources | 4 +- 9 files changed, 172 insertions(+), 222 deletions(-) create mode 100644 patch-cassandane-build-info.patch delete mode 100644 patch-cassandane-xapian-delve-path delete mode 100644 patch-cyrus-corrected-declaration-initialization-of-functions.patch delete mode 100644 patch-cyrus-perl-linking diff --git a/.gitignore b/.gitignore index ef9e8db..16a0be2 100644 --- a/.gitignore +++ b/.gitignore @@ -3,20 +3,5 @@ /.*.swp /results_cyrus-imapd/ /cyrus-imapd-*/ -/cassandane-testdata-ca669d4b.tar.gz -/cassandane-17d372f.tar.gz -/cyrus-imapd-3.2.4.tar.gz -/cassandane-8d3fced.tar.gz -/cyrus-imapd-3.2.6.tar.gz -/cyrus-imapd-3.4.3.tar.gz -/cyrus-imapd-3.4.4.tar.gz -/cyrus-imapd-3.6.0.tar.gz -/cyrus-imapd-3.6.0.tar.gz.sig -/cyrus-imapd-3.8.0.tar.gz -/cyrus-imapd-3.8.0.tar.gz.sig -/cyrus-imapd-3.8.1.tar.gz -/cyrus-imapd-3.8.1.tar.gz.sig -/cyrus-imapd-3.8.2.tar.gz -/cyrus-imapd-3.8.2.tar.gz.sig -/cyrus-imapd-3.8.3.tar.gz -/cyrus-imapd-3.8.3.tar.gz.sig +/cyrus-imapd-*.tar.gz +/cyrus-imapd-*.gz.sig diff --git a/cassandane.ini b/cassandane.ini index bbdb10c..ed9290e 100644 --- a/cassandane.ini +++ b/cassandane.ini @@ -4,6 +4,8 @@ # 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 @@ -35,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/cyrus-imapd.spec b/cyrus-imapd.spec index f0c70c7..00a68aa 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -1,10 +1,16 @@ +#%%global prever rc1 + Name: cyrus-imapd -Version: 3.8.3 -Release: %autorelease +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/ +# 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 %define gid 76 @@ -18,14 +24,20 @@ URL: http://www.cyrusimap.org/ %global __provides_exclude ^perl\\(AnnotateInlinedCIDs\\)$ # Cassandane testsuite is no longer executed during build time. It is called from separate CI test: -# https://src.fedoraproject.org/tests/cyrus-imapd/blob/main/f/Sanity/cassandane +# +# 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 locally: -# Run: `rpmbuild '--with cassandane'` or `echo '%%_with_cassandane 1' >> ~/.rpmmacros`. +# +# 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/cyrus-imapd-%version.tar.gz -Source1: https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus-imapd-%version/cyrus-imapd-%version.tar.gz.sig +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 @@ -49,17 +61,12 @@ 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 -# Workaround for some compiled Perl modules not being linked against -# libpcreposix, which causes them to fail to load. -# https://bugzilla.redhat.com/show_bug.cgi?id=1668723 -# https://github.com/cyrusimap/cyrus-imapd/issues/2629#issuecomment-456925909 -Patch3: patch-cyrus-perl-linking # 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 -Patch4: patch-cyrus-remove-always-inline-for-buf-len -Patch5: patch-cyrus-rename-imtest +Patch3: patch-cyrus-remove-always-inline-for-buf-len +Patch4: patch-cyrus-rename-imtest # Cassandane patches: # Prevent cassandane from trying to syslog things @@ -67,34 +74,28 @@ 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 Patch92: patch-cassandane-fix-annotator -# TODO libexec/cyrus-imapd path element got into upstream: -# https://github.com/cyrusimap/cyrus-imapd/commit/9233f70bf7a2872ab0b456ea294ce36e0e01e182 -# try to get fixed the below upstream to work on Fedora: -# https://github.com/cyrusimap/cyrus-imapd/commit/f10eee167313418d84e63d215310477d4fe68e94 -Patch93: patch-cassandane-xapian-delve-path -Patch94: patch-cyrus-corrected-declaration-initialization-of-functions.patch +# 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 pkgconfig rsync systemd -BuildRequires: perl-devel perl-generators perl(ExtUtils::MakeMaker) -BuildRequires: perl(Pod::Html) +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 0%{?fedora} -BuildRequires: clamav-devel shapelib-devel -%endif -BuildRequires: CUnit-devel cyrus-sasl-devel glib2-devel -BuildRequires: jansson-devel krb5-devel libical-devel libicu-devel -BuildRequires: libnghttp2-devel libxml2-devel mariadb-connector-c-devel net-snmp-devel -BuildRequires: openldap-devel openssl-devel pcre2-devel libpq-devel -BuildRequires: sqlite-devel xapian-core-devel - -# Miscellaneous modules needed for 'make check' to function: -BuildRequires: cyrus-sasl-plain cyrus-sasl-md5 - -BuildRequires: systemd-rpm-macros %if %{with cassandane} # Additional packages required for cassandane to function @@ -204,6 +205,7 @@ 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) @@ -239,7 +241,7 @@ 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. @@ -303,7 +305,7 @@ This package contains Perl libraries used to interface with Cyrus IMAPd. %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %endif -%autosetup -p1 +%autosetup -p1 -n cyrus-imapd-%{version}%{?prever:-%{prever}} # https://github.com/cyrusimap/cyrus-imapd/commit/216934c3f4884999206715db3499fc0162e1d65c echo %version > VERSION @@ -336,11 +338,10 @@ sed -i \ %if %{with cassandane} pushd cassandane -mkdir work cp %SOURCE81 cassandane.ini # RF rpm-buildroot-usage sed -i \ - -e "s!CASSDIR!$(pwd)!" \ + -e "s!CASSDIR!/tmp/cassandane!" \ -e "s!BUILDROOT!%buildroot!" \ cassandane.ini popd @@ -348,7 +349,7 @@ popd %build -#autoreconf -vi +autoreconf --verbose --force --install %if %{with cassandane} && 0%{?fedora} # Needed for Cyrus::FastMail tests to pass @@ -376,7 +377,6 @@ export CLD2_LIBS="-lcld2" --with-syslogfacility=MAIL \ \ --enable-autocreate \ - --enable-backup \ --enable-calalarmd \ --enable-http \ --enable-idled \ @@ -416,6 +416,52 @@ yes | cpan -T IO::File::fcntl 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 @@ -478,6 +524,7 @@ install -p -D -m 644 %{SOURCE19} %{buildroot}%{_sysusersdir}/cyrus-imapd.conf 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 @@ -501,15 +548,11 @@ find %buildroot/%_libdir/perl5/ -type f -name "*.so" -exec chmod 755 {} \; # 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 @@ -558,25 +601,27 @@ chmod -x %buildroot/%perl_vendorlib/Cyrus/Annotator/Daemon.pm %check +# 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 %{ix86} armv7hl -exit 0 -%endif - -# TODO: The mime_boundary_extended cunit test fails due to LTO on ppc64le, skip it for now: -%ifnarch ppc64le -LD_LIBRARY_PATH=%buildroot/%_libdir make -j%{?_smp_build_ncpus} check || exit 1 -%endif - -# Cassandane cannot run solely as root because imap services would otherwise quit: +# 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 \ @@ -585,38 +630,19 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v # 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 -# CASSANDANE -# TODO: Temporary workaround for missing mail::IMAPTalk methods. -# https://github.com/robmueller/mail-imaptalk/commit/0cf2624edca6fc0dd1cdc851a8710af928ba1f1e -dnf downgrade -y https://kojipkgs.fedoraproject.org//packages/perl-Mail-IMAPTalk/4.04/22.fc39/noarch/perl-Mail-IMAPTalk-4.04-22.fc39.noarch.rpm +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 -# Do not depend on imaptest package (missing on RHEL10) -wget https://dovecot.org/nightly/imaptest/imaptest-20210511.tar.gz -rm -rf imaptest-src -mkdir imaptest-src -tar -xf imaptest-20210511.tar.gz --strip-components=1 -C imaptest-src -pushd imaptest-src -# 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 - -chown -R cyrus:mail . - # Construct the set of excluded tests to pass to Cassandane # --------------------------------------------------------- exclude=() tests=( - # This exclusion list was verified on 2024-06-10. + # This exclusion list was verified on 2025-12-19. # This tests coredumping and won't work on a machine where systemd # intercepts coredumps, which includes our builders. @@ -624,43 +650,26 @@ tests=( # Can't currently be run at build time because of compiled-in paths. See # https://github.com/cyrusimap/cyrus-imapd/issues/2386 - Admin.imap_admins + Cyrus::Admin.imap_admins + Cyrus::Admin.imap_admins_virtdomains # TODO currently failing - Cyrus::Flags.userflags_crash - Cyrus::JMAPCore.eventsource - Cyrus::JMAPEmail.email_query_no_guidsearch_ignore_jmapuploads - Cyrus::JMAPEmail.email_query_seen_multimbox - Cyrus::JMAPEmail.email_query_unicodefdfx - Cyrus::JMAPMailbox.mailbox_ignore_notes_subfolders - Cyrus::JMAPMailbox.mailbox_set_create_specialuse_nochildren - Cyrus::JMAPMailbox.mailbox_set_sharewith_acl - Cyrus::JMAPSieve.getmetadata + 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 - - # The following fail only on f41 (f39,f40 pass) - # These time out: - Cyrus::Annotator.add_annot_deliver - Cyrus::Annotator.add_annot_splitconv - Cyrus::Annotator.add_annot_deliver_tomailbox - Cyrus::Annotator.add_annot_splitconv_rerun - Cyrus::Annotator.annotator_callout_disabled - Cyrus::Annotator.fetch_after_annotate - Cyrus::Annotator.reconstruct_after_delivery - Cyrus::Annotator.set_system_flag_deliver - Cyrus::Annotator.set_user_flag_deliver - Cyrus::Master.service_unix - # This unexpectedly ends with unsolicited response: - Cyrus::Idle.idled_default_timeout - # These end with 'BYE Fatal error: socket path too long' - Cyrus::MurderIMAP.frontend_commands - Cyrus::MurderIMAP.list_specialuse - Cyrus::MurderIMAP.move_to_backend_nonexistent - Cyrus::MurderIMAP.move_to_nonexistent - Cyrus::MurderIMAP.rename_with_location - Cyrus::MurderIMAP.xlist + Cyrus::Simple.sasl_ir ) for i in ${tests[@]}; do exclude+=("!$i"); done @@ -692,12 +701,11 @@ sudo -u cyrus -g mail LD_LIBRARY_PATH=%buildroot/%_libdir ./testrunner.pl -j%{?_ # CASSANDANE_END if [ -s "work/failed" ]; then - cat work/failed - exit 1 + cat work/failed + exit 1 fi - %post %systemd_post cyrus-imapd.service @@ -714,7 +722,6 @@ fi %{_sbindir}/arbitron %{_sbindir}/chk_cyrus -%{_sbindir}/ctl_backups %{_sbindir}/ctl_conversationsdb %{_sbindir}/ctl_cyrusdb %{_sbindir}/ctl_deliver @@ -722,7 +729,6 @@ fi %{_sbindir}/ctl_zoneinfo %{_sbindir}/cvt_cyrusdb %{_sbindir}/cvt_xlist_specialuse -%{_sbindir}/cyr_backup %{_sbindir}/cyr_buildinfo %{_sbindir}/cyr_cd.sh %{_sbindir}/cyr_dbtool @@ -734,9 +740,9 @@ fi %{_sbindir}/cyr_ls %{_sbindir}/cyr_pwd %{_sbindir}/cyr_quota -%{_sbindir}/cyr_restore %{_sbindir}/cyr_synclog %{_sbindir}/cyr_userseen +%{_sbindir}/cyr_withlock_run %{_sbindir}/cyrdump %{_sbindir}/dav_reconstruct %{_sbindir}/deliver @@ -759,11 +765,9 @@ fi %{_mandir}/man1/dav_reconstruct.1* %{_mandir}/man5/cyrus.conf.5* %{_mandir}/man5/imapd.conf.5* -%{_mandir}/man5/krb.equiv.5* %{_mandir}/man8/arbitron.8* -%{_mandir}/man8/backupd.8* +%{_mandir}/man8/calalarmd.8* %{_mandir}/man8/chk_cyrus.8* -%{_mandir}/man8/ctl_backups.8* %{_mandir}/man8/ctl_conversationsdb.8* %{_mandir}/man8/ctl_cyrusdb.8* %{_mandir}/man8/ctl_deliver.8* @@ -771,7 +775,6 @@ fi %{_mandir}/man8/ctl_zoneinfo.8* %{_mandir}/man8/cvt_cyrusdb.8* %{_mandir}/man8/cvt_xlist_specialuse.8* -%{_mandir}/man8/cyr_backup.8* %{_mandir}/man8/cyr_buildinfo.8* %{_mandir}/man8/cyr_dbtool.8* %{_mandir}/man8/cyr_deny.8* @@ -781,9 +784,9 @@ fi %{_mandir}/man8/cyr_info.8* %{_mandir}/man8/cyr_ls.8* %{_mandir}/man8/cyr_quota.8* -%{_mandir}/man8/cyr_restore.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* 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-no-syslog b/patch-cassandane-no-syslog index 556bdf4..a610726 100644 --- a/patch-cassandane-no-syslog +++ b/patch-cassandane-no-syslog @@ -55,3 +55,25 @@ index 20d3763..0238d82 100644 +{ + 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-xapian-delve-path b/patch-cassandane-xapian-delve-path deleted file mode 100644 index 2ca64eb..0000000 --- a/patch-cassandane-xapian-delve-path +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/cassandane/Cassandane/Instance.pm b/cassandane/Cassandane/Instance.pm -index 78e7100..edf6f5d 100644 ---- a/cassandane/Cassandane/Instance.pm -+++ b/cassandane/Cassandane/Instance.pm -@@ -492,9 +492,7 @@ sub _find_binary - my $base = $self->{cyrus_destdir} . $self->{cyrus_prefix}; - - if ($name eq 'delve') { -- my $lib = `ldd $base/libexec/imapd` || die "can't ldd imapd"; -- $lib =~ m{(/\S+)/lib/libxapian-([0-9.]+)\.so}; -- return "$1/bin/xapian-delve-$2"; -+ return "/bin/xapian-delve"; - } - - foreach (qw( bin sbin libexec libexec/cyrus-imapd lib cyrus/bin )) diff --git a/patch-cyrus-corrected-declaration-initialization-of-functions.patch b/patch-cyrus-corrected-declaration-initialization-of-functions.patch deleted file mode 100644 index f87fe6a..0000000 --- a/patch-cyrus-corrected-declaration-initialization-of-functions.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/imap/httpd.h b/imap/httpd.h -index 67279a9..c381b02 100644 ---- a/imap/httpd.h -+++ b/imap/httpd.h -@@ -280,7 +280,7 @@ struct range { - - struct patch_doc_t { - const char *format; /* MIME format of patch document */ -- int (*proc)(); /* Function to parse and apply doc */ -+ int (*proc)(struct transaction_t *, void *); /* Function to parse and apply doc */ - }; - - typedef int (*encode_proc_t)(struct transaction_t *txn, -diff --git a/imap/zoneinfo_db.c b/imap/zoneinfo_db.c -index 3be631c..92584d6 100644 ---- a/imap/zoneinfo_db.c -+++ b/imap/zoneinfo_db.c -@@ -243,7 +243,7 @@ struct findrock { - const char *find; - int tzid_only; - time_t changedsince; -- int (*proc)(); -+ int (*proc)(const char *, int, struct zoneinfo *, void *); - void *rock; - }; - -@@ -302,7 +302,7 @@ static int find_cb(void *rock, - } - - EXPORTED int zoneinfo_find(const char *find, int tzid_only, time_t changedsince, -- int (*proc)(), void *rock) -+ int (*proc)(const char *tzid, int tzidlen, struct zoneinfo *zi, void *rock), void *rock) - { - struct findrock frock; - diff --git a/patch-cyrus-perl-linking b/patch-cyrus-perl-linking deleted file mode 100644 index c8cbcfd..0000000 --- a/patch-cyrus-perl-linking +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/perl/sieve/managesieve/Makefile.PL.in b/perl/sieve/managesieve/Makefile.PL.in -index 7180b98..d589ebe 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@ @LIB_REGEX@ @ZLIB@ @SQLITE_LIBADD@ @MYSQL_LIBADD@ @PGSQL_LIBADD@"], -+ 'LIBS' => ["$LIB_SASL @SSL_LIBS@ @LIB_UUID@ @LIB_REGEX@ @ZLIB@ @SQLITE_LIBADD@ @MYSQL_LIBADD@ @PGSQL_LIBADD@ -lpcre2-posix"], - '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/perl/imap/Makefile.PL.in b/perl/imap/Makefile.PL.in -index 71416cc..f76cda6 100644 ---- a/perl/imap/Makefile.PL.in -+++ b/perl/imap/Makefile.PL.in -@@ -91,7 +91,7 @@ WriteMakefile( - 'LD' => $Config{ld} . ' @GCOV_LDFLAGS@', - 'OBJECT' => 'IMAP.o', - 'MYEXTLIB' => '@top_builddir@/perl/.libs/libcyrus.a @top_builddir@/perl/.libs/libcyrus_min.a', -- 'LIBS' => [ "$LIB_SASL @SSL_LIBS@ @LIB_UUID@ @ZLIB@ @GCOV_LIBS@ @LIBCAP_LIBS@"], -+ 'LIBS' => [ "$LIB_SASL @SSL_LIBS@ @LIB_UUID@ @ZLIB@ @GCOV_LIBS@ @LIBCAP_LIBS@ -lpcre2-posix"], - 'DEFINE' => '-DPERL_POLLUTE', # e.g., '-DHAVE_SOMETHING' - 'INC' => "-I@top_srcdir@ -I@top_srcdir@/com_err/et @SASLFLAGS@ @SSL_CPPFLAGS@ @GCOV_CFLAGS@ -I@top_srcdir@/perl/imap", - 'EXE_FILES' => [cyradm], diff --git a/sources b/sources index e33c6fc..c9b65e3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (cyrus-imapd-3.8.3.tar.gz) = 6af60863ae2b8491bc36c74a760c080c94fa163851877976c33c43793409723660293ad469d1547e779d39b35a36c7c2d7ae7352260a9e8af18cb9f3fa566a1a -SHA512 (cyrus-imapd-3.8.3.tar.gz.sig) = f8bc7172b9f9f70bb3533efcd9f556c6b0c9a9c0e568b0585a0d8ba790ad57a732e918f12b5711c165d3ad806bd55d1ab52e396a91255f43a7da188be1a11c43 +SHA512 (cyrus-imapd-3.12.1.tar.gz) = ec2727eb0567ebf978ff4db9e9086bc01fdc2739b6e06cad73cf74f9af990c30a70130aa2474d822d8ca078e1012a60179101de90845bf40f7a9b47a8b5e4d92 +SHA512 (cyrus-imapd-3.12.1.tar.gz.sig) = a548769b7443a179cbfeabd20fce113d94b9ccbf134aab3c6aa5197edcad41f1a73f1d28ba8e2b80046457053949344385ca68b22489d47721d4760e42cd4dd4 From 27c9e2b2436560e2759406f28b31b6644d1ffbd6 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Wed, 7 Jan 2026 14:50:23 +0100 Subject: [PATCH 49/49] Fix FTBFS due to gcc 16 on rawhide --- cyrus-imapd.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 00a68aa..b45d639 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -357,6 +357,9 @@ export CLD2_CFLAGS="-I/usr/include/cld2" export CLD2_LIBS="-lcld2" %endif +# C++17 or later needed for libicu-devel +export CXXFLAGS="%{optflags} -std=gnu++17" + %configure \ --disable-silent-rules \ \