Make your own free website on Tripod.com

cyrus-imapd RPM packages


Standard disclaimer:

The files which may be downloaded from this site are provided without any warranties or support.


RPM packages specific notes

This is the content of the README.RPM now included in the cyrus-imapd-doc sub-package:


RPM packages of Cyrus IMAPd server
----------------------------------

Cyrus IMAPd version: 2.0.12
rpm package release: 5rm
Release date       : Fri Mar 30 2001

1. Intro

   This set of rpm packages forked from the versions shipped with Red 
   Hat Linux Powertools in version 2.0.7 of Cyrus IMAPd. The goals 
   are a) follow more closely the Cyrus releases, b) fix bugs and 
   omissions and c) add the necessary features in order to facilitate 
   the use of the software in a production environment with Red Hat 
   Linux servers. Posterior fixes from Red Hat to their packages are 
   being tracked and incorporated as well.

   The packages were built and tested in a Red Hat Linux 6.2 system 
   with every relevant official errata published by Red Hat applied. 
   The version of rpm used is 3.0.5 (more specifically, the version of 
   official errata 
   http://www.redhat.com/support/errata/RHEA-2000-051.html, note that 
   I'm not yet using the recently published official update of rpm to 
   version 4.0.2).

   IMPORTANT: It is recommendable to download the source rpm and 
              rebuild it with:

              # rpm --rebuild 

              in your system. Please read all this file to understand
	      the reason.

2. Packaging

   The software is split in 3 packages: main package, -doc and 
   -devel sub-packages. It is recommendable to always install the 
   -doc sub-package (you can even install it before the main packa-
   ge). All the references below to the Cyrus IMAPd documentation 
   are to files packaged in cyrus-imapd-doc.

3. Upgrade/Installation notes

   Since version of 2.0.9 the pre-uninstall script of the main rpm 
   package stops unconditionally the master daemon and the 
   post-uninstall script does not start it automatically.

   The logic behind this is:

   If the user is upgrading a production server she/he should get 
   a chance of reading the documentation and then doing all the 
   necessary tasks to prepare the system before starting the daemon; 
   the format/location of some file(s) used by the software may change 
   even between minor releases and running some utilities may be 
   necessary as a previous step to starting the new server for the 
   first time.

   This is specially true if the previous version of Cyrus IMAPd 
   you have is 1.x.x (so you are doing a major version upgrade) AND 
   if you have installed it from a rpm package. Unfortunately in 
   this case the pre-uninstall of the old package is already stored 
   in the system and rpm will always run it, if the script does the 
   following checking "If an upgrade is in progress and the old dae-
   mon was running then start the new daemon" it will end doing what 
   we are trying to avoid don't matter what we do in the install 
   scripts of the 2.x.x rpm packages. The only way to avoid it is by 
   stopping the old daemon.

   Another characteristic of the rpm packages is the SysV init script 
   is installed but is not configured to start Cyrus automatically in 
   any runlevel so when you are happy with your configuration don't 
   forget to activate it with ntsysv or chkconfig. 

   Taking in account these and some other issues we can build the fo-
   llowing list of recommended pre-install/-upgrade tasks. Perform 
   the relevant ones for your case:

   3.1.  For all users:

   The installation does not configures the system to start Cyrus 
   IMAPd automatically at boot-time. You can do it with your favorite 
   SysV runlevel editor.

   3.2. For all users upgrading from some rpm package version:

   Stop the old daemon before the upgrade operation. It keeps the
   post-uninstall script of the previous version from starting
   automatically the new daemon.

   3.3. For users upgrading from a rpm package not downloaded from 
        this site:

   Please check the directories /var/imap and /var/spool/imap 
   and sub-directories below them with the lsattr command to be sure 
   some of them have the S ext2fs attribute set (read 
   install-configure.html in the Cyrus IMAPd documentation to find 
   the detailed recommendations for Linux systems). If you are doing 
   a fresh install or upgrading from a rpm package downloaded from 
   this site you can skip this manual check because the post-install 
   script takes care of setting the S attribute in the right directo-
   ries.

   3.4. For users upgrading from versions < 2.0.x:

   Please read the Cyrus IMAPd documentation before upgrading; the 
   critical files to read are:
   
     changes.html 
     All functional changes.
   
     install-configure.html
     Linux-specific recommended list of directories that should get 
     the synchronous-write ext2fs attribute applied changed since ver-
     sion 2 of Cyrus IMAPd.

     install-upgrade.html 
     Recommended upgrade procedures.

   3.5. For users upgrading from release 2.0.9-4.62.crm of the rpm 
        package downloaded from this site:

   The package is now split in a main package and two sub-packages:
   -doc and -devel.

   After the upgrade process you will get a 
   /var/imap/mailboxes.db.rpmsave file, please rename the file to 
   /var/imap/mailboxes.db and then start the new daemon (this is 
   because the file was marked as an configuration file in the old  
   release so rpm saves it at un-install time). If you have a produc-
   tion installation and want to be really safe I should not tell you 
   must save a backup copy of the file before the upgrade. Just don't 
   forget to check it is owned by user cyrus and group mail.

   If you use timsieved, read install-upgrade.html included with the 
   Cyrus IMAPd documentation.

   3.6. For users upgrading from release 2.0.11-5.62.crm of the rpm 
        packages downloaded from this site:

   The package is now split in a main package and two sub-packages:
   -doc and -devel.

