gunnar: server/imapd/patches Makefile, NONE, 1.1 README, NONE, 1.1 README_Annotations.patch, NONE, 1.1 README_Annotations2.patch, NONE, 1.1 README_Folder-names.patch, NONE, 1.1 README_Groups.patch, NONE, 1.1 README_Logging.patch, NONE, 1.1 README_UID.patch, NONE, 1.1 hgrc, NONE, 1.1

cvs at kolab.org cvs at kolab.org
Thu Apr 23 23:33:11 CEST 2009


Author: gunnar

Update of /kolabrepository/server/imapd/patches
In directory doto:/tmp/cvs-serv19408

Added Files:
	Makefile README README_Annotations.patch 
	README_Annotations2.patch README_Folder-names.patch 
	README_Groups.patch README_Logging.patch README_UID.patch hgrc 
Log Message:
Move the cyrus patches over here. In addition a Makefile has been added to facilitate the patch series update between versions. This Makefile is dependant on mercurial. It will automatically fetch an old version, check the patch series, fetch the new version, pull in changes and reapply the patch series (make update). After fixing any errors that may occur on pushing the series the patches can be exported into their respective patch directory by running make patches.

--- NEW FILE: Makefile ---
# This is a very rough draft for updating a patch series using
# mercurial queues. The Makefile could see some optimizations but for
# the occasional upstream update it hopefully does fine.
#
# Author: G. Wrobel

OLD_VERSION=2.3.13
NEW_VERSION=2.3.14

PN=cyrus-imapd

SOURCE_URL=ftp://ftp.andrew.cmu.edu/pub/cyrus/

.PHONY: update
update:
	@if [ -d $(PN)-$(NEW_VERSION) ]; then echo "Patches for the new version do already exist!" && exit 1; fi
	rm -rf tmp
	mkdir -p tmp
	cd tmp && wget $(SOURCE_URL)/$(PN)-$(OLD_VERSION).tar.gz
	cd tmp && tar xfz $(PN)-$(OLD_VERSION).tar.gz
	cd tmp/$(PN)-$(OLD_VERSION) && hg init && hg commit --addremove -m "$(PN)-$(OLD_VERSION)"
	cd tmp && hg clone $(PN)-$(OLD_VERSION) $(PN)-PATCHED
	cp hgrc tmp/$(PN)-PATCHED/.hg/
	cd tmp/$(PN)-PATCHED && hg qinit
	cp $(PN)-$(OLD_VERSION)/series tmp/$(PN)-PATCHED/.hg/patches/
	cd $(PN)-$(OLD_VERSION); \
	for FL in KOLAB*; do \
	  cp $$FL ../tmp/$(PN)-PATCHED/.hg/patches/$${FL/$(PN)-$(OLD_VERSION)_/}; \
	done
	cp $(PN)-$(OLD_VERSION)/series tmp/$(PN)-PATCHED/.hg/patches/
	cd tmp/$(PN)-PATCHED && hg qpush -a && hg qpop -a
	cd tmp && hg clone $(PN)-$(OLD_VERSION) $(PN)-$(NEW_VERSION)
	cd tmp/$(PN)-$(NEW_VERSION) && hg locate -0 | xargs -0 rm
	cd tmp && wget $(SOURCE_URL)/$(PN)-$(NEW_VERSION).tar.gz
	cd tmp && tar xfz $(PN)-$(NEW_VERSION).tar.gz
	cd tmp/$(PN)-$(NEW_VERSION) && hg commit --addremove -m "$(PN)-$(NEW_VERSION)"
	cd tmp/$(PN)-PATCHED && hg pull ../$(PN)-$(NEW_VERSION) && hg update
	@echo
	@echo
	@echo "The patch series will be pushed now. If errors occur you will need to fix them"
	@echo "run \"hg qrefresh\" and continue with \"hg qpush\" until the full series applied"
	@echo "successfully. Finally you may move back to the current directory and run \"make patches\""
	@echo
	@echo
	cd tmp/$(PN)-PATCHED && hg qpush -a

.PHONY: patches
patches:
	@if [ -d $(PN)-$(NEW_VERSION) ]; then echo "Patches for the new version do already exist!" && exit 1; fi
	mkdir $(PN)-$(NEW_VERSION)
	cd tmp/$(PN)-PATCHED/.hg/patches; \
	for FL in KOLAB*; do \
	  cp $$FL ../../../../$(PN)-$(NEW_VERSION)/$${FL/KOLAB_/KOLAB_$(PN)-$(NEW_VERSION)_}; \
	done
	cp tmp/$(PN)-PATCHED/.hg/patches/series $(PN)-$(NEW_VERSION)/ 
	rm -rf tmp


--- NEW FILE: README ---
If you patch cyrus-imapd with these patches for Kolab you will
need to ensure in addition that you remove two files from the 
sources:

rm -f lib/imapopts.h lib/imapopts.c

Both will get rebuild automatically during the build process. 
If you don't rebuild them during build time they will be 
outdated.

