Package Base Details: cyrus-imapd

Git Clone URL: https://aur.archlinux.org/cyrus-imapd.git (read-only, click to copy)
Submitter: ryanc
Maintainer: J5lx
Last Packager: J5lx
Votes: 27
Popularity: 0.000716
First Submitted: 2007-10-14 08:22 (UTC)
Last Updated: 2024-03-24 14:57 (UTC)

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 .. 12 Next › Last »

pronet commented on 2020-08-17 17:18 (UTC) (edited on 2020-08-17 17:20 (UTC) by pronet)

You cannot use -d or it will fail. Did you install "downgrade" from AUR?

pronet commented on 2020-08-17 17:14 (UTC) (edited on 2020-08-17 17:16 (UTC) by pronet)

[cyrus-imapd]$ makepkg
==> Making package: cyrus-imapd 3.2.2-0 (Mon 17 Aug 2020 01:06:17 PM EDT)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Missing dependencies:
  -> python-sphinx<3
==> ERROR: Could not resolve all dependencies.
[cyrus-imapd]$ downgrade python-sphinx 
Available packages:

-   1)  python-sphinx    1.8.3  1  any  (remote)
-   2)  python-sphinx    1.8.4  1  any  (remote)
-   3)  python-sphinx    1.8.5  1  any  (remote)
-   4)  python-sphinx    2.0.1  1  any  (remote)
-   5)  python-sphinx    2.1.0  1  any  (remote)
-   6)  python-sphinx    2.1.1  1  any  (remote)
-   7)  python-sphinx    2.1.2  1  any  (remote)
-   8)  python-sphinx    2.2.0  1  any  (remote)
    9)  python-sphinx    2.2.0  2  any  (remote)
-  10)  python-sphinx    2.2.1  1  any  (remote)
-  11)  python-sphinx    2.2.1  2  any  (remote)
-  12)  python-sphinx    2.4.0  1  any  (remote)
-  13)  python-sphinx    2.4.1  1  any  (remote)
-  14)  python-sphinx    2.4.2  1  any  (remote)
-  15)  python-sphinx    2.4.3  1  any  (remote)
-  16)  python-sphinx    2.4.4  1  any  (remote)
-  17)  python-sphinx    3.0.0  1  any  (remote)
-  18)  python-sphinx    3.0.1  1  any  (remote)
   19)  python-sphinx    3.0.2  1  any  (remote)
   20)  python-sphinx    3.0.3  1  any  (remote)
   21)  python-sphinx    3.0.4  1  any  (remote)
-  22)  python-sphinx    3.1.0  1  any  (remote)
-  23)  python-sphinx    3.1.1  1  any  (remote)
-  24)  python-sphinx    3.1.2  1  any  (remote)
+  25)  python-sphinx    3.2.0  1  any  (remote)
+  26)  python-sphinx    3.2.0  1  any  (local)

