Compare commits

...
Sign in to create a new pull request.

1 commit

Author SHA1 Message Date
Martin Osvald
7d4ccb53c7 New version 3.6.4 2024-04-04 17:01:06 +02:00
8 changed files with 210 additions and 165 deletions

3
.gitignore vendored
View file

@ -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.6.4.tar.gz
/cyrus-imapd-3.6.4.tar.gz.sig

View file

@ -1,14 +1,13 @@
%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.
%bcond_with cassandane
Name: cyrus-imapd
Version: 3.6.0
Release: 3%{?dist}
Version: 3.6.4
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
@ -18,15 +17,34 @@ Release: 3%{?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
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
Source2: ellie-pub.key
Source10: cyrus-imapd.logrotate
Source11: cyrus-imapd.pam-config
Source12: cyrus-imapd.sysconfig
Source13: cyrus-imapd.magic
# XXX A systemd timer would probably be better
Source14: cyrus-imapd.cron-daily
Source15: README.rpm
Source16: cyrus-imapd.service
Source17: cyrus-imapd-init.service
Source18: cyrus-imapd.tmpfiles.conf
# A template config file for cassandane; we will substitute in varions values.
Source81: cassandane.ini
# Adapt a timeout to handle our slower builders
@ -45,42 +63,17 @@ Patch2: patch-cyrus-rename-quota
# 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
Source13: cyrus-imapd.magic
# XXX A systemd timer would probably be better
Source14: cyrus-imapd.cron-daily
Source15: README.rpm
Source16: cyrus-imapd.service
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/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.
# Cassandane patches:
# Prevent cassandane from trying to syslog things
Source91: patch-cassandane-no-syslog
Patch91: patch-cassandane-no-syslog
# Tell the annotator script to run as the current user/group
# Upstream ticket https://github.com/cyrusimap/cyrus-imapd/issues/1995
Source92: patch-cassandane-fix-annotator
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
Source93: patch-cassandane-xapian-delve-path
Patch93: patch-cassandane-xapian-delve-path
BuildRequires: autoconf automake bison flex gcc gcc-c++ git glibc-langpack-en
@ -88,7 +81,9 @@ 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
@ -137,15 +132,16 @@ 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)
# These were only for JMAP-Tester
# perl(Moo), perl(Moose), perl(MooseX::Role::Parameterized) perl(Throwable), perl(Safe::Isa)
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)
%endif
Requires(pre): shadow-utils
%{?systemd_requires}
Requires: %name-utils = %version-%release
Requires: cyrus-imapd-libs%{?_isa} = %{version}-%{release}
Requires: cyrus-imapd-utils = %{version}-%{release}
Requires: file sscg
%{?perl_default_filter}
@ -175,7 +171,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
@ -203,7 +199,8 @@ and the its utilities.
%package utils
Summary: Cyrus IMAP server administration utilities
Requires: cyrus-imapd = %{version}-%{release}
Requires: cyrus-imapd-libs%{?_isa} = %{version}-%{release}
Requires: perl-Cyrus = %{version}-%{release}
%description utils
The cyrus-imapd-utils package contains administrative tools for the
@ -213,6 +210,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
@ -231,34 +229,18 @@ 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
# 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
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
@ -295,33 +277,37 @@ sed -i \
# cyrus-imapd-*/tools/mkimap - fixed
# cyrus-imapd-*/tools/translatesieve - still contains shabang
%build
# This is the test suite, which doesn't build much but does verify its dependencies.
# If this is done after the configure call, the one thing it does build fails
# because the configure macro puts some hardening flags into the environment.
%if %{with cassandane}
pushd cassandane
export NOCYRUS=1
make
mkdir work
cp %SOURCE81 cassandane.ini
# RF rpm-buildroot-usage
sed -i \
-e "s!CASSDIR!$(pwd)!" \
-e "s!BUILDROOT!%buildroot!" \
cassandane.ini
popd
%endif
# Notes about configure options:
# --enable-objectstore
# It's experimental, and it doesn't appear that either openio or caringo are
# in Fedora.
# --with-cyrus-prefix and --with-service-path went away; use --with-libexecdir=
# instead.
# Needed because of Patch4.
autoreconf -vi
%build
#autoreconf -vi
%if %{with cassandane}
# Needed for Cyrus::FastMail tests to pass
export CLD2_CFLAGS="-I/usr/include/cld2"
export CLD2_LIBS="-lcld2"
%endif
%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 \
@ -341,8 +327,7 @@ autoreconf -vi
--enable-nntp \
--enable-replication \
--enable-unit-tests \
--enable-xapian \
#
--enable-xapian
# Try to get rid of RPATH....
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
@ -362,6 +347,19 @@ done
# 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
@ -490,22 +488,38 @@ 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 -j%{?_smp_build_ncpus} 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
# Set up shell and home directory for cyrus so that debugging of failing tests is easier.
getent passwd cyrus >/dev/null && /usr/sbin/usermod -s /bin/bash cyrus
getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /var/lib/imap -g %cyrusgroup \
-G saslauth -s /bin/bash -u %uid -r %cyrususer -m
# Set LD_LIBRARY_PATH for cyrus so that it points to cyrus-imapd libraries we just built.
[ -z "`grep LD_LIBRARY_PATH /var/lib/imap/.bashrc`" ] && echo "export LD_LIBRARY_PATH=%buildroot/%_libdir" >> /var/lib/imap/.bashrc
# 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.
pushd cassandane
@ -514,11 +528,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 2024-03-27.
# This tests coredumping and won't work on a machine where systemd
# intercepts coredumps, which includes our builders.
@ -528,21 +544,29 @@ tests=(
# https://github.com/cyrusimap/cyrus-imapd/issues/2386
Admin.imap_admins
Rename.intermediate_cleanup
# 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
# TODO currently failing
Cyrus::Flags.userflags_crash
Cyrus::JMAPCalendars.calendarevent_query_no_sched_inbox
Cyrus::SearchSquat.nonincremental
Cyrus::SearchSquat.incremental
Cyrus::SearchSquat.one_doc_per_message
)
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.search_deleted_folder"
"!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
@ -553,7 +577,13 @@ exclude+=("!Master.maxforkrate")
%endif
# Add -vvv for too much output
./testrunner.pl %{?_smp_mflags} -v -f pretty ${exclude[@]} 2>&1
sudo -u cyrus -g mail LD_LIBRARY_PATH=%buildroot/%_libdir ./testrunner.pl -j%{?_smp_build_ncpus} -v -f pretty ${exclude[@]} 2>&1 || :
# CASSANDANE_END
if [ -s "work/failed" ]; then
cat work/failed
exit 1
fi
%pre
@ -673,6 +703,9 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v
%changelog
* Thu Apr 04 2024 Martin Osvald <mosvald@redhat.com> - 3.6.4-1
- New version 3.6.4
* Sun Jan 22 2023 Orion Poplawski <orion@nwra.com> - 3.6.0-3
- Rebuild for clamav 1.0.0