4. Specific user/group creation during install

   This rpm creates an user "cyrus" with UID 76 and a group "shadow" 
   with GID 76, if the user or group already exist and they do not 
   use the UID/GID or if either UID or GID are already assigned to 
   another user/group then the installation process fails.

5. Installation logging

   During installation and removal such actions as creating or dele-
   ting the cyrus userID in /etc/passwd generate commentary via 
   logger(1) with syslog. In a standard Red Hat system this will be 
   recorded in /var/log/messages.
   The following command should extract them:

   grep cyrus/rpm /var/log/messages

   (this feature is based in code used by Simon J. Mudd in the 
   Postfix rpm packages he maintains).


6. Build dependencies

   This is the list of packages that must be present in the system 
   before you try to rebuild the Cyrus IMAPd source rpm:

   cyrus-sasl-devel >= 1.5.24-11
   e2fsprogs-devel
   perl
   tcp_wrappers
   db3
   db3-devel
   openssl-devel
   flex
   bison
   sendmail-cf (if you activate support for Sendmail, see below)
   dracd (if you activate support for DRACd, see below)

   additionally the following programs are necessary:

   /usr/sbin/useradd, /usr/sbin/groupadd, /usr/sbin/usermod
   (shadow-utils package in Red Hat Linux distribution)

   /usr/bin/logger
   (util-linux package in Red Hat Linux distribution)

   /usr/bin/id
   (utils package in Red Hat Linux distribution)

   NOTE: You must have the 'rpm-build' sub-package of rpm installed 
   to be able to (re)build rpm packages.
   
7. Installation dependencies

   This is the list of packages that must be present in the system 
   before installing the Cyrus IMAPd rpm:

   cyrus-sasl >= 1.5.24-11
   db3
   openssl
   perl
   tcp_wrappers

   additionally the following programs are necessary:

   /usr/sbin/useradd, /usr/sbin/groupadd, /usr/sbin/usermod
   (shadow-utils package in Red Hat Linux distribution)

   /usr/bin/logger
   (util-linux package in Red Hat Linux distribution)

   /usr/bin/id
   (utils package in Red Hat Linux distribution)

8. OpenSSL notes

   Since OpenSSL does not comes in Red Hat Linux 6.2 you can obtain 
   it from the official errata

   http://www.redhat.com/support/errata/RHEA-2000-085.html

   these OpenSSL packages were published to allow the installation of 
   an updated version of pine in Red Hat Linux 6.2.

