- fix linking with db4.7 (Resolves: #461875)

- patch cleanup
This commit is contained in:
Dan Horák 2008-09-12 07:09:30 +00:00
parent e36815f478
commit 1a14ff31c3
8 changed files with 9 additions and 313 deletions

View File

@ -1,62 +0,0 @@
--- cyrus-imapd-2.2.12/lib/acl_afs.c.orig 2005-07-14 17:12:53 +0300
+++ cyrus-imapd-2.2.12/lib/acl_afs.c 2005-07-14 17:17:44 +0300
@@ -119,12 +119,17 @@
char *thisid, *nextid;
int oldaccess = 0;
char *rights;
+ int identifier_found = 0;
+ int identifier_overridden = 0;
/* Convert 'identifier' into canonical form */
if (*identifier == '-') {
char *canonid = auth_canonifyid(identifier+1, 0);
- if (!canonid) {
+ if (!canonid && access != 0L) {
return -1;
+ } else if (!canonid && access == 0L) {
+ canonid = identifier+1;
+ identifier_overridden = 1;
}
newidentifier = xmalloc(strlen(canonid)+2);
newidentifier[0] = '-';
@@ -135,9 +140,15 @@
}
}
else {
+ newidentifier = xmalloc(strlen(identifier)+1);
+ strlcpy(newidentifier, identifier, strlen(identifier)+1);
+
identifier = auth_canonifyid(identifier, 0);
- if (!identifier) {
+ if (!identifier && access != 0L) {
return -1;
+ } else if(!identifier && access == 0L) {
+ identifier = newidentifier;
+ identifier_overridden = 1;
}
if (canonproc) {
access = canonproc(canonrock, identifier, access);
@@ -165,6 +176,7 @@
*nextid++ = '\0';
if (strcmp(identifier, thisid) == 0) {
+ identifier_found = 1;
oldaccess = cyrus_acl_strtomask(rights);
break;
}
@@ -172,6 +184,15 @@
nextid[-1] = '\t';
}
+ /*
+ * In case we have overridden the canonification of the
+ * identifier, but still the identifier does not exist in
+ * the mailboxdb, then return error as normally expected.
+ */
+ if(identifier_overridden && !identifier_found) {
+ return -1;
+ }
+
switch (mode) {
case ACL_MODE_SET:
break;

View File

@ -1,133 +0,0 @@
diff -Naur cyrus-imapd-2.2.12/doc/man/deliver.8.html cyrus-imapd-2.2.12.munge8bit/doc/man/deliver.8.html
--- cyrus-imapd-2.2.12/doc/man/deliver.8.html 2005-02-14 19:02:17.000000000 +0100
+++ cyrus-imapd-2.2.12.munge8bit/doc/man/deliver.8.html 2005-06-18 19:02:39.000000000 +0200
@@ -223,13 +223,15 @@
<td width="10%"></td>
<td width="89%">
<p>Depending on the setting of <b>reject8bit</b> in
-<b>imapd.conf(5)</b>, deliver either rejects messages with
-8-bit-set characters in the headers or changes these
-characters to &lsquo;X&rsquo;. This is because such
-characters can&rsquo;t be interpreted since the character
-set is not known, although some communities not well-served
-by US-ASCII assume that those characters can be used to
-represent characters not present in US-ASCII.</p>
+<b>imapd.conf(5)</b>, deliver either rejects/accepts
+messages with 8-bit-set characters in the headers. If we
+accept messages with 8-bit-set characters in the headers,
+then depending on the setting of <b>munge8bit</b>, these
+characters are either left un-touched or changed to &lsquo;X&rsquo;. This
+is because such characters can&rsquo;t be interpreted since
+the character set is not known, although some communities
+not well-served by US-ASCII assume that those characters can
+be used to represent characters not present in US-ASCII.</p>
<!-- INDENTATION -->
<p>A method for encoding 8-bit-set characters is provided by
RFC 2047.</p>
diff -Naur cyrus-imapd-2.2.12/doc/man/imapd.conf.5.html cyrus-imapd-2.2.12.munge8bit/doc/man/imapd.conf.5.html
--- cyrus-imapd-2.2.12/doc/man/imapd.conf.5.html 2005-02-14 19:02:18.000000000 +0100
+++ cyrus-imapd-2.2.12.munge8bit/doc/man/imapd.conf.5.html 2005-06-18 18:59:46.000000000 +0200
@@ -2562,7 +2562,7 @@
<td width="80%">
<p>If enabled, lmtpd rejects messages with 8-bit characters
in the headers. Otherwise, 8-bit characters are changed to
-&lsquo;X&rsquo;. (A proper soultion to non-ASCII characters
+&lsquo;X&rsquo;. (A proper solution to non-ASCII characters
in headers is offered by RFC 2047 and its predecessors.)</p>
</td>
</table>
diff -Naur cyrus-imapd-2.2.12/imap/message.c cyrus-imapd-2.2.12.munge8bit/imap/message.c
--- cyrus-imapd-2.2.12/imap/message.c 2004-09-16 19:58:54.000000000 +0200
+++ cyrus-imapd-2.2.12.munge8bit/imap/message.c 2005-06-18 18:58:33.000000000 +0200
@@ -227,6 +227,7 @@
int n;
int sawcr = 0, sawnl;
int reject8bit = config_getswitch(IMAPOPT_REJECT8BIT);
+ int munge8bit = config_getswitch(IMAPOPT_MUNGE8BIT);
int inheader = 1, blankline = 1;
while (size) {
@@ -262,7 +263,7 @@
/* We have been configured to reject all mail of this
form. */
if (!r) r = IMAP_MESSAGE_CONTAINS8BIT;
- } else {
+ } else if (munge8bit) {
/* We have been configured to munge all mail of this
form. */
*p = 'X';
diff -Naur cyrus-imapd-2.2.12/imap/spool.c cyrus-imapd-2.2.12.munge8bit/imap/spool.c
--- cyrus-imapd-2.2.12/imap/spool.c 2004-10-27 22:40:50.000000000 +0200
+++ cyrus-imapd-2.2.12.munge8bit/imap/spool.c 2005-06-18 18:58:33.000000000 +0200
@@ -140,6 +140,7 @@
state s = NAME_START;
int r = 0;
int reject8bit = config_getswitch(IMAPOPT_REJECT8BIT);
+ int munge8bit = config_getswitch(IMAPOPT_MUNGE8BIT);
const char **skip = NULL;
if (namelen == 0) {
@@ -266,7 +267,7 @@
form. */
r = IMAP_MESSAGE_CONTAINS8BIT;
goto ph_error;
- } else {
+ } else if (munge8bit) {
/* We have been configured to munge all mail of this
form. */
c = 'X';
diff -Naur cyrus-imapd-2.2.12/lib/imapoptions cyrus-imapd-2.2.12.munge8bit/lib/imapoptions
--- cyrus-imapd-2.2.12/lib/imapoptions 2004-07-21 21:07:45.000000000 +0200
+++ cyrus-imapd-2.2.12.munge8bit/lib/imapoptions 2005-06-18 18:58:33.000000000 +0200
@@ -458,6 +458,12 @@
{ "mboxlist_db", "skiplist", STRINGLIST("flat", "berkeley", "skiplist")}
/* The cyrusdb backend to use for the mailbox list. */
+{ "munge8bit", 1, SWITCH }
+/* If enabled, lmtpd munges messages with 8-bit characters. These characters
+ are changed to `X'. If \fBreject8bit\fR is enabled, setting \fBmunge8bit\fR
+ has no effect. (A proper solution to non-ASCII characters in headers is
+ offered by RFC 2047 and its predecessors.) */
+
# xxx badly worded
{ "mupdate_connections_max", 128, INT }
/* The max number of connections that a mupdate process will allow, this
@@ -670,9 +676,7 @@
{ "reject8bit", 0, SWITCH }
/* If enabled, lmtpd rejects messages with 8-bit characters in the
- headers. Otherwise, 8-bit characters are changed to `X'. (A
- proper soultion to non-ASCII characters in headers is offered by
- RFC 2047 and its predecessors.) */
+ headers. */
{ "rfc2046_strict", 0, SWITCH }
/* If enabled, imapd will be strict (per RFC 2046) when matching MIME
diff -Naur cyrus-imapd-2.2.12/man/deliver.8 cyrus-imapd-2.2.12.munge8bit/man/deliver.8
--- cyrus-imapd-2.2.12/man/deliver.8 2004-06-21 20:40:10.000000000 +0200
+++ cyrus-imapd-2.2.12.munge8bit/man/deliver.8 2005-06-18 18:58:33.000000000 +0200
@@ -147,8 +147,10 @@
Accept messages using the LMTP protocol.
.SH NOTES
Depending on the setting of \fBreject8bit\fR in \fBimapd.conf(5)\fR, deliver
-either rejects messages with 8-bit-set characters in the headers or
-changes these characters to `X'.
+either rejects/accepts messages with 8-bit-set characters in the headers.
+If we accept messages with 8-bit-set characters in the headers, then depending
+on the setting of \fBmunge8bit\fR, these characters are either left un-touched
+or changed to .
This is because such characters can't be interpreted since the
character set is not known, although some communities not well-served by
US-ASCII assume that those characters can be used to represent characters not
diff -Naur cyrus-imapd-2.2.12/man/imapd.conf.5 cyrus-imapd-2.2.12.munge8bit/man/imapd.conf.5
--- cyrus-imapd-2.2.12/man/imapd.conf.5 2005-02-14 19:02:16.000000000 +0100
+++ cyrus-imapd-2.2.12.munge8bit/man/imapd.conf.5 2005-06-18 18:59:08.000000000 +0200
@@ -551,7 +551,7 @@
.IP "\fBreject8bit:\fR 0" 5
If enabled, lmtpd rejects messages with 8-bit characters in the
headers. Otherwise, 8-bit characters are changed to `X'. (A
-proper soultion to non-ASCII characters in headers is offered by
+proper solution to non-ASCII characters in headers is offered by
RFC 2047 and its predecessors.)
.IP "\fBrfc2046_strict:\fR 0" 5
If enabled, imapd will be strict (per RFC 2046) when matching MIME

View File

@ -1,12 +0,0 @@
diff -Naur cyrus-imapd-2.3.1.orig/imap/backend.c cyrus-imapd-2.3.1/imap/backend.c
--- cyrus-imapd-2.3.1.orig/imap/backend.c 2005-02-25 07:46:14.000000000 +0100
+++ cyrus-imapd-2.3.1/imap/backend.c 2006-01-25 08:10:20.000000000 +0100
@@ -274,7 +274,7 @@
/* need to (re)establish connection to server or create one */
int sock = -1;
int r;
- int err;
+ int err = -1;
struct addrinfo hints, *res0 = NULL, *res1 = NULL, *res;
struct sockaddr_un sunsock;
char buf[2048], *mechlist = NULL;

View File

@ -1,18 +0,0 @@
diff -Naur cyrus-imapd-2.3.1.orig/imap/make_md5.c cyrus-imapd-2.3.1/imap/make_md5.c
--- cyrus-imapd-2.3.1.orig/imap/make_md5.c 2005-12-13 16:31:08.000000000 +0100
+++ cyrus-imapd-2.3.1/imap/make_md5.c 2006-01-18 20:21:14.000000000 +0100
@@ -391,7 +391,13 @@
FILE *file;
int i;
- if ((file=fopen(name, "w")) == NULL)
+ file = fopen(name, "w");
+ if (file == NULL && errno == ENOENT) {
+ if (cyrus_mkdir(name, 0750) == 0) {
+ file = fopen(name, "w");
+ }
+ }
+ if (file == NULL)
return(IMAP_IOERROR);
for (mailbox = list->head ; mailbox ; mailbox = mailbox->next) {

View File

@ -1,20 +0,0 @@
diff -Naur cyrus-imapd-2.3.1.orig/imap/sync_commit.c cyrus-imapd-2.3.1/imap/sync_commit.c
--- cyrus-imapd-2.3.1.orig/imap/sync_commit.c 2005-12-13 16:31:10.000000000 +0100
+++ cyrus-imapd-2.3.1/imap/sync_commit.c 2006-01-25 10:18:50.000000000 +0100
@@ -834,9 +834,15 @@
/* Must be atleast MAX_PARTITION_LEN + 30 for partition, need
* MAX_PARTITION_LEN + HOSTNAME_SIZE + 2 for mupdate location */
char buf[MAX_PARTITION_LEN + HOSTNAME_SIZE + 2];
+ char *mbox = name;
+ char *p;
/* Need an extra sanity check here as normal ACL logic is bypassed */
- r = mboxname_policycheck(name);
+ if (config_virtdomains && (p = strchr(name, '!'))) {
+ /* pointer to mailbox w/o domain prefix */
+ mbox = p + 1;
+ }
+ r = mboxname_policycheck(mbox);
if (r) return r;
if (!uniqueid) {

View File

@ -1,29 +0,0 @@
--- cyrus-imapd-2.3.7/cmulocal/berkdb.m4.db4.5 2006-05-23 15:27:15.000000000 +0200
+++ cyrus-imapd-2.3.7/cmulocal/berkdb.m4 2007-01-08 11:57:05.000000000 +0100
@@ -213,7 +213,7 @@
fi
saved_LIBS=$LIBS
- for dbname in db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db40 db4 db-3.3 db3.3 db33 db-3.2 db3.2 db32 db-3.1 db3.1 db31 db-3 db30 db3 db
+ for dbname in db-4.5 db4.5 db45 db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db40 db4 db-3.3 db3.3 db33 db-3.2 db3.2 db32 db-3.1 db3.1 db31 db-3 db30 db3 db
do
LIBS="$saved_LIBS -l$dbname"
AC_TRY_LINK([#include <db.h>],
--- cyrus-imapd-2.3.7/lib/cyrusdb_berkeley.c.db4.5 2006-02-28 13:58:07.000000000 +0100
+++ cyrus-imapd-2.3.7/lib/cyrusdb_berkeley.c 2007-01-08 12:00:29.000000000 +0100
@@ -173,7 +173,15 @@
syslog(LOG_WARNING,
"DBERROR: invalid berkeley_locks_max value, using internal default");
} else {
+#if DB_VERSION_MAJOR >= 4
+ r = dbenv->set_lk_max_locks(dbenv, opt);
+ if (!r)
+ r = dbenv->set_lk_max_lockers(dbenv, opt);
+ if (!r)
+ r = dbenv->set_lk_max_objects(dbenv, opt);
+#else
r = dbenv->set_lk_max(dbenv, opt);
+#endif
if (r) {
dbenv->err(dbenv, r, "set_lk_max");
syslog(LOG_ERR, "DBERROR: set_lk_max(): %s", db_strerror(r));

View File

@ -1,11 +0,0 @@
--- cyrus-imapd-2.3.7/lib/Makefile.in.makeinstallfix 2006-03-17 18:29:40.000000000 +0100
+++ cyrus-imapd-2.3.7/lib/Makefile.in 2007-01-10 21:03:48.000000000 +0100
@@ -99,7 +99,7 @@
LIBCYRM_HDRS = $(srcdir)/hash.h $(srcdir)/mpool.h $(srcdir)/xmalloc.h \
$(srcdir)/xstrlcat.h $(srcdir)/xstrlcpy.h \
- $(srcdir)/strhash.o $(srcdir)/libconfig.h $(srcdir)/assert.h \
+ $(srcdir)/strhash.h $(srcdir)/libconfig.h $(srcdir)/assert.h \
imapopts.h
LIBCYRM_OBJS = libconfig.o imapopts.o hash.o mpool.o xmalloc.o strhash.o \
xstrlcat.o xstrlcpy.o assert.o @IPV6_OBJS@

View File

@ -1,7 +1,7 @@
%define upstream_ver 2.3.12p2
Name: cyrus-imapd
Version: 2.3.12p2
Release: 1%{?dist}
Release: 2%{?dist}
# ********************** BUILD TIME OPTIONS START **********************
@ -134,26 +134,18 @@ Patch1: http://email.uoa.gr/download/cyrus/cyrus-imapd-2.3.12/cyrus-imapd-2.3.12
Patch2: http://email.uoa.gr/download/cyrus/cyrus-imapd-2.3.12/cyrus-imapd-2.3.12p2-autosieve-0.6.0.diff
#Patch3: http://email.uoa.gr/download/cyrus/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9-rmquota+deletemailbox-0.2-1.diff
Patch4: http://servercc.oakton.edu/~jwade/cyrus/cyrus-imapd-2.1.3/cyrus-imapd-2.1.3-flock.patch
Patch5: cyrus-imapd-2.2.12-munge8bit.patch
Patch6: cyrus-imapd-2.1.16-getrlimit.patch
Patch7: cyrus-imapd-2.3.7-nobarenewlinescheck.patch
Patch9: cyrus-imapd-2.3.1-config_defaults.patch
Patch10: cyrus-imapd-acceptinvalidfrom.patch
Patch11: cyrus-imapd-2.2.12-dam_invalid_id-christos.patch
Patch12: cyrus-imapd-2.3.7-notify_sms.patch
Patch13: allow_auth_plain_proxying.patch
Patch14: cyrus-imapd-2.3.1-authid_normalize.patch
Patch15: cyrus-imapd-2.3.1-make_md5_defaults.patch
Patch16: cyrus-imapd-2.3.7-db4.5.patch
Patch17: cyrus-imapd-2.3.7-makeinstallfix.patch
Patch18: cyrus-imapd-2.3.7-krb4.patch
# Patches >= 100 are / will be fixed in CVS
Patch100: cyrus-imapd-2.3.1-make_md5.patch
Patch101: cyrus-imapd-2.3.1-backend_sigsegv.patch
Patch102: cyrus-imapd-2.3.1-replication_policycheck.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
Patch19: cyrus-imapd-2.3.12p2-db4.7.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: autoconf >= 2.59
BuildRequires: cyrus-sasl-devel >= 2.1.15-1, perl, perl-devel, tcp_wrappers
BuildRequires: cyrus-sasl-devel >= 2.1.15-1, perl-devel, tcp_wrappers
BuildRequires: %{_dbver}-devel, openssl-devel, pkgconfig
BuildRequires: flex, bison, groff >= 1.15-8, automake
BuildRequires: openldap-devel
@ -239,32 +231,17 @@ one running the server.
#%patch3 -p1 -b .rmquota
%endif
%patch4 -p1 -b .flock
# superseded by upstream munge8bit support
#%patch5 -p1 -b .munge8bit
%patch6 -p1 -b .getrlimit
%if %{NO_BARE_NL}
%patch7 -p1 -b .nobarenewlinescheck
%endif
#%patch9 -p1 -b .config_defaults
%patch10 -p1 -b .acceptinvalidfrom
# fixed upstream already
#%patch11 -p1 -b .dam_invalid_id
%patch12 -p1 -b .notify_sms
#%patch13 -p0 -b .allow_auth_plain
%patch14 -p1 -b .authid_normalize
%patch15 -p1 -b .make_md5_defaults
#%patch16 -p1 -b .db4.5
#%patch17 -p1 -b .makeinstallfix
%patch18 -p1 -b .krb4
# fixed upstream
#%patch100 -p1 -b .make_md5
# fixed upstream
#%patch101 -p1 -b .backend_sigsegv
# not applicable -- the policy check is not done upstream anymore at all
# commented out with a comment: XXX is this really necessary since only sync_client talks to us?
# probably fixes same problem as our patch, but in a different way
# may be a risk of regressions though
#%patch102 -p1 -b .replication_policycheck
%patch19 -p1 -b .db4.7
# only to update config.* files
automake -a -f -c || :
@ -807,6 +784,10 @@ fi
%{_mandir}/man1/*
%changelog
* Fri Sep 14 2008 Dan Horák <dan[at]danny.cz - 2.3.12p2-2
- fix linking with db4.7 (Resolves: #461875)
- patch cleanup
* Mon Sep 1 2008 Dan Horák <dan[at]danny.cz - 2.3.12p2-1
- update to new upstream version 2.3.12p2
- update patches