From 1a14ff31c36fc01134af7b7cfe947f4381c3f1ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Fri, 12 Sep 2008 07:09:30 +0000 Subject: [PATCH] - fix linking with db4.7 (Resolves: #461875) - patch cleanup --- ...imapd-2.2.12-dam_invalid_id-christos.patch | 62 -------- cyrus-imapd-2.2.12-munge8bit.patch | 133 ------------------ cyrus-imapd-2.3.1-backend_sigsegv.patch | 12 -- cyrus-imapd-2.3.1-make_md5.patch | 18 --- ...-imapd-2.3.1-replication_policycheck.patch | 20 --- cyrus-imapd-2.3.7-db4.5.patch | 29 ---- cyrus-imapd-2.3.7-makeinstallfix.patch | 11 -- cyrus-imapd.spec | 37 ++--- 8 files changed, 9 insertions(+), 313 deletions(-) delete mode 100644 cyrus-imapd-2.2.12-dam_invalid_id-christos.patch delete mode 100644 cyrus-imapd-2.2.12-munge8bit.patch delete mode 100644 cyrus-imapd-2.3.1-backend_sigsegv.patch delete mode 100644 cyrus-imapd-2.3.1-make_md5.patch delete mode 100644 cyrus-imapd-2.3.1-replication_policycheck.patch delete mode 100644 cyrus-imapd-2.3.7-db4.5.patch delete mode 100644 cyrus-imapd-2.3.7-makeinstallfix.patch diff --git a/cyrus-imapd-2.2.12-dam_invalid_id-christos.patch b/cyrus-imapd-2.2.12-dam_invalid_id-christos.patch deleted file mode 100644 index 687f6fd..0000000 --- a/cyrus-imapd-2.2.12-dam_invalid_id-christos.patch +++ /dev/null @@ -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; diff --git a/cyrus-imapd-2.2.12-munge8bit.patch b/cyrus-imapd-2.2.12-munge8bit.patch deleted file mode 100644 index d6f1484..0000000 --- a/cyrus-imapd-2.2.12-munge8bit.patch +++ /dev/null @@ -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 @@ - - -

Depending on the setting of reject8bit in --imapd.conf(5), deliver either rejects messages with --8-bit-set characters in the headers or changes these --characters to ‘X’. 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 present in US-ASCII.

-+imapd.conf(5), 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 munge8bit, these -+characters are either left un-touched or changed to ‘X’. 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 present in US-ASCII.

- -

A method for encoding 8-bit-set characters is provided by - RFC 2047.

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

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 -+‘X’. (A proper solution to non-ASCII characters - in headers is offered by RFC 2047 and its predecessors.)

- - -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 diff --git a/cyrus-imapd-2.3.1-backend_sigsegv.patch b/cyrus-imapd-2.3.1-backend_sigsegv.patch deleted file mode 100644 index fd37a20..0000000 --- a/cyrus-imapd-2.3.1-backend_sigsegv.patch +++ /dev/null @@ -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; diff --git a/cyrus-imapd-2.3.1-make_md5.patch b/cyrus-imapd-2.3.1-make_md5.patch deleted file mode 100644 index 127d220..0000000 --- a/cyrus-imapd-2.3.1-make_md5.patch +++ /dev/null @@ -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) { diff --git a/cyrus-imapd-2.3.1-replication_policycheck.patch b/cyrus-imapd-2.3.1-replication_policycheck.patch deleted file mode 100644 index 85ea970..0000000 --- a/cyrus-imapd-2.3.1-replication_policycheck.patch +++ /dev/null @@ -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) { diff --git a/cyrus-imapd-2.3.7-db4.5.patch b/cyrus-imapd-2.3.7-db4.5.patch deleted file mode 100644 index c63d7eb..0000000 --- a/cyrus-imapd-2.3.7-db4.5.patch +++ /dev/null @@ -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 ], ---- 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)); diff --git a/cyrus-imapd-2.3.7-makeinstallfix.patch b/cyrus-imapd-2.3.7-makeinstallfix.patch deleted file mode 100644 index df984d1..0000000 --- a/cyrus-imapd-2.3.7-makeinstallfix.patch +++ /dev/null @@ -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@ diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index bbb8a76..3ff2bb9 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -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