17
ellie-pub.key Normal file
View file

@ -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-----

View file

@ -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(

View file

@ -1,26 +1,7 @@
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
--- 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/Cassandane/Util/Log.pm
+++ b/cassandane/Cassandane/Util/Log.pm
@@ -51,9 +51,6 @@ our @EXPORT = qw(
my $verbose = 0;
@ -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/cassandane/utils/syslog.c b/cassandane/utils/syslog.c
index 20d3763..0238d82 100644
--- a/cassandane/utils/syslog.c
+++ b/cassandane/utils/syslog.c
@@ -116,14 +116,28 @@ EXPORTED void syslog(int priority, const char *format, ...)
va_start(ap, format);
fake_vsyslog(priority, format, ap);
va_end(ap);
+}
+
+EXPORTED void
+__attribute__((format(printf, 3, 4)))
+__syslog_chk(int priority, int whatever __attribute__((unused)),
+ const char *format, ...)
+{
+ va_list ap;
va_start(ap, format);
- real_vsyslog(priority, format, ap);
+ fake_vsyslog(priority, format, ap);
va_end(ap);
}
EXPORTED void vsyslog(int priority, const char *format, va_list ap)
{
fake_vsyslog(priority, format, ap);
- real_vsyslog(priority, format, ap);
+}
+
+EXPORTED void
+__attribute__((format(printf, 3, 0)))
+__vsyslog_chk(int priority, int whatever __attribute__((unused)), const char *format, va_list ap)
+{
+ fake_vsyslog(priority, format, ap);
}

View file

@ -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};

View file

@ -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);
}

View file

@ -1,4 +1,2 @@
SHA512 (cyrus-imapd-3.6.0.tar.gz) = d2b21117e7d0dd93212a43ca42098dc8b59613cb45ed2287d381c8c363026ac29386dfd90f07fa2ce8a77f56dddd19f2cc5b80d9c60c400d65cbb1d52a8db93c
SHA512 (cyrus-imapd-3.6.0.tar.gz.sig) = 190cc2f1ec43ccd18500855346249dbb1aca834ced862dc601c7c5fd91e3f161a633166969da48b1c185e690b02c6e8c55e2cca06bf4e9bc0c110f2e086bdf5d
SHA512 (cassandane-testdata-ca669d4b.tar.gz) = c153ab0a57d04d9deeabc5ef724eaecc05030c23b170abaa44eaea2e7df409efcdeb24871f7896759e85d64193fb9f289a470b0af9a593a740ffcc45c80033ff
SHA512 (ellie-pub.key) = af6e01f004d57c3f68106a572a62ba8b340d5158e2877c27343bbbab32c23b6df5c4e88ac883dc64388aff276d4c317821ddf90c213a88a295a8e69be781c01c
SHA512 (cyrus-imapd-3.6.4.tar.gz) = 4bad368b894c7bc376e18734249c43d3ad8f50d691435cbd4f80411e86007abf343f40a41fc336e4f432cd8e073fddb07bc738a6ce231bd8282681f59bb8f25b
SHA512 (cyrus-imapd-3.6.4.tar.gz.sig) = f906569e2fe86677c3f3aebfdf8dea788dc48f437324033c426849e51ad041da9373075770733b0fde5a73e2d7cbb8ecbcb8d3f3be59616936f8b17d41f601a0