diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index e5d7b76..943d71b 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -2,14 +2,16 @@ # Cassandane commit hash. Cassandane doesn't have releases often, but it # receives constant development. This was fetched on 20180518. -%global cocas c8040fd9e3a3c9ec96a7b58ff8a0601756108d46 +%global cocas d58f71b2862d3994530c27ec8e396de661d6e4ac +%global cocas_short %(echo %{cocas} | cut -c -8) + # Cassandane run by default. '--without cassandane' disables. %bcond_without cassandane Name: cyrus-imapd -Version: 3.0.13 -Release: 13%{?dist} +Version: 3.2.3 +Release: 1%{?dist} %define ssl_pem_file_prefix /etc/pki/%name/%name @@ -40,9 +42,6 @@ Patch1: patch-cyrus-default-configs # place in the source must be patched to match. Patch2: patch-cyrus-rename-quota -# vzic uses an old makefile that needs hacks to use the proper flags -Patch3: patch-vzic-proper-cflags - # Workaround for some compiled Perl modules not being linked against # libpcreposix, which causes them to fail to load. @@ -50,9 +49,6 @@ Patch3: patch-vzic-proper-cflags # https://github.com/cyrusimap/cyrus-imapd/issues/2629#issuecomment-456925909 Patch4: patch-cyrus-perl-linking -## https://github.com/cyrusimap/cyrus-imapd/commit/33deacb14251389587d352fefd55079afec5ebcb.patch -Patch5: cyrus-imapd-certs.patch - Source10: cyrus-imapd.logrotate Source11: cyrus-imapd.pam-config Source12: cyrus-imapd.sysconfig @@ -65,7 +61,7 @@ Source17: cyrus-imapd-init.service Source18: cyrus-imapd.tmpfiles.conf # Source files for running the Cassandane test suite at build time. -Source80: https://github.com/cyrusimap/cassandane/archive/%cocas.tar.gz#/cassandane-%{scmt %cocas}.tar.gz +Source80: https://github.com/cyrusimap/cassandane/archive/%cocas/cassandane-${cocas_short}.tar.gz#/cassandane-%{scmt %cocas}.tar.gz # The CPAN version, and hence the Fedora-packaged version, of Net::CalDAVTalk # doesn't include the testdata directory. Cassandane can use it for testing @@ -137,6 +133,8 @@ 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) # These were only for JMAP-Tester # perl(Moo), perl(Moose), perl(MooseX::Role::Parameterized) perl(Throwable), perl(Safe::Isa) @@ -146,7 +144,7 @@ Requires(pre): shadow-utils %{?systemd_requires} Requires: %name-utils = %version-%release -Recommends: %name-vzic = %version-%release +Recommends: cyrus-timezones Requires: file sscg Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) @@ -225,27 +223,6 @@ Install this package if you wish to use the internal cyrus virus scanning utility. -%package vzic -Summary: Utilities to convert timezone database files -License: GPLv2+ -Requires: %name = %version-%release -# Contains a lightly forked version of vzic. This seems to have been bundled -# into various other things and it's old, so I'm not sure where the upstream -# is. Here are a couple of possible upstreams: -# https://github.com/libical/vzic -# https://sourceforge.net/projects/vzic/ -# It is probably a good idea to split it out and package it separately, but the -# code here definitely differs from that at the second link above. -Provides: bundled(vzic) = 1.3 - -%description vzic -vzic is a program to convert the Olson timezone database files into VTIMEZONE -files compatible with the iCalendar specification (RFC2445). - -This package contains a forked version of vzic for internal use by the Cyrus -IMAP server. - - %package -n perl-Cyrus Summary: Perl libraries for interfacing with Cyrus IMAPd @@ -254,7 +231,7 @@ This package contains Perl libraries used to interface with Cyrus IMAPd. %prep -%autosetup -p1 -S git +%autosetup -p1 echo %version > VERSION # Install the Fedora-specific documentation file @@ -298,7 +275,7 @@ sed -i \ snmp/snmpgen 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/config2man tools/mkimap tools/translatesieve + tools/mkimap tools/translatesieve %build @@ -371,10 +348,6 @@ done # This isn't built by default, but this package has always installed it. make notifyd/notifytest -# Also not built by default, but the tools are needed for serving timezone info -make -C tools/vzic - - %install make install DESTDIR=%buildroot @@ -406,10 +379,6 @@ for i in arbitronsort.pl masssievec mkimap mknewsgroups rehash translatesieve; d install -m 755 tools/$i %buildroot/%cyrexecdir/ done -for i in vzic vzic-test.pl vzic-merge.pl vzic-dump.pl; do - install -m 755 tools/vzic/$i %buildroot/%cyrexecdir/ -done - install -p -m 644 %SOURCE10 %buildroot/etc/logrotate.d/%name # PAM configuration files. @@ -709,11 +678,6 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v %_mandir/man8/cyr_virusscan.8* -%files vzic -# No license file is included with vzic -%cyrexecdir/vzic* - - %files -n perl-Cyrus %license COPYING %doc perl/imap/README @@ -726,6 +690,9 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v %changelog +* 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 diff --git a/patch-cassandane-fix-annotator b/patch-cassandane-fix-annotator index 1899ae0..406813e 100644 --- a/patch-cassandane-fix-annotator +++ b/patch-cassandane-fix-annotator @@ -1,14 +1,14 @@ diff --git a/utils/annotator.pl b/utils/annotator.pl -index 94b84a2..0208831 100755 +index 265c73f..8af3d58 100755 --- a/utils/annotator.pl +++ b/utils/annotator.pl @@ -140,6 +140,8 @@ GetOptions( xlog "annotator $$ starting"; Cassandane::AnnotatorDaemon->run( - pid_file => $pidfile, -- port => $port + pid_file => $pidfile, +- port => $port + port => $port, -+ user => (getpwuid($<))[0], -+ group => (getgrgid($())[0], ++ user => (getpwuid($<))[0], ++ group => (getgrgid($())[0], ); xlog "annotator $$ exiting"; diff --git a/patch-cassandane-no-syslog b/patch-cassandane-no-syslog index 67d30b3..059f9be 100644 --- a/patch-cassandane-no-syslog +++ b/patch-cassandane-no-syslog @@ -1,8 +1,8 @@ diff --git a/Cassandane/Util/Log.pm b/Cassandane/Util/Log.pm -index 9cd93d5..8d3b3c1 100644 +index 17d2cc7..11b747f 100644 --- a/Cassandane/Util/Log.pm +++ b/Cassandane/Util/Log.pm -@@ -52,16 +52,12 @@ our @EXPORT = qw( +@@ -51,9 +51,6 @@ our @EXPORT = qw( my $verbose = 0; @@ -11,9 +11,10 @@ index 9cd93d5..8d3b3c1 100644 - sub xlog { - my ($pkg, $file, $line) = caller; - $pkg =~ s/^Cassandane:://; - my $msg = "=====> " . $pkg . "[" . $line . "] " . join(' ', @_); + my $id; +@@ -70,7 +67,6 @@ sub xlog + $msg .= "($id) " if $id; + $msg .= join(' ', @_); print STDERR "$msg\n"; - syslog(LOG_ERR, "$msg"); } diff --git a/patch-cyrus-default-configs b/patch-cyrus-default-configs index 25edc3b..c59d61c 100644 --- a/patch-cyrus-default-configs +++ b/patch-cyrus-default-configs @@ -1,27 +1,3 @@ -diff --git a/doc/examples/cyrus_conf/prefork.conf b/doc/examples/cyrus_conf/prefork.conf -index 4ce2c0f..3b1e6d7 100644 ---- a/doc/examples/cyrus_conf/prefork.conf -+++ b/doc/examples/cyrus_conf/prefork.conf -@@ -19,15 +19,15 @@ SERVICES { - # 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 -- lmtpunix cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=1 -+ lmtpunix cmd="lmtpd" listen="/run/cyrus/socket/lmtp" prefork=1 - - # this is only necessary if using notifications --# notify cmd="notifyd" listen="/var/imap/socket/notify" proto="udp" prefork=1 -+# notify cmd="notifyd" listen="/run/cyrus/socket/notify" proto="udp" prefork=1 - } - - EVENTS { diff --git a/doc/examples/imapd_conf/normal.conf b/doc/examples/imapd_conf/normal.conf index 95b54e9..3935b77 100644 --- a/doc/examples/imapd_conf/normal.conf @@ -112,3 +88,18 @@ 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 diff --git a/patch-cyrus-perl-linking b/patch-cyrus-perl-linking index 71c8bd4..853d05f 100644 --- a/patch-cyrus-perl-linking +++ b/patch-cyrus-perl-linking @@ -1,26 +1,26 @@ -diff --git a/perl/imap/Makefile.PL.in b/perl/imap/Makefile.PL.in -index a0fda4a..df71c0c 100644 ---- a/perl/imap/Makefile.PL.in -+++ b/perl/imap/Makefile.PL.in -@@ -90,7 +90,7 @@ WriteMakefile( - 'clean' => {'FILES' => 'libcyrperl.a cyradm'}, - '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@"], -+ 'LIBS' => [ "$LIB_SASL @SSL_LIBS@ @LIB_UUID@ @ZLIB@ -lpcreposix"], - 'DEFINE' => '-DPERL_POLLUTE', # e.g., '-DHAVE_SOMETHING' - 'INC' => "-I@top_srcdir@ -I@top_srcdir@/com_err/et @SASLFLAGS@ @SSL_CPPFLAGS@ -I@top_srcdir@/perl/imap", - 'EXE_FILES' => [cyradm], diff --git a/perl/sieve/managesieve/Makefile.PL.in b/perl/sieve/managesieve/Makefile.PL.in -index 2a3415a..67fb2d1 100644 +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@ @ZLIB@ @SQLITE_LIBADD@ @MYSQL_LIBADD@ @PGSQL_LIBADD@"], -+ 'LIBS' => ["$LIB_SASL @SSL_LIBS@ @LIB_UUID@ @ZLIB@ @SQLITE_LIBADD@ @MYSQL_LIBADD@ @PGSQL_LIBADD@ -lpcreposix"], +- '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"], '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@ -lpcreposix"], + '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/patch-cyrus-rename-quota b/patch-cyrus-rename-quota index d994e29..8ee854e 100644 --- a/patch-cyrus-rename-quota +++ b/patch-cyrus-rename-quota @@ -1,8 +1,8 @@ diff --git a/imap/imapd.c b/imap/imapd.c -index 586c9ad..efe00fc 100644 +index 3cc75f5..a22a356 100644 --- a/imap/imapd.c +++ b/imap/imapd.c -@@ -7636,7 +7636,7 @@ static void cmd_reconstruct(const char *tag, const char *name, int recursive) +@@ -8022,7 +8022,7 @@ static void cmd_reconstruct(const char *tag, const char *name, int recursive) fclose(stdout); fclose(stderr); @@ -10,4 +10,4 @@ index 586c9ad..efe00fc 100644 + ret = snprintf(buf, sizeof(buf), "%s/cyr_quota", SBIN_DIR); if(ret < 0 || ret >= (int) sizeof(buf)) { /* in child, so fatailing won't disconnect our user */ - fatal("quota buffer not sufficiently big", EC_CONFIG); + fatal("quota buffer not sufficiently big", EX_CONFIG);