Package Details: cyrus-imapd 3.10.1-1

Git Clone URL: https://aur.archlinux.org/cyrus-imapd.git (read-only, click to copy)
Package Base: cyrus-imapd
Description: An email, contacts and calendar server
Upstream URL: https://www.cyrusimap.org/
Licenses: BSD-Attribution-HPND-disclaimer
Provides: imap-server, pop3-server
Submitter: ryanc
Maintainer: J5lx
Last Packager: J5lx
Votes: 27
Popularity: 0.000001
First Submitted: 2007-10-14 08:22 (UTC)
Last Updated: 2025-01-22 04:10 (UTC)

Dependencies (58)

Required by (2)

Sources (8)

Latest Comments

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

J5lx commented on 2020-08-20 10:12 (UTC) (edited on 2020-08-23 10:52 (UTC) by J5lx)

All this might be considerably more manageable if the documentation […] were split off into its own package.

I’ll consider it in the future. For now I’ve stuck with the current method, since I already had a patch ready. Sorry for the late update.

Edit: Unfortunately it’s not that easy after all. I just remembered that the main reason for why those documentation dependencies are needed is not actually for the -docs package, but for some of the manpages in the “main” package, which I’d rather not split out into a completely separate package.

pronet commented on 2020-08-18 15:39 (UTC) (edited on 2020-08-18 15:40 (UTC) by pronet)

If you must use -d to get it to work something else is wrong. Fix that first. You cannot skip package dependencys and expect it to compile correctly. That is why they have package dependencys so everything needed is there. Apparently python-sphinx-2 is not installed correctly. Did you also install it with -d ? Try installing python-sphinx-2 with "yay". It will find all the needed dependencys when it builds the package https://newbloghosting.com/how-to-install-yay-on-arch-linux/ Also you dont need to have old versions installed to use downgrade. downgrade fetches them remotely as shown in my previous post.

zork commented on 2020-08-18 10:17 (UTC)

I cannot use "downgrade" aur package, I do not have older python-sphinx packages in pacman cache. I build python-sphinx-2 from AUR and it worked with makepkg -d and original PKGBUILD (3.0.13). For 3.2.2 I have an error - see my earlier comment.

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?