parent
e36815f478
commit
1a14ff31c3
@ -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;
|
@ -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 ‘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.</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 ‘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.</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
|
||||
-‘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.)</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
|
@ -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;
|
@ -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) {
|
@ -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) {
|
@ -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));
|
@ -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@
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user