Upgrading From Previous Versions

Upgrading from 2.0.6, 2.0.7, 2.0.8, or 2.0.9 or earlier

      * If you use timsieved to manage Sieve scripts, run the script
        "tools/upgradesieve". timsieved now uses symlinks instead of hard
        links. 

Upgrading from a previous 2.0 version to 2.0.6

    Warning: You do not need to follow these instructions if you're
    upgrading from version 1.6. 

      * You can now pick whether to use Berkeley db to store seen state,
        the subscription files, and the mailboxes file or a flat text file,
        at compile time only. (Look in imap/seen_db.c and imap/mboxlist.h.) 
      * The format of the mailboxes file and seen state has changed. It is
        not possible to preserve seen state, but upgrade the mailboxes file
        as follows: 

         1. Run ctl_mboxlist -d > mboxlist.temp to dump existing mailboxes. 
         2. Remove old database files: rm mailboxes.db db/* user/*/*.seen 
         3. With the new version of ctl_mboxlist, run ctl_mboxlist -u <
            mboxlist.temp. 

Upgrading from 1.6.22 or 1.6.24

    Warning: Cyrus imapd 2.0 will automatically convert on-disk file
    formats as the server is used. It is not possible to run 1.6 after 2.0
    has been used on a mail spool without reconstructing every mailbox. 

      * Create some extra directories and remove the duplicate delivery
        database: 

           mkdir /var/imap/db
           mkdir /var/imap/socket
           chown cyrus /var/imap/db /var/imap/socket
           rm /var/imap/deliverdb/*

      * Convert mailboxes file to Berkeley DB: 

           su cyrus
           cd /var/imap
           ctl_mboxlist -u < mailboxes
           ctl_mboxlist -c

        Please keep a backup of your mailboxes file. You can dump an
        old-style mailboxes file by using ctl_mboxlist -d. 
      * remove "/etc/inetd.conf" entries. The imap and popd3d lines need to
        be removed from /etc/inetd.conf and inetd needs to be restarted. 
      * master process configuration: You'll need to configure the master
        process Cyrus process and ensure that it starts on boot. see this
        section of the configuration instructions. 
      * sendmail configuration. You need to use a new cyrus mc file. See
        doc/cyrusv2.mc for a sample mc file. This requires Sendmail 8.10 or
        newer. See this section of the configuration document. 
      * cyrus.seen conversion. The cyrus.seen file will be automatically
        upgraded as users read mail. After some time, you might want to
        delete the cyrus.seen file in each mailbox; it is superceded by the
        user/joe.seen file. 
      * cyrus.index conversion. The cyrus.index file will be automatically
        upgraded the first time each mailbox is SELECTed. 
      * Netnews conversion. The netnews programs are no longer built. If
        you are using netnews, you will need to apply the diff in the
        netnews/ directory to INN or see if INN is now distributing those
        changes. You will also want to run remotepurge on a regular basis
        to purge old netnews posts. 

Upgrading from 1.6.13

      * Upgrading from the Cyrus IMAP server version 1.6.13 or earlier: if
        you use Sieve, you should run the "tools/upgradesieve" script, as
        the format of the "/usr/sieve" directory has changed slightly. 

        timsieved, included in this release, will handle maintenance of
        Sieve scripts. 
      * Upgrading from the Cyrus IMAP server version 1.6.10 or earlier: if
        you export news via the IMAP server, you'll have to change your
        "newsfeeds" file to contain 

        collectnews!:*:Tf,WR:collectnews

        The format of the input to collectnews has changed. 

        Duplicate delivery suppression is now required for Sieve. 
      * Upgrading from the Cyrus IMAP server version 1.6.1 or earlier
        (including 1.5.x!): the quota and user directories are now hashed
        by the first character of the username. This is to reduce the
        number of entries in any given directory. It doesn't do a great job
        (and in some cases it will do a really poor job) but as a quick
        hack it shouldn't make things worse. Optionally, the data
        partitions can also be hashed by enabling the "hashimapspool"
        option. 

        You must hash your directories using the "dohash" script in the
        tools subdirectory. (If you want to hash your mail spool, be sure
        to set "hashimapspool" before running "dohash".) This must be run
        as the Cyrus user. Be sure to stop mail service while converting.
        Doing this in single user mode is probably the safest. 

Upgrading from 1.5

      * Upgrading from the Cyrus IMAP server version 1.5 or earlier:
        libsasl is now required. Configuring SASL to work may be a chore,
        especially if you use shadow passwords. 
      * An ANSI C compiler is now required. gcc should work fine and can be
        acquired from http://www.gnu.org/software/gcc/gcc.html. 
      * Make sure to read the upgrading instructions under 1.6 above. 
      * Upgrading from 1.5.14 or earlier requires deleting the delivered
        database. Remove the file delivered.db in the configdirectory and
        make a directory called "deliverdb" in the configdirectory. This
        may cause some duplicates to get through. 
      * Upgrading from 1.5.14 or earlier requires removing the PTS cache
        database (if the AFS PTS group support is used, which is not the
        default). The PTS cache is in /var/ptclient/ptscache.db, and you
        should remove it. This is because the format for the PTS cache for
        IMSP has changed. If you use AFS ACLs, IMSPd, and IMAPd on the same
        machine, make sure you have version 1.5a5 of the IMSP server for
        this version of the IMAP server. (If you don't have IMSP, or AFS,
        don't worry about it.) 