9. db3 notes

   IMPORTANT: You must have Cyrus IMAPd and Cyrus SASL linked against 
   the SAME version of db3.

   Since db3 does not comes in Red Hat Linux 6.2 you can obtain it 
   from the official errata

   http://www.redhat.com/support/errata/RHEA-2001-015.html

   these db3 packages were published to allow the installation of 
   rpm 4.0.2 in Red Hat Linux 6.2.
   
   Now you can rebuild Cyrus SASL (see below) and Cyrus IMAPd in your 
   system.

10. Cyrus SASL notes

   Since Cyrus SASL does not comes in Red Hat Linux 6.2 you can 
   obtain it by downloading a source rpm of Cyrus SASL from the 
   official errata for Red Hat Linux 7 (or from Rawhide or from a 
   Red Hat Linux 7.1 beta release) and rebuilding it in your system. 
   Just be sure you use a package release >= 11 of Cyrus SASL 1.5.24 
   because previous revisions have a serious security bug (see 
   http://www.redhat.com/support/errata/RHSA-2000-094.html).

   You must have installed the db3 rpm packages before rebuilding 
   Cyrus SASL (see above).

11. Quick per-RHL version checklist

   As a short conclusion of the above notes this is the status of the 
   relevant packages in different versions of Red Hat Linux. Beware I 
   actully just tested the packages in RHL 6.2
   
   RHL 6.2:
     db3: Not included in original distribution. Install packages 
     announced in
        http://www.redhat.com/support/errata/RHEA-2001-015.html
     be sure to install at least db3 main package and db3-devel 
     sub-package.
 
     OpenSSL: Not included in original distribution. Install packages 
     announced in
        http://www.redhat.com/support/errata/RHEA-2000-085.html
     be sure to install both openssl main package and openssl-devel 
     sub-package.

     Cyrus SASL: Not included in original distribution. Install the 
     source rpm package announced in the security advisory for RHL 7
       http://www.redhat.com/support/errata/RHSA-2000-094.html
     and rebuild it in your system. After that install at least the 
     resultant cyrus-sasl and cyrus-sasl-devel packages.

   RHL 7:
     db3: Already included in original distribution. Be sure to ins-
     tall at least db3 main package and db3-devel sub-package.
 
     OpenSSL: Already included in original distribution. Be sure to 
     install both openssl main package and openssl-devel sub-package.

     Cyrus SASL: Already included in original distribution but you 
     must install the packages announced in the security advisory
       http://www.redhat.com/support/errata/RHSA-2000-094.html
     Be sure to install at least the cyrus-sasl and cyrus-sasl-devel 
     packages.

12. Sendmail -- optional support

   In this version of the rpm package, the inclusion of some files 
   very specific to the task of using Cyrus IMAPd with the Sendmail 
   MTA is selectable at build time. If you use Postfix, Exim, Qmail, 
   ..., you are not in danger if you install a package with this op-
   tion activated because no system configuration is made/modified 
   and you just end with a couple of extra files in your filesystem.

   Additionally, you can select support of Sendmail as packaged in 
   Red Hat Linux 6.2, 7 or as packaged in the upcoming 7.1 (and the 
   beta releases of it).

   By default the specfile comes with support for Sendmail as shipped 
   in RHL 6.2, 7 turned on. you can change this adding

   --define 'sendmail_rhl71 1'

   to the command line of rpm when you do

   # rpm -bx|--recompile|--rebuild 

   to switch to support for Sendmail shipped in Fisher, Wolverine, 
   ... RHL 7.1, or adding

   --define 'disable_sendmail 1'

   to disable support for Sendmail, it also deletes sendmail-cf from 
   the list of build dependencies.

13. DRACd -- optional support

   It is possible to add support for the DRACd (Dynamic Relay Autho-
   rization Control daemon) by applying a modified version of the 
   relevant patch located in the contrib directory of the source 
   distribution of Cyrus IMAPd.

   If you want to know more about DRAC see

   http://mail.cc.umanitoba.ca/drac/

   Activating this feature will add a build-time dependency on the 
   DRAC static library but will allow one to use the resultant bina-
   ries even when the system where you install them does not have 
   DRACd installed/active because activation of this support is done 
   at run-time by means of setting a couple of configuration variables 
   in imapd.conf(5)

   By default DRACd support is turned off, you can enable it adding

   --define 'enable_drac 1'

   to the command line of rpm when you do

   # rpm -bx|--recompile|--rebuild 

   You can download rpm packages of DRACd packages in rpm format from
   http://rmrpms.tripod.com/
   
14. Syslog configuration

   The installation process creates an empty /var/log/imapd.log 
   file and logrotate is configured to rotate it. But you should 
   configure syslog to send the messages of local6 facility 
   to this file adding a line to /etc/syslog.conf like:
   
	local6.	/var/log/imapd.log
	
   with  selecting the verbosity you want (see overview.html 
   and install-configuration.html in the Cyrus IMAPd documentation).
   
   Also, in the Red Hat Linux default configuration of syslog you 
   may get the Cyrus IMAPd messages going also to /var/log/messages, 
   This signifies the log messages are duplicated and if the verbosity 
   selected with the above line is high, it will pollute the logs in 
   the later file. You can avoid it changing the /etc/syslog.conf line 
   that reads:

   *.info;mail.none;authpriv.none		/var/log/messages

   to

   *.info;mail.none;authpriv.none;local6.none	/var/log/messages

15. To do list

   - I added tcp_wrappers to the install time requiered dependencies 
     list, it this correct?.

   - Analize which packages should be (Build)Requires and which packa-
     ges should be (Build)Prereq.

   - Maybe manage the problem of automatic restart of the daemon when 
     upgrading from versions 1.x.x of Cyrus IMAPd using a 

       %triggerin -- cyrus-imapd < 2.0.0

     trigger script that ensures the daemon is stoped (and hence
     /var/lock/subsys/cyrus does not exist).

   - Consider upgrading to rpm 4.0.2.

16. Feedback

   Please send any comments, rants, bug-reports, etc. about the 
   packages or this file to rmrpms at usa dot net.

// -- end of file ---


Changes

Most relevant changes since the last release:

- Update to 2.0.12
- Create -devel and -doc sub-packages.
- documentation fixes: 
  - Add ipurge+manpage.
  - Small deliver(8) manpage fix
	- ship the current version of cyradm manpage
	- ship Perl modules manpages; 
  - master.8 is now cyrusmaster.8, do the same with quota.8
	- Small doc fixes.
- Re-implement cron script but using ctl_deliver (as in RHL rpms).
- Re-incorporate logrotate script and imapd.log as in RHL rpms 
  but put a note about it in new README.RPM file.
- Add missing install- and build-time prereqs.
- Add drac support and make it configurable at build time.
- Make inclusion for sendmail-specific stuff configurable at build 
  time.
- Add support of Red Hat Linux versions >= 7.1 and make it 
  configurable at build time.
- Change package nomenclature (again ;-).
- Make the changes to avoid innecesary linking with libwrap really 
  work (use upstream mods).

Download

Download the source RPM to rebuild it in your system (recommended)

You can then do (you must be root for the following steps):

rpm -i cyrus-imapd-VVV-RRR.src.rpm

Now you can (in the /usr/src/redhat/SPECS directory) do:

rpm -ba /usr/src/redhat/SPECS/cyrus-imapd-....spec
And then you will have your personalized RPMs in
/usr/src/redhat/RPMS/<yourarchitecture>

Or if you use an Intel system you can download the i386 binary RPMs built on my Red Hat Linux 6.2 system.


Changes (to this page)

* Wed Apr  4 2001
- Add links to the packages ;-)

* Tue Apr  3 2001
- version 2.0.12; release 5rm announced.

* Wed Feb 28 2001
- Delete 'the initscript problem when stopping the daemon' problem from the ToDo 
  list because it was fixed just before releasing the package.

* Thu Feb 15 2001
- Added postfix related changes description. Fixed typos and mod date of page.

* Wed Feb 14 2001
- version 2.0.11; release 5.62.crm announced.



Back to main page

Last modified Wed Apr 4 2001

Ramiro Morales <rmrpms at usa dot net>