--- NEW FILE: README_Annotations.patch ---
DESCRIPTION:

Adds annotation support to the cyradm tool.

IMPACT:

Without this you will not be able to get/set custom annotations.

REFERENCES:

Wiki page:

http://wiki.kolab.org/index.php/Template:Patches_cyrus

Mercurial patch repository:

http://hg.pardus.de/cgi-bin/hg.cgi/kolab/patches/cyrus-imapd/summary

HISTORY

I currently don't know if this has been submitted alongside with
the main annotation patch.

--- NEW FILE: README_Annotations2.patch ---
DESCRIPTION:

There is an imap extension for adding "annotations" (eg. metadata) to
imap folders in the form of key/value pairs. The key is typically
something like /vendor/<vendorname>/<attributename>. Cyrus imapd only
supports a few special annotation keys for internal use (such as being
able to mark a folder for indexing etc.). The patch extends cyrus imapd
to allow arbitrary annotations on IMAP folders.

IMPACT:

The annotation patch is critical to kolab. Without the patch, the clients
will not know which folder is for calender, tasks etc.

REFERENCES:

Kolab bug tracker merge: 

https://intevation.de/roundup/kolab/merge4

Wiki page:

http://wiki.kolab.org/index.php/Template:Patches_cyrus

Mercurial patch repository:

http://hg.pardus.de/cgi-bin/hg.cgi/kolab/patches/cyrus-imapd/summary

HISTORY

The patch has been submitted upstream and the original version was rejected.

https://bugzilla.andrew.cmu.edu/show_bug.cgi?id=2458

A new version of the patch has been provided recently by Thomas Viemann 
(http://vman.de/cyrus/).

It looked as though upstream would accept the patch but so far nothing has 
happened. Another status inquiry on 2007-05-21.

--- NEW FILE: README_Folder-names.patch ---
DESCRIPTION:

Specifies the allowed characters in IMAP folder names.

IMPACT:

Without this patch some folder names will not work.

REFERENCES:

Kolab bug tracker merge: 

https://intevation.de/roundup/kolab/merge34

Wiki page:

http://wiki.kolab.org/index.php/Template:Patches_cyrus

Mercurial patch repository:

http://hg.pardus.de/cgi-bin/hg.cgi/kolab/patches/cyrus-imapd/summary

HISTORY

This patch hardwires the acceptable characters for folder names. 
This is something that will probably not be accepted upstream and 
the patch was never submitted. It would be good if this would be 
rewritten to make the acceptable characters a configuration option.


--- NEW FILE: README_Groups.patch ---
DESCRIPTION:

Plain cyrus imapd reads groups from /etc/group, and OpenPKG includes
a patch that allows us to use a private file (for example 
/kolab/etc/imapd/groupfile) for this instead of the system one. Groups 
in cyrus can be used in ACLs. To cater for MS windows users who are not 
used to "case matters", the kolab developers patched the openpkg patch 
to use case-insignificant string comparison when looking up groups.

IMPACT:

Groups won't work for the Kolab server if this patch is missing.

REFERENCES:

Kolab bug tracker merge: 

https://intevation.de/roundup/kolab/merge6

Wiki page:

http://wiki.kolab.org/index.php/Template:Patches_cyrus

Mercurial patch repository:

http://hg.pardus.de/cgi-bin/hg.cgi/kolab/patches/cyrus-imapd/summary

HISTORY

The patch has been submitted upstream but upstream never reacted.
Another status inquiry on 2007-05-21.

https://bugzilla.andrew.cmu.edu/show_bug.cgi?id=2632
--- NEW FILE: README_Logging.patch ---
DESCRIPTION:

Logs IMAP expunge events.

IMPACT:

Not absolutely required for the Kolab server. Just adds some more information
to your logs.

REFERENCES:

Kolab bug tracker merge: 

https://intevation.de/roundup/kolab/merge13

Wiki page:

http://wiki.kolab.org/index.php/Template:Patches_cyrus

Mercurial patch repository:

http://hg.pardus.de/cgi-bin/hg.cgi/kolab/patches/cyrus-imapd/summary

HISTORY

The patch has been submitted upstream on 2007-05-21.

https://bugzilla.andrew.cmu.edu/show_bug.cgi?id=2964
--- NEW FILE: README_UID.patch ---
DESCRIPTION:

Allows to use the uid instead of the mail address for logging into
the cyrus imap server.

IMPACT:

Without this patch users will be unable to use the UID for logging in.

REFERENCES:

Kolab bug tracker merge: 

https://intevation.de/roundup/kolab/merge5

Wiki page:

http://wiki.kolab.org/index.php/Template:Patches_cyrus

Mercurial patch repository:

http://hg.pardus.de/cgi-bin/hg.cgi/kolab/patches/cyrus-imapd/summary

HISTORY

This has been specifically written for Kolab and is not compatible
with upstream. It needs to be rewritten to a general LDAP filter
support if it should be integrated upstream.
--- NEW FILE: hgrc ---
[extensions]
hgext.mq =





More information about the commits mailing list