From 299eec03b3bdfe197236dcf2fd6669cd30466904 Mon Sep 17 00:00:00 2001 From: John Dennis Date: Thu, 13 Jan 2005 20:24:42 +0000 Subject: [PATCH] postgres & mysql now conditional build options, add FAQ to doc remove execute bit on example scripts so perl modules don't become rpm dependencies --- dovecot-REDHAT-FAQ.txt | 46 ++++++++++++++++++++++++++++++++++++++++ dovecot-configfile.patch | 13 ++++++++---- dovecot.spec | 39 ++++++++++++++++++++++++++-------- 3 files changed, 85 insertions(+), 13 deletions(-) create mode 100644 dovecot-REDHAT-FAQ.txt diff --git a/dovecot-REDHAT-FAQ.txt b/dovecot-REDHAT-FAQ.txt new file mode 100644 index 0000000..a9d40ad --- /dev/null +++ b/dovecot-REDHAT-FAQ.txt @@ -0,0 +1,46 @@ +Q. We used to use University of Washington IMAP (UW IMAP), in the Red + Hat distribution, the rpm was named "imap". We would now like to use + dovecot and take advantage of its support for Maildir format, but + we have existing user mail files in the old mbox format we need to + migrate. How can we do this? + +A. Read the documentation in + /usr/share/doc/dovecot-*/UW-to-Dovecot-Migration. You will also + find scripts there to help you. + +Q. I'm getting errors in /var/log/maillog for dotlock failed, + permission denied. The actual error probably looks like this with + user replaced by a user name on your system. + + imap(user): file_lock_dotlock() failed with mbox file /var/spool/mail/user: Permission denied + +A. This is occuring because: + + 1) The user INBOX is in the system spool directory which is: + "drwxrwxr-x root mail" + + 2) Dovecot is configured to create "dotlock" locking files. + + 3) After an imap user logs in the imap process runs as that user + and the spool directory permissions does not allow that user to + creat new files (e.g. dot lock files). + + The possible solutions are: + + 1) Don't locate the user's INBOX in the system spool directory, + have mail delivered to another location, for instance his home + directory (this may not be possible to change for existing + systems). This is an MTA configuration. + + 2) In the dovecot configuration file set the variable + mail_extra_groups to "mail". This will add the mail group to the + list of groups that the logged in imap user will have permission + for. His imap process can then create files in the mail spool + file. However the user's imap process now has mail group + privileges, you will have to evaluate the extent of the security + threat this poses for your site. + + 3) Disable the use of dotlocks by setting dovecots config parameter + mbox_locks to a value that does not include dotlock, for + example, fcntl. However, note dotlocks are considered robust, + especially for NFS. diff --git a/dovecot-configfile.patch b/dovecot-configfile.patch index 6ccc588..5636b39 100644 --- a/dovecot-configfile.patch +++ b/dovecot-configfile.patch @@ -1,7 +1,6 @@ -diff -u dovecot-0.99.13/dovecot-example.conf dovecot-0.99.13/dovecot.conf --- dovecot-0.99.13/dovecot-example.conf 2004-12-29 13:00:24.000000000 -0500 -+++ dovecot-0.99.13/dovecot.conf 2005-01-07 13:17:53.000000000 -0500 -@@ -1,17 +1,11 @@ ++++ dovecot-0.99.13/dovecot.conf 2005-01-13 14:24:24.000000000 -0500 +@@ -1,30 +1,24 @@ ## Dovecot 1.0 configuration file -# Default values are shown after each value, it's not required to uncomment @@ -20,7 +19,13 @@ diff -u dovecot-0.99.13/dovecot-example.conf dovecot-0.99.13/dovecot.conf # IP or host address where to listen in for connections. It's not currently # possible to specify multiple addresses. "*" listens in all IPv4 interfaces. -@@ -23,8 +17,8 @@ + # "[::]" listens in all IPv6 interfaces, but may also listen in all IPv4 + # interfaces depending on the operating system. You can specify ports with + # "host:port". +-#imap_listen = * +-#pop3_listen = * ++imap_listen = [::] ++pop3_listen = [::] # IP or host address where to listen in for SSL connections. Defaults # to above non-SSL equilevants if not specified. diff --git a/dovecot.spec b/dovecot.spec index 75b8fa6..1b3e6f3 100644 --- a/dovecot.spec +++ b/dovecot.spec @@ -1,9 +1,13 @@ Summary: Dovecot Secure imap server Name: dovecot Version: 0.99.13 -Release: 1.devel +Release: 2.devel License: LGPL Group: System Environment/Daemons + +%define build_postgres 1 +%define build_mysql 1 + Source: %{name}-%{version}.tar.gz Source1: dovecot.init Source2: dovecot.pam @@ -11,6 +15,7 @@ Source3: maildir-migration.txt Source4: migrate-folders Source5: migrate-users Source6: perfect_maildir.pl +Source7: dovecot-REDHAT-FAQ.txt Patch100: dovecot-conf.patch Patch101: dovecot-configfile.patch Patch102: dovecot-0.99-no-literal-plus-capability.patch @@ -18,8 +23,6 @@ Patch102: dovecot-0.99-no-literal-plus-capability.patch # Patches 500+ from upstream fixes URL: http://dovecot.procontrol.fi/ Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root -BuildRequires: mysql-devel -BuildRequires: postgresql-devel BuildRequires: openssl-devel BuildRequires: openldap-devel BuildRequires: pam-devel @@ -27,6 +30,16 @@ BuildRequires: pkgconfig BuildRequires: zlib-devel Prereq: openssl, /sbin/chkconfig, /usr/sbin/useradd +%if %{build_postgres} +BuildRequires: postgresql-devel +Prereq: postgresql +%endif + +%if %{build_mysql} +BuildRequires: mysql-devel +Prereq: mysql +%endif + %define docdir %{_docdir}/%{name}-%{version} %define ssldir /usr/share/ssl %define restart_flag /tmp/%{name}-restart-after-rpm-install @@ -54,8 +67,12 @@ automake -a autoconf %configure \ --with-docdir=%{docdir} \ +%if %{build_postgres} --with-pgsql \ +%endif +%if %{build_mysql} --with-mysql \ +%endif --with-ssl=openssl \ --with-ssldir=%{ssldir} \ --with-ldap @@ -82,17 +99,14 @@ chmod 700 $RPM_BUILD_ROOT/var/run/dovecot mkdir -p $RPM_BUILD_ROOT/var/run/dovecot-login # Install some of our own documentation +install -m644 $RPM_SOURCE_DIR/dovecot-REDHAT-FAQ.txt $RPM_BUILD_ROOT%{docdir}/REDHAT-FAQ.txt + install -m755 -d $RPM_BUILD_ROOT%{docdir}/UW-to-Dovecot-Migration -for f in maildir-migration.txt +for f in maildir-migration.txt migrate-folders migrate-users perfect_maildir.pl do install -m644 $RPM_SOURCE_DIR/$f $RPM_BUILD_ROOT%{docdir}/UW-to-Dovecot-Migration done -for f in migrate-folders migrate-users perfect_maildir.pl -do - install -m755 $RPM_SOURCE_DIR/$f $RPM_BUILD_ROOT%{docdir}/UW-to-Dovecot-Migration -done - %pre /usr/sbin/useradd -c "dovecot" -u %{dovecot_uid} -s /sbin/nologin -r -d /usr/libexec/dovecot dovecot 2>/dev/null || : @@ -147,6 +161,13 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Thu Jan 13 2005 John Dennis 0.99.13-2.devel +- make postgres & mysql conditional build +- remove execute bit on migration example scripts so rpm does not pull + in additional dependences on perl and perl modules that are not present + in dovecot proper. +- add REDHAT-FAQ.txt to doc directory + * Thu Jan 6 2005 John Dennis 0.99.13-1.devel - bring up to date with latest upstream, 0.99.13, bug #143707 also fix bug #14462, bad dovecot-uid macro name