Red Hat Linux/BDB dependencies upgrade questions

Simon Matter simon.matter at
Thu Dec 12 10:17:16 EST 2002

Hi Kevin,

AFAIK, it should be possible to convert all db's on the old server to
flat, which seems to be the most secure way. Then transfer the data to
the new server and simply start Cyrus using 'service cyrus-imapd start'.
All db's should then be converted automagically to the required format.

If you want to know which db files have to be converted, take a look at
my cvt_cyrusdb_all script from the rpm.

If I know it works that way, I'll try to modify the script so it can be
called with a special parameter to do the conversion to flat

Let me know how it works.

FYI, I've also upgraded cyrus-sasl to 2.1.10 but not uploaded the rpms
yet. I'll do it today, I hope, after testing them on my server.


"Kevin M. Myer" schrieb:
> Hello,
> I have an update scheduled for our mail server over the Christmas break
> (assuming I can get all the snags worked out of the upgrade process).  Where I
> currently am:
> Cyrus-IMAPd v2.1.0pre (from CVS just before SASLv2 was required)
> Cyrus-SASL v1.5.27 w/ Simon Loader's LDAP patch
> Red Hat Linux 7.1 w/ all errata applied
> Berkeley DB is Red Hat's packages, version 3.2.9
> Where I want to go:
> Cyrus-IMAPd v2.1.11
> Cyrus-SASL v2.1.10 using saslauthd w/ LDAP authenticaiton
> Red Hat Linux 7.3 w/ all errata applied
> skiplist backend
> The snag I ran into is this:  I restored my /var/imap from my production mail
> server to my test mail server, from backup.  For starters, I used Simon Matter's
> Cyrus IMAP RPM and his conversion scripts and upgraded my RPM on the test
> server.  While the conversion script appeared to run, checking the logs showed
> that not to be the case.  My log showed this:
> cvt_cyrusdb[25043]: DBERROR db3: Program version 3.3.11 doesn't match
> environment version 3.2.9
> I think this is easily explained - Red Hat 7.1 uses BDB 3.2.9 and Red Hat 7.3
> uses BDB 3.3.11 (but it has a 3.2.X compatibility library).  But suffice to say,
> I've not been able to get anything thats in BDB format into skiplist format.
> I've done the following:  db32_dump the database files (mailboxes.db,
> tls_sessions.db, and deliver.db) to text, then db_load the text file to a new
> database.  The size of the database is cut in about a half but cvt_cyrusdb
> complains about the same above problem.  So I temporarily made libdb3.3
> disappear and recompiled Cyrus, so it would link with libdb3.2 and reinstalled.
>  Then the message changes to:
> cvt_cyrusdb[22807]: incorrect version of Berkeley db: compiled against 3.3.11,
> linked against 3.2.9
> This is probably because in Red Hat 7.3, while they provide a compatibility 3.2
> library, they don't provide the 3.2 headers so I'm thinking it linked against
> 3.2 but used the 3.3 headers.
> So where I'm headed now in my thinking is to leave the server at Red Hat 7.1
> until I get everything converted to skiplist, then upgrade to 7.3, at which
> point it won't matter (hopefully) what version of BDB I have installed.  For
> that to work, I need to make sure that there are no BDB version dependencies in
> Cyrus IMAP.  By that I mean are there any other databases (besides mailboxes.db,
> deliver.db and tls_sessions.db) that need to be convereted from BDB to skiplist?
>  FWIW, the /var/imap/users/* flat databases converted to skiplist just fine.
> What about the cyrus.* files in a user's mailbox (cyrus.index, cyrus.header, and
> cyrus.cache)?  And is /var/imap/db/* simply the database transaction log?  Or do
> I have to worry about converting that to something else as well?
> Bottom line is this: if I convert mailboxes.db, deliver.db and tls_sessions.db
> from BDB 3.2.9 -> skiplist, then upgrade to a new version of BDB and Red Hat
> Linux 7.3, are there any other databases I need to upgrade?
> Or is there an easier way to deal with different BDB versions across the Red Hat
> distributions so that I can upgrade to 7.3 first, turn on some environment
> compatibility flag, and migrate to skiplist?  The general concensus I gather
> from this list seems to be that skiplist is the way to go but running configure
> --help at least says that db3 or flat databases are the default for all the
> databases listed (duplicate-db, mboxlist-db, seen-db, subs-db, and tls-db).  I
> know Simon's RPMs use skiplist for a number of those but if skiplist is the way
> to go, why isn't it the default?
> If anyone has been down this road before, I'd appreciate your insight.
> Thanks,
> Kevin
> --
> Kevin M. Myer
> Systems Administrator
> Lancaster-Lebanon Intermediate Unit 13
> (717) 560-6140

Simon Matter              Tel:  +41 61 695 57 35
Fr.Sauter AG / CIT        Fax:  +41 61 695 53 30
Im Surinam 55
CH-4016 Basel             [mailto:simon.matter at]

More information about the Info-cyrus mailing list