--- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-nntpd-2.2.manpages +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-nntpd-2.2.manpages @@ -0,0 +1,2 @@ +man/fetchnews.8 +man/nntpd.8 --- cyrus-imapd-2.2-2.2.13p1.orig/debian/gbp.conf +++ cyrus-imapd-2.2-2.2.13p1/debian/gbp.conf @@ -0,0 +1,9 @@ +[DEFAULT] +debian-branch = debian-sid +debian-tag = debian/%(version)s +upstream-branch = upstream-sid +upstream-tag = upstream/%(version)s +pristine-tar = True + +[git-dch] +meta = 1 --- cyrus-imapd-2.2-2.2.13p1.orig/debian/logcheck.ignore +++ cyrus-imapd-2.2-2.2.13p1/debian/logcheck.ignore @@ -0,0 +1,64 @@ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: skiplist: recovered +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: skiplist: checkpointed +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: duplicate_prune: pruning +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: duplicate_prune: purged +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: executed +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: accepted connection +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: telling master +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: +mydelete: +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: (bad)?login: +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: starttls: [[:alnum:]]+ with cipher +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: (\[[a-z0-9]+\] )?STARTTLS( negotiation)? failed: +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: DIGEST-MD5 server step +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/ctl_cyrusdb\[[0-9]+\]: (done +)?recovering cyrus databases +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/ctl_cyrusdb\[[0-9]+\]: archiving +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/ctl_cyrusdb\[[0-9]+\]: checkpointing +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/ctl_cyrusdb\[[0-9]+\]: done checkpointing +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/ctl_deliver\[[0-9]+\]: duplicate_prune: pruning back +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/ctl_deliver\[[0-9]+\]: duplicate_prune: purged +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/tls_prune\[[0-9]+\]: (tls_prune: )?purged +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/master\[[0-9]+\]: ready for work +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/master\[[0-9]+\]: about to exec +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/master\[[0-9]+\]: process started +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/master\[[0-9]+\]: process [0-9]+ exited, status 0$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/master\[[0-9]+\]: service [a-zA-Z0-9]+ now has [0-9]+ workers +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: pop3s failed: +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: lmtp connection preauth'd as postman +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: dupelim: eliminated duplicate message to +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: duplicate_check: +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: duplicate_mark: +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: mystore: committing txn +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: mystore: starting txn +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: sieve parse error +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: sieve: discarded +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: abort_txn: aborting txn +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: delete: starting txn +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: open: user .* opened +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: mycommit: committing txn +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: myfetch: reusing txn +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: myfetch: starting txn +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: mystore: reusing txn +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: seen_db: user .* opened +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: Connection reset by peer, closing connection +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: SQUAT failed +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: SQUAT returned [0-9]+ messages +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: idle for too long, closing connection +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: annotatemore_store +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: created stage directory +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: imaps TLS negotiation failed +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: synchronizing mailbox +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: mailbox list synchronization +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/[a-zA-Z0-9_]+\[[0-9]+\]: unready for connections +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/squatter\[[0-9]+\]: (done )?(indexing|skipping) mailbox +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/notifyd\[[0-9]+\]: do_notify using method +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/lmtpunix\[[0-9]+\]: IOERROR: fstating sieve script [/a-zA-Z^]+/defaultbc: No such file or directory +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/lmtpunix\[[0-9]+\]: WARNING: sieve script /var/spool/sieve/[._/[:alnum:]^-]+defaultbc doesn't exist: No such file or directory +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/sieve\[[0-9]+\]: entered bc_action_emit with filelen: [0-9]+$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/(imaps?|pop3s?)\[[0-9]+\]: no secret in database$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/cyr_expire\[[0-9]+\]: expunged 0 out of 0 messages from 0 mailboxes$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/(imaps?|pop3s?)\[[0-9]+\]: Expunged [0-9]+ messages from +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/(lmtp|lmtpunix)\[[0-9]+\]: Delivered: ]+>? +to mailbox: .*$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ perl: DIGEST-MD5 client step [0-9]$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/lmtpunix\[[0-9]+\]: sieve redirected: ]+>? +to: [._[:alnum:]-]+@[._[:alnum:]-]+$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/(lmtp|lmtpunix)\[[0-9]+\]: duplicate_(check|mark): .*$ + --- cyrus-imapd-2.2-2.2.13p1.orig/debian/README.Debian.simpleinstall +++ cyrus-imapd-2.2-2.2.13p1/debian/README.Debian.simpleinstall @@ -0,0 +1,183 @@ +Cyrus IMAP for Debian, Simple Install Guide +$Id$ +------------------------------------------- + + "All systems administrators have their horror stories. For me, it was + setting up a HP Color Bubblejet under Linux using ghostscript before + linuxprinting.org was alive. Well that was a piece of cake compared + to what I am about to describe in this document." + -- "Hosting email for virtual domains using Postfix and Cyrus" + Haim Dimermanas, 2001-08-01 + + "I warned you to read all the documentation first, didn't I?" + -- Henrique M. Holschuh, 2002-10-01 + + +This document describes how to get Cyrus running with a simple configuration +that you can then tweak to your real needs. + +READ README.Debian AS WELL. I MEAN IT! Cyrus is easy, all the trouble is +in SASL, and even that becomes easy after you understand how SASL works. + +IMPORTANT: Cyrus is a closed-box email system. Your system will access your +email through LMTP, IMAP and POP3 *only*. No direct file access to the email +store is supposed to take place. + + +To setup Cyrus so that you can administer it (i.e. create users), +and get email inside it for those users: + + 1. Make sure libsasl2-modules, libsasl2 and sasl2-bin are installed + + 2. Make sure /etc/sasldb2 is readable by group sasl. Pay attention + to overrides (dpkg-statoverride)! + + 3. Make sure user cyrus belongs to group sasl (cyrus-common-2.2's install + tries to do this automatically for you). + + 4. Edit /etc/cyrus.conf, and make sure the services you need are + enabled. These are most probably "imap", "pop3", "lmtpunix". + + 5. Edit /etc/imapd.conf, and make sure you have some admin users + listed in the entry "admins:". I suggest using "cyrus" as your + admin. + + I also suggest enabling plain text logins, and setting + sasl_minimum_layer: 0 + + If you have unixhierarchysep enabled in imapd.conf, change all + "." in mailbox names mentioned on this document to "/", since Cyrus + will use "/" as the hierarchy separator instead of the default ".". + I suggest you just leave unixhierarchysep set to false for now. + + 6. Restart Cyrus (/etc/init.d/cyrus2.2 restart) + + 7. Use saslpasswd2 -c to create an account for your admin: + saslpasswd2 -c cyrus + + 8. Use sasldblistusers2 to make sure step 7 worked fine. + + 9. Add other users to SASL likewise (saslpasswd2 -c). + +10. Log in cyrus as the administrator, and create the mailboxes: + cyradm --user cyrus localhost + cm user.bob + cm user.anna + cm user.clark... + ^D + + (notice that there is an "user." in front of the mailbox name!) + You must use "user/bob", "user/anna" instead if you have the + unixhierarchysep option enabled in imapd.conf. + + For this to work, you obviously need the cyrus-admin-2.2 package + installed. + +11. Try to login as a normal user, using imtest or a IMAP/POP3 client. + If you have trouble with mutt and CRAM-MD5 or DIGEST-MD5, edit + /etc/imapd.conf, and look for sasl_mech_list. Set it to: + sasl_mech_list: plain cram-md5 + (this will disable digest-md5, which causes trouble with mutt). + +12. Setup your MTA to deliver email inside Cyrus. Basically that can + be done (easily) by: + + a) running /usr/sbin/cyrdeliver (SLOW) + You need the lmtpunix service enabled in /etc/cyrus.conf for this + to work. + b) delivering using LMTP to /var/run/cyrus/socket/lmtp + You need the lmtpunix service enabled in /etc/cyrus.conf for this + to work. + + Just make sure (and use dpkg-statoverride to do that) that your + MTA can get to /var/run/cyrus/socket/lmtp. It works just like any + file in a Unix system. Use this for example if you use postfix or + any other MTA which tries to delivery through LMTP with a user in + the "lmtp" group (i.e. the delivery agent program is probably set + up with the setgid bit set and with owning group set to "lmtp"): + dpkg-statoverride --force --update --add cyrus lmtp 750 /var/run/cyrus + + If you run Postfix, make sure that the LMTP delivery agent is not + run chrooted in this setup (the line starting with "lmtp" should + have an "n" as the fifth field). If you want to run that agent + chrooted, you need to move the lmtp socket into the chroot or bind + mount /var/run/cyrus/socket into the chroot. + + Cyrus REQUIRES a valid RFC2822 message, and will refuse messages with + bad headers (such as that From foobar header, notice the missing ':'), + embedded NULLs or any other crap. + + +That's it. See /usr/share/doc/cyrus-common-2.2/README.{postfix,exim,sendmail} +for help on how to setup your MTA to correctly deliver to Cyrus. + + +LDAP SETUP +---------- + +First, do the steps above and verify that your system is working fine. + +SASL is perfectly capable of trying various authentication methods one after +another. We will change our Cyrus setup for SASL to use a LDAP server lookup +through saslauthd. + +1. Create the configuration for saslauthd to know what it must do: + + Write the following file to /etc/saslauthd.conf: +----CUTHERE---- +ldap_servers: ldap://127.0.0.1/ +ldap_version: 3 +ldap_timeout: 10 +ldap_time_limit: 10 +ldap_cache_ttl: 30 +ldap_cache_mem: 32768 +ldap_scope: sub +ldap_search_base: ou=mail,o=mydomain +ldap_auth_method: bind +ldap_filter: maildrop=%u +----CUTHERE---- + And of course, edit it to fit your LDAP setup. + +2. Now, configure saslauthd to use LDAP mode and our config file: + + Modify /etc/default/saslauthd so that it reads: + MECHANISMS="ldap" + PARAMS="-O /etc/saslauthd.conf" + + (MECHANISMS can be a space-separated list of authentication + mechanisms. If you wanted saslauthd to try LDAP, then PAM, you + could use MECHANISMS="ldap pam") + +3. Start saslauthd + + /etc/init.d/saslauthd restart + +4. Make sure Cyrus will be able to talk to saslauthd + + Set the following options in /etc/imapd.conf: + sasl_mech_list: PLAIN + allowapop: no + allowplaintext: yes + sasl_minimum_layer: 0 + sasl_pwcheck_method: saslauthd + + And restart Cyrus. You'd better understand that the above allows + plaintext logins over the network. There is a LDAP SASL auxprop + plugin being worked on that might fix this issue. As it stands + right now, you're better off by only accepting IMAPS (secure IMAP) + connections. + + (sasl_pwcheck_method is a space separated list of SASL methods to + try. If you want to have some local users in /etc/sasldb2, for + example, you could have "sasl_pwcheck_method: auxprop saslauthd" + and also "sasl_auxprop_plugin: sasldb") + + One *extremely* important point to notice is that saslauthd works + ONLY with plaintext. APOP, CRAM-MD5, OTP, DIGEST-MD5 and any other + "auxprop" SASL mech will *not* work through saslauthd. + +5. That's it. There is a LDAP auxprop module in the works which can deal + with APOP, CRAM-MD5, OTP, DIGEST-MD5 and so on, look for it in the SASL + docs and openldap's contrib stuff. + + -- Henrique de Moraes Holschuh --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-common-2.2.postinst +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-common-2.2.postinst @@ -0,0 +1,64 @@ +#!/bin/sh +# postinst script for cyrus-common +# Copyright (c) 2002 by Henrique de Moraes Holschuh +# Copyright (c) 2011 by Ondřej Surý +# Distributed under the GNU General Public License version 2 +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see /usr/doc/packaging-manual/ + +export PATH=/sbin:/usr/sbin:/bin:/usr/bin + +dpkg-maintscript-helper mv_conffile /etc/init.d/cyrus2.2 /etc/init.d/cyrus-imapd 2.2.13p1-1 -- "$@" +dpkg-maintscript-helper mv_conffile /etc/default/cyrus2.2 /etc/default/cyrus-imapd 2.2.13p1-1 -- "$@" + +case "$1" in + configure) + if [ -f /usr/lib/cyrus/cyrus-db-types.active ]; then + /usr/lib/cyrus/bin/upgrade-db + RET="$?" + case "$RET" in + 0) ;; + 2) + echo "ERROR: Upgrading of database backends failed." 1>&2 + echo "ERROR: Please check the output, fix errors and re-run /usr/lib/cyrus/bin/upgrade-db" 1>&2 + echo "ERROR: script, before trying to start cyrus-imapd." 1>&2 + ;; + 1|*) + echo "ERROR: Upgrading of database backends failed with a fatal error." 1>&2 + echo "ERROR: Please check /usr/share/doc/cyrus-common/README.Debian*" 1>&2 + echo "ERROR: for instructions how to upgrade cyrus databases manually." 1>&2 + exit $RET; + ;; + esac + fi + + # Legacy code / needed in case something will change in future + # Hopefully this will be handled by upstream next time + cp -p /usr/lib/cyrus/cyrus-hardwired-config.txt \ + /usr/lib/cyrus/cyrus-hardwired-config.active + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 0 + ;; +esac + +#DEBHELPER# + +exit 0 --- cyrus-imapd-2.2-2.2.13p1.orig/debian/imapd.conf +++ cyrus-imapd-2.2-2.2.13p1/debian/imapd.conf @@ -0,0 +1,327 @@ +# Debian Cyrus imapd.conf +# $Id$ +# See imapd.conf(5) for more information and more options + +# Configuration directory +configdirectory: /var/lib/cyrus + +# Which partition to use for default mailboxes +defaultpartition: default +partition-default: /var/spool/cyrus/mail + +# News setup +partition-news: /var/spool/cyrus/news +newsspool: /var/spool/news + +# Alternate namespace +# If enabled, activate the alternate namespace as documented in +# /usr/share/doc/cyrus-doc-2.2/html/altnamespace.html, where an user's +# subfolders are in the same level as the INBOX +# See also userprefix and sharedprefix on imapd.conf(5) +altnamespace: no + +# UNIX Hierarchy Convention +# Set to yes, and cyrus will accept dots in names, and use the forward +# slash "/" to delimit levels of the hierarchy. This is done by converting +# internally all dots to "^", and all "/" to dots. So the "rabbit.holes" +# mailbox of user "helmer.fudd" is stored in "user.elmer^fud.rabbit^holes" +unixhierarchysep: no + +# Rejecting illegal characters in headers +# Headers of RFC2882 messages must not have characters with the 8th bit +# set. However, too many badly-written MUAs generate this, including most +# spamware. Enable this to reject such messages. +#reject8bit: yes + +# Munging illegal characters in headers +# Headers of RFC2882 messages must not have characters with the 8th bit +# set. However, too many badly-written MUAs generate this, including most +# spamware. If you kept reject8bit disabled, you can choose to leave the +# crappage untouched by disabling this (if you don't care that IMAP SEARCH +# won't work right anymore. +#munge8bit: no + +# Forcing recipient user to lowercase +# Cyrus 2.2 is case-sensitive. If all your mail users are in lowercase, it is +# probably a very good idea to set lmtp_downcase_rcpt to true. This is set by +# default, per RFC2821. This was not set by default in debian versions up to +# and including 2.2.12-4. +lmtp_downcase_rcpt: yes + +# Uncomment the following and add the space-separated users who +# have admin rights for all services. +#admins: cyrus + +# Space-separated list of users that have lmtp "admin" status (i.e. that +# can deliver email through TCP/IP lmtp). If specified, this parameter +# overrides the "admins" parameter above +#lmtp_admins: postman + +# Space-separated list of users that have mupdate "admin" status, in +# addition to those in the admins: entry above. Note that mupdate slaves and +# backends in a Murder cluster need to autenticate against the mupdate master +# as admin users. +#mupdate_admins: mupdateman + +# Space-separated list of users that have imapd "admin" status, in +# addition to those in the admins: entry above +#imap_admins: cyrus + +# Space-separated list of users that have sieve "admin" status, in +# addition to those in the admins: entry above +#sieve_admins: cyrus + +# List of users and groups that are allowed to proxy for other users, +# seperated by spaces. Any user listed in this will be allowed to login +# for any other user. Like "admins:" above, you can have imap_proxyservers +# and sieve_proxyservers. +#proxyservers: cyrus + +# No anonymous logins +allowanonymouslogin: no + +# Minimum time between POP mail fetches in minutes +popminpoll: 1 + +# If nonzero, normal users may create their own IMAP accounts by creating +# the mailbox INBOX. The user's quota is set to the value if it is positive, +# otherwise the user has unlimited quota. +autocreatequota: 0 + +# umask used by Cyrus programs +umask: 077 + +# Sendmail binary location +# DUE TO A BUG, Cyrus sends CRLF EOLs to this program. This breaks Exim 3. +# For now, to work around the bug, set this to a wrapper that calls +# /usr/sbin/sendmail -dropcr instead if you use Exim 3. +#sendmail: /usr/sbin/sendmail + +# If enabled, cyrdeliver will look for Sieve scripts in user's home +# directories: ~user/.sieve. +sieveusehomedir: false + +# If sieveusehomedir is false, this directory is searched for Sieve scripts. +sievedir: /var/spool/sieve + +# notifyd(8) method to use for "MAIL" notifications. If not set, "MAIL" +# notifications are disabled. Valid methods are: null, log, zephyr +#mailnotifier: zephyr + +# notifyd(8) method to use for "SIEVE" notifications. If not set, "SIEVE" +# notifications are disabled. This method is only used when no method is +# specified in the script. Valid methods are null, log, zephyr, mailto +#sievenotifier: zephyr + +# DRAC (pop-before-smtp, imap-before-smtp) support +# Set dracinterval to the time in minutes to call DRAC while a user is +# connected to the imap/pop services. Set to 0 to disable DRAC (default) +# Set drachost to the host where the rpc drac service is running +#dracinterval: 0 +#drachost: localhost + +# If enabled, the partitions will also be hashed, in addition to the hashing +# done on configuration directories. This is recommended if one partition has a +# very bushy mailbox tree. +hashimapspool: true + +# Allow plaintext logins by default (SASL PLAIN) +allowplaintext: yes + +# Force PLAIN/LOGIN authentication only +# (you need to uncomment this if you are not using an auxprop-based SASL +# mechanism. saslauthd users, that means you!). And pay attention to +# sasl_minimum_layer and allowapop below, too. +#sasl_mech_list: PLAIN + +# Allow use of the POP3 APOP authentication command. +# Note that this command requires that the plaintext passwords are +# available in a SASL auxprop backend (eg. sasldb), and that the system +# can provide enough entropy (eg. from /dev/urandom) to create a challenge +# in the banner. +#allowapop: no + +# The minimum SSF that the server will allow a client to negotiate. A +# value of 1 requires integrity protection; any higher value requires some +# amount of encryption. +#sasl_minimum_layer: 0 + +# The maximum SSF that the server will allow a client to negotiate. A +# value of 1 requires integrity protection; any higher value requires some +# amount of encryption. +#sasl_maximum_layer: 256 + +# List of remote realms whose users may log in using cross-realm +# authentications. Seperate each realm name by a space. A cross-realm +# identity is considered any identity returned by SASL with an "@" in it. +# NOTE: To support multiple virtual domains on the same interface/IP, +# you need to list them all as loginreals. If you don't list them here, +# (most of) your users probably won't be able to log in. +#loginrealms: example.com + +# Enable virtual domain support. If enabled, the user's domain will +# be determined by splitting a fully qualified userid at the last '@' +# or '%' symbol. If the userid is unqualified, and the virtdomains +# option is set to "on", then the domain will be determined by doing +# a reverse lookup on the IP address of the incoming network +# interface, otherwise the user is assumed to be in the default +# domain (if set). +#virtdomains: userid + +# The default domain for virtual domain support +# If the domain of a user can't be taken from its login and it can't +# be determined by doing a reverse lookup on the interface IP, this +# domain is used. +#defaultdomain: + +# +# SASL library options (these are handled directly by the SASL libraries, +# refer to SASL documentation for an up-to-date list of these) +# + +# The mechanism(s) used by the server to verify plaintext passwords. Possible +# values are "saslauthd", "auxprop", "pwcheck" and "alwaystrue". They +# are tried in order, you can specify more than one, separated by spaces. +# +# Do note that, since sasl will be run as user cyrus, you may have a lot of +# trouble to set this up right. +sasl_pwcheck_method: auxprop + +# What auxpropd plugins to load, if using sasl_pwcheck_method: auxprop +# by default, all plugins are tried (which is probably NOT what you want). +#sasl_auxprop_plugin: sasldb + +# If enabled, the SASL library will automatically create authentication secrets +# when given a plaintext password. Refer to SASL documentation +sasl_auto_transition: no + +# +# SSL/TLS Options +# + +# File containing the global certificate used for ALL services (imap, pop3, +# lmtp, sieve) +#tls_cert_file: /etc/ssl/certs/ssl-cert-snakeoil.pem + +# File containing the private key belonging to the global server certificate. +#tls_key_file: /etc/ssl/private/ssl-cert-snakeoil.key + +# File containing the certificate used for imap. If not specified, the global +# certificate is used. A value of "disabled" will disable SSL/TLS for imap. +#imap_tls_cert_file: /etc/ssl/certs/cyrus-imap.pem + +# File containing the private key belonging to the imap-specific server +# certificate. If not specified, the global private key is used. A value of +# "disabled" will disable SSL/TLS for imap. +#imap_tls_key_file: /etc/ssl/private/cyrus-imap.key + +# File containing the certificate used for pop3. If not specified, the global +# certificate is used. A value of "disabled" will disable SSL/TLS for pop3. +#pop3_tls_cert_file: /etc/ssl/certs/cyrus-pop3.pem + +# File containing the private key belonging to the pop3-specific server +# certificate. If not specified, the global private key is used. A value of +# "disabled" will disable SSL/TLS for pop3. +#pop3_tls_key_file: /etc/ssl/private/cyrus-pop3.key + +# File containing the certificate used for lmtp. If not specified, the global +# certificate is used. A value of "disabled" will disable SSL/TLS for lmtp. +#lmtp_tls_cert_file: /etc/ssl/certs/cyrus-lmtp.pem + +# File containing the private key belonging to the lmtp-specific server +# certificate. If not specified, the global private key is used. A value of +# "disabled" will disable SSL/TLS for lmtp. +#lmtp_tls_key_file: /etc/ssl/private/cyrus-lmtp.key + +# File containing the certificate used for sieve. If not specified, the global +# certificate is used. A value of "disabled" will disable SSL/TLS for sieve. +#sieve_tls_cert_file: /etc/ssl/certs/cyrus-sieve.pem + +# File containing the private key belonging to the sieve-specific server +# certificate. If not specified, the global private key is used. A value of +# "disabled" will disable SSL/TLS for sieve. +#sieve_tls_key_file: /etc/ssl/private/cyrus-sieve.key + +# File containing one or more Certificate Authority (CA) certificates. +#tls_ca_file: /etc/ssl/certs/cyrus-imapd-ca.pem + +# Path to directory with certificates of CAs. +tls_ca_path: /etc/ssl/certs + +# The length of time (in minutes) that a TLS session will be cached for later +# reuse. The maximum value is 1440 (24 hours), the default. A value of 0 will +# disable session caching. +tls_session_timeout: 1440 + +# The list of SSL/TLS ciphers to allow, in decreasing order of precedence. +# The format of the string is described in ciphers(1). The Debian default +# selects TLSv1 high-security ciphers only, and removes all anonymous ciphers +# from the list (because they provide no defense against man-in-the-middle +# attacks). It also orders the list so that stronger ciphers come first. +tls_cipher_list: TLSv1+HIGH:!aNULL:@STRENGTH + +# Require a client certificate for ALL services (imap, pop3, lmtp, sieve). +#tls_require_cert: false + +# Require a client certificate for imap ONLY. +#imap_tls_require_cert: false + +# Require a client certificate for pop3 ONLY. +#pop3_tls_require_cert: false + +# Require a client certificate for lmtp ONLY. +#lmtp_tls_require_cert: false + +# Require a client certificate for sieve ONLY. +#sieve_tls_require_cert: false + +# +# Cyrus Murder cluster configuration +# +# Set the following options to the values needed for this server to +# autenticate against the mupdate master server: +# mupdate_server +# mupdate_port +# mupdate_username +# mupdate_authname +# mupdate_realm +# mupdate_password +# mupdate_retry_delay + +## +## KEEP THESE IN SYNC WITH cyrus.conf +## +# Unix domain socket that lmtpd listens on. +lmtpsocket: /var/run/cyrus/socket/lmtp + +# The idle backend to use for IDLE command. +# Options: poll (default), idled, no +# poll doesn't need the idled daemon and is supposed to be more robust. +# however it doesn't update as quickly as the idled backend does. "no" +# turns off IDLE support. If set to "idled", you will also need to enable +# the "idled" entry in cyrus.conf. +idlemethod: poll + +# Unix domain socket that idled listens on. +idlesocket: /var/run/cyrus/socket/idle + +# Unix domain socket that the new mail notification daemon listens on. +notifysocket: /var/run/cyrus/socket/notify + +# Syslog prefix. Defaults to cyrus (so logging is done as cyrus/imap etc.) +syslog_prefix: cyrus + +## +## DEBUGGING +## +# Debugging hook. See /usr/share/doc/cyrus-common-2.2/README.Debian.debug +# Keep the hook disabled when it is not in use +# +# gdb Back-traces +#debug_command: /usr/bin/gdb -batch -cd=/tmp -x /usr/lib/cyrus/get-backtrace.gdb /usr/lib/cyrus/bin/%s %d >/tmp/gdb-backtrace.cyrus.%1$s.%2$d <&- 2>&1 & +# +# system-call traces +#debug_command: /usr/bin/strace -tt -o /tmp/strace.cyrus.%s.%d -p %2$d <&- 2>&1 & +# +# library traces +#debug_command: /usr/bin/ltrace -tt -n 2 -o /tmp/ltrace.cyrus.%s.%d -p %2$d <&- 2>&1 & --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-pop3d-2.2.manpages +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-pop3d-2.2.manpages @@ -0,0 +1 @@ +man/pop3d.8 --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-common-2.2.install +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-common-2.2.install @@ -0,0 +1,19 @@ +etc/*conf +usr/sbin/cyr* +usr/sbin/ctl_* +usr/sbin/cvt_* +usr/sbin/chk_* +usr/sbin/ipurge +usr/sbin/tls_prune +usr/sbin/mbpath +usr/sbin/arbitron* +usr/lib/cyrus/bin/lmtpd +usr/lib/cyrus/bin/timsieved +usr/lib/cyrus/bin/sievec +usr/lib/cyrus/bin/mbexamine +usr/lib/cyrus/bin/smmapd +usr/lib/cyrus/bin/notifyd +usr/lib/cyrus/bin/fud +usr/lib/cyrus/bin/ptloader +usr/lib/cyrus/bin/ptdump +usr/lib/cyrus/bin/ptexpire --- cyrus-imapd-2.2-2.2.13p1.orig/debian/README.Debian +++ cyrus-imapd-2.2-2.2.13p1/debian/README.Debian @@ -0,0 +1,334 @@ +Cyrus IMAP for Debian +$Id$ +--------------------- + + "All systems administrators have their horror stories. For me, it was + setting up a HP Color Bubblejet under Linux using ghostscript before + linuxprinting.org was alive. Well that was a piece of cake compared + to what I am about to describe in this document." + -- "Hosting email for virtual domains using Postfix and Cyrus" + Haim Dimermanas, 2001-08-01 + + "I warned you to read all the documentation first, didn't I?" + -- Henrique M. Holschuh, 2002-10-01 + +IMPORTANT: Cyrus is a closed-box email system. Your system will access your +email through LMTP, IMAP and POP3 *only*. No direct file access to the email +store is supposed to take place. + +For more information, please consult http://asg.web.cmu.edu/cyrus/imapd/ and +http://asg.web.cmu.edu/twiki/bin/view/Cyrus/WebHome (Cyrus WiKi). There is +also Cyrus-HOWTO (Cyrus-IMAP.txt) available as part of the LDP HOWTO +collection. Upgrade hints are in UPGRADE.Debian.gz Outdated documentation +will cause you much grief, so beware of that when hunting anywhere else than +the Cyrus mailinglist for information. + +Backports of the latest packages for Debian Stable are available from +http://www.backports.org + +WARNING: For one to get Cyrus IMAPd to work correctly, one must first get the +SASL layer to work correctly. This is far from trivial, so if you don't manage +at first, don't go around filling bugs against Cyrus IMAPd before you make damn +sure it is not a SASL configuration error. Read the hint list later on this +file as well. Start by reading README.Debian.simpleinstall. + +The Debian packaging of Cyrus has a few quirks which are important to know +about: + +1. Renaming of some Cyrus IMAP utilities + + The quota, reconstruct, master and deliver utilities have been renamed to + cyrquota, cyrreconstruct, cyrmaster and cyrdeliver, following the template + set by upstream with "cyradm". This was done because both Cyrus Debian + maintainers found the original names to be too generic and likely to cause + namespace collisions later. + + Since documentation may refer to these utilities using their original + name, you must be aware of this fact. Also, installsieve is deprecated + and will be removed from the Debian package in the future; use sieveshell + instead. + +2. Relocation of many Cyrus IMAP files + + The default Cyrus install scatters files all over the place. The Debian + package installs only a few files in /usr/bin (cyradm, sieveshell). + IMAP/email administrator utilities are installed in /usr/sbin (such as + cyrreconstruct). Programs that must be run by cyrmaster are installed in + /usr/lib/cyrus (such as imapd and pop3d). Sockets go into + /var/run/cyrus/socket, per FHS 2.2. Sieve files go in /var/spool/sieve, but + an /etc/sieve compatibility symlink is also installed just in case. + + The imapd.conf and cyrus.conf configuration files are in /etc. The PAM + policy files are in /etc/pam.d. + + Feel free to use dpkg-statoverride to change the permission of + /var/run/cyrus/socket, the cyrus packages will not override your + configuration if dpkg-statoverride is used. In fact, you will most likely + have to do so for postfix to deliver to Cyrus, for example. + +3. Cyrus Murder, the Cyrus IMAPd/POP3 aggregator is available. + + However, you will have to configure it yourself. No pre-packaged + configuration of Murder is available at this time... The documentation is + all there, and the Cyrus packages will happily preserve your Cyrus Murder + configuration. You do not have to install the cyrus-imapd-2.2 or + cyrus-pop3d-2.2 packages in hosts that only need the proxy daemons running, + but do note that the /etc/pam.d/imap and /etc/pam.d/pop files are in those + packages (and they are needed by the proxies), so you will have to create + the files manually. + + One important note: MUPDATE doesn't support TLS, so you won't be able to + use plaintext authentication methods. The easiest thing to do is to put + an entry for your mupdate user in sasldb2 and use DIGEST-MD5. + +4. Configurable idled support. + + Cyrus IMAPd supports three options of using IDLE in IMAP sessions. The first + option is not to support IDLE at all. The second is to use internal polling + in the IMAP daemon. The third option is to use an external daemon, idled. + Upstream only supports configuration of this during compilation, Debian + however includes a patch which makes this runtime-configurable. Please + set the 'idlemethod' imapd.conf option according to your needs and enable + idled in cyrus.conf if you want to use it. + +General notes and hints: +------------------------ + + o *** ALWAYS READ /usr/share/doc/cyrus-common-2.2/NEWS.Debian *** after + you upgrade the package. This, and every other NEWS.Debian can automatically + be shown to you before the upgrade, see the apt-listchanges package for more + information. + + o QUOTAS ARE LIMITIED TO 2GB on some platforms. + Be careful to not set quotas over that ammount if your platform doesn't + support the C datatype "long long". Things will break in very bad ways. + Yes, it is a big glitch, and no, there are no easy workarounds. + see https://bugzilla.andrew.cmu.edu/show_bug.cgi?id=1212 + This has been fixed for the upcoming Cyrus 2.3. + + o Either turn off logging of the DEBUG level, or don't complain about cyrus + verbosity on the logs. Don't ever ask in the mailing lists about messages + logged in the DEBUG level before reading the source code. + + o Watch out for your /dev/random bitbucket! SASL may use it, and if it + empties, it will hang the processes wrapped up by SASL. This means + just about every Cyrus service (lmtp, imap, pop3, sieve)... Disable + APOP in /etc/imapd.conf if you don't need it, as it is a serious draw + on randomness resources. + + o One extremely important point to notice is that saslauthd works ONLY + with plaintext. APOP, CRAM-MD5, OTP, DIGEST-MD5 and any other "auxprop" + SASL mech will *not* work through saslauthd. This can and will cause + serious issues in Cyrus murder environments. + + o When using ext3, Cyrus really wants data=journal. However, up to + kernel 2.4.20 there are dangerous bugs in that option, so you're better + off not using that. xfs is faster and better for Cyrus, anyway. + Please note that sarge was shipped with 2.4.27, and etch will not ship + any 2.4 kernels anymore." + + 2.4 kernels are NOT shipped with Debian Etch. + + o nscd users: nscd is highly incompatible with ldap, and somewhat buggy + otherwise. If you use nscd and Cyrus segfaults on you, try restarting + nscd, or disabling it. + + o "The Debian libldap2 and cyrus-imapd packages are both compiled using the + SASL library. If you use cyrus-imapd together with libnss-ldap, or + saslauthd together with libpam-ldap, the resulting double calls to SASL + library functions can trigger a double-free bug which may cause the calling + process to crash. To avoid such a crash, you must recompile the libldap2 + package --without-cyrus-sasl." -- http://bugs.debian.org/145766 [!@#$%!!! + I didn't expect SASL 2.1 to still have this annoying problem] + + o The lmtp service (allocated in Debian Woody to port 2003, and non-existent + on Debian Sarge and Etch) is non-standard. It has no port officially + allocated anywhere; it is usually run bound to the localhost interface, + unless one needs it for clustering and high-availability scenarios. If you + need it elsewhere, by all means move it -- you only need to edit + /etc/services, or change the port for the lmtp service in /etc/cyrus.conf. + + o The lmtp service will only allow Cyrus lmtp administrators to authenticate. + Set them in /etc/imapd.conf. + + o Cyrus can now use two different namespaces (the standard one, where all + subfolders are children of INBOX, and one where they are all in the same + hierarchical level). + + See /usr/share/doc/cyrus-doc-2.2/html/altnamespace.html for details. If + you deal with a large population of winboze users, this option can save + you some headaches. + + o One can also chose between netnews-style notation for folders + (INBOX.subfolder), where the "." character is reserved to separate folders; + or UNIX-style notation (INBOX/subfolder), where dots are allowed in names, + and the slash separate folders (the "^" character is reserved in this + mode). + + See /usr/share/doc/cyrus-common-2.2/html/altnamespace.html for details. + + o When using SASL, do keep in mind that cyrus runs under user cyrus, and not + root. It cannot read shadow files (unless you add the user cyrus to group + shadow), or perform any root-only operations directly. You need to use the + saslauthd (or, if available, auxpropd) mechanism to authenticate against + root-only data. And that also means user cyrus must be able to talk to the + unix socket saslauthd uses (which is controlled by SASL, not Cyrus IMAPd). + + o Any of the SASL configure options can be inserted in imapd.conf, just + prefix it with "sasl_" (e.g.: sasl_mech_list: PLAIN). The list of SASL + options is in /usr/share/doc/libsasl2/options.html. + + o The services are tcp-wrapped. Their hosts.allow/hosts.deny id is the + service name in /etc/cyrus.conf. See hosts_access(5). + + o The PAM service names for use with SASL (via saslauthd) are: + "imap", "sieve", "lmtp", "pop", "mupdate". + + o You need to specify your admin users in /etc/imapd.conf before you can + add mailboxes, or deliver through authenticated lmtp. Do NOT use root. + We suggest user cyrus, which is already used by the system for all + things Cyrus IMAPd... but it need not be an existing user. As long as + SASL will authenticate against it, it will work. + + o Do NOT read your admin user's email via IMAP (see the FAQ for details). + + o Don't export your mail store over NFS or AFS (read the FAQ for more info). + You have been warned. You really want a journaled (as in journaling for the + metadata), local filesystem for the store. Failing that, you need + something with very strict and correct lock semantics, and full mmap + support. + + o Ext2 is slow on very large directories (right now), and sync metadata + writes enabled are a huge performance hit. If you need high IO throughput + from Cyrus, you will need to use ext3, reiserfs, xfs or something similar. + + o You may want to enable/disable synchronous metadata writes to your mail + store dirs (check /usr/share/doc/cyrus-doc-2.2/html/install.html for more + info, in package cyrus-docs-2.2). The cyrus-makedirs script tries to do the + right thing for ext2 and ext3 filesystems. Failure to correctly update the + metadata in the right order can completely screw up your Cyrus store on a + power-loss or another disk failure. + + o Try mounting the store and cyrus database filesystems with noatime for + performance gains. Load-balance the store using multiple partitions on + different physical devices for even better performance gains. + + o Cyrus IMAPd should be fed mail through LMTP. If at all possible, use + the Unix socket for that -- it automatically authenticates as user + postman and that will help wonders. cyrdeliver can also be used to + inject mail, but it will simply open an LMTP socket to cyrus and + deliver through that -- this is much slower than using LMTP directly. + The UNIX socket is in /var/run/cyrus/socket/lmtp. Use dpkg-statoverride + if you need to change the permissions of the socket directory. + + o You can use /usr/sbin/cyrus-makedirs to generate the needed directories + for cyrus partitions. It is run automatically by the package postinst, + and it knows to parse the /etc/imapd.conf file to verify if hash + subdirectories are needed or not. It cannot detect what kind of hashing + should be used yet. If you recompile the package with full hashing, + change it. + + o Refer to cyrus-utils.sourceforge.net and the info-cyrus mailinglist + for mailbox/imap to cyrus conversion scripts. + + o If you don't have pop3 or something else enabled by default in cyrus.conf, + installed, disable it. Otherwise, Cyrus master will log warnings that the + service could not be started. + + o If you want to run something that is not in /usr/lib/cyrus/bin in + cyrus.conf, just use the full path in cyrus.conf (e.g.: + cmd="/usr/sbin/squatter"). + + o Sieveshell is really lacking on auth capabilities, and timsieved is quite + strict on what auth capabilities it offers. So, pay attention to + sasl_minimum_layer, and see bug #151295 for more details + (http://bugs.debian.org/151295). Also, make sure you have the correct set + of SASL2 modules installed in in your system. + + o uw-mailutils has some nice utilities to migrate mail stores from/to imap + servers. You might find it quite useful to migrate a site to Cyrus. + +Known bugs +---------- + + Please see +http://bugs.debian.org/cgi-bin/pkgreport.cgi?which=src&data=cyrus-imapd-2.2& +archive=no&version= + for a list of any known bugs. + + +SNMP logging +------------ + +cyrmaster is an agentx SNMP subagent, and it can interface to a agentx SNMP +master. It will export data at OID .1.3.6.1.4.1.3.6.1 (cyrusMasterMIB). + +The ucd-snmp daemon (package snmpd) is NOT configured to work +as agentx master agent by default -- you have to do that manually, +by adding "master agentx" to the /etc/snmp/snmpd.conf file. + +cyrmaster will register with the snmp agentx master when it is started, +so if the snmp master is restarted after cyrmaster, it will not forward +the snmp requests to cyrmaster anymore. Check your system for any cron +scripts that might be restarting the snmp process if that happens. + +See /usr/share/snmp/mib/CYRUS-MASTER-MIB.txt for more details. + + +Backing up for rainy days +------------------------ + +Cyrus automatically checkpoints and backups some of its databases, using the +ctl_cyrusdb(8) utility (EVENTS in /etc/cyrus.conf). It is supposed to be also +capable of recovering automatically from these backups, and to attempt to do so +at startup. However, ctl_cyrusdb -r is NOT FULLY IMPLEMENTED YET... you are on +your own to recover from corrupt databases. + +This recovery can be done using the db3 utilities, and even by smart usage of +cvt_cyrusdb(8) and ctl_mboxlist(8). The automatic backups are useful, too, +even if they are not restored automatically. + +The database backups are stored at /var/lib/cyrus/db.backup*, you may want to +copy the files there to backup media in a cronjob, or something like that. You +can kill the TLS cache database, as long as Cyrus is stopped when you do it. +Loss of the delivery database is not very bad, it just means some users might +get duplicated messages. + +Cyrus does NOT backup the mail store automatically. To backup the mail store +partitions, you must stop Cyrus and dump the entire partition to your backup +media. The MH-like structure of the Cyrus store do make them suitable for +incremental backups. Hot-backups of the store can be made, but you risk losing +some non-critical metadata when the restore is done. + +You can backup all Cyrus non-text databases to a flat text file format using the +cvt_cyrusdb utility (and recover back from the flat text file format), but you +should stop Cyrus first. + +If you ever need to recover the mail store from backup, you should run +cyrreconstruct(8) to rebuild the mailbox indexes. + +A daily maintenance cronjob uses ctl_mboxlist(8) to dump the mailboxes database +to /var/backup. That backup copy can be used as a last-resort copy if the hot +backups become corrupted somehow. + + +Debian source package quirks +---------------------------- + +Patching is done using dpatch. Patches from upstream CVS are marked as such. + + +THANKS +------ + +Thanks go to the CMU crew for producing Cyrus IMAPd in the first place; +Michael-John Turner for maintaining the v1.5 branch and setting +the groundstones for the v2.1 package; David Parker and +David D. Kilzer for their huge help in getting +the v2.1 packages out-of-the-door, and the upgrade from v1.5 guide; Fabian +Fagerholm for stress testing the daemons, and useful +feedback; Gilles Bouthenot for good +feedback; and Henrique de Moraes Holschuh for maintaining the 2.1 branch. + + -- The Debian Cyrus Team + --- cyrus-imapd-2.2-2.2.13p1.orig/debian/README.Debian.debug +++ cyrus-imapd-2.2-2.2.13p1/debian/README.Debian.debug @@ -0,0 +1,122 @@ +Cyrus IMAP for Debian, debugging procedures +$Id$ +------------------------------------------- + +For more information, please consult http://asg.web.cmu.edu/cyrus/imapd/. + +Cyrus has various levels of debugging aid, which can and should be used to +offer more information about any problems you are facing with Cyrus. + +First, edit /etc/default/cyrus2.2, and set CYRUS_VERBOSE to a number higher +than zero. The higher the number, more debug information is provided. Numbers +above 30 will cause Cyrus services to pause for 15s before executing (so that +you can do something to it, such as attach strace or a debugger to the +process). + +You can, and should use strace and ltrace to gather more information about what +was happening to Cyrus when it malfunctioned. straces are useful when +networking or signal problems appear to be the issue, and ltraces can give +hints on what the problem might be. + +If a Cyrus service is crashing and cyrmaster logs that the service is being +killed by a signal, please use the debugging hooks to provide a back-trace +using gdb (see below). Back-traces are extremely useful when locating where +Cyrus is dying, and why. + +Debugging information is sent to syslogd, using the DEBUG priority, facilities +MAIL and DAEMON. + +You can also try to set MALLOC_CHECK_=2 in the environment, so that malloc() +will cause Cyrus to dump core if it detects any sort of corruption. + + +Telemetry logs +-------------- + +Cyrus will happily log all communications between the Cyrus store closed-box and +the outside world. These logs are sometimes vital to understand exactly what +is happening and to reproduce bugs. + +To enable telemetry logging, create a directory under /var/lib/cyrus/log with +the same name as the username for which you want the communication sessions to +be logged. Cyrus will log all imap, pop3, sieve and lmtp talks authenticated +as that user (including proxied connections). Make sure the directory is owned +by user cyrus. + +IMPORTANT: +Watch out for sensitive information such as passwords when you submit the +telemetry logs to a public bug-tracking system or mailinglist. + + +Recompiling Cyrus with debugging information +-------------------------------------------- + +In order to produce useful back-traces, or to interactively debug Cyrus, +you must rebuild the package with debugging information. It is quite +easy to do so: + +1. Install all source dependencies to build the package (needs root): + apt-get install build-essential fakeroot + apt-get build-dep cyrus-imapd-2.2 + +2. Download and rebuild Cyrus with debug information: + apt-get source cyrus-imapd-2.2 + cd cyrus-imapd-2.2* + DEB_BUILD_OPTIONS=debug,noopt,nostrip dpkg-buildpackage -uc -us -rfakeroot + +3. Install the Cyrus packages with debug information (needs root): + cd .. + dpkg -i *deb (or something like that) + +Now Cyrus should be working fine, using binaries with full debug information +for gdb. For interactive debugging, you may want to make sure there are no +optimizations, in which case you should use "DEB_BUILD_OPTIONS=noopt,nostrip +dpkg-buildpackage -uc -us -rfakeroot". + +Warning: the next time a new version of cyrus is released, apt will download +the non-debugging version of the Cyrus debs, and install them over the debugging +packages. + +To install the non-debugging, optimized version of Cyrus over the debugging +one, issue "apt-get --reinstall install (package)" commands for all the Cyrus +packages you want replaced. + + +Attaching debuggers to Cyrus, and getting traces +------------------------------------------------ + +You can tell Cyrus services to run a debugging command just before they +start doing real work. This can be used to run strace, ltrace and gdb +or ddd (for interactive debugging and back-tracing) quite easily. + +Set the shell command to be run in /etc/imapd.conf, option debug_command. +Then, add the command line switch "-D" to the Cyrus services you want to +run the debug_command in /etc/cyrus.conf, and restart cyrmaster using +/etc/init.d/cyrus2.2 restart. + +The debugging command must be given as a single line in the configuration file. + +To get a back-trace using gdb: +debug_command: /usr/bin/gdb -batch -cd=/tmp -x /usr/lib/cyrus/getbacktrace.gdb /usr/lib/cyrus/bin/%s %d >/tmp/gdb-backtrace.cyrus.%1$s.%2$d <&- 2>&1 & + +The above will produce a back-trace of every service run with -D that segfaults +in the files /tmp/gdb-backtrace.cyrus.*; /usr/lib/cyrus/getbacktrace.gdb +simply has the sequence of commands for gdb: c (to continue running the +service), bt (to get the back-trace if the program didn't exit normally), quit +(to quit gdb). + +For strace, you can use: +debug_command: /usr/bin/strace -tt -o /tmp/strace.cyrus.%s.%d -p %2$d <&- 2>&1 & + +Which will produce straces in /tmp/strace.cyrus.* + +For ltrace, you can use: +debug_command: /usr/bin/ltrace -tt -n 2 -o /tmp/ltrace.cyrus.%s.%d -p %2$d <&- 2>&1 & + +Which will produce ltraces in /tmp/ltrace.cyrus.* + +Be warned that sensitive information such as passwords may be disclosed in the +strace and ltrace output, so mangle them before sending such traces to public +bug-tracking systems or mailing lists. + + -- Henrique de Moraes Holschuh --- cyrus-imapd-2.2-2.2.13p1.orig/debian/rules +++ cyrus-imapd-2.2-2.2.13p1/debian/rules @@ -0,0 +1,327 @@ +#!/usr/bin/make -f +# debian/rules for CMU Cyrus IMAP version 2.2 +# GNU copyright 1997 by Joey Hess. +# Copyright (c) 2001 by Henrique de Moraes Holschuh +# Published under the GNU GPL license +# Based on previous work by Michael-John Turner , +# David Parker +# + +# DebHelper control +export DH_ALWAYS_EXCLUDE=CVS + +export MAINPKG=cyrus-common-2.2 +export DOCPKG=cyrus-doc-2.2 +export TMPPKG := $(CURDIR)/debian/tmp +export PKGDIR := $(CURDIR)/debian/$(MAINPKG) +export DOCDIR := $(CURDIR)/debian/$(DOCPKG)/usr/share/doc/$(DOCPKG) + +export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + +include /usr/share/quilt/quilt.make + +# Extra version information to add to Cyrus IMAPd ID +DEBVERSION:=$(shell LCALL=C dpkg-parsechangelog | sed -ne 's/^Version: \(.*-\)/\1/p') +EXTRA_IDENT:="Debian-$(DEBVERSION)" + +# DB engine version +DBENGINE=BerkeleyDB5.1 + +DEBUGFLAGS=-g +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + DEBUGFLAGS += -O0 +else + DEBUGFLAGS += -O2 +endif + +# TODO: Support parallel builds (make -j x) + +# FOR AUTOCONF 2.52 AND NEWER ONLY +CONFFLAGS = +ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) + CONFFLAGS += --build $(DEB_HOST_GNU_TYPE) +else + CONFFLAGS += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) +endif + +# Other oddities +ifneq (,$(findstring strict,$(DEB_BUILD_OPTIONS))) + CONFFLAGS += --enable-warnings-are-errors +endif + +# The clean target will remove any and all cruft (as defined by +# configure ; make distclean ; cd intl; make distclean ). +# This is done to make sure the build daemon's source tree is the +# same as the one I am using to produce the i386 debs. +clean: unpatch + dh_testdir + dh_testroot + -xargs -t -r chmod +x < debian/executable.files + -rm -f build-indep-stamp build-arch-stamp configure-stamp install-arch-stamp install-indep-stamp build-stamp + [ ! -f Makefile ] || $(MAKE) -i distclean + -rm -f config.h config.cache config.status config.log stamp-config confdefs.h + -rm -f config.sub config.guess + -rm -f netnews/Makefile perl/imap/Makefile.old perl/sieve/managesieve/Makefile.old snmp/Makefile Makefile et/Makefile + -rm -f doc/pod2htm* + -rm -f master/makedepend.log imap/idled sieve/sievec sieve/sieved + -rm -rf doc/man + -rm -f debian/cyrus-db-types.txt debian/cyrus-hardwired-config.txt debian/README.configure-options + # -rm -rf et/ + rm -rf autom4te.cache + -xargs -t -r rm -f < debian/deletable.files + dh_clean + +build: build-arch build-indep + +configure-stamp: $(QUILT_STAMPFN) + dh_testdir + cp /usr/share/misc/config.sub config.sub + cp /usr/share/misc/config.guess config.guess + touch configure.in && touch aclocal.m4 && touch configure + # + # IF YOU CHANGE BERKELEY DB VERSION, MAKE SURE TO UPDATE + # DBENGINE AT THE TOP OF THIS MAKEFILE! + ./configure CFLAGS="-fno-strict-aliasing -fPIC -Wall -pipe $(DEBUGFLAGS)" $(CONFFLAGS) \ + --with-extraident=$(EXTRA_IDENT) \ + --prefix=/usr/share --exec-prefix=/usr --libexecdir=/usr/sbin \ + --bindir=/usr/sbin --sbindir=/usr/sbin \ + --includedir=/usr/include/cyrus \ + --datadir=/usr/share/cyrus --sysconfdir=/etc \ + --with-statedir=/var/state \ + --sharedstatedir=/usr/share/cyrus \ + --localstatedir=/var/lib/cyrus \ + --mandir=/usr/share/man \ + --with-cyrus-prefix=/usr/lib/cyrus --with-lock=fcntl \ + --with-perl=/usr/bin/perl \ + --with-openssl=/usr --with-auth=unix \ + --enable-murder --enable-nntp \ + --disable-listext --enable-annotatemore --with-sasl=/usr \ + --with-drac=/usr \ + --with-cyrus-user=cyrus --with-cyrus-group=mail \ + --with-tclsh=/usr/bin/tclsh --with-com_err="" \ + --with-pidfile=/var/run/cyrmaster.pid \ + --with-syslogfacility=MAIL \ + --with-seen-db=skiplist --with-mboxlist-db=skiplist \ + --enable-gssapi --with-gss_impl=heimdal \ + --with-ucdsnmp=/usr \ + --with-ldap=/usr + if grep -q "WARNING: Disabling GSSAPI" config.log ; then \ + echo "ERROR: GSSAPI not found by configure" >&2 ;\ + exit 1 ;\ + fi + echo 'To build this package, configure was called as follows:' \ + > debian/README.configure-options + grep with\ options config.status \ + | sed -e 's/^.*options \\"/configure /;s/\\"$///' \ + >> debian/README.configure-options + sed -i 's/ -lsensors//' master/Makefile + touch configure-stamp + +build-arch: build-arch-stamp +build-arch-stamp: configure-stamp + dh_testdir + # + PERL_MM_OPT="INSTALLDIRS=vendor" $(MAKE) + # store database configuration for possible automatic + # upgrading later + echo "DBENGINE $(DBENGINE)" >>debian/cyrus-db-types.txt + grep _db lib/imapoptions \ + | cut -d, -f1-2 | sed -e 's/{ "//;s/_db", "/ /;s/"$$//' \ + | sed -e 's/^tls.* /TLS /;s/^subs.* /SUBS /;s/^seen.* /SEEN /;s/^pts.* /PTS /;s/^mbox.* /MBOX /'\ + | awk '{printf("%s %s\n",toupper($$1),$$2);}' \ + >>debian/cyrus-db-types.txt + mv debian/cyrus-db-types.txt debian/cyrus-db-types.txt.old \ + && sort -u < debian/cyrus-db-types.txt.old > debian/cyrus-db-types.txt \ + && rm debian/cyrus-db-types.txt.old + # + # store some useful state about the current package + echo "PACKAGE_VERSION $(DEBVERSION)" >debian/cyrus-hardwired-config.txt + if grep -q -s -n -E '^[[:space:]]*#define[[:space:]]+USE_DIR_FULL[[:space:]]+1' config.h ; then \ + echo "USE_DIR_FULL 1" >>debian/cyrus-hardwired-config.txt ;\ + else \ + echo "USE_DIR_FULL 0" >>debian/cyrus-hardwired-config.txt ;\ + fi + touch build-arch-stamp + +# We aren't actually able to build arch-indep independently from +# arch-dep, so we guarantee that the arch build has been done first +build-indep: build-indep-stamp +build-indep-stamp: configure-stamp build-arch-stamp + dh_testdir + cd doc &&\ + pod2man ../perl/sieve/scripts/sieveshell.pl > ../man/sieveshell.1 &&\ + fig2dev -L png murder.fig murder.png &&\ + rm -f groff-html-*.png pod2htm* + cd doc &&\ + mkdir -p man &&\ + for man in ../man/*.[1-9] ../debian/*.[1-9]; do \ + echo "Generating html manpage for $$man..."; \ + groff -man -Thtml $$man > man/`basename $$man`.html; \ + done + pod2html perl/imap/cyradm.sh > doc/man/cyradm.1.html + rm -f pod2htm* + touch build-indep-stamp + +install-arch: build-arch-stamp + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs -a + $(MAKE) install DESTDIR=$(TMPPKG) + # fix totaly broken location of the include files; + # while at it, also avoid namespace colision, and move + # lots of admin-only/system-only stuff to sbin and lib + # also, do the renaming needed for alternatives + # and fix the weird side-effect of setting the proper cyrus + # location in configure. + mkdir -p $(TMPPKG)/usr/sbin + mkdir -p $(TMPPKG)/usr/lib/cyrus + for i in master reconstruct quota deliver ; do \ + mv $(TMPPKG)/usr/lib/cyrus/bin/$$i $(TMPPKG)/usr/sbin/cyr$$i ;\ + done + for i in mbpath ctl_mboxlist ctl_deliver ctl_cyrusdb squatter \ + tls_prune ipurge cyrdump cvt_cyrusdb chk_cyrus arbitron \ + cyr_expire; do \ + mv $(TMPPKG)/usr/lib/cyrus/bin/$$i $(TMPPKG)/usr/sbin/$$i ;\ + done + mkdir -p $(TMPPKG)/usr/include + mv $(TMPPKG)/usr/share/include/cyrus $(TMPPKG)/usr/include + #mv $(TMPPKG)/bin/* $(TMPPKG)/usr/bin + # Move the perl crap to a saner place + mkdir -p $(TMPPKG)/usr/lib + mkdir -p $(TMPPKG)/usr/share/perl5 + #mv $(TMPPKG)/lib/perl5/Cyrus $(TMPPKG)/usr/share/perl5/Cyrus + #mv $(TMPPKG)/lib/* $(TMPPKG)/usr/lib + # for stuff in /etc + mkdir -p $(TMPPKG)/etc/cyrus $(TMPPKG)/etc/pam.d + install -m 644 debian/imapd.conf $(TMPPKG)/etc + install -m 644 debian/cyrus.conf $(TMPPKG)/etc + (cd debian ; for i in *.pam ;\ + do install -m 644 $$i $(TMPPKG)/etc/pam.d/$${i%.pam} ;\ + done) + # We rename some utils, so we need to sort out the manpages + for i in master reconstruct quota deliver ; do \ + mv $(TMPPKG)/usr/share/man/man8/$$i.8 $(TMPPKG)/usr/share/man/man8/cyr$${i}.8 ; \ + done + # And add our own manpages + mkdir -p $(TMPPKG)/usr/share/man/man8 + install -m 644 debian/cyrdump.8 $(TMPPKG)/usr/share/man/man8/cyrdump.8 + install -m 644 debian/arbitronsort.8 $(TMPPKG)/usr/share/man/man8/arbitronsort.8 + # SNMP files + mkdir -p $(TMPPKG)/usr/share/snmp/mibs + install -m 644 master/CYRUS-MASTER.mib $(TMPPKG)/usr/share/snmp/mibs/CYRUS-MASTER-MIB.txt + # Install cyradm icons + mkdir -p $(TMPPKG)/usr/share/icons/mini + install -m 644 debian/cyradm-32x32.xpm $(TMPPKG)/usr/share/icons/cyradm.xpm + install -m 644 debian/cyradm-16x16.xpm $(TMPPKG)/usr/share/icons/mini/cyradm.xpm + # Install debian-provided scripts + install -m 644 debian/get-backtrace.gdb $(TMPPKG)/usr/lib/cyrus/get-backtrace.gdb + # Install the stuff needed for upgrades + for i in convert-sieve.pl dohash rehash undohash translatesieve \ + upgradesieve masssievec; do \ + install -m 755 tools/$$i $(PKGDIR)/usr/lib/cyrus/upgrade ;\ + done + install -m 644 debian/cyrus-db-types.upgrading_from_1.5.txt $(PKGDIR)/usr/lib/cyrus/upgrade + # And other upgrade helpers + install -m 644 debian/cyrus-db-types.txt debian/cyrus-hardwired-config.txt \ + $(PKGDIR)/usr/lib/cyrus + # And other misc useful tools + install -m 755 tools/arbitronsort.pl $(TMPPKG)/usr/sbin/arbitronsort + # Install imtest and its symlinks + mv $(TMPPKG)/usr/bin/imtest $(CURDIR)/debian/cyrus-clients-2.2/usr/bin + for i in $(TMPPKG)/usr/bin/*test ; do \ + rm -f "$$i" || true ;\ + (cd $(CURDIR)/debian/cyrus-clients-2.2/usr/bin &&\ + ln -s imtest `basename $$i`) ;\ + done + dh_install -a --sourcedir=$(TMPPKG) + touch install-arch-stamp + +# We aren't actually able to install arch-indep independently from +# arch-dep, so we guarantee that the arch build has been done first +install-indep: build-indep-stamp install-arch + dh_testdir + dh_testroot + #dh_clean -k + dh_installdirs -i + # + # Massage the documentation into place + #mkdir -p $(DOCDIR) + #find doc/text -name '[Ra-z]*' -type f -exec cp -f {} $(PKGDIR)/usr/share/doc/$(MAINPKG) \; + #-(cd $(PKGDIR)/usr/share/doc/$(MAINPKG) && rm copyrights changes htmlstrip.c) + #find $(PKGDIR)/usr/share/doc/$(MAINPKG) -type f ! -name '*txt' ! -name '*.*' -exec mv {} {}.txt \; + # + # Install the html docs and examples + mkdir -p $(DOCDIR)/html + install -m 644 doc/*.html doc/murder.png $(DOCDIR)/html + cp -a doc/man $(DOCDIR)/html + cp -a debian/examples $(DOCDIR) + install -m 644 doc/cyrusv2.mc $(DOCDIR)/examples + # + # Install contrib/ files + mkdir -p $(DOCDIR)/contrib + xargs < debian/cyrus-common-2.2.contrib -rti cp -r '{}' $(DOCDIR)/contrib + # + dh_install -i --sourcedir=$(TMPPKG) + find debian/cyrus-doc-2.2/usr/share/doc/cyrus-doc-2.2 -name .svn | xargs -r rm -rf + +binary-indep: install-indep + dh_testdir -i + dh_testroot -i +# dh_installdebconf -i + dh_installdocs -p cyrus-admin-2.2 -p cyrus-doc-2.2 + dh_installexamples -p cyrus-admin-2.2 + dh_installmenu -i +# dh_installlogrotate -i +# dh_installpam -i +# dh_installmime -i +# dh_installcron -i + dh_lintian -i + dh_installman -i + dh_installchangelogs -p cyrus-admin-2.2 doc/changes.html + dh_installchangelogs -p cyrus-doc-2.2 + dh_strip -i + dh_link -i + dh_compress -i + dh_fixperms -i + dh_makeshlibs -i + dh_installdeb -i + dh_perl -i + dh_shlibdeps -i + dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i + +binary-arch: install-arch + dh_testdir -a + dh_testroot -a + dh_installdebconf -a + dh_installdocs -p $(MAINPKG) -p cyrus-clients-2.2 -p libcyrus-imap-perl22 + dh_installexamples -p $(MAINPKG) -p libcyrus-imap-perl22 -p cyrus-clients-2.2 + dh_installmenu -a +# dh_installlogrotate -a +# dh_installpam -a +# dh_installmime -a + dh_installinit -p $(MAINPKG) --onlyscripts --name=cyrus-imapd + dh_installcron -a --name=cyrus22 + dh_installman -a +# dh_installinfo -a + dh_lintian -a + dh_installchangelogs -p $(MAINPKG) -p cyrus-clients-2.2 doc/changes.html + dh_installchangelogs -p libcyrus-imap-perl22 perl/imap/Changes + dh_fixperms -a + dh_strip -a + dh_link -a + dh_compress -a + dh_fixperms -a + dh_makeshlibs -a + dh_installdeb -a + dh_perl -a + dh_shlibdeps -a + dh_gencontrol -a + dh_md5sums -a + dh_builddeb -a + +binary: binary-indep binary-arch +.PHONY: build build-indep build-arch clean binary-indep binary-arch binary install-arch install-indep --- cyrus-imapd-2.2-2.2.13p1.orig/debian/compat +++ cyrus-imapd-2.2-2.2.13p1/debian/compat @@ -0,0 +1 @@ +5 --- cyrus-imapd-2.2-2.2.13p1.orig/debian/copyright +++ cyrus-imapd-2.2-2.2.13p1/debian/copyright @@ -0,0 +1,78 @@ +$Id$ + +This package was debianized by Henrique de Moraes Holschuh on +Wed Sep 12 09:35:30 BRT 2001, based on previous work by Michael-John Turner + and David Parker . + +The Debian packaging of Cyrus IMAPd v2.2 is: + Copyright (c) 2002-2006 by Henrique de Moraes Holschuh , + Sven Mueller , + Benjamin Seidenberg + and distributed in the same license as the upstream source it applies to. + +The debian packages are maintained in a subversion repository at: + https://mail.incase.de/svn/cyrus22/ + +Upstream sources are at: ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/. + +Upstream Author: Carnegie Mellon University +Upstream bugs: http://bugzilla.andrew.cmu.edu/ + +Patches: +The Debian version of Cyrus IMAP is heavily patched to adequate it to Debian, +and sometimes to add functionality. All such patches are submitted upstream to +CMU, for proper inclusion in Cyrus -- but not all of them will be accepted, of +course. See README.Debian for more details. Also, many patches from the +current CVS release of Cyrus IMAPd are folded in Debian updates; these are +identified by "patchset" numbers, created by the cvsps utility. + +The IPv6 patch by Hajimu UMEMOTO has been applied. + +CMU release tarballs are often repacked minus the CVS/ directories to avoid +problems in my build system. + +Copyright: +ALL versions of the Cyrus IMAP server are now covered by the +following copyright notice: + + * Copyright (c) 1994-2000 Carnegie Mellon University. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The name "Carnegie Mellon University" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For permission or any legal + * details, please contact + * Office of Technology Transfer + * Carnegie Mellon University + * 5000 Forbes Avenue + * Pittsburgh, PA 15213-3890 + * (412) 268-4387, fax: (412) 268-7395 + * tech-transfer@andrew.cmu.edu + * + * 4. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by Computing Services + * at Carnegie Mellon University (http://www.cmu.edu/computing/)." + * + * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE + * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +For more information, see http://asg.web.cmu.edu/cyrus/imapd/license.html +(local copy stored in /usr/share/doc/cyrus2-common/license.html) + --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-imapd-2.2.install +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-imapd-2.2.install @@ -0,0 +1,4 @@ +etc/pam.d/imap +usr/lib/cyrus/bin/imapd +usr/lib/cyrus/bin/idled +usr/sbin/squatter --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyradm-16x16.xpm +++ cyrus-imapd-2.2-2.2.13p1/debian/cyradm-16x16.xpm @@ -0,0 +1,45 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"16 16 23 1", +" c Gray0", +". c #191919", +"X c Gray20", +"o c #00007f", +"O c #007f00", +"+ c #007f7f", +"@ c #7f0000", +"# c #7f007f", +"$ c #7f7f00", +"% c #4c4c4c", +"& c #666667", +"* c Gray50", +"= c Blue", +"- c Green", +"; c Cyan", +": c Red", +"> c Magenta", +", c Yellow", +"< c Gray60", +"1 c #b2b2b2", +"2 c Gray80", +"3 c Gray90", +"4 c Gray100", +/* pixels */ +"22111;1212211111", +"211221213<121221", +"2111212232<11122", +"121121221<231<11", +"2112232<34334112", +"1112222243213212", +";2221<11*&<<*<<1", +"1221233323232231", +"2233223333332&1<", +"2213123333233*1*", +"123312121222233*", +"1233212<<213223<", +"12331<1<<11<123*", +"123333322222223*", +"123223322222323*", +"2<&%%%X%%%%X%%X%" +}; --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-common-2.2.preinst +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-common-2.2.preinst @@ -0,0 +1,10 @@ +#!/bin/sh + +set -e + +#DEBHELPER# + +dpkg-maintscript-helper mv_conffile /etc/init.d/cyrus2.2 /etc/init.d/cyrus-imapd 2.2.13p1-1 -- "$@" +dpkg-maintscript-helper mv_conffile /etc/default/cyrus2.2 /etc/default/cyrus-imapd 2.2.13p1-1 -- "$@" + +exit 0 --- cyrus-imapd-2.2-2.2.13p1.orig/debian/README.sendmail +++ cyrus-imapd-2.2-2.2.13p1/debian/README.sendmail @@ -0,0 +1,69 @@ +Setting up Cyrus IMAPd for Sendmail (Debian) +$Id$ +=========================================================== + +[This is user-contributed, unverified information] + +First, do *not* use the old cyrus*.m4 macros, they won't work well. The one +you can use is cyrusv2.m4. There are many methods of connecting Cyrus to +sendmail, and replacing the local mailer with Cyrus lmtpd is just one of +them. + +Andrzej Filip says: +http://anfi.homeunix.net/sendmail/localNalias.html + Cyrus Aliases + It allows to use user@CYRUS redirections in virtusertable, + aliases and .forward file e.g. I use the following ~anfi/.forward: + anfi@CYRUS + +http://anfi.homeunix.net/sendmail/localtab.html + Local Table + +http://anfi.homeunix.net/sendmail/rtcyrus2.html + Real Time Cyrus Integration + It allows sendmail to check presence of cyrus mailbox in real time, + sendmail rejects message to non existing cyrus mailboxes in reply to + "RCPT TO:" + + +I am not sure how well these will work with sieve. The one report I have +for Cyrus + sendmail with working sieve is: + +"cyrus/sieve vacation seems to work only if you integrate cyrus via +cyrusv2.m4 into sendmail (8.12.3-4)." + +Sample sendmail.mc that seems to work: +-------- +[...] +dnl define BIND_OPTS',`-DNSRCH -DEFNAMES')dnl +define(`confLOCAL_MAILER', `cyrusv2')dnl +MAILER(`local')dnl +MAILER(`smtp')dnl +MAILER(`cyrusv2')dnl +dnl MODIFY_MAILER_FLAGS(`cyrus',`+w')dnl + +LOCAL_RULE_0 +Rbb + $+ < @ $=w . > $#cyrusbb $: $1 +[...] +-------- + +Here's a sieve test script you can try. Change it as needed for your +site: + +require "fileinto"; +require "vacation"; +require "envelope"; + +if header :contains "subject" "vactest" { + vacation :days 7 :addresses ["me@home.de"] "vactest!"; +} + + +Pierre Gambarotto says: +The minimum in order to make it work with sendmail is: + +define(`confLOCAL_MAILER', `cyrusv2') +define(`CYRUSV2_MAILER_ARGS',`FILE /var/run/cyrus/socket/lmtp') +MAILER(`cyrusv2') + +The CYRUSV2_MAILER_ARGS is the key. --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-clients-2.2.manpages +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-clients-2.2.manpages @@ -0,0 +1 @@ +man/*test.1 --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-db-types.upgrading_from_1.5.txt +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-db-types.upgrading_from_1.5.txt @@ -0,0 +1,6 @@ +DBENGINE BerkeleyDB3.2 +DUPLICATE db3_nosync +MBOX db3 +SEEN db3 +SUBS flat +TLS db3_nosync --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-doc-2.2.docs +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-doc-2.2.docs @@ -0,0 +1,2 @@ +debian/UPGRADE.Debian +debian/README.* --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-admin-2.2.README.Debian +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-admin-2.2.README.Debian @@ -0,0 +1,9 @@ +Cyrus IMAP for Debian, admin utilities +$Id$ +--------------------- + +Refer to the cyrus-doc-2.2 package for more information. There is a lot +of it, and it will save you hours (or days) of frustating bug-hunting if +you read them first. + + -- Henrique de Moraes Holschuh --- cyrus-imapd-2.2-2.2.13p1.orig/debian/lmtp.pam +++ cyrus-imapd-2.2-2.2.13p1/debian/lmtp.pam @@ -0,0 +1,14 @@ +# PAM configuration file for Cyrus LMTP service +# $Id$ +# +# If you want to use Cyrus in a setup where users don't have +# accounts on the local machine, you'll need to make sure +# you use something like pam_permit for account checking. +# +# Remember that SASL (and therefore Cyrus) accesses PAM +# modules through saslauthd, and that SASL can only deal with +# plaintext passwords if PAM is used. +# + +@include common-auth +@include common-account --- cyrus-imapd-2.2-2.2.13p1.orig/debian/logcheck.violations.ignore +++ cyrus-imapd-2.2-2.2.13p1/debian/logcheck.violations.ignore @@ -0,0 +1,8 @@ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/(lmtp|lmtpunix)\[[0-9]+\]: IOERROR: fstating sieve script [/a-zA-Z^]+/defaultbc: No such file or directory$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/lmtpunix\[[0-9]+\]: WARNING: sieve script %s doesn't exist: [._/a-zA-Z^-]+/defaultbc: No such file or directory +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/(imaps?|pop3s?|lmtp|lmtpunix)\[[0-9]+\]: SQUAT failed to open index file$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/(imaps?|pop3s?|lmtp|lmtpunix)\[[0-9]+\]: SQUAT failed$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/(imaps?|pop3s?|lmtp|lmtpunix)\[[0-9]+\]: DBERROR db[34]: [0-9]+ lockers$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/(imaps?|pop3s?)\[[0-9]+\]: (START)?TLS( negotiation)? failed: +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ cyrus/(lmtp|lmtpunix)\[[0-9]+\]: duplicate_(check|mark): .*$ + --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-dev-2.2.dirs +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-dev-2.2.dirs @@ -0,0 +1,2 @@ +usr/include/cyrus +usr/lib --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-admin-2.2.install +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-admin-2.2.install @@ -0,0 +1,4 @@ +usr/bin/cyradm +usr/bin/sieveshell +usr/bin/installsieve +usr/share/icons/* --- cyrus-imapd-2.2-2.2.13p1.orig/debian/README.source +++ cyrus-imapd-2.2-2.2.13p1/debian/README.source @@ -0,0 +1,29 @@ +Debian packages for cyrus-imapd-2.2 use the dpatch patch system. + +If you are not familiar with this patch system, this document provides you +with a very short description of how to patch the sources. It assumes that +you want to add a patch on top of what the package already contains, not that +you want to edit one of the existing patches. + +1) cd to the main source directory (the one containing debian/) +3) Tell dpatch that you intend to edit your patch: + dpatch-edit-patch patch 99_your.dpatch \ + 99-update-autoconf.dpatch \ + --description="Description of your patch" \ + --add2list + That command will create the new patch as file + debian/patches/99_your.dpatch, adding the Description to the patch header, + apply all patches up to 99-update-autoconf.dpatch, add your patch to the + list of patches that are to be applied on build and open a shell for you + in which you can do the edits. + If you want to edit your patch again later on, the first line of the above + multiline command will suffice. +4) Do the edits you want to do and exit the shell with an + exit code of 0 (a plain "exit" will do that). If you want + to abort your edit, use "exit 230". +5) Once finished, run "dpatch deapply-all" to unpatch the whole tree again + (i.e. return to an unpatched source, preserving your edits as + debian/patches/99_your.dpatch, which is now listed in debian/patches/00list + and will be applied automatically on package builds). + +Document your patch in debian/changelog, please. --- cyrus-imapd-2.2-2.2.13p1.orig/debian/watch +++ cyrus-imapd-2.2-2.2.13p1/debian/watch @@ -0,0 +1,2 @@ +version=2 +ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-imapd-(2\.2\..*).tar.(?:gz|bz2) --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-common-2.2.NEWS +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-common-2.2.NEWS @@ -0,0 +1,86 @@ +cyrus22-imapd (2.2.12-1) unstable; urgency=low + + cyrus now supports realms by default and is therefor suitable for virtual + domains much better than it was before. However, this might break upgrades + from v2.1 installations, especially when the hostname might change during + operation (for example in hot-standby high-Availability setups). + + This is the first cyrus22 package + + -- Sven Mueller Sun, 13 Feb 2005 00:49:12 -0100 + +cyrus21-imapd (2.1.16-1) unstable; urgency=low + + ipurge behaviour is now that of the patch accepted upstream. It uses the + date: header by default, and it can use the internal date of the message as + an alternative. + + Cyrus 2.1 is officially in maintenance mode now, and the Debian packages will + follow suit. I will switch development efforts to the Cyrus 2.2 package, and + update 2.1 only to fix bugs, and apply anything that shows up on CVS. + + -- Henrique de Moraes Holschuh Sun, 23 Nov 2003 11:59:12 -0200 + +cyrus21-imapd (2.1.15-8) unstable; urgency=low + + ipurge has been patched in a way that changes its default behaviour. Now, it + uses the internal date of the message (i.e. when it entered the mail store, + be it through lmtp or imap append) instead of the Date: header for date + comparasions. + + The old behaviour is still available, refer to the ipurge manpage for more + information. + + These changes have not been accepted upstream yet, so I don't promise they + will stay around forever. + + -- Henrique de Moraes Holschuh Tue, 21 Oct 2003 13:18:30 -0200 + +cyrus21-imapd (2.1.15-1) unstable; urgency=low + + Cyrus has a big bug regarding EOL markers for /usr/sbin/sendmail. It sends + CRLF-terminated lines to the /usr/sbin/sendmail wrapper (or to whatever you + configure for sendmail: in /etc/imapd.conf), when it should be sending + LF-terminated lines only. + + Postfix and sendmail are fine with CRLF EOLs. Exim 4 can be configured + to strip the CRs off all the time in its configuration file. + + I am writing a patch to allow one to configure parameters for sendmail, but + while it is not ready and accepted upstream, users of Exim 3 should set + their sendmail: in imapd.conf to a shell wrapper that calls + /usr/sbin/sendmail -dropcr "$@" or something to that extent. + + -- Henrique de Moraes Holschuh Tue, 19 Aug 2003 07:40:40 -0300 + +cyrus21-imapd (2.1.14-1) unstable; urgency=low + + Initial instance of NEWS.Debian support. This file will be used to note all + changes the local admin must do to a Cyrus system when upgrading. + + Upgrading checklist for recent 2.1.x packages: + + 1. timsieved was corrected to behave properly in the altnamespace + configuration. However, this means that it was previously looking for + sieve scripts in "user.name" format instead of the (correct) "user^name" + format. A sample script to do this (which should be run in the top level + of the sieve directories) is in /usr/lib/cyrus/upgrade/convert-sieve.pl. + Note that this is only needed if you are running with altnamespace turned + on. + + 2. We are now more forgiving of MIME boundry headers generated by earlier + versions of eudora by default (you can switch to the more strict checks + that used to be the default using the rfc2046_strict imapd.conf(5) + option. + + However, if you have messages already in the mailstore that you want to + fix you will need to reconstruct the affected mailboxes to regenerate + the cached bodystructure data to take this into account. Nothing needs + to be done for new messages to be treated in this way. + + + Upgrading checklist for old Cyrus 1.5 or 1.6: + + Read /usr/share/doc/cyrus21-common/UPGRADE.Debian.gz + + -- Henrique de Moraes Holschuh Fri, 4 Jul 2003 10:10:53 -0300 --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-nntpd-2.2.install +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-nntpd-2.2.install @@ -0,0 +1,3 @@ +etc/pam.d/nntp +usr/lib/cyrus/bin/fetchnews +usr/lib/cyrus/bin/nntpd --- cyrus-imapd-2.2-2.2.13p1.orig/debian/libcyrus-imap-perl22.install +++ cyrus-imapd-2.2-2.2.13p1/debian/libcyrus-imap-perl22.install @@ -0,0 +1,2 @@ +usr/lib/perl* +usr/share/perl* --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-dev-2.2.install +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-dev-2.2.install @@ -0,0 +1,3 @@ +usr/lib/*.a +usr/include/cyrus/* +usr/share/man/man3/imclient* --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-imapd-2.2.manpages +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-imapd-2.2.manpages @@ -0,0 +1,3 @@ +debian/tmp/usr/share/man/man8/idled.8 +debian/tmp/usr/share/man/man8/imapd.8 +debian/tmp/usr/share/man/man8/squatter.8 --- cyrus-imapd-2.2-2.2.13p1.orig/debian/executable.files +++ cyrus-imapd-2.2-2.2.13p1/debian/executable.files @@ -0,0 +1,41 @@ +./autogen.sh +./configure +./contrib/cyrus-graphtools.1.0/cgi-bin/cyrus_master.pl +./contrib/cyrus-graphtools.1.0/cgi-bin/graph_cyrus_db-sum.pl +./contrib/cyrus-graphtools.1.0/cgi-bin/graph_cyrus_db.pl +./contrib/cyrus-graphtools.1.0/script/cyrus.pl +./contrib/cyrus-graphtools.1.0/script/run +./contrib/mupdate-test.pl +./contrib/notify_unix/simple_notify.pl +./contrib/notify_unix/sql_notify.pl +./debian/cyrus-common-2.2.cyrus2.2.init +./debian/cyrus-common-2.2.postinst +./debian/cyrus-common-2.2.postrm +./debian/cyrus-common-2.2.prerm +./debian/examples/mboxtocyrus +./debian/rules +./doc/internal/internationalization.html +./et/compile_et.sh +./et/config_script +./imap/xversion.sh +./install-sh +./lib/test/run +./makedepend/configure +./makedepend/install-sh +./mkinstalldirs +./netnews/inn.diffs +./perl/imap/examples/test-imsp.pl +./snmp/snmpgen +./tools/arbitronsort.pl +./tools/config2header +./tools/config2man +./tools/dohash +./tools/masssievec +./tools/mkimap +./tools/mknewsgroups +./tools/mupdate-loadgen.pl +./tools/not-mkdep +./tools/rehash +./tools/translatesieve +./tools/undohash +./tools/upgradesieve --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-nntpd-2.2.links +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-nntpd-2.2.links @@ -0,0 +1 @@ +usr/share/doc/cyrus-common-2.2 usr/share/doc/cyrus-nntpd-2.2 --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-admin-2.2.dirs +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-admin-2.2.dirs @@ -0,0 +1 @@ +usr/bin --- cyrus-imapd-2.2-2.2.13p1.orig/debian/libcyrus-imap-perl22.lintian +++ cyrus-imapd-2.2-2.2.13p1/debian/libcyrus-imap-perl22.lintian @@ -0,0 +1 @@ +libcyrus-imap-perl22: package-installs-nonbinary-perl-in-usr-lib-perl5 --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-clients-2.2.dirs +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-clients-2.2.dirs @@ -0,0 +1 @@ +usr/bin --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyradm-32x32.xpm +++ cyrus-imapd-2.2-2.2.13p1/debian/cyradm-32x32.xpm @@ -0,0 +1,61 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"32 32 23 1", +" c Gray0", +". c #191919", +"X c Gray20", +"o c #00007f", +"O c #007f00", +"+ c #007f7f", +"@ c #7f0000", +"# c #7f007f", +"$ c #7f7f00", +"% c #4c4c4c", +"& c #666667", +"* c Gray50", +"= c Blue", +"- c Green", +"; c Cyan", +": c Red", +"> c Magenta", +", c Yellow", +"< c Gray60", +"1 c #b2b2b2", +"2 c Gray80", +"3 c Gray90", +"4 c Gray100", +/* pixels */ +"222111112;2112121222111112112121", +"121112;2112211223+11212111121111", +"221112222112111333+221121221112;", +"2112111211222133333&12222;212222", +"11111112212122333323$221+2121211", +"212121112122333%3 332&41%1111121", +";212112;22132233211%44443&112211", +"2211222222233.3112344444442112;2", +"11111211133321114444441444%22121", +"1212222133311 444444*%4444%22212", +"211112233111444444:4334%444%2111", +";11222331 433223* 2332%322231112", +"222213&&11&*&&%#%%# %&#% #%&221", +"12233343434444434444344444443311", +"113&2&&&3333333333333332222333+2", +"2133333333333333332333232X**23%o", +"22344333333333232233222221#*24.%", +"124#&34#�:.#24.%", +"223333333333333333322332332224.%", +"214333333323333323322222322224.X", +"11333333 &23X&2&&3223223222234.X", +"123334433333333333222232223234.%", +"12333333&2X12X& &13X2322322134.%", +"123333333233333332333222222224.X", +"21333332&&&1&X2 3&&3X&&X222234.X", +"213333333333323222222222222134.%", +"123333333333332223322322222134.X", +"113333233233232332232222322324.X", +"223334434434444444434434444444.%", +"12 . . .X", +"2112%%%%o%%X%%o%X%%%o%X%X%oXXo%%", +"11121222122212122122122122222222" +}; --- cyrus-imapd-2.2-2.2.13p1.orig/debian/README.exim +++ cyrus-imapd-2.2-2.2.13p1/debian/README.exim @@ -0,0 +1,66 @@ +Setting up Cyrus IMAPd for Exim +$Id$ +=========================================================== + +This is very incomplete information, if you are an exim user, please send +in a more complete document. + + +General configuration hints (configuration examples assume you are using +the Debian Exim4 configuration scheme and paths are relative to +/etc/exim4): + +1. Use Exim version 4. Exim version 3 just doesn't cut it in the lmtp + area, which is very important for performance when dealing with Cyrus + IMAPd. + +2. Use the LMTP transport to deliver using a unix socket (fastest), or + the SMTP transport in LMTP mode to deliver over a TCP/IP socket. + + For local delivery over a unix socket, add a file into conf.d/transports + with the following: + + cyrus_delivery: + driver = lmtp + socket = /var/run/cyrus/socket/lmtp + batch_max = 20 + user = mail + + (set batch_max to whatever is best for your setup, and make sure you + allow enough Cyrus lmtp processes to serve that many lmtp connections) + + If that doesn't work, I suggest you create a group for lmtp delivery, + add whichever user exim is running as to it, and use dpkg-statoverride + to make /var/run/cyrus/socket/lmtp writeable by that group. + + To then deliver to Cyrus, you will need to comment out the check_local_user + stanza in conf.d/router/900_exim4-config_local_user (the entire file), and + change the dc_localdelivery variable in /etc/exim4/update-exim4.conf.conf to + 'cyrus_delivery'. + + If you still want to deliver some messages to a mail spool then create + conf.d/router/899_exim4-config_copy_to_mbox and put this in it, changing + the local_parts as necessary: + + copy_to_mbox: + debug_print = "R: copy_to_mbox for $local_part@$domain" + driver = accept + unseen + local_parts = postmaster + transport = mail_spool + + This will deliver postmaster mail to both cyrus and + /var/mail/postmaster. You can comment the unseen option to have it only + deliver once to the mail_spool. If you don't set check_local_user or + the user option the spool files will be owned by mail. + +3. Kill any NULs (ASCII 0x00) inside the message, if you don't want Cyrus + to bounce such malformed crap. Calling "tr -d '\000'" as a filter might + do the trick. + +4. Sieve often needs to set -f option on /usr/sbin/sendmail when doing + redirects. Exim allows only trusted_users to do this. It is recommended + that you make sure "cyrus" is in the list of trusted_users in + conf.d/main/02_exim4-config_options: + trusted_users = uucp:cyrus + --- cyrus-imapd-2.2-2.2.13p1.orig/debian/README.Debian.database +++ cyrus-imapd-2.2-2.2.13p1/debian/README.Debian.database @@ -0,0 +1,132 @@ +Cyrus IMAP for Debian: Database backend conversion +$Id$ +-------------------------------------------------- + + "All systems administrators have their horror stories. For me, it was + setting up a HP Color Bubblejet under Linux using ghostscript before + linuxprinting.org was alive. Well that was a piece of cake compared + to what I am about to describe in this document." + -- "Hosting email for virtual domains using Postfix and Cyrus" + Haim Dimermanas, 2001-08-01 + + "I warned you to read all the documentation first, didn't I?" + -- Henrique M. Holschuh, 2002-10-01 + +For more information, please consult http://asg.web.cmu.edu/cyrus/imapd/. +There is also Cyrus-HOWTO (Cyrus-IMAP.txt) available as part of the LDP HOWTO +collection. Upgrade hints are in UPGRADE.Debian. Outdated documentation will +cause you much grief, so beware of that when hunting anywhere else than the +Cyrus mailinglist for information. + + +Database backends +----------------- + +Cyrus can be compiled to use different types of database backends for each of +its databases. The package will warn you if you try to start Cyrus and the +database backends seem to have changed since the last active version. + +After converting all the mail stores and /var/lib/cyrus to use the proper +database backends using cvt_cyrusdb(8), remove +/usr/lib/cyrus/cyrus-db-types.active and run "dpkg-reconfigure cyrus-common-2.2" +once to reset the error trigger, and start cyrmaster. + +If cvt-cyrusdb locks up just at the beginning of the conversion, your databases +might be locked. Unlock them (i.e. REALLY stop Cyrus if it is still running, +use the db* utilities (from the older Berkeley DB version) to clean any stray +locks, or try a reboot). + +IMPORTANT: If you changed the type of any of the databases through imapd.conf, + cyrus-db-types.txt isn't updated to match those. Be sure to cross-check + imapd.conf if you did that. + + +Step-by-step conversion guide: + +1. Stop the Cyrus system + /etc/init.d/cyrus2.2 stop + +2. Find out which databases to convert: + diff -u /usr/lib/cyrus/cyrus-db-types.active \ + /usr/lib/cyrus/cyrus-db-types.txt + + The databases are these in the default install: + DUPLICATE /var/lib/cyrus/deliver.db + MBOX /var/lib/cyrus/mailboxes.db + TLS /var/lib/cyrus/tls_sessions.db + + Don't bother upgrading the TLS database, just delete it: the information + there is not reused when you stop Cyrus. + + If the BerkeleyDB version is what was changed, you need to use the + Berkeley DB upgrade utility in all db* databases. See the manpages for + db*_upgrade. Note that you need to use the db*_upgrade utility with the + same version as given on the DBENGINE line of cyrus-db-types.txt. + You should look for lines with 'berkeley' or 'berkeley_nosync' on + the right side. You can safely ignore lines with 'flat', 'skiplist' or + 'quotalegacy'. + The db*_upgrade utility (along with its manpage) is typically included + in the db*-util packages (for example, db4.7-util package for BerkeleyDB + 4.7s db4.7_upgrade). + + The SUBS and SEEN databases are different: there are many of them (one + for every user for SEEN and SUBS respectively) and you need to convert + every single one of them. + + SUBS /var/lib/cyrus/...../*.sub + SEEN /var/lib/cyrus/...../*.seen + + For Cyrus 1.x versions, these files are in /var/spool/cyrus/...../ + + SUBS contains the subscribed folders, and SEEN contains the seen state + of every mail in a folder. + + Types db3_nosync and db3 are the same for database conversion matters. + +2.1 Converting from DB* to SKIPLIST + + As user cyrus, do the following: + + cd / + /usr/sbin/cvt_cyrusdb db3 \ + /var/lib/cyrus/temp.db flat + rm -f + /usr/sbin/cvt_cyrusdb /var/lib/cyrus/temp.db flat \ + skiplist + chown cyrus:mail + rm -f /var/lib/cyrus/temp.db + +2.2 Converting from FLAT to SKIPLIST + + As user cyrus, do the following: + + cd / + mv .old + /usr/sbin/cvt_cyrusdb .old flat \ + skiplist + chown cyrus:mail + rm -f .old + +2.3 SUBS and SEEN databases + + I suggest using a small shell script and using "find" to mass-convert + the SEEN databases: + find /var/lib/cyrus -type f -name '*.seen' -exec myshellscript {} \; + + The "find" command above gives you the name of the database as "$1" + inside your shell script. + +3. Reset the database backend change system + rm /usr/lib/cyrus/cyrus-db-types.active + dpkg-reconfigure cyrus-common-2.2 + +4. Start Cyrus, if not started by step 3 + /etc/init.d/cyrus2.2 start + +WHY THERE IS NO AUTOMATED UPGRADE SCRIPT: Because we are quite short on time +lately: it is much faster to write a doc than to write and test the script. + +Maybe someone will write one (We will certainly include it in the package, if +it is good enough). Don't hold your breath, though. + + - Your cyrus-imapd team --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-murder-2.2.links +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-murder-2.2.links @@ -0,0 +1 @@ +usr/share/doc/cyrus-common-2.2 usr/share/doc/cyrus-murder-2.2 --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-common-2.2.dirs +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-common-2.2.dirs @@ -0,0 +1,4 @@ +usr/sbin +usr/lib/cyrus +usr/lib/cyrus/bin +usr/lib/cyrus/upgrade --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-common-2.2.manpages +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-common-2.2.manpages @@ -0,0 +1,22 @@ +debian/tmp/usr/share/man/man5/cyrus.conf.5 +debian/tmp/usr/share/man/man5/imapd.conf.5 +debian/tmp/usr/share/man/man8/cyrdump.8 +debian/tmp/usr/share/man/man8/mbpath.8 +debian/tmp/usr/share/man/man8/arbitron.8 +debian/tmp/usr/share/man/man8/arbitronsort.8 +debian/tmp/usr/share/man/man8/timsieved.8 +debian/tmp/usr/share/man/man8/notifyd.8 +debian/tmp/usr/share/man/man8/lmtpd.8 +debian/tmp/usr/share/man/man8/ctl_*.8 +debian/tmp/usr/share/man/man8/cvt_*.8 +debian/tmp/usr/share/man/man8/chk_*.8 +debian/tmp/usr/share/man/man8/fud.8 +debian/tmp/usr/share/man/man8/ipurge.8 +debian/tmp/usr/share/man/man8/tls_prune.8 +debian/tmp/usr/share/man/man8/cyrdeliver.8 +debian/tmp/usr/share/man/man8/cyrmaster.8 +debian/tmp/usr/share/man/man8/cyrreconstruct.8 +debian/tmp/usr/share/man/man8/cyrquota.8 +debian/tmp/usr/share/man/man8/mbexamine.8 +debian/tmp/usr/share/man/man8/smmapd.8 +debian/tmp/usr/share/man/man8/cyr_expire.8 --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-pop3d-2.2.install +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-pop3d-2.2.install @@ -0,0 +1,3 @@ +etc/pam.d/pop +usr/lib/cyrus/bin/pop3d +usr/share/man/man8/pop3d* --- cyrus-imapd-2.2-2.2.13p1.orig/debian/libcyrus-imap-perl22.manpages +++ cyrus-imapd-2.2-2.2.13p1/debian/libcyrus-imap-perl22.manpages @@ -0,0 +1,5 @@ +perl/imap/blib/man3/Cyrus::IMAP.3pm +perl/imap/blib/man3/Cyrus::IMAP::Admin.3pm +perl/imap/blib/man3/Cyrus::IMAP::IMSP.3pm +perl/imap/blib/man3/Cyrus::IMAP::Shell.3pm +perl/sieve/managesieve/blib/man3/Cyrus::SIEVE::managesieve.3pm --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-imapd-2.2.dirs +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-imapd-2.2.dirs @@ -0,0 +1,2 @@ +usr/sbin +usr/lib/cyrus --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-dev-2.2.links +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-dev-2.2.links @@ -0,0 +1,2 @@ +usr/share/doc/cyrus-common-2.2 usr/share/doc/cyrus-dev-2.2 + --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-common-2.2.lintian-overrides +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-common-2.2.lintian-overrides @@ -0,0 +1,4 @@ +cyrus-common-2.2: init.d-script-not-marked-as-conffile etc/init.d/cyrus-imapd +cyrus-common-2.2: init.d-script-not-included-in-package etc/init.d/cyrus-imapd +cyrus-common-2.2: init.d-script-not-marked-as-conffile ./etc/init.d/cyrus-imapd +cyrus-common-2.2: init.d-script-not-included-in-package ./etc/init.d/cyrus-imapd --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-nntpd-2.2.dirs +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-nntpd-2.2.dirs @@ -0,0 +1,2 @@ +usr/sbin +usr/lib/cyrus --- cyrus-imapd-2.2-2.2.13p1.orig/debian/get-backtrace.gdb +++ cyrus-imapd-2.2-2.2.13p1/debian/get-backtrace.gdb @@ -0,0 +1,4 @@ +c +bt +quit + --- cyrus-imapd-2.2-2.2.13p1.orig/debian/mupdate.pam +++ cyrus-imapd-2.2-2.2.13p1/debian/mupdate.pam @@ -0,0 +1,14 @@ +# PAM configuration file for Cyrus Murder mupdate service +# $Id$ +# +# If you want to use Cyrus in a setup where users don't have +# accounts on the local machine, you'll need to make sure +# you use something like pam_permit for account checking. +# +# Remember that SASL (and therefore Cyrus) accesses PAM +# modules through saslauthd, and that SASL can only deal with +# plaintext passwords if PAM is used. +# + +@include common-auth +@include common-account --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-doc-2.2.links +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-doc-2.2.links @@ -0,0 +1 @@ +usr/share/doc/cyrus-doc-2.2 usr/share/doc/cyrus-common-2.2/docs --- cyrus-imapd-2.2-2.2.13p1.orig/debian/source.lintian-overrides +++ cyrus-imapd-2.2-2.2.13p1/debian/source.lintian-overrides @@ -0,0 +1 @@ +cyrus-imapd-2.2 source: source-contains-CVS-dir --- cyrus-imapd-2.2-2.2.13p1.orig/debian/TODO.Debian +++ cyrus-imapd-2.2-2.2.13p1/debian/TODO.Debian @@ -0,0 +1,67 @@ +Todo list +--------- + +$Id$ + +CONFIRMED TODO FOR 2.2: +o Cyrus 2.1 has alarm() lock breaking on lib/lock_fcntl(). This has + not been ported to 2.2 yet. And it should not be ported until + #358742 is fixed. Note that if the user has to *kill* imapd to + unstick the lock, the issue is not in the alarm() code. + + +EXTRA HIGH +o master leaks memory when a service path is not null + +HIGH +o Update copyright to my new template +o Shout loudly if anything in .stage needs cleaning up +o VERIFY SASL LEAKING CRAP TO prot_stream + [info-cyrus Re: Log messages going into imap/pop stream] +o Revise rehash, it is busted... +o Write nice shell wrapper for chk_cyrus and suggest a event to run it +o Clean up script, that finds all crap over one day old in .stage + and delete it (after logging a warning). Add it as event. + +o https://bugzilla.andrew.cmu.edu/show_bug.cgi?id=1735 + +MEDIUM +o Verify kerberos build is still OK [gssapi] +o Add switch to enable do-not-add-return-path-if-it-is-already-there to + deliver and LMTP input: + - Return-path: Override (default: drop old return-paths, add ours) + add (add if there isn't one in there already) + note that no return-path is NOT an option ;-) + Obs: - lmtpengine uses msg->return_path to know wether it got a mail from! + - dropping old return-paths is non-trivial +o Fulldir-hash detection using the same mech as db-backend +o auth_ldap, and runtime-selection of auth backends. Add kerberos backend + and kerberos support while at it, as well. [ cyrus 2.2 only ] + +LOW +o Verify alpha build logs, and fix the warnings +o Better logcheck.ignore +o verify section of libcyrus-*-perl, as well as the manpages' +o Fix bogosity on perl manpages .TH +o netsaint example of full monitoring (imap, pop, lmtp, master via snmp) +o cyrus2-admin.menu +o find and package snmp loggers for cyrus (as examples) +o automated database backend conversion? +o sanitize usernames and folders to lowercase, no spaces or ill. chars + [does this make any sense? shouldn't that be done by user name canon.?] + +WON'T DO +o cyrus2-{pop3d,imapd} should deal with cyrus.conf + - not needed; cyrus deals gracefully with missing binaries +o Debconf configuration + - too troublesome; lusers are not welcome to using cyrus + without reading docs anyway, and it is all SASL's fault. + +BACKBURNER IDEAS +o master + - capabilities, so as to be able to bind to ports <1024 + - jailing at user level (and what of shared mbx?) + - Better handling of fucked up children that refuse to start? + + requires 5th forked state in master +o i18n (GNU gettext, with kerberos guard for logs, messages; + sanity-enforced txt files for return messages) --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-common-2.2.docs +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-common-2.2.docs @@ -0,0 +1,2 @@ +debian/UPGRADE.Debian +debian/README.* --- cyrus-imapd-2.2-2.2.13p1.orig/debian/control +++ cyrus-imapd-2.2-2.2.13p1/debian/control @@ -0,0 +1,247 @@ +Source: cyrus-imapd-2.2 +Section: mail +Priority: extra +Maintainer: Debian Cyrus Team +Uploaders: Henrique de Moraes Holschuh , + Sven Mueller , + Benjamin Seidenberg , + Ondřej Surý , + Christoph Berg +Standards-Version: 3.9.2 +Build-Depends: autoconf, + automake, + autotools-dev, + bison, + comerr-dev, + debhelper (>= 7.0.30~), + flex, + ghostscript | gs-gpl, + groff, + heimdal-dev, + libdb-dev, + libkvm-dev [kfreebsd-i386 kfreebsd-amd64], + libldap2-dev, + libpam0g-dev, + libsasl2-dev (>= 2.1.9), + libsnmp-dev | libsnmp9-dev, + libssl-dev, + libtool, + libwrap0-dev, + libzephyr-dev, + perl, + po-debconf, + quilt, + tcl-dev | tcl8.3-dev, + transfig, + xutils-dev | xutils, +Vcs-Git: git://git.debian.org/git/pkg-cyrus-imapd/cyrus-imapd-2.2.git +Vcs-Browser: http://git.debian.org/?p=git/pkg-cyrus-imapd/cyrus-imapd-2.2.git +Homepage: http://www.cyrusimap.org/ + +Package: cyrus-common-2.2 +Architecture: any +Section: mail +Depends: cyrus-common (>= 2.4.9~beta1-1~), postfix | mail-transport-agent, adduser, netbase, gawk, libsasl2-modules, ${shlibs:Depends}, ${perl:Depends}, ${misc:Depends} +Recommends: cyrus-imapd-2.2 | cyrus-pop3d-2.2 | cyrus-murder-2.2 | cyrus-nntpd-2.2 | cyrus-admin-2.2 +Suggests: cyrus-clients-2.2, cyrus-admin-2.2, cyrus-imapd-2.2, cyrus-pop3d-2.2, cyrus-murder-2.2, cyrus-nntpd-2.2, cyrus-doc-2.2, sasl2-bin, apt-listchanges (>= 2.35) +Conflicts: suidmanager (<< 0.50), cyrus-common (<< 2.4.8-6~), cyrus21-common, cyrus22-common +Replaces: cyrus21-common, cyrus22-common +Provides: cyrus21-common, cyrus22-common +Description: Cyrus mail system - common files + Cyrus is an IMAP server designed to handle massive quantities of mail, + with a number of features not found in other IMAP implementations, + including support for: + - running the daemon without root privileges; + - POP3 and NNTP in addition to plain IMAP; + - POP/IMAP-before-SMTP using DRAC; + - secure IMAP using SSL; + - server-side filtering with Sieve; + - mail users without login accounts; + - simple mail quotas; + - virtual domains; + - IPv6. + . + Cyrus doesn't support reading from and storing mail in the + standard mail spool. It stores mail in a separate directory in its + own MH-like format. + . + This package contains the common files needed by the other Cyrus + components. The cyrus22-imapd and/or cyrus22-pop3d packages are needed + to enable IMAP and POP3 support respectively. cyrus22-murder can be + used to enable IMAP, POP3, and LMTP proxying. + +Package: cyrus-doc-2.2 +Architecture: all +Section: doc +Provides: cyrus21-doc, cyrus22-doc +Depends: ${misc:Depends} +Replaces: cyrus21-doc, cyrus22-doc +Conflicts: cyrus21-doc, cyrus22-doc +Description: Cyrus mail system - documentation files + Cyrus is an IMAP server designed to handle massive quantities of mail, + with a number of features not found in other IMAP implementations, + including support for: + - running the daemon without root privileges; + - POP3 and NNTP in addition to plain IMAP; + - POP/IMAP-before-SMTP using DRAC; + - secure IMAP using SSL; + - server-side filtering with Sieve; + - mail users without login accounts; + - simple mail quotas; + - virtual domains; + - IPv6. + . + This package contains the documentation for the Cyrus IMAPd suite. + +Package: cyrus-imapd-2.2 +Architecture: any +Section: mail +Depends: cyrus-common-2.2 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Provides: imap-server, cyrus21-imapd, cyrus22-imapd +Conflicts: imap-server, cyrus21-imapd, cyrus22-imapd +Replaces: cyrus21-imapd, cyrus22-imapd +Description: Cyrus mail system - IMAP support + Cyrus is an IMAP server designed to handle massive quantities of mail, + with a number of features not found in other IMAP implementations, + including support for: + - running the daemon without root privileges; + - POP3 and NNTP in addition to plain IMAP; + - POP/IMAP-before-SMTP using DRAC; + - secure IMAP using SSL; + - server-side filtering with Sieve; + - mail users without login accounts; + - simple mail quotas; + - virtual domains; + - IPv6. + . + This package contains the IMAP (Internet Mail Access Protocol) portion + of the Cyrus IMAPd suite. + +Package: cyrus-pop3d-2.2 +Architecture: any +Section: mail +Depends: cyrus-common-2.2 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Provides: cyrus21-pop3d, cyrus22-pop3d, pop3-server +Conflicts: cyrus21-pop3d, cyrus22-pop3d, pop3-server +Replaces: cyrus21-pop3d, cyrus22-pop3d +Description: Cyrus mail system - POP3 support + Cyrus is an IMAP server designed to handle massive quantities of mail, + with a number of features not found in other IMAP implementations, + including support for: + - running the daemon without root privileges; + - POP3 and NNTP in addition to plain IMAP; + - POP/IMAP-before-SMTP using DRAC; + - secure IMAP using SSL; + - server-side filtering with Sieve; + - mail users without login accounts; + - simple mail quotas; + - virtual domains; + - IPv6. + . + This package contains the POP3 (Post Office Protocol) portion of the Cyrus + IMAPd suite. + +Package: cyrus-admin-2.2 +Architecture: all +Section: mail +Depends: libcyrus-imap-perl22 (>= ${source:Version}), ${misc:Depends} +Suggests: sasl2-bin +Conflicts: cyrus-admin, cyrus21-admin, cyrus22-admin +Replaces: cyrus21-admin, cyrus22-admin +Provides: cyrus21-admin, cyrus22-admin +Description: Cyrus mail system - administration tools + Cyrus is an IMAP server designed to handle massive quantities of mail, + with a number of features not found in other IMAP implementations, + including support for: + - running the daemon without root privileges; + - POP3 and NNTP in addition to plain IMAP; + - POP/IMAP-before-SMTP using DRAC; + - secure IMAP using SSL; + - server-side filtering with Sieve; + - mail users without login accounts; + - simple mail quotas; + - virtual domains; + - IPv6. + . + This package provides the administrative tools for the Cyrus IMAPd suite. + It contains cyradm, which can be used to administer both local and remote + Cyrus mail systems, plus sieveshell (and its deprecated cousin + installsieve), which can be used to manage Sieve scripts. + +Package: cyrus-murder-2.2 +Section: mail +Architecture: any +Depends: cyrus-common-2.2 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Recommends: cyrus-imapd-2.2 (= ${binary:Version}), cyrus-pop3d-2.2 (= ${binary:Version}) +Conflicts: cyrus21-murder, cyrus22-murder +Replaces: cyrus21-murder, cyrus22-murder +Provides: cyrus21-murder, cyrus22-murder +Description: Cyrus mail system (proxies and aggregator) + This package contains the Cyrus IMAPd suite murder aggregator system, + i.e. IMAP, POP3 and LMTP proxies, and the mupdate mailbox master daemon. + It allows for cluster setups where there are many backend Cyrus spools and + frontend proxy servers. + . + For more information, please see the cyrus-common-2.2 package. + +Package: cyrus-nntpd-2.2 +Architecture: any +Section: mail +Depends: cyrus-common-2.2 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Conflicts: news-transport-system +Replaces: cyrus21-nntpd, cyrus22-nntpd +Provides: news-transport-system, cyrus21-nntpd, cyrus22-nntpd +Description: Cyrus mail system (NNTP support) + This package contains the NNTP (Network News Transfer Protocol) portion of + the Cyrus IMAPd suite. + . + For more information, please see the cyrus-common-2.2 package. + +Package: cyrus-clients-2.2 +Architecture: any +Section: mail +Depends: ${shlibs:Depends}, ${misc:Depends} +Conflicts: cyrus21-clients, cyrus22-clients +Provides: cyrus21-clients, cyrus22-clients +Replaces: cyrus21-clients, cyrus22-clients +Description: Cyrus mail system (test clients) + This package contains client tools to test the Cyrus IMAPd suite. + It contains the mupdatetest, sivtest, smtptest, lmtptest, + imtest and pop3test tools which can be used to interactively talk to + a mupdate, Sieve, SMTP, LMTP, IMAP or POP3 server. + The clients are fully SASL-enabled for authentication. + . + For more information, please see the cyrus-common-2.2 package. + +Package: cyrus-dev-2.2 +Architecture: any +Section: devel +Depends: libcyrus-imap-perl22 (= ${binary:Version}), cyrus-common-2.2 (= ${binary:Version}), libsasl2-dev (>= 2.1.9), ${misc:Depends} +Conflicts: cyrus-dev, cyrus21-dev, cyrus22-dev +Replaces: cyrus21-dev, cyrus22-dev +Provides: cyrus21-dev, cyrus22-dev +Description: Cyrus mail system (developer files) + This package contains header files and the static library needed + to develop IMAP applications that interface with the Cyrus IMAPd suite. + . + For more information, please see the cyrus-common-2.2 package. + +Package: libcyrus-imap-perl22 +Architecture: any +Depends: ${perl:Depends}, ${shlibs:Depends}, ${misc:Depends} +Provides: libcyrus-imap-perl, libcyrus-imap-perl21 +Conflicts: libcyrus-imap-perl, libcyrus-imap-perl21 +Replaces: libcyrus-imap-perl21 +Section: perl +Description: Interface to Cyrus imap client imclient library + The Cyrus::IMAP module provides an interface to the Cyrus imclient + library. These are primarily useful for implementing cyradm operations + within a Perl script; there are easier ways to implement general client + operations, although they may be more limited in terms of authentication + options when talking to a Cyrus imapd. + . + The modules that compose Cyrus::SIEVE are also included, but they are + undocumented upstream. + . + For more information, please see the cyrus-common-2.2 package. + --- cyrus-imapd-2.2-2.2.13p1.orig/debian/README.postfix +++ cyrus-imapd-2.2-2.2.13p1/debian/README.postfix @@ -0,0 +1,147 @@ +Setting up Cyrus IMAPd for Postfix (Debian) +$Id$ +=========================================================== + +Cyrus works wonderfully well with Postfix, both in single-system stores (where +Postfix runs in the same host as Cyrus IMAPd), and remote mail stores (where +Cyrus IMAPd is in a different host than Postfix). + +Delivery to Cyrus should _always_ be done through direct LMTP from Postfix. It +is far simpler and faster to do such delivery using Unix sockets, but Unix +sockets are only an option for single-system stores. Cyrdeliver is just a +stdio-to-LMTP proxy, and it slows down mail delivery greatly. + +Cyrus requires LMTP deliveries to be authenticated. It assumes that any +deliveries done through an Unix socket are trustable, and pre-authenticates +them as if coming from the "postman" (fictitious) user (but you _can_ +re-authenticate them as another lmtp admin user, if you wish). + +Deliveries done through TCP sockets are not limited to the same host, unlike +the Unix socket ones, and can therefore be used in remote mail stores. +However, Cyrus requires that the LMTP session be authenticated using one of the +SASL mechs available to Cyrus (you can switch this off by giving a "-a" +parameter to lmtpd in cyrus.conf, but that is unsafe since anyone can bypass +any user authentication controls you might have on mail delivery, that way). + +TCP-socket LMTP sessions should be authenticated as one of the Cyrus LMTP +admins, normal Cyrus users are not enough. This requires Postfix with SASL +support. + + +Setting up Postfix for LMTP delivery to Cyrus +============================================= + +Just set up a transport (either using a transport map, or the default_transport +configuration directive of Postfix). Do not use cyrdeliver. + +I suggest that the lmtp transport be duplicated and renamed to cyrus if you +use it to talk to anything else (such as amavisd-new, or amavis-ng). That +way, LMTP connection caching to the Cyrus store gets optimized, and you can +use the lmtp-named LMTP transport for something else. + +WARNING: Postfix 2.0 does not downcase the recipient in LMTP deliveries, so if +your users require it, you will have to set lmtp_downcase_rcpt: yes in +imapd.conf. + + +Unix sockets: +------------- + +For Unix sockets, the Postfix transport is specified as +"lmtp:unix:/var/run/cyrus/socket/lmtp", (we are using the default Cyrus unix +socket location as an example, you can change it in /etc/cyrus.conf and +/etc/imapd.conf). + +You need a Cyrus lmtpd service listening on that socket, of course, so make +sure something like: + +lmtpunix cmd="lmtpd" listen="/var/run/cyrus/socket/lmtp" + +is in the SERVICES section of the /etc/cyrus.conf file. You also need to make +sure both Cyrus and Postfix can talk through that socket. Unix sockets work +just like files, so that translates to making sure both the user "cyrus" and +the user Postfix is using for LMTP delivery can both read and write to that +file. + +WARNING: Since Cyrus pre-auths anything coming through the Unix socket, anyone +who can write to it will be able to inject email into Cyrus directly. + +Use dpkg-statoverride to make sure your configuration for the socket +permissions will not be overwritten by the Cyrus packages. Do remember that +Postfix usually runs the LMTP transport as user "postfix" (configurable in +/etc/postfix/master.cf). Also, do not run the postfix lmtp transport chrooted +if the socket is not inside the chroot. + +1. Create a lmtp group: + # addgroup lmtp + +2. Put user postfix in that group: + # adduser postfix lmtp + +3. Fix the socket directory permissions: + # dpkg-statoverride --force --update --add \ + cyrus lmtp 750 /var/run/cyrus/socket + +4. Restart Postfix and Cyrus IMAPd + # /etc/init.d/postfix restart + # /etc/init.d/cyrus2.2 restart + + +TCP sockets: +------------ + +TCP sockets are easier on the Cyrus side, and more complicated on the Postfix +side. For Cyrus, it is enough to have an "lmtpd" service listening on the +desired IP interface (or in all of them, if you leave the interface unspecified +as in the example below), that means something like this in /etc/cyrus.conf +SERVICES area: + +lmtp cmd="lmtpd" listen="lmtp" + +(do note that you MUST have an lmtp entry in /etc/services for this to work. +This can be any available port, for historical reasons, 2003 is most often used). + +Also, remember that Cyrus observes tcpwrapper permissions (/etc/hosts.allow and +/etc/hosts.deny), make sure they're set up correctly or Cyrus might refuse the +connections. + +To configure Postfix' lmtp transport to authenticate using SASL, do the +following: +Note: On Sarge systems, you will also need the postfix-tls package for SASL +support. On etch and above, the support is included in the postfix package. + +1. Configure the lmtp transport SASL layer: + (add to /etc/postfix/main.cf): + lmtp_sasl_auth_enable = yes + lmtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd + lmtp_sasl_security_options = + lmtp_destination_concurrency_limit = 100 + lmtp_destination_recipient_limit = 0 + + The *_limit values should match whatever you configured as limits in + Cyrus. The above configuration will allow plain text logins. + + Create the password map /etc/postfix/sasl_passwd to tell postfix + of a Cyrus LMTP administrator user and password to use. + + e.g.: + echo "mycyrusspool.my.domain.org postman:foobar" >sasl_passwd + postmap sasl_passwd + +2. Configure Cyrus to accept that user as a lmtp administrator + (add to /etc/imapd.conf) + lmtp_admins: postman + +3. Tell postfix to use the lmtp transport to deliver email using + transport maps or something else. I suggest making a copy of the + postfix lmtp transport in master.cf, renaming it to "cyrus", and + using that. + +4. Note that to use the new feature of virtual domains in Cyrus v2.2, + you need to tell postfix to use the lmtp transport as the + virtual_transport. If you also want "local" mail recipients, i.e. + those that are addressed to hosts listed in mydestination, to + be delivered to Cyrus v2.2, you also need to use lmtp as the + mailbox_transport. + + That's it! --- cyrus-imapd-2.2-2.2.13p1.orig/debian/nntp.pam +++ cyrus-imapd-2.2-2.2.13p1/debian/nntp.pam @@ -0,0 +1,13 @@ +# PAM configuration file for Cyrus NNTP service +# +# If you want to use Cyrus in a setup where users don't have +# accounts on the local machine, you'll need to make sure +# you use something like pam_permit for account checking. +# +# Remember that SASL (and therefore Cyrus) accesses PAM +# modules through saslauthd, and that SASL can only deal with +# plaintext passwords if PAM is used. +# + +@include common-auth +@include common-account --- cyrus-imapd-2.2-2.2.13p1.orig/debian/deletable.files +++ cyrus-imapd-2.2-2.2.13p1/debian/deletable.files @@ -0,0 +1,98 @@ +doc/man/arbitron.8.html +doc/man/chk_cyrus.8.html +doc/man/ctl_cyrusdb.8.html +doc/man/ctl_deliver.8.html +doc/man/ctl_mboxlist.8.html +doc/man/cvt_cyrusdb.8.html +doc/man/cyr_expire.8.html +doc/man/cyradm.1.html +doc/man/cyrus.conf.5.html +doc/man/deliver.8.html +doc/man/fetchnews.8.html +doc/man/fud.8.html +doc/man/idled.8.html +doc/man/imapd.8.html +doc/man/imapd.conf.5.html +doc/man/imclient.3.html +doc/man/imtest.1.html +doc/man/installsieve.1.html +doc/man/ipurge.8.html +doc/man/krb.equiv.5.html +doc/man/lmtpd.8.html +doc/man/lmtptest.1.html +doc/man/master.8.html +doc/man/mbexamine.8.html +doc/man/mbpath.8.html +doc/man/mupdatetest.1.html +doc/man/nntpd.8.html +doc/man/nntptest.1.html +doc/man/notifyd.8.html +doc/man/pop3d.8.html +doc/man/pop3test.1.html +doc/man/quota.8.html +doc/man/reconstruct.8.html +doc/man/rmnews.8.html +doc/man/sieveshell.1.html +doc/man/sivtest.1.html +doc/man/smmapd.8.html +doc/man/smtptest.1.html +doc/man/squatter.8.html +doc/man/syncnews.8.html +doc/man/timsieved.8.html +doc/man/tls_prune.8.html +doc/man/w +doc/murder.png +doc/netnews.png +doc/text/altnamespace +doc/text/anoncvs +doc/text/bugs +doc/text/changes +doc/text/faq +doc/text/feedback +doc/text/index +doc/text/install +doc/text/install-admin-mb +doc/text/install-auth +doc/text/install-compile +doc/text/install-configure +doc/text/install-murder +doc/text/install-netnews +doc/text/install-perf +doc/text/install-prereq +doc/text/install-sieve +doc/text/install-snmpmon +doc/text/install-testing +doc/text/install-upgrade +doc/text/install-virtdomains +doc/text/mailing-list +doc/text/man +doc/text/notes +doc/text/os +doc/text/overview +doc/text/questions +doc/text/readme +doc/text/sieve +doc/text/sieve-protocol +doc/text/specs +imap/imap_err.c +imap/imap_err.h +imap/lmtpstats.c +imap/lmtpstats.h +imap/mupdate_err.c +imap/mupdate_err.h +imap/nntp_err.c +imap/nntp_err.h +imap/pushstats.c +imap/pushstats.h +lib/imapopts.c +lib/imapopts.h +man/imapd.conf.5 +man/sieveshell.1 +sieve/addr-lex.c +sieve/addr.c +sieve/addr.h +sieve/sieve-lex.c +sieve/sieve.c +sieve/sieve.h +sieve/sieve_err.c +sieve/sieve_err.h --- cyrus-imapd-2.2-2.2.13p1.orig/debian/pop.pam +++ cyrus-imapd-2.2-2.2.13p1/debian/pop.pam @@ -0,0 +1,14 @@ +# PAM configuration file for Cyrus POP3 service +# $Id$ +# +# If you want to use Cyrus in a setup where users don't have +# accounts on the local machine, you'll need to make sure +# you use something like pam_permit for account checking. +# +# Remember that SASL (and therefore Cyrus) accesses PAM +# modules through saslauthd, and that SASL can only deal with +# plaintext passwords if PAM is used. +# + +@include common-auth +@include common-account --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrdump.8 +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrdump.8 @@ -0,0 +1,16 @@ +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24. +.TH CYRDUMP "8" "Project Cyrus" "CMU" +.SH NAME +cyrdump \- dump mailboxes to stdout +.SH SYNOPSIS +.B +cyrdump [-C ] [-v] [mboxpattern ...] +.SH DESCRIPTION +.PP +A tool for dumping IMAP mailboxes on a server. +.TP +\fB\-C \fR +Specify an alternate configuration file ( is used by default) +.TP +\fB\-v\fR +Increase program verbosity. --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-common-2.2.links +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-common-2.2.links @@ -0,0 +1,2 @@ +usr/sbin/cyrreconstruct usr/lib/cyrus/bin/reconstruct +usr/sbin/cyrquota usr/lib/cyrus/bin/quota --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-admin-2.2.manpages +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-admin-2.2.manpages @@ -0,0 +1,3 @@ +man/sieveshell.1 +perl/imap/blib/man1/cyradm.1p +debian/tmp/usr/share/man/man1/installsieve.1 --- cyrus-imapd-2.2-2.2.13p1.orig/debian/changelog +++ cyrus-imapd-2.2-2.2.13p1/debian/changelog @@ -0,0 +1,755 @@ +cyrus-imapd-2.2 (2.2.13p1-15) unstable; urgency=low + + * Always set RET value (thanks to Steven Kurylo for catching that) + + -- Ondřej Surý Thu, 09 Jun 2011 10:06:30 +0200 + +cyrus-imapd-2.2 (2.2.13p1-14) unstable; urgency=low + + * Adapt package to updated cyrus-upgrade-db script + + -- Ondřej Surý Mon, 06 Jun 2011 22:48:52 +0200 + +cyrus-imapd-2.2 (2.2.13p1-13) unstable; urgency=low + + * Cherry-pick b6fd04c4 from upstream git to fix: Corrupt quota files + cause data loss + * Rename Berkeley DB patch to a generic name + + -- Ondřej Surý Mon, 06 Jun 2011 17:59:26 +0200 + +cyrus-imapd-2.2 (2.2.13p1-12) unstable; urgency=low + + * Replace sv_{yes,no,undef} with PL_sv_{yes,no,undef} + (Closes: #628629) + + -- Ondřej Surý Tue, 31 May 2011 12:39:45 +0200 + +cyrus-imapd-2.2 (2.2.13p1-11) unstable; urgency=low + + * Fix CVE-2011-1926: STARTTLS plaintext command injection + vulnerability (VU#555316) + * Fix infinite loop in case of corrupted index files (Closes: #627078) + + -- Ondřej Surý Wed, 18 May 2011 10:43:58 +0200 + +cyrus-imapd-2.2 (2.2.13p1-10) unstable; urgency=low + + * More HURD fixes; #define MAXHOSTNAMELEN + * Even more fixes for Hurd + * Define LDAP_DEPRECATED before including ldap.h to get + ldap_get_values() deprecated function declaration, fixes implicit + pointer declaration as per http://wiki.d.o/ImplicitPointerConversions + + -- Ondřej Surý Mon, 16 May 2011 13:11:24 +0200 + +cyrus-imapd-2.2 (2.2.13p1-9) unstable; urgency=low + + * Define PATH_MAX as 4096 on platforms which doesn't have it defined + (fixes Hurd build) + * Move the upgrade login to cyrus-common-2.2.postinst as it depends on + cyrus-common-2.2 files + + -- Ondřej Surý Sun, 15 May 2011 10:34:21 +0200 + +cyrus-imapd-2.2 (2.2.13p1-8) unstable; urgency=low + + * Add ptclient binaries (Closes: #567015) + * Add dependency on libsasl2-modules to fix timsieved (Closes: + #619226) + * Remove cyrus makedirs from version specific package + + -- Ondřej Surý Sat, 14 May 2011 22:17:08 +0200 + +cyrus-imapd-2.2 (2.2.13p1-7) unstable; urgency=low + + * Build depend just on libdb-dev to allow backports + * Bump standards version to 3.9.2 + * Remove some ancient versions from versioned depends + * libcyrus-imap-perl22 is Architecture: any, therefore depending + packages needs (= ${binary:Depends}) + * Add some more lintian-overrides, move to the dh_installlintian + + -- Ondřej Surý Thu, 12 May 2011 13:07:44 +0200 + +cyrus-imapd-2.2 (2.2.13p1-6) unstable; urgency=low + + * Don't fail on missing config file + * Remove all triggers and let dpkg handle the order + * Move init.d file handling to debhelper, cyrus-common installs the + file, cyrus-common-2.x invokes it + * Depend on 2.4.8-2 debian version of cyrus-common due changes + in init.d file handling + + -- Ondřej Surý Sat, 07 May 2011 21:31:14 +0200 + +cyrus-imapd-2.2 (2.2.13p1-5) unstable; urgency=low + + * Add support for automatic database backend upgrades. + + Requires new dpkg-trigger provided by cyrus-common (>= 2.4.7-6) + * Remove implicit triggers, all are called explicitly + * Remove obsolete verifydb and verifydbkey functions from cyrus- + common-2.2.postinst + * Move more upgrade logic to cyrus-common.postinst + * Remove debconf from cyrus-common-2.2.postinst script + + -- Ondřej Surý Mon, 11 Apr 2011 16:21:21 +0200 + +cyrus-imapd-2.2 (2.2.13p1-4) unstable; urgency=low + + * Hardcode Berkeley DB 5.1 to the m4 macros (Closes: #620839) + + -- Ondřej Surý Mon, 04 Apr 2011 23:55:01 +0200 + +cyrus-imapd-2.2 (2.2.13p1-3) unstable; urgency=low + + * Rework postinst files to use dpkg-triggers to run cyrus-makedirs and + restart cyrmaster + * Update cyrus-common-2.2 depends to depend on cyrus-common with + triggers + + -- Ondřej Surý Fri, 01 Apr 2011 11:15:07 +0200 + +cyrus-imapd-2.2 (2.2.13p1-2) unstable; urgency=low + + * Fix cyrmaster -j (janitor) segfault (Closes: #577545) + * Debian packaging: + + Move general version independent logic from cyrus-common-2.2 to + cyrus-common (>= 2.4.7-2~) + + Add dependency on cyrus-common (>= 2.4.7-2~) + + Rename init.d and defaults file to be replaced by generic + cyrus-common package + + Remove debian/po since it's not needed anymore + + -- Ondřej Surý Thu, 31 Mar 2011 15:42:35 +0200 + +cyrus-imapd-2.2 (2.2.13p1-1) unstable; urgency=low + + [ Sven Mueller ] + * Make init script provide its own name + + [ Ondřej Surý ] + * Imported Upstream version 2.2.13p1 (cleaned version) + * Debian packaging: + + Switch packaging from SVN to GIT + + Create gbp.conf + + Fix missing initial / when purging the cyrus-common-2.2 package + + Refreshed patches to 2.2.13p1 release + + Update berkeleydb patch to support version 5.1 + + Build-depend on Berkeley DB 5.1 + + debian/control reformat + + Cherry-pick Perl IMAP.xs croak FTBFS from 2.4 + + Build with dynamic version of com_err + + Enable hardening wrapper + + -- Ondřej Surý Wed, 30 Mar 2011 18:34:08 +0200 + +cyrus-imapd-2.2 (2.2.13-19) unstable; urgency=low + + * Switch to BerkeleyDB 4.7, the version OpenLDAP uses. + * Add patch by Cristian Rigamonti to fix logcheck rules for "defaultbc + doesn't exist" error message. (Closes: #511030) + * Update Vietnamese debconf translation, thanks Clytie Siddall. + (Closes: #548052) + * Upload to unstable for the libkrb transition. + + -- Christoph Berg Sat, 23 Jan 2010 23:35:21 +0100 + +cyrus-imapd-2.2 (2.2.13-18) experimental; urgency=low + + [ Henrique de Moraes Holschuh ] + * sieve/bc_eval.c (0025-upstream-fix-cve-2009-3235.dpatch): + update for completeness to match the patch used by the security-team: + use snprintf for scount, to future-proof against "int" larger than + 64 bits. + + [ Christoph Berg ] + * Add myself to Uploaders. + * Upgrade to use BerkeleyDB 4.8. (Closes: #421942) + * Convert to use quilt, and update the patch headers to use clean paths. + (Closes: #563303) + * Add patch by Mathieu Parent to fix conflicting getline definition. + (Closes: #552865) + + -- Christoph Berg Fri, 22 Jan 2010 22:16:02 +0100 + +cyrus-imapd-2.2 (2.2.13-17) unstable; urgency=high + + * Security Update: CVE-2009-3235: + Multiple stack-based buffer overflows in the Sieve parsing code, + patches taken from upstream CVS (closes: #547947) + + -- Henrique de Moraes Holschuh Tue, 22 Sep 2009 17:17:17 -0300 + +cyrus-imapd-2.2 (2.2.13-16) unstable; urgency=high + + * Justification for high urgency: Get security update from -15 into + testing as fast as possible since -15 was removed before it could + migrate. + * Fix build dependency on tcl-dev (keeping old tcl8.3-dev to make + backports easier) (Closes: 545281) + * Fix up README.Debian.database (Closes: 543293) + * Build against newer cyrus-sasl (Closes: 527495,528468) + * Fix cyrus-common postinst to only run makedirs if a new upstream + is installed (Closes: 545512), add a README to note that the + postinst needs to be changed with each new upstream + * Fix find syntax in cyrus-makedirs (Closes: 545554) + + -- Sven Mueller Tue, 08 Sep 2009 10:04:14 +0200 + +cyrus-imapd-2.2 (2.2.13-15) unstable; urgency=high + + [Security Update] + * Fixes buffer overflow in SIEVE script handling -> high urgency + Problem has no CVE tag assigned, is not yet announced by upstream, + but upstream patch is in public CVS -> not embargoed. + + [Sven Mueller] + * change example script mbox2cyrus to remove bashisms (Closes: #489558, + thanks to Andres Mejia) + * change Makefile so that no (intended) non-phony target invokes a phony + target. Also remove empty lines inside rules or replace them by comment + lines + * Added patches for translation updates as provided by Christian Perrier + (see below) + * update cyrus-makedirs to be more performant (using xargs to call chmod + et al. instead of using find -exec, this avoids lots of forks) + * remove build dependency alternate libsnmp5-dev (not even in oldstable + anymore), add alternative libsnmp-dev (as in stable) + * update standards-version to 3.8.3.0 + - add README.source + - remove version from perl build dependency + + [ Christian Perrier ] + * Debconf templates and debian/control reviewed by the debian-l10n- + english team as part of the Smith review project. Closes: #523989 + * [Debconf translation updates] + - Swedish. Closes: #524090 + - Czech. Closes: #524092 + - Japanese. Closes: #524121 + - Russian. Closes: #525704 + - Portuguese. Closes: #525912 + - German. Closes: #525913 + - Galician. Closes: #524267 + - Italian. Closes: #524312 + - French. Closes: #524954 + - Finnish. Closes: #526182 + - Bokmål, Norwegian. Closes: #526231 + - Spanish. Closes: #526358 + - Basque. Closes: #530856 + + -- Sven Mueller Fri, 04 Sep 2009 09:58:54 +0200 + +cyrus-imapd-2.2 (2.2.13-14) unstable; urgency=low + + [ Sven Mueller ] + * Fix a problem in lib/Makefile.in with multi-word CCs + (problem found by Uwe Hermann's try at building all Debian packages with + Open64 - kudos to him for this nice little project) + * Update portoguese debconf translations (Closes: #439405) + * Add Homepage field to debian/control + * Use official VCS fields to document repository + + [ Benjamin Seidenberg ] + * Fix the finds in cyrus-makedirs (which weren't working properly) to use + xargs instead of -exec. (Closes #442491) + + [ Sven Mueller ] + * Fix control file (lintian warning: substvar-source-version-is-deprecated) + * Check for necessary changes regarding policy version 3.7.3.0, there where + none, so upgrading debian/control + * Fix init script LSB header (closes: 470110) + * Update logcheck rules and the rule filenames (closes: 473526) + * Add finnish translation (Closes: 473792) + * Update galician translation (Closes: 473886) + * Add basque translation (Closes: 473914) + * add norwegian bokmal translation (Closes: 474360) + * Add patch to add sasl_{minimum,maximum}_layer details can be found + in libsasl documentation. (Closes: 402814) + + -- Sven Mueller Tue, 15 Apr 2008 12:37:26 +0200 + +cyrus-imapd-2.2 (2.2.13-13) unstable; urgency=low + + * Change messages and chown's in cyrus-makedirs (Use find instead) + (Closes: #404446, 411529) + * Fix logcheck rule to ignore nonexistant sieve scripts (Closes #416826) + * Update README.exim to something more debian specific. Thanks: Romain + Chantereau and Steve Kemp . + (Closes: #395504) + * Update README.Debian.databases. Along with other fixes from a long time + ago, this addresses almost all of the issues raised in an upgrade report. + (Closes: #409945) + * Add a patch by Andrew Morgan that adds a config option + to disable referrals from frontends to backends + + -- Benjamin Seidenberg Fri, 22 Jun 2007 16:50:45 +0100 + +cyrus-imapd-2.2 (2.2.13-12) unstable; urgency=low + + * The "This-would-be-a-lot-easier-if-Ross-Boylan-used-courier" Release + + [ Sven Mueller ] + * Add rules to logcheck.violations.ignore, eliminating "SQUAT failed" + generic error message as far as logcheck is concerned. + * Fix bug number in README.Debian (151295, not 151925) (Closes: #426334) + + [ Benjamin Seidenberg ] + * Remove a redundant part of patches//13-master_process_handling.dpatch + which causes a double free. (Closes: #425844, #429164) + * Add information about tls_[service]_* options changing in UPGRADE.Debian. + (Closes: #408503) + + -- Benjamin Seidenberg Mon, 18 Jun 2007 15:38:01 -0400 + +cyrus-imapd-2.2 (2.2.13-11) unstable; urgency=low + + * Fix a bug in cyrus-common-2.2 postrm script: + Even when a package Depends on debconf, it is not guaranteed to be there + when postrm is called. (Closes: #416739) + * Assume removal of spools is not desired if debconf isn't available (least + surprise / least chance of data loss principle). + * Add Xs-Vcs-Browser and Xs-Vcs-Svn control fields for the PTS. + * Fix a number of small issues with the 64bit quota patch. + * update automake/autoconf patch with latest autotools-dev and + automake/autoconf packages from unstable. + * Add optional patch which allows uploads of messages with "From " headers. + Taken from fastmail.fm patchset. + * Add upstream patch to avoid sending empty literal responses. + * Add upstream patch to sort illegal dates before legal ones. + * Add galician debconf translation (Closes: #412809) + * Add portuguese debconf translation (Closes: #410964) + * Add a little more detail to the squatter manpage (Closes: #395063) + * Add dependency on heimdal-dev, add check to debian/rules wether GSSAPI is + used (Closes: #423970) + + -- Sven Mueller Fri, 18 May 2007 13:05:58 +0200 + +cyrus-imapd-2.2 (2.2.13-10) unstable; urgency=high + + * High urgency due to #400747 + + [ Sven Mueller ] + * Update README.Debian.simpleinstall (Closes: #395250) + * Upstream change: applied RFC4314 READ-ONLY logic + + [ Benjamin Seidenberg ] + * Add notice about lmtp overquota configuration option rename to + UPGRADE.Debian (Closes: #400645) + * Disable upstream patch 0019 due to bad sasl interactions (Closes: #400747) + + -- Benjamin Seidenberg Sat, 9 Dec 2006 10:03:38 -0500 + +cyrus-imapd-2.2 (2.2.13-9) unstable; urgency=high + + * The "Benjamin made it in time for etch" release. + * High urgency upload with simple fixes for Etch + + [ Henrique de Moraes Holschuh ] + * Prevent cronjobs and initscript from working when another version + of Cyrus IMAPD is installed and 2.2 is in removed but not purged + state (Closes: #393596) + + -- Benjamin Seidenberg Wed, 25 Oct 2006 13:39:08 -0400 + +cyrus-imapd-2.2 (2.2.13-8) unstable; urgency=medium + + [ Sven Mueller ] + * Remove unneeded drac dependency + * New vietnamese translation (thanks to Clytie Siddall, Closes: #383281) + * New russian translation (thanks to Yuri Kozlov, Closes: #383217) + * Updated dutch translation (thanks to Kurt De Bree, Closes: #384870) + * Updated logcheck rules a bit more, thanks to Ross Boylan (Closes: #384265) + * Add spanish debconf translation thanks to César Gómez Martín. + * Add patch to fix FTBFS on GNU/kFreeBSD thanks to Petr Salinger. + (Closes: #388242) + * Run autoconf to generate update configure script after above patch was + applied to configure.in + * Add patch by Ben Poliakoff which fixes an inability to set annotations + from IMAP::Admin perl module (Closes: #389597) + urgency=medium because of this bug. Might have been medium, but the + combination of this bug and the one below seems severe enough for high. + It makes the package unusable to anyone using annotations (guess is 40% + of new installs). + * Update dutch debconf translation (Closes: #389783) + * Fix a problem with repeated builds from the same tree. + * Add upstream patch to imtest.c prefixing raw client responses with C: + + [ Henrique de Moraes Holschuh ] + * Update pt_BR debconf translation + + [ Benjamin Seidenberg ] + * Update date span in debian/copyright + * Fix mistake in init script, ! check_status instead of !check_status. + Thanks to Farzad FARID + * Fix DOS encoding on several files in debian/ (Closes: #391092) + Thanks to Farzad FARID + * Changed my email in debian/control + + -- Benjamin Seidenberg Mon, 16 Oct 2006 19:41:37 -0400 + +cyrus-imapd-2.2 (2.2.13-7) unstable; urgency=low + + * The "Bad translations in the middle of the night" release. + * Update czech translation by Martin ?ín + (Closes: #382775,#383226) + * Add logcheck ignore line for lmtp delivery log entries (Closes: #382942) + * Update imapd.conf and cyrus.conf to reflect the configurable IDLE patch + applied since 2.2.13-5. (Closes: #382938) + * Update a debconf question so that it doesn't ask in first persion. Fixes a + lintian warning or even two. + * Fix delprune event in cyrus.conf to use cyr_expire (Closes: #383015) + * Add swedish translation by Daniel Nylander + * Fix some mistakes in the german translation, most corrections by Holger + Wansing + * Update italian translation by Cristian Rigamonti + * Correct README.Debian.database regarding number of .seen and .sub + databases. (Closes: #383484) + * Change wording regarding installsieve in README.Debian. (Closes: #383485) + * Add a "WARNING" prefix to the error message about missing sieve scripts. + (Closes: #383640) + * Add a logcheck ignore clause for sieve redirects. (Closes: #384265) + * Fix an implicit pointer conversion in imap/global.c (Closes: #384279) + * Update french translation thanks to Philippe Batailler and the + debian-l10n-french mailing list. (Closes: #384288) + * added 'sieve_allowreferrals' option which controls whether timsieved + issues referrals (default) or proxies (by murch@andrew.cmu.edu) + * update japanese debconf translation, thanks to Hideki Yamane + (henrich@samba.gr.jp) + * Update logcheck rules (thanks to Paul Traina ) + (Closes: #387180) + * Add a patch to change a log message when a user has no sieve file. + + -- Sven Mueller Thu, 14 Sep 2006 18:58:49 +0200 + +cyrus-imapd-2.2 (2.2.13-6) unstable; urgency=low + + * Fix a problem in cyrus-common-2.2 preinst + + -- Sven Mueller Thu, 10 Aug 2006 03:58:58 +0200 + +cyrus-imapd-2.2 (2.2.13-5) unstable; urgency=low + + * The "Need to clean the Windows" release + + [ Benjamin Seidenberg ] + * Update the following documentation: + - README.Debian + - README.Debian.database + - README.Debian.postfix + - README.Debian. + (Closes: #378520, #369882) + * Bump debian policy to version 3.7.2 (No changes required) + * Move cyr_expire to /usr/sbin as this is used in cyrus.conf. + Thanks to Alexander Turic . (Closes: #380595) + * Rename cron script to cyrus22 since dots aren't allowed + (Closes: #382069) + + [ Sven Mueller ] + * Remove outdated entry about netnews removal from README.Debian + (Closes: #378519) + * Add --no-create-home to adduser arguments in cyrus-common2.2's + postinst script. (Closes: #378518) + * Modify debian/rules to once again create a meaningful + cyrus-db-types.txt file (Closes: #366957) + * Improve imapd.conf documentation to show how service specific options can + be given. Also update packaged imapd.conf to reflect 2.2 syntax and + behaviour. (Closes: #379881) + * Use ssl-cert and reference system-wide ssl certificates in imapd.conf, + leaving the service specific ssl certs as-is. + * Update imapd.conf documentation to clarify behaviour of allowplaintext in + combination with sasl_mech_list. + * Sync with 2.2 CVS tree from upstream, including a few documentation fixes + and a fix returning empty strings for empty message parts instead of NULL + * Use configurable idle patch from Ondřej Surý + * Add some more options to /etc/default/cyrus2.2 and use them in the init + script, including a generic OPTIONS variable to allow setting of any + commandline option for cyrmaster. (Closes: #382061) + * Add logic in cyrus-common-2.2 preinst/postrm scripts to rename the + cron.daily script. Supplements change by Benjamin Seidenberg, closing + #382069. + + -- Sven Mueller Thu, 10 Aug 2006 03:17:27 +0200 + +cyrus-imapd-2.2 (2.2.13-4) unstable; urgency=low + + [ Benjamin Seidenberg ] + * Switch from dh_movefiles (deprecated) to dh_install + + [ Sven Mueller ] + * Integrate 4 upstream CVS updates/fixes: + - Upstream fix: only free() the backend struct if we allocated it + (don't free cached connections) + - remove limit on the size of mailbox files that can be received by UNDUMP + (write file directly to disk rather than reading the literal into + memory) + - better logging to facilitate message tracking (Wes Craig + ) + - remove redundant check for wildcards in mailbox names (Wes Craig + ) + * Move expiry from ctl_deliver to cyr_expire as suggested by upstreams + upgrade information. + * Add upstream patch to fix a small issue with linking and libRSAglue + * Add upstream patch to compile with MIT krb5 1.4.3 (Philip Guenther + ) + * Add upstream patch to allow reporting of mailbox sizes above 4GB + * Add upstream patch to fix a documentation error in imapoptions + * Add patch to fix some compiler warnings about casts from pointer to + integer of different size + * Change the init script to actuall print some information when called with + the "status" argument + * Add upstream typo fixes of the day. See 0016-upstream-fix-typos for + reference to upstream CVS + + [ Benjamin Seidenberg ] + * Fix typos in UPGRADE.Debian (Closes: #368675) + * Fix link in doc/html/readme.html (Closes: #368676) + * Add upstream patch to fix POP locking when reconstructing + + -- Sven Mueller Wed, 28 Jun 2006 22:21:51 +0200 + +cyrus-imapd-2.2 (2.2.13-3) unstable; urgency=high + + [ Sven Mueller ] + * [Security] Add upstream patch to disallow user probes + * Add upstream patch to fix dump/undump of remote mailboxes (ctl_mboxlist) + * Add upstream patch to allow ACL removal for invalid IDs + * Add upstream patch to properly handle timezones and DST in fetchnews + * Urgency=high for both security fix and patch to dump/undump bug which + makes package unusuable in many supported setups + + [ Benjamin Seidenberg ] + * Add build dependency on libkvm-dev for kfreebsd (Closes: #366113) + + -- Sven Mueller Fri, 5 May 2006 18:01:41 +0200 + +cyrus-imapd-2.2 (2.2.13-2) unstable; urgency=low + + [ Sven Mueller ] + * Apply fix from upstream CVS to imap/backend.c (Closes: #365629) + + -- Sven Mueller Tue, 2 May 2006 22:14:03 +0200 + +cyrus-imapd-2.2 (2.2.13-1) unstable; urgency=low + + [ Sven Mueller ] + * Switch to new upstream release (2.2.13) + * Fix spelling mistake in debian/control (Closes: #363329) + * Fix logcheck rule (Closes: #364835) + + -- Sven Mueller Sat, 29 Apr 2006 22:31:42 +0200 + +cyrus-imapd-2.2 (2.2.12-5) unstable; urgency=low + + [ Sven Mueller ] + * Add example entries for squatter to cyrus.conf (Closes: #355303) + * Fix URLs in README.sendmail (Closes: #355771) + * Remove STDERR redirection from cyrus-common-2.2 postinst call to adduser + + [ Benjamin Seidenberg ] + * Default to lmtp_downcase_rcpt: yes for compliance with RFC 2821 + (Closes: #357040) + + -- Sven Mueller Fri, 31 Mar 2006 20:11:54 +0200 + +cyrus-imapd-2.2 (2.2.12-4) unstable; urgency=low + + [ Benjamin Seidenberg ] + * Change maintainer to mailing list + * Remove multiple provides: lines in cyrus-nntpd-2.2 (Closes: #352240) + * Add lintian override for CVS dirs in source tarball, we need to hit + upstream with a cluebat for this. + * Move all Build-Depends-Indep dependencies to Build-Depends because of the + way debian/rules invokes this target, they are not installed, fixes FTBFS. + (Closes: #352775, #352779) + + [ Sven Mueller ] + * Disable DRAC authentication + * Fix reference in debian/po/POTFILES.in (Closes: #352948) + + [ Ondřej Surý ] + * Upload to unstable. + + -- Ondřej Surý Wed, 15 Feb 2006 22:42:35 +0100 + +cyrus-imapd-2.2 (2.2.12-3) unstable; urgency=low + + [ Sven Mueller ] + * Add a script which helps downloading, editing and re-uploading + sieve scripts + * Add a patch to fix db_err callback prototype when building against + Berkeley DB 4.3 or newer + + [ Henrique de Moraes Holschuh ] + * UPGRADE.Debian: warn of dangerous problem in cyrus-imapd from sarge, + which would cause data loss when UPGRADE.Debian instructions were + followed. + + [ Benjamin Seidenberg ] + * Changed debian/control so that the doc package is in section doc to match + ftpmaster override. + + [ Ondřej Surý ] + * Updated and renamed logcheck rules. + * Upload to unstable. + + -- Ondřej Surý Mon, 13 Feb 2006 14:16:44 +0100 + +cyrus-imapd-2.2 (2.2.12-2) experimental; urgency=low + + [ Henrique de Moraes Holschuh ] + * Modify the Debian default TLS cipher list to use only secure ciphers + suitable for imap/pop/smtp/lmtp TLS, and add an explanation + + [ Benjamin Seidenberg ] + * Rewrote descriptions to all refer to cyrus-common-2.2 + * Changed all package names in all required files within /debian to reflect + the new naming scheme + * Deleted two files in /usr/lib/cyrus in the purge target of postrm so that + this folder is deleted correctly + * Changed policy version to 3.6.2 + * Added upstream patchset 6662: + imap/spool.c:1.7->1.8: don't catch our own NULL (off by one error) + (Closes: #342314) + + [ Sven Mueller ] + * Add a small sed call to debian rules to work around libsnmp[59]-dev + problem which causes an unneccesary "-lsensors" in master/Makefile, + resulting in an unnessary build dependency on libsensors-dev. + Proper fix has to go into netsmp packages, also we need to properly use + Debian's libtool. (Closes: #341580) + * Add czech translation (thanks to Martin Sin and the debian-l10n-czech + team) with a spelling correction from Ondrej Surý. + * Adjust kolab2 annotation patch according to patch from Steffen Joeris + (Closes: #347527) + * Apply patch fixing some error messages in Shell.pm (Closes: #347658) + + [ Ondřej Surý ] + * Upload to experimental. + + -- Ondřej Surý Fri, 13 Jan 2006 11:52:58 +0100 + +cyrus22-imapd (2.2.12-1) experimental; urgency=low + + [ Benjamin Seidenberg ] + * Revised to build against pristine upstream sources. + [ Sven Mueller ] + * Fixed a discrepancy between documentation and actual behaviour of the + "dracinterval" imapd.conf option. Documentation always said the default + would be 0, while the default was actually 5. + [ Henrique de Moraes Holschuh ] + * Change build-dependency from libsnmp4.2-dev (ucd snmp) to libsnmp9-dev | + libsnmp5-dev (netsnmp), so that it works right in sid/etch and sarge + * Upload to experimental + + -- Henrique de Moraes Holschuh Tue, 29 Nov 2005 02:10:21 -0200 + +cyrus22-imapd (2.2.12-0.9) unstable; urgency=low + + [ Sven Mueller ] + * Add patch to be compatible with BerkeleyDB 4.3 + * Add patch to fix TLS/SSL shutdown in timsieved + + -- Sven Mueller Mon, 14 Nov 2005 14:56:20 +0100 + +cyrus22-imapd (2.2.12-0.8) unstable; urgency=low + + [ Sven Mueller ] + * Fix a problem in the init scripts new status check, found by Benjamin + Seidenberg. + + -- Sven Mueller Sun, 13 Nov 2005 20:14:05 +0100 + +cyrus22-imapd (2.2.12-0.7) unstable; urgency=low + + [ Sven Mueller ] + * Switch most deletions of autogenerated files to use debian/deletable.files + * Switch all remaining patches to dpatch so that the .diff.gz should now be + clean except for the files in debian/. + + -- Sven Mueller Thu, 10 Nov 2005 16:06:09 +0100 + +cyrus22-imapd (2.2.12-0.6) unstable; urgency=low + + [ Sven Mueller ] + * Added kolab2 annotation patch as proposed by Christoper Sacca + * Added a small patch to lower the minimum pop3 timeout to 1 minute. + The default is still at 10 minutes. I also added some documentation to make + it clear to admins that it is _not_ recommended to lower the value to less + than 10 minutes (because that is what the standard says it should be at). + I needed this change for use at my workplace though. The patch is disabled + by default. + * Patched init script to support everything LSB 3.0 asks for, including the + "right" return codes, as far as we can. + * Add patch to enhance sieveshell a bit: + - Add --execfile parameter to read commands from a file + - Add --password parameter to pass the users parameter on the commandline + - Add code to return with a non-zero exit code if the last command + executed failed for some reason. + + [ Ondřej Surý ] + * Add 64bit quota dpatch. + * Rerun autoconf and add result as dpatch. + + -- Sven Mueller Fri, 23 Sep 2005 18:55:57 +0200 + +cyrus22-imapd (2.2.12-0.5) unstable; urgency=low + + * Update upgrading information + * Include masssievec in cyrus22-common + * Applied patch from Raphaël 'SurcouF' Bordet to add + nntp support again. + * Eliminate an unused variable from tools/masssievec to get rid of perl + warning. + * Update Recommends and Suggests for cyrus22-common as suggested by HMH + * Move several patches from patching the source directly to patching through + the use of dpatch + + -- Sven Mueller Tue, 24 May 2005 23:13:18 +0200 + +cyrus22-imapd (2.2.12-0.4) unstable; urgency=low + + * Fix usage message in deliver.c to reflect Debian naming of (cyr)deliver, + (cyr)quota and (cyr)reconstruct + * Document the defaultdomain setting a bit better (hopefully) + * fix deletion of debian/cyrus-hardwired-config.txt during cleanup + * build both arch-dependend and arch-independend parts when debian/rules is + called for the build target + * Add Sven Mueller to the list of uploaders + + -- Sven Mueller Fri, 29 Apr 2005 00:14:04 +0200 + +cyrus22-imapd (2.2.12-0.3) unstable; urgency=low + + * Add a README which contains the configure options used to + compile the package. The README is auto-generated by debian/rules + * cyrus22-clients needs to conflict with cyrus21-clients + * cyrus22-common needs to conflict with cyrus21-common + * Add a guess of what the problem might be to the set_cert_stuff failure + message + * Update a few Replaces:, Provides: and Conflicts: lines in debian/control + + -- Sven Mueller Thu, 24 Mar 2005 12:26:27 +0100 + +cyrus22-imapd (2.2.12-0.2) unstable; urgency=low + + * Fix some more perl executable paths + * clean up debian directory a bit + * install sievec with cyrus22-common + * install mbexamine with cyrus22-common + * install smmapd with cyrus22-common + * install cyr_expire with cyrus22-common + * install installsieve with cyrus22-admin + + -- Sven Mueller Tue, 22 Mar 2005 14:48:33 +0100 + +cyrus22-imapd (2.2.12-0.1) unstable; urgency=low + + * Initial revision of cyrus22-imapd package + - debian packaging taken from cyrus21-imapd_2.1.18-1 + * Add/fix imapd.conf info regarding virtual domains + * Add DRAC support (i.e. apply DRAC patch from /contrib) + * Add syncldap2cyrus.pl script from #260833 (a cyrus21 bug) + + -- Sven Mueller Fri, 18 Mar 2005 13:34:09 +0100 + --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-imapd-2.2.links +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-imapd-2.2.links @@ -0,0 +1 @@ +usr/share/doc/cyrus-common-2.2 usr/share/doc/cyrus-imapd-2.2 --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-pop3d-2.2.links +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-pop3d-2.2.links @@ -0,0 +1,2 @@ +usr/share/doc/cyrus-common-2.2 usr/share/doc/cyrus-pop3d-2.2 + --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-pop3d-2.2.dirs +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-pop3d-2.2.dirs @@ -0,0 +1 @@ +usr/lib/cyrus --- cyrus-imapd-2.2-2.2.13p1.orig/debian/imap.pam +++ cyrus-imapd-2.2-2.2.13p1/debian/imap.pam @@ -0,0 +1,14 @@ +# PAM configuration file for Cyrus IMAP service +# $Id$ +# +# If you want to use Cyrus in a setup where users don't have +# accounts on the local machine, you'll need to make sure +# you use something like pam_permit for account checking. +# +# Remember that SASL (and therefore Cyrus) accesses PAM +# modules through saslauthd, and that SASL can only deal with +# plaintext passwords if PAM is used. +# + +@include common-auth +@include common-account --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-common-2.2.postrm +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-common-2.2.postrm @@ -0,0 +1,10 @@ +#!/bin/sh + +set -e + +#DEBHELPER# + +dpkg-maintscript-helper mv_conffile /etc/init.d/cyrus2.2 /etc/init.d/cyrus-imapd 2.2.13p1-1 -- "$@" +dpkg-maintscript-helper mv_conffile /etc/default/cyrus2.2 /etc/default/cyrus-imapd 2.2.13p1-1 -- "$@" + +exit 0 --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-admin-2.2.menu +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-admin-2.2.menu @@ -0,0 +1,6 @@ +?package(cyrus-admin-2.2):needs="text" section="Applications/System/Administration"\ + hints="Mail,Admin,Cyrus"\ + title="Cyrus 2.2 cyradm (cyrus@localhost)"\ + longtitle="Administer local Cyrus IMAPd 2.2 accounts as user cyrus"\ + icon="/usr/share/icons/cyradm.xpm"\ + command="/usr/bin/cyradm --user cyrus localhost" --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus.conf +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus.conf @@ -0,0 +1,89 @@ +# Debian defaults for Cyrus IMAP server/cluster implementation +# see cyrus.conf(5) for more information +# +# All the tcp services are tcpd-wrapped. see hosts_access(5) +# $Id$ + +START { + # do not delete this entry! + recover cmd="/usr/sbin/ctl_cyrusdb -r" + + # this is only necessary if idlemethod is set to "idled" in imapd.conf + #idled cmd="idled" + + # this is useful on backend nodes of a Murder cluster + # it causes the backend to syncronize its mailbox list with + # the mupdate master upon startup + #mupdatepush cmd="/usr/sbin/ctl_mboxlist -m" + + # this is recommended if using duplicate delivery suppression + delprune cmd="/usr/sbin/cyr_expire -E 3" + # this is recommended if caching TLS sessions + tlsprune cmd="/usr/sbin/tls_prune" +} + +# UNIX sockets start with a slash and are absolute paths +# you can use a maxchild=# to limit the maximum number of forks of a service +# you can use babysit=true and maxforkrate=# to keep tight tabs on the service +# most services also accept -U (limit number of reuses) and -T (timeout) +SERVICES { + # --- Normal cyrus spool, or Murder backends --- + # add or remove based on preferences + imap cmd="imapd -U 30" listen="imap" prefork=0 maxchild=100 + #imaps cmd="imapd -s -U 30" listen="imaps" prefork=0 maxchild=100 + pop3 cmd="pop3d -U 30" listen="pop3" prefork=0 maxchild=50 + #pop3s cmd="pop3d -s -U 30" listen="pop3s" prefork=0 maxchild=50 + nntp cmd="nntpd -U 30" listen="nntp" prefork=0 maxchild=100 + #nntps cmd="nntpd -s -U 30" listen="nntps" prefork=0 maxchild=100 + + # At least one form of LMTP is required for delivery + # (you must keep the Unix socket name in sync with imap.conf) + #lmtp cmd="lmtpd" listen="localhost:lmtp" prefork=0 maxchild=20 + lmtpunix cmd="lmtpd" listen="/var/run/cyrus/socket/lmtp" prefork=0 maxchild=20 + # ---------------------------------------------- + + # useful if you need to give users remote access to sieve + # by default, we limit this to localhost in Debian + sieve cmd="timsieved" listen="localhost:sieve" prefork=0 maxchild=100 + + # this one is needed for the notification services + notify cmd="notifyd" listen="/var/run/cyrus/socket/notify" proto="udp" prefork=1 + + # --- Murder frontends ------------------------- + # enable these and disable the matching services above, + # except for sieve (which deals automatically with Murder) + + # mupdate database service - must prefork at least 1 + # (mupdate slaves) + #mupdate cmd="mupdate" listen=3905 prefork=1 + # (mupdate master, only one in the entire cluster) + #mupdate cmd="mupdate -m" listen=3905 prefork=1 + + # proxies that will connect to the backends + #imap cmd="proxyd" listen="imap" prefork=0 maxchild=100 + #imaps cmd="proxyd -s" listen="imaps" prefork=0 maxchild=100 + #pop3 cmd="pop3proxyd" listen="pop3" prefork=0 maxchild=50 + #pop3s cmd="pop3proxyd -s" listen="pop3s" prefork=0 maxchild=50 + #lmtp cmd="lmtpproxyd" listen="lmtp" prefork=1 maxchild=20 + # ---------------------------------------------- +} + +EVENTS { + # this is required + checkpoint cmd="/usr/sbin/ctl_cyrusdb -c" period=30 + + # this is only necessary if using duplicate delivery suppression + delprune cmd="/usr/sbin/cyr_expire -E 3" at=0401 + + # this is only necessary if caching TLS sessions + tlsprune cmd="/usr/sbin/tls_prune" at=0401 + + # indexing of mailboxs for server side fulltext searches + + # reindex changed mailboxes (fulltext) approximately every other hour + #squatter_1 cmd="/usr/bin/nice -n 19 /usr/sbin/squatter -s" period=120 + + # reindex all mailboxes (fulltext) daily + #squatter_a cmd="/usr/sbin/squatter" at=0517 +} + --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-murder-2.2.install +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-murder-2.2.install @@ -0,0 +1,3 @@ +etc/pam.d/mupdate +usr/lib/cyrus/bin/*proxyd +usr/lib/cyrus/bin/mupdate* --- cyrus-imapd-2.2-2.2.13p1.orig/debian/UPGRADE.Debian +++ cyrus-imapd-2.2-2.2.13p1/debian/UPGRADE.Debian @@ -0,0 +1,204 @@ +For more information, see README.Debian[.gz] in /usr/share/doc/cyrus-common-2.2/ +and the web page below, part of the cyrus-utils project at SourceForge: + + http://cyrus-utils.sourceforge.net/faq + +Upgrading from 2.2.12 or 2.2.13 versions prior to 2.2.13-5 +========================================================== + +In 2.2.13-5, a bug in debian/rules regarding the generation of +cyrus-db-types.txt was fixed. As a result, the cyrus2.2 init script +might complain about a database types mismatch. If this happens, +please make sure that you are really upgrading from a Debian package +of cyrus-imapd version 2.2 (either the old experimental cyrus22-imapd +or the newer cyrus-imapd-2.2 packages). If you do, please remove +/usr/lib/cyrus/cyrus-db-types.active and run +dpkg-reconfigure cyrus-common-2.2 + +Upgrading from cyrus 2.1 +======================== + +If you upgrade from cyrus 2.1, all you need to do is to upgrade the +database files from the old database backend to the new one. If you use +sieve-scripts, you will also need to use sievec on them. The information +how to do upgrade your database files is contained in the upgrade +information from cyrus v1.5 below and in more detail in +/usr/share/doc/cyrus-common-2.2/README.Debian.database. + +The configuration option lmtp_overquota_perm_failure has been renamed +lmtp_over_quota_perm_failure. Please update your configuration accordingly. + +Please note that the 2.1 packages in Debian use a different format +from upstream, thus the upgrade is easier. + +Also, please note that The tls_[service]_* configuration options have been +removed. Now use [servicename]_tls_*, where servicename is the service +identifier from cyrus.conf for that particular process. + +Upgrading sieve scripts +----------------------- + +Cyrus IMAPD 2.2 uses bytecode for sieve scripts. This means that you need to +compile all existing sieve scripts so that they will work with cyrus 2.2. There +is a small tool in /usr/lib/cyrus/upgrade, called masssievec which will +automatically compile all installed scripts when called correctly. Please +refer to the script's usage information for details. +The command line you will probably want to use is (as user cyrus): +/usr/lib/cyrus/upgrade/masssievec /usr/lib/cyrus/bin/sievec /etc/imapd.conf + +Upgrading from cyrus 1.5.x +========================== + +Upgrading cyrus-imapd to cyrus-imapd-2.2 on Debian +(thanks to David D. Kilzer for this document) +----------------------------------------------- + +This document describes the procedure for upgrading from the old cyrus-imapd +(v1.5.x) package to the new cyrus-imapd-2.2 (v2.2) package. While this is a +manual process, it is very straightforward. + +The procedure for converting a v1.6 cyrus store to v2.2 is not explained here, +but the tools to convert the sieve scripts are in /usr/lib/cyrus/upgrade. + +Your SASL installation may require further conversion steps, as Cyrus v2.2 uses +SASL v2, while Cyrus v1.5 used SASL v1.5. /usr/share/doc/libsasl2 has more +information on SASL v2. Do pay attention to your SASL v2 installation, such +as permissions and such. When in doubt, read the README.simpleinstall +document, as it describes an initial SASLv2 setup. + +NOTE: If you've already installed the cyrus 2.2 packages, skip to step 5. + + 1. Become the "root" user on your local system. + + $ /bin/su - + # + + 2. Look for any running cyrus daemons using the ps(1) command. Use + kill(1) to stop any processes that are found. + + # /etc/init.d/pwcheck stop + # ps auwwx | grep cyr + # ps auwwx | grep pop3d + # ps auwwx | grep imapd + # ps auwwx | grep nntpd + + 3. Remove the old cyrus packages. + + ###################################################################### + WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING + ###################################################################### + + Some versions of the cyrus-imapd packages, with versions 1.5.19-9.10 + up to 1.5.19-20 (shipped in Debian Sarge 3.1r1) will entirely erase + the mail spool when purged with no questions asked. + + You must NOT purge these packages before moving /var/lib/cyrus and + /var/spool/cyrus to somewhere safe. Failure to do so will cause data + loss. + + # mv /var/lib/cyrus /var/lib/old-cyrus + # mv /var/spool/cyrus /var/spool/old-cyrus + + The cyrus-imapd packages in Woody (1.5.19-9.2) are safe, as well as + the fixed cyrus-imapd packages 1.5.19-20.1 which should make it to + Debian Sarge 3.1r2. + + ###################################################################### + + # apt-get --purge remove cyrus-common cyrus-admin cyrus-imapd cyrus-pop3d \ + cyrus-nntpd [BUT SEE THE ABOVE WARNING FIRST!!!] + + or use dselect/aptitude/synaptic/your favorite deb management tool. + + IMPORTANT: You must answer "n" to this question: "Do you want me to + remove the Cyrus mail and news spool (y/n) [n] ?" + + NOTE: You could also copy -a the /var/spool/cyrus and /var/lib/cyrus + folders somewhere else, just in case. + + 4. Install the new cyrus-imapd-2.2 packages. Make sure no user will try + to connect to imapd/pop3d and that no MTA will try to deliver to lmtpd + until you do step 5. + + cyrus-common-2.2 [required] + cyrus-admin-2.2 [required] + cyrus-imapd-2.2 [optional; must have one of imapd or pop3d] + cyrus-pop3d-2.2 [optional; must have one of imapd or pop3d] + libcyrus-imap-perl22 [required] + + # apt-get install PACKAGE-NAME [PACKAGE_NAME ...] + + or use dselect. + + 5. Stop the cyrmaster process. + + # /etc/init.d/cyrus2.2 stop + + 5a. Make sure Cyrus won't start until the upgrade process is over. + + # cp -f /usr/lib/cyrus/upgrade/cyrus-db-types.upgrading_from_1.5.txt \ + /usr/lib/cyrus/cyrus-db-types.active + + 6. Change to the "cyrus" user. + + # /bin/su - cyrus + $ + + 7. Run the rehash program. + + $ /usr/lib/cyrus/upgrade/rehash basic + + 8. Run ctl_mboxlist to update the "mailboxes" file. + + $ cd /var/lib/cyrus + $ /usr/sbin/ctl_mboxlist -u < mailboxes + + 9. Run the cyrreconstruct program from the /var/spool/cyrus directory + to reconstruct the mailboxes. + + $ cd /var/spool/cyrus + $ /usr/sbin/cyrreconstruct -r user.* + + (you may need to cyrreconstruct other mailboxes, if you have any + system mailboxes or shared mailboxes not in the user hierarchy) + +10. Exit the "cyrus" user, back to "root". + + $ exit + # + +11. Upgrade all of the BerkleyDB files used by Cyrus from their current format to db4.2. You need db4.2-util installed. + + # find /var/lib/cyrus -name \*.db -print -exec /usr/bin/db4.2_upgrade {} \; + +12. Convert the state databases to those used by new Cyrus 2.2 + + Read /usr/share/doc/cyrus-common-2.2/README.Debian.database, and follow + whatever steps you need to change the backends from db3 to skiplist. + + This step needs some work, if you can send your experiences with it + to hmh@debian.org, I will update this document accordingly. + +**** The upgrade of Cyrus' stores are now complete **** + +You may want to remove any left-over empty directories from the old version, +and re-run /usr/sbin/cyrus-makedirs just in case you got one of them wrong. + +Now, you need to reconfigure the new Cyrus imapd to adequate it to your system +and SASL requirements. The Cyrus config files are /etc/imapd.conf, +/etc/cyrus.conf and /etc/default/cyrus2.2. + +Depending on your SASL configuration, you may also need to modify +/etc/pam.d/{imap,pop,sieve,lmtp} and other SASL configuration files. + +Do not forget to edit /etc/imapd.conf to e.g. set the "admins: cyrus" line (if +you use "cyrus" as the name for the administrator). + +NOTES about DRAC authentication +=============================== + +DRAC has been disabled in cyrus-imapd-2.2, it caused quite some trouble and +wasn't used by many. You can however build your own version by editing 00list +in debian/patches and adding 20-drac_auth.dpatch to it at the proper place +(i.e. right before the patch numbered 21) and building cyrus-imapd-2.2 with +dpkg-buildpackage or a similar tool. --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-admin-2.2.lintian-overrides +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-admin-2.2.lintian-overrides @@ -0,0 +1,2 @@ +cyrus-admin-2.2: shell-script-fails-syntax-check usr/bin/cyradm +cyrus-admin-2.2: shell-script-fails-syntax-check ./usr/bin/cyradm --- cyrus-imapd-2.2-2.2.13p1.orig/debian/README.new_upstream +++ cyrus-imapd-2.2-2.2.13p1/debian/README.new_upstream @@ -0,0 +1,3 @@ +If a new upstream version is integrated, make sure you edit +cyrus2.2-common.postinst and fix the version in there with +the new upstream version (search for compare-versions). --- cyrus-imapd-2.2-2.2.13p1.orig/debian/sieve.pam +++ cyrus-imapd-2.2-2.2.13p1/debian/sieve.pam @@ -0,0 +1,14 @@ +# PAM configuration file for Cyrus SIEVE timsieved service +# $Id$ +# +# If you want to use Cyrus in a setup where users don't have +# accounts on the local machine, you'll need to make sure +# you use something like pam_permit for account checking. +# +# Remember that SASL (and therefore Cyrus) accesses PAM +# modules through saslauthd, and that SASL can only deal with +# plaintext passwords if PAM is used. +# + +@include common-auth +@include common-account --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-clients-2.2.README.Debian +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-clients-2.2.README.Debian @@ -0,0 +1,9 @@ +Cyrus IMAP for Debian, generic SASL-enabled protocol clients +$Id$ +--------------------- + +Refer to the cyrus-doc-2.2 package for more information. There is a lot +of it, and it will save you hours (or days) of frustating bug-hunting if +you read them first. + + -- Henrique de Moraes Holschuh --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-common-2.2.contrib +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-common-2.2.contrib @@ -0,0 +1,7 @@ +contrib/cyrus-graphtools.1.0 +contrib/fud-client.c +contrib/README +contrib/sieve-spamasssassin +contrib/squatrunner.pl +contrib/squatrunner.txt +contrib/add-cyrus-user --- cyrus-imapd-2.2-2.2.13p1.orig/debian/license.html +++ cyrus-imapd-2.2-2.2.13p1/debian/license.html @@ -0,0 +1,161 @@ + + + + + +Cyrus IMAP Licensing + + + + +

+ + +Masthead
+ + + + +
+Cyrus IMAP Licensing +
+
+ + +ASG Home   + + + +What's New   + + + +Jobs   + + + +Search   + + + +Contact Us  
+ + + + +Download Software   + + + +Mailing lists   + + + +Project Cyrus Home   +
+ + + +
+
+

+ + +Please direct technical questions or issues to cyrus-bugs@andrew.cmu.edu. +
+Please direct any licensing issues to tech-transfer@andrew.cmu.edu. +


+ +ALL versions of the Cyrus IMAP server are now covered by the +following copyright message. However, please note that in + distributions before 2.0, there may still be files that have the old + copyright text. + +
+ + * Copyright (c) 1994-2000 Carnegie Mellon University. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The name "Carnegie Mellon University" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For permission or any legal + * details, please contact + * Office of Technology Transfer + * Carnegie Mellon University + * 5000 Forbes Avenue + * Pittsburgh, PA 15213-3890 + * (412) 268-4387, fax: (412) 268-7395 + * tech-transfer@andrew.cmu.edu + * + * 4. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by Computing Services + * at Carnegie Mellon University (http://www.cmu.edu/computing/)." + * + * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE + * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +
+ +

+If you find this software useful and valuable in your work, we welcome +any support you can offer toward continuing this work. + +

We gratefully accept contributions, whether intellectual or +monetary. Intellectual contributions in the form of code or +constructive collaboration can be directed to cyrus-bugs+@andrew.cmu.edu +(even if it is not a bug). + +

If you wish to provide financial support to the Cyrus Project, send a +check payable to Carnegie Mellon University to + +

+ + Project Cyrus + Computing Services + Carnegie Mellon University + 5000 Forbes Ave + Pittsburgh, PA 15213 + USA + +
+
+

+Please direct technical questions or issues to cyrus-bugs@andrew.cmu.edu. +
+Please direct any licensing issues to tech-transfer@andrew.cmu.edu. + +

+


+
+ +Last Updated: Thursday, 12-Oct-2000 16:38:41 EDT + + + + --- cyrus-imapd-2.2-2.2.13p1.orig/debian/arbitronsort.8 +++ cyrus-imapd-2.2-2.2.13p1/debian/arbitronsort.8 @@ -0,0 +1,15 @@ +.TH ARBITRONSORT "8" "Project Cyrus" "CMU" +.SH NAME +arbitronsort \- sorts arbitron(8) output +.SH SYNOPSIS +.B +arbitronsort +.SH DESCRIPTION +.PP +This tool takes the output of arbitron (run without the -o option) +on stdin and prints out first a ranking of mailboxes by number of +people who selected the mailbox, and then a ranking of mailbox by +number of subscribers. +.SH SEE ALSO +.PP +\fBarbitron(8)\fR --- cyrus-imapd-2.2-2.2.13p1.orig/debian/cyrus-doc-2.2.doc-base +++ cyrus-imapd-2.2-2.2.13p1/debian/cyrus-doc-2.2.doc-base @@ -0,0 +1,10 @@ +Document: cyrus2.2-manual +Title: CMU Cyrus 2.2 Manual +Author: Carnegie Mellon University +Abstract: This manual describes how to configure and administer + the Cyrus POP/IMAP mail system, version 2.2 +Section: Network/Communication/Mail + +Format: HTML +Index: /usr/share/doc/cyrus-doc-2.2/html/index.html +Files: /usr/share/doc/cyrus-doc-2.2/html/*.html --- cyrus-imapd-2.2-2.2.13p1.orig/debian/examples/README.imapcreate.pl +++ cyrus-imapd-2.2-2.2.13p1/debian/examples/README.imapcreate.pl @@ -0,0 +1,23 @@ +Launching the script without any parameters will show a short help. It +should be pretty self-explanatory. + +Here are some examples on how the script could be invoked: + +- this will read the file list.txt, and create the mailboxes listed in it + with a 50MB quota: + + cat list.txt | ./imapcreate.pl -u cyradm -p 'cyrpass' -q 50M mail.example.com + +- this will create a mailbox for john, using the Unix Hierarchy separator, + no quota, in verbose mode: + + ./imapcreate.pl -u cyradm -m john -s -v mail.example.com + + the output would look like this: + + Creating user.john on default + +This script is far from being perfect, but it works great for me. feel free +to e-mail me about it, to report bugs, to send patches etc: + +clement.hermann@free.fr --- cyrus-imapd-2.2-2.2.13p1.orig/debian/examples/mboxtocyrus +++ cyrus-imapd-2.2-2.2.13p1/debian/examples/mboxtocyrus @@ -0,0 +1,69 @@ +#!/bin/sh +# +# Script to import mbox-format mailboxes to Cyrus folders +# Requires formail (from procmail) +# +# Note: As this runs cyrdeliver directly, you'll need to be +# a member of the mail group for it to work. +# +# Note2: Make sure the user 'postman' is listed as an lmtp_admin +# that is allowed to proxy. +# +# Use this script at your own risk! I'm not responsible if +# it trashes your mail system :) +# +# By Michael-John Turner +# +# Changelog: +# Fri Dec 1 21:19:19 SAST 2000 +# - Incorporate some modifications from Tomas Pospisek +# + +USER=$1 +MAILBOX=$2 +CYRUSFOLDER=$3 +CYRDELIVER=/usr/sbin/cyrdeliver +FORMAIL=/usr/bin/formail + +if ! [ -x "$FORMAIL" ]; then + echo "" + echo "formail (from procmail) is required to run this script" + echo "" + exit 1 +fi + + +# This assumes id prints group names within parentheses +if ! `id | grep -q "(mail)"`; then + echo "" + echo "You must be a member of the mail group to run this script" + echo "" + exit 1 +fi + + +if [ "$USER" = "" ]; then + echo "" + echo "syntax: $0 user [mbox] [cyrus folder]" + echo "" + echo "If no mbox is specified, the user and mbox name are taken to be the same" + echo "If no cyrus folder is specified, the INBOX is used" + echo "" + exit 2 +fi + + + +if [ "$MAILBOX" = "" ]; then + MAILBOX=$USER +fi + +if [ "$CYRUSFOLDER" = "" ]; then + echo "Adding mailbox '$MAILBOX' to Cyrus INBOX of user '$USER'..." + $FORMAIL -I "From " < $MAILBOX -s $CYRDELIVER $USER + else + echo "Adding mailbox '$MAILBOX' to Cyrus folder '$CYRUSFOLDER' of user '$USER'..." + $FORMAIL -I "From " < $MAILBOX -s $CYRDELIVER -a postman -m $CYRUSFOLDER $USER +fi + + --- cyrus-imapd-2.2-2.2.13p1.orig/debian/examples/imapcreate.pl +++ cyrus-imapd-2.2-2.2.13p1/debian/examples/imapcreate.pl @@ -0,0 +1,167 @@ +#!/usr/bin/perl -w +# +# imapcreate: create IMAP mailboxes with quotas +# Reads user names from standard input. +# originally found on http://cyrus-utils.sourceforge.net +# © 2001 Garry Mills +# +# enhanced by Clément "nodens" Hermann +# +# I'd like to consider this as GPL'd (cf www.gnu.org), but won't add any +# copyright without the original author's consent. +# last modification : 2004/11/23 +# Changes : +# 2005/03/31 - Finally found out the original author's name. +# 2004/11/23 - removed LOGIN as a default mech, now use cyrus' default +# - Added --auth option to specify mech +# +# TODO : fix STDIN collision when reading password AND mailboxes name from STDIN +# +use Getopt::Long; +use Cyrus::IMAP::Admin; +use strict; + +# CLI options +my ($debug,$user,$pass,$quota,@part,$useunixhierarchy,@mailboxes,$delete,$cyrus,$authmech); + +sub usage { + print "imapcreate - create IMAP mailboxes with quotas\n"; + print " usage:\n"; + print " imapcreate [-d] [-u user] [--auth mechanism] [-p pass] [-m mailbox1[,mailbox2][,mailbox]] [-q quota] [-t partition:list]\n"; + print " [-s] [-v] \n"; + print "\n"; + print "if -s is set, we'll use the unix hierarchy separator (see imapd.conf(1))\n"; + print "if -d is set, we'll delete mailboxes instead of creating them\n"; + print "You can use M or ,m to specify quotas. e.g. 10M. By default,\n"; + print "the quota is expressed in Kbytes.\n"; + print "If no password is submitted with -p, we'll prompt for one.\n"; + print "if no mailbox name is specified with -m, read user names from standard input\n"; + print "if -v is set, we'll run in debug mode, and print information on stdout\n"; + print "\n"; + print "The default mechanism is used for authentication. If you need another\nmechanism, (try LOGIN), use --auth option\n"; + print "\n"; + print " example: \n"; + print " imapcreate -u cyradm -m foo,bar,joe -q 50000 -t p1:p2 mail.testing.umanitoba.ca\n"; + print "\n"; + exit 0; +} + +# Create a mailbox... usage : &CreateMailBox(user,partition[,quota]). +# You have to be authentified already. We use "$cyrus" as the connection name. +# partition can be 'default' +sub CreateMailBox { + my $mbuser = $_[0]; + my $mbpart = $_[1]; + my $mbquota = $_[2]; + + print "Creating $mbuser on $mbpart\n" if $debug; + if ($mbpart eq 'default') { + $cyrus->createmailbox($mbuser); + } + else { + $cyrus->createmailbox($mbuser, $mbpart); + } + warn $cyrus->error if $cyrus->error; + + # Set the quota + if ($mbquota) { + print "Setting quota for $mbuser to $mbquota\n" if $debug; + $cyrus->setquota($mbuser, 'STORAGE', $mbquota); + warn $cyrus->error if $cyrus->error; + } +} + +# Delete a mailbox. Usage: $DeleteMailBox($user) +# Assuming we use $user as the admin. +sub DeleteMailBox { + my $mbuser = $_[0]; + my $delacl = "c"; + + print "Deleting $mbuser\n" if $debug; + $cyrus->setaclmailbox($mbuser, $user, $delacl); + $cyrus->deletemailbox($mbuser); + warn $cyrus->error if $cyrus->error; +} + +GetOptions( "d|delete" => \$delete, + "u|user=s" => \$user, + "auth=s" => \$authmech, + "p|pass=s" => \$pass, + "m|mailboxes=s" => \@mailboxes, + "q|quota=s" => \$quota, + "s|UnixHierarchy" => \$useunixhierarchy, + "t|part=s" => \@part, + "v|verbose" => \$debug ); + +@part = split(/:/, join(':', @part)); +push @part, 'default' unless @part; +my $pn = 0; +@mailboxes = split(/,/, join(',', @mailboxes)); + +my $server = shift(@ARGV) if (@ARGV); +usage unless $server; + +# quotas formatting: +if ($quota) { + if ($quota =~ /^(\d+)([mk]?)$/i) { + my $numb = $1; + my $letter = $2; + if ($letter =~ /^m$/i) { + $quota = $numb * 1024; + print "debug: quota=$quota\n" if $debug; + } elsif ($letter =~ /^k$/i) { + $quota = $numb; + print "debug: quota=$quota\n" if $debug; + } else { + die "malformed quota: $quota (must be at least one digit eventually followed by m, M, k or K\n"; +# $quota = $numb; +# print "debug: quota=$quota\n" if $debug; + } + } else { + die "malformed quota: $quota (must be at least one digit eventually followed by m, M, k or K\n"; + } +} + +# Authenticate +$cyrus = Cyrus::IMAP::Admin->new($server); + +if ($authmech) { + $cyrus->authenticate(-mechanism => $authmech, + -user => $user, + -password => $pass); +} else { + $cyrus->authenticate( + -user => $user, + -password => $pass); +} +die $cyrus->error if $cyrus->error; + +# if there isn't any mailbox defined yet, get them from standard input +if (! (defined $mailboxes[0])) { + # For all users + while (<>) { + chomp; + my $mbox = $_; + push @mailboxes, $mbox; + } +} + +# create/delete mailboxes for each user +foreach my $mailbox (@mailboxes) { + if ($useunixhierarchy) { + $mailbox = 'user/' . $mailbox; + } else { + $mailbox = 'user.' . $mailbox; + } + + if ($delete) { + &DeleteMailBox($mailbox) + } else { + # Select the partition + my $pt = $part[$pn]; + $pn += 1; + $pn = 0 unless $pn < @part; + &CreateMailBox($mailbox,$pt,$quota) + } +} + --- cyrus-imapd-2.2-2.2.13p1.orig/debian/examples/README +++ cyrus-imapd-2.2-2.2.13p1/debian/examples/README @@ -0,0 +1,14 @@ +This directory contains some sample files that may be of use with Cyrus. + +mboxtocyrus A script to import mbox format mailboxes into Cyrus + (by Michael-John Turner + +syncldap2cyrus.pl retrieves a list of usernames from an LDAP server and + then tries to create a user mailbox in Cyrus, and then + any secondary mailboxes under that. The idea is that + you could run this via cron or manually every time you + add a user to your LDAP server, and they would then + have a Cyrus mailbox. This script also has a report + mode that shows you any users in LDAP that do not have + a Cyrus mailbox, and vice versa. + (by Stuart Young (aka Cef) ) --- cyrus-imapd-2.2-2.2.13p1.orig/debian/examples/editsieve +++ cyrus-imapd-2.2-2.2.13p1/debian/examples/editsieve @@ -0,0 +1,252 @@ +#!/bin/bash +# +# This script is copyright 2006 Sven Mueller +# Released under the terms of the GNU General public license +# (GPL) version 2 +# Before distributing changed versions of the script, please ask +# the original author to include your changes into the original +# distribution files. Thanks. +# +umask 077 + +# generic defaults + +DEFAULTDOMAIN=incase.de +DEFAULTHOST=localhost +DEFAULTCONFDIR="${HOME}/.editsieve" + +# report usage help +function usage () { + echo "Usage: $0 -h" + echo " $0 --help" + echo " $0 [-c ] [-n ] [-d |--domain ] " + echo " [-p ] [-s ] " + echo "Parameters:" + echo " -h|--help : Display this help" + echo " -c | --confdir : Directory to store configuration and other" + echo " data in (like the user's sieve script)." + echo " The directory will be created if necessary." + echo " Default: ${DEFAULTCONFDIR}" + echo " -d |--domain : Specify domain for the user." + echo " Default: ${DEFAULTDOMAIN}" + echo " -n