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"