select a package by number: 16
 python-sphinx-2.4.4-1-any                                                                         1711.5 KiB   787 KiB/s 00:02 [##############################################################################] 100%
 python-sphinx-2.4.4-1-any.sig                                                                      566.0   B  0.00   B/s 00:00 [##############################################################################] 100%
loading packages...
warning: downgrading package python-sphinx (3.2.0-1 => 2.4.4-1)
resolving dependencies...
looking for conflicting packages...

Packages (1) python-sphinx-2.4.4-1

Total Installed Size:  14.07 MiB
Net Upgrade Size:      -0.98 MiB

:: Proceed with installation? [Y/n] 
(1/1) checking keys in keyring                                                                                                  [##############################################################################] 100%
(1/1) checking package integrity                                                                                                [##############################################################################] 100%
(1/1) loading package files                                                                                                     [##############################################################################] 100%
(1/1) checking for file conflicts                                                                                               [##############################################################################] 100%
(1/1) checking available disk space                                                                                             [##############################################################################] 100%
:: Processing package changes...
(1/1) downgrading python-sphinx                                                                                                 [##############################################################################] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
add python-sphinx to IgnorePkg? [y/N] n
[cyrus-imapd]$ makepkg
==> Making package: cyrus-imapd 3.2.2-0 (Mon 17 Aug 2020 01:07:14 PM EDT)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Found cyrus-imapd-3.2.2.tar.gz
  -> Found cyrus-imapd-3.2.2.tar.gz.sig
  -> Found vzic-flags.patch
  -> Found imapd.conf.patch
  -> Found cyrus-imapd.service
  -> Found cyrus-imapd.sysusers.conf
  -> Found cyrus-imapd.tmpfiles.conf
  -> Updating cyrus-timezones git repo...
Fetching origin
==> Validating source files with sha512sums...

zork commented on 2020-08-17 17:00 (UTC)

python-sphinx-2 (from aur) does not satisfy python-sphinx<3 depenency:

[zork@black cyrus-imapd]$ makepkg
==> Making package: cyrus-imapd 3.2.2-0 (2020-08-17T18:38:58 CEST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Missing dependencies:
  -> python-sphinx<3
==> ERROR: Could not resolve all dependencies.

So I build with -d (after make sure that only python-sphinx is missing).

For 3.2.2 I got an error below:

make  install-data-hook
make[4]: Entering directory '/home/zork/aur/cyrus-imapd/src/cyrus-imapd-3.2.2'
make[4]: Nothing to be done for 'install-data-hook'.
make[4]: Leaving directory '/home/zork/aur/cyrus-imapd/src/cyrus-imapd-3.2.2'
make[3]: Leaving directory '/home/zork/aur/cyrus-imapd/src/cyrus-imapd-3.2.2'
make[2]: Leaving directory '/home/zork/aur/cyrus-imapd/src/cyrus-imapd-3.2.2'
Making install in perl/annotator
make[2]: Entering directory '/home/zork/aur/cyrus-imapd/src/cyrus-imapd-3.2.2/perl/annotator'
Manifying 2 pod documents
Installing /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/share/perl5/vendor_perl/Cyrus/Annotator/Daemon.pm
Installing /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/share/perl5/vendor_perl/Cyrus/Annotator/AnnotateInlinedCIDs.pm
Installing /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/share/perl5/vendor_perl/Cyrus/Annotator/Message.pm
Installing /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/share/man/man3/Cyrus::Annotator::Message.3pm
Installing /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/share/man/man3/Cyrus::Annotator::Daemon.3pm
Appending installation info to /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/lib/perl5/5.32/core_perl/perllocal.pod
make[2]: Leaving directory '/home/zork/aur/cyrus-imapd/src/cyrus-imapd-3.2.2/perl/annotator'
Making install in perl/imap
make[2]: Entering directory '/home/zork/aur/cyrus-imapd/src/cyrus-imapd-3.2.2/perl/imap'
Makefile:374: warning: ignoring prerequisites on suffix rule definition
Makefile:374: warning: ignoring prerequisites on suffix rule definition
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- IMAP.bs blib/arch/auto/Cyrus/IMAP/IMAP.bs 644
Manifying 1 pod document
Manifying 4 pod documents
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/lib/perl5/5.32/vendor_perl/auto/Cyrus/IMAP/IMAP.so
Installing /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/lib/perl5/5.32/vendor_perl/Cyrus/IMAP.pm
Installing /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/lib/perl5/5.32/vendor_perl/Cyrus/IMAP/Shell.pm
Installing /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/lib/perl5/5.32/vendor_perl/Cyrus/IMAP/Admin.pm
Installing /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/lib/perl5/5.32/vendor_perl/Cyrus/IMAP/IMSP.pm
Installing /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/share/man/man1/cyradm.1p
Installing /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/share/man/man3/Cyrus::IMAP::Shell.3pm
Installing /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/share/man/man3/Cyrus::IMAP.3pm
Installing /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/share/man/man3/Cyrus::IMAP::IMSP.3pm
Installing /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/share/man/man3/Cyrus::IMAP::Admin.3pm
Installing /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/bin/vendor_perl/cyradm
Appending installation info to /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/lib/perl5/5.32/core_perl/perllocal.pod
make[2]: Leaving directory '/home/zork/aur/cyrus-imapd/src/cyrus-imapd-3.2.2/perl/imap'
Making install in perl/sieve/managesieve
make[2]: Entering directory '/home/zork/aur/cyrus-imapd/src/cyrus-imapd-3.2.2/perl/sieve/managesieve'
Makefile:363: warning: ignoring prerequisites on suffix rule definition
Makefile:363: warning: ignoring prerequisites on suffix rule definition
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- managesieve.bs blib/arch/auto/Cyrus/SIEVE/managesieve/managesieve.bs 644
Manifying 1 pod document
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/lib/perl5/5.32/vendor_perl/auto/Cyrus/SIEVE/managesieve/managesieve.so
Installing /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/lib/perl5/5.32/vendor_perl/Cyrus/SIEVE/managesieve.pm
Installing /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/share/man/man3/Cyrus::SIEVE::managesieve.3pm
Appending installation info to /home/zork/aur/cyrus-imapd/pkg/cyrus-imapd/usr/lib/perl5/5.32/core_perl/perllocal.pod
make[2]: Leaving directory '/home/zork/aur/cyrus-imapd/src/cyrus-imapd-3.2.2/perl/sieve/managesieve'
make[1]: Leaving directory '/home/zork/aur/cyrus-imapd/src/cyrus-imapd-3.2.2'
/home/zork/aur/cyrus-imapd/PKGBUILD: line 91: perllocal.pod: command not found
==> ERROR: A failure occurred in package_cyrus-imapd().
    Aborting...

pronet commented on 2020-08-17 15:52 (UTC) (edited on 2020-08-17 15:53 (UTC) by pronet)

True. there should be python-sphinx-2 and python-sphinx-3 packages available to have both versions available on a system at the same time without version 3 removing version 2. This is just a quick workaround I did for the current situation.

pgoetz commented on 2020-08-17 15:41 (UTC) (edited on 2020-08-17 16:32 (UTC) by pgoetz)

Just a thought. All this might be considerably more manageable if the documentation (the part with the sphinx dependency) were split off into its own package. This is a fairly normal practice for various reasons.

pronet commented on 2020-08-17 15:35 (UTC) (edited on 2020-08-17 15:47 (UTC) by pronet)

You cannot use -d no deps because it builds a library from python-sphinx-2 that cyrus will use. Once the library is built you dont need to have python-sphinx-2 installed anymore. That is why it must be downgraded, build 3.2 and then you can go back to the current version of python-sphinx. This is the error you will get if python-sphinx-2 is not installed. Could not import extension sphinxlocal.builders.manpage (exception: cannot import name 'NoUri' from 'sphinx.environment'

The best way to do this is to download only cyrus-imap from arch with the download only option, and then replace the PKGBUILD file and build and install. If you dont do the download only you will just have to do two builds. The download only or regular build insure the additional files, such at vzic-flags.patch, etc. are downloaded.

Also here is the PKGBUILD to get 3.2.2.

pkgbase=cyrus-imapd
pkgname=(cyrus-imapd cyrus-imapd-docs)
pkgver=3.2.2
pkgrel=0
pkgdesc="An email, contacts and calendar server"
arch=('i686' 'x86_64' 'armv6h' 'armv7h')
url="https://www.cyrusimap.org/"
license=('BSD')
makedepends=('libsasl' 'icu' 'jansson' 'libical' 'libxml2' 'krb5' 'sqlite'
             'mariadb-libs' 'postgresql-libs' 'libnghttp2' 'brotli' 'shapelib'
             'libldap' 'libcap' 'net-snmp' 'xapian-core' 'perl' 'clamav' 'rsync'
             'python-sphinx<3' 'perl-pod-pom-view-restructured')
source=("https://github.com/cyrusimap/cyrus-imapd/releases/download/${pkgbase}-${pkgver}/${pkgbase}-${pkgver}.tar.gz"{,.sig}
        "vzic-flags.patch"
        "imapd.conf.patch"
        "cyrus-imapd.service"
        "cyrus-imapd.sysusers.conf"
        "cyrus-imapd.tmpfiles.conf"
        "git+https://github.com/cyrusimap/cyrus-timezones.git")
validpgpkeys=('5B55619A9D7040A9DEE2A2CB554F04FEB36378E0')
sha512sums=('SKIP'
            'SKIP'
            'ff1adb55abb059f0c022ae3e375c0a099278d69174bef712b85af40b00fa68a6d49604d09f80195a429ff842813e914557d7aff773231776cbbc5037164c180a'
            '0862ffc8c05208efd4d2fb50a6e3719ebc65fc2d72f8e6404235aa32cc44d8227056a17b78f2726e15ff8e38d473795f837c34bfbe89b694b2298c9baab9d5db'
            '738242e80cec2c25ae6a85a889cc8d35d7c2f43b2b4d64d74f99a230b21024f168a885f1e319aec1aab0e0599e41211478b99dc608a4ba036be90f8d7e23fd96'
            '28612e491371515b414ce6d34554f1c2286624f5b80872e6be7037a2cccba1ed5bd2c4bfed27ed978478debdfb5f3d56aaa30d767f50b125f2ad38e76a37702c'
            '70fedcd78f4e505038e2716a0446e7bb7f7a344faf2ab43c51f47380ff56a9c2407cfbe0f24c006618a901e44ff124a7f6ed19203478a6b852d7bda7771210c5'
            'SKIP')

prepare() { cd "${srcdir}/${pkgbase}-${pkgver}" cp -a "${srcdir}/cyrus-timezones/vzic" tools/ mv tools/vzic/Makefile.vzic tools/vzic/Makefile patch -Np1 < "${srcdir}/vzic-flags.patch" autoreconf }

build() { cd "${srcdir}/${pkgbase}-${pkgver}"

export PERL_MM_OPT="NO_PACKLIST=true" # Work around Cyrus bug #2629 export LDFLAGS="${LDFLAGS/,--as-needed}"

./configure \ --prefix=/usr \ --libexecdir=/usr/lib/cyrus \ --sysconfdir=/etc/cyrus \ --sbindir=/usr/bin \ --enable-xapian \ --enable-autocreate \ --enable-idled \ --enable-nntp \ --enable-murder \ --enable-http \ --enable-calalarmd \ --enable-replication \ --enable-backup \ --with-mysql=yes \ --with-pgsql=yes \ --with-ldap \ --with-pidfile=/run/cyrus-master.pid \ --with-syslogfacility=MAIL

make make -C tools/vzic }

check() { cd "${srcdir}/${pkgbase}-${pkgver}"

make check }

package_cyrus-imapd() { depends=('libsasl' 'icu' 'jansson' 'libical' 'libxml2' 'krb5' 'sqlite' 'mariadb-libs' 'postgresql-libs' 'libnghttp2' 'brotli' 'shapelib' 'libldap' 'libcap' 'net-snmp' 'xapian-core' 'perl') optdepends=('cyrus-imapd-docs: documentation' 'clamav: for cyr_virusscan' 'rsync: for compacting Xapian databases') provides=('imap-server' 'pop3-server') backup=('etc/cyrus/cyrus.conf' 'etc/cyrus/imapd.conf') install="${pkgname}.install"

cd "${srcdir}/${pkgbase}-${pkgver}"

make install INSTALLDIRS=vendor DESTDIR="${pkgdir}"

perllocal.pod is undesired in packages

eval local $(perl -V:installarchlib) rm "${pkgdir}/${installarchlib}/perllocal.pod" rmdir "${pkgdir}/${installarchlib}"

Rename httpd.8 and master.8 so they don't conflict with the identically

# named manpages from postfix and apache mv "${pkgdir}/usr/share/man/man8/httpd.8" \ "${pkgdir}/usr/share/man/man8/httpd.8cyrus" mv "${pkgdir}/usr/share/man/man8/master.8" \ "${pkgdir}/usr/share/man/man8/master.8cyrus"

Install additional utilities

for i in arbitronsort.pl masssievec mkimap mknewsgroups rehash \ translatesieve; do install -Dm755 "tools/${i}" "${pkgdir}/usr/bin/${i}" done # Vzic is needed to convert timezone information for CalDAV. Since Cyrus # includes a variant that has been modified for its own needs, we're # installing it under a different name to avoid conflicts install -Dm755 tools/vzic/vzic \ "${pkgdir}/usr/bin/cyrus-vzic" install -Dm755 tools/vzic/vzic-merge.pl \ "${pkgdir}/usr/bin/cyrus-vzic-merge.pl" # vzic-test.pl and vzic-dump.pl appear to be meant for development/testing

Install additional manpages

for i in arbitronsort.pl synctest dav_reconstruct; do install -Dm644 "man/${i}.1" "${pkgdir}/usr/share/man/man1/${i}.1" done for i in cvt_xlist_specialuse cyradm cyrdump cyr_sequence cyr_userseen \ lmtpproxyd masssievec mkimap mknewsgroups mupdate pop3proxyd proxyd \ ptdump ptexpire ptloader rehash sievec sieved translatesieve; do install -Dm644 "man/${i}.8" "${pkgdir}/usr/share/man/man8/${i}.8" done

Install configuration files

install -Dm644 doc/examples/cyrus_conf/normal.conf \ "${pkgdir}/etc/cyrus/cyrus.conf" install -Dm644 doc/examples/imapd_conf/normal.conf \ "${pkgdir}/etc/cyrus/imapd.conf" patch "${pkgdir}/etc/cyrus/imapd.conf" "${srcdir}/imapd.conf.patch" # Example cyrus.conf and imapd.conf use different socket paths, but they need # to match sed -i 's@/var/imap/socket/@/run/cyrus/socket/@' \ "${pkgdir}/etc/cyrus/cyrus.conf"

Install default directories

install -dm750 -o70 -gmail \ "${pkgdir}/var/lib/cyrus" \ "${pkgdir}/var/spool/cyrus" \ "${pkgdir}/var/spool/sieve"

Install system files

install -Dm644 "${srcdir}/cyrus-imapd.service" \ "${pkgdir}/usr/lib/systemd/system/cyrus-imapd.service" install -Dm644 "${srcdir}/cyrus-imapd.sysusers.conf" \ "${pkgdir}/usr/lib/sysusers.d/cyrus-imapd.conf" install -Dm644 "${srcdir}/cyrus-imapd.tmpfiles.conf" \ "${pkgdir}/usr/lib/tmpfiles.d/cyrus-imapd.conf"

Install Documentation

install -Dm644 -t "${pkgdir}/usr/share/doc/cyrus-imapd/" \ README.md doc/README.* cp -r doc/examples "${pkgdir}/usr/share/doc/cyrus-imapd/examples"

install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" }

package_cyrus-imapd-docs() { pkgdesc="Documentation for the Cyrus IMAP server" arch=('any')

cd "${srcdir}/${pkgbase}-${pkgver}"

install -dm755 "${pkgdir}/usr/share/doc/cyrus-imapd" cp -r doc/html doc/internal doc/legacy doc/text \ "${pkgdir}/usr/share/doc/cyrus-imapd"

install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" }

pronet commented on 2020-08-17 15:10 (UTC)

zork - What do you mean by "I had no luck with 3.2 and PKGBUILD in comment below"? Did you get build errors and what were they?

zork commented on 2020-08-17 08:40 (UTC) (edited on 2020-08-17 08:41 (UTC) by zork)

Yesterday I just installed 3.0.13 from this PKGBUILD. I had to install python-sphinx-2 from AUR and run makepkg with -d (nodeps) to satisfy python-sphinx<3 dependency.

Maybe it would be better to add dependency on python-sphinx-2 until cyrus fixes problems with version 3?

I had no luck with 3.2 and PKGBUILD in comment below.

pronet commented on 2020-06-17 17:25 (UTC) (edited on 2020-06-17 17:58 (UTC) by pronet)

If you want cyrus-imap-3.2.1 downgrade python-sphinx to 2.4.4.

After the install of 3.2.1 you can re-upgrade python-sphinx.

This also fixes the issue with sieveshell crashing

Replace the PKGBUILD with:

pkgbase=cyrus-imapd
pkgname=(cyrus-imapd cyrus-imapd-docs)
pkgver=3.2.1
pkgrel=0
pkgdesc="An email, contacts and calendar server"
arch=('i686' 'x86_64' 'armv6h' 'armv7h')
url="https://www.cyrusimap.org/"
license=('BSD')
makedepends=('libsasl' 'icu' 'jansson' 'libical' 'libxml2' 'krb5' 'sqlite'
             'mariadb-libs' 'postgresql-libs' 'libnghttp2' 'brotli' 'shapelib'
             'libldap' 'libcap' 'net-snmp' 'xapian-core' 'perl' 'clamav' 'rsync'
             'python-sphinx<3' 'perl-pod-pom-view-restructured')
source=("https://github.com/cyrusimap/cyrus-imapd/releases/download/${pkgbase}-${pkgver}/${pkgbase}-${pkgver}.tar.gz"{,.sig}
        "vzic-flags.patch"
        "imapd.conf.patch"
        "cyrus-imapd.service"
        "cyrus-imapd.sysusers.conf"
        "cyrus-imapd.tmpfiles.conf"
        "git+https://github.com/cyrusimap/cyrus-timezones.git")
validpgpkeys=('5B55619A9D7040A9DEE2A2CB554F04FEB36378E0')
sha512sums=('8a4c2690fbcd064beb20affee6b074211f05f9d2fa752381eb21cf5597ff09357c781ac92162f1eed7d697a19c804560cc3ae87413d9d7b1a31b57298342a60b'
            'SKIP'
            'ff1adb55abb059f0c022ae3e375c0a099278d69174bef712b85af40b00fa68a6d49604d09f80195a429ff842813e914557d7aff773231776cbbc5037164c180a'
            '0862ffc8c05208efd4d2fb50a6e3719ebc65fc2d72f8e6404235aa32cc44d8227056a17b78f2726e15ff8e38d473795f837c34bfbe89b694b2298c9baab9d5db'
            '738242e80cec2c25ae6a85a889cc8d35d7c2f43b2b4d64d74f99a230b21024f168a885f1e319aec1aab0e0599e41211478b99dc608a4ba036be90f8d7e23fd96'
            '28612e491371515b414ce6d34554f1c2286624f5b80872e6be7037a2cccba1ed5bd2c4bfed27ed978478debdfb5f3d56aaa30d767f50b125f2ad38e76a37702c'
            '70fedcd78f4e505038e2716a0446e7bb7f7a344faf2ab43c51f47380ff56a9c2407cfbe0f24c006618a901e44ff124a7f6ed19203478a6b852d7bda7771210c5'
            'SKIP')

prepare() { cd "${srcdir}/${pkgbase}-${pkgver}" cp -a "${srcdir}/cyrus-timezones/vzic" tools/ mv tools/vzic/Makefile.vzic tools/vzic/Makefile patch -Np1 < "${srcdir}/vzic-flags.patch" autoreconf }

build() { cd "${srcdir}/${pkgbase}-${pkgver}"

export PERL_MM_OPT="NO_PACKLIST=true" # Work around Cyrus bug #2629 export LDFLAGS="${LDFLAGS/,--as-needed}"

./configure \ --prefix=/usr \ --libexecdir=/usr/lib/cyrus \ --sysconfdir=/etc/cyrus \ --sbindir=/usr/bin \ --enable-xapian \ --enable-autocreate \ --enable-idled \ --enable-nntp \ --enable-murder \ --enable-http \ --enable-calalarmd \ --enable-replication \ --enable-backup \ --with-mysql=yes \ --with-pgsql=yes \ --with-ldap \ --with-pidfile=/run/cyrus-master.pid \ --with-syslogfacility=MAIL

make make -C tools/vzic }

check() { cd "${srcdir}/${pkgbase}-${pkgver}"

make check }

package_cyrus-imapd() { depends=('libsasl' 'icu' 'jansson' 'libical' 'libxml2' 'krb5' 'sqlite' 'mariadb-libs' 'postgresql-libs' 'libnghttp2' 'brotli' 'shapelib' 'libldap' 'libcap' 'net-snmp' 'xapian-core' 'perl') optdepends=('cyrus-imapd-docs: documentation' 'clamav: for cyr_virusscan' 'rsync: for compacting Xapian databases') provides=('imap-server' 'pop3-server') backup=('etc/cyrus/cyrus.conf' 'etc/cyrus/imapd.conf') install="${pkgname}.install"

cd "${srcdir}/${pkgbase}-${pkgver}"

make install INSTALLDIRS=vendor DESTDIR="${pkgdir}"

# perllocal.pod is undesired in packages eval local $(perl -V:installarchlib) rm "${pkgdir}/${installarchlib}/perllocal.pod" rmdir "${pkgdir}/${installarchlib}"

# Rename httpd.8 and master.8 so they don't conflict with the identically # named manpages from postfix and apache mv "${pkgdir}/usr/share/man/man8/httpd.8" \ "${pkgdir}/usr/share/man/man8/httpd.8cyrus" mv "${pkgdir}/usr/share/man/man8/master.8" \ "${pkgdir}/usr/share/man/man8/master.8cyrus"

# Install additional utilities for i in arbitronsort.pl masssievec mkimap mknewsgroups rehash \ translatesieve; do install -Dm755 "tools/${i}" "${pkgdir}/usr/bin/${i}" done # Vzic is needed to convert timezone information for CalDAV. Since Cyrus # includes a variant that has been modified for its own needs, we're # installing it under a different name to avoid conflicts install -Dm755 tools/vzic/vzic \ "${pkgdir}/usr/bin/cyrus-vzic" install -Dm755 tools/vzic/vzic-merge.pl \ "${pkgdir}/usr/bin/cyrus-vzic-merge.pl" # vzic-test.pl and vzic-dump.pl appear to be meant for development/testing

# Install additional manpages for i in arbitronsort.pl synctest dav_reconstruct; do install -Dm644 "man/${i}.1" "${pkgdir}/usr/share/man/man1/${i}.1" done for i in cvt_xlist_specialuse cyradm cyrdump cyr_sequence cyr_userseen \ lmtpproxyd masssievec mkimap mknewsgroups mupdate pop3proxyd proxyd \ ptdump ptexpire ptloader rehash sievec sieved translatesieve; do install -Dm644 "man/${i}.8" "${pkgdir}/usr/share/man/man8/${i}.8" done

# Install configuration files install -Dm644 doc/examples/cyrus_conf/normal.conf \ "${pkgdir}/etc/cyrus/cyrus.conf" install -Dm644 doc/examples/imapd_conf/normal.conf \ "${pkgdir}/etc/cyrus/imapd.conf" patch "${pkgdir}/etc/cyrus/imapd.conf" "${srcdir}/imapd.conf.patch" # Example cyrus.conf and imapd.conf use different socket paths, but they need # to match sed -i 's@/var/imap/socket/@/run/cyrus/socket/@' \ "${pkgdir}/etc/cyrus/cyrus.conf"

# Install default directories install -dm750 -o70 -gmail \ "${pkgdir}/var/lib/cyrus" \ "${pkgdir}/var/spool/cyrus" \ "${pkgdir}/var/spool/sieve"

# Install system files install -Dm644 "${srcdir}/cyrus-imapd.service" \ "${pkgdir}/usr/lib/systemd/system/cyrus-imapd.service" install -Dm644 "${srcdir}/cyrus-imapd.sysusers.conf" \ "${pkgdir}/usr/lib/sysusers.d/cyrus-imapd.conf" install -Dm644 "${srcdir}/cyrus-imapd.tmpfiles.conf" \ "${pkgdir}/usr/lib/tmpfiles.d/cyrus-imapd.conf"

# Install Documentation install -Dm644 -t "${pkgdir}/usr/share/doc/cyrus-imapd/" \ README.md doc/README.* cp -r doc/examples "${pkgdir}/usr/share/doc/cyrus-imapd/examples"

install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" }

package_cyrus-imapd-docs() { pkgdesc="Documentation for the Cyrus IMAP server" arch=('any')

cd "${srcdir}/${pkgbase}-${pkgver}"

install -dm755 "${pkgdir}/usr/share/doc/cyrus-imapd" cp -r doc/html doc/internal doc/legacy doc/text \ "${pkgdir}/usr/share/doc/cyrus-imapd"

install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" }