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 ---
|