From cvs at kolab.org Mon Oct 1 12:09:38 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 1 Oct 2007 12:09:38 +0200 (CEST) Subject: gunnar: server/patches/cyrus-imapd KOLAB_cyrus-imapd_2.3.9_Logging.patch, 1.1, 1.2 Message-ID: <20071001100938.CEF8A602A36@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd In directory doto:/tmp/cvs-serv13709 Modified Files: KOLAB_cyrus-imapd_2.3.9_Logging.patch Log Message: Update logging patch to the version provided by Alain Spineux. Index: KOLAB_cyrus-imapd_2.3.9_Logging.patch =================================================================== RCS file: /kolabrepository/server/patches/cyrus-imapd/KOLAB_cyrus-imapd_2.3.9_Logging.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- KOLAB_cyrus-imapd_2.3.9_Logging.patch 29 Sep 2007 12:13:54 -0000 1.1 +++ KOLAB_cyrus-imapd_2.3.9_Logging.patch 1 Oct 2007 10:09:36 -0000 1.2 @@ -1,8 +1,8 @@ Provides improved logging for the cyrus imapd server [Version: 2.3.9] -diff -r 2b4b67cfafb7 imap/append.c ---- a/imap/append.c Sat Sep 29 13:40:19 2007 +0200 -+++ b/imap/append.c Sat Sep 29 13:40:37 2007 +0200 +diff -r 5e673d53c57c imap/append.c +--- a/imap/append.c Sat Sep 29 13:56:24 2007 +0200 ++++ b/imap/append.c Mon Oct 01 11:17:30 2007 +0200 @@ -653,6 +653,9 @@ int append_fromstage(struct appendstate /* ok, we've successfully added a message */ @@ -13,21 +13,40 @@ return 0; } -diff -r 2b4b67cfafb7 imap/imapd.c ---- a/imap/imapd.c Sat Sep 29 13:40:19 2007 +0200 -+++ b/imap/imapd.c Sat Sep 29 13:40:37 2007 +0200 -@@ -3514,6 +3514,8 @@ void cmd_close(char *tag) - else { - prot_printf(imapd_out, "%s OK %s\r\n", tag, - error_message(IMAP_OK_COMPLETED)); +diff -r 5e673d53c57c imap/imapd.c +--- a/imap/imapd.c Sat Sep 29 13:56:24 2007 +0200 ++++ b/imap/imapd.c Mon Oct 01 11:17:30 2007 +0200 +@@ -3504,17 +3504,19 @@ void cmd_close(char *tag) + if (!r) sync_log_mailbox(imapd_mailbox->name); + } + ++ if (r) { ++ prot_printf(imapd_out, "%s NO %s\r\n", tag, error_message(r)); ++ } ++ else { ++ prot_printf(imapd_out, "%s OK %s\r\n", tag, ++ error_message(IMAP_OK_COMPLETED)); + syslog(LOG_DEBUG, "cmd_expunge: user %s, mailbox %s, sequence %s", + imapd_userid, imapd_mailbox->name, "''"); - } ++ } ++ + index_closemailbox(imapd_mailbox); + mailbox_close(imapd_mailbox); + imapd_mailbox = 0; +- +- if (r) { +- prot_printf(imapd_out, "%s NO %s\r\n", tag, error_message(r)); +- } +- else { +- prot_printf(imapd_out, "%s OK %s\r\n", tag, +- error_message(IMAP_OK_COMPLETED)); +- } } -diff -r 2b4b67cfafb7 imap/mailbox.c ---- a/imap/mailbox.c Sat Sep 29 13:40:19 2007 +0200 -+++ b/imap/mailbox.c Sat Sep 29 13:40:37 2007 +0200 + /* +diff -r 5e673d53c57c imap/mailbox.c +--- a/imap/mailbox.c Sat Sep 29 13:56:24 2007 +0200 ++++ b/imap/mailbox.c Mon Oct 01 11:17:30 2007 +0200 @@ -2457,6 +2457,8 @@ int mailbox_expunge(struct mailbox *mail *(fname->tail)++ = '/'; fname->len++; From cvs at kolab.org Mon Oct 1 17:47:21 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 1 Oct 2007 17:47:21 +0200 (CEST) Subject: gunnar: server/horde/fbview-horde Makefile, 1.2, 1.3 fbview-horde.spec, 1.11, 1.12 Message-ID: <20071001154721.EDD6A602A36@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/fbview-horde In directory doto:/tmp/cvs-serv20832/horde/fbview-horde Modified Files: Makefile fbview-horde.spec Log Message: Moving the horde packages to the latest ALPHA release. Index: Makefile =================================================================== RCS file: /kolabrepository/server/horde/fbview-horde/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Makefile 2 Aug 2007 10:35:19 -0000 1.2 +++ Makefile 1 Oct 2007 15:47:19 -0000 1.3 @@ -19,15 +19,16 @@ DATE = ${YEAR}-${MONTH}-${DAY} PACKAGE = fbview-$(HORDE_NAME) -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9._a-z]*\).*/\1/") +UVER = $(shell grep "%define[ ]*V_uver" *.spec | sed -e "s/.*V_uver\s*\([0-9.a-z-]*\).*/\1/") RELEASE = ${YEAR}${MONTH}${DAY} PATCHES = $(shell find . -name "*.patch") TEMPLATES = $(shell find . -name "*.template") CONFIGS = $(shell find . -name "*.php") -PACKAGE_0=$(HORDE_NAME)-HEAD-$(DATE).tar.gz -SOURCE_0=http://ftp.horde.org/pub/snaps/${DATE}/$(PACKAGE_0) +PACKAGE_0=$(HORDE_NAME)-$(UVER).tar.gz +SOURCE_0=http://ftp.horde.org/pub/$(HORDE_NAME)/$(PACKAGE_0) .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm Index: fbview-horde.spec =================================================================== RCS file: /kolabrepository/server/horde/fbview-horde/fbview-horde.spec,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- fbview-horde.spec 13 Sep 2007 13:43:54 -0000 1.11 +++ fbview-horde.spec 1 Oct 2007 15:47:19 -0000 1.12 @@ -2,9 +2,10 @@ %define V_horde_name horde %define V_package fbview-%{V_horde_name} %define V_year 2007 -%define V_month 09 -%define V_day 12 -%define V_version 3.1.4.99 +%define V_month 10 +%define V_day 01 +%define V_version 3.2_alpha +%define V_uver 3.2-alpha %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -21,7 +22,7 @@ Distribution: OpenPKG # List of Sources -Source0: http://ftp.horde.org/pub/snaps/%{V_date}/%{V_horde_name}-HEAD-%{V_date}.tar.gz +Source0: http://ftp.horde.org/pub/%{V_horde_name}/%{V_horde_name}-%{V_uver}.tar.gz Source1: fbview-horde-conf.template Source2: hooks.php Source3: conf.php @@ -60,7 +61,7 @@ detection, user help, and more. %prep - %setup -c -q + %setup -c -q -n %{V_horde_name}-%{V_uver} %build @@ -71,8 +72,15 @@ %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/fbview %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates - cd horde/config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd ../.. - cp -r horde/* $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/fbview/ + cd %{V_horde_name}-%{V_uver} + + cd config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd .. + + rm -rf lib/{File,File.php,Horde,Horde.php,Net,SyncML,SyncML.php,Text,VFS,VFS.php,XML} + + cp -r * $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/fbview/ + + cd .. %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:1} \ $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates From cvs at kolab.org Mon Oct 1 17:47:21 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 1 Oct 2007 17:47:21 +0200 (CEST) Subject: gunnar: server/horde/fbview-kronolith Makefile, 1.3, 1.4 fbview-kronolith.spec, 1.13, 1.14 Message-ID: <20071001154721.F27F9602A3C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/fbview-kronolith In directory doto:/tmp/cvs-serv20832/horde/fbview-kronolith Modified Files: Makefile fbview-kronolith.spec Log Message: Moving the horde packages to the latest ALPHA release. Index: Makefile =================================================================== RCS file: /kolabrepository/server/horde/fbview-kronolith/Makefile,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Makefile 2 Aug 2007 12:27:34 -0000 1.3 +++ Makefile 1 Oct 2007 15:47:19 -0000 1.4 @@ -19,15 +19,16 @@ DATE = ${YEAR}-${MONTH}-${DAY} PACKAGE = fbview-$(HORDE_NAME) -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9._a-z]*\).*/\1/") +UVER = $(shell grep "%define[ ]*V_uver" *.spec | sed -e "s/.*V_uver\s*\([0-9.a-z-]*\).*/\1/") RELEASE = ${YEAR}${MONTH}${DAY} PATCHES = $(shell find . -name "*.patch") savedattlist.inc open_savedattlist_win.js TEMPLATES = $(shell find . -name "*.template") CONFIGS = $(shell find . -name "*.php") -PACKAGE_0=$(HORDE_NAME)-HEAD-$(DATE).tar.gz -SOURCE_0=http://ftp.horde.org/pub/snaps/${DATE}/$(PACKAGE_0) +PACKAGE_0=$(HORDE_NAME)-h3-$(UVER).tar.gz +SOURCE_0=http://ftp.horde.org/pub/$(HORDE_NAME)/$(PACKAGE_0) .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm @@ -42,7 +43,7 @@ rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm rm -rf *~ -$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec $(PATCHES) $(TEMPLATES) $(CONFIGS) ChangeLog +$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec $(PATCHES) $(TEMPLATES) $(CONFIGS) ChangeLog test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_0)" Index: fbview-kronolith.spec =================================================================== RCS file: /kolabrepository/server/horde/fbview-kronolith/fbview-kronolith.spec,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- fbview-kronolith.spec 13 Sep 2007 13:43:54 -0000 1.13 +++ fbview-kronolith.spec 1 Oct 2007 15:47:19 -0000 1.14 @@ -2,9 +2,10 @@ %define V_horde_name kronolith %define V_package fbview-%{V_horde_name} %define V_year 2007 -%define V_month 09 -%define V_day 12 -%define V_version 2.1.5.99 +%define V_month 10 +%define V_day 01 +%define V_version 2.2_alpha +%define V_uver 2.2-alpha %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -21,7 +22,7 @@ Distribution: OpenPKG # List of Sources -Source0: http://ftp.horde.org/pub/snaps/%{V_date}/%{V_horde_name}-HEAD-%{V_date}.tar.gz +Source0: http://ftp.horde.org/pub/%{V_horde_name}/%{V_horde_name}-h3-%{V_uver}.tar.gz Source1: fbview-kronolith-conf.template Source2: conf.php Source3: prefs.php @@ -63,9 +64,9 @@ of the Horde Framework to provide integration with other applications. %prep - %setup -c -q + %setup -c -q -n %{V_horde_name}-h3-%{V_uver} - cd %{V_horde_name} + cd %{V_horde_name}-h3-%{V_uver} %patch -p0 -P 0 cd .. @@ -75,17 +76,20 @@ %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/fbview/%{V_horde_name} %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates - # Copy the dist configs into the real configuration files - cd %{V_horde_name}/config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd ../.. + cd %{V_horde_name}-h3-%{V_uver} + + cd config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd .. # Remove some stuff not necessary for fbview - cd %{V_horde_name} && rm add.php calendars.php day.php perms.php view.php \ - delete.php ics.php search.php week.php contacts.php \ - imple.php month.php pref_api.php workweek.php \ - edit.php new.php test.php year.php attend.php \ - data.php event.php && cd .. + rm add.php calendars.php day.php perms.php view.php \ + delete.php ics.php search.php week.php contacts.php \ + imple.php month.php pref_api.php workweek.php \ + edit.php new.php test.php year.php attend.php \ + data.php event.php - cp -r %{V_horde_name} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/fbview/ + cp -r * $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/fbview/%{V_horde_name}/ + + cd .. %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/fbview/%{V_horde_name}/templates/savedattlist %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:4} \ From cvs at kolab.org Mon Oct 1 17:47:22 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 1 Oct 2007 17:47:22 +0200 (CEST) Subject: gunnar: server/horde/horde-nag Makefile, 1.5, 1.6 horde-nag-kolab.spec, 1.13, 1.14 Message-ID: <20071001154722.27BF7602A36@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-nag In directory doto:/tmp/cvs-serv20832/horde/horde-nag Modified Files: Makefile horde-nag-kolab.spec Log Message: Moving the horde packages to the latest ALPHA release. Index: Makefile =================================================================== RCS file: /kolabrepository/server/horde/horde-nag/Makefile,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Makefile 3 Aug 2007 07:38:08 -0000 1.5 +++ Makefile 1 Oct 2007 15:47:19 -0000 1.6 @@ -19,15 +19,16 @@ DATE = ${YEAR}-${MONTH}-${DAY} PACKAGE = horde-$(HORDE_NAME)-kolab -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9._a-z]*\).*/\1/") +UVER = $(shell grep "%define[ ]*V_uver" *.spec | sed -e "s/.*V_uver\s*\([0-9.a-z-]*\).*/\1/") RELEASE = ${YEAR}${MONTH}${DAY} PATCHES = $(shell find . -name "*.patch") TEMPLATES = $(shell find . -name "*.template") CONFIGS = $(shell find . -name "*.php") -PACKAGE_0=$(HORDE_NAME)-HEAD-$(DATE).tar.gz -SOURCE_0=http://ftp.horde.org/pub/snaps/${DATE}/$(PACKAGE_0) +PACKAGE_0=$(HORDE_NAME)-h3-$(UVER).tar.gz +SOURCE_0=http://ftp.horde.org/pub/$(HORDE_NAME)/$(PACKAGE_0) .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm Index: horde-nag-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-nag/horde-nag-kolab.spec,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- horde-nag-kolab.spec 13 Sep 2007 13:43:54 -0000 1.13 +++ horde-nag-kolab.spec 1 Oct 2007 15:47:19 -0000 1.14 @@ -2,9 +2,10 @@ %define V_horde_name nag %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 -%define V_month 09 -%define V_day 12 -%define V_version 2.1.3.99 +%define V_month 10 +%define V_day 01 +%define V_version 2.2_alpha +%define V_uver 2.2-alpha %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -21,7 +22,7 @@ Distribution: OpenPKG # List of Sources -Source0: http://ftp.horde.org/pub/snaps/%{V_date}/%{V_horde_name}-HEAD-%{V_date}.tar.gz +Source0: http://ftp.horde.org/pub/%{V_horde_name}/%{V_horde_name}-h3-%{V_uver}.tar.gz Source1: conf.php # Build Info @@ -43,7 +44,7 @@ Palm ToDo application. %prep - %setup -c -q + %setup -c -q -n %{V_horde_name}-h3-%{V_uver} %build @@ -51,9 +52,13 @@ %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name} %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates - cd %{V_horde_name}/config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd ../.. + cd %{V_horde_name}-h3-%{V_uver} - cp -r %{V_horde_name} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/ + cd config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd .. + + cp -r * $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/ + + cd .. %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:1} \ $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/config/ From cvs at kolab.org Mon Oct 1 17:47:22 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 1 Oct 2007 17:47:22 +0200 (CEST) Subject: gunnar: server/horde/horde-ingo Makefile, 1.5, 1.6 horde-ingo-kolab.spec, 1.13, 1.14 Message-ID: <20071001154722.0A061602A52@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-ingo In directory doto:/tmp/cvs-serv20832/horde/horde-ingo Modified Files: Makefile horde-ingo-kolab.spec Log Message: Moving the horde packages to the latest ALPHA release. Index: Makefile =================================================================== RCS file: /kolabrepository/server/horde/horde-ingo/Makefile,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Makefile 3 Aug 2007 07:38:08 -0000 1.5 +++ Makefile 1 Oct 2007 15:47:19 -0000 1.6 @@ -19,15 +19,16 @@ DATE = ${YEAR}-${MONTH}-${DAY} PACKAGE = horde-$(HORDE_NAME)-kolab -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9._a-z]*\).*/\1/") +UVER = $(shell grep "%define[ ]*V_uver" *.spec | sed -e "s/.*V_uver\s*\([0-9.a-z-]*\).*/\1/") RELEASE = ${YEAR}${MONTH}${DAY} PATCHES = $(shell find . -name "*.patch") TEMPLATES = $(shell find . -name "*.template") CONFIGS = $(shell find . -name "*.php") -PACKAGE_0=$(HORDE_NAME)-HEAD-$(DATE).tar.gz -SOURCE_0=http://ftp.horde.org/pub/snaps/${DATE}/$(PACKAGE_0) +PACKAGE_0=$(HORDE_NAME)-h3-$(UVER).tar.gz +SOURCE_0=http://ftp.horde.org/pub/$(HORDE_NAME)/$(PACKAGE_0) .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm Index: horde-ingo-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-ingo/horde-ingo-kolab.spec,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- horde-ingo-kolab.spec 13 Sep 2007 13:43:54 -0000 1.13 +++ horde-ingo-kolab.spec 1 Oct 2007 15:47:19 -0000 1.14 @@ -2,9 +2,10 @@ %define V_horde_name ingo %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 -%define V_month 09 -%define V_day 12 -%define V_version 1.1.3.99 +%define V_month 10 +%define V_day 01 +%define V_version 1.2_alpha +%define V_uver 1.2-alpha %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -21,7 +22,7 @@ Distribution: OpenPKG # List of Sources -Source0: http://ftp.horde.org/pub/snaps/%{V_date}/%{V_horde_name}-HEAD-%{V_date}.tar.gz +Source0: http://ftp.horde.org/pub/%{V_horde_name}/%{V_horde_name}-h3-%{V_uver}.tar.gz Source1: conf.php Source2: backends.php @@ -49,7 +50,7 @@ filtering agent in IMP H3 (4.x). %prep - %setup -c -q + %setup -c -q -n %{V_horde_name}-h3-%{V_uver} %build @@ -57,9 +58,13 @@ %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name} %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates - cd %{V_horde_name}/config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd ../.. + cd %{V_horde_name}-h3-%{V_uver} - cp -r %{V_horde_name} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/ + cd config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd .. + + cp -r * $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/ + + cd .. %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:1} %{S:2} \ $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/config/ From cvs at kolab.org Mon Oct 1 17:47:22 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 1 Oct 2007 17:47:22 +0200 (CEST) Subject: gunnar: server/horde/horde-kolab-client horde-kolab-client.spec, 1.9, 1.10 Message-ID: <20071001154722.18CE4602A57@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-kolab-client In directory doto:/tmp/cvs-serv20832/horde/horde-kolab-client Modified Files: horde-kolab-client.spec Log Message: Moving the horde packages to the latest ALPHA release. Index: horde-kolab-client.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-kolab-client/horde-kolab-client.spec,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- horde-kolab-client.spec 13 Sep 2007 13:43:54 -0000 1.9 +++ horde-kolab-client.spec 1 Oct 2007 15:47:19 -0000 1.10 @@ -1,8 +1,8 @@ # Versions %define V_package horde-kolab-client %define V_year 2007 -%define V_month 09 -%define V_day 12 +%define V_month 10 +%define V_day 01 %define V_version 0.99 %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -34,7 +34,7 @@ PreReq: horde-kronolith-kolab >= 2.1.5.99-%{V_release} PreReq: horde-mnemo-kolab >= 2.1.1.99-%{V_release} PreReq: horde-nag-kolab >= 2.1.3.99-%{V_release} -PreReq: horde-passwd-kolab >= 3.0.1.99-%{V_release} +PreReq: horde-passwd-kolab >= 3.0.1 PreReq: horde-turba-kolab >= 2.1.4.99-%{V_release} AutoReq: no From cvs at kolab.org Mon Oct 1 17:47:22 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 1 Oct 2007 17:47:22 +0200 (CEST) Subject: gunnar: server/horde/horde-turba Makefile, 1.5, 1.6 horde-turba-kolab.spec, 1.14, 1.15 Message-ID: <20071001154722.55D7B602A3C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-turba In directory doto:/tmp/cvs-serv20832/horde/horde-turba Modified Files: Makefile horde-turba-kolab.spec Log Message: Moving the horde packages to the latest ALPHA release. Index: Makefile =================================================================== RCS file: /kolabrepository/server/horde/horde-turba/Makefile,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Makefile 3 Aug 2007 07:38:08 -0000 1.5 +++ Makefile 1 Oct 2007 15:47:20 -0000 1.6 @@ -19,15 +19,16 @@ DATE = ${YEAR}-${MONTH}-${DAY} PACKAGE = horde-$(HORDE_NAME)-kolab -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9._a-z]*\).*/\1/") +UVER = $(shell grep "%define[ ]*V_uver" *.spec | sed -e "s/.*V_uver\s*\([0-9.a-z-]*\).*/\1/") RELEASE = ${YEAR}${MONTH}${DAY} PATCHES = $(shell find . -name "*.patch") TEMPLATES = $(shell find . -name "*.template") CONFIGS = $(shell find . -name "*.php") -PACKAGE_0=$(HORDE_NAME)-HEAD-$(DATE).tar.gz -SOURCE_0=http://ftp.horde.org/pub/snaps/${DATE}/$(PACKAGE_0) +PACKAGE_0=$(HORDE_NAME)-h3-$(UVER).tar.gz +SOURCE_0=http://ftp.horde.org/pub/$(HORDE_NAME)/$(PACKAGE_0) .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm Index: horde-turba-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-turba/horde-turba-kolab.spec,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- horde-turba-kolab.spec 13 Sep 2007 13:43:54 -0000 1.14 +++ horde-turba-kolab.spec 1 Oct 2007 15:47:20 -0000 1.15 @@ -2,9 +2,10 @@ %define V_horde_name turba %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 -%define V_month 09 -%define V_day 12 -%define V_version 2.1.4.99 +%define V_month 10 +%define V_day 01 +%define V_version 2.2_alpha +%define V_uver 2.2-alpha %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -21,7 +22,7 @@ Distribution: OpenPKG # List of Sources -Source0: http://ftp.horde.org/pub/snaps/%{V_date}/%{V_horde_name}-HEAD-%{V_date}.tar.gz +Source0: http://ftp.horde.org/pub/%{V_horde_name}/%{V_horde_name}-h3-%{V_uver}.tar.gz Source1: conf.php Source2: sources.php @@ -73,9 +74,9 @@ add and search for contacts. %prep - %setup -c -q + %setup -c -q -n %{V_horde_name}-h3-%{V_uver} - cd %{V_horde_name} + cd %{V_horde_name}-h3-%{V_uver} %patch -p0 -P 0 %patch -p0 -P 1 # %patch -p0 -P 2 @@ -87,9 +88,13 @@ %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name} %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates - cd %{V_horde_name}/config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd ../.. + cd %{V_horde_name}-h3-%{V_uver} - cp -r %{V_horde_name} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/ + cd config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd .. + + cp -r * $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/ + + cd .. %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:1} %{S:2} \ $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/config/ From cvs at kolab.org Mon Oct 1 17:47:22 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 1 Oct 2007 17:47:22 +0200 (CEST) Subject: gunnar: server/horde/horde-imp Makefile, 1.5, 1.6 horde-imp-kolab.spec, 1.14, 1.15 Message-ID: <20071001154722.54E5A602A36@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-imp In directory doto:/tmp/cvs-serv20832/horde/horde-imp Modified Files: Makefile horde-imp-kolab.spec Log Message: Moving the horde packages to the latest ALPHA release. Index: Makefile =================================================================== RCS file: /kolabrepository/server/horde/horde-imp/Makefile,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Makefile 3 Aug 2007 07:38:08 -0000 1.5 +++ Makefile 1 Oct 2007 15:47:19 -0000 1.6 @@ -19,15 +19,16 @@ DATE = ${YEAR}-${MONTH}-${DAY} PACKAGE = horde-$(HORDE_NAME)-kolab -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9._a-z]*\).*/\1/") +UVER = $(shell grep "%define[ ]*V_uver" *.spec | sed -e "s/.*V_uver\s*\([0-9.a-z-]*\).*/\1/") RELEASE = ${YEAR}${MONTH}${DAY} PATCHES = $(shell find . -name "*.patch") TEMPLATES = $(shell find . -name "*.template") CONFIGS = $(shell find . -name "*.php") -PACKAGE_0=$(HORDE_NAME)-HEAD-$(DATE).tar.gz -SOURCE_0=http://ftp.horde.org/pub/snaps/${DATE}/$(PACKAGE_0) +PACKAGE_0=$(HORDE_NAME)-h3-$(UVER).tar.gz +SOURCE_0=http://ftp.horde.org/pub/$(HORDE_NAME)/$(PACKAGE_0) .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm Index: horde-imp-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-imp/horde-imp-kolab.spec,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- horde-imp-kolab.spec 13 Sep 2007 13:43:54 -0000 1.14 +++ horde-imp-kolab.spec 1 Oct 2007 15:47:19 -0000 1.15 @@ -2,9 +2,10 @@ %define V_horde_name imp %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 -%define V_month 09 -%define V_day 12 -%define V_version 4.1.4.99 +%define V_month 10 +%define V_day 01 +%define V_version 4.2_alpha +%define V_uver 4.2-alpha %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -21,7 +22,7 @@ Distribution: OpenPKG # List of Sources -Source0: http://ftp.horde.org/pub/snaps/%{V_date}/%{V_horde_name}-HEAD-%{V_date}.tar.gz +Source0: http://ftp.horde.org/pub/%{V_horde_name}/%{V_horde_name}-h3-%{V_uver}.tar.gz Source1: conf.php Source2: servers.php @@ -46,7 +47,7 @@ IMP is the Internet Messaging Program. %prep - %setup -c -q + %setup -c -q -n %{V_horde_name}-h3-%{V_uver} %build @@ -54,9 +55,13 @@ %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name} %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates - cd %{V_horde_name}/config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd ../.. + cd %{V_horde_name}-h3-%{V_uver} - cp -r %{V_horde_name} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/ + cd config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd .. + + cp -r * $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/ + + cd .. %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:1} %{S:2} \ $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/config/ From cvs at kolab.org Mon Oct 1 17:47:22 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 1 Oct 2007 17:47:22 +0200 (CEST) Subject: gunnar: server/horde/horde-passwd Makefile, 1.5, 1.6 horde-passwd-kolab.spec, 1.14, 1.15 Message-ID: <20071001154722.2D42A602A51@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-passwd In directory doto:/tmp/cvs-serv20832/horde/horde-passwd Modified Files: Makefile horde-passwd-kolab.spec Log Message: Moving the horde packages to the latest ALPHA release. Index: Makefile =================================================================== RCS file: /kolabrepository/server/horde/horde-passwd/Makefile,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Makefile 3 Aug 2007 07:38:08 -0000 1.5 +++ Makefile 1 Oct 2007 15:47:19 -0000 1.6 @@ -19,15 +19,16 @@ DATE = ${YEAR}-${MONTH}-${DAY} PACKAGE = horde-$(HORDE_NAME)-kolab -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9._a-z]*\).*/\1/") +UVER = $(shell grep "%define[ ]*V_uver" *.spec | sed -e "s/.*V_uver\s*\([0-9.a-z-]*\).*/\1/") RELEASE = ${YEAR}${MONTH}${DAY} PATCHES = $(shell find . -name "*.patch") TEMPLATES = $(shell find . -name "*.template") CONFIGS = $(shell find . -name "*.php") -PACKAGE_0=$(HORDE_NAME)-HEAD-$(DATE).tar.gz -SOURCE_0=http://ftp.horde.org/pub/snaps/${DATE}/$(PACKAGE_0) +PACKAGE_0=$(HORDE_NAME)-h3-$(UVER).tar.gz +SOURCE_0=http://ftp.horde.org/pub/$(HORDE_NAME)/$(PACKAGE_0) .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm Index: horde-passwd-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-passwd/horde-passwd-kolab.spec,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- horde-passwd-kolab.spec 13 Sep 2007 13:43:54 -0000 1.14 +++ horde-passwd-kolab.spec 1 Oct 2007 15:47:19 -0000 1.15 @@ -2,9 +2,10 @@ %define V_horde_name passwd %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 -%define V_month 09 -%define V_day 12 -%define V_version 3.0.1.99 +%define V_month 10 +%define V_day 01 +%define V_version 3.0.1 +%define V_uver 3.0.1 %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -21,7 +22,7 @@ Distribution: OpenPKG # List of Sources -Source0: http://ftp.horde.org/pub/snaps/%{V_date}/%{V_horde_name}-HEAD-%{V_date}.tar.gz +Source0: http://ftp.horde.org/pub/%{V_horde_name}/%{V_horde_name}-h3-%{V_uver}.tar.gz Source1: conf.php Source2: backends.php @@ -49,7 +50,7 @@ VMailMgr, vpopmail, and SQL passwords. %prep - %setup -c -q + %setup -c -q -n %{V_horde_name}-h3-%{V_uver} %build @@ -57,9 +58,13 @@ %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name} %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates - cd %{V_horde_name}/config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd ../.. + cd %{V_horde_name}-h3-%{V_uver} - cp -r %{V_horde_name} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/ + cd config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd .. + + cp -r * $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/ + + cd .. %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:1} %{S:2} \ $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/config/ From cvs at kolab.org Mon Oct 1 17:47:22 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 1 Oct 2007 17:47:22 +0200 (CEST) Subject: gunnar: server/horde/horde-kronolith Makefile, 1.5, 1.6 horde-kronolith-kolab.spec, 1.14, 1.15 Message-ID: <20071001154722.1DB6E602A59@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-kronolith In directory doto:/tmp/cvs-serv20832/horde/horde-kronolith Modified Files: Makefile horde-kronolith-kolab.spec Log Message: Moving the horde packages to the latest ALPHA release. Index: Makefile =================================================================== RCS file: /kolabrepository/server/horde/horde-kronolith/Makefile,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Makefile 3 Aug 2007 07:38:08 -0000 1.5 +++ Makefile 1 Oct 2007 15:47:19 -0000 1.6 @@ -19,15 +19,16 @@ DATE = ${YEAR}-${MONTH}-${DAY} PACKAGE = horde-$(HORDE_NAME)-kolab -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9._a-z]*\).*/\1/") +UVER = $(shell grep "%define[ ]*V_uver" *.spec | sed -e "s/.*V_uver\s*\([0-9.a-z-]*\).*/\1/") RELEASE = ${YEAR}${MONTH}${DAY} PATCHES = $(shell find . -name "*.patch") TEMPLATES = $(shell find . -name "*.template") CONFIGS = $(shell find . -name "*.php") -PACKAGE_0=$(HORDE_NAME)-HEAD-$(DATE).tar.gz -SOURCE_0=http://ftp.horde.org/pub/snaps/${DATE}/$(PACKAGE_0) +PACKAGE_0=$(HORDE_NAME)-h3-$(UVER).tar.gz +SOURCE_0=http://ftp.horde.org/pub/$(HORDE_NAME)/$(PACKAGE_0) .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm Index: horde-kronolith-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-kronolith/horde-kronolith-kolab.spec,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- horde-kronolith-kolab.spec 13 Sep 2007 13:43:54 -0000 1.14 +++ horde-kronolith-kolab.spec 1 Oct 2007 15:47:19 -0000 1.15 @@ -2,9 +2,10 @@ %define V_horde_name kronolith %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 -%define V_month 09 -%define V_day 12 -%define V_version 2.1.5.99 +%define V_month 10 +%define V_day 01 +%define V_version 2.2_alpha +%define V_uver 2.2-alpha %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -21,7 +22,7 @@ Distribution: OpenPKG # List of Sources -Source0: http://ftp.horde.org/pub/snaps/%{V_date}/%{V_horde_name}-HEAD-%{V_date}.tar.gz +Source0: http://ftp.horde.org/pub/%{V_horde_name}/%{V_horde_name}-h3-%{V_uver}.tar.gz Source1: horde-kronolith-kolab-conf.template Source2: conf.php @@ -50,7 +51,7 @@ of the Horde Framework to provide integration with other applications. %prep - %setup -c -q + %setup -c -q -n %{V_horde_name}-h3-%{V_uver} %build @@ -58,9 +59,13 @@ %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name} %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates - cd %{V_horde_name}/config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd ../.. + cd %{V_horde_name}-h3-%{V_uver} - cp -r %{V_horde_name} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/ + cd config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd .. + + cp -r * $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/ + + cd .. %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:1} \ $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates From cvs at kolab.org Mon Oct 1 17:47:22 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 1 Oct 2007 17:47:22 +0200 (CEST) Subject: gunnar: server/horde/horde-mnemo Makefile, 1.5, 1.6 horde-mnemo-kolab.spec, 1.15, 1.16 Message-ID: <20071001154722.22B48602A3C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-mnemo In directory doto:/tmp/cvs-serv20832/horde/horde-mnemo Modified Files: Makefile horde-mnemo-kolab.spec Log Message: Moving the horde packages to the latest ALPHA release. Index: Makefile =================================================================== RCS file: /kolabrepository/server/horde/horde-mnemo/Makefile,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Makefile 3 Aug 2007 07:38:08 -0000 1.5 +++ Makefile 1 Oct 2007 15:47:19 -0000 1.6 @@ -19,15 +19,16 @@ DATE = ${YEAR}-${MONTH}-${DAY} PACKAGE = horde-$(HORDE_NAME)-kolab -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9._a-z]*\).*/\1/") +UVER = $(shell grep "%define[ ]*V_uver" *.spec | sed -e "s/.*V_uver\s*\([0-9.a-z-]*\).*/\1/") RELEASE = ${YEAR}${MONTH}${DAY} PATCHES = $(shell find . -name "*.patch") TEMPLATES = $(shell find . -name "*.template") CONFIGS = $(shell find . -name "*.php") -PACKAGE_0=$(HORDE_NAME)-HEAD-$(DATE).tar.gz -SOURCE_0=http://ftp.horde.org/pub/snaps/${DATE}/$(PACKAGE_0) +PACKAGE_0=$(HORDE_NAME)-h3-$(UVER).tar.gz +SOURCE_0=http://ftp.horde.org/pub/$(HORDE_NAME)/$(PACKAGE_0) .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm Index: horde-mnemo-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-mnemo/horde-mnemo-kolab.spec,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- horde-mnemo-kolab.spec 13 Sep 2007 14:01:01 -0000 1.15 +++ horde-mnemo-kolab.spec 1 Oct 2007 15:47:19 -0000 1.16 @@ -2,9 +2,10 @@ %define V_horde_name mnemo %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 -%define V_month 09 -%define V_day 12 -%define V_version 2.1.1.99 +%define V_month 10 +%define V_day 01 +%define V_version 2.2_alpha +%define V_uver 2.2-alpha %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -21,7 +22,7 @@ Distribution: OpenPKG # List of Sources -Source0: http://ftp.horde.org/pub/snaps/%{V_date}/%{V_horde_name}-HEAD-%{V_date}.tar.gz +Source0: http://ftp.horde.org/pub/%{V_horde_name}/%{V_horde_name}-h3-%{V_uver}.tar.gz Source1: conf.php # Build Info @@ -44,7 +45,7 @@ functionality to the Palm Memo application. %prep - %setup -c -q + %setup -c -q -n %{V_horde_name}-h3-%{V_uver} %build @@ -52,9 +53,13 @@ %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name} %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates - cd %{V_horde_name}/config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd ../.. + cd %{V_horde_name}-h3-%{V_uver} - cp -r %{V_horde_name} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/ + cd config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd .. + + cp -r * $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/ + + cd .. %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:1} \ $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/config/ From cvs at kolab.org Mon Oct 1 17:47:22 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 1 Oct 2007 17:47:22 +0200 (CEST) Subject: gunnar: server/horde/horde-framework Makefile, 1.8, 1.9 horde-framework-kolab.spec, 1.20, 1.21 Message-ID: <20071001154722.146C0602A36@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-framework In directory doto:/tmp/cvs-serv20832/horde/horde-framework Modified Files: Makefile horde-framework-kolab.spec Log Message: Moving the horde packages to the latest ALPHA release. Index: Makefile =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/Makefile,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- Makefile 3 Aug 2007 11:40:04 -0000 1.8 +++ Makefile 1 Oct 2007 15:47:19 -0000 1.9 @@ -19,15 +19,15 @@ DATE = ${YEAR}-${MONTH}-${DAY} PACKAGE = horde-$(HORDE_NAME)-kolab -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9._A-Z]*\).*/\1/") RELEASE = ${YEAR}${MONTH}${DAY} PATCHES = $(shell find . -name "*.patch") TEMPLATES = $(shell find . -name "*.template") CONFIGS = $(shell find . -name "*.php") -PACKAGE_0=$(HORDE_NAME)-HEAD-$(DATE).tar.gz -SOURCE_0=http://ftp.horde.org/pub/snaps/${DATE}/$(PACKAGE_0) +PACKAGE_0=horde-$(HORDE_NAME)-$(VERSION).tar.bz2 +SOURCE_0=http://build.pardus.de/downloads/$(PACKAGE_0) .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm Index: horde-framework-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/horde-framework-kolab.spec,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- horde-framework-kolab.spec 13 Sep 2007 13:50:55 -0000 1.20 +++ horde-framework-kolab.spec 1 Oct 2007 15:47:19 -0000 1.21 @@ -2,9 +2,9 @@ %define V_horde_name framework %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 -%define V_month 09 -%define V_day 12 -%define V_version 3.1.4.99 +%define V_month 10 +%define V_day 01 +%define V_version 3.2_ALPHA %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -20,17 +20,13 @@ Distribution: OpenPKG # List of Sources -Source0: http://ftp.horde.org/pub/snaps/%{V_date}/%{V_horde_name}-HEAD-%{V_date}.tar.gz -################################################## -# PATCH COMMENT -# -# Necessary to allow Ingo store the filters -# based on the preference driver. Ingo needs -# to get fixed to be able to remove this patch. -# See Horde bug #5117 -# http://bugs.horde.org/ticket/?id=5117 -Patch0: Prefs-Prefs-kolab.php.patch +# While we download from a non-horde site again this package provides a plain +# CVS checkout from horde cvs, tagget with HORDE_3.2_ALPHA. Horde sadly does not +# provide such packages +Source0: http://build.pardus.de/downloads/horde-%{V_horde_name}-%{V_version}.tar.bz2 + +Patch0: HK-GW-Fix_Prefs_for_Ingo.patch # Build Info Prefix: %{l_prefix} @@ -51,7 +47,7 @@ %prep %setup -n framework - %patch -p0 -P 0 + %patch -p2 -P 0 %build From cvs at kolab.org Mon Oct 1 17:47:22 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 1 Oct 2007 17:47:22 +0200 (CEST) Subject: gunnar: server/horde/horde Makefile, 1.13, 1.14 horde-kolab.spec, 1.16, 1.17 Message-ID: <20071001154722.04AD1602A51@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde In directory doto:/tmp/cvs-serv20832/horde/horde Modified Files: Makefile horde-kolab.spec Log Message: Moving the horde packages to the latest ALPHA release. Index: Makefile =================================================================== RCS file: /kolabrepository/server/horde/horde/Makefile,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- Makefile 3 Aug 2007 07:38:08 -0000 1.13 +++ Makefile 1 Oct 2007 15:47:19 -0000 1.14 @@ -19,15 +19,16 @@ DATE = ${YEAR}-${MONTH}-${DAY} PACKAGE = $(HORDE_NAME)-kolab -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9._a-z]*\).*/\1/") +UVER = $(shell grep "%define[ ]*V_uver" *.spec | sed -e "s/.*V_uver\s*\([0-9.a-z-]*\).*/\1/") RELEASE = ${YEAR}${MONTH}${DAY} PATCHES = $(shell find . -name "*.patch") TEMPLATES = $(shell find . -name "*.template") CONFIGS = $(shell find . -name "*.php") -PACKAGE_0=$(HORDE_NAME)-HEAD-$(DATE).tar.gz -SOURCE_0=http://ftp.horde.org/pub/snaps/${DATE}/$(PACKAGE_0) +PACKAGE_0=$(HORDE_NAME)-$(UVER).tar.gz +SOURCE_0=http://ftp.horde.org/pub/$(HORDE_NAME)/$(PACKAGE_0) .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm Index: horde-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde/horde-kolab.spec,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- horde-kolab.spec 13 Sep 2007 13:43:54 -0000 1.16 +++ horde-kolab.spec 1 Oct 2007 15:47:19 -0000 1.17 @@ -2,9 +2,10 @@ %define V_horde_name horde %define V_package %{V_horde_name}-kolab %define V_year 2007 -%define V_month 09 -%define V_day 12 -%define V_version 3.1.4.99 +%define V_month 10 +%define V_day 01 +%define V_version 3.2_alpha +%define V_uver 3.2-alpha %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -21,7 +22,7 @@ Distribution: OpenPKG # List of Sources -Source0: http://ftp.horde.org/pub/snaps/%{V_date}/%{V_horde_name}-HEAD-%{V_date}.tar.gz +Source0: http://ftp.horde.org/pub/%{V_horde_name}/%{V_horde_name}-%{V_uver}.tar.gz Source1: horde-kolab-conf.template Source2: hooks.php Source3: conf.php @@ -61,7 +62,7 @@ detection, user help, and more. %prep - %setup -c -q + %setup -c -q -n %{V_horde_name}-%{V_uver} %build @@ -71,8 +72,15 @@ %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates - cd horde/config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd ../.. - cp -r horde $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www + cd %{V_horde_name}-%{V_uver} + + cd config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd .. + + rm -rf lib/{File,File.php,Horde,Horde.php,Net,SyncML,SyncML.php,Text,VFS,VFS.php,XML} + + cp -r * $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/ + + cd .. %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:1} \ $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates From cvs at kolab.org Mon Oct 1 17:47:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 1 Oct 2007 17:47:39 +0200 (CEST) Subject: gunnar: server/patches/horde - New directory Message-ID: <20071001154739.9FBE3603109@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde In directory doto:/tmp/cvs-serv20950/horde Log Message: Directory /kolabrepository/server/patches/horde added to the repository From cvs at kolab.org Mon Oct 1 17:48:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 1 Oct 2007 17:48:00 +0200 (CEST) Subject: gunnar: server/patches/horde HK-GW-framework_3.2_ALPHA-Fix_Prefs_for_Ingo.patch, NONE, 1.1 README_Fix_Prefs_for_Ingo.patch, NONE, 1.1 Message-ID: <20071001154800.C5C63602A36@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde In directory doto:/tmp/cvs-serv20974 Added Files: HK-GW-framework_3.2_ALPHA-Fix_Prefs_for_Ingo.patch README_Fix_Prefs_for_Ingo.patch Log Message: Start a horde patch directory. --- NEW FILE: HK-GW-framework_3.2_ALPHA-Fix_Prefs_for_Ingo.patch --- This patch is required if you want to use Ingo with the Kolab server. diff -r f70aff109444 framework/Prefs/Prefs/kolab.php --- a/framework/Prefs/Prefs/kolab.php Tue Sep 25 11:52:12 2007 +0200 +++ b/framework/Prefs/Prefs/kolab.php Tue Sep 25 11:53:21 2007 +0200 @@ -1,5 +1,6 @@ '3', 'basedn' => $GLOBALS['conf']['kolab']['ldap']['basedn'], 'fetchdn' => true, + 'username' => Auth::getAuth(), + 'password' => Auth::getCredential('password'), 'searchdn' => $GLOBALS['conf']['kolab']['ldap']['phpdn'], 'searchpass' => $GLOBALS['conf']['kolab']['ldap']['phppw'], 'uid' => array('mail', 'uid')); --- NEW FILE: README_Fix_Prefs_for_Ingo.patch --- DESCRIPTION: Necessary to allow Ingo to store the mail filters based on the preference driver. This patch will never make it upstream and is just providing a Kolab specific workaround to make Ingo work at the moment. There are two possible solutions in order to fix this: 1) An alternative preferences driver that uses IMAP folders for storing client configuration data (the current Preferences driver uses LDAP). This driver has been already written but does not exist in Horde CVS yet. 2) A specific Kolab driver that stores sieve filters in an IMAP folder. Since 1) has been already implemented this will probably allow us to get rid of this patch in one of the next Horde versions. 2) nevertheless has some other interesting side effects so this might get implemented too. IMPACT: Ingo will not allow you to store sieve filters without this patch. REFERENCES: Horde bug: http://bugs.horde.org/ticket/?id=5117 Wiki page: http://wiki.kolab.org/index.php/Template:Patches_horde Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary HISTORY Submitted upstream and upstream rejected, explaining the problem with this patch. From cvs at kolab.org Tue Oct 2 15:18:03 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 2 Oct 2007 15:18:03 +0200 (CEST) Subject: gunnar: server/horde/horde-framework HK-GW-Fix_Prefs_for_Ingo.patch, NONE, 1.1 Prefs-Prefs-kolab.php.patch, 1.1, NONE Message-ID: <20071002131803.7231F602A2D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-framework In directory doto:/tmp/cvs-serv17195 Added Files: HK-GW-Fix_Prefs_for_Ingo.patch Removed Files: Prefs-Prefs-kolab.php.patch Log Message: Renamed patch. --- NEW FILE: HK-GW-Fix_Prefs_for_Ingo.patch --- This patch is required if you want to use Ingo with the Kolab server. diff -r f70aff109444 framework/Prefs/Prefs/kolab.php --- a/framework/Prefs/Prefs/kolab.php Tue Sep 25 11:52:12 2007 +0200 +++ b/framework/Prefs/Prefs/kolab.php Tue Sep 25 11:53:21 2007 +0200 @@ -1,5 +1,6 @@ '3', 'basedn' => $GLOBALS['conf']['kolab']['ldap']['basedn'], 'fetchdn' => true, + 'username' => Auth::getAuth(), + 'password' => Auth::getCredential('password'), 'searchdn' => $GLOBALS['conf']['kolab']['ldap']['phpdn'], 'searchpass' => $GLOBALS['conf']['kolab']['ldap']['phppw'], 'uid' => array('mail', 'uid')); --- Prefs-Prefs-kolab.php.patch DELETED --- From cvs at kolab.org Tue Oct 2 16:21:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 2 Oct 2007 16:21:36 +0200 (CEST) Subject: gunnar: server/horde/horde-framework HK-GW-Fix_the_share_params.patch, NONE, 1.1 horde-framework-kolab.spec, 1.21, 1.22 Message-ID: <20071002142136.47DB1602A30@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-framework In directory doto:/tmp/cvs-serv6110/horde/horde-framework Modified Files: horde-framework-kolab.spec Added Files: HK-GW-Fix_the_share_params.patch Log Message: Adding the necessary turba and mnemo fixes for the next beta release. --- NEW FILE: HK-GW-Fix_the_share_params.patch --- Fixes the params array now used in turba. diff -r e60357d4352e framework/Share/Share/kolab.php --- a/framework/Share/Share/kolab.php Tue Oct 02 10:28:53 2007 +0200 +++ b/framework/Share/Share/kolab.php Tue Oct 02 11:47:54 2007 +0200 @@ -1036,7 +1036,9 @@ class ImapObject_Share { case 'params': $params = $this->getAttribute('params'); if (is_a($params, 'PEAR_Error') || $params == '') { - $params = serialize(array('source' => 'kolab')); + $params = serialize(array('source' => 'kolab', + 'default' => $this->get('default'), + 'name' => $this->get('name'))); } $this->data['params'] = $params; break; @@ -1080,6 +1082,13 @@ class ImapObject_Share { } $this->data['folder'] = String::convertCharset($value, NLS::getCharset(), 'UTF7-IMAP'); $this->data['name'] = $this->getTitle($this->data['folder']); + break; + + case 'params': + $value = unserialize($value); + if (isset($value['default'])) { + $this->data['default'] = $value['default']; + } break; default: Index: horde-framework-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/horde-framework-kolab.spec,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- horde-framework-kolab.spec 1 Oct 2007 15:47:19 -0000 1.21 +++ horde-framework-kolab.spec 2 Oct 2007 14:21:33 -0000 1.22 @@ -3,7 +3,7 @@ %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 %define V_month 10 -%define V_day 01 +%define V_day 02 %define V_version 3.2_ALPHA %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -27,6 +27,7 @@ Source0: http://build.pardus.de/downloads/horde-%{V_horde_name}-%{V_version}.tar.bz2 Patch0: HK-GW-Fix_Prefs_for_Ingo.patch +Patch1: HK-GW-Fix_the_share_params.patch # Build Info Prefix: %{l_prefix} @@ -48,6 +49,7 @@ %prep %setup -n framework %patch -p2 -P 0 + %patch -p2 -P 1 %build From cvs at kolab.org Tue Oct 2 16:21:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 2 Oct 2007 16:21:36 +0200 (CEST) Subject: gunnar: server/horde/horde-kolab-client horde-kolab-client.spec, 1.10, 1.11 Message-ID: <20071002142136.495BF602A32@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-kolab-client In directory doto:/tmp/cvs-serv6110/horde/horde-kolab-client Modified Files: horde-kolab-client.spec Log Message: Adding the necessary turba and mnemo fixes for the next beta release. Index: horde-kolab-client.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-kolab-client/horde-kolab-client.spec,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- horde-kolab-client.spec 1 Oct 2007 15:47:19 -0000 1.10 +++ horde-kolab-client.spec 2 Oct 2007 14:21:34 -0000 1.11 @@ -2,7 +2,7 @@ %define V_package horde-kolab-client %define V_year 2007 %define V_month 10 -%define V_day 01 +%define V_day 02 %define V_version 0.99 %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} From cvs at kolab.org Tue Oct 2 16:21:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 2 Oct 2007 16:21:36 +0200 (CEST) Subject: gunnar: server/patches/horde HK-GW-framework_3.2_ALPHA-Fix_the_share_params.patch, NONE, 1.1 HK-GW-mnemo_2.2_ALPHA-Edit_share_rights.patch, NONE, 1.1 HK-GW-turba_2.2-Changes_after_ALPHA.patch, NONE, 1.1 HK-GW-turba_2.2-Fix_address_book_deletion_1.patch, NONE, 1.1 HK-GW-turba_2.2-Fix_editing_contacts.patch, NONE, 1.1 HK-GW-turba_2.2-Fix_notice_on_addressbook_creation.patch, NONE, 1.1 HK-GW-turba_2.2-Fix_share_id_change.patch, NONE, 1.1 HK-GW-turba_2.2-Ldap_read_only_fix.patch, NONE, 1.1 README_Changes_after_ALPHA.patch, NONE, 1.1 README_Edit_share_rights.patch, NONE, 1.1 README_Fix_address_book_deletion_1.patch, NONE, 1.1 README_Fix_editing_contacts.patch, NONE, 1.1 README_Fix_notice_on_addressbook_creation.patch, NONE, 1.1 README_Fix_share_id_change.patch, NONE, 1.1 README_Fix_the_share_params.patch, NONE, 1.1 README_Ldap_read_only_fix.patch, NONE, 1.1 Message-ID: <20071002142136.5500A602A51@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde In directory doto:/tmp/cvs-serv6110/patches/horde Added Files: HK-GW-framework_3.2_ALPHA-Fix_the_share_params.patch HK-GW-mnemo_2.2_ALPHA-Edit_share_rights.patch HK-GW-turba_2.2-Changes_after_ALPHA.patch HK-GW-turba_2.2-Fix_address_book_deletion_1.patch HK-GW-turba_2.2-Fix_editing_contacts.patch HK-GW-turba_2.2-Fix_notice_on_addressbook_creation.patch HK-GW-turba_2.2-Fix_share_id_change.patch HK-GW-turba_2.2-Ldap_read_only_fix.patch README_Changes_after_ALPHA.patch README_Edit_share_rights.patch README_Fix_address_book_deletion_1.patch README_Fix_editing_contacts.patch README_Fix_notice_on_addressbook_creation.patch README_Fix_share_id_change.patch README_Fix_the_share_params.patch README_Ldap_read_only_fix.patch Log Message: Adding the necessary turba and mnemo fixes for the next beta release. --- NEW FILE: HK-GW-framework_3.2_ALPHA-Fix_the_share_params.patch --- Fixes the params array now used in turba. diff -r e60357d4352e framework/Share/Share/kolab.php --- a/framework/Share/Share/kolab.php Tue Oct 02 10:28:53 2007 +0200 +++ b/framework/Share/Share/kolab.php Tue Oct 02 11:47:54 2007 +0200 @@ -1036,7 +1036,9 @@ class ImapObject_Share { case 'params': $params = $this->getAttribute('params'); if (is_a($params, 'PEAR_Error') || $params == '') { - $params = serialize(array('source' => 'kolab')); + $params = serialize(array('source' => 'kolab', + 'default' => $this->get('default'), + 'name' => $this->get('name'))); } $this->data['params'] = $params; break; @@ -1080,6 +1082,13 @@ class ImapObject_Share { } $this->data['folder'] = String::convertCharset($value, NLS::getCharset(), 'UTF7-IMAP'); $this->data['name'] = $this->getTitle($this->data['folder']); + break; + + case 'params': + $value = unserialize($value); + if (isset($value['default'])) { + $this->data['default'] = $value['default']; + } break; default: --- NEW FILE: HK-GW-mnemo_2.2_ALPHA-Edit_share_rights.patch --- Allow to edit Kolab share rights for the notepads displayed by mnemo. diff -r 2318390b621a mnemo/templates/notepads/notepads.inc --- a/mnemo/templates/notepads/notepads.inc Tue Sep 25 11:50:19 2007 +0200 +++ b/mnemo/templates/notepads/notepads.inc Tue Sep 25 11:52:12 2007 +0200 @@ -53,7 +53,7 @@ function updateForm(share)



-" style="display:none" /> +" style="display:none" />

--- NEW FILE: HK-GW-turba_2.2-Changes_after_ALPHA.patch --- Some necessary fixes for Turba from CVS. diff -r 0ca2d81b250b turba/addressbooks.php --- a/turba/addressbooks.php Tue Oct 02 15:05:12 2007 +0200 +++ b/turba/addressbooks.php Tue Oct 02 15:12:26 2007 +0200 @@ -4,7 +4,7 @@ * * Copyright 2005-2007 The Horde Project (http://www.horde.org/) * - * $Horde: turba/addressbooks.php,v 1.32 2007/08/01 10:43:29 jan Exp $ + * $Horde: turba/addressbooks.php,v 1.33 2007/08/16 17:35:26 mrubinsk Exp $ * * See the enclosed file LICENSE for license information (ASL). If you did * did not receive this file, see http://www.horde.org/licenses/asl.php. @@ -102,7 +102,6 @@ case 'add': $notification->push(sprintf(_("There was an error creating this address book: %s"), $share->getMessage()), 'horde.error'); } else { $notification->push(sprintf(_("The address book \"%s\" was created successfully."), $share->get('name')), 'horde.success'); - Turba::addSourceFromShare($share); } header('Location: ' . Horde::applicationUrl('addressbooks.php', true)); diff -r 0ca2d81b250b turba/lib/Driver/kolab.php --- a/turba/lib/Driver/kolab.php Tue Oct 02 15:05:12 2007 +0200 +++ b/turba/lib/Driver/kolab.php Tue Oct 02 15:12:26 2007 +0200 @@ -2,7 +2,7 @@ /** * @package Turba * - * $Horde: turba/lib/Driver/kolab.php,v 1.27 2007/06/19 09:50:30 wrobel Exp $ + * $Horde: turba/lib/Driver/kolab.php,v 1.28 2007/09/19 07:43:19 wrobel Exp $ */ /** Kolab support class. */ @@ -151,12 +151,36 @@ class Turba_Driver_kolab extends Turba_D } } + /** + * Creates a new Horde_Share + * + * @param array The params for the share. + * + * @return mixed The share object or PEAR_Error. + * @since Turba 2.2 + */ + function &createShare($share_id, $params) + { + if (isset($params['params']['default']) && $params['params']['default'] === true) { + $share_id = Auth::getAuth(); + } + + $result = &Turba::createShare($share_id, $params); + return $result; + } + + function checkDefaultShare(&$share, $srcConfig) + { + $params = @unserialize($share->get('params')); + return $params['default']; + } + } /** * Horde Turba wrapper to distinguish between both Kolab driver implementations. * - * $Horde: turba/lib/Driver/kolab.php,v 1.27 2007/06/19 09:50:30 wrobel Exp $ + * $Horde: turba/lib/Driver/kolab.php,v 1.28 2007/09/19 07:43:19 wrobel Exp $ * * Copyright 2004-2007 The Horde Project (http://www.horde.org/) * diff -r 0ca2d81b250b turba/lib/Turba.php --- a/turba/lib/Turba.php Tue Oct 02 15:05:12 2007 +0200 +++ b/turba/lib/Turba.php Tue Oct 02 15:12:26 2007 +0200 @@ -1,6 +1,6 @@ getName(); - if (!isset($GLOBALS['cfgSources'][$name])) { - list($source, $user) = explode(':', $name, 2); - if ($user != Auth::getAuth()) { - $newSrc = $GLOBALS['cfgSources'][$source]; - unset($newSrc['use_shares']); - $newSrc['title'] = $share->get('name'); - $GLOBALS['cfgSources'][$name] = $newSrc; - } - } + function getSourceFromShare(&$share) + { + // Require a fresh config file. + require TURBA_BASE . '/config/sources.php'; + + $params = @unserialize($share->get('params')); + $newConfig = $cfgSources[$params['source']]; + $newConfig['params']['config'] = $cfgSources[$params['source']]; + $newConfig['params']['config']['params']['share'] = &$share; + $newConfig['params']['config']['params']['name'] = $params['name']; + $newConfig['title'] = $share->get('name'); + $newConfig['type'] = 'share'; + $newConfig['use_shares'] = false; + + return $newConfig; } /** @@ -616,10 +617,13 @@ class Turba { // Kinda hackish way of indicating what tasks need to run, until // a more general mechanism is available. - $needed_tasks = array('upgradeprefs'); + $needed_tasks = array('upgradeprefs', 'upgradelists'); $successful = array(); $existing = @unserialize($GLOBALS['prefs']->getValue('turba_maintenance_tasks')); + if (empty($existing)) { + $existing = array(); + } foreach ($needed_tasks as $taskname) { if (array_search($taskname, $existing) === false) { include dirname(__file__) . '/Maintenance/Task/' . basename($taskname) . '.php'; diff -r 0ca2d81b250b turba/lib/api.php --- a/turba/lib/api.php Tue Oct 02 15:05:12 2007 +0200 +++ b/turba/lib/api.php Tue Oct 02 15:12:26 2007 +0200 @@ -2,7 +2,7 @@ /** * Turba external API interface. * - * $Horde: turba/lib/api.php,v 1.214 2007/08/02 04:37:18 chuck Exp $ + * $Horde: turba/lib/api.php,v 1.219 2007/08/29 12:13:30 jan Exp $ * * This file defines Turba's external API interface. Other applications can * interact with Turba through this API. @@ -180,18 +180,34 @@ function _turba_removeUserData($user) /* We need a clean copy of the $cfgSources array here.*/ require TURBA_BASE . '/config/sources.php'; - $hasError = false; - $sourceKeys = array_keys($cfgSources); - foreach ($sourceKeys as $sourceKey) { - $driver = &Turba_Driver::singleton($sourceKey); - if (is_a($driver, 'PEAR_Error')) { + $shares = null; + + foreach ($cfgSources as $source) { + if (empty($source['use_shares'])) { + // Shares not enabled for this source + $driver = &Turba_Driver::singleton($source); + if (is_a($driver, 'PEAR_Error')) { + $hasError = true; + } else { + $result = $driver->removeUserData($user); + if (is_a($result, 'PEAR_Error')) { + $hasError = true; + } + } + } + } + + $shares = &$GLOBALS['turba_shares']->listShares($user, + PERMS_EDIT, + $user); + foreach ($shares as $share) { + $params = @unserialize($share->get('params')); + $config = Turba::getSourceFromShare($share); + $driver = &Turba_Driver::singleton($config); + $result = $driver->removeUserData($user); + if (is_a($result, 'PEAR_Error')) { $hasError = true; - } else { - $result = $driver->removeUserData($user); - if (is_a($result, 'PEAR_Error')) { - $hasError = true; - } } } @@ -918,6 +934,10 @@ function _turba_search($names = array(), return array(); } + if (!is_array($names)) { + $names = is_null($names) ? array() : array($names); + } + if (!count($sources)) { $sources = array(key($cfgSources)); } @@ -934,7 +954,8 @@ function _turba_search($names = array(), } // Skip sources that aren't browseable if the search is empty. - if (!count($names) && empty($cfgSources[$source]['browse'])) { + if (empty($cfgSources[$source]['browse']) + && (!count($names) || (count($names) == 1 && empty($names[0])))) { continue; } @@ -1024,6 +1045,7 @@ function _turba_search($names = array(), $listatt = $ob->getAttributes(); $seeninlist = array(); $members = $ob->listMembers(); + $listName = $ob->getValue('name'); if (is_a($members, 'Turba_List')) { if ($members->count() > 0) { if (!isset($results[$name])) { @@ -1032,7 +1054,8 @@ function _turba_search($names = array(), $emails = array(); while ($ob = $members->next()) { $att = $ob->getAttributes(); - foreach ($att as $key => $value) { + foreach (array_keys($att) as $key) { + $value = $ob->getValue($key); if (!empty($value) && isset($attributes[$key]) && $attributes[$key]['type'] == 'email' && empty($seeninlist[trim(String::lower($att['name'])) . trim(String::lower($value))])) { @@ -1042,7 +1065,7 @@ function _turba_search($names = array(), } } } - $results[$name][] = array('name' => $listatt['name'], 'email' => implode(', ', $emails), 'id' => $listatt['__key'], 'source' => $source); + $results[$name][] = array('name' => $listName, 'email' => implode(', ', $emails), 'id' => $listatt['__key'], 'source' => $source); } } } diff -r 0ca2d81b250b turba/templates/addressbooks.inc --- a/turba/templates/addressbooks.inc Tue Oct 02 15:05:12 2007 +0200 +++ b/turba/templates/addressbooks.inc Tue Oct 02 15:12:26 2007 +0200 @@ -120,7 +120,7 @@ function verifyDelete() - " /> + " /> --- NEW FILE: HK-GW-turba_2.2-Fix_address_book_deletion_1.patch --- Fixes address book deletion. diff -r 8e461aedd317 turba/lib/Driver/kolab.php --- a/turba/lib/Driver/kolab.php Tue Oct 02 09:24:16 2007 +0200 +++ b/turba/lib/Driver/kolab.php Tue Oct 02 09:30:45 2007 +0200 @@ -892,11 +892,6 @@ class Turba_Driver_kolab_wrapper_new ext return $result; } - if ($sourceName != null) { - Horde::logMessage('deleteAll only working for current share. Called for $sourceName', __FILE__, __LINE__, PEAR_LOG_ERR); - return PEAR::raiseError(sprintf(_("Cannot delete all address book entries for %s"), $sourceName)); - } - return $this->_store->deleteAll(); } --- NEW FILE: HK-GW-turba_2.2-Fix_editing_contacts.patch --- Fixes editing contacts. diff -r de15e2f26408 turba/lib/Driver/share.php --- a/turba/lib/Driver/share.php Tue Oct 02 12:25:42 2007 +0200 +++ b/turba/lib/Driver/share.php Tue Oct 02 12:38:50 2007 +0200 @@ -58,7 +58,7 @@ class Turba_Driver_share extends Turba_D */ function getName() { - $share_parts = explode(':', $this->_share->getName()); + $share_parts = explode(':', $this->_share->getId()); return array_pop($share_parts); } --- NEW FILE: HK-GW-turba_2.2-Fix_notice_on_addressbook_creation.patch --- Fixes a notice when creating a new share. diff -r 6da2fcb4e060 turba/lib/Driver/kolab.php --- a/turba/lib/Driver/kolab.php Tue Oct 02 07:47:47 2007 +0200 +++ b/turba/lib/Driver/kolab.php Tue Oct 02 08:18:26 2007 +0200 @@ -222,7 +222,7 @@ class Turba_Driver_kolab_wrapper { */ function Turba_Driver_kolab_wrapper($addressbook, &$kolab) { - if ($addressbook[0] == '_') { + if ($addressbook && $addressbook[0] == '_') { $addressbook = substr($addressbook, 1); } $this->_addressbook = $addressbook; --- NEW FILE: HK-GW-turba_2.2-Fix_share_id_change.patch --- This fixes a problem with the way the Kolab share driver handles ids. diff -r dd05e667699d turba/lib/Turba.php --- a/turba/lib/Turba.php Tue Oct 02 06:47:29 2007 +0200 +++ b/turba/lib/Turba.php Tue Oct 02 06:55:13 2007 +0200 @@ -439,7 +439,7 @@ class Turba { $source_config = $sources[$source]; $source_config['params']['share'] = &$share; - $sources[$sourceKey] = $source_config; + $sources[$share->getId()] = $source_config; } else { $notification->push($driver, 'horde.error'); } @@ -564,7 +564,7 @@ class Turba { /* Add the new addressbook to the user's list of visible * address books. */ $prefs = explode("\n", $GLOBALS['prefs']->getValue('addressbooks')); - if (array_search($share_id, $prefs) === false) { + if (array_search($share->getId(), $prefs) === false) { $GLOBALS['prefs']->setValue('addressbooks', $GLOBALS['prefs']->getValue('addressbooks') . "\n" . $share_id); } return $share; --- NEW FILE: HK-GW-turba_2.2-Ldap_read_only_fix.patch --- This is a temporary fix to mark the ldap addressbook as read-only. This should be solved with the Horde Perms package but this needs a new driver. diff -r b7be146cb26a turba/lib/Driver/ldap.php --- a/turba/lib/Driver/ldap.php Tue Oct 02 07:18:36 2007 +0200 +++ b/turba/lib/Driver/ldap.php Tue Oct 02 07:19:20 2007 +0200 @@ -53,6 +53,9 @@ class Turba_Driver_ldap extends Turba_Dr } if (empty($params['deref'])) { $params['deref'] = LDAP_DEREF_NEVER; + } + if (empty($params['read_only'])) { + $params['read_only'] = false; } parent::Turba_Driver($params); @@ -749,4 +752,25 @@ class Turba_Driver_ldap extends Turba_Dr return $dn; } + /** + * Checks if the current user has the requested permission + * on this source. + * + * @param integer $perm The permission to check for. + * + * @return boolean true if user has permission, false otherwise. + */ + function hasPermission($perm) + { + if ($this->_params['read_only'] === false) { + return parent::hasPermission($perm); + } else { + switch ($perm) { + case PERMS_EDIT: return false; + case PERMS_DELETE: return false; + default: return parent::hasPermission($perm); + } + } + } + } --- NEW FILE: README_Changes_after_ALPHA.patch --- DESCRIPTION: These are CVS changes that ocurred in Turba after the ALPHA release and are relevant to the share system. IMPACT: Turba will fail to work without this patch. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary HISTORY Applied upstream. --- NEW FILE: README_Edit_share_rights.patch --- DESCRIPTION: Allows editing share rights for shares other than the default share. This is a fix that has already been applied upstream but is still missing from the ALPHA release. This will become obsolete with the next Horde release. IMPACT: Mnemo will not allow you to edit share rights without this. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary HISTORY Applied upstream. --- NEW FILE: README_Fix_address_book_deletion_1.patch --- DESCRIPTION: Minor fix to correct deletion of shared addressbooks. IMPACT: Probably none. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary HISTORY Applied upstream. --- NEW FILE: README_Fix_editing_contacts.patch --- DESCRIPTION: Fixes an issue with some links to the contact editing page. IMPACT: Turba will not allow you to edit some contacts. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary HISTORY Horde issue # 5763 --- NEW FILE: README_Fix_notice_on_addressbook_creation.patch --- DESCRIPTION: Removes a PHP notice when you edit an addressbook. IMPACT: Removes the notice. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary HISTORY Applied upstream. --- NEW FILE: README_Fix_share_id_change.patch --- DESCRIPTION: Kolab shares currently have a problematic way of handling share ids. This is a workaround in Turba to fix the problem. IMPACT: Turba will behave strange when you create new shares. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary HISTORY Horde issue # 5762 --- NEW FILE: README_Fix_the_share_params.patch --- DESCRIPTION: Fixes the way Turba now handles share parameters. IMPACT: Turba will not allow you to edit shares without this. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary HISTORY Applied upstream. --- NEW FILE: README_Ldap_read_only_fix.patch --- DESCRIPTION: Marks the LDAP addressbook as read only. IMPACT: Turba will pretend to allow you to write to the global addresses which will fail lif you really try to do so. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary HISTORY Is a bad patch since we currently don't have the permission system file based. From cvs at kolab.org Tue Oct 2 16:21:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 2 Oct 2007 16:21:36 +0200 (CEST) Subject: gunnar: server/horde/horde-mnemo HK-GW-Edit_share_rights.patch, NONE, 1.1 horde-mnemo-kolab.spec, 1.16, 1.17 Message-ID: <20071002142136.5BC8D602A52@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-mnemo In directory doto:/tmp/cvs-serv6110/horde/horde-mnemo Modified Files: horde-mnemo-kolab.spec Added Files: HK-GW-Edit_share_rights.patch Log Message: Adding the necessary turba and mnemo fixes for the next beta release. --- NEW FILE: HK-GW-Edit_share_rights.patch --- Allow to edit Kolab share rights for the notepads displayed by mnemo. diff -r 2318390b621a mnemo/templates/notepads/notepads.inc --- a/mnemo/templates/notepads/notepads.inc Tue Sep 25 11:50:19 2007 +0200 +++ b/mnemo/templates/notepads/notepads.inc Tue Sep 25 11:52:12 2007 +0200 @@ -53,7 +53,7 @@ function updateForm(share)



-" style="display:none" /> +" style="display:none" />

Index: horde-mnemo-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-mnemo/horde-mnemo-kolab.spec,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- horde-mnemo-kolab.spec 1 Oct 2007 15:47:19 -0000 1.16 +++ horde-mnemo-kolab.spec 2 Oct 2007 14:21:34 -0000 1.17 @@ -25,6 +25,8 @@ Source0: http://ftp.horde.org/pub/%{V_horde_name}/%{V_horde_name}-h3-%{V_uver}.tar.gz Source1: conf.php +Patch0: HK-GW-Edit_share_rights.patch + # Build Info Prefix: %{l_prefix} BuildRoot: %{l_buildroot} @@ -46,6 +48,10 @@ %prep %setup -c -q -n %{V_horde_name}-h3-%{V_uver} + + cd %{V_horde_name}-h3-%{V_uver} + %patch -p2 -P 0 + cd .. %build From cvs at kolab.org Tue Oct 2 16:21:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 2 Oct 2007 16:21:36 +0200 (CEST) Subject: gunnar: server/horde/horde-turba HK-GW-Changes_after_ALPHA.patch, NONE, 1.1 HK-GW-Fix_address_book_deletion_1.patch, NONE, 1.1 HK-GW-Fix_editing_contacts.patch, NONE, 1.1 HK-GW-Fix_notice_on_addressbook_creation.patch, NONE, 1.1 HK-GW-Fix_share_id_change.patch, NONE, 1.1 HK-GW-Ldap_read_only_fix.patch, NONE, 1.1 horde-turba-kolab.spec, 1.15, 1.16 sources.php, 1.2, 1.3 Message-ID: <20071002142136.4ED02602A3C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-turba In directory doto:/tmp/cvs-serv6110/horde/horde-turba Modified Files: horde-turba-kolab.spec sources.php Added Files: HK-GW-Changes_after_ALPHA.patch HK-GW-Fix_address_book_deletion_1.patch HK-GW-Fix_editing_contacts.patch HK-GW-Fix_notice_on_addressbook_creation.patch HK-GW-Fix_share_id_change.patch HK-GW-Ldap_read_only_fix.patch Log Message: Adding the necessary turba and mnemo fixes for the next beta release. --- NEW FILE: HK-GW-Changes_after_ALPHA.patch --- Some necessary fixes for Turba from CVS. diff -r 0ca2d81b250b turba/addressbooks.php --- a/turba/addressbooks.php Tue Oct 02 15:05:12 2007 +0200 +++ b/turba/addressbooks.php Tue Oct 02 15:12:26 2007 +0200 @@ -4,7 +4,7 @@ * * Copyright 2005-2007 The Horde Project (http://www.horde.org/) * - * $Horde: turba/addressbooks.php,v 1.32 2007/08/01 10:43:29 jan Exp $ + * $Horde: turba/addressbooks.php,v 1.33 2007/08/16 17:35:26 mrubinsk Exp $ * * See the enclosed file LICENSE for license information (ASL). If you did * did not receive this file, see http://www.horde.org/licenses/asl.php. @@ -102,7 +102,6 @@ case 'add': $notification->push(sprintf(_("There was an error creating this address book: %s"), $share->getMessage()), 'horde.error'); } else { $notification->push(sprintf(_("The address book \"%s\" was created successfully."), $share->get('name')), 'horde.success'); - Turba::addSourceFromShare($share); } header('Location: ' . Horde::applicationUrl('addressbooks.php', true)); diff -r 0ca2d81b250b turba/lib/Driver/kolab.php --- a/turba/lib/Driver/kolab.php Tue Oct 02 15:05:12 2007 +0200 +++ b/turba/lib/Driver/kolab.php Tue Oct 02 15:12:26 2007 +0200 @@ -2,7 +2,7 @@ /** * @package Turba * - * $Horde: turba/lib/Driver/kolab.php,v 1.27 2007/06/19 09:50:30 wrobel Exp $ + * $Horde: turba/lib/Driver/kolab.php,v 1.28 2007/09/19 07:43:19 wrobel Exp $ */ /** Kolab support class. */ @@ -151,12 +151,36 @@ class Turba_Driver_kolab extends Turba_D } } + /** + * Creates a new Horde_Share + * + * @param array The params for the share. + * + * @return mixed The share object or PEAR_Error. + * @since Turba 2.2 + */ + function &createShare($share_id, $params) + { + if (isset($params['params']['default']) && $params['params']['default'] === true) { + $share_id = Auth::getAuth(); + } + + $result = &Turba::createShare($share_id, $params); + return $result; + } + + function checkDefaultShare(&$share, $srcConfig) + { + $params = @unserialize($share->get('params')); + return $params['default']; + } + } /** * Horde Turba wrapper to distinguish between both Kolab driver implementations. * - * $Horde: turba/lib/Driver/kolab.php,v 1.27 2007/06/19 09:50:30 wrobel Exp $ + * $Horde: turba/lib/Driver/kolab.php,v 1.28 2007/09/19 07:43:19 wrobel Exp $ * * Copyright 2004-2007 The Horde Project (http://www.horde.org/) * diff -r 0ca2d81b250b turba/lib/Turba.php --- a/turba/lib/Turba.php Tue Oct 02 15:05:12 2007 +0200 +++ b/turba/lib/Turba.php Tue Oct 02 15:12:26 2007 +0200 @@ -1,6 +1,6 @@ getName(); - if (!isset($GLOBALS['cfgSources'][$name])) { - list($source, $user) = explode(':', $name, 2); - if ($user != Auth::getAuth()) { - $newSrc = $GLOBALS['cfgSources'][$source]; - unset($newSrc['use_shares']); - $newSrc['title'] = $share->get('name'); - $GLOBALS['cfgSources'][$name] = $newSrc; - } - } + function getSourceFromShare(&$share) + { + // Require a fresh config file. + require TURBA_BASE . '/config/sources.php'; + + $params = @unserialize($share->get('params')); + $newConfig = $cfgSources[$params['source']]; + $newConfig['params']['config'] = $cfgSources[$params['source']]; + $newConfig['params']['config']['params']['share'] = &$share; + $newConfig['params']['config']['params']['name'] = $params['name']; + $newConfig['title'] = $share->get('name'); + $newConfig['type'] = 'share'; + $newConfig['use_shares'] = false; + + return $newConfig; } /** @@ -616,10 +617,13 @@ class Turba { // Kinda hackish way of indicating what tasks need to run, until // a more general mechanism is available. - $needed_tasks = array('upgradeprefs'); + $needed_tasks = array('upgradeprefs', 'upgradelists'); $successful = array(); $existing = @unserialize($GLOBALS['prefs']->getValue('turba_maintenance_tasks')); + if (empty($existing)) { + $existing = array(); + } foreach ($needed_tasks as $taskname) { if (array_search($taskname, $existing) === false) { include dirname(__file__) . '/Maintenance/Task/' . basename($taskname) . '.php'; diff -r 0ca2d81b250b turba/lib/api.php --- a/turba/lib/api.php Tue Oct 02 15:05:12 2007 +0200 +++ b/turba/lib/api.php Tue Oct 02 15:12:26 2007 +0200 @@ -2,7 +2,7 @@ /** * Turba external API interface. * - * $Horde: turba/lib/api.php,v 1.214 2007/08/02 04:37:18 chuck Exp $ + * $Horde: turba/lib/api.php,v 1.219 2007/08/29 12:13:30 jan Exp $ * * This file defines Turba's external API interface. Other applications can * interact with Turba through this API. @@ -180,18 +180,34 @@ function _turba_removeUserData($user) /* We need a clean copy of the $cfgSources array here.*/ require TURBA_BASE . '/config/sources.php'; - $hasError = false; - $sourceKeys = array_keys($cfgSources); - foreach ($sourceKeys as $sourceKey) { - $driver = &Turba_Driver::singleton($sourceKey); - if (is_a($driver, 'PEAR_Error')) { + $shares = null; + + foreach ($cfgSources as $source) { + if (empty($source['use_shares'])) { + // Shares not enabled for this source + $driver = &Turba_Driver::singleton($source); + if (is_a($driver, 'PEAR_Error')) { + $hasError = true; + } else { + $result = $driver->removeUserData($user); + if (is_a($result, 'PEAR_Error')) { + $hasError = true; + } + } + } + } + + $shares = &$GLOBALS['turba_shares']->listShares($user, + PERMS_EDIT, + $user); + foreach ($shares as $share) { + $params = @unserialize($share->get('params')); + $config = Turba::getSourceFromShare($share); + $driver = &Turba_Driver::singleton($config); + $result = $driver->removeUserData($user); + if (is_a($result, 'PEAR_Error')) { $hasError = true; - } else { - $result = $driver->removeUserData($user); - if (is_a($result, 'PEAR_Error')) { - $hasError = true; - } } } @@ -918,6 +934,10 @@ function _turba_search($names = array(), return array(); } + if (!is_array($names)) { + $names = is_null($names) ? array() : array($names); + } + if (!count($sources)) { $sources = array(key($cfgSources)); } @@ -934,7 +954,8 @@ function _turba_search($names = array(), } // Skip sources that aren't browseable if the search is empty. - if (!count($names) && empty($cfgSources[$source]['browse'])) { + if (empty($cfgSources[$source]['browse']) + && (!count($names) || (count($names) == 1 && empty($names[0])))) { continue; } @@ -1024,6 +1045,7 @@ function _turba_search($names = array(), $listatt = $ob->getAttributes(); $seeninlist = array(); $members = $ob->listMembers(); + $listName = $ob->getValue('name'); if (is_a($members, 'Turba_List')) { if ($members->count() > 0) { if (!isset($results[$name])) { @@ -1032,7 +1054,8 @@ function _turba_search($names = array(), $emails = array(); while ($ob = $members->next()) { $att = $ob->getAttributes(); - foreach ($att as $key => $value) { + foreach (array_keys($att) as $key) { + $value = $ob->getValue($key); if (!empty($value) && isset($attributes[$key]) && $attributes[$key]['type'] == 'email' && empty($seeninlist[trim(String::lower($att['name'])) . trim(String::lower($value))])) { @@ -1042,7 +1065,7 @@ function _turba_search($names = array(), } } } - $results[$name][] = array('name' => $listatt['name'], 'email' => implode(', ', $emails), 'id' => $listatt['__key'], 'source' => $source); + $results[$name][] = array('name' => $listName, 'email' => implode(', ', $emails), 'id' => $listatt['__key'], 'source' => $source); } } } diff -r 0ca2d81b250b turba/templates/addressbooks.inc --- a/turba/templates/addressbooks.inc Tue Oct 02 15:05:12 2007 +0200 +++ b/turba/templates/addressbooks.inc Tue Oct 02 15:12:26 2007 +0200 @@ -120,7 +120,7 @@ function verifyDelete() - " /> + " /> --- NEW FILE: HK-GW-Fix_address_book_deletion_1.patch --- Fixes address book deletion. diff -r 8e461aedd317 turba/lib/Driver/kolab.php --- a/turba/lib/Driver/kolab.php Tue Oct 02 09:24:16 2007 +0200 +++ b/turba/lib/Driver/kolab.php Tue Oct 02 09:30:45 2007 +0200 @@ -892,11 +892,6 @@ class Turba_Driver_kolab_wrapper_new ext return $result; } - if ($sourceName != null) { - Horde::logMessage('deleteAll only working for current share. Called for $sourceName', __FILE__, __LINE__, PEAR_LOG_ERR); - return PEAR::raiseError(sprintf(_("Cannot delete all address book entries for %s"), $sourceName)); - } - return $this->_store->deleteAll(); } --- NEW FILE: HK-GW-Fix_editing_contacts.patch --- Fixes editing contacts. diff -r de15e2f26408 turba/lib/Driver/share.php --- a/turba/lib/Driver/share.php Tue Oct 02 12:25:42 2007 +0200 +++ b/turba/lib/Driver/share.php Tue Oct 02 12:38:50 2007 +0200 @@ -58,7 +58,7 @@ class Turba_Driver_share extends Turba_D */ function getName() { - $share_parts = explode(':', $this->_share->getName()); + $share_parts = explode(':', $this->_share->getId()); return array_pop($share_parts); } --- NEW FILE: HK-GW-Fix_notice_on_addressbook_creation.patch --- Fixes a notice when creating a new share. diff -r 6da2fcb4e060 turba/lib/Driver/kolab.php --- a/turba/lib/Driver/kolab.php Tue Oct 02 07:47:47 2007 +0200 +++ b/turba/lib/Driver/kolab.php Tue Oct 02 08:18:26 2007 +0200 @@ -222,7 +222,7 @@ class Turba_Driver_kolab_wrapper { */ function Turba_Driver_kolab_wrapper($addressbook, &$kolab) { - if ($addressbook[0] == '_') { + if ($addressbook && $addressbook[0] == '_') { $addressbook = substr($addressbook, 1); } $this->_addressbook = $addressbook; --- NEW FILE: HK-GW-Fix_share_id_change.patch --- This fixes a problem with the way the Kolab share driver handles ids. diff -r dd05e667699d turba/lib/Turba.php --- a/turba/lib/Turba.php Tue Oct 02 06:47:29 2007 +0200 +++ b/turba/lib/Turba.php Tue Oct 02 06:55:13 2007 +0200 @@ -439,7 +439,7 @@ class Turba { $source_config = $sources[$source]; $source_config['params']['share'] = &$share; - $sources[$sourceKey] = $source_config; + $sources[$share->getId()] = $source_config; } else { $notification->push($driver, 'horde.error'); } @@ -564,7 +564,7 @@ class Turba { /* Add the new addressbook to the user's list of visible * address books. */ $prefs = explode("\n", $GLOBALS['prefs']->getValue('addressbooks')); - if (array_search($share_id, $prefs) === false) { + if (array_search($share->getId(), $prefs) === false) { $GLOBALS['prefs']->setValue('addressbooks', $GLOBALS['prefs']->getValue('addressbooks') . "\n" . $share_id); } return $share; --- NEW FILE: HK-GW-Ldap_read_only_fix.patch --- This is a temporary fix to mark the ldap addressbook as read-only. This should be solved with the Horde Perms package but this needs a new driver. diff -r b7be146cb26a turba/lib/Driver/ldap.php --- a/turba/lib/Driver/ldap.php Tue Oct 02 07:18:36 2007 +0200 +++ b/turba/lib/Driver/ldap.php Tue Oct 02 07:19:20 2007 +0200 @@ -53,6 +53,9 @@ class Turba_Driver_ldap extends Turba_Dr } if (empty($params['deref'])) { $params['deref'] = LDAP_DEREF_NEVER; + } + if (empty($params['read_only'])) { + $params['read_only'] = false; } parent::Turba_Driver($params); @@ -749,4 +752,25 @@ class Turba_Driver_ldap extends Turba_Dr return $dn; } + /** + * Checks if the current user has the requested permission + * on this source. + * + * @param integer $perm The permission to check for. + * + * @return boolean true if user has permission, false otherwise. + */ + function hasPermission($perm) + { + if ($this->_params['read_only'] === false) { + return parent::hasPermission($perm); + } else { + switch ($perm) { + case PERMS_EDIT: return false; + case PERMS_DELETE: return false; + default: return parent::hasPermission($perm); + } + } + } + } Index: horde-turba-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-turba/horde-turba-kolab.spec,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- horde-turba-kolab.spec 1 Oct 2007 15:47:20 -0000 1.15 +++ horde-turba-kolab.spec 2 Oct 2007 14:21:34 -0000 1.16 @@ -3,7 +3,7 @@ %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 %define V_month 10 -%define V_day 01 +%define V_day 02 %define V_version 2.2_alpha %define V_uver 2.2-alpha %define V_date %{V_year}-%{V_month}-%{V_day} @@ -26,24 +26,12 @@ Source1: conf.php Source2: sources.php -################################################## -# PATCH COMMENT -# -# Check if this can be integrated upstream -# -# The second part of the patch allows to rename -# shares -#Patch0: lib-Turba.php.patch -# FIXME: Disabled for now. - -################################################## -# PATCH COMMENT -# -# This is required until the Horde::Perms package -# has been rewritten so that it does not use -# the Horde::DataTree module anymore -Patch0: config-sources.php.dist.patch -Patch1: lib-Driver-ldap.php.patch +Patch0: HK-GW-Fix_notice_on_addressbook_creation.patch +Patch1: HK-GW-Fix_address_book_deletion_1.patch +Patch2: HK-GW-Changes_after_ALPHA.patch +Patch3: HK-GW-Fix_share_id_change.patch +Patch4: HK-GW-Fix_editing_contacts.patch +Patch5: HK-GW-Ldap_read_only_fix.patch # Build Info Prefix: %{l_prefix} @@ -77,9 +65,12 @@ %setup -c -q -n %{V_horde_name}-h3-%{V_uver} cd %{V_horde_name}-h3-%{V_uver} - %patch -p0 -P 0 - %patch -p0 -P 1 -# %patch -p0 -P 2 + %patch -p2 -P 0 + %patch -p2 -P 1 + %patch -p2 -P 2 + %patch -p2 -P 3 + %patch -p2 -P 4 + %patch -p2 -P 5 cd .. %build Index: sources.php =================================================================== RCS file: /kolabrepository/server/horde/horde-turba/sources.php,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- sources.php 25 May 2007 12:31:37 -0000 1.2 +++ sources.php 2 Oct 2007 14:21:34 -0000 1.3 @@ -137,83 +137,86 @@ /* Begin Kolab sources. */ if (!empty($GLOBALS['conf']['kolab']['enabled'])) { - require_once 'Horde/Kolab.php'; + /* Only use LDAP if we have that extension in PHP */ + if (function_exists('ldap_connect')) { + require_once 'Horde/Kolab.php'; - if (!is_callable('Kolab', 'getServer')) { - $server = $GLOBALS['conf']['kolab']['ldap']['server']; - } else { - $server = Kolab::getServer('ldap'); - } + if (!is_callable('Kolab', 'getServer')) { + $server = $GLOBALS['conf']['kolab']['ldap']['server']; + } else { + $server = Kolab::getServer('ldap'); + } - /* A global address book for a Kolab Server. This is typically a - * read-only public directory, stored in the default Kolab LDAP server. - * The user accessing this should have read permissions to the shared - * directory in LDAP. */ - $cfgSources['kolab_global'] = array( - 'title' => _("Global Address Book"), - 'type' => 'ldap', - 'params' => array( - 'server' => $server, - 'port' => $GLOBALS['conf']['kolab']['ldap']['port'], - 'tls' => false, - 'root' => $GLOBALS['conf']['kolab']['ldap']['basedn'], - 'sizelimit' => 200, - 'dn' => array('cn'), - 'objectclass' => array( - 'inetOrgPerson' + /* A global address book for a Kolab Server. This is typically a + * read-only public directory, stored in the default Kolab LDAP server. + * The user accessing this should have read permissions to the shared + * directory in LDAP. */ + $cfgSources['kolab_global'] = array( + 'title' => _("Global Address Book"), + 'type' => 'ldap', + 'params' => array( + 'server' => $server, + 'port' => $GLOBALS['conf']['kolab']['ldap']['port'], + 'tls' => false, + 'root' => $GLOBALS['conf']['kolab']['ldap']['basedn'], + 'sizelimit' => 200, + 'dn' => array('cn'), + 'objectclass' => array( + 'inetOrgPerson' + ), + 'scope' => 'one', + 'charset' => 'utf-8', + 'version' => 3, + 'bind_dn' => '', + 'bind_password' => '', + 'read_only' => true, ), - 'scope' => 'one', - 'charset' => 'utf-8', - 'version' => 3, - 'bind_dn' => '', - 'bind_password' => '', - 'read_only' => true, - ), - 'map' => array( - '__key' => 'dn', - 'name' => 'cn', - 'firstname' => 'givenName', - 'lastname' => 'sn', - 'email' => 'mail', - 'alias' => 'alias', - 'title' => 'title', - 'company' => 'o', - 'workStreet' => 'street', - 'workCity' => 'l', - 'workProvince' => 'st', - 'workPostalCode' => 'postalCode', - 'workCountry' => 'c', - 'homePhone' => 'homePhone', - 'workPhone' => 'telephoneNumber', - 'cellPhone' => 'mobile', - 'fax' => 'fax', - 'notes' => 'description', - 'freebusyUrl' => 'kolabHomeServer', - ), - 'search' => array( - 'name', - 'firstname', - 'lastname', - 'email', - 'title', - 'company', - 'workAddress', - 'workCity', - 'workProvince', - 'workPostalCode', - 'workCountry', - 'homePhone', - 'workPhone', - 'cellPhone', - 'fax', - 'notes', - ), - 'strict' => array( - 'dn', - ), - 'export' => true, - 'browse' => true, - ); + 'map' => array( + '__key' => 'dn', + 'name' => 'cn', + 'firstname' => 'givenName', + 'lastname' => 'sn', + 'email' => 'mail', + 'alias' => 'alias', + 'title' => 'title', + 'company' => 'o', + 'workStreet' => 'street', + 'workCity' => 'l', + 'workProvince' => 'st', + 'workPostalCode' => 'postalCode', + 'workCountry' => 'c', + 'homePhone' => 'homePhone', + 'workPhone' => 'telephoneNumber', + 'cellPhone' => 'mobile', + 'fax' => 'fax', + 'notes' => 'description', + 'freebusyUrl' => 'kolabHomeServer', + ), + 'search' => array( + 'name', + 'firstname', + 'lastname', + 'email', + 'title', + 'company', + 'workAddress', + 'workCity', + 'workProvince', + 'workPostalCode', + 'workCountry', + 'homePhone', + 'workPhone', + 'cellPhone', + 'fax', + 'notes', + ), + 'strict' => array( + 'dn', + ), + 'export' => true, + 'browse' => true, + ); + } /** * The local address books for a Kolab user. These are stored in specially From cvs at kolab.org Wed Oct 3 12:05:20 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 3 Oct 2007 12:05:20 +0200 (CEST) Subject: gunnar: server/kolabd/kolabd/templates httpd.conf.template.in, 1.10, 1.11 imapd.annotation_definitions.template.in, 1.2, 1.3 imapd.conf.template.in, 1.13, 1.14 main.cf.template.in, 1.16, 1.17 Message-ID: <20071003100520.4860C602A3C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv4379/kolabd/kolabd/templates Modified Files: httpd.conf.template.in imapd.annotation_definitions.template.in imapd.conf.template.in main.cf.template.in Log Message: Bug fixes for the Beta release. Index: httpd.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/httpd.conf.template.in,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- httpd.conf.template.in 2 Aug 2007 10:34:38 -0000 1.10 +++ httpd.conf.template.in 3 Oct 2007 10:05:18 -0000 1.11 @@ -416,3 +416,4 @@ # used for local non Kolab extension Include @webserver_confdir@/apache2.local +Include @webserver_confdir@/*.conf \ No newline at end of file Index: imapd.annotation_definitions.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/imapd.annotation_definitions.template.in,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- imapd.annotation_definitions.template.in 12 Sep 2007 13:18:10 -0000 1.2 +++ imapd.annotation_definitions.template.in 3 Oct 2007 10:05:18 -0000 1.3 @@ -7,4 +7,5 @@ /vendor/kolab/folder-type,mailbox,string,backend,value.shared value.priv,a /vendor/kolab/incidences-for,mailbox,string,backend,value.shared value.priv,a /vendor/kolab/h-share-attr-desc,mailbox,string,backend,value.shared value.priv,a +/vendor/horde/share-params,mailbox,string,backend,value.shared value.priv,a /vendor/x-toltec/test,mailbox,string,backend,value.shared value.priv,a Index: imapd.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/imapd.conf.template.in,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- imapd.conf.template.in 31 Aug 2007 10:38:54 -0000 1.13 +++ imapd.conf.template.in 3 Oct 2007 10:05:18 -0000 1.14 @@ -79,6 +79,9 @@ sievenotifier: mailto mailnotifier: mailto +# the sieve extensions that should be enabled on the server +sieve_extensions: fileinto reject vacation imapflags notify include envelope body relational regex subaddress copy + # use berkeley db backend instead of skiplist annotation_db: berkeley mboxlist_db: berkeley Index: main.cf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/main.cf.template.in,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- main.cf.template.in 9 May 2007 10:16:24 -0000 1.16 +++ main.cf.template.in 3 Oct 2007 10:05:18 -0000 1.17 @@ -69,15 +69,15 @@ # maps canonical_maps = hash:@emailserver_confdir@/canonical -virtual_maps = hash:@emailserver_confdir@/virtual, +virtual_alias_maps = hash:@emailserver_confdir@/virtual, ldap:@emailserver_confdir@/ldapdistlist.cf, ldap:@emailserver_confdir@/ldapvirtual.cf relocated_maps = hash:@emailserver_confdir@/relocated transport_maps = hash:@emailserver_confdir@/transport, ldap:@emailserver_confdir@/ldaptransport.cf alias_maps = hash:@aliases_file@ alias_database = hash:@aliases_file@ -#virtual_mailbox_maps = $virtual_maps -local_recipient_maps = $virtual_maps, $alias_maps +#virtual_mailbox_maps = $virtual_alias_maps +local_recipient_maps = $virtual_alias_maps, $alias_maps # Don't parse and modify headers of message/rfc822 attachments disable_mime_input_processing = yes From cvs at kolab.org Wed Oct 3 12:05:20 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 3 Oct 2007 12:05:20 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.151,1.152 Message-ID: <20071003100520.3B8BC602A2D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv4379 Modified Files: release-notes.txt Log Message: Bug fixes for the Beta release. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.151 retrieving revision 1.152 diff -u -d -r1.151 -r1.152 --- release-notes.txt 6 Sep 2007 09:16:49 -0000 1.151 +++ release-notes.txt 3 Oct 2007 10:05:18 -0000 1.152 @@ -74,6 +74,11 @@ Added "with_horde" support. + kolab/issue1796 (httpd.conf : MISSING Include "/kolab/etc/apache/apache.d/*.conf") + kolab/issue1811 (Spurious files in CVS, kolabd directory) + kolab/issue1895 (switch from virtual_maps to virtual_alias_maps) + kolab/issue2038 (additional sieve extensions) + - kolab-resource-handlers-2.1.99-2007????: Package splitted into kolab-filter, kolab-freebusy and php-kolab From cvs at kolab.org Wed Oct 3 12:05:20 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 3 Oct 2007 12:05:20 +0200 (CEST) Subject: gunnar: server/kolabd/kolabd ChangeLog, 1.109, 1.110 Makefile.am, 1.33, 1.34 kolabquotareport.in, 1.3, 1.4 Message-ID: <20071003100520.3CF61602A34@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv4379/kolabd/kolabd Modified Files: ChangeLog Makefile.am kolabquotareport.in Log Message: Bug fixes for the Beta release. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.109 retrieving revision 1.110 diff -u -d -r1.109 -r1.110 --- ChangeLog 7 Aug 2007 11:40:15 -0000 1.109 +++ ChangeLog 3 Oct 2007 10:05:18 -0000 1.110 @@ -1,3 +1,37 @@ +2007-10-03 Gunnar Wrobel

+ + * templates/httpd.conf.template.in: + + kolab/issue1796 (httpd.conf : MISSING Include "/kolab/etc/apache/apache.d/*.conf") + https://intevation.de/roundup/kolab/issue1796 + + * Makefile.am: + + Add kolabquotareport. + + See kolab/issue1811 (Spurious files in CVS, kolabd directory) + https://intevation.de/roundup/kolab/issue1811 + + * templates/main.cf.template.in (virtual_alias_maps): + + Switched from virtual_maps to virtual_alias_maps. + + See kolab/issue1895 (switch from virtual_maps to virtual_alias_maps) + https://intevation.de/roundup/kolab/issue1895 + + * templates/imapd.annotation_definitions.template.in: + + Added additional "/vendor/horde/share-params" annotation for + extended shares in Horde. + + * templates/imapd.conf.template.in (sieve_extensions): + + Define this parameter for additional sieve extensions "body" and + "include". + + See kolab/issue2038 (additional sieve extensions) + https://intevation.de/roundup/kolab/issue2038 + 2007-08-05 Gunnar Wrobel

* kolabd.spec.in: Index: Makefile.am =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/Makefile.am,v retrieving revision 1.33 retrieving revision 1.34 diff -u -d -r1.33 -r1.34 --- Makefile.am 31 Aug 2007 09:36:06 -0000 1.33 +++ Makefile.am 3 Oct 2007 10:05:18 -0000 1.34 @@ -25,6 +25,7 @@ kolab_bootstrap \ workaround.sh \ kolabquotawarn \ + kolabquotareport \ kolab_upgrade \ kolab_smtpdpolicy \ kolabdcachetool @@ -232,6 +233,13 @@ chmod a+x kolabquotawarn CLEANFILES += kolabquotawarn EXTRA_DIST += kolabquotawarn.in + +kolabquotareport: kolabquotareport.in + @$(mkinstalldirs) . + $(do_subst) <$(srcdir)/kolabquotareport.in >$@ + chmod a+x kolabquotareport +CLEANFILES += kolabquotareport +EXTRA_DIST += kolabquotareport.in kolabquotareport: kolabquotareport.in @$(mkinstalldirs) . Index: kolabquotareport.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolabquotareport.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- kolabquotareport.in 2 Aug 2007 06:49:43 -0000 1.3 +++ kolabquotareport.in 3 Oct 2007 10:05:18 -0000 1.4 @@ -1,4 +1,4 @@ -#!@l_prefix@/bin/perl +#!@PERL@ ## ## Copyright (c) 2004 Klarälvdalens Datakonsult AB From cvs at kolab.org Thu Oct 4 11:09:05 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 4 Oct 2007 11:09:05 +0200 (CEST) Subject: bernhard: utils/testing print_events_start_end.py,1.1,1.2 Message-ID: <20071004090905.18F50602A2B@lists.intevation.de> Author: bernhard Update of /kolabrepository/utils/testing In directory doto:/tmp/cvs-serv10650 Modified Files: print_events_start_end.py Log Message: Better message when no kolab event is found. Index: print_events_start_end.py =================================================================== RCS file: /kolabrepository/utils/testing/print_events_start_end.py,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- print_events_start_end.py 11 Jan 2007 19:20:53 -0000 1.1 +++ print_events_start_end.py 4 Oct 2007 09:09:02 -0000 1.2 @@ -2,7 +2,7 @@ """Decodes Kolab event email files and prints out contained start + end dates. Will search the current working directory for files like [1-9][0-9]*. -WARNING: This is an experimental script to run manually for analysis purposes. +WARNING: This script is experimental to be run manually for analysis purposes. Usage: %(basename) @@ -86,7 +86,9 @@ sys.stderr.write("Something wrong with file %s!\n" % file) raise - if not kolabeventxml: continue + if not kolabeventxml: + print "no kolab event found!!!" + continue # We want to print out the values of start-date and end-date tags From cvs at kolab.org Thu Oct 4 11:47:43 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 4 Oct 2007 11:47:43 +0200 (CEST) Subject: gunnar: server/kolabd/kolabd/templates httpd.conf.template.in, 1.11, 1.12 Message-ID: <20071004094743.854B3602A2B@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv11229/kolabd/kolabd/templates Modified Files: httpd.conf.template.in Log Message: *.conf leads to inclusion of the file itself which is of course invalid. Use *.include instead. Index: httpd.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/httpd.conf.template.in,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- httpd.conf.template.in 3 Oct 2007 10:05:18 -0000 1.11 +++ httpd.conf.template.in 4 Oct 2007 09:47:41 -0000 1.12 @@ -416,4 +416,4 @@ # used for local non Kolab extension Include @webserver_confdir@/apache2.local -Include @webserver_confdir@/*.conf \ No newline at end of file +Include @webserver_confdir@/*.include \ No newline at end of file From cvs at kolab.org Thu Oct 4 11:47:57 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 4 Oct 2007 11:47:57 +0200 (CEST) Subject: gunnar: server/horde/horde conf.php, 1.6, 1.7 horde-kolab.spec, 1.17, 1.18 Message-ID: <20071004094757.8FFFE602A50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde In directory doto:/tmp/cvs-serv11291/horde/horde Modified Files: conf.php horde-kolab.spec Log Message: Make horde ready for the beta release. Index: conf.php =================================================================== RCS file: /kolabrepository/server/horde/horde/conf.php,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- conf.php 4 Sep 2007 09:28:07 -0000 1.6 +++ conf.php 4 Oct 2007 09:47:55 -0000 1.7 @@ -1,6 +1,6 @@ Author: gunnar Update of /kolabrepository/server/horde/horde-kronolith In directory doto:/tmp/cvs-serv11291/horde/horde-kronolith Modified Files: horde-kronolith-kolab.spec Added Files: HK-GW-Fix_create_new_event.patch HK-GW-Fix_share_right_editing.patch HK-UV-Fix_list_events.patch Log Message: Make horde ready for the beta release. --- NEW FILE: HK-GW-Fix_create_new_event.patch --- Fix the return value when creating a new event. diff -r b92bff17929a kronolith/lib/Driver/kolab.php --- a/kronolith/lib/Driver/kolab.php Wed Oct 03 16:28:16 2007 +0200 +++ b/kronolith/lib/Driver/kolab.php Wed Oct 03 17:15:02 2007 +0200 @@ -1190,7 +1190,7 @@ class Kronolith_Driver_kolab_wrapper_new Kolab::triggerFreeBusyUpdate($this->_store->parseFolder($this->_driver->_calendar)); } - return $uid; + return $event->getUID(); } /** --- NEW FILE: HK-GW-Fix_share_right_editing.patch --- Fixes share right editing for kronolith. diff -r 0855b853bf45 kronolith/templates/calendars/calendars.inc --- a/kronolith/templates/calendars/calendars.inc Wed Oct 03 19:42:07 2007 +0200 +++ b/kronolith/templates/calendars/calendars.inc Wed Oct 03 19:43:30 2007 +0200 @@ -113,7 +113,7 @@ function checkSubmit() - ')" value="" /> + ')" value="" /> --- NEW FILE: HK-UV-Fix_list_events.patch --- Fix event display in kronolith. diff -r 3bb98854b586 kronolith/lib/Driver/kolab.php --- a/kronolith/lib/Driver/kolab.php Thu Oct 04 08:29:40 2007 +0200 +++ b/kronolith/lib/Driver/kolab.php Thu Oct 04 08:39:10 2007 +0200 @@ -1080,25 +1080,19 @@ class Kronolith_Driver_kolab_wrapper_new } $keep_event = false; -/* - echo "Start: ".$startDate->compareDate($event->start)."
\n"; - echo "End: ".$endDate->compareDate($event->end)."
\n"; -*/ - // check normal event date - if ($startDate->compareDate($event->start) <= 0 - && $endDate->compareDate($event->end) >= -1) - { + /* check if event period intersects with given period */ + if (!(($endDate->compareDateTime($event->start) < 0) || + ($startDate->compareDateTime($event->end) > 0))) { $keep_event = true; } - // do recurrence expansion if not keeping anyway + /* do recurrence expansion if not keeping anyway */ if (!$keep_event && $event->recurs()) { $next = $event->recurrence->nextRecurrence($startDate); - - if ($next !== false && !$event->recurrence->hasException($next->year, $next->month, $next->mday) - && $startDate->compareDate($next) <= 0 - && $endDate->compareDate($next) >= 0) - { + if ($next !== false && + !$event->recurrence->hasException($next->year, $next->month, $next->mday) && + (!(($endDate->compareDateTime($event->start) < 0) || + ($startDate->compareDateTime($event->end) > 0)))) { $keep_event = true; } } Index: horde-kronolith-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-kronolith/horde-kronolith-kolab.spec,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- horde-kronolith-kolab.spec 1 Oct 2007 15:47:19 -0000 1.15 +++ horde-kronolith-kolab.spec 4 Oct 2007 09:47:55 -0000 1.16 @@ -3,7 +3,7 @@ %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 %define V_month 10 -%define V_day 01 +%define V_day 04 %define V_version 2.2_alpha %define V_uver 2.2-alpha %define V_date %{V_year}-%{V_month}-%{V_day} @@ -26,6 +26,11 @@ Source1: horde-kronolith-kolab-conf.template Source2: conf.php +# List of Patches +Patch0: HK-GW-Fix_create_new_event.patch +Patch1: HK-GW-Fix_share_right_editing.patch +Patch2: HK-UV-Fix_list_events.patch + # Build Info Prefix: %{l_prefix} BuildRoot: %{l_buildroot} @@ -52,6 +57,12 @@ %prep %setup -c -q -n %{V_horde_name}-h3-%{V_uver} + + cd %{V_horde_name}-h3-%{V_uver} + %patch -p2 -P 0 + %patch -p2 -P 1 + %patch -p2 -P 2 + cd .. %build From cvs at kolab.org Thu Oct 4 11:47:57 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 4 Oct 2007 11:47:57 +0200 (CEST) Subject: gunnar: server/horde/horde-ingo conf.php, 1.1, 1.2 horde-ingo-kolab.spec, 1.14, 1.15 Message-ID: <20071004094757.A3DF2602A53@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-ingo In directory doto:/tmp/cvs-serv11291/horde/horde-ingo Modified Files: conf.php horde-ingo-kolab.spec Log Message: Make horde ready for the beta release. Index: conf.php =================================================================== RCS file: /kolabrepository/server/horde/horde-ingo/conf.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- conf.php 25 May 2007 13:06:44 -0000 1.1 +++ conf.php 4 Oct 2007 09:47:55 -0000 1.2 @@ -1,6 +1,6 @@ Author: gunnar Update of /kolabrepository/server/horde/horde-framework In directory doto:/tmp/cvs-serv11291/horde/horde-framework Modified Files: horde-framework-kolab.spec Added Files: HK-GW-Fix_annotation_use.patch Log Message: Make horde ready for the beta release. --- NEW FILE: HK-GW-Fix_annotation_use.patch --- Move to better IMAP annotation entries. diff -r 47e8cc47adcf framework/Kolab/Kolab/IMAP.php --- a/framework/Kolab/Kolab/IMAP.php Wed Oct 03 19:30:01 2007 +0200 +++ b/framework/Kolab/Kolab/IMAP.php Wed Oct 03 19:33:53 2007 +0200 @@ -31,6 +31,11 @@ require_once 'Horde/MIME/Structure.php'; * that are used by Kolab clients. */ define('KOLAB_ANNOT_ROOT', '/vendor/kolab/'); + +/** + * The root of the Horde annotation hierarchy on the IMAP server + */ +define('HORDE_ANNOT_ROOT', '/vendor/horde/'); /** * The annotation, as defined by the Kolab format spec, that is used to store diff -r 47e8cc47adcf framework/Share/Share/kolab.php --- a/framework/Share/Share/kolab.php Wed Oct 03 19:30:01 2007 +0200 +++ b/framework/Share/Share/kolab.php Wed Oct 03 19:33:53 2007 +0200 @@ -11,7 +11,7 @@ require_once 'Horde/Kolab.php'; /** * Horde-specific annotations on the imap folder have this prefix. */ -define('KOLAB_ANNOT_SHARE_ATTR', KOLAB_ANNOT_ROOT . 'h-share-attr-'); +define('HORDE_ANNOT_SHARE_ATTR', HORDE_ANNOT_ROOT . 'share-'); /** * Marks a share without a name. These shares are still invalid @@ -1000,7 +1000,12 @@ class ImapObject_Share { function getAttribute($attribute) { $imap = &$this->_storage->getImap(); - $annotation = $imap->getAnnotation(KOLAB_ANNOT_SHARE_ATTR . $attribute, 'value.shared', $this->_folder); + if ($attribute == 'desc') { + $entry = '/comment'; + } else { + $entry = HORDE_ANNOT_SHARE_ATTR . $attribute; + } + $annotation = $imap->getAnnotation($entry, 'value.shared', $this->_folder); if (is_a($annotation, 'PEAR_Error') || empty($annotation)) { $annotation = ''; } @@ -1170,7 +1175,12 @@ class ImapObject_Share { $imap = &$this->_storage->getImap(); // setAnnotation apparently does not suppoort UTF-8 nor any special characters $store = base64_encode($value); - $result = $imap->setAnnotation(KOLAB_ANNOT_SHARE_ATTR . $attribute, array('value.shared' => $store), $this->_folder); + if ($attribute == 'desc') { + $entry = '/comment'; + } else { + $entry = HORDE_ANNOT_SHARE_ATTR . $attribute; + } + $result = $imap->setAnnotation($entry, array('value.shared' => $store), $this->_folder); if (is_a($result, 'PEAR_Error')) { return $result; } Index: horde-framework-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/horde-framework-kolab.spec,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- horde-framework-kolab.spec 2 Oct 2007 14:21:33 -0000 1.22 +++ horde-framework-kolab.spec 4 Oct 2007 09:47:55 -0000 1.23 @@ -3,7 +3,7 @@ %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 %define V_month 10 -%define V_day 02 +%define V_day 04 %define V_version 3.2_ALPHA %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -28,6 +28,7 @@ Patch0: HK-GW-Fix_Prefs_for_Ingo.patch Patch1: HK-GW-Fix_the_share_params.patch +Patch2: HK-GW-Fix_annotation_use.patch # Build Info Prefix: %{l_prefix} @@ -50,6 +51,7 @@ %setup -n framework %patch -p2 -P 0 %patch -p2 -P 1 + %patch -p2 -P 2 %build From cvs at kolab.org Thu Oct 4 11:47:57 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 4 Oct 2007 11:47:57 +0200 (CEST) Subject: gunnar: server cvs-kolab.sh,1.11,1.12 Message-ID: <20071004094757.8C117602A3C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv11291 Modified Files: cvs-kolab.sh Log Message: Make horde ready for the beta release. Index: cvs-kolab.sh =================================================================== RCS file: /kolabrepository/server/cvs-kolab.sh,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- cvs-kolab.sh 16 Sep 2007 05:59:27 -0000 1.11 +++ cvs-kolab.sh 4 Oct 2007 09:47:55 -0000 1.12 @@ -116,8 +116,8 @@ echo "Everything finished!" echo "You should now run:" echo - echo " /kolab/etc/kolab/kolab_bootstrap -b" - echo " /kolab/bin/openpkg rc all start" + echo " /${KOLAB_INSTALL_USER}/etc/kolab/kolab_bootstrap -b" + echo " /${KOLAB_INSTALL_USER}/bin/openpkg rc all start" exit 0 } @@ -141,8 +141,8 @@ echo "Everything finished!" echo "You should now run:" echo - echo " /kolab/sbin/kolabconf" - echo " /kolab/bin/openpkg rc all restart" + echo " /${KOLAB_INSTALL_USER}/sbin/kolabconf" + echo " /${KOLAB_INSTALL_USER}/bin/openpkg rc all restart" exit 0 } From cvs at kolab.org Thu Oct 4 11:47:57 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 4 Oct 2007 11:47:57 +0200 (CEST) Subject: gunnar: server/horde/horde-mnemo horde-mnemo-kolab.spec,1.17,1.18 Message-ID: <20071004094757.A6D44602A3C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-mnemo In directory doto:/tmp/cvs-serv11291/horde/horde-mnemo Modified Files: horde-mnemo-kolab.spec Log Message: Make horde ready for the beta release. Index: horde-mnemo-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-mnemo/horde-mnemo-kolab.spec,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- horde-mnemo-kolab.spec 2 Oct 2007 14:21:34 -0000 1.17 +++ horde-mnemo-kolab.spec 4 Oct 2007 09:47:55 -0000 1.18 @@ -25,6 +25,7 @@ Source0: http://ftp.horde.org/pub/%{V_horde_name}/%{V_horde_name}-h3-%{V_uver}.tar.gz Source1: conf.php +# List of Patches Patch0: HK-GW-Edit_share_rights.patch # Build Info From cvs at kolab.org Thu Oct 4 11:47:57 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 4 Oct 2007 11:47:57 +0200 (CEST) Subject: gunnar: server/horde/horde-imp conf.php, 1.1, 1.2 horde-imp-kolab.spec, 1.15, 1.16 Message-ID: <20071004094757.9F313602A52@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-imp In directory doto:/tmp/cvs-serv11291/horde/horde-imp Modified Files: conf.php horde-imp-kolab.spec Log Message: Make horde ready for the beta release. Index: conf.php =================================================================== RCS file: /kolabrepository/server/horde/horde-imp/conf.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- conf.php 25 May 2007 10:55:37 -0000 1.1 +++ conf.php 4 Oct 2007 09:47:55 -0000 1.2 @@ -1,6 +1,6 @@ Author: gunnar Update of /kolabrepository/server/patches/horde In directory doto:/tmp/cvs-serv11291/patches/horde Added Files: HK-GW-framework_3.2_ALPHA-Fix_annotation_use.patch HK-GW-kronolith_2.2-Fix_create_new_event.patch HK-GW-kronolith_2.2-Fix_share_right_editing.patch HK-GW-nag_2.2_ALPHA-Fix_share_right_editing.patch HK-UV-kronolith_2.2-Fix_list_events.patch README_Fix_annotation_use.patch README_Fix_create_new_event.patch README_Fix_list_events.patch README_Fix_share_right_editing.patch Log Message: Make horde ready for the beta release. --- NEW FILE: HK-GW-framework_3.2_ALPHA-Fix_annotation_use.patch --- Move to better IMAP annotation entries. diff -r 47e8cc47adcf framework/Kolab/Kolab/IMAP.php --- a/framework/Kolab/Kolab/IMAP.php Wed Oct 03 19:30:01 2007 +0200 +++ b/framework/Kolab/Kolab/IMAP.php Wed Oct 03 19:33:53 2007 +0200 @@ -31,6 +31,11 @@ require_once 'Horde/MIME/Structure.php'; * that are used by Kolab clients. */ define('KOLAB_ANNOT_ROOT', '/vendor/kolab/'); + +/** + * The root of the Horde annotation hierarchy on the IMAP server + */ +define('HORDE_ANNOT_ROOT', '/vendor/horde/'); /** * The annotation, as defined by the Kolab format spec, that is used to store diff -r 47e8cc47adcf framework/Share/Share/kolab.php --- a/framework/Share/Share/kolab.php Wed Oct 03 19:30:01 2007 +0200 +++ b/framework/Share/Share/kolab.php Wed Oct 03 19:33:53 2007 +0200 @@ -11,7 +11,7 @@ require_once 'Horde/Kolab.php'; /** * Horde-specific annotations on the imap folder have this prefix. */ -define('KOLAB_ANNOT_SHARE_ATTR', KOLAB_ANNOT_ROOT . 'h-share-attr-'); +define('HORDE_ANNOT_SHARE_ATTR', HORDE_ANNOT_ROOT . 'share-'); /** * Marks a share without a name. These shares are still invalid @@ -1000,7 +1000,12 @@ class ImapObject_Share { function getAttribute($attribute) { $imap = &$this->_storage->getImap(); - $annotation = $imap->getAnnotation(KOLAB_ANNOT_SHARE_ATTR . $attribute, 'value.shared', $this->_folder); + if ($attribute == 'desc') { + $entry = '/comment'; + } else { + $entry = HORDE_ANNOT_SHARE_ATTR . $attribute; + } + $annotation = $imap->getAnnotation($entry, 'value.shared', $this->_folder); if (is_a($annotation, 'PEAR_Error') || empty($annotation)) { $annotation = ''; } @@ -1170,7 +1175,12 @@ class ImapObject_Share { $imap = &$this->_storage->getImap(); // setAnnotation apparently does not suppoort UTF-8 nor any special characters $store = base64_encode($value); - $result = $imap->setAnnotation(KOLAB_ANNOT_SHARE_ATTR . $attribute, array('value.shared' => $store), $this->_folder); + if ($attribute == 'desc') { + $entry = '/comment'; + } else { + $entry = HORDE_ANNOT_SHARE_ATTR . $attribute; + } + $result = $imap->setAnnotation($entry, array('value.shared' => $store), $this->_folder); if (is_a($result, 'PEAR_Error')) { return $result; } --- NEW FILE: HK-GW-kronolith_2.2-Fix_create_new_event.patch --- Fix the return value when creating a new event. diff -r b92bff17929a kronolith/lib/Driver/kolab.php --- a/kronolith/lib/Driver/kolab.php Wed Oct 03 16:28:16 2007 +0200 +++ b/kronolith/lib/Driver/kolab.php Wed Oct 03 17:15:02 2007 +0200 @@ -1190,7 +1190,7 @@ class Kronolith_Driver_kolab_wrapper_new Kolab::triggerFreeBusyUpdate($this->_store->parseFolder($this->_driver->_calendar)); } - return $uid; + return $event->getUID(); } /** --- NEW FILE: HK-GW-kronolith_2.2-Fix_share_right_editing.patch --- Fixes share right editing for kronolith. diff -r 0855b853bf45 kronolith/templates/calendars/calendars.inc --- a/kronolith/templates/calendars/calendars.inc Wed Oct 03 19:42:07 2007 +0200 +++ b/kronolith/templates/calendars/calendars.inc Wed Oct 03 19:43:30 2007 +0200 @@ -113,7 +113,7 @@ function checkSubmit() - ')" value="" /> + ')" value="" /> --- NEW FILE: HK-GW-nag_2.2_ALPHA-Fix_share_right_editing.patch --- Fixes share right editing for nag. diff -r b7b4a2eab17c nag/templates/tasklists/tasklists.inc --- a/nag/templates/tasklists/tasklists.inc Wed Oct 03 19:33:59 2007 +0200 +++ b/nag/templates/tasklists/tasklists.inc Wed Oct 03 19:42:07 2007 +0200 @@ -62,7 +62,7 @@ function checkSubmit()



-" style="display:none" /> +" style="display:none" />

--- NEW FILE: HK-UV-kronolith_2.2-Fix_list_events.patch --- Fix event display in kronolith. diff -r 3bb98854b586 kronolith/lib/Driver/kolab.php --- a/kronolith/lib/Driver/kolab.php Thu Oct 04 08:29:40 2007 +0200 +++ b/kronolith/lib/Driver/kolab.php Thu Oct 04 08:39:10 2007 +0200 @@ -1080,25 +1080,19 @@ class Kronolith_Driver_kolab_wrapper_new } $keep_event = false; -/* - echo "Start: ".$startDate->compareDate($event->start)."
\n"; - echo "End: ".$endDate->compareDate($event->end)."
\n"; -*/ - // check normal event date - if ($startDate->compareDate($event->start) <= 0 - && $endDate->compareDate($event->end) >= -1) - { + /* check if event period intersects with given period */ + if (!(($endDate->compareDateTime($event->start) < 0) || + ($startDate->compareDateTime($event->end) > 0))) { $keep_event = true; } - // do recurrence expansion if not keeping anyway + /* do recurrence expansion if not keeping anyway */ if (!$keep_event && $event->recurs()) { $next = $event->recurrence->nextRecurrence($startDate); - - if ($next !== false && !$event->recurrence->hasException($next->year, $next->month, $next->mday) - && $startDate->compareDate($next) <= 0 - && $endDate->compareDate($next) >= 0) - { + if ($next !== false && + !$event->recurrence->hasException($next->year, $next->month, $next->mday) && + (!(($endDate->compareDateTime($event->start) < 0) || + ($startDate->compareDateTime($event->end) > 0)))) { $keep_event = true; } } --- NEW FILE: README_Fix_annotation_use.patch --- DESCRIPTION: Moves horde share description to the "/comments" annotation on an IMAP server. This is still somewhat broken since the Kolab patch for annotations (merge16) does not support utf-8 so we use base64 encoded values here. IMPACT: You won't be able to create new groupware folder on the Kolab server without this REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary HISTORY Applied upstream. --- NEW FILE: README_Fix_create_new_event.patch --- DESCRIPTION: Fixes kolab/issue2039 (https://www.intevation.de/roundup/kolab/issue2039) IMPACT: Invitations will not be sent out when creating a new event. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary HISTORY Applied upstream. --- NEW FILE: README_Fix_list_events.patch --- DESCRIPTION: Fixes kolab/issue1907 ([horde/horde-kronolith] List all events within a period) https://www.intevation.de/roundup/kolab/issue1907 IMPACT: Not all events defined in Kronolith will be displayed correctly. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary HISTORY Applied upstream. --- NEW FILE: README_Fix_share_right_editing.patch --- DESCRIPTION: Allows editing share rights for shares other than the default share. This is a fix that has already been applied upstream but is still missing from the ALPHA release. This will become obsolete with the next Horde release. IMPACT: Nag and kronolith will not allow you to edit share rights without this. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary HISTORY Applied upstream. From cvs at kolab.org Thu Oct 4 11:47:57 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 4 Oct 2007 11:47:57 +0200 (CEST) Subject: gunnar: server/horde/horde-nag HK-GW-Fix_share_right_editing.patch, NONE, 1.1 horde-nag-kolab.spec, 1.14, 1.15 Message-ID: <20071004094757.AAE37602A54@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-nag In directory doto:/tmp/cvs-serv11291/horde/horde-nag Modified Files: horde-nag-kolab.spec Added Files: HK-GW-Fix_share_right_editing.patch Log Message: Make horde ready for the beta release. --- NEW FILE: HK-GW-Fix_share_right_editing.patch --- Fixes share right editing for nag. diff -r b7b4a2eab17c nag/templates/tasklists/tasklists.inc --- a/nag/templates/tasklists/tasklists.inc Wed Oct 03 19:33:59 2007 +0200 +++ b/nag/templates/tasklists/tasklists.inc Wed Oct 03 19:42:07 2007 +0200 @@ -62,7 +62,7 @@ function checkSubmit()



-" style="display:none" /> +" style="display:none" />

Index: horde-nag-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-nag/horde-nag-kolab.spec,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- horde-nag-kolab.spec 1 Oct 2007 15:47:19 -0000 1.14 +++ horde-nag-kolab.spec 4 Oct 2007 09:47:55 -0000 1.15 @@ -3,7 +3,7 @@ %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 %define V_month 10 -%define V_day 01 +%define V_day 04 %define V_version 2.2_alpha %define V_uver 2.2-alpha %define V_date %{V_year}-%{V_month}-%{V_day} @@ -25,6 +25,9 @@ Source0: http://ftp.horde.org/pub/%{V_horde_name}/%{V_horde_name}-h3-%{V_uver}.tar.gz Source1: conf.php +# List of Patches +Patch0: HK-GW-Fix_share_right_editing.patch + # Build Info Prefix: %{l_prefix} BuildRoot: %{l_buildroot} @@ -45,6 +48,10 @@ %prep %setup -c -q -n %{V_horde_name}-h3-%{V_uver} + + cd %{V_horde_name}-h3-%{V_uver} + %patch -p2 -P 0 + cd .. %build From cvs at kolab.org Fri Oct 5 13:30:43 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 5 Oct 2007 13:30:43 +0200 (CEST) Subject: gunnar: server/horde/horde-turba lib-Driver-ldap.php.patch, 1.2, NONE lib-Turba.php.patch, 1.2, NONE Message-ID: <20071005113043.81119602A24@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-turba In directory doto:/tmp/cvs-serv15848 Removed Files: lib-Driver-ldap.php.patch lib-Turba.php.patch Log Message: Remove these outdated patches. --- lib-Driver-ldap.php.patch DELETED --- --- lib-Turba.php.patch DELETED --- From cvs at kolab.org Fri Oct 5 14:52:35 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 5 Oct 2007 14:52:35 +0200 (CEST) Subject: gunnar: server/horde external-horde.sh,NONE,1.1 Message-ID: <20071005125235.7D294602A27@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde In directory doto:/tmp/cvs-serv17817 Added Files: external-horde.sh Log Message: Add the external horde installer. --- NEW FILE: external-horde.sh --- #!/bin/sh wget ftp://ftp.horde.org/pub/horde/horde-3.2-alpha.tar.gz wget ftp://ftp.horde.org/pub/imp/imp-h3-4.2-alpha.tar.gz wget ftp://ftp.horde.org/pub/ingo/ingo-h3-1.2-alpha.tar.gz wget ftp://ftp.horde.org/pub/passwd/passwd-h3-3.0.1.tar.gz wget ftp://ftp.horde.org/pub/kronolith/kronolith-h3-2.2-alpha.tar.gz wget ftp://ftp.horde.org/pub/mnemo/mnemo-h3-2.2-alpha.tar.gz wget ftp://ftp.horde.org/pub/nag/nag-h3-2.2-alpha.tar.gz wget ftp://ftp.horde.org/pub/turba/turba-h3-2.2-alpha.tar.gz tar xfz horde-3.2-alpha.tar.gz tar xfz imp-h3-4.2-alpha.tar.gz tar xfz ingo-h3-1.2-alpha.tar.gz tar xfz passwd-h3-3.0.1.tar.gz tar xfz kronolith-h3-2.2-alpha.tar.gz tar xfz mnemo-h3-2.2-alpha.tar.gz tar xfz nag-h3-2.2-alpha.tar.gz tar xfz turba-h3-2.2-alpha.tar.gz mv imp-h3-4.2-alpha horde-3.2-alpha/imp mv ingo-h3-1.2-alpha horde-3.2-alpha/ingo mv passwd-h3-3.0.1 horde-3.2-alpha/passwd mv kronolith-h3-2.2-alpha horde-3.2-alpha/kronolith mv mnemo-h3-2.2-alpha horde-3.2-alpha/mnemo mv nag-h3-2.2-alpha horde-3.2-alpha/nag mv turba-h3-2.2-alpha horde-3.2-alpha/turba mv horde-3.2-alpha horde for PATCH in HK-GW-framework_3.2_ALPHA-Fix_Prefs_for_Ingo.patch \ HK-GW-framework_3.2_ALPHA-Fix_annotation_use.patch \ HK-GW-framework_3.2_ALPHA-Fix_the_share_params.patch \ HK-GW-kronolith_2.2-Fix_create_new_event.patch \ HK-GW-kronolith_2.2-Fix_share_right_editing.patch \ HK-GW-mnemo_2.2_ALPHA-Edit_share_rights.patch \ HK-GW-nag_2.2_ALPHA-Fix_share_right_editing.patch \ HK-GW-turba_2.2-Changes_after_ALPHA.patch \ HK-GW-turba_2.2-Fix_address_book_deletion_1.patch \ HK-GW-turba_2.2-Fix_editing_contacts.patch \ HK-GW-turba_2.2-Fix_notice_on_addressbook_creation.patch \ HK-GW-turba_2.2-Fix_share_id_change.patch \ HK-GW-turba_2.2-Ldap_read_only_fix.patch \ HK-UV-kronolith_2.2-Fix_list_events.patch; do wget http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/server/patches/horde/$PATCH; done cd horde for PATCH in HK-GW-kronolith_2.2-Fix_create_new_event.patch \ HK-GW-kronolith_2.2-Fix_share_right_editing.patch \ HK-GW-mnemo_2.2_ALPHA-Edit_share_rights.patch \ HK-GW-nag_2.2_ALPHA-Fix_share_right_editing.patch \ HK-GW-turba_2.2-Changes_after_ALPHA.patch \ HK-GW-turba_2.2-Fix_address_book_deletion_1.patch \ HK-GW-turba_2.2-Fix_editing_contacts.patch \ HK-GW-turba_2.2-Fix_notice_on_addressbook_creation.patch \ HK-GW-turba_2.2-Fix_share_id_change.patch \ HK-GW-turba_2.2-Ldap_read_only_fix.patch \ HK-UV-kronolith_2.2-Fix_list_events.patch; do patch -p1 < ../$PATCH; done cd lib/Horde for PATCH in HK-GW-framework_3.2_ALPHA-Fix_Prefs_for_Ingo.patch \ HK-GW-framework_3.2_ALPHA-Fix_annotation_use.patch \ HK-GW-framework_3.2_ALPHA-Fix_the_share_params.patch; do patch -p3 < ../../../$PATCH; done cd ../../.. cd horde/config for fl in *.dist; do cp $fl ${fl/.dist/}; done cd .. for mod in imp ingo passwd kronolith mnemo nag turba; do cd $mod/config; for fl in *.dist; do cp $fl ${fl/.dist/}; done cd ../..; done cd .. for conf in horde/conf.php \ horde/hooks.php \ horde/registry.php \ horde-imp/conf.php \ horde-imp/servers.php \ horde-ingo/conf.php \ horde-ingo/backends.php \ horde-passwd/conf.php \ horde-passwd/backends.php \ horde-kronolith/conf.php \ horde-mnemo/conf.php \ horde-nag/conf.php \ horde-turba/conf.php \ horde-turba/sources.php; do wget http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/server/horde/$conf; export dest=${conf/\//\/config\/}; export file=${conf/*\//}; mv $file ${dest/-/\/}; done wget http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/server/horde/horde/horde-kolab-conf.template cat horde-kolab-conf.template | sed -e '1,5d' > horde/config/kolab.php wget http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/server/horde/horde-kronolith/horde-kronolith-kolab-conf.template cat horde-kronolith-kolab-conf.template | sed -e '1,5d' > horde/kronolith/config/kolab.php From cvs at kolab.org Mon Oct 8 17:21:22 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 8 Oct 2007 17:21:22 +0200 (CEST) Subject: thomas: server/kolabd/kolabd/templates kolab.conf.template.in, 1.1, 1.2 Message-ID: <20071008152122.68639602A2A@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv17383/kolabd/kolabd/templates Modified Files: kolab.conf.template.in Log Message: Fix bootstrap for @@@slurpd_addr@@@ and @@@slurpd_port@@@ in slapd.conf.template Index: kolab.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/kolab.conf.template.in,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- kolab.conf.template.in 13 Sep 2005 14:38:22 -0000 1.1 +++ kolab.conf.template.in 8 Oct 2007 15:21:20 -0000 1.2 @@ -13,3 +13,5 @@ php_pw : @@@nobody_pw@@@ calendar_dn : cn=calendar,cn=internal,@@@kolab_basedn@@@ calendar_pw : @@@calendar_pw@@@ +slurpd_addr : 127.0.0.1 +slurpd_port : 9999 From cvs at kolab.org Mon Oct 8 17:21:22 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 8 Oct 2007 17:21:22 +0200 (CEST) Subject: thomas: server/kolabd/kolabd kolab.conf, 1.1.1.1, 1.2 kolab_bootstrap.in, 1.26, 1.27 Message-ID: <20071008152122.6AC3C602A2C@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv17383/kolabd/kolabd Modified Files: kolab.conf kolab_bootstrap.in Log Message: Fix bootstrap for @@@slurpd_addr@@@ and @@@slurpd_port@@@ in slapd.conf.template Index: kolab.conf =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolab.conf,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- kolab.conf 23 Nov 2004 20:26:47 -0000 1.1.1.1 +++ kolab.conf 8 Oct 2007 15:21:20 -0000 1.2 @@ -10,3 +10,5 @@ ldap_master_uri : @@@ldap_master_uri@@@ php_dn : cn=nobody,@@@kolab_basedn@@@ php_pw : @@@nobody_pw@@@ +slurpd_addr : 127.0.0.1 +slurpd_port : 9999 Index: kolab_bootstrap.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolab_bootstrap.in,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- kolab_bootstrap.in 25 May 2007 10:16:06 -0000 1.26 +++ kolab_bootstrap.in 8 Oct 2007 15:21:20 -0000 1.27 @@ -272,6 +272,8 @@ my $php_pw = $kolab_config{'php_pw'} || die "could not read php_pw from $kolab_config"; my $calendar_dn = $kolab_config{'calendar_dn'}; my $calendar_pw = $kolab_config{'calendar_pw'}; +my $slurpd_addr = $kolab_config{'slurpd_addr'} || die "could not read slurpd_addr from $kolab_config"; +my $slurpd_port = $kolab_config{'slurpd_port'} || die "could not read slurpd_port from $kolab_config"; my @kolabhosts; if (!$bind_dn || !$bind_pw || !$ldap_uri || !$base_dn) { @@ -373,6 +375,8 @@ print $fd "php_pw : $php_pw\n"; print $fd "calendar_dn : $calendar_dn\n"; print $fd "calendar_pw : $calendar_pw\n"; + print $fd "slurpd_addr : $slurpd_addr\n"; + print $fd "slurpd_port : $slurpd_port\n"; undef $fd; print "done modifying $kolab_config\n\n"; chmod 0600, $kolab_config; @@ -431,6 +435,8 @@ s/\@\@\@base_dn\@\@\@/$base_dn/g; s/\@\@\@bind_dn\@\@\@/$bind_dn/g; s/\@\@\@bind_pw_hash\@\@\@/$bind_pw/g; + s/\@\@\@slurpd_addr\@\@\@/$slurpd_addr/g; + s/\@\@\@slurpd_port\@\@\@/$slurpd_port/g; s/TLSCertificate/\#TLSCertificate/g; print $slpd $_; } @@ -829,6 +835,8 @@ print $fd "php_pw : $php_pw\n"; print $fd "calendar_dn : $calendar_dn\n"; print $fd "calendar_pw : $calendar_pw\n"; + print $fd "slurpd_addr : $slurpd_addr\n"; + print $fd "slurpd_port : $slurpd_port\n"; undef $fd; print "done modifying $kolab_config\n\n"; chmod 0600, $kolab_config; @@ -932,6 +940,8 @@ print $fd "php_pw : $php_pw\n"; print $fd "calendar_dn : $calendar_dn\n"; print $fd "calendar_pw : $calendar_pw\n"; + print $fd "slurpd_addr : $slurpd_addr\n"; + print $fd "slurpd_port : $slurpd_port\n"; undef $fd; print "done modifying $kolab_config\n\n"; chmod 0600, $kolab_config; From cvs at kolab.org Mon Oct 8 17:31:31 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 8 Oct 2007 17:31:31 +0200 (CEST) Subject: thomas: server/kolabd/kolabd/templates master.cf.template.in, 1.17, 1.18 Message-ID: <20071008153131.3E30D602A2A@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv17602 Modified Files: master.cf.template.in Log Message: Port mailfilter_addr change to master.cf.template.in from 2.1 branch, too: cvs diff -r 1.14.2.1 -r 1.14.2.2 master.cf.template.in | patch master.cf.template.in Index: master.cf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/master.cf.template.in,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- master.cf.template.in 26 Jul 2007 12:43:02 -0000 1.17 +++ master.cf.template.in 8 Oct 2007 15:31:29 -0000 1.18 @@ -55,9 +55,9 @@ -o disable_dns_lookups=yes # SMTP interface for injecting mail back into postfix # from kolabfilter -127.0.0.1:10025 inet n - n - - smtpd +@@@mailfilter_addr@@@:10025 inet n - n - - smtpd @@@if postfix-enable-virus-scan@@@ - -o content_filter=smtp-amavis:[127.0.0.1]:10024 + -o content_filter=smtp-amavis:[@@@mailfilter_addr@@@]:10024 @@@else@@@ -o content_filter= @@@endif@@@ @@ -77,7 +77,7 @@ -o smtpd_hard_error_limit=1000 # SMTP interface for injecting mail back into postfix # from amavis -127.0.0.1:10026 inet n - n - - smtpd +@@@mailfilter_addr@@@:10026 inet n - n - - smtpd -o content_filter= -o cleanup_service_name=post-cleanup -o local_recipient_maps= From cvs at kolab.org Mon Oct 8 17:33:14 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 8 Oct 2007 17:33:14 +0200 (CEST) Subject: thomas: server/kolabd/kolabd kolab.globals.in,1.6,1.7 Message-ID: <20071008153314.60FFE602A2A@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv17683/kolabd/kolabd Modified Files: kolab.globals.in Log Message: Rename mailfilter_addr to local_addr for more generic use Index: kolab.globals.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolab.globals.in,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- kolab.globals.in 6 Sep 2007 09:16:20 -0000 1.6 +++ kolab.globals.in 8 Oct 2007 15:33:12 -0000 1.7 @@ -29,7 +29,6 @@ user_field_modified : modifytimestamp user_field_quota : cyrus-userquota user_object_class : inetOrgPerson -mailfilter_addr : 127.0.0.1 kolabconf_script: @kolabconf_script@ kolab_locals: @sysconfdir@/kolab/kolab.conf kolab_usr: @kolab_usr@ @@ -46,4 +45,5 @@ ftpserver_pidfile: @ftpserver_pidfile@ sbindir: @sbindir@ webserver_logdir: @webserver_logdir@ -webserver_document_root: @webserver_document_root@ \ No newline at end of file +webserver_document_root: @webserver_document_root@ +local_addr : 127.0.0.1 From cvs at kolab.org Mon Oct 8 17:33:14 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 8 Oct 2007 17:33:14 +0200 (CEST) Subject: thomas: server/kolabd/kolabd/templates amavisd.conf.template.in, 1.12, 1.13 master.cf.template.in, 1.18, 1.19 Message-ID: <20071008153314.6797D602A2C@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv17683/kolabd/kolabd/templates Modified Files: amavisd.conf.template.in master.cf.template.in Log Message: Rename mailfilter_addr to local_addr for more generic use Index: amavisd.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/amavisd.conf.template.in,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- amavisd.conf.template.in 6 Sep 2007 09:06:29 -0000 1.12 +++ amavisd.conf.template.in 8 Oct 2007 15:33:12 -0000 1.13 @@ -101,7 +101,7 @@ # POSTFIX, or SENDMAIL in dual-MTA setup, or EXIM V4 # (set host and port number as required; host can be specified # as IP address or DNS name (A or CNAME, but MX is ignored) -$forward_method = 'smtp:@@@mailfilter_addr@@@:10026'; # where to forward checked mail +$forward_method = 'smtp:@@@local_addr@@@:10026'; # where to forward checked mail $notify_method = $forward_method; # where to submit notifications # NOTE: The defaults (above) are good for Postfix or dual-sendmail. You MUST @@ -237,9 +237,9 @@ # - do not allow free access to the amavisd SMTP port !!! # # when MTA is at the same host, use the following (one or the other or both): -$inet_socket_bind = '@@@mailfilter_addr@@@'; # limit socket bind to loopback interface +$inet_socket_bind = '@@@local_addr@@@'; # limit socket bind to loopback interface # (default is '127.0.0.1') - at inet_acl = qw( @@@mailfilter_addr@@@ ); # allow SMTP access only from localhost IP + at inet_acl = qw( @@@local_addr@@@ ); # allow SMTP access only from localhost IP # (default is qw( 127.0.0.1 ) ) # when MTA (one or more) is on a different host, use the following: Index: master.cf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/master.cf.template.in,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- master.cf.template.in 8 Oct 2007 15:31:29 -0000 1.18 +++ master.cf.template.in 8 Oct 2007 15:33:12 -0000 1.19 @@ -55,9 +55,9 @@ -o disable_dns_lookups=yes # SMTP interface for injecting mail back into postfix # from kolabfilter -@@@mailfilter_addr@@@:10025 inet n - n - - smtpd +@@@local_addr@@@:10025 inet n - n - - smtpd @@@if postfix-enable-virus-scan@@@ - -o content_filter=smtp-amavis:[@@@mailfilter_addr@@@]:10024 + -o content_filter=smtp-amavis:[@@@local_addr@@@]:10024 @@@else@@@ -o content_filter= @@@endif@@@ @@ -77,7 +77,7 @@ -o smtpd_hard_error_limit=1000 # SMTP interface for injecting mail back into postfix # from amavis -@@@mailfilter_addr@@@:10026 inet n - n - - smtpd +@@@local_addr@@@:10026 inet n - n - - smtpd -o content_filter= -o cleanup_service_name=post-cleanup -o local_recipient_maps= From cvs at kolab.org Mon Oct 8 17:38:07 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 8 Oct 2007 17:38:07 +0200 (CEST) Subject: thomas: server/kolabconf/lib/Kolab Conf.pm,1.9,1.10 Message-ID: <20071008153807.2EFB3602A2A@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabconf/lib/Kolab In directory doto:/tmp/cvs-serv17804/kolabconf/lib/Kolab Modified Files: Conf.pm Log Message: Make cyrus configs use local_addr setting Index: Conf.pm =================================================================== RCS file: /kolabrepository/server/kolabconf/lib/Kolab/Conf.pm,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- Conf.pm 6 Sep 2007 10:06:08 -0000 1.9 +++ Conf.pm 8 Oct 2007 15:38:05 -0000 1.10 @@ -43,7 +43,6 @@ our %EXPORT_TAGS = ( 'all' => [ qw( &buildPostfixTransportMap - &buildCyrusConfig &buildCyrusGroups &buildLDAPReplicas &rebuildTemplates @@ -96,7 +95,6 @@ "$templatedir/transport.template" => 1, "$templatedir/virtual.template" => 1, "$templatedir/imapd.group.template" => 1, - "$templatedir/cyrus.conf.template" => 1, "$templatedir/slapd.access.template" => 1, "$templatedir/slapd.replicas.template" => 1 ); @@ -343,87 +341,6 @@ Kolab::log('T', 'Finished building Postfix $map map', KOLAB_DEBUG); } -sub buildCyrusConfig -{ - Kolab::log('T', 'Building Cyrus config', KOLAB_DEBUG); - - my $templatedir = $Kolab::config{"templatedir"}; - - my $keytemplate = "$templatedir/cyrus.conf.template"; - my $cfg = $templates{$keytemplate}; - my $imapdtemplate = "$templatedir/imapd.conf.template"; - my $imapdcfg = $templates{$imapdtemplate}; - my $oldcfg = $cfg . '.old'; - #delete $templates{$keytemplate}; - - #my $oldmask = umask 077; - #copy($cfg, $oldcfg); - #chown($Kolab::config{'kolab_uid'}, $Kolab::config{'kolab_gid'}, $oldcfg); - #umask $oldmask; - - my $cyrusconf; - my $cyrustemplate; - if (!($cyrustemplate = IO::File->new($keytemplate, 'r'))) { - Kolab::log('T', "Unable to open configuration file `$keytemplate': $!", KOLAB_ERROR); - exit(1); - } - - if (!($cyrusconf = IO::File->new($cfg, 'w'))) { - Kolab::log('T', "Unable to open configuration file `$cfg': $!", KOLAB_ERROR); - exit(1); - } - - while (<$cyrustemplate>) { - if (/^KOLAB_META_START$/) { - my $found_end; - while (!$found_end) { - $_ = <$cyrustemplate>; - $found_end = /^KOLAB_META_END$/; - } - $_ = <$cyrustemplate>; - } - if (/\@{3}cyrus-imap\@{3}/ && ($Kolab::config{"cyrus-imap"} =~ /true/i)) { - $_ = "imap cmd=\"imapd -C $imapdcfg\" listen=\"143\" prefork=0\n"; - } - elsif (/\@{3}cyrus-imap\@{3}/ && ($Kolab::config{"cyrus-imap"} =~ /false/i)) { - # Even if imapd is disabled, enable it for localhost -- resource handlers depend on it - $_ = "imap cmd=\"imapd -C $imapdcfg\" listen=\"127.0.0.1:143\" prefork=0\n"; - } - elsif (/\@{3}cyrus-pop3\@{3}/ && ($Kolab::config{"cyrus-pop3"} =~ /true/i)) { - $_ = "pop3 cmd=\"pop3d -C $imapdcfg\" listen=\"110\" prefork=0\n"; - } - elsif (/\@{3}cyrus-imaps\@{3}/ && ($Kolab::config{"cyrus-imaps"} =~ /true/i)) { - $_ = "imaps cmd=\"imapd -s -C $imapdcfg\" listen=\"993\" prefork=0\n"; - } - elsif (/\@{3}cyrus-pop3s\@{3}/ && ($Kolab::config{"cyrus-pop3s"} =~ /true/i)) { - $_ = "pop3s cmd=\"pop3d -s -C $imapdcfg\" listen=\"995\" prefork=0\n"; - } - elsif (/\@{3}cyrus-sieve\@{3}/ && ($Kolab::config{"cyrus-sieve"} =~ /true/i)) { - $_ = "sieve cmd=\"timsieved -C $imapdcfg\" listen=\"2000\" prefork=0\n"; - } - $_ =~ s/\@{3}.*\@{3}//; - print $cyrusconf $_; - } - - $cyrustemplate->close; - $cyrusconf->close; - - fixup( $cfg, $ownership{$cfg}, $permissions{$cfg}); - - if (-f $oldcfg) { - my $rc = `diff -q $cfg $oldcfg`; - chomp($rc); - if ($rc) { - Kolab::log('T', "`$cfg' change detected: $rc", KOLAB_DEBUG); - $haschanged{'imapd'} = 1; - } - } else { - $haschanged{'imapd'} = 1; - } - - Kolab::log('T', 'Finished building Cyrus config', KOLAB_DEBUG); -} - sub buildCyrusGroups { Kolab::log('T', 'Building Cyrus groups', KOLAB_DEBUG); @@ -754,7 +671,6 @@ buildPostfixVirtualMap; buildLDAPAccess; buildLDAPReplicas; - buildCyrusConfig; buildCyrusGroups; Kolab::log('T', 'Finished regenerating configuration files', KOLAB_DEBUG ); From cvs at kolab.org Mon Oct 8 17:38:07 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 8 Oct 2007 17:38:07 +0200 (CEST) Subject: thomas: server/kolabd/kolabd/templates cyrus.conf.template.in, 1.3, 1.4 Message-ID: <20071008153807.32F1C602A2C@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv17804/kolabd/kolabd/templates Modified Files: cyrus.conf.template.in Log Message: Make cyrus configs use local_addr setting Index: cyrus.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/cyrus.conf.template.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- cyrus.conf.template.in 12 Apr 2007 11:52:24 -0000 1.3 +++ cyrus.conf.template.in 8 Oct 2007 15:38:05 -0000 1.4 @@ -26,11 +26,23 @@ # UNIX sockets start with a slash and are put into /openpkg/var/imapd/sockets SERVICES { - @@@cyrus-imap@@@ - @@@cyrus-imaps@@@ - @@@cyrus-pop3@@@ - @@@cyrus-pop3s@@@ - @@@cyrus-sieve@@@ +@@@if cyrus-imap@@@ + imap cmd="imapd -C @imap_confdir@/imapd.conf" listen="143" prefork=0 +@@@else@@@ + imap cmd="imapd -C @imap_confdir@/imapd.conf" listen="@@@local_addr@@@:143" prefork=0 +@@@endif@@@ +@@@if cyrus-imaps@@@ + imaps cmd="imapd -s -C @imap_confdir@/imapd.conf" listen="993" prefork=0 +@@@endif@@@ +@@@if cyrus-pop3@@@ + pop3 cmd="pop3d -C @imap_confdir@/imapd.conf" listen="110" prefork=0 +@@@endif@@@ +@@@if cyrus-pop3s@@@ + pop3s cmd="pop3d -s -C @imap_confdir@/imapd.conf" listen="995" prefork=0 +@@@endif@@@ +@@@if cyrus-sieve@@@ + sieve cmd="timsieved -C @imap_confdir@/imapd.conf" listen="2000" prefork=0 +@@@endif@@@ #@@@if is-master@@@ # mupdate cmd="mupdate -m" listen=3905 prefork=1 @@ -38,7 +50,7 @@ # LMTP is required for delivery lmtpunix cmd="lmtpd" listen="@emailserver_socket@" prefork=0 - lmtp cmd="lmtpd -a" listen="127.0.0.1:2003" + lmtp cmd="lmtpd -a" listen="@@@local_addr@@@:2003" # this is only necessary if using notifications notify cmd="notifyd" listen="@imap_notify_socket@" proto="udp" prefork=1 From cvs at kolab.org Mon Oct 8 17:39:29 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 8 Oct 2007 17:39:29 +0200 (CEST) Subject: thomas: server/kolabd/kolabd kolab.globals.in,1.7,1.8 Message-ID: <20071008153929.A04B6602A2A@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv17876/kolabd/kolabd Modified Files: kolab.globals.in Log Message: Allow to bind services to a specific IP address. Index: kolab.globals.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolab.globals.in,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- kolab.globals.in 8 Oct 2007 15:33:12 -0000 1.7 +++ kolab.globals.in 8 Oct 2007 15:39:27 -0000 1.8 @@ -47,3 +47,5 @@ webserver_logdir: @webserver_logdir@ webserver_document_root: @webserver_document_root@ local_addr : 127.0.0.1 +bind_any : TRUE +bind_addr : 0.0.0.0 From cvs at kolab.org Mon Oct 8 17:39:29 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 8 Oct 2007 17:39:29 +0200 (CEST) Subject: thomas: server/kolabd/kolabd/templates cyrus.conf.template.in, 1.4, 1.5 httpd.conf.template.in, 1.12, 1.13 rc.conf.template.in, 1.3, 1.4 Message-ID: <20071008153929.A552D602A2C@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv17876/kolabd/kolabd/templates Modified Files: cyrus.conf.template.in httpd.conf.template.in rc.conf.template.in Log Message: Allow to bind services to a specific IP address. Index: cyrus.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/cyrus.conf.template.in,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- cyrus.conf.template.in 8 Oct 2007 15:38:05 -0000 1.4 +++ cyrus.conf.template.in 8 Oct 2007 15:39:27 -0000 1.5 @@ -27,21 +27,21 @@ # UNIX sockets start with a slash and are put into /openpkg/var/imapd/sockets SERVICES { @@@if cyrus-imap@@@ - imap cmd="imapd -C @imap_confdir@/imapd.conf" listen="143" prefork=0 + imap cmd="imapd -C @imap_confdir@/imapd.conf" listen="@@@bind_addr@@@:143" prefork=0 @@@else@@@ imap cmd="imapd -C @imap_confdir@/imapd.conf" listen="@@@local_addr@@@:143" prefork=0 @@@endif@@@ @@@if cyrus-imaps@@@ - imaps cmd="imapd -s -C @imap_confdir@/imapd.conf" listen="993" prefork=0 + imaps cmd="imapd -s -C @imap_confdir@/imapd.conf" listen="@@@bind_addr@@@:993" prefork=0 @@@endif@@@ @@@if cyrus-pop3@@@ - pop3 cmd="pop3d -C @imap_confdir@/imapd.conf" listen="110" prefork=0 + pop3 cmd="pop3d -C @imap_confdir@/imapd.conf" listen="@@@bind_addr@@@:110" prefork=0 @@@endif@@@ @@@if cyrus-pop3s@@@ - pop3s cmd="pop3d -s -C @imap_confdir@/imapd.conf" listen="995" prefork=0 + pop3s cmd="pop3d -s -C @imap_confdir@/imapd.conf" listen="@@@bind_addr@@@:995" prefork=0 @@@endif@@@ @@@if cyrus-sieve@@@ - sieve cmd="timsieved -C @imap_confdir@/imapd.conf" listen="2000" prefork=0 + sieve cmd="timsieved -C @imap_confdir@/imapd.conf" listen="@@@bind_addr@@@:2000" prefork=0 @@@endif@@@ #@@@if is-master@@@ Index: httpd.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/httpd.conf.template.in,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- httpd.conf.template.in 4 Oct 2007 09:47:41 -0000 1.12 +++ httpd.conf.template.in 8 Oct 2007 15:39:27 -0000 1.13 @@ -110,8 +110,13 @@ MaxRequestsPerChild 0 +@@@if bind_any@@@ Listen 80 Listen 443 +@@@else@@@ +Listen @@@bind_addr@@@:80 +Listen @@@bind_addr@@@:443 +@@@endif@@@ ### Section 2: 'Main' server configuration Index: rc.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/rc.conf.template.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- rc.conf.template.in 6 Sep 2007 09:05:14 -0000 1.3 +++ rc.conf.template.in 8 Oct 2007 15:39:27 -0000 1.4 @@ -11,7 +11,7 @@ # this file is automatically written by the Kolab config backend # manual additions are lost unless made to the template in the Kolab config directory -openldap_url="ldap:// ldaps://" +openldap_url="ldap://@@@bind_addr@@@/ ldaps://@@@bind_addr@@@/" sasl_authmech="ldap" @@@if proftpd-ftp@@@ From cvs at kolab.org Mon Oct 8 17:50:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 8 Oct 2007 17:50:13 +0200 (CEST) Subject: thomas: server/kolab-filter/filter kolabfilter.php, 1.1, 1.2 kolabmailboxfilter.php, 1.1, 1.2 Message-ID: <20071008155013.BE497602A2A@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-filter/filter In directory doto:/tmp/cvs-serv18052/kolab-filter/filter Modified Files: kolabfilter.php kolabmailboxfilter.php Log Message: Determine connect_addr and use it for connecting to Kolab services. Index: kolabfilter.php =================================================================== RCS file: /kolabrepository/server/kolab-filter/filter/kolabfilter.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- kolabfilter.php 9 Aug 2007 15:51:20 -0000 1.1 +++ kolabfilter.php 8 Oct 2007 15:50:11 -0000 1.2 @@ -209,7 +209,7 @@ /* Allow anything from localhost and fellow Kolab-hosts */ - if( $client_addr == '127.0.0.1' ) return true; + if( $client_addr == $params['local_addr'] ) return true; $kolabhosts = split(',', $params['kolabhosts'] ); $kolabhosts = array_map( "gethostbyname", $kolabhosts ); if( array_search( $client_addr, $kolabhosts ) !== false ) return true; @@ -425,7 +425,7 @@ } /* TODO: Dont hardcode localhost:10025 */ -$smtp = new KolabSMTP( 'localhost', 10025 ); +$smtp = new KolabSMTP( $params['local_addr'], 10025 ); if( PEAR::isError( $smtp ) ) { fwrite(STDOUT, $error->getMessage().", code ".$error->getCode()."\n"); if( $error->getCode() < 500 ) exit(EX_TEMPFAIL); Index: kolabmailboxfilter.php =================================================================== RCS file: /kolabrepository/server/kolab-filter/filter/kolabmailboxfilter.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- kolabmailboxfilter.php 9 Aug 2007 15:51:20 -0000 1.1 +++ kolabmailboxfilter.php 8 Oct 2007 15:50:11 -0000 1.2 @@ -138,7 +138,7 @@ exit(EX_TEMPFAIL); } -$lmtp = new KolabLMTP(); +$lmtp = new KolabLMTP( $params['local_addr'] ); if( PEAR::isError( $lmtp ) ) { fwrite(STDOUT, $lmtp->getMessage()."\n"); if( $error->getCode() < 500 ) exit(EX_TEMPFAIL); From cvs at kolab.org Mon Oct 8 17:50:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 8 Oct 2007 17:50:13 +0200 (CEST) Subject: thomas: server/kolabd/kolabd/templates resmgr.conf.template.in, 1.10, 1.11 Message-ID: <20071008155013.CA25E602A2F@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv18052/kolabd/kolabd/templates Modified Files: resmgr.conf.template.in Log Message: Determine connect_addr and use it for connecting to Kolab services. Index: resmgr.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/resmgr.conf.template.in,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- resmgr.conf.template.in 16 Aug 2007 10:47:10 -0000 1.10 +++ resmgr.conf.template.in 8 Oct 2007 15:50:11 -0000 1.11 @@ -40,7 +40,10 @@ */ // What is the address of the Cyrus server where the calendar data is stored? -$params['server'] = 'localhost'; +$params['server'] = '@@@connect_addr@@@'; + +// Local IP address of the mailserver for bypassing content filters +$params['local_addr'] = '@@@local_addr@@@'; // What is our default mail domain? This is used if any users do not have // '@domain' specified after their username as part of their email address. From cvs at kolab.org Mon Oct 8 17:50:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 8 Oct 2007 17:50:13 +0200 (CEST) Subject: thomas: server/kolab-freebusy/freebusy pfb.php,1.5,1.6 Message-ID: <20071008155013.C2102602A2C@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-freebusy/freebusy In directory doto:/tmp/cvs-serv18052/kolab-freebusy/freebusy Modified Files: pfb.php Log Message: Determine connect_addr and use it for connecting to Kolab services. Index: pfb.php =================================================================== RCS file: /kolabrepository/server/kolab-freebusy/freebusy/pfb.php,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- pfb.php 16 Aug 2007 09:27:55 -0000 1.5 +++ pfb.php 8 Oct 2007 15:50:11 -0000 1.6 @@ -218,7 +218,7 @@ unset($folder[0]); $folder = join('/', $folder); $fbpast = $ldap->freeBusyPast(); - $fb =& new FreeBusy( $owner, $imapuser, $imappw, 'localhost', $params, $uinfo['FBFUTURE'], $fbpast ); + $fb =& new FreeBusy( $owner, $imapuser, $imappw, $params['server'], $params, $uinfo['FBFUTURE'], $fbpast ); $fb->default_domain = $params['email_domain']; $rc = $fb->imapConnect(); From cvs at kolab.org Mon Oct 8 17:50:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 8 Oct 2007 17:50:13 +0200 (CEST) Subject: thomas: server/php-kolab/Kolab_Filter/Filter resmgr.php,1.5,1.6 Message-ID: <20071008155013.D6E6D602A31@lists.intevation.de> Author: thomas Update of /kolabrepository/server/php-kolab/Kolab_Filter/Filter In directory doto:/tmp/cvs-serv18052/php-kolab/Kolab_Filter/Filter Modified Files: resmgr.php Log Message: Determine connect_addr and use it for connecting to Kolab services. Index: resmgr.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/resmgr.php,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- resmgr.php 16 Aug 2007 14:53:07 -0000 1.5 +++ resmgr.php 8 Oct 2007 15:50:11 -0000 1.6 @@ -340,11 +340,12 @@ function sendSMTP($sender, $recip, &$data) { + global $params; static $smtp; if (!isset($smtp)) { require_once 'Net/SMTP.php'; - $smtp = &new Net_SMTP('localhost',10026); + $smtp = &new Net_SMTP($params['local_addr'] ,10026); if (!$smtp) { $msg = 'Could not create SMTP object'; myLog($msg, RM_LOG_ERROR); From cvs at kolab.org Mon Oct 8 17:50:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 8 Oct 2007 17:50:13 +0200 (CEST) Subject: thomas: server/perl-kolab/lib/Kolab Cyrus.pm,1.1,1.2 Message-ID: <20071008155013.CF43A602A2A@lists.intevation.de> Author: thomas Update of /kolabrepository/server/perl-kolab/lib/Kolab In directory doto:/tmp/cvs-serv18052/perl-kolab/lib/Kolab Modified Files: Cyrus.pm Log Message: Determine connect_addr and use it for connecting to Kolab services. Index: Cyrus.pm =================================================================== RCS file: /kolabrepository/server/perl-kolab/lib/Kolab/Cyrus.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Cyrus.pm 1 Aug 2007 14:57:42 -0000 1.1 +++ Cyrus.pm 8 Oct 2007 15:50:11 -0000 1.2 @@ -58,7 +58,7 @@ { Kolab::log('Y', 'Connecting to local Cyrus admin interface'); - my $cyrus = Cyrus::IMAP::Admin->new('localhost'); + my $cyrus = Cyrus::IMAP::Admin->new($Kolab::config{'connect_addr'}); if (!$cyrus) { Kolab::log('Y', 'Unable to connect to local Cyrus admin interface', KOLAB_ERROR); From cvs at kolab.org Mon Oct 8 17:50:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 8 Oct 2007 17:50:13 +0200 (CEST) Subject: thomas: server/perl-kolab/lib Kolab.pm,1.4,1.5 Message-ID: <20071008155013.D304A602A2C@lists.intevation.de> Author: thomas Update of /kolabrepository/server/perl-kolab/lib In directory doto:/tmp/cvs-serv18052/perl-kolab/lib Modified Files: Kolab.pm Log Message: Determine connect_addr and use it for connecting to Kolab services. Index: Kolab.pm =================================================================== RCS file: /kolabrepository/server/perl-kolab/lib/Kolab.pm,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Kolab.pm 15 Aug 2007 16:35:19 -0000 1.4 +++ Kolab.pm 8 Oct 2007 15:50:11 -0000 1.5 @@ -251,6 +251,14 @@ $config{'fqdn'} = trim(`hostname`); + # connect to services at local address if binding to any interface, + # otherwise use the address specified for the public interface. + if ($config{'bind_any'} =~ /true/i) { + $config{'connect_addr'} = $config{'local_addr'}; + } else { + $config{'connect_addr'} = $config{'bind_addr'}; + } + # Cyrus admin account $tempval = $config{'cyrus-admins'} || 'manager'; (my $cmanager, my $dummy) = split(/ /, $tempval, 2); From cvs at kolab.org Mon Oct 8 17:50:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 8 Oct 2007 17:50:13 +0200 (CEST) Subject: thomas: server/kolabd/kolabd kolabquotareport.in, 1.4, 1.5 kolabquotawarn.in, 1.13, 1.14 Message-ID: <20071008155013.D0981602A30@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv18052/kolabd/kolabd Modified Files: kolabquotareport.in kolabquotawarn.in Log Message: Determine connect_addr and use it for connecting to Kolab services. Index: kolabquotareport.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolabquotareport.in,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- kolabquotareport.in 3 Oct 2007 10:05:18 -0000 1.4 +++ kolabquotareport.in 8 Oct 2007 15:50:11 -0000 1.5 @@ -97,7 +97,7 @@ ### Connect to Cyrus -my $cyrus = Cyrus::IMAP::Admin->new('localhost'); +my $cyrus = Cyrus::IMAP::Admin->new($Kolab::config{'connect_addr'}); $cyrus || die 'Unable to connect to local Cyrus admin interface\n'; $cyrus->authenticate( 'User' => $Kolab::config{'cyrus_admin'}, Index: kolabquotawarn.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolabquotawarn.in,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- kolabquotawarn.in 2 Aug 2007 06:49:43 -0000 1.13 +++ kolabquotawarn.in 8 Oct 2007 15:50:11 -0000 1.14 @@ -193,7 +193,7 @@ mylog( $syslog_priority, "starting up") if $verbose; ### Connect to Cyrus -my $cyrus = Cyrus::IMAP::Admin->new('localhost'); +my $cyrus = Cyrus::IMAP::Admin->new($Kolab::config{'connect_addr'}); $cyrus || fatal_exit( 'Unable to connect to local Cyrus admin interface' ); $cyrus->authenticate( 'User' => $Kolab::config{'cyrus_admin'}, From cvs at kolab.org Mon Oct 8 17:57:51 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 8 Oct 2007 17:57:51 +0200 (CEST) Subject: thomas: server/php-kolab/Kolab_Freebusy/Freebusy freebusy.class.php, 1.4, 1.5 Message-ID: <20071008155751.F0C33602A31@lists.intevation.de> Author: thomas Update of /kolabrepository/server/php-kolab/Kolab_Freebusy/Freebusy In directory doto:/tmp/cvs-serv18283/php-kolab/Kolab_Freebusy/Freebusy Modified Files: freebusy.class.php Log Message: Apply FreeBusy $params changes done to other parameters. (maybe fixes a php5 reference issue?) Index: freebusy.class.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Freebusy/Freebusy/freebusy.class.php,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- freebusy.class.php 16 Aug 2007 14:53:07 -0000 1.4 +++ freebusy.class.php 8 Oct 2007 15:57:49 -0000 1.5 @@ -66,7 +66,6 @@ function FreeBusy( $owner_email, $username, $password, - $imaphost, $params, $fbfuture=60, $fbpast=0 ) { @@ -76,7 +75,7 @@ $this->owner_email = $owner_email; $this->username = $username; $this->password = $password; - $this->imaphost = $imaphost; + $this->imaphost = $params['server']; $this->imapoptions = $params['imap_options']; $this->fbfuture = $fbfuture; $this->fbpast = $fbpast; From cvs at kolab.org Mon Oct 8 17:57:51 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 8 Oct 2007 17:57:51 +0200 (CEST) Subject: thomas: server/kolab-freebusy/freebusy pfb.php,1.6,1.7 Message-ID: <20071008155751.EA11E602A30@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-freebusy/freebusy In directory doto:/tmp/cvs-serv18283/kolab-freebusy/freebusy Modified Files: pfb.php Log Message: Apply FreeBusy $params changes done to other parameters. (maybe fixes a php5 reference issue?) Index: pfb.php =================================================================== RCS file: /kolabrepository/server/kolab-freebusy/freebusy/pfb.php,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- pfb.php 8 Oct 2007 15:50:11 -0000 1.6 +++ pfb.php 8 Oct 2007 15:57:49 -0000 1.7 @@ -218,7 +218,7 @@ unset($folder[0]); $folder = join('/', $folder); $fbpast = $ldap->freeBusyPast(); - $fb =& new FreeBusy( $owner, $imapuser, $imappw, $params['server'], $params, $uinfo['FBFUTURE'], $fbpast ); + $fb =& new FreeBusy( $owner, $imapuser, $imappw, $params, $uinfo['FBFUTURE'], $fbpast ); $fb->default_domain = $params['email_domain']; $rc = $fb->imapConnect(); From cvs at kolab.org Mon Oct 8 18:46:02 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 8 Oct 2007 18:46:02 +0200 (CEST) Subject: thomas: server release-notes.txt,1.152,1.153 Message-ID: <20071008164602.B6BAA602A2A@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv21934 Modified Files: release-notes.txt Log Message: Updated release-notes Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.152 retrieving revision 1.153 diff -u -d -r1.152 -r1.153 --- release-notes.txt 3 Oct 2007 10:05:18 -0000 1.152 +++ release-notes.txt 8 Oct 2007 16:46:00 -0000 1.153 @@ -37,8 +37,11 @@ Converted the package into a standard perl library package. + kolab/issue26 (Allow to bind to specific IPs) + - php-kolab-2.1.99-2007???? + kolab/issue26 (Allow to bind to specific IPs) kolab/issue1637 (Recurrency issues) - kolabconf-2.1.99-2007????: @@ -47,6 +50,7 @@ Added mechanism to allow config variable replacement in the META section. + kolab/issue26 (Allow to bind to specific IPs) kolab/issue1879 (kolabconf poor error message in buildCyrusConfig) - kolabd-2.1.99-2007????: @@ -74,6 +78,7 @@ Added "with_horde" support. + kolab/issue26 (Allow to bind to specific IPs) kolab/issue1796 (httpd.conf : MISSING Include "/kolab/etc/apache/apache.d/*.conf") kolab/issue1811 (Spurious files in CVS, kolabd directory) kolab/issue1895 (switch from virtual_maps to virtual_alias_maps) @@ -85,12 +90,14 @@ - kolab-filter-2.1.99-2007????: + kolab/issue26 (Allow to bind to specific IPs) kolab/issue1606 (Allow to run kolab-resource-handlers with PHP cgi) - kolab-webadmin-2.1.99-2007????: kolab/issue1246 (Permission handling in the webadmin frontend) kolab/issue1611 ([webadmin] page.tpl use no valid XHTML) + Changes between 2.1.0 and 2.2-beta1: From cvs at kolab.org Wed Oct 10 11:46:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 10 Oct 2007 11:46:39 +0200 (CEST) Subject: gunnar: server/patches/horde HK-GW-framework_3.2_ALPHA-Share_caching.patch, NONE, 1.1 README_Share_caching.patch, NONE, 1.1 Message-ID: <20071010094639.5F0B8602A2D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde In directory doto:/tmp/cvs-serv22012/patches/horde Added Files: HK-GW-framework_3.2_ALPHA-Share_caching.patch README_Share_caching.patch Log Message: The final Horde patch before the beta release. This intends to fix Horde Share caching for Kolab which is the second level of IMAP caching in Horde/Kolab. --- NEW FILE: HK-GW-framework_3.2_ALPHA-Share_caching.patch --- Fixes the share caching for the Share module. * * * Fixes the global share caching. diff -r 3d04200d5eec framework/Kolab/Kolab/IMAP.php --- a/framework/Kolab/Kolab/IMAP.php Wed Oct 10 11:19:54 2007 +0200 +++ b/framework/Kolab/Kolab/IMAP.php Wed Oct 10 11:20:13 2007 +0200 @@ -371,7 +371,18 @@ class Kolab_IMAP { */ function listFolders() { - $folders = array(); + require_once 'Horde/SessionObjects.php'; + + static $folders = array(); + + if (empty($folders)) { + $session = &Horde_SessionObjects::singleton(); + $folders = &$session->query('horde_kolab_imaplist'); + } + + if (!empty($folders)) { + return $folders; + } // Connect to the IMAP server $imap = &Kolab_IMAP_Connection::singleton(Kolab::getServer('imap'), @@ -417,6 +428,9 @@ class Kolab_IMAP { $folders[] = array($folder, $foldertype, $default); } + + $session = &Horde_SessionObjects::singleton(); + $session->overwrite('horde_kolab_imaplist', $folders, false); $imap->disconnect(); diff -r 3d04200d5eec framework/Share/Share/kolab.php --- a/framework/Share/Share/kolab.php Wed Oct 10 11:19:54 2007 +0200 +++ b/framework/Share/Share/kolab.php Wed Oct 10 11:20:13 2007 +0200 @@ -66,6 +66,38 @@ class Horde_Share_kolab extends Horde_Sh } /** + * Initializes the object. + */ + function __wakeup() + { + global $conf; + + if (empty($conf['kolab']['enabled'])) { + Horde::fatal('You must enable the kolab settings to use the Kolab Share driver.', __FILE__, __LINE__); + } + + foreach (array_keys($this->_cache) as $name) { + $this->_cache[$name]->setShareOb($this); + $this->_cache[$name]->storageObject->setStorage($this->_storage); + } + + parent::__wakeup(); + } + + /** + * Returns the properties that need to be serialized. + * + * @return array List of serializable properties. + */ + function __sleep() + { + $properties = get_object_vars($this); + unset($properties['_sortList']); + $properties = array_keys($properties); + return $properties; + } + + /** * Returns an array of all shares that $userid has access to. * * @param string $userid The userid of the user to check access for. @@ -242,7 +274,14 @@ class Horde_Share_Storage_kolab { function Horde_Share_Storage_kolab($app) { $this->_app = $app; - + return $this->__wakeup(); + } + + /** + * Initializes the object. + */ + function __wakeup() + { // Connect to the IMAP server $this->_imap = &Kolab_IMAP_Connection::singleton(Kolab::getServer('imap'), $GLOBALS['conf']['kolab']['imap']['port'], @@ -254,6 +293,19 @@ class Horde_Share_Storage_kolab { if (is_a($result, 'PEAR_Error')) { return $result; } + } + + /** + * Returns the properties that need to be serialized. + * + * @return array List of serializable properties. + */ + function __sleep() + { + $properties = get_object_vars($this); + unset($properties['_imap']); + $properties = array_keys($properties); + return $properties; } /** @@ -363,10 +415,12 @@ class Horde_Share_Storage_kolab { * @param string $object The share to fetch. * @param string $class Subclass of Horde_Share_Object to use. Defaults * to ImapObject_Share. + * @param array $perms The permissions of the share if known + * * @return Horde_Share_Object_kolab The share object or a PEAR error if * the share was not found. */ - function &getObject($object, $class = 'ImapObject_Share') + function &getObject($object, $class = 'ImapObject_Share', $perms = null) { if (empty($object)) { $error = PEAR::raiseError('No object requested.'); @@ -399,14 +453,17 @@ class Horde_Share_Storage_kolab { $object = $this->getDefaultShare(); } - $share->setFolder($object); - $result = $share->accessible(); - if (is_a($result, 'PEAR_Error')) { - return $result; - } - if (!$result) { - return PEAR::raiseError(sprintf(_("Share \"%s\" not accessible."), $object)); - } + $share->setFolder($object, $perms); + /* FIXME: Is this call necessary at all? You should try to access a share that + * cannot be accessed and see what happens. + *$result = $share->accessible(); + *if (is_a($result, 'PEAR_Error')) { + *return $result; + *} + *if (!$result) { + *return PEAR::raiseError(sprintf(_("Share \"%s\" not accessible."), $object)); + *} + */ return $share; } @@ -689,6 +746,19 @@ class Horde_Share_Object_kolab extends H class Horde_Share_Object_kolab extends Horde_Share_Object { /** + * Returns the properties that need to be serialized. + * + * @return array List of serializable properties. + */ + function __sleep() + { + $properties = get_object_vars($this); + unset($properties['_shareOb']); + $properties = array_keys($properties); + return $properties; + } + + /** * Checks to see if a user has a given permission. * * @param string $userid The userid of the user. @@ -803,6 +873,19 @@ class ImapObject_Share { } /** + * Returns the properties that need to be serialized. + * + * @return array List of serializable properties. + */ + function __sleep() + { + $properties = get_object_vars($this); + unset($properties['_storage']); + $properties = array_keys($properties); + return $properties; + } + + /** * Sets the storage driver for this storage object. * * @param Horde_Share_Storage_kolab $storage A {@link Horde_Share_storage_kolab} instance. @@ -810,6 +893,10 @@ class ImapObject_Share { function setStorage(&$storage) { $this->_storage = &$storage; + if (isset($this->_perm)) { + $imap = &$storage->getImap(); + $this->_perm->setImap($imap); + } } /** @@ -817,25 +904,29 @@ class ImapObject_Share { * * @param string $folder Name of the IMAP folder. * @param boolean $force Enforce setting the folder. - */ - function setFolder($folder, $force = false) + * @param array $perms The permissions of the folder if they are known + */ + function setFolder($folder, $force = false, $perms = null) { if ($this->_folder == KOLAB_SHARE_INVALID || $force) { $this->_folder = $folder; if (isset($this->_perm)) { $this->_perm->setFolder($folder); } else { - if ($this->exists()) { - $perms = null; - } else { - $perms = array('users' => array(Auth::getAuth() => PERMS_SHOW - | PERMS_READ - | PERMS_EDIT - | PERMS_DELETE)); + if (empty($perms)) { + if ($this->exists()) { + // The permissions are unknown but the folder exists -> discover permissions + $perms = null; + } else { + $perms = array('users' => array(Auth::getAuth() => PERMS_SHOW + | PERMS_READ + | PERMS_EDIT + | PERMS_DELETE)); + } } $perm = &new ImapFolder_Permission($folder, $this->_storage->getImap(), - $this, $perms); + $this->getOwner(), $perms); $this->setPermission($perm); } } @@ -1265,11 +1356,11 @@ class ImapFolder_Permission extends Data var $data; /** - * The storage driver for this object. - * - * @var Horde_Share_Storage_kolab - */ - var $_storage; + * Owner of the share. + * + * @var string + */ + var $_owner; /** * The ImapFolder_Permission constructor. @@ -1280,11 +1371,11 @@ class ImapFolder_Permission extends Data * @param Horde_Storage $storage A reference to the storage class * @param array $perms A set of initial permissions. */ - function ImapFolder_Permission($folder, &$imap, &$storage, $perms = null) + function ImapFolder_Permission($folder, &$imap, $owner, $perms = null) { $this->_folder = $folder; $this->_imap = &$imap; - $this->_storage = &$storage; + $this->_owner = $owner; // Load the permission from the folder now if (empty($perms)) { @@ -1296,6 +1387,29 @@ class ImapFolder_Permission extends Data } $this->data = $perms; + } + + /** + * Returns the properties that need to be serialized. + * + * @return array List of serializable properties. + */ + function __sleep() + { + $properties = get_object_vars($this); + unset($properties['_imap']); + $properties = array_keys($properties); + return $properties; + } + + /** + * Sets the imap driver for this permission object. + * + * @param + */ + function setImap(&$imap) + { + $this->_imap = &$imap; } /** @@ -1405,6 +1519,8 @@ class ImapFolder_Permission extends Data */ function save() { + // FIXME: If somebody else accessed the folder before us, we will overwrite + // the change here. $current = $this->getPerm(); foreach ($this->data as $user => $user_perms) { @@ -1482,7 +1598,7 @@ class ImapFolder_Permission extends Data function savePermission($user, $perms) { // Convert the horde permission style to IMAP permissions - $result = $user == $this->_storage->getOwner() ? 'a' : ''; + $result = $user == $this->_owner ? 'a' : ''; if ($perms & PERMS_SHOW) { $result .= 'l'; } --- NEW FILE: README_Share_caching.patch --- DESCRIPTION: This fixes the caching for the Kolab share driver and significantly improves the Horde performance if you have many IMAP folders. IMPACT: Horde will be very slow if you have many IMAP folders. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary HISTORY This is still rather fresh and might have side effects so this has not yet been applied upstream even if it is Kolab specific. From cvs at kolab.org Wed Oct 10 11:46:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 10 Oct 2007 11:46:39 +0200 (CEST) Subject: gunnar: server/horde/horde conf.php,1.7,1.8 Message-ID: <20071010094639.5E350602A2A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde In directory doto:/tmp/cvs-serv22012/horde/horde Modified Files: conf.php Log Message: The final Horde patch before the beta release. This intends to fix Horde Share caching for Kolab which is the second level of IMAP caching in Horde/Kolab. Index: conf.php =================================================================== RCS file: /kolabrepository/server/horde/horde/conf.php,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- conf.php 4 Oct 2007 09:47:55 -0000 1.7 +++ conf.php 10 Oct 2007 09:46:37 -0000 1.8 @@ -41,7 +41,7 @@ $conf['group']['driver'] = 'datatree'; $conf['group']['cache'] = false; $conf['share']['no_sharing'] = false; -$conf['share']['cache'] = false; +$conf['share']['cache'] = true; $conf['share']['driver'] = 'kolab'; $conf['cache']['default_lifetime'] = 1800; $conf['cache']['params']['dir'] = Horde::getTempDir(); From cvs at kolab.org Wed Oct 10 11:46:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 10 Oct 2007 11:46:39 +0200 (CEST) Subject: gunnar: server/horde/horde-framework HK-GW-Share_caching.patch, NONE, 1.1 horde-framework-kolab.spec, 1.23, 1.24 Message-ID: <20071010094639.5FDA3602A2F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-framework In directory doto:/tmp/cvs-serv22012/horde/horde-framework Modified Files: horde-framework-kolab.spec Added Files: HK-GW-Share_caching.patch Log Message: The final Horde patch before the beta release. This intends to fix Horde Share caching for Kolab which is the second level of IMAP caching in Horde/Kolab. --- NEW FILE: HK-GW-Share_caching.patch --- Fixes the share caching for the Share module. * * * Fixes the global share caching. diff -r 3d04200d5eec framework/Kolab/Kolab/IMAP.php --- a/framework/Kolab/Kolab/IMAP.php Wed Oct 10 11:19:54 2007 +0200 +++ b/framework/Kolab/Kolab/IMAP.php Wed Oct 10 11:20:13 2007 +0200 @@ -371,7 +371,18 @@ class Kolab_IMAP { */ function listFolders() { - $folders = array(); + require_once 'Horde/SessionObjects.php'; + + static $folders = array(); + + if (empty($folders)) { + $session = &Horde_SessionObjects::singleton(); + $folders = &$session->query('horde_kolab_imaplist'); + } + + if (!empty($folders)) { + return $folders; + } // Connect to the IMAP server $imap = &Kolab_IMAP_Connection::singleton(Kolab::getServer('imap'), @@ -417,6 +428,9 @@ class Kolab_IMAP { $folders[] = array($folder, $foldertype, $default); } + + $session = &Horde_SessionObjects::singleton(); + $session->overwrite('horde_kolab_imaplist', $folders, false); $imap->disconnect(); diff -r 3d04200d5eec framework/Share/Share/kolab.php --- a/framework/Share/Share/kolab.php Wed Oct 10 11:19:54 2007 +0200 +++ b/framework/Share/Share/kolab.php Wed Oct 10 11:20:13 2007 +0200 @@ -66,6 +66,38 @@ class Horde_Share_kolab extends Horde_Sh } /** + * Initializes the object. + */ + function __wakeup() + { + global $conf; + + if (empty($conf['kolab']['enabled'])) { + Horde::fatal('You must enable the kolab settings to use the Kolab Share driver.', __FILE__, __LINE__); + } + + foreach (array_keys($this->_cache) as $name) { + $this->_cache[$name]->setShareOb($this); + $this->_cache[$name]->storageObject->setStorage($this->_storage); + } + + parent::__wakeup(); + } + + /** + * Returns the properties that need to be serialized. + * + * @return array List of serializable properties. + */ + function __sleep() + { + $properties = get_object_vars($this); + unset($properties['_sortList']); + $properties = array_keys($properties); + return $properties; + } + + /** * Returns an array of all shares that $userid has access to. * * @param string $userid The userid of the user to check access for. @@ -242,7 +274,14 @@ class Horde_Share_Storage_kolab { function Horde_Share_Storage_kolab($app) { $this->_app = $app; - + return $this->__wakeup(); + } + + /** + * Initializes the object. + */ + function __wakeup() + { // Connect to the IMAP server $this->_imap = &Kolab_IMAP_Connection::singleton(Kolab::getServer('imap'), $GLOBALS['conf']['kolab']['imap']['port'], @@ -254,6 +293,19 @@ class Horde_Share_Storage_kolab { if (is_a($result, 'PEAR_Error')) { return $result; } + } + + /** + * Returns the properties that need to be serialized. + * + * @return array List of serializable properties. + */ + function __sleep() + { + $properties = get_object_vars($this); + unset($properties['_imap']); + $properties = array_keys($properties); + return $properties; } /** @@ -363,10 +415,12 @@ class Horde_Share_Storage_kolab { * @param string $object The share to fetch. * @param string $class Subclass of Horde_Share_Object to use. Defaults * to ImapObject_Share. + * @param array $perms The permissions of the share if known + * * @return Horde_Share_Object_kolab The share object or a PEAR error if * the share was not found. */ - function &getObject($object, $class = 'ImapObject_Share') + function &getObject($object, $class = 'ImapObject_Share', $perms = null) { if (empty($object)) { $error = PEAR::raiseError('No object requested.'); @@ -399,14 +453,17 @@ class Horde_Share_Storage_kolab { $object = $this->getDefaultShare(); } - $share->setFolder($object); - $result = $share->accessible(); - if (is_a($result, 'PEAR_Error')) { - return $result; - } - if (!$result) { - return PEAR::raiseError(sprintf(_("Share \"%s\" not accessible."), $object)); - } + $share->setFolder($object, $perms); + /* FIXME: Is this call necessary at all? You should try to access a share that + * cannot be accessed and see what happens. + *$result = $share->accessible(); + *if (is_a($result, 'PEAR_Error')) { + *return $result; + *} + *if (!$result) { + *return PEAR::raiseError(sprintf(_("Share \"%s\" not accessible."), $object)); + *} + */ return $share; } @@ -689,6 +746,19 @@ class Horde_Share_Object_kolab extends H class Horde_Share_Object_kolab extends Horde_Share_Object { /** + * Returns the properties that need to be serialized. + * + * @return array List of serializable properties. + */ + function __sleep() + { + $properties = get_object_vars($this); + unset($properties['_shareOb']); + $properties = array_keys($properties); + return $properties; + } + + /** * Checks to see if a user has a given permission. * * @param string $userid The userid of the user. @@ -803,6 +873,19 @@ class ImapObject_Share { } /** + * Returns the properties that need to be serialized. + * + * @return array List of serializable properties. + */ + function __sleep() + { + $properties = get_object_vars($this); + unset($properties['_storage']); + $properties = array_keys($properties); + return $properties; + } + + /** * Sets the storage driver for this storage object. * * @param Horde_Share_Storage_kolab $storage A {@link Horde_Share_storage_kolab} instance. @@ -810,6 +893,10 @@ class ImapObject_Share { function setStorage(&$storage) { $this->_storage = &$storage; + if (isset($this->_perm)) { + $imap = &$storage->getImap(); + $this->_perm->setImap($imap); + } } /** @@ -817,25 +904,29 @@ class ImapObject_Share { * * @param string $folder Name of the IMAP folder. * @param boolean $force Enforce setting the folder. - */ - function setFolder($folder, $force = false) + * @param array $perms The permissions of the folder if they are known + */ + function setFolder($folder, $force = false, $perms = null) { if ($this->_folder == KOLAB_SHARE_INVALID || $force) { $this->_folder = $folder; if (isset($this->_perm)) { $this->_perm->setFolder($folder); } else { - if ($this->exists()) { - $perms = null; - } else { - $perms = array('users' => array(Auth::getAuth() => PERMS_SHOW - | PERMS_READ - | PERMS_EDIT - | PERMS_DELETE)); + if (empty($perms)) { + if ($this->exists()) { + // The permissions are unknown but the folder exists -> discover permissions + $perms = null; + } else { + $perms = array('users' => array(Auth::getAuth() => PERMS_SHOW + | PERMS_READ + | PERMS_EDIT + | PERMS_DELETE)); + } } $perm = &new ImapFolder_Permission($folder, $this->_storage->getImap(), - $this, $perms); + $this->getOwner(), $perms); $this->setPermission($perm); } } @@ -1265,11 +1356,11 @@ class ImapFolder_Permission extends Data var $data; /** - * The storage driver for this object. - * - * @var Horde_Share_Storage_kolab - */ - var $_storage; + * Owner of the share. + * + * @var string + */ + var $_owner; /** * The ImapFolder_Permission constructor. @@ -1280,11 +1371,11 @@ class ImapFolder_Permission extends Data * @param Horde_Storage $storage A reference to the storage class * @param array $perms A set of initial permissions. */ - function ImapFolder_Permission($folder, &$imap, &$storage, $perms = null) + function ImapFolder_Permission($folder, &$imap, $owner, $perms = null) { $this->_folder = $folder; $this->_imap = &$imap; - $this->_storage = &$storage; + $this->_owner = $owner; // Load the permission from the folder now if (empty($perms)) { @@ -1296,6 +1387,29 @@ class ImapFolder_Permission extends Data } $this->data = $perms; + } + + /** + * Returns the properties that need to be serialized. + * + * @return array List of serializable properties. + */ + function __sleep() + { + $properties = get_object_vars($this); + unset($properties['_imap']); + $properties = array_keys($properties); + return $properties; + } + + /** + * Sets the imap driver for this permission object. + * + * @param + */ + function setImap(&$imap) + { + $this->_imap = &$imap; } /** @@ -1405,6 +1519,8 @@ class ImapFolder_Permission extends Data */ function save() { + // FIXME: If somebody else accessed the folder before us, we will overwrite + // the change here. $current = $this->getPerm(); foreach ($this->data as $user => $user_perms) { @@ -1482,7 +1598,7 @@ class ImapFolder_Permission extends Data function savePermission($user, $perms) { // Convert the horde permission style to IMAP permissions - $result = $user == $this->_storage->getOwner() ? 'a' : ''; + $result = $user == $this->_owner ? 'a' : ''; if ($perms & PERMS_SHOW) { $result .= 'l'; } Index: horde-framework-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/horde-framework-kolab.spec,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- horde-framework-kolab.spec 4 Oct 2007 09:47:55 -0000 1.23 +++ horde-framework-kolab.spec 10 Oct 2007 09:46:37 -0000 1.24 @@ -29,6 +29,7 @@ Patch0: HK-GW-Fix_Prefs_for_Ingo.patch Patch1: HK-GW-Fix_the_share_params.patch Patch2: HK-GW-Fix_annotation_use.patch +Patch3: HK-GW-Share_caching.patch # Build Info Prefix: %{l_prefix} @@ -52,6 +53,7 @@ %patch -p2 -P 0 %patch -p2 -P 1 %patch -p2 -P 2 + %patch -p2 -P 3 %build From cvs at kolab.org Wed Oct 10 17:40:50 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 10 Oct 2007 17:40:50 +0200 (CEST) Subject: gunnar: server/php Makefile,1.9,NONE kolab.patch,1.6,NONE Message-ID: <20071010154050.27F4E602A2A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php In directory doto:/tmp/cvs-serv30495 Removed Files: Makefile kolab.patch Log Message: The PHP fix has been included upstream. --- Makefile DELETED --- --- kolab.patch DELETED --- From cvs at kolab.org Wed Oct 10 17:41:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 10 Oct 2007 17:41:36 +0200 (CEST) Subject: gunnar: server Makefile,1.40,1.41 Message-ID: <20071010154136.88596602A2A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv30545 Modified Files: Makefile Log Message: Remove the php package also here. Index: Makefile =================================================================== RCS file: /kolabrepository/server/Makefile,v retrieving revision 1.40 retrieving revision 1.41 diff -u -d -r1.40 -r1.41 --- Makefile 13 Sep 2007 10:05:49 -0000 1.40 +++ Makefile 10 Oct 2007 15:41:34 -0000 1.41 @@ -27,7 +27,6 @@ BASE_PACKAGES=openldap \ apache2-php \ - php \ php-smarty PERL_PACKAGES=perl-kolab \ From cvs at kolab.org Wed Oct 10 17:42:35 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 10 Oct 2007 17:42:35 +0200 (CEST) Subject: gunnar: server/php .cvsignore,1.3,NONE Message-ID: <20071010154235.9C23C602A2A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php In directory doto:/tmp/cvs-serv30593 Removed Files: .cvsignore Log Message: Clean directory. --- .cvsignore DELETED --- From cvs at kolab.org Wed Oct 10 18:34:37 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 10 Oct 2007 18:34:37 +0200 (CEST) Subject: gunnar: server/patches/imap KOLAB_imap-c-client_2006j2_Annotations.patch, 1.1, 1.2 Message-ID: <20071010163437.8862A602A22@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/imap In directory doto:/tmp/cvs-serv31686 Modified Files: KOLAB_imap-c-client_2006j2_Annotations.patch Log Message: Fix the annotation patch for 2006j2 Index: KOLAB_imap-c-client_2006j2_Annotations.patch =================================================================== RCS file: /kolabrepository/server/patches/imap/KOLAB_imap-c-client_2006j2_Annotations.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- KOLAB_imap-c-client_2006j2_Annotations.patch 29 Sep 2007 12:13:54 -0000 1.1 +++ KOLAB_imap-c-client_2006j2_Annotations.patch 10 Oct 2007 16:34:35 -0000 1.2 @@ -2,7 +2,7 @@ diff -r 1e76e41a2cd8 src/c-client/imap4r1.c --- a/src/c-client/imap4r1.c Sat Sep 29 11:01:45 2007 +0200 -+++ b/src/c-client/imap4r1.c Sat Sep 29 11:08:13 2007 +0200 ++++ b/src/c-client/imap4r1.c Wed Oct 10 18:32:39 2007 +0200 @@ -135,7 +135,8 @@ typedef struct imap_argument { #define MULTIAPPEND 13 #define SNLIST 14 @@ -248,7 +248,7 @@ getacl_t ar = (getacl_t) mail_parameters (NIL,GET_ACL,NIL); diff -r 1e76e41a2cd8 src/c-client/imap4r1.h --- a/src/c-client/imap4r1.h Sat Sep 29 11:01:45 2007 +0200 -+++ b/src/c-client/imap4r1.h Sat Sep 29 11:08:13 2007 +0200 ++++ b/src/c-client/imap4r1.h Wed Oct 10 18:32:39 2007 +0200 @@ -273,3 +273,5 @@ long imap_setquota (MAILSTREAM *stream,c long imap_setquota (MAILSTREAM *stream,char *qroot,STRINGLIST *limits); long imap_getquota (MAILSTREAM *stream,char *qroot); @@ -257,7 +257,7 @@ +long imap_setannotation (MAILSTREAM *stream,ANNOTATION *annotation); diff -r 1e76e41a2cd8 src/c-client/mail.c --- a/src/c-client/mail.c Sat Sep 29 11:01:45 2007 +0200 -+++ b/src/c-client/mail.c Sat Sep 29 11:08:13 2007 +0200 ++++ b/src/c-client/mail.c Wed Oct 10 18:32:39 2007 +0200 @@ -69,6 +69,7 @@ static newsrcquery_t mailnewsrcquery = N static newsrcquery_t mailnewsrcquery = NIL; /* ACL results callback */ @@ -323,13 +323,13 @@ * Accepts: pointer to quotalist pointer diff -r 1e76e41a2cd8 src/c-client/mail.h --- a/src/c-client/mail.h Sat Sep 29 11:01:45 2007 +0200 -+++ b/src/c-client/mail.h Sat Sep 29 11:08:13 2007 +0200 ++++ b/src/c-client/mail.h Wed Oct 10 18:32:39 2007 +0200 @@ -351,6 +351,8 @@ #define SET_SCANCONTENTS (long) 573 #define GET_MHALLOWINBOX (long) 574 #define SET_MHALLOWINBOX (long) 575 -+#define GET_ANNOTATION (long) 570 -+#define SET_ANNOTATION (long) 571 ++#define GET_ANNOTATION (long) 576 ++#define SET_ANNOTATION (long) 577 /* Driver flags */ @@ -379,7 +379,7 @@ void mail_free_body_parameter (PARAMETER **parameter); diff -r 1e76e41a2cd8 src/mtest/mtest.c --- a/src/mtest/mtest.c Sat Sep 29 11:01:45 2007 +0200 -+++ b/src/mtest/mtest.c Sat Sep 29 11:08:13 2007 +0200 ++++ b/src/mtest/mtest.c Wed Oct 10 18:32:39 2007 +0200 @@ -145,6 +145,8 @@ int main () #endif return NIL; From cvs at kolab.org Thu Oct 11 08:19:05 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 11 Oct 2007 08:19:05 +0200 (CEST) Subject: gunnar: server/patches/cyrus-imapd KOLAB_cyrus-cyradm_2.3.9_Annotations.patch, NONE, 1.1 README_Annotations.patch, NONE, 1.1 Message-ID: <20071011061905.4DF1A602A25@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd In directory doto:/tmp/cvs-serv19882 Added Files: KOLAB_cyrus-cyradm_2.3.9_Annotations.patch README_Annotations.patch Log Message: Added the cyradm patch. --- NEW FILE: KOLAB_cyrus-cyradm_2.3.9_Annotations.patch --- Allows to use arbitrary annotations with the cyradm tool. diff -r 124e8301a15d doc/man/cyradm.1.html --- a/doc/man/cyradm.1.html Mon Oct 01 11:18:56 2007 +0200 +++ b/doc/man/cyradm.1.html Thu Oct 11 08:14:56 2007 +0200 @@ -255,6 +255,13 @@ mailboxes).

Sets an email address to which messages injected into the server via NNTP will be sent.

+
+ +
/explicit/annotation + +
+

Sets the annotation /explicit/annotation +on mailbox to value.

diff -r 124e8301a15d perl/imap/IMAP/Admin.pm --- a/perl/imap/IMAP/Admin.pm Mon Oct 01 11:18:56 2007 +0200 +++ b/perl/imap/IMAP/Admin.pm Thu Oct 11 08:14:56 2007 +0200 @@ -795,11 +795,11 @@ sub mboxconfig { return undef; } - if(!exists($values{$entry})) { - $self->{error} = "Unknown parameter $entry"; - } - - $entry = $values{$entry}; + if(exists($values{$entry})) { + $entry = $values{$entry}; + } else { + $self->{error} = "Unknown parameter $entry" unless substr($entry,0,1) eq "/"; + } my ($rc, $msg); diff -r 124e8301a15d perl/imap/IMAP/Shell.pm --- a/perl/imap/IMAP/Shell.pm Mon Oct 01 11:18:56 2007 +0200 +++ b/perl/imap/IMAP/Shell.pm Thu Oct 11 08:14:56 2007 +0200 @@ -126,7 +126,7 @@ my %builtins = (exit => [\&_sc_info, '[mailbox]', 'display mailbox/server metadata'], mboxcfg => - [\&_sc_mboxcfg, 'mailbox [comment|condstore|news2mail|expire|sieve|squat] value', + [\&_sc_mboxcfg, 'mailbox [comment|condstore|news2mail|expire|sieve|squat|/] value', 'configure mailbox'], mboxconfig => 'mboxcfg', reconstruct => @@ -1424,7 +1424,7 @@ sub _sc_mboxcfg { while (defined ($opt = shift(@argv))) { last if $opt eq '--'; if ($opt =~ /^-/) { - die "usage: mboxconfig mailbox [comment|condstore|news2mail|expire|sieve|squat] value\n"; + die "usage: mboxconfig mailbox [comment|condstore|news2mail|expire|sieve|squat|/] value\n"; } else { push(@nargv, $opt); @@ -1433,7 +1433,7 @@ sub _sc_mboxcfg { } push(@nargv, @argv); if (@nargv < 2) { - die "usage: mboxconfig mailbox [comment|condstore|news2mail|expire|sieve|squat] value\n"; + die "usage: mboxconfig mailbox [comment|condstore|news2mail|expire|sieve|squat|/] value\n"; } if (!$cyrref || !$$cyrref) { die "mboxconfig: no connection to server\n"; diff -r 124e8301a15d perl/imap/cyradm.sh --- a/perl/imap/cyradm.sh Mon Oct 01 11:18:56 2007 +0200 +++ b/perl/imap/cyradm.sh Thu Oct 11 08:14:56 2007 +0200 @@ -235,6 +235,10 @@ Sets an email address to which messages Sets an email address to which messages injected into the server via NNTP will be sent. +=item C + +Sets the annotation I on I to I. + =back =item C [C<--partition> I] I I --- 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. From cvs at kolab.org Thu Oct 11 17:14:55 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 11 Oct 2007 17:14:55 +0200 (CEST) Subject: gunnar: server/kolabd/kolabd kolabd.spec.in,1.17,1.18 Message-ID: <20071011151455.D6C1D60016A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv1129 Modified Files: kolabd.spec.in Log Message: OpenPKG renamed the package back to apache. Index: kolabd.spec.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolabd.spec.in,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- kolabd.spec.in 27 Aug 2007 19:11:49 -0000 1.17 +++ kolabd.spec.in 11 Oct 2007 15:14:53 -0000 1.18 @@ -59,16 +59,16 @@ PreReq: amavisd PreReq: clamav >= 0.90 PreReq: imap, imap::with_annotate = yes -PreReq: apache2, apache2::with_mod_dav = yes, apache2::with_mod_ssl = yes, apache2::with_mod_ldap = yes +PreReq: apache, apache::with_mod_dav = yes, apache::with_mod_ssl = yes, apache::with_mod_ldap = yes %if "%{with_horde}" == "yes" # FIXME (optional) # what about php::with_tidy = yes (for Horde Imp) PreReq: php, php::with_pear = yes, php::with_gettext = yes, php::with_dom = yes, php::with_mcrypt = yes, php::with_iconv = yes, php::with_mbstring = yes, php::with_mbregex = yes, php::with_gd = yes, php::with_imap = yes, php::with_ssl = yes, php::with_ctype = yes, php::with_openldap = yes, php::with_mhash = yes, php::with_zlib = yes, php::with_bdb = yes, php::with_imap_annotate = yes, php::with_pear = yes, php::with_xml = yes, php::with_mm = yes -PreReq: apache2-php, apache2-php::with_gettext = yes, apache2-php::with_dom = yes, apache2-php::with_mcrypt = yes, apache2-php::with_iconv = yes, apache2-php::with_mbstring = yes, apache2-php::with_mbregex = yes, apache2-php::with_gd = yes, apache2-php::with_imap = yes, apache2-php::with_ssl = yes, apache2-php::with_ctype = yes, apache2-php::with_openldap = yes, apache2-php::with_mhash = yes, apache2-php::with_zlib = yes, apache2-php::with_bdb = yes, apache2-php::with_imap_annotate = yes, apache2-php::with_pear = yes, apache2-php::with_xml = yes, apache2-php::with_mm = yes +PreReq: apache-php, apache-php::with_gettext = yes, apache-php::with_dom = yes, apache-php::with_mcrypt = yes, apache-php::with_iconv = yes, apache-php::with_mbstring = yes, apache-php::with_mbregex = yes, apache-php::with_gd = yes, apache-php::with_imap = yes, apache-php::with_ssl = yes, apache-php::with_ctype = yes, apache-php::with_openldap = yes, apache-php::with_mhash = yes, apache-php::with_zlib = yes, apache-php::with_bdb = yes, apache-php::with_imap_annotate = yes, apache-php::with_pear = yes, apache-php::with_xml = yes, apache-php::with_mm = yes %else PreReq: php, php::with_zlib = yes, php::with_bdb = yes, php::with_gettext = yes, php::with_imap = yes, php::with_imap_annotate = yes, php::with_openldap = yes, php::with_pear = yes, php::with_xml = yes, php::with_dom = yes, php::with_ssl = yes, php::with_mbstring = yes, php::with_mm = yes -PreReq: apache2-php, apache2-php::with_zlib = yes, apache2-php::with_bdb = yes, apache2-php::with_gettext = yes, apache2-php::with_imap = yes, apache2-php::with_imap_annotate = yes, apache2-php::with_openldap = yes, apache2-php::with_pear = yes, apache2-php::with_xml = yes, apache2-php::with_dom = yes, apache2-php::with_ssl = yes, apache2-php::with_mbstring = yes, apache2-php::with_mm = yes +PreReq: apache-php, apache-php::with_zlib = yes, apache-php::with_bdb = yes, apache-php::with_gettext = yes, apache-php::with_imap = yes, apache-php::with_imap_annotate = yes, apache-php::with_openldap = yes, apache-php::with_pear = yes, apache-php::with_xml = yes, apache-php::with_dom = yes, apache-php::with_ssl = yes, apache-php::with_mbstring = yes, apache-php::with_mm = yes %endif PreReq: imapd, imapd::with_group = yes, imapd::with_group_igncase = yes, imapd::with_ldap = yes, imapd::with_annotate = yes, imapd::with_atvdom = yes, imapd::with_morelogging = yes, imapd::with_kolab = yes From cvs at kolab.org Thu Oct 11 17:38:08 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 11 Oct 2007 17:38:08 +0200 (CEST) Subject: gunnar: server install-kolab.sh,1.7,1.8 Message-ID: <20071011153808.A7AF5600168@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv1603 Modified Files: install-kolab.sh Log Message: Update to beta2, add postfix as MTA package and specify options in order to avoid build conflicts. Index: install-kolab.sh =================================================================== RCS file: /kolabrepository/server/install-kolab.sh,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- install-kolab.sh 16 Aug 2007 10:53:19 -0000 1.7 +++ install-kolab.sh 11 Oct 2007 15:38:06 -0000 1.8 @@ -1,6 +1,6 @@ #!/bin/sh -KOLAB_VERSION="2.2-beta1" +KOLAB_VERSION="2.2-beta2" KID="19414" TAG="kolab" @@ -9,8 +9,8 @@ INSTALL="" -PACKAGES="openpkg-tools kolabd kolab-filter kolab-freebusy kolab-webadmin" -DEFINE="" +PACKAGES="openpkg-tools postfix kolabd kolab-filter kolab-freebusy kolab-webadmin" +DEFINE="-D sasl::with_ldap -D sasl::with_login -D postfix::with_sasl -D postfix::with_ssl -D postfix::with_ldap" #Flags FLAG_BASE="" From cvs at kolab.org Thu Oct 11 19:05:10 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 11 Oct 2007 19:05:10 +0200 (CEST) Subject: gunnar: server/openldap .cvsignore, 1.1, NONE Makefile, 1.21, NONE kolab.patch, 1.11, NONE Message-ID: <20071011170510.94678602A2F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/openldap In directory doto:/tmp/cvs-serv3579/openldap Removed Files: .cvsignore Makefile kolab.patch Log Message: Thomas provided a patch for the pth choice that I applied upstream. So this is not needed anymore. --- .cvsignore DELETED --- --- Makefile DELETED --- --- kolab.patch DELETED --- From cvs at kolab.org Thu Oct 11 19:05:10 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 11 Oct 2007 19:05:10 +0200 (CEST) Subject: gunnar: server Makefile,1.41,1.42 Message-ID: <20071011170510.79CAB602A2F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv3579 Modified Files: Makefile Log Message: Thomas provided a patch for the pth choice that I applied upstream. So this is not needed anymore. Index: Makefile =================================================================== RCS file: /kolabrepository/server/Makefile,v retrieving revision 1.41 retrieving revision 1.42 diff -u -d -r1.41 -r1.42 --- Makefile 10 Oct 2007 15:41:34 -0000 1.41 +++ Makefile 11 Oct 2007 17:05:08 -0000 1.42 @@ -25,9 +25,7 @@ export KOLABRPMTMP = $(HOME)/RPM/TMP endif -BASE_PACKAGES=openldap \ - apache2-php \ - php-smarty +BASE_PACKAGES=php-smarty PERL_PACKAGES=perl-kolab \ kolabconf From cvs at kolab.org Thu Oct 11 19:06:11 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 11 Oct 2007 19:06:11 +0200 (CEST) Subject: gunnar: server/apache2-php .cvsignore, 1.1, NONE Makefile, 1.1, NONE kolab.patch, 1.1, NONE Message-ID: <20071011170611.90CB1602A2F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/apache2-php In directory doto:/tmp/cvs-serv3673/apache2-php Removed Files: .cvsignore Makefile kolab.patch Log Message: This has also been integrated upstream a while ago. --- .cvsignore DELETED --- --- Makefile DELETED --- --- kolab.patch DELETED --- From cvs at kolab.org Thu Oct 11 20:17:07 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 11 Oct 2007 20:17:07 +0200 (CEST) Subject: gunnar: server/kolabd/kolabd kolabd.spec.in,1.18,1.19 Message-ID: <20071011181707.B7E5B60016A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv5297 Modified Files: kolabd.spec.in Log Message: Require openldap without pth. Index: kolabd.spec.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolabd.spec.in,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- kolabd.spec.in 11 Oct 2007 15:14:53 -0000 1.18 +++ kolabd.spec.in 11 Oct 2007 18:17:05 -0000 1.19 @@ -58,6 +58,7 @@ PreReq: sasl::with_ldap = yes, sasl::with_login = yes PreReq: amavisd PreReq: clamav >= 0.90 +PreReq: openldap, openldap::with_pth = no PreReq: imap, imap::with_annotate = yes PreReq: apache, apache::with_mod_dav = yes, apache::with_mod_ssl = yes, apache::with_mod_ldap = yes From cvs at kolab.org Fri Oct 12 11:54:02 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 12 Oct 2007 11:54:02 +0200 (CEST) Subject: wilde: utils/admin hash-imap-spool,NONE,1.1 Message-ID: <20071012095402.550B8602A27@lists.intevation.de> Author: wilde Update of /kolabrepository/utils/admin In directory doto:/tmp/cvs-serv27383 Added Files: hash-imap-spool Log Message: Added hash-imap-spool: converts plain spool dir to basic hashing. Initial version. Rational: Starting with version 2.1 Kolab Server activates "basic hashing" for the Cyrus IMAP spool directory. Older versions of Kolab Server used no hashing for the spool directory, therefor the structure of the spool directory must be converted when upgrading to 2.1 or later. --- NEW FILE: hash-imap-spool --- #! /usr/bin/python # -*- mode: python, coding: iso-8859-1 -*- # -------------------------------------------------------------------- # hash-imap-spool # $Id: hash-imap-spool,v 1.1 2007/10/12 09:54:00 wilde Exp $ # -------------------------------------------------------------------- # Copyright (C) 2007 by Intevation GmbH # Author(s): # Sascha Wilde # This program is free software under the GNU GPL (>=v2) # Read the file COPYING coming with the software for details. # ------------------------------------------------------------------- """Convert plain imap spool to basic hashing." Usage: hash-imap-spool.py [CONFFILE] The program converts plain imap spool directory as found in Kolab Server 2.0 to spool with basic hashing as needed for Kolab Server 2.1 and later. The spool deirctories are read from the imapd.conf CONFFILE which defaults to /kolab/etc/imapd/imapd.conf if not given as an argument. """ import sys import os import os.path import re import string def basic_hash(name): c = name[0].lower() if c in string.ascii_lowercase: return c else: return "q" def tmphash_dir(dir, tmp_hash_dirs, dstdir=".", extradir=""): hash_dir = "." + basic_hash(dir) if not hash_dir in tmp_hash_dirs: os.mkdir(dstdir + "/" + hash_dir, 0700) tmp_hash_dirs.append(hash_dir) if extradir: extradirpath = dstdir + "/" + hash_dir + "/" + extradir if not os.path.isdir(extradirpath): os.mkdir(extradirpath, 0700) if not extradir.endswith("/"): extradir = extradir + "/" dir_new = dstdir + "/" + hash_dir + "/" + extradir + dir os.rename(dir, dir_new) def cleanup_tmp_hash_dirs(tmp_hash_dirs): for hash_dir in tmp_hash_dirs: os.rename(hash_dir, hash_dir[1]) print ".", del tmp_hash_dirs[:] def hash_users(tmp_hash_dirs): for user in os.listdir("."): tmphash_dir(user, tmp_hash_dirs, "..", "user") print ".", def hash_mailboxes(): tmp_hash_dirs = [] for dir in os.listdir("."): if dir == "user": old_cwd = os.getcwd() os.chdir("user") hash_users(tmp_hash_dirs) os.chdir(old_cwd) os.rmdir("user") else: tmphash_dir(dir, tmp_hash_dirs) print ".", cleanup_tmp_hash_dirs(tmp_hash_dirs) def hash_domains(): tmp_hash_dirs = [] for domain in os.listdir("."): print "Working on domain %s" % domain, old_cwd = os.getcwd() os.chdir(domain) hash_mailboxes() os.chdir(old_cwd) tmphash_dir(domain, tmp_hash_dirs) print ".", print "done" print "Cleaning up", cleanup_tmp_hash_dirs(tmp_hash_dirs) print "done" def hash_spool_dir(path): print "Converting %s ..." % path try: os.chdir("%s/domain" % path) except: print "Can't enter `%s/domain'!" % path hash_domains() def read_conffile(conffile): """Parse conffile and return list of paths to the partititions.""" n = 0 paths = [] spoolpath_re = re.compile("^(?:meta)?partition-.*:\s+(?P.+)") try: file = open(conffile) for line in file: m = spoolpath_re.match(line) if m: paths.append(m.group("path")) return paths except: print "Can't read configuration file `%s'." % conffile sys.exit(23) def main(): if len(sys.argv) == 1: conffile = '/kolab/etc/imapd/imapd.conf' elif len(sys.argv) == 2: conffile = sys.argv[1] else: print __doc__ sys.exit(0) paths = read_conffile(conffile) if len(paths) > 0: for path in paths: hash_spool_dir(path) else: print "Could not find any spool directories in %s" % conffile sys.exit(23) main() From cvs at kolab.org Fri Oct 12 13:49:22 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 12 Oct 2007 13:49:22 +0200 (CEST) Subject: gunnar: server install-kolab.sh,1.8,1.9 Message-ID: <20071012114922.4F70D602A27@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv29765 Modified Files: install-kolab.sh Log Message: Add the required openldap options to the installer. Index: install-kolab.sh =================================================================== RCS file: /kolabrepository/server/install-kolab.sh,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- install-kolab.sh 11 Oct 2007 15:38:06 -0000 1.8 +++ install-kolab.sh 12 Oct 2007 11:49:20 -0000 1.9 @@ -9,8 +9,8 @@ INSTALL="" -PACKAGES="openpkg-tools postfix kolabd kolab-filter kolab-freebusy kolab-webadmin" -DEFINE="-D sasl::with_ldap -D sasl::with_login -D postfix::with_sasl -D postfix::with_ssl -D postfix::with_ldap" +PACKAGES="openpkg-tools openldap postfix kolabd kolab-filter kolab-freebusy kolab-webadmin" +DEFINE="-D openldap::with_pth=no -D sasl::with_ldap -D sasl::with_login -D postfix::with_sasl -D postfix::with_ssl -D postfix::with_ldap" #Flags FLAG_BASE="" From cvs at kolab.org Fri Oct 12 14:47:14 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 12 Oct 2007 14:47:14 +0200 (CEST) Subject: wilde: utils/admin hash-imap-spool,1.1,1.2 Message-ID: <20071012124714.DDC6D602A27@lists.intevation.de> Author: wilde Update of /kolabrepository/utils/admin In directory doto:/tmp/cvs-serv31320 Modified Files: hash-imap-spool Log Message: Fixed special case of sub folders of shared folders. Index: hash-imap-spool =================================================================== RCS file: /kolabrepository/utils/admin/hash-imap-spool,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- hash-imap-spool 12 Oct 2007 09:54:00 -0000 1.1 +++ hash-imap-spool 12 Oct 2007 12:47:12 -0000 1.2 @@ -62,24 +62,26 @@ del tmp_hash_dirs[:] -def hash_users(tmp_hash_dirs): - for user in os.listdir("."): - tmphash_dir(user, tmp_hash_dirs, "..", "user") - print ".", +def hash_submb(name, tmp_hash_dirs): + for file in os.listdir("."): + if os.path.isdir(file): + tmphash_dir(file, tmp_hash_dirs, "..", name) + print ".", def hash_mailboxes(): tmp_hash_dirs = [] for dir in os.listdir("."): - if dir == "user": + if dir == "user" or dir[0:6] == "shared": old_cwd = os.getcwd() - os.chdir("user") - hash_users(tmp_hash_dirs) + os.chdir(dir) + hash_submb(dir, tmp_hash_dirs) os.chdir(old_cwd) - os.rmdir("user") - else: - tmphash_dir(dir, tmp_hash_dirs) - print ".", + if dir == "user": + os.rmdir(dir) + continue + tmphash_dir(dir, tmp_hash_dirs) + print ".", cleanup_tmp_hash_dirs(tmp_hash_dirs) From cvs at kolab.org Fri Oct 12 18:30:37 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 12 Oct 2007 18:30:37 +0200 (CEST) Subject: thomas: server/perl-kolab perl-kolab.spec,1.101,1.102 Message-ID: <20071012163037.4E464602A52@lists.intevation.de> Author: thomas Update of /kolabrepository/server/perl-kolab In directory doto:/tmp/cvs-serv4085 Modified Files: perl-kolab.spec Log Message: Added epoch to circumvent upgrading problems from perl-kolab-5.8.x to -2.x Index: perl-kolab.spec =================================================================== RCS file: /kolabrepository/server/perl-kolab/perl-kolab.spec,v retrieving revision 1.101 retrieving revision 1.102 diff -u -d -r1.101 -r1.102 --- perl-kolab.spec 10 Aug 2007 14:51:59 -0000 1.101 +++ perl-kolab.spec 12 Oct 2007 16:30:35 -0000 1.102 @@ -42,6 +42,7 @@ License: GPL Version: %{V_version} Release: %{V_release} +Epoch: 1 # list of sources Source0: %{V_package}-%{V_source_tag}.tar.gz From cvs at kolab.org Sat Oct 13 13:51:10 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 13 Oct 2007 13:51:10 +0200 (CEST) Subject: gunnar: server/kolabd/kolabd/dist_conf kolab,1.47,1.48 Message-ID: <20071013115110.8DCA9602A28@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/dist_conf In directory doto:/tmp/cvs-serv28778/kolabd/kolabd/dist_conf Modified Files: kolab Log Message: OpenPKG changed the sasl apps location. Index: kolab =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/kolab,v retrieving revision 1.47 retrieving revision 1.48 diff -u -d -r1.47 -r1.48 --- kolab 16 Aug 2007 10:47:10 -0000 1.47 +++ kolab 13 Oct 2007 11:51:08 -0000 1.48 @@ -161,7 +161,7 @@ phppeardir=${phplibdir2}/pear sasl_authdconffile=${sysconfdir}/sasl/saslauthd.conf -sasl_smtpconffile=${sysconfdir}/sasl/apps/smtpd.conf +sasl_smtpconffile=${sysconfdir}/sasl/smtpd.conf sasl_logfile=${localstatedir}/sasl/log/saslauthd.log sysrundir=${localstatedir}/run From cvs at kolab.org Sat Oct 13 14:00:52 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 13 Oct 2007 14:00:52 +0200 (CEST) Subject: gunnar: server install-kolab.sh,1.9,1.10 Message-ID: <20071013120052.17333602A28@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv28948 Modified Files: install-kolab.sh Log Message: Typo. Index: install-kolab.sh =================================================================== RCS file: /kolabrepository/server/install-kolab.sh,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- install-kolab.sh 12 Oct 2007 11:49:20 -0000 1.9 +++ install-kolab.sh 13 Oct 2007 12:00:50 -0000 1.10 @@ -205,7 +205,7 @@ if [ -d "$PREFIX/etc/openpkg" ]; then # Assume an upgrade based on the current directory INSTALL=`pwd` - echo "Found an OpenPKG envrionment. Assuming upgrade..." + echo "Found an OpenPKG environment. Assuming upgrade..." else INSTALLER=`find . -name openpkg-*.src.sh -print` BINARY=`find . -name openpkg-*.sh \! -name openpkg-*.src.sh -print` From cvs at kolab.org Sun Oct 14 14:32:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 14 Oct 2007 14:32:00 +0200 (CEST) Subject: gunnar: server/kolab-freebusy/freebusy config.php,1.3,1.4 Message-ID: <20071014123200.C2D6E60C4A1@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-freebusy/freebusy In directory doto:/tmp/cvs-serv28173/kolab-freebusy/freebusy Modified Files: config.php Log Message: OpenPKG renamed apache2 back to apache. Index: config.php =================================================================== RCS file: /kolabrepository/server/kolab-freebusy/freebusy/config.php,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- config.php 8 Aug 2007 15:45:49 -0000 1.3 +++ config.php 14 Oct 2007 12:31:58 -0000 1.4 @@ -113,7 +113,7 @@ $params['send_content_disposition'] = false; // Where are we logging to? -$params['log'] = 'file:/kolab/var/apache2/log/freebusy/freebusy.log'; // File... +$params['log'] = 'file:/kolab/var/apache/log/freebusy/freebusy.log'; // File... // $params['log'] = 'syslog:cons, pid'; // Or syslog... // What level of output should we log? Higher levels give more verbose output. From cvs at kolab.org Sun Oct 14 14:32:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 14 Oct 2007 14:32:00 +0200 (CEST) Subject: gunnar: server/kolabd/kolabd kolabd.spec.in,1.19,1.20 Message-ID: <20071014123200.C16D8602A5F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv28173/kolabd/kolabd Modified Files: kolabd.spec.in Log Message: OpenPKG renamed apache2 back to apache. Index: kolabd.spec.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolabd.spec.in,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- kolabd.spec.in 11 Oct 2007 18:17:05 -0000 1.19 +++ kolabd.spec.in 14 Oct 2007 12:31:58 -0000 1.20 @@ -118,7 +118,7 @@ # generate file list %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \ %dir '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/kolab/httpd_sessions \ - %dir '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/apache2/log/php \ + %dir '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/apache/log/php \ '%config %{l_prefix}/etc/kolab/*.pem' \ '%config %{l_prefix}/etc/kolab/*.schema' \ '%config %{l_prefix}/etc/kolab/kolab.conf' \ From cvs at kolab.org Sun Oct 14 14:32:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 14 Oct 2007 14:32:00 +0200 (CEST) Subject: gunnar: server/horde/fbview-horde fbview-horde.spec,1.12,1.13 Message-ID: <20071014123200.B75FC602A56@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/fbview-horde In directory doto:/tmp/cvs-serv28173/horde/fbview-horde Modified Files: fbview-horde.spec Log Message: OpenPKG renamed apache2 back to apache. Index: fbview-horde.spec =================================================================== RCS file: /kolabrepository/server/horde/fbview-horde/fbview-horde.spec,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- fbview-horde.spec 1 Oct 2007 15:47:19 -0000 1.12 +++ fbview-horde.spec 14 Oct 2007 12:31:58 -0000 1.13 @@ -3,7 +3,7 @@ %define V_package fbview-%{V_horde_name} %define V_year 2007 %define V_month 10 -%define V_day 01 +%define V_day 13 %define V_version 3.2_alpha %define V_uver 3.2-alpha %define V_date %{V_year}-%{V_month}-%{V_day} @@ -68,7 +68,7 @@ %install rm -rf $RPM_BUILD_ROOT - %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/apache2/log/fbview + %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/apache/log/fbview %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/fbview %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates @@ -89,7 +89,7 @@ $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/fbview/config/ %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \ - %dir '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/apache2/log/fbview \ + %dir '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/apache/log/fbview \ '%config(noreplace) %{l_prefix}/etc/kolab/templates/fbview-horde-conf.template'\ '%defattr(-,%{l_nusr},%{l_ngrp}) %{l_prefix}/var/kolab/www/fbview/config/conf.php' \ '%config(noreplace) %{l_prefix}/var/kolab/www/fbview/config/conf.php' \ From cvs at kolab.org Sun Oct 14 14:32:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 14 Oct 2007 14:32:00 +0200 (CEST) Subject: gunnar: server/horde/horde horde-kolab.spec,1.18,1.19 Message-ID: <20071014123200.B9B0C602A59@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde In directory doto:/tmp/cvs-serv28173/horde/horde Modified Files: horde-kolab.spec Log Message: OpenPKG renamed apache2 back to apache. Index: horde-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde/horde-kolab.spec,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- horde-kolab.spec 4 Oct 2007 09:47:55 -0000 1.18 +++ horde-kolab.spec 14 Oct 2007 12:31:58 -0000 1.19 @@ -3,7 +3,7 @@ %define V_package %{V_horde_name}-kolab %define V_year 2007 %define V_month 10 -%define V_day 04 +%define V_day 13 %define V_version 3.2_alpha %define V_uver 3.2-alpha %define V_date %{V_year}-%{V_month}-%{V_day} @@ -68,7 +68,7 @@ %install - %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/apache2/log/horde + %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/apache/log/horde %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates @@ -89,7 +89,7 @@ $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/config/ %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \ - %dir '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/apache2/log/horde \ + %dir '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/apache/log/horde \ '%config(noreplace) %{l_prefix}/etc/kolab/templates/horde-kolab-conf.template'\ '%defattr(-,%{l_nusr},%{l_ngrp}) %{l_prefix}/var/kolab/www/horde/config/conf.php' \ '%config(noreplace) %{l_prefix}/var/kolab/www/horde/config/conf.php' \ From cvs at kolab.org Sun Oct 14 14:32:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 14 Oct 2007 14:32:00 +0200 (CEST) Subject: gunnar: server/kolabconf/lib/Kolab Conf.pm,1.10,1.11 Message-ID: <20071014123200.BD962602A5D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabconf/lib/Kolab In directory doto:/tmp/cvs-serv28173/kolabconf/lib/Kolab Modified Files: Conf.pm Log Message: OpenPKG renamed apache2 back to apache. Index: Conf.pm =================================================================== RCS file: /kolabrepository/server/kolabconf/lib/Kolab/Conf.pm,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- Conf.pm 8 Oct 2007 15:38:05 -0000 1.10 +++ Conf.pm 14 Oct 2007 12:31:58 -0000 1.11 @@ -230,8 +230,8 @@ $haschanged{'postfix'} = 1; } elsif ($cfg =~ /saslauthd/) { $haschanged{'saslauthd'} = 1; - } elsif ($cfg =~ /apache2/) { - $haschanged{'apache2'} = 1; + } elsif ($cfg =~ /apache/) { + $haschanged{'apache'} = 1; } elsif ($cfg =~ /proftpd/) { $haschanged{'proftpd'} = 1; } elsif ($cfg =~ /openldap/) { From cvs at kolab.org Sun Oct 14 14:32:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 14 Oct 2007 14:32:00 +0200 (CEST) Subject: gunnar: server/kolabd/kolabd/dist_conf kolab, 1.48, 1.49 kolabsrv.in, 1.7, 1.8 Message-ID: <20071014123200.D7BAA60C4A6@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/dist_conf In directory doto:/tmp/cvs-serv28173/kolabd/kolabd/dist_conf Modified Files: kolab kolabsrv.in Log Message: OpenPKG renamed apache2 back to apache. Index: kolab =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/kolab,v retrieving revision 1.48 retrieving revision 1.49 diff -u -d -r1.48 -r1.49 --- kolab 13 Oct 2007 11:51:08 -0000 1.48 +++ kolab 14 Oct 2007 12:31:58 -0000 1.49 @@ -137,15 +137,15 @@ webserver_document_root=${localstatedir}/kolab/www webserver_cgidir=${webserver_document_root}/cgi-bin webserver_sessions=${localstatedir}/kolab/httpd_sessions -webserver_logdir=${localstatedir}/apache2/log +webserver_logdir=${localstatedir}/apache/log webserver_acceptlock=${webserver_logdir}/accept.lock webserver_runtime_status=${webserver_logdir}/apache_runtime_status webserver_errorlogfile=${webserver_logdir}/apache-error.log webserver_accesslogfile=${webserver_logdir}/apache-access.log -webserver_confdir=${sysconfdir}/apache2 -webserver_pidfile=${localstatedir}/apache2/run/apache2.pid -webserver_mime_magicfile=${sysconfdir}/apache2/mime.magic -webserver_mime_typesfile=${sysconfdir}/apache2/mime.types +webserver_confdir=${sysconfdir}/apache +webserver_pidfile=${localstatedir}/apache/run/apache.pid +webserver_mime_magicfile=${sysconfdir}/apache/mime.magic +webserver_mime_typesfile=${sysconfdir}/apache/mime.types webserver_sslscache=${webserver_logdir}/ssl_scache webserver_sslmutex=${webserver_logdir}/ssl_mutex # webserver_web_prefix is empty indeed @@ -153,9 +153,9 @@ webserver_musr=${kolab_musr} webserver_usr=${kolab_usr} webserver_grp=${kolab_grp} -webserver_rpm=apache2 +webserver_rpm=apache -phpini_dir=${sysconfdir}/apache2 +phpini_dir=${sysconfdir}/apache phplibdir=${libdir}/php phplibdir2=${kolab_statedir}/php phppeardir=${phplibdir2}/pear @@ -178,7 +178,7 @@ resmgr_grp=${kolab_grp} fbview_logfile=${localstatedir}/resmgr/fbview.log -freebusy_logfile=${localstatedir}/apache2/log/freebusy/freebusy.log +freebusy_logfile=${localstatedir}/apache/log/freebusy/freebusy.log freebusy_confdir=${webserver_document_root}/freebusy freebusy_cachedir=${webserver_document_root}/freebusy/cache freebusy_usr=${kolab_musr} Index: kolabsrv.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/kolabsrv.in,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- kolabsrv.in 11 Mar 2006 21:39:16 -0000 1.7 +++ kolabsrv.in 14 Oct 2007 12:31:58 -0000 1.8 @@ -38,7 +38,7 @@ esac if [[ "$2" == "all" ]]; then - SERVICES="@LDAPD@ slurpd saslauthd spamd amavis apache2 freshclam clamd cyrus postfix" + SERVICES="@LDAPD@ slurpd saslauthd spamd amavis apache freshclam clamd cyrus postfix" SERVICES="$SERVICES kolabd" else SERVICES=$2 From cvs at kolab.org Sun Oct 14 14:32:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 14 Oct 2007 14:32:00 +0200 (CEST) Subject: gunnar: server/kolabd/kolabd/templates httpd.conf.template.in, 1.13, 1.14 httpd.local.template.in, 1.2, 1.3 Message-ID: <20071014123200.D6A2B60C4A5@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv28173/kolabd/kolabd/templates Modified Files: httpd.conf.template.in httpd.local.template.in Log Message: OpenPKG renamed apache2 back to apache. Index: httpd.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/httpd.conf.template.in,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- httpd.conf.template.in 8 Oct 2007 15:39:27 -0000 1.13 +++ httpd.conf.template.in 14 Oct 2007 12:31:58 -0000 1.14 @@ -1,5 +1,5 @@ KOLAB_META_START -TARGET=@webserver_confdir@/apache2.conf +TARGET=@webserver_confdir@/apache.conf PERMISSIONS=0640 OWNERSHIP=@webserver_usr@:@webserver_grp@ KOLAB_META_END @@ -167,7 +167,7 @@ # FIXME: not autoconfigured - still hardcoded -TypesConfig etc/apache2/mime.types +TypesConfig etc/apache/mime.types DefaultType text/plain MIMEMagicFile @webserver_confdir@/mime.magic @@ -403,7 +403,7 @@ AddCharset EUC-KR .euc-kr AddCharset shift_jis .sjis -LoadModule php5_module @libexecdir@/apache2/libphp5.so +LoadModule php5_module @libexecdir@/apache/mod_php.so AddType application/x-tar .tgz AddType application/x-httpd-php .php .php4 .php3 .html AddType image/x-icon .ico @@ -420,5 +420,5 @@ BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully # used for local non Kolab extension -Include @webserver_confdir@/apache2.local -Include @webserver_confdir@/*.include \ No newline at end of file +Include @webserver_confdir@/apache.local +Include @webserver_confdir@/*.include Index: httpd.local.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/httpd.local.template.in,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- httpd.local.template.in 17 Jul 2007 15:26:05 -0000 1.2 +++ httpd.local.template.in 14 Oct 2007 12:31:58 -0000 1.3 @@ -1,5 +1,5 @@ KOLAB_META_START -TARGET=@webserver_confdir@/apache2.local +TARGET=@webserver_confdir@/apache.local PERMISSIONS=0640 OWNERSHIP=@webserver_musr@:@webserver_grp@ KOLAB_META_END @@ -13,7 +13,7 @@ # The purpose of this file is to add local non Kolab specific extensions to # the Apache installation. This file gets included at the end of the Apache -# configuration file (apache2.conf) +# configuration file (apache.conf) # e.g. # ScriptAlias /nagios/cgi-bin/ @libdir@/nagios/cgi/ From cvs at kolab.org Sun Oct 14 14:32:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 14 Oct 2007 14:32:00 +0200 (CEST) Subject: gunnar: server/kolab-freebusy kolab-freebusy.spec,1.5,1.6 Message-ID: <20071014123200.C421B60C4A2@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-freebusy In directory doto:/tmp/cvs-serv28173/kolab-freebusy Modified Files: kolab-freebusy.spec Log Message: OpenPKG renamed apache2 back to apache. Index: kolab-freebusy.spec =================================================================== RCS file: /kolabrepository/server/kolab-freebusy/kolab-freebusy.spec,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- kolab-freebusy.spec 24 Aug 2007 07:27:58 -0000 1.5 +++ kolab-freebusy.spec 14 Oct 2007 12:31:58 -0000 1.6 @@ -66,7 +66,7 @@ %install - %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/apache2/log/freebusy + %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/apache/log/freebusy %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/share/doc/%{V_package} %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/freebusy @@ -76,7 +76,7 @@ %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \ %dir '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/kolab/www/freebusy/cache \ - %dir '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/apache2/log/freebusy \ + %dir '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/apache/log/freebusy \ '%config(noreplace) %{l_prefix}/var/kolab/www/freebusy/config.php' %clean From cvs at kolab.org Mon Oct 15 11:15:33 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 15 Oct 2007 11:15:33 +0200 (CEST) Subject: gunnar: server/horde external-horde.sh,1.1,1.2 Message-ID: <20071015091533.202D7602A28@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde In directory doto:/tmp/cvs-serv32112 Modified Files: external-horde.sh Log Message: Add another horde patch. Index: external-horde.sh =================================================================== RCS file: /kolabrepository/server/horde/external-horde.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- external-horde.sh 5 Oct 2007 12:52:33 -0000 1.1 +++ external-horde.sh 15 Oct 2007 09:15:30 -0000 1.2 @@ -30,6 +30,7 @@ for PATCH in HK-GW-framework_3.2_ALPHA-Fix_Prefs_for_Ingo.patch \ HK-GW-framework_3.2_ALPHA-Fix_annotation_use.patch \ HK-GW-framework_3.2_ALPHA-Fix_the_share_params.patch \ + HK-GW-framework_3.2_ALPHA-Share_caching.patch \ HK-GW-kronolith_2.2-Fix_create_new_event.patch \ HK-GW-kronolith_2.2-Fix_share_right_editing.patch \ HK-GW-mnemo_2.2_ALPHA-Edit_share_rights.patch \ @@ -64,6 +65,7 @@ cd lib/Horde for PATCH in HK-GW-framework_3.2_ALPHA-Fix_Prefs_for_Ingo.patch \ HK-GW-framework_3.2_ALPHA-Fix_annotation_use.patch \ + HK-GW-framework_3.2_ALPHA-Share_caching.patch \ HK-GW-framework_3.2_ALPHA-Fix_the_share_params.patch; do patch -p3 < ../../../$PATCH; From cvs at kolab.org Mon Oct 15 11:21:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 15 Oct 2007 11:21:13 +0200 (CEST) Subject: gunnar: server/patches/cyrus-imapd KOLAB_cyrus-imapd_2.3.9_UID.patch, 1.1, 1.2 Message-ID: <20071015092113.43C0E602A47@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd In directory doto:/tmp/cvs-serv1102 Modified Files: KOLAB_cyrus-imapd_2.3.9_UID.patch Log Message: Fix the UID patch. Both imapopts.* files are generated automatically and should be regenerated at build time. Index: KOLAB_cyrus-imapd_2.3.9_UID.patch =================================================================== RCS file: /kolabrepository/server/patches/cyrus-imapd/KOLAB_cyrus-imapd_2.3.9_UID.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- KOLAB_cyrus-imapd_2.3.9_UID.patch 29 Sep 2007 12:13:54 -0000 1.1 +++ KOLAB_cyrus-imapd_2.3.9_UID.patch 15 Oct 2007 09:21:11 -0000 1.2 @@ -1,8 +1,8 @@ Allows login by uid rather than the mail address on the cyrus imapd server [Version: 2.3.9] -diff -r db07337ac0c3 configure ---- a/configure Sat Sep 29 13:41:01 2007 +0200 -+++ b/configure Sat Sep 29 13:41:15 2007 +0200 +diff -r a0335c09d80e configure +--- a/configure Mon Oct 01 11:18:56 2007 +0200 ++++ b/configure Mon Oct 15 11:10:31 2007 +0200 @@ -18094,7 +18094,7 @@ done done @@ -12,9 +12,9 @@ -diff -r db07337ac0c3 imap/global.c ---- a/imap/global.c Sat Sep 29 13:41:01 2007 +0200 -+++ b/imap/global.c Sat Sep 29 13:41:15 2007 +0200 +diff -r a0335c09d80e imap/global.c +--- a/imap/global.c Mon Oct 01 11:18:56 2007 +0200 ++++ b/imap/global.c Mon Oct 15 11:10:31 2007 +0200 @@ -52,6 +52,9 @@ #include #include @@ -101,10 +101,10 @@ socklen_t salen; int error; struct sockaddr_storage localaddr; -diff -r db07337ac0c3 lib/imapoptions ---- a/lib/imapoptions Sat Sep 29 13:41:01 2007 +0200 -+++ b/lib/imapoptions Sat Sep 29 13:41:15 2007 +0200 -@@ -1014,7 +1014,7 @@ are listed with ``''. +diff -r a0335c09d80e lib/imapoptions +--- a/lib/imapoptions Mon Oct 01 11:18:56 2007 +0200 ++++ b/lib/imapoptions Mon Oct 15 11:10:31 2007 +0200 +@@ -1017,7 +1017,7 @@ are listed with ``''. mailbox hierarchy. The default is to use the netnews separator character '.'. */ @@ -113,26 +113,3 @@ /* Enable virtual domain support. If enabled, the user's domain will be determined by splitting a fully qualified userid at the last '@' or '%' symbol. If the userid is unqualified, and the virtdomains -diff -r db07337ac0c3 lib/imapopts.c ---- a/lib/imapopts.c Sat Sep 29 13:41:01 2007 +0200 -+++ b/lib/imapopts.c Sat Sep 29 13:41:15 2007 +0200 -@@ -216,7 +216,7 @@ struct imapopt_s imapopts[] = - { IMAPOPT_USERPREFIX, "userprefix", 0, {(void *)("Other Users")}, OPT_STRING, { { NULL, IMAP_ENUM_ZERO } } }, - { IMAPOPT_UNIX_GROUP_ENABLE, "unix_group_enable", 0, {(void*)1}, OPT_SWITCH, { { NULL, IMAP_ENUM_ZERO } } }, - { IMAPOPT_UNIXHIERARCHYSEP, "unixhierarchysep", 0, {(void*)0}, OPT_SWITCH, { { NULL, IMAP_ENUM_ZERO } } }, -- { IMAPOPT_VIRTDOMAINS, "virtdomains", 0, {(void *)(IMAP_ENUM_VIRTDOMAINS_OFF)}, OPT_ENUM, { { "off" , IMAP_ENUM_VIRTDOMAINS_OFF }, { "userid" , IMAP_ENUM_VIRTDOMAINS_USERID }, { "on" , IMAP_ENUM_VIRTDOMAINS_ON }, { NULL, IMAP_ENUM_ZERO } } }, -+ { IMAPOPT_VIRTDOMAINS, "virtdomains", 0, {(void *)(IMAP_ENUM_VIRTDOMAINS_OFF)}, OPT_ENUM, { { "off" , IMAP_ENUM_VIRTDOMAINS_OFF }, { "userid" , IMAP_ENUM_VIRTDOMAINS_USERID }, { "ldap" , IMAP_ENUM_VIRTDOMAINS_LDAP }, { "on" , IMAP_ENUM_VIRTDOMAINS_ON }, { NULL, IMAP_ENUM_ZERO } } }, - - { IMAPOPT_LAST, NULL, 0, { NULL }, OPT_NOTOPT, { { NULL, IMAP_ENUM_ZERO } } } - -diff -r db07337ac0c3 lib/imapopts.h ---- a/lib/imapopts.h Sat Sep 29 13:41:01 2007 +0200 -+++ b/lib/imapopts.h Sat Sep 29 13:41:15 2007 +0200 -@@ -217,6 +217,7 @@ enum enum_value { - - IMAP_ENUM_VIRTDOMAINS_ON, - IMAP_ENUM_VIRTDOMAINS_USERID, -+ IMAP_ENUM_VIRTDOMAINS_LDAP, - IMAP_ENUM_VIRTDOMAINS_OFF = 0, - IMAP_ENUM_SIEVE_EXTENSIONS_COPY = (1<<11), - IMAP_ENUM_SIEVE_EXTENSIONS_SUBADDRESS = (1<<10), From cvs at kolab.org Mon Oct 15 11:30:05 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 15 Oct 2007 11:30:05 +0200 (CEST) Subject: gunnar: server/patches/cyrus-imapd README,NONE,1.1 Message-ID: <20071015093005.D8D1A602A38@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd In directory doto:/tmp/cvs-serv4497 Added Files: README Log Message: Add a general note about a build time fix when patching for Kolab. --- 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. From cvs at kolab.org Mon Oct 15 15:59:21 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 15 Oct 2007 15:59:21 +0200 (CEST) Subject: gunnar: server/perl-kolab DEVELOPMENT,1.5,1.6 Message-ID: <20071015135921.1A6FC60C4AB@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/perl-kolab In directory doto:/tmp/cvs-serv17242 Modified Files: DEVELOPMENT Log Message: Fix version numbers according to the recent discussion. Index: DEVELOPMENT =================================================================== RCS file: /kolabrepository/server/perl-kolab/DEVELOPMENT,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- DEVELOPMENT 15 Aug 2007 16:39:18 -0000 1.5 +++ DEVELOPMENT 15 Oct 2007 13:59:18 -0000 1.6 @@ -37,16 +37,16 @@ in lib/Kolab.pm. -The release number will then receive the prefix ".cvs" and the current +The release number will then receive the suffix "+cvs" and the current date will be appended. Source packages will then look like this: - perl-kolab-2.1.0.cvs-20070810.tar.gz + perl-kolab-2.1.0+cvs20070810.tar.gz Source RPMs will be named similar: - perl-kolab-2.1.0.cvs-20070810.src.rpm + perl-kolab-2.1.0+cvs20070810.src.rpm For tagging the next release the version number needs to be increased to the new Kolab Server version (e.g. 2.2.0) and the CVS switch needs to @@ -54,6 +54,19 @@ my $KOLAB_CVS = 0; +Pre-release candidates receive the suffix "betaX" or "rcX" and +cource packages will then look like this: + + perl-kolab-2.2.beta1.tar.gz + +Source RPMs will be named accordingly: + + perl-kolab-2.2.beta1-20070810.src.rpm + +Or, for the cvs versions: + + perl-kolab-2.2.beta1+cvs20070810.tar.gz + perl-kolab-2.2.beta1+cvs-20070810.src.rpm Change log ========== From cvs at kolab.org Mon Oct 15 15:59:21 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 15 Oct 2007 15:59:21 +0200 (CEST) Subject: gunnar: server/perl-kolab/lib Kolab.pm,1.5,1.6 Message-ID: <20071015135921.1C0E260C4AC@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/perl-kolab/lib In directory doto:/tmp/cvs-serv17242/lib Modified Files: Kolab.pm Log Message: Fix version numbers according to the recent discussion. Index: Kolab.pm =================================================================== RCS file: /kolabrepository/server/perl-kolab/lib/Kolab.pm,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Kolab.pm 8 Oct 2007 15:50:11 -0000 1.5 +++ Kolab.pm 15 Oct 2007 13:59:19 -0000 1.6 @@ -59,7 +59,7 @@ ); # The Kolab version number for the perl-kolab package -our $KOLAB_BASE_VERSION = "2.1.0"; +our $KOLAB_BASE_VERSION = "2.2.beta1"; # Are current releases cvs based or is this a real release? my $KOLAB_CVS = 1; @@ -67,8 +67,8 @@ our $KOLAB_RELEASE = sprintf "%0004d%02d%02d", ((gmtime)[5] + 1900), ((gmtime)[4] + 1), (gmtime)[3]; if ($KOLAB_CVS) { - our $KOLAB_VERSION = $KOLAB_BASE_VERSION . ".cvs"; - our $VERSION = $KOLAB_VERSION . "-" . $KOLAB_RELEASE; + our $KOLAB_VERSION = $KOLAB_BASE_VERSION . "+cvs"; + our $VERSION = $KOLAB_VERSION . $KOLAB_RELEASE; } else { our $KOLAB_VERSION = $KOLAB_BASE_VERSION; our $VERSION = $KOLAB_VERSION; From cvs at kolab.org Mon Oct 15 17:27:10 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 15 Oct 2007 17:27:10 +0200 (CEST) Subject: gunnar: server/perl-kolab DEVELOPMENT,1.6,1.7 Message-ID: <20071015152710.7D8DA602A23@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/perl-kolab In directory doto:/tmp/cvs-serv19494 Modified Files: DEVELOPMENT Log Message: Typo. Index: DEVELOPMENT =================================================================== RCS file: /kolabrepository/server/perl-kolab/DEVELOPMENT,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- DEVELOPMENT 15 Oct 2007 13:59:18 -0000 1.6 +++ DEVELOPMENT 15 Oct 2007 15:27:08 -0000 1.7 @@ -46,7 +46,7 @@ Source RPMs will be named similar: - perl-kolab-2.1.0+cvs20070810.src.rpm + perl-kolab-2.1.0+cvs-20070810.src.rpm For tagging the next release the version number needs to be increased to the new Kolab Server version (e.g. 2.2.0) and the CVS switch needs to From cvs at kolab.org Mon Oct 15 17:28:09 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 15 Oct 2007 17:28:09 +0200 (CEST) Subject: gunnar: server/perl-kolab DEVELOPMENT,1.7,1.8 Message-ID: <20071015152809.36A9860C4AB@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/perl-kolab In directory doto:/tmp/cvs-serv19517 Modified Files: DEVELOPMENT Log Message: Wording. Index: DEVELOPMENT =================================================================== RCS file: /kolabrepository/server/perl-kolab/DEVELOPMENT,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- DEVELOPMENT 15 Oct 2007 15:27:08 -0000 1.7 +++ DEVELOPMENT 15 Oct 2007 15:28:07 -0000 1.8 @@ -31,7 +31,7 @@ lib/Kolab.pm -Once development picks up after a release, please set +After tagging and releasing, please set my $KOLAB_CVS = 1; From cvs at kolab.org Mon Oct 15 17:38:26 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 15 Oct 2007 17:38:26 +0200 (CEST) Subject: gunnar: server/perl-kolab DEVELOPMENT,1.8,1.9 Message-ID: <20071015153826.92332602A29@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/perl-kolab In directory doto:/tmp/cvs-serv19810 Modified Files: DEVELOPMENT Log Message: Structure. Index: DEVELOPMENT =================================================================== RCS file: /kolabrepository/server/perl-kolab/DEVELOPMENT,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- DEVELOPMENT 15 Oct 2007 15:28:07 -0000 1.8 +++ DEVELOPMENT 15 Oct 2007 15:38:24 -0000 1.9 @@ -1,9 +1,10 @@ Development notes ================= -The perl-kolab package is a standard perl package meant to be handled -with the Makefile.PL script. You will receive a standard "Makefile" by -running "perl Makefile.PL". +The perl-kolab package is a standard perl package and a Kolab Server +core component. It is meant to be handled with the Makefile.PL +script. You will receive a standard "Makefile" by running "perl +Makefile.PL". The Kolab Server packages were usually not released as source packages. This should be changed with this new package layout. The @@ -15,11 +16,29 @@ Version numbering ================= -perl-kolab is a Kolab Server core package. Released packages should -have the same core version as the Server release. As a part of Kolab -Server 2.1.0 the version number should be 2.1.0. +A NEW VERSION HAS TO BE SET IN -Released source packages will look like this: + lib/Kolab.pm + +e.g. + +our $KOLAB_BASE_VERSION = "2.2.beta1"; + +Release versions +---------------- + +For tagging the next release the version number needs to be increased +to the new Kolab Server version (e.g. 2.2.0) and the CVS switch needs to +be set to 0: + +my $KOLAB_CVS = 0; + +Released packages should have the same core version as the Server +release. As a part of Kolab Server 2.1.0 the version number should be +2.1.0. Pre-release candidates receive the suffix "betaX" or "rcX" +(e.g. 2.2.beta1). + +Source packages will then look like this: perl-kolab-2.1.0.tar.gz @@ -27,9 +46,8 @@ perl-kolab-2.1.0-20070819.src.rpm -A NEW VERSION HAS TO BE SET IN - - lib/Kolab.pm +Snapshots +--------- After tagging and releasing, please set @@ -47,26 +65,6 @@ Source RPMs will be named similar: perl-kolab-2.1.0+cvs-20070810.src.rpm - -For tagging the next release the version number needs to be increased -to the new Kolab Server version (e.g. 2.2.0) and the CVS switch needs to -be reversed: - -my $KOLAB_CVS = 0; - -Pre-release candidates receive the suffix "betaX" or "rcX" and -cource packages will then look like this: - - perl-kolab-2.2.beta1.tar.gz - -Source RPMs will be named accordingly: - - perl-kolab-2.2.beta1-20070810.src.rpm - -Or, for the cvs versions: - - perl-kolab-2.2.beta1+cvs20070810.tar.gz - perl-kolab-2.2.beta1+cvs-20070810.src.rpm Change log ========== From cvs at kolab.org Mon Oct 15 18:21:09 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 15 Oct 2007 18:21:09 +0200 (CEST) Subject: thomas: server/perl-kolab DEVELOPMENT,1.9,1.10 Message-ID: <20071015162109.CDB49602A4D@lists.intevation.de> Author: thomas Update of /kolabrepository/server/perl-kolab In directory doto:/tmp/cvs-serv20918 Modified Files: DEVELOPMENT Log Message: Improved paragraph about version numbering Index: DEVELOPMENT =================================================================== RCS file: /kolabrepository/server/perl-kolab/DEVELOPMENT,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- DEVELOPMENT 15 Oct 2007 15:38:24 -0000 1.9 +++ DEVELOPMENT 15 Oct 2007 16:21:07 -0000 1.10 @@ -13,64 +13,67 @@ perl-kolab-*.src.rpm package that is suited for installation on an OpenPKG system. + Version numbering ================= -A NEW VERSION HAS TO BE SET IN +The package version will be set in lib/Kolab.pm e.g. -our $KOLAB_BASE_VERSION = "2.2.beta1"; + our $KOLAB_BASE_VERSION = "2.2.beta1"; + my $KOLAB_CVS = 1; Release versions ---------------- -For tagging the next release the version number needs to be increased +Released packages should have the same core version as the server +release. As a part of Kolab Server 2.2.0 the version number should be +2.2.0. Pre-release candidates receive the suffix "betaX" or "rcX" +(e.g. 2.2.beta1). + +Before tagging the next release the version number needs to be increased to the new Kolab Server version (e.g. 2.2.0) and the CVS switch needs to be set to 0: -my $KOLAB_CVS = 0; - -Released packages should have the same core version as the Server -release. As a part of Kolab Server 2.1.0 the version number should be -2.1.0. Pre-release candidates receive the suffix "betaX" or "rcX" -(e.g. 2.2.beta1). + our $KOLAB_BASE_VERSION = "2.2.0"; + my $KOLAB_CVS = 0; -Source packages will then look like this: +After updating $KOLAB_BASE_VERSION and $KOLAB_CVS you can commit these +changes and tag the release. - perl-kolab-2.1.0.tar.gz +Now you can create source tarballs and RPMs which will look like: -Released source RPMs will look like this: + perl-kolab-2.2.0.tar.gz + perl-kolab-2.2.0-20070819.src.rpm - perl-kolab-2.1.0-20070819.src.rpm +Don't forget to change $KOLAB_CVS back to 1 again and commit, so later +CVS snapshots will be named correctly. Snapshots --------- -After tagging and releasing, please set - -my $KOLAB_CVS = 1; +Make sure lib/Kolab.pm contains the following line: -in lib/Kolab.pm. + my $KOLAB_CVS = 1; The release number will then receive the suffix "+cvs" and the current -date will be appended. - -Source packages will then look like this: +date will be appended. - perl-kolab-2.1.0+cvs20070810.tar.gz +Source tarballs and RPMs will then look like this: -Source RPMs will be named similar: + perl-kolab-2.2.0+cvs20070810.tar.gz + perl-kolab-2.2.0+cvs-20070810.src.rpm - perl-kolab-2.1.0+cvs-20070810.src.rpm Change log ========== The change log for the package is provided in "Changes". Please keep this file up-to-date if you change the source code of this package. + Contributors ============ From cvs at kolab.org Wed Oct 17 09:05:04 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 09:05:04 +0200 (CEST) Subject: gunnar: server/perl-kolab ChangeLog, 1.22, 1.23 DEVELOPMENT, 1.10, 1.11 MANIFEST, 1.1, 1.2 Changes, 1.1, NONE Message-ID: <20071017070504.D960E602A4D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/perl-kolab In directory doto:/tmp/cvs-serv21162 Modified Files: DEVELOPMENT MANIFEST Added Files: ChangeLog Removed Files: Changes Log Message: Rename Changes back to ChangeLog. While the default in the perl world seems to be Changes there should be no problem using the common ChangeLog used outside of the perl community. Index: DEVELOPMENT =================================================================== RCS file: /kolabrepository/server/perl-kolab/DEVELOPMENT,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- DEVELOPMENT 15 Oct 2007 16:21:07 -0000 1.10 +++ DEVELOPMENT 17 Oct 2007 07:05:02 -0000 1.11 @@ -71,7 +71,7 @@ Change log ========== -The change log for the package is provided in "Changes". Please keep +The change log for the package is provided in "ChangeLog". Please keep this file up-to-date if you change the source code of this package. Index: MANIFEST =================================================================== RCS file: /kolabrepository/server/perl-kolab/MANIFEST,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- MANIFEST 1 Aug 2007 14:57:41 -0000 1.1 +++ MANIFEST 17 Oct 2007 07:05:02 -0000 1.2 @@ -1,5 +1,5 @@ AUTHORS -Changes +ChangeLog INSTALL lib/Kolab.pm lib/Kolab/Cyrus.pm @@ -10,4 +10,4 @@ lib/Kolab/Util.pm Makefile.PL MANIFEST -README \ No newline at end of file +README --- Changes DELETED --- From cvs at kolab.org Wed Oct 17 09:12:17 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 09:12:17 +0200 (CEST) Subject: gunnar: server/kolabconf ChangeLog, NONE, 1.1 DEVELOPMENT, 1.4, 1.5 MANIFEST, 1.2, 1.3 Makefile.PL, 1.10, 1.11 Changes, 1.4, NONE Message-ID: <20071017071217.D6743602A4E@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabconf In directory doto:/tmp/cvs-serv21491 Modified Files: DEVELOPMENT MANIFEST Makefile.PL Added Files: ChangeLog Removed Files: Changes Log Message: Change the version numbering to the scheme agreed upon. --- NEW FILE: ChangeLog --- 2007-09-06 Gunnar Wrobel

* Conf.pm: Allowed config variable replacement within the META section of the templates. This reduces our dependence on the dist_conf mechanism and we can use variables from kolab.globals instead. Now add on packages can install their own templates. Whitespace cleanup. 2007-08-07 Gunnar Wrobel

* Conf.pm: Fixed kolab/issue1879 (kolabconf poor error message in buildCyrusConfig) https://intevation.de/roundup/kolab/issue1879 2007-08-01 Gunnar Wrobel

Created the kolabconf package by moving kolabconf and the Conf.pm perl module into one package. The package is now a clean perl package. 2007-07-31 Gunnar Wrobel

* Kolab-Conf/Conf.pm.in: Require that the configuration load call is provided with the path to the global Kolab configuration settings. This way we remove the knowledge that the kolabd package exist from the Kolab.pm script. In addition the reload() function was moved to the Conf.pm module. 2007-01-06 Joergen Fjeld * Kolab-Conf/Conf.pm.in (build): Patch applied by Martin Konold: - fixes order of domains see also https://intevation.de/roundup/kolab/issue1550 2006-12-04 Gunnar Wrobel * Kolab-Conf/Conf.pm.in (build): Only print "No configuration variable corresponding to `$1' exists" in case we are NOT skipping the section. 2006-03-20 Marcus Hüwe Patch commited by Richard Bos * Kolab-Conf/Conf.pm.in: introduce a new variable phpinit_dir for the directory that holds the php.ini file to be used. 2006-01-15 Richard Bos * Kolab-Conf/Conf.pm.in: use the new variable sasl_authdconffile instead of @sasl_confdir@/saslauthd.conf 2006-01-07 Richard Bos * Kolab-Conf/Conf.pm.in: do not crash when the file to be checked does not exists. Give a hint _which_ config file can not be moved 2005-12-17 Marcus Hüwe Patch committed by Richard Bos * bootstrap: added * ChangeLog: added * Kolab/Kolab.pm, Kolab-Conf/Conf.pm, Kolab-DirServ/DirServ.pm, Kolab-LDAP/LDAP.pm, Kolab-LDAP-Backend-slurpd/slurpd.pm, Kolab-Mailer/Mailer.pm: are working now with the updated kolabd/kolabd/dist_conf file * Kolab/Makefile.am, Kolab-Mailer/Makefile.am, Kolab-Conf/Makefile.am, Kolab-LDAP/Makefile.am, Kolab-Util/Makefile.am, Kolab-Cyrus/Makefile.am, Kolab-LDAP-Backend/Makefile.am, Kolab-LDAP-Backend-ad/Makefile.am, Kolab-LDAP-Backend-slurpd/Makefile.am, Kolab-DirServ/Makefile.am, Kolab-LDAP-Backend-dirservd/Makefile.am, Makefile.am: are removed * Kolab/Makefile.PL, Kolab-Mailer/Makefile.PL, Kolab-Conf/Makefile.PL, Kolab-LDAP/Makefile.PL, Kolab-Util/Makefile.PL, Kolab-Cyrus/Makefile.PL, Kolab-LDAP-Backend/Makefile.PL, Kolab-LDAP-Backend-ad/Makefile.PL, Kolab-LDAP-Backend-slurpd/Makefile.PL, Kolab-DirServ/Makefile.PL, Kolab-LDAP-Backend-dirservd/Makefile.PL: are removed Index: DEVELOPMENT =================================================================== RCS file: /kolabrepository/server/kolabconf/DEVELOPMENT,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- DEVELOPMENT 15 Aug 2007 16:41:00 -0000 1.4 +++ DEVELOPMENT 17 Oct 2007 07:12:15 -0000 1.5 @@ -1,8 +1,9 @@ Development notes ================= -The kolabconf package is a standard perl package meant to be handled -with the Makefile.PL script. +The kolabconf package is a standard perl package and a Kolab Server +core component. It ismeant to be handled with the Makefile.PL script. +You will receive a standard "Makefile" by running "perl Makefile.PL". The Kolab Server packages were usually not released as source packages. This should be changed with this new package layout. The @@ -14,49 +15,61 @@ Version numbering ================= -kolabconf is a Kolab Server core package. Released packages should -have the same core version as the Server release. As a part of Kolab -Server 2.1.0 the version number should be 2.1.0. +The package version will be set in -Released source packages will look like this: + Makefile.PL - kolabconf-2.1.0.tar.gz +e.g. -Released source RPMs will look like this: +my $KOLAB_BASE_VERSION = "2.2.beta1"; +my $KOLAB_CVS = 1; - kolabconf-2.1.0-20070819.src.rpm +Release versions +---------------- -A NEW VERSION HAS TO BE SET IN +Released packages should have the same core version as the server +release. As a part of Kolab Server 2.2.0 the version number should be +2.2.0. Pre-release candidates receive the suffix "betaX" or "rcX" +(e.g. 2.2.beta1). - Makefile.PL +Before tagging the next release the version number needs to be increased +to the new Kolab Server version (e.g. 2.2.0) and the CVS switch needs to +be set to 0: -Once development picks up after a release, please set + my $KOLAB_BASE_VERSION = "2.2.0"; + my $KOLAB_CVS = 0; -my $KOLAB_CVS = 1; +After updating $KOLAB_BASE_VERSION and $KOLAB_CVS you can commit these +changes and tag the release. -in Makefile.PL. +Now you can create source tarballs and RPMs which will look like: -The version number will then receive the suffix ".cvs" and the current -date will be appended. + kolabconf-2.2.0.tar.gz + kolabconf-2.2.0-20070819.src.rpm -Source packages will then look like this: +Don't forget to change $KOLAB_CVS back to 1 again and commit, so later +CVS snapshots will be named correctly. - kolabconf-2.1.0.cvs-20070810.tar.gz +Snapshots +--------- -Source RPMs will be named similar: +Make sure lib/Kolab.pm contains the following line: - kolabconf-2.1.0.cvs-20070810.src.rpm + my $KOLAB_CVS = 1; -For tagging the next release the version number needs to be increased -to the new Kolab Server version (e.g. 2.2.0) and the CVS switch needs to -be reversed: +The release number will then receive the suffix "+cvs" and the current +date will be appended. + +Source tarballs and RPMs will then look like this: + + kolabconf-2.2.0+cvs20070810.tar.gz + kolabconf-2.2.0+cvs-20070810.src.rpm -my $KOLAB_CVS = 0; Change log ========== -The change log for the package is provided in "Changes". Please keep +The change log for the package is provided in "ChangeLog". Please keep this file up-to-date if you change the source code of this package. Contributors Index: MANIFEST =================================================================== RCS file: /kolabrepository/server/kolabconf/MANIFEST,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- MANIFEST 1 Aug 2007 12:34:31 -0000 1.2 +++ MANIFEST 17 Oct 2007 07:12:15 -0000 1.3 @@ -1,8 +1,8 @@ AUTHORS bin/kolabconf.in -Changes +ChangeLog INSTALL lib/Kolab/Conf.pm Makefile.PL MANIFEST -README \ No newline at end of file +README Index: Makefile.PL =================================================================== RCS file: /kolabrepository/server/kolabconf/Makefile.PL,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- Makefile.PL 4 Sep 2007 10:23:15 -0000 1.10 +++ Makefile.PL 17 Oct 2007 07:12:15 -0000 1.11 @@ -9,7 +9,7 @@ my $KOLAB_VERSION; # The Kolab version number for the perl-kolab package -my $KOLAB_BASE_VERSION = "2.1.0"; +my $KOLAB_BASE_VERSION = "2.2.beta1"; # Are current releases cvs based or is this a real release? my $KOLAB_CVS = 1; @@ -17,8 +17,8 @@ my $KOLAB_RELEASE = sprintf "%0004d%02d%02d", ((gmtime)[5] + 1900), ((gmtime)[4] + 1), (gmtime)[3]; if ($KOLAB_CVS) { - $KOLAB_VERSION = $KOLAB_BASE_VERSION . ".cvs"; - $VERSION = $KOLAB_VERSION . "-" . $KOLAB_RELEASE; + $KOLAB_VERSION = $KOLAB_BASE_VERSION . "+cvs"; + $VERSION = $KOLAB_VERSION . $KOLAB_RELEASE; } else { $KOLAB_VERSION = $KOLAB_BASE_VERSION; $VERSION = $KOLAB_VERSION; --- Changes DELETED --- From cvs at kolab.org Wed Oct 17 09:17:18 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 09:17:18 +0200 (CEST) Subject: gunnar: server/kolabconf DEVELOPMENT,1.5,1.6 Message-ID: <20071017071718.D510A602A4E@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabconf In directory doto:/tmp/cvs-serv21569 Modified Files: DEVELOPMENT Log Message: Typo. Index: DEVELOPMENT =================================================================== RCS file: /kolabrepository/server/kolabconf/DEVELOPMENT,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- DEVELOPMENT 17 Oct 2007 07:12:15 -0000 1.5 +++ DEVELOPMENT 17 Oct 2007 07:17:16 -0000 1.6 @@ -53,7 +53,7 @@ Snapshots --------- -Make sure lib/Kolab.pm contains the following line: +Make sure Makefile.PL contains the following line: my $KOLAB_CVS = 1; From cvs at kolab.org Wed Oct 17 09:23:22 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 09:23:22 +0200 (CEST) Subject: gunnar: server/php-kolab DEVELOPMENT,1.3,1.4 Makefile,1.8,1.9 Message-ID: <20071017072322.E23A260014F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab In directory doto:/tmp/cvs-serv21675 Modified Files: DEVELOPMENT Makefile Log Message: Update version numbers to the scheme agreed upon. For reasons specific to PEAR packaging the source snapshots cannot be tagged with +cvs since the version may only contain numbers and dots. Index: DEVELOPMENT =================================================================== RCS file: /kolabrepository/server/php-kolab/DEVELOPMENT,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- DEVELOPMENT 16 Aug 2007 12:16:51 -0000 1.3 +++ DEVELOPMENT 17 Oct 2007 07:23:20 -0000 1.4 @@ -13,41 +13,58 @@ Version numbering ================= -php-kolab is a Kolab Server core package. Released packages should -have the same core version as the Server release. As a part of Kolab -Server 2.1.0 the version number should be 2.1.0. +The package version will be set in -Released source packages will look like this: + Makefile - Kolab_*-2.1.0.tar.gz +e.g. -Released source RPMs will look like this: + VERSION = 2.2.beta1 + CVS = 1 - php-kolab-2.1.0-20070813.src.rpm +Release versions +---------------- -A NEW VERSION HAS TO BE SET IN +Released packages should have the same core version as the server +release. As a part of Kolab Server 2.2.0 the version number should be +2.2.0. Pre-release candidates receive the suffix "betaX" or "rcX" +(e.g. 2.2.beta1). - Makefile +Before tagging the next release the version number needs to be increased +to the new Kolab Server version (e.g. 2.2.0) and the CVS switch needs to +be set to 0: -Once development picks up after a release, please switch the CVS -variable in "Makefile" to "1": + VERSION = 2.2.0 + CVS = 0 -CVS = 1 +In addition you should copy the relevant section from +Kolab_*/ChangeLog into Kolab_*/package.xml.in. -Source packages will then look like this: +After updating VERSION and CVS you can commit these changes and tag +the release. - Kolab_*-2.1.0.20070815.tar.gz +Now you can create source tarballs and RPMs which will look like: -Source RPMs will be named like this: + Kolab_*-2.2.0.tar.gz + php-kolab-2.2.0-20070819.src.rpm - php-kolab-2.1.0.cvs-20070815.src.rpm +Don't forget to change CVS back to 1 again and commit, so later +CVS snapshots will be named correctly. -For tagging the next release the version number needs to be increased -to the new Kolab Server version (e.g. 2.2.0) and the CVS parameter -needs to be switched to "0" again. +Snapshots +--------- -Once releasing a new package you should copy the relevant section from -Kolab_*/ChangeLog into Kolab_*/package.xml.in. +Make sure Makefile contains the following line: + + CVS = 1 + +The release number will then receive the suffix "+cvs" and the current +date will be appended. + +Source tarballs and RPMs will then look like this: + + Kolab_*-2.2.0.20070819.tar.gz + php-kolab-2.2.0+cvs-20070819.src.rpm Change log ========== Index: Makefile =================================================================== RCS file: /kolabrepository/server/php-kolab/Makefile,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- Makefile 16 Aug 2007 12:16:51 -0000 1.8 +++ Makefile 17 Oct 2007 07:23:20 -0000 1.9 @@ -2,7 +2,7 @@ RELEASE = $(shell date '+%Y%m%d') DATE = $(shell date '+%Y-%m-%d') -VERSION = 2.1.0 +VERSION = 2.2.beta1 CVS = 1 ifeq "x$(CVS)" "x0" @@ -10,7 +10,7 @@ SPEC_VERSION = $(VERSION) else SOURCE_TAG = $(VERSION).$(RELEASE) - SPEC_VERSION = $(VERSION).cvs + SPEC_VERSION = $(VERSION)+cvs endif MODULES = Kolab_Freebusy \ From cvs at kolab.org Wed Oct 17 09:43:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 09:43:13 +0200 (CEST) Subject: gunnar: server/kolab-filter DEVELOPMENT,1.3,1.4 Makefile,1.4,1.5 Message-ID: <20071017074313.7769760014F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-filter In directory doto:/tmp/cvs-serv21909 Modified Files: DEVELOPMENT Makefile Log Message: Update version numbers to the scheme agreed upon. Index: DEVELOPMENT =================================================================== RCS file: /kolabrepository/server/kolab-filter/DEVELOPMENT,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- DEVELOPMENT 24 Aug 2007 07:27:58 -0000 1.3 +++ DEVELOPMENT 17 Oct 2007 07:43:11 -0000 1.4 @@ -15,41 +15,56 @@ Version numbering ================= -kolab-filter is a Kolab Server core package. Released packages should -have the same core version as the Server release. As a part of Kolab -Server 2.1.0 the version number should be 2.1.0. +The package version will be set in -Released source packages will look like this: + Makefile - kolab-filter-2.1.0.tar.gz +e.g. -Released source RPMs will look like this: + VERSION = 2.2.beta1 + CVS = 1 - kolab-filter-2.1.0-20070819.src.rpm +Release versions +---------------- -A NEW VERSION AND RELEASE NUMBER HAVE TO BE SET IN +Released packages should have the same core version as the server +release. As a part of Kolab Server 2.2.0 the version number should be +2.2.0. Pre-release candidates receive the suffix "betaX" or "rcX" +(e.g. 2.2.beta1). - Makefile +Before tagging the next release the version number needs to be increased +to the new Kolab Server version (e.g. 2.2.0) and the CVS switch needs to +be set to 0: -Once development picks up after a release, please set + VERSION = 2.2.0 + CVS = 0 - CVS = 1 +After updating VERSION and CVS you can commit these changes and tag +the release. -in kolab-filter.spec. +Now you can create source tarballs and RPMs which will look like: -Source packages will then look like this: + kolab-filter-2.2.0.tar.bz2 + kolab-filter-2.2.0-20070819.src.rpm - kolab-filter-2.1.0.cvs-20070810.tar.gz +Don't forget to change CVS back to 1 again and commit, so later +CVS snapshots will be named correctly. -Source RPMs will be named similar: +Snapshots +--------- - kolab-filter-2.1.0.cvs-20070810.src.rpm +Make sure Makefile contains the following line: -For tagging the next release the version number needs to be increased -to the new Kolab Server version (e.g. 2.2.0) and the CVS variable needs -to be reset to 0: + CVS = 1 + +The release number will then receive the suffix "+cvs" and the current +date will be appended. + +Source tarballs and RPMs will then look like this: + + kolab-filter-2.2.0+cvs20070819.tar.bz2 + kolab-filter-2.2.0+cvs-20070819.src.rpm - CVS = 0 Change log ========== Index: Makefile =================================================================== RCS file: /kolabrepository/server/kolab-filter/Makefile,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Makefile 24 Aug 2007 07:14:16 -0000 1.4 +++ Makefile 17 Oct 2007 07:43:11 -0000 1.5 @@ -1,15 +1,15 @@ PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([a-z\_-]*\).*/\1/") RELEASE = $(shell date '+%Y%m%d') -VERSION = 2.1.0 +VERSION = 2.2.beta1 CVS = 1 ifeq "x$(CVS)" "x0" SOURCE_TAG = $(VERSION) SPEC_VERSION = $(VERSION) else - SOURCE_TAG = $(VERSION).cvs-$(RELEASE) - SPEC_VERSION = $(VERSION).cvs + SOURCE_TAG = $(VERSION)+cvs$(RELEASE) + SPEC_VERSION = $(VERSION)+cvs endif TAR = $(PACKAGE)-$(SOURCE_TAG).tar.bz2 @@ -33,6 +33,9 @@ .PHONY: dist dist: all cp $(PACKAGE)-$(SPEC_VERSION)-$(RELEASE).src.rpm ../stage/ + +.PHONY: tardist +tardist: $(TAR) .PHONY: clean_all clean_all: clean From cvs at kolab.org Wed Oct 17 09:44:05 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 09:44:05 +0200 (CEST) Subject: gunnar: server/php-kolab DEVELOPMENT,1.4,1.5 Message-ID: <20071017074405.D5E8B60014F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab In directory doto:/tmp/cvs-serv21987 Modified Files: DEVELOPMENT Log Message: Fix source package ending. Index: DEVELOPMENT =================================================================== RCS file: /kolabrepository/server/php-kolab/DEVELOPMENT,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- DEVELOPMENT 17 Oct 2007 07:23:20 -0000 1.4 +++ DEVELOPMENT 17 Oct 2007 07:44:03 -0000 1.5 @@ -45,7 +45,7 @@ Now you can create source tarballs and RPMs which will look like: - Kolab_*-2.2.0.tar.gz + Kolab_*-2.2.0.tgz php-kolab-2.2.0-20070819.src.rpm Don't forget to change CVS back to 1 again and commit, so later @@ -63,7 +63,7 @@ Source tarballs and RPMs will then look like this: - Kolab_*-2.2.0.20070819.tar.gz + Kolab_*-2.2.0.20070819.tgz php-kolab-2.2.0+cvs-20070819.src.rpm Change log From cvs at kolab.org Wed Oct 17 09:47:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 09:47:36 +0200 (CEST) Subject: gunnar: server/kolab-freebusy DEVELOPMENT,1.4,1.5 Makefile,1.5,1.6 Message-ID: <20071017074736.5E5AB60014F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-freebusy In directory doto:/tmp/cvs-serv22063 Modified Files: DEVELOPMENT Makefile Log Message: Update version numbers to the scheme agreed upon. Index: DEVELOPMENT =================================================================== RCS file: /kolabrepository/server/kolab-freebusy/DEVELOPMENT,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- DEVELOPMENT 24 Aug 2007 07:27:58 -0000 1.4 +++ DEVELOPMENT 17 Oct 2007 07:47:34 -0000 1.5 @@ -15,41 +15,55 @@ Version numbering ================= -kolab-freebusy is a Kolab Server core package. Released packages should -have the same core version as the Server release. As a part of Kolab -Server 2.1.0 the version number should be 2.1.0. +The package version will be set in -Released source packages will look like this: + Makefile - kolab-freebusy-2.1.0.tar.gz +e.g. -Released source RPMs will look like this: + VERSION = 2.2.beta1 + CVS = 1 - kolab-freebusy-2.1.0-20070813.src.rpm +Release versions +---------------- -A NEW VERSION AND RELEASE NUMBER HAVE TO BE SET IN +Released packages should have the same core version as the server +release. As a part of Kolab Server 2.2.0 the version number should be +2.2.0. Pre-release candidates receive the suffix "betaX" or "rcX" +(e.g. 2.2.beta1). - Makefile +Before tagging the next release the version number needs to be increased +to the new Kolab Server version (e.g. 2.2.0) and the CVS switch needs to +be set to 0: -Once development picks up after a release, please set + VERSION = 2.2.0 + CVS = 0 - CVS = 1 +After updating VERSION and CVS you can commit these changes and tag +the release. -in kolab-filter.spec. +Now you can create source tarballs and RPMs which will look like: -Source packages will then look like this: + kolab-freebusy-2.2.0.tar.bz2 + kolab-freebusy-2.2.0-20070819.src.rpm - kolab-freebusy-2.1.0.cvs-20070815.tar.gz +Don't forget to change CVS back to 1 again and commit, so later +CVS snapshots will be named correctly. -Source RPMs will be named similar: +Snapshots +--------- - kolab-freebusy-2.1.0.cvs-20070815.src.rpm +Make sure Makefile contains the following line: -For tagging the next release the version number needs to be increased -to the new Kolab Server version (e.g. 2.2.0) and the CVS variable needs -to be reset to 0: + CVS = 1 - CVS = 0 +The release number will then receive the suffix "+cvs" and the current +date will be appended. + +Source tarballs and RPMs will then look like this: + + kolab-freebusy-2.2.0+cvs20070819.tar.bz2 + kolab-freebusy-2.2.0+cvs-20070819.src.rpm Change log ========== Index: Makefile =================================================================== RCS file: /kolabrepository/server/kolab-freebusy/Makefile,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Makefile 24 Aug 2007 07:14:16 -0000 1.5 +++ Makefile 17 Oct 2007 07:47:34 -0000 1.6 @@ -1,15 +1,15 @@ PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([a-z\_-]*\).*/\1/") RELEASE = $(shell date '+%Y%m%d') -VERSION = 2.1.0 +VERSION = 2.2.beta1 CVS = 1 ifeq "x$(CVS)" "x0" SOURCE_TAG = $(VERSION) SPEC_VERSION = $(VERSION) else - SOURCE_TAG = $(VERSION).cvs-$(RELEASE) - SPEC_VERSION = $(VERSION).cvs + SOURCE_TAG = $(VERSION)+cvs$(RELEASE) + SPEC_VERSION = $(VERSION)+cvs endif TAR = $(PACKAGE)-$(SOURCE_TAG).tar.bz2 @@ -33,6 +33,9 @@ .PHONY: dist dist: all cp $(PACKAGE)-$(SPEC_VERSION)-$(RELEASE).src.rpm ../stage/ + +.PHONY: tardist +tardist: $(TAR) .PHONY: clean_all clean_all: clean From cvs at kolab.org Wed Oct 17 09:49:06 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 09:49:06 +0200 (CEST) Subject: gunnar: server/kolab-freebusy ChangeLog,NONE,1.1 Message-ID: <20071017074906.4102A60014F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-freebusy In directory doto:/tmp/cvs-serv22112 Added Files: ChangeLog Log Message: Apparently forgot to add the ChangeLog when I restructured the package. --- NEW FILE: ChangeLog --- 2007-08-13 Gunnar Wrobel

* freebusy/freebusy.php: * freebusy/pfb.php: kolab/issue1606 (Allow to run kolab-resource-handlers with PHP cgi) https://www.intevation.de/roundup/kolab/issue1606 2007-08-08 Gunnar Wrobel

The package was split into a library part (php-kolab/Kolab_Freebusy) and a web application part (kolab-freebusy). 2006-11-22 Gunnar Wrobel * freebusy/freebusy.php.in: Avoid notices because of undefined $params['ldap_classname_suffix']. Avoid notices because of undefined $_REQUEST['cache'] and $_REQUEST['extended'] * freebusy/pfb.php.in: Avoid notices because of undefined $params['ldap_classname_suffix']. * freebusy/pfb.php.in (): Completed fixing cache dir path problem. 2006-11-22 Sascha Wilde * freebusy/freebusy.php.in: Replaced @freebusy_cachedir@ with $parms['cache_dir']. 2006-11-22 Gunnar Wrobel * freebusy/pfb.php.in: Fixed cache dir path problem described in https://intevation.de/roundup/kolab/issue1490 and introduced with http://kolab.org/cgi-bin/viewcvs-kolab.cgi/server/kolabd/kolabd/templates/freebusy.conf.template.in.diff?r1=1.3&r2=1.4 The use of $params['kolab_prefix'] originated from the original caching patch but should not be used as introduced with http://kolab.org/cgi-bin/viewcvs-kolab.cgi/server/kolab-resource-handlers/kolab-resource-handlers/freebusy/pfb.php.in.diff?r1=1.5&r2=1.6 since this breaks compatibility with running kolab on other distros. 2006-11-13 Gunnar Wrobel * freebusy/freebusy.php.in: Trailing newline introduced in http://kolab.org/cgi-bin/viewcvs-kolab.cgi/server/kolab-resource-handlers/kolab-resource-handlers/freebusy/freebusy.php.in.diff?r1=1.3&r2=1.4 may trigger php warnings depending on php verbosity 2006-03-28 Richard Bos * freebusy/pfb.php.in: Add missing prefix 'kolab_php_module_prefix' 2005-12-17 richard Bos * freebusy/pfb.php.in, freebusy/freebusy.php.in: @freebusy_cachefile@ replaced by @freebusy_cachedir@ From cvs at kolab.org Wed Oct 17 09:52:25 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 09:52:25 +0200 (CEST) Subject: gunnar: server/kolab-freebusy ChangeLog,1.1,NONE Message-ID: <20071017075225.1C4F160014F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-freebusy In directory doto:/tmp/cvs-serv22167 Removed Files: ChangeLog Log Message: I should read my own instructions. --- ChangeLog DELETED --- From cvs at kolab.org Wed Oct 17 12:00:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 12:00:00 +0200 (CEST) Subject: gunnar: server/php-kolab DEVELOPMENT,1.5,1.6 Makefile,1.9,1.10 Message-ID: <20071017100000.033C9602A4D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab In directory doto:/tmp/cvs-serv24673 Modified Files: DEVELOPMENT Makefile Log Message: PEAR does not support snapshots between prerelease versions. This workaround is a suggestion to solve that. Index: DEVELOPMENT =================================================================== RCS file: /kolabrepository/server/php-kolab/DEVELOPMENT,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- DEVELOPMENT 17 Oct 2007 07:44:03 -0000 1.5 +++ DEVELOPMENT 17 Oct 2007 09:59:57 -0000 1.6 @@ -28,7 +28,7 @@ Released packages should have the same core version as the server release. As a part of Kolab Server 2.2.0 the version number should be 2.2.0. Pre-release candidates receive the suffix "betaX" or "rcX" -(e.g. 2.2.beta1). +(e.g. 2.2beta1). Before tagging the next release the version number needs to be increased to the new Kolab Server version (e.g. 2.2.0) and the CVS switch needs to @@ -37,6 +37,11 @@ VERSION = 2.2.0 CVS = 0 +For prereleases you will also have to set the following variables: + + PRERELEASE = beta + PRERELEASE_VERSION = 1 + In addition you should copy the relevant section from Kolab_*/ChangeLog into Kolab_*/package.xml.in. @@ -65,6 +70,10 @@ Kolab_*-2.2.0.20070819.tgz php-kolab-2.2.0+cvs-20070819.src.rpm + +Please note that PEAR does not really support using snapshots between +prereleases. This leads to some weird release numbers on the source +packages in the prerelease phase. Change log ========== Index: Makefile =================================================================== RCS file: /kolabrepository/server/php-kolab/Makefile,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- Makefile 17 Oct 2007 07:23:20 -0000 1.9 +++ Makefile 17 Oct 2007 09:59:57 -0000 1.10 @@ -2,15 +2,27 @@ RELEASE = $(shell date '+%Y%m%d') DATE = $(shell date '+%Y-%m-%d') -VERSION = 2.2.beta1 +VERSION = 2.2 +PRERELEASE = beta +PRERELEASE_VERSION = 1 CVS = 1 -ifeq "x$(CVS)" "x0" - SOURCE_TAG = $(VERSION) - SPEC_VERSION = $(VERSION) +ifeq "x$(PRERELEASE)" "x" + ifeq "x$(CVS)" "x0" + SOURCE_TAG = $(VERSION) + SPEC_VERSION = $(VERSION) + else + SOURCE_TAG = $(VERSION).$(RELEASE) + SPEC_VERSION = $(RPM_VERSION)+cvs + endif else - SOURCE_TAG = $(VERSION).$(RELEASE) - SPEC_VERSION = $(VERSION)+cvs + PEAR_RELEASE = $(shell echo $$(($(PRERELEASE_VERSION) * $(RELEASE)))) + SOURCE_TAG = $(VERSION)$(PRERELEASE)$(PEAR_RELEASE) + ifeq "x$(CVS)" "x0" + SPEC_VERSION = $(VERSION).$(PRERELEASE)$(PRERELEASE_VERSION) + else + SPEC_VERSION = $(VERSION).$(PRERELEASE)$(PRERELEASE_VERSION)+cvs + endif endif MODULES = Kolab_Freebusy \ From cvs at kolab.org Wed Oct 17 12:25:12 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 12:25:12 +0200 (CEST) Subject: gunnar: server/php-kolab Makefile,1.10,1.11 Message-ID: <20071017102512.AFACC602A32@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab In directory doto:/tmp/cvs-serv25414 Modified Files: Makefile Log Message: No need to use multiplication. Thanks Thomas! Index: Makefile =================================================================== RCS file: /kolabrepository/server/php-kolab/Makefile,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- Makefile 17 Oct 2007 09:59:57 -0000 1.10 +++ Makefile 17 Oct 2007 10:25:10 -0000 1.11 @@ -16,7 +16,7 @@ SPEC_VERSION = $(RPM_VERSION)+cvs endif else - PEAR_RELEASE = $(shell echo $$(($(PRERELEASE_VERSION) * $(RELEASE)))) + PEAR_RELEASE = $(PRERELEASE_VERSION)$(RELEASE) SOURCE_TAG = $(VERSION)$(PRERELEASE)$(PEAR_RELEASE) ifeq "x$(CVS)" "x0" SPEC_VERSION = $(VERSION).$(PRERELEASE)$(PRERELEASE_VERSION) From cvs at kolab.org Wed Oct 17 13:39:35 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 13:39:35 +0200 (CEST) Subject: gunnar: server cvs-kolab.sh,1.12,1.13 Message-ID: <20071017113935.3181F60014F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv27111 Modified Files: cvs-kolab.sh Log Message: This is my current view on the release process poured into script form. Still untested but running at the moment. Index: cvs-kolab.sh =================================================================== RCS file: /kolabrepository/server/cvs-kolab.sh,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- cvs-kolab.sh 4 Oct 2007 09:47:55 -0000 1.12 +++ cvs-kolab.sh 17 Oct 2007 11:39:33 -0000 1.13 @@ -3,11 +3,15 @@ KOLAB_PACKAGES=/kolab-packages KOLAB_DEV_USER=kolabdevel KOLAB_INSTALL_USER=kolabtest +KOLAB_REL_USER=kolabrelease + +OPENPKG_USER=p at rdus.de ACTION_INSTALL=0 ACTION_UPDATE=0 ACTION_CLEAN=0 ACTION_DOWNLOAD=0 +ACTION_RELEASE=0 FLAG_HORDE=0 FLAG_FBVIEW=0 @@ -23,6 +27,7 @@ echo " -u Update the CVS and installed system" echo " -D Just download the source packages" echo " -c uninstall the Kolab CVS environment" + echo " -r Create a fresh Kolab source release" echo " -h (display this help)" echo echo "Options:" @@ -146,6 +151,66 @@ exit 0 } +release() { + echo + echo "Building release packages.... This will take a while!" + echo + if [ ! -e "/${KOLAB_DEV_USER}/CVS/server" ]; then + die "There exists no CVS environment at /${KOLAB_DEV_USER}/CVS/server! Did you run ./cvs-kolab.sh -i to setup the CVS based Kolab server?" + fi + cd "/${KOLAB_DEV_USER}/CVS/server" + cvs -q update -P -d + chown -R "${KOLAB_DEV_USER}:" "/${KOLAB_DEV_USER}/CVS" + su - "${KOLAB_DEV_USER}" -c "cd `pwd` && make clean" || die "Not releasing! Looks like the Kolab developers broke CVS. Bug them at https://www.intevation.de/roundup/kolab" + su - "${KOLAB_DEV_USER}" -c "cd `pwd` && make" || die "Not releasing! Looks like the Kolab developers broke CVS. Bug them at https://www.intevation.de/roundup/kolab" + mkdir -p "${KOLAB_PACKAGES}/source-release/RELEASE" + cd "${KOLAB_PACKAGES}/source-release/RELEASE" + cp "/${KOLAB_DEV_USER}/CVS/server/install-kolab.sh" . + cp /"${KOLAB_DEV_USER}"/CVS/server/stage/* . + wget "ftp://ftp.openpkg.org/current/SRC/CORE/openpkg-*.src.sh" || die "No OpenPKG installer found!" + ./install-kolab.sh -E -t "${KOLAB_REL_USER}" -I 23414 -F -H > ../kolab-build.log 2>&1 + wget "ftp://ftp.openpkg.org/current/SRC/BASE/openpkg-tools*.src.rpm" || die "No OpenPKG tools found!" + "/${KOLAB_REL_USER}/bin/openpkg" build -k openpkg-tools | sh + "/${KOLAB_REL_USER}/bin/openpkg" register --mode=post --user=${OPENPKG_USER} + chown ${KOLAB_REL_USER} . + "/${KOLAB_REL_USER}/bin/openpkg" index -r . -o 00INDEX.rdf -i . + cd .. + cp RELEASE/install-kolab.sh . + echo > 00INDEX.rdf < + + + + + + +EOF + ./install-kolab.sh -t "${KOLAB_REL_USER}" -I 23414 -F -H > kolab-build.log2 2>&1 + cp /"${KOLAB_REL_USER}"/RPM/PKG/*.src.rpm RELEASE/ + cd RELEASE + "/${KOLAB_REL_USER}/bin/openpkg" index -r . -o 00INDEX.rdf -i . + md5sum *.sh *.rpm > MD5SUMS + cd .. + + echo "Everything finished!" + echo "The release sources have been prepared in ${KOLAB_PACKAGES}/source-release/RELEASE" + echo "Your test installation resides in /${KOLAB_REL_USER}" + echo + echo "Configure the release installation with" + echo + echo " /${KOLAB_REL_USER}/sbin/kolabconf" + echo " /${KOLAB_REL_USER}/bin/openpkg rc all restart" + echo + echo "If everything is ready for a release, sign the md5 hashes in RELEASE with" + echo + echo " gpg --clearsign MD5SUMS" + echo + echo "and upload the packages." + exit 0 +} + clean() { echo "This will completely wipe ${KOLAB_PACKAGES}, /${KOLAB_DEV_USER}, and /${KOLAB_INSTALL_USER}." echo "Are you certain you want to do that (YES/NO)?" @@ -163,7 +228,7 @@ -while getopts hicuDHFb:d:t: ARGS; do +while getopts hircuDHFb:d:t: ARGS; do case $ARGS in h) # Display help usage @@ -177,6 +242,9 @@ u) # Update ACTION_UPDATE=1 ;; + r) # + ACTION_RELEASE=1 + ;; D) # Download ACTION_DOWNLOAD=1 ;; @@ -216,6 +284,10 @@ if [ "${ACTION_CLEAN}" == "1" ]; then clean +fi + +if [ "${ACTION_RELEASE}" == "1" ]; then + release fi update From cvs at kolab.org Wed Oct 17 14:37:04 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 14:37:04 +0200 (CEST) Subject: gunnar: server cvs-kolab.sh,1.13,1.14 Message-ID: <20071017123704.3F3A0602A4F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv27663 Modified Files: cvs-kolab.sh Log Message: Unpersonalize. Index: cvs-kolab.sh =================================================================== RCS file: /kolabrepository/server/cvs-kolab.sh,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- cvs-kolab.sh 17 Oct 2007 11:39:33 -0000 1.13 +++ cvs-kolab.sh 17 Oct 2007 12:37:01 -0000 1.14 @@ -5,7 +5,7 @@ KOLAB_INSTALL_USER=kolabtest KOLAB_REL_USER=kolabrelease -OPENPKG_USER=p at rdus.de +OPENPKG_USER=developer at mydomain.de ACTION_INSTALL=0 ACTION_UPDATE=0 From cvs at kolab.org Wed Oct 17 15:10:43 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 15:10:43 +0200 (CEST) Subject: gunnar: server cvs-kolab.sh,1.14,1.15 Message-ID: <20071017131043.45768602A5F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv28497 Modified Files: cvs-kolab.sh Log Message: Remove binary packages here otherwise the next step will error out. Index: cvs-kolab.sh =================================================================== RCS file: /kolabrepository/server/cvs-kolab.sh,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- cvs-kolab.sh 17 Oct 2007 12:37:01 -0000 1.14 +++ cvs-kolab.sh 17 Oct 2007 13:10:41 -0000 1.15 @@ -172,6 +172,8 @@ wget "ftp://ftp.openpkg.org/current/SRC/BASE/openpkg-tools*.src.rpm" || die "No OpenPKG tools found!" "/${KOLAB_REL_USER}/bin/openpkg" build -k openpkg-tools | sh "/${KOLAB_REL_USER}/bin/openpkg" register --mode=post --user=${OPENPKG_USER} + PLATFORM=`/"${KOLAB_REL_USER}"/lib/openpkg/shtool platform --type=binary` + rm *$PLATFORM* chown ${KOLAB_REL_USER} . "/${KOLAB_REL_USER}/bin/openpkg" index -r . -o 00INDEX.rdf -i . cd .. From cvs at kolab.org Wed Oct 17 15:27:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 15:27:36 +0200 (CEST) Subject: gunnar: server cvs-kolab.sh,1.15,1.16 Message-ID: <20071017132736.D974560C4A6@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv28736 Modified Files: cvs-kolab.sh Log Message: Typo Index: cvs-kolab.sh =================================================================== RCS file: /kolabrepository/server/cvs-kolab.sh,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- cvs-kolab.sh 17 Oct 2007 13:10:41 -0000 1.15 +++ cvs-kolab.sh 17 Oct 2007 13:27:34 -0000 1.16 @@ -178,17 +178,17 @@ "/${KOLAB_REL_USER}/bin/openpkg" index -r . -o 00INDEX.rdf -i . cd .. cp RELEASE/install-kolab.sh . - echo > 00INDEX.rdf < - - - - - - -EOF + cat << EOF > 00INDEX.rdf + + + + + + + +EOF ./install-kolab.sh -t "${KOLAB_REL_USER}" -I 23414 -F -H > kolab-build.log2 2>&1 cp /"${KOLAB_REL_USER}"/RPM/PKG/*.src.rpm RELEASE/ cd RELEASE From cvs at kolab.org Wed Oct 17 19:57:15 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 19:57:15 +0200 (CEST) Subject: thomas: server/kolab-webadmin/admin/docs ChangeLog,1.1,1.2 Message-ID: <20071017175715.2DFAB602A4E@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/admin/docs In directory doto:/tmp/cvs-serv9800/kolab-webadmin/admin/docs Modified Files: ChangeLog Log Message: Fix kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/admin/docs/ChangeLog,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ChangeLog 17 Aug 2007 08:51:26 -0000 1.1 +++ ChangeLog 17 Oct 2007 17:57:13 -0000 1.2 @@ -1,3 +1,7 @@ +2007-10-17 Thomas Arendsen Hein + + * templates/kolab.tpl: kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) + 2007-08-07 Gunnar Wrobel

* php/admin/templates/page.tpl.in: From cvs at kolab.org Wed Oct 17 19:57:15 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 19:57:15 +0200 (CEST) Subject: thomas: server 00INDEX.rdf,1.1,1.2 Message-ID: <20071017175715.1AF77602A4A@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv9800 Modified Files: 00INDEX.rdf Log Message: Fix kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) Index: 00INDEX.rdf =================================================================== RCS file: /kolabrepository/server/00INDEX.rdf,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- 00INDEX.rdf 17 Jul 2007 16:30:53 -0000 1.1 +++ 00INDEX.rdf 17 Oct 2007 17:57:12 -0000 1.2 @@ -2103,8 +2103,6 @@ imapd::with_atvdom imapd::with_morelogging imapd::with_kolab - proftpd - proftpd::with_ldap perl-ssl perl-www perl-ldap @@ -4957,180 +4955,6 @@ arrival (e.g. to generate different chimes on your workstation for different types of mail) or selectively forward certain incoming mail automatically to someone. - - - - proftpd - 1.3.0a - 20070522 - OpenPKG Community - BASE - FTP - GPL - OpenPKG Foundation e.V. -

Professional FTP Daemon - http://www.proftpd.org/ - The ProFTPD Project - - - OpenPKG - openpkg - make - ncurses - getopt - - - - - kerberos - - - - - openldap - openssl - - - - - mysql - - - - - ODBC - - - - - opie - - - - - PAM - - - - - postgresql - openssl - - - - - skey - - - - - sqlite - - - - - OpenPKG - openpkg - ncurses - getopt - - - - - kerberos - - - - - openldap - openssl - - - - - mysql - - - - - ODBC - - - - - opie - - - - - PAM - - - - - postgresql - openssl - - - - - skey - - - - - sqlite - - - - - proftpd::with_ifsession - proftpd::with_ctrls - proftpd::with_radius - proftpd::with_pam - proftpd::with_mysql - proftpd::with_pgsql - proftpd::with_sqlite - proftpd::with_odbc - proftpd::with_ldap - proftpd::with_skey - proftpd::with_opie - proftpd::with_kerberos - - - - - http://www.castaglia.net/proftpd/modules/proftpd-mod-sql-sqlite-0.2.tar.gz - http://www.castaglia.net/proftpd/modules/proftpd-mod-sql-odbc-0.3.2.tar.gz - rc.proftpd - http://www.castaglia.net/proftpd/modules/proftpd-mod-exec-0.9.2.tar.gz - proftpd.conf - ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.0a.tar.bz2 - http://www.castaglia.net/proftpd/modules/proftpd-mod-vroot-0.7.2.tar.gz - proftpd.msg.goaway - http://www.castaglia.net/proftpd/modules/proftpd-mod-time-2.2.1.tar.gz - proftpd.msg.login - http://www.castaglia.net/proftpd/modules/proftpd-mod-otp-0.9.1.tar.gz - http://www.castaglia.net/proftpd/modules/proftpd-mod-shaper-0.6.3.tar.gz - http://switch.dl.sourceforge.net/gssmod/mod_gss-1.3.0a.tar.gz - - - -ProFTPD grew out of the desire to have a secure and configurable -FTP server, and out of a significant admiration of the Apache web -server. There are currently a very limited number of FTP servers -running on unix (or unix-like) hosts. The most commonly used server -is probably wu-ftpd. While wu-ftpd provides excellent performance -and is generally a good product, it lacks numerous features found -in newer Win32 FTP servers, and has a poor security history. Many -people, including the developers who work on ProFTPD have spent a -great deal of time fixing bugs and hacking features into wu-ftpd. -Unfortunately, it quickly became clear that a complete redesign was -necessary in order to implement the configurability and features -desired. ProFTPD is not a hack based on any other server, it's an -independent source tree from the ground up. Click here for a small -list of some of the sites ProFTPD powers -- many of them handling -large volumes of traffic on a daily basis. From cvs at kolab.org Wed Oct 17 19:57:15 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 19:57:15 +0200 (CEST) Subject: thomas: server/kolab-webadmin/admin/templates kolab.tpl,1.1,1.2 Message-ID: <20071017175715.31D8E602A53@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/admin/templates In directory doto:/tmp/cvs-serv9800/kolab-webadmin/admin/templates Modified Files: kolab.tpl Log Message: Fix kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) Index: kolab.tpl =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/admin/templates/kolab.tpl,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- kolab.tpl 17 Aug 2007 08:51:26 -0000 1.1 +++ kolab.tpl 17 Oct 2007 17:57:13 -0000 1.2 @@ -19,7 +19,6 @@
  • Cyrus {tr msg="(IMAP Server)"}
  • OpenLDAP {tr msg="(LDAP Server)"}
  • Postfix {tr msg="(MTA)"}
  • -
  • SpamAssasin {tr msg="(SPAM Filter)"}
  • From cvs at kolab.org Wed Oct 17 19:57:15 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 19:57:15 +0200 (CEST) Subject: thomas: server/kolabconf/lib/Kolab Conf.pm,1.11,1.12 Message-ID: <20071017175715.4F55E602A5A@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabconf/lib/Kolab In directory doto:/tmp/cvs-serv9800/kolabconf/lib/Kolab Modified Files: Conf.pm Log Message: Fix kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) Index: Conf.pm =================================================================== RCS file: /kolabrepository/server/kolabconf/lib/Kolab/Conf.pm,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- Conf.pm 14 Oct 2007 12:31:58 -0000 1.11 +++ Conf.pm 17 Oct 2007 17:57:13 -0000 1.12 @@ -232,8 +232,6 @@ $haschanged{'saslauthd'} = 1; } elsif ($cfg =~ /apache/) { $haschanged{'apache'} = 1; - } elsif ($cfg =~ /proftpd/) { - $haschanged{'proftpd'} = 1; } elsif ($cfg =~ /openldap/) { $haschanged{'slapd'} = 1; } elsif ($cfg =~ /imapd/) { @@ -758,18 +756,6 @@ if ($haschanged{'clamav'}) { &Kolab::log('K', 'Restarting clamav...'); system("$Kolab::config{'KOLABRC'} rc clamav restart"); - } - - if ($Kolab::config{'proftpd-ftp'} =~ /true/i) { - Kolab::log('K', 'Starting ProFTPd if not running'); - system("$Kolab::config{'KOLABRC'} rc proftpd start"); - if ($haschanged{'proftpd'}) { - &Kolab::log('K', 'Reloading ProFTPd...'); - kill('SIGHUP', `cat $Kolab::config{ftpserver_pidfile}`); - } - } else { - &Kolab::log('K', 'Stopping ProFTPd, if running...'); - system("$Kolab::config{'KOLABRC'} rc proftpd stop"); } %Kolab::Conf::haschanged = (); From cvs at kolab.org Wed Oct 17 19:57:15 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 19:57:15 +0200 (CEST) Subject: thomas: server/kolabd/kolabd/dist_conf centos-clarkconnect, 1.6, 1.7 common, 1.38, 1.39 debian, 1.11, 1.12 gentoo, 1.11, 1.12 kolab, 1.49, 1.50 mandriva, 1.8, 1.9 suse, 1.60, 1.61 Message-ID: <20071017175715.8E66B602A53@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/dist_conf In directory doto:/tmp/cvs-serv9800/kolabd/kolabd/dist_conf Modified Files: centos-clarkconnect common debian gentoo kolab mandriva suse Log Message: Fix kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) Index: centos-clarkconnect =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/centos-clarkconnect,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- centos-clarkconnect 31 Aug 2007 10:52:43 -0000 1.6 +++ centos-clarkconnect 17 Oct 2007 17:57:13 -0000 1.7 @@ -110,21 +110,6 @@ emailserver_musr=is_this_still_used #-------------------------------------------------------------------- -# Proftp -#-------------------------------------------------------------------- -# TODO - -ftpserver_scoreboardfile=/var/state/score -ftpserver_logfile=/var/log/xferlog -ftpserver_confdir=/etc -ftpserver_pidfile=/var/run/proftpd.pid -ftpserver_musr=root -ftpserver_usr=ftp -ftpserver_grp=ftp -ftpserver_uid=14 -ftpserver_gid=50 - -#-------------------------------------------------------------------- # Cyrus IMAP #-------------------------------------------------------------------- # TODO: is imap_lmtp still used? Index: common =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/common,v retrieving revision 1.38 retrieving revision 1.39 diff -u -d -r1.38 -r1.39 --- common 31 Aug 2007 10:52:43 -0000 1.38 +++ common 17 Oct 2007 17:57:13 -0000 1.39 @@ -63,15 +63,6 @@ -e 's,[@]freshclam_logfile[@],$(freshclam_logfile),g' \ -e 's,[@]freshclam_pidfile[@],$(freshclam_pidfile),g' \ -e 's,[@]fsl_logfile[@],$(fsl_logfile),g' \ - -e 's,[@]ftpserver_confdir[@],$(ftpserver_confdir),g' \ - -e 's,[@]ftpserver_gid[@],$(ftpserver_gid),g' \ - -e 's,[@]ftpserver_grp[@],$(ftpserver_grp),g' \ - -e 's,[@]ftpserver_logfile[@],$(ftpserver_logfile),g' \ - -e 's,[@]ftpserver_musr[@],$(ftpserver_musr),g' \ - -e 's,[@]ftpserver_pidfile[@],$(ftpserver_pidfile),g' \ - -e 's,[@]ftpserver_scoreboardfile[@],$(ftpserver_scoreboardfile),g' \ - -e 's,[@]ftpserver_uid[@],$(ftpserver_uid),g' \ - -e 's,[@]ftpserver_usr[@],$(ftpserver_usr),g' \ -e 's,[@]graveyard_tscache[@],$(graveyard_tscache),g' \ -e 's,[@]graveyard_uidcache[@],$(graveyard_uidcache),g' \ -e 's,[@]imap_confdir[@],$(imap_confdir),g' \ Index: debian =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/debian,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- debian 31 Aug 2007 10:52:43 -0000 1.11 +++ debian 17 Oct 2007 17:57:13 -0000 1.12 @@ -57,17 +57,6 @@ emailserver_musr=kolab emailserver_grp=${restricted_kolab_grp} -ftpserver_scoreboardfile=${localstatedir}/proftpd/score -ftpserver_logfile=${localstatedir}/log/proftpd.log -ftpserver_confdir=${sysconfdir}/proftpd -ftpserver_pidfile=${sysrundir}/proftpd/proftpd.pid -ftpserver_musr=kolab -ftpserver_usr=${kolab_usr} -ftpserver_grp=${kolab_grp} -# Why hardcoded uid/gid??? -ftpserver_uid=19416 -ftpserver_gid=19416 - imap_confdir=${sysconfdir} imap_confperm=0640 imap_usr=cyrus Index: gentoo =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/gentoo,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- gentoo 31 Aug 2007 10:52:43 -0000 1.11 +++ gentoo 17 Oct 2007 17:57:13 -0000 1.12 @@ -149,27 +149,6 @@ imap_notify_socket=${imap_statedir}/socket/notify ##################################################################### -# Proftpd parameters - -### -> users - -ftpserver_musr=kolab -ftpserver_usr=nobody -ftpserver_grp=nobody -# Why hardcoded uid/gid??? -ftpserver_uid=65534 -ftpserver_gid=65534 - -### -> files - -ftpserver_scoreboardfile=${sysrundir}/proftpd/score -ftpserver_logfile=${logdir}/proftpd.log -ftpserver_confdir=${sysconfdir}/proftpd -ftpserver_pidfile=${sysrundir}/proftpd/proftpd.pid - -#-------------------------------------------------------------------- - -##################################################################### # LDAP parameters ### -> users Index: kolab =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/kolab,v retrieving revision 1.49 retrieving revision 1.50 diff -u -d -r1.49 -r1.50 --- kolab 14 Oct 2007 12:31:58 -0000 1.49 +++ kolab 17 Oct 2007 17:57:13 -0000 1.50 @@ -76,17 +76,6 @@ emailserver_rpm=postfix emailserver_tables_usr=${kolab_susr} -ftpserver_scoreboardfile=${localstatedir}/proftpd/score -ftpserver_logfile=${localstatedir}/proftpd/proftpd.log -ftpserver_confdir=${sysconfdir}/proftpd -ftpserver_pidfile=${localstatedir}/proftpd/proftpd.pid -ftpserver_musr=${kolab_musr} -ftpserver_usr=${kolab_usr} -ftpserver_grp=${kolab_grp} -# Why hardcoded uid/gid??? -ftpserver_uid=19416 -ftpserver_gid=19416 - imap_confdir=${sysconfdir}/imapd imap_confperm=0640 # @l_musr@ Index: mandriva =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/mandriva,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- mandriva 27 Jul 2007 18:25:20 -0000 1.8 +++ mandriva 17 Oct 2007 17:57:13 -0000 1.9 @@ -35,15 +35,6 @@ emailserver_grp=${restricted_kolab_grp} emailserver_mail_usr=kolab # = kolab -ftpserver_scoreboardfile=/var/run/proftpd/proftpd.scoreboard -ftpserver_logfile=/var/log/proftpd/proftpd.log -ftpserver_pidfile=/var/run/proftpd.pid -ftpserver_confdir=${sysconfdir} -ftpserver_usr=nobody -ftpserver_grp=nogroup -ftpserver_uid=65534 -ftpserver_gid=65534 - kolab_logdir=/var/log/kolab kolab_pidfile=/var/run/kolab/kolab.pid kolab_scriptsdir=$(sysconfdir)/kolab Index: suse =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/suse,v retrieving revision 1.60 retrieving revision 1.61 diff -u -d -r1.60 -r1.61 --- suse 31 Aug 2007 10:52:43 -0000 1.60 +++ suse 17 Oct 2007 17:57:13 -0000 1.61 @@ -66,17 +66,6 @@ emailserver_rpm=postfix emailserver_tables_usr=root -ftpserver_scoreboardfile=${localstatedir}/proftpd/score -ftpserver_logfile=${localstatedir}/log/proftpd.log -ftpserver_confdir=${sysconfdir}/proftpd -ftpserver_pidfile=${localstatedir}/proftpd/proftpd.pid -ftpserver_musr=kolab -ftpserver_usr=${kolab_usr} -ftpserver_grp=${kolab_grp} -# Why hardcoded uid/gid??? -ftpserver_uid=19416 -ftpserver_gid=19416 - imap_confdir=${sysconfdir} imap_confperm=0640 imap_usr=cyrus From cvs at kolab.org Wed Oct 17 19:57:15 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 19:57:15 +0200 (CEST) Subject: thomas: server/kolabconf ChangeLog,1.1,1.2 Message-ID: <20071017175715.4A306602A56@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabconf In directory doto:/tmp/cvs-serv9800/kolabconf Modified Files: ChangeLog Log Message: Fix kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabconf/ChangeLog,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ChangeLog 17 Oct 2007 07:12:15 -0000 1.1 +++ ChangeLog 17 Oct 2007 17:57:13 -0000 1.2 @@ -1,3 +1,7 @@ +2007-10-17 Thomas Arendsen Hein + + * lib/Kolab/Conf.pm: kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) + 2007-09-06 Gunnar Wrobel

    * Conf.pm: From cvs at kolab.org Wed Oct 17 19:57:15 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 19:57:15 +0200 (CEST) Subject: thomas: server/kolabd/kolabd ChangeLog, 1.110, 1.111 Makefile.am, 1.34, 1.35 kolab.globals.in, 1.8, 1.9 kolab2.schema, 1.26, 1.27 kolab_bootstrap.in, 1.27, 1.28 kolabd.spec.in, 1.20, 1.21 Message-ID: <20071017175715.61638602A4A@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv9800/kolabd/kolabd Modified Files: ChangeLog Makefile.am kolab.globals.in kolab2.schema kolab_bootstrap.in kolabd.spec.in Log Message: Fix kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.110 retrieving revision 1.111 diff -u -d -r1.110 -r1.111 --- ChangeLog 3 Oct 2007 10:05:18 -0000 1.110 +++ ChangeLog 17 Oct 2007 17:57:13 -0000 1.111 @@ -1,3 +1,14 @@ +2007-10-17 Thomas Arendsen Hein + + * Makefile.am, kolab.globals.in, kolab2.schema, kolab_bootstrap.in, + kolabd.spec.in, dist_conf/centos-clarkconnect, dist_conf/common, + dist_conf/debian, dist_conf/gentoo, dist_conf/kolab, + dist_conf/mandriva, dist_conf/suse, namespace/libexec/showlog.in, + templates/rc.conf.template.in: + kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) + + * templates/proftpd.conf.template.in: Removed. + 2007-10-03 Gunnar Wrobel

    * templates/httpd.conf.template.in: Index: Makefile.am =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/Makefile.am,v retrieving revision 1.34 retrieving revision 1.35 diff -u -d -r1.34 -r1.35 --- Makefile.am 3 Oct 2007 10:05:18 -0000 1.34 +++ Makefile.am 17 Oct 2007 17:57:13 -0000 1.35 @@ -63,7 +63,6 @@ templates/ldapvirtual.cf.template \ templates/kolab_smtpdpolicy.conf.template \ templates/php.ini.template \ - templates/proftpd.conf.template \ templates/resmgr.conf.template \ templates/saslauthd.conf.template \ templates/session_vars.php.template \ @@ -444,12 +443,6 @@ $(do_subst) <$(srcdir)/templates/php.ini.template.in >$@ CLEANFILES += templates/php.ini.template EXTRA_DIST += templates/php.ini.template.in - -templates/proftpd.conf.template: templates/proftpd.conf.template.in - @$(mkinstalldirs) templates - $(do_subst) <$(srcdir)/templates/proftpd.conf.template.in >$@ -CLEANFILES += templates/proftpd.conf.template -EXTRA_DIST += templates/proftpd.conf.template.in templates/rc.conf.template: templates/rc.conf.template.in @$(mkinstalldirs) templates Index: kolab.globals.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolab.globals.in,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- kolab.globals.in 8 Oct 2007 15:39:27 -0000 1.8 +++ kolab.globals.in 17 Oct 2007 17:57:13 -0000 1.9 @@ -12,8 +12,6 @@ log_level : 2 debug : 0 postfix-mydestination : $mydomain -proftpd-ftp : FALSE -proftpd-userPassword : sf_field_deleted : kolabdeleteflag sf_field_guid : entryUUID sf_field_modified : modifytimestamp @@ -42,7 +40,6 @@ kolabdir: @sysconfdir@/kolab/ postmapping: @sbindir@/postmap -o @emailserver_confdir@ KOLABRC: @KOLABRC@ -ftpserver_pidfile: @ftpserver_pidfile@ sbindir: @sbindir@ webserver_logdir: @webserver_logdir@ webserver_document_root: @webserver_document_root@ Index: kolab2.schema =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolab2.schema,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- kolab2.schema 25 Sep 2007 16:37:10 -0000 1.26 +++ kolab2.schema 17 Oct 2007 17:57:13 -0000 1.27 @@ -521,9 +521,9 @@ EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 ) -###################### -# proftpd attributes # -###################### +###################################################### +# proftpd attributes (unused since Kolab Server 2.2) # +###################################################### attributetype ( 1.3.6.1.4.1.19414.2.1.901 NAME 'proftpd-defaultquota' Index: kolab_bootstrap.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolab_bootstrap.in,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- kolab_bootstrap.in 8 Oct 2007 15:21:20 -0000 1.27 +++ kolab_bootstrap.in 17 Oct 2007 17:57:13 -0000 1.28 @@ -536,9 +536,6 @@ 'cyrus-sieve' => "TRUE", 'apache-http' => "FALSE", 'apache-allow-unauthenticated-fb' => "FALSE", - 'proftpd-ftp' => "FALSE", - #'proftpd-defaultquota' => 100000, - #'proftpd-userPassword' => "freebusy", 'uid' => "freebusy", 'userPassword' => "freebusy", 'objectclass' => ['top', 'kolab' ] ); @@ -632,7 +629,7 @@ print "LDAP setup finished\n\n"; - print "Create initial config files for postfix, apache, proftpd, cyrus imap, saslauthd\n"; + print "Create initial config files for postfix, apache, cyrus imap, saslauthd\n"; if ("@WITHOPENPKG@" eq "yes") { # @sysconfdir@/rc.conf can be used to change the startup behaviour Index: kolabd.spec.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolabd.spec.in,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- kolabd.spec.in 14 Oct 2007 12:31:58 -0000 1.20 +++ kolabd.spec.in 17 Oct 2007 17:57:13 -0000 1.21 @@ -73,7 +73,6 @@ %endif PreReq: imapd, imapd::with_group = yes, imapd::with_group_igncase = yes, imapd::with_ldap = yes, imapd::with_annotate = yes, imapd::with_atvdom = yes, imapd::with_morelogging = yes, imapd::with_kolab = yes -PreReq: proftpd, proftpd::with_ldap = yes PreReq: perl-ssl PreReq: perl-www PreReq: perl-ldap From cvs at kolab.org Wed Oct 17 19:57:15 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 19:57:15 +0200 (CEST) Subject: thomas: server/kolabd/kolabd/templates rc.conf.template.in, 1.4, 1.5 proftpd.conf.template.in, 1.2, NONE Message-ID: <20071017175715.9F1CF602A4A@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv9800/kolabd/kolabd/templates Modified Files: rc.conf.template.in Removed Files: proftpd.conf.template.in Log Message: Fix kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) Index: rc.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/rc.conf.template.in,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- rc.conf.template.in 8 Oct 2007 15:39:27 -0000 1.4 +++ rc.conf.template.in 17 Oct 2007 17:57:13 -0000 1.5 @@ -14,11 +14,5 @@ openldap_url="ldap://@@@bind_addr@@@/ ldaps://@@@bind_addr@@@/" sasl_authmech="ldap" -@@@if proftpd-ftp@@@ -proftpd_enable="yes" -@@@else@@@ -proftpd_enable="no" -@@@endif@@@ - spamassassin_enable="no" clamav_update="hourly" --- proftpd.conf.template.in DELETED --- From cvs at kolab.org Wed Oct 17 19:57:15 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 19:57:15 +0200 (CEST) Subject: thomas: server/kolab-webadmin/kolab-webadmin/www/admin/service index.php.in, 1.4, 1.5 Message-ID: <20071017175715.4158B602A4E@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/service In directory doto:/tmp/cvs-serv9800/kolab-webadmin/kolab-webadmin/www/admin/service Modified Files: index.php.in Log Message: Fix kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) Index: index.php.in =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/service/index.php.in,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- index.php.in 25 Jan 2007 10:33:42 -0000 1.4 +++ index.php.in 17 Oct 2007 17:57:13 -0000 1.5 @@ -35,7 +35,6 @@ global $imap; global $imaps; global $sieve; - global $ftp; global $http; global $httpallowunauthfb; global $amavis; @@ -61,7 +60,6 @@ $imap = $attrs['cyrus-imap'][0]; $imaps = $attrs['cyrus-imaps'][0]; $sieve = $attrs['cyrus-sieve'][0]; - $ftp = $attrs['proftpd-ftp'][0]; $http = $attrs['apache-http'][0]; $httpallowunauthfb = $attrs['apache-allow-unauthenticated-fb'][0]; $amavis = $attrs['postfix-enable-virus-scan'][0]; @@ -123,7 +121,6 @@ if( postvalue( 'imap' ) != $imap ) $attrs['cyrus-imap'] = postvalue( 'imap' ); if( postvalue( 'imaps' ) != $imaps ) $attrs['cyrus-imaps'] = postvalue( 'imaps' ); if( postvalue( 'sieve' ) != $sieve ) $attrs['cyrus-sieve'] = postvalue( 'sieve' ); - if( postvalue( 'ftp' ) != $ftp ) $attrs['proftpd-ftp'] = postvalue( 'ftp' ); if( postvalue( 'http' ) != $http ) $attrs['apache-http'] = postvalue( 'http' ); if( postvalue( 'amavis' ) != $amavis ) $attrs['postfix-enable-virus-scan'] = postvalue( 'amavis' ); @@ -278,9 +275,6 @@ array( 'service' => 'imap', 'name' => _('IMAP Service'), 'enabled' => toboolstr( $imap ) ), array( 'service' => 'imaps', 'name' => _('IMAP/SSL Service (TCP port 993)'), 'enabled' => toboolstr( $imaps ) ), array( 'service' => 'sieve', 'name' => _('Sieve service (TCP port 2000)'), 'enabled' => toboolstr( $sieve ) ), - array( 'service' => 'ftp', - 'name' => _('FTP FreeBusy Service (Legacy, not interoperable with Kolab2 FreeBusy)'), - 'enabled' => toboolstr( $ftp ) ), array( 'service' => 'http', 'name' => _('HTTP FreeBusy Service (Legacy)'), 'enabled' => toboolstr( $http ) ), array( 'service' => 'amavis', 'name' => _('Amavis Email Scanning (Virus/Spam)'), 'enabled' => toboolstr( $amavis ) ) ); From cvs at kolab.org Wed Oct 17 19:57:15 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 19:57:15 +0200 (CEST) Subject: thomas: server/kolabd/kolabd/namespace/libexec showlog.in,1.4,1.5 Message-ID: <20071017175715.8C7AC602A4E@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/namespace/libexec In directory doto:/tmp/cvs-serv9800/kolabd/kolabd/namespace/libexec Modified Files: showlog.in Log Message: Fix kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) Index: showlog.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/namespace/libexec/showlog.in,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- showlog.in 13 Dec 2005 21:10:26 -0000 1.4 +++ showlog.in 17 Oct 2007 17:57:13 -0000 1.5 @@ -23,7 +23,6 @@ #list of logfiles, maintainers please update logfiles=" - at ftpserver_logfile@ @amavisd_logfile@ @fsl_logfile@ @sasl_logfile@ From cvs at kolab.org Wed Oct 17 19:57:15 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 19:57:15 +0200 (CEST) Subject: thomas: server/kolab-webadmin/kolab-webadmin ChangeLog,1.57,1.58 Message-ID: <20071017175715.36925602A54@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin In directory doto:/tmp/cvs-serv9800/kolab-webadmin/kolab-webadmin Modified Files: ChangeLog Log Message: Fix kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/ChangeLog,v retrieving revision 1.57 retrieving revision 1.58 diff -u -d -r1.57 -r1.58 --- ChangeLog 7 Aug 2007 12:03:01 -0000 1.57 +++ ChangeLog 17 Oct 2007 17:57:13 -0000 1.58 @@ -1,3 +1,8 @@ +2007-10-17 Thomas Arendsen Hein + + * php/admin/templates/kolab.tpl, www/admin/service/index.php.in: + kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) + 2007-08-07 Gunnar Wrobel

    * php/admin/templates/page.tpl.in: From cvs at kolab.org Wed Oct 17 19:57:15 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 19:57:15 +0200 (CEST) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/templates kolab.tpl, 1.5, 1.6 Message-ID: <20071017175715.3F72B602A4A@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/templates In directory doto:/tmp/cvs-serv9800/kolab-webadmin/kolab-webadmin/php/admin/templates Modified Files: kolab.tpl Log Message: Fix kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) Index: kolab.tpl =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/templates/kolab.tpl,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- kolab.tpl 2 Feb 2007 11:26:24 -0000 1.5 +++ kolab.tpl 17 Oct 2007 17:57:13 -0000 1.6 @@ -19,7 +19,6 @@

  • Cyrus {tr msg="(IMAP Server)"}
  • OpenLDAP {tr msg="(LDAP Server)"}
  • Postfix {tr msg="(MTA)"}
  • -
  • SpamAssasin {tr msg="(SPAM Filter)"}
  • From cvs at kolab.org Wed Oct 17 19:57:15 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 19:57:15 +0200 (CEST) Subject: thomas: server/perl-kolab/lib Kolab.pm,1.6,1.7 Message-ID: <20071017175715.A5031602A56@lists.intevation.de> Author: thomas Update of /kolabrepository/server/perl-kolab/lib In directory doto:/tmp/cvs-serv9800/perl-kolab/lib Modified Files: Kolab.pm Log Message: Fix kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) Index: Kolab.pm =================================================================== RCS file: /kolabrepository/server/perl-kolab/lib/Kolab.pm,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Kolab.pm 15 Oct 2007 13:59:19 -0000 1.6 +++ Kolab.pm 17 Oct 2007 17:57:13 -0000 1.7 @@ -241,14 +241,6 @@ # We now need to go through the list of all possible configuration variables # and set the default values of those that were not overridden. - # ProFTPd password - if (exists $config{'proftpd-userPassword'}) { - my $salt = substr($config{'proftpd-userPassword'}, 0, 2); - $config{'proftpd-userPassword'} = crypt($config{'proftpd-userPassword'}, $salt); - } else { - $config{'proftpd-userPassword'} = ''; - } - $config{'fqdn'} = trim(`hostname`); # connect to services at local address if binding to any interface, From cvs at kolab.org Wed Oct 17 19:57:15 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 19:57:15 +0200 (CEST) Subject: thomas: server/perl-kolab ChangeLog,1.23,1.24 Message-ID: <20071017175715.A2FCF602A54@lists.intevation.de> Author: thomas Update of /kolabrepository/server/perl-kolab In directory doto:/tmp/cvs-serv9800/perl-kolab Modified Files: ChangeLog Log Message: Fix kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/perl-kolab/ChangeLog,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- ChangeLog 17 Oct 2007 07:05:02 -0000 1.23 +++ ChangeLog 17 Oct 2007 17:57:13 -0000 1.24 @@ -1,3 +1,7 @@ +2007-10-17 Thomas Arendsen Hein + + * lib/Kolab.pm: kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) + 2007-08-01 Gunnar Wrobel

    Converted the perl-kolab package into a standard perl library. From cvs at kolab.org Wed Oct 17 20:13:58 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 20:13:58 +0200 (CEST) Subject: thomas: server/kolabd/kolabd ChangeLog,1.111,1.112 Message-ID: <20071017181358.4824E602A56@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv10422/kolabd/kolabd Modified Files: ChangeLog Log Message: Removed WebDAV for freebusy (kolab/issue1686 (Remove WebDAV Support)) I kept general webdav support enabled, because I don't know if Horde needs this. To disable support completely, the following files have to be changed: kolabd/kolabd/kolabd.spec.in: remove apache::with_mod_dav = yes kolabd/kolabd/templates/httpd.conf.template.in: remove DavLockDB Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.111 retrieving revision 1.112 diff -u -d -r1.111 -r1.112 --- ChangeLog 17 Oct 2007 17:57:13 -0000 1.111 +++ ChangeLog 17 Oct 2007 18:13:56 -0000 1.112 @@ -9,6 +9,8 @@ * templates/proftpd.conf.template.in: Removed. + * templates/httpd.conf.template.in: kolab/issue1686 (Remove WebDAV Support) + 2007-10-03 Gunnar Wrobel

    * templates/httpd.conf.template.in: From cvs at kolab.org Wed Oct 17 20:13:58 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 20:13:58 +0200 (CEST) Subject: thomas: server/kolabd/kolabd/templates httpd.conf.template.in, 1.14, 1.15 Message-ID: <20071017181358.536C560C4A5@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv10422/kolabd/kolabd/templates Modified Files: httpd.conf.template.in Log Message: Removed WebDAV for freebusy (kolab/issue1686 (Remove WebDAV Support)) I kept general webdav support enabled, because I don't know if Horde needs this. To disable support completely, the following files have to be changed: kolabd/kolabd/kolabd.spec.in: remove apache::with_mod_dav = yes kolabd/kolabd/templates/httpd.conf.template.in: remove DavLockDB Index: httpd.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/httpd.conf.template.in,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- httpd.conf.template.in 14 Oct 2007 12:31:58 -0000 1.14 +++ httpd.conf.template.in 17 Oct 2007 18:13:56 -0000 1.15 @@ -225,8 +225,6 @@ # - #Dav On - #Script PUT /freebusy/freebusy.php AllowOverride None Options None # Disallow for everyone as default @@ -252,32 +250,7 @@ AuthLDAPBindPassword "@@@php_pw@@@" # FIXME: support authenticating with uid, too @@@endif@@@ - DavMinTimeout 600 AddDefaultCharset Off - - - - Dav On - AllowOverride None - Options None - # Disallow for everyone as default - Order allow,deny - - Allow from all - Require valid-user - - AuthType Basic - AuthName "Kolab Freebusy (webdav)" - AuthLDAPUrl "@@@ldap_uri@@@/@@@base_dn@@@?mail??" - AuthBasicAuthoritative off - AuthUserFile /dev/null - AuthBasicProvider ldap - AuthzLDAPAuthoritative off - AuthLDAPBindDN "@@@php_dn@@@" - AuthLDAPBindPassword "@@@php_pw@@@" - # FIXME: support authenticating with uid, too - DavMinTimeout 600 - AddDefaultCharset Off From cvs at kolab.org Wed Oct 17 20:27:16 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 20:27:16 +0200 (CEST) Subject: thomas: server/kolab-webadmin/admin/docs ChangeLog,1.2,1.3 Message-ID: <20071017182716.52C75602A4A@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/admin/docs In directory doto:/tmp/cvs-serv10740/admin/docs Modified Files: ChangeLog Log Message: Clarify web admin description for HTTP FreeBusy switch (with updated German translation) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/admin/docs/ChangeLog,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- ChangeLog 17 Oct 2007 17:57:13 -0000 1.2 +++ ChangeLog 17 Oct 2007 18:27:14 -0000 1.3 @@ -2,6 +2,9 @@ * templates/kolab.tpl: kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) + * locale/de/LC_MESSAGES/messages.po: Clarify web admin description for + HTTP FreeBusy switch (updated German translation) + 2007-08-07 Gunnar Wrobel

    * php/admin/templates/page.tpl.in: From cvs at kolab.org Wed Oct 17 20:27:16 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 20:27:16 +0200 (CEST) Subject: thomas: server/kolab-webadmin/admin/locale/de/LC_MESSAGES messages.po, 1.1, 1.2 Message-ID: <20071017182716.591EB602A4E@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/admin/locale/de/LC_MESSAGES In directory doto:/tmp/cvs-serv10740/admin/locale/de/LC_MESSAGES Modified Files: messages.po Log Message: Clarify web admin description for HTTP FreeBusy switch (with updated German translation) Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/admin/locale/de/LC_MESSAGES/messages.po,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- messages.po 17 Aug 2007 08:51:26 -0000 1.1 +++ messages.po 17 Oct 2007 18:27:14 -0000 1.2 @@ -11,7 +11,7 @@ "Project-Id-Version: messages-2.1-new_de\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-02-02 18:19+0100\n" -"PO-Revision-Date: 2005-10-17 09:23+0200\n" +"PO-Revision-Date: 2007-10-17 20:23+0200\n" "Last-Translator: Thomas Arendsen Hein \n" "Language-Team: deutsch \n" "MIME-Version: 1.0\n" @@ -1728,8 +1728,8 @@ "Belegt zusammen)" #: ../../../www/admin/service/index.php.in:284 -msgid "HTTP FreeBusy Service (Legacy)" -msgstr "HTTP-Frei/Belegt-Dienst (für Altsysteme)" +msgid "FreeBusy Service via HTTP (in addition to HTTPS)" +msgstr "Frei/Belegt-Dienst über HTTP (zusätzlich zu HTTPS)" #: ../../../www/admin/service/index.php.in:285 msgid "Amavis Email Scanning (Virus/Spam)" From cvs at kolab.org Wed Oct 17 20:27:16 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 20:27:16 +0200 (CEST) Subject: thomas: server/kolab-webadmin/kolab-webadmin/www/admin/service index.php.in, 1.5, 1.6 Message-ID: <20071017182716.6969D602A4E@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/service In directory doto:/tmp/cvs-serv10740/kolab-webadmin/www/admin/service Modified Files: index.php.in Log Message: Clarify web admin description for HTTP FreeBusy switch (with updated German translation) Index: index.php.in =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/service/index.php.in,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- index.php.in 17 Oct 2007 17:57:13 -0000 1.5 +++ index.php.in 17 Oct 2007 18:27:14 -0000 1.6 @@ -275,7 +275,7 @@ array( 'service' => 'imap', 'name' => _('IMAP Service'), 'enabled' => toboolstr( $imap ) ), array( 'service' => 'imaps', 'name' => _('IMAP/SSL Service (TCP port 993)'), 'enabled' => toboolstr( $imaps ) ), array( 'service' => 'sieve', 'name' => _('Sieve service (TCP port 2000)'), 'enabled' => toboolstr( $sieve ) ), - array( 'service' => 'http', 'name' => _('HTTP FreeBusy Service (Legacy)'), 'enabled' => toboolstr( $http ) ), + array( 'service' => 'http', 'name' => _('FreeBusy Service via HTTP (in addition to HTTPS)'), 'enabled' => toboolstr( $http ) ), array( 'service' => 'amavis', 'name' => _('Amavis Email Scanning (Virus/Spam)'), 'enabled' => toboolstr( $amavis ) ) ); From cvs at kolab.org Wed Oct 17 20:27:16 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 20:27:16 +0200 (CEST) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES messages.po, 1.25, 1.26 Message-ID: <20071017182716.68DEA602A4A@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES In directory doto:/tmp/cvs-serv10740/kolab-webadmin/php/admin/locale/de/LC_MESSAGES Modified Files: messages.po Log Message: Clarify web admin description for HTTP FreeBusy switch (with updated German translation) Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES/messages.po,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- messages.po 9 May 2007 08:36:11 -0000 1.25 +++ messages.po 17 Oct 2007 18:27:14 -0000 1.26 @@ -11,7 +11,7 @@ "Project-Id-Version: messages-2.1-new_de\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-02-02 18:19+0100\n" -"PO-Revision-Date: 2005-10-17 09:23+0200\n" +"PO-Revision-Date: 2007-10-17 20:22+0200\n" "Last-Translator: Thomas Arendsen Hein \n" "Language-Team: deutsch \n" "MIME-Version: 1.0\n" @@ -1728,8 +1728,8 @@ "Belegt zusammen)" #: ../../../www/admin/service/index.php.in:284 -msgid "HTTP FreeBusy Service (Legacy)" -msgstr "HTTP-Frei/Belegt-Dienst (für Altsysteme)" +msgid "FreeBusy Service via HTTP (in addition to HTTPS)" +msgstr "Frei/Belegt-Dienst über HTTP (zusätzlich zu HTTPS)" #: ../../../www/admin/service/index.php.in:285 msgid "Amavis Email Scanning (Virus/Spam)" From cvs at kolab.org Wed Oct 17 20:27:16 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 20:27:16 +0200 (CEST) Subject: thomas: server/kolab-webadmin/kolab-webadmin ChangeLog,1.58,1.59 Message-ID: <20071017182716.5CE2E602A56@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin In directory doto:/tmp/cvs-serv10740/kolab-webadmin Modified Files: ChangeLog Log Message: Clarify web admin description for HTTP FreeBusy switch (with updated German translation) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/ChangeLog,v retrieving revision 1.58 retrieving revision 1.59 diff -u -d -r1.58 -r1.59 --- ChangeLog 17 Oct 2007 17:57:13 -0000 1.58 +++ ChangeLog 17 Oct 2007 18:27:14 -0000 1.59 @@ -3,6 +3,10 @@ * php/admin/templates/kolab.tpl, www/admin/service/index.php.in: kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) + * php/admin/locale/de/LC_MESSAGES/messages.po, + www/admin/service/index.php.in: Clarify web admin description for + HTTP FreeBusy switch (with updated German translation) + 2007-08-07 Gunnar Wrobel

    * php/admin/templates/page.tpl.in: From cvs at kolab.org Wed Oct 17 20:31:25 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 20:31:25 +0200 (CEST) Subject: thomas: server release-notes.txt,1.153,1.154 Message-ID: <20071017183125.04B1B602A4A@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv10861 Modified Files: release-notes.txt Log Message: Updated release notes Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.153 retrieving revision 1.154 diff -u -d -r1.153 -r1.154 --- release-notes.txt 8 Oct 2007 16:46:00 -0000 1.153 +++ release-notes.txt 17 Oct 2007 18:31:22 -0000 1.154 @@ -17,7 +17,7 @@ upstream versions. -Changes between 2.2-beta-1 and 2.2-???: +Changes between 2.2-beta-1 and 2.2-beta-2: FIXME (add CVS changes between 20070608 and 20070726) @@ -38,6 +38,7 @@ Converted the package into a standard perl library package. kolab/issue26 (Allow to bind to specific IPs) + kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) - php-kolab-2.1.99-2007???? @@ -51,6 +52,7 @@ Added mechanism to allow config variable replacement in the META section. kolab/issue26 (Allow to bind to specific IPs) + kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) kolab/issue1879 (kolabconf poor error message in buildCyrusConfig) - kolabd-2.1.99-2007????: @@ -79,6 +81,8 @@ Added "with_horde" support. kolab/issue26 (Allow to bind to specific IPs) + kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) + kolab/issue1686 (Remove WebDAV Support) kolab/issue1796 (httpd.conf : MISSING Include "/kolab/etc/apache/apache.d/*.conf") kolab/issue1811 (Spurious files in CVS, kolabd directory) kolab/issue1895 (switch from virtual_maps to virtual_alias_maps) @@ -95,6 +99,10 @@ - kolab-webadmin-2.1.99-2007????: + Clarify web admin description for HTTP FreeBusy switch + (with updated German translation) + + kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) kolab/issue1246 (Permission handling in the webadmin frontend) kolab/issue1611 ([webadmin] page.tpl use no valid XHTML) From cvs at kolab.org Wed Oct 17 21:03:47 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 17 Oct 2007 21:03:47 +0200 (CEST) Subject: thomas: server release-notes.txt,1.154,1.155 Message-ID: <20071017190347.8FAA5602A4E@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv11515 Modified Files: release-notes.txt Log Message: release notes: finished "Changes between 2.1.0 and 2.2-beta1" Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.154 retrieving revision 1.155 diff -u -d -r1.154 -r1.155 --- release-notes.txt 17 Oct 2007 18:31:22 -0000 1.154 +++ release-notes.txt 17 Oct 2007 19:03:45 -0000 1.155 @@ -39,11 +39,13 @@ kolab/issue26 (Allow to bind to specific IPs) kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) + kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) - php-kolab-2.1.99-2007???? kolab/issue26 (Allow to bind to specific IPs) kolab/issue1637 (Recurrency issues) + kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) - kolabconf-2.1.99-2007????: @@ -54,6 +56,7 @@ kolab/issue26 (Allow to bind to specific IPs) kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) kolab/issue1879 (kolabconf poor error message in buildCyrusConfig) + kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) - kolabd-2.1.99-2007????: @@ -80,13 +83,20 @@ Added "with_horde" support. + Added LDAP attributes 'kolabAllowSMTPRecipient' and + 'kolabPolicyDaemon' in preparation for kolab/issue1340. + kolab/issue26 (Allow to bind to specific IPs) kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) + kolab/issue1025 (loading policy bank "MYUSERS": unknown field "mynetworks") kolab/issue1686 (Remove WebDAV Support) kolab/issue1796 (httpd.conf : MISSING Include "/kolab/etc/apache/apache.d/*.conf") + kolab/issue1804 (Several files apparently missing in kolabd 2.1.0 package) kolab/issue1811 (Spurious files in CVS, kolabd directory) + kolab/issue1861 (imapd.conf.template: primary domain listed twice in loginrealms) kolab/issue1895 (switch from virtual_maps to virtual_alias_maps) kolab/issue2038 (additional sieve extensions) + kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) - kolab-resource-handlers-2.1.99-2007????: @@ -96,76 +106,63 @@ kolab/issue26 (Allow to bind to specific IPs) kolab/issue1606 (Allow to run kolab-resource-handlers with PHP cgi) + kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) - kolab-webadmin-2.1.99-2007????: Clarify web admin description for HTTP FreeBusy switch (with updated German translation) + kolab/issue932 (Illegal values in webadmin cause LDAP errors) kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) + kolab/issue1162 (Misplaced title field in webinterface) kolab/issue1246 (Permission handling in the webadmin frontend) kolab/issue1611 ([webadmin] page.tpl use no valid XHTML) + kolab/issue1694 (Unable to modify the folder type of an already created shared folder) + kolab/issue1781 (Spanish PO File Translation) + kolab/issue1797 (kolab-webadmin source package missing PO files) + kolab/issue1845 (incorrect check mailForDn for ldap results) + kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) Changes between 2.1.0 and 2.2-beta1: - FIXME (add CVS changes between 2.1.0 and 20070608 + patch series) - - - clamav-0.90.3-20070531_kolab - - New upstream version, fixes various security issues. + All components except for OpenLDAP were upgraded to + OpenPKG-CURRENT (as of 20070608), most noteworthy: -XXX: Some of the following changes happened after 2.2-beta1, sort them + amavisd 2.5.1 + apache 2.2.4 + imapd 2.3.8 + php 5.2.3 + postfix 2.4.3 + spamassassin 3.2.0 - perl-kolab-5.8.7-2007???? - Added missing Makefile dependencies - kolab/issue1679 (Update template META mechanism to support service restarts) - kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) - kolabd-2.1.0-2007???? - Added missing Makefile dependencies - - autoconfiscated kolabdcachetool, dirservnotify and dirservupdate. - kolab/issue919 (kolab server has problems with some characters in passwords) - kolab/issue1025 (loading policy bank "MYUSERS": unknown field "mynetworks") kolab/issue1126 (ldap_simple_bind() failed and Domain/Realm not available) - partial fix kolab/issue1679 (Update template META mechanism to support service restarts) kolab/issue1693 (Automatically trigger f/b cache regeneration) - kolab/issue1804 (Several files apparently missing in kolabd 2.1.0 package) - kolab/issue1861 (imapd.conf.template: primary domain listed twice in loginrealms) - kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) - kolab-resource-handlers-2.1.0-2007???? added location to xpfb events - Added missing Makefile dependencies - kolab/issue1693 (Automatically trigger f/b cache regeneration) - kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) - kolab-webadmin-2.1.0-2007???? - Added missing Makefile dependencies - - kolab/issue932 (Illegal values in webadmin cause LDAP errors) - kolab/issue1162 (Misplaced title field in webinterface) kolab/issue1610 (Use

    Template engine for PHP + http://smarty.php.net/ + + + http://smarty.php.net/distributions/Smarty-2.6.18.tar.gz + + + +Smarty is a template engine for PHP. Smarty provides your basic +variable substitution and dynamic block functionality, and also takes +a step further to be a "smart" template engine, adding features such +as configuration files, template functions, variable modifiers, and +making all of this functionality as easy as possible to use for both +programmers and template designers.
    From cvs at kolab.org Thu Oct 18 18:45:48 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 18 Oct 2007 18:45:48 +0200 (CEST) Subject: thomas: server 00INDEX.rdf,1.3,1.4 Message-ID: <20071018164548.40E7260C4B7@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv17242 Modified Files: 00INDEX.rdf Log Message: getopt is no longer needed (was used by proftpd) Index: 00INDEX.rdf =================================================================== RCS file: /kolabrepository/server/00INDEX.rdf,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- 00INDEX.rdf 18 Oct 2007 13:27:38 -0000 1.3 +++ 00INDEX.rdf 18 Oct 2007 16:45:46 -0000 1.4 @@ -3345,42 +3345,6 @@ - Net::DNS (%{V_net_dns}) - - getopt - 20051005 - 20061013 - OpenPKG Community - BASE - Libraries - LGPL - OpenPKG Foundation e.V. - OSSP's GNU getopt Library - ftp://ftp.ossp.org/pkg/lib/getopt/ - FSF/OSSP - - - OpenPKG - openpkg - gcc - - - - - OpenPKG - openpkg - - - - - ftp://ftp.ossp.org/pkg/lib/getopt/getopt-20051005.tar.gz - - - -This is the OSSP version of the GNU getopt library. The individual -sources were collected together from the vendor packages GNU "gcc", -GNU "glibc", "util-linux" and "man-pages". - - perl-ds 5.8.8 From cvs at kolab.org Thu Oct 18 19:01:30 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 18 Oct 2007 19:01:30 +0200 (CEST) Subject: thomas: server release-notes.txt,1.131.2.8,1.131.2.9 Message-ID: <20071018170130.0872160C4B7@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv17560 Modified Files: Tag: kolab_2_1_branch release-notes.txt Log Message: renamed issue title Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.131.2.8 retrieving revision 1.131.2.9 diff -u -d -r1.131.2.8 -r1.131.2.9 --- release-notes.txt 19 Sep 2007 17:24:47 -0000 1.131.2.8 +++ release-notes.txt 18 Oct 2007 17:01:27 -0000 1.131.2.9 @@ -60,7 +60,7 @@ kolab/issue1126 (ldap_simple_bind() failed and Domain/Realm not available) - partial fix kolab/issue1679 (Update template META mechanism to support service restarts) kolab/issue1693 (Automatically trigger f/b cache regeneration) - kolab/issue1804 (Several files apparently missing in kolabd 2.1.0 package) + kolab/issue1804 (Several files apparently missing in kolabd package) kolab/issue1861 (imapd.conf.template: primary domain listed twice in loginrealms) kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) From cvs at kolab.org Fri Oct 19 10:01:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 19 Oct 2007 10:01:44 +0200 (CEST) Subject: thomas: server release-notes.txt,1.156,1.157 Message-ID: <20071019080144.602A6602A24@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv7354 Modified Files: release-notes.txt Log Message: Updated release notes (with package versions) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.156 retrieving revision 1.157 diff -u -d -r1.156 -r1.157 --- release-notes.txt 17 Oct 2007 19:06:13 -0000 1.156 +++ release-notes.txt 19 Oct 2007 08:01:42 -0000 1.157 @@ -19,9 +19,7 @@ Changes between 2.2-beta-1 and 2.2-beta-2: - FIXME (add CVS changes between 20070608 and 20070726) - - - perl-kolab-2.1.99-2007???? + - perl-kolab-2.2.beta2-20071018 Removed the Kolab-Mailer module. @@ -41,13 +39,13 @@ kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) - - php-kolab-2.1.99-2007???? + - php-kolab-2.2.beta2-20071018 kolab/issue26 (Allow to bind to specific IPs) kolab/issue1637 (Recurrency issues) kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) - - kolabconf-2.1.99-2007????: + - kolabconf-2.2.beta2-20071018 New package that holds the kolabconf script. @@ -58,7 +56,7 @@ kolab/issue1879 (kolabconf poor error message in buildCyrusConfig) kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) - - kolabd-2.1.99-2007????: + - kolabd-2.1.99-20071018 Added "discard" service to the postfix master.cf configuration. @@ -86,29 +84,29 @@ Added LDAP attributes 'kolabAllowSMTPRecipient' and 'kolabPolicyDaemon' in preparation for kolab/issue1340. + The emailserver_socket is stored in $(libexecdir) and not in + $(libdir). This fixes an x86_64 issue. + kolab/issue26 (Allow to bind to specific IPs) kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) kolab/issue1025 (loading policy bank "MYUSERS": unknown field "mynetworks") kolab/issue1686 (Remove WebDAV Support) kolab/issue1796 (httpd.conf : MISSING Include "/kolab/etc/apache/apache.d/*.conf") - kolab/issue1804 (Several files apparently missing in kolabd 2.1.0 package) + kolab/issue1804 (Several files apparently missing in kolabd package) + kolab/issue1805 (Uncleaned files in kolabd source package) kolab/issue1811 (Spurious files in CVS, kolabd directory) kolab/issue1861 (imapd.conf.template: primary domain listed twice in loginrealms) + kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) kolab/issue1895 (switch from virtual_maps to virtual_alias_maps) kolab/issue2038 (additional sieve extensions) - kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) - - kolab-resource-handlers-2.1.99-2007????: - - Package splitted into kolab-filter, kolab-freebusy and php-kolab - - - kolab-filter-2.1.99-2007????: + - kolab-filter-2.2.beta2-20071018 kolab/issue26 (Allow to bind to specific IPs) kolab/issue1606 (Allow to run kolab-resource-handlers with PHP cgi) kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) - - kolab-webadmin-2.1.99-2007????: + - kolab-webadmin-2.1.99-20071018 Clarify web admin description for HTTP FreeBusy switch (with updated German translation) @@ -121,8 +119,160 @@ kolab/issue1694 (Unable to modify the folder type of an already created shared folder) kolab/issue1781 (Spanish PO File Translation) kolab/issue1797 (kolab-webadmin source package missing PO files) + kolab/issue1800 (kolab-webadmin debian dist_conf smarty location) kolab/issue1845 (incorrect check mailForDn for ldap results) kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) + + + Packages in the OpenPKG based Kolab server release: + + - Kolab packages: + + Removed: + + kolab-horde-fbview (now fbview-horde and fbview-kronolith) + kolab-resource-handlers (now kolab-filter, kolab-freebusy and php-kolab) + + Added: + + PEAR-Auth_SASL-1.0.2-1 + PEAR-Date-1.4.7-1 + PEAR-HTTP_Request-1.4.1-1 + PEAR-Log-1.9.9-1 + PEAR-Mail-1.1.14-1 + PEAR-Mail_Mime-1.3.1-1 + PEAR-Mail_Mime-1.3.1-1 + PEAR-Net_IMAP-1.1.0beta1-1 + PEAR-Net_LMTP-1.0.1-1 + PEAR-Net_SMTP-1.2.10-1 + PEAR-Net_Sieve-1.1.5-1 + PEAR-Net_Socket-1.0.6-1 + PEAR-Net_URL-1.0.15-1 + fbview-horde-3.2_alpha-20071013 + fbview-kronolith-2.2_alpha-20071001 + horde-framework-kolab-3.2_ALPHA-20071004 + horde-imp-kolab-4.2_alpha-20071004 + horde-ingo-kolab-1.2_alpha-20071004 + horde-kolab-3.2_alpha-20071013 + horde-kolab-client-0.99-20071002 + horde-kolab-client-0.99-20071002 + horde-kronolith-kolab-2.2_alpha-20071004 + horde-mnemo-kolab-2.2_alpha-20071001 + horde-nag-kolab-2.2_alpha-20071004 + horde-passwd-kolab-3.0.1-20071001 + horde-turba-kolab-2.2_alpha-20071002 + kolab-filter-2.2.beta2-20071018 + kolab-freebusy-2.2.beta2-20071018 + kolabconf-2.2.beta2-20071018 + php-kolab-2.2.beta2-20071018 + + Updated: + + kolab-webadmin-2.1.99-20071018 + kolabd-2.1.99-20071018 + perl-kolab-2.2.beta2-20071018 + + Unchanged: + + kolab-horde-framework-2.1.99-20070607 + php-smarty-2.6.18-20070607 + + - OpenPKG packages: + + Removed: + + apache2 (renamed to apache) + apache2-php (renamed to apache-php) + getopt (was needed by proftpd) + proftpd (obsolete) + pth (openldap is now built without pth) + sharutils (no package requires this) + + Added: + + apache-2.2.6-20070910 + apache-php-5.2.4-20071015 + apr-1.2.11-20070907 + freetype-2.3.5-20070720 + gd-2.0.35-20071011 + jpeg-6b-20070507 + libmcrypt-2.5.8-20070720 + mhash-0.9.9-20070807 + png-1.2.22-20071014 + + Updated: + + amavisd-2.5.2-20070907 + autoconf-2.61-20070711 + binutils-2.18-20070829 + clamav-0.91.2-20070907 + curl-7.17.0-20071009 + db-4.5.20.2-20070628 + diffutils-2.8.7-20071005 + expat-2.0.1-20070629 + file-4.21-20070829 + gcc-4.2.2-20071016 + gettext-0.16.1-20070930 + grep-2.5.3-20070829 + gzip-1.3.12-20070623 + imap-2006j2-20071012 + imapd-2.3.9-20071015 + libxml-2.6.30-20070824 + libxslt-1.1.22-20070824 + m4-1.4.9-20070818 + ncurses-5.6.20071013-20071014 + openldap-2.3.38-20071012 + openpkg-20071018-20071018 + openpkg-tools-1.4.5-20070624 + openssl-0.9.8f-20071017 + pcre-7.4-20070921 + perl-5.8.8-20071011 + perl-comp-5.8.8-20071005 + perl-crypto-5.8.8-20070929 + perl-db-5.8.8-20070711 + perl-dns-5.8.8-20070920 + perl-ds-5.8.8-20071008 + perl-ldap-5.8.8-20070916 + perl-mail-5.8.8-20070928 + perl-module-5.8.8-20070928 + perl-net-5.8.8-20070829 + perl-parse-5.8.8-20071018 + perl-ssl-5.8.8-20071017 + perl-stats-5.8.8-20070708 + perl-sys-5.8.8-20071018 + perl-term-5.8.8-20070924 + perl-time-5.8.8-20071006 + perl-util-5.8.8-20071015 + perl-www-5.8.8-20071010 + perl-xml-5.8.8-20070929 + php-5.2.4-20071012 + pkgconfig-0.22-20070720 + postfix-2.4.5-20070908 + procmail-3.22-20070720 + readline-5.2.7-20070927 + sasl-2.1.22-20071009 + spamassassin-3.2.3-20070810 + texinfo-4.11-20070911 + + Unchanged: + + automake-1.10-20061111 + bc-1.06-20061013 + bison-2.3-20070312 + bzip2-1.0.4-20070507 + config-20060923-20061013 + flex-2.5.33-20070507 + fsl-1.7.0-20070316 + gmp-4.2.1-20061222 + groff-1.19.2-20070113 + libiconv-1.11-20061013 + lzo-2.02-20061013 + make-3.81-20061013 + mm-1.4.2-20061013 + perl-conv-5.8.8-20070526 + perl-openpkg-5.8.8-20061013 + sed-4.1.5-20061013 + zlib-1.2.3-20070507 Changes between 2.1.0 and 2.2-beta1: From cvs at kolab.org Fri Oct 19 10:20:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 19 Oct 2007 10:20:00 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.157,1.158 Message-ID: <20071019082000.5864E602A24@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv7926 Modified Files: release-notes.txt Log Message: Some additional comments in the release notes. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.157 retrieving revision 1.158 diff -u -d -r1.157 -r1.158 --- release-notes.txt 19 Oct 2007 08:01:42 -0000 1.157 +++ release-notes.txt 19 Oct 2007 08:19:58 -0000 1.158 @@ -9,12 +9,40 @@ Differences between Kolab 2.1 and 2.2: - - Improvements, bugfixes and upgraded software components + I) Upgrade of central Kolab components - The 2.2 release received many improvements and bugfixes for issues - found in the 2.1 versions and ... FIXME - Additionally many software components have been upgraded to new - upstream versions. + The Apache server shipped with the Kolab server has been + upgraded to Apache-2.2.*. At the same time the system was + switched to PHP5. + + Postfix got upgraded to 2.4.* which removes the need for + special Kolab patches which were integrated upstream. + + The Cyrus IMAP server was updated to 2.3.* also removing the + need for some, though not all, Kolab specific patches. + + Many other packages which are less central to the Kolab server + were also updated. + + II) Inclusion of the web based Horde Groupware client + + The Kolab server now provides a web client that supports all + the groupware features known from Outlook and Kontact. Thus + users are less dependent on their local client and can access + their groupware data from anywhere in the world provided they + have a standard browser available. + + III) Structural improvements + + Several components of the Kolab server got restructured so + that porting the Kolab server to distributions other than + OpenPKG got easier. This also improves the development model + in general. + + IV) Bug fixes + + As usual many bugs found in Kolab server 2.1 have been + resolved. The specifics are described below. Changes between 2.2-beta-1 and 2.2-beta-2: From cvs at kolab.org Fri Oct 19 10:33:24 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 19 Oct 2007 10:33:24 +0200 (CEST) Subject: thomas: server release-notes.txt,1.158,1.159 Message-ID: <20071019083324.71F06602A36@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv8286 Modified Files: release-notes.txt Log Message: Changed release notes introduction to previous list style Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.158 retrieving revision 1.159 diff -u -d -r1.158 -r1.159 --- release-notes.txt 19 Oct 2007 08:19:58 -0000 1.158 +++ release-notes.txt 19 Oct 2007 08:33:22 -0000 1.159 @@ -9,40 +9,40 @@ Differences between Kolab 2.1 and 2.2: - I) Upgrade of central Kolab components + - Upgrade of central Kolab components - The Apache server shipped with the Kolab server has been - upgraded to Apache-2.2.*. At the same time the system was - switched to PHP5. + The Apache server shipped with the Kolab server has been + upgraded to Apache-2.2.*. At the same time the system was + switched to PHP5. - Postfix got upgraded to 2.4.* which removes the need for - special Kolab patches which were integrated upstream. + Postfix got upgraded to 2.4.* which removes the need for + special Kolab patches which were integrated upstream. - The Cyrus IMAP server was updated to 2.3.* also removing the - need for some, though not all, Kolab specific patches. + The Cyrus IMAP server was updated to 2.3.* also removing the + need for some, though not all, Kolab specific patches. - Many other packages which are less central to the Kolab server - were also updated. + Many other packages which are less central to the Kolab server + were also updated. - II) Inclusion of the web based Horde Groupware client + - Inclusion of the web based Horde Groupware client - The Kolab server now provides a web client that supports all - the groupware features known from Outlook and Kontact. Thus - users are less dependent on their local client and can access - their groupware data from anywhere in the world provided they - have a standard browser available. + The Kolab server now provides a web client that supports all + the groupware features known from Outlook and Kontact. Thus + users are less dependent on their local client and can access + their groupware data from anywhere in the world provided they + have a standard browser available. - III) Structural improvements + - Structural improvements - Several components of the Kolab server got restructured so - that porting the Kolab server to distributions other than - OpenPKG got easier. This also improves the development model - in general. + Several components of the Kolab server got restructured so + that porting the Kolab server to distributions other than + OpenPKG got easier. This also improves the development model + in general. - IV) Bug fixes + - Bug fixes - As usual many bugs found in Kolab server 2.1 have been - resolved. The specifics are described below. + As usual many bugs found in Kolab server 2.1 have been + resolved. The specifics are described below. Changes between 2.2-beta-1 and 2.2-beta-2: From cvs at kolab.org Fri Oct 19 10:36:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 19 Oct 2007 10:36:13 +0200 (CEST) Subject: schreiber: doc/www/src index.html.m4,1.128,1.129 Message-ID: <20071019083613.9EF94602A36@lists.intevation.de> Author: schreiber Update of /kolabrepository/doc/www/src In directory doto:/tmp/cvs-serv8371/www/src Modified Files: index.html.m4 Log Message: proko 2.1.11 announcement Index: index.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/index.html.m4,v retrieving revision 1.128 retrieving revision 1.129 diff -u -d -r1.128 -r1.129 --- index.html.m4 3 Sep 2007 18:08:52 -0000 1.128 +++ index.html.m4 19 Oct 2007 08:36:11 -0000 1.129 @@ -47,6 +47,23 @@
    + + +
    October 18th, 2007» + Kolab KDE Client 2.1.11 released, revision 'proko2.1.11' +
    +

    +

    + This release contains some bug fixes. +A tarball and release notes with a list of the changes can be found in the +Kolab download area once the mirrors have been updated.
    +See the + announcement for details. +
    +

    + + + - -
    September 3rd, 2007 » Kolab KDE Client 2.1.10 released, revision 'proko2.1.10' @@ -62,6 +79,13 @@

    + +

    + +

    + + + + --- NEW FILE: HK-SB-Fbview_save_attendees.patch --- Provides a patch to store the list of attendees in the user preferences. This is a broken patch that has been rejected upstream (http://bugs.horde.org/ticket/?id=4788). This should be solved using Horde::Groups. diff -r 848f241f83e0 kronolith/attendees.php --- a/kronolith/attendees.php Thu Nov 29 10:56:04 2007 +0100 +++ b/kronolith/attendees.php Thu Nov 29 11:32:43 2007 +0100 @@ -155,6 +155,16 @@ case 'clear': $attendees = array(); $_SESSION['kronolith']['attendees'] = $attendees; break; + +case 'save': + if (empty($attendees)) { + break; + } + $savedattlist = unserialize($prefs->getValue('saved_attendee_list')); + $savedattlist[] = array_keys($attendees); + $prefs->setValue('saved_attendee_list', serialize($savedattlist)); + $notification->push(_('Successfully saved attendee list'), 'horde.success'); + break; } // Get the current Free/Busy view; default to the 'day' view if none specified. @@ -226,6 +236,14 @@ Imple::factory('ContactAutoCompleter', a $title = _("Edit attendees"); require KRONOLITH_TEMPLATES . '/common-header.inc'; + +if ($browser->hasFeature('javascript')) { + Horde::addScriptFile('open_savedattlist_win.js'); + $savedattlist_url = 'javascript:open_savedattlist_win();'; +} else { + $savedattlist_url = Horde::applicationUrl('savedattlist.php'); +} + $notification->notify(array('status')); require KRONOLITH_TEMPLATES . '/attendees/attendees.inc'; require $registry->get('templates', 'horde') . '/common-footer.inc'; diff -r 848f241f83e0 kronolith/config/prefs.php.dist --- a/kronolith/config/prefs.php.dist Thu Nov 29 10:56:04 2007 +0100 +++ b/kronolith/config/prefs.php.dist Thu Nov 29 11:32:43 2007 +0100 @@ -465,3 +465,11 @@ if ($GLOBALS['registry']->hasMethod('con 'shared' => false, 'type' => 'implicit' ); + +$_prefs['saved_attendee_list'] = array( + 'value' => 'a:0:{}', + 'locked' => false, + 'shared' => false, + 'type' => 'implicit', + 'desc' => _("A saved list of attendees") +); diff -r 848f241f83e0 kronolith/savedattlist.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kronolith/savedattlist.php Thu Nov 29 11:32:43 2007 +0100 @@ -0,0 +1,77 @@ + + * Stuart Binge + * + * See the enclosed file COPYING for license information (GPL). If you + * did not receive this file, see http://www.fsf.org/copyleft/gpl.html. + */ + + at define('KRONOLITH_BASE', dirname(__FILE__)); +require_once KRONOLITH_BASE . '/lib/base.php'; +require_once KRONOLITH_BASE . '/lib/FBView.php'; + +$title = _('Load Attendee List'); + +Horde::addScriptFile('tooltip.js', 'horde'); +require KRONOLITH_TEMPLATES . '/common-header.inc'; + +// Get our list of saved attendees +$savedattlist = unserialize($prefs->getValue('saved_attendee_list')); + +// Preformat our image urls +$delimg = Horde::img('delete.png', _("Remove List"), null, $GLOBALS['registry']->getImageDir('horde')); +$loadimg = Horde::img('tree/folder.png', _("Load List"), null, $GLOBALS['registry']->getImageDir('horde')); + +// Get our Action ID & Value. This specifies what action the user initiated. +$actionID = Util::getFormData('actionID', false); +$actionValue = Util::getFormData('actionValue', false); +if (!$actionID) { + $actionID = (Util::getFormData('addNew', false) ? 'add' : false); + $actionValue = Util::getFormData('newAttendees', ''); +} + +// Perform the specified action, if there is one. +switch ($actionID) { +case 'remove': + // Remove the specified attendee + if (array_key_exists($actionValue, $savedattlist)) { + unset($savedattlist[$actionValue]); + $prefs->setValue('saved_attendee_list', serialize($savedattlist)); + } + + break; + +case 'dismiss': + // Make sure we're actually allowed to dismiss + if (!$allow_dismiss) break; + + // Close the attendee window + global $browser; + + if ($browser->hasFeature('javascript')) { + Util::closeWindowJS(); + } else { + $url = Util::getFormData('url'); + + if (!empty($url)) { + $location = Horde::applicationUrl($url, true); + } else { + $url = Util::addParameter($prefs->getValue('defaultview') . '.php', 'month', Util::getFormData('month')); + $url = Util::addParameter($url, 'year', Util::getFormData('year')); + $location = Horde::applicationUrl($url, true); + } + + // Make sure URL is unique. + $location = Util::addParameter($location, 'unique', md5(microtime())); + + header('Location: ' . $location); + } + break; +} + +$form_handler = Horde::applicationUrl('savedattlist.php'); +require KRONOLITH_TEMPLATES . '/savedattlist/savedattlist.inc'; +require $GLOBALS['registry']->get('templates', 'horde') . '/common-footer.inc'; diff -r 848f241f83e0 kronolith/templates/attendees/attendees.inc --- a/kronolith/templates/attendees/attendees.inc Thu Nov 29 10:56:04 2007 +0100 +++ b/kronolith/templates/attendees/attendees.inc Thu Nov 29 11:32:43 2007 +0100 @@ -92,6 +92,8 @@ function switchDateView(view, timestamp)
    " /> " /> + " onclick="" /> + " onclick="performAction('save', '');" /> " />
    diff -r 848f241f83e0 kronolith/templates/javascript/open_savedattlist_win.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kronolith/templates/javascript/open_savedattlist_win.js Thu Nov 29 11:32:43 2007 +0100 @@ -0,0 +1,36 @@ + + diff -r 848f241f83e0 kronolith/templates/savedattlist/savedattlist.inc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kronolith/templates/savedattlist/savedattlist.inc Thu Nov 29 11:32:43 2007 +0100 @@ -0,0 +1,68 @@ + + + +
    + + + + +
    + +
    August 21st, 2007 » @@ -90,10 +114,7 @@ - -

    -

    @@ -157,23 +178,6 @@ This release contains several bugfixes and some minor features.
    See the - announcement for details. -
    -

    - - - - - -
    August 13th, 2007» - Kolab Server 2.1 Release Candidate 2 released -
    -

    -

    - This release fixes more than 20 problems found in RC 1 and contains updated translations. - Some security issues were fixed in clamav, spamassassin and file. - See the - announcement for details.

    From cvs at kolab.org Fri Oct 19 10:38:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 19 Oct 2007 10:38:13 +0200 (CEST) Subject: thomas: server release-notes.txt,1.159,1.160 Message-ID: <20071019083813.2FA01602A36@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv8491 Modified Files: release-notes.txt Log Message: Updated intro in release notes, added final date and server version Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.159 retrieving revision 1.160 diff -u -d -r1.159 -r1.160 --- release-notes.txt 19 Oct 2007 08:33:22 -0000 1.159 +++ release-notes.txt 19 Oct 2007 08:38:11 -0000 1.160 @@ -1,6 +1,6 @@ Kolab Server 2.2 Release Notes ============================== -(Version 2007????, Kolab Server 2.2-beta???) +(Version 20071019, Kolab Server 2.2-beta2) For upgrading and installation instructions, please refer to the 1st.README file in the package directory. @@ -9,7 +9,7 @@ Differences between Kolab 2.1 and 2.2: - - Upgrade of central Kolab components + - Upgrade of central Kolab server components The Apache server shipped with the Kolab server has been upgraded to Apache-2.2.*. At the same time the system was @@ -21,9 +21,6 @@ The Cyrus IMAP server was updated to 2.3.* also removing the need for some, though not all, Kolab specific patches. - Many other packages which are less central to the Kolab server - were also updated. - - Inclusion of the web based Horde Groupware client The Kolab server now provides a web client that supports all @@ -39,10 +36,12 @@ OpenPKG got easier. This also improves the development model in general. - - Bug fixes + - Improvements, bugfixes and upgraded software components - As usual many bugs found in Kolab server 2.1 have been - resolved. The specifics are described below. + The 2.2 release received many improvements and bugfixes for + issues found in earlier versions. Additionally all software + components have been upgraded to new upstream versions. + The specifics are described below. Changes between 2.2-beta-1 and 2.2-beta-2: From cvs at kolab.org Fri Oct 19 10:42:20 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 19 Oct 2007 10:42:20 +0200 (CEST) Subject: thomas: server install-kolab.sh,1.10,1.11 Message-ID: <20071019084220.51802602A36@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv8583 Modified Files: install-kolab.sh Log Message: Add kolab-horde-framework to install-kolab.sh It is used by default, but the server can be configured to use new Horde code instead, so this should not be added as a requirement to another package. Index: install-kolab.sh =================================================================== RCS file: /kolabrepository/server/install-kolab.sh,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- install-kolab.sh 13 Oct 2007 12:00:50 -0000 1.10 +++ install-kolab.sh 19 Oct 2007 08:42:18 -0000 1.11 @@ -9,7 +9,7 @@ INSTALL="" -PACKAGES="openpkg-tools openldap postfix kolabd kolab-filter kolab-freebusy kolab-webadmin" +PACKAGES="openpkg-tools openldap postfix kolabd kolab-filter kolab-freebusy kolab-webadmin kolab-horde-framework" DEFINE="-D openldap::with_pth=no -D sasl::with_ldap -D sasl::with_login -D postfix::with_sasl -D postfix::with_ssl -D postfix::with_ldap" #Flags From cvs at kolab.org Fri Oct 19 11:06:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 19 Oct 2007 11:06:44 +0200 (CEST) Subject: gunnar: server README.1st,1.59,1.60 README.webclient,1.7,NONE Message-ID: <20071019090644.4DEC1602A45@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv9415 Modified Files: README.1st Removed Files: README.webclient Log Message: Update instructions. Index: README.1st =================================================================== RCS file: /kolabrepository/server/README.1st,v retrieving revision 1.59 retrieving revision 1.60 diff -u -d -r1.59 -r1.60 --- README.1st 15 Jun 2007 13:11:17 -0000 1.59 +++ README.1st 19 Oct 2007 09:06:41 -0000 1.60 @@ -31,9 +31,19 @@ Then as root, cd into that local directory and run -# sh obmtool kolab 2>&1 | tee kolab-build.log +# ./install-kolab.sh 2>&1 | tee kolab-build.log + +to build and install packages in /kolab. The command output will +be logged to kolab-build.log so that you have a reference in case +an errors occurs during installation. + +If you wish to include the Horde groupware client and/or the Free/Busy +view tool in you installation, you need to append the flag(s) "-H" +and/or "-F". The following installs the server including Horde and +F/B-View: + +# ./install-kolab.sh -H -F 2>&1 | tee kolab-build.log -to build and install packages in /kolab. By default, the Kolab Server will now be started at boottime. After the build/install is complete, please run @@ -59,15 +69,20 @@ The installation of the new packages works just as for the initial installation. Download the files as described above and run -# sh obmtool kolab 2>&1 | tee kolab-update.log +# ./install-kolab.sh 2>&1 | tee kolab-update.log -obmtool will usually automatically determine which packages need to be -built. If you have made changes to configuration files or an updated -package includes configuration files which are usually regenerated from -files in /kolab/etc/kolab/templates/ the old configuration file will be -saved with the extension .rpmsave. For files generated from templates -you just have to remove the rpmsave file, because services will refuse -to start if there still is an rpmsave file, e.g.: +If you installed with Horde or F/B-View you need to run + +# ./install-kolab.sh -H -F 2>&1 | tee kolab-update.log + +install-kolab.sh will usually automatically determine which packages +need to be built. If you have made changes to configuration files or +an updated package includes configuration files which are usually +regenerated from files in /kolab/etc/kolab/templates/ the old +configuration file will be saved with the extension .rpmsave. For +files generated from templates you just have to remove the rpmsave +file, because services will refuse to start if there still is an +rpmsave file, e.g.: # rm /kolab/etc/clamav/*.conf.rpmsave --- README.webclient DELETED --- From cvs at kolab.org Fri Oct 19 12:53:46 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 19 Oct 2007 12:53:46 +0200 (CEST) Subject: thomas: server README.1st,1.60,1.61 Message-ID: <20071019105346.4A094602A36@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv12034 Modified Files: README.1st Log Message: Removed obsolete info. Describe install with horde/fbview by default. Index: README.1st =================================================================== RCS file: /kolabrepository/server/README.1st,v retrieving revision 1.60 retrieving revision 1.61 diff -u -d -r1.60 -r1.61 --- README.1st 19 Oct 2007 09:06:41 -0000 1.60 +++ README.1st 19 Oct 2007 10:53:44 -0000 1.61 @@ -8,11 +8,13 @@ http://kolab.org/mailman/listinfo/kolab-announce to receive security advisories and release announcements. +* This development snapshot is not recommended for use in production! * + Quick install instructions -------------------------- -For a fresh install /kolab needs to be an empty directory with at least 1GB of +For a fresh install /kolab needs to be an empty directory with at least 2GB of free disk space. You can use a symlink, but do _not_ use an NFS mounted drive. If the directory does not yet exist, it will automatically be created. Make sure that the following names are not in /etc/passwd or /etc/groups, @@ -21,7 +23,7 @@ Check http://www.openpkg.org/documentation/ for additional documentation for the OpenPKG packaging system. -To install the Kolab2 server, you need to download the files from the +To install the Kolab server, you need to download the files from the directory containing this file (1st.README) to some local directory. You can check the integrity of the downloaded files with: @@ -29,23 +31,24 @@ $ gpg --verify MD5SUMS $ md5sum -c MD5SUMS -Then as root, cd into that local directory and run +Then as root, cd into that local (and writable) directory and run -# ./install-kolab.sh 2>&1 | tee kolab-build.log +# ./install-kolab.sh -H -F 2>&1 | tee kolab-install.log to build and install packages in /kolab. The command output will -be logged to kolab-build.log so that you have a reference in case +be logged to install-kolab.log so that you have a reference in case an errors occurs during installation. -If you wish to include the Horde groupware client and/or the Free/Busy -view tool in you installation, you need to append the flag(s) "-H" -and/or "-F". The following installs the server including Horde and -F/B-View: +If you do not want to install the Horde groupware client and/or the +free/busy view tool, you can drop the flag "-H" and/or "-F". -# ./install-kolab.sh -H -F 2>&1 | tee kolab-build.log +FIXME: document install from read-only location (e.g. cdrom) -By default, the Kolab Server will now be started at boottime. -After the build/install is complete, please run +By default, the Kolab server will now be started at boottime, so you +have to bootstrap the server configuration now to prevent unconfigured +components from being started. + +Please run: # /kolab/etc/kolab/kolab_bootstrap -b @@ -55,26 +58,25 @@ General update instructions --------------------------- -Usually an update of the Kolab 2 server works as described here. In +Usually an update of the Kolab server works as described here. In some cases you will need to deviate from these instructions a bit. All such cases are documented below, so read the release specific update instructions for all releases newer than the one you already have before you start the update. In any case you should completely read *all* relevant update -instruction *before* starting the upgrade procedure. All ways make +instruction *before* starting the upgrade procedure. Always make sure you have a recent backup of your /kolab directory before you attempt to upgrade Kolab. The installation of the new packages works just as for the initial installation. Download the files as described above and run -# ./install-kolab.sh 2>&1 | tee kolab-update.log - -If you installed with Horde or F/B-View you need to run - # ./install-kolab.sh -H -F 2>&1 | tee kolab-update.log +If you installed without Horde or F/B-View you need to drop the +corresponding flags again. + install-kolab.sh will usually automatically determine which packages need to be built. If you have made changes to configuration files or an updated package includes configuration files which are usually @@ -95,223 +97,21 @@ # /kolab/bin/openpkg rc all restart -Upgrading from earlier versions -------------------------------- - -Direct upgrade from Kolab1 is not recommendable at this point. We -suggest that you back up your IMAP store, install Kolab2 and manually -recreate user accounts and then restore the IMAP data from the backup. - -After an upgrade, always run /kolab/sbin/kolabconf to make sure the -configuration files are regenerated from your templates. - - -Upgrade from Kolab server 2.0 to 2.1 ------------------------------------- - -Upgrading from Kolab 2.0.x to 2.1 is described in detail in the file -UPGRADING.20-21 in this directory. - -The latest version of the upgrading instruction can be found in the -Kolab.org raw-howtos CVS: - -http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/doc/raw-howtos/kolab_2.0_to_2.1_upgrade_instructions.txt - -Please read carefully all the following update instructions in this -file, while some of the information will be redundant there might -be additional notes which are essential for an successful update. - - -Upgrade from pre-2.1-snapshot-20051130 --------------------------------------- - -This upgrade is somewhat tricky, because of a new db package and a new -OpenLDAP version. To make sure that no data is lost, you are strongly -advised to stop the server and make a backup before you start the -update. Some files are removed during the upgrade described below. - - -1. Before installing the new RPMs - -Before installing the new packages, copy the contents of the openldap -database (use a different output filename if you want): - - /kolab/sbin/slapcat > ~/kolab-slapcat-data - - -The db update also affects the imap server. - - cd /kolab/var/imapd/db - /kolab/bin/db_recover - rm /kolab/var/imapd/db/* - - -2. After installing the new RPMs - -You need to make two small changes are required for the openldap -configuration file /kolab/etc/openldap/slapd.conf: - - - comment out the line - - require none - - - Move the line with the suffix setting to just after the "database - bdb" line. - -These changes have already been done in the new slapd.conf.template, so -it can be used for guidance. - - -Then restore the openldap data: - - rm /kolab/var/openldap/openldap-data/* - /kolab/sbin/slapadd -l ~/kolab-slapcat-data - - -The IMAP server should work without further changes. - - -Upgrade from pre-2.1-snapshot-20051215 --------------------------------------- - -Nothing special has to be done for this upgrade. - - -Upgrade from 2.1-beta-1 ------------------------ - -1. imapd hashimapspool setting - -The default imapd configuration has been changed to enable the -hashimapspool option. This means that in 2.1-beta-2 the directory -layout of the imapd spool (/kolab/var/imapd/spool/) is different from -the one in beta-1. When you upgrade from beta-1 it's best to keep using -the old structure, so remove or comment out the corresponding line in -/kolab/etc/kolab/templates/imapd.conf.template *before* running -kolabconf. - -For new installations the new default setting is recommended because -it's more efficient especially when you have many mailboxes. - -For some background information about this see the dicussion at -https://intevation.de/roundup/kolab/issue1089 - - -2. distribution lists - -There was a bug in earlier versions regarding the distribution lists for -administrative emails aliases like postmaster@. They were -created without the domain part. This has been fixed so that they are -created with the correct domains in their names, but admin distribution -lists created by an earlier Kolab server version will not be updated -automatically. The easiest way to do this is by deleting them all and -then to create them again with the services page of the web-interface. - -For more details about the bug, see -https://intevation.de/roundup/kolab/issue1100 - - -Upgrade from 2.1-beta-2 ------------------------ - -1. postfix: ownership of virtual and transport: - -The owner of two config files has to be root, otherwise postfix will -change to an unprivileged user for creating the corresponding .db files, -isn't able to write them after the upgrade and fails to create further -database files which don't get generated from kolab templates. - -To correct the file owner, execute the following commands as root: - cd /kolab/etc/postfix - chown root transport virtual - make - -See kolab/issue1433 for details about this topic. - - -2. imapd: database format for annotations.db and mailboxes.db - -The default database format for /kolab/var/imapd/annotations.db and -/kolab/var/imapd/mailboxes.db has changed from skiplist to berkeley db. - -If you want to keep the old format, comment out or remove the lines -"annotation_db: berkeley" and "mboxlist_db: berkeley" in the file -"/kolab/etc/kolab/templates/imapd.conf.template" and make sure the file -"/kolab/etc/imapd/imapd.conf" reflects this, too, by either running -/kolab/sbin/kolabconf or changing it manually there, too. - -To convert the databases to berkeley db format, execute as root: - - /kolab/bin/openpkg rc imapd stop - su - kolab-r - cd /kolab/var/imapd/ - mv annotations.db annotations.db-skiplist - cvt_cyrusdb /kolab/var/imapd/annotations.db-skiplist skiplist \ - /kolab/var/imapd/annotations.db berkeley - mv mailboxes.db mailboxes.db-skiplist - cvt_cyrusdb /kolab/var/imapd/mailboxes.db-skiplist skiplist \ - /kolab/var/imapd/mailboxes.db berkeley - exit - /kolab/bin/openpkg rc imapd start - -See http://wiki.kolab.org/index.php/Kolab2_IMAPD_annotations.db_Problems -for details about this topic. - - -Upgrade from 2.1-beta-3 ------------------------ - -1. Symlink from /kolab/kolab to /kolab no longer needed: - -Due to kolab/issue1490 a symbolic link was needed to fix a packaging -problem which otherwise disturbed free/busy cache generation. -It is no longer needed and may optionally be removed: - - rm /kolab/kolab - - -2. imapd: emails with identical message-id header: - -In all previous releases the imap server discarded emails with identical -message-ids received within three days. This caused multiple problems -mentioned in kolab/issue1532. - -This change may cause duplicate messages in mailboxes due to cross postings, -distribution lists or possible bugs in imap clients. If you want to revert -to the old behaviour, please comment out or remove the line -"duplicatesuppression: 0" in /kolab/etc/kolab/templates/imapd.conf.template -or set the value to 1. - - -Upgrade from 2.1-beta-4 ------------------------ - -Nothing special has to be done for this upgrade. - - -Upgrade from 2.1-rc-1 ---------------------- - -The database backend for the free/busy cache was changed to solve licensing -issues between php4+ and gdbm. See kolab/issue1607 for details. - -Follow the steps to regenerate the free/busy cache shown in the section -"Final Steps" in the file UPGRADING.20-21 - - -Upgrade from 2.1-rc-2 ---------------------- +Upgrade from 2.2-beta1 to 2.2-beta2 +----------------------------------- -Nothing special has to be done for this upgrade. +FIXME -Upgrade from 2.1.0 ------------------- +Upgrade from Kolab server 2.1 or before +--------------------------------------- -The free/busy cache should be regenerated if you need the 'location' entry -in extended free/busy lists. -FIXME: describe generatefb.php +Instructions for upgrading from Kolab server 2.0 or 2.1 will be added +in a future version of this document. +Direct upgrade from Kolab1 is not supported. We suggest that you back up +your IMAP store, install Kolab2 and manually recreate user accounts and +then restore the IMAP data from the backup. Known problems and workarounds From cvs at kolab.org Fri Oct 19 12:54:20 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 19 Oct 2007 12:54:20 +0200 (CEST) Subject: thomas: server LIESMICH.txt,1.1,NONE Message-ID: <20071019105420.B85DF602A36@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv12106 Removed Files: LIESMICH.txt Log Message: Removed outdated LIESMICH.txt --- LIESMICH.txt DELETED --- From cvs at kolab.org Fri Oct 19 18:48:37 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 19 Oct 2007 18:48:37 +0200 (CEST) Subject: thomas: server install-kolab.sh,1.11,1.12 Message-ID: <20071019164837.25790602A31@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv20265 Modified Files: install-kolab.sh Log Message: Allow upgrades using binary packages Index: install-kolab.sh =================================================================== RCS file: /kolabrepository/server/install-kolab.sh,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- install-kolab.sh 19 Oct 2007 08:42:18 -0000 1.11 +++ install-kolab.sh 19 Oct 2007 16:48:34 -0000 1.12 @@ -288,7 +288,8 @@ -Dkolab-webadmin::kolab_version=$KOLAB_VERSION " fi - "$PREFIX/bin/openpkg" build -kK -r "$DIR" -p "$PLATTAG" $DEFINE $PACKAGES | sh || exit $? + find "$DIR" -mindepth 1 -maxdepth 1 -name "*.$PLATTAG.rpm" -exec ln -sf '{}' "$PREFIX/RPM/PKG/" \; + "$PREFIX/bin/openpkg" build -kKBuZ -r "$DIR" -p "$PLATTAG" $DEFINE $PACKAGES | sh || exit $? fi exit 0 From cvs at kolab.org Fri Oct 19 18:58:07 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 19 Oct 2007 18:58:07 +0200 (CEST) Subject: thomas: server README.1st,1.61,1.62 Message-ID: <20071019165807.DA8D8602A36@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv20531 Modified Files: README.1st Log Message: Finished upgrade instructions from beta1 Index: README.1st =================================================================== RCS file: /kolabrepository/server/README.1st,v retrieving revision 1.61 retrieving revision 1.62 diff -u -d -r1.61 -r1.62 --- README.1st 19 Oct 2007 10:53:44 -0000 1.61 +++ README.1st 19 Oct 2007 16:58:05 -0000 1.62 @@ -96,11 +96,26 @@ # /kolab/sbin/kolabconf # /kolab/bin/openpkg rc all restart +Or alternatively if the Kolab server was stopped before the upgrade: + +# /kolab/bin/openpkg rc openldap start +# /kolab/sbin/kolabconf +# /kolab/bin/openpkg rc all start + Upgrade from 2.2-beta1 to 2.2-beta2 ----------------------------------- -FIXME +Before running install-kolab.sh, you should stop the running Kolab server and +remove some packages which got renamed or will no longer be needed by running +this command: + +# /kolab/bin/openpkg rc all stop +# /kolab/bin/openpkg rpm -e --nodeps apache2 apache2-php getopt proftpd \ + pth sharutils kolab-horde-fbview kolab-resource-handlers + +Ignore errors about pth or sharutils not being installed, these +were included in the beta1 release but not installed by default. Upgrade from Kolab server 2.1 or before From cvs at kolab.org Fri Oct 19 19:17:21 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 19 Oct 2007 19:17:21 +0200 (CEST) Subject: thomas: server README.1st,1.62,1.63 Message-ID: <20071019171721.A589C602A36@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv21359 Modified Files: README.1st Log Message: Add instructions for installation from a read-only directory Index: README.1st =================================================================== RCS file: /kolabrepository/server/README.1st,v retrieving revision 1.62 retrieving revision 1.63 diff -u -d -r1.62 -r1.63 --- README.1st 19 Oct 2007 16:58:05 -0000 1.62 +++ README.1st 19 Oct 2007 17:17:19 -0000 1.63 @@ -39,10 +39,16 @@ be logged to install-kolab.log so that you have a reference in case an errors occurs during installation. +The install script needs to be able to write in the current working +directory, so if you want to keep this directory clean or install +install packages from a read-only location (e.g. CD-ROM), you can create +a new directory and pass the path to the packages to the script using +the -i option: + +# /path/to/packages/install-kolab.sh -H -F -i /path/to/packages + If you do not want to install the Horde groupware client and/or the free/busy view tool, you can drop the flag "-H" and/or "-F". - -FIXME: document install from read-only location (e.g. cdrom) By default, the Kolab server will now be started at boottime, so you have to bootstrap the server configuration now to prevent unconfigured From cvs at kolab.org Mon Oct 22 19:38:43 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 22 Oct 2007 19:38:43 +0200 (CEST) Subject: marcus: server/kolabd/kolabd ChangeLog,1.112,1.113 Message-ID: <20071022173843.A0AAD600168@lists.intevation.de> Author: marcus Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv8263 Modified Files: ChangeLog Log Message: changed the location of the smtpd.conf file (sasl_smtpconffile) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.112 retrieving revision 1.113 diff -u -d -r1.112 -r1.113 --- ChangeLog 17 Oct 2007 18:13:56 -0000 1.112 +++ ChangeLog 22 Oct 2007 17:38:41 -0000 1.113 @@ -1,3 +1,8 @@ +2007-10-22 Marcus Hüwe + + * dist_conf/suse: + changed the location of the smtpd.conf file (sasl_smtpconffile) + 2007-10-17 Thomas Arendsen Hein * Makefile.am, kolab.globals.in, kolab2.schema, kolab_bootstrap.in, From cvs at kolab.org Mon Oct 22 19:38:43 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 22 Oct 2007 19:38:43 +0200 (CEST) Subject: marcus: server/kolabd/kolabd/dist_conf suse,1.61,1.62 Message-ID: <20071022173843.A27E560C4AD@lists.intevation.de> Author: marcus Update of /kolabrepository/server/kolabd/kolabd/dist_conf In directory doto:/tmp/cvs-serv8263/dist_conf Modified Files: suse Log Message: changed the location of the smtpd.conf file (sasl_smtpconffile) Index: suse =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/suse,v retrieving revision 1.61 retrieving revision 1.62 diff -u -d -r1.61 -r1.62 --- suse 17 Oct 2007 17:57:13 -0000 1.61 +++ suse 22 Oct 2007 17:38:41 -0000 1.62 @@ -137,7 +137,7 @@ phplibdir2=${datadir}/php phppeardir=${phplibdir}/PEAR -sasl_smtpconffile=${libdir}/sasl2/smtpd.conf +sasl_smtpconffile=${sysconfdir}/sasl2/smtpd.conf sasl_authdconffile=${sysconfdir}/saslauthd.conf sasl_logfile=${localstatedir}/log/saslauthd.log From cvs at kolab.org Mon Oct 22 20:17:55 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 22 Oct 2007 20:17:55 +0200 (CEST) Subject: marcus: server/kolabd/kolabd/dist_conf kolabsrv.in,1.8,1.9 Message-ID: <20071022181755.CBD9E60C4B8@lists.intevation.de> Author: marcus Update of /kolabrepository/server/kolabd/kolabd/dist_conf In directory doto:/tmp/cvs-serv9275/dist_conf Modified Files: kolabsrv.in Log Message: replaced "apache" with "apache2". This file is not used by the openpkg installation so this change has no impact on it. Index: kolabsrv.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/kolabsrv.in,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- kolabsrv.in 14 Oct 2007 12:31:58 -0000 1.8 +++ kolabsrv.in 22 Oct 2007 18:17:53 -0000 1.9 @@ -38,7 +38,7 @@ esac if [[ "$2" == "all" ]]; then - SERVICES="@LDAPD@ slurpd saslauthd spamd amavis apache freshclam clamd cyrus postfix" + SERVICES="@LDAPD@ slurpd saslauthd spamd amavis apache2 freshclam clamd cyrus postfix" SERVICES="$SERVICES kolabd" else SERVICES=$2 From cvs at kolab.org Mon Oct 22 20:17:55 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 22 Oct 2007 20:17:55 +0200 (CEST) Subject: marcus: server/kolabd/kolabd ChangeLog,1.113,1.114 Message-ID: <20071022181755.CFACA60C4BA@lists.intevation.de> Author: marcus Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv9275 Modified Files: ChangeLog Log Message: replaced "apache" with "apache2". This file is not used by the openpkg installation so this change has no impact on it. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.113 retrieving revision 1.114 diff -u -d -r1.113 -r1.114 --- ChangeLog 22 Oct 2007 17:38:41 -0000 1.113 +++ ChangeLog 22 Oct 2007 18:17:53 -0000 1.114 @@ -3,6 +3,10 @@ * dist_conf/suse: changed the location of the smtpd.conf file (sasl_smtpconffile) + * dist_conf/kolabsrv.in: + replaced "apache" with "apache2". This file isn't used by the openpkg + installation so this change has no impact on it. + 2007-10-17 Thomas Arendsen Hein * Makefile.am, kolab.globals.in, kolab2.schema, kolab_bootstrap.in, From cvs at kolab.org Tue Oct 23 11:11:30 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Oct 2007 11:11:30 +0200 (CEST) Subject: thomas: server/php-kolab Makefile,1.12,1.13 Message-ID: <20071023091130.57A0A602A5B@lists.intevation.de> Author: thomas Update of /kolabrepository/server/php-kolab In directory doto:/tmp/cvs-serv30915/php-kolab Modified Files: Makefile Log Message: Switch version numbering to CVS again. Index: Makefile =================================================================== RCS file: /kolabrepository/server/php-kolab/Makefile,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- Makefile 18 Oct 2007 12:41:58 -0000 1.12 +++ Makefile 23 Oct 2007 09:11:28 -0000 1.13 @@ -5,7 +5,7 @@ VERSION = 2.2 PRERELEASE = beta PRERELEASE_VERSION = 2 -CVS = 0 +CVS = 1 ifeq "x$(PRERELEASE)" "x" ifeq "x$(CVS)" "x0" From cvs at kolab.org Tue Oct 23 11:11:30 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Oct 2007 11:11:30 +0200 (CEST) Subject: thomas: server/kolabconf Makefile.PL,1.12,1.13 Message-ID: <20071023091130.56044602A28@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabconf In directory doto:/tmp/cvs-serv30915/kolabconf Modified Files: Makefile.PL Log Message: Switch version numbering to CVS again. Index: Makefile.PL =================================================================== RCS file: /kolabrepository/server/kolabconf/Makefile.PL,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- Makefile.PL 18 Oct 2007 12:41:58 -0000 1.12 +++ Makefile.PL 23 Oct 2007 09:11:28 -0000 1.13 @@ -12,7 +12,7 @@ my $KOLAB_BASE_VERSION = "2.2.beta2"; # Are current releases cvs based or is this a real release? -my $KOLAB_CVS = 0; +my $KOLAB_CVS = 1; my $KOLAB_RELEASE = sprintf "%0004d%02d%02d", ((gmtime)[5] + 1900), ((gmtime)[4] + 1), (gmtime)[3]; From cvs at kolab.org Tue Oct 23 11:11:30 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Oct 2007 11:11:30 +0200 (CEST) Subject: thomas: server/perl-kolab/lib Kolab.pm,1.8,1.9 Message-ID: <20071023091130.56D05602A2B@lists.intevation.de> Author: thomas Update of /kolabrepository/server/perl-kolab/lib In directory doto:/tmp/cvs-serv30915/perl-kolab/lib Modified Files: Kolab.pm Log Message: Switch version numbering to CVS again. Index: Kolab.pm =================================================================== RCS file: /kolabrepository/server/perl-kolab/lib/Kolab.pm,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- Kolab.pm 18 Oct 2007 12:41:58 -0000 1.8 +++ Kolab.pm 23 Oct 2007 09:11:28 -0000 1.9 @@ -62,7 +62,7 @@ our $KOLAB_BASE_VERSION = "2.2.beta2"; # Are current releases cvs based or is this a real release? -my $KOLAB_CVS = 0; +my $KOLAB_CVS = 1; our $KOLAB_RELEASE = sprintf "%0004d%02d%02d", ((gmtime)[5] + 1900), ((gmtime)[4] + 1), (gmtime)[3]; From cvs at kolab.org Tue Oct 23 11:11:30 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Oct 2007 11:11:30 +0200 (CEST) Subject: thomas: server/kolab-freebusy Makefile,1.7,1.8 Message-ID: <20071023091130.56E2A602A4C@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-freebusy In directory doto:/tmp/cvs-serv30915/kolab-freebusy Modified Files: Makefile Log Message: Switch version numbering to CVS again. Index: Makefile =================================================================== RCS file: /kolabrepository/server/kolab-freebusy/Makefile,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Makefile 18 Oct 2007 12:41:58 -0000 1.7 +++ Makefile 23 Oct 2007 09:11:28 -0000 1.8 @@ -2,7 +2,7 @@ RELEASE = $(shell date '+%Y%m%d') VERSION = 2.2.beta2 -CVS = 0 +CVS = 1 ifeq "x$(CVS)" "x0" SOURCE_TAG = $(VERSION) From cvs at kolab.org Tue Oct 23 11:11:30 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Oct 2007 11:11:30 +0200 (CEST) Subject: thomas: server/kolab-filter Makefile,1.6,1.7 Message-ID: <20071023091130.552D3602A22@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-filter In directory doto:/tmp/cvs-serv30915/kolab-filter Modified Files: Makefile Log Message: Switch version numbering to CVS again. Index: Makefile =================================================================== RCS file: /kolabrepository/server/kolab-filter/Makefile,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Makefile 18 Oct 2007 12:41:58 -0000 1.6 +++ Makefile 23 Oct 2007 09:11:27 -0000 1.7 @@ -2,7 +2,7 @@ RELEASE = $(shell date '+%Y%m%d') VERSION = 2.2.beta2 -CVS = 0 +CVS = 1 ifeq "x$(CVS)" "x0" SOURCE_TAG = $(VERSION) From cvs at kolab.org Tue Oct 23 11:14:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Oct 2007 11:14:13 +0200 (CEST) Subject: thomas: server/perl-kolab/Kolab Kolab.pm.in,1.6.2.1,1.6.2.2 Message-ID: <20071023091413.F2D84602A28@lists.intevation.de> Author: thomas Update of /kolabrepository/server/perl-kolab/Kolab In directory doto:/tmp/cvs-serv31028/perl-kolab/Kolab Modified Files: Tag: kolab_2_1_branch Kolab.pm.in Log Message: Show component and log level when sending debug log to stdout. Index: Kolab.pm.in =================================================================== RCS file: /kolabrepository/server/perl-kolab/Kolab/Attic/Kolab.pm.in,v retrieving revision 1.6.2.1 retrieving revision 1.6.2.2 diff -u -d -r1.6.2.1 -r1.6.2.2 --- Kolab.pm.in 19 Sep 2007 17:06:42 -0000 1.6.2.1 +++ Kolab.pm.in 23 Oct 2007 09:14:10 -0000 1.6.2.2 @@ -464,20 +464,17 @@ my $text = shift; my $priority = shift || KOLAB_INFO; - my $level = $config{'log_level'}; - if ($level >= $priority) { - if ($priority == KOLAB_ERROR) { - $text = $prefix . ' Error: ' . $text; - } elsif ($priority == KOLAB_WARN) { - $text = $prefix . ' Warning: ' . $text; - } elsif ($priority == KOLAB_DEBUG) { - $text = $prefix . ' Debug: ' . $text; - } else { - $text = $prefix . ': ' . $text; - } - syslog('info', "$text"); + if ($priority == KOLAB_ERROR) { + $text = $prefix . ' Error: ' . $text; + } elsif ($priority == KOLAB_WARN) { + $text = $prefix . ' Warning: ' . $text; + } elsif ($priority == KOLAB_DEBUG) { + $text = $prefix . ' Debug: ' . $text; + } else { + $text = $prefix . ': ' . $text; } - print STDERR "$text\n" if ($config{'debug'}); + syslog('info', "$text") if $config{'log_level'} >= $priority; + print STDERR "$text\n" if $config{'debug'}; } reloadConfig(); From cvs at kolab.org Tue Oct 23 11:14:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Oct 2007 11:14:13 +0200 (CEST) Subject: thomas: server release-notes.txt,1.131.2.9,1.131.2.10 Message-ID: <20071023091413.EF50E602A22@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv31028 Modified Files: Tag: kolab_2_1_branch release-notes.txt Log Message: Show component and log level when sending debug log to stdout. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.131.2.9 retrieving revision 1.131.2.10 diff -u -d -r1.131.2.9 -r1.131.2.10 --- release-notes.txt 18 Oct 2007 17:01:27 -0000 1.131.2.9 +++ release-notes.txt 23 Oct 2007 09:14:10 -0000 1.131.2.10 @@ -40,6 +40,8 @@ Added missing Makefile dependencies + Show component and log level when sending debug log to stdout. + kolab/issue26 (Allow to bind to specific IPs) kolab/issue1679 (Update template META mechanism to support service restarts) kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) From cvs at kolab.org Tue Oct 23 11:17:46 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Oct 2007 11:17:46 +0200 (CEST) Subject: thomas: server release-notes.txt,1.160,1.161 Message-ID: <20071023091746.BA290602A28@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv31160 Modified Files: release-notes.txt Log Message: Show component and log level when sending debug log to stdout. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.160 retrieving revision 1.161 diff -u -d -r1.160 -r1.161 --- release-notes.txt 19 Oct 2007 08:38:11 -0000 1.160 +++ release-notes.txt 23 Oct 2007 09:17:44 -0000 1.161 @@ -1,6 +1,6 @@ Kolab Server 2.2 Release Notes ============================== -(Version 20071019, Kolab Server 2.2-beta2) +(Version 2007????, Kolab Server 2.2-???) For upgrading and installation instructions, please refer to the 1st.README file in the package directory. @@ -42,6 +42,13 @@ issues found in earlier versions. Additionally all software components have been upgraded to new upstream versions. The specifics are described below. + + +Changes between 2.2-beta-2 and 2.2-???: + + - perl-kolab-2.2.???-2007???? + + Show component and log level when sending debug log to stdout. Changes between 2.2-beta-1 and 2.2-beta-2: From cvs at kolab.org Tue Oct 23 11:17:46 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Oct 2007 11:17:46 +0200 (CEST) Subject: thomas: server/perl-kolab/lib Kolab.pm,1.9,1.10 Message-ID: <20071023091746.C2FA4602A2B@lists.intevation.de> Author: thomas Update of /kolabrepository/server/perl-kolab/lib In directory doto:/tmp/cvs-serv31160/perl-kolab/lib Modified Files: Kolab.pm Log Message: Show component and log level when sending debug log to stdout. Index: Kolab.pm =================================================================== RCS file: /kolabrepository/server/perl-kolab/lib/Kolab.pm,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- Kolab.pm 23 Oct 2007 09:11:28 -0000 1.9 +++ Kolab.pm 23 Oct 2007 09:17:44 -0000 1.10 @@ -422,20 +422,17 @@ my $text = shift; my $priority = shift || KOLAB_INFO; - my $level = $config{'log_level'}; - if ($level >= $priority) { - if ($priority == KOLAB_ERROR) { - $text = $prefix . ' Error: ' . $text; - } elsif ($priority == KOLAB_WARN) { - $text = $prefix . ' Warning: ' . $text; - } elsif ($priority == KOLAB_DEBUG) { - $text = $prefix . ' Debug: ' . $text; - } else { - $text = $prefix . ': ' . $text; - } - syslog('info', "$text"); + if ($priority == KOLAB_ERROR) { + $text = $prefix . ' Error: ' . $text; + } elsif ($priority == KOLAB_WARN) { + $text = $prefix . ' Warning: ' . $text; + } elsif ($priority == KOLAB_DEBUG) { + $text = $prefix . ' Debug: ' . $text; + } else { + $text = $prefix . ': ' . $text; } - print STDERR "$text\n" if ($config{'debug'}); + syslog('info', "$text") if $config{'log_level'} >= $priority; + print STDERR "$text\n" if $config{'debug'}; } 1; From cvs at kolab.org Tue Oct 23 11:17:46 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Oct 2007 11:17:46 +0200 (CEST) Subject: thomas: server/perl-kolab ChangeLog,1.24,1.25 Message-ID: <20071023091746.C3674602A4C@lists.intevation.de> Author: thomas Update of /kolabrepository/server/perl-kolab In directory doto:/tmp/cvs-serv31160/perl-kolab Modified Files: ChangeLog Log Message: Show component and log level when sending debug log to stdout. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/perl-kolab/ChangeLog,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- ChangeLog 17 Oct 2007 17:57:13 -0000 1.24 +++ ChangeLog 23 Oct 2007 09:17:44 -0000 1.25 @@ -1,3 +1,8 @@ +2007-10-23 Thomas Arendsen Hein + + * lib/Kolab.pm: Show component and log level when sending debug + log to stdout. + 2007-10-17 Thomas Arendsen Hein * lib/Kolab.pm: kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) From cvs at kolab.org Thu Oct 25 08:40:30 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 25 Oct 2007 08:40:30 +0200 (CEST) Subject: gunnar: server/patches/cyrus-imapd KOLAB_cyrus-cyradm_2.3.10_Annotations.patch, NONE, 1.1 KOLAB_cyrus-imapd_2.3.10_Annotations2.patch, NONE, 1.1 KOLAB_cyrus-imapd_2.3.10_Folder-names.patch, NONE, 1.1 KOLAB_cyrus-imapd_2.3.10_Groups.patch, NONE, 1.1 KOLAB_cyrus-imapd_2.3.10_Logging.patch, NONE, 1.1 KOLAB_cyrus-imapd_2.3.10_UID.patch, NONE, 1.1 Message-ID: <20071025064030.84FF1602A24@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd In directory doto:/tmp/cvs-serv28407 Added Files: KOLAB_cyrus-cyradm_2.3.10_Annotations.patch KOLAB_cyrus-imapd_2.3.10_Annotations2.patch KOLAB_cyrus-imapd_2.3.10_Folder-names.patch KOLAB_cyrus-imapd_2.3.10_Groups.patch KOLAB_cyrus-imapd_2.3.10_Logging.patch KOLAB_cyrus-imapd_2.3.10_UID.patch Log Message: Add patches for cyrus-imapd-2.3.10. --- NEW FILE: KOLAB_cyrus-cyradm_2.3.10_Annotations.patch --- Allows to use arbitrary annotations with the cyradm tool. diff -r a07884e259c3 doc/man/cyradm.1.html --- a/doc/man/cyradm.1.html Thu Oct 25 08:24:39 2007 +0200 +++ b/doc/man/cyradm.1.html Thu Oct 25 08:29:40 2007 +0200 @@ -241,6 +241,13 @@ The currently supported attributes are:<

    Sets an email address to which messages injected into the server via NNTP will be sent.

    +
    + +
    /explicit/annotation + +
    +

    Sets the annotation /explicit/annotation +on mailbox to value.

    sharedseen diff -r a07884e259c3 perl/imap/IMAP/Admin.pm --- a/perl/imap/IMAP/Admin.pm Thu Oct 25 08:24:39 2007 +0200 +++ b/perl/imap/IMAP/Admin.pm Thu Oct 25 08:29:40 2007 +0200 @@ -796,11 +796,11 @@ sub mboxconfig { return undef; } - if(!exists($values{$entry})) { - $self->{error} = "Unknown parameter $entry"; - } - - $entry = $values{$entry}; + if(exists($values{$entry})) { + $entry = $values{$entry}; + } else { + $self->{error} = "Unknown parameter $entry" unless substr($entry,0,1) eq "/"; + } my ($rc, $msg); diff -r a07884e259c3 perl/imap/IMAP/Shell.pm --- a/perl/imap/IMAP/Shell.pm Thu Oct 25 08:24:39 2007 +0200 +++ b/perl/imap/IMAP/Shell.pm Thu Oct 25 08:29:40 2007 +0200 @@ -126,7 +126,7 @@ my %builtins = (exit => [\&_sc_info, '[mailbox]', 'display mailbox/server metadata'], mboxcfg => - [\&_sc_mboxcfg, 'mailbox [comment|condstore|expire|news2mail|sharedseen|sieve|squat] value', + [\&_sc_mboxcfg, 'mailbox [comment|condstore|news2mail|expire|sieve|squat|/] value', 'configure mailbox'], mboxconfig => 'mboxcfg', reconstruct => @@ -1436,7 +1436,7 @@ sub _sc_mboxcfg { while (defined ($opt = shift(@argv))) { last if $opt eq '--'; if ($opt =~ /^-/) { - die "usage: mboxconfig mailbox [comment|condstore|expire|news2mail|sharedseen|sieve|squat] value\n"; + die "usage: mboxconfig mailbox [comment|condstore|expire|news2mail|sharedseen|sieve|squat|/] value\n"; } else { push(@nargv, $opt); @@ -1445,7 +1445,7 @@ sub _sc_mboxcfg { } push(@nargv, @argv); if (@nargv < 2) { - die "usage: mboxconfig mailbox [comment|condstore|expire|news2mail|sharedseen|sieve|squat] value\n"; + die "usage: mboxconfig mailbox [comment|condstore|expire|news2mail|sharedseen|sieve|squat|/] value\n"; } if (!$cyrref || !$$cyrref) { die "mboxconfig: no connection to server\n"; diff -r a07884e259c3 perl/imap/cyradm.sh --- a/perl/imap/cyradm.sh Thu Oct 25 08:24:39 2007 +0200 +++ b/perl/imap/cyradm.sh Thu Oct 25 08:29:40 2007 +0200 @@ -241,6 +241,10 @@ mailboxes). Indicates that the mailbox should have a squat index created for it. +=item C + +Sets the annotation I on I to I. + =back =item C [C<--partition> I] I I --- NEW FILE: KOLAB_cyrus-imapd_2.3.10_Annotations2.patch --- Provides a new version of annotation support for the cyrus imapd server [Version: 2.3.9] diff -r b693d1281318 imap/annotate.c --- a/imap/annotate.c Thu Oct 25 08:21:36 2007 +0200 +++ b/imap/annotate.c Thu Oct 25 08:24:37 2007 +0200 @@ -40,6 +40,13 @@ * */ /* + * This file contains code Copyright (c) 2006 by Thomas Viehmann. + * You may distribute source code or binaries under the conditions + * conditions given in the CMU license, provided this note stays intact + * in the distributed source. If you want to distribute my code without + * this notice, do contact me at . + */ +/* * $Id: KOLAB_cyrus-imapd_2.3.10_Annotations2.patch,v 1.1 2007/10/25 06:40:28 gunnar Exp $ */ @@ -92,6 +99,8 @@ int (*proxy_store_func)(const char *serv int (*proxy_store_func)(const char *server, const char *mbox_pat, struct entryattlist *entryatts) = NULL; +void init_annotation_definitions(); + /* String List Management */ /* * Append 's' to the strlist 'l'. Possibly include metadata. @@ -238,6 +247,8 @@ void annotatemore_init(int myflags, if (store_func) { proxy_store_func = store_func; } + + init_annotation_definitions(); } void annotatemore_open(char *fname) @@ -1833,6 +1844,224 @@ const struct annotate_st_entry mailbox_r { NULL, 0, ANNOTATION_PROXY_T_INVALID, 0, 0, NULL, NULL } }; +struct annotate_st_entry_list *server_entries_list = NULL; +struct annotate_st_entry_list *mailbox_rw_entries_list = NULL; + +enum { + ANNOTATION_SCOPE_SERVER = 1, + ANNOTATION_SCOPE_MAILBOX = 2 +}; + +const struct annotate_attrib annotation_scope_names[] = +{ + { "server", ANNOTATION_SCOPE_SERVER }, + { "mailbox", ANNOTATION_SCOPE_MAILBOX }, + { NULL, 0 } +}; + +const struct annotate_attrib annotation_proxy_type_names[] = +{ + { "proxy", PROXY_ONLY }, + { "backend", BACKEND_ONLY }, + { "proxy_and_backend", PROXY_AND_BACKEND }, + { NULL, 0 } +}; + +const struct annotate_attrib attribute_type_names[] = +{ + { "content-type", ATTRIB_TYPE_CONTENTTYPE }, + { "string", ATTRIB_TYPE_STRING }, + { "boolean", ATTRIB_TYPE_BOOLEAN }, + { "uint", ATTRIB_TYPE_UINT }, + { "int", ATTRIB_TYPE_INT }, + { NULL, 0 } +}; + +#define ANNOT_DEF_MAXLINELEN 1024 + +int table_lookup(const struct annotate_attrib *table, + char* name, + size_t namelen, + char* errmsg) +/* search in table for the value given by name and namelen (name is null-terminated, + but possibly more than just the key). errmsg is used to hint the user where we failed */ +{ + char errbuf[ANNOT_DEF_MAXLINELEN*2]; + int entry; + + for (entry = 0; table[entry].name && + (strncasecmp(table[entry].name, name, namelen) + || table[entry].name[namelen] != '\0'); entry++); + + if (! table[entry].name) { + sprintf(errbuf, "invalid %s at '%s'", errmsg, name); + fatal(errbuf, EC_CONFIG); + } + return table[entry].entry; +} + +char *consume_comma(char* p) + /* advance beyond the next ',', skipping whitespace, fail if next non-space is no comma */ +{ + char errbuf[ANNOT_DEF_MAXLINELEN*2]; + + for (; *p && isspace(*p); p++); + if (*p != ',') { + sprintf(errbuf, "',' expected, '%s' found parsing annotation definition", + p); + fatal(errbuf, EC_CONFIG); + } + p++; + for (; *p && isspace(*p); p++); + + return p; +} + +int parse_table_lookup_bitmask(const struct annotate_attrib *table, + char** s, + char* errmsg) + /* parses strings of the form value1 [ value2 [ ... ]] + value1 is mapped via table to ints and the result ored + whitespace is allowed between value names and punctuation + the field must end in '\0' or ',' + s is advanced to '\0' or ',' + on error errmsg is used to identify item to be parsed + */ +{ + char errbuf[ANNOT_DEF_MAXLINELEN*2]; + int result = 0; + char *p, *p2; + + p = *s; + do { + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + result |= table_lookup(table, p2, p-p2, errmsg); + for (; *p && isspace(*p); p++); + } while (*p && *p != ','); + + *s = p; + return result; +} + +void init_annotation_definitions() +{ + char *p, *p2, *tmp; + const char *filename; + char aline[ANNOT_DEF_MAXLINELEN]; + char errbuf[ANNOT_DEF_MAXLINELEN*2]; + struct annotate_st_entry_list *se, *me; + struct annotate_st_entry *ae; + int i; + FILE* f; + + /* NOTE: we assume # static entries > 0 */ + server_entries_list = xmalloc(sizeof(struct annotate_st_entry_list)); + mailbox_rw_entries_list = xmalloc(sizeof(struct annotate_st_entry_list)); + se = server_entries_list; + me = mailbox_rw_entries_list; + /* copy static entries into list */ + for (i = 0; server_entries[i].name;i++) { + se->entry = &server_entries[i]; + if (server_entries[i+1].name) { + se->next = xmalloc(sizeof(struct annotate_st_entry_list)); + se = se->next; + } + } + /* copy static entries into list */ + for (i = 0; mailbox_rw_entries[i].name;i++) { + me->entry = &mailbox_rw_entries[i]; + if (mailbox_rw_entries[i+1].name) { + me->next = xmalloc(sizeof(struct annotate_st_entry_list)); + me = me->next; + } + } + + /* parse config file */ + filename = config_getstring(IMAPOPT_ANNOTATION_DEFINITIONS); + + if (! filename) { + se->next = NULL; + me->next = NULL; + return; + } + + f = fopen(filename,"r"); + if (! f) { + sprintf(errbuf, "could not open annotation definiton %s", filename); + fatal(errbuf, EC_CONFIG); + } + + while (fgets(aline, sizeof(aline), f)) { + // remove leading space, skip blank lines and comments + for (p = aline; *p && isspace(*p); p++); + if (!*p || *p == '#') continue; + + // note, we only do the most basic validity checking and may + // be more restrictive than neccessary + + ae = xmalloc(sizeof(struct annotate_st_entry)); + + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + // TV-TODO: should test for empty + ae->name = xstrndup(p2, p-p2); + + p = consume_comma(p); + + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + + if (table_lookup(annotation_scope_names, p2, p-p2, + "annotation scope")==ANNOTATION_SCOPE_SERVER) { + se->next = xmalloc(sizeof(struct annotate_st_entry_list)); + se = se->next; + se->entry = ae; + } + else { + me->next = xmalloc(sizeof(struct annotate_st_entry_list)); + me = me->next; + me->entry = ae; + } + + p = consume_comma(p); + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + ae->type = table_lookup(attribute_type_names, p2, p-p2, + "attribute type"); + + p = consume_comma(p); + ae->proxytype = parse_table_lookup_bitmask(annotation_proxy_type_names, + &p, + "annotation proxy type"); + + p = consume_comma(p); + ae->attribs = parse_table_lookup_bitmask(annotation_attributes, + &p, + "annotation attributes"); + + p = consume_comma(p); + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + tmp = xstrndup(p2, p-p2); + ae->acl = cyrus_acl_strtomask(tmp); + free(tmp); + + for (; *p && isspace(*p); p++); + if (*p) { + sprintf(errbuf, "junk at end of line: '%s'", p); + fatal(errbuf, EC_CONFIG); + } + + ae->set = annotation_set_todb; + ae->rock = NULL; + } + + fclose(f); + se->next = NULL; + me->next = NULL; +} + int annotatemore_store(char *mailbox, struct entryattlist *l, struct namespace *namespace, @@ -1844,7 +2073,7 @@ int annotatemore_store(char *mailbox, struct entryattlist *e = l; struct attvaluelist *av; struct storedata sdata; - const struct annotate_st_entry *entries; + const struct annotate_st_entry_list *entries, *currententry; time_t now = time(0); memset(&sdata, 0, sizeof(struct storedata)); @@ -1855,45 +2084,45 @@ int annotatemore_store(char *mailbox, if (!mailbox[0]) { /* server annotations */ - entries = server_entries; + entries = server_entries_list; } else { /* mailbox annotation(s) */ - entries = mailbox_rw_entries; + entries = mailbox_rw_entries_list; } /* Build a list of callbacks for storing the annotations */ while (e) { - int entrycount, attribs; + int attribs; struct annotate_st_entry_list *nentry = NULL; /* See if we support this entry */ - for (entrycount = 0; - entries[entrycount].name; - entrycount++) { - if (!strcmp(e->entry, entries[entrycount].name)) { + for (currententry = entries; + currententry; + currententry = currententry->next) { + if (!strcmp(e->entry, currententry->entry->name)) { break; } } - if (!entries[entrycount].name) { + if (!currententry) { /* unknown annotation */ return IMAP_PERMISSION_DENIED; } /* Add this entry to our list only if it applies to our particular server type */ - if ((entries[entrycount].proxytype != PROXY_ONLY) + if ((currententry->entry->proxytype != PROXY_ONLY) || proxy_store_func) { nentry = xzmalloc(sizeof(struct annotate_st_entry_list)); nentry->next = sdata.entry_list; - nentry->entry = &(entries[entrycount]); + nentry->entry = currententry->entry; nentry->shared.modifiedsince = now; nentry->priv.modifiedsince = now; sdata.entry_list = nentry; } /* See if we are allowed to set the given attributes. */ - attribs = entries[entrycount].attribs; + attribs = currententry->entry->attribs; av = e->attvalues; while (av) { const char *value; @@ -1903,7 +2132,7 @@ int annotatemore_store(char *mailbox, goto cleanup; } value = annotate_canon_value(av->value, - entries[entrycount].type); + currententry->entry->type); if (!value) { r = IMAP_ANNOTATION_BADVALUE; goto cleanup; @@ -1929,7 +2158,7 @@ int annotatemore_store(char *mailbox, goto cleanup; } value = annotate_canon_value(av->value, - entries[entrycount].type); + currententry->entry->type); if (!value) { r = IMAP_ANNOTATION_BADVALUE; goto cleanup; diff -r b693d1281318 lib/imapoptions --- a/lib/imapoptions Thu Oct 25 08:21:36 2007 +0200 +++ b/lib/imapoptions Thu Oct 25 08:24:37 2007 +0200 @@ -152,6 +152,9 @@ are listed with ``''. user on their mailboxes? In a large organization this can cause support problems, but it's enabled by default. */ +{ "annotation_definitions", NULL, STRING } +/* File containing annotation definitions. */ + { "auth_mech", "unix", STRINGLIST("unix", "pts", "krb", "krb5")} /* The authorization mechanism to use. */ --- NEW FILE: KOLAB_cyrus-imapd_2.3.10_Folder-names.patch --- Modifies the set of accepted characters in folder names for the cyrus imapd server [Version: 2.3.9] diff -r 6bcd324910d3 imap/mboxname.c --- a/imap/mboxname.c Thu Oct 25 08:30:33 2007 +0200 +++ b/imap/mboxname.c Thu Oct 25 08:30:43 2007 +0200 @@ -700,8 +700,13 @@ int mboxname_netnewscheck(char *name) /* * Apply site policy restrictions on mailbox names. * Restrictions are hardwired for now. - */ + + * original definition #define GOODCHARS " +,-.0123456789:=@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~" + */ + +#define GOODCHARS " #$%'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~" + int mboxname_policycheck(char *name) { unsigned i; --- NEW FILE: KOLAB_cyrus-imapd_2.3.10_Groups.patch --- Allows to use a file other than /etc/groups for group definitions within the cyrus imapd server [Version: 2.3.9] diff -r e502c48f9ba9 lib/auth_unix.c --- a/lib/auth_unix.c Thu Oct 25 08:10:12 2007 +0200 +++ b/lib/auth_unix.c Thu Oct 25 08:21:36 2007 +0200 @@ -48,12 +48,133 @@ #include #include #include +#include #include #include #include "auth.h" #include "libcyr_cfg.h" #include "xmalloc.h" + +#ifdef __FreeBSD__ +/* + * __getgrent.c - This file is part of the libc-8086/grp package for ELKS, + * Copyright (C) 1995, 1996 Nat Friedman . + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include +#include +#include + +static struct group *__getgrent(int grp_fd, char *line_buff, char **members) +{ + short line_index; + short buff_size; + static struct group group; + register char *ptr; + char *field_begin; + short member_num; + char *endptr; + int line_len; + + /* We use the restart label to handle malformatted lines */ + restart: + line_index = 0; + buff_size = 256; + + line_buff = realloc(line_buff, buff_size); + while (1) { + if ((line_len = read(grp_fd, line_buff + line_index, + buff_size - line_index)) <= 0) { + return NULL; + } + field_begin = strchr(line_buff, '\n'); + if (field_begin != NULL) { + lseek(grp_fd, + (long) (1 + field_begin - + (line_len + line_index + line_buff)), SEEK_CUR); + *field_begin = '\0'; + if (*line_buff == '#' || *line_buff == ' ' + || *line_buff == '\n' || *line_buff == '\t') + goto restart; + break; + } else { + /* Allocate some more space */ + line_index = buff_size; + buff_size += 256; + line_buff = realloc(line_buff, buff_size); + } + } + + /* Now parse the line */ + group.gr_name = line_buff; + ptr = strchr(line_buff, ':'); + if (ptr == NULL) + goto restart; + *ptr++ = '\0'; + + group.gr_passwd = ptr; + ptr = strchr(ptr, ':'); + if (ptr == NULL) + goto restart; + *ptr++ = '\0'; + + field_begin = ptr; + ptr = strchr(ptr, ':'); + if (ptr == NULL) + goto restart; + *ptr++ = '\0'; + + group.gr_gid = (gid_t) strtoul(field_begin, &endptr, 10); + if (*endptr != '\0') + goto restart; + + member_num = 0; + field_begin = ptr; + + if (members != NULL) + free(members); + members = (char **) malloc((member_num + 1) * sizeof(char *)); + for ( ; field_begin && *field_begin != '\0'; field_begin = ptr) { + if ((ptr = strchr(field_begin, ',')) != NULL) + *ptr++ = '\0'; + members[member_num++] = field_begin; + members = (char **) realloc(members, + (member_num + 1) * sizeof(char *)); + } + members[member_num] = NULL; + + group.gr_mem = members; + return &group; +} + +static char *line_buff = NULL; +static char **members = NULL; + +struct group *fgetgrent(FILE *file) +{ + if (file == NULL) { + errno = EINTR; + return NULL; + } + return __getgrent(fileno(file), line_buff, members); +} +#endif /* __FreeBSD__ */ struct auth_state { char userid[81]; @@ -142,6 +263,25 @@ static char allowedchars[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +static struct group* fgetgrnam(const char* name) +{ + struct group *grp; + FILE *groupfile; + + groupfile = fopen("/etc/imapd.group", "r"); + if (!groupfile) groupfile = fopen("/etc/group", "r"); + if (groupfile) { + while ((grp = fgetgrent(groupfile))) { + if (strcasecmp(grp->gr_name, name) == 0) { + fclose(groupfile); + return grp; + } + } + } + if (groupfile) fclose(groupfile); + return NULL; +} + /* * Convert 'identifier' into canonical form. * Returns a pointer to a static buffer containing the canonical form @@ -177,7 +317,7 @@ size_t len; */ if (!strncmp(retbuf, "group:", 6)) { - grp = getgrnam(retbuf+6); + grp = fgetgrnam(retbuf+6); if (!grp) return 0; strcpy(retbuf+6, grp->gr_name); return retbuf; @@ -228,6 +368,7 @@ static struct auth_state *mynewstate(con int ret, ngroups = 0; #else char **mem; + FILE *groupfile; #endif identifier = mycanonifyid(identifier, 0); @@ -286,20 +427,23 @@ err: if (groupids) free(groupids); #else /* !HAVE_GETGROUPLIST */ - setgrent(); - while ((grp = getgrent())) { - for (mem = grp->gr_mem; *mem; mem++) { - if (!strcmp(*mem, identifier)) break; - } - - if (*mem || (pwd && pwd->pw_gid == grp->gr_gid)) { - newstate->ngroups++; - newstate->group = (char **)xrealloc((char *)newstate->group, - newstate->ngroups * sizeof(char *)); - newstate->group[newstate->ngroups-1] = xstrdup(grp->gr_name); - } - } - endgrent(); + groupfile = fopen("/etc/imapd.group", "r"); + if (!groupfile) groupfile = fopen("/etc/group", "r"); + if (groupfile) { + while ((grp = fgetgrent(groupfile))) { + for (mem = grp->gr_mem; *mem; mem++) { + if (!strcasecmp(*mem, identifier)) break; + } + + if (*mem || (pwd && pwd->pw_gid == grp->gr_gid)) { + newstate->ngroups++; + newstate->group = (char **)xrealloc((char *)newstate->group, + newstate->ngroups * sizeof(char *)); + newstate->group[newstate->ngroups-1] = xstrdup(grp->gr_name); + } + } + fclose(groupfile); + } #endif /* HAVE_GETGROUPLIST */ return newstate; --- NEW FILE: KOLAB_cyrus-imapd_2.3.10_Logging.patch --- Provides improved logging for the cyrus imapd server [Version: 2.3.9] diff -r e60d8aee10e9 imap/append.c --- a/imap/append.c Thu Oct 25 08:30:15 2007 +0200 +++ b/imap/append.c Thu Oct 25 08:30:23 2007 +0200 @@ -648,6 +648,9 @@ int append_fromstage(struct appendstate /* ok, we've successfully added a message */ as->quota_used += message_index.size; + + syslog(LOG_DEBUG, "append_fromstage: message %d added to %s", + message_index.uid, mailbox->name ); return 0; } diff -r e60d8aee10e9 imap/imapd.c --- a/imap/imapd.c Thu Oct 25 08:30:15 2007 +0200 +++ b/imap/imapd.c Thu Oct 25 08:30:23 2007 +0200 @@ -3510,17 +3510,19 @@ void cmd_close(char *tag) if (!r) sync_log_mailbox(imapd_mailbox->name); } + if (r) { + prot_printf(imapd_out, "%s NO %s\r\n", tag, error_message(r)); + } + else { + prot_printf(imapd_out, "%s OK %s\r\n", tag, + error_message(IMAP_OK_COMPLETED)); + syslog(LOG_DEBUG, "cmd_expunge: user %s, mailbox %s, sequence %s", + imapd_userid, imapd_mailbox->name, "''"); + } + index_closemailbox(imapd_mailbox); mailbox_close(imapd_mailbox); imapd_mailbox = 0; - - if (r) { - prot_printf(imapd_out, "%s NO %s\r\n", tag, error_message(r)); - } - else { - prot_printf(imapd_out, "%s OK %s\r\n", tag, - error_message(IMAP_OK_COMPLETED)); - } } /* diff -r e60d8aee10e9 imap/mailbox.c --- a/imap/mailbox.c Thu Oct 25 08:30:15 2007 +0200 +++ b/imap/mailbox.c Thu Oct 25 08:30:23 2007 +0200 @@ -2520,6 +2520,8 @@ int mailbox_expunge(struct mailbox *mail *(fname->tail)++ = '/'; fname->len++; for (msgno = 0; msgno < numdeleted; msgno++) { + syslog(LOG_DEBUG, "mailbox_expunge: removing mail %s:%d", + mailbox->name, deleted[msgno]); mailbox_message_get_fname(mailbox, deleted[msgno], fname->tail, sizeof(fname->buf) - fname->len); --- NEW FILE: KOLAB_cyrus-imapd_2.3.10_UID.patch --- Allows login by uid rather than the mail address on the cyrus imapd server [Version: 2.3.9] diff -r d62bf3b0902d configure --- a/configure Thu Oct 25 08:30:57 2007 +0200 +++ b/configure Thu Oct 25 08:31:06 2007 +0200 @@ -18119,7 +18119,7 @@ done done IMAP_COM_ERR_LIBS="${COM_ERR_LIBS}" -IMAP_LIBS="${LIB_SASL} ${LIBS}" +IMAP_LIBS="${LIB_SASL} -lldap -llber ${LIBS}" diff -r d62bf3b0902d imap/global.c --- a/imap/global.c Thu Oct 25 08:30:57 2007 +0200 +++ b/imap/global.c Thu Oct 25 08:31:06 2007 +0200 @@ -52,6 +52,9 @@ #include #include +#include +#include + #if HAVE_UNISTD_H # include #endif @@ -362,6 +365,18 @@ char *canonify_userid(char *user, char * char *domain = NULL; int len = strlen(user); char buf[81]; + const char *uri; + const char *base; + const char *binddn; + const char *bindpw; + struct timeval timeout; + char filter[255]; + LDAP *handle; + LDAPMessage *res; + LDAPMessage *entry; + char ** vals; + + int rc; /* check for domain */ if (config_virtdomains && @@ -380,6 +395,47 @@ char *canonify_userid(char *user, char * } if (config_virtdomains) { + if (config_virtdomains == IMAP_ENUM_VIRTDOMAINS_LDAP) { + uri = config_getstring(IMAPOPT_LDAP_URI); + base = config_getstring(IMAPOPT_LDAP_BASE); + binddn = config_getstring(IMAPOPT_LDAP_BIND_DN); + bindpw = config_getstring(IMAPOPT_LDAP_PASSWORD); + timeout.tv_sec = config_getint(IMAPOPT_LDAP_TIME_LIMIT); + timeout.tv_usec = 0; + sprintf(filter, "(uid=%s)", user); + rc = ldap_initialize(&handle, uri); + if (rc != LDAP_SUCCESS) { + syslog(LOG_ERR, "ldap_initialize failed (%s)", uri); + } else { + rc = ldap_simple_bind_s(handle, binddn, bindpw); + if (rc != LDAP_SUCCESS) { + syslog(LOG_ERR, "ldap_simple_bind() failed %d (%s)", rc, ldap_err2string(rc)); + } else { + rc = ldap_search_st(handle, base, LDAP_SCOPE_SUBTREE, filter, NULL, 0, &timeout, &res); + if (rc != LDAP_SUCCESS) { + syslog(LOG_ERR, "ldap_search_st failed %d (%s)", rc, ldap_err2string(rc)); + } else { + if ( (entry = ldap_first_entry(handle, res)) != NULL ) { + // read mail attribute from entry + if ( (vals = ldap_get_values(handle, entry, "mail")) ) { + if (strchr(vals[0], '@')) { + static char buf[81]; /* same size as in auth_canonifyid */ + strncpy( buf, vals[0], sizeof(buf) ); + buf[80] = '\0'; /* make sure it's null-terminated */ + ldap_value_free( vals ); + ldap_msgfree( res ); + ldap_unbind_s(handle); /* also frees handle */ + return auth_canonifyid( buf, 0) ; + } + ldap_value_free( vals ); + } + } + ldap_msgfree( res ); + } + } + ldap_unbind_s(handle); /* also frees handle */ + } + } if (domain) { if (config_defdomain && !strcasecmp(config_defdomain, domain+1)) { *domain = '\0'; /* trim the default domain */ @@ -392,7 +448,7 @@ char *canonify_userid(char *user, char * user = buf; } } - else if (config_virtdomains != IMAP_ENUM_VIRTDOMAINS_USERID) { + else if (config_virtdomains != IMAP_ENUM_VIRTDOMAINS_USERID && config_virtdomains != IMAP_ENUM_VIRTDOMAINS_LDAP) { socklen_t salen; int error; struct sockaddr_storage localaddr; diff -r d62bf3b0902d lib/imapoptions --- a/lib/imapoptions Thu Oct 25 08:30:57 2007 +0200 +++ b/lib/imapoptions Thu Oct 25 08:31:06 2007 +0200 @@ -1034,7 +1034,7 @@ are listed with ``''. mailbox hierarchy. The default is to use the netnews separator character '.'. */ -{ "virtdomains", "off", ENUM("off", "userid", "on") } +{ "virtdomains", "off", ENUM("off", "userid", "ldap", "on") } /* Enable virtual domain support. If enabled, the user's domain will be determined by splitting a fully qualified userid at the last '@' or '%' symbol. If the userid is unqualified, and the virtdomains From cvs at kolab.org Thu Oct 25 17:47:06 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 25 Oct 2007 17:47:06 +0200 (CEST) Subject: bernhard: doc/wwwkroupware/src/news pr-20030725.html,1.5,1.6 Message-ID: <20071025154706.ACB40602A24@lists.intevation.de> Author: bernhard Update of /kolabrepository/doc/wwwkroupware/src/news In directory doto:/tmp/cvs-serv11396 Modified Files: pr-20030725.html Log Message: Fixing links as we do not have kroupware.org anymore, so all should point to kroupware.kolab.org instead. Index: pr-20030725.html =================================================================== RCS file: /kolabrepository/doc/wwwkroupware/src/news/pr-20030725.html,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- pr-20030725.html 28 Jul 2003 18:32:28 -0000 1.5 +++ pr-20030725.html 25 Oct 2007 15:47:04 -0000 1.6 @@ -2,7 +2,7 @@ Kroupware Project finished -- Kolab emerges, PR July 25th, 2003 -Back to kroupware.org +Back to kroupware.kolab.org @@ -37,7 +37,7 @@ The Kolab system offers common asynchronous groupware functions such as email, group calendaring, notes and tasks. Stable releases of the software can be downloaded from the -website. +website.

    @@ -83,12 +83,12 @@

    Apart from -www.kroupware.org +kroupware.kolab.org which documents the project itself, there is an emerging community around the Kolab approach which organises itself over the mailinglists and the -kolab.kroupware.org website. +www.kolab.org website.

    From cvs at kolab.org Thu Oct 25 17:58:03 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 25 Oct 2007 17:58:03 +0200 (CEST) Subject: thomas: server README.1st,1.63,1.64 Message-ID: <20071025155803.4B448602A28@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv11863 Modified Files: README.1st Log Message: removed beta / not recommended for production hint from README Index: README.1st =================================================================== RCS file: /kolabrepository/server/README.1st,v retrieving revision 1.63 retrieving revision 1.64 diff -u -d -r1.63 -r1.64 --- README.1st 19 Oct 2007 17:17:19 -0000 1.63 +++ README.1st 25 Oct 2007 15:58:01 -0000 1.64 @@ -8,8 +8,6 @@ http://kolab.org/mailman/listinfo/kolab-announce to receive security advisories and release announcements. -* This development snapshot is not recommended for use in production! * - Quick install instructions -------------------------- From cvs at kolab.org Thu Oct 25 18:13:47 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 25 Oct 2007 18:13:47 +0200 (CEST) Subject: thomas: server cvs-kolab.sh,1.16,1.17 install-kolab.sh,1.12,1.13 Message-ID: <20071025161347.8ED30602A24@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv12409 Modified Files: cvs-kolab.sh install-kolab.sh Log Message: Added copyright and license for install-kolab.sh and cvs-kolab.sh Index: cvs-kolab.sh =================================================================== RCS file: /kolabrepository/server/cvs-kolab.sh,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- cvs-kolab.sh 17 Oct 2007 13:27:34 -0000 1.16 +++ cvs-kolab.sh 25 Oct 2007 16:13:45 -0000 1.17 @@ -1,4 +1,14 @@ #!/bin/bash +# +# $Id$ +# +# Copyright (C) 2007 by Gunnar Wrobel +# +# Authors: +# Gunnar Wrobel +# Thomas Arendsen Hein +# +# This program is free software under the GNU GPL (>=v2) KOLAB_PACKAGES=/kolab-packages KOLAB_DEV_USER=kolabdevel Index: install-kolab.sh =================================================================== RCS file: /kolabrepository/server/install-kolab.sh,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- install-kolab.sh 19 Oct 2007 16:48:34 -0000 1.12 +++ install-kolab.sh 25 Oct 2007 16:13:45 -0000 1.13 @@ -1,4 +1,15 @@ #!/bin/sh +# +# $Id$ +# +# Copyright (C) 2007 by Intevation GmbH +# Copyright (C) 2007 by Gunnar Wrobel +# +# Authors: +# Thomas Arendsen Hein +# Gunnar Wrobel +# +# This program is free software under the GNU GPL (>=v2) KOLAB_VERSION="2.2-beta2" KID="19414" From cvs at kolab.org Thu Oct 25 18:24:20 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 25 Oct 2007 18:24:20 +0200 (CEST) Subject: thomas: server install-kolab.sh,1.13,1.14 Message-ID: <20071025162420.26BFA602A24@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv12829 Modified Files: install-kolab.sh Log Message: install-kolab.sh: print usage on unknown options. Return 0 on -h (help). Index: install-kolab.sh =================================================================== RCS file: /kolabrepository/server/install-kolab.sh,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- install-kolab.sh 25 Oct 2007 16:13:45 -0000 1.13 +++ install-kolab.sh 25 Oct 2007 16:24:18 -0000 1.14 @@ -62,13 +62,13 @@ echo echo " -B (abort after generating the basic openpkg binary)" echo " -E (abort after generating the openpkg environment)" - exit 1 } while getopts hcBDSEFHi:V:p:I:u:t: ARGS; do case $ARGS in h) # Display help usage + exit 0 ;; i) # What should be installed? INSTALL="$OPTARG" @@ -110,7 +110,9 @@ FLAG_SDIST="Yes" ;; *) # Unknown Option - + echo + usage + exit 1 ;; esac done From cvs at kolab.org Fri Oct 26 15:31:31 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 26 Oct 2007 15:31:31 +0200 (CEST) Subject: thomas: server README.1st,1.64,1.65 Message-ID: <20071026133131.19EFA60C4AB@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv17559 Modified Files: README.1st Log Message: Extended disk space recommendations, moved OpenPKG docs link to post-install. Index: README.1st =================================================================== RCS file: /kolabrepository/server/README.1st,v retrieving revision 1.64 retrieving revision 1.65 diff -u -d -r1.64 -r1.65 --- README.1st 25 Oct 2007 15:58:01 -0000 1.64 +++ README.1st 26 Oct 2007 13:31:28 -0000 1.65 @@ -12,14 +12,21 @@ Quick install instructions -------------------------- -For a fresh install /kolab needs to be an empty directory with at least 2GB of -free disk space. You can use a symlink, but do _not_ use an NFS mounted drive. -If the directory does not yet exist, it will automatically be created. -Make sure that the following names are not in /etc/passwd or /etc/groups, -as openpkg will want to create them: "kolab" "kolab-r" "kolab-n" +Kolab server with Horde needs about 1GB of disk space for the initial +install. By default the directory /kolab will be used, which should be +an empty directory or a symbolic link to an empty directory. If this +directory does not yet exist, it will be automatically created. -Check http://www.openpkg.org/documentation/ for additional documentation -for the OpenPKG packaging system. +For production use it is recommended to create a separate partition for +/kolab (2GB to have some spare) and partitions for /kolab/var (at least +2GB for log files, virus filtering and caches) and /kolab/var/imapd/spool +(with enough space for your users' mails). For evaluation you could +start with the 2GB partition for /kolab (or 2GB free space on / if you +only have one big partition for your test system) and create the other +partitions when needed. Do _not_ use an NFS mounted drive! + +Make sure that the following names are not in /etc/passwd or /etc/groups, +as OpenPKG will want to create them: "kolab" "kolab-r" "kolab-n" To install the Kolab server, you need to download the files from the directory containing this file (1st.README) to some local directory. @@ -57,6 +64,9 @@ # /kolab/etc/kolab/kolab_bootstrap -b and follow the instructions. + +Check http://www.openpkg.org/documentation/ for additional documentation +about the OpenPKG packaging system. General update instructions From cvs at kolab.org Fri Oct 26 15:45:40 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 26 Oct 2007 15:45:40 +0200 (CEST) Subject: thomas: server README.1st,1.65,1.66 Message-ID: <20071026134540.A576D60C4AA@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv17814 Modified Files: README.1st Log Message: README: cdrom install example, Horde load discussion, wiki link for upgrading Index: README.1st =================================================================== RCS file: /kolabrepository/server/README.1st,v retrieving revision 1.65 retrieving revision 1.66 diff -u -d -r1.65 -r1.66 --- README.1st 26 Oct 2007 13:31:28 -0000 1.65 +++ README.1st 26 Oct 2007 13:45:37 -0000 1.66 @@ -48,12 +48,17 @@ directory, so if you want to keep this directory clean or install install packages from a read-only location (e.g. CD-ROM), you can create a new directory and pass the path to the packages to the script using -the -i option: +the -i option, e.g.: -# /path/to/packages/install-kolab.sh -H -F -i /path/to/packages +# /media/cdrom/sources/install-kolab.sh -H -F -i /media/cdrom/sources If you do not want to install the Horde groupware client and/or the -free/busy view tool, you can drop the flag "-H" and/or "-F". + +Horde might create much load on your server if there are many concurrent +users, so you can choose to not install it by dropping the flag "-H". +Installing Horde on a separate host is possible, but not discussed here. + +If you do not want to install the free/busy view tool, remove the "-F". By default, the Kolab server will now be started at boottime, so you have to bootstrap the server configuration now to prevent unconfigured @@ -135,8 +140,9 @@ Upgrade from Kolab server 2.1 or before --------------------------------------- -Instructions for upgrading from Kolab server 2.0 or 2.1 will be added -in a future version of this document. +Instructions for upgrading from Kolab server 2.0 or 2.1 will be added in +a future version of this document. Additional hints may be available in +the Kolab wiki: http://wiki.kolab.org/index.php/Kolab2_Upgrading Direct upgrade from Kolab1 is not supported. We suggest that you back up your IMAP store, install Kolab2 and manually recreate user accounts and From cvs at kolab.org Fri Oct 26 16:51:49 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 26 Oct 2007 16:51:49 +0200 (CEST) Subject: thomas: server release-notes.txt,1.131.2.10,1.131.2.11 Message-ID: <20071026145149.233DE60C4AD@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv19086 Modified Files: Tag: kolab_2_1_branch release-notes.txt Log Message: formatting updates Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.131.2.10 retrieving revision 1.131.2.11 diff -u -d -r1.131.2.10 -r1.131.2.11 --- release-notes.txt 23 Oct 2007 09:14:10 -0000 1.131.2.10 +++ release-notes.txt 26 Oct 2007 14:51:47 -0000 1.131.2.11 @@ -42,9 +42,11 @@ Show component and log level when sending debug log to stdout. - kolab/issue26 (Allow to bind to specific IPs) - kolab/issue1679 (Update template META mechanism to support service restarts) - kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) + kolab/issue26 (Allow to bind to specific IPs) + kolab/issue1679 (Update template META mechanism to support service + restarts) + kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG + installation) - kolabd-2.1.0-2007???? @@ -56,15 +58,21 @@ Disabled spamd, hourly instead of daily clamav updates. - kolab/issue26 (Allow to bind to specific IPs) - kolab/issue919 (kolab server has problems with some characters in passwords) - kolab/issue1025 (loading policy bank "MYUSERS": unknown field "mynetworks") - kolab/issue1126 (ldap_simple_bind() failed and Domain/Realm not available) - partial fix - kolab/issue1679 (Update template META mechanism to support service restarts) + kolab/issue26 (Allow to bind to specific IPs) + kolab/issue919 (kolab server has problems with some characters in + passwords) + kolab/issue1025 (loading policy bank "MYUSERS": unknown field + "mynetworks") + kolab/issue1126 (ldap_simple_bind() failed and Domain/Realm not + available) - partial fix + kolab/issue1679 (Update template META mechanism to support service + restarts) kolab/issue1693 (Automatically trigger f/b cache regeneration) kolab/issue1804 (Several files apparently missing in kolabd package) - kolab/issue1861 (imapd.conf.template: primary domain listed twice in loginrealms) - kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) + kolab/issue1861 (imapd.conf.template: primary domain listed twice in + loginrealms) + kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG + installation) - kolab-resource-handlers-2.1.0-2007???? @@ -72,28 +80,32 @@ Added missing Makefile dependencies - kolab/issue26 (Allow to bind to specific IPs) + kolab/issue26 (Allow to bind to specific IPs) kolab/issue1693 (Automatically trigger f/b cache regeneration) - kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG installation) + kolab/issue1862 (dist_conf/kolab: Use settings from OpenPKG + installation) - kolab-webadmin-2.1.0-2007???? Added missing Makefile dependencies - kolab/issue932 (Illegal values in webadmin cause LDAP errors) + kolab/issue932 (Illegal values in webadmin cause LDAP errors) kolab/issue1162 (Misplaced title field in webinterface) kolab/issue1610 (Use

    + + * horde-framework-kolab.spec: + + Added HK-GW-Kolab_issue_2144.patch + Fixes kolab/issue2144 (Calendar items of shared calendar not appearing) + https://www.intevation.de/roundup/kolab/issue2144 + 2007-09-12 Gunnar Wrobel

    * horde-framework-kolab.spec (AutoReqProv): @@ -20,7 +28,7 @@ 2007-05-30 Gunnar Wrobel

    - * horde-framework-kolab.spec: + * horde-framework-kolab.spec: Added Kolab-Kolab-IMAP-cclient.php.patch since Kolab-2.1 still has a segfaulting PHP. See Index: horde-framework-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/horde-framework-kolab.spec,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- horde-framework-kolab.spec 10 Oct 2007 09:46:37 -0000 1.24 +++ horde-framework-kolab.spec 1 Nov 2007 10:54:52 -0000 1.25 @@ -2,8 +2,8 @@ %define V_horde_name framework %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 -%define V_month 10 -%define V_day 04 +%define V_month 11 +%define V_day 01 %define V_version 3.2_ALPHA %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -30,6 +30,7 @@ Patch1: HK-GW-Fix_the_share_params.patch Patch2: HK-GW-Fix_annotation_use.patch Patch3: HK-GW-Share_caching.patch +Patch4: HK-GW-Kolab_issue_2144.patch # Build Info Prefix: %{l_prefix} @@ -54,6 +55,7 @@ %patch -p2 -P 1 %patch -p2 -P 2 %patch -p2 -P 3 + %patch -p2 -P 4 %build From cvs at kolab.org Thu Nov 1 12:05:56 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 1 Nov 2007 12:05:56 +0100 (CET) Subject: gunnar: server/horde external-horde.sh,1.2,1.3 Message-ID: <20071101110556.BEB2D600D59@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde In directory doto:/tmp/cvs-serv30939/horde Modified Files: external-horde.sh Log Message: kolab/issue2144 (Calendar items of shared calendar not appearing) Index: external-horde.sh =================================================================== RCS file: /kolabrepository/server/horde/external-horde.sh,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- external-horde.sh 15 Oct 2007 09:15:30 -0000 1.2 +++ external-horde.sh 1 Nov 2007 11:05:54 -0000 1.3 @@ -30,6 +30,7 @@ for PATCH in HK-GW-framework_3.2_ALPHA-Fix_Prefs_for_Ingo.patch \ HK-GW-framework_3.2_ALPHA-Fix_annotation_use.patch \ HK-GW-framework_3.2_ALPHA-Fix_the_share_params.patch \ + HK-GW-framework_3.2_ALPHA-Kolab_issue_2144.patch \ HK-GW-framework_3.2_ALPHA-Share_caching.patch \ HK-GW-kronolith_2.2-Fix_create_new_event.patch \ HK-GW-kronolith_2.2-Fix_share_right_editing.patch \ @@ -66,6 +67,7 @@ for PATCH in HK-GW-framework_3.2_ALPHA-Fix_Prefs_for_Ingo.patch \ HK-GW-framework_3.2_ALPHA-Fix_annotation_use.patch \ HK-GW-framework_3.2_ALPHA-Share_caching.patch \ + HK-GW-framework_3.2_ALPHA-Kolab_issue_2144.patch \ HK-GW-framework_3.2_ALPHA-Fix_the_share_params.patch; do patch -p3 < ../../../$PATCH; From cvs at kolab.org Tue Nov 6 15:19:37 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 6 Nov 2007 15:19:37 +0100 (CET) Subject: thomas: doc/www/src mirrors.html.m4,1.20,1.21 Message-ID: <20071106141937.78E1D600172@lists.intevation.de> Author: thomas Update of /kolabrepository/doc/www/src In directory doto:/tmp/cvs-serv24295 Modified Files: mirrors.html.m4 Log Message: New mirror at ftp.gwdg.de, Linjection is up again. Index: mirrors.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/mirrors.html.m4,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- mirrors.html.m4 10 May 2007 09:17:55 -0000 1.20 +++ mirrors.html.m4 6 Nov 2007 14:19:35 -0000 1.21 @@ -13,16 +13,20 @@

  • + GWDG
    + via http | + ftp + + +
  • erfrakon
    via http - From cvs at kolab.org Fri Nov 16 12:57:04 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 16 Nov 2007 12:57:04 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES messages.po, 1.26, 1.27 Message-ID: <20071116115704.C15B7600172@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES In directory doto:/tmp/cvs-serv2147/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES Modified Files: messages.po Log Message: Updated German translations: Verwalter, Domaenenverwalter. Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES/messages.po,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- messages.po 17 Oct 2007 18:27:14 -0000 1.26 +++ messages.po 16 Nov 2007 11:57:02 -0000 1.27 @@ -11,7 +11,7 @@ "Project-Id-Version: messages-2.1-new_de\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-02-02 18:19+0100\n" -"PO-Revision-Date: 2007-10-17 20:22+0200\n" +"PO-Revision-Date: 2007-11-16 12:49+0100\n" "Last-Translator: Thomas Arendsen Hein \n" "Language-Team: deutsch \n" "MIME-Version: 1.0\n" @@ -701,11 +701,11 @@ #: tpl_messages.php:128 msgid "The maintainer with DN" -msgstr "Der Maintainer mit DN" +msgstr "Der Verwalter mit DN" #: tpl_messages.php:130 msgid "Back to list of maintainers" -msgstr "Zurück zur Liste der Maintainer" +msgstr "Zurück zur Liste der Verwalter" #: tpl_messages.php:137 msgid "User:" @@ -1587,38 +1587,38 @@ #: ../../../www/admin/domainmaintainer/domainmaintainer.php.in:141 msgid "Check domains this domain maintainer should be able to maintain" msgstr "" -"Überprüfen der Domänen, die dieser Domänen-Verwalter verwalten können sollte" +"Überprüfen der Domänen, die dieser Domänenverwalter verwalten können sollte" #: ../../../www/admin/domainmaintainer/domainmaintainer.php.in:243 #: ../../../www/admin/domainmaintainer/domainmaintainer.php.in:293 msgid "Modify Domain Maintainer" -msgstr "Domänen-Verwalter verändern" +msgstr "Domänenverwalter verändern" #: ../../../www/admin/domainmaintainer/domainmaintainer.php.in:244 #: ../../../www/admin/maintainer/maintainer.php.in:246 #: ../../../www/admin/maintainer/maintainer.php.in:270 msgid "Maintainer " -msgstr "Maintainer " +msgstr "Verwalter " #: ../../../www/admin/domainmaintainer/domainmaintainer.php.in:269 msgid "Domain maintainer " -msgstr "Domänen-Verwalter " +msgstr "Domänenverwalter " #: ../../../www/admin/domainmaintainer/domainmaintainer.php.in:270 #: ../../../www/admin/domainmaintainer/domainmaintainer.php.in:274 #: ../../../www/admin/domainmaintainer/domainmaintainer.php.in:284 #: ../include/menu.php:80 ../include/menu.php:97 msgid "Create New Domain Maintainer" -msgstr "Neuen Domänen-Verwalter anlegen" +msgstr "Neuen Domänenverwalter anlegen" #: ../../../www/admin/domainmaintainer/domainmaintainer.php.in:299 msgid "Delete Domain Maintainer" -msgstr "Domänen-Verwalter löschen" +msgstr "Domänenverwalter löschen" #: ../../../www/admin/domainmaintainer/domainmaintainer.php.in:313 msgid "Error: you need administrative permissions to delete domain maintainers" msgstr "" -"Fehler: Sie benötigen Administratorrechte, um Domänen-Verwalter löschen zu " +"Fehler: Sie benötigen Administratorrechte, um Domänenverwalter löschen zu " "dürfen" #: ../../../www/admin/domainmaintainer/domainmaintainer.php.in:317 @@ -1629,32 +1629,32 @@ #: ../../../www/admin/domainmaintainer/domainmaintainer.php.in:329 msgid "Domain Maintainer Deleted" -msgstr "Domänen-Verwalter gelöscht" +msgstr "Domänenverwalter gelöscht" #: ../../../www/admin/domainmaintainer/index.php.in:59 #: ../../../www/admin/maintainer/index.php.in:59 msgid "Manage Maintainers (" -msgstr "Maintainer verwalten (" +msgstr "Verwalter verwalten (" #: ../../../www/admin/domainmaintainer/index.php.in:59 #: ../../../www/admin/maintainer/index.php.in:59 msgid " Maintainers)" -msgstr " Maintainer)" +msgstr " Verwalter)" #: ../../../www/admin/maintainer/maintainer.php.in:245 #: ../../../www/admin/maintainer/maintainer.php.in:297 msgid "Modify Maintainer" -msgstr "Maintainer verändern" +msgstr "Verwalter verändern" #: ../../../www/admin/maintainer/maintainer.php.in:271 #: ../../../www/admin/maintainer/maintainer.php.in:277 #: ../../../www/admin/maintainer/maintainer.php.in:288 ../include/menu.php:86 msgid "Create New Maintainer" -msgstr "Neuen Maintainer anlegen" +msgstr "Neuen Verwalter anlegen" #: ../../../www/admin/maintainer/maintainer.php.in:303 msgid "Delete Maintainer" -msgstr "Maintainer löschen" +msgstr "Verwalter löschen" #: ../../../www/admin/maintainer/maintainer.php.in:317 #: ../../../www/admin/user/user.php.in:813 @@ -1663,7 +1663,7 @@ #: ../../../www/admin/maintainer/maintainer.php.in:333 msgid "Maintainer Deleted" -msgstr "Maintainer gelöscht" +msgstr "Verwalter gelöscht" #: ../../../www/admin/service/index.php.in:100 #, php-format @@ -2328,27 +2328,27 @@ #: ../include/menu.php:76 ../include/menu.php:93 ../include/menu.php:101 msgid "Domain Maintainers" -msgstr "Domänen-Verwalter" +msgstr "Domänenverwalter" #: ../include/menu.php:78 ../include/menu.php:95 msgid "Manage Domain Maintainers" -msgstr "Domänen-Verwalter verwalten" +msgstr "Domänenverwalter verwalten" #: ../include/menu.php:82 ../include/menu.php:90 msgid "Maintainers" -msgstr "Maintainer" +msgstr "Verwalter" #: ../include/menu.php:84 msgid "Manage Maintainers" -msgstr "Maintainer verwalten" +msgstr "Verwalter verwalten" #: ../include/menu.php:92 msgid "Manage Maintainer" -msgstr "Maintainer verwalten" +msgstr "Verwalter verwalten" #: ../include/menu.php:103 msgid "Manage Domain Maintainer" -msgstr "Domänen-Verwalter verwalten" +msgstr "Domänenverwalter verwalten" #: ../include/menu.php:108 msgid "Manage Services" From cvs at kolab.org Fri Nov 16 12:57:04 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 16 Nov 2007 12:57:04 +0100 (CET) Subject: thomas: server release-notes.txt,1.166,1.167 Message-ID: <20071116115704.C2F43600D49@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv2147 Modified Files: release-notes.txt Log Message: Updated German translations: Verwalter, Domaenenverwalter. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.166 retrieving revision 1.167 diff -u -d -r1.166 -r1.167 --- release-notes.txt 8 Nov 2007 11:54:52 -0000 1.166 +++ release-notes.txt 16 Nov 2007 11:57:02 -0000 1.167 @@ -60,6 +60,10 @@ kolab/issue2144 (Calendar items of shared calendar not appearing) kolab/issue2134 ([Horde] Unable to send message with attachments) + - kolab-webadmin-2.1.99-20071018 + + Updated German translations: Verwalter, Domaenenverwalter. + Changes between 2.2-beta-1 and 2.2-beta-2: From cvs at kolab.org Fri Nov 16 12:57:04 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 16 Nov 2007 12:57:04 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin ChangeLog,1.59,1.60 Message-ID: <20071116115704.C4658600D4A@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin In directory doto:/tmp/cvs-serv2147/kolab-webadmin/kolab-webadmin Modified Files: ChangeLog Log Message: Updated German translations: Verwalter, Domaenenverwalter. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/ChangeLog,v retrieving revision 1.59 retrieving revision 1.60 diff -u -d -r1.59 -r1.60 --- ChangeLog 17 Oct 2007 18:27:14 -0000 1.59 +++ ChangeLog 16 Nov 2007 11:57:02 -0000 1.60 @@ -1,3 +1,8 @@ +2007-11-16 Thomas Arendsen Hein + + * php/admin/locale/de/LC_MESSAGES/messages.po: Updated German + translations: Verwalter, Domaenenverwalter. + 2007-10-17 Thomas Arendsen Hein * php/admin/templates/kolab.tpl, www/admin/service/index.php.in: From cvs at kolab.org Fri Nov 16 19:01:54 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 16 Nov 2007 19:01:54 +0100 (CET) Subject: thomas: server README.1st,1.66,1.67 Message-ID: <20071116180154.6CE2A600167@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv9178 Modified Files: README.1st Log Message: Removed obsolete/forgotten line Index: README.1st =================================================================== RCS file: /kolabrepository/server/README.1st,v retrieving revision 1.66 retrieving revision 1.67 diff -u -d -r1.66 -r1.67 --- README.1st 26 Oct 2007 13:45:37 -0000 1.66 +++ README.1st 16 Nov 2007 18:01:52 -0000 1.67 @@ -52,8 +52,6 @@ # /media/cdrom/sources/install-kolab.sh -H -F -i /media/cdrom/sources -If you do not want to install the Horde groupware client and/or the - Horde might create much load on your server if there are many concurrent users, so you can choose to not install it by dropping the flag "-H". Installing Horde on a separate host is possible, but not discussed here. From cvs at kolab.org Mon Nov 19 18:18:57 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 19 Nov 2007 18:18:57 +0100 (CET) Subject: gunnar: server/patches/horde HK-GW-framework_3.2_ALPHA-Kolab_issue_2138.patch, NONE, 1.1 HK-GW-horde_3.2_ALPHA-Deleting_categories.patch, NONE, 1.1 HK-GW-kronolith_2.2_ALPHA-Kolab_issue_2138.patch, NONE, 1.1 README_Deleting_categories.patch, NONE, 1.1 README_Kolab_issue_2138.patch, NONE, 1.1 Message-ID: <20071119171857.CF1A9600166@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde In directory doto:/tmp/cvs-serv3118 Added Files: HK-GW-framework_3.2_ALPHA-Kolab_issue_2138.patch HK-GW-horde_3.2_ALPHA-Deleting_categories.patch HK-GW-kronolith_2.2_ALPHA-Kolab_issue_2138.patch README_Deleting_categories.patch README_Kolab_issue_2138.patch Log Message: The last round of Horde patches for our next release. --- NEW FILE: HK-GW-framework_3.2_ALPHA-Kolab_issue_2138.patch --- Fix kolab issue 2138. diff -r 794fd76385d6 framework/Kolab/Kolab/IMAP.php --- a/framework/Kolab/Kolab/IMAP.php Mon Nov 19 14:52:25 2007 +0100 +++ b/framework/Kolab/Kolab/IMAP.php Mon Nov 19 14:57:56 2007 +0100 @@ -289,7 +289,11 @@ class Kolab_IMAP { $this->_object_type = $app_consts['mime_type_suffix']; $this->_mime_type = KOLAB_MIME_TYPE_PREFIX . $this->_object_type; $this->_owner = Auth::getAuth(); - $this->_folder = $this->parseFolder($share_uid); + $folder = $this->parseFolder($share_uid); + if (is_a($folder, 'PEAR_Error')) { + return $folder; + } + $this->_folder = $folder; $this->_imap = &Kolab_IMAP_Connection::singleton(Kolab::getServer('imap'), $conf['kolab']['imap']['port'], true, false); @@ -358,8 +362,9 @@ class Kolab_IMAP { return $folder[0]; } } - } - return rawurldecode($folder); + return PEAR::raiseError(sprintf(_("Default folder of type %s does not exist!"), $this->_object_type)); + } + return rawurldecode($folder); } /** @@ -371,70 +376,11 @@ class Kolab_IMAP { */ function listFolders() { - require_once 'Horde/SessionObjects.php'; - - static $folders = array(); - - if (empty($folders)) { - $session = &Horde_SessionObjects::singleton(); - $folders = &$session->query('horde_kolab_imaplist'); - } - - if (!empty($folders)) { - return $folders; - } - // Connect to the IMAP server $imap = &Kolab_IMAP_Connection::singleton(Kolab::getServer('imap'), $GLOBALS['conf']['kolab']['imap']['port']); - // Login using the current Horde credentials - $result = $imap->connect(Auth::getAuth(), - Auth::getCredential('password')); - if (is_a($result, 'PEAR_Error')) { - Horde::logMessage('Unable to authenticate with the Kolab IMAP server', __FILE__, __LINE__, PEAR_LOG_ERR); - $imap->disconnect(); - return $folders; - } - - // Obtain a list of all folders the current user has access to - $folder_list = $imap->getMailboxes(); - if (is_a($folder_list, 'PEAR_Error')) { - Horde::logMessage('Unable to obtain IMAP folder list', __FILE__, __LINE__, PEAR_LOG_ERR); - $imap->disconnect(); - return $folders; - } - - // Iterate over all the folders obtaining their groupware types - foreach ($folder_list as $folder) { - $foldertype = 'mail'; - $default = false; - - $annotation = $imap->getAnnotation(KOLAB_ANNOT_FOLDER_TYPE, - 'value.shared', - $folder); - if (!is_a($annotation, 'PEAR_Error') && !empty($annotation)) { - $type = explode('.', $annotation); - if ((!empty($type[1]) && $type[1] == 'default') || - (empty($type[1]))) { - $foldertype = $type[0]; - if (!empty($type[1]) && $type[1] == 'default') { - $default = true; - } else { - $default = false; - } - } - } - - $folders[] = array($folder, $foldertype, $default); - } - - $session = &Horde_SessionObjects::singleton(); - $session->overwrite('horde_kolab_imaplist', $folders, false); - - $imap->disconnect(); - - return $folders; + return $imap->listFolders(); } /** @@ -662,6 +608,9 @@ class Kolab_IMAP { // This assumes that both folders are owned by $this->_owner. // This needs to be checked. $new_folder = $this->parseFolder($new_folder); + if (is_a($new_folder, 'PEAR_Error')) { + return $new_folder; + } $result = $this->_imap->moveMessage($imap_uid, $new_folder); if (is_a($result, 'PEAR_Error')) { @@ -1371,6 +1320,9 @@ class Kolab_IMAP { $new_share = rawurldecode($new_share); $new_share = $this->parseFolder($new_share); + if (is_a($new_share, 'PEAR_Error')) { + return $new_share; + } $msg_no = $this->findObject($uid); if (is_a($msg_no, 'PEAR_Error')) { @@ -1713,4 +1665,83 @@ class Kolab_IMAP_Connection { return $driver; } + + /** + * Returns a list of all IMAP folders (including their groupware type) + * that the current user has acccess to. + * + * @return array An array of array($foldername, $foldertype) items (empty + * on error). + */ + function listFolders() + { + require_once 'Horde/SessionObjects.php'; + + static $folders = array(); + + if (empty($folders)) { + $session = &Horde_SessionObjects::singleton(); + $folders = &$session->query('horde_kolab_imaplist'); + } + + if (!empty($folders)) { + return $folders; + } + + // Login using the current Horde credentials + $result = $this->connect(Auth::getAuth(), + Auth::getCredential('password')); + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage('Unable to authenticate with the Kolab IMAP server', __FILE__, __LINE__, PEAR_LOG_ERR); + return $folders; + } + + // Obtain a list of all folders the current user has access to + $folder_list = $this->getMailboxes(); + if (is_a($folder_list, 'PEAR_Error')) { + Horde::logMessage('Unable to obtain IMAP folder list', __FILE__, __LINE__, PEAR_LOG_ERR); + return $folders; + } + + // Iterate over all the folders obtaining their groupware types + foreach ($folder_list as $folder) { + $foldertype = 'mail'; + $default = false; + $subtype = ''; + + $annotation = $this->getAnnotation(KOLAB_ANNOT_FOLDER_TYPE, + 'value.shared', + $folder); + if (!is_a($annotation, 'PEAR_Error') && !empty($annotation)) { + $type = explode('.', $annotation); + if (!empty($type[0])) { + $foldertype = $type[0]; + if (!empty($type[1])) { + $subtype = $type[1]; + if ($type[1] == 'default') { + $default = true; + } + } + } + } + + $folders[] = array($folder, $foldertype, $default, $subtype); + } + + $session = &Horde_SessionObjects::singleton(); + $session->overwrite('horde_kolab_imaplist', $folders, false); + + return $folders; + } + + /** + * Resets the list cache + */ + function resetListCache() + { + require_once 'Horde/SessionObjects.php'; + $session = &Horde_SessionObjects::singleton(); + $session->overwrite('horde_kolab_imaplist', false, false); + } + } diff -r 794fd76385d6 framework/Kolab/Kolab/IMAP/cclient.php --- a/framework/Kolab/Kolab/IMAP/cclient.php Mon Nov 19 14:52:25 2007 +0100 +++ b/framework/Kolab/Kolab/IMAP/cclient.php Mon Nov 19 14:57:56 2007 +0100 @@ -163,6 +163,8 @@ class Kolab_IMAP_Connection_cclient exte */ function create($folder) { + $this->resetListCache(); + $mbox = $this->_base_mbox . $folder; $result = @imap_createmailbox($this->_imap, $mbox); if (!$result) { @@ -181,6 +183,8 @@ class Kolab_IMAP_Connection_cclient exte */ function delete($folder) { + $this->resetListCache(); + $mbox = $this->_base_mbox . $folder; $result = @imap_deletemailbox($this->_imap, $mbox); if (!$result) { @@ -200,6 +204,8 @@ class Kolab_IMAP_Connection_cclient exte */ function rename($old, $new) { + $this->resetListCache(); + $result = @imap_renamemailbox($this->_imap, $this->_base_mbox . $old, $this->_base_mbox . $new); @@ -391,18 +397,20 @@ class Kolab_IMAP_Connection_cclient exte */ function getMailboxes() { + $folders = array(); + $result = @imap_list($this->_imap, $this->_base_mbox, '*'); if (!$result) { return PEAR::raiseError(sprintf(_("IMAP error. Folder: %s. Error: %s"), $this->_base_mbox, @imap_last_error())); } - - $folders = array(); + $server_len = strlen($this->_base_mbox); foreach ($result as $folder) { if (substr($folder, 0, $server_len) == $this->_base_mbox) { $folders[] = substr($folder, $server_len); } } + return $folders; } diff -r 794fd76385d6 framework/Kolab/Kolab/IMAP/pear.php --- a/framework/Kolab/Kolab/IMAP/pear.php Mon Nov 19 14:52:25 2007 +0100 +++ b/framework/Kolab/Kolab/IMAP/pear.php Mon Nov 19 14:57:56 2007 +0100 @@ -107,6 +107,7 @@ class Kolab_IMAP_Connection_pear extends */ function create($folder) { + $this->resetListCache(); return $this->_imap->createMailbox($folder); } @@ -120,6 +121,7 @@ class Kolab_IMAP_Connection_pear extends */ function delete($folder) { + $this->resetListCache(); return $this->_imap->deleteMailbox($folder); } @@ -134,6 +136,7 @@ class Kolab_IMAP_Connection_pear extends */ function rename($old, $new) { + $this->resetListCache(); return $this->_imap->renameMailbox($old, $new); } --- NEW FILE: HK-GW-horde_3.2_ALPHA-Deleting_categories.patch --- Fix deleting categories. diff -r 8ec1fe533f3c horde/templates/prefs/categorymanagement.inc --- a/horde/templates/prefs/categorymanagement.inc Mon Nov 19 14:58:02 2007 +0100 +++ b/horde/templates/prefs/categorymanagement.inc Mon Nov 19 15:00:34 2007 +0100 @@ -1,12 +1,12 @@ -" onclick="add();" /> +" onclick="addCategory();" />
  • ', offsetParent: Event.element(event), update: [['color_', 'value'], ['color_', 'background']] }); return false;"> getImageDir('horde')) ?> - + --- NEW FILE: HK-GW-kronolith_2.2_ALPHA-Kolab_issue_2138.patch --- The kronolith part of issue 2138. diff -r 7dfda4d79222 kronolith/lib/Driver/kolab.php --- a/kronolith/lib/Driver/kolab.php Wed Nov 07 17:49:30 2007 +0100 +++ b/kronolith/lib/Driver/kolab.php Wed Nov 07 18:00:52 2007 +0100 @@ -1041,7 +1041,10 @@ class Kronolith_Driver_kolab_wrapper_new return PEAR::raiseError(sprintf("Kolab::exists called for calendar %s. Currently active is %s.", $calendar_id, $this->_driver->_calendar)); } - $this->synchronize(); + $result = $this->synchronize(); + if (is_a($result, 'PEAR_Error')) { + return $result; + } if ($this->_store->objectUidExists($uid)) { return $uid; @@ -1063,7 +1066,10 @@ class Kronolith_Driver_kolab_wrapper_new */ function listEvents($startDate = null, $endDate = null, $hasAlarm = false) { - $this->synchronize(); + $result = $this->synchronize(); + if (is_a($result, 'PEAR_Error')) { + return $result; + } if (is_null($startDate)) { $startDate = &new Horde_Date(array('mday' => 1, 'month' => 1, 'year' => 0000)); @@ -1112,7 +1118,10 @@ class Kronolith_Driver_kolab_wrapper_new return $event; } - $this->synchronize(); + $result = $this->synchronize(); + if (is_a($result, 'PEAR_Error')) { + return $result; + } if (array_key_exists($eventId, $this->_events_cache)) { return $this->_events_cache[$eventId]; @@ -1158,7 +1167,10 @@ class Kronolith_Driver_kolab_wrapper_new */ function saveEvent(&$event) { - $this->synchronize(); + $result = $this->synchronize(); + if (is_a($result, 'PEAR_Error')) { + return $result; + } $uid = $event->getUID(); if ($uid == null) { @@ -1195,7 +1207,10 @@ class Kronolith_Driver_kolab_wrapper_new */ function move($eventId, $newCalendar) { - $this->synchronize(); + $result = $this->synchronize(); + if (is_a($result, 'PEAR_Error')) { + return $result; + } global $kronolith_shares; $target = &$kronolith_shares->getShare($newCalendar); @@ -1223,7 +1238,10 @@ class Kronolith_Driver_kolab_wrapper_new */ function deleteEvent($eventId) { - $this->synchronize(); + $result = $this->synchronize(); + if (is_a($result, 'PEAR_Error')) { + return $result; + } if (!$this->_store->objectUidExists($eventId)) { return PEAR::raiseError(sprintf(_("Event not found: %s"), $eventId)); --- NEW FILE: README_Deleting_categories.patch --- DESCRIPTION: Fixes kolab/issue2101 (https://www.intevation.de/roundup/kolab/issue2101) IMPACT: Categories can't be deleted without this patch. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary HISTORY Applied upstream. --- NEW FILE: README_Kolab_issue_2138.patch --- DESCRIPTION: Fixes kolab/issue2138 (https://www.intevation.de/roundup/kolab/issue2138) IMPACT: Caching of folder lists will be broken if this patch is missing. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary HISTORY Applied upstream. From cvs at kolab.org Mon Nov 19 20:31:29 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 19 Nov 2007 20:31:29 +0100 (CET) Subject: gunnar: server/horde/horde-turba attributes.php, NONE, 1.1 ChangeLog, 1.4, 1.5 horde-turba-kolab.spec, 1.16, 1.17 sources.php, 1.3, 1.4 Message-ID: <20071119193129.5BBCE600151@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-turba In directory doto:/tmp/cvs-serv5815 Modified Files: ChangeLog horde-turba-kolab.spec sources.php Added Files: attributes.php Log Message: Fixes for kolab issues 2040 and 2135. --- NEW FILE: attributes.php --- * label - The text that the user will see attached to this field. * type - One of the following: * - spacer - header * - description - html * - number - int * - intlist - text * - longtext - countedtext * - address - file * - boolean - link * - email - emailconfirm * - password - passwordconfirm * - enum - multienum * - radio - set * - date - time * - monthyear - monthdayyear * - colorpicker - sorter * - creditcard - invalid * - stringlist - addresslink (requires Horde-3.2) * required - Boolean whether this field is mandatory. * readonly - Boolean whether this field is editable. * desc - Any help text attached to the field. * params - Any other parameters that need to be passed to the field. * For a documentation of available field paramaters see * http://wiki.horde.org/Doc/Dev/FormTypes. * * * $Horde: turba/config/attributes.php.dist,v 1.55 2007/11/16 23:39:56 jan Exp $ */ /* Personal stuff. */ $attributes['name'] = array( 'label' => _("Name"), 'type' => 'text', 'required' => true, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['firstname'] = array( 'label' => _("First Name"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['lastname'] = array( 'label' => _("Last Name"), 'type' => 'text', 'required' => true, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['middlenames'] = array( 'label' => _("Middle Names"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['namePrefix'] = array( 'label' => _("Name Prefixes"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 32, 'maxlength' => 32) ); $attributes['nameSuffix'] = array( 'label' => _("Name Suffixes"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 32, 'maxlength' => 32) ); $attributes['initials'] = array( 'label' => _("Initials"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['alias'] = array( 'label' => _("Alias"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 32) ); $attributes['nickname'] = array( 'label' => _("Nickname"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 32, 'maxlength' => 32) ); $attributes['birthday'] = array( 'label' => _("Birthday"), 'type' => 'monthdayyear', 'required' => false, 'params' => array('start_year' => 1900, 'end_year' => null, 'picker' => true, 'format_in' => '%Y-%m-%d', 'format_out' => '%x') ); $attributes['anniversary'] = array( 'label' => _("Anniversary"), 'type' => 'monthdayyear', 'params' => array('start_year' => 1900, 'end_year' => null, 'picker' => true, 'format_in' => '%Y-%m-%d', 'format_out' => '%x'), 'required' => false, ); $attributes['spouse'] = array( 'label' => _("Spouse"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['children'] = array( 'label' => _("Children"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['gender'] = array( 'label' => _("Gender"), 'type' => 'enum', 'required' => false, 'params' => array(array('', _("male"), _("female"))), ); /* Locations, addresses. */ $attributes['homeAddress'] = array( 'label' => _("Home Address"), 'type' => 'address', 'required' => false, 'params' => array('rows' => 3, 'cols' => 40) ); $attributes['homeStreet'] = array( 'label' => _("Home Street Address"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['homePOBox'] = array( 'label' => _("Home Post Office Box"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 10, 'maxlength' => 10) ); $attributes['homeCity'] = array( 'label' => _("Home City"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['homeProvince'] = array( 'label' => _("Home State/Province"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['homePostalCode'] = array( 'label' => _("Home Postal Code"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 10, 'maxlength' => 10) ); $attributes['homeCountry'] = array( 'label' => _("Home Country"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['workAddress'] = array( 'label' => _("Work Address"), 'type' => 'address', 'required' => false, 'params' => array('rows' => 3, 'cols' => 40) ); $attributes['workStreet'] = array( 'label' => _("Work Street Address"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['workPOBox'] = array( 'label' => _("Work Post Office Box"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 10, 'maxlength' => 10) ); $attributes['workCity'] = array( 'label' => _("Work City"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['workProvince'] = array( 'label' => _("Work State/Province"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['workPostalCode'] = array( 'label' => _("Work Postal Code"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 10, 'maxlength' => 10) ); $attributes['workCountry'] = array( 'label' => _("Work Country"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['companyAddress'] = array( 'label' => _("Company Address"), 'type' => 'address', 'required' => false, 'params' => array('rows' => 3, 'cols' => 40) ); $attributes['timezone'] = array( 'label' => _("Time Zone"), 'type' => 'enum', 'params' => array('values' => $GLOBALS['tz'], 'prompt' => true), 'required' => false ); /* Communication. */ $attributes['email'] = array( 'label' => _("Email"), 'type' => 'email', 'required' => false, 'params' => array('allow_multi' => false, 'strip_domain' => false, 'link_compose' => true) ); $attributes['emails'] = array( 'label' => _("Emails"), 'type' => 'email', 'required' => false, 'params' => array('allow_multi' => true, 'strip_domain' => false, 'link_compose' => true) ); $attributes['homePhone'] = array( 'label' => _("Home Phone"), 'type' => 'phone', 'required' => false ); $attributes['workPhone'] = array( 'label' => _("Work Phone"), 'type' => 'phone', 'required' => false ); $attributes['cellPhone'] = array( 'label' => _("Mobile Phone"), 'type' => 'cellphone', 'required' => false ); $attributes['fax'] = array( 'label' => _("Fax"), 'type' => 'phone', 'required' => false ); $attributes['pager'] = array( 'label' => _("Pager"), 'type' => 'phone', 'required' => false ); $attributes['instantMessenger'] = array( 'label' => _("Instant Messenger"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); /* Job, company, organization. */ $attributes['title'] = array( 'label' => _("Job Title"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['role'] = array( 'label' => _("Occupation"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['businessCategory'] = array( 'label' => _("Business Category"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['profession'] = array( 'label' => _("Profession"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['manager'] = array( 'label' => _("Manager"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['assistant'] = array( 'label' => _("Assistant"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['company'] = array( 'label' => _("Company"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['department'] = array( 'label' => _("Department"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['office'] = array( 'label' => _("Office"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); /* Other */ $attributes['notes'] = array( 'label' => _("Notes"), 'type' => 'longtext', 'required' => false, 'params' => array('rows' => 3, 'cols' => 40) ); $attributes['website'] = array( 'label' => _("Website URL"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['freebusyUrl'] = array( 'label' => _("Freebusy URL"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['pgpPublicKey'] = array( 'label' => _("PGP Public Key"), 'type' => 'longtext', 'required' => false, 'params' => array('rows' => 3, 'cols' => 40) ); $attributes['smimePublicKey'] = array( 'label' => _("S/MIME Public Certificate"), 'type' => 'longtext', 'required' => false, 'params' => array('rows' => 3, 'cols' => 40) ); $attributes['language'] = array( 'label' => _("Language"), 'type' => 'text', 'required' => false, 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) ); $attributes['latitude'] = array( 'label' => _("Latitude"), 'type' => 'number', 'required' => false, ); $attributes['longitude'] = array( 'label' => _("Longitude"), 'type' => 'number', 'required' => false, ); /* This attribute uses Horde's categories and is an example how to use an enum * field. Don't forget to add a 'map' entry to config/sources.php if you want * to use this attribute. */ require_once 'Horde/Prefs/CategoryManager.php'; $cManager = new Prefs_CategoryManager(); $categories = array_merge(array(_("Unfiled")), $cManager->get()); $attributes['category'] = array( 'label' => _("Category"), 'type' => 'enum', 'params' => array('values' => $categories, 'prompt' => false), 'required' => false ); Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/horde/horde-turba/ChangeLog,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ChangeLog 20 Jul 2007 11:19:09 -0000 1.4 +++ ChangeLog 19 Nov 2007 19:31:27 -0000 1.5 @@ -1,3 +1,10 @@ +2007-11-19 Gunnar Wrobel

    + + * horde-turba-kolab.spec: + + kolab/issue2040 (Horde: resouces are not displayed in address book) + kolab/issue2135 ([horde/turba] Turba should support some more contact attributes) + 2007-07-19 Gunnar Wrobel

    * horde-passwd-kolab.spec: Update to 20070719. Fixed patching. Index: horde-turba-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-turba/horde-turba-kolab.spec,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- horde-turba-kolab.spec 2 Oct 2007 14:21:34 -0000 1.16 +++ horde-turba-kolab.spec 19 Nov 2007 19:31:27 -0000 1.17 @@ -25,6 +25,7 @@ Source0: http://ftp.horde.org/pub/%{V_horde_name}/%{V_horde_name}-h3-%{V_uver}.tar.gz Source1: conf.php Source2: sources.php +Source2: attributes.php Patch0: HK-GW-Fix_notice_on_addressbook_creation.patch Patch1: HK-GW-Fix_address_book_deletion_1.patch @@ -87,7 +88,7 @@ cd .. - %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:1} %{S:2} \ + %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:1} %{S:2} %{S:3} \ $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/config/ %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \ Index: sources.php =================================================================== RCS file: /kolabrepository/server/horde/horde-turba/sources.php,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- sources.php 2 Oct 2007 14:21:34 -0000 1.3 +++ sources.php 19 Nov 2007 19:31:27 -0000 1.4 @@ -1,6 +1,6 @@ array('fields' => array('firstname', 'lastname'), * 'format' => '%s %s', @@ -110,8 +114,14 @@ * search: A list of Turba attribute names that can be searched for this * source. * - * strict: A list of native field/attribute names that must always be - * matched exactly in a search. + * strict: A list of native field/attribute names that must + * always be matched exactly in a search. + * + * approximate: Only applies to LDAP servers. If set, should be an + * array of native field/attribute names to search + * "approximately" (for example, "Sánchez", "Sanchez", + * and "Sanchéz" will all match a search string of + * "sanchez"). * * export: If set to true, this source will appear on the Export menu, * allowing users to export the contacts to a CSV (etc.) file. @@ -120,20 +130,485 @@ * menu item, and empty searches against the source will return * all contacts. * - * use_shares: If this is present and true, Turba_Share functionality will + * use_shares: If this is present and true, Horde_Share functionality will * be enabled for this source - allowing users to share their * personal address books as well as to create new ones. Since * Turba only supports having one backend configured for * creating new shares, use the 'shares' configuration option to * specify which backend will be used for creating new shares. - * All permission checking will be done against Turba_Share, but + * All permission checking will be done against Horde_Share, but * note that any 'extended' permissions (such as max_contacts) * will still be enforced. Also note that the backend driver * must have support for using this. Currently SQL and IMSP. * + * list_name_field: If this is present and non-empty, it will be taken as the + * name of the turba field to store contact list names in. + * This is required when using a composite field as the 'name' + * field. * Here are some example configurations: */ +/** + * A local address book in an LDAP directory. This implements a public + * (shared) address book. + * + * To store distribution lists in the LDAP directory, you'll need to include + * horde/scripts/ldap/horde.schema in your LDAP configuration. + * + * To store freebusy information in the LDAP directory, you'll need to include + * turba/scripts/ldap/rfc2739.schema in your LDAP configuration. + */ +// $cfgSources['localldap'] = array( +// 'title' => _("Shared Directory"), +// 'type' => 'ldap', +// 'params' => array( +// 'server' => 'ldap.example.com', +// 'port' => 389, +// 'tls' => false, +// 'root' => 'dc=example,dc=com', +// 'bind_dn' => 'cn=admin,ou=users,dc=example,dc=com', +// 'bind_password' => '********', +// 'sizelimit' => 200, +// 'dn' => array('cn'), +// 'objectclass' => array('top', +// 'person', +// 'organizationalPerson', +// 'inetOrgPerson'), +// 'scope' => 'one', +// 'charset' => 'iso-8859-1', +// // Consult the LDAP schema to verify that all required attributes for +// // an entry are set and add them if needed. +// 'checkrequired' => false, +// // Value used to fill in missing required attributes. +// 'checkrequired_string' => ' ', +// // Check LDAP schema for valid syntax. If this is false an address +// // field is assumed to have postalAddress syntax; otherwise the schema +// // is consulted for the syntax to use. +// 'checksyntax' => false, +// 'version' => 3 +// ), +// 'map' => array( +// '__key' => 'dn', +// '__uid' => 'uid', +// +// // From horde.schema: +// // '__type' => 'turbaType', +// // '__members' => 'turbaMembers' +// +// 'name' => 'cn', +// 'email' => 'mail', +// 'homePhone' => 'homephone', +// 'workPhone' => 'telephonenumber', +// 'cellPhone' => 'mobiletelephonenumber', +// 'homeAddress' => 'homepostaladdress', +// +// // From rfc2739.schema: +// // 'freebusyUrl' => 'calFBURL', +// ), +// 'search' => array( +// 'name', +// 'email', +// 'homePhone', +// 'workPhone', +// 'cellPhone', +// 'homeAddress' +// ), +// 'strict' => array( +// 'dn', +// ), +// 'approximate' => array( +// 'cn', +// ), +// 'export' => true, +// 'browse' => true, +// ); + +/** + * A personal LDAP address book. This assumes that the login is + * @domain.com and that the users are stored on the same LDAP + * server. Thus it is possible to bind with the username and password from the + * user. For more info; please refer to the docs/LDAP file in the Turba + * distribution. + * + * To store distribution lists in the LDAP directory, you'll need to include + * horde/scripts/ldap/horde.schema in your LDAP configuration. + * + * To store freebusy information in the LDAP directory, you'll need to include + * turba/scripts/ldap/rfc2739.schema in your LDAP configuration. + */ +/* First we need to get the uid. */ +// $_ldap_uid = Auth::getBareAuth(); +// $_ldap_basedn = 'dc=example,dc=com'; +// $cfgSources['personal_ldap'] = array( +// 'title' => _("My Address Book"), +// 'type' => 'ldap', +// 'params' => array( +// 'server' => 'localhost', +// 'tls' => false, +// 'root' => 'ou=' . $_ldap_uid . ',ou=personal_addressbook,' . $_ldap_basedn, +// 'bind_dn' => 'uid=' . $_ldap_uid . ',ou=People,' . $_ldap_basedn, +// 'bind_password' => Auth::getCredential('password'), +// 'dn' => array('cn', 'uid'), +// 'objectclass' => array('top', +// 'person', +// // 'turbaContact', +// 'inetOrgPerson', +// // 'calEntry', +// 'organizationalPerson'), +// 'scope' => 'one', +// 'charset' => 'utf-8', +// 'version' => 3 +// ), +// 'map' => array( +// '__key' => 'dn', +// '__uid' => 'uid', +// +// // From horde.schema: +// // '__type' => 'turbaType', +// // '__members' => 'turbaMembers' +// +// 'name' => 'cn', +// 'email' => 'mail', +// 'lastname' => 'sn', +// 'title' => 'title', +// 'company' => 'organizationname', +// 'businessCategory' => 'businesscategory', +// 'workAddress' => 'postaladdress', +// 'workPostalCode' => 'postalcode', +// 'workPhone' => 'telephonenumber', +// 'fax' => 'facsimiletelephonenumber', +// 'homeAddress' => 'homepostaladdress', +// 'homePhone' => 'homephone', +// 'cellPhone' => 'mobile', +// 'notes' => 'description', +// +// // Evolution interopt attributes: (those that do not require the +// // evolution.schema) +// 'office' => 'roomNumber', +// 'department' => 'ou', +// 'nickname' => 'displayName', +// 'website' => 'labeledURI', +// +// // These are not stored on the LDAP server. +// 'pgpPublicKey' => 'object_pgppublickey', +// 'smimePublicKey' => 'object_smimepublickey', +// +// // From rfc2739.schema: +// // 'freebusyUrl' => 'calFBURL', +// ), +// 'search' => array( +// 'name', +// 'email', +// 'businessCategory', +// 'title', +// 'homePhone', +// 'workPhone', +// 'cellPhone', +// 'homeAddress' +// ), +// 'strict' => array( +// 'dn', +// ), +// 'approximate' => array( +// 'cn', +// ), +// 'export' => true, +// 'browse' => true, +// ); + +/** + * Public netcenter and verisign LDAP directories. + */ +// $cfgSources['netcenter'] = array( +// 'title' => _("Netcenter Member Directory"), +// 'type' => 'ldap', +// 'params' => array( +// 'server' => 'memberdir.netscape.com', +// 'port' => 389, +// 'tls' => false, +// 'root' => 'ou=member_directory,o=netcenter.com', +// 'dn' => array('cn'), +// 'objectclass' => 'person', +// 'filter' => '', +// 'scope' => 'sub', +// 'charset' => 'iso-8859-1' +// ), +// 'map' => array( +// '__key' => 'dn', +// 'name' => 'cn', +// 'email' => 'mail', +// 'alias' => 'givenname' +// ), +// 'search' => array( +// 'name', +// 'email', +// 'alias' +// ), +// 'strict' => array( +// 'dn' +// ), +// 'approximate' => array( +// 'cn', +// ), +// 'export' => false, +// 'browse' => false, +// ); +// +// $cfgSources['verisign'] = array( +// 'title' => _("Verisign Directory"), +// 'type' => 'ldap', +// 'params' => array( +// 'server' => 'directory.verisign.com', +// 'port' => 389, +// 'tls' => false, +// 'root' => '', +// 'scope' => 'sub', +// 'charset' => 'iso-8859-1' +// ), +// 'map' => array( +// '__key' => 'dn', +// 'name' => 'cn', +// 'email' => 'mail' +// ), +// 'search' => array( +// 'name', +// 'email' +// ), +// 'strict' => array( +// 'dn' +// ), +// 'approximate' => array( +// 'cn', +// ), +// 'export' => false, +// 'browse' => false, +// ); + +/** + * A preferences-based address book. This will always be private. You can add + * any attributes you like to the map and it will just work; you can also + * create multiple prefs-based address books by changing the 'name' parameter. + * This is best for address books that are expected to remain small; it's not + * the most efficient, but it can't be beat for getting up and running + * quickly, especially if you already have Horde preferences working. Note + * that it is not searchable, though - searches will simply return the whole + * address book. + */ +// $cfgSources['prefs'] = array( +// 'title' => _("Private Address Book"), +// 'type' => 'prefs', +// 'params' => array( +// 'name' => 'prefs', +// 'charset' => NLS::getCharset() +// ), +// 'map' => array( +// '__key' => 'id', +// '__type' => '_type', +// '__members' => '_members', +// '__uid' => 'uid', +// 'name' => 'name', +// 'email' => 'mail', +// 'alias' => 'alias' +// ), +// 'search' => array( +// 'name', +// 'email', +// 'alias' +// ), +// 'strict' => array( +// 'id', +// '_type', +// ), +// 'export' => true, +// 'browse' => true, +// ); + +/** + * This source creates an address book for each group the current user is a + * member in. The address book will always be read only, and the group members + * must have an email address entered in their default identity. No email + * address will result in that member not being included in the address book. + */ +//$grpSource = array( +// 'title' => _("Group"), +// 'type' => 'group', +// 'params' => array( +// 'name' => '' +// ), +// 'map' => array( +// '__key' => 'email', +// 'name' => 'name', +// 'email' => 'email' +// ), +// 'search' => array( +// 'name', +// 'email' +// ), +// 'export' => true, +// 'browse' => true, +//); + +//require_once 'Horde/Group.php'; +//$_group_driver = &Group::singleton(); +//$_group_list = $_group_driver->getGroupMemberships(Auth::getAuth()); +//foreach ($_group_list as $_group_id => $_group_name) { +// $cfgSources['group_' . $_group_id] = $grpSource; +// $cfgSources['group_' . $_group_id]['params'] = array('gid' => $_group_id); +// $cfgSources['group_' . $_group_id]['title'] = $_group_name; +//} + +/** + * IMSP based address book. + * + * Communicates with an IMSP backend server. + * + * Notes: + * You should configure the user's "main" address book here. The name of the + * address book is set in the 'name' element of the params array. It should + * be configured to be the same as the IMSP server username. Any other + * address books the user has access to will automatically be configured at + * runtime. + * + * In the params array, accepted values for auth_method are 'cram_md5', + * 'imtest', and 'plaintext' - these must match a IMSP_Auth_ driver. If you + * are using the imtest driver for Cyrus, please read the + * framework/Net_IMSP/Auth/imtest.php file for more configuration information. + * + * Groups in other IMSP-aware applications are just entries with multiple + * email addresses in the email field and a 'group' field set to flag the + * entry as a group. (The Cyrusoft applications, Mulberry and Silkymail both + * use a field named 'group' set to equal 'group' to signify this). A + * Turba_Object_Group is basically a List of existing Turba_Objects. The IMSP + * driver will map between these two structures when reading and writing + * groups. + * The only caveat is that IMSP groups that contain email addresses which do + * not have a cooresponding contact entry will be ignored. The group_id_field + * should be set to the IMSP field that flags the entry as a 'group' entry and + * the group_id_value should be set to the value given to that field. + * + * By default, the username and password that were used to login to Horde is + * used to login to the IMSP server. If these credentials are different, + * there is a user preference in Horde to allow another username / password to + * be entered. The alternate credentials are always used if present. + * + * In the map array, since IMSP uses the 'name' attribute as a key, this is + * what __key is mapped to ... and a dynamic field 'fullname' is added and + * mapped to the horde 'name' field. This is populated with the IMSP 'name' + * field when the object is read from the server. + * + * If you wish to keep track of ownership of individual contacts, set + * 'contact_ownership' = true. Note that entries created using other clients + * will not be created this way and will therefore have no 'owner'. Set + * 'contact_ownership' = false and the __owner field will be automatically + * populated with the current username. + * + * To integrate with Horde_Share (requires Horde 3.2 or better) set use_shares + * to true, and uncomment the IMSP Horde_Share hooks in horde/config/hooks.php. + */ +// Check that IMSP is configured in Horde but fall through if there is no +// configuration at all - in case we don't have at least a 3.0.6 Horde +// install. (In that case, be sure to change the params array below to suit +// your needs. +if (!empty($GLOBALS['conf']['imsp']['enabled']) || + !isset($GLOBALS['conf']['imsp']['enabled'])) { + // First, get the user name to login to IMSP server with. + $_imsp_auth_user = $GLOBALS['prefs']->getValue('imsp_auth_user'); + $_imsp_auth_pass = $GLOBALS['prefs']->getValue('imsp_auth_pass'); + if (!strlen($_imsp_auth_user)) { + $_imsp_auth_user = Auth::getBareAuth(); + $_imsp_auth_pass = Auth::getCredential('password'); + } + $cfgSources['imsp'] = array( + 'title' => _("IMSP"), + 'type' => 'imsp', + 'params' => array( + 'server' => $GLOBALS['conf']['imsp']['server'], + 'port' => $GLOBALS['conf']['imsp']['port'], + 'auth_method' => $GLOBALS['conf']['imsp']['auth_method'], + // socket, command, and auth_mechanism are for imtest driver. + 'socket' => isset($GLOBALS['conf']['imsp']['socket']) ? + $GLOBALS['conf']['imsp']['socket'] . $_imsp_auth_user . '.sck' : + '', + 'command' => isset($GLOBALS['conf']['imsp']['command']) ? + $GLOBALS['conf']['imsp']['command'] : '' , + 'auth_mechanism' => isset($GLOBALS['conf']['imsp']['auth_mechanism']) ? + $GLOBALS['conf']['imsp']['auth_mechanism'] : '', + 'username' => $_imsp_auth_user, + 'password' => $_imsp_auth_pass, + 'name' => $_imsp_auth_user, + 'group_id_field' => 'group', + 'group_id_value' => 'group', + 'contact_ownership' => false, + // Dynamically generated acl rights for current user. + 'my_rights' => '', + ), + 'map' => array( + '__key' => 'name', + '__type' => '__type', + '__members' => '__members', + '__owner' => '__owner', + '__uid' => '__uid', + 'email' => 'email', + 'alias' => 'alias', + 'company' => 'company', + 'notes' => 'notes', + 'workPhone' => 'phone-work', + 'fax' => 'fax', + 'homePhone' => 'phone-home', + 'cellPhone' => 'cellphone', + 'freebusyUrl' => 'freebusyUrl' + ), + 'search' => array( + 'name', + 'email', + 'alias', + 'company', + 'homePhone' + ), + 'strict' => array(), + 'export' => true, + 'browse' => true, + 'use_shares' => false, + ); + + /** + * Get any other address books this user might be privy to. + * The values for attributes such as 'export' and 'browse' for books + * that are added below will be the same as the values set in the default + * book above. Any entries defined explicitly in cfgSources[] + * will override any entries gathered dynamically below. + */ + if (empty($cfgSources['imsp']['use_shares'])) { + require_once 'Net/IMSP/Utils.php'; + $result = Net_IMSP_Utils::getAllBooks($cfgSources['imsp']); + + if (!is_a($result, 'PEAR_Error')) { + $resultCount = count($result); + for ($i = 0; $i < $resultCount; $i++) { + // Make sure we didn't define this source explicitly, + // but set the acls from the server regardless. + $dup = false; + foreach ($cfgSources as $key => $thisSource) { + if (($thisSource['type'] == 'imsp') && + ($thisSource['params']['name'] == $result[$i]['params']['name'])) { + + $dup = true; + $acl = $result[$i]['params']['my_rights']; + $cfgSources[$key]['params']['my_rights'] = $acl; + break; + } + } + if (!$dup) { + $cfgSources[$result[$i]['params']['name']] = $result[$i]; + } + } + } else { + $notification->push($result); + } + } +} +/* End IMSP sources. */ + /* Begin Kolab sources. */ if (!empty($GLOBALS['conf']['kolab']['enabled'])) { @@ -142,9 +617,9 @@ require_once 'Horde/Kolab.php'; if (!is_callable('Kolab', 'getServer')) { - $server = $GLOBALS['conf']['kolab']['ldap']['server']; + $_kolab_server = $GLOBALS['conf']['kolab']['ldap']['server']; } else { - $server = Kolab::getServer('ldap'); + $_kolab_server = Kolab::getServer('ldap'); } /* A global address book for a Kolab Server. This is typically a @@ -155,7 +630,7 @@ 'title' => _("Global Address Book"), 'type' => 'ldap', 'params' => array( - 'server' => $server, + 'server' => $_kolab_server, 'port' => $GLOBALS['conf']['kolab']['ldap']['port'], 'tls' => false, 'root' => $GLOBALS['conf']['kolab']['ldap']['basedn'], @@ -164,12 +639,11 @@ 'objectclass' => array( 'inetOrgPerson' ), - 'scope' => 'one', + 'scope' => 'sub', 'charset' => 'utf-8', 'version' => 3, 'bind_dn' => '', 'bind_password' => '', - 'read_only' => true, ), 'map' => array( '__key' => 'dn', @@ -231,19 +705,24 @@ ), 'map' => array( '__key' => 'uid', - 'name' => 'full-name', + '__uid' => 'uid', + /* Personal */ + 'name' => array('fields' => array('firstname', 'middlenames', 'lastname'), + 'format' => '%s %s %s', + 'attribute' => 'full-name'), 'firstname' => 'given-name', 'lastname' => 'last-name', - 'title' => 'job-title', - 'company' => 'organization', - 'notes' => 'body', - 'website' => 'web-page', - 'nickname' => 'nick-name', - 'emails' => 'emails', - 'homePhone' => 'phone-home1', - 'workPhone' => 'phone-business1', - 'cellPhone' => 'phone-mobile', - 'fax' => 'phone-businessfax', + 'middlenames' => 'middle-names', + 'namePrefix' => 'prefix', + 'nameSuffix' => 'suffix', + 'initials' => 'initials', + 'alias' => 'nick-name', + 'gender' => 'gender', + 'birthday' => 'birthday', + 'spouse' => 'spouse-name', + 'anniversary' => 'anniversary', + 'children' => 'children', + /* Location */ 'workStreet' => 'addr-business-street', 'workCity' => 'addr-business-locality', 'workProvince' => 'addr-business-region', @@ -254,19 +733,62 @@ 'homeProvince' => 'addr-home-region', 'homePostalCode' => 'addr-home-postal-code', 'homeCountry' => 'addr-home-country', + /* Communications */ + 'emails' => 'emails', + 'homePhone' => 'phone-home1', + 'workPhone' => 'phone-business1', + 'cellPhone' => 'phone-mobile', + 'fax' => 'phone-businessfax', + 'instantMessenger' => 'im-address', + /* Organization */ + 'title' => 'job-title', + 'role' => 'profession', + 'company' => 'organization', + 'department' => 'department', + 'office' => 'office-location', + 'manager' => 'manager-name', + 'assistant' => 'assistant', + /* Other */ + 'category' => 'categories', + 'notes' => 'body', + 'website' => 'web-page', + 'freebusyUrl' => 'free-busy-url', + 'language' => 'language', + 'latitude' => 'latitude', + 'longitude' => 'longitude', + // MISSING: picture, sensitivity + ), + 'tabs' => array( + _("Personal") => array('name', 'firstname', 'lastname', 'middlenames', + 'namePrefix', 'nameSuffix', 'initials', 'alias', + 'gender', 'birthday', 'spouse', 'anniversary', + 'children'), + _("Location") => array('homeStreet', 'homeCity', 'homeProvince', + 'homePostalCode', 'homeCountry', 'workStreet', + 'workCity', 'workProvince', 'workPostalCode', + 'workCountry'), + _("Communications") => array('emails', 'homePhone', 'workPhone', + 'cellPhone', 'fax', 'instantMessenger'), + _("Organization") => array('title', 'role', 'company', 'department', + 'office', 'manager', 'assistant'), + _("Other") => array('category', 'notes', 'website', 'freebusyUrl', + 'language', 'latitude', 'longitude'), ), 'search' => array( - 'name', + /* Personal */ 'firstname', 'lastname', - 'emails', - 'title', - 'company', - 'notes', - 'homePhone', - 'workPhone', - 'cellPhone', - 'fax', + 'middlenames', + 'namePrefix', + 'nameSuffix', + 'initials', + 'alias', + 'gender', + 'birthday', + 'spouse', + 'anniversary', + 'children', + /* Location */ 'workStreet', 'workCity', 'workProvince', @@ -277,8 +799,26 @@ 'homeProvince', 'homePostalCode', 'homeCountry', + /* Communications */ + 'emails', + 'homePhone', + 'workPhone', + 'cellPhone', + 'fax', + 'instantMessenger', + /* Organization */ + 'title', + 'role', + 'company', + 'department', + 'office', + 'manager', + 'assistant', + /* Other */ + 'category', + 'notes', 'website', - 'nickname' + 'language', ), 'strict' => array( 'uid', From cvs at kolab.org Mon Nov 19 20:35:46 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 19 Nov 2007 20:35:46 +0100 (CET) Subject: gunnar: server/horde/horde HK-GW-Deleting_categories.patch, NONE, 1.1 ChangeLog, 1.3, 1.4 horde-kolab.spec, 1.20, 1.21 Message-ID: <20071119193546.674DF600151@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde In directory doto:/tmp/cvs-serv5954 Modified Files: ChangeLog horde-kolab.spec Added Files: HK-GW-Deleting_categories.patch Log Message: kolab/issue2101 --- NEW FILE: HK-GW-Deleting_categories.patch --- Fix deleting categories. diff -r 8ec1fe533f3c horde/templates/prefs/categorymanagement.inc --- a/horde/templates/prefs/categorymanagement.inc Mon Nov 19 14:58:02 2007 +0100 +++ b/horde/templates/prefs/categorymanagement.inc Mon Nov 19 15:00:34 2007 +0100 @@ -1,12 +1,12 @@ -" onclick="add();" /> +" onclick="addCategory();" />

    ', offsetParent: Event.element(event), update: [['color_', 'value'], ['color_', 'background']] }); return false;"> getImageDir('horde')) ?> - + Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/horde/horde/ChangeLog,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ChangeLog 20 Jul 2007 11:19:08 -0000 1.3 +++ ChangeLog 19 Nov 2007 19:35:44 -0000 1.4 @@ -1,3 +1,9 @@ +2007-11-19 Gunnar Wrobel

    + + * horde-kolab.spec: + + kolab/issue2101 ([horde] can’t delete categories.) + 2007-07-19 Gunnar Wrobel

    * horde-kolab.spec: Update to 20070719 Index: horde-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde/horde-kolab.spec,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- horde-kolab.spec 7 Nov 2007 10:37:53 -0000 1.20 +++ horde-kolab.spec 19 Nov 2007 19:35:44 -0000 1.21 @@ -3,7 +3,7 @@ %define V_package %{V_horde_name}-kolab %define V_year 2007 %define V_month 11 -%define V_day 01 +%define V_day 19 %define V_version 3.2_alpha %define V_uver 3.2-alpha %define V_date %{V_year}-%{V_month}-%{V_day} @@ -28,6 +28,9 @@ Source3: conf.php Source4: registry.php +# List of Patches +Patch0: HK-GW-Deleting_categories.patch + # Build Info Prefix: %{l_prefix} BuildRoot: %{l_buildroot} @@ -63,6 +66,10 @@ %prep %setup -c -q -n %{V_horde_name}-%{V_uver} + + cd %{V_horde_name}-%{V_uver} + %patch -p2 -P 0 + cd .. %build From cvs at kolab.org Mon Nov 19 20:41:03 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 19 Nov 2007 20:41:03 +0100 (CET) Subject: gunnar: server/horde/horde-framework HK-GW-Kolab_issue_2138.patch, NONE, 1.1 ChangeLog, 1.8, 1.9 horde-framework-kolab.spec, 1.26, 1.27 Message-ID: <20071119194103.82F5D600151@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-framework In directory doto:/tmp/cvs-serv6074/horde-framework Modified Files: ChangeLog horde-framework-kolab.spec Added Files: HK-GW-Kolab_issue_2138.patch Log Message: kolab/issue2138 --- NEW FILE: HK-GW-Kolab_issue_2138.patch --- Fix kolab issue 2138. diff -r 794fd76385d6 framework/Kolab/Kolab/IMAP.php --- a/framework/Kolab/Kolab/IMAP.php Mon Nov 19 14:52:25 2007 +0100 +++ b/framework/Kolab/Kolab/IMAP.php Mon Nov 19 14:57:56 2007 +0100 @@ -289,7 +289,11 @@ class Kolab_IMAP { $this->_object_type = $app_consts['mime_type_suffix']; $this->_mime_type = KOLAB_MIME_TYPE_PREFIX . $this->_object_type; $this->_owner = Auth::getAuth(); - $this->_folder = $this->parseFolder($share_uid); + $folder = $this->parseFolder($share_uid); + if (is_a($folder, 'PEAR_Error')) { + return $folder; + } + $this->_folder = $folder; $this->_imap = &Kolab_IMAP_Connection::singleton(Kolab::getServer('imap'), $conf['kolab']['imap']['port'], true, false); @@ -358,8 +362,9 @@ class Kolab_IMAP { return $folder[0]; } } - } - return rawurldecode($folder); + return PEAR::raiseError(sprintf(_("Default folder of type %s does not exist!"), $this->_object_type)); + } + return rawurldecode($folder); } /** @@ -371,70 +376,11 @@ class Kolab_IMAP { */ function listFolders() { - require_once 'Horde/SessionObjects.php'; - - static $folders = array(); - - if (empty($folders)) { - $session = &Horde_SessionObjects::singleton(); - $folders = &$session->query('horde_kolab_imaplist'); - } - - if (!empty($folders)) { - return $folders; - } - // Connect to the IMAP server $imap = &Kolab_IMAP_Connection::singleton(Kolab::getServer('imap'), $GLOBALS['conf']['kolab']['imap']['port']); - // Login using the current Horde credentials - $result = $imap->connect(Auth::getAuth(), - Auth::getCredential('password')); - if (is_a($result, 'PEAR_Error')) { - Horde::logMessage('Unable to authenticate with the Kolab IMAP server', __FILE__, __LINE__, PEAR_LOG_ERR); - $imap->disconnect(); - return $folders; - } - - // Obtain a list of all folders the current user has access to - $folder_list = $imap->getMailboxes(); - if (is_a($folder_list, 'PEAR_Error')) { - Horde::logMessage('Unable to obtain IMAP folder list', __FILE__, __LINE__, PEAR_LOG_ERR); - $imap->disconnect(); - return $folders; - } - - // Iterate over all the folders obtaining their groupware types - foreach ($folder_list as $folder) { - $foldertype = 'mail'; - $default = false; - - $annotation = $imap->getAnnotation(KOLAB_ANNOT_FOLDER_TYPE, - 'value.shared', - $folder); - if (!is_a($annotation, 'PEAR_Error') && !empty($annotation)) { - $type = explode('.', $annotation); - if ((!empty($type[1]) && $type[1] == 'default') || - (empty($type[1]))) { - $foldertype = $type[0]; - if (!empty($type[1]) && $type[1] == 'default') { - $default = true; - } else { - $default = false; - } - } - } - - $folders[] = array($folder, $foldertype, $default); - } - - $session = &Horde_SessionObjects::singleton(); - $session->overwrite('horde_kolab_imaplist', $folders, false); - - $imap->disconnect(); - - return $folders; + return $imap->listFolders(); } /** @@ -662,6 +608,9 @@ class Kolab_IMAP { // This assumes that both folders are owned by $this->_owner. // This needs to be checked. $new_folder = $this->parseFolder($new_folder); + if (is_a($new_folder, 'PEAR_Error')) { + return $new_folder; + } $result = $this->_imap->moveMessage($imap_uid, $new_folder); if (is_a($result, 'PEAR_Error')) { @@ -1371,6 +1320,9 @@ class Kolab_IMAP { $new_share = rawurldecode($new_share); $new_share = $this->parseFolder($new_share); + if (is_a($new_share, 'PEAR_Error')) { + return $new_share; + } $msg_no = $this->findObject($uid); if (is_a($msg_no, 'PEAR_Error')) { @@ -1713,4 +1665,83 @@ class Kolab_IMAP_Connection { return $driver; } + + /** + * Returns a list of all IMAP folders (including their groupware type) + * that the current user has acccess to. + * + * @return array An array of array($foldername, $foldertype) items (empty + * on error). + */ + function listFolders() + { + require_once 'Horde/SessionObjects.php'; + + static $folders = array(); + + if (empty($folders)) { + $session = &Horde_SessionObjects::singleton(); + $folders = &$session->query('horde_kolab_imaplist'); + } + + if (!empty($folders)) { + return $folders; + } + + // Login using the current Horde credentials + $result = $this->connect(Auth::getAuth(), + Auth::getCredential('password')); + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage('Unable to authenticate with the Kolab IMAP server', __FILE__, __LINE__, PEAR_LOG_ERR); + return $folders; + } + + // Obtain a list of all folders the current user has access to + $folder_list = $this->getMailboxes(); + if (is_a($folder_list, 'PEAR_Error')) { + Horde::logMessage('Unable to obtain IMAP folder list', __FILE__, __LINE__, PEAR_LOG_ERR); + return $folders; + } + + // Iterate over all the folders obtaining their groupware types + foreach ($folder_list as $folder) { + $foldertype = 'mail'; + $default = false; + $subtype = ''; + + $annotation = $this->getAnnotation(KOLAB_ANNOT_FOLDER_TYPE, + 'value.shared', + $folder); + if (!is_a($annotation, 'PEAR_Error') && !empty($annotation)) { + $type = explode('.', $annotation); + if (!empty($type[0])) { + $foldertype = $type[0]; + if (!empty($type[1])) { + $subtype = $type[1]; + if ($type[1] == 'default') { + $default = true; + } + } + } + } + + $folders[] = array($folder, $foldertype, $default, $subtype); + } + + $session = &Horde_SessionObjects::singleton(); + $session->overwrite('horde_kolab_imaplist', $folders, false); + + return $folders; + } + + /** + * Resets the list cache + */ + function resetListCache() + { + require_once 'Horde/SessionObjects.php'; + $session = &Horde_SessionObjects::singleton(); + $session->overwrite('horde_kolab_imaplist', false, false); + } + } diff -r 794fd76385d6 framework/Kolab/Kolab/IMAP/cclient.php --- a/framework/Kolab/Kolab/IMAP/cclient.php Mon Nov 19 14:52:25 2007 +0100 +++ b/framework/Kolab/Kolab/IMAP/cclient.php Mon Nov 19 14:57:56 2007 +0100 @@ -163,6 +163,8 @@ class Kolab_IMAP_Connection_cclient exte */ function create($folder) { + $this->resetListCache(); + $mbox = $this->_base_mbox . $folder; $result = @imap_createmailbox($this->_imap, $mbox); if (!$result) { @@ -181,6 +183,8 @@ class Kolab_IMAP_Connection_cclient exte */ function delete($folder) { + $this->resetListCache(); + $mbox = $this->_base_mbox . $folder; $result = @imap_deletemailbox($this->_imap, $mbox); if (!$result) { @@ -200,6 +204,8 @@ class Kolab_IMAP_Connection_cclient exte */ function rename($old, $new) { + $this->resetListCache(); + $result = @imap_renamemailbox($this->_imap, $this->_base_mbox . $old, $this->_base_mbox . $new); @@ -391,18 +397,20 @@ class Kolab_IMAP_Connection_cclient exte */ function getMailboxes() { + $folders = array(); + $result = @imap_list($this->_imap, $this->_base_mbox, '*'); if (!$result) { return PEAR::raiseError(sprintf(_("IMAP error. Folder: %s. Error: %s"), $this->_base_mbox, @imap_last_error())); } - - $folders = array(); + $server_len = strlen($this->_base_mbox); foreach ($result as $folder) { if (substr($folder, 0, $server_len) == $this->_base_mbox) { $folders[] = substr($folder, $server_len); } } + return $folders; } diff -r 794fd76385d6 framework/Kolab/Kolab/IMAP/pear.php --- a/framework/Kolab/Kolab/IMAP/pear.php Mon Nov 19 14:52:25 2007 +0100 +++ b/framework/Kolab/Kolab/IMAP/pear.php Mon Nov 19 14:57:56 2007 +0100 @@ -107,6 +107,7 @@ class Kolab_IMAP_Connection_pear extends */ function create($folder) { + $this->resetListCache(); return $this->_imap->createMailbox($folder); } @@ -120,6 +121,7 @@ class Kolab_IMAP_Connection_pear extends */ function delete($folder) { + $this->resetListCache(); return $this->_imap->deleteMailbox($folder); } @@ -134,6 +136,7 @@ class Kolab_IMAP_Connection_pear extends */ function rename($old, $new) { + $this->resetListCache(); return $this->_imap->renameMailbox($old, $new); } Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/ChangeLog,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- ChangeLog 8 Nov 2007 11:54:52 -0000 1.8 +++ ChangeLog 19 Nov 2007 19:41:01 -0000 1.9 @@ -1,3 +1,9 @@ +2007-11-19 Gunnar Wrobel

    + + * horde-framework-kolab.spec: + + kolab/issue2138 (Horde creates events in main inbox) + 2007-11-08 Gunnar Wrobel

    * horde-framework-kolab.spec: Index: horde-framework-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/horde-framework-kolab.spec,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- horde-framework-kolab.spec 8 Nov 2007 11:54:52 -0000 1.26 +++ horde-framework-kolab.spec 19 Nov 2007 19:41:01 -0000 1.27 @@ -3,7 +3,7 @@ %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 %define V_month 11 -%define V_day 01 +%define V_day 19 %define V_version 3.2_ALPHA %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -31,6 +31,7 @@ Patch2: HK-GW-Fix_annotation_use.patch Patch3: HK-GW-Share_caching.patch Patch4: HK-GW-Kolab_issue_2144.patch +Patch5: HK-GW-Kolab_issue_2138.patch # Build Info Prefix: %{l_prefix} @@ -57,6 +58,7 @@ %patch -p2 -P 2 %patch -p2 -P 3 %patch -p2 -P 4 + %patch -p2 -P 5 %build From cvs at kolab.org Mon Nov 19 20:41:03 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 19 Nov 2007 20:41:03 +0100 (CET) Subject: gunnar: server/horde/horde-kronolith HK-GW-Kolab_issue_2138.patch, NONE, 1.1 ChangeLog, 1.3, 1.4 horde-kronolith-kolab.spec, 1.16, 1.17 Message-ID: <20071119194103.8622B600166@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-kronolith In directory doto:/tmp/cvs-serv6074/horde-kronolith Modified Files: ChangeLog horde-kronolith-kolab.spec Added Files: HK-GW-Kolab_issue_2138.patch Log Message: kolab/issue2138 --- NEW FILE: HK-GW-Kolab_issue_2138.patch --- The kronolith part of issue 2138. diff -r 7dfda4d79222 kronolith/lib/Driver/kolab.php --- a/kronolith/lib/Driver/kolab.php Wed Nov 07 17:49:30 2007 +0100 +++ b/kronolith/lib/Driver/kolab.php Wed Nov 07 18:00:52 2007 +0100 @@ -1041,7 +1041,10 @@ class Kronolith_Driver_kolab_wrapper_new return PEAR::raiseError(sprintf("Kolab::exists called for calendar %s. Currently active is %s.", $calendar_id, $this->_driver->_calendar)); } - $this->synchronize(); + $result = $this->synchronize(); + if (is_a($result, 'PEAR_Error')) { + return $result; + } if ($this->_store->objectUidExists($uid)) { return $uid; @@ -1063,7 +1066,10 @@ class Kronolith_Driver_kolab_wrapper_new */ function listEvents($startDate = null, $endDate = null, $hasAlarm = false) { - $this->synchronize(); + $result = $this->synchronize(); + if (is_a($result, 'PEAR_Error')) { + return $result; + } if (is_null($startDate)) { $startDate = &new Horde_Date(array('mday' => 1, 'month' => 1, 'year' => 0000)); @@ -1112,7 +1118,10 @@ class Kronolith_Driver_kolab_wrapper_new return $event; } - $this->synchronize(); + $result = $this->synchronize(); + if (is_a($result, 'PEAR_Error')) { + return $result; + } if (array_key_exists($eventId, $this->_events_cache)) { return $this->_events_cache[$eventId]; @@ -1158,7 +1167,10 @@ class Kronolith_Driver_kolab_wrapper_new */ function saveEvent(&$event) { - $this->synchronize(); + $result = $this->synchronize(); + if (is_a($result, 'PEAR_Error')) { + return $result; + } $uid = $event->getUID(); if ($uid == null) { @@ -1195,7 +1207,10 @@ class Kronolith_Driver_kolab_wrapper_new */ function move($eventId, $newCalendar) { - $this->synchronize(); + $result = $this->synchronize(); + if (is_a($result, 'PEAR_Error')) { + return $result; + } global $kronolith_shares; $target = &$kronolith_shares->getShare($newCalendar); @@ -1223,7 +1238,10 @@ class Kronolith_Driver_kolab_wrapper_new */ function deleteEvent($eventId) { - $this->synchronize(); + $result = $this->synchronize(); + if (is_a($result, 'PEAR_Error')) { + return $result; + } if (!$this->_store->objectUidExists($eventId)) { return PEAR::raiseError(sprintf(_("Event not found: %s"), $eventId)); Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/horde/horde-kronolith/ChangeLog,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ChangeLog 20 Jul 2007 11:19:08 -0000 1.3 +++ ChangeLog 19 Nov 2007 19:41:01 -0000 1.4 @@ -1,3 +1,9 @@ +2007-11-19 Gunnar Wrobel

    + + * horde-kronolith-kolab.spec: + + kolab/issue2138 (Horde creates events in main inbox) + 2007-07-19 Gunnar Wrobel

    * horde-kronolith-kolab.spec: Update to 20070719 Index: horde-kronolith-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-kronolith/horde-kronolith-kolab.spec,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- horde-kronolith-kolab.spec 4 Oct 2007 09:47:55 -0000 1.16 +++ horde-kronolith-kolab.spec 19 Nov 2007 19:41:01 -0000 1.17 @@ -2,8 +2,8 @@ %define V_horde_name kronolith %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 -%define V_month 10 -%define V_day 04 +%define V_month 11 +%define V_day 19 %define V_version 2.2_alpha %define V_uver 2.2-alpha %define V_date %{V_year}-%{V_month}-%{V_day} @@ -30,6 +30,7 @@ Patch0: HK-GW-Fix_create_new_event.patch Patch1: HK-GW-Fix_share_right_editing.patch Patch2: HK-UV-Fix_list_events.patch +Patch3: HK-GW-Kolab_issue_2138.patch # Build Info Prefix: %{l_prefix} @@ -62,6 +63,7 @@ %patch -p2 -P 0 %patch -p2 -P 1 %patch -p2 -P 2 + %patch -p2 -P 3 cd .. %build From cvs at kolab.org Mon Nov 19 20:45:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 19 Nov 2007 20:45:00 +0100 (CET) Subject: gunnar: server/patches/horde HK-GW-framework_3.2_ALPHA-Fix_contact_XML.patch, NONE, 1.1 README_Fix_contact_XML.patch, NONE, 1.1 Message-ID: <20071119194500.EFFA5600151@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde In directory doto:/tmp/cvs-serv6182 Added Files: HK-GW-framework_3.2_ALPHA-Fix_contact_XML.patch README_Fix_contact_XML.patch Log Message: Fix for the contact XML definition. --- NEW FILE: HK-GW-framework_3.2_ALPHA-Fix_contact_XML.patch --- Make the turba configuration work with Kolab servers. diff -r c0ef5a3c4884 framework/Kolab/Kolab/XML/contact.php --- a/framework/Kolab/Kolab/XML/contact.php Mon Nov 19 15:31:22 2007 +0100 +++ b/framework/Kolab/Kolab/XML/contact.php Mon Nov 19 18:01:13 2007 +0100 @@ -35,7 +35,7 @@ class Horde_Kolab_XML_contact extends Ho 'type' => HORDE_KOLAB_XML_TYPE_STRING, 'value' => HORDE_KOLAB_XML_VALUE_MAYBE_MISSING, ), - 'middle-name' => array ( + 'middle-names' => array ( 'type' => HORDE_KOLAB_XML_TYPE_STRING, 'value' => HORDE_KOLAB_XML_VALUE_MAYBE_MISSING, ), --- NEW FILE: README_Fix_contact_XML.patch --- DESCRIPTION: Fixes a typo in the contact XML definition. IMPACT: The middle names will not be retrieved and displayed correctly by Horde. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary HISTORY Applied upstream. From cvs at kolab.org Mon Nov 19 20:48:48 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 19 Nov 2007 20:48:48 +0100 (CET) Subject: gunnar: server/horde/horde-framework HK-GW-Fix_contact_XML.patch, NONE, 1.1 ChangeLog, 1.9, 1.10 horde-framework-kolab.spec, 1.27, 1.28 Message-ID: <20071119194848.4AD53600151@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-framework In directory doto:/tmp/cvs-serv6267 Modified Files: ChangeLog horde-framework-kolab.spec Added Files: HK-GW-Fix_contact_XML.patch Log Message: kolab/issue2135 --- NEW FILE: HK-GW-Fix_contact_XML.patch --- Make the turba configuration work with Kolab servers. diff -r c0ef5a3c4884 framework/Kolab/Kolab/XML/contact.php --- a/framework/Kolab/Kolab/XML/contact.php Mon Nov 19 15:31:22 2007 +0100 +++ b/framework/Kolab/Kolab/XML/contact.php Mon Nov 19 18:01:13 2007 +0100 @@ -35,7 +35,7 @@ class Horde_Kolab_XML_contact extends Ho 'type' => HORDE_KOLAB_XML_TYPE_STRING, 'value' => HORDE_KOLAB_XML_VALUE_MAYBE_MISSING, ), - 'middle-name' => array ( + 'middle-names' => array ( 'type' => HORDE_KOLAB_XML_TYPE_STRING, 'value' => HORDE_KOLAB_XML_VALUE_MAYBE_MISSING, ), Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/ChangeLog,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- ChangeLog 19 Nov 2007 19:41:01 -0000 1.9 +++ ChangeLog 19 Nov 2007 19:48:46 -0000 1.10 @@ -3,6 +3,7 @@ * horde-framework-kolab.spec: kolab/issue2138 (Horde creates events in main inbox) + kolab/issue2135 ([horde/turba] Turba should support some more contact attributes) 2007-11-08 Gunnar Wrobel

    Index: horde-framework-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/horde-framework-kolab.spec,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- horde-framework-kolab.spec 19 Nov 2007 19:41:01 -0000 1.27 +++ horde-framework-kolab.spec 19 Nov 2007 19:48:46 -0000 1.28 @@ -32,6 +32,7 @@ Patch3: HK-GW-Share_caching.patch Patch4: HK-GW-Kolab_issue_2144.patch Patch5: HK-GW-Kolab_issue_2138.patch +Patch6: HK-GW-Fix_contact_XML.patch # Build Info Prefix: %{l_prefix} @@ -59,6 +60,7 @@ %patch -p2 -P 3 %patch -p2 -P 4 %patch -p2 -P 5 + %patch -p2 -P 6 %build From cvs at kolab.org Mon Nov 19 20:49:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 19 Nov 2007 20:49:00 +0100 (CET) Subject: gunnar: server release-notes.txt,1.167,1.168 Message-ID: <20071119194900.8C8BA60016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv6305 Modified Files: release-notes.txt Log Message: Updated release notes. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.167 retrieving revision 1.168 diff -u -d -r1.167 -r1.168 --- release-notes.txt 16 Nov 2007 11:57:02 -0000 1.167 +++ release-notes.txt 19 Nov 2007 19:48:58 -0000 1.168 @@ -57,8 +57,23 @@ - horde-framework-kolab-3.2_ALPHA-2007???? kolab/issue2128 (Building horde-framework-kolab without http access fails) + kolab/issue2138 (Horde creates events in main inbox) kolab/issue2144 (Calendar items of shared calendar not appearing) kolab/issue2134 ([Horde] Unable to send message with attachments) + kolab/issue2135 ([horde/turba] Turba should support some more contact attributes) + + - horde-kolab-3.2_ALPHA-2007???? + + kolab/issue2101 ([horde] can’t delete categories.) + + - horde-kronolith-2.2_ALPHA-2007???? + + kolab/issue2138 (Horde creates events in main inbox) + + - horde-turba-2.2_ALPHA-2007???? + + kolab/issue2040 (Horde: resouces are not displayed in address book) + kolab/issue2135 ([horde/turba] Turba should support some more contact attributes) - kolab-webadmin-2.1.99-20071018 @@ -748,7 +763,7 @@ Kolab updates: - More distconf changes by Richard Bos and Markus Hüwe. + More distconf changes by Richard Bos and Markus Hüwe. - perl-kolab-5.8.7-20060619 @@ -773,7 +788,7 @@ - kolab-webadmin-2.0.99-20060619 - * patch from Tobias König in order to support setting of + * patch from Tobias König in order to support setting of foldertype for public folders kolab/issue848 (Modifying address book entry may break distribution list) From cvs at kolab.org Mon Nov 19 20:53:55 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 19 Nov 2007 20:53:55 +0100 (CET) Subject: gunnar: server/horde/horde-turba horde-turba-kolab.spec,1.17,1.18 Message-ID: <20071119195355.9F335600151@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-turba In directory doto:/tmp/cvs-serv6447 Modified Files: horde-turba-kolab.spec Log Message: Fix typo. Index: horde-turba-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-turba/horde-turba-kolab.spec,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- horde-turba-kolab.spec 19 Nov 2007 19:31:27 -0000 1.17 +++ horde-turba-kolab.spec 19 Nov 2007 19:53:53 -0000 1.18 @@ -25,7 +25,7 @@ Source0: http://ftp.horde.org/pub/%{V_horde_name}/%{V_horde_name}-h3-%{V_uver}.tar.gz Source1: conf.php Source2: sources.php -Source2: attributes.php +Source3: attributes.php Patch0: HK-GW-Fix_notice_on_addressbook_creation.patch Patch1: HK-GW-Fix_address_book_deletion_1.patch From cvs at kolab.org Mon Nov 19 20:56:18 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 19 Nov 2007 20:56:18 +0100 (CET) Subject: gunnar: server/horde/horde-turba horde-turba-kolab.spec,1.18,1.19 Message-ID: <20071119195618.1F87C600151@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-turba In directory doto:/tmp/cvs-serv6521 Modified Files: horde-turba-kolab.spec Log Message: Fix release date. Index: horde-turba-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-turba/horde-turba-kolab.spec,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- horde-turba-kolab.spec 19 Nov 2007 19:53:53 -0000 1.18 +++ horde-turba-kolab.spec 19 Nov 2007 19:56:16 -0000 1.19 @@ -2,8 +2,8 @@ %define V_horde_name turba %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 -%define V_month 10 -%define V_day 02 +%define V_month 11 +%define V_day 19 %define V_version 2.2_alpha %define V_uver 2.2-alpha %define V_date %{V_year}-%{V_month}-%{V_day} From cvs at kolab.org Tue Nov 20 07:48:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 20 Nov 2007 07:48:36 +0100 (CET) Subject: gunnar: server/horde external-horde.sh,1.3,1.4 Message-ID: <20071120064836.75F75600151@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde In directory doto:/tmp/cvs-serv433 Modified Files: external-horde.sh Log Message: Updated the external Horde installation script with the last set of patches. Some restructuring and improvements. Index: external-horde.sh =================================================================== RCS file: /kolabrepository/server/horde/external-horde.sh,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- external-horde.sh 1 Nov 2007 11:05:54 -0000 1.3 +++ external-horde.sh 20 Nov 2007 06:48:33 -0000 1.4 @@ -1,79 +1,129 @@ #!/bin/sh -wget ftp://ftp.horde.org/pub/horde/horde-3.2-alpha.tar.gz -wget ftp://ftp.horde.org/pub/imp/imp-h3-4.2-alpha.tar.gz -wget ftp://ftp.horde.org/pub/ingo/ingo-h3-1.2-alpha.tar.gz -wget ftp://ftp.horde.org/pub/passwd/passwd-h3-3.0.1.tar.gz -wget ftp://ftp.horde.org/pub/kronolith/kronolith-h3-2.2-alpha.tar.gz -wget ftp://ftp.horde.org/pub/mnemo/mnemo-h3-2.2-alpha.tar.gz -wget ftp://ftp.horde.org/pub/nag/nag-h3-2.2-alpha.tar.gz -wget ftp://ftp.horde.org/pub/turba/turba-h3-2.2-alpha.tar.gz +# The package versions we will be using -tar xfz horde-3.2-alpha.tar.gz -tar xfz imp-h3-4.2-alpha.tar.gz -tar xfz ingo-h3-1.2-alpha.tar.gz -tar xfz passwd-h3-3.0.1.tar.gz -tar xfz kronolith-h3-2.2-alpha.tar.gz -tar xfz mnemo-h3-2.2-alpha.tar.gz -tar xfz nag-h3-2.2-alpha.tar.gz -tar xfz turba-h3-2.2-alpha.tar.gz +HORDE_PKG=horde-3.2-alpha +IMP_PKG=imp-h3-4.2-alpha +INGO_PKG=ingo-h3-1.2-alpha +PASSWD_PKG=passwd-h3-3.0.1 +KRONOLITH_PKG=kronolith-h3-2.2-alpha +MNEMO_PKG=mnemo-h3-2.2-alpha +NAG_PKG=nag-h3-2.2-alpha +TURBA_PKG=turba-h3-2.2-alpha -mv imp-h3-4.2-alpha horde-3.2-alpha/imp -mv ingo-h3-1.2-alpha horde-3.2-alpha/ingo -mv passwd-h3-3.0.1 horde-3.2-alpha/passwd -mv kronolith-h3-2.2-alpha horde-3.2-alpha/kronolith -mv mnemo-h3-2.2-alpha horde-3.2-alpha/mnemo -mv nag-h3-2.2-alpha horde-3.2-alpha/nag -mv turba-h3-2.2-alpha horde-3.2-alpha/turba -mv horde-3.2-alpha horde -for PATCH in HK-GW-framework_3.2_ALPHA-Fix_Prefs_for_Ingo.patch \ - HK-GW-framework_3.2_ALPHA-Fix_annotation_use.patch \ - HK-GW-framework_3.2_ALPHA-Fix_the_share_params.patch \ - HK-GW-framework_3.2_ALPHA-Kolab_issue_2144.patch \ - HK-GW-framework_3.2_ALPHA-Share_caching.patch \ - HK-GW-kronolith_2.2-Fix_create_new_event.patch \ - HK-GW-kronolith_2.2-Fix_share_right_editing.patch \ - HK-GW-mnemo_2.2_ALPHA-Edit_share_rights.patch \ - HK-GW-nag_2.2_ALPHA-Fix_share_right_editing.patch \ - HK-GW-turba_2.2-Changes_after_ALPHA.patch \ - HK-GW-turba_2.2-Fix_address_book_deletion_1.patch \ - HK-GW-turba_2.2-Fix_editing_contacts.patch \ - HK-GW-turba_2.2-Fix_notice_on_addressbook_creation.patch \ - HK-GW-turba_2.2-Fix_share_id_change.patch \ - HK-GW-turba_2.2-Ldap_read_only_fix.patch \ - HK-UV-kronolith_2.2-Fix_list_events.patch; +# The patches we will be using + +FRAMEWORK_PATCHES="HK-GW-framework_3.2_ALPHA-Fix_Prefs_for_Ingo.patch + HK-GW-framework_3.2_ALPHA-Fix_annotation_use.patch + HK-GW-framework_3.2_ALPHA-Fix_the_share_params.patch + HK-GW-framework_3.2_ALPHA-Kolab_issue_2144.patch + HK-GW-framework_3.2_ALPHA-Share_caching.patch + HK-GW-framework_3.2_ALPHA-Kolab_issue_2138.patch + HK-GW-framework_3.2_ALPHA-Fix_contact_XML.patch" + +HORDE_PATCHES="HK-GW-horde_3.2_ALPHA-Deleting_categories.patch" + +APPLICATION_PATCHES="HK-GW-kronolith_2.2-Fix_create_new_event.patch + HK-GW-kronolith_2.2-Fix_share_right_editing.patch + HK-GW-kronolith_2.2_ALPHA-Kolab_issue_2138.patch + HK-GW-mnemo_2.2_ALPHA-Edit_share_rights.patch + HK-GW-nag_2.2_ALPHA-Fix_share_right_editing.patch + HK-GW-turba_2.2-Changes_after_ALPHA.patch + HK-GW-turba_2.2-Fix_address_book_deletion_1.patch + HK-GW-turba_2.2-Fix_editing_contacts.patch + HK-GW-turba_2.2-Fix_notice_on_addressbook_creation.patch + HK-GW-turba_2.2-Fix_share_id_change.patch + HK-GW-turba_2.2-Ldap_read_only_fix.patch + HK-UV-kronolith_2.2-Fix_list_events.patch" + + +# The configuration files prepared for Kolab + +CONFIG_FILES="horde/conf.php + horde/hooks.php + horde/registry.php + horde-imp/conf.php + horde-imp/servers.php + horde-ingo/conf.php + horde-ingo/backends.php + horde-passwd/conf.php + horde-passwd/backends.php + horde-kronolith/conf.php + horde-mnemo/conf.php + horde-nag/conf.php + horde-turba/conf.php + horde-turba/attributes.php + horde-turba/sources.php" + + +# Download the packages specified above + +wget ftp://ftp.horde.org/pub/horde/${HORDE_PKG}.tar.gz +wget ftp://ftp.horde.org/pub/imp/${IMP_PKG}.tar.gz +wget ftp://ftp.horde.org/pub/ingo/${INGO_PKG}.tar.gz +wget ftp://ftp.horde.org/pub/passwd/${PASSWD_PKG}.tar.gz +wget ftp://ftp.horde.org/pub/kronolith/${KRONOLITH_PKG}.tar.gz +wget ftp://ftp.horde.org/pub/mnemo/${MNEMO_PKG}.tar.gz +wget ftp://ftp.horde.org/pub/nag/${NAG_PKG}.tar.gz +wget ftp://ftp.horde.org/pub/turba/${TURBA_PKG}.tar.gz + + +# Extract the archives + +tar xfz ${HORDE_PKG}.tar.gz +tar xfz ${IMP_PKG}.tar.gz +tar xfz ${INGO_PKG}.tar.gz +tar xfz ${PASSWD_PKG}.tar.gz +tar xfz ${KRONOLITH_PKG}.tar.gz +tar xfz ${MNEMO_PKG}.tar.gz +tar xfz ${NAG_PKG}.tar.gz +tar xfz ${TURBA_PKG}.tar.gz + + +# Move the sources into the final install locations + +mv ${HORDE_PKG} horde +mv ${IMP_PKG} horde/imp +mv ${INGO_PKG} horde/ingo +mv ${PASSWD_PKG} horde/passwd +mv ${KRONOLITH_PKG} horde/kronolith +mv ${MNEMO_PKG} horde/mnemo +mv ${NAG_PKG} horde/nag +mv ${TURBA_PKG} horde/turba + + +# Fetch the required patches + +for PATCH in $FRAMEWORK_PATCHES $APPLICATION_PATCHES; do wget http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/server/patches/horde/$PATCH; done + +# Apply the patches + +for PATCH in $HORDE_PATCHES; +do + patch -p1 < $PATCH; +done + cd horde -for PATCH in HK-GW-kronolith_2.2-Fix_create_new_event.patch \ - HK-GW-kronolith_2.2-Fix_share_right_editing.patch \ - HK-GW-mnemo_2.2_ALPHA-Edit_share_rights.patch \ - HK-GW-nag_2.2_ALPHA-Fix_share_right_editing.patch \ - HK-GW-turba_2.2-Changes_after_ALPHA.patch \ - HK-GW-turba_2.2-Fix_address_book_deletion_1.patch \ - HK-GW-turba_2.2-Fix_editing_contacts.patch \ - HK-GW-turba_2.2-Fix_notice_on_addressbook_creation.patch \ - HK-GW-turba_2.2-Fix_share_id_change.patch \ - HK-GW-turba_2.2-Ldap_read_only_fix.patch \ - HK-UV-kronolith_2.2-Fix_list_events.patch; +for PATCH in $APPLICATION_PATCHES; do patch -p1 < ../$PATCH; done cd lib/Horde -for PATCH in HK-GW-framework_3.2_ALPHA-Fix_Prefs_for_Ingo.patch \ - HK-GW-framework_3.2_ALPHA-Fix_annotation_use.patch \ - HK-GW-framework_3.2_ALPHA-Share_caching.patch \ - HK-GW-framework_3.2_ALPHA-Kolab_issue_2144.patch \ - HK-GW-framework_3.2_ALPHA-Fix_the_share_params.patch; +for PATCH in $FRAMEWORK_PATCHES; do patch -p3 < ../../../$PATCH; done cd ../../.. + +# Prepare the default configuration + cd horde/config for fl in *.dist; do @@ -91,20 +141,10 @@ done cd .. -for conf in horde/conf.php \ - horde/hooks.php \ - horde/registry.php \ - horde-imp/conf.php \ - horde-imp/servers.php \ - horde-ingo/conf.php \ - horde-ingo/backends.php \ - horde-passwd/conf.php \ - horde-passwd/backends.php \ - horde-kronolith/conf.php \ - horde-mnemo/conf.php \ - horde-nag/conf.php \ - horde-turba/conf.php \ - horde-turba/sources.php; + +# Download and apply the Kolab specific configuration files + +for conf in $CONFIG_FILES; do wget http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/server/horde/$conf; export dest=${conf/\//\/config\/}; @@ -112,8 +152,60 @@ mv $file ${dest/-/\/}; done + +# Check out the Kolab server specific configurations + wget http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/server/horde/horde/horde-kolab-conf.template cat horde-kolab-conf.template | sed -e '1,5d' > horde/config/kolab.php wget http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/server/horde/horde-kronolith/horde-kronolith-kolab-conf.template cat horde-kronolith-kolab-conf.template | sed -e '1,5d' > horde/kronolith/config/kolab.php + +# Instruct the user + +echo "" +echo "" +echo "=================================================================" +echo " FINISHED" +echo "=================================================================" +echo "" +echo "" +echo "All that is left to do is to configure the connection parameters" +echo "of your Kolab server and to test the installation." +echo "" +echo "" +echo "Specify the server" +echo "------------------" +echo "" +echo "You will have to manually edit both files horde/config/kolab.php" +echo "and horde/kronolith/config/kolab.php. Add the specific details" +echo "for your Kolab server instead of the variables embedded in the @" +echo "signs (e.g. rewrite @@@fqdnhostname@@@ to kolab.mydomain.com)." +echo "" +echo "" +echo "Test the installation" +echo "---------------------" +echo "" +echo "Assuming that the Horde installation is now accessible under" +echo "'horde' you should test the installation by looking at the URL" +echo " http://my-domain.com/horde/test.php. You should do the same for" +echo "the applications imp, ingo, mnemo, nag, kronolith, passwd, and" +echo "turba. The test script for each application can be found in a" +echo "subdirectory with this name" +echo "(e.g. http://my-domain.com/horde/imp/test.php for imp)." +echo "" +echo "There should be no error messages or red warnings. If there are," +echo "you need to identify the source of the error and fix it. You can" +echo "remove the test.php scripts afterwards." +echo "" +echo "Often there will be PEAR packages missing or Horde does not find" +echo "your PEAR installation. If PEAR is available at a non standard" +echo " location on your web server you can inform Horde about its" +echo "location by extending the include path in horde/lib/core.php:" +echo "" +echo " ini_set('include_path', dirname(__FILE__) . '/../../php/pear/'" +echo ". PATH_SEPARATOR . dirname(__FILE__) . PATH_SEPARATOR" +echo ". ini_get('include_path'));" +echo "" +echo "If all looks good, you should be able to log in at" +echo "http://my-domain.com/horde/" From cvs at kolab.org Wed Nov 21 12:05:43 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 12:05:43 +0100 (CET) Subject: gunnar: server release-notes.txt,1.168,1.169 Message-ID: <20071121110543.79358600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv17330 Modified Files: release-notes.txt Log Message: kolab/issue2236 Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.168 retrieving revision 1.169 diff -u -d -r1.168 -r1.169 --- release-notes.txt 19 Nov 2007 19:48:58 -0000 1.168 +++ release-notes.txt 21 Nov 2007 11:05:41 -0000 1.169 @@ -53,6 +53,7 @@ - kolabd-2.1.99-2007???? kolab/issue2134 ([Horde] Unable to send message with attachments) + kolab/issue2236 (Apache UID access broken) - horde-framework-kolab-3.2_ALPHA-2007???? From cvs at kolab.org Wed Nov 21 12:05:43 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 12:05:43 +0100 (CET) Subject: gunnar: server/kolabd/kolabd/templates httpd.conf.template.in, 1.16, 1.17 Message-ID: <20071121110543.7E372600D64@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv17330/kolabd/kolabd/templates Modified Files: httpd.conf.template.in Log Message: kolab/issue2236 Index: httpd.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/httpd.conf.template.in,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- httpd.conf.template.in 18 Oct 2007 04:17:34 -0000 1.16 +++ httpd.conf.template.in 21 Nov 2007 11:05:41 -0000 1.17 @@ -222,6 +222,13 @@ #ForceType application/x-httpd-php # + + AuthLDAPURL ldap://@@@ldap_ip@@@:@@@ldap_port@@@/@@@base_dn@@@?mail + + + AuthLDAPURL ldap://@@@ldap_ip@@@:@@@ldap_port@@@/@@@base_dn@@@?uid + + AllowOverride None Options None @@ -239,14 +246,12 @@ AuthType Basic AuthName "Kolab Freebusy" - AuthLDAPUrl "@@@ldap_uri@@@/@@@base_dn@@@?mail??" AuthBasicAuthoritative off AuthUserFile /dev/null - AuthBasicProvider ldap + AuthBasicProvider ldap-mail ldap-uid AuthzLDAPAuthoritative off AuthLDAPBindDN "@@@php_dn@@@" AuthLDAPBindPassword "@@@php_pw@@@" - # FIXME: support authenticating with uid, too @@@endif@@@ AddDefaultCharset Off @@ -261,19 +266,6 @@ Options None Order allow,deny Allow from all - #AuthName "Kolab Admin Area" - #AuthType Basic - #LDAP_Server @@@ldap_ip@@@ - #LDAP_Port @@@ldap_port@@@ - # temporary : openldap changed from 2.1.9 to 2.1.12 - # anonymous bind with dn is nolonger allowed - # unfortunately mod_auth_ldap seems to exactly do so - # need to investigate ... - #Bind_DN "@@@php_dn@@@" - #Bind_Pass "@@@php_pw@@@" - #Base_DN "@@@base_dn@@@" - #UID_Attr uid - #require valid-user AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip From cvs at kolab.org Wed Nov 21 12:05:43 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 12:05:43 +0100 (CET) Subject: gunnar: server/kolabd/kolabd ChangeLog, 1.116, 1.117 kolabd.spec.in, 1.23, 1.24 Message-ID: <20071121110543.7A837600D63@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv17330/kolabd/kolabd Modified Files: ChangeLog kolabd.spec.in Log Message: kolab/issue2236 Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.116 retrieving revision 1.117 diff -u -d -r1.116 -r1.117 --- ChangeLog 7 Nov 2007 14:50:41 -0000 1.116 +++ ChangeLog 21 Nov 2007 11:05:41 -0000 1.117 @@ -1,3 +1,9 @@ +2007-11-21 Gunnar Wrobel

    + + * templates/httpd.conf.template.in: + + kolab/issue2236 (Apache UID access broken) + 2007-11-07 Marcus Hüwe * dist_conf/suse: changed the location of the resmgr_confdir Index: kolabd.spec.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolabd.spec.in,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- kolabd.spec.in 7 Nov 2007 10:37:53 -0000 1.23 +++ kolabd.spec.in 21 Nov 2007 11:05:41 -0000 1.24 @@ -60,7 +60,7 @@ PreReq: clamav >= 0.90 PreReq: openldap, openldap::with_pth = no PreReq: imap, imap::with_annotate = yes -PreReq: apache, apache::with_mod_ssl = yes, apache::with_mod_ldap = yes +PreReq: apache, apache::with_mod_ssl = yes, apache::with_mod_ldap = yes, apache::with_mod_authn_alias = yes %if "%{with_horde}" == "yes" # FIXME (optional) From cvs at kolab.org Wed Nov 21 12:26:56 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 12:26:56 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/it/LC_MESSAGES messages.po, 1.11, 1.12 Message-ID: <20071121112656.D468D600D67@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/it/LC_MESSAGES In directory doto:/tmp/cvs-serv17932/it/LC_MESSAGES Modified Files: messages.po Log Message: Ran kolab-webadmin/kolab-webadmin/php/admin/locale/extract_messages Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/it/LC_MESSAGES/messages.po,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- messages.po 2 Feb 2007 18:01:22 -0000 1.11 +++ messages.po 21 Nov 2007 11:26:54 -0000 1.12 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: messages\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-02-02 18:49+0100\n" +"POT-Creation-Date: 2007-11-21 12:24+0100\n" "PO-Revision-Date: 2005-10-14 23:43+0100\n" "Last-Translator: Yvette Agostini \n" "Language-Team: \n" @@ -19,8 +19,8 @@ msgid "The address with DN" msgstr "L'indirizzo con il DN" [...2367 lines suppressed...] +#~ "incompatibile con Kolab2)" + +#~ msgid "HTTP FreeBusy Service (Legacy)" +#~ msgstr "Servizio di pubblicazione liste di disponibilità HTTP (Obsoleto)" + +#, fuzzy +#~ msgid "" +#~ "Account DN could not be modified, distribution list '%s' depends on it. To modify this account, " +#~ "first remove it from the distribution list." +#~ msgstr "" +#~ "Il DN dell'account non può essere modificato, la lista di distribuzione " +#~ "'%s' depends on it. To modify this account, " +#~ "first remove it from the distribution list." +#~ msgstr "" +#~ "La cuenta DN no puede ser modificada, la lista de distribución '%s' depende de ella. Para modificar esta " +#~ "cuenta, primero borrarla de la lista de distribución." + +#~ msgid "LDAP Error: Could not remove old entry %s,%s: %s" +#~ msgstr "Error de LDAP: No se pudo borrar la vieja entrada %s, %s: %s" From cvs at kolab.org Wed Nov 21 12:26:56 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 12:26:56 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/fr/LC_MESSAGES messages.po, 1.14, 1.15 Message-ID: <20071121112656.CFF85600D63@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/fr/LC_MESSAGES In directory doto:/tmp/cvs-serv17932/fr/LC_MESSAGES Modified Files: messages.po Log Message: Ran kolab-webadmin/kolab-webadmin/php/admin/locale/extract_messages Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/fr/LC_MESSAGES/messages.po,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- messages.po 13 Feb 2007 13:58:00 -0000 1.14 +++ messages.po 21 Nov 2007 11:26:54 -0000 1.15 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: messages\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-02-13 14:52+0100\n" +"POT-Creation-Date: 2007-11-21 12:24+0100\n" "PO-Revision-Date: 2007-02-13 14:35+0100\n" "Last-Translator: Jean-Michel LACROIX \n" "Language-Team: \n" @@ -21,8 +21,8 @@ msgid "The address with DN" msgstr "L'adresse de messagerie avec le DN" [...2390 lines suppressed...] + +#~ msgid "HTTP FreeBusy Service (Legacy)" +#~ msgstr "Service HTTP de disponibilité (Ancien)" + +#, fuzzy +#~ msgid "" +#~ "Account DN could not be modified, distribution list '%s' depends on it. To modify this account, " +#~ "first remove it from the distribution list." +#~ msgstr "" +#~ "Le DN du compte n'a pas pu être modifié pour la liste de distribution '%s' depends on it. To modify this account, " +#~ "first remove it from the distribution list." +#~ msgstr "" +#~ "DN account kon niet gewijzigd worden, distributielijst '%s' is hiervan " +#~ "afhankelijk. Om deze account te wijzigen moet het worden verwijderd van " +#~ "de distributielijst." + +#~ msgid "LDAP Error: Could not remove old entry %s,%s: %s" +#~ msgstr "LDAP fout: kon de oude entry niet wijzigen %s,%s: %s" From cvs at kolab.org Wed Nov 21 12:26:56 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 12:26:56 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES messages.po, 1.27, 1.28 Message-ID: <20071121112656.D295D600D66@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES In directory doto:/tmp/cvs-serv17932/de/LC_MESSAGES Modified Files: messages.po Log Message: Ran kolab-webadmin/kolab-webadmin/php/admin/locale/extract_messages Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES/messages.po,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- messages.po 16 Nov 2007 11:57:02 -0000 1.27 +++ messages.po 21 Nov 2007 11:26:54 -0000 1.28 @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: messages-2.1-new_de\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-02-02 18:19+0100\n" +"POT-Creation-Date: 2007-11-21 12:24+0100\n" "PO-Revision-Date: 2007-11-16 12:49+0100\n" "Last-Translator: Thomas Arendsen Hein \n" "Language-Team: deutsch \n" @@ -23,8 +23,8 @@ msgid "The address with DN" msgstr "Die Adresse mit DN" [...2372 lines suppressed...] + +#~ msgid "" +#~ "FTP FreeBusy Service (Legacy, not interoperable with Kolab2 FreeBusy)" +#~ msgstr "" +#~ "FTP-Frei/Belegt-Dienst (für Altsysteme, arbeitet nicht mit Kolab2-Frei/" +#~ "Belegt zusammen)" + +#~ msgid "" +#~ "Account DN could not be modified, distribution list '%s' depends on it. To modify this account, " +#~ "first remove it from the distribution list." +#~ msgstr "" +#~ "Der DN des Kontos konnte nicht verändert werden; Verteilerliste '%s' hängt davon ab. Um dieses Konto zu " +#~ "verändern, müssen Sie es erst aus der Verteilerliste entfernen." + +#~ msgid "LDAP Error: Could not remove old entry %s,%s: %s" +#~ msgstr "LDAP-Fehler: Konnte den alten Eintrag %s,%s nicht entfernen: %s" From cvs at kolab.org Wed Nov 21 12:59:58 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 12:59:58 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin ChangeLog,1.60,1.61 Message-ID: <20071121115958.33ED8600D64@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin In directory doto:/tmp/cvs-serv19192 Modified Files: ChangeLog Log Message: www/admin/user/user.php.in: Renamed "Free/Busy future" to "Free/Busy interval" to be consistent with the user inteface. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/ChangeLog,v retrieving revision 1.60 retrieving revision 1.61 diff -u -d -r1.60 -r1.61 --- ChangeLog 16 Nov 2007 11:57:02 -0000 1.60 +++ ChangeLog 21 Nov 2007 11:59:55 -0000 1.61 @@ -1,3 +1,8 @@ +2007-11-21 Thomas Arendsen Hein + + * www/admin/user/user.php.in: Renamed "Free/Busy future" to + "Free/Busy interval" to be consistent with the user inteface. + 2007-11-16 Thomas Arendsen Hein * php/admin/locale/de/LC_MESSAGES/messages.po: Updated German From cvs at kolab.org Wed Nov 21 12:59:58 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 12:59:58 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES messages.po, 1.28, 1.29 Message-ID: <20071121115958.32304600D47@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES In directory doto:/tmp/cvs-serv19192/php/admin/locale/de/LC_MESSAGES Modified Files: messages.po Log Message: www/admin/user/user.php.in: Renamed "Free/Busy future" to "Free/Busy interval" to be consistent with the user inteface. Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES/messages.po,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- messages.po 21 Nov 2007 11:26:54 -0000 1.28 +++ messages.po 21 Nov 2007 11:59:56 -0000 1.29 @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: messages-2.1-new_de\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-21 12:24+0100\n" +"POT-Creation-Date: 2007-11-21 12:57+0100\n" "PO-Revision-Date: 2007-11-16 12:49+0100\n" "Last-Translator: Thomas Arendsen Hein \n" "Language-Team: deutsch \n" @@ -1917,16 +1917,18 @@ #: ../../../www/admin/user/user.php.in:167 #, fuzzy -msgid "Free/Busy future can not be negative" +msgid "Free/Busy interval can not be negative" msgstr "Plattenplatz kann nicht negativ sein" #: ../../../www/admin/user/user.php.in:168 -msgid "Free/Busy future must be a number" -msgstr "" +#, fuzzy +msgid "Free/Busy interval must be a number" +msgstr "Plattenplatz muss kleiner sein als 4096" #: ../../../www/admin/user/user.php.in:169 -msgid "Free/Busy future must be an integer" -msgstr "" +#, fuzzy +msgid "Free/Busy interval must be an integer" +msgstr "Plattenplatz muss kleiner sein als 4096" #: ../../../www/admin/user/user.php.in:409 msgid "Unique Identity (UID)" From cvs at kolab.org Wed Nov 21 12:59:58 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 12:59:58 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/fr/LC_MESSAGES messages.po, 1.15, 1.16 Message-ID: <20071121115958.33CC6600D63@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/fr/LC_MESSAGES In directory doto:/tmp/cvs-serv19192/php/admin/locale/fr/LC_MESSAGES Modified Files: messages.po Log Message: www/admin/user/user.php.in: Renamed "Free/Busy future" to "Free/Busy interval" to be consistent with the user inteface. Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/fr/LC_MESSAGES/messages.po,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- messages.po 21 Nov 2007 11:26:54 -0000 1.15 +++ messages.po 21 Nov 2007 11:59:56 -0000 1.16 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: messages\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-21 12:24+0100\n" +"POT-Creation-Date: 2007-11-21 12:57+0100\n" "PO-Revision-Date: 2007-02-13 14:35+0100\n" "Last-Translator: Jean-Michel LACROIX \n" "Language-Team: \n" @@ -1929,16 +1929,18 @@ #: ../../../www/admin/user/user.php.in:167 #, fuzzy -msgid "Free/Busy future can not be negative" +msgid "Free/Busy interval can not be negative" msgstr "Le quota ne peut pas être négatif" #: ../../../www/admin/user/user.php.in:168 -msgid "Free/Busy future must be a number" -msgstr "" +#, fuzzy +msgid "Free/Busy interval must be a number" +msgstr "Le quota doit être inférieur à 4096" #: ../../../www/admin/user/user.php.in:169 -msgid "Free/Busy future must be an integer" -msgstr "" +#, fuzzy +msgid "Free/Busy interval must be an integer" +msgstr "Le quota doit être inférieur à 4096" #: ../../../www/admin/user/user.php.in:409 msgid "Unique Identity (UID)" From cvs at kolab.org Wed Nov 21 12:59:58 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 12:59:58 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/it/LC_MESSAGES messages.po, 1.12, 1.13 Message-ID: <20071121115958.39132600D66@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/it/LC_MESSAGES In directory doto:/tmp/cvs-serv19192/php/admin/locale/it/LC_MESSAGES Modified Files: messages.po Log Message: www/admin/user/user.php.in: Renamed "Free/Busy future" to "Free/Busy interval" to be consistent with the user inteface. Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/it/LC_MESSAGES/messages.po,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- messages.po 21 Nov 2007 11:26:54 -0000 1.12 +++ messages.po 21 Nov 2007 11:59:56 -0000 1.13 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: messages\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-21 12:24+0100\n" +"POT-Creation-Date: 2007-11-21 12:57+0100\n" "PO-Revision-Date: 2005-10-14 23:43+0100\n" "Last-Translator: Yvette Agostini \n" "Language-Team: \n" @@ -1910,16 +1910,19 @@ msgstr "Utente o gruppo non lecito " #: ../../../www/admin/user/user.php.in:167 -msgid "Free/Busy future can not be negative" -msgstr "" +#, fuzzy +msgid "Free/Busy interval can not be negative" +msgstr "Intervallo della lista di disponibilità in giorni" #: ../../../www/admin/user/user.php.in:168 -msgid "Free/Busy future must be a number" -msgstr "" +#, fuzzy +msgid "Free/Busy interval must be a number" +msgstr "Intervallo della lista di disponibilità in giorni" #: ../../../www/admin/user/user.php.in:169 -msgid "Free/Busy future must be an integer" -msgstr "" +#, fuzzy +msgid "Free/Busy interval must be an integer" +msgstr "Intervallo della lista di disponibilità in giorni" #: ../../../www/admin/user/user.php.in:409 msgid "Unique Identity (UID)" From cvs at kolab.org Wed Nov 21 12:59:58 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 12:59:58 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/nl/LC_MESSAGES messages.po, 1.24, 1.25 Message-ID: <20071121115958.3E977600D67@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/nl/LC_MESSAGES In directory doto:/tmp/cvs-serv19192/php/admin/locale/nl/LC_MESSAGES Modified Files: messages.po Log Message: www/admin/user/user.php.in: Renamed "Free/Busy future" to "Free/Busy interval" to be consistent with the user inteface. Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/nl/LC_MESSAGES/messages.po,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- messages.po 21 Nov 2007 11:26:54 -0000 1.24 +++ messages.po 21 Nov 2007 11:59:56 -0000 1.25 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: messages\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-21 12:24+0100\n" +"POT-Creation-Date: 2007-11-21 12:57+0100\n" "PO-Revision-Date: 2007-02-20 20:45+0100\n" "Last-Translator: Richard Bos \n" "Language-Team: \n" @@ -1892,16 +1892,18 @@ #: ../../../www/admin/user/user.php.in:167 #, fuzzy -msgid "Free/Busy future can not be negative" +msgid "Free/Busy interval can not be negative" msgstr "Quota kan niet negatief zijn" #: ../../../www/admin/user/user.php.in:168 -msgid "Free/Busy future must be a number" -msgstr "" +#, fuzzy +msgid "Free/Busy interval must be a number" +msgstr "Quota moet kleiner zijn dan 4096" #: ../../../www/admin/user/user.php.in:169 -msgid "Free/Busy future must be an integer" -msgstr "" +#, fuzzy +msgid "Free/Busy interval must be an integer" +msgstr "Quota moet kleiner zijn dan 4096" #: ../../../www/admin/user/user.php.in:409 msgid "Unique Identity (UID)" From cvs at kolab.org Wed Nov 21 12:59:58 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 12:59:58 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/www/admin/user user.php.in, 1.24, 1.25 Message-ID: <20071121115958.3FAF4600D68@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user In directory doto:/tmp/cvs-serv19192/www/admin/user Modified Files: user.php.in Log Message: www/admin/user/user.php.in: Renamed "Free/Busy future" to "Free/Busy interval" to be consistent with the user inteface. Index: user.php.in =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user/user.php.in,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- user.php.in 27 Jul 2007 15:38:19 -0000 1.24 +++ user.php.in 21 Nov 2007 11:59:56 -0000 1.25 @@ -164,9 +164,9 @@ function checkfreebusyfuture( $form, $key, $value ) { if( empty($value) ) return ''; // OK - else if( $value < 0 ) return _('Free/Busy future can not be negative'); - else if( !is_numeric($value) ) return _('Free/Busy future must be a number'); - else if( (int) $value != $value ) return _('Free/Busy future must be an integer'); + else if( $value < 0 ) return _('Free/Busy interval can not be negative'); + else if( !is_numeric($value) ) return _('Free/Busy interval must be a number'); + else if( (int) $value != $value ) return _('Free/Busy interval must be an integer'); else return ''; } From cvs at kolab.org Wed Nov 21 12:59:58 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 12:59:58 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/es/LC_MESSAGES messages.po, 1.10, 1.11 Message-ID: <20071121115958.32FB1600D62@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/es/LC_MESSAGES In directory doto:/tmp/cvs-serv19192/php/admin/locale/es/LC_MESSAGES Modified Files: messages.po Log Message: www/admin/user/user.php.in: Renamed "Free/Busy future" to "Free/Busy interval" to be consistent with the user inteface. Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/es/LC_MESSAGES/messages.po,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- messages.po 21 Nov 2007 11:26:54 -0000 1.10 +++ messages.po 21 Nov 2007 11:59:56 -0000 1.11 @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: messages\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-21 12:24+0100\n" +"POT-Creation-Date: 2007-11-21 12:57+0100\n" "PO-Revision-Date: 2007-07-03 16:52+0200\n" "Last-Translator: Aron Galdon \n" "Language-Team: Español \n" @@ -1913,16 +1913,18 @@ #: ../../../www/admin/user/user.php.in:167 #, fuzzy -msgid "Free/Busy future can not be negative" +msgid "Free/Busy interval can not be negative" msgstr "La cuota no puede ser negativa" #: ../../../www/admin/user/user.php.in:168 -msgid "Free/Busy future must be a number" -msgstr "" +#, fuzzy +msgid "Free/Busy interval must be a number" +msgstr "La cuota debe ser menor que 4096" #: ../../../www/admin/user/user.php.in:169 -msgid "Free/Busy future must be an integer" -msgstr "" +#, fuzzy +msgid "Free/Busy interval must be an integer" +msgstr "La cuota debe ser menor que 4096" #: ../../../www/admin/user/user.php.in:409 msgid "Unique Identity (UID)" From cvs at kolab.org Wed Nov 21 14:32:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 14:32:44 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES messages.po, 1.29, 1.30 Message-ID: <20071121133244.B89B3600D65@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES In directory doto:/tmp/cvs-serv22621/php/admin/locale/de/LC_MESSAGES Modified Files: messages.po Log Message: Don't use @bindir@ in strings marked for translation. Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES/messages.po,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- messages.po 21 Nov 2007 11:59:56 -0000 1.29 +++ messages.po 21 Nov 2007 13:32:42 -0000 1.30 @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: messages-2.1-new_de\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-21 12:57+0100\n" +"POT-Creation-Date: 2007-11-21 14:29+0100\n" "PO-Revision-Date: 2007-11-16 12:49+0100\n" "Last-Translator: Thomas Arendsen Hein \n" "Language-Team: deutsch \n" @@ -1843,8 +1843,8 @@ #: ../../../www/admin/user/forward.php.in:39 #: ../../../www/admin/user/vacation.php.in:18 msgid "" -"Suggest your system administrator to run \"@bindir@/pear install http://pear." -"php.net/get/Net_Sieve\" on the server" +"Suggest your system administrator to run \"pear install http://pear.php.net/" +"get/Net_Sieve\" on the server" msgstr "" #: ../../../www/admin/user/deliver.php.in:66 From cvs at kolab.org Wed Nov 21 14:32:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 14:32:44 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/it/LC_MESSAGES messages.po, 1.13, 1.14 Message-ID: <20071121133244.C415B600D67@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/it/LC_MESSAGES In directory doto:/tmp/cvs-serv22621/php/admin/locale/it/LC_MESSAGES Modified Files: messages.po Log Message: Don't use @bindir@ in strings marked for translation. Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/it/LC_MESSAGES/messages.po,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- messages.po 21 Nov 2007 11:59:56 -0000 1.13 +++ messages.po 21 Nov 2007 13:32:42 -0000 1.14 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: messages\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-21 12:57+0100\n" +"POT-Creation-Date: 2007-11-21 14:25+0100\n" "PO-Revision-Date: 2005-10-14 23:43+0100\n" "Last-Translator: Yvette Agostini \n" "Language-Team: \n" @@ -1837,8 +1837,8 @@ #: ../../../www/admin/user/forward.php.in:39 #: ../../../www/admin/user/vacation.php.in:18 msgid "" -"Suggest your system administrator to run \"@bindir@/pear install http://pear." -"php.net/get/Net_Sieve\" on the server" +"Suggest your system administrator to run \"pear install http://pear.php.net/" +"get/Net_Sieve\" on the server" msgstr "" #: ../../../www/admin/user/deliver.php.in:66 From cvs at kolab.org Wed Nov 21 14:32:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 14:32:44 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/nl/LC_MESSAGES messages.po, 1.25, 1.26 Message-ID: <20071121133244.D255A600D65@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/nl/LC_MESSAGES In directory doto:/tmp/cvs-serv22621/php/admin/locale/nl/LC_MESSAGES Modified Files: messages.po Log Message: Don't use @bindir@ in strings marked for translation. Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/nl/LC_MESSAGES/messages.po,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- messages.po 21 Nov 2007 11:59:56 -0000 1.25 +++ messages.po 21 Nov 2007 13:32:42 -0000 1.26 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: messages\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-21 12:57+0100\n" +"POT-Creation-Date: 2007-11-21 14:25+0100\n" "PO-Revision-Date: 2007-02-20 20:45+0100\n" "Last-Translator: Richard Bos \n" "Language-Team: \n" @@ -1816,9 +1816,10 @@ #: ../../../www/admin/user/deliver.php.in:38 #: ../../../www/admin/user/forward.php.in:39 #: ../../../www/admin/user/vacation.php.in:18 +#, fuzzy msgid "" -"Suggest your system administrator to run \"@bindir@/pear install http://pear." -"php.net/get/Net_Sieve\" on the server" +"Suggest your system administrator to run \"pear install http://pear.php.net/" +"get/Net_Sieve\" on the server" msgstr "" "Stel Uw systeem administrator voor om \"@bindir@/pear install http://pear." "php.net/get/Net_Sieve\" uit te voeren op de server" From cvs at kolab.org Wed Nov 21 14:32:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 14:32:44 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/fr/LC_MESSAGES messages.po, 1.16, 1.17 Message-ID: <20071121133244.BE1E8600D66@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/fr/LC_MESSAGES In directory doto:/tmp/cvs-serv22621/php/admin/locale/fr/LC_MESSAGES Modified Files: messages.po Log Message: Don't use @bindir@ in strings marked for translation. Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/fr/LC_MESSAGES/messages.po,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- messages.po 21 Nov 2007 11:59:56 -0000 1.16 +++ messages.po 21 Nov 2007 13:32:42 -0000 1.17 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: messages\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-21 12:57+0100\n" +"POT-Creation-Date: 2007-11-21 14:25+0100\n" "PO-Revision-Date: 2007-02-13 14:35+0100\n" "Last-Translator: Jean-Michel LACROIX \n" "Language-Team: \n" @@ -1852,9 +1852,10 @@ #: ../../../www/admin/user/deliver.php.in:38 #: ../../../www/admin/user/forward.php.in:39 #: ../../../www/admin/user/vacation.php.in:18 +#, fuzzy msgid "" -"Suggest your system administrator to run \"@bindir@/pear install http://pear." -"php.net/get/Net_Sieve\" on the server" +"Suggest your system administrator to run \"pear install http://pear.php.net/" +"get/Net_Sieve\" on the server" msgstr "" "Suggérez à votre administrateur système de lancer \"@bindir@/pear install " "http://pear.php.net/get/Net_Sieve\" sur le serveur" From cvs at kolab.org Wed Nov 21 14:32:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 14:32:44 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin ChangeLog,1.61,1.62 Message-ID: <20071121133244.B7544600D64@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin In directory doto:/tmp/cvs-serv22621 Modified Files: ChangeLog Log Message: Don't use @bindir@ in strings marked for translation. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/ChangeLog,v retrieving revision 1.61 retrieving revision 1.62 diff -u -d -r1.61 -r1.62 --- ChangeLog 21 Nov 2007 11:59:55 -0000 1.61 +++ ChangeLog 21 Nov 2007 13:32:42 -0000 1.62 @@ -2,6 +2,9 @@ * www/admin/user/user.php.in: Renamed "Free/Busy future" to "Free/Busy interval" to be consistent with the user inteface. + * www/admin/user/deliver.php.in, www/admin/user/forward.php.in, + www/admin/user/vacation.php.in: Don't use @bindir@ in strings + marked for translation. 2007-11-16 Thomas Arendsen Hein @@ -66,7 +69,7 @@ fixed kolab/issue1845 (incorrect check mailForDn for ldap results) https://intevation.de/roundup/kolab/issue1845 -2007-07-04 Marcus Hüwe +2007-07-04 Marcus Hüwe * Makefile.am: @@ -80,7 +83,7 @@ is not yet capable of generating .mo files for the binary RPM. See kolab/issue1797 (kolab-webadmin source package missing PO files) -2007-06-21 Marcus Hüwe +2007-06-21 Marcus Hüwe * Makefile.am: @@ -251,7 +254,7 @@ Fix for issue1479 (https://intevation.de/roundup/kolab/issue1479). -2007-01-10 Marcus Hüwe +2007-01-10 Marcus Hüwe * php/admin/include/form.class.php: added a __toString() method otherwise it will not work with php 5.2.0 (see issue1558) @@ -264,7 +267,7 @@ * php/admin/include/mysmarty.php.in: make the Smarty prefix configurable, using variable: kolab_php_smarty_prefix -2006-03-22 Marcus Hüwe +2006-03-22 Marcus Hüwe Patch committed by Richard Bos * www/admin/user/user.php.in: replaced $kolab_prefix/etc by @sysconfidir@ @@ -312,7 +315,7 @@ 2006-01-17 Richard Bos * Makefile.am: corrected make rule for php/admin/templates/versions.tpl -2006-01-16 Marcus Hüwe +2006-01-16 Marcus Hüwe Patch committed by Richard Bos * www/admin/kolab/versions.php.in: use rpm package name variables for the software package version query's @@ -323,13 +326,13 @@ * Makefile.am: process php/admin/templates/versions.tpl.in * configure.ac: add --with-openpkg cmdline argument -2006-01-15 Marcus Hüwe +2006-01-15 Marcus Hüwe Patch committed by Richard Bos * www/admin/kolab/versions.php: moved to /www/admin/kolab/versions.php.in, replaced "$kolab_prefix/bin/openpkg" with @RPM@ * Makefile.am: make www/admin/kolab/versions.php.in -2006-01-14 Marcus Hüwe +2006-01-14 Marcus Hüwe Patch commited by Richard Bos * configure.ac: replaced --enable-dist with --with-dist Added dist_conf file check. If dist_conf file specified with @@ -345,7 +348,7 @@ * Makefile.am: add webserver_web_prefix so the involved files are installed in the right directory. -2005-12-30 Marcus Hüwe +2005-12-30 Marcus Hüwe Patch committed by Richard Bos, see issue1049 * php/admin/include/auth.class.php: moved to php/admin/include/auth.class.php.in @@ -371,7 +374,7 @@ * ../Makefile: reflected change in configure.ac, to create only bzipped tarbals. Changed 'make dist' into 'make distcheck' -2005-12-16 Marcus Hüwe +2005-12-16 Marcus Hüwe * Makefile.am: added dist_ prefix 2005-12-14 Richard Bos From cvs at kolab.org Wed Nov 21 14:32:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 14:32:44 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/www/admin/user deliver.php.in, 1.1, 1.2 forward.php.in, 1.1, 1.2 vacation.php.in, 1.3, 1.4 Message-ID: <20071121133244.D3356600D68@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user In directory doto:/tmp/cvs-serv22621/www/admin/user Modified Files: deliver.php.in forward.php.in vacation.php.in Log Message: Don't use @bindir@ in strings marked for translation. Index: deliver.php.in =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user/deliver.php.in,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- deliver.php.in 5 Feb 2006 20:13:55 -0000 1.1 +++ deliver.php.in 21 Nov 2007 13:32:42 -0000 1.2 @@ -1,6 +1,6 @@ * @@ -35,7 +35,7 @@ $errors = array(); if( (@include_once '@kolab_php_module_prefix at admin/include/Sieve.php' ) === false ) { $errors[] = _('Net/Sieve.php is missing. Without that, filter settings are not available'); - $errors[] = _("Suggest your system administrator to run \"@bindir@/pear install http://pear.php.net/get/Net_Sieve\" on the server"); + $errors[] = _("Suggest your system administrator to run \"pear install http://pear.php.net/get/Net_Sieve\" on the server"); } /**** Authentication etc. ***/ Index: forward.php.in =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user/forward.php.in,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- forward.php.in 5 Feb 2006 20:13:55 -0000 1.1 +++ forward.php.in 21 Nov 2007 13:32:42 -0000 1.2 @@ -36,7 +36,7 @@ $errors = array(); if( (@include_once '@kolab_php_module_prefix at admin/include/Sieve.php' ) === false ) { $errors[] = _('Net/Sieve.php is missing. Without that, vacation settings are not available'); - $errors[] = _("Suggest your system administrator to run \"@bindir@/pear install http://pear.php.net/get/Net_Sieve\" on the server"); + $errors[] = _("Suggest your system administrator to run \"pear install http://pear.php.net/get/Net_Sieve\" on the server"); } /**** Authentication etc. ***/ Index: vacation.php.in =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user/vacation.php.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- vacation.php.in 16 Jun 2006 14:25:29 -0000 1.3 +++ vacation.php.in 21 Nov 2007 13:32:42 -0000 1.4 @@ -15,7 +15,7 @@ $errors = array(); if( (@include_once '@kolab_php_module_prefix at admin/include/Sieve.php' ) === false ) { $errors[] = _('Net/Sieve.php is missing. Without that, vacation settings are not available'); - $errors[] = _("Suggest your system administrator to run \"@bindir@/pear install http://pear.php.net/get/Net_Sieve\" on the server"); + $errors[] = _("Suggest your system administrator to run \"pear install http://pear.php.net/get/Net_Sieve\" on the server"); } /**** Authentication etc. ***/ From cvs at kolab.org Wed Nov 21 14:32:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 14:32:44 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/es/LC_MESSAGES messages.po, 1.11, 1.12 Message-ID: <20071121133244.B55AB600D63@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/es/LC_MESSAGES In directory doto:/tmp/cvs-serv22621/php/admin/locale/es/LC_MESSAGES Modified Files: messages.po Log Message: Don't use @bindir@ in strings marked for translation. Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/es/LC_MESSAGES/messages.po,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- messages.po 21 Nov 2007 11:59:56 -0000 1.11 +++ messages.po 21 Nov 2007 13:32:42 -0000 1.12 @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: messages\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-21 12:57+0100\n" +"POT-Creation-Date: 2007-11-21 14:25+0100\n" "PO-Revision-Date: 2007-07-03 16:52+0200\n" "Last-Translator: Aron Galdon \n" "Language-Team: Español \n" @@ -1836,9 +1836,10 @@ #: ../../../www/admin/user/deliver.php.in:38 #: ../../../www/admin/user/forward.php.in:39 #: ../../../www/admin/user/vacation.php.in:18 +#, fuzzy msgid "" -"Suggest your system administrator to run \"@bindir@/pear install http://pear." -"php.net/get/Net_Sieve\" on the server" +"Suggest your system administrator to run \"pear install http://pear.php.net/" +"get/Net_Sieve\" on the server" msgstr "" "Sugiera a su administrador del sistema que ejecute \"@bindir@/pear install " "http://pear.php.net/get/Net_Sieve/\" en el servidor" From cvs at kolab.org Wed Nov 21 15:18:07 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 15:18:07 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/fr/LC_MESSAGES messages.po, 1.17, 1.18 Message-ID: <20071121141807.00B0C600D66@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/fr/LC_MESSAGES In directory doto:/tmp/cvs-serv24086/fr/LC_MESSAGES Modified Files: messages.po Log Message: Updated .po file headers Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/fr/LC_MESSAGES/messages.po,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- messages.po 21 Nov 2007 13:32:42 -0000 1.17 +++ messages.po 21 Nov 2007 14:18:04 -0000 1.18 @@ -1,21 +1,19 @@ -# translation of messages.po to -# This file is distributed under the same license as the PACKAGE package. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# This file is distributed under the same license as Kolab-Webadmin. +# Copyright (C) # Benoit Mortier , 2005. -# Jean-Michel LACROIX , 2006 +# Jean-Michel LACROIX , 2006. # msgid "" msgstr "" -"Project-Id-Version: messages\n" +"Project-Id-Version: Kolab-Webadmin French\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-11-21 14:25+0100\n" -"PO-Revision-Date: 2007-02-13 14:35+0100\n" +"PO-Revision-Date: 2007-11-21 14:56+0100\n" "Last-Translator: Jean-Michel LACROIX \n" -"Language-Team: \n" +"Language-Team: Kolab development coordination \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.9.1\n" #: tpl_messages.php:2 msgid "The address with DN" From cvs at kolab.org Wed Nov 21 15:18:07 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 15:18:07 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES messages.po, 1.30, 1.31 Message-ID: <20071121141807.0272F600D67@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES In directory doto:/tmp/cvs-serv24086/de/LC_MESSAGES Modified Files: messages.po Log Message: Updated .po file headers Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES/messages.po,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- messages.po 21 Nov 2007 13:32:42 -0000 1.30 +++ messages.po 21 Nov 2007 14:18:04 -0000 1.31 @@ -1,6 +1,3 @@ -# translation of messages-2.1-new_de.po to deutsch -# translation of messages-2.0_de.po to deutsch -# translation of kolab-messages.po to deutsch # This file is distributed under the same license as Kolab-Webadmin. # Copyright (C) # Matthias Kalle Dalheimer , 2005. @@ -8,16 +5,15 @@ # msgid "" msgstr "" -"Project-Id-Version: messages-2.1-new_de\n" +"Project-Id-Version: Kolab-Webadmin German\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-11-21 14:29+0100\n" -"PO-Revision-Date: 2007-11-16 12:49+0100\n" +"PO-Revision-Date: 2007-11-21 14:56+0100\n" "Last-Translator: Thomas Arendsen Hein \n" -"Language-Team: deutsch \n" +"Language-Team: Kolab development coordination \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.10.1\n" #: tpl_messages.php:2 msgid "The address with DN" From cvs at kolab.org Wed Nov 21 15:18:07 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 15:18:07 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/nl/LC_MESSAGES messages.po, 1.26, 1.27 Message-ID: <20071121141807.EF432600D62@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/nl/LC_MESSAGES In directory doto:/tmp/cvs-serv24086/nl/LC_MESSAGES Modified Files: messages.po Log Message: Updated .po file headers Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/nl/LC_MESSAGES/messages.po,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- messages.po 21 Nov 2007 13:32:42 -0000 1.26 +++ messages.po 21 Nov 2007 14:18:04 -0000 1.27 @@ -1,21 +1,19 @@ -# translation of messages.po to -# This file is distributed under the same license as the kolab package. -# Copyright (C) 2005 THE PACKAGE'S COPYRIGHT HOLDER. -# +# This file is distributed under the same license as Kolab-Webadmin. +# Copyright (C) # Vincent Seynhaeve , 2005. # Richard Bos , 2005, 2007. +# msgid "" msgstr "" -"Project-Id-Version: messages\n" +"Project-Id-Version: Kolab-Webadmin Dutch\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-11-21 14:25+0100\n" -"PO-Revision-Date: 2007-02-20 20:45+0100\n" +"PO-Revision-Date: 2007-11-21 14:56+0100\n" "Last-Translator: Richard Bos \n" -"Language-Team: \n" +"Language-Team: Kolab development coordination \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" #: tpl_messages.php:2 msgid "The address with DN" From cvs at kolab.org Wed Nov 21 15:18:07 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 15:18:07 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/it/LC_MESSAGES messages.po, 1.14, 1.15 Message-ID: <20071121141807.EB5B4600D47@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/it/LC_MESSAGES In directory doto:/tmp/cvs-serv24086/it/LC_MESSAGES Modified Files: messages.po Log Message: Updated .po file headers Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/it/LC_MESSAGES/messages.po,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- messages.po 21 Nov 2007 13:32:42 -0000 1.14 +++ messages.po 21 Nov 2007 14:18:04 -0000 1.15 @@ -1,19 +1,18 @@ -# This file is distributed under the same license as the PACKAGE package. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# This file is distributed under the same license as Kolab-Webadmin. +# Copyright (C) # Benoit Mortier , 2005. # msgid "" msgstr "" -"Project-Id-Version: messages\n" +"Project-Id-Version: Kolab-Webadmin Italian\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-11-21 14:25+0100\n" -"PO-Revision-Date: 2005-10-14 23:43+0100\n" +"PO-Revision-Date: 2007-11-21 14:56+0100\n" "Last-Translator: Yvette Agostini \n" -"Language-Team: \n" +"Language-Team: Kolab development coordination \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.9.1\n" #: tpl_messages.php:2 msgid "The address with DN" From cvs at kolab.org Wed Nov 21 15:18:06 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 15:18:06 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/es/LC_MESSAGES messages.po, 1.12, 1.13 Message-ID: <20071121141806.F1EC7600D65@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/es/LC_MESSAGES In directory doto:/tmp/cvs-serv24086/es/LC_MESSAGES Modified Files: messages.po Log Message: Updated .po file headers Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/es/LC_MESSAGES/messages.po,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- messages.po 21 Nov 2007 13:32:42 -0000 1.12 +++ messages.po 21 Nov 2007 14:18:04 -0000 1.13 @@ -1,22 +1,18 @@ -# translation of messages.po to Español -# translation of messages.po to -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. +# This file is distributed under the same license as Kolab-Webadmin. +# Copyright (C) +# Arón Galdón , 2007. # -# Arón , 2007. -# Aron Galdon , 2007. msgid "" msgstr "" -"Project-Id-Version: messages\n" +"Project-Id-Version: Kolab-Webadmin Spanish\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-11-21 14:25+0100\n" -"PO-Revision-Date: 2007-07-03 16:52+0200\n" +"PO-Revision-Date: 2007-11-21 14:56+0100\n" "Last-Translator: Aron Galdon \n" -"Language-Team: Español \n" +"Language-Team: Kolab development coordination \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" #: tpl_messages.php:2 msgid "The address with DN" From cvs at kolab.org Wed Nov 21 15:20:11 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 15:20:11 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES messages.po, 1.31, 1.32 Message-ID: <20071121142011.93384600D47@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES In directory doto:/tmp/cvs-serv24232/de/LC_MESSAGES Modified Files: messages.po Log Message: Updated German translations. Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES/messages.po,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- messages.po 21 Nov 2007 14:18:04 -0000 1.31 +++ messages.po 21 Nov 2007 14:20:09 -0000 1.32 @@ -100,7 +100,7 @@ #: tpl_messages.php:25 tpl_messages.php:81 tpl_messages.php:134 #: ../../../www/admin/user/index.php.in:187 msgid "UID" -msgstr "Benutzer-ID" +msgstr "UID" #: tpl_messages.php:27 tpl_messages.php:83 tpl_messages.php:136 msgid "Object Deleted, awaiting cleanup..." @@ -521,7 +521,7 @@ #: tpl_messages.php:106 msgid "(Mail Scanner)" -msgstr "" +msgstr "(E-Mail-Scanner)" #: tpl_messages.php:107 msgid "(HTTP Server)" @@ -1195,9 +1195,9 @@ #: ../../../www/admin/maintainer/maintainer.php.in:227 #: ../../../www/admin/sharedfolder/sf.php.in:235 #: ../../../www/admin/user/user.php.in:659 -#, fuzzy, php-format +#, php-format msgid "LDAP Error: could not modify %s to %s: %s" -msgstr "LDAP-Fehler: konnte Objekt %s nicht modifizieren: %s" +msgstr "LDAP-Fehler: Konnte %s nicht in %s ändern: %s" #: ../../../www/admin/addressbook/addr.php.in:209 #: ../../../www/admin/addressbook/addr.php.in:224 @@ -1276,8 +1276,8 @@ "Failure to remove addressbook entry from distribution list '%s', entry will " "not be deleted." msgstr "" -"Konnte die Adresse nicht aus der Verteilerliste entfernen; der Eintrag wird " -"nicht gelöscht." +"Konnte die Adresse nicht aus der Verteilerliste '%s' entfernen; der Eintrag " +"wird nicht gelöscht." #: ../../../www/admin/addressbook/addr.php.in:318 #, php-format @@ -1563,9 +1563,8 @@ msgstr "LDAP-Fehler: konnte %s nicht löschen: %s" #: ../../../www/admin/domainmaintainer/domainmaintainer.php.in:49 -#, fuzzy msgid "Please enter a uid value" -msgstr "Bitte geben Sie eine E-Mail-Adresse ein" +msgstr "Bitte geben Sie eine UID ein" #: ../../../www/admin/domainmaintainer/domainmaintainer.php.in:143 msgid "Check domains this domain maintainer should be able to maintain" @@ -1842,6 +1841,8 @@ "Suggest your system administrator to run \"pear install http://pear.php.net/" "get/Net_Sieve\" on the server" msgstr "" +"Empfehlen Sie Ihrem Systemadministrator, \"pear install http://pear.php.net/" +"get/Net_Sieve\" auf dem Server auszuführen." #: ../../../www/admin/user/deliver.php.in:66 #: ../../../www/admin/user/forward.php.in:70 @@ -1893,13 +1894,15 @@ #: ../../../www/admin/user/user.php.in:130 msgid "UID " -msgstr "Benutzer-ID " +msgstr "UID " #: ../../../www/admin/user/user.php.in:130 ../include/form.class.php:34 msgid "" " collides with an address already used for another user, a vCard or a " "distribution list.
    " msgstr "" +" kollidiert mit einer Adresse, die bereits für einen anderen Benutzer, eine " +"Visitenkarte oder eine Verteilerliste verwendet wird.
    " #: ../../../www/admin/user/user.php.in:145 #, php-format @@ -1912,19 +1915,16 @@ msgstr "Illegaler Benutzer oder Gruppe %s" #: ../../../www/admin/user/user.php.in:167 -#, fuzzy msgid "Free/Busy interval can not be negative" -msgstr "Plattenplatz kann nicht negativ sein" +msgstr "Frei/Belegt-Intervall kann nicht negativ sein" #: ../../../www/admin/user/user.php.in:168 -#, fuzzy msgid "Free/Busy interval must be a number" -msgstr "Plattenplatz muss kleiner sein als 4096" +msgstr "Frei/Belegt-Intervall muss eine Zahl sein" #: ../../../www/admin/user/user.php.in:169 -#, fuzzy msgid "Free/Busy interval must be an integer" -msgstr "Plattenplatz muss kleiner sein als 4096" +msgstr "Frei/Belegt-Intervall muss eine ganze Zahl sein" #: ../../../www/admin/user/user.php.in:409 msgid "Unique Identity (UID)" @@ -1992,6 +1992,8 @@ #: ../../../www/admin/user/user.php.in:436 msgid "Others allowed to send emails with a \"from\" address of this account." msgstr "" +"Andere, denen erlaubt ist, E-Mails mit einer \"From:\"-Adresse dieses Kontos " +"zu verschicken." #: ../../../www/admin/user/user.php.in:437 msgid "One email address per line." @@ -2164,19 +2166,18 @@ msgstr "Plattenplatz kann nicht negativ sein" #: ../include/form.class.php:47 -#, fuzzy msgid "Quota must be a number" -msgstr "Plattenplatz muss kleiner sein als 4096" +msgstr "Plattenplatz muss eine Zahl sein" #: ../include/form.class.php:48 -#, fuzzy msgid "Quota must be an integer" -msgstr "Plattenplatz muss kleiner sein als 4096" +msgstr "Plattenplatz muss eine ganze Zahl sein" #: ../include/form.class.php:55 msgid "" "Phone entries may only contain a-z, numbers and the characters ()-+/.=?:" msgstr "" +"Telefonnummern dürfen nur A-Z, Ziffern und die Zeichen ()-+/.=?: enthalten." #: ../include/form.class.php:118 msgid "

    " From cvs at kolab.org Wed Nov 21 15:20:22 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 15:20:22 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin ChangeLog,1.62,1.63 Message-ID: <20071121142022.E707A600D65@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin In directory doto:/tmp/cvs-serv24272 Modified Files: ChangeLog Log Message: Updated German translations. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/ChangeLog,v retrieving revision 1.62 retrieving revision 1.63 diff -u -d -r1.62 -r1.63 --- ChangeLog 21 Nov 2007 13:32:42 -0000 1.62 +++ ChangeLog 21 Nov 2007 14:20:20 -0000 1.63 @@ -5,6 +5,7 @@ * www/admin/user/deliver.php.in, www/admin/user/forward.php.in, www/admin/user/vacation.php.in: Don't use @bindir@ in strings marked for translation. + * de/LC_MESSAGES/messages.po: Updated German translations. 2007-11-16 Thomas Arendsen Hein From cvs at kolab.org Wed Nov 21 15:26:40 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 15:26:40 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin ChangeLog,1.63,1.64 Message-ID: <20071121142640.86FE1600D47@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin In directory doto:/tmp/cvs-serv24408 Modified Files: ChangeLog Log Message: Mark "Action to take for messages that fail the check" for translation and update .po files, including translation for German. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/ChangeLog,v retrieving revision 1.63 retrieving revision 1.64 diff -u -d -r1.63 -r1.64 --- ChangeLog 21 Nov 2007 14:20:20 -0000 1.63 +++ ChangeLog 21 Nov 2007 14:26:38 -0000 1.64 @@ -2,10 +2,21 @@ * www/admin/user/user.php.in: Renamed "Free/Busy future" to "Free/Busy interval" to be consistent with the user inteface. + * www/admin/user/deliver.php.in, www/admin/user/forward.php.in, www/admin/user/vacation.php.in: Don't use @bindir@ in strings marked for translation. + * de/LC_MESSAGES/messages.po: Updated German translations. + + * php/admin/templates/service.tpl, + php/admin/locale/de/LC_MESSAGES/messages.po, + php/admin/locale/es/LC_MESSAGES/messages.po, + php/admin/locale/fr/LC_MESSAGES/messages.po, + php/admin/locale/it/LC_MESSAGES/messages.po, + php/admin/locale/nl/LC_MESSAGES/messages.po: Mark "Action to take for + messages that fail the check" for translation and update .po files, + including translation for German. 2007-11-16 Thomas Arendsen Hein From cvs at kolab.org Wed Nov 21 15:26:40 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 15:26:40 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/fr/LC_MESSAGES messages.po, 1.18, 1.19 Message-ID: <20071121142640.AE252600D47@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/fr/LC_MESSAGES In directory doto:/tmp/cvs-serv24408/php/admin/locale/fr/LC_MESSAGES Modified Files: messages.po Log Message: Mark "Action to take for messages that fail the check" for translation and update .po files, including translation for German. Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/fr/LC_MESSAGES/messages.po,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- messages.po 21 Nov 2007 14:18:04 -0000 1.18 +++ messages.po 21 Nov 2007 14:26:38 -0000 1.19 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Kolab-Webadmin French\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-21 14:25+0100\n" +"POT-Creation-Date: 2007-11-21 15:22+0100\n" "PO-Revision-Date: 2007-11-21 14:56+0100\n" "Last-Translator: Jean-Michel LACROIX \n" "Language-Team: Kolab development coordination \n" @@ -20,7 +20,7 @@ msgstr "L'adresse de messagerie avec le DN" #: tpl_messages.php:3 tpl_messages.php:21 tpl_messages.php:77 -#: tpl_messages.php:130 tpl_messages.php:195 tpl_messages.php:213 +#: tpl_messages.php:130 tpl_messages.php:196 tpl_messages.php:214 msgid "has been deleted" msgstr "à été effacé" @@ -33,29 +33,29 @@ msgstr "(seulement les adresses externes sans un compte de messagerie Kolab)" #: tpl_messages.php:6 tpl_messages.php:15 tpl_messages.php:24 -#: tpl_messages.php:80 tpl_messages.php:133 tpl_messages.php:198 -#: tpl_messages.php:221 ../../../www/admin/addressbook/index.php.in:123 +#: tpl_messages.php:80 tpl_messages.php:133 tpl_messages.php:199 +#: tpl_messages.php:222 ../../../www/admin/addressbook/index.php.in:123 #: ../../../www/admin/user/index.php.in:185 msgid "Name" msgstr "Nom" #: tpl_messages.php:7 tpl_messages.php:16 tpl_messages.php:26 #: tpl_messages.php:70 tpl_messages.php:82 tpl_messages.php:135 -#: tpl_messages.php:179 tpl_messages.php:191 tpl_messages.php:201 -#: tpl_messages.php:224 +#: tpl_messages.php:179 tpl_messages.php:192 tpl_messages.php:202 +#: tpl_messages.php:225 msgid "Action" msgstr "Action" #: tpl_messages.php:8 tpl_messages.php:18 tpl_messages.php:28 #: tpl_messages.php:74 tpl_messages.php:84 tpl_messages.php:137 -#: tpl_messages.php:203 tpl_messages.php:226 +#: tpl_messages.php:204 tpl_messages.php:227 msgid "Modify" msgstr "Modifier" #: tpl_messages.php:9 tpl_messages.php:19 tpl_messages.php:29 #: tpl_messages.php:75 tpl_messages.php:85 tpl_messages.php:138 -#: tpl_messages.php:180 tpl_messages.php:192 tpl_messages.php:204 -#: tpl_messages.php:227 ../../../www/admin/addressbook/addr.php.in:283 +#: tpl_messages.php:180 tpl_messages.php:193 tpl_messages.php:205 +#: tpl_messages.php:228 ../../../www/admin/addressbook/addr.php.in:283 #: ../../../www/admin/administrator/admin.php.in:313 #: ../../../www/admin/distributionlist/list.php.in:300 #: ../../../www/admin/domainmaintainer/domainmaintainer.php.in:316 @@ -65,19 +65,19 @@ msgid "Delete" msgstr "Effacer" -#: tpl_messages.php:11 tpl_messages.php:216 tpl_messages.php:229 +#: tpl_messages.php:11 tpl_messages.php:217 tpl_messages.php:230 msgid "[ ALL ]" msgstr "[ Tous ]" -#: tpl_messages.php:12 tpl_messages.php:217 tpl_messages.php:230 +#: tpl_messages.php:12 tpl_messages.php:218 tpl_messages.php:231 msgid "[ OTHER ]" msgstr "[ Autres ]" -#: tpl_messages.php:13 tpl_messages.php:218 tpl_messages.php:231 +#: tpl_messages.php:13 tpl_messages.php:219 tpl_messages.php:232 msgid "Filter:" msgstr "Filtre:" -#: tpl_messages.php:14 tpl_messages.php:219 tpl_messages.php:232 +#: tpl_messages.php:14 tpl_messages.php:220 tpl_messages.php:233 msgid "Filter" msgstr "Filtre" @@ -314,7 +314,7 @@ #: tpl_messages.php:66 tpl_messages.php:93 tpl_messages.php:157 #: tpl_messages.php:161 tpl_messages.php:164 tpl_messages.php:167 #: tpl_messages.php:170 tpl_messages.php:173 tpl_messages.php:176 -#: tpl_messages.php:188 tpl_messages.php:242 +#: tpl_messages.php:189 tpl_messages.php:243 msgid "Update" msgstr "Mise a jour" @@ -894,7 +894,7 @@ msgid "Domain" msgstr "Domaine" -#: tpl_messages.php:181 tpl_messages.php:193 +#: tpl_messages.php:181 tpl_messages.php:194 msgid "Add" msgstr "Ajouter" @@ -917,6 +917,10 @@ "vérification ci dessus sont activées." #: tpl_messages.php:185 +msgid "Action to take for messages that fail the check:" +msgstr "" + +#: tpl_messages.php:186 msgid "" "Reject the message with the except if it originates from the outside but has " "a From header that matches the Kolab server's domain. In that case rewrite " @@ -926,11 +930,11 @@ "d'expéditeur qui correspond au domaine de Kolab. Si c'est le cas, l'en-tête " "est réécrite pour en informer le destinataire." -#: tpl_messages.php:186 +#: tpl_messages.php:187 msgid "Always reject the message." msgstr "Toujours rejeter" -#: tpl_messages.php:187 +#: tpl_messages.php:188 msgid "" "Note that enabling this setting will make the server reject any mail with " "non-matching sender and From header if the sender is an account on this " @@ -943,47 +947,47 @@ "messagerie sur ce serveur. Ceci arrive par exemple avec les listes de " "discutions." -#: tpl_messages.php:189 +#: tpl_messages.php:190 msgid "Kolab Hostnames (for Master and Slaves)" msgstr "Nom d'hôtes Kolab (pour serveur maître et esclaves)" -#: tpl_messages.php:190 +#: tpl_messages.php:191 msgid "Host" msgstr "Serveur" -#: tpl_messages.php:194 +#: tpl_messages.php:195 msgid "The shared folder with DN" msgstr "L'utilisateur avec le DN" -#: tpl_messages.php:196 +#: tpl_messages.php:197 msgid "Back to list of shared folders" msgstr "Retour à la liste des utilisateurs" -#: tpl_messages.php:197 +#: tpl_messages.php:198 msgid "Shared folders" msgstr "Dossier Partagés" -#: tpl_messages.php:199 +#: tpl_messages.php:200 msgid "Server" msgstr "Serveur" -#: tpl_messages.php:200 tpl_messages.php:220 +#: tpl_messages.php:201 tpl_messages.php:221 msgid "Type" msgstr "Type" -#: tpl_messages.php:202 +#: tpl_messages.php:203 msgid "Folder deleted, awaiting cleanup..." msgstr "Répertoire effacé, en attente de nettoyage..." -#: tpl_messages.php:205 tpl_messages.php:247 +#: tpl_messages.php:206 tpl_messages.php:248 msgid "Welcome to the Kolab administration interface" msgstr "Bienvenue dans l'interface d'administration de Kolab" -#: tpl_messages.php:206 +#: tpl_messages.php:207 msgid "NOTE:" msgstr "Note:" -#: tpl_messages.php:207 +#: tpl_messages.php:208 msgid "" "No account is configured to receive mail for administrative addresses. If " "you have not yet created an account for this, " @@ -992,51 +996,51 @@ "adresses administratives. Si vous n'avez pas encore crée un compte pour " "cela, veuillez le faire dès maintenant" -#: tpl_messages.php:208 +#: tpl_messages.php:209 msgid "please do so" msgstr "veuillez le faire" -#: tpl_messages.php:209 +#: tpl_messages.php:210 msgid "and then go" msgstr "et ensuite aller" -#: tpl_messages.php:210 +#: tpl_messages.php:211 msgid "here" msgstr "ici" -#: tpl_messages.php:211 +#: tpl_messages.php:212 msgid "to set up forwarding of mail to administrative email addresses." msgstr "pour configurer le renvoi des mail à une adresse administrative. " -#: tpl_messages.php:212 +#: tpl_messages.php:213 msgid "The user with DN" msgstr "L'utilisateur avec le DN" -#: tpl_messages.php:214 +#: tpl_messages.php:215 msgid "Back to list of users" msgstr "Retour à la liste des utilisateurs" -#: tpl_messages.php:215 tpl_messages.php:228 +#: tpl_messages.php:216 tpl_messages.php:229 msgid "Email Users" msgstr "addresse de messagerie des utilisateurs" -#: tpl_messages.php:222 +#: tpl_messages.php:223 msgid "E-mail" msgstr "Adresse de messagerie" -#: tpl_messages.php:223 +#: tpl_messages.php:224 msgid "uid" msgstr "uid" -#: tpl_messages.php:225 +#: tpl_messages.php:226 msgid "User Deleted, awaiting cleanup..." msgstr "Utilisateur effacé, en attente du nettoyage..." -#: tpl_messages.php:233 +#: tpl_messages.php:234 msgid "Vacation Notification" msgstr "Message d'absence" -#: tpl_messages.php:234 +#: tpl_messages.php:235 msgid "" "Activate vacation notification (only one of vacation, forward and delivery " "to folder can be active at any time)" @@ -1045,47 +1049,47 @@ "notification d'absence à la fois pour la réception ou la transmission dans " "un dossier.)" -#: tpl_messages.php:235 +#: tpl_messages.php:236 msgid "Resend notification only after" msgstr "Seulement renvoyer les notifications après" -#: tpl_messages.php:236 +#: tpl_messages.php:237 msgid "days" msgstr "jours" -#: tpl_messages.php:237 +#: tpl_messages.php:238 msgid "Send responses for these addresses:" msgstr "Envoyer des réponses pour ces adresses:" -#: tpl_messages.php:238 +#: tpl_messages.php:239 msgid "(one address per line)" msgstr "(une adresse par ligne)" -#: tpl_messages.php:239 +#: tpl_messages.php:240 msgid "Do not send vacation replies to spam messages" msgstr "Ne pas envoyer de messages d'absence au spam" -#: tpl_messages.php:240 +#: tpl_messages.php:241 msgid "Only react to mail coming from domain" msgstr "Réagir seulement au messages venant du domaine" -#: tpl_messages.php:241 +#: tpl_messages.php:242 msgid "(leave empty for all domains)" msgstr "(laisser vide pour tout les domaines)" -#: tpl_messages.php:243 +#: tpl_messages.php:244 msgid "Kolab2 Groupware Server Version" msgstr "Version du serveur de collaboration Kolab2" -#: tpl_messages.php:244 +#: tpl_messages.php:245 msgid "Kolab2 Groupware Server Component Versions" msgstr "Version des composants du serveur de collaboration Kolab2" -#: tpl_messages.php:245 +#: tpl_messages.php:246 msgid "Kolab2 Patched OpenPKG Package Versions" msgstr "Version modifiée des paquets OpenPKG" -#: tpl_messages.php:246 +#: tpl_messages.php:247 msgid "OpenPKG Version" msgstr "Version de OpenPKG" From cvs at kolab.org Wed Nov 21 15:26:40 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 15:26:40 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/templates service.tpl, 1.14, 1.15 Message-ID: <20071121142640.BF72C600D47@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/templates In directory doto:/tmp/cvs-serv24408/php/admin/templates Modified Files: service.tpl Log Message: Mark "Action to take for messages that fail the check" for translation and update .po files, including translation for German. Index: service.tpl =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/templates/service.tpl,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- service.tpl 25 Jan 2007 10:33:42 -0000 1.14 +++ service.tpl 21 Nov 2007 14:26:38 -0000 1.15 @@ -138,7 +138,7 @@ {tr msg="Use the Sender header instead of From for the above checks if Sender is present."}
    -

    Action to take for messages that fail the check:

    +

    {tr msg="Action to take for messages that fail the check:"}

    {tr msg="Reject the message with the except if it originates from the outside but has a From header that matches the Kolab server's domain. In that case rewrite the From header so the recipient can see the potential forgery."}
    From cvs at kolab.org Wed Nov 21 15:26:40 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 15:26:40 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/nl/LC_MESSAGES messages.po, 1.27, 1.28 Message-ID: <20071121142640.B8895600D65@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/nl/LC_MESSAGES In directory doto:/tmp/cvs-serv24408/php/admin/locale/nl/LC_MESSAGES Modified Files: messages.po Log Message: Mark "Action to take for messages that fail the check" for translation and update .po files, including translation for German. Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/nl/LC_MESSAGES/messages.po,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- messages.po 21 Nov 2007 14:18:04 -0000 1.27 +++ messages.po 21 Nov 2007 14:26:38 -0000 1.28 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Kolab-Webadmin Dutch\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-21 14:25+0100\n" +"POT-Creation-Date: 2007-11-21 15:22+0100\n" "PO-Revision-Date: 2007-11-21 14:56+0100\n" "Last-Translator: Richard Bos \n" "Language-Team: Kolab development coordination \n" @@ -20,7 +20,7 @@ msgstr "Het adres met DN" #: tpl_messages.php:3 tpl_messages.php:21 tpl_messages.php:77 -#: tpl_messages.php:130 tpl_messages.php:195 tpl_messages.php:213 +#: tpl_messages.php:130 tpl_messages.php:196 tpl_messages.php:214 msgid "has been deleted" msgstr "Is verwijderd" @@ -33,29 +33,29 @@ msgstr " (alleen externe adressen zonder Kolab gebruikersaccount) " #: tpl_messages.php:6 tpl_messages.php:15 tpl_messages.php:24 -#: tpl_messages.php:80 tpl_messages.php:133 tpl_messages.php:198 -#: tpl_messages.php:221 ../../../www/admin/addressbook/index.php.in:123 +#: tpl_messages.php:80 tpl_messages.php:133 tpl_messages.php:199 +#: tpl_messages.php:222 ../../../www/admin/addressbook/index.php.in:123 #: ../../../www/admin/user/index.php.in:185 msgid "Name" msgstr "Naam" #: tpl_messages.php:7 tpl_messages.php:16 tpl_messages.php:26 #: tpl_messages.php:70 tpl_messages.php:82 tpl_messages.php:135 -#: tpl_messages.php:179 tpl_messages.php:191 tpl_messages.php:201 -#: tpl_messages.php:224 +#: tpl_messages.php:179 tpl_messages.php:192 tpl_messages.php:202 +#: tpl_messages.php:225 msgid "Action" msgstr "Actie" #: tpl_messages.php:8 tpl_messages.php:18 tpl_messages.php:28 #: tpl_messages.php:74 tpl_messages.php:84 tpl_messages.php:137 -#: tpl_messages.php:203 tpl_messages.php:226 +#: tpl_messages.php:204 tpl_messages.php:227 msgid "Modify" msgstr "Wijzigen" #: tpl_messages.php:9 tpl_messages.php:19 tpl_messages.php:29 #: tpl_messages.php:75 tpl_messages.php:85 tpl_messages.php:138 -#: tpl_messages.php:180 tpl_messages.php:192 tpl_messages.php:204 -#: tpl_messages.php:227 ../../../www/admin/addressbook/addr.php.in:283 +#: tpl_messages.php:180 tpl_messages.php:193 tpl_messages.php:205 +#: tpl_messages.php:228 ../../../www/admin/addressbook/addr.php.in:283 #: ../../../www/admin/administrator/admin.php.in:313 #: ../../../www/admin/distributionlist/list.php.in:300 #: ../../../www/admin/domainmaintainer/domainmaintainer.php.in:316 @@ -65,19 +65,19 @@ msgid "Delete" msgstr "Verwijderen" -#: tpl_messages.php:11 tpl_messages.php:216 tpl_messages.php:229 +#: tpl_messages.php:11 tpl_messages.php:217 tpl_messages.php:230 msgid "[ ALL ]" msgstr "[ ALLE ]" -#: tpl_messages.php:12 tpl_messages.php:217 tpl_messages.php:230 +#: tpl_messages.php:12 tpl_messages.php:218 tpl_messages.php:231 msgid "[ OTHER ]" msgstr "[ Andere ]" -#: tpl_messages.php:13 tpl_messages.php:218 tpl_messages.php:231 +#: tpl_messages.php:13 tpl_messages.php:219 tpl_messages.php:232 msgid "Filter:" msgstr "Filter" -#: tpl_messages.php:14 tpl_messages.php:219 tpl_messages.php:232 +#: tpl_messages.php:14 tpl_messages.php:220 tpl_messages.php:233 msgid "Filter" msgstr "Filter" @@ -313,7 +313,7 @@ #: tpl_messages.php:66 tpl_messages.php:93 tpl_messages.php:157 #: tpl_messages.php:161 tpl_messages.php:164 tpl_messages.php:167 #: tpl_messages.php:170 tpl_messages.php:173 tpl_messages.php:176 -#: tpl_messages.php:188 tpl_messages.php:242 +#: tpl_messages.php:189 tpl_messages.php:243 msgid "Update" msgstr "Bijwerken" @@ -887,7 +887,7 @@ msgid "Domain" msgstr "Domein" -#: tpl_messages.php:181 tpl_messages.php:193 +#: tpl_messages.php:181 tpl_messages.php:194 msgid "Add" msgstr "Toevoegen" @@ -909,17 +909,21 @@ "indien aanwezig." #: tpl_messages.php:185 +msgid "Action to take for messages that fail the check:" +msgstr "" + +#: tpl_messages.php:186 msgid "" "Reject the message with the except if it originates from the outside but has " "a From header that matches the Kolab server's domain. In that case rewrite " "the From header so the recipient can see the potential forgery." msgstr "" -#: tpl_messages.php:186 +#: tpl_messages.php:187 msgid "Always reject the message." msgstr "Het bericht altijd afwijzen. " -#: tpl_messages.php:187 +#: tpl_messages.php:188 msgid "" "Note that enabling this setting will make the server reject any mail with " "non-matching sender and From header if the sender is an account on this " @@ -931,47 +935,47 @@ "afzender een account heeft op deze server. Dit gebeurt soms met " "mailinglijsten." -#: tpl_messages.php:189 +#: tpl_messages.php:190 msgid "Kolab Hostnames (for Master and Slaves)" msgstr "Kolab hostnamen (voor Master en Slaves)" -#: tpl_messages.php:190 +#: tpl_messages.php:191 msgid "Host" msgstr "Host" -#: tpl_messages.php:194 +#: tpl_messages.php:195 msgid "The shared folder with DN" msgstr "De gedeelde folder met DN" -#: tpl_messages.php:196 +#: tpl_messages.php:197 msgid "Back to list of shared folders" msgstr "Terug naar de lijst van de gebruikers" -#: tpl_messages.php:197 +#: tpl_messages.php:198 msgid "Shared folders" msgstr "Gedeelde mappen" -#: tpl_messages.php:199 +#: tpl_messages.php:200 msgid "Server" msgstr "Server" -#: tpl_messages.php:200 tpl_messages.php:220 +#: tpl_messages.php:201 tpl_messages.php:221 msgid "Type" msgstr "Soort" -#: tpl_messages.php:202 +#: tpl_messages.php:203 msgid "Folder deleted, awaiting cleanup..." msgstr "Map verwijderd, wacht op opruiming... " -#: tpl_messages.php:205 tpl_messages.php:247 +#: tpl_messages.php:206 tpl_messages.php:248 msgid "Welcome to the Kolab administration interface" msgstr "Welkom op Kolab beheersinterface" -#: tpl_messages.php:206 +#: tpl_messages.php:207 msgid "NOTE:" msgstr "OPMERKING:" -#: tpl_messages.php:207 +#: tpl_messages.php:208 msgid "" "No account is configured to receive mail for administrative addresses. If " "you have not yet created an account for this, " @@ -980,52 +984,52 @@ "adressen. Als je daarvoor nog geen account aangemaakt hebt, gelieve er één " "aan te maken en ga dan verder " -#: tpl_messages.php:208 +#: tpl_messages.php:209 msgid "please do so" msgstr "doe dat" -#: tpl_messages.php:209 +#: tpl_messages.php:210 msgid "and then go" msgstr "en ga dan naar" -#: tpl_messages.php:210 +#: tpl_messages.php:211 msgid "here" msgstr "hier" -#: tpl_messages.php:211 +#: tpl_messages.php:212 msgid "to set up forwarding of mail to administrative email addresses." msgstr "" "Om het doorsturen van mail naar administratieve E-mailadressen in te stellen." -#: tpl_messages.php:212 +#: tpl_messages.php:213 msgid "The user with DN" msgstr "De gebruiker met DN" -#: tpl_messages.php:214 +#: tpl_messages.php:215 msgid "Back to list of users" msgstr "Terug naar de lijst van de gebruikers" -#: tpl_messages.php:215 tpl_messages.php:228 +#: tpl_messages.php:216 tpl_messages.php:229 msgid "Email Users" msgstr "Gebruikers E-mail" -#: tpl_messages.php:222 +#: tpl_messages.php:223 msgid "E-mail" msgstr "E-mail" -#: tpl_messages.php:223 +#: tpl_messages.php:224 msgid "uid" msgstr "uid" -#: tpl_messages.php:225 +#: tpl_messages.php:226 msgid "User Deleted, awaiting cleanup..." msgstr "Gebruiker verwijderd, wacht op opruiming..." -#: tpl_messages.php:233 +#: tpl_messages.php:234 msgid "Vacation Notification" msgstr "Afwezigheidsbericht" -#: tpl_messages.php:234 +#: tpl_messages.php:235 msgid "" "Activate vacation notification (only one of vacation, forward and delivery " "to folder can be active at any time)" @@ -1033,47 +1037,47 @@ "Activeer afwezigheidsbericht (enkel één vakantie, forward en aflevering 's " "folder kan tegelijkertijd geactieveerd zijn)" -#: tpl_messages.php:235 +#: tpl_messages.php:236 msgid "Resend notification only after" msgstr "Stuur mededeling enkel na " -#: tpl_messages.php:236 +#: tpl_messages.php:237 msgid "days" msgstr "dagen" -#: tpl_messages.php:237 +#: tpl_messages.php:238 msgid "Send responses for these addresses:" msgstr "Stuur antwoorden voor deze adressen:" -#: tpl_messages.php:238 +#: tpl_messages.php:239 msgid "(one address per line)" msgstr "(een adres per lijn)" -#: tpl_messages.php:239 +#: tpl_messages.php:240 msgid "Do not send vacation replies to spam messages" msgstr "Geen afwezigheidsberichten sturen naar spam" -#: tpl_messages.php:240 +#: tpl_messages.php:241 msgid "Only react to mail coming from domain" msgstr "Reageer alleen op mail afkomstig van het domein" -#: tpl_messages.php:241 +#: tpl_messages.php:242 msgid "(leave empty for all domains)" msgstr "(leeg laten voor alle domeinen)" -#: tpl_messages.php:243 +#: tpl_messages.php:244 msgid "Kolab2 Groupware Server Version" msgstr "Kolab2 Groupware Server Versie" -#: tpl_messages.php:244 +#: tpl_messages.php:245 msgid "Kolab2 Groupware Server Component Versions" msgstr "Kolab2 Groupware Server Component Versies" -#: tpl_messages.php:245 +#: tpl_messages.php:246 msgid "Kolab2 Patched OpenPKG Package Versions" msgstr "Kolab2 Patched OpenPKG Package Versies" -#: tpl_messages.php:246 +#: tpl_messages.php:247 msgid "OpenPKG Version" msgstr "OpenPKG Versie" From cvs at kolab.org Wed Nov 21 15:26:40 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 15:26:40 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/it/LC_MESSAGES messages.po, 1.15, 1.16 Message-ID: <20071121142640.B365C600D62@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/it/LC_MESSAGES In directory doto:/tmp/cvs-serv24408/php/admin/locale/it/LC_MESSAGES Modified Files: messages.po Log Message: Mark "Action to take for messages that fail the check" for translation and update .po files, including translation for German. Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/it/LC_MESSAGES/messages.po,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- messages.po 21 Nov 2007 14:18:04 -0000 1.15 +++ messages.po 21 Nov 2007 14:26:38 -0000 1.16 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Kolab-Webadmin Italian\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-21 14:25+0100\n" +"POT-Creation-Date: 2007-11-21 15:22+0100\n" "PO-Revision-Date: 2007-11-21 14:56+0100\n" "Last-Translator: Yvette Agostini \n" "Language-Team: Kolab development coordination \n" @@ -19,7 +19,7 @@ msgstr "L'indirizzo con il DN" #: tpl_messages.php:3 tpl_messages.php:21 tpl_messages.php:77 -#: tpl_messages.php:130 tpl_messages.php:195 tpl_messages.php:213 +#: tpl_messages.php:130 tpl_messages.php:196 tpl_messages.php:214 msgid "has been deleted" msgstr "è stato cancellato" @@ -32,29 +32,29 @@ msgstr "(solo indirizzi esterni senza account utente Kolab)" #: tpl_messages.php:6 tpl_messages.php:15 tpl_messages.php:24 -#: tpl_messages.php:80 tpl_messages.php:133 tpl_messages.php:198 -#: tpl_messages.php:221 ../../../www/admin/addressbook/index.php.in:123 +#: tpl_messages.php:80 tpl_messages.php:133 tpl_messages.php:199 +#: tpl_messages.php:222 ../../../www/admin/addressbook/index.php.in:123 #: ../../../www/admin/user/index.php.in:185 msgid "Name" msgstr "Nome" #: tpl_messages.php:7 tpl_messages.php:16 tpl_messages.php:26 #: tpl_messages.php:70 tpl_messages.php:82 tpl_messages.php:135 -#: tpl_messages.php:179 tpl_messages.php:191 tpl_messages.php:201 -#: tpl_messages.php:224 +#: tpl_messages.php:179 tpl_messages.php:192 tpl_messages.php:202 +#: tpl_messages.php:225 msgid "Action" msgstr "Azione" #: tpl_messages.php:8 tpl_messages.php:18 tpl_messages.php:28 #: tpl_messages.php:74 tpl_messages.php:84 tpl_messages.php:137 -#: tpl_messages.php:203 tpl_messages.php:226 +#: tpl_messages.php:204 tpl_messages.php:227 msgid "Modify" msgstr "Modifica" #: tpl_messages.php:9 tpl_messages.php:19 tpl_messages.php:29 #: tpl_messages.php:75 tpl_messages.php:85 tpl_messages.php:138 -#: tpl_messages.php:180 tpl_messages.php:192 tpl_messages.php:204 -#: tpl_messages.php:227 ../../../www/admin/addressbook/addr.php.in:283 +#: tpl_messages.php:180 tpl_messages.php:193 tpl_messages.php:205 +#: tpl_messages.php:228 ../../../www/admin/addressbook/addr.php.in:283 #: ../../../www/admin/administrator/admin.php.in:313 #: ../../../www/admin/distributionlist/list.php.in:300 #: ../../../www/admin/domainmaintainer/domainmaintainer.php.in:316 @@ -64,19 +64,19 @@ msgid "Delete" msgstr "Cancella" -#: tpl_messages.php:11 tpl_messages.php:216 tpl_messages.php:229 +#: tpl_messages.php:11 tpl_messages.php:217 tpl_messages.php:230 msgid "[ ALL ]" msgstr "[ TUTTI ]" -#: tpl_messages.php:12 tpl_messages.php:217 tpl_messages.php:230 +#: tpl_messages.php:12 tpl_messages.php:218 tpl_messages.php:231 msgid "[ OTHER ]" msgstr "[ ALTRI ]" -#: tpl_messages.php:13 tpl_messages.php:218 tpl_messages.php:231 +#: tpl_messages.php:13 tpl_messages.php:219 tpl_messages.php:232 msgid "Filter:" msgstr "Filtro:" -#: tpl_messages.php:14 tpl_messages.php:219 tpl_messages.php:232 +#: tpl_messages.php:14 tpl_messages.php:220 tpl_messages.php:233 msgid "Filter" msgstr "Filtro" @@ -313,7 +313,7 @@ #: tpl_messages.php:66 tpl_messages.php:93 tpl_messages.php:157 #: tpl_messages.php:161 tpl_messages.php:164 tpl_messages.php:167 #: tpl_messages.php:170 tpl_messages.php:173 tpl_messages.php:176 -#: tpl_messages.php:188 tpl_messages.php:242 +#: tpl_messages.php:189 tpl_messages.php:243 msgid "Update" msgstr "Aggiorna" @@ -897,7 +897,7 @@ msgid "Domain" msgstr "Dominio" -#: tpl_messages.php:181 tpl_messages.php:193 +#: tpl_messages.php:181 tpl_messages.php:194 msgid "Add" msgstr "Aggiungi" @@ -920,6 +920,10 @@ "Sender è presente." #: tpl_messages.php:185 +msgid "Action to take for messages that fail the check:" +msgstr "" + +#: tpl_messages.php:186 msgid "" "Reject the message with the except if it originates from the outside but has " "a From header that matches the Kolab server's domain. In that case rewrite " @@ -930,11 +934,11 @@ "riscrivi l'intestazione From in maniera tale che il destinatario possa " "constatare la possibile falsificazione." -#: tpl_messages.php:186 +#: tpl_messages.php:187 msgid "Always reject the message." msgstr "Rifiuta sempre il messaggio" -#: tpl_messages.php:187 +#: tpl_messages.php:188 msgid "" "Note that enabling this setting will make the server reject any mail with " "non-matching sender and From header if the sender is an account on this " @@ -945,49 +949,49 @@ "il mittente è un account sul server. Questo è una riconosciuta fonte di " "problemi come ad esempio le mailinglist." -#: tpl_messages.php:189 +#: tpl_messages.php:190 msgid "Kolab Hostnames (for Master and Slaves)" msgstr "" -#: tpl_messages.php:190 +#: tpl_messages.php:191 msgid "Host" msgstr "Server" -#: tpl_messages.php:194 +#: tpl_messages.php:195 #, fuzzy msgid "The shared folder with DN" msgstr "L'utente con DN" -#: tpl_messages.php:196 +#: tpl_messages.php:197 #, fuzzy msgid "Back to list of shared folders" msgstr "Ritorna alla lista degli utenti" -#: tpl_messages.php:197 +#: tpl_messages.php:198 msgid "Shared folders" msgstr "Cartelle condivise" -#: tpl_messages.php:199 +#: tpl_messages.php:200 msgid "Server" msgstr "Server" -#: tpl_messages.php:200 tpl_messages.php:220 +#: tpl_messages.php:201 tpl_messages.php:221 msgid "Type" msgstr "Tipo" -#: tpl_messages.php:202 +#: tpl_messages.php:203 msgid "Folder deleted, awaiting cleanup..." msgstr "Cartella cancellata, in attesa della pulizia..." -#: tpl_messages.php:205 tpl_messages.php:247 +#: tpl_messages.php:206 tpl_messages.php:248 msgid "Welcome to the Kolab administration interface" msgstr "Benvenuto all'interfaccia di amministrazione di Kolab" -#: tpl_messages.php:206 +#: tpl_messages.php:207 msgid "NOTE:" msgstr "NOTA:" -#: tpl_messages.php:207 +#: tpl_messages.php:208 #, fuzzy msgid "" "No account is configured to receive mail for administrative addresses. If " @@ -997,51 +1001,51 @@ "amministrativi. Se non è stato ancora creato un account per questo, fatelo " "prima di proseguire" -#: tpl_messages.php:208 +#: tpl_messages.php:209 msgid "please do so" msgstr "" -#: tpl_messages.php:209 +#: tpl_messages.php:210 msgid "and then go" msgstr "" -#: tpl_messages.php:210 +#: tpl_messages.php:211 msgid "here" msgstr "qui" -#: tpl_messages.php:211 +#: tpl_messages.php:212 msgid "to set up forwarding of mail to administrative email addresses." msgstr "per impostare l'inoltro delle email a degli indirizzi amministrativi." -#: tpl_messages.php:212 +#: tpl_messages.php:213 msgid "The user with DN" msgstr "L'utente con DN" -#: tpl_messages.php:214 +#: tpl_messages.php:215 msgid "Back to list of users" msgstr "Ritorna alla lista degli utenti" -#: tpl_messages.php:215 tpl_messages.php:228 +#: tpl_messages.php:216 tpl_messages.php:229 msgid "Email Users" msgstr "Utenti Email" -#: tpl_messages.php:222 +#: tpl_messages.php:223 msgid "E-mail" msgstr "E-mail" -#: tpl_messages.php:223 +#: tpl_messages.php:224 msgid "uid" msgstr "uid" -#: tpl_messages.php:225 +#: tpl_messages.php:226 msgid "User Deleted, awaiting cleanup..." msgstr "Utente cancellato, in attesa di pulizia..." -#: tpl_messages.php:233 +#: tpl_messages.php:234 msgid "Vacation Notification" msgstr "Notifica di assenza" -#: tpl_messages.php:234 +#: tpl_messages.php:235 msgid "" "Activate vacation notification (only one of vacation, forward and delivery " "to folder can be active at any time)" @@ -1049,47 +1053,47 @@ "Attiva notifica d'assenza (solo uno tra assenza, inoltro e invio in " "cartella può essere attivo allo stesso tempo)" -#: tpl_messages.php:235 +#: tpl_messages.php:236 msgid "Resend notification only after" msgstr "Rispedisci la notifica solo dopo" -#: tpl_messages.php:236 +#: tpl_messages.php:237 msgid "days" msgstr "giorni" -#: tpl_messages.php:237 +#: tpl_messages.php:238 msgid "Send responses for these addresses:" msgstr "Invia risposte per questi indirizzi:" -#: tpl_messages.php:238 +#: tpl_messages.php:239 msgid "(one address per line)" msgstr "(un indirizzo per linea)" -#: tpl_messages.php:239 +#: tpl_messages.php:240 msgid "Do not send vacation replies to spam messages" msgstr "Non inviare le risposte automatiche di assenza ai messaggi di spam" -#: tpl_messages.php:240 +#: tpl_messages.php:241 msgid "Only react to mail coming from domain" msgstr "Reagisci solo alle mail in arrivo dal dominio" -#: tpl_messages.php:241 +#: tpl_messages.php:242 msgid "(leave empty for all domains)" msgstr "(lasciare vuoto per tutti i domini)" -#: tpl_messages.php:243 +#: tpl_messages.php:244 msgid "Kolab2 Groupware Server Version" msgstr "Versione Server Groupware Kolab2 " -#: tpl_messages.php:244 +#: tpl_messages.php:245 msgid "Kolab2 Groupware Server Component Versions" msgstr "Versione Componenti Server Groupware Kolab2" -#: tpl_messages.php:245 +#: tpl_messages.php:246 msgid "Kolab2 Patched OpenPKG Package Versions" msgstr "Versioni Modificate dei Pacchetti OpenPKG" -#: tpl_messages.php:246 +#: tpl_messages.php:247 msgid "OpenPKG Version" msgstr "Versione OpenPKG" From cvs at kolab.org Wed Nov 21 15:26:40 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 15:26:40 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/es/LC_MESSAGES messages.po, 1.13, 1.14 Message-ID: <20071121142640.C50BF600D67@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/es/LC_MESSAGES In directory doto:/tmp/cvs-serv24408/php/admin/locale/es/LC_MESSAGES Modified Files: messages.po Log Message: Mark "Action to take for messages that fail the check" for translation and update .po files, including translation for German. Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/es/LC_MESSAGES/messages.po,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- messages.po 21 Nov 2007 14:18:04 -0000 1.13 +++ messages.po 21 Nov 2007 14:26:38 -0000 1.14 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Kolab-Webadmin Spanish\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-21 14:25+0100\n" +"POT-Creation-Date: 2007-11-21 15:22+0100\n" "PO-Revision-Date: 2007-11-21 14:56+0100\n" "Last-Translator: Aron Galdon \n" "Language-Team: Kolab development coordination \n" @@ -19,7 +19,7 @@ msgstr "La dirección con DN" #: tpl_messages.php:3 tpl_messages.php:21 tpl_messages.php:77 -#: tpl_messages.php:130 tpl_messages.php:195 tpl_messages.php:213 +#: tpl_messages.php:130 tpl_messages.php:196 tpl_messages.php:214 msgid "has been deleted" msgstr "ha sido borrado" @@ -32,29 +32,29 @@ msgstr "(sólo direcciones externas con una cuenta de usuario kolab)" #: tpl_messages.php:6 tpl_messages.php:15 tpl_messages.php:24 -#: tpl_messages.php:80 tpl_messages.php:133 tpl_messages.php:198 -#: tpl_messages.php:221 ../../../www/admin/addressbook/index.php.in:123 +#: tpl_messages.php:80 tpl_messages.php:133 tpl_messages.php:199 +#: tpl_messages.php:222 ../../../www/admin/addressbook/index.php.in:123 #: ../../../www/admin/user/index.php.in:185 msgid "Name" msgstr "Nombre" #: tpl_messages.php:7 tpl_messages.php:16 tpl_messages.php:26 #: tpl_messages.php:70 tpl_messages.php:82 tpl_messages.php:135 -#: tpl_messages.php:179 tpl_messages.php:191 tpl_messages.php:201 -#: tpl_messages.php:224 +#: tpl_messages.php:179 tpl_messages.php:192 tpl_messages.php:202 +#: tpl_messages.php:225 msgid "Action" msgstr "Acción" #: tpl_messages.php:8 tpl_messages.php:18 tpl_messages.php:28 #: tpl_messages.php:74 tpl_messages.php:84 tpl_messages.php:137 -#: tpl_messages.php:203 tpl_messages.php:226 +#: tpl_messages.php:204 tpl_messages.php:227 msgid "Modify" msgstr "Modificar" #: tpl_messages.php:9 tpl_messages.php:19 tpl_messages.php:29 #: tpl_messages.php:75 tpl_messages.php:85 tpl_messages.php:138 -#: tpl_messages.php:180 tpl_messages.php:192 tpl_messages.php:204 -#: tpl_messages.php:227 ../../../www/admin/addressbook/addr.php.in:283 +#: tpl_messages.php:180 tpl_messages.php:193 tpl_messages.php:205 +#: tpl_messages.php:228 ../../../www/admin/addressbook/addr.php.in:283 #: ../../../www/admin/administrator/admin.php.in:313 #: ../../../www/admin/distributionlist/list.php.in:300 #: ../../../www/admin/domainmaintainer/domainmaintainer.php.in:316 @@ -64,19 +64,19 @@ msgid "Delete" msgstr "Borrar" -#: tpl_messages.php:11 tpl_messages.php:216 tpl_messages.php:229 +#: tpl_messages.php:11 tpl_messages.php:217 tpl_messages.php:230 msgid "[ ALL ]" msgstr "[ TODOS ]" -#: tpl_messages.php:12 tpl_messages.php:217 tpl_messages.php:230 +#: tpl_messages.php:12 tpl_messages.php:218 tpl_messages.php:231 msgid "[ OTHER ]" msgstr "[ OTROS ]" -#: tpl_messages.php:13 tpl_messages.php:218 tpl_messages.php:231 +#: tpl_messages.php:13 tpl_messages.php:219 tpl_messages.php:232 msgid "Filter:" msgstr "Filtro:" -#: tpl_messages.php:14 tpl_messages.php:219 tpl_messages.php:232 +#: tpl_messages.php:14 tpl_messages.php:220 tpl_messages.php:233 msgid "Filter" msgstr "Filtro" @@ -313,7 +313,7 @@ #: tpl_messages.php:66 tpl_messages.php:93 tpl_messages.php:157 #: tpl_messages.php:161 tpl_messages.php:164 tpl_messages.php:167 #: tpl_messages.php:170 tpl_messages.php:173 tpl_messages.php:176 -#: tpl_messages.php:188 tpl_messages.php:242 +#: tpl_messages.php:189 tpl_messages.php:243 msgid "Update" msgstr "Actualizar" @@ -897,7 +897,7 @@ msgid "Domain" msgstr "Dominio" -#: tpl_messages.php:181 tpl_messages.php:193 +#: tpl_messages.php:181 tpl_messages.php:194 msgid "Add" msgstr "Añadir" @@ -920,6 +920,10 @@ "remitente está presente." #: tpl_messages.php:185 +msgid "Action to take for messages that fail the check:" +msgstr "" + +#: tpl_messages.php:186 msgid "" "Reject the message with the except if it originates from the outside but has " "a From header that matches the Kolab server's domain. In that case rewrite " @@ -930,11 +934,11 @@ "reescribe la cabecera From de modo que el recipiente pueda ver la potencial " "falsificación." -#: tpl_messages.php:186 +#: tpl_messages.php:187 msgid "Always reject the message." msgstr "Rechazar siempre el mensaje." -#: tpl_messages.php:187 +#: tpl_messages.php:188 msgid "" "Note that enabling this setting will make the server reject any mail with " "non-matching sender and From header if the sender is an account on this " @@ -945,47 +949,47 @@ "una cuenta de este servidor. Es sabido que puede causar problemas con listas " "de correo." -#: tpl_messages.php:189 +#: tpl_messages.php:190 msgid "Kolab Hostnames (for Master and Slaves)" msgstr "Nombres de host Kolab (para Maestro y Esclavos)" -#: tpl_messages.php:190 +#: tpl_messages.php:191 msgid "Host" msgstr "" -#: tpl_messages.php:194 +#: tpl_messages.php:195 msgid "The shared folder with DN" msgstr "La carpeta compartida con DN" -#: tpl_messages.php:196 +#: tpl_messages.php:197 msgid "Back to list of shared folders" msgstr "Volver a la lista de carpetas compartidas" -#: tpl_messages.php:197 +#: tpl_messages.php:198 msgid "Shared folders" msgstr "Carpetas compartidas" -#: tpl_messages.php:199 +#: tpl_messages.php:200 msgid "Server" msgstr "Servidor" -#: tpl_messages.php:200 tpl_messages.php:220 +#: tpl_messages.php:201 tpl_messages.php:221 msgid "Type" msgstr "Tipo" -#: tpl_messages.php:202 +#: tpl_messages.php:203 msgid "Folder deleted, awaiting cleanup..." msgstr "Carpeta borrada, esperando limpieza..." -#: tpl_messages.php:205 tpl_messages.php:247 +#: tpl_messages.php:206 tpl_messages.php:248 msgid "Welcome to the Kolab administration interface" msgstr "Bienvenida al interfaz de administración de Kolab" -#: tpl_messages.php:206 +#: tpl_messages.php:207 msgid "NOTE:" msgstr "NOTA:" -#: tpl_messages.php:207 +#: tpl_messages.php:208 msgid "" "No account is configured to receive mail for administrative addresses. If " "you have not yet created an account for this, " @@ -993,51 +997,51 @@ "No hay un cuenta configurada para recibir mensajes de direcciones " "administrativas. Si todavía no ha creado una cuenta para ello," -#: tpl_messages.php:208 +#: tpl_messages.php:209 msgid "please do so" msgstr "por favor hacer así" -#: tpl_messages.php:209 +#: tpl_messages.php:210 msgid "and then go" msgstr "y entonces vamos" -#: tpl_messages.php:210 +#: tpl_messages.php:211 msgid "here" msgstr "aquí" -#: tpl_messages.php:211 +#: tpl_messages.php:212 msgid "to set up forwarding of mail to administrative email addresses." msgstr "para establecer el envío de correo a las direcciones administrativas." -#: tpl_messages.php:212 +#: tpl_messages.php:213 msgid "The user with DN" msgstr "El usuario con DN" -#: tpl_messages.php:214 +#: tpl_messages.php:215 msgid "Back to list of users" msgstr "Volver a la lista de usuarios" -#: tpl_messages.php:215 tpl_messages.php:228 +#: tpl_messages.php:216 tpl_messages.php:229 msgid "Email Users" msgstr "Usuario de correo electrónico" -#: tpl_messages.php:222 +#: tpl_messages.php:223 msgid "E-mail" msgstr "Correo electrónico" -#: tpl_messages.php:223 +#: tpl_messages.php:224 msgid "uid" msgstr "" -#: tpl_messages.php:225 +#: tpl_messages.php:226 msgid "User Deleted, awaiting cleanup..." msgstr "Usuario borrado, esperando limpieza..." -#: tpl_messages.php:233 +#: tpl_messages.php:234 msgid "Vacation Notification" msgstr "Notificación de vacaciones" -#: tpl_messages.php:234 +#: tpl_messages.php:235 msgid "" "Activate vacation notification (only one of vacation, forward and delivery " "to folder can be active at any time)" @@ -1045,47 +1049,47 @@ "Activar la notificación de vacaciones (sólo una por periodo vacacional, " "envío y recepción a carpeta pueden ser activados en cualquier momento)" -#: tpl_messages.php:235 +#: tpl_messages.php:236 msgid "Resend notification only after" msgstr "Reenviar notificación sólo después" -#: tpl_messages.php:236 +#: tpl_messages.php:237 msgid "days" msgstr "días" -#: tpl_messages.php:237 +#: tpl_messages.php:238 msgid "Send responses for these addresses:" msgstr "Enviar respuestas para estas direcciones:" -#: tpl_messages.php:238 +#: tpl_messages.php:239 msgid "(one address per line)" msgstr "(una dirección por línea)" -#: tpl_messages.php:239 +#: tpl_messages.php:240 msgid "Do not send vacation replies to spam messages" msgstr "No enviar respuestas de vacaciones a mensajes de correo basura" -#: tpl_messages.php:240 +#: tpl_messages.php:241 msgid "Only react to mail coming from domain" msgstr "Reaccionar sólo a los mensajes que vengan del dominio" -#: tpl_messages.php:241 +#: tpl_messages.php:242 msgid "(leave empty for all domains)" msgstr "(dejar vacío para todos los dominios)" -#: tpl_messages.php:243 +#: tpl_messages.php:244 msgid "Kolab2 Groupware Server Version" msgstr "Servidor Groupware Kolab2 Versión" -#: tpl_messages.php:244 +#: tpl_messages.php:245 msgid "Kolab2 Groupware Server Component Versions" msgstr "Componentes del Servidor groupware Kolab2 Versiones" -#: tpl_messages.php:245 +#: tpl_messages.php:246 msgid "Kolab2 Patched OpenPKG Package Versions" msgstr "Paquetes Kolab2 OpenPKG Parcheados Versiones" -#: tpl_messages.php:246 +#: tpl_messages.php:247 msgid "OpenPKG Version" msgstr "OpenPKG Versión" From cvs at kolab.org Wed Nov 21 15:26:40 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 15:26:40 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES messages.po, 1.32, 1.33 Message-ID: <20071121142640.C0569600D66@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES In directory doto:/tmp/cvs-serv24408/php/admin/locale/de/LC_MESSAGES Modified Files: messages.po Log Message: Mark "Action to take for messages that fail the check" for translation and update .po files, including translation for German. Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES/messages.po,v retrieving revision 1.32 retrieving revision 1.33 diff -u -d -r1.32 -r1.33 --- messages.po 21 Nov 2007 14:20:09 -0000 1.32 +++ messages.po 21 Nov 2007 14:26:38 -0000 1.33 @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: Kolab-Webadmin German\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-21 14:29+0100\n" -"PO-Revision-Date: 2007-11-21 14:56+0100\n" +"POT-Creation-Date: 2007-11-21 15:22+0100\n" +"PO-Revision-Date: 2007-11-21 15:23+0100\n" "Last-Translator: Thomas Arendsen Hein \n" "Language-Team: Kolab development coordination \n" "MIME-Version: 1.0\n" @@ -20,7 +20,7 @@ msgstr "Die Adresse mit DN" #: tpl_messages.php:3 tpl_messages.php:21 tpl_messages.php:77 -#: tpl_messages.php:130 tpl_messages.php:195 tpl_messages.php:213 +#: tpl_messages.php:130 tpl_messages.php:196 tpl_messages.php:214 msgid "has been deleted" msgstr "wurde gelöscht" @@ -33,29 +33,29 @@ msgstr "(nur externe Adresse ohne Kolab-Benutzerkonto)" #: tpl_messages.php:6 tpl_messages.php:15 tpl_messages.php:24 -#: tpl_messages.php:80 tpl_messages.php:133 tpl_messages.php:198 -#: tpl_messages.php:221 ../../../www/admin/addressbook/index.php.in:123 +#: tpl_messages.php:80 tpl_messages.php:133 tpl_messages.php:199 +#: tpl_messages.php:222 ../../../www/admin/addressbook/index.php.in:123 #: ../../../www/admin/user/index.php.in:185 msgid "Name" msgstr "Name" #: tpl_messages.php:7 tpl_messages.php:16 tpl_messages.php:26 #: tpl_messages.php:70 tpl_messages.php:82 tpl_messages.php:135 -#: tpl_messages.php:179 tpl_messages.php:191 tpl_messages.php:201 -#: tpl_messages.php:224 +#: tpl_messages.php:179 tpl_messages.php:192 tpl_messages.php:202 +#: tpl_messages.php:225 msgid "Action" msgstr "Aktion" #: tpl_messages.php:8 tpl_messages.php:18 tpl_messages.php:28 #: tpl_messages.php:74 tpl_messages.php:84 tpl_messages.php:137 -#: tpl_messages.php:203 tpl_messages.php:226 +#: tpl_messages.php:204 tpl_messages.php:227 msgid "Modify" msgstr "Verändern" #: tpl_messages.php:9 tpl_messages.php:19 tpl_messages.php:29 #: tpl_messages.php:75 tpl_messages.php:85 tpl_messages.php:138 -#: tpl_messages.php:180 tpl_messages.php:192 tpl_messages.php:204 -#: tpl_messages.php:227 ../../../www/admin/addressbook/addr.php.in:283 +#: tpl_messages.php:180 tpl_messages.php:193 tpl_messages.php:205 +#: tpl_messages.php:228 ../../../www/admin/addressbook/addr.php.in:283 #: ../../../www/admin/administrator/admin.php.in:313 #: ../../../www/admin/distributionlist/list.php.in:300 #: ../../../www/admin/domainmaintainer/domainmaintainer.php.in:316 @@ -65,19 +65,19 @@ msgid "Delete" msgstr "Löschen" -#: tpl_messages.php:11 tpl_messages.php:216 tpl_messages.php:229 +#: tpl_messages.php:11 tpl_messages.php:217 tpl_messages.php:230 msgid "[ ALL ]" msgstr "[ ALLE ]" -#: tpl_messages.php:12 tpl_messages.php:217 tpl_messages.php:230 +#: tpl_messages.php:12 tpl_messages.php:218 tpl_messages.php:231 msgid "[ OTHER ]" msgstr "[ ANDERE ]" -#: tpl_messages.php:13 tpl_messages.php:218 tpl_messages.php:231 +#: tpl_messages.php:13 tpl_messages.php:219 tpl_messages.php:232 msgid "Filter:" msgstr "Filter:" -#: tpl_messages.php:14 tpl_messages.php:219 tpl_messages.php:232 +#: tpl_messages.php:14 tpl_messages.php:220 tpl_messages.php:233 msgid "Filter" msgstr "Filter" @@ -315,7 +315,7 @@ #: tpl_messages.php:66 tpl_messages.php:93 tpl_messages.php:157 #: tpl_messages.php:161 tpl_messages.php:164 tpl_messages.php:167 #: tpl_messages.php:170 tpl_messages.php:173 tpl_messages.php:176 -#: tpl_messages.php:188 tpl_messages.php:242 +#: tpl_messages.php:189 tpl_messages.php:243 msgid "Update" msgstr "Aktualisieren" @@ -900,7 +900,7 @@ msgid "Domain" msgstr "Domäne" -#: tpl_messages.php:181 tpl_messages.php:193 +#: tpl_messages.php:181 tpl_messages.php:194 msgid "Add" msgstr "Hinzufügen" @@ -923,6 +923,10 @@ "obigen Überprüfungen verwenden." #: tpl_messages.php:185 +msgid "Action to take for messages that fail the check:" +msgstr "Maßname für Nachrichten, deren Überprüfung fehlschlägt:" + +#: tpl_messages.php:186 msgid "" "Reject the message with the except if it originates from the outside but has " "a From header that matches the Kolab server's domain. In that case rewrite " @@ -933,11 +937,11 @@ "diesem Fall die From-Kopfzeile umschreiben, damit der Empfänger die mögliche " "Fälschung erkennen kann." -#: tpl_messages.php:186 +#: tpl_messages.php:187 msgid "Always reject the message." msgstr "Die Nachricht immer ablehnen." -#: tpl_messages.php:187 +#: tpl_messages.php:188 msgid "" "Note that enabling this setting will make the server reject any mail with " "non-matching sender and From header if the sender is an account on this " @@ -948,47 +952,47 @@ "der Absender über ein Konto auf diesem Server verfügt. Dies kann " "beispielsweise bei Nachrichtenlisten zu Problemen führen." -#: tpl_messages.php:189 +#: tpl_messages.php:190 msgid "Kolab Hostnames (for Master and Slaves)" msgstr "Kolab-Rechnernamen (für Master- und Slaveserver)" -#: tpl_messages.php:190 +#: tpl_messages.php:191 msgid "Host" msgstr "Host" -#: tpl_messages.php:194 +#: tpl_messages.php:195 msgid "The shared folder with DN" msgstr "Der gemeinsam genutzte Ordner mit DN" -#: tpl_messages.php:196 +#: tpl_messages.php:197 msgid "Back to list of shared folders" msgstr "Zurück zur Liste der gemeinsam genutzten Ordner" -#: tpl_messages.php:197 +#: tpl_messages.php:198 msgid "Shared folders" msgstr "Gemeinsam genutzte Ordner" -#: tpl_messages.php:199 +#: tpl_messages.php:200 msgid "Server" msgstr "Server" -#: tpl_messages.php:200 tpl_messages.php:220 +#: tpl_messages.php:201 tpl_messages.php:221 msgid "Type" msgstr "Typ" -#: tpl_messages.php:202 +#: tpl_messages.php:203 msgid "Folder deleted, awaiting cleanup..." msgstr "Ordner gelöscht, warte auf Aufräumaktion..." -#: tpl_messages.php:205 tpl_messages.php:247 +#: tpl_messages.php:206 tpl_messages.php:248 msgid "Welcome to the Kolab administration interface" msgstr "Willkommen zur Kolab-Systemadministration" -#: tpl_messages.php:206 +#: tpl_messages.php:207 msgid "NOTE:" msgstr "ANMERKUNG:" -#: tpl_messages.php:207 +#: tpl_messages.php:208 msgid "" "No account is configured to receive mail for administrative addresses. If " "you have not yet created an account for this, " @@ -996,52 +1000,52 @@ "Es wurde kein Konto zum Empfang von Nachrichten an administrative Adressen " "konfiguriert. Wenn Sie hierfür noch kein Konto angelegt haben, " -#: tpl_messages.php:208 +#: tpl_messages.php:209 msgid "please do so" msgstr "dann tun Sie das bitte jetzt" -#: tpl_messages.php:209 +#: tpl_messages.php:210 msgid "and then go" msgstr "und richten Sie danach" -#: tpl_messages.php:210 +#: tpl_messages.php:211 msgid "here" msgstr "hier" -#: tpl_messages.php:211 +#: tpl_messages.php:212 msgid "to set up forwarding of mail to administrative email addresses." msgstr "" "die Weiterleitung von Nachrichten an administrative E-Mail-Adressen ein." -#: tpl_messages.php:212 +#: tpl_messages.php:213 msgid "The user with DN" msgstr "Der Benutzer mit DN" -#: tpl_messages.php:214 +#: tpl_messages.php:215 msgid "Back to list of users" msgstr "Zurück zur Liste der Benutzer" -#: tpl_messages.php:215 tpl_messages.php:228 +#: tpl_messages.php:216 tpl_messages.php:229 msgid "Email Users" msgstr "E-Mail-Benutzer" -#: tpl_messages.php:222 +#: tpl_messages.php:223 msgid "E-mail" msgstr "E-Mail" -#: tpl_messages.php:223 +#: tpl_messages.php:224 msgid "uid" msgstr "uid" -#: tpl_messages.php:225 +#: tpl_messages.php:226 msgid "User Deleted, awaiting cleanup..." msgstr "Benutzer gelöscht, warte auf Aufräumaktion..." -#: tpl_messages.php:233 +#: tpl_messages.php:234 msgid "Vacation Notification" msgstr "Benachrichtigungen bei Abwesenheit" -#: tpl_messages.php:234 +#: tpl_messages.php:235 msgid "" "Activate vacation notification (only one of vacation, forward and delivery " "to folder can be active at any time)" @@ -1050,47 +1054,47 @@ "nur entweder ein Abwesenheitsbenachrichtigungs-, Weiterleitungs- oder " "Zustellungsordner aktiviert sein)" -#: tpl_messages.php:235 +#: tpl_messages.php:236 msgid "Resend notification only after" msgstr "Benachrichtigung erst nach" -#: tpl_messages.php:236 +#: tpl_messages.php:237 msgid "days" msgstr "Tagen erneut senden" -#: tpl_messages.php:237 +#: tpl_messages.php:238 msgid "Send responses for these addresses:" msgstr "Antworten für diese Adressen schicken:" -#: tpl_messages.php:238 +#: tpl_messages.php:239 msgid "(one address per line)" msgstr "(Eine Adresse pro Zeile)" -#: tpl_messages.php:239 +#: tpl_messages.php:240 msgid "Do not send vacation replies to spam messages" msgstr "Keine Abwesenheitsbenachrichtigungen auf Spamnachrichten senden" -#: tpl_messages.php:240 +#: tpl_messages.php:241 msgid "Only react to mail coming from domain" msgstr "Nur auf Nachrichten reagieren, die aus dieser Domäne kommen" -#: tpl_messages.php:241 +#: tpl_messages.php:242 msgid "(leave empty for all domains)" msgstr "(freilassen für alle Domänen)" -#: tpl_messages.php:243 +#: tpl_messages.php:244 msgid "Kolab2 Groupware Server Version" msgstr "Kolab2-Groupware-Server-Version" -#: tpl_messages.php:244 +#: tpl_messages.php:245 msgid "Kolab2 Groupware Server Component Versions" msgstr "Versionen der Komponenten des Kolab2-Groupware-Server" -#: tpl_messages.php:245 +#: tpl_messages.php:246 msgid "Kolab2 Patched OpenPKG Package Versions" msgstr "Kolab2-Gepatchte-OpenPKG-Paket-Versionen" -#: tpl_messages.php:246 +#: tpl_messages.php:247 msgid "OpenPKG Version" msgstr "OpenPKG-Version" From cvs at kolab.org Wed Nov 21 17:15:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 17:15:39 +0100 (CET) Subject: thomas: server release-notes.txt,1.169,1.170 Message-ID: <20071121161539.86C7A600D47@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv27796 Modified Files: release-notes.txt Log Message: Updated release notes Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.169 retrieving revision 1.170 diff -u -d -r1.169 -r1.170 --- release-notes.txt 21 Nov 2007 11:05:41 -0000 1.169 +++ release-notes.txt 21 Nov 2007 16:15:37 -0000 1.170 @@ -65,7 +65,7 @@ - horde-kolab-3.2_ALPHA-2007???? - kolab/issue2101 ([horde] can’t delete categories.) + kolab/issue2101 ([horde] can't delete categories) - horde-kronolith-2.2_ALPHA-2007???? @@ -76,9 +76,11 @@ kolab/issue2040 (Horde: resouces are not displayed in address book) kolab/issue2135 ([horde/turba] Turba should support some more contact attributes) - - kolab-webadmin-2.1.99-20071018 + - kolab-webadmin-2.1.99-2007???? - Updated German translations: Verwalter, Domaenenverwalter. + Improved some message strings. + + Updated German translations. Changes between 2.2-beta-1 and 2.2-beta-2: From cvs at kolab.org Wed Nov 21 17:16:53 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 17:16:53 +0100 (CET) Subject: thomas: server release-notes.txt,1.170,1.171 Message-ID: <20071121161653.96497600D47@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv27845 Modified Files: release-notes.txt Log Message: Fix kolab/issue1912 (some field descriptions missing in web admin interface) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.170 retrieving revision 1.171 diff -u -d -r1.170 -r1.171 --- release-notes.txt 21 Nov 2007 16:15:37 -0000 1.170 +++ release-notes.txt 21 Nov 2007 16:16:51 -0000 1.171 @@ -82,6 +82,9 @@ Updated German translations. + kolab/issue1912 (some field descriptions missing in web admin + interface) + Changes between 2.2-beta-1 and 2.2-beta-2: From cvs at kolab.org Wed Nov 21 17:16:53 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 17:16:53 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin ChangeLog,1.64,1.65 Message-ID: <20071121161653.A20DF600D62@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin In directory doto:/tmp/cvs-serv27845/kolab-webadmin/kolab-webadmin Modified Files: ChangeLog Log Message: Fix kolab/issue1912 (some field descriptions missing in web admin interface) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/ChangeLog,v retrieving revision 1.64 retrieving revision 1.65 diff -u -d -r1.64 -r1.65 --- ChangeLog 21 Nov 2007 14:26:38 -0000 1.64 +++ ChangeLog 21 Nov 2007 16:16:51 -0000 1.65 @@ -18,6 +18,9 @@ messages that fail the check" for translation and update .po files, including translation for German. + * php/admin/include/form.class.php: fix kolab/issue1912 (some field + descriptions missing in web admin interface) + 2007-11-16 Thomas Arendsen Hein * php/admin/locale/de/LC_MESSAGES/messages.po: Updated German From cvs at kolab.org Wed Nov 21 17:16:53 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 17:16:53 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/include form.class.php, 1.32, 1.33 Message-ID: <20071121161653.A4D92600D65@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/include In directory doto:/tmp/cvs-serv27845/kolab-webadmin/kolab-webadmin/php/admin/include Modified Files: form.class.php Log Message: Fix kolab/issue1912 (some field descriptions missing in web admin interface) Index: form.class.php =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/include/form.class.php,v retrieving revision 1.32 retrieving revision 1.33 diff -u -d -r1.32 -r1.33 --- form.class.php 12 Jul 2007 16:28:23 -0000 1.32 +++ form.class.php 21 Nov 2007 16:16:51 -0000 1.33 @@ -154,6 +154,7 @@ list($uname,$domain) = split('@',$value['value']); } if( ereg( 'readonly', $value['attrs'] ) ) { + $str .= '
    '; $str .= ''; From cvs at kolab.org Wed Nov 21 17:17:26 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 17:17:26 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/include form.class.php, 1.32, 1.32.2.1 Message-ID: <20071121161726.1322C600D47@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/include In directory doto:/tmp/cvs-serv27905/kolab-webadmin/kolab-webadmin/php/admin/include Modified Files: Tag: kolab_2_1_branch form.class.php Log Message: Fix kolab/issue1912 (some field descriptions missing in web admin interface) Index: form.class.php =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/include/form.class.php,v retrieving revision 1.32 retrieving revision 1.32.2.1 diff -u -d -r1.32 -r1.32.2.1 --- form.class.php 12 Jul 2007 16:28:23 -0000 1.32 +++ form.class.php 21 Nov 2007 16:17:24 -0000 1.32.2.1 @@ -154,6 +154,7 @@ list($uname,$domain) = split('@',$value['value']); } if( ereg( 'readonly', $value['attrs'] ) ) { + $str .= ''; $str .= ''; From cvs at kolab.org Wed Nov 21 17:32:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 17:32:13 +0100 (CET) Subject: thomas: server/php-kolab/Kolab_Webadmin/Webadmin form.class.php, 1.5, 1.6 Message-ID: <20071121163213.A52DF600D47@lists.intevation.de> Author: thomas Update of /kolabrepository/server/php-kolab/Kolab_Webadmin/Webadmin In directory doto:/tmp/cvs-serv28291/Webadmin Modified Files: form.class.php Log Message: fix kolab/issue1912 (some field descriptions missing in web admin interface) (this package is currently not in use, so just in case it will be used ...) Index: form.class.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Webadmin/Webadmin/form.class.php,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- form.class.php 17 Aug 2007 16:31:44 -0000 1.5 +++ form.class.php 21 Nov 2007 16:32:11 -0000 1.6 @@ -164,6 +164,7 @@ list($uname,$domain) = split('@',$value['value']); } if( ereg( 'readonly', $value['attrs'] ) ) { + $str .= ''; $str .= ''; From cvs at kolab.org Wed Nov 21 19:11:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 19:11:39 +0100 (CET) Subject: thomas: server release-notes.txt,1.171,1.172 Message-ID: <20071121181139.8D6F2600D45@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv30801 Modified Files: release-notes.txt Log Message: Fix kolab/issue1711 (extra space after first name when editing users or admins) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.171 retrieving revision 1.172 diff -u -d -r1.171 -r1.172 --- release-notes.txt 21 Nov 2007 16:16:51 -0000 1.171 +++ release-notes.txt 21 Nov 2007 18:11:37 -0000 1.172 @@ -82,6 +82,8 @@ Updated German translations. + kolab/issue1711 (extra space after first name when editing users or + admins) kolab/issue1912 (some field descriptions missing in web admin interface) From cvs at kolab.org Wed Nov 21 19:11:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 19:11:39 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin ChangeLog,1.65,1.66 Message-ID: <20071121181139.8C8ED600174@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin In directory doto:/tmp/cvs-serv30801/kolab-webadmin/kolab-webadmin Modified Files: ChangeLog Log Message: Fix kolab/issue1711 (extra space after first name when editing users or admins) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/ChangeLog,v retrieving revision 1.65 retrieving revision 1.66 diff -u -d -r1.65 -r1.66 --- ChangeLog 21 Nov 2007 16:16:51 -0000 1.65 +++ ChangeLog 21 Nov 2007 18:11:37 -0000 1.66 @@ -21,6 +21,19 @@ * php/admin/include/form.class.php: fix kolab/issue1912 (some field descriptions missing in web admin interface) + * php/admin/include/ldap.class.php, + www/admin/addressbook/addr.php.in, + www/admin/addressbook/index.php.in, + www/admin/administrator/admin.php.in, + www/admin/administrator/index.php.in, + www/admin/domainmaintainer/domainmaintainer.php.in, + www/admin/domainmaintainer/index.php.in, + www/admin/maintainer/index.php.in, + www/admin/maintainer/maintainer.php.in, + www/admin/user/index.php.in, + www/admin/user/user.php.in: Fix kolab/issue1711 (extra space after + first name when editing users or admins) + 2007-11-16 Thomas Arendsen Hein * php/admin/locale/de/LC_MESSAGES/messages.po: Updated German From cvs at kolab.org Wed Nov 21 19:11:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 19:11:39 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/www/admin/user index.php.in, 1.4, 1.5 user.php.in, 1.25, 1.26 Message-ID: <20071121181139.B4D50600D45@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user In directory doto:/tmp/cvs-serv30801/kolab-webadmin/kolab-webadmin/www/admin/user Modified Files: index.php.in user.php.in Log Message: Fix kolab/issue1711 (extra space after first name when editing users or admins) Index: index.php.in =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user/index.php.in,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- index.php.in 31 Jul 2006 02:03:10 -0000 1.4 +++ index.php.in 21 Nov 2007 18:11:37 -0000 1.5 @@ -144,9 +144,7 @@ $mail = $attrs['mail'][0]; $sn = $attrs['sn'][0]; $cn = $attrs['cn'][0]; - $a = strlen($sn); - $b = strlen($cn); - $fn = substr($cn, 0, $b - $a); + $fn = KolabLDAP::getGivenName($cn, $sn); $dncomp = split( ',', $dn ); if( in_array('cn=groups',$dncomp) ) { $type = 'G'; Index: user.php.in =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user/user.php.in,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- user.php.in 21 Nov 2007 11:59:56 -0000 1.25 +++ user.php.in 21 Nov 2007 18:11:37 -0000 1.26 @@ -219,13 +219,7 @@ else $sn = $ldap_object['sn']; if (is_array($ldap_object['cn'])) $cn = $ldap_object['cn'][0]; else $cn = $ldap_object['cn']; - if ($sn) { - $a = strlen($sn); - if ($cn) { - $b = strlen($cn); - $givenname = substr($cn, 0, $b - $a); - } - } + if ($cn && $sn) $givenname = KolabLDAP::getGivenName($cn, $sn); if (is_array($ldap_object['mail'])) $mail = $ldap_object['mail'][0]; else $mail = $ldap_object['mail']; if (is_array($ldap_object['uid'])) $uid = $ldap_object['uid'][0]; From cvs at kolab.org Wed Nov 21 19:11:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 19:11:39 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/www/admin/administrator admin.php.in, 1.7, 1.8 index.php.in, 1.2, 1.3 Message-ID: <20071121181139.982A4600D62@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/administrator In directory doto:/tmp/cvs-serv30801/kolab-webadmin/kolab-webadmin/www/admin/administrator Modified Files: admin.php.in index.php.in Log Message: Fix kolab/issue1711 (extra space after first name when editing users or admins) Index: admin.php.in =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/administrator/admin.php.in,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- admin.php.in 28 May 2007 19:24:10 -0000 1.7 +++ admin.php.in 21 Nov 2007 18:11:37 -0000 1.8 @@ -58,13 +58,7 @@ else $lastname = $ldap_object['sn']; if (is_array($ldap_object['cn'])) $cn = $ldap_object['cn'][0]; else $cn = $ldap_object['cn']; - if ($lastname) { - $a = strlen($lastname); - if ($cn) { - $b = strlen($cn); - $firstname = substr($cn, 0, $b - $a); - } - } + $firstname = KolabLDAP::getGivenName($cn, $lastname); if (is_array($ldap_object['uid'])) $uid = $ldap_object['uid'][0]; else $uid = $ldap_object['uid']; $form->entries['firstname']['value'] = $firstname; Index: index.php.in =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/administrator/index.php.in,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- index.php.in 29 May 2007 15:07:06 -0000 1.2 +++ index.php.in 21 Nov 2007 18:11:37 -0000 1.3 @@ -81,9 +81,7 @@ if( $userid != 'manager' ) { $sn = $attrs['sn'][0]; $cn = $attrs['cn'][0]; - $a = strlen($sn); - $b = strlen($cn); - $fn = substr($cn, 0, $b - $a); + $fn = KolabLDAP::getGivenName($cn, $sn); // skip admins and maintainers if( array_key_exists( $dn, $maintainers ) ) { $entries[] = array( 'dn' => $dn, From cvs at kolab.org Wed Nov 21 19:11:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 19:11:39 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/include ldap.class.php, 1.30, 1.31 Message-ID: <20071121181139.8D637600175@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/include In directory doto:/tmp/cvs-serv30801/kolab-webadmin/kolab-webadmin/php/admin/include Modified Files: ldap.class.php Log Message: Fix kolab/issue1711 (extra space after first name when editing users or admins) Index: ldap.class.php =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/include/ldap.class.php,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- ldap.class.php 13 Jul 2007 06:51:29 -0000 1.30 +++ ldap.class.php 21 Nov 2007 18:11:37 -0000 1.31 @@ -507,6 +507,26 @@ return true; } + /** + * Get given (first) name + * Just return it if available, otherwise calculate from cn and sn + * (assumes that "$cn" is "$gn $sn") + * + * @param string $cn The common name + * @param string $sn The last name + * @param string $gn The given name + * + * @return string The extracted given (first) name + */ + function getGivenName($cn, $sn, $gn = '') + { + if( $gn == '' ) { + return substr($cn, 0, strlen($cn) - strlen($sn) - 1); + } else { + return $gn; + } + } + var $connection; var $is_bound; var $bind_dn; From cvs at kolab.org Wed Nov 21 19:11:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 19:11:39 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/www/admin/addressbook addr.php.in, 1.8, 1.9 index.php.in, 1.2, 1.3 Message-ID: <20071121181139.93187600D47@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/addressbook In directory doto:/tmp/cvs-serv30801/kolab-webadmin/kolab-webadmin/www/admin/addressbook Modified Files: addr.php.in index.php.in Log Message: Fix kolab/issue1711 (extra space after first name when editing users or admins) Index: addr.php.in =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/addressbook/addr.php.in,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- addr.php.in 12 Jul 2007 16:28:23 -0000 1.8 +++ addr.php.in 21 Nov 2007 18:11:37 -0000 1.9 @@ -24,13 +24,7 @@ else $lastname = $ldap_object['sn']; if (is_array($ldap_object['cn'])) $cn = $ldap_object['cn'][0]; else $cn = $ldap_object['cn']; - if ($lastname) { - $a = strlen($lastname); - if ($cn) { - $b = strlen($cn); - $firstname = trim(substr($cn, 0, $b - $a)); - } - } + $firstname = KolabLDAP::getGivenName($cn, $lastname); if (is_array($ldap_object['mail'])) $mail_0 = $ldap_object['mail'][0]; else $mail_0 = $ldap_object['mail']; $form->entries['firstname']['value'] = $firstname; Index: index.php.in =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/addressbook/index.php.in,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- index.php.in 29 Mar 2006 10:52:14 -0000 1.2 +++ index.php.in 21 Nov 2007 18:11:37 -0000 1.3 @@ -93,18 +93,16 @@ while( $entry ) { $attrs = ldap_get_attributes($ldap->connection, $entry); $dn = ldap_get_dn($ldap->connection,$entry); - $mail = $attrs['mail'][0]; - $sn = $attrs['sn'][0]; - $cn = $attrs['cn'][0]; - $a = strlen($sn); - $b = strlen($cn); - $fn = substr($cn, 0, $b - $a); + $mail = $attrs['mail'][0]; + $sn = $attrs['sn'][0]; + $cn = $attrs['cn'][0]; + $fn = KolabLDAP::getGivenName($cn, $sn); $deleted = array_key_exists('kolabDeleteflag',$attrs)?$attrs['kolabDeleteflag'][0]:"FALSE"; $entries[] = array( 'dn' => $dn, 'sn' => $sn, 'fn' => $fn, 'mail' => $mail, - 'deleted' => $deleted ); + 'deleted' => $deleted ); $entry = ldap_next_entry( $ldap->connection,$entry ); } } From cvs at kolab.org Wed Nov 21 19:11:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 19:11:39 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/www/admin/maintainer index.php.in, 1.2, 1.3 maintainer.php.in, 1.9, 1.10 Message-ID: <20071121181139.B1942600175@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/maintainer In directory doto:/tmp/cvs-serv30801/kolab-webadmin/kolab-webadmin/www/admin/maintainer Modified Files: index.php.in maintainer.php.in Log Message: Fix kolab/issue1711 (extra space after first name when editing users or admins) Index: index.php.in =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/maintainer/index.php.in,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- index.php.in 29 May 2007 15:07:06 -0000 1.2 +++ index.php.in 21 Nov 2007 18:11:37 -0000 1.3 @@ -79,9 +79,7 @@ $userid = $attrs['uid'][0]; $sn = $attrs['sn'][0]; $cn = $attrs['cn'][0]; - $a = strlen($sn); - $b = strlen($cn); - $fn = substr($cn, 0, $b - $a); + $fn = KolabLDAP::getGivenName($cn, $sn); // skip admins and maintainers if( array_key_exists( $dn, $maintainers ) ) { $entries[] = array( 'dn' => $dn, Index: maintainer.php.in =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/maintainer/maintainer.php.in,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- maintainer.php.in 29 May 2007 15:07:06 -0000 1.9 +++ maintainer.php.in 21 Nov 2007 18:11:37 -0000 1.10 @@ -59,13 +59,7 @@ else $lastname = $ldap_object['sn']; if (is_array($ldap_object['cn'])) $cn = $ldap_object['cn'][0]; else $cn = $ldap_object['cn']; - if ($lastname) { - $a = strlen($lastname); - if ($cn) { - $b = strlen($cn); - $firstname = substr($cn, 0, $b - $a); - } - } + $firstname = KolabLDAP::getGivenName($cn, $lastname); if (is_array($ldap_object['uid'])) $uid = $ldap_object['uid'][0]; else $uid = $ldap_object['uid']; $form->entries['firstname']['value'] = $firstname; From cvs at kolab.org Wed Nov 21 19:11:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 21 Nov 2007 19:11:39 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/www/admin/domainmaintainer domainmaintainer.php.in, 1.14, 1.15 index.php.in, 1.3, 1.4 Message-ID: <20071121181139.ACBF3600174@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/domainmaintainer In directory doto:/tmp/cvs-serv30801/kolab-webadmin/kolab-webadmin/www/admin/domainmaintainer Modified Files: domainmaintainer.php.in index.php.in Log Message: Fix kolab/issue1711 (extra space after first name when editing users or admins) Index: domainmaintainer.php.in =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/domainmaintainer/domainmaintainer.php.in,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- domainmaintainer.php.in 7 Aug 2007 11:56:56 -0000 1.14 +++ domainmaintainer.php.in 21 Nov 2007 18:11:37 -0000 1.15 @@ -61,13 +61,7 @@ else $lastname = $ldap_object['sn']; if (is_array($ldap_object['cn'])) $cn = $ldap_object['cn'][0]; else $cn = $ldap_object['cn']; - if ($lastname) { - $a = strlen($lastname); - if ($cn) { - $b = strlen($cn); - $firstname = substr($cn, 0, $b - $a); - } - } + $firstname = KolabLDAP::getGivenName($cn, $lastname); if (is_array($ldap_object['uid'])) $uid = $ldap_object['uid'][0]; else $uid = $ldap_object['uid']; $form->entries['firstname']['value'] = $firstname; Index: index.php.in =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/domainmaintainer/index.php.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- index.php.in 29 May 2007 15:07:06 -0000 1.3 +++ index.php.in 21 Nov 2007 18:11:37 -0000 1.4 @@ -79,9 +79,7 @@ $userid = $attrs['uid'][0]; $sn = $attrs['sn'][0]; $cn = $attrs['cn'][0]; - $a = strlen($sn); - $b = strlen($cn); - $fn = substr($cn, 0, $b - $a); + $fn = KolabLDAP::getGivenName($cn, $sn); // skip admins and maintainers if( array_key_exists( $dn, $maintainers ) ) { $domains = $ldap->domainsForMaintainerDn($dn); From cvs at kolab.org Thu Nov 22 12:39:58 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 12:39:58 +0100 (CET) Subject: thomas: server release-notes.txt,1.172,1.173 Message-ID: <20071122113958.336E9600D69@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv26640 Modified Files: release-notes.txt Log Message: "Fixed" change in encoding by removing umlauts. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.172 retrieving revision 1.173 diff -u -d -r1.172 -r1.173 --- release-notes.txt 21 Nov 2007 18:11:37 -0000 1.172 +++ release-notes.txt 22 Nov 2007 11:39:55 -0000 1.173 @@ -771,7 +771,7 @@ Kolab updates: - More distconf changes by Richard Bos and Markus Hüwe. + More distconf changes by Richard Bos and Markus Huewe. - perl-kolab-5.8.7-20060619 @@ -796,7 +796,7 @@ - kolab-webadmin-2.0.99-20060619 - * patch from Tobias König in order to support setting of + * patch from Tobias Koenig in order to support setting of foldertype for public folders kolab/issue848 (Modifying address book entry may break distribution list) From cvs at kolab.org Thu Nov 22 17:20:57 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 17:20:57 +0100 (CET) Subject: gunnar: server/patches/horde HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch, NONE, 1.1 Message-ID: <20071122162057.06DCB600D6B@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde In directory doto:/tmp/cvs-serv1269 Added Files: HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch Log Message: A patch with Kolab extensions that is required for the new freebusy package. --- NEW FILE: HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch --- diff -r 2be0e69810d0 framework/Auth/Auth/kolab.php --- a/framework/Auth/Auth/kolab.php Mon Nov 19 17:20:06 2007 +0100 +++ b/framework/Auth/Auth/kolab.php Thu Nov 22 17:17:04 2007 +0100 @@ -31,7 +31,12 @@ class Auth_kolab extends Auth_imap { { $params['hostspec'] = Kolab::getServer('imap'); $params['port'] = $GLOBALS['conf']['kolab']['imap']['port']; - $params['protocol'] = 'imap/notls/novalidate-cert'; + if (empty($GLOBALS['conf']['kolab']['imap']['protocol'])) { + $params['protocol'] = 'imap/notls/novalidate-cert'; + } else { + $params['protocol'] = $GLOBALS['conf']['kolab']['imap']['protocol']; + } + parent::Auth_imap($params); } diff -r 2be0e69810d0 framework/Date/Date/Recurrence.php --- a/framework/Date/Date/Recurrence.php Mon Nov 19 17:20:06 2007 +0100 +++ b/framework/Date/Date/Recurrence.php Thu Nov 22 17:17:04 2007 +0100 @@ -1044,4 +1044,352 @@ class Horde_Date_Recurrence { return $rrule; } + + /** + * Parse the recurrence data from a hash + * + * @param array $hash The hash to convert + * + * @return boolean True if the hash seemed valid, false otherwise + */ + function fromHash($hash) + { + if (!isset($hash['interval']) || !isset($hash['interval']) || + !isset($hash['range-type'])) { + $this->setRecurType(HORDE_DATE_RECUR_NONE); + return false; + } + + $this->setRecurInterval((int) $hash['interval']); + + $parse_day = false; + $set_daymask = false; + + $update_month = false; + $update_daynumber = false; + + $update_weekday = false; + $nth_weekday = -1; + + switch ($hash['cycle']) { + case 'daily': + $this->setRecurType(HORDE_DATE_RECUR_DAILY); + break; + + case 'weekly': + $this->setRecurType(HORDE_DATE_RECUR_WEEKLY); + $parse_day = true; + $set_daymask = true; + break; + + case 'monthly': + + if (!isset($hash['daynumber'])) { + $this->setRecurType(HORDE_DATE_RECUR_NONE); + return false; + } + + switch ($hash['type']) { + case 'daynumber': + $this->setRecurType(HORDE_DATE_RECUR_MONTHLY_DATE); + $update_daynumber = true; + break; + + case 'weekday': + $this->setRecurType(HORDE_DATE_RECUR_MONTHLY_WEEKDAY); + $nth_weekday = (int) $hash['daynumber']; + $hash['daynumber'] = 1; + $parse_day = true; + $update_daynumber = true; + $update_weekday = true; + break; + } + break; + + case 'yearly': + + if (!isset($hash['type'])) { + $this->setRecurType(HORDE_DATE_RECUR_NONE); + return false; + } + + switch ($hash['type']) { + case 'monthday': + $this->setRecurType(HORDE_DATE_RECUR_YEARLY_DATE); + $update_month = true; + $update_daynumber = true; + break; + case 'yearday': + + if (!isset($hash['month'])) { + $this->setRecurType(HORDE_DATE_RECUR_NONE); + return false; + } + + $this->setRecurType(HORDE_DATE_RECUR_YEARLY_DAY); + // Start counting days in January + $hash['month'] = 'january'; + $update_month = true; + $update_daynumber = true; + break; + case 'weekday': + + if (!isset($hash['daynumber'])) { + $this->setRecurType(HORDE_DATE_RECUR_NONE); + return false; + } + + $this->setRecurType(HORDE_DATE_RECUR_YEARLY_WEEKDAY); + $nth_weekday = (int) $hash['daynumber']; + $hash['daynumber'] = 1; + $parse_day = true; + $update_month = true; + $update_daynumber = true; + $update_weekday = true; + break; + } + } + + switch ($hash['range-type']) { + case 'number': + + if (!isset($hash['range'])) { + $this->setRecurType(HORDE_DATE_RECUR_NONE); + return false; + } + + $this->setRecurCount((int) $hash['range']); + break; + + case 'date': + // fix off-by-one day + //FIXME + $timestamp = Kolab_Date::decodeDate($hash['range']); + $this->setRecurEnd(new Horde_Date($timestamp + 86400)); + break; + } + + // Need to parse ? + $last_found_day = -1; + if ($parse_day) { + + if (!isset($hash['day'])) { + $this->setRecurType(HORDE_DATE_RECUR_NONE); + return false; + } + + $mask = 0; + $bits = array( + 'monday' => HORDE_DATE_MASK_MONDAY, + 'tuesday' => HORDE_DATE_MASK_TUESDAY, + 'wednesday' => HORDE_DATE_MASK_WEDNESDAY, + 'thursday' => HORDE_DATE_MASK_THURSDAY, + 'friday' => HORDE_DATE_MASK_FRIDAY, + 'saturday' => HORDE_DATE_MASK_SATURDAY, + 'sunday' => HORDE_DATE_MASK_SUNDAY, + ); + + $days = array( + 'monday' => HORDE_DATE_MONDAY, + 'tuesday' => HORDE_DATE_TUESDAY, + 'wednesday' => HORDE_DATE_WEDNESDAY, + 'thursday' => HORDE_DATE_THURSDAY, + 'friday' => HORDE_DATE_FRIDAY, + 'saturday' => HORDE_DATE_SATURDAY, + 'sunday' => HORDE_DATE_SUNDAY, + ); + + foreach ($hash['day'] as $day) { + // validity check + if (empty($day) || !isset($bits[$day])) + continue; + + $mask |= $bits[$day]; + $last_found_day = $days[$day]; + } + + if ($set_daymask) { + $this->setRecurOnDay($mask); + } + } + + if ($update_month || $update_daynumber || $update_weekday) { + if ($update_month) { + $month2number = array( + 'january' => 1, + 'february' => 2, + 'march' => 3, + 'april' => 4, + 'may' => 5, + 'june' => 6, + 'july' => 7, + 'august' => 8, + 'september' => 9, + 'october' => 10, + 'november' => 11, + 'december' => 12, + ); + + if (isset($month2number[$hash['month']])) { + $this->start->month = $month2number[$hash['month']]; + } + } + + if ($update_daynumber) { + + if (!isset($hash['daynumber'])) { + $this->setRecurType(HORDE_DATE_RECUR_NONE); + return false; + } + + $this->start->mday = $hash['daynumber']; + } + + if ($update_weekday) { + $this->start->setNthWeekday($last_found_day, $nth_weekday); + } + + $this->start->correct(); + } + + // Exclusions + if (isset($hash['exclusion'])) { + foreach($hash['exclusion'] as $exclusion) { + $date = new Horde_Date(Kolab_Date::decodeDate($exclusion)); + $this->addException($date->year, $date->month, $date->mday); + } + } + + return true; + } + + /** + * Export this object into a hash + * + * @return array The recurrence hash + */ + function toHash() + { + $hash = array(); + + $hash['interval'] = $this->getRecurInterval(); + + $day2number = array( + 0 => 'sunday', + 1 => 'monday', + 2 => 'tuesday', + 3 => 'wednesday', + 4 => 'thursday', + 5 => 'friday', + 6 => 'saturday' + ); + + $month2number = array( + 1 => 'january', + 2 => 'february', + 3 => 'march', + 4 => 'april', + 5 => 'may', + 6 => 'june', + 7 => 'july', + 8 => 'august', + 9 => 'september', + 10 => 'october', + 11 => 'november', + 12 => 'december' + ); + + $start = $this->getRecurStart(); + switch ($this->getRecurType()) { + case HORDE_DATE_RECUR_DAILY: + $hash['cycle'] = 'daily'; + break; + + case HORDE_DATE_RECUR_WEEKLY: + $hash['cycle'] = 'weekly'; + + $bits = array( + 'monday' => HORDE_DATE_MASK_MONDAY, + 'tuesday' => HORDE_DATE_MASK_TUESDAY, + 'wednesday' => HORDE_DATE_MASK_WEDNESDAY, + 'thursday' => HORDE_DATE_MASK_THURSDAY, + 'friday' => HORDE_DATE_MASK_FRIDAY, + 'saturday' => HORDE_DATE_MASK_SATURDAY, + 'sunday' => HORDE_DATE_MASK_SUNDAY, + ); + + $days = array(); + foreach($bits as $name => $bit) { + if ($this->recurOnDay($bit)) { + $days[] = $name; + } + } + + $hash['day'] = $days; + break; + + case HORDE_DATE_RECUR_MONTHLY_DATE: + $hash['cycle'] = 'monthly'; + $hash['type'] = 'daynumber'; + $hash['daynumber'] = $start->mday; + break; + + case HORDE_DATE_RECUR_MONTHLY_WEEKDAY: + $hash['cycle'] = 'monthly'; + $hash['type'] = 'weekday'; + $hash['daynumber'] = $start->weekOfMonth(); + $hash['day'] = array ($day2number[$start->dayOfWeek()]); + break; + + case HORDE_DATE_RECUR_YEARLY_DATE: + $hash['cycle'] = 'yearly'; + $hash['type'] = 'monthday'; + $hash['daynumber'] = $start->mday; + $hash['month'] = $month2number[$start->month]; + break; + + case HORDE_DATE_RECUR_YEARLY_DAY: + $hash['cycle'] = 'yearly'; + $hash['type'] = 'yearday'; + $hash['daynumber'] = $start->dayOfYear(); + break; + + case HORDE_DATE_RECUR_YEARLY_WEEKDAY: + $hash['cycle'] = 'yearly'; + $hash['type'] = 'weekday'; + + $hash['daynumber'] = $start->weekOfMonth(); + $hash['day'] = array ($day2number[$start->dayOfWeek()]); + $hash['month'] = $month2number[$start->month]; + } + + if ($this->hasRecurCount()) { + $hash['range-type'] = 'number'; + $hash['range'] = $this->getRecurCount(); + }else if ($this->hasRecurEnd()) { + // Fix of-by-one day + $date = $this->getRecurEnd(); + $date->mday -= 1; + $date->correct(); + + $hash['range-type'] = 'date'; + $hash['range'] = Kolab_Date::encodeDate($date->timestamp()); + } else { + $hash['range-type'] = 'none'; + $hash['range'] = ''; + } + + // Recurrence exclusions + $exclusions = array(); + foreach ($this->getExceptions() as $exception) { + if (!empty($exception)) { + list($year, $month, $mday) = sscanf($exception, '%04d%02d%02d'); + $exclusions[] = "$year-$month-$mday"; + } + } + $hash['exclusion'] = $exclusions; + + return $hash; + } + } diff -r 2be0e69810d0 framework/Kolab/Kolab.php --- a/framework/Kolab/Kolab.php Mon Nov 19 17:20:06 2007 +0100 +++ b/framework/Kolab/Kolab.php Thu Nov 22 17:17:04 2007 +0100 @@ -68,11 +68,14 @@ class Kolab { */ var $_uid; - function Kolab() - { - global $registry; - - $this->_app = $registry->getApp(); + function Kolab($app = null) + { + if (!isset($app)) { + global $registry; + $app = $registry->getApp(); + } + $this->_app = $app; + $this->_storage = &new Kolab_IMAP(); } diff -r 2be0e69810d0 framework/Kolab/Kolab/LDAP.php --- a/framework/Kolab/Kolab/LDAP.php Mon Nov 19 17:20:06 2007 +0100 +++ b/framework/Kolab/Kolab/LDAP.php Thu Nov 22 17:17:04 2007 +0100 @@ -60,7 +60,7 @@ class Horde_Kolab_LDAP { $this->bind_dn = false; $this->search_result = false; - $server = Kolab::getServer('ldap'); + $server = $GLOBALS['conf']['kolab']['ldap']['server']; $this->connection = ldap_connect($server); // We really neeed v3! @@ -222,4 +222,127 @@ class Horde_Kolab_LDAP { } } + /** + * Return a hash of info about a user + * + * @param string $uid The UID of the user. + * + * @return string The hash containing the user information. + */ + function userInfo($uid) + { + $result = ldap_search($this->connection, + $GLOBALS['conf']['kolab']['ldap']['basedn'], + '(&(objectClass=kolabInetOrgPerson)(|(uid='. + Horde_LDAP::quote($uid) . ')(mail=' . + Horde_LDAP::quote($uid) . ')))', + array('dn','mail','uid','kolabHomeServer', + 'kolabFreeBusyFuture')); + if ($result) { + $entries = ldap_get_entries($this->connection, $result); + if($entries['count'] > 0 && !empty($entries[0]['mail'][0])) { + $hash = array(); + $hash['DN'] = $this->readLdapAttr($entries[0], 'dn'); + $hash['UID'] = $this->readLdapAttr($entries[0], 'uid'); + $hash['MAIL'] = $this->readLdapAttr($entries[0], 'mail', + $uid); + $hash['HOMESERVER'] = $this->readLdapAttr($entries[0], + 'kolabhomeserver'); + $hash['FBFUTURE'] = (int)($this->readLdapAttr($entries[0], + 'kolabfreebusyfuture', + 60)); + $hash['GROUPS'] = $this->getGroups($hash['DN']); + ldap_free_result( $result ); + return $hash; + } + ldap_free_result($result); + } else { + return PEAR::raiseError(sprintf(_("Error searching for user with the uid \"%s\"!"), + $uid)); + } + return false; + } + + /** + * Read an LDAP attribute + * + * @param string $entry The LDAP search result + * @param string $attrname The attribute to read. + * @param mixed $default A possible default value. + * + * @return mixed The attribute value or the default if the + * attribute was not found or the attribute + * was empty. + */ + function readLdapAttr($entry, $attrname, $default = false ) { + $val = $default; + if (!array_key_exists($attrname, $entry)) { + return $default; + } else if (is_array($entry[$attrname])) { + $val = $entry[$attrname][0]; + } else { + $val = $entry[$attrname]; + } + if($val == '') { + return $default; + } + return $val; + } + + function freeBusyPast() { + $result = ldap_read($this->connection, + $GLOBALS['conf']['kolab']['ldap']['basedn'], + '(&(objectClass=kolab)(k=kolab))', + array('kolabFreeBusyPast')); + if ($result) { + $entries = ldap_get_entries($this->connection, $result); + if ($entries['count'] > 0 && + !empty($entries[0]['kolabfreebusypast'][0])) { + ldap_free_result($result); + return $entries[0]['kolabfreebusypast'][0]; + } + } + // Default + return 0; + } + + function getGroups($dn) { + $result = ldap_search($this->connection, + $GLOBALS['conf']['kolab']['ldap']['basedn'], + '(&(objectClass=kolabGroupOfNames)(member=' . + Horde_LDAP::quote($dn) . '))', array('mail')); + if ($result) { + $entries = ldap_get_entries($this->connection, $result); + $lst = array(); + for ($i = 0; $i < $entries['count']; $i++) { + $lst[] = $entries[$i]['mail'][0]; + } + return $lst; + } + return array(); + } + + /** + * Attempts to return a reference to a concrete Horde_Kolab_LDAP + * instance. It will only create a new instance if no + * Horde_Kolab_LDAP instance currently exists. + * + * This method must be invoked as: + * $var = &Horde_Kolab_LDAP::singleton(); + * + * @static + * + * @return Horde_Kolab_LDAP The concrete Horde_Kolab_LDAP + * reference, or false on an error. + */ + function &singleton() + { + static $ldap = null; + + if (empty($ldap)) { + $ldap = &new Horde_Kolab_LDAP(); + } + + return $ldap; + } } \ No newline at end of file diff -r 2be0e69810d0 framework/Kolab/package.xml --- a/framework/Kolab/package.xml Mon Nov 19 17:20:06 2007 +0100 +++ b/framework/Kolab/package.xml Thu Nov 22 17:17:04 2007 +0100 @@ -45,6 +45,7 @@ communication between a Horde client and + From cvs at kolab.org Thu Nov 22 17:24:16 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 17:24:16 +0100 (CET) Subject: gunnar: server release-notes.txt,1.173,1.174 Message-ID: <20071122162416.596B8600D6B@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv1438 Modified Files: release-notes.txt Log Message: Added Horde/Kolab extensionsrequired for the new freebusy package. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.173 retrieving revision 1.174 diff -u -d -r1.173 -r1.174 --- release-notes.txt 22 Nov 2007 11:39:55 -0000 1.173 +++ release-notes.txt 22 Nov 2007 16:24:14 -0000 1.174 @@ -57,6 +57,8 @@ - horde-framework-kolab-3.2_ALPHA-2007???? + New functionality required for kolab-freebusy. + kolab/issue2128 (Building horde-framework-kolab without http access fails) kolab/issue2138 (Horde creates events in main inbox) kolab/issue2144 (Calendar items of shared calendar not appearing) From cvs at kolab.org Thu Nov 22 17:24:16 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 17:24:16 +0100 (CET) Subject: gunnar: server/horde/horde-framework HK-GW-Kolab_extensions.patch, NONE, 1.1 ChangeLog, 1.10, 1.11 horde-framework-kolab.spec, 1.28, 1.29 Message-ID: <20071122162416.61F0760C4A7@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-framework In directory doto:/tmp/cvs-serv1438/horde/horde-framework Modified Files: ChangeLog horde-framework-kolab.spec Added Files: HK-GW-Kolab_extensions.patch Log Message: Added Horde/Kolab extensionsrequired for the new freebusy package. --- NEW FILE: HK-GW-Kolab_extensions.patch --- diff -r 2be0e69810d0 framework/Auth/Auth/kolab.php --- a/framework/Auth/Auth/kolab.php Mon Nov 19 17:20:06 2007 +0100 +++ b/framework/Auth/Auth/kolab.php Thu Nov 22 17:17:04 2007 +0100 @@ -31,7 +31,12 @@ class Auth_kolab extends Auth_imap { { $params['hostspec'] = Kolab::getServer('imap'); $params['port'] = $GLOBALS['conf']['kolab']['imap']['port']; - $params['protocol'] = 'imap/notls/novalidate-cert'; + if (empty($GLOBALS['conf']['kolab']['imap']['protocol'])) { + $params['protocol'] = 'imap/notls/novalidate-cert'; + } else { + $params['protocol'] = $GLOBALS['conf']['kolab']['imap']['protocol']; + } + parent::Auth_imap($params); } diff -r 2be0e69810d0 framework/Date/Date/Recurrence.php --- a/framework/Date/Date/Recurrence.php Mon Nov 19 17:20:06 2007 +0100 +++ b/framework/Date/Date/Recurrence.php Thu Nov 22 17:17:04 2007 +0100 @@ -1044,4 +1044,352 @@ class Horde_Date_Recurrence { return $rrule; } + + /** + * Parse the recurrence data from a hash + * + * @param array $hash The hash to convert + * + * @return boolean True if the hash seemed valid, false otherwise + */ + function fromHash($hash) + { + if (!isset($hash['interval']) || !isset($hash['interval']) || + !isset($hash['range-type'])) { + $this->setRecurType(HORDE_DATE_RECUR_NONE); + return false; + } + + $this->setRecurInterval((int) $hash['interval']); + + $parse_day = false; + $set_daymask = false; + + $update_month = false; + $update_daynumber = false; + + $update_weekday = false; + $nth_weekday = -1; + + switch ($hash['cycle']) { + case 'daily': + $this->setRecurType(HORDE_DATE_RECUR_DAILY); + break; + + case 'weekly': + $this->setRecurType(HORDE_DATE_RECUR_WEEKLY); + $parse_day = true; + $set_daymask = true; + break; + + case 'monthly': + + if (!isset($hash['daynumber'])) { + $this->setRecurType(HORDE_DATE_RECUR_NONE); + return false; + } + + switch ($hash['type']) { + case 'daynumber': + $this->setRecurType(HORDE_DATE_RECUR_MONTHLY_DATE); + $update_daynumber = true; + break; + + case 'weekday': + $this->setRecurType(HORDE_DATE_RECUR_MONTHLY_WEEKDAY); + $nth_weekday = (int) $hash['daynumber']; + $hash['daynumber'] = 1; + $parse_day = true; + $update_daynumber = true; + $update_weekday = true; + break; + } + break; + + case 'yearly': + + if (!isset($hash['type'])) { + $this->setRecurType(HORDE_DATE_RECUR_NONE); + return false; + } + + switch ($hash['type']) { + case 'monthday': + $this->setRecurType(HORDE_DATE_RECUR_YEARLY_DATE); + $update_month = true; + $update_daynumber = true; + break; + case 'yearday': + + if (!isset($hash['month'])) { + $this->setRecurType(HORDE_DATE_RECUR_NONE); + return false; + } + + $this->setRecurType(HORDE_DATE_RECUR_YEARLY_DAY); + // Start counting days in January + $hash['month'] = 'january'; + $update_month = true; + $update_daynumber = true; + break; + case 'weekday': + + if (!isset($hash['daynumber'])) { + $this->setRecurType(HORDE_DATE_RECUR_NONE); + return false; + } + + $this->setRecurType(HORDE_DATE_RECUR_YEARLY_WEEKDAY); + $nth_weekday = (int) $hash['daynumber']; + $hash['daynumber'] = 1; + $parse_day = true; + $update_month = true; + $update_daynumber = true; + $update_weekday = true; + break; + } + } + + switch ($hash['range-type']) { + case 'number': + + if (!isset($hash['range'])) { + $this->setRecurType(HORDE_DATE_RECUR_NONE); + return false; + } + + $this->setRecurCount((int) $hash['range']); + break; + + case 'date': + // fix off-by-one day + //FIXME + $timestamp = Kolab_Date::decodeDate($hash['range']); + $this->setRecurEnd(new Horde_Date($timestamp + 86400)); + break; + } + + // Need to parse ? + $last_found_day = -1; + if ($parse_day) { + + if (!isset($hash['day'])) { + $this->setRecurType(HORDE_DATE_RECUR_NONE); + return false; + } + + $mask = 0; + $bits = array( + 'monday' => HORDE_DATE_MASK_MONDAY, + 'tuesday' => HORDE_DATE_MASK_TUESDAY, + 'wednesday' => HORDE_DATE_MASK_WEDNESDAY, + 'thursday' => HORDE_DATE_MASK_THURSDAY, + 'friday' => HORDE_DATE_MASK_FRIDAY, + 'saturday' => HORDE_DATE_MASK_SATURDAY, + 'sunday' => HORDE_DATE_MASK_SUNDAY, + ); + + $days = array( + 'monday' => HORDE_DATE_MONDAY, + 'tuesday' => HORDE_DATE_TUESDAY, + 'wednesday' => HORDE_DATE_WEDNESDAY, + 'thursday' => HORDE_DATE_THURSDAY, + 'friday' => HORDE_DATE_FRIDAY, + 'saturday' => HORDE_DATE_SATURDAY, + 'sunday' => HORDE_DATE_SUNDAY, + ); + + foreach ($hash['day'] as $day) { + // validity check + if (empty($day) || !isset($bits[$day])) + continue; + + $mask |= $bits[$day]; + $last_found_day = $days[$day]; + } + + if ($set_daymask) { + $this->setRecurOnDay($mask); + } + } + + if ($update_month || $update_daynumber || $update_weekday) { + if ($update_month) { + $month2number = array( + 'january' => 1, + 'february' => 2, + 'march' => 3, + 'april' => 4, + 'may' => 5, + 'june' => 6, + 'july' => 7, + 'august' => 8, + 'september' => 9, + 'october' => 10, + 'november' => 11, + 'december' => 12, + ); + + if (isset($month2number[$hash['month']])) { + $this->start->month = $month2number[$hash['month']]; + } + } + + if ($update_daynumber) { + + if (!isset($hash['daynumber'])) { + $this->setRecurType(HORDE_DATE_RECUR_NONE); + return false; + } + + $this->start->mday = $hash['daynumber']; + } + + if ($update_weekday) { + $this->start->setNthWeekday($last_found_day, $nth_weekday); + } + + $this->start->correct(); + } + + // Exclusions + if (isset($hash['exclusion'])) { + foreach($hash['exclusion'] as $exclusion) { + $date = new Horde_Date(Kolab_Date::decodeDate($exclusion)); + $this->addException($date->year, $date->month, $date->mday); + } + } + + return true; + } + + /** + * Export this object into a hash + * + * @return array The recurrence hash + */ + function toHash() + { + $hash = array(); + + $hash['interval'] = $this->getRecurInterval(); + + $day2number = array( + 0 => 'sunday', + 1 => 'monday', + 2 => 'tuesday', + 3 => 'wednesday', + 4 => 'thursday', + 5 => 'friday', + 6 => 'saturday' + ); + + $month2number = array( + 1 => 'january', + 2 => 'february', + 3 => 'march', + 4 => 'april', + 5 => 'may', + 6 => 'june', + 7 => 'july', + 8 => 'august', + 9 => 'september', + 10 => 'october', + 11 => 'november', + 12 => 'december' + ); + + $start = $this->getRecurStart(); + switch ($this->getRecurType()) { + case HORDE_DATE_RECUR_DAILY: + $hash['cycle'] = 'daily'; + break; + + case HORDE_DATE_RECUR_WEEKLY: + $hash['cycle'] = 'weekly'; + + $bits = array( + 'monday' => HORDE_DATE_MASK_MONDAY, + 'tuesday' => HORDE_DATE_MASK_TUESDAY, + 'wednesday' => HORDE_DATE_MASK_WEDNESDAY, + 'thursday' => HORDE_DATE_MASK_THURSDAY, + 'friday' => HORDE_DATE_MASK_FRIDAY, + 'saturday' => HORDE_DATE_MASK_SATURDAY, + 'sunday' => HORDE_DATE_MASK_SUNDAY, + ); + + $days = array(); + foreach($bits as $name => $bit) { + if ($this->recurOnDay($bit)) { + $days[] = $name; + } + } + + $hash['day'] = $days; + break; + + case HORDE_DATE_RECUR_MONTHLY_DATE: + $hash['cycle'] = 'monthly'; + $hash['type'] = 'daynumber'; + $hash['daynumber'] = $start->mday; + break; + + case HORDE_DATE_RECUR_MONTHLY_WEEKDAY: + $hash['cycle'] = 'monthly'; + $hash['type'] = 'weekday'; + $hash['daynumber'] = $start->weekOfMonth(); + $hash['day'] = array ($day2number[$start->dayOfWeek()]); + break; + + case HORDE_DATE_RECUR_YEARLY_DATE: + $hash['cycle'] = 'yearly'; + $hash['type'] = 'monthday'; + $hash['daynumber'] = $start->mday; + $hash['month'] = $month2number[$start->month]; + break; + + case HORDE_DATE_RECUR_YEARLY_DAY: + $hash['cycle'] = 'yearly'; + $hash['type'] = 'yearday'; + $hash['daynumber'] = $start->dayOfYear(); + break; + + case HORDE_DATE_RECUR_YEARLY_WEEKDAY: + $hash['cycle'] = 'yearly'; + $hash['type'] = 'weekday'; + + $hash['daynumber'] = $start->weekOfMonth(); + $hash['day'] = array ($day2number[$start->dayOfWeek()]); + $hash['month'] = $month2number[$start->month]; + } + + if ($this->hasRecurCount()) { + $hash['range-type'] = 'number'; + $hash['range'] = $this->getRecurCount(); + }else if ($this->hasRecurEnd()) { + // Fix of-by-one day + $date = $this->getRecurEnd(); + $date->mday -= 1; + $date->correct(); + + $hash['range-type'] = 'date'; + $hash['range'] = Kolab_Date::encodeDate($date->timestamp()); + } else { + $hash['range-type'] = 'none'; + $hash['range'] = ''; + } + + // Recurrence exclusions + $exclusions = array(); + foreach ($this->getExceptions() as $exception) { + if (!empty($exception)) { + list($year, $month, $mday) = sscanf($exception, '%04d%02d%02d'); + $exclusions[] = "$year-$month-$mday"; + } + } + $hash['exclusion'] = $exclusions; + + return $hash; + } + } diff -r 2be0e69810d0 framework/Kolab/Kolab.php --- a/framework/Kolab/Kolab.php Mon Nov 19 17:20:06 2007 +0100 +++ b/framework/Kolab/Kolab.php Thu Nov 22 17:17:04 2007 +0100 @@ -68,11 +68,14 @@ class Kolab { */ var $_uid; - function Kolab() - { - global $registry; - - $this->_app = $registry->getApp(); + function Kolab($app = null) + { + if (!isset($app)) { + global $registry; + $app = $registry->getApp(); + } + $this->_app = $app; + $this->_storage = &new Kolab_IMAP(); } diff -r 2be0e69810d0 framework/Kolab/Kolab/LDAP.php --- a/framework/Kolab/Kolab/LDAP.php Mon Nov 19 17:20:06 2007 +0100 +++ b/framework/Kolab/Kolab/LDAP.php Thu Nov 22 17:17:04 2007 +0100 @@ -60,7 +60,7 @@ class Horde_Kolab_LDAP { $this->bind_dn = false; $this->search_result = false; - $server = Kolab::getServer('ldap'); + $server = $GLOBALS['conf']['kolab']['ldap']['server']; $this->connection = ldap_connect($server); // We really neeed v3! @@ -222,4 +222,127 @@ class Horde_Kolab_LDAP { } } + /** + * Return a hash of info about a user + * + * @param string $uid The UID of the user. + * + * @return string The hash containing the user information. + */ + function userInfo($uid) + { + $result = ldap_search($this->connection, + $GLOBALS['conf']['kolab']['ldap']['basedn'], + '(&(objectClass=kolabInetOrgPerson)(|(uid='. + Horde_LDAP::quote($uid) . ')(mail=' . + Horde_LDAP::quote($uid) . ')))', + array('dn','mail','uid','kolabHomeServer', + 'kolabFreeBusyFuture')); + if ($result) { + $entries = ldap_get_entries($this->connection, $result); + if($entries['count'] > 0 && !empty($entries[0]['mail'][0])) { + $hash = array(); + $hash['DN'] = $this->readLdapAttr($entries[0], 'dn'); + $hash['UID'] = $this->readLdapAttr($entries[0], 'uid'); + $hash['MAIL'] = $this->readLdapAttr($entries[0], 'mail', + $uid); + $hash['HOMESERVER'] = $this->readLdapAttr($entries[0], + 'kolabhomeserver'); + $hash['FBFUTURE'] = (int)($this->readLdapAttr($entries[0], + 'kolabfreebusyfuture', + 60)); + $hash['GROUPS'] = $this->getGroups($hash['DN']); + ldap_free_result( $result ); + return $hash; + } + ldap_free_result($result); + } else { + return PEAR::raiseError(sprintf(_("Error searching for user with the uid \"%s\"!"), + $uid)); + } + return false; + } + + /** + * Read an LDAP attribute + * + * @param string $entry The LDAP search result + * @param string $attrname The attribute to read. + * @param mixed $default A possible default value. + * + * @return mixed The attribute value or the default if the + * attribute was not found or the attribute + * was empty. + */ + function readLdapAttr($entry, $attrname, $default = false ) { + $val = $default; + if (!array_key_exists($attrname, $entry)) { + return $default; + } else if (is_array($entry[$attrname])) { + $val = $entry[$attrname][0]; + } else { + $val = $entry[$attrname]; + } + if($val == '') { + return $default; + } + return $val; + } + + function freeBusyPast() { + $result = ldap_read($this->connection, + $GLOBALS['conf']['kolab']['ldap']['basedn'], + '(&(objectClass=kolab)(k=kolab))', + array('kolabFreeBusyPast')); + if ($result) { + $entries = ldap_get_entries($this->connection, $result); + if ($entries['count'] > 0 && + !empty($entries[0]['kolabfreebusypast'][0])) { + ldap_free_result($result); + return $entries[0]['kolabfreebusypast'][0]; + } + } + // Default + return 0; + } + + function getGroups($dn) { + $result = ldap_search($this->connection, + $GLOBALS['conf']['kolab']['ldap']['basedn'], + '(&(objectClass=kolabGroupOfNames)(member=' . + Horde_LDAP::quote($dn) . '))', array('mail')); + if ($result) { + $entries = ldap_get_entries($this->connection, $result); + $lst = array(); + for ($i = 0; $i < $entries['count']; $i++) { + $lst[] = $entries[$i]['mail'][0]; + } + return $lst; + } + return array(); + } + + /** + * Attempts to return a reference to a concrete Horde_Kolab_LDAP + * instance. It will only create a new instance if no + * Horde_Kolab_LDAP instance currently exists. + * + * This method must be invoked as: + * $var = &Horde_Kolab_LDAP::singleton(); + * + * @static + * + * @return Horde_Kolab_LDAP The concrete Horde_Kolab_LDAP + * reference, or false on an error. + */ + function &singleton() + { + static $ldap = null; + + if (empty($ldap)) { + $ldap = &new Horde_Kolab_LDAP(); + } + + return $ldap; + } } \ No newline at end of file diff -r 2be0e69810d0 framework/Kolab/package.xml --- a/framework/Kolab/package.xml Mon Nov 19 17:20:06 2007 +0100 +++ b/framework/Kolab/package.xml Thu Nov 22 17:17:04 2007 +0100 @@ -45,6 +45,7 @@ communication between a Horde client and + Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/ChangeLog,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- ChangeLog 19 Nov 2007 19:48:46 -0000 1.10 +++ ChangeLog 22 Nov 2007 16:24:14 -0000 1.11 @@ -1,3 +1,9 @@ +2007-11-22 Gunnar Wrobel

    + + * horde-framework-kolab.spec: + + New functionality required for kolab-freebusy. + 2007-11-19 Gunnar Wrobel

    * horde-framework-kolab.spec: Index: horde-framework-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/horde-framework-kolab.spec,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- horde-framework-kolab.spec 19 Nov 2007 19:48:46 -0000 1.28 +++ horde-framework-kolab.spec 22 Nov 2007 16:24:14 -0000 1.29 @@ -3,7 +3,7 @@ %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 %define V_month 11 -%define V_day 19 +%define V_day 22 %define V_version 3.2_ALPHA %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -33,6 +33,7 @@ Patch4: HK-GW-Kolab_issue_2144.patch Patch5: HK-GW-Kolab_issue_2138.patch Patch6: HK-GW-Fix_contact_XML.patch +Patch7: HK-GW-Kolab_extensions.patch # Build Info Prefix: %{l_prefix} @@ -61,6 +62,7 @@ %patch -p2 -P 4 %patch -p2 -P 5 %patch -p2 -P 6 + %patch -p2 -P 7 %build From cvs at kolab.org Thu Nov 22 17:24:16 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 17:24:16 +0100 (CET) Subject: gunnar: server/patches/horde README_Kolab_extensions.patch,NONE,1.1 Message-ID: <20071122162416.60B31600D77@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde In directory doto:/tmp/cvs-serv1438/patches/horde Added Files: README_Kolab_extensions.patch Log Message: Added Horde/Kolab extensionsrequired for the new freebusy package. --- NEW FILE: README_Kolab_extensions.patch --- DESCRIPTION: This adds functionality required for the restructured kolab-freebusy package. IMPACT: kolab-freebusy won't work without it. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary HISTORY Submission upstream still pending (at least most of it). From cvs at kolab.org Thu Nov 22 17:31:02 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 17:31:02 +0100 (CET) Subject: gunnar: server/patches/horde HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch, 1.1, 1.2 Message-ID: <20071122163102.CD5DF600D74@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde In directory doto:/tmp/cvs-serv1655/patches/horde Modified Files: HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch Log Message: Missed a file in the patch. Index: HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch =================================================================== RCS file: /kolabrepository/server/patches/horde/HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch 22 Nov 2007 16:20:54 -0000 1.1 +++ HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch 22 Nov 2007 16:31:00 -0000 1.2 @@ -1,6 +1,6 @@ diff -r 2be0e69810d0 framework/Auth/Auth/kolab.php --- a/framework/Auth/Auth/kolab.php Mon Nov 19 17:20:06 2007 +0100 -+++ b/framework/Auth/Auth/kolab.php Thu Nov 22 17:17:04 2007 +0100 ++++ b/framework/Auth/Auth/kolab.php Thu Nov 22 17:29:28 2007 +0100 @@ -31,7 +31,12 @@ class Auth_kolab extends Auth_imap { { $params['hostspec'] = Kolab::getServer('imap'); @@ -17,7 +17,7 @@ } diff -r 2be0e69810d0 framework/Date/Date/Recurrence.php --- a/framework/Date/Date/Recurrence.php Mon Nov 19 17:20:06 2007 +0100 -+++ b/framework/Date/Date/Recurrence.php Thu Nov 22 17:17:04 2007 +0100 ++++ b/framework/Date/Date/Recurrence.php Thu Nov 22 17:29:28 2007 +0100 @@ -1044,4 +1044,352 @@ class Horde_Date_Recurrence { return $rrule; } @@ -373,7 +373,7 @@ } diff -r 2be0e69810d0 framework/Kolab/Kolab.php --- a/framework/Kolab/Kolab.php Mon Nov 19 17:20:06 2007 +0100 -+++ b/framework/Kolab/Kolab.php Thu Nov 22 17:17:04 2007 +0100 ++++ b/framework/Kolab/Kolab.php Thu Nov 22 17:29:28 2007 +0100 @@ -68,11 +68,14 @@ class Kolab { */ var $_uid; @@ -394,9 +394,503 @@ $this->_storage = &new Kolab_IMAP(); } +diff -r 2be0e69810d0 framework/Kolab/Kolab/Freebusy.php +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/framework/Kolab/Kolab/Freebusy.php Thu Nov 22 17:29:28 2007 +0100 +@@ -0,0 +1,490 @@ ++ ++ * @author Chuck Hagenbuch ++ * @author Steffen Hansen ++ * @package Horde_Kolab ++ */ ++class Horde_Kolab_Freebusy { ++ ++ /** ++ * Our Kolab server connection. ++ * ++ * @var Kolab ++ */ ++ var $_kolab = null; ++ ++ /** ++ * Shortcut to the imap connection ++ * ++ * @var Kolab_IMAP ++ */ ++ var $_store; ++ ++ /** ++ * The folder we are generating free/busy information for ++ * ++ * @var string ++ */ ++ var $_folder; ++ ++ /** ++ * Is this folder relevant only for users or admins? ++ * ++ * @var string ++ */ ++ var $_relevance; ++ ++ /** ++ * Folder ACLs ++ * ++ * @var string ++ */ ++ var $_acl; ++ ++ /** ++ * Folder extended attributes ACL ++ * ++ * @var string ++ */ ++ var $_xacl; ++ ++ /** ++ * Initialize the free/busy handler. ++ * ++ * @return Horde_Kolab_Freebusy The initialized free/busy class ++ */ ++ function Horde_Kolab_Freebusy() ++ { ++ /* Pretend that we are Kronolith */ ++ $this->_kolab = &new Kolab('kronolith'); ++ } ++ ++ /** ++ * Connect to IMAP. ++ * ++ * This function has been derived from the synchronize() function ++ * in the Kolab driver for Kronolith. ++ * ++ * @param string $folder The folder to generate free/busy data for. ++ */ ++ function connect($folder) ++ { ++ // Connect to the Kolab backend ++ $result = $this->_kolab->open($folder, 1); ++ if (is_a($result, 'PEAR_Error')) { ++ return $result; ++ } ++ $this->_store = &$this->_kolab->_storage; ++ if (!$this->_store->_imap->exists($folder)) { ++ return PEAR::raiseError(sprintf(_("Folder %s does not exist!"), $folder)); ++ } ++ $type = $this->_store->getMailboxType($folder); ++ if ($type != 'event') { ++ return PEAR::raiseError(sprintf(_("Folder %s has type \"%s\" not \"event\"!"), ++ $folder, $type)); ++ } ++ $this->_folder = $folder; ++ } ++ ++ /** ++ * Lists all events in the time range, optionally restricting ++ * results to only events with alarms. ++ * ++ * Taken from the Kolab driver for Kronolith. ++ * ++ * @param Horde_Date $startInterval Start of range date object. ++ * @param Horde_Date $endInterval End of range data object. ++ * ++ * @return array Events in the given time range. ++ */ ++ function listEvents($startDate = null, $endDate = null) ++ { ++ $events = array(); ++ ++ $objects = $this->_store->getObjects(); ++ foreach($objects as $object) { ++ $events[] = &new Kolab_Event($object); ++ } ++ ++ if (is_null($startDate)) { ++ $startDate = &new Horde_Date(array('mday' => 1, 'month' => 1, 'year' => 0000)); ++ } ++ if (is_null($endDate)) { ++ $endDate = &new Horde_Date(array('mday' => 31, 'month' => 12, 'year' => 9999)); ++ } ++ ++ $result = array(); ++ ++ foreach($events as $event) { ++ ++ /* check if event period intersects with given period */ ++ if (!(($endDate->compareDateTime($event->start) < 0) || ++ ($startDate->compareDateTime($event->end) > 0))) { ++ $result[] = $event; ++ continue; ++ } ++ ++ /* do recurrence expansion if not keeping anyway */ ++ if ($event->recurs()) { ++ $next = $event->recurrence->nextRecurrence($startDate); ++ if ($next !== false && ++ !$event->recurrence->hasException($next->year, $next->month, $next->mday) && ++ (!(($endDate->compareDateTime($event->start) < 0) || ++ ($startDate->compareDateTime($event->end) > 0)))) { ++ $result[] = $event; ++ } ++ } ++ } ++ ++ return $result; ++ } ++ ++ function getRelevance() { ++ ++ /* cached? */ ++ if (isset($this->_relevance)) { ++ return $this->_relevance; ++ } ++ ++ $annotation = $this->_store->_imap->getAnnotation('/vendor/kolab/incidences-for', ++ 'value.shared', ++ $this->_folder); ++ if (is_a($annotation, 'PEAR_Error')) { ++ return $annotation; ++ } ++ ++ if (empty($annotation)) { ++ Horde::logMessage(sprintf(_("No relevance value found for %s"), $this->_folder), ++ __FILE__, __LINE__, PEAR_LOG_DEBUG); ++ $this->_relevance = 'admins'; ++ } else { ++ Horde::logMessage(sprintf(_("Relevance for %s is %s"), $this->_folder, $annotation), ++ __FILE__, __LINE__, PEAR_LOG_DEBUG); ++ $this->_relevance = $annotation; ++ } ++ return $this->_relevance; ++ } ++ ++ function getACL() { ++ ++ /* cached? */ ++ if (isset($this->_acl)) { ++ return $this->_acl; ++ } ++ ++ $acl = $this->_store->_imap->getACL($this->_folder); ++ if (is_a($acl, 'PEAR_Error')) { ++ return $acl; ++ } ++ ++ if (empty($acl)) { ++ Horde::logMessage(sprintf(_("No ACL found for %s"), $this->_folder), ++ __FILE__, __LINE__, PEAR_LOG_DEBUG); ++ $this->_acl = ''; ++ } else { ++ Horde::logMessage(sprintf(_("ACL for %s is %s"), ++ $this->_folder, serialize($acl)), ++ __FILE__, __LINE__, PEAR_LOG_DEBUG); ++ $this->_acl = $acl; ++ } ++ return $this->_acl; ++ } ++ ++ function getExtendedACL() { ++ ++ /* cached? */ ++ if (isset($this->_xacl)) { ++ return $this->_xacl; ++ } ++ ++ $annotation = $this->_store->_imap->getAnnotation('/vendor/kolab/xfb-readable', ++ 'value.shared', ++ $this->_folder); ++ if (is_a($annotation, 'PEAR_Error')) { ++ return $annotation; ++ } ++ ++ if (empty($annotation)) { ++ Horde::logMessage(sprintf(_("No extended ACL value found for %s"), $this->_folder), ++ __FILE__, __LINE__, PEAR_LOG_DEBUG); ++ $this->_xacl = ''; ++ } else { ++ Horde::logMessage(sprintf(_("Extended ACL for %s is %s"), $this->_folder, $annotation), ++ __FILE__, __LINE__, PEAR_LOG_DEBUG); ++ $this->_xacl = $annotation; ++ } ++ return $this->_xacl; ++ } ++ ++ /** ++ * Generates the free/busy text for $calendar. Cache it for at least an ++ * hour, as well. ++ * ++ * @param integer $startstamp The start of the time period to retrieve. ++ * @param integer $endstamp The end of the time period to retrieve. ++ * @param integer $fbpast The number of days that free/busy should ++ * be calculated for the past ++ * @param integer $fbfuture The number of days that free/busy should ++ * be calculated for the future ++ * @param string $user Set organizer to this user. ++ * ++ * @return string The free/busy text. ++ */ ++ function &generate($startstamp = null, $endstamp = null, ++ $fbpast = 0, $fbfuture = 60, ++ $user = null) ++ { ++ /* Get the iCalendar library at this point */ ++ require_once 'Horde/iCalendar.php'; ++ ++ /* Default the start date to today. */ ++ if (is_null($startstamp)) { ++ $month = date('n'); ++ $year = date('Y'); ++ $day = date('j'); ++ ++ $startstamp = mktime(0, 0, 0, $month, $day - $fbpast, $year); ++ } ++ ++ /* Default the end date to the start date + freebusy_days. */ ++ if (is_null($endstamp) || $endstamp < $startstamp) { ++ $month = date('n', $startstamp); ++ $year = date('Y', $startstamp); ++ $day = date('j', $startstamp); ++ ++ $endstamp = mktime(0, 0, 0, ++ $month, ++ $day + $fbfuture, ++ $year); ++ } ++ ++ Horde::logMessage(sprintf(_("Creating free/busy infromation from %s to %s"), ++ $startstamp, $endstamp), __FILE__, __LINE__, ++ PEAR_LOG_DEBUG); ++ ++ /* Fetch events. */ ++ $startDate = new Horde_Date($startstamp); ++ $endDate = new Horde_Date($endstamp); ++ $events = $this->listEvents($startDate, $endDate); ++ if (empty($events)) { ++ return $events; ++ } ++ ++ /* Create the new iCalendar. */ ++ $vCal = new Horde_iCalendar(); ++ $vCal->setAttribute('PRODID', '-//proko2//freebusy 1.0//EN'); ++ $vCal->setAttribute('METHOD', 'PUBLISH'); ++ ++ /* Create new vFreebusy. */ ++ $vFb = &Horde_iCalendar::newComponent('vfreebusy', $vCal); ++ $vFb->setAttribute('ORGANIZER', 'MAILTO:' . $user); ++ ++ $vFb->setAttribute('DTSTAMP', $_SERVER['REQUEST_TIME']); ++ $vFb->setAttribute('DTSTART', $startstamp); ++ $vFb->setAttribute('DTEND', $endstamp); ++ // URL is not required, so out it goes... ++ //$vFb->setAttribute('URL', Horde::applicationUrl('fb.php?u=' . $share->get('owner'), true, -1)); ++ ++ /* Add all the busy periods. */ ++ foreach ($events as $event) { ++ if ($event->hasStatus(KRONOLITH_STATUS_FREE)) { ++ continue; ++ } ++ ++ $duration = $event->end->timestamp() - $event->start->timestamp(); ++ $extra = array('X-UID' => base64_encode($event->eventID), ++ 'X-SUMMARY' => base64_encode($event->title), ++ 'X-LOCATION' => base64_encode($event->location)); ++ ++ /* Make sure that we're using the current date for recurring ++ * events. */ ++ if ($event->recurs()) { ++ $startThisDay = mktime($event->start->hour, ++ $event->start->min, ++ $event->start->sec, ++ date('n', $day), ++ date('j', $day), ++ date('Y', $day)); ++ } else { ++ $startThisDay = $event->start->timestamp($extra); ++ } ++ if (!$event->recurs()) { ++ $vFb->addBusyPeriod('BUSY', $startThisDay, null, $duration, $extra); ++ } else { ++ while (true) { ++ $next = $event->recurrence->nextRecurrence($startDate); ++ if ($next === false) { ++ break; ++ } ++ if ($event->recurrence->hasException($next->year, $next->month, $next->mday)) { ++ continue; ++ } ++ if ($endDate->compareDateTime($next->start) < 0) { ++ break; ++ } ++ $vFb->addBusyPeriod('BUSY', $next->timestamp(), null, $duration, $extra); ++ } ++ } ++ } ++ ++ /* Remove the overlaps. */ ++ $vFb->simplify(); ++ $vCal->addComponent($vFb); ++ ++ return $vCal; ++ } ++} ++ ++class Kolab_Event { ++ ++ /** ++ * The driver unique identifier for this event. ++ * ++ * @var string ++ */ ++ var $eventID = null; ++ ++ /** ++ * The start time of the event. ++ * ++ * @var Horde_Date ++ */ ++ var $start; ++ ++ /** ++ * The end time of the event. ++ * ++ * @var Horde_Date ++ */ ++ var $end; ++ ++ /** ++ * The title of this event. ++ * ++ * @var string ++ */ ++ var $title = ''; ++ ++ /** ++ * The location this event occurs at. ++ * ++ * @var string ++ */ ++ var $location = ''; ++ ++ /** ++ * Whether the event is private. ++ * ++ * @var boolean ++ */ ++ var $private = false; ++ ++ function Kolab_Event($event) ++ { ++ $this->eventID = $event['uid']; ++ ++ $this->start = new Horde_Date($event['start-date']); ++ $this->end = new Horde_Date($event['end-date']); ++ ++ if (isset($event['summary'])) { ++ $this->title = $event['summary']; ++ } ++ ++ if (isset($event['location'])) { ++ $this->location = $event['location']; ++ } ++ ++ if ($event['sensitivity'] == 'private' || $event['sensitivity'] == 'confidential') { ++ $this->private = true; ++ } ++ ++ switch ($event['show-time-as']) { ++ case 'free': ++ $this->status = KRONOLITH_STATUS_CANCELLED; ++ break; ++ ++ case 'tentative': ++ $this->status = KRONOLITH_STATUS_TENTATIVE; ++ break; ++ ++ case 'busy': ++ case 'outofoffice': ++ default: ++ $this->status = KRONOLITH_STATUS_CONFIRMED; ++ } ++ ++ // Recurrence ++ if (isset($event['recurrence'])) { ++ $this->recurrence = new Horde_Date_Recurrence($this->start); ++ $this->recurrence->fromHash($event['recurrence']); ++ } ++ ++ } ++ ++ /** ++ * Returns whether this event is a recurring event. ++ * ++ * @return boolean True if this is a recurring event. ++ */ ++ function recurs() ++ { ++ return isset($this->recurrence) && ++ !$this->recurrence->hasRecurType(HORDE_DATE_RECUR_NONE); ++ } ++ ++ /** ++ * Sets the global UID for this event. ++ * ++ * @param string $uid The global UID for this event. ++ */ ++ function setUID($uid) ++ { ++ $this->_uid = $uid; ++ } ++ ++ /** ++ * Checks whether the events status is the same as the specified value. ++ * ++ * @param integer $status The status value to check against. ++ * ++ * @return boolean True if the events status is the same as $status. ++ */ ++ function hasStatus($status) ++ { ++ return ($status == $this->status); ++ } ++ ++} diff -r 2be0e69810d0 framework/Kolab/Kolab/LDAP.php --- a/framework/Kolab/Kolab/LDAP.php Mon Nov 19 17:20:06 2007 +0100 -+++ b/framework/Kolab/Kolab/LDAP.php Thu Nov 22 17:17:04 2007 +0100 ++++ b/framework/Kolab/Kolab/LDAP.php Thu Nov 22 17:29:28 2007 +0100 @@ -60,7 +60,7 @@ class Horde_Kolab_LDAP { $this->bind_dn = false; $this->search_result = false; @@ -537,7 +1031,7 @@ \ No newline at end of file diff -r 2be0e69810d0 framework/Kolab/package.xml --- a/framework/Kolab/package.xml Mon Nov 19 17:20:06 2007 +0100 -+++ b/framework/Kolab/package.xml Thu Nov 22 17:17:04 2007 +0100 ++++ b/framework/Kolab/package.xml Thu Nov 22 17:29:28 2007 +0100 @@ -45,6 +45,7 @@ communication between a Horde client and

    From cvs at kolab.org Thu Nov 22 17:31:02 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 17:31:02 +0100 (CET) Subject: gunnar: server/horde/horde-framework HK-GW-Kolab_extensions.patch, 1.1, 1.2 Message-ID: <20071122163102.A94E0600D6B@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-framework In directory doto:/tmp/cvs-serv1655/horde/horde-framework Modified Files: HK-GW-Kolab_extensions.patch Log Message: Missed a file in the patch. Index: HK-GW-Kolab_extensions.patch =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/HK-GW-Kolab_extensions.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- HK-GW-Kolab_extensions.patch 22 Nov 2007 16:24:14 -0000 1.1 +++ HK-GW-Kolab_extensions.patch 22 Nov 2007 16:31:00 -0000 1.2 @@ -1,6 +1,6 @@ diff -r 2be0e69810d0 framework/Auth/Auth/kolab.php --- a/framework/Auth/Auth/kolab.php Mon Nov 19 17:20:06 2007 +0100 -+++ b/framework/Auth/Auth/kolab.php Thu Nov 22 17:17:04 2007 +0100 ++++ b/framework/Auth/Auth/kolab.php Thu Nov 22 17:29:28 2007 +0100 @@ -31,7 +31,12 @@ class Auth_kolab extends Auth_imap { { $params['hostspec'] = Kolab::getServer('imap'); @@ -17,7 +17,7 @@ } diff -r 2be0e69810d0 framework/Date/Date/Recurrence.php --- a/framework/Date/Date/Recurrence.php Mon Nov 19 17:20:06 2007 +0100 -+++ b/framework/Date/Date/Recurrence.php Thu Nov 22 17:17:04 2007 +0100 ++++ b/framework/Date/Date/Recurrence.php Thu Nov 22 17:29:28 2007 +0100 @@ -1044,4 +1044,352 @@ class Horde_Date_Recurrence { return $rrule; } @@ -373,7 +373,7 @@ } diff -r 2be0e69810d0 framework/Kolab/Kolab.php --- a/framework/Kolab/Kolab.php Mon Nov 19 17:20:06 2007 +0100 -+++ b/framework/Kolab/Kolab.php Thu Nov 22 17:17:04 2007 +0100 ++++ b/framework/Kolab/Kolab.php Thu Nov 22 17:29:28 2007 +0100 @@ -68,11 +68,14 @@ class Kolab { */ var $_uid; @@ -394,9 +394,503 @@ $this->_storage = &new Kolab_IMAP(); } +diff -r 2be0e69810d0 framework/Kolab/Kolab/Freebusy.php +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/framework/Kolab/Kolab/Freebusy.php Thu Nov 22 17:29:28 2007 +0100 +@@ -0,0 +1,490 @@ ++ ++ * @author Chuck Hagenbuch ++ * @author Steffen Hansen ++ * @package Horde_Kolab ++ */ ++class Horde_Kolab_Freebusy { ++ ++ /** ++ * Our Kolab server connection. ++ * ++ * @var Kolab ++ */ ++ var $_kolab = null; ++ ++ /** ++ * Shortcut to the imap connection ++ * ++ * @var Kolab_IMAP ++ */ ++ var $_store; ++ ++ /** ++ * The folder we are generating free/busy information for ++ * ++ * @var string ++ */ ++ var $_folder; ++ ++ /** ++ * Is this folder relevant only for users or admins? ++ * ++ * @var string ++ */ ++ var $_relevance; ++ ++ /** ++ * Folder ACLs ++ * ++ * @var string ++ */ ++ var $_acl; ++ ++ /** ++ * Folder extended attributes ACL ++ * ++ * @var string ++ */ ++ var $_xacl; ++ ++ /** ++ * Initialize the free/busy handler. ++ * ++ * @return Horde_Kolab_Freebusy The initialized free/busy class ++ */ ++ function Horde_Kolab_Freebusy() ++ { ++ /* Pretend that we are Kronolith */ ++ $this->_kolab = &new Kolab('kronolith'); ++ } ++ ++ /** ++ * Connect to IMAP. ++ * ++ * This function has been derived from the synchronize() function ++ * in the Kolab driver for Kronolith. ++ * ++ * @param string $folder The folder to generate free/busy data for. ++ */ ++ function connect($folder) ++ { ++ // Connect to the Kolab backend ++ $result = $this->_kolab->open($folder, 1); ++ if (is_a($result, 'PEAR_Error')) { ++ return $result; ++ } ++ $this->_store = &$this->_kolab->_storage; ++ if (!$this->_store->_imap->exists($folder)) { ++ return PEAR::raiseError(sprintf(_("Folder %s does not exist!"), $folder)); ++ } ++ $type = $this->_store->getMailboxType($folder); ++ if ($type != 'event') { ++ return PEAR::raiseError(sprintf(_("Folder %s has type \"%s\" not \"event\"!"), ++ $folder, $type)); ++ } ++ $this->_folder = $folder; ++ } ++ ++ /** ++ * Lists all events in the time range, optionally restricting ++ * results to only events with alarms. ++ * ++ * Taken from the Kolab driver for Kronolith. ++ * ++ * @param Horde_Date $startInterval Start of range date object. ++ * @param Horde_Date $endInterval End of range data object. ++ * ++ * @return array Events in the given time range. ++ */ ++ function listEvents($startDate = null, $endDate = null) ++ { ++ $events = array(); ++ ++ $objects = $this->_store->getObjects(); ++ foreach($objects as $object) { ++ $events[] = &new Kolab_Event($object); ++ } ++ ++ if (is_null($startDate)) { ++ $startDate = &new Horde_Date(array('mday' => 1, 'month' => 1, 'year' => 0000)); ++ } ++ if (is_null($endDate)) { ++ $endDate = &new Horde_Date(array('mday' => 31, 'month' => 12, 'year' => 9999)); ++ } ++ ++ $result = array(); ++ ++ foreach($events as $event) { ++ ++ /* check if event period intersects with given period */ ++ if (!(($endDate->compareDateTime($event->start) < 0) || ++ ($startDate->compareDateTime($event->end) > 0))) { ++ $result[] = $event; ++ continue; ++ } ++ ++ /* do recurrence expansion if not keeping anyway */ ++ if ($event->recurs()) { ++ $next = $event->recurrence->nextRecurrence($startDate); ++ if ($next !== false && ++ !$event->recurrence->hasException($next->year, $next->month, $next->mday) && ++ (!(($endDate->compareDateTime($event->start) < 0) || ++ ($startDate->compareDateTime($event->end) > 0)))) { ++ $result[] = $event; ++ } ++ } ++ } ++ ++ return $result; ++ } ++ ++ function getRelevance() { ++ ++ /* cached? */ ++ if (isset($this->_relevance)) { ++ return $this->_relevance; ++ } ++ ++ $annotation = $this->_store->_imap->getAnnotation('/vendor/kolab/incidences-for', ++ 'value.shared', ++ $this->_folder); ++ if (is_a($annotation, 'PEAR_Error')) { ++ return $annotation; ++ } ++ ++ if (empty($annotation)) { ++ Horde::logMessage(sprintf(_("No relevance value found for %s"), $this->_folder), ++ __FILE__, __LINE__, PEAR_LOG_DEBUG); ++ $this->_relevance = 'admins'; ++ } else { ++ Horde::logMessage(sprintf(_("Relevance for %s is %s"), $this->_folder, $annotation), ++ __FILE__, __LINE__, PEAR_LOG_DEBUG); ++ $this->_relevance = $annotation; ++ } ++ return $this->_relevance; ++ } ++ ++ function getACL() { ++ ++ /* cached? */ ++ if (isset($this->_acl)) { ++ return $this->_acl; ++ } ++ ++ $acl = $this->_store->_imap->getACL($this->_folder); ++ if (is_a($acl, 'PEAR_Error')) { ++ return $acl; ++ } ++ ++ if (empty($acl)) { ++ Horde::logMessage(sprintf(_("No ACL found for %s"), $this->_folder), ++ __FILE__, __LINE__, PEAR_LOG_DEBUG); ++ $this->_acl = ''; ++ } else { ++ Horde::logMessage(sprintf(_("ACL for %s is %s"), ++ $this->_folder, serialize($acl)), ++ __FILE__, __LINE__, PEAR_LOG_DEBUG); ++ $this->_acl = $acl; ++ } ++ return $this->_acl; ++ } ++ ++ function getExtendedACL() { ++ ++ /* cached? */ ++ if (isset($this->_xacl)) { ++ return $this->_xacl; ++ } ++ ++ $annotation = $this->_store->_imap->getAnnotation('/vendor/kolab/xfb-readable', ++ 'value.shared', ++ $this->_folder); ++ if (is_a($annotation, 'PEAR_Error')) { ++ return $annotation; ++ } ++ ++ if (empty($annotation)) { ++ Horde::logMessage(sprintf(_("No extended ACL value found for %s"), $this->_folder), ++ __FILE__, __LINE__, PEAR_LOG_DEBUG); ++ $this->_xacl = ''; ++ } else { ++ Horde::logMessage(sprintf(_("Extended ACL for %s is %s"), $this->_folder, $annotation), ++ __FILE__, __LINE__, PEAR_LOG_DEBUG); ++ $this->_xacl = $annotation; ++ } ++ return $this->_xacl; ++ } ++ ++ /** ++ * Generates the free/busy text for $calendar. Cache it for at least an ++ * hour, as well. ++ * ++ * @param integer $startstamp The start of the time period to retrieve. ++ * @param integer $endstamp The end of the time period to retrieve. ++ * @param integer $fbpast The number of days that free/busy should ++ * be calculated for the past ++ * @param integer $fbfuture The number of days that free/busy should ++ * be calculated for the future ++ * @param string $user Set organizer to this user. ++ * ++ * @return string The free/busy text. ++ */ ++ function &generate($startstamp = null, $endstamp = null, ++ $fbpast = 0, $fbfuture = 60, ++ $user = null) ++ { ++ /* Get the iCalendar library at this point */ ++ require_once 'Horde/iCalendar.php'; ++ ++ /* Default the start date to today. */ ++ if (is_null($startstamp)) { ++ $month = date('n'); ++ $year = date('Y'); ++ $day = date('j'); ++ ++ $startstamp = mktime(0, 0, 0, $month, $day - $fbpast, $year); ++ } ++ ++ /* Default the end date to the start date + freebusy_days. */ ++ if (is_null($endstamp) || $endstamp < $startstamp) { ++ $month = date('n', $startstamp); ++ $year = date('Y', $startstamp); ++ $day = date('j', $startstamp); ++ ++ $endstamp = mktime(0, 0, 0, ++ $month, ++ $day + $fbfuture, ++ $year); ++ } ++ ++ Horde::logMessage(sprintf(_("Creating free/busy infromation from %s to %s"), ++ $startstamp, $endstamp), __FILE__, __LINE__, ++ PEAR_LOG_DEBUG); ++ ++ /* Fetch events. */ ++ $startDate = new Horde_Date($startstamp); ++ $endDate = new Horde_Date($endstamp); ++ $events = $this->listEvents($startDate, $endDate); ++ if (empty($events)) { ++ return $events; ++ } ++ ++ /* Create the new iCalendar. */ ++ $vCal = new Horde_iCalendar(); ++ $vCal->setAttribute('PRODID', '-//proko2//freebusy 1.0//EN'); ++ $vCal->setAttribute('METHOD', 'PUBLISH'); ++ ++ /* Create new vFreebusy. */ ++ $vFb = &Horde_iCalendar::newComponent('vfreebusy', $vCal); ++ $vFb->setAttribute('ORGANIZER', 'MAILTO:' . $user); ++ ++ $vFb->setAttribute('DTSTAMP', $_SERVER['REQUEST_TIME']); ++ $vFb->setAttribute('DTSTART', $startstamp); ++ $vFb->setAttribute('DTEND', $endstamp); ++ // URL is not required, so out it goes... ++ //$vFb->setAttribute('URL', Horde::applicationUrl('fb.php?u=' . $share->get('owner'), true, -1)); ++ ++ /* Add all the busy periods. */ ++ foreach ($events as $event) { ++ if ($event->hasStatus(KRONOLITH_STATUS_FREE)) { ++ continue; ++ } ++ ++ $duration = $event->end->timestamp() - $event->start->timestamp(); ++ $extra = array('X-UID' => base64_encode($event->eventID), ++ 'X-SUMMARY' => base64_encode($event->title), ++ 'X-LOCATION' => base64_encode($event->location)); ++ ++ /* Make sure that we're using the current date for recurring ++ * events. */ ++ if ($event->recurs()) { ++ $startThisDay = mktime($event->start->hour, ++ $event->start->min, ++ $event->start->sec, ++ date('n', $day), ++ date('j', $day), ++ date('Y', $day)); ++ } else { ++ $startThisDay = $event->start->timestamp($extra); ++ } ++ if (!$event->recurs()) { ++ $vFb->addBusyPeriod('BUSY', $startThisDay, null, $duration, $extra); ++ } else { ++ while (true) { ++ $next = $event->recurrence->nextRecurrence($startDate); ++ if ($next === false) { ++ break; ++ } ++ if ($event->recurrence->hasException($next->year, $next->month, $next->mday)) { ++ continue; ++ } ++ if ($endDate->compareDateTime($next->start) < 0) { ++ break; ++ } ++ $vFb->addBusyPeriod('BUSY', $next->timestamp(), null, $duration, $extra); ++ } ++ } ++ } ++ ++ /* Remove the overlaps. */ ++ $vFb->simplify(); ++ $vCal->addComponent($vFb); ++ ++ return $vCal; ++ } ++} ++ ++class Kolab_Event { ++ ++ /** ++ * The driver unique identifier for this event. ++ * ++ * @var string ++ */ ++ var $eventID = null; ++ ++ /** ++ * The start time of the event. ++ * ++ * @var Horde_Date ++ */ ++ var $start; ++ ++ /** ++ * The end time of the event. ++ * ++ * @var Horde_Date ++ */ ++ var $end; ++ ++ /** ++ * The title of this event. ++ * ++ * @var string ++ */ ++ var $title = ''; ++ ++ /** ++ * The location this event occurs at. ++ * ++ * @var string ++ */ ++ var $location = ''; ++ ++ /** ++ * Whether the event is private. ++ * ++ * @var boolean ++ */ ++ var $private = false; ++ ++ function Kolab_Event($event) ++ { ++ $this->eventID = $event['uid']; ++ ++ $this->start = new Horde_Date($event['start-date']); ++ $this->end = new Horde_Date($event['end-date']); ++ ++ if (isset($event['summary'])) { ++ $this->title = $event['summary']; ++ } ++ ++ if (isset($event['location'])) { ++ $this->location = $event['location']; ++ } ++ ++ if ($event['sensitivity'] == 'private' || $event['sensitivity'] == 'confidential') { ++ $this->private = true; ++ } ++ ++ switch ($event['show-time-as']) { ++ case 'free': ++ $this->status = KRONOLITH_STATUS_CANCELLED; ++ break; ++ ++ case 'tentative': ++ $this->status = KRONOLITH_STATUS_TENTATIVE; ++ break; ++ ++ case 'busy': ++ case 'outofoffice': ++ default: ++ $this->status = KRONOLITH_STATUS_CONFIRMED; ++ } ++ ++ // Recurrence ++ if (isset($event['recurrence'])) { ++ $this->recurrence = new Horde_Date_Recurrence($this->start); ++ $this->recurrence->fromHash($event['recurrence']); ++ } ++ ++ } ++ ++ /** ++ * Returns whether this event is a recurring event. ++ * ++ * @return boolean True if this is a recurring event. ++ */ ++ function recurs() ++ { ++ return isset($this->recurrence) && ++ !$this->recurrence->hasRecurType(HORDE_DATE_RECUR_NONE); ++ } ++ ++ /** ++ * Sets the global UID for this event. ++ * ++ * @param string $uid The global UID for this event. ++ */ ++ function setUID($uid) ++ { ++ $this->_uid = $uid; ++ } ++ ++ /** ++ * Checks whether the events status is the same as the specified value. ++ * ++ * @param integer $status The status value to check against. ++ * ++ * @return boolean True if the events status is the same as $status. ++ */ ++ function hasStatus($status) ++ { ++ return ($status == $this->status); ++ } ++ ++} diff -r 2be0e69810d0 framework/Kolab/Kolab/LDAP.php --- a/framework/Kolab/Kolab/LDAP.php Mon Nov 19 17:20:06 2007 +0100 -+++ b/framework/Kolab/Kolab/LDAP.php Thu Nov 22 17:17:04 2007 +0100 ++++ b/framework/Kolab/Kolab/LDAP.php Thu Nov 22 17:29:28 2007 +0100 @@ -60,7 +60,7 @@ class Horde_Kolab_LDAP { $this->bind_dn = false; $this->search_result = false; @@ -537,7 +1031,7 @@ \ No newline at end of file diff -r 2be0e69810d0 framework/Kolab/package.xml --- a/framework/Kolab/package.xml Mon Nov 19 17:20:06 2007 +0100 -+++ b/framework/Kolab/package.xml Thu Nov 22 17:17:04 2007 +0100 ++++ b/framework/Kolab/package.xml Thu Nov 22 17:29:28 2007 +0100 @@ -45,6 +45,7 @@ communication between a Horde client and From cvs at kolab.org Thu Nov 22 17:53:07 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 17:53:07 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Freebusy package.xml.in,1.3,1.4 Message-ID: <20071122165307.42803600175@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Freebusy In directory doto:/tmp/cvs-serv2216 Modified Files: package.xml.in Log Message: Fully restructured the perl package. Implements the newest free/busy concepts. Index: package.xml.in =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Freebusy/package.xml.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- package.xml.in 16 Aug 2007 12:16:51 -0000 1.3 +++ package.xml.in 22 Nov 2007 16:53:05 -0000 1.4 @@ -83,19 +83,9 @@ - - - - - - - - - + + - - - From cvs at kolab.org Thu Nov 22 17:53:07 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 17:53:07 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Freebusy/tests Freebusy_recurrence.phpt, 1.2, NONE Message-ID: <20071122165307.7B3FF600D45@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Freebusy/tests In directory doto:/tmp/cvs-serv2216/tests Removed Files: Freebusy_recurrence.phpt Log Message: Fully restructured the perl package. Implements the newest free/busy concepts. --- Freebusy_recurrence.phpt DELETED --- From cvs at kolab.org Thu Nov 22 17:53:07 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 17:53:07 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Freebusy/Freebusy Cache.php, NONE, 1.1 Page.php, NONE, 1.1 domxml-php4-to-php5.php, 1.1, NONE freebusy.class.php, 1.5, NONE freebusycache.class.php, 1.2, NONE freebusycollector.class.php, 1.2, NONE freebusyimapcache.class.php, 1.2, NONE freebusyldap.class.php, 1.2, NONE freebusyldap_dummy.class.php, 1.2, NONE misc.php, 1.2, NONE recurrence.class.php, 1.3, NONE Message-ID: <20071122165307.7689A600175@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Freebusy/Freebusy In directory doto:/tmp/cvs-serv2216/Freebusy Added Files: Cache.php Page.php Removed Files: domxml-php4-to-php5.php freebusy.class.php freebusycache.class.php freebusycollector.class.php freebusyimapcache.class.php freebusyldap.class.php freebusyldap_dummy.class.php misc.php recurrence.class.php Log Message: Fully restructured the perl package. Implements the newest free/busy concepts. --- NEW FILE: Cache.php --- _cache_dir = $cache_dir; } function store($access) { $folder = $this->_getFolder($access); /* Now we really need the free/busy library */ require_once('Horde/Kolab/Freebusy.php'); $fb = &new Horde_Kolab_Freebusy(); $result = $fb->connect($folder); if (is_a($result, 'PEAR_Error')) { return $result; } $vCal = $fb->generate(null, null, $access->fbpast, $access->fbfuture, $access->owner); if (is_a($vCal, 'PEAR_Error')) { $vCal; } $fbfilename = $this->_getFilename($folder, $access->owner); $c_pvcal = &new FreeBusyCacheFile_pvcal($this->_cache_dir, $fbfilename); $c_acl = &new FreeBusyCacheFile_acl($this->_cache_dir, $fbfilename); $c_xacl = &new FreeBusyCacheFile_xacl($this->_cache_dir, $fbfilename); /* missing data means delete the cache files */ if (empty($vCal)) { Horde::logMessage(sprintf(_("No events. Purging cache %s."), $fbfilename), __FILE__, __LINE__, PEAR_LOG_DEBUG); $result = $c_pvcal->purge(); if (is_a($result, 'PEAR_Error')) { return $result; } $result = $c_acl->purge(); if (is_a($result, 'PEAR_Error')) { return $result; } $result = $c_xacl->purge(); if (is_a($result, 'PEAR_Error')) { return $result; } } else { $result = $c_pvcal->storePVcal($vCal); if (is_a($result, 'PEAR_Error')) { return $result; } $relevance = $fb->getRelevance(); if (is_a($relevance, 'PEAR_Error')) { $relevance; } $acl = $fb->getACL(); if (is_a($acl, 'PEAR_Error')) { $acl; } $result = $c_acl->storeACL($acl, $relevance); if (is_a($result, 'PEAR_Error')) { return $result; } $xacl = $fb->getExtendedACL(); if (is_a($xacl, 'PEAR_Error')) { $xacl; } /* The owner may always look at the extended attributes */ $xacl .= ' ' . $access->owner; $result = $c_xacl->storeXACL($xacl); if (is_a($result, 'PEAR_Error')) { return $result; } Horde::logMessage(sprintf(_("FreeBusyCache::store(file=%s, relevance=%s, acl=%s, xacl=%s)"), $fbfilename, $relevance, $acl, $xacl), __FILE__, __LINE__, PEAR_LOG_DEBUG); } } function &loadPartial(&$access, $extended) { $folder = $this->_getFolder($access); $file = $this->_getFilename($folder, $access->owner); $aclcache = &FreeBusyCacheDB_acl::singleton('acl', $this->_cache_dir); $relevant = false; foreach ($access->groups as $id) { if ($aclcache->has($file, $id)) { $relevant = true; break; } } if (!$relevant) { return PEAR::raiseError(sprintf(_("Folder %s is irrelevant for user %s."), $folder, $access->user)); } if ($extended) { $extended = $this->_allowExtended($file, $access); } $c_pvcal = &new FreeBusyCacheFile_pvcal($this->_cache_dir, $file); $pvCal = $c_pvcal->loadPVcal($extended); if (is_a($pvCal, 'PEAR_Error')) { return $pvCal; } return $pvCal; } function &load(&$access, $extended) { /* Which files will we access? */ $aclcache = &FreeBusyCacheDB_acl::singleton('acl', $this->_cache_dir); $files = array(); foreach ($access->groups as $id) { $add = $aclcache->get($id); if (is_a($add, 'PEAR_Error')) { return $add; } $files = array_unique(array_merge($files, $add)); } $filesnames = array(); $c_file = $this->_getFilename($access->user, $access->owner); $c_vcal = &new FreeBusyCacheFile_vcal($this->_cache_dir, $c_file); /* If the current vCal cache did not expire, we can deliver it */ if (!$c_vcal->expired($files)) { $vCal = $c_vcal->loadVcal(); if (is_a($vCal, 'PEAR_Error')) { return $vCal; } return $vCal; } // Create the new iCalendar. $vCal = &new Horde_iCalendar(); $vCal->setAttribute('PRODID', '-//proko2//freebusy 1.0//EN'); $vCal->setAttribute('METHOD', 'PUBLISH'); // Create new vFreebusy. $vFb = &Horde_iCalendar::newComponent('vfreebusy', $vCal); $vFb->setAttribute('ORGANIZER', 'MAILTO:' . $access->owner); $vFb->setAttribute('DTSTAMP', time()); $vFb->setAttribute('URL', 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']); $mtimes = array(); foreach ($files as $file) { if ($extended) { $extended = $this->_allowExtended($file, $access); } $c_pvcal = &new FreeBusyCacheFile_pvcal($this->_cache_dir, $file); $pvCal = $c_pvcal->loadPVcal($extended); if (is_a($pvCal, 'PEAR_Error')) { Horde::logMessage(sprintf(_("Ignoring partial free/busy file %s: %s)"), $file, $pvCal->getMessage()), __FILE__, __LINE__, PEAR_LOG_INFO); continue; } $pvFb = &$pvCal->findComponent('vfreebusy'); if( !$pvFb ) { Horde::logMessage(sprintf(_("Could not find free/busy info in file %s.)"), $file), __FILE__, __LINE__, PEAR_LOG_INFO); continue; } if ($ets = $pvFb->getAttributeDefault('DTEND', false) !== false) { // PENDING(steffen): Make value configurable if ($ets < time()) { Horde::logMessage(sprintf(_("Free/busy info in file %s is too old.)"), $file), __FILE__, __LINE__, PEAR_LOG_INFO); $c_pvcal->purge(); continue; } } $vFb->merge($pvFb); /* Store last modification time */ $mtimes[$file] = $c_pvcal->getMtime(); } if (!(boolean)$vFb->getBusyPeriods()) { /* No busy periods in fb list. We have to add a * dummy one to be standards compliant */ $vFb->setAttribute('COMMENT', 'This is a dummy vfreebusy that indicates an empty calendar'); $vFb->addBusyPeriod('BUSY', 0,0, null); } $vCal->addComponent($vFb); $c_vcal->storeVcal($vCal, $mtimes); return $vCal; } function _allowExtended($file, &$access) { $xaclcache = &FreeBusyCacheDB_xacl::singleton('xacl', $this->_cache_dir); foreach ($access->groups as $id) { if ($xaclcache->has($file, $id)) { return true; } } Horde::logMessage(sprintf(_("Extended attributes on folder %s disallowed for user %s."), $access->folder, $access->user), __FILE__, __LINE__, PEAR_LOG_DEBUG); return false; } /*************** Private API below this line *************/ function _getFilename($folder, $owner) { if (ereg('(.*)@(.*)', $owner, $regs)) { $owner = $regs[2] . '/' . $regs[1]; } if ($folder) { if (ereg('(.*)@(.*)', $folder, $regs)) { $folder = $regs[2] . '/' . $regs[1]; } $filename = $owner . '/' . $folder; } return str_replace("\0", '', str_replace('.', '^', $filename)); } function _getFolder($access) { $userdom = false; $ownerdom = false; if (ereg( '(.*)@(.*)', $access->user, $regs)) { // Regular user $user = $regs[1]; $userdom = $regs[2]; } if(ereg( '(.*)@(.*)', $access->owner, $regs)) { // Regular owner $owner = $regs[1]; $ownerdom = $regs[2]; } $fldrcomp = array(); if ($user == $owner) { $fldrcomp[] = 'INBOX'; } else { $fldrcomp[] = 'user'; $owner[] = 'user'; } if (!empty($access->folder)) { $fldrcomp[] = $access->folder; } $folder = join('/', $fldrcomp); if ($ownerdom && !$userdom) { $folder .= '@' . $ownerdom; } return $folder; } }; class FreeBusyCacheDB { var $_cache_dir; var $_db; var $_dbformat; var $_type = ''; function FreeBusyCacheDB($cache_dir) { global $conf; $this->_cache_dir = $cache_dir; if (!empty($conf['fb']['dbformat'])) { $this->_dbformat = $conf['fb']['dbformat']; } else { $this->_dbformat = 'db4'; } /* make sure that a database really exists before accessing it */ if (!file_exists($this->_cache_dir . '/' . $this->_type . 'cache.db')) { $result = $this->_open(); if (is_a($result, 'PEAR_Error')) { return $result; } $this->_close(); } } function _open() { if ($this->_db) { return; } $dbfile = $this->_cache_dir . '/' . $this->_type . 'cache.db'; $this->_db = @dba_open($dbfile, 'cd', $this->_dbformat); if ($this->_db === false) { return PEAR::raiseError(sprintf(_("Unable to open freebusy cache db %s"), $dbfile)); } } function _close() { @dba_close($this->_db); $this->_db = null; } function _remove($filename, $uid) { $result = $this->_open(); if (is_a($result, 'PEAR_Error')) { return $result; } if (dba_exists($uid, $this->_db)) { $lst = dba_fetch($uid, $this->_db); $lst = split(',', $lst); $lst = array_diff($lst, array($filename)); $result = dba_replace($uid, join(',', $lst), $this->_db); if ($result === false) { return PEAR::raiseError(sprintf(_("Unable to set db value for uid %s"), $uid)); } } } function _add($filename, $uid) { $result = $this->_open(); if (is_a($result, 'PEAR_Error')) { return $result; } if (dba_exists($uid, $this->_db)) { $lst = dba_fetch($uid, $this->_db); $lst = split(',', $lst); $lst[] = $filename; $result = dba_replace($uid, join(',', array_unique($lst)), $this->_db); if ($result === false) { return PEAR::raiseError(sprintf(_("Unable to set db value for uid %s"), $uid)); } } else { $result = dba_insert($uid, $filename, $this->_db); if ($result === false) { return PEAR::raiseError(sprintf(_("Unable to set db value for uid %s"), $uid)); } } } function has($filename, $uid) { $result = $this->_open(); if (is_a($result, 'PEAR_Error')) { return $result; } if (dba_exists($uid, $this->_db)) { $lst = dba_fetch($uid, $this->_db); $lst = split(',', $lst); return in_array($filename, $lst); } return false; } function get($uid) { $result = $this->_open(); if (is_a($result, 'PEAR_Error')) { return $result; } if (dba_exists($uid, $this->_db)) { $lst = dba_fetch($uid, $this->_db); return split(',', $lst); } return array(); } /** * Attempts to return a reference to a concrete FreeBusyACLCache * instance. It will only create a new instance if no * FreeBusyACLCache instance currently exists. * * This method must be invoked as: * $var = &FreeBusyACLCache::singleton($cache_dir); * * @static * * @param string $type The type of the cache. * @param string $cache_dir The directory for storing the cache. * * @return FreeBusyACLCache The concrete FreeBusyACLCache * reference, or false on an error. */ function &singleton($type, $cache_dir) { static $cachedb = array(); $signature = $type . $cache_dir; if (empty($cachedb[$signature])) { $class = 'FreeBusyCacheDB_' . $type; $cachedb[$signature] = &new $class($cache_dir); } return $cachedb[$signature]; } } class FreeBusyCacheDB_acl extends FreeBusyCacheDB { var $_type = 'acl'; function store($filename, $acl, $oldacl, $perm) { /* We remove the filename from all users listed in the old ACL first */ foreach ($oldacl as $ac) { $result = $this->_remove($filename, $ac[0]); if (is_a($result, 'PEAR_Error')) { return $result; } } /* Now add the filename for all users with the correct permissions */ if ($perm !== false ) { foreach ($acl as $user => $ac) { if (strpos($ac, $perm) !== false) { if (!empty($user)) { $result = $this->_add($filename, $user); if (is_a($result, 'PEAR_Error')) { return $result; } } } } } $this->_close(); } } class FreeBusyCacheDB_xacl extends FreeBusyCacheDB { var $_type = 'xacl'; function store($filename, $xacl, $oldxacl) { $xacl = split(' ', $xacl); $oldxacl = split(' ', $oldxacl); $both = array_intersect($xacl, $oldxacl); /* Removed access rights */ foreach (array_diff($oldxacl, $both) as $uid) { if (!empty($uid)) { $result = $this->_remove($filename, $uid); if (is_a($result, 'PEAR_Error')) { return $result; } } } /* Added access rights */ foreach (array_diff($xacl, $both) as $uid) { if (!empty($uid)) { $result = $this->_add($filename, $uid); if (is_a($result, 'PEAR_Error')) { return $result; } } } $this->_close(); } } class FreeBusyCacheFile { var $_suffix = ''; var $_filename; var $_file; var $_version = 1; function FreeBusyCacheFile($cache_dir, $filename, $suffix = null) { if (!empty($suffix)) { $this->_suffix = $suffix; } $this->_cache_dir = $cache_dir; $this->_filename = $filename; $this->_file = $this->_cache_dir . '/' . $this->_filename . '.' . $this->_suffix; } function purge() { if (file_exists($this->_file)) { $result = @unlink($this->_file); if (!$result) { return PEAR::raiseError(sprintf(_("Failed removing file %s"), $this->_file)); } } } function store(&$data) { /* Create directories if missing */ $fbdirname = dirname($this->_file); if (!is_dir($fbdirname)) { $result = $this->_makeTree($fbdirname); if (is_a($result, 'PEAR_Error')) { return $result; } } /* Store the cache data */ $fh = fopen($this->_file, 'w'); if (!$fh) { return PEAR::raiseError(sprintf(_("Failed creating cache file %s!"), $this->_file)); } fwrite($fh, serialize(array('version' => $this->_version, 'data' => $data))); fclose($fh); } function &load() { $file = @file_get_contents($this->_file); if ($file === false) { return PEAR::raiseError(sprintf(_("%s failed reading cache file %s!"), get_class($this), $this->_file)); } $cache = @unserialize($file); if ($cache === false) { return PEAR::raiseError(sprintf(_("%s failed to unserialize cache data from file %s!"), get_class($this), $this->_file)); } if (!isset($cache['version'])) { return PEAR::raiseError(sprintf(_("Cache file %s lacks version data!"), $this->_file)); } if (!isset($cache['data'])) { return PEAR::raiseError(sprintf(_("Cache file %s lacks data!"), $this->_file)); } if ($cache['version'] != $this->_version) { return PEAR::raiseError(sprintf(_("Cache file %s has version %s while %s is required!"), $this->_file, $cache['version'], $this->_version)); } return $cache['data']; } function _maketree($dirname) { $base = substr($dirname, 0, strrpos($dirname, '/')); $base = str_replace(".", "^", $base); if (!empty($base) && !is_dir($base)) { $result = $this->_maketree($base); if (is_a($result, 'PEAR_Error')) { return $result; } } if (!file_exists($dirname)) { $result = @mkdir($dirname, 0755); if (!$result) { return PEAR::raiseError(sprintf(_("Error creating directory %s"), $dirname)); } } } } class FreeBusyCacheFile_pvcal extends FreeBusyCacheFile { var $_suffix = 'pvc'; function storePVcal(&$pvcal) { return $this->store($pvcal); } function &loadPVcal($extended) { $pvcal = $this->load(); if (is_a($pvcal, 'PEAR_Error')) { return $pvcal; } if (!$extended) { $components = &$pvcal->getComponents(); foreach ($components as $component) { if ($component->getType() == 'vFreebusy') { $component->_extraParams = array(); } } } return $pvcal; } function getMtime() { return filemtime($this->_file); } } class FreeBusyCacheFile_vcal extends FreeBusyCacheFile { var $_suffix = 'vc'; var $_data; function storeVcal(&$vcal, &$mtimes) { $data = array('vcal' => $vcal, 'mtimes' => $mtimes); return $this->store($data); } function &loadVcal() { if ($this->_data) { return $this->_data; } $result = $this->load(); if (is_a($result, 'PEAR_Error')) { return $result; } $this->_data = $result['vcal']; return $this->_data; } function expired($files) { $result = $this->load(); if (is_a($result, 'PEAR_Error')) { return $result; } $this->_data = $result['vcal']; /* Files changed? */ $keys = array_keys($result['mtimes']); $changes = array_diff($keys, $files); if (!empty($changes)) { return true; } /* Check the file ctimes */ foreach ($files as $file) { if (filemtime($this->_cache_dir . '/' . $file) != $result['mtimes'][$file]) { return true; } } /* Older than three days? */ $components = $this->_data->getComponents(); foreach ($components as $component) { if ($component->getType() == 'vFreebusy') { $attr = $component->getAttribute('DTSTAMP'); if (!empty($attr) && !is_a($attr, 'PEAR_Error')) { //Should be configurable if (time() - (int)$attr > 259200) { return true; } } } } return false; } } class FreeBusyCacheFile_acl extends FreeBusyCacheFile { var $_suffix = 'acl'; var $_acls; function FreeBusyCacheFile_acl($cache_dir, $filename) { $this->_acls = &FreeBusyCacheDB::singleton('acl', $cache_dir); parent::FreeBusyCacheFile($cache_dir, $filename, 'acl'); } function purge() { $oldacl = $this->load(); if (is_a($oldacl, 'PEAR_Error')) { $oldacl = array(); } $result = $this->_acls->store($this->_filename, array(), $oldacl, false); if (is_a($result, 'PEAR_Error')) { return $result; } return parent::purge(); } function storeACL(&$acl, $relevance) { $oldacl = $this->load(); if (is_a($oldacl, 'PEAR_Error')) { $oldacl = array(); } /* Handle relevance */ switch ($relevance) { case 'readers': $perm = 'r'; break; case 'nobody': $perm = false; break; case 'admins': default: $perm = 'a'; } $result = $this->_acls->store($this->_filename, $acl, $oldacl, $perm); if (is_a($oldacl, 'PEAR_Error')) { return $oldacl; } $result = $this->store($acl); if (is_a($result, 'PEAR_Error')) { return $result; } } } class FreeBusyCacheFile_xacl extends FreeBusyCacheFile { var $_suffix = 'xacl'; var $_xacls; function FreeBusyCacheFile_xacl($cache_dir, $filename) { $this->_xacls = &FreeBusyCacheDB::singleton('xacl', $cache_dir); parent::FreeBusyCacheFile($cache_dir, $filename, 'xacl'); } function purge() { $oldxacl = $this->load(); if (is_a($oldxacl, 'PEAR_Error')) { $oldxacl = ''; } $result = $this->_xacls->store($this->_filename, '', $oldxacl); if (is_a($result, 'PEAR_Error')) { return $result; } return parent::purge(); } function storeXACL(&$xacl) { $oldxacl = $this->load(); if (is_a($oldxacl, 'PEAR_Error')) { $oldxacl = ''; } $result = $this->_xacls->store($this->_filename, $xacl, $oldxacl); if (is_a($result, 'PEAR_Error')) { return $result; } $result = $this->store($xacl); if (is_a($result, 'PEAR_Error')) { return $result; } } } ?> --- NEW FILE: Page.php --- * @author Steffen Hansen * @package Kolab_Freebusy */ class Kolab_Freebusy_Error { /** * Deliver a "Not Found" page * * @param PEAR_Error $error The error. */ function notFound($error) { $headers = array('HTTP/1.0 404 Not Found'); $url = htmlentities($_SERVER['REQUEST_URI']); $message = sprintf(_("The requested URL %s was not found on this server."), $url); Kolab_Freebusy_Error::_errorPage($error, $headers, _("404 Not Found"), _("Not found"), $message); } /** * Deliver a "Unauthorized" page * * @param PEAR_Error $error The error. */ function unauthorized($error) { global $conf; if (!empty($conf['fb']['email_domain'])) { $email_domain = $conf['fb']['email_domain']; } else { $email_domain = 'localhost'; } $headers = array('WWW-Authenticate: Basic realm="freebusy-' . $email_domain . '"', 'HTTP/1.0 401 Unauthorized'); Kolab_Freebusy_Error::_errorPage($error, $headers, _("401 Unauthorized"), _("Unauthorized"), _("You are not authorized to access the requested URL.")); } /** * Deliver a "Server Error" page * * @param PEAR_Error $error The error. */ function serverError($error) { $headers = array('HTTP/1.0 500 Server Error'); Kolab_Freebusy_Error::_errorPage($error, $headers, _("500 Server Error"), _("Error"), htmlentities($_SERVER['REQUEST_URI'])); } /** * Deliver an error page * * @param PEAR_Error $error The error. * @param array $headers The HTTP headers to deliver with the response * @param string $title The page title * @param string $headline The headline of the page * @param string $body The message to display on the page */ function _errorPage($error, $headers, $title, $headline, $body) { /* Print the headers */ foreach ($headers as $line) { header($line); } /* Print the page */ echo "\n"; echo "" . $title . "\n"; echo "\n"; echo "

    " . $headline . "

    \n"; echo "

    " . $body . "

    \n"; if (!empty($error)) { echo "
    " . $error->getMessage() . "
    \n"; Horde::logMessage($error, __FILE__, __LINE__, PEAR_LOG_ERR); } echo "
    \n"; echo $_SERVER['SERVER_SIGNATURE'] . "\n"; echo "\n"; exit; } } /** * The Timer:: class provides a high precision timer for calculating * page generation time. * * @author Gunnar Wrobel

    * @author Steffen Hansen * @package Kolab_Freebusy */ class Timer { var $_start; function Timer() { $this->_start = $this->_microtime_float(); } function stop() { return $this->_microtime_float() - $this->_start; } function _microtime_float() { list($usec, $sec) = explode(" ", microtime()); return (float) $usec + (float) $sec; } } /** * The FolderAccess:: class provides functionality to check free/busy * access rights for the specified folder. * * @author Gunnar Wrobel

    * @author Steffen Hansen * @package Kolab_Freebusy */ class FolderAccess { /** * The user calling the script * * @var string */ var $user; /** * The password of the user calling the script * * @var string */ var $pass; /** * The folder we try to access * * @var string */ var $folder; /** * The requested owner * * @var string */ var $req_owner; /** * The owner of that folder * * @var string */ var $owner; /** * The homeserver for that folder * * @var string */ var $homeserver; /** * The groups of the user calling the script (this includes the * primary user id) * * @var string */ var $groups; /** * The number of days to calculate free/busy into the past * * @var int */ var $fbpast; /** * The number of days to calculate free/busy into the future * * @var int */ var $fbfuture = 60; function FolderAccess() { $this->_parseUser(); } function parseFolder($req_folder = '') { /* Handle the owner/folder name and make sure the owner part is in lower case */ $req_folder = String::convertCharset($req_folder, 'UTF-8', 'UTF7-IMAP'); $folder = explode('/', $req_folder); if (count($folder) < 2) { return PEAR::raiseError(sprintf(_("No such folder %s"), $req_folder)); } $folder[0] = strtolower($folder[0]); $req_folder = implode('/', $folder); $this->req_owner = $folder[0]; unset($folder[0]); $this->folder = join('/', $folder); $result = $this->_process(); if (is_a($result, 'PEAR_Error')) { return $result; } } function parseOwner($req_owner = '') { $this->req_owner = $req_owner; $result = $this->_process(); if (is_a($result, 'PEAR_Error')) { return $result; } } function fetchRemote() { global $conf; if (!empty($conf['fb']['server'])) { $server = $conf['fb']['server']; } else { $server = 'localhost'; } if (!empty($conf['fb']['redirect'])) { $do_redirect = $conf['fb']['redirect']; } else { $do_redirect = false; } /* Check if we are on the right server and redirect if appropriate */ if ($this->homeserver && $this->homeserver != $server) { $redirect = 'https://' . $this->homeserver . $_SERVER['REQUEST_URI']; Horde::logMessage(sprintf(_("Found remote user, redirecting to %s"), $this->homeserver), __FILE__, __LINE__, PEAR_LOG_ERR); if ($do_redirect) { header("Location: $redirect"); } else { header("X-Redirect-To: $redirect"); $redirect = 'https://' . urlencode($this->user) . ':' . urlencode($this->pass) . '@' . $this->homeserver . $_SERVER['REQUEST_URI']; if (!@readfile($redirect)) { $message = sprintf(_("Unable to read free/busy information from %s"), 'https://' . urlencode($this->user) . ':XXX' . '@' . $this->homeserver . $_SERVER['REQUEST_URI']); return PEAR::raiseError($message); } } exit; } } function authenticate() { if (empty($this->user)) { return PEAR::raiseError(_("Please authenticate!")); } /* Load the authentication libraries */ require_once "Horde/Auth.php"; require_once 'Horde/Secret.php'; $auth = &Auth::singleton('kolab'); if (!$auth->authenticate($this->user, array('password' => $this->pass), false)) { return PEAR::raiseError(sprintf(_("Invalid Kolab authentication for user %s!"), $this->user)); } session_start(); $_SESSION['__auth'] = array( 'authenticated' => true, 'userId' => $this->user, 'timestamp' => time(), 'remote_addr' => isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : null, ); Auth::setCredential('password', $this->pass); } function _parseUser() { $this->user = isset($_SERVER['PHP_AUTH_USER'])?$_SERVER['PHP_AUTH_USER']:false; $this->pass = isset($_SERVER['PHP_AUTH_PW'])?$_SERVER['PHP_AUTH_PW']:false; // This part allows you to use the PHP scripts with CGI rather than as // an apache module. This will of course slow down things but on the // other hand it allows you to reduce the memory footprint of the // apache server. The default is to use PHP as a module and the CGI // version requires specific Apache configuration. // // The line you need to add to your configuration of the /freebusy // location of your server looks like this: // // RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}] // // The complete section will probably look like this then: // // // RewriteEngine On // # FreeBusy list handling // RewriteBase /freebusy // RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}] // RewriteRule ^([^/]+)\.ifb freebusy.php?uid=$1 [L] // RewriteRule ^([^/]+)\.vfb freebusy.php?uid=$1 [L] // RewriteRule ^([^/]+)\.xfb freebusy.php?uid=$1&extended=1 [L] // RewriteRule ^trigger/(.+)\.pfb pfb.php?folder=$1&cache=0 [L] // RewriteRule ^(.+)\.pfb pfb.php?folder=$1&cache=1 [L] // RewriteRule ^trigger/(.+)\.xpfb pfb.php?folder=$1&cache=0&extended=1 [L] // RewriteRule ^(.+)\.xpfb pfb.php?folder=$1&cache=1&extended=1 [L] // if (empty($this->user) && isset($_ENV['REDIRECT_REDIRECT_REMOTE_USER'])) { $a = base64_decode(substr($_ENV['REDIRECT_REDIRECT_REMOTE_USER'], 6)) ; if ((strlen($a) != 0) && (strcasecmp($a, ":" ) == 0)) { list($this->user, $this->pass) = explode(':', $a, 2); } } } function _process() { /* Bind to LDAP so that we can request user data */ $ldap = Horde_Kolab_LDAP::singleton(); if (!$ldap->is_bound) { $result = $ldap->bind(); if (is_a($result, 'PEAR_Error')) { return $result; } } /* Does not really belong here but since we are connected now, we should fetch that config info */ $this->fbpast = $ldap->freeBusyPast(); /* Fetch the user info of the calling user */ $userinfo = $ldap->userInfo($this->user); if (is_a($userinfo, 'PEAR_Error')) { Horde::logMessage($userinfo, __FILE__, __LINE__, PEAR_LOG_ERROR); $userinfo = null; } /* Possibly rewrite the calling UID into the primary mail address */ if ($userinfo && isset($userinfo['MAIL']) && !empty($userinfo['MAIL'])) { $this->user = $userinfo['MAIL']; } /* Fetch the user info of the requested folder owner */ $uinfo = $ldap->userInfo($this->req_owner); if (is_a($uinfo, 'PEAR_Error')) { Horde::logMessage($uinfo, __FILE__, __LINE__, PEAR_LOG_ERROR); $uinfo = null; } /* Possibly rewrite the owner UID into the primary mail address */ if (!empty($uinfo) && isset($uinfo['MAIL']) && !empty($uinfo['MAIL'])) { $this->owner = $userinfo['MAIL']; } /* If we were unable to determine the owner we will finally * try to append the domain name of the calling user. */ if (empty($uinfo) || empty($this->owner) || strpos($this->owner, '@') === false) { /* try guessing the domain */ $idx = strpos($this->user, '@'); if($idx !== false) { $domain = substr($this->user, $idx+1); Horde::logMessage(sprintf(_("Trying to append %s to %s"), $domain, $this->req_owner), __FILE__, __LINE__, PEAR_LOG_DEBUG); $uinfo = $ldap->userInfo($this->req_owner . '@' . $domain); if (is_a($uinfo, 'PEAR_Error')) { Horde::logMessage($uinfo, __FILE__, __LINE__, PEAR_LOG_ERROR); $uinfo = null; } } } /* Get the owner mail address and the home server */ if ($uinfo) { if (!empty($uinfo['MAIL'])) { $this->owner = $uinfo['MAIL']; } if (!empty($uinfo['HOMESERVER'])) { $this->homeserver = $uinfo['HOMESERVER']; } if (!empty($uinfo['FBFUTURE'])) { $this->fbfuture = $uinfo['FBFUTURE']; } if (!empty($uinfo['GROUPS'])) { $this->groups = $uinfo['GROUPS']; } } if (empty($this->groups)) { $this->groups = array($this->user); } else { $this->groups[] = $this->user; } } } class FreeBusyView { var $_vfb; function FreeBusyView($vfb) { $this->_vfb = $vfb->exportvCalendar(); $ts = time(); $components = &$vfb->getComponents(); foreach ($components as $component) { if ($component->getType() == 'vFreebusy') { $attr = $component->getAttribute('DTSTAMP'); if (!empty($attr) && !is_a($attr, 'PEAR_Error')) { $ts = $attr; break; } } } $this->_ts = $ts; } function render($content = '') { global $conf; if (!empty($conf['fb']['send_content_type'])) { $send_content_type = $conf['fb']['send_content_type']; } else { $send_content_type = false; } if (!empty($conf['fb']['send_content_length'])) { $send_content_length = $conf['fb']['send_content_length']; } else { $send_content_length = false; } if (!empty($conf['fb']['send_content_disposition'])) { $send_content_disposition = $conf['fb']['send_content_disposition']; } else { $send_content_disposition = false; } /* Ensure that the data doesn't get cached along the way */ header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: post-check=0, pre-check=0', false); header('Pragma: no-cache'); header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); header('Last-Modified: ' . gmdate("D, d M Y H:i:s", $this->_ts) . ' GMT'); header('Pragma: public'); header('Content-Transfer-Encoding: none'); if ($send_content_type) { header('Content-Type: text/calendar'); } if ($send_content_length) { header('Content-Length: ' . strlen($this->_vfb)); } if ($send_content_disposition) { header('Content-Disposition: attachment; filename="' . $content . '"'); } echo $this->_vfb; } } --- domxml-php4-to-php5.php DELETED --- --- freebusy.class.php DELETED --- --- freebusycache.class.php DELETED --- --- freebusycollector.class.php DELETED --- --- freebusyimapcache.class.php DELETED --- --- freebusyldap.class.php DELETED --- --- freebusyldap_dummy.class.php DELETED --- --- misc.php DELETED --- --- recurrence.class.php DELETED --- From cvs at kolab.org Thu Nov 22 17:54:26 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 17:54:26 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Freebusy ChangeLog,1.3,1.4 Message-ID: <20071122165426.55EB7600175@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Freebusy In directory doto:/tmp/cvs-serv2329 Modified Files: ChangeLog Log Message: Changelog entry. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Freebusy/ChangeLog,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ChangeLog 16 Aug 2007 12:16:51 -0000 1.3 +++ ChangeLog 22 Nov 2007 16:54:24 -0000 1.4 @@ -1,3 +1,10 @@ +2007-11-22 Gunnar Wrobel

    + + * Freebusy/*: + + A fully restructured free/busy with the most recent free/busy + concept implemented. + 2007-08-16 Gunnar Wrobel

    * Freebusy/recurrence.class.php: From cvs at kolab.org Thu Nov 22 17:58:35 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 17:58:35 +0100 (CET) Subject: gunnar: server/kolab-freebusy/freebusy config.php, 1.4, 1.5 freebusy.php, 1.4, 1.5 pfb.php, 1.7, 1.8 Message-ID: <20071122165835.B86FA600D44@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-freebusy/freebusy In directory doto:/tmp/cvs-serv2449/freebusy Modified Files: config.php freebusy.php pfb.php Log Message: Fully restructured the kolab-freebusy package. Implements the newest free/busy concepts. Index: config.php =================================================================== RCS file: /kolabrepository/server/kolab-freebusy/freebusy/config.php,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- config.php 14 Oct 2007 12:31:58 -0000 1.4 +++ config.php 22 Nov 2007 16:58:33 -0000 1.5 @@ -34,112 +34,73 @@ * */ -// Kolab prefix -$params['kolab_prefix'] = '/kolab'; - -// What is the address of the Cyrus server where the calendar data is stored? -// This is also used as the LDAP server address where user objects reside -$params['server'] = 'localhost'; - -// What is the address of the LDAP server address where user objects reside -$params['ldap_uri'] = "ldap://127.0.0.1:389"; - -// What is the Base DN of our LDAP database? -$params['base_dn'] = 'dc=example,dc=com'; - -// What DN should we use to bind to the LDAP server? -$params['bind_dn'] = 'cn=nobody,cn=internal,' . $params['base_dn']; - -// What password should we use with the above DN when binding? -$params['bind_pw'] = 'php password from kolab.conf'; - -// Are we using a multi-location setup? If this is true, we check the users' -// LDAP object for the next attribute - if it is different than $params['server'] -// we get the free/busy information from the script running on the other box -$params['multi_location'] = true; - -// What LDAP attribute is used to store the users' home server address? -$params['home_server'] = 'kolabhomeserver'; - -// What is our default mail domain? This is used if any users do not have -// '@domain' specified after their username as part of their email address. -$params['email_domain'] = 'example.com'; - -// Are we using virtual domains with Cyrus? -$params['virtual_domains'] = true; - -// Should we append domains to mailbox URIs? This only applies when -// virtual_domains is true, and when using manager accounts. -$params['append_domains'] = false; - -// What account should we use to read in calendar data in the case the user -// does not supply credentials? This account should -// have access to the calendar mailbox of all the users for which free/busy -// information is to be retrieved. -//$params['calendar_user'] = '@ @@cyrus-admins@@@'; - -// What password should we use with the above account? -//$params['calendar_pass'] = '@ @@bind_pw@@@'; - -// What is the name of the users' calendar mailbox? -$params['calendar_store'] = 'Calendar'; - -// How many days of free/busy data should we generate? -$params['freebusy_days'] = 56; +$conf = array(); -// Should we generate extended free/busy information? This can be overridden by -// the URL parameter "x" (= 0 or 1). -$params['extended'] = false; +/* Horde::Log configuration */ +$conf['log']['enabled'] = true; +$conf['log']['priority'] = PEAR_LOG_DEBUG; // Leave this on DEBUG for now. We just restructured the package... +$conf['log']['type'] = 'file'; +$conf['log']['name'] = '/kolab/var/kolab-freebusy/log/freebusy.log'; +$conf['log']['ident'] = 'Kolab Free/Busy'; +$conf['log']['params']['append'] = true; -// Should we use the caching mechanism, which avoids having to always re-read -// all the events? This can be overridden by the URL parameter "c" (= 0 or 1). -$params['cache'] = true; +/* PHP error logging */ +ini_set('error_log', '/kolab/var/kolab-freebusy/log/php-error.log'); -// Should we redirect using a Location header, if the user is not local? If this -// is false we silently download the file ourselves and output it so that it -// looks as though the free/busy information is coming from us. -$params['redirect'] = false; +/* Horde::Kolab::LDAP configuration */ +$conf['kolab']['ldap']['server'] = 'example.com'; +$conf['kolab']['ldap']['basedn'] = 'dc=example,dc=com'; +$conf['kolab']['ldap']['phpdn'] = 'cn=nobody,cn=internal,dc=example,dc=com'; +$conf['kolab']['ldap']['phppw'] = ''; -// Should we send a Content-Type header, indicating what the mime type of the -// resulting VFB file is? -$params['send_content_type'] = false; +/* Horde::Kolab::IMAP configuration */ +$conf['kolab']['imap']['server'] = 'example.com'; +$conf['kolab']['imap']['port'] = 143; +$conf['kolab']['imap']['protocol'] = 'notls/readonly'; -// Should we send a Content-Length header, indicating how large the resulting -// VFB file is? -$params['send_content_length'] = false; +/* Horde::Auth configuration */ +$conf['auth']['params']['login_block'] = 0; +$conf['auth']['checkbrowser'] = false; +$conf['auth']['checkip'] = false; -// Should we send a Content-Disposition header, indicating what the name of the -// resulting VFB file should be? -$params['send_content_disposition'] = false; +/* Kolab::Freebusy configuration */ -// Where are we logging to? -$params['log'] = 'file:/kolab/var/apache/log/freebusy/freebusy.log'; // File... -// $params['log'] = 'syslog:cons, pid'; // Or syslog... +/* Should we redirect using a Location header, if the user is not local? If this + * is false we silently download the file ourselves and output it so that it + * looks as though the free/busy information is coming from us. + */ +$conf['fb']['redirect'] = false; -// What level of output should we log? Higher levels give more verbose output. -// One of: 0 (RM_LOG_SILENT); 1 (RM_LOG_ERROR); 2 (RM_LOG_WARN); 3 (RM_LOG_INFO) or 4 (RM_LOG_DEBUG). -$params['log_level'] = 4; +/* What is the address of the current server where the calendar data is stored? + * This is also used as the LDAP server address where user objects reside. + */ +$conf['fb']['server'] = 'example.com'; -// What db type to use for freebusy caches -$params['dbtype'] = 'db4'; +/* What is our default mail domain? This is used if any users do not have + * '@domain' specified after their username as part of their email address. + */ +$conf['fb']['email_domain'] = 'example.com'; -// IMAP options passed to imap_open -//$params['imap_options'] = "/notls/secure/readonly"; -$params['imap_options'] = "/notls/readonly"; +/* Location of the cache files */ +$conf['fb']['cache_dir'] = '/kolab/var/kolab-freebusy/cache'; -$params['pfb_dbformat'] = 'db4'; +/* What db type to use for the freebusy caches */ +$conf['fb']['dbformat'] = 'db4'; -// Location of the cache files -$params['cache_dir'] = '/kolab/var/kolab/www/freebusy/cache'; +/* Should we send a Content-Type header, indicating what the mime type of the + * resulting VFB file is? + */ +$conf['fb']['send_content_type'] = false; -// don't change this if you don't have to -//$params['ldap_classname_suffix'] = "_dummy"; +/* Should we send a Content-Length header, indicating how large the resulting + * VFB file is? + */ +$conf['fb']['send_content_length'] = false; -// Activate if you wish to use the new horde framework -// (horde-framework-kolab) package instead of the old code in -// kolab-horde-framework. This is still untested and considered -// UNSAFE! -$params['use_new_horde'] = false; +/* Should we send a Content-Disposition header, indicating what the name of the + * resulting VFB file should be? + */ +$conf['fb']['send_content_disposition'] = false; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // @@ -152,3 +113,15 @@ // diff -Nau kolab-freebusy/freebusy/config.php kolabd/kolabd/templates/freebusy.conf.template.in // //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +// DEBUGGING +// ========= +// +// Activate this to see the log messages on the screen +// $conf['log']['type'] = 'display'; +// +// Activate this to see the php messages on the screen +// ini_set('display_errors', 1); +// +// Both setting will disrupt header delivery (which should not cause a +// problem). \ No newline at end of file Index: freebusy.php =================================================================== RCS file: /kolabrepository/server/kolab-freebusy/freebusy/freebusy.php,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- freebusy.php 13 Aug 2007 08:53:33 -0000 1.4 +++ freebusy.php 22 Nov 2007 16:58:33 -0000 1.5 @@ -32,178 +32,66 @@ * */ -require_once('config.php'); -require_once('Kolab/Freebusy/freebusycache.class.php'); -require_once('Kolab/Freebusy/freebusycollector.class.php'); - -if (empty($params['ldap_classname_suffix'])) { - $params['ldap_classname_suffix'] = ''; - } - -require_once('Kolab/Freebusy/freebusyldap' - . $params['ldap_classname_suffix'] - . '.class.php'); - -require_once('Kolab/Freebusy/misc.php'); - -logInit( 'freebusy' ); - -$imapuser = isset($_SERVER['PHP_AUTH_USER'])?$_SERVER['PHP_AUTH_USER']:false; -$imappw = isset($_SERVER['PHP_AUTH_PW'])?$_SERVER['PHP_AUTH_PW']:false; - -// This part allows you to use the PHP scripts with CGI rather than as -// an apache module. This will of course slow down things but on the -// other hand it allows you to reduce the memory footprint of the -// apache server. The default is to use PHP as a module and the CGI -// version requires specific Apache configuration. -// -// The line you need to add to your configuration of the /freebusy -// location of your server looks like this: -// -// RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}] -// -// The complete section will probably look like this then: -// -// -// RewriteEngine On -// # FreeBusy list handling -// RewriteBase /freebusy -// RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}] -// RewriteRule ^([^/]+)\.ifb freebusy.php?uid=$1 [L] -// RewriteRule ^([^/]+)\.vfb freebusy.php?uid=$1 [L] -// RewriteRule ^([^/]+)\.xfb freebusy.php?uid=$1&extended=1 [L] -// RewriteRule ^trigger/(.+)\.pfb pfb.php?folder=$1&cache=0 [L] -// RewriteRule ^(.+)\.pfb pfb.php?folder=$1&cache=1 [L] -// RewriteRule ^trigger/(.+)\.xpfb pfb.php?folder=$1&cache=0&extended=1 [L] -// RewriteRule ^(.+)\.xpfb pfb.php?folder=$1&cache=1&extended=1 [L] -// -if( empty($imapuser) && isset($_ENV['REDIRECT_REDIRECT_REMOTE_USER']) ) { - $a = base64_decode( substr($_ENV['REDIRECT_REDIRECT_REMOTE_USER'], 6)) ; - - if ( (strlen($a) == 0) || ( strcasecmp($a, ":" ) == 0 )) - { - $imapuser = false; - $imappw = false; - } - else - { - list($name, $password) = explode(':', $a, 2); - $imapuser = $name; - $imappw = $password; - } - } - -$user = trim($_REQUEST['uid']); - -$req_cache = false; -$req_extended = false; -if (!empty($_REQUEST['cache'])) { - $req_cache = (bool)$_REQUEST['cache']; - } - -if (!empty($_REQUEST['extended'])) { - $req_extended = (bool)$_REQUEST['extended']; - } - -myLog("---FreeBusy Script starting (" . $_SERVER['REQUEST_URI'] . ")---", RM_LOG_DEBUG ); -myLog("user=$user, imapuser=$imapuser, req_cache=$req_cache, req_extended=$req_extended", RM_LOG_DEBUG ); +/* Load the required free/busy libraries - this also loads Horde:: and + Util:: as well as the PEAR constants*/ +require_once 'Kolab/Freebusy/Page.php'; -$ldap =& new FreeBusyLDAP( $params['ldap_uri'], $params['base_dn'] ); -if( !$ldap->bind( $params['bind_dn'], $params['bind_pw'] ) ) { - notFound( "Bind failed: ".$ldap->error() ); - exit; - } +/* Load the configuration */ +require_once 'config.php'; -$imapuser = $ldap->mailForUid( $imapuser ); -$user = $ldap->mailForUidOrAlias( $user ); -$homeserver = $ldap->homeServer( $user ); +/* Profiling */ +$timer = &new Timer(); -if( $homeserver === false ) { - notFound("Resource " .$_SERVER['REQUEST_URI'] . " (user=$user, req_extended=$req_extended, req_cache=$req_cache) not found"); - } +/* Get the user requsted */ +$req_owner = Util::getFormData('uid'); -if( $homeserver != $params['server'] ) { - $redirect = 'https://' . $homeserver . $_SERVER['REQUEST_URI']; - if ($params['redirect']) { - header("Location: $redirect"); - } else { - header("X-Redirect-To: $redirect"); - $redirect = 'https://' . urlencode($_SERVER['PHP_AUTH_USER']) . ':' - . urlencode($_SERVER['PHP_AUTH_PW']) . '@' . $homeserver - . $_SERVER['REQUEST_URI']; - if (!@readfile($redirect)) { - unauthorized("Unable to read free/busy information from " . removePassword($redirect)); - } - } - shutdown(); - exit; - } +Horde::logMessage(sprintf(_("Starting generation of free/busy data for user %s"), + $req_owner), __FILE__, __LINE__, PEAR_LOG_DEBUG); -$user = strtolower($user); +/* Validate folder access */ +$access = &new FolderAccess(); +$result = $access->parseOwner($req_owner); +if (is_a($result, 'PEAR_Error')) { + Kolab_Freebusy_Error::notFound($result); +} -$cache =& new FreeBusyCache( $params['cache_dir'], $params['pfb_dbformat'], $params, $req_extended ); +Horde::logMessage(sprintf(_("Free/busy data of owner %s on server %s requested by user %s."), + $access->owner, $access->homeserver, $access->user), + __FILE__, __LINE__, PEAR_LOG_DEBUG); -$collector =& new FreeBusyCollector( $user ); +/* Try to fetch the data if it is stored on a remote server */ +$result = $access->fetchRemote(); +if (is_a($result, 'PEAR_Error')) { + Kolab_Freebusy_Error::unauthorized($result); +} -$groups = $ldap->distlists( $ldap->dn( $user ) ); -for( $i = 0; $i < count($groups); $i++ ) { - $groups[$i] = $groups[$i].'@'.$params['email_domain']; - } -$pfbs = $cache->findAll( $user, $groups ); -$ts = 0; -if( $pfbs === false ) { - notFound($pfb->error); - } +/* Load the cache class now */ +require_once('Kolab/Freebusy/Cache.php'); -//myLog("Found pfbs: ".join(",",$pfbs)." for $user",RM_LOG_DEBUG); +/* Where is the cache data stored? */ +if (!empty($conf['fb']['cache_dir'])) { + $cache_dir = $conf['fb']['cache_dir']; +} else { + /* This default is not recommended so make sure you set a + * cache dir outside of the apache document root. + */ + $cache_dir = dirname(__FILE__) . '/cache'; +} +$cache = &new FreeBusyCache($cache_dir); -if( $req_extended ) { - // Get accessing users groups - $imapgroups = $ldap->distlists( $ldap->dn( $imapuser ) ); - } +/* Get the cache request variables */ +$req_extended = Util::getFormData('extended', false); -foreach( $pfbs as $pfb ) { - $fb = $cache->load( $pfb, $ts2, $acl ); - if( $fb ) { - myLog("Found fb for $pfb", RM_LOG_DEBUG); - } else { - myLog("No fb found for $pfb", RM_LOG_DEBUG); - } - if( $acl && $req_extended ) { - $r = $cache->getRights( $acl, $imapuser, $imapgroups ); - if( !$fb || !array_key_exists( 'r', $r ) ) { - $cache->extended = false; // HACK! - $fb = $cache->load( $pfb, $ts2, $acl ); - $cache->extended = true; - myLog("Falling back to non-extended fb", RM_LOG_DEBUG ); - } - } - $ts = max( $ts, $ts2 ); - if( $fb ) { - if( $collector->addFreebusy( $fb ) == FB_TOO_OLD ) { - $cache->delete( $pfb ); - } - } +$result = $cache->load($access, $req_extended); +if (is_a($result, 'PEAR_Error')) { + Kolab_Freebusy_Error::notFound($result); } -$vfb = $collector->exportvCalendar(); -// And finally send it out, ensuring it doesn't get cached along the way -header('Cache-Control: no-store, no-cache, must-revalidate'); -header('Cache-Control: post-check=0, pre-check=0', false); -header('Pragma: no-cache'); -header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); -header('Last-Modified: ' . gmdate("D, d M Y H:i:s",$ts) . ' GMT'); -header('Pragma: public'); -header('Content-Transfer-Encoding: none'); -if ($params['send_content_type']) { - header('Content-Type: text/calendar'); -} -if ($params['send_content_length']) { - header('Content-Length: ' . strlen($vfb)); -} -if ($params['send_content_disposition']) { - header('Content-Disposition: attachment; filename="' . $user . '.ifb"'); -} +/* And finally send it out */ +$view = &new FreeBusyView($result); +$view->render($access->owner . '.vfb'); -echo $vfb; +/* Finish up */ +Horde::logMessage(sprintf(_("Free/busy generation complete, execution time was %s seconds."), + $timer->stop()), __FILE__, __LINE__, PEAR_LOG_DEBUG); ?> Index: pfb.php =================================================================== RCS file: /kolabrepository/server/kolab-freebusy/freebusy/pfb.php,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- pfb.php 8 Oct 2007 15:57:49 -0000 1.7 +++ pfb.php 22 Nov 2007 16:58:33 -0000 1.8 @@ -35,250 +35,95 @@ * */ - // Profiling -function microtime_float() -{ - list($usec, $sec) = explode(" ", microtime()); - return ((float)$usec + (float)$sec); -} -$start_time = microtime_float(); - - -error_reporting(E_ALL); -$max_execution_time = ini_get('max_execution_time'); -if( $max_execution_time < 200 ) { - ini_set('max_execution_time', '200'); - } - -require_once('Kolab/Freebusy/misc.php'); -require_once('config.php'); - -if ( empty($params['ldap_classname_suffix'])) $params['ldap_classname_suffix'] = ''; -require_once('Kolab/Freebusy/freebusyldap' - . $params['ldap_classname_suffix'] - . '.class.php'); - -require_once('Kolab/Freebusy/freebusycache.class.php'); - -logInit('pfb'); - -$imapuser = isset($_SERVER['PHP_AUTH_USER'])?$_SERVER['PHP_AUTH_USER']:false; -$imappw = isset($_SERVER['PHP_AUTH_PW'])?$_SERVER['PHP_AUTH_PW']:false; - -// This part allows you to use the PHP scripts with CGI rather than as -// an apache module. This will of course slow down things but on the -// other hand it allows you to reduce the memory footprint of the -// apache server. The default is to use PHP as a module and the CGI -// version requires specific Apache configuration. -// -// The line you need to add to your configuration of the /freebusy -// location of your server looks like this: -// -// RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}] -// -// The complete section will probably look like this then: -// -// -// RewriteEngine On -// # FreeBusy list handling -// RewriteBase /freebusy -// RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}] -// RewriteRule ^([^/]+)\.ifb freebusy.php?uid=$1 [L] -// RewriteRule ^([^/]+)\.vfb freebusy.php?uid=$1 [L] -// RewriteRule ^([^/]+)\.xfb freebusy.php?uid=$1&extended=1 [L] -// RewriteRule ^trigger/(.+)\.pfb pfb.php?folder=$1&cache=0 [L] -// RewriteRule ^(.+)\.pfb pfb.php?folder=$1&cache=1 [L] -// RewriteRule ^trigger/(.+)\.xpfb pfb.php?folder=$1&cache=0&extended=1 [L] -// RewriteRule ^(.+)\.xpfb pfb.php?folder=$1&cache=1&extended=1 [L] -// -if( empty($imapuser) && isset($_ENV['REDIRECT_REDIRECT_REMOTE_USER']) ) { - $a = base64_decode( substr($_ENV['REDIRECT_REDIRECT_REMOTE_USER'], 6)) ; +/* Load the required free/busy libraries - this also loads Horde:: and + Util:: as well as the PEAR constants*/ +require_once 'Kolab/Freebusy/Page.php'; - if ( (strlen($a) == 0) || ( strcasecmp($a, ":" ) == 0 )) - { - $imapuser = false; - $imappw = false; - } - else - { - list($name, $password) = explode(':', $a, 2); - $imapuser = $name; - $imappw = $password; - } - } +/* Load the configuration */ +require_once 'config.php'; -$req_cache = isset($_REQUEST['cache'])?(bool)$_REQUEST['cache']:false; -$req_folder = isset($_REQUEST['folder'])?$_REQUEST['folder']:false; -$req_extended = isset($_REQUEST['extended'])?(bool)$_REQUEST['extended']:false; +/* Profiling */ +$timer = &new Timer(); -// convert character encoding (stores utf7 folder names also on disc) -require_once "Horde/Util.php"; -require_once "Horde/String.php"; -$req_folder = String::convertCharset($req_folder, "UTF-8", "UTF7-IMAP"); +/* Get the folder name */ +$req_folder = Util::getFormData('folder', ''); -myLog("pfb.php starting up: user=$imapuser, folder=$req_folder, extended=$req_extended", - RM_LOG_DEBUG); +Horde::logMessage(sprintf(_("Starting generation of partial free/busy data for folder %s"), + $req_folder), __FILE__, __LINE__, PEAR_LOG_DEBUG); -$ldap =& new FreeBusyLDAP( $params['ldap_uri'], $params['base_dn'] ); -if( !$ldap->bind( $params['bind_dn'], $params['bind_pw'] ) ) { - notFound( "Bind failed: ".$ldap->error() ); - exit; +/* Validate folder access */ +$access = &new FolderAccess(); +$result = $access->parseFolder($req_folder); +if (is_a($result, 'PEAR_Error')) { + Kolab_Freebusy_Error::notFound($result); } -$userinfo = $ldap->userInfo( $imapuser ); -if( $userinfo ) { - if( $userinfo['MAIL'] ) $imapuser = $userinfo['MAIL']; - //$homeserver = $userinfo['HOMESERVER']; - } - -$folder = explode('/', $req_folder); +Horde::logMessage(sprintf(_("Partial free/busy data of owner %s on server %s requested by user %s."), + $access->owner, $access->homeserver, $access->user), + __FILE__, __LINE__, PEAR_LOG_DEBUG); -if( count($folder) < 1 ) { - // error - notFound( _('No such folder ') . htmlentities($req_folder) ); +/* Try to fetch the data if it is stored on a remote server */ +$result = $access->fetchRemote(); +if (is_a($result, 'PEAR_Error')) { + Kolab_Freebusy_Error::unauthorized($result); } -// Make sure email address is in lowercase -$folder[0] = strtolower($folder[0]); -$req_folder = implode('/', $folder); +/* Load the cache class now */ +require_once('Kolab/Freebusy/Cache.php'); -$uinfo = $ldap->userInfo($folder[0]); -$owner = $uinfo['MAIL']; -$homeserver = $uinfo['HOMESERVER']; -if( empty($owner) || false===strpos($owner,'@')) { - // try guessing the domain - $idx = strpos( $imapuser, '@' ); - if( $idx !== false ) { - $domain = substr( $imapuser, $idx+1 ); - myLog("Trying to append $domain to ".$folder[0], RM_LOG_DEBUG); - $uinfo = $ldap->userInfo($folder[0].'@'.$domain); - $owner = $uinfo['MAIL']; - } +/* Where is the cache data stored? */ +if (!empty($conf['fb']['cache_dir'])) { + $cache_dir = $conf['fb']['cache_dir']; +} else { + /* This default is not recommended so make sure you set a + * cache dir outside of the apache document root. + */ + $cache_dir = dirname(__FILE__) . '/cache'; } -if( $homeserver && $homeserver != $params['server'] ) { - $redirect = 'https://'.$homeserver . $_SERVER['REQUEST_URI']; - myLog("Found remote user, redirecting to $homeserver", RM_LOG_DEBUG); - if ($params['redirect']) { - header("Location: $redirect"); - } else { - header("X-Redirect-To: $redirect"); - $redirect = 'https://' . urlencode($_SERVER['PHP_AUTH_USER']) . ':' - . urlencode($_SERVER['PHP_AUTH_PW']) . '@' . $homeserver - . $_SERVER['REQUEST_URI']; - if (!@readfile($redirect)) { - unauthorized("Unable to read free/busy information from ".removePassword($redirect)); - } - } - shutdown(); - exit; - } +/* Get the cache request variables */ +$req_cache = Util::getFormData('cache', false); +$req_extended = Util::getFormData('extended', false); -$cache =& new FreeBusyCache( $params['cache_dir'], $params['pfb_dbformat'], $params, false ); -$xcache =& new FreeBusyCache( $params['cache_dir'], $params['pfb_dbformat'], $params, true ); +$cache = &new FreeBusyCache($cache_dir); -if( $req_cache ) { - $acl = false; - if( $req_extended ) { - $vfb = $xcache->load( $req_folder, $ts, $acl ); - } else { - $vfb = $cache->load( $req_folder, $ts, $acl ); - } - if( $acl && $req_extended ) { - // Check access - $distlists = $ldap->distlists( $userinfo['DN'] ); - if( $distlists === false ) { - unauthorized( $req_folder.($req_extended?'.xpfb':'.pfb' ) ); - } - for( $i = 0; $i < count($distlists); $i++ ) { - $distlists[$i] = $distlists[$i].'@'.$params['email_domain']; - } - $rights = $xcache->getRights( $acl, $imapuser, $distlists ); - if( !$req_extended || $rights['r'] ) { - // All OK - } else { - // Nope - unauthorized( $req_folder.($req_extended?'.xpfb':'.pfb' ) ); - } - } - if( !$vfb ) { - notFound( $req_folder.($req_extended?'.xpfb':'.pfb').' not found in cache'); - } - } else { - if( empty($imapuser) ) { - // Here we really need an authenticated user! - unauthorized("Please authenticate"); - } - require_once('Kolab/Freebusy/freebusy.class.php'); - - if( empty($owner) ) { - notFound( _('No such account ').htmlentities($folder[0])); - return false; - } - unset($folder[0]); - $folder = join('/', $folder); - $fbpast = $ldap->freeBusyPast(); - $fb =& new FreeBusy( $owner, $imapuser, $imappw, $params, $uinfo['FBFUTURE'], $fbpast ); +if (!$req_cache) { + /* User wants to regenerate the cache */ - $fb->default_domain = $params['email_domain']; - $rc = $fb->imapConnect(); - if( $rc === false ) { - unauthorized(imap_last_error()); - return false; - } - $rc = $fb->imapOpenMailbox(FreeBusy::imapFolderName( $imapuser, $owner, - $folder, $params['email_domain'])); - if( $rc === false ) { - notfound( "Folder: ".$fb->foldername.', '.imap_last_error()); - return false; - } - $relevance = $fb->getRelevance(); - list($vfb,$xvfb) = $fb->generateFreeBusy(); - $ts = mktime(); - if( PEAR::isError( $vfb ) ) { - unauthorized($vfb->toString()); - return false; + /* Here we really need an authenticated IMAP user */ + $result = $access->authenticate(); + if (is_a($result, 'PEAR_Error')) { + Kolab_Freebusy_Error::unauthorized($result); } - if(ereg('(.*)@(.*)',$owner,$regs)) { - $owner = $regs[2].'/'.$regs[1]; + if (empty($access->owner)) { + $message = sprintf(_("No such account %s!"), + htmlentities($access->req_owner)); + Kolab_Freebusy_Error::notFound(PEAR::raiseError($message)); } - $acl = $fb->getACL(); - if( !$cache->store( $owner.'/'.$folder, $vfb, $acl, $relevance ) ) { - trigger_error('Could not store pfb in cache file '.$owner.'/'.$folder - .'.pfb: '.$cache->error, E_USER_WARNING); - } - if( !$xcache->store( $owner.'/'.$folder, $xvfb, $acl, $relevance ) ) { - trigger_error('Could not store xpfb in cache file '.$owner.'/'.$folder - .'.xpfb: '.$cache->error, E_USER_WARNING); + /* Update the cache */ + $result = $cache->store($access); + if (is_a($result, 'PEAR_Error')) { + Kolab_Freebusy_Error::notFound($result); } +} - if( $req_extended ) $vfb = $xvfb; - unset($xvfb); - } +/* Load the cache data */ +$vfb = $cache->loadPartial($access, $req_extended); +if (is_a($vfb, 'PEAR_Error')) { + Kolab_Freebusy_Error::notFound($vfb); +} -// And finally send it out, ensuring it doesn't get cached along the way -header('Cache-Control: no-store, no-cache, must-revalidate'); -header('Cache-Control: post-check=0, pre-check=0', false); -header('Pragma: no-cache'); -header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); -header('Last-Modified: ' . gmdate("D, d M Y H:i:s",$ts) . ' GMT'); -header('Pragma: public'); -header('Content-Transfer-Encoding: none'); -if ($params['send_content_type']) { - header('Content-Type: text/calendar'); - } -if ($params['send_content_length']) { - header('Content-Length: ' . strlen($vfb)); - } -if ($params['send_content_disposition']) { - header('Content-Disposition: attachment; filename="' . $user . '.vfb"'); - } +Horde::logMessage(sprintf(_("Delivering partial free/busy data (extended=%s)."), + $req_extended), + __FILE__, __LINE__, PEAR_LOG_DEBUG); -echo $vfb; +/* And finally send it out */ +$view = &new FreeBusyView($vfb); +$view->render($access->owner . '.ifb'); -// Finish up -myLog("pfb.php complete, execution time was ".(microtime_float()-$start_time)." secs.", RM_LOG_DEBUG); -shutdown(); +/* Finish up */ +Horde::logMessage(sprintf(_("Partial free/busy generation complete, execution time was %s seconds."), + $timer->stop()), __FILE__, __LINE__, PEAR_LOG_DEBUG); ?> From cvs at kolab.org Thu Nov 22 17:58:35 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 17:58:35 +0100 (CET) Subject: gunnar: server/kolab-freebusy ChangeLog, 1.2, 1.3 kolab-freebusy.spec, 1.6, 1.7 Message-ID: <20071122165835.B80DC600175@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-freebusy In directory doto:/tmp/cvs-serv2449 Modified Files: kolab-freebusy.spec Added Files: ChangeLog Log Message: Fully restructured the kolab-freebusy package. Implements the newest free/busy concepts. Index: kolab-freebusy.spec =================================================================== RCS file: /kolabrepository/server/kolab-freebusy/kolab-freebusy.spec,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- kolab-freebusy.spec 14 Oct 2007 12:31:58 -0000 1.6 +++ kolab-freebusy.spec 22 Nov 2007 16:58:33 -0000 1.7 @@ -66,7 +66,8 @@ %install - %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/apache/log/freebusy + %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/kolab-freebusy/log + %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/kolab-freebusy/cache %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/share/doc/%{V_package} %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/freebusy @@ -74,9 +75,9 @@ rm -rf freebusy/docs cp -r freebusy/* $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/freebusy/ - %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \ - %dir '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/kolab/www/freebusy/cache \ - %dir '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/apache/log/freebusy \ + %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \ + %dir '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/kolab-freebusy/cache \ + %dir '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/kolab-freebusy/log \ '%config(noreplace) %{l_prefix}/var/kolab/www/freebusy/config.php' %clean From cvs at kolab.org Thu Nov 22 17:58:56 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 17:58:56 +0100 (CET) Subject: gunnar: server release-notes.txt,1.174,1.175 Message-ID: <20071122165856.2E109600D44@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv2513 Modified Files: release-notes.txt Log Message: Update release notes. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.174 retrieving revision 1.175 diff -u -d -r1.174 -r1.175 --- release-notes.txt 22 Nov 2007 16:24:14 -0000 1.174 +++ release-notes.txt 22 Nov 2007 16:58:54 -0000 1.175 @@ -78,6 +78,11 @@ kolab/issue2040 (Horde: resouces are not displayed in address book) kolab/issue2135 ([horde/turba] Turba should support some more contact attributes) + - kolab-freebusy-2.2.???-2007???? + + A fully restructured free/busy with the most recent free/busy + concept implemented. + - kolab-webadmin-2.1.99-2007???? Improved some message strings. @@ -88,6 +93,11 @@ admins) kolab/issue1912 (some field descriptions missing in web admin interface) + + - php-kolab-2.2.???-2007???? + + A fully restructured free/busy with the most recent free/busy + concept implemented. Changes between 2.2-beta-1 and 2.2-beta-2: From cvs at kolab.org Thu Nov 22 18:01:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 18:01:36 +0100 (CET) Subject: thomas: server/kolabd/kolabd/templates master.cf.template.in, 1.14.2.3, 1.14.2.4 Message-ID: <20071122170136.C8773600D44@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv3146 Modified Files: Tag: kolab_2_1_branch master.cf.template.in Log Message: Forgot to allow binding postfix to a certain IP Index: master.cf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/master.cf.template.in,v retrieving revision 1.14.2.3 retrieving revision 1.14.2.4 diff -u -d -r1.14.2.3 -r1.14.2.4 --- master.cf.template.in 19 Sep 2007 17:05:27 -0000 1.14.2.3 +++ master.cf.template.in 22 Nov 2007 17:01:34 -0000 1.14.2.4 @@ -18,7 +18,7 @@ # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ========================================================================== -smtp inet n - n - - smtpd +@@@bind_addr@@@:smtp inet n - n - - smtpd #628 inet n - n - - qmqpd pickup fifo n - n 60 1 pickup cleanup unix n - n - 0 cleanup @@ -45,7 +45,7 @@ #uucp unix - n n - - pipe flags=Fqhu user=uucp argv=@bindir@/uux -r -n -z -a$sender - $nexthop!rmail ($recipient) #ifmail unix - n n - - pipe flags=F user=ftn argv=@bindir@/ifmail -r $nexthop ($recipient) #bsmtp unix - n n - - pipe flags=Fq. user=foo argv=@bindir@/bsmtp -f $sender $nexthop $recipient -465 inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes +@@@bind_addr@@@:465 inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes post-cleanup unix n - n - 0 cleanup -o virtual_maps= smtp-amavis unix - - n - 2 smtp -o smtp_data_done_timeout=1200 From cvs at kolab.org Thu Nov 22 18:06:41 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 18:06:41 +0100 (CET) Subject: thomas: server/kolabd/kolabd/templates master.cf.template.in, 1.19, 1.20 Message-ID: <20071122170641.03322600D44@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv3530/kolabd/kolabd/templates Modified Files: master.cf.template.in Log Message: Allow postfix smtp and smtps to bind to a specific IP, too. Index: master.cf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/master.cf.template.in,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- master.cf.template.in 8 Oct 2007 15:33:12 -0000 1.19 +++ master.cf.template.in 22 Nov 2007 17:06:38 -0000 1.20 @@ -18,7 +18,7 @@ # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ========================================================================== -smtp inet n - n - - smtpd +@@@bind_addr@@@:smtp inet n - n - - smtpd #628 inet n - n - - qmqpd pickup fifo n - n 60 1 pickup cleanup unix n - n - 0 cleanup @@ -47,7 +47,7 @@ #uucp unix - n n - - pipe flags=Fqhu user=uucp argv=@bindir@/uux -r -n -z -a$sender - $nexthop!rmail ($recipient) #ifmail unix - n n - - pipe flags=F user=ftn argv=@bindir@/ifmail -r $nexthop ($recipient) #bsmtp unix - n n - - pipe flags=Fq. user=foo argv=@bindir@/bsmtp -f $sender $nexthop $recipient -465 inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes +@@@bind_addr@@@:465 inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes post-cleanup unix n - n - 0 cleanup -o virtual_maps= smtp-amavis unix - - n - 2 smtp -o smtp_data_done_timeout=1200 From cvs at kolab.org Thu Nov 22 18:06:41 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 18:06:41 +0100 (CET) Subject: thomas: server release-notes.txt,1.175,1.176 Message-ID: <20071122170641.08904600D47@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv3530 Modified Files: release-notes.txt Log Message: Allow postfix smtp and smtps to bind to a specific IP, too. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.175 retrieving revision 1.176 diff -u -d -r1.175 -r1.176 --- release-notes.txt 22 Nov 2007 16:58:54 -0000 1.175 +++ release-notes.txt 22 Nov 2007 17:06:38 -0000 1.176 @@ -52,6 +52,8 @@ - kolabd-2.1.99-2007???? + Allow postfix smtp and smtps to bind to a specific IP, too. + kolab/issue2134 ([Horde] Unable to send message with attachments) kolab/issue2236 (Apache UID access broken) From cvs at kolab.org Thu Nov 22 18:06:41 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 18:06:41 +0100 (CET) Subject: thomas: server/kolabd/kolabd ChangeLog,1.117,1.118 Message-ID: <20071122170641.074F7600D45@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv3530/kolabd/kolabd Modified Files: ChangeLog Log Message: Allow postfix smtp and smtps to bind to a specific IP, too. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.117 retrieving revision 1.118 diff -u -d -r1.117 -r1.118 --- ChangeLog 21 Nov 2007 11:05:41 -0000 1.117 +++ ChangeLog 22 Nov 2007 17:06:38 -0000 1.118 @@ -1,3 +1,8 @@ +2007-11-22 Thomas Arendsen Hein + + * templates/master.cf.template.in: Allow postfix smtp and smtps + to bind to a specific IP, too. + 2007-11-21 Gunnar Wrobel

    * templates/httpd.conf.template.in: From cvs at kolab.org Thu Nov 22 18:08:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 18:08:44 +0100 (CET) Subject: gunnar: server release-notes.txt,1.176,1.177 Message-ID: <20071122170844.C459B600D45@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv3661 Modified Files: release-notes.txt Log Message: Updated kolabd template for the restructure kolab-freebusy. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.176 retrieving revision 1.177 diff -u -d -r1.176 -r1.177 --- release-notes.txt 22 Nov 2007 17:06:38 -0000 1.176 +++ release-notes.txt 22 Nov 2007 17:08:42 -0000 1.177 @@ -52,6 +52,10 @@ - kolabd-2.1.99-2007???? + freebusy_logfile is now freebusy_logdir. + + Updated the template for the restructured kolab-freebusy package. + Allow postfix smtp and smtps to bind to a specific IP, too. kolab/issue2134 ([Horde] Unable to send message with attachments) From cvs at kolab.org Thu Nov 22 18:08:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 18:08:44 +0100 (CET) Subject: gunnar: server/kolabd/kolabd ChangeLog,1.118,1.119 Message-ID: <20071122170844.BF34F600D44@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv3661/kolabd/kolabd Modified Files: ChangeLog Log Message: Updated kolabd template for the restructure kolab-freebusy. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.118 retrieving revision 1.119 diff -u -d -r1.118 -r1.119 --- ChangeLog 22 Nov 2007 17:06:38 -0000 1.118 +++ ChangeLog 22 Nov 2007 17:08:42 -0000 1.119 @@ -1,3 +1,14 @@ +2007-11-22 Gunnar Wrobel

    + + * dist_conf/kolab (freebusy_logdir): + * dist_conf/common: + + freebusy_logfile is now freebusy_logdir. + + * templates/freebusy.conf.template.in: + + Updated the template for the restructure kolab-freebusy package. + 2007-11-22 Thomas Arendsen Hein * templates/master.cf.template.in: Allow postfix smtp and smtps From cvs at kolab.org Thu Nov 22 18:08:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 18:08:44 +0100 (CET) Subject: gunnar: server/kolabd/kolabd/templates freebusy.conf.template.in, 1.10, 1.11 Message-ID: <20071122170844.C8BDE600D47@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv3661/kolabd/kolabd/templates Modified Files: freebusy.conf.template.in Log Message: Updated kolabd template for the restructure kolab-freebusy. Index: freebusy.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/freebusy.conf.template.in,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- freebusy.conf.template.in 16 Aug 2007 10:47:10 -0000 1.10 +++ freebusy.conf.template.in 22 Nov 2007 17:08:42 -0000 1.11 @@ -39,112 +39,73 @@ * */ -// Kolab prefix -$params['kolab_prefix'] = '@prefix@'; - -// What is the address of the Cyrus server where the calendar data is stored? -// This is also used as the LDAP server address where user objects reside -$params['server'] = '@@@fqdnhostname@@@'; - -// What is the address of the LDAP server address where user objects reside -$params['ldap_uri'] = '@@@ldap_uri@@@'; - -// What is the Base DN of our LDAP database? -$params['base_dn'] = '@@@base_dn@@@'; - -// What DN should we use to bind to the LDAP server? -$params['bind_dn'] = '@@@php_dn@@@'; - -// What password should we use with the above DN when binding? -$params['bind_pw'] = '@@@php_pw@@@'; - -// Are we using a multi-location setup? If this is true, we check the users' -// LDAP object for the next attribute - if it is different than $params['server'] -// we get the free/busy information from the script running on the other box -$params['multi_location'] = true; - -// What LDAP attribute is used to store the users' home server address? -$params['home_server'] = 'kolabhomeserver'; - -// What is our default mail domain? This is used if any users do not have -// '@domain' specified after their username as part of their email address. -$params['email_domain'] = '@@@postfix-mydomain@@@'; - -// Are we using virtual domains with Cyrus? -$params['virtual_domains'] = true; - -// Should we append domains to mailbox URIs? This only applies when -// virtual_domains is true, and when using manager accounts. -$params['append_domains'] = false; - -// What account should we use to read in calendar data in the case the user -// does not supply credentials? This account should -// have access to the calendar mailbox of all the users for which free/busy -// information is to be retrieved. -//$params['calendar_user'] = '@ @@cyrus-admins@@@'; - -// What password should we use with the above account? -//$params['calendar_pass'] = '@ @@bind_pw@@@'; - -// What is the name of the users' calendar mailbox? -$params['calendar_store'] = 'Calendar'; - -// How many days of free/busy data should we generate? -$params['freebusy_days'] = 56; +$conf = array(); -// Should we generate extended free/busy information? This can be overridden by -// the URL parameter "x" (= 0 or 1). -$params['extended'] = false; +/* Horde::Log configuration */ +$conf['log']['enabled'] = true; +$conf['log']['priority'] = PEAR_LOG_DEBUG; // Leave this on DEBUG for now. We just restructured the package... +$conf['log']['type'] = 'file'; +$conf['log']['name'] = '@freebusy_logdir@/freebusy.log'; +$conf['log']['ident'] = 'Kolab Free/Busy'; +$conf['log']['params']['append'] = true; -// Should we use the caching mechanism, which avoids having to always re-read -// all the events? This can be overridden by the URL parameter "c" (= 0 or 1). -$params['cache'] = true; +/* PHP error logging */ +ini_set('error_log', '@freebusy_logdir@/php-error.log'); -// Should we redirect using a Location header, if the user is not local? If this -// is false we silently download the file ourselves and output it so that it -// looks as though the free/busy information is coming from us. -$params['redirect'] = false; +/* Horde::Kolab::LDAP configuration */ +$conf['kolab']['ldap']['server'] = '@@@fqdnhostname@@@'; +$conf['kolab']['ldap']['basedn'] = '@@@base_dn@@@'; +$conf['kolab']['ldap']['phpdn'] = '@@@php_dn@@@'; +$conf['kolab']['ldap']['phppw'] = '@@@php_pw@@@'; -// Should we send a Content-Type header, indicating what the mime type of the -// resulting VFB file is? -$params['send_content_type'] = false; +/* Horde::Kolab::IMAP configuration */ +$conf['kolab']['imap']['server'] = '@@@fqdnhostname@@@'; +$conf['kolab']['imap']['port'] = 143; +$conf['kolab']['imap']['protocol'] = 'notls/readonly'; -// Should we send a Content-Length header, indicating how large the resulting -// VFB file is? -$params['send_content_length'] = false; +/* Horde::Auth configuration */ +$conf['auth']['params']['login_block'] = 0; +$conf['auth']['checkbrowser'] = false; +$conf['auth']['checkip'] = false; -// Should we send a Content-Disposition header, indicating what the name of the -// resulting VFB file should be? -$params['send_content_disposition'] = false; +/* Kolab::Freebusy configuration */ -// Where are we logging to? -$params['log'] = 'file:@freebusy_logfile@'; // File... -// $params['log'] = 'syslog:cons, pid'; // Or syslog... +/* Should we redirect using a Location header, if the user is not local? If this + * is false we silently download the file ourselves and output it so that it + * looks as though the free/busy information is coming from us. + */ +$conf['fb']['redirect'] = false; -// What level of output should we log? Higher levels give more verbose output. -// One of: 0 (RM_LOG_SILENT); 1 (RM_LOG_ERROR); 2 (RM_LOG_WARN); 3 (RM_LOG_INFO) or 4 (RM_LOG_DEBUG). -$params['log_level'] = 4; +/* What is the address of the current server where the calendar data is stored? + * This is also used as the LDAP server address where user objects reside. + */ +$conf['fb']['server'] = '@@@fqdnhostname@@@'; -// What db type to use for freebusy caches -$params['dbtype'] = 'db4'; +/* What is our default mail domain? This is used if any users do not have + * '@domain' specified after their username as part of their email address. + */ +$conf['fb']['email_domain'] = '@@@fqdnhostname@@@'; -// IMAP options passed to imap_open -//$params['imap_options'] = "/notls/secure/readonly"; -$params['imap_options'] = "/notls/readonly"; +/* Location of the cache files */ +$conf['fb']['cache_dir'] = '@freebusy_cachedir@'; -$params['pfb_dbformat'] = 'db4'; +/* What db type to use for the freebusy caches */ +$conf['fb']['dbformat'] = 'db4'; -// Location of the cache files -$params['cache_dir'] = '@freebusy_cachedir@'; +/* Should we send a Content-Type header, indicating what the mime type of the + * resulting VFB file is? + */ +$conf['fb']['send_content_type'] = false; -// don't change this if you don't have to -//$params['ldap_classname_suffix'] = "_dummy"; +/* Should we send a Content-Length header, indicating how large the resulting + * VFB file is? + */ +$conf['fb']['send_content_length'] = false; -// Activate if you wish to use the new horde framework -// (horde-framework-kolab) package instead of the old code in -// kolab-horde-framework. This is still untested and considered -// UNSAFE! -$params['use_new_horde'] = false; +/* Should we send a Content-Disposition header, indicating what the name of the + * resulting VFB file should be? + */ +$conf['fb']['send_content_disposition'] = false; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // @@ -157,3 +118,15 @@ // diff -Nau kolab-freebusy/freebusy/config.php kolabd/kolabd/templates/freebusy.conf.template.in // //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +// DEBUGGING +// ========= +// +// Activate this to see the log messages on the screen +// $conf['log']['type'] = 'display'; +// +// Activate this to see the php messages on the screen +// ini_set('display_errors', 1); +// +// Both setting will disrupt header delivery (which should not cause a +// problem). From cvs at kolab.org Thu Nov 22 18:08:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 22 Nov 2007 18:08:44 +0100 (CET) Subject: gunnar: server/kolabd/kolabd/dist_conf common, 1.40, 1.41 kolab, 1.51, 1.52 Message-ID: <20071122170844.E0EBA600D45@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/dist_conf In directory doto:/tmp/cvs-serv3661/kolabd/kolabd/dist_conf Modified Files: common kolab Log Message: Updated kolabd template for the restructure kolab-freebusy. Index: common =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/common,v retrieving revision 1.40 retrieving revision 1.41 diff -u -d -r1.40 -r1.41 --- common 7 Nov 2007 10:37:53 -0000 1.40 +++ common 22 Nov 2007 17:08:42 -0000 1.41 @@ -58,7 +58,7 @@ -e 's,[@]freebusy_confdir[@],$(freebusy_confdir),g' \ -e 's,[@]freebusy_cachedir[@],$(freebusy_cachedir),g' \ -e 's,[@]freebusy_grp[@],$(freebusy_grp),g' \ - -e 's,[@]freebusy_logfile[@],$(freebusy_logfile),g' \ + -e 's,[@]freebusy_logdir[@],$(freebusy_logdir),g' \ -e 's,[@]freebusy_usr[@],$(freebusy_usr),g' \ -e 's,[@]freshclam_logfile[@],$(freshclam_logfile),g' \ -e 's,[@]freshclam_pidfile[@],$(freshclam_pidfile),g' \ Index: kolab =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/kolab,v retrieving revision 1.51 retrieving revision 1.52 diff -u -d -r1.51 -r1.52 --- kolab 7 Nov 2007 10:37:53 -0000 1.51 +++ kolab 22 Nov 2007 17:08:42 -0000 1.52 @@ -168,7 +168,7 @@ resmgr_grp=${kolab_grp} fbview_logfile=${localstatedir}/resmgr/fbview.log -freebusy_logfile=${localstatedir}/apache/log/freebusy/freebusy.log +freebusy_logdir=${localstatedir}/kolab-freebusy/log freebusy_confdir=${webserver_document_root}/freebusy freebusy_cachedir=${webserver_document_root}/freebusy/cache freebusy_usr=${kolab_musr} From cvs at kolab.org Fri Nov 23 14:39:34 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 23 Nov 2007 14:39:34 +0100 (CET) Subject: gunnar: server release-notes.txt,1.177,1.178 Message-ID: <20071123133934.B4E78600165@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv15550 Modified Files: release-notes.txt Log Message: kolab/issue898 (pfbs from several servers, are not combined into .ifb) + some minor fixes to kolab-freebusy. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.177 retrieving revision 1.178 diff -u -d -r1.177 -r1.178 --- release-notes.txt 22 Nov 2007 17:08:42 -0000 1.177 +++ release-notes.txt 23 Nov 2007 13:39:32 -0000 1.178 @@ -66,10 +66,10 @@ New functionality required for kolab-freebusy. kolab/issue2128 (Building horde-framework-kolab without http access fails) - kolab/issue2138 (Horde creates events in main inbox) - kolab/issue2144 (Calendar items of shared calendar not appearing) kolab/issue2134 ([Horde] Unable to send message with attachments) kolab/issue2135 ([horde/turba] Turba should support some more contact attributes) + kolab/issue2138 (Horde creates events in main inbox) + kolab/issue2144 (Calendar items of shared calendar not appearing) - horde-kolab-3.2_ALPHA-2007???? @@ -88,6 +88,9 @@ A fully restructured free/busy with the most recent free/busy concept implemented. + + kolab/issue799 (pfb php script cannot handle umlaut and dots in foldernames correctly) + kolab/issue898 (pfbs from several servers, are not combined into .ifb) - kolab-webadmin-2.1.99-2007???? From cvs at kolab.org Fri Nov 23 14:39:34 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 23 Nov 2007 14:39:34 +0100 (CET) Subject: gunnar: server/kolabd/kolabd/dist_conf kolab,1.52,1.53 Message-ID: <20071123133934.BE0D0600D6B@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/dist_conf In directory doto:/tmp/cvs-serv15550/kolabd/kolabd/dist_conf Modified Files: kolab Log Message: kolab/issue898 (pfbs from several servers, are not combined into .ifb) + some minor fixes to kolab-freebusy. Index: kolab =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/kolab,v retrieving revision 1.52 retrieving revision 1.53 diff -u -d -r1.52 -r1.53 --- kolab 22 Nov 2007 17:08:42 -0000 1.52 +++ kolab 23 Nov 2007 13:39:32 -0000 1.53 @@ -170,7 +170,7 @@ fbview_logfile=${localstatedir}/resmgr/fbview.log freebusy_logdir=${localstatedir}/kolab-freebusy/log freebusy_confdir=${webserver_document_root}/freebusy -freebusy_cachedir=${webserver_document_root}/freebusy/cache +freebusy_cachedir=${localstatedir}/kolab-freebusy/cache freebusy_usr=${kolab_musr} freebusy_grp=${kolab_grp} From cvs at kolab.org Fri Nov 23 14:39:34 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 23 Nov 2007 14:39:34 +0100 (CET) Subject: gunnar: server/kolab-freebusy/freebusy config.php,1.5,1.6 Message-ID: <20071123133934.BCE2F600D6A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-freebusy/freebusy In directory doto:/tmp/cvs-serv15550/kolab-freebusy/freebusy Modified Files: config.php Log Message: kolab/issue898 (pfbs from several servers, are not combined into .ifb) + some minor fixes to kolab-freebusy. Index: config.php =================================================================== RCS file: /kolabrepository/server/kolab-freebusy/freebusy/config.php,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- config.php 22 Nov 2007 16:58:33 -0000 1.5 +++ config.php 23 Nov 2007 13:39:32 -0000 1.6 @@ -102,6 +102,16 @@ */ $conf['fb']['send_content_disposition'] = false; +/* Are there remote servers on which users have additional (shared) + * folders? In that case free/busy information should also be fetched + * from these servers. + * + * Add them like this: + * + * array('remote1.example.com', 'remote2.example.com') + */ +$conf['fb']['remote_servers'] = array(); + //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // // If you modify this file, please do not forget to modify both the From cvs at kolab.org Fri Nov 23 14:39:34 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 23 Nov 2007 14:39:34 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Freebusy/Freebusy Cache.php,1.1,1.2 Message-ID: <20071123133934.D58FF600D70@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Freebusy/Freebusy In directory doto:/tmp/cvs-serv15550/php-kolab/Kolab_Freebusy/Freebusy Modified Files: Cache.php Log Message: kolab/issue898 (pfbs from several servers, are not combined into .ifb) + some minor fixes to kolab-freebusy. Index: Cache.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Freebusy/Freebusy/Cache.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Cache.php 22 Nov 2007 16:53:05 -0000 1.1 +++ Cache.php 23 Nov 2007 13:39:32 -0000 1.2 @@ -161,6 +161,8 @@ function &load(&$access, $extended) { + global $conf; + /* Which files will we access? */ $aclcache = &FreeBusyCacheDB_acl::singleton('acl', $this->_cache_dir); $files = array(); @@ -228,7 +230,19 @@ $vFb->merge($pvFb); /* Store last modification time */ - $mtimes[$file] = $c_pvcal->getMtime(); + $mtimes[$file] = array($c_pvcal->getFile(), $c_pvcal->getMtime()); + } + + if (!empty($conf['fb']['remote_servers'])) { + $remote_vfb = $this->_fetchRemote($conf['fb']['remote_servers'], + $access); + if (is_a($remote_vfb, 'PEAR_Error')) { + Horde::logMessage(sprintf(_("Ignoring remote free/busy files: %s)"), + $remote_vfb->getMessage()), + __FILE__, __LINE__, PEAR_LOG_INFO); + } else { + $vFb->merge($remote_vfb); + } } if (!(boolean)$vFb->getBusyPeriods()) { @@ -309,6 +323,58 @@ } return $folder; } + + function &_fetchRemote($servers, $access) + { + $vFb = null; + + foreach ($servers as $server) { + + $url = 'https://' . urlencode($access->user) . ':' . urlencode($access->pass) + . '@' . $server . $_SERVER['REQUEST_URI']; + $remote = @file_get_contents($url); + if (!$remote) { + $message = sprintf(_("Unable to read free/busy information from %s"), + 'https://' . urlencode($access->user) . ':XXX' + . '@' . $server . $_SERVER['REQUEST_URI']); + Horde::logMessage($message, __FILE__, __LINE__, PEAR_LOG_INFO); + } + + $rvCal = &new Horde_iCalendar(); + $result = $rvCal->parsevCalendar($remote); + + if (is_a($result, 'PEAR_Error')) { + $message = sprintf(_("Unable to parse free/busy information from %s: %s"), + 'https://' . urlencode($access->user) . ':XXX' + . '@' . $server . $_SERVER['REQUEST_URI'], + $result->getMessage()); + Horde::logMessage($message, __FILE__, __LINE__, PEAR_LOG_INFO); + } + + $rvFb = &$rvCal->findComponent('vfreebusy'); + if (!$pvFb) { + $message = sprintf(_("Unable to find free/busy information in data from %s."), + 'https://' . urlencode($access->user) . ':XXX' + . '@' . $server . $_SERVER['REQUEST_URI']); + Horde::logMessage($message, __FILE__, __LINE__, PEAR_LOG_INFO); + } + if ($ets = $rvFb->getAttributeDefault('DTEND', false) !== false) { + // PENDING(steffen): Make value configurable + if ($ets < time()) { + $message = sprintf(_("free/busy information from %s is too old."), + 'https://' . urlencode($access->user) . ':XXX' + . '@' . $server . $_SERVER['REQUEST_URI']); + Horde::logMessage($message, __FILE__, __LINE__, PEAR_LOG_INFO); + } + } + if (!empty($vFb)) { + $vFb->merge($rvFb); + } else { + $vFb = $rvFb; + } + } + return $vFb; + } }; class FreeBusyCacheDB { @@ -545,6 +611,11 @@ $this->_file = $this->_cache_dir . '/' . $this->_filename . '.' . $this->_suffix; } + function getFile() + { + return $this->_file; + } + function purge() { if (file_exists($this->_file)) { @@ -594,6 +665,7 @@ return PEAR::raiseError(sprintf(_("Cache file %s lacks version data!"), $this->_file)); } + $this->_version = $cache['version']; if (!isset($cache['data'])) { return PEAR::raiseError(sprintf(_("Cache file %s lacks data!"), $this->_file)); @@ -660,6 +732,8 @@ var $_suffix = 'vc'; + var $_version = 2; + var $_data; function storeVcal(&$vcal, &$mtimes) @@ -692,18 +766,23 @@ return $result; } + /* Check the cache version */ + if ($this->_version < 2) { + return true; + } + $this->_data = $result['vcal']; /* Files changed? */ $keys = array_keys($result['mtimes']); $changes = array_diff($keys, $files); - if (!empty($changes)) { + if (count($keys) != count($files) || !empty($changes)) { return true; } /* Check the file ctimes */ foreach ($files as $file) { - if (filemtime($this->_cache_dir . '/' . $file) != $result['mtimes'][$file]) { + if (filemtime($result['mtimes'][$file][0]) != $result['mtimes'][$file][1]) { return true; } } From cvs at kolab.org Fri Nov 23 14:39:34 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 23 Nov 2007 14:39:34 +0100 (CET) Subject: gunnar: server/kolabd/kolabd ChangeLog,1.119,1.120 Message-ID: <20071123133934.BF296600D6C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv15550/kolabd/kolabd Modified Files: ChangeLog Log Message: kolab/issue898 (pfbs from several servers, are not combined into .ifb) + some minor fixes to kolab-freebusy. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.119 retrieving revision 1.120 diff -u -d -r1.119 -r1.120 --- ChangeLog 22 Nov 2007 17:08:42 -0000 1.119 +++ ChangeLog 23 Nov 2007 13:39:32 -0000 1.120 @@ -1,3 +1,13 @@ +2007-11-23 Gunnar Wrobel

    + + * templates/freebusy.conf.template.in: + + Add remote_servers configuration variable. + + * dist_conf/kolab (freebusy_cachedir): + + Fixed cachedir location. + 2007-11-22 Gunnar Wrobel

    * dist_conf/kolab (freebusy_logdir): From cvs at kolab.org Fri Nov 23 14:39:34 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 23 Nov 2007 14:39:34 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Freebusy ChangeLog,1.4,1.5 Message-ID: <20071123133934.D46F1600D6F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Freebusy In directory doto:/tmp/cvs-serv15550/php-kolab/Kolab_Freebusy Modified Files: ChangeLog Log Message: kolab/issue898 (pfbs from several servers, are not combined into .ifb) + some minor fixes to kolab-freebusy. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Freebusy/ChangeLog,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ChangeLog 22 Nov 2007 16:54:24 -0000 1.4 +++ ChangeLog 23 Nov 2007 13:39:32 -0000 1.5 @@ -1,3 +1,12 @@ +2007-11-23 Gunnar Wrobel

    + + * Freebusy/Cache.php: + + Fix the checking for an expired free/busy cache. + + Allow fetching remote partial free/busy lists. + kolab/issue898 (pfbs from several servers, are not combined into .ifb) + 2007-11-22 Gunnar Wrobel

    * Freebusy/*: From cvs at kolab.org Fri Nov 23 14:39:34 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 23 Nov 2007 14:39:34 +0100 (CET) Subject: gunnar: server/kolab-freebusy ChangeLog,1.3,1.4 Message-ID: <20071123133934.B92F9600D62@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-freebusy In directory doto:/tmp/cvs-serv15550/kolab-freebusy Modified Files: ChangeLog Log Message: kolab/issue898 (pfbs from several servers, are not combined into .ifb) + some minor fixes to kolab-freebusy. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-freebusy/ChangeLog,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ChangeLog 22 Nov 2007 16:58:33 -0000 1.3 +++ ChangeLog 23 Nov 2007 13:39:32 -0000 1.4 @@ -1,3 +1,9 @@ +2007-11-23 Gunnar Wrobel

    + + * freebusy/config.php: + + Added remote_servers configuration variable. + 2007-11-22 Gunnar Wrobel

    * kolab-freebusy.spec: From cvs at kolab.org Fri Nov 23 14:39:34 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 23 Nov 2007 14:39:34 +0100 (CET) Subject: gunnar: server/kolabd/kolabd/templates freebusy.conf.template.in, 1.11, 1.12 Message-ID: <20071123133934.D343A600D6D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv15550/kolabd/kolabd/templates Modified Files: freebusy.conf.template.in Log Message: kolab/issue898 (pfbs from several servers, are not combined into .ifb) + some minor fixes to kolab-freebusy. Index: freebusy.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/freebusy.conf.template.in,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- freebusy.conf.template.in 22 Nov 2007 17:08:42 -0000 1.11 +++ freebusy.conf.template.in 23 Nov 2007 13:39:32 -0000 1.12 @@ -107,6 +107,16 @@ */ $conf['fb']['send_content_disposition'] = false; +/* Are there remote servers on which users have additional (shared) + * folders? In that case free/busy information should also be fetched + * from these servers. + * + * Add them like this: + * + * array('remote1.example.com', 'remote2.example.com') + */ +$conf['fb']['remote_servers'] = array(); + //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // // If you modify this file, please do not forget to modify both the From cvs at kolab.org Fri Nov 23 16:03:56 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 23 Nov 2007 16:03:56 +0100 (CET) Subject: gunnar: server/horde/horde-framework HK-GW-Kolab_extensions.patch, 1.2, 1.3 horde-framework-kolab.spec, 1.29, 1.30 Message-ID: <20071123150356.1D16F600D6F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-framework In directory doto:/tmp/cvs-serv17398/horde/horde-framework Modified Files: HK-GW-Kolab_extensions.patch horde-framework-kolab.spec Log Message: Some fixes to the way we expand recurrences in free/busy. Index: HK-GW-Kolab_extensions.patch =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/HK-GW-Kolab_extensions.patch,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- HK-GW-Kolab_extensions.patch 22 Nov 2007 16:31:00 -0000 1.2 +++ HK-GW-Kolab_extensions.patch 23 Nov 2007 15:03:53 -0000 1.3 @@ -394,10 +394,10 @@ $this->_storage = &new Kolab_IMAP(); } -diff -r 2be0e69810d0 framework/Kolab/Kolab/Freebusy.php +diff -r f536c90a6397 framework/Kolab/Kolab/Freebusy.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/framework/Kolab/Kolab/Freebusy.php Thu Nov 22 17:29:28 2007 +0100 -@@ -0,0 +1,490 @@ ++++ b/framework/Kolab/Kolab/Freebusy.php Fri Nov 23 15:51:14 2007 +0100 +@@ -0,0 +1,495 @@ +recurs()) { + $next = $event->recurrence->nextRecurrence($startDate); ++ while ($next !== false && ++ $event->recurrence->hasException($next->year, $next->month, $next->mday)) { ++ $next->mday++; ++ $next = $event->recurrence->nextRecurrence($next); ++ } ++ $duration = $next->timestamp() - $event->start->timestamp(); ++ $next_end = &new Horde_Date($event->end->timestamp() + $duration); ++ + if ($next !== false && -+ !$event->recurrence->hasException($next->year, $next->month, $next->mday) && -+ (!(($endDate->compareDateTime($event->start) < 0) || -+ ($startDate->compareDateTime($event->end) > 0)))) { ++ (!(($endDate->compareDateTime($next) < 0) || ++ ($startDate->compareDateTime($next_end) > 0)))) { + $result[] = $event; + } + } @@ -744,18 +751,16 @@ + if (!$event->recurs()) { + $vFb->addBusyPeriod('BUSY', $startThisDay, null, $duration, $extra); + } else { -+ while (true) { -+ $next = $event->recurrence->nextRecurrence($startDate); -+ if ($next === false) { ++ $next = $event->recurrence->nextRecurrence($startDate); ++ while ($next) { ++ if ($endDate->compareDateTime($next) < 0) { + break; + } -+ if ($event->recurrence->hasException($next->year, $next->month, $next->mday)) { -+ continue; -+ } -+ if ($endDate->compareDateTime($next->start) < 0) { -+ break; ++ if (!$event->recurrence->hasException($next->year, $next->month, $next->mday)) { ++ $vFb->addBusyPeriod('BUSY', $next->timestamp(), null, $duration, $extra); + } -+ $vFb->addBusyPeriod('BUSY', $next->timestamp(), null, $duration, $extra); ++ $next->mday++; ++ $next = $event->recurrence->nextRecurrence($next); + } + } + } Index: horde-framework-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/horde-framework-kolab.spec,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- horde-framework-kolab.spec 22 Nov 2007 16:24:14 -0000 1.29 +++ horde-framework-kolab.spec 23 Nov 2007 15:03:53 -0000 1.30 @@ -3,7 +3,7 @@ %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 %define V_month 11 -%define V_day 22 +%define V_day 23 %define V_version 3.2_ALPHA %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} From cvs at kolab.org Fri Nov 23 16:03:56 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 23 Nov 2007 16:03:56 +0100 (CET) Subject: gunnar: server/patches/horde HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch, 1.2, 1.3 Message-ID: <20071123150356.1B8A4600D6D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde In directory doto:/tmp/cvs-serv17398/patches/horde Modified Files: HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch Log Message: Some fixes to the way we expand recurrences in free/busy. Index: HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch =================================================================== RCS file: /kolabrepository/server/patches/horde/HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch 22 Nov 2007 16:31:00 -0000 1.2 +++ HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch 23 Nov 2007 15:03:54 -0000 1.3 @@ -394,10 +394,10 @@ $this->_storage = &new Kolab_IMAP(); } -diff -r 2be0e69810d0 framework/Kolab/Kolab/Freebusy.php +diff -r f536c90a6397 framework/Kolab/Kolab/Freebusy.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/framework/Kolab/Kolab/Freebusy.php Thu Nov 22 17:29:28 2007 +0100 -@@ -0,0 +1,490 @@ ++++ b/framework/Kolab/Kolab/Freebusy.php Fri Nov 23 15:51:14 2007 +0100 +@@ -0,0 +1,495 @@ +recurs()) { + $next = $event->recurrence->nextRecurrence($startDate); ++ while ($next !== false && ++ $event->recurrence->hasException($next->year, $next->month, $next->mday)) { ++ $next->mday++; ++ $next = $event->recurrence->nextRecurrence($next); ++ } ++ $duration = $next->timestamp() - $event->start->timestamp(); ++ $next_end = &new Horde_Date($event->end->timestamp() + $duration); ++ + if ($next !== false && -+ !$event->recurrence->hasException($next->year, $next->month, $next->mday) && -+ (!(($endDate->compareDateTime($event->start) < 0) || -+ ($startDate->compareDateTime($event->end) > 0)))) { ++ (!(($endDate->compareDateTime($next) < 0) || ++ ($startDate->compareDateTime($next_end) > 0)))) { + $result[] = $event; + } + } @@ -744,18 +751,16 @@ + if (!$event->recurs()) { + $vFb->addBusyPeriod('BUSY', $startThisDay, null, $duration, $extra); + } else { -+ while (true) { -+ $next = $event->recurrence->nextRecurrence($startDate); -+ if ($next === false) { ++ $next = $event->recurrence->nextRecurrence($startDate); ++ while ($next) { ++ if ($endDate->compareDateTime($next) < 0) { + break; + } -+ if ($event->recurrence->hasException($next->year, $next->month, $next->mday)) { -+ continue; -+ } -+ if ($endDate->compareDateTime($next->start) < 0) { -+ break; ++ if (!$event->recurrence->hasException($next->year, $next->month, $next->mday)) { ++ $vFb->addBusyPeriod('BUSY', $next->timestamp(), null, $duration, $extra); + } -+ $vFb->addBusyPeriod('BUSY', $next->timestamp(), null, $duration, $extra); ++ $next->mday++; ++ $next = $event->recurrence->nextRecurrence($next); + } + } + } From cvs at kolab.org Fri Nov 23 16:48:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 23 Nov 2007 16:48:13 +0100 (CET) Subject: gunnar: server/horde/horde-framework HK-GW-Kolab_extensions.patch, 1.3, 1.4 Message-ID: <20071123154813.3FBE8600D69@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-framework In directory doto:/tmp/cvs-serv18283/horde/horde-framework Modified Files: HK-GW-Kolab_extensions.patch Log Message: Disregard private events for free/busy. Index: HK-GW-Kolab_extensions.patch =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/HK-GW-Kolab_extensions.patch,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- HK-GW-Kolab_extensions.patch 23 Nov 2007 15:03:53 -0000 1.3 +++ HK-GW-Kolab_extensions.patch 23 Nov 2007 15:48:10 -0000 1.4 @@ -396,8 +396,8 @@ diff -r f536c90a6397 framework/Kolab/Kolab/Freebusy.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/framework/Kolab/Kolab/Freebusy.php Fri Nov 23 15:51:14 2007 +0100 -@@ -0,0 +1,495 @@ ++++ b/framework/Kolab/Kolab/Freebusy.php Fri Nov 23 16:46:17 2007 +0100 +@@ -0,0 +1,499 @@ +private) { ++ continue; ++ } + + /* check if event period intersects with given period */ + if (!(($endDate->compareDateTime($event->start) < 0) || From cvs at kolab.org Fri Nov 23 16:48:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 23 Nov 2007 16:48:13 +0100 (CET) Subject: gunnar: server/patches/horde HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch, 1.3, 1.4 Message-ID: <20071123154813.4263A600D6B@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde In directory doto:/tmp/cvs-serv18283/patches/horde Modified Files: HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch Log Message: Disregard private events for free/busy. Index: HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch =================================================================== RCS file: /kolabrepository/server/patches/horde/HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch 23 Nov 2007 15:03:54 -0000 1.3 +++ HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch 23 Nov 2007 15:48:10 -0000 1.4 @@ -396,8 +396,8 @@ diff -r f536c90a6397 framework/Kolab/Kolab/Freebusy.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/framework/Kolab/Kolab/Freebusy.php Fri Nov 23 15:51:14 2007 +0100 -@@ -0,0 +1,495 @@ ++++ b/framework/Kolab/Kolab/Freebusy.php Fri Nov 23 16:46:17 2007 +0100 +@@ -0,0 +1,499 @@ +private) { ++ continue; ++ } + + /* check if event period intersects with given period */ + if (!(($endDate->compareDateTime($event->start) < 0) || From cvs at kolab.org Fri Nov 23 18:05:17 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 23 Nov 2007 18:05:17 +0100 (CET) Subject: bernhard: doc/www/src getting-involved.html.m4,1.1,1.2 Message-ID: <20071123170517.1E8D0600D69@lists.intevation.de> Author: bernhard Update of /kolabrepository/doc/www/src In directory doto:/tmp/cvs-serv19771 Modified Files: getting-involved.html.m4 Log Message: Improved the getting-involved page a bit. Mainly replaced "project" with "community". Index: getting-involved.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/getting-involved.html.m4,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- getting-involved.html.m4 18 May 2005 12:54:02 -0000 1.1 +++ getting-involved.html.m4 23 Nov 2007 17:05:14 -0000 1.2 @@ -4,37 +4,40 @@

    Getting Involved

    -Kolab is an open project welcoming any type of helpful contribution! -If you like, you can become an active member of the Kolab Groupware Project. +Kolab is an open community welcoming any type of helpful contribution! +If you like, you can become an active member.

    -Becoming a member of the Kolab Groupware Project is in fact fairly easy. -Depending on your area of interest and level of expertise you may perhaps identify -one of these items where you like to contribute: +Becoming a member of the Kolab community is easy: Connect +with us and just contribute! +Pick something you like to do, here are some ideas:

      -
    • Testing Kolab Server and/or Kolab Klients: report bugs and wishes - into our issue tracker +
    • Help other to understand and run Kolab. +
    • Testing Kolab Server and/or Kolab Clients: report bugs and wishes + into our issue tracker or the development mailinglist.
    • Report any trouble-shooting findings and other valuable information into the Kolab Wiki
    • Write/polish documentation: There is quite some documentation already, but largely unsorted. Ask on the devel-list for what you could do.
    • Consolidate information from the mailing lists into the Wiki. -
    • Fix bugs on your own: the issue tracker has lots of open items. +
    • Help to fix problems: the issue tracker has lots of open items. If you feel competent, pick one that lies in your realm and solve it. - Don't forget to let others know you are working on a bug (ie. assign + Don't forget to let others know you are working on an issue (ie. assign it to yourself and change the status accordingly).
    • Improve our web-site. It always needs work. -
    • ... +
    • Share your experiences! May they be good or bad. +
    • Design some nice artwork to promote Kolab.
    In any case you should subscribe to at least one of the mailing lists and participate there. Don't be frustrated if some emails remain unanswered - sometimes the others are simply lacking time or it may slip out of -intention. Just remind if no reaction occurs. And give answers yourself -where you can ;-) +intention. Just send a reminder after a few days. +And give answers yourself where you can. ;-)

    -Everyone who continously contributes to Kolab can get CVS write access. +Everyone who continously contributes to Kolab can get write access +to the software repository. m4_include(footer.html.m4) From cvs at kolab.org Fri Nov 23 19:32:24 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 23 Nov 2007 19:32:24 +0100 (CET) Subject: bernhard: doc/www/src roadmap.html.m4,1.11,1.12 Message-ID: <20071123183224.75EC2600D67@lists.intevation.de> Author: bernhard Update of /kolabrepository/doc/www/src In directory doto:/tmp/cvs-serv21885 Modified Files: roadmap.html.m4 Log Message: Updated roadmap to be more detailed. * Included the KDE Kolab Client again, two series enterprise35 and proko2 * Removed Kolab Server 3.0, it was quite vaque anyway. * Server planned release 2.2.0 Q1 2008. Index: roadmap.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/roadmap.html.m4,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- roadmap.html.m4 23 May 2007 09:00:18 -0000 1.11 +++ roadmap.html.m4 23 Nov 2007 18:32:22 -0000 1.12 @@ -18,7 +18,24 @@

    -

    Future Kolab Server 2.2 release series

    +

    KDE Kolab Client Enterprise35

    + +This series is in beta quality and contains a large number of improvements +over Proko2. Currently intermediate releases happen very few weeks for +testing. Packagers are already picking this up. +

    +Stabilization to enterprise production quality is planned for Q1 2008. + +

    KDE Kolab Client Proko2 stable series

    + +This series is very stable and in in maintenance mode. +Only very important updates will happen occasionally - governed +by the urgency of the changes for enterprise users. + +

    Kolab Server 2.2 series

    + +Current beta quality release is 2.2-beta2, it already has +the planned features:
    • Update to a new OpenPKG version.
    • Integration of new upstream versions (with many of the kolab patches @@ -28,14 +45,15 @@ More complete support for 64 bit architectures.
    - - -

    Future Kolab Server 3.0 release series

    - -The roadmap for the next major version is currently being discussed within the -community. - +Planned is 2.2-beta3 in early December. +
      +
    • Some Webclient problems resolved. +
    • Implementation of new concept for extended freebusy list which is good for the teamleader overview usecase. +

    + +The 2.2.0 release is planned for Q1 2008. +Before at least one rc release is likely.

    Kolab Server 2.1 release series

    From cvs at kolab.org Mon Nov 26 17:28:52 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 26 Nov 2007 17:28:52 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/tests/_data - New directory Message-ID: <20071126162852.33151600D6C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/tests/_data In directory doto:/tmp/cvs-serv507/_data Log Message: Directory /kolabrepository/server/php-kolab/Kolab_Filter/tests/_data added to the repository From cvs at kolab.org Mon Nov 26 17:28:52 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 26 Nov 2007 17:28:52 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/tests/tmp - New directory Message-ID: <20071126162852.3557F600D6D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/tests/tmp In directory doto:/tmp/cvs-serv507/tmp Log Message: Directory /kolabrepository/server/php-kolab/Kolab_Filter/tests/tmp added to the repository From cvs at kolab.org Mon Nov 26 17:35:23 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 26 Nov 2007 17:35:23 +0100 (CET) Subject: gunnar: server/kolab-filter ChangeLog,NONE,1.1 Message-ID: <20071126163523.722B4600D65@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-filter In directory doto:/tmp/cvs-serv723/kolab-filter Added Files: ChangeLog Log Message: Restructured Kolab_Filter package with the focus on error handling and unit testing. --- NEW FILE: ChangeLog --- 2007-11-26 Gunnar Wrobel

    * config.php: * kolabfilter.php: * kolabmailboxfilter.php: Adapted to the restructured php-kolab/Kolab_Filter package. From cvs at kolab.org Mon Nov 26 17:35:23 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 26 Nov 2007 17:35:23 +0100 (CET) Subject: gunnar: server/kolab-filter/filter config.php, 1.3, 1.4 kolabfilter.php, 1.2, 1.3 kolabmailboxfilter.php, 1.2, 1.3 Message-ID: <20071126163523.790E9600D69@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-filter/filter In directory doto:/tmp/cvs-serv723/kolab-filter/filter Modified Files: config.php kolabfilter.php kolabmailboxfilter.php Log Message: Restructured Kolab_Filter package with the focus on error handling and unit testing. Index: config.php =================================================================== RCS file: /kolabrepository/server/kolab-filter/filter/config.php,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- config.php 16 Aug 2007 10:53:19 -0000 1.3 +++ config.php 26 Nov 2007 16:35:21 -0000 1.4 @@ -34,95 +34,127 @@ * */ -// What is the address of the Cyrus server where the calendar data is stored? -$params['server'] = 'localhost'; +$conf = array(); + +/* Horde::Log configuration */ +$conf['log']['enabled'] = true; +$conf['log']['priority'] = PEAR_LOG_DEBUG; // Leave this on DEBUG for now. We just restructured the package... +$conf['log']['type'] = 'file'; +$conf['log']['name'] = '/kolab/var/kolab-filter/log/filter.log'; +$conf['log']['ident'] = 'Kolab Filter'; +$conf['log']['params']['append'] = true; + +/* PHP error logging */ +$conf['filter']['error_log'] = '/kolab/var/kolab-filter/log/php-error.log'; + +/* Temporary data storage for the scripts */ +$conf['filter']['tempdir'] = ''; + +/* What is the address of this host? */ +$conf['filter']['server'] = 'localhost'; + +/* What is our default mail domain? This is used if any users do not + * have '@domain' specified after their username as part of their + * email address. + */ +$conf['filter']['email_domain'] = 'example.com'; + +/* LMTP settings (Cyrus IMAPd usually offers LMTP on port 2003) */ +$conf['filter']['lmpt_host'] = 'localhost'; +$conf['filter']['lmpt_port'] = 2003; + +/* SMTP settings (Kolab Postfix usually offers reinjection port on + * 10025) + */ +$conf['filter']['smpt_host'] = 'localhost'; +$conf['filter']['smpt_port'] = 10025; + +/* Should we make sure that the sender and From header match for mail + * that origins on this server? + */ +$conf['filter']['verify_from_header'] = true; + +/* Should the Sender: header be used over From: if present? */ +$conf['filter']['allow_sender_header'] = true; + +/* Should we allow forwarded ical messages from Outlook + * by encapsulating them in a MIME multipart + */ +$conf['filter']['allow_outlook_ical_forward'] = true; + -// What is our default mail domain? This is used if any users do not have -// '@domain' specified after their username as part of their email address. -$params['email_domain'] = 'example.com'; // List of kolab hosts that are privileged -$params['kolabhosts'] = 'one.example.com,two.example.com,three.example.com'; +$conf['kolabhosts'] = 'one.example.com,two.example.com,three.example.com'; // Are we using virtual domains with Cyrus? -$params['virtual_domains'] = true; +$conf['virtual_domains'] = true; // Should we append domains to mailbox URIs? This only applies when // virtual_domains is true, and when using manager accounts. -$params['append_domains'] = false; - -// Should we make sure that the sender and From header match for mail -// that origins on this server? -$params['verify_from_header'] = true; +$conf['append_domains'] = false; // Should we perform this check on mail from our // subdomains too? -$params['verify_subdomains'] = true; - -// Should the Sender: header be used over From: if present? -$params['allow_sender_header'] = true; +$conf['verify_subdomains'] = true; // Should reject messages with From headers that dont match // the envelope? Default is to rewrite the header -$params['reject_forged_from_header'] = false; +$conf['reject_forged_from_header'] = false; // Text to be inserted in From: when rewriting untrusted mails -$params['untrusted_subject_insert'] = "(UNTRUSTED, sender is <%s>)"; -$params['unauthenticated_subject_insert'] = "(UNTRUSTED, sender <%s> is not authenticated)"; - -// Should we allow forwarded ical messages from Outlook -// by encapsulating them in a MIME multipart -$params['allow_outlook_ical_forward'] = true; +$conf['untrusted_subject_insert'] = "(UNTRUSTED, sender is <%s>)"; +$conf['unauthenticated_subject_insert'] = "(UNTRUSTED, sender <%s> is not authenticated)"; // LDAP data // What is the address of the LDAP server address where user objects reside -$params['ldap_uri'] = 'ldaps://ldap.example.com'; +$conf['ldap_uri'] = 'ldaps://ldap.example.com'; // What is the Base DN of our LDAP database? -$params['base_dn'] = 'dc=example,dc=com'; +$conf['base_dn'] = 'dc=example,dc=com'; // What DN should we use to bind to the LDAP server? -$params['bind_dn'] = 'cn=nobody,cn=internal,dc=example,dc=com'; +$conf['bind_dn'] = 'cn=nobody,cn=internal,dc=example,dc=com'; // What password should we use with the above DN when binding? -$params['bind_pw'] = 'xyz'; +$conf['bind_pw'] = 'xyz'; // What account should we use to read/write calendar data? This account should // have access to the calendar mailbox of all resource/group mailboxes. -$params['calendar_user'] = 'calendar@'.$params['email_domain']; -$params['calendar_pass'] = 'zyx'; +$conf['calendar_user'] = 'calendar@'.$conf['email_domain']; +$conf['calendar_pass'] = 'zyx'; // Filename of private key used to decrypt password from LDAP -$params['priv_key_file'] = '@sysconfdir@/kolab/res_priv.pem'; +$conf['priv_key_file'] = '@sysconfdir@/kolab/res_priv.pem'; // What is the name of the users' calendar mailbox? // This is only used when the user does not already have // a primary calendar folder (search via Kolab annotation) -$params['calendar_store'] = 'Calendar'; +$conf['calendar_store'] = 'Calendar'; // Where can we get free/busy information from? -$params['freebusy_url'] = 'http://kolab.example.com/freebusy/${USER}.xfb'; +$conf['freebusy_url'] = 'http://kolab.example.com/freebusy/${USER}.xfb'; // PFB url to trigger creation of pfb -$params['pfb_trigger_url'] = 'http://@@@fqdnhostname@@@/freebusy/trigger/${USER}/${FOLDER}.xpfb'; +$conf['pfb_trigger_url'] = 'http://@@@fqdnhostname@@@/freebusy/trigger/${USER}/${FOLDER}.xpfb'; // Where are we logging to? -$params['log'] = 'file:@resmgr_logfile@'; // File... -// $params['log'] = 'syslog:cons, pid'; // Or syslog... +$conf['log'] = 'file:@resmgr_logfile@'; // File... +// $conf['log'] = 'syslog:cons, pid'; // Or syslog... // What level of output should we log? Higher levels give more verbose output. // One of: RM_LOG_SILENT; RM_LOG_ERROR; RM_LOG_WARN; RM_LOG_INFO or RM_LOG_DEBUG. -$params['log_level'] = RM_LOG_DEBUG; - -// Temporary data storage for the script -$params['resmgr_filterdir'] = ''; +$conf['log_level'] = RM_LOG_DEBUG; // Activate if you wish to use the new horde framework // (horde-framework-kolab) package instead of the old code in // kolab-horde-framework. This is still untested and considered // UNSAFE! -$params['use_new_horde'] = false; +$conf['use_new_horde'] = false; + +// FIXME: HACK +$params = $conf; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // Index: kolabfilter.php =================================================================== RCS file: /kolabrepository/server/kolab-filter/filter/kolabfilter.php,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- kolabfilter.php 8 Oct 2007 15:50:11 -0000 1.2 +++ kolabfilter.php 26 Nov 2007 16:35:21 -0000 1.3 @@ -29,469 +29,26 @@ * ABOUT * ----- * - * FIXME + * A filter for outgoing mail on a Kolab Server. * */ -/* Fix include_path to pick up our modified Horde classes */ -require_once 'PEAR.php'; -require_once 'Kolab/Filter/misc.php'; -require_once 'Kolab/Filter/kolabmailtransport.php'; - -// Profiling code -/* -function mymtime(){ - $tmp=explode(' ',microtime()); - $rt=$tmp[0]+$tmp[1]; - return $rt; -} - -class MyTimer { - function MyTimer( $name ) { - $this->name = $name; - } - function start() { - $this->time = mymtime(); - } - function stop() { - $time = 100*(mymtime()-$this->time); - myLog("Section ".$this->name." took $time msecs", RM_LOG_DEBUG); - } - - var $name; - var $time; -}; - -$totaltime =& new MyTimer("Total"); -$totaltime->start(); -*/ +/* Load the filter libraries */ +require_once 'Kolab/Filter/Outgoing.php'; +require_once 'Kolab/Filter/Response.php'; -// Load our configuration file -$params = array(); +/* Read our configuration */ require_once 'config.php'; -init(); - -define( 'TMPDIR', $params['resmgr_filterdir'] ); -define( 'EX_TEMPFAIL', 75 ); -define( 'EX_UNAVAILABLE', 69 ); - -//$inputtime =& new MyTimer("Input"); -//$inputtime->start(); - -// Temp file for storing the message -$tmpfname = tempnam( TMPDIR, 'IN.' ); -$tmpf = @fopen($tmpfname, "w"); -if( !$tmpf ) { - myLog("Error: Could not open $tempfname for writing: ".php_error(), RM_LOG_ERROR); - exit(EX_TEMPFAIL); -} - -// Cleanup function -function cleanup() { - global $tmpfname; - file_exists($tmpfname) && unlink($tmpfname); -} -register_shutdown_function( 'cleanup' ); - -function is_my_domain( $addr ) { - global $params; - if( is_array($params['email_domain']) ) { - $domains = $params['email_domain']; - } else { - $domains = array($params['email_domain']); - } - - $adrs = imap_rfc822_parse_adrlist($addr, $params['email_domain']); - foreach ($adrs as $adr) { - $adrdom = $adr->host; - if( empty($adrdom) ) continue; - foreach( $domains as $dom ) { - if( $dom == $adrdom ) return true; - if( $params['verify_subdomains'] && substr($adrdom, -strlen($dom)-1) == ".$dom" ) return true; - } - } - return false; -} - -/** - Returns a list of allowed email addresses for user $sasluser - or a PEAR_Error object if something croaked. -*/ -function addrs_for_uid( $sasluser ) -{ - global $params; - /* Connect to the LDAP server and retrieve the users' - allowed email addresses */ - $ldap = ldap_connect($params['ldap_uri']); - if (!ldap_bind($ldap, $params['bind_dn'], $params['bind_pw'])) { - myLog('Unable to contact LDAP server: ' . ldap_error($ldap)); - return new PEAR_Error('Unable to contact LDAP server: ' . ldap_error($ldap)); - } - - $filter = "(&(objectClass=kolabInetOrgPerson)(|(mail=$sasluser)(uid=$sasluser)))"; - $result = ldap_search($ldap, $params['base_dn'], - $filter, - array("dn", "mail", "alias" )); - if (!$result) { - myLog('Unable to perform LDAP search: ' . ldap_error($ldap)); - return new PEAR_Error('Unable to perform LDAP search: ' . ldap_error($ldap)); - } - - $entries = ldap_get_entries($ldap, $result); - if ($entries['count'] != 1) { - myLog($entries['count']." objects returned for uid $sasluser"); - return new PEAR_Error("Temporary LDAP error, unable to look up user $sasluser"); - } - unset($entries[0]['mail']['count']); - unset($entries[0]['alias']['count']); - $addrs = array_merge((array) $entries[0]['mail'],(array) $entries[0]['alias']); - $mail = $entries[0]['mail'][0]; - - ldap_free_result($result); - - $filter = "(&(objectClass=kolabInetOrgPerson)(kolabDelegate=$mail))"; - $result = ldap_search($ldap, $params['base_dn'], - $filter, - array("dn", "mail" )); - if (!$result) { - myLog('Unable to perform LDAP search: ' . ldap_error($ldap)); - return new PEAR_Error('Unable to perform LDAP search: ' . ldap_error($ldap)); - } - - $entries = ldap_get_entries($ldap, $result); - unset( $entries['count'] ); - foreach( $entries as $adr ) { - if( $adr['mail']['count'] > 0 ) { - unset($adr['mail']['count']); - $addrs = array_merge((array) $addrs,(array) $adr['mail']); - } - } - ldap_free_result($result); - ldap_close($ldap); - - #myLog("Found addresses ".print_r($addrs,true)." for user $sasluser", RM_LOG_DEBUG); - return $addrs; -} - -/** Returns the format string used to rewrite - the From header for untrusted messages */ -function get_untrusted_subject_insert($sasluser,$sender) -{ - global $params; - if( $sasluser ) { - if( array_key_exists('untrusted_subject_insert', $params) ) { - $fmt = $params['untrusted_subject_insert']; - } else { - $fmt = "(UNTRUSTED, sender is <%s>)"; - } - } else { - if( array_key_exists('unauthenticated_subject_insert', $params) ) { - $fmt = $params['unauthenticated_subject_insert']; - } else { - $fmt = "(UNTRUSTED, sender <%s> is not authenticated)"; - } - } - return sprintf($fmt,$sender); -} - -/** Check that the From header is not trying - to impersonate a valid user that is not - $sasluser. Returns one of: - - * True if From can be accepted - * False if From must be rejected - * A string with a corrected From header that makes - From acceptable - * A PEAR_Error object if something croaked -*/ -function verify_sender( $sasluser, $sender, $fromhdr, $client_addr ) { - global $params; - - /* Allow anything from localhost and - fellow Kolab-hosts */ - if( $client_addr == $params['local_addr'] ) return true; - $kolabhosts = split(',', $params['kolabhosts'] ); - $kolabhosts = array_map( "gethostbyname", $kolabhosts ); - if( array_search( $client_addr, $kolabhosts ) !== false ) return true; - - if( is_array($params['email_domain']) ) { - $domains = $params['email_domain']; - } else { - $domains = array($params['email_domain']); - } - - if( $sasluser ) { - if( PEAR::isError($allowed_addrs = addrs_for_uid($sasluser)) ) { - myLog("Error reading allowed addresses for $sasluser: ".$allowed_addrs->getMessage(), RM_LOG_ERROR); - return $allowed_addrs; - } - } else { - $allowed_addrs = false; - } - $untrusted = get_untrusted_subject_insert($sasluser,$sender); - $adrs = imap_rfc822_parse_adrlist($fromhdr, $params['email_domain'][0]); - foreach ($adrs as $adr) { - $from = $adr->mailbox.'@'.$adr->host; - $fromdom = $adr->host; - if( $sasluser ) { - if( !in_array( strtolower($from), $allowed_addrs ) ) { - myLog("$from is not an allowed From address for $sasluser", RM_LOG_DEBUG); - return false; - } - } else { - foreach( $domains as $domain ) { - if( strtolower($fromdom) == $domain - || ( $params['verify_subdomains'] - && substr($fromdom, -strlen($domain)-1) == ".$domain" ) ) { - if( $params['reject_forged_from_header'] ) { - myLog("$from is not an allowed From address for unauthenticated users", RM_LOG_DEBUG); - return false; - } else { - /* Rewrite */ - myLog("$from is not an allowed From address for unauthenticated users, rewriting", RM_LOG_DEBUG); - - if( strpos( $fromhdr, $untrusted )===false ) { - return '"'.str_replace(array("\\",'"'),array("\\\\",'\"'),$adr->personal).' '.$untrusted.'" '.'<'.$from.'>'; - } else { - return true; - } - } - } - } - } - } - - /* All seems OK */ - return true; - - /* TODO: What do we do about subdomains? */ - /* - $senderdom = substr(strrchr($sender, '@'), 1); - foreach( $domains as $domain ) { - if( $params['verify_subdomains'] ) { - if( ($senderdom == $domain || - $fromdom == $domain || - substr($senderdom, -strlen($domain)-1) == ".$domain" || - substr($fromdom, -strlen($domain)-1) == ".$domain" ) && - $sender != $from ) { - return false; - } - } else { - if( ($senderdom == $domain || - $fromdom == $domain ) && - $sender != $from ) { - return false; - } - } - } - } - return true; - */ -} - -$options = parse_args( array( 's', 'r', 'c', 'h', 'u' ), $_SERVER['argv']); //getopt("s:r:c:h:u:"); - -if (!array_key_exists('r', $options) || !array_key_exists('s', $options)) { - fwrite(STDOUT, "Usage is $argv[0] -s sender at domain -r recip at domain\n"); - exit(EX_TEMPFAIL); -} - -$sender = strtolower($options['s']); -$recipients = $options['r']; -$client_address = $options['c']; -$fqhostname = strtolower($options['h']); -$sasl_username = strtolower($options['u']); - -// make sure recipients is an array -if( !is_array($recipients) ) { - $recipients = array( $recipients ); -} - -// make recipients lowercase -for( $i = 0; $i < count($recipients); $i++ ) { - $recipients[$i] = strtolower($recipients[$i]); -} - -myLog("Kolabfilter starting up, user=$sasl_username, sender=$sender, recipients=".join(',', $recipients) - .", client_address=$client_address", RM_LOG_DEBUG); - -define( RM_STATE_READING_HEADER, 1 ); -define( RM_STATE_READING_FROM, 2 ); -define( RM_STATE_READING_SUBJECT,3 ); -define( RM_STATE_READING_SENDER, 4 ); -define( RM_STATE_READING_BODY, 5 ); - -$ical = false; -$from = false; -$subject = false; -$senderok = true; -$rewrittenfrom = false; -$state = RM_STATE_READING_HEADER; -while (!feof(STDIN) && $state != RM_STATE_READING_BODY) { - $buffer = fgets(STDIN, 8192); - $line = rtrim( $buffer, "\r\n"); - if( $line == '' ) { - // Done with headers - $state = RM_STATE_READING_BODY; - if( $from && $params['verify_from_header'] ) { - $rc = verify_sender( $sasl_username, $sender, $from, $client_address); - if( PEAR::isError($rc) ) { - $msg = $error->getMessage().", code ".$error->getCode(); - mylog($msg, RM_LOG_ERROR); - fwrite(STDOUT, $msg."\n"); - exit(EX_TEMPFAIL); - } else if( $rc === true ) { - /* All OK, do nothing */ - } else if( $rc === false ) { - /* Reject! */ - $senderok = false; - } else if( is_string($rc) ) { - /* Rewrite from */ - if( strpos( $from, $rc )===false ) { - myLog("Rewriting '$from' to '$rc'", RM_LOG_DEBUG); - $rewrittenfrom = "From: $rc\r\n"; - } - } - } - } else { - if( $line[0] != ' ' && $line[0] != "\t" ) $state = RM_STATE_READING_HEADER; - switch( $state ) { - case RM_STATE_READING_HEADER: - if( $params['allow_sender_header'] && eregi( '^Sender: (.*)', $line, $regs ) ) { - $from = $regs[1]; - $state = RM_STATE_READING_SENDER; - } else if( !$from && eregi( '^From: (.*)', $line, $regs ) ) { - $from = $regs[1]; - $state = RM_STATE_READING_FROM; - } else if( eregi( '^Subject: (.*)', $line, $regs ) ) { - $subject = $regs[1]; - $state = RM_STATE_READING_SUBJECT; - } else if( eregi( '^Content-Type: text/calendar', $line ) ) { - myLog("Found iCal data in message", RM_LOG_DEBUG); - $ical = true; - } - break; - case RM_STATE_READING_FROM: - $from .= $line; - break; - case RM_STATE_READING_SENDER: - $from .= $line; - break; - case RM_STATE_READING_SUBJECT: - $subject .= $line; - break; - } - } - if( fwrite($tmpf, $buffer) === false ) { - exit(EX_TEMPFAIL); - } -} -while (!feof(STDIN)) { - $buffer = fread( STDIN, 8192 ); - if( fwrite($tmpf, $buffer) === false ) { - exit(EX_TEMPFAIL); - } -} -fclose($tmpf); - -//$inputtime->stop(); - -if( !$senderok ) { - if( $ical && $params['allow_outlook_ical_forward'] ) { - require_once('Kolab/Filter/olhacks.php'); - $rc = olhacks_embedical( $fqhostname, $sender, $recipients, $from, $subject, $tmpfname ); - if( PEAR::isError( $rc ) ) { - fwrite(STDOUT,"Filter failed: ".$rc->getMessage()."\n"); - exit(EX_TEMPFAIL); - } else if( $rc === true ) { - exit(0); - } - } else { - $msg = "Invalid From: header. $from looks like a forged sender"; - myLog($msg, RM_LOG_DEBUG); - fwrite(STDOUT,"$msg\n"); - exit(EX_UNAVAILABLE); - } -} - -//$outputtime =& new MyTimer("Output"); -//$outputtime->start(); - -$tmpf = @fopen($tmpfname,"r"); -if( !$tmpf ) { - myLog("Error: Could not open $tempfname for reading: ".php_error(), RM_LOG_ERROR); - exit(EX_TEMPFAIL); -} - -/* TODO: Dont hardcode localhost:10025 */ -$smtp = new KolabSMTP( $params['local_addr'], 10025 ); -if( PEAR::isError( $smtp ) ) { - fwrite(STDOUT, $error->getMessage().", code ".$error->getCode()."\n"); - if( $error->getCode() < 500 ) exit(EX_TEMPFAIL); - else exit(EX_UNAVAILABLE); -} -if( PEAR::isError( $error = $smtp->start($sender,$recipients) ) ) { - fwrite(STDOUT, $error->getMessage().", code ".$error->getCode()."\n"); - if( $error->getCode() < 500 ) exit(EX_TEMPFAIL); - else exit(EX_UNAVAILABLE); +/* Setup the classes */ +if (empty($conf['filter']['error_log'])) { + $conf['filter']['error_log'] = sys_get_temp_dir() . PATH_SEPARATOR . 'kolab-filter.log'; } -$state = RM_STATE_READING_HEADER; -while (!feof($tmpf) && $state != RM_STATE_READING_BODY) { - $buffer = fgets($tmpf, 8192); - if( $rewrittenfrom ) { - if( eregi( '^From: (.*)', $buffer ) ) { - if( PEAR::isError($error = $smtp->data( $rewrittenfrom )) ) { - $str = $error->getMessage().", code ".$error->getCode(); - myLog($str,RM_LOG_ERROR); - fwrite(STDOUT, $str."\n"); - if( $error->getCode() < 500 ) exit(EX_TEMPFAIL); - else exit(EX_UNAVAILABLE); - } - $state = RM_STATE_READING_FROM; - continue; - } else if( $state == RM_STATE_READING_FROM && - ($buffer[0] == ' ' || $buffer[0] == "\t" ) ) { - // Folded From header, ignore - continue; - } - } - if( rtrim( $buffer, "\r\n" ) == '' ) { - $state = RM_STATE_READING_BODY; - } else if( $buffer[0] != ' ' && $buffer[0] != "\t" ) { - $state = RM_STATE_READING_HEADER; - } - if( PEAR::isError($error = $smtp->data( $buffer )) ) { - $str = $error->getMessage().", code ".$error->getCode(); - myLog($str,RM_LOG_ERROR); - fwrite(STDOUT, $str."\n"); - if( $error->getCode() < 500 ) exit(EX_TEMPFAIL); - else exit(EX_UNAVAILABLE); - } -} -while (!feof($tmpf) ) { - $buffer = fread($tmpf, 8192); - $len = strlen($buffer); +$response = &new Response($conf['filter']['error_log']); +$parser = &new Filter_Outgoing(); - /* We can't tolerate that the buffer breaks the data - between \r and \n, so we try to avoid that. The limit - of 100 reads is to battle abuse */ - while( $buffer{$len-1} == "\r" && $len < 8192 + 100 ) { - $buffer .= fread($tmpf,1); - $len++; - } - if( PEAR::isError($error = $smtp->data( $buffer )) ) { - fwrite(STDOUT, $error->getMessage().", code ".$error->getCode()."\n"); - if( $error->getCode() < 500 ) exit(EX_TEMPFAIL); - else exit(EX_UNAVAILABLE); - } -}; +/* Parse the mail and spit out the response */ +$response->handle($parser->parse()); -//myLog("Calling smtp->end()", RM_LOG_DEBUG); -$smtp->end(); -//$outputtime->stop(); -myLog("Kolabfilter successfully completed", RM_LOG_DEBUG); -//$totaltime->stop(); -exit(0); ?> Index: kolabmailboxfilter.php =================================================================== RCS file: /kolabrepository/server/kolab-filter/filter/kolabmailboxfilter.php,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- kolabmailboxfilter.php 8 Oct 2007 15:50:11 -0000 1.2 +++ kolabmailboxfilter.php 26 Nov 2007 16:35:21 -0000 1.3 @@ -29,166 +29,26 @@ * ABOUT * ----- * - * FIXME + * A filter for incoming mail on a Kolab Server. It checks the + * messages for iCal data and handles automatic invitations. * */ -require_once 'PEAR.php'; -require_once 'Kolab/Filter/misc.php'; -require_once 'Kolab/Filter/kolabmailtransport.php'; +/* Load the filter libraries */ +require_once 'Kolab/Filter/Incoming.php'; +require_once 'Kolab/Filter/Response.php'; -// Load our configuration file -$params = array(); +/* Read our configuration */ require_once 'config.php'; -init(); - -define( 'TMPDIR', $params['resmgr_filterdir'] ); -define( 'EX_TEMPFAIL', 75 ); -define( 'EX_UNAVAILABLE', 69 ); - -// Temp file for storing the message -$tmpfname = tempnam( TMPDIR, 'IN.' ); -$tmpf = @fopen($tmpfname, "w"); -if( !$tmpf ) { - myLog("Error: Could not open $tempfname for writing: ".php_error(), RM_LOG_ERROR); - exit(EX_TEMPFAIL); -} - -// Cleanup function -function cleanup() { - global $tmpfname; - file_exists($tmpfname) && unlink($tmpfname); -} -register_shutdown_function( 'cleanup' ); - -$options = parse_args( array( 's', 'r', 'c', 'h' ), $_SERVER['argv']); //getopt("s:r:c:h:"); - -if (!array_key_exists('r', $options) || !array_key_exists('s', $options)) { - fwrite(STDOUT, "Usage is $argv[0] -s sender at domain -r recip at domain\n"); - exit(EX_TEMPFAIL); -} - -$sender = strtolower($options['s']); -$recipients = $options['r']; -$client_address = $options['c']; -$fqhostname = strtolower($options['h']); - -// make sure recipients is an array -if( !is_array($recipients) ) { - $recipients = array( $recipients ); -} - -// make recipients lowercase -for( $i = 0; $i < count($recipients); $i++ ) { - $recipients[$i] = strtolower($recipients[$i]); -} - -myLog("Kolabmailboxfilter starting up, sender=$sender, recipients=".join(',', $recipients) - .", client_address=$client_address", RM_LOG_DEBUG); - -$ical = false; -$add_headers = array(); -$headers_done = false; -while (!feof(STDIN) && !$headers_done) { - $buffer = fgets(STDIN, 8192); - $line = rtrim( $buffer, "\r\n"); - if( $line == '' ) { - // Done with headers - $headers_done = true; - } else if( eregi( '^Content-Type: text/calendar', $line ) ) { - myLog("Found iCal data in message", RM_LOG_DEBUG); - $ical = true; - } - if( fwrite($tmpf, $buffer) === false ) { - exit(EX_TEMPFAIL); - } -} -while (!feof(STDIN)) { - $buffer = fread( STDIN, 8192 ); - if( fwrite($tmpf, $buffer) === false ) { - exit(EX_TEMPFAIL); - } -} -fclose($tmpf); -if( $ical ) { - require_once 'Kolab/Filter/resmgr.php'; - $newrecips = array(); - foreach( $recipients as $recip ) { - myLog("Calling resmgr_filter( $sender, $recip, $tmpfname )", RM_LOG_DEBUG); - $rc = resmgr_filter( $fqhostname, $sender, $recip, $tmpfname ); - if( PEAR::isError( $rc ) ) { - fwrite(STDOUT,"Filter failed: ".$rc->getMessage()."\n"); - exit(EX_TEMPFAIL); - } else if( $rc === true ) { - $newrecips[] = $recip; - } - } - $recipients = $newrecips; - $add_headers[] = "X-Kolab-Scheduling-Message: TRUE"; -} else { - $add_headers[] = "X-Kolab-Scheduling-Message: FALSE"; -} - -// Check if we still have recipients -if( empty($recipients) ) exit(0); - -$tmpf = @fopen($tmpfname,"r"); -if( !$tmpf ) { - myLog("Error: Could not open $tempfname for writing: ".php_error(), RM_LOG_ERROR); - exit(EX_TEMPFAIL); -} -$lmtp = new KolabLMTP( $params['local_addr'] ); -if( PEAR::isError( $lmtp ) ) { - fwrite(STDOUT, $lmtp->getMessage()."\n"); - if( $error->getCode() < 500 ) exit(EX_TEMPFAIL); - else exit(EX_UNAVAILABLE); -} -if( PEAR::isError( $error = $lmtp->start($sender,$recipients) ) ) { - fwrite(STDOUT, $error->getMessage().", code ".$error->getCode()."\n"); - if( $error->getCode() < 500 ) exit(EX_TEMPFAIL); - else exit(EX_UNAVAILABLE); +/* Setup the classes */ +if (empty($conf['filter']['error_log'])) { + $conf['filter']['error_log'] = sys_get_temp_dir() . PATH_SEPARATOR . 'kolab-filter.log'; } -$headers_done = false; -while (!feof($tmpf) && !$headers_done) { - $buffer = fgets($tmpf, 8192); - if( !$headers_done && rtrim( $buffer, "\r\n" ) == '' ) { - $headers_done = true; - foreach( $add_headers as $h ) { - if( PEAR::isError($error = $lmtp->data( "$h\r\n" )) ) { - fwrite(STDOUT, $error->getMessage().", code ".$error->getCode()."\n"); - if( $error->getCode() < 500 ) exit(EX_TEMPFAIL); - else exit(EX_UNAVAILABLE); - } - } - } - //myLog("Calling smtp->data( ".rtrim($buffer)." )", RM_LOG_DEBUG); - if( PEAR::isError($error = $lmtp->data( $buffer )) ) { - fwrite(STDOUT, $error->getMessage().", code ".$error->getCode()."\n"); - if( $error->getCode() < 500 ) exit(EX_TEMPFAIL); - else exit(EX_UNAVAILABLE); - } -} -while (!feof($tmpf) ) { - $buffer = fread($tmpf, 8192); - $len = strlen($buffer); +$response = &new Response($conf['filter']['error_log']); +$parser = &new Filter_Incoming(); - /* We can't tolerate that the buffer breaks the data - between \r and \n, so we try to avoid that. The limit - of 100 reads is to battle abuse */ - while( $buffer{$len-1} == "\r" && $len < 8192 + 100 ) { - $buffer .= fread($tmpf,1); - $len++; - } - if( PEAR::isError($error = $lmtp->data( $buffer )) ) { - fwrite(STDOUT, $error->getMessage().", code ".$error->getCode()."\n"); - if( $error->getCode() < 500 ) exit(EX_TEMPFAIL); - else exit(EX_UNAVAILABLE); - } -}; -//myLog("Calling smtp->end()", RM_LOG_DEBUG); -$lmtp->end(); -myLog("Kolabmailboxfilter successfully completed", RM_LOG_DEBUG); -exit(0); +/* Parse the mail and spit out the response */ +$response->handle($parser->parse()); ?> From cvs at kolab.org Mon Nov 26 17:35:23 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 26 Nov 2007 17:35:23 +0100 (CET) Subject: gunnar: server release-notes.txt,1.178,1.179 Message-ID: <20071126163523.6FE98600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv723 Modified Files: release-notes.txt Log Message: Restructured Kolab_Filter package with the focus on error handling and unit testing. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.178 retrieving revision 1.179 diff -u -d -r1.178 -r1.179 --- release-notes.txt 23 Nov 2007 13:39:32 -0000 1.178 +++ release-notes.txt 26 Nov 2007 16:35:21 -0000 1.179 @@ -61,6 +61,10 @@ kolab/issue2134 ([Horde] Unable to send message with attachments) kolab/issue2236 (Apache UID access broken) + - kolab-filter-2.2.beta2-2007???? + + Adapted to the restructured php-kolab/Kolab_Filter package. + - horde-framework-kolab-3.2_ALPHA-2007???? New functionality required for kolab-freebusy. @@ -107,6 +111,9 @@ A fully restructured free/busy with the most recent free/busy concept implemented. + + Restructured Kolab_Filter package with the focus on error + handling and unit testing. Changes between 2.2-beta-1 and 2.2-beta-2: From cvs at kolab.org Mon Nov 26 17:35:23 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 26 Nov 2007 17:35:23 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter ChangeLog, 1.1, 1.2 package.xml.in, 1.2, 1.3 Message-ID: <20071126163523.8F276600D6F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter In directory doto:/tmp/cvs-serv723/php-kolab/Kolab_Filter Modified Files: ChangeLog package.xml.in Log Message: Restructured Kolab_Filter package with the focus on error handling and unit testing. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/ChangeLog,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ChangeLog 13 Aug 2007 14:14:13 -0000 1.1 +++ ChangeLog 26 Nov 2007 16:35:21 -0000 1.2 @@ -0,0 +1,7 @@ +2007-11-26 Gunnar Wrobel

    + + * Filter/*: + + Restructured package with the focus on error handling and unit + testing. + Index: package.xml.in =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/package.xml.in,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- package.xml.in 16 Aug 2007 12:16:51 -0000 1.2 +++ package.xml.in 26 Nov 2007 16:35:21 -0000 1.3 @@ -89,8 +89,11 @@

    - - + + + + + From cvs at kolab.org Mon Nov 26 17:35:23 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 26 Nov 2007 17:35:23 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/tests/tmp .cvsignore,NONE,1.1 Message-ID: <20071126163523.85FCC600D6D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/tests/tmp In directory doto:/tmp/cvs-serv723/php-kolab/Kolab_Filter/tests/tmp Added Files: .cvsignore Log Message: Restructured Kolab_Filter package with the focus on error handling and unit testing. --- NEW FILE: .cvsignore --- * From cvs at kolab.org Mon Nov 26 17:35:23 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 26 Nov 2007 17:35:23 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/Filter Filter.php, NONE, 1.1 Incoming.php, NONE, 1.1 Outgoing.php, NONE, 1.1 Response.php, NONE, 1.1 Transport.php, NONE, 1.1 kolabmailtransport.php, 1.2, NONE misc.php, 1.2, NONE Message-ID: <20071126163523.9744F600D65@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/Filter In directory doto:/tmp/cvs-serv723/php-kolab/Kolab_Filter/Filter Added Files: Filter.php Incoming.php Outgoing.php Response.php Transport.php Removed Files: kolabmailtransport.php misc.php Log Message: Restructured Kolab_Filter package with the focus on error handling and unit testing. --- NEW FILE: Filter.php --- _transport = $transport; $this->_startts = $this->_microtime_float(); if (!empty($conf['filter']['tempdir'])) { $this->_tmpdir = $conf['filter']['tempdir']; } else { $this->_tmpdir = sys_get_temp_dir(); } /* This is used as the default domain for unqualified adresses */ global $_SERVER; if (!array_key_exists('SERVER_NAME', $_SERVER)) { if (!empty($conf['filter']['email_domain'])) { $_SERVER['SERVER_NAME'] = $conf['filter']['email_domain']; } else { $_SERVER['SERVER_NAME'] = 'localhost'; } } if (!array_key_exists('REMOTE_ADDR', $_SERVER)) { if (!empty($conf['filter']['server'])) { $_SERVER['REMOTE_ADDR'] = $conf['filter']['server']; } else { $_SERVER['REMOTE_ADDR'] = 'localhost'; } } if (!array_key_exists('REMOTE_HOST', $_SERVER)) { if (!empty($conf['filter']['server'])) { $_SERVER['REMOTE_HOST'] = $conf['filter']['server']; } else { $_SERVER['REMOTE_HOST'] = 'localhost'; } } } function _start() { /* Setup the temporary storage */ $result = $this->_initTmp(); if (is_a($result, 'PEAR_Error')) { return $result; } /* Parse our arguments */ $result = $this->_parseArgs(); if (is_a($result, 'PEAR_Error')) { return $result; } Horde::logMessage(sprintf(_("%s starting up (sender=%s, recipients=%s, client_address=%s)"), get_class($this), $this->_sender, join(', ',$this->_recipients), $this->_client_address), __FILE__, __LINE__, PEAR_LOG_DEBUG); } function _stop() { return $this->_microtime_float() - $this->_startts; } function _parseArgs() { $args = $_SERVER['argv']; $opts = array( 's', 'r', 'c', 'h', 'u' ); $options = array(); for ($i = 0; $i < count($args); ++$i) { $arg = $args[$i]; if ($arg[0] == '-') { if (in_array($arg[1], $opts)) { $val = array(); $i++; while($i < count($args) && $args[$i][0] != '-') { $val[] = $args[$i]; $i++; } $i--; if (array_key_exists($arg[1], $options) && is_array($options[$arg[1]])) { $options[$arg[1]] = array_merge( (array)$options[$arg[1]], (array)$val ); } else if (count($val) == 1) { $options[$arg[1]] = $val[0]; } else { $options[$arg[1]] = $val; } } } } if (!array_key_exists('r', $options) || !array_key_exists('s', $options)) { return PEAR::raiseError(sprintf(_("Usage is %s -s sender at domain -r recipient at domain"), $args[0]), OUT_STDOUT || ERR_TEMPFAIL); } $this->_sender = strtolower($options['s']); $recipients = $options['r']; /* make sure recipients is an array */ if (!is_array($recipients)) { $recipients = array($recipients); } /* make recipients lowercase */ for ($i = 0; $i < count($recipients); $i++) { $recipients[$i] = strtolower($recipients[$i]); } $this->_recipients = $recipients; if (!empty($options['c'])) { $this->_client_address = $options['c']; } if (!empty($options['h'])) { $this->_fqhostname = strtolower($options['h']); } if (!empty($options['u'])) { $this->_sasl_username = strtolower($options['u']); } } function _initTmp() { /* Temp file for storing the message */ $this->_tmpfile = @tempnam($this->_tmpdir, 'IN.' . get_class($this) . '.'); $this->_tmpfh = @fopen($this->_tmpfile, "w"); if( !$this->_tmpfh ) { $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not open %s for writing: %s"), $this->_tmpfile, $msg), OUT_LOG || ERR_TEMPFAIL); } register_shutdown_function(array($this, '_cleanupTmp')); } function _cleanupTmp() { if (@file_exists($this->_tmpfile)) { @unlink($this->_tmpfile); } } function _microtime_float() { list($usec, $sec) = explode(" ", microtime()); return (float) $usec + (float) $sec; } function &_getTransport($host, $port) { $class = 'Transport_' . $this->_transport; if (class_exists($class)) { $transport = &new $class($host, $port); return $transport; } return PEAR::raiseError(sprintf(_("No such class \"%s\""), $class), OUT_LOG || ERR_TEMPFAIL); } function _rewriteCode($result) { if ($result->getCode() < 500) { $code = ERR_TEMPFAIL; } else { $code = ERR_UNAVAILABLE; } $append = sprintf(_(", original code %s"), $result->getCode()); $result->message = $result->getMessage() . $append; $result->code = OUT_LOG || OUT_STDOUT || $code; return $result; } } ?> --- NEW FILE: Incoming.php --- _start(); if (is_a($result, 'PEAR_Error')) { return $result; } $ical = false; $add_headers = array(); $headers_done = false; while (!feof($inh) && !$headers_done) { $buffer = fgets($inh, 8192); $line = rtrim( $buffer, "\r\n"); if ($line == '') { /* Done with headers */ $headers_done = true; } else if(eregi('^Content-Type: text/calendar', $line)) { Horde::logMessage(_("Found iCal data in message"), __FILE__, __LINE__, PEAR_LOG_DEBUG); $ical = true; } if (@fwrite($this->_tmpfh, $buffer) === false) { $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not write to %s: %s"), $this->_tmpfile, $msg), OUT_LOG || ERR_TEMPFAIL); } } while (!feof($inh)) { $buffer = fread($inh, 8192); if (@fwrite($this->_tmpfh, $buffer) === false) { $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not write to %s: %s"), $this->_tmpfile, $msg), OUT_LOG || ERR_TEMPFAIL); } } if (@fclose($this->_tmpfh) === false) { $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Failed closing %s: %s"), $this->_tmpfile, $msg), OUT_LOG || ERR_TEMPFAIL); } if ($ical) { require_once 'Kolab/Filter/resmgr.php'; $newrecips = array(); foreach ($this->_recipients as $recip) { Horde::logMessage(sprintf(_("Calling resmgr_filter(%s, %s, %s, %s)"), $this->_fqhostname, $this->_sender, $this->_recip, $this->tmpfile), PEAR_LOG_DEBUG); $rc = resmgr_filter($this->_fqhostname, $this->_sender, $recip, $this->_tmpfile); if (is_a($rc, 'PEAR_Error')) { fwrite(STDOUT, sprintf(_("Filter failed: %s\n"), $rc->getMessage())); exit(EX_TEMPFAIL); } else if ($rc === true) { $newrecips[] = $recip; } } $this->_recipients = $newrecips; $this->_add_headers[] = "X-Kolab-Scheduling-Message: TRUE"; } else { $this->_add_headers[] = "X-Kolab-Scheduling-Message: FALSE"; } /* Check if we still have recipients */ if (empty($this->_recipients)) { Horde::logMessage(_("No recipients left."), __FILE__, __LINE__, PEAR_LOG_DEBUG); return; } else { $result = $this->deliver(); if (is_a($result, 'PEAR_Error')) { return $result; } } Horde::logMessage(_("Filter_Incoming successfully completed."), __FILE__, __LINE__, PEAR_LOG_DEBUG); } function deliver() { global $conf; if (!empty($conf['filter']['lmtp_host'])) { $host = $conf['filter']['lmtp_host']; } else { $host = 'localhost'; } if (!empty($conf['filter']['lmtp_port'])) { $port = $conf['filter']['lmtp_port']; } else { $port = 2003; } $transport = $this->_getTransport($host, $port); $tmpf = @fopen($this->_tmpfile, 'r'); if (!$tmpf) { $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not open %s for writing: %s"), $this->_tmpfile, $msg), OUT_LOG || ERR_TEMPFAIL); } $result = $transport->start($this->_sender, $this->_recipients); if (is_a($result, 'PEAR_Error')) { return $this->_rewriteCode($result); } $headers_done = false; while (!feof($tmpf) && !$headers_done) { $buffer = fgets($tmpf, 8192); if (!$headers_done && rtrim($buffer, "\r\n") == '') { $headers_done = true; foreach ($this->_add_headers as $h) { $result = $transport->data("$h\r\n"); if (is_a($result, 'PEAR_Error')) { return $this->_rewriteCode($result); } } } $result = $transport->data($buffer); if (is_a($result, 'PEAR_Error')) { return $this->_rewriteCode($result); } } while (!feof($tmpf)) { $buffer = fread($tmpf, 8192); $len = strlen($buffer); /* We can't tolerate that the buffer breaks the data * between \r and \n, so we try to avoid that. The limit * of 100 reads is to battle abuse */ while ($buffer{$len-1} == "\r" && $len < 8192 + 100) { $buffer .= fread($tmpf, 1); $len++; } $result = $transport->data($buffer); if (is_a($result, 'PEAR_Error')) { return $this->_rewriteCode($result); } } return $transport->end(); } } ?> --- NEW FILE: Outgoing.php --- _start(); if (is_a($result, 'PEAR_Error')) { return $result; } $ical = false; $from = false; $subject = false; $senderok = true; $rewrittenfrom = false; $state = RM_STATE_READING_HEADER; while (!feof($inh) && $state != RM_STATE_READING_BODY) { $buffer = fgets($inh, 8192); $line = rtrim($buffer, "\r\n"); if ($line == '') { /* Done with headers */ $state = RM_STATE_READING_BODY; if ($from && $verify_from_header) { $rc = verify_sender($this->_sasl_username, $this->_sender, $from, $this->_client_address); if (is_a($rc, 'PEAR_Error')) { return $this->_rewriteCode($rc); } else if ($rc === true) { /* All OK, do nothing */ } else if ($rc === false) { /* Reject! */ $senderok = false; } else if (is_string($rc)) { /* Rewrite from */ if (strpos($from, $rc) === false) { Horde::logMessage(sprintf(_("Rewriting '%s' to '%s'"), $from, $to), __FILE__, __LINE__, PEAR_LOG_DEBUG); $rewrittenfrom = "From: $rc\r\n"; } } } } else { if ($line[0] != ' ' && $line[0] != "\t") { $state = RM_STATE_READING_HEADER; } switch( $state ) { case RM_STATE_READING_HEADER: if ($allow_sender_header && eregi('^Sender: (.*)', $line, $regs)) { $from = $regs[1]; $state = RM_STATE_READING_SENDER; } else if (!$from && eregi('^From: (.*)', $line, $regs)) { $from = $regs[1]; $state = RM_STATE_READING_FROM; } else if (eregi('^Subject: (.*)', $line, $regs)) { $subject = $regs[1]; $state = RM_STATE_READING_SUBJECT; } else if (eregi('^Content-Type: text/calendar', $line)) { Horde::logMessage(_("Found iCal data in message"), __FILE__, __LINE__, PEAR_LOG_DEBUG); $ical = true; } break; case RM_STATE_READING_FROM: $from .= $line; break; case RM_STATE_READING_SENDER: $from .= $line; break; case RM_STATE_READING_SUBJECT: $subject .= $line; break; } } if (@fwrite($this->_tmpfh, $buffer) === false) { $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not write to %s: %s"), $this->_tmpfile, $msg), OUT_LOG || ERR_TEMPFAIL); } } while (!feof($inh)) { $buffer = fread($inh, 8192); if (@fwrite($this->_tmpfh, $buffer) === false) { $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not write to %s: %s"), $this->_tmpfile, $msg), OUT_LOG || ERR_TEMPFAIL); } } if (@fclose($this->_tmpfh) === false) { $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Failed closing %s: %s"), $this->_tmpfile, $msg), OUT_LOG || ERR_TEMPFAIL); } if (!$senderok) { if ($ical && $allow_outlook_ical_forward ) { require_once('Kolab/Filter/olhacks.php'); $rc = olhacks_embedical($this->_fqhostname, $this->_sender, $this->_recipients, $from, $subject, $this->_tmpfname); if (is_a($rc, 'PEAR_Error')) { return $this->_rewriteCode($rc); } else if ($rc === true) { return; } } else { return PEAR::raiseError(sprintf(_("Invalid From: header. %s looks like a forged sender"), $from), OUT_LOG || OUT_STDOUT || ERR_UNAVAILABLE); } } $result = $this->deliver($rewrittenfrom); if (is_a($result, 'PEAR_Error')) { return $result; } Horde::logMessage(_("Filter_Outgoing successfully completed."), __FILE__, __LINE__, PEAR_LOG_DEBUG); } function deliver($rewrittenfrom) { global $conf; if (!empty($conf['filter']['smtp_host'])) { $host = $conf['filter']['smtp_host']; } else { $host = 'localhost'; } if (!empty($conf['filter']['smtp_port'])) { $port = $conf['filter']['smtp_port']; } else { $port = 10025; } $transport = $this->_getTransport($host, $port); $tmpf = @fopen($this->_tmpfile, 'r'); if (!$tmpf) { $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not open %s for writing: %s"), $this->_tmpfile, $msg), OUT_LOG || ERR_TEMPFAIL); } $result = $transport->start($this->_sender, $this->_recipients); if (is_a($result, 'PEAR_Error')) { return $this->_rewriteCode($result); } $state = RM_STATE_READING_HEADER; while (!feof($tmpf) && $state != RM_STATE_READING_BODY) { $buffer = fgets($tmpf, 8192); if ($rewrittenfrom) { if (eregi( '^From: (.*)', $buffer)) { $result = $transport->data($rewrittenfrom); if (is_a($result, 'PEAR_Error')) { return $this->_rewriteCode($result); } $state = RM_STATE_READING_FROM; continue; } else if ($state == RM_STATE_READING_FROM && ($buffer[0] == ' ' || $buffer[0] == "\t")) { /* Folded From header, ignore */ continue; } } if (rtrim($buffer, "\r\n") == '') { $state = RM_STATE_READING_BODY; } else if ($buffer[0] != ' ' && $buffer[0] != "\t") { $state = RM_STATE_READING_HEADER; } $result = $transport->data($buffer); if (is_a($result, 'PEAR_Error')) { return $this->_rewriteCode($result); } } while (!feof($tmpf)) { $buffer = fread($tmpf, 8192); $len = strlen($buffer); /* We can't tolerate that the buffer breaks the data * between \r and \n, so we try to avoid that. The limit * of 100 reads is to battle abuse */ while ($buffer{$len-1} == "\r" && $len < 8192 + 100) { $buffer .= fread($tmpf,1); $len++; } $result = $transport->data($buffer); if (is_a($result, 'PEAR_Error')) { return $this->_rewriteCode($result); } } return $transport->end(); } } // Cleanup function function is_my_domain( $addr ) { global $params; if( is_array($params['email_domain']) ) { $domains = $params['email_domain']; } else { $domains = array($params['email_domain']); } $adrs = imap_rfc822_parse_adrlist($addr, $params['email_domain']); foreach ($adrs as $adr) { $adrdom = $adr->host; if( empty($adrdom) ) continue; foreach( $domains as $dom ) { if( $dom == $adrdom ) return true; if( $params['verify_subdomains'] && substr($adrdom, -strlen($dom)-1) == ".$dom" ) return true; } } return false; } /** Returns a list of allowed email addresses for user $sasluser or a PEAR_Error object if something croaked. */ function addrs_for_uid( $sasluser ) { global $params; /* Connect to the LDAP server and retrieve the users' allowed email addresses */ $ldap = ldap_connect($params['ldap_uri']); if (!ldap_bind($ldap, $params['bind_dn'], $params['bind_pw'])) { myLog('Unable to contact LDAP server: ' . ldap_error($ldap)); return new PEAR_Error('Unable to contact LDAP server: ' . ldap_error($ldap)); } $filter = "(&(objectClass=kolabInetOrgPerson)(|(mail=$sasluser)(uid=$sasluser)))"; $result = ldap_search($ldap, $params['base_dn'], $filter, array("dn", "mail", "alias" )); if (!$result) { myLog('Unable to perform LDAP search: ' . ldap_error($ldap)); return new PEAR_Error('Unable to perform LDAP search: ' . ldap_error($ldap)); } $entries = ldap_get_entries($ldap, $result); if ($entries['count'] != 1) { myLog($entries['count']." objects returned for uid $sasluser"); return new PEAR_Error("Temporary LDAP error, unable to look up user $sasluser"); } unset($entries[0]['mail']['count']); unset($entries[0]['alias']['count']); $addrs = array_merge((array) $entries[0]['mail'],(array) $entries[0]['alias']); $mail = $entries[0]['mail'][0]; ldap_free_result($result); $filter = "(&(objectClass=kolabInetOrgPerson)(kolabDelegate=$mail))"; $result = ldap_search($ldap, $params['base_dn'], $filter, array("dn", "mail" )); if (!$result) { myLog('Unable to perform LDAP search: ' . ldap_error($ldap)); return new PEAR_Error('Unable to perform LDAP search: ' . ldap_error($ldap)); } $entries = ldap_get_entries($ldap, $result); unset( $entries['count'] ); foreach( $entries as $adr ) { if( $adr['mail']['count'] > 0 ) { unset($adr['mail']['count']); $addrs = array_merge((array) $addrs,(array) $adr['mail']); } } ldap_free_result($result); ldap_close($ldap); #myLog("Found addresses ".print_r($addrs,true)." for user $sasluser", RM_LOG_DEBUG); return $addrs; } /** Returns the format string used to rewrite the From header for untrusted messages */ function get_untrusted_subject_insert($sasluser,$sender) { global $params; if( $sasluser ) { if( array_key_exists('untrusted_subject_insert', $params) ) { $fmt = $params['untrusted_subject_insert']; } else { $fmt = "(UNTRUSTED, sender is <%s>)"; } } else { if( array_key_exists('unauthenticated_subject_insert', $params) ) { $fmt = $params['unauthenticated_subject_insert']; } else { $fmt = "(UNTRUSTED, sender <%s> is not authenticated)"; } } return sprintf($fmt,$sender); } /** Check that the From header is not trying to impersonate a valid user that is not $sasluser. Returns one of: * True if From can be accepted * False if From must be rejected * A string with a corrected From header that makes From acceptable * A PEAR_Error object if something croaked */ function verify_sender( $sasluser, $sender, $fromhdr, $client_addr ) { global $params; /* Allow anything from localhost and fellow Kolab-hosts */ if( $client_addr == $params['local_addr'] ) return true; $kolabhosts = split(',', $params['kolabhosts'] ); $kolabhosts = array_map( "gethostbyname", $kolabhosts ); if( array_search( $client_addr, $kolabhosts ) !== false ) return true; if( is_array($params['email_domain']) ) { $domains = $params['email_domain']; } else { $domains = array($params['email_domain']); } if( $sasluser ) { if( PEAR::isError($allowed_addrs = addrs_for_uid($sasluser)) ) { myLog("Error reading allowed addresses for $sasluser: ".$allowed_addrs->getMessage(), RM_LOG_ERROR); return $allowed_addrs; } } else { $allowed_addrs = false; } $untrusted = get_untrusted_subject_insert($sasluser,$sender); $adrs = imap_rfc822_parse_adrlist($fromhdr, $params['email_domain'][0]); foreach ($adrs as $adr) { $from = $adr->mailbox.'@'.$adr->host; $fromdom = $adr->host; if( $sasluser ) { if( !in_array( strtolower($from), $allowed_addrs ) ) { myLog("$from is not an allowed From address for $sasluser", RM_LOG_DEBUG); return false; } } else { foreach( $domains as $domain ) { if( strtolower($fromdom) == $domain || ( $params['verify_subdomains'] && substr($fromdom, -strlen($domain)-1) == ".$domain" ) ) { if( $params['reject_forged_from_header'] ) { myLog("$from is not an allowed From address for unauthenticated users", RM_LOG_DEBUG); return false; } else { /* Rewrite */ myLog("$from is not an allowed From address for unauthenticated users, rewriting", RM_LOG_DEBUG); if( strpos( $fromhdr, $untrusted )===false ) { return '"'.str_replace(array("\\",'"'),array("\\\\",'\"'),$adr->personal).' '.$untrusted.'" '.'<'.$from.'>'; } else { return true; } } } } } } /* All seems OK */ return true; /* TODO: What do we do about subdomains? */ /* $senderdom = substr(strrchr($sender, '@'), 1); foreach( $domains as $domain ) { if( $params['verify_subdomains'] ) { if( ($senderdom == $domain || $fromdom == $domain || substr($senderdom, -strlen($domain)-1) == ".$domain" || substr($fromdom, -strlen($domain)-1) == ".$domain" ) && $sender != $from ) { return false; } } else { if( ($senderdom == $domain || $fromdom == $domain ) && $sender != $from ) { return false; } } } } return true; */ } ?> --- NEW FILE: Response.php --- getMessage(); $code = $result->getCode(); if ($code && OUT_STDOUT) { fwrite(STDOUT, $msg); } if ($code && OUT_LOG) { $frame = $result->getBacktrace(2); Horde::logMessage($msg, $frame['file'], $frame['line']); } // FIXME: Add a userinfo handler in case there were multiple // combined errors if ($code && ERR_TEMPFAIL) { exit(EX_TEMPFAIL); } else if ($code && ERR_UNAVAILABLE) { exit(EX_UNAVAILABLE); } else { exit(0); } } } ?> --- NEW FILE: Transport.php --- host = $host; $this->port = $port; $this->transport = false; } function &createTransport() { return PEAR::raiseError(_("Abstract method Transport::createTransport() called!")); } function start($sender, $recips) { $transport = $this->createTransport(); if (is_a($transport, 'PEAR_Error')) { return $transport; } $this->transport = $transport; $myclass = get_class($this->transport); $this->got_newline = true; $result = $this->transport->connect(); if (is_a($result, 'PEAR_Error')) { return $result; } $result = $this->transport->mailFrom($sender); if (is_a($result, 'PEAR_Error')) { $resp = $this->transport->getResponse(); return PEAR::raiseError(sprintf(_("Failed to set sender: %s, code=%s"), $resp[1], $resp[0]), $resp[0]); } if (!is_array($recips)) { $recips = array($recips); } $reciperrors = array(); foreach ($recips as $recip) { $result = $this->transport->rcptTo($recip); if (is_a($result, 'PEAR_Error')) { $resp = $this->transport->getResponse(); $reciperrors[] = PEAR::raiseError(sprintf(_("Failed to set recipient: %s, code=%s"), $resp[1], $resp[0]), $resp[0]); } } if (count($reciperrors) == count($recips)) { /* OK, all failed, just give up */ if (count($reciperrors) == 1) { /* Only one failure, just return that */ return $reciperrors[0]; } /* Multiple errors */ return $this->createErrorObject($reciperrors, _("Delivery to all recipients failed!")); } $result = $this->transport->_put('DATA'); if (is_a($result, 'PEAR_Error')) { return $result; } $result = $this->transport->_parseResponse(354); if (is_a($result, 'PEAR_Error')) { return $result; } if (!empty($reciperrors)) { return $this->createErrorObject($reciperrors, _("Delivery to some recipients failed!")); } return true; } // Encapsulate multiple errors in one function createErrorObject($reciperrors, $msg = null) { /* Return the lowest errorcode to not bounce more * than we have to */ if ($msg == null) { $msg = 'Delivery to recipients failed.'; } $code = 1000; foreach ($reciperrors as $err) { if ($err->code < $code) { $code = $err->code; } } return new PEAR_Error($msg, $code, null, null, $reciperrors); } /* Modified implementation from Net_SMTP that supports * dotstuffing even when getting the mail line-by line */ function quotedataline(&$data) { /* * Change Unix (\n) and Mac (\r) linefeeds into Internet-standard CRLF * (\r\n) linefeeds. */ $data = preg_replace(array('/(?got_newline && $data[0] == '.') { $data = '.'.$data; } $data = str_replace("\n.", "\n..", $data); $len = strlen($data); if ($len > 0) { $this->got_newline = ( $data[$len-1] == "\n" ); } } function data($data) { $this->quotedataline($data); $result = $this->transport->_send($data); if (is_a($result, 'PEAR_Error')) { return $result; } return true; } function end() { if ($this->got_newline) { $dot = ".\r\n"; } else { $dot = "\r\n.\r\n"; } $result = $this->transport->_send($dot); if (is_a($result, 'PEAR_Error')) { return $result; } $result = $this->transport->_parseResponse(250); if (is_a($result, 'PEAR_Error')) { return $result; } $this->transport->disconnect(); $this->transport = false; return true; } } class Transport_LMTP extends Transport { function Transport_LMTP($host = '127.0.0.1', $port = 2003) { $this->Transport($host,$port); } function &createTransport() { require_once 'Net/LMTP.php'; $transport = &new Net_LMTP($this->host, $this->port); return $transport; } } class Transport_SMTP extends Transport { function Transport_SMTP($host = '127.0.0.1', $port = 25) { $this->Transport($host,$port); } function &createTransport() { require_once 'Net/SMTP.php'; $transport = &new Net_SMTP($this->host, $this->port); return $transport; } } class StdOutWrapper { function connect() { return true; } function disconnect() { return true; } function mailFrom($sender) { return fwrite(STDOUT, sprintf(_("Mail from sender: %s\n"), $sender)); } function rcptTo($recipient) { return fwrite(STDOUT, sprintf(_("Mail to recipient: %s\n"), $recipient)); } function _put($cmd) { return true; } function _parseResponse($code) { return true; } function _send($data) { return fwrite(STDOUT, $data); } } class Transport_StdOut extends Transport { function Transport_SMTP($host = 'irrelevant', $port = 0) { } function &createTransport() { $transport = &new StdOutWrapper(); return $transport; } } ?> --- kolabmailtransport.php DELETED --- --- misc.php DELETED --- From cvs at kolab.org Tue Nov 27 08:30:27 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 08:30:27 +0100 (CET) Subject: gunnar: server/kolab-filter/filter config.php,1.4,1.5 Message-ID: <20071127073027.04770600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-filter/filter In directory doto:/tmp/cvs-serv5494/kolab-filter/filter Modified Files: config.php Log Message: Continued fixing of kolab-filter. Index: config.php =================================================================== RCS file: /kolabrepository/server/kolab-filter/filter/config.php,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- config.php 26 Nov 2007 16:35:21 -0000 1.4 +++ config.php 27 Nov 2007 07:30:24 -0000 1.5 @@ -36,22 +36,11 @@ $conf = array(); -/* Horde::Log configuration */ -$conf['log']['enabled'] = true; -$conf['log']['priority'] = PEAR_LOG_DEBUG; // Leave this on DEBUG for now. We just restructured the package... -$conf['log']['type'] = 'file'; -$conf['log']['name'] = '/kolab/var/kolab-filter/log/filter.log'; -$conf['log']['ident'] = 'Kolab Filter'; -$conf['log']['params']['append'] = true; - -/* PHP error logging */ -$conf['filter']['error_log'] = '/kolab/var/kolab-filter/log/php-error.log'; - -/* Temporary data storage for the scripts */ -$conf['filter']['tempdir'] = ''; +/* Cyrus server connection string */ +$conf['filter']['imap_server'] = 'localhost'; -/* What is the address of this host? */ -$conf['filter']['server'] = 'localhost'; +/* Local IP address of the mailserver for bypassing content filters */ +$conf['filter']['local_addr'] = 'localhost'; /* What is our default mail domain? This is used if any users do not * have '@domain' specified after their username as part of their @@ -59,102 +48,106 @@ */ $conf['filter']['email_domain'] = 'example.com'; -/* LMTP settings (Cyrus IMAPd usually offers LMTP on port 2003) */ -$conf['filter']['lmpt_host'] = 'localhost'; -$conf['filter']['lmpt_port'] = 2003; +/* List of kolab hosts that are privileged */ +$conf['filter']['kolabhosts'] = 'one.example.com,two.example.com,three.example.com'; -/* SMTP settings (Kolab Postfix usually offers reinjection port on - * 10025) +/* Are we using virtual domains with Cyrus? */ +$conf['filter']['virtual_domains'] = true; + +/* Should we append domains to mailbox URIs? This only applies when + * virtual_domains is true, and when using manager accounts. */ -$conf['filter']['smpt_host'] = 'localhost'; -$conf['filter']['smpt_port'] = 10025; +$conf['filter']['append_domains'] = false; /* Should we make sure that the sender and From header match for mail * that origins on this server? */ $conf['filter']['verify_from_header'] = true; +/* Should we perform this check on mail from our + * subdomains too? + */ +$conf['filter']['verify_subdomains'] = true; + /* Should the Sender: header be used over From: if present? */ $conf['filter']['allow_sender_header'] = true; +/* Should reject messages with From headers that dont match + * the envelope? Default is to rewrite the header + */ +$conf['filter']['reject_forged_from_header'] = false; + +/* Text to be inserted in From: when rewriting untrusted mails */ +// $conf['filter']['untrusted_subject_insert'] = "(UNTRUSTED, sender is <%s>)"; +// $conf['filter']['unauthenticated_subject_insert'] = "(UNTRUSTED, sender <%s> is not authenticated)"; + /* Should we allow forwarded ical messages from Outlook * by encapsulating them in a MIME multipart */ $conf['filter']['allow_outlook_ical_forward'] = true; +/* What is the address of the LDAP server address where user objects + * reside + */ +$conf['filter']['ldap_uri'] = 'ldaps://ldap.example.com'; +/* What is the Base DN of our LDAP database? */ +$conf['filter']['base_dn'] = 'dc=example,dc=com'; -// List of kolab hosts that are privileged -$conf['kolabhosts'] = 'one.example.com,two.example.com,three.example.com'; - -// Are we using virtual domains with Cyrus? -$conf['virtual_domains'] = true; - -// Should we append domains to mailbox URIs? This only applies when -// virtual_domains is true, and when using manager accounts. -$conf['append_domains'] = false; - -// Should we perform this check on mail from our -// subdomains too? -$conf['verify_subdomains'] = true; - -// Should reject messages with From headers that dont match -// the envelope? Default is to rewrite the header -$conf['reject_forged_from_header'] = false; - -// Text to be inserted in From: when rewriting untrusted mails -$conf['untrusted_subject_insert'] = "(UNTRUSTED, sender is <%s>)"; -$conf['unauthenticated_subject_insert'] = "(UNTRUSTED, sender <%s> is not authenticated)"; - -// LDAP data -// What is the address of the LDAP server address where user objects reside -$conf['ldap_uri'] = 'ldaps://ldap.example.com'; - -// What is the Base DN of our LDAP database? -$conf['base_dn'] = 'dc=example,dc=com'; +/* What DN should we use to bind to the LDAP server? */ +$conf['filter']['bind_dn'] = 'cn=nobody,cn=internal,dc=example,dc=com'; -// What DN should we use to bind to the LDAP server? -$conf['bind_dn'] = 'cn=nobody,cn=internal,dc=example,dc=com'; +/* What password should we use with the above DN when binding? */ +$conf['filter']['bind_pw'] = 'xyz'; -// What password should we use with the above DN when binding? -$conf['bind_pw'] = 'xyz'; +/* What account should we use to read/write calendar data? This + * account should have access to the calendar mailbox of all + * resource/group mailboxes. + */ +$conf['filter']['calendar_user'] = 'calendar@' . $conf['filter']['email_domain']; +$conf['filter']['calendar_pass'] = 'zyx'; +/* Filename of private key used to decrypt password from LDAP */ +$conf['filter']['priv_key_file'] = '@sysconfdir@/kolab/res_priv.pem'; -// What account should we use to read/write calendar data? This account should -// have access to the calendar mailbox of all resource/group mailboxes. -$conf['calendar_user'] = 'calendar@'.$conf['email_domain']; -$conf['calendar_pass'] = 'zyx'; +/* What is the name of the users' calendar mailbox? This is only used + * when the user does not already have a primary calendar folder + * (search via Kolab annotation) + */ +$conf['filter']['calendar_store'] = 'Calendar'; -// Filename of private key used to decrypt password from LDAP -$conf['priv_key_file'] = '@sysconfdir@/kolab/res_priv.pem'; +/* Where can we get free/busy information from? */ +$conf['filter']['freebusy_url'] = 'http://kolab.example.com/freebusy/${USER}.xfb'; + +/* PFB url to trigger creation of pfb */ +$conf['filter']['pfb_trigger_url'] = 'http://@@@fqdnhostname@@@/freebusy/trigger/${USER}/${FOLDER}.xpfb'; -// What is the name of the users' calendar mailbox? -// This is only used when the user does not already have -// a primary calendar folder (search via Kolab annotation) -$conf['calendar_store'] = 'Calendar'; +/* Temporary data storage for the scripts */ +$conf['filter']['tempdir'] = ''; -// Where can we get free/busy information from? -$conf['freebusy_url'] = 'http://kolab.example.com/freebusy/${USER}.xfb'; - -// PFB url to trigger creation of pfb -$conf['pfb_trigger_url'] = 'http://@@@fqdnhostname@@@/freebusy/trigger/${USER}/${FOLDER}.xpfb'; +/* What is the address of this host? */ +$conf['filter']['server'] = 'localhost'; -// Where are we logging to? -$conf['log'] = 'file:@resmgr_logfile@'; // File... -// $conf['log'] = 'syslog:cons, pid'; // Or syslog... +/* LMTP settings (Cyrus IMAPd usually offers LMTP on port 2003) */ +$conf['filter']['lmpt_host'] = 'localhost'; +$conf['filter']['lmpt_port'] = 2003; -// What level of output should we log? Higher levels give more verbose output. -// One of: RM_LOG_SILENT; RM_LOG_ERROR; RM_LOG_WARN; RM_LOG_INFO or RM_LOG_DEBUG. -$conf['log_level'] = RM_LOG_DEBUG; +/* SMTP settings (Kolab Postfix usually offers reinjection port on + * 10025) + */ +$conf['filter']['smpt_host'] = 'localhost'; +$conf['filter']['smpt_port'] = 10025; -// Activate if you wish to use the new horde framework -// (horde-framework-kolab) package instead of the old code in -// kolab-horde-framework. This is still untested and considered -// UNSAFE! -$conf['use_new_horde'] = false; +/* PHP error logging */ +$conf['filter']['error_log'] = '/kolab/var/kolab-filter/log/php-error.log'; -// FIXME: HACK -$params = $conf; +/* Horde::Log configuration */ +$conf['log']['enabled'] = true; +$conf['log']['priority'] = PEAR_LOG_DEBUG; // Leave this on DEBUG for now. We just restructured the package... +$conf['log']['type'] = 'file'; +$conf['log']['name'] = '/kolab/var/kolab-filter/log/filter.log'; +$conf['log']['ident'] = 'Kolab Filter'; +$conf['log']['params']['append'] = true; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // From cvs at kolab.org Tue Nov 27 08:30:27 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 08:30:27 +0100 (CET) Subject: gunnar: server/kolabd/kolabd ChangeLog,1.120,1.121 Message-ID: <20071127073027.07263600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv5494/kolabd/kolabd Modified Files: ChangeLog Log Message: Continued fixing of kolab-filter. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.120 retrieving revision 1.121 diff -u -d -r1.120 -r1.121 --- ChangeLog 23 Nov 2007 13:39:32 -0000 1.120 +++ ChangeLog 27 Nov 2007 07:30:24 -0000 1.121 @@ -1,3 +1,15 @@ +2007-11-27 Gunnar Wrobel

    + + * dist_conf/common: + * dist_conf/kolab: + + resmgr_logfile is now resmgr_logdir. + resmgr_filterdir is now resmgr_tmpdir. + + * templates/resmgr.conf.template.in: + + Updated the template for the restructured kolab-filter package. + 2007-11-23 Gunnar Wrobel

    * templates/freebusy.conf.template.in: @@ -17,7 +29,7 @@ * templates/freebusy.conf.template.in: - Updated the template for the restructure kolab-freebusy package. + Updated the template for the restructured kolab-freebusy package. 2007-11-22 Thomas Arendsen Hein From cvs at kolab.org Tue Nov 27 08:30:27 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 08:30:27 +0100 (CET) Subject: gunnar: server/kolabd/kolabd/templates resmgr.conf.template.in, 1.11, 1.12 Message-ID: <20071127073027.0E5D1600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv5494/kolabd/kolabd/templates Modified Files: resmgr.conf.template.in Log Message: Continued fixing of kolab-filter. Index: resmgr.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/resmgr.conf.template.in,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- resmgr.conf.template.in 8 Oct 2007 15:50:11 -0000 1.11 +++ resmgr.conf.template.in 27 Nov 2007 07:30:25 -0000 1.12 @@ -39,110 +39,129 @@ * */ -// What is the address of the Cyrus server where the calendar data is stored? -$params['server'] = '@@@connect_addr@@@'; +$conf = array(); -// Local IP address of the mailserver for bypassing content filters -$params['local_addr'] = '@@@local_addr@@@'; +/* Cyrus server connection string */ +$conf['filter']['imap_server'] = '@@@connect_addr@@@'; -// What is our default mail domain? This is used if any users do not have -// '@domain' specified after their username as part of their email address. -$params['email_domain'] = '@@@postfix-mydomain@@@'; +/* LMTP settings (Cyrus IMAPd usually offers LMTP on port 2003) */ +$conf['filter']['lmpt_host'] = $conf['filter']['imap_server']; +$conf['filter']['lmpt_port'] = 2003; -// List of kolab hosts that are privileged -$params['kolabhosts'] = '@@@kolabhost|join(,)@@@'; +/* SMTP settings (Kolab Postfix usually offers reinjection port on + * 10025) + */ +$conf['filter']['smpt_host'] = '@@@local_addr@@@'; +$conf['filter']['smpt_port'] = 10025; -// Are we using virtual domains with Cyrus? -$params['virtual_domains'] = true; +/* Local IP address of the mailserver for bypassing content filters */ +$conf['filter']['local_addr'] = '@@@local_addr@@@'; -// Should we append domains to mailbox URIs? This only applies when -// virtual_domains is true, and when using manager accounts. -$params['append_domains'] = false; +/* What is our default mail domain? This is used if any users do not + * have '@domain' specified after their username as part of their + * email address. + */ +$conf['filter']['email_domain'] = '@@@postfix-mydomain@@@'; -// Should we make sure that the sender and From header match for mail -// that origins on this server? +/* List of kolab hosts that are privileged */ +$conf['filter']['kolabhosts'] = '@@@kolabhost|join(,)@@@'; + +/* Are we using virtual domains with Cyrus? */ +$conf['filter']['virtual_domains'] = true; + +/* Should we append domains to mailbox URIs? This only applies when + * virtual_domains is true, and when using manager accounts. + */ +$conf['filter']['append_domains'] = false; + +/* Should we make sure that the sender and From header match for mail + * that origins on this server? + */ @@@if kolabfilter-verify-from-header@@@ $params['verify_from_header'] = ('@@@kolabfilter-verify-from-header@@@'=='TRUE'); @@@else@@@ $params['verify_from_header'] = false; @@@endif@@@ -// Should we perform this check on mail from our -// subdomains too? -$params['verify_subdomains'] = true; +/* Should we perform this check on mail from our + * subdomains too? + */ +$conf['filter']['verify_subdomains'] = true; -// Should the Sender: header be used over From: if present? +/* Should the Sender: header be used over From: if present? */ @@@if kolabfilter-allow-sender-header@@@ $params['allow_sender_header'] = ('@@@kolabfilter-allow-sender-header@@@'=='TRUE'); @@@else@@@ $params['allow_sender_header'] = false; @@@endif@@@ -// Should reject messages with From headers that dont match -// the envelope? Default is to rewrite the header +/* Should reject messages with From headers that dont match + * the envelope? Default is to rewrite the header + */ @@@if kolabfilter-reject-forged-from-header@@@ $params['reject_forged_from_header'] = ('@@@kolabfilter-reject-forged-from-header@@@'=='TRUE'); @@@else@@@ $params['reject_forged_from_header'] = false; @@@endif@@@ -// Text to be inserted in From: when rewriting untrusted mails -$params['untrusted_subject_insert'] = "(UNTRUSTED, sender is <%s>)"; -$params['unauthenticated_subject_insert'] = "(UNTRUSTED, sender <%s> is not authenticated)"; - -// Should we allow forwarded ical messages from Outlook -// by encapsulating them in a MIME multipart -$params['allow_outlook_ical_forward'] = true; +/* Text to be inserted in From: when rewriting untrusted mails */ +// $conf['filter']['untrusted_subject_insert'] = "(UNTRUSTED, sender is <%s>)"; +// $conf['filter']['unauthenticated_subject_insert'] = "(UNTRUSTED, sender <%s> is not authenticated)"; -// LDAP data -// What is the address of the LDAP server address where user objects reside -$params['ldap_uri'] = '@@@ldap_uri@@@'; +/* Should we allow forwarded ical messages from Outlook + * by encapsulating them in a MIME multipart + */ +$conf['filter']['allow_outlook_ical_forward'] = true; -// What is the Base DN of our LDAP database? -$params['base_dn'] = '@@@base_dn@@@'; +/* What is the address of the LDAP server address where user objects + * reside + */ +$conf['filter']['ldap_uri'] = '@@@ldap_uri@@@'; -// What DN should we use to bind to the LDAP server? -$params['bind_dn'] = '@@@php_dn@@@'; +/* What is the Base DN of our LDAP database? */ +$conf['filter']['base_dn'] = '@@@base_dn@@@'; -// What password should we use with the above DN when binding? -$params['bind_pw'] = '@@@php_pw@@@'; +/* What DN should we use to bind to the LDAP server? */ +$conf['filter']['bind_dn'] = '@@@php_dn@@@'; +/* What password should we use with the above DN when binding? */ +$conf['filter']['bind_pw'] = '@@@php_pw@@@'; -// What account should we use to read/write calendar data? This account should -// have access to the calendar mailbox of all resource/group mailboxes. -$params['calendar_user'] = 'calendar@'.$params['email_domain']; -$params['calendar_pass'] = '@@@calendar_pw@@@'; +/* What account should we use to read/write calendar data? This + * account should have access to the calendar mailbox of all + * resource/group mailboxes. + */ +$conf['filter']['calendar_user'] = 'calendar@' . $conf['filter']['email_domain']; +$conf['filter']['calendar_pass'] = '@@@calendar_pw@@@'; -// Filename of private key used to decrypt password from LDAP -$params['priv_key_file'] = '@sysconfdir@/kolab/res_priv.pem'; +/* Filename of private key used to decrypt password from LDAP */ +$conf['filter']['priv_key_file'] = '@sysconfdir@/kolab/res_priv.pem'; -// What is the name of the users' calendar mailbox? -// This is only used when the user does not already have -// a primary calendar folder (search via Kolab annotation) -$params['calendar_store'] = 'Calendar'; +/* What is the name of the users' calendar mailbox? This is only used + * when the user does not already have a primary calendar folder + * (search via Kolab annotation) + */ +$conf['filter']['calendar_store'] = 'Calendar'; -// Where can we get free/busy information from? -$params['freebusy_url'] = 'https://@@@fqdnhostname@@@@webserver_web_prefix@/freebusy/${USER}.xfb'; +/* Where can we get free/busy information from? */ +$conf['filter']['freebusy_url'] = '@@@fqdnhostname@@@@webserver_web_prefix@/freebusy/${USER}.xfb'; -// PFB url to trigger creation of pfb -$params['pfb_trigger_url'] = 'https://@@@fqdnhostname@@@@webserver_web_prefix@/freebusy/trigger/${USER}/${FOLDER}.xpfb'; - -// Where are we logging to? -$params['log'] = 'file:@resmgr_logfile@'; // File... -// $params['log'] = 'syslog:cons, pid'; // Or syslog... +/* PFB url to trigger creation of pfb */ +$conf['filter']['pfb_trigger_url'] = 'https://@@@fqdnhostname@@@@webserver_web_prefix@/freebusy/trigger/${USER}/${FOLDER}.xpfb'; -// What level of output should we log? Higher levels give more verbose output. -// One of: RM_LOG_SILENT; RM_LOG_ERROR; RM_LOG_WARN; RM_LOG_INFO or RM_LOG_DEBUG. -$params['log_level'] = RM_LOG_DEBUG; +/* Temporary data storage for the scripts */ +$conf['filter']['tempdir'] = '@resmgr_tmpdir@'; -// Temporary data storage for the script -$params['resmgr_filterdir'] = '@resmgr_filterdir@'; +/* PHP error logging */ +$conf['filter']['error_log'] = '@resmgr_logdir@/php-error.log'; -// Activate if you wish to use the new horde framework -// (horde-framework-kolab) package instead of the old code in -// kolab-horde-framework. This is still untested and considered -// UNSAFE! -$params['use_new_horde'] = false; +/* Horde::Log configuration */ +$conf['log']['enabled'] = true; +$conf['log']['priority'] = PEAR_LOG_DEBUG; // Leave this on DEBUG for now. We just restructured the package... +$conf['log']['type'] = 'file'; +$conf['log']['name'] = '@resmgr_logdir@/filter.log'; +$conf['log']['ident'] = 'Kolab Filter'; +$conf['log']['params']['append'] = true; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // From cvs at kolab.org Tue Nov 27 08:30:27 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 08:30:27 +0100 (CET) Subject: gunnar: server/kolabd/kolabd/dist_conf common, 1.41, 1.42 kolab, 1.53, 1.54 Message-ID: <20071127073027.13B88600D68@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/dist_conf In directory doto:/tmp/cvs-serv5494/kolabd/kolabd/dist_conf Modified Files: common kolab Log Message: Continued fixing of kolab-filter. Index: common =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/common,v retrieving revision 1.41 retrieving revision 1.42 diff -u -d -r1.41 -r1.42 --- common 22 Nov 2007 17:08:42 -0000 1.41 +++ common 27 Nov 2007 07:30:24 -0000 1.42 @@ -117,9 +117,9 @@ -e 's,[@]resmgr_confdir[@],$(resmgr_confdir),g' \ -e 's,[@]resmgr_conffile_grp[@],$(resmgr_conffile_grp),g' \ -e 's,[@]resmgr_conffile_usr[@],$(resmgr_conffile_usr),g' \ - -e 's,[@]resmgr_filterdir[@],$(resmgr_filterdir),g' \ + -e 's,[@]resmgr_tmpdir[@],$(resmgr_tmpdir),g' \ -e 's,[@]resmgr_grp[@],$(resmgr_grp),g' \ - -e 's,[@]resmgr_logfile[@],$(resmgr_logfile),g' \ + -e 's,[@]resmgr_logdir[@],$(resmgr_logdir),g' \ -e 's,[@]resmgr_scriptsdir[@],$(resmgr_scriptsdir),g' \ -e 's,[@]resmgr_usr[@],$(resmgr_usr),g' \ -e 's,[@]sasl_authdconffile[@],$(sasl_authdconffile),g' \ Index: kolab =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/kolab,v retrieving revision 1.53 retrieving revision 1.54 diff -u -d -r1.53 -r1.54 --- kolab 23 Nov 2007 13:39:32 -0000 1.53 +++ kolab 27 Nov 2007 07:30:24 -0000 1.54 @@ -156,11 +156,11 @@ sysrundir=${localstatedir}/run -resmgr_logfile=${localstatedir}/kolab-filter/log/kolab-filter.log +resmgr_logdir=${localstatedir}/kolab-filter/log resmgr_confdir=${localstatedir}/kolab-filter/scripts resmgr_conffile_usr=${kolab_musr} resmgr_conffile_grp=${kolab_grp} -resmgr_filterdir=${localstatedir}/kolab-filter/tmp +resmgr_tmpdir=${localstatedir}/kolab-filter/tmp resmgr_scriptsdir=${localstatedir}/kolab-filter/scripts # @l_musr@ resmgr_usr=${kolab_musr} From cvs at kolab.org Tue Nov 27 08:30:27 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 08:30:27 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter package.xml.in,1.3,1.4 Message-ID: <20071127073027.1292E600D65@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter In directory doto:/tmp/cvs-serv5494/php-kolab/Kolab_Filter Modified Files: package.xml.in Log Message: Continued fixing of kolab-filter. Index: package.xml.in =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/package.xml.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- package.xml.in 26 Nov 2007 16:35:21 -0000 1.3 +++ package.xml.in 27 Nov 2007 07:30:25 -0000 1.4 @@ -92,10 +92,10 @@ + + - -

    From cvs at kolab.org Tue Nov 27 08:30:27 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 08:30:27 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/Filter Incoming.php, 1.1, 1.2 Outgoing.php, 1.1, 1.2 olhacks.php, 1.3, NONE resmgr.php, 1.6, NONE Message-ID: <20071127073027.36653600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/Filter In directory doto:/tmp/cvs-serv5494/php-kolab/Kolab_Filter/Filter Modified Files: Incoming.php Outgoing.php Removed Files: olhacks.php resmgr.php Log Message: Continued fixing of kolab-filter. Index: Incoming.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Incoming.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Incoming.php 26 Nov 2007 16:35:21 -0000 1.1 +++ Incoming.php 27 Nov 2007 07:30:25 -0000 1.2 @@ -94,7 +94,7 @@ } if ($ical) { - require_once 'Kolab/Filter/resmgr.php'; + require_once 'Kolab/Filter/Resource.php'; $newrecips = array(); foreach ($this->_recipients as $recip) { Horde::logMessage(sprintf(_("Calling resmgr_filter(%s, %s, %s, %s)"), Index: Outgoing.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Outgoing.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Outgoing.php 26 Nov 2007 16:35:21 -0000 1.1 +++ Outgoing.php 27 Nov 2007 07:30:25 -0000 1.2 @@ -94,7 +94,7 @@ $rc = verify_sender($this->_sasl_username, $this->_sender, $from, $this->_client_address); if (is_a($rc, 'PEAR_Error')) { - return $this->_rewriteCode($rc); + return $rc; } else if ($rc === true) { /* All OK, do nothing */ } else if ($rc === false) { @@ -169,11 +169,11 @@ if (!$senderok) { if ($ical && $allow_outlook_ical_forward ) { - require_once('Kolab/Filter/olhacks.php'); + require_once('Kolab/Filter/Outlook.php'); $rc = olhacks_embedical($this->_fqhostname, $this->_sender, $this->_recipients, $from, $subject, $this->_tmpfname); if (is_a($rc, 'PEAR_Error')) { - return $this->_rewriteCode($rc); + return $rc; } else if ($rc === true) { return; } @@ -272,105 +272,128 @@ } // Cleanup function -function is_my_domain( $addr ) { - global $params; - if( is_array($params['email_domain']) ) { - $domains = $params['email_domain']; - } else { - $domains = array($params['email_domain']); - } +function is_my_domain($addr) +{ + global $conf; + + if (!empty($conf['filter']['verify_subdomains'])) { + $verify_subdomains = $conf['filter']['verify_subdomains']; + } else { + $verify_subdomains = true; + } + + if (!empty($conf['filter']['email_domain'])) { + $email_domain = $conf['filter']['email_domain']; + } else { + $email_domain = 'localhost'; + } + + $domains = (array) $email_domain; - $adrs = imap_rfc822_parse_adrlist($addr, $params['email_domain']); - foreach ($adrs as $adr) { - $adrdom = $adr->host; - if( empty($adrdom) ) continue; - foreach( $domains as $dom ) { - if( $dom == $adrdom ) return true; - if( $params['verify_subdomains'] && substr($adrdom, -strlen($dom)-1) == ".$dom" ) return true; + $adrs = imap_rfc822_parse_adrlist($addr, $email_domain); + foreach ($adrs as $adr) { + $adrdom = $adr->host; + if (empty($adrdom)) { + continue; + } + foreach ($domains as $dom) { + if ($dom == $adrdom) { + return true; + } + if ($verify_subdomains && substr($adrdom, -strlen($dom)-1) == ".$dom") { + return true; + } + } } - } - return false; + return false; } /** Returns a list of allowed email addresses for user $sasluser or a PEAR_Error object if something croaked. */ -function addrs_for_uid( $sasluser ) +function addrs_for_uid($sasluser) { - global $params; - /* Connect to the LDAP server and retrieve the users' - allowed email addresses */ - $ldap = ldap_connect($params['ldap_uri']); - if (!ldap_bind($ldap, $params['bind_dn'], $params['bind_pw'])) { - myLog('Unable to contact LDAP server: ' . ldap_error($ldap)); - return new PEAR_Error('Unable to contact LDAP server: ' . ldap_error($ldap)); - } + global $conf; + + /* Connect to the LDAP server and retrieve the users' + * allowed email addresses + */ + $ldap = ldap_connect($conf['filter']['ldap_uri']); + + if (!ldap_bind($ldap, $conf['filter']['bind_dn'], $conf['filter']['bind_pw'])) { + return PEAR::raiseError(sprintf(_("Unable to contact LDAP server: %s"), + ldap_error($ldap)), + OUT_LOG || ERR_TEMPFAIL); + } - $filter = "(&(objectClass=kolabInetOrgPerson)(|(mail=$sasluser)(uid=$sasluser)))"; - $result = ldap_search($ldap, $params['base_dn'], - $filter, - array("dn", "mail", "alias" )); - if (!$result) { - myLog('Unable to perform LDAP search: ' . ldap_error($ldap)); - return new PEAR_Error('Unable to perform LDAP search: ' . ldap_error($ldap)); - } + $filter = "(&(objectClass=kolabInetOrgPerson)(|(mail=$sasluser)(uid=$sasluser)))"; + $result = ldap_search($ldap, $conf['filter']['base_dn'], + $filter, + array("dn", "mail", "alias" )); + if (!$result) { + return PEAR::raiseError(sprintf(_("Unable to perform LDAP search: %s"), + ldap_error($ldap)), + OUT_LOG || ERR_TEMPFAIL); + } - $entries = ldap_get_entries($ldap, $result); - if ($entries['count'] != 1) { - myLog($entries['count']." objects returned for uid $sasluser"); - return new PEAR_Error("Temporary LDAP error, unable to look up user $sasluser"); - } - unset($entries[0]['mail']['count']); - unset($entries[0]['alias']['count']); - $addrs = array_merge((array) $entries[0]['mail'],(array) $entries[0]['alias']); - $mail = $entries[0]['mail'][0]; + $entries = ldap_get_entries($ldap, $result); + if ($entries['count'] != 1) { + return PEAR::raiseError(sprintf(_("%s objects returned for uid %s. Unable to look up user."), + $entries['count'], $sasluser), + OUT_LOG || ERR_TEMPFAIL); + } + unset($entries[0]['mail']['count']); + unset($entries[0]['alias']['count']); + $addrs = array_merge((array) $entries[0]['mail'],(array) $entries[0]['alias']); + $mail = $entries[0]['mail'][0]; - ldap_free_result($result); + ldap_free_result($result); - $filter = "(&(objectClass=kolabInetOrgPerson)(kolabDelegate=$mail))"; - $result = ldap_search($ldap, $params['base_dn'], - $filter, - array("dn", "mail" )); - if (!$result) { - myLog('Unable to perform LDAP search: ' . ldap_error($ldap)); - return new PEAR_Error('Unable to perform LDAP search: ' . ldap_error($ldap)); - } + $filter = "(&(objectClass=kolabInetOrgPerson)(kolabDelegate=$mail))"; + $result = ldap_search($ldap, $conf['filter']['base_dn'], + $filter, + array("dn", "mail" )); + if (!$result) { + return PEAR::raiseError(sprintf(_("Unable to perform LDAP search: %s"), + ldap_error($ldap)), + OUT_LOG || ERR_TEMPFAIL); + } - $entries = ldap_get_entries($ldap, $result); - unset( $entries['count'] ); - foreach( $entries as $adr ) { - if( $adr['mail']['count'] > 0 ) { - unset($adr['mail']['count']); - $addrs = array_merge((array) $addrs,(array) $adr['mail']); + $entries = ldap_get_entries($ldap, $result); + unset( $entries['count'] ); + foreach( $entries as $adr ) { + if( $adr['mail']['count'] > 0 ) { + unset($adr['mail']['count']); + $addrs = array_merge((array) $addrs,(array) $adr['mail']); + } } - } - ldap_free_result($result); - ldap_close($ldap); + ldap_free_result($result); + ldap_close($ldap); - #myLog("Found addresses ".print_r($addrs,true)." for user $sasluser", RM_LOG_DEBUG); - return $addrs; + return $addrs; } /** Returns the format string used to rewrite the From header for untrusted messages */ function get_untrusted_subject_insert($sasluser,$sender) { - global $params; - if( $sasluser ) { - if( array_key_exists('untrusted_subject_insert', $params) ) { - $fmt = $params['untrusted_subject_insert']; - } else { - $fmt = "(UNTRUSTED, sender is <%s>)"; - } - } else { - if( array_key_exists('unauthenticated_subject_insert', $params) ) { - $fmt = $params['unauthenticated_subject_insert']; + global $conf; + + if ($sasluser) { + if (!empty($conf['filter']['untrusted_subject_insert'])) { + $fmt = $conf['filter']['untrusted_subject_insert']; + } else { + $fmt = _("(UNTRUSTED, sender is <%s>)"); + } } else { - $fmt = "(UNTRUSTED, sender <%s> is not authenticated)"; + if (!empty($conf['filter']['unauthenticated_subject_insert'])) { + $fmt = $conf['filter']['unauthenticated_subject_insert']; + } else { + $fmt = _("(UNTRUSTED, sender <%s> is not authenticated)"); + } } - } - return sprintf($fmt,$sender); + return sprintf($fmt, $sender); } /** Check that the From header is not trying @@ -383,90 +406,131 @@ From acceptable * A PEAR_Error object if something croaked */ -function verify_sender( $sasluser, $sender, $fromhdr, $client_addr ) { - global $params; +function verify_sender($sasluser, $sender, $fromhdr, $client_addr) { - /* Allow anything from localhost and - fellow Kolab-hosts */ - if( $client_addr == $params['local_addr'] ) return true; - $kolabhosts = split(',', $params['kolabhosts'] ); - $kolabhosts = array_map( "gethostbyname", $kolabhosts ); - if( array_search( $client_addr, $kolabhosts ) !== false ) return true; + global $conf; - if( is_array($params['email_domain']) ) { - $domains = $params['email_domain']; - } else { - $domains = array($params['email_domain']); - } + if (!empty($conf['filter']['email_domain'])) { + $domains = $conf['filter']['email_domain']; + } else { + $domains = 'localhost'; + } - if( $sasluser ) { - if( PEAR::isError($allowed_addrs = addrs_for_uid($sasluser)) ) { - myLog("Error reading allowed addresses for $sasluser: ".$allowed_addrs->getMessage(), RM_LOG_ERROR); - return $allowed_addrs; + if (!is_array($domains)) { + $domains = array($domains); } - } else { - $allowed_addrs = false; - } - $untrusted = get_untrusted_subject_insert($sasluser,$sender); - $adrs = imap_rfc822_parse_adrlist($fromhdr, $params['email_domain'][0]); - foreach ($adrs as $adr) { - $from = $adr->mailbox.'@'.$adr->host; - $fromdom = $adr->host; - if( $sasluser ) { - if( !in_array( strtolower($from), $allowed_addrs ) ) { - myLog("$from is not an allowed From address for $sasluser", RM_LOG_DEBUG); - return false; - } + + if (!empty($conf['filter']['local_addr'])) { + $local_addr = $conf['filter']['local_addr']; } else { - foreach( $domains as $domain ) { - if( strtolower($fromdom) == $domain - || ( $params['verify_subdomains'] - && substr($fromdom, -strlen($domain)-1) == ".$domain" ) ) { - if( $params['reject_forged_from_header'] ) { - myLog("$from is not an allowed From address for unauthenticated users", RM_LOG_DEBUG); - return false; - } else { - /* Rewrite */ - myLog("$from is not an allowed From address for unauthenticated users, rewriting", RM_LOG_DEBUG); - - if( strpos( $fromhdr, $untrusted )===false ) { - return '"'.str_replace(array("\\",'"'),array("\\\\",'\"'),$adr->personal).' '.$untrusted.'" '.'<'.$from.'>'; - } else { - return true; - } - } - } - } + $local_addr = 'localhost'; } - } - /* All seems OK */ - return true; + if (!empty($conf['filter']['verify_subdomains'])) { + $verify_subdomains = $conf['filter']['verify_subdomains']; + } else { + $verify_subdomains = true; + } + if (!empty($conf['filter']['reject_forged_from_headers'])) { + $reject_forged_from_headers = $conf['filter']['reject_forged_from_headers']; + } else { + $reject_forged_from_headers = true; + } - /* TODO: What do we do about subdomains? */ - /* - $senderdom = substr(strrchr($sender, '@'), 1); - foreach( $domains as $domain ) { - if( $params['verify_subdomains'] ) { - if( ($senderdom == $domain || - $fromdom == $domain || - substr($senderdom, -strlen($domain)-1) == ".$domain" || - substr($fromdom, -strlen($domain)-1) == ".$domain" ) && - $sender != $from ) { - return false; - } - } else { - if( ($senderdom == $domain || - $fromdom == $domain ) && - $sender != $from ) { - return false; - } - } + if (!empty($conf['filter']['kolabhosts'])) { + $kolabhosts = $conf['filter']['kolabhosts']; + } else { + $kolabhosts = 'localhost'; } - } - return true; - */ + + /* Allow anything from localhost and + * fellow Kolab-hosts + */ + if ($client_addr == $local_addr) { + return true; + } + + $kolabhosts = split(',', $kolabhosts); + $kolabhosts = array_map('gethostbyname', $kolabhosts ); + + if (array_search($client_addr, $kolabhosts) !== false) { + return true; + } + + if ($sasluser) { + $allowed_addrs = addrs_for_uid($sasluser); + if (is_a($allowed_addrs, 'PEAR_Error')) { + return $allowed_addrs; + } + } else { + $allowed_addrs = false; + } + + $untrusted = get_untrusted_subject_insert($sasluser,$sender); + $adrs = imap_rfc822_parse_adrlist($fromhdr, $domains[0]); + + foreach ($adrs as $adr) { + $from = $adr->mailbox . '@' . $adr->host; + $fromdom = $adr->host; + if ($sasluser) { + if (!in_array(strtolower($from), $allowed_addrs)) { + Horde::logMessage(sprintf(_("%s is not an allowed From address for %s"), + $from, $sasluser), __FILE__, __LINE__, PEAR_LOG_DEBUG); + return false; + } + } else { + foreach ($domains as $domain) { + if (strtolower($fromdom) == $domain + || ($verify_subdomains + && substr($fromdom, -strlen($domain)-1) == ".$domain")) { + if ($reject_forged_from_header) { + Horde::logMessage(sprintf(_("%s is not an allowed From address for unauthenticated users."), + $from), __FILE__, __LINE__, PEAR_LOG_DEBUG); + return false; + } else { + /* Rewrite */ + Horde::logMessage(sprintf(_("%s is not an allowed From address for unauthenticated users, rewriting."), + $from), __FILE__, __LINE__, PEAR_LOG_DEBUG); + if (strpos( $fromhdr, $untrusted )===false) { + return '"'.str_replace(array("\\",'"'),array("\\\\",'\"'),$adr->personal).' '.$untrusted.'" '.'<'.$from.'>'; + } else { + return true; + } + } + } + } + } + } + + /* All seems OK */ + return true; + + + /* TODO: What do we do about subdomains? */ + /* + $senderdom = substr(strrchr($sender, '@'), 1); + foreach( $domains as $domain ) { + if( $conf['filter']['verify_subdomains'] ) { + if( ($senderdom == $domain || + $fromdom == $domain || + substr($senderdom, -strlen($domain)-1) == ".$domain" || + substr($fromdom, -strlen($domain)-1) == ".$domain" ) && + $sender != $from ) { + return false; + } + } else { + if( ($senderdom == $domain || + $fromdom == $domain ) && + $sender != $from ) { + return false; + } + } + } + } + return true; + */ + } --- olhacks.php DELETED --- --- resmgr.php DELETED --- From cvs at kolab.org Tue Nov 27 08:35:47 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 08:35:47 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/Filter Outlook.php, NONE, 1.1 Resource.php, NONE, 1.1 Message-ID: <20071127073547.70808600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/Filter In directory doto:/tmp/cvs-serv5656 Added Files: Outlook.php Resource.php Log Message: Renamed resmgr.php and olhacks.php --- NEW FILE: Outlook.php --- decode($decode_args))) { return false; } /* Put the object into imap_parsestructure() form. */ MIME_Structure::_convertMimeDecodeData($structure); return array($structure->headers, $ret = &MIME_Structure::parse($structure)); } /* static */ function copy_header( $name, &$msg_headers, &$headerarray ) { $lname = strtolower($name); if( array_key_exists($lname, $headerarray)) { if( is_array( $headerarray[$lname] ) ) { foreach( $headerarray[$lname] as $h ) { $msg_headers->addHeader($name, $h ); } } else { $msg_headers->addHeader($name, $headerarray[$lname] ); } } } /* * Yet another problem: Outlook seems to remove the organizer * from the iCal when forwarding -- we put the original sender * back in as organizer. */ function add_organizer(&$icaltxt, $from) { global $conf; if (!empty($conf['filter']['email_domain'])) { $email_domain = $conf['filter']['email_domain']; } else { $email_domain = 'localhost'; } $iCal = &new Horde_iCalendar(); $iCal->parsevCalendar($icaltxt); $vevent =& $iCal->findComponent('VEVENT'); if( $vevent ) { if( !$vevent->organizerName() ) { $adrs = imap_rfc822_parse_adrlist($from, $email_domain); if( count($adrs) > 0 ) { $org_email = 'mailto:'.$adrs[0]->mailbox.'@'.$adrs[0]->host; $org_name = $adrs[0]->personal; if( $org_name ) $vevent->setAttribute( 'ORGANIZER', $org_email, array( 'CN' => $org_name), false ); else $vevent->setAttribute( 'ORGANIZER', $org_email, array(), false ); Horde::logMessage(sprintf(_("Adding missing organizer '%s <%s>' to iCal."), $org_name, $org_email), __FILE__, __LINE__, PEAR_LOG_DEBUG); $icaltxt = $iCal->exportvCalendar(); } } } } /* Yet another Outlook problem: Some versions of Outlook seems to be incapable * of handling non-ascii characters properly in text/calendar parts of * a multi-part/mixed mail which we use for forwarding. * As a solution, we encode common characters as humanreadable * two-letter ascii. */ /* static */ function olhacks_recode_to_ascii( $text ) { $text = str_replace( ('æ'), 'ae', $text ); $text = str_replace( ('ø'), 'oe', $text ); $text = str_replace( ('å'), 'aa', $text ); $text = str_replace( ('ä'), 'ae', $text ); $text = str_replace( ('ö'), 'oe', $text ); $text = str_replace( ('ü'), 'ue', $text ); $text = str_replace( ('ß'), 'ss', $text ); $text = str_replace( ('Æ'), 'Ae', $text ); $text = str_replace( ('Ø'), 'Oe', $text ); $text = str_replace( ('Å'), 'Aa', $text ); $text = str_replace( ('Ä'), 'Ae', $text ); $text = str_replace( ('Ö'), 'Oe', $text ); $text = str_replace( ('Ü'), 'Ue', $text ); return $text; } /* main entry point */ function olhacks_embedical($fqhostname, $sender, $recipients, $origfrom, $subject, $tmpfname) { Horde::logMessage(sprintf(_("Encapsulating iCal message forwarded by %s"), $sender), __FILE__, __LINE__, PEAR_LOG_DEBUG); global $forwardtext; // Read in message text $requestText = ''; $handle = @fopen( $tmpfname, "r" ); if( $handle === false ) { $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not open %s for writing: %s"), $tmpfname, $msg), OUT_LOG || ERR_TEMPFAIL); } while (!feof($handle)) { $requestText .= fread($handle, 8192); } fclose($handle); // Parse existing message list( $headers, $mime) = olhacks_mime_parse($requestText); $parts = $mime->contentTypeMap(); if (count($parts) != 1 || $parts[1] != 'text/calendar') { Horde::logMessage(_("Message does not contain exactly one toplevel text/calendar part, passing through."), __FILE__, __LINE__, PEAR_LOG_DEBUG); return false; } $basepart = $mime->getBasePart(); // Construct new MIME message with original message attached $toppart = &new MIME_Message(); $dorigfrom = Mail_mimeDecode::_decodeHeader($origfrom); $textpart = &new MIME_Part('text/plain', sprintf($forwardtext,$dorigfrom,$dorigfrom), 'UTF-8' ); $ical_txt = $basepart->transferDecode(); add_organizer($ical_txt, $dorigfrom); $msgpart = &new MIME_Part($basepart->getType(), olhacks_recode_to_ascii($ical_txt), $basepart->getCharset() ); $toppart->addPart($textpart); $toppart->addPart($msgpart); // Build the reply headers. $msg_headers = &new MIME_Headers(); copy_header( 'Received', $msg_headers, $headers ); //$msg_headers->addReceivedHeader(); $msg_headers->addMessageIdHeader(); copy_header( 'Date', $msg_headers, $headers ); copy_header( 'Resent-Date', $msg_headers, $headers ); copy_header( 'Subject', $msg_headers, $headers ); $msg_headers->addHeader('From', $sender); $msg_headers->addHeader('To', join(', ', $recipients)); $msg_headers->addHeader('X-Kolab-Forwarded', 'TRUE'); $msg_headers->addMIMEHeaders($toppart); copy_header( 'Content-Transfer-Encoding', $msg_headers, $headers ); if (is_object($msg_headers)) { $headerArray = $toppart->encode($msg_headers->toArray(), $toppart->getCharset()); } else { $headerArray = $toppart->encode($msg_headers, $toppart->getCharset()); } // Inject message back into postfix require_once 'Mail.php'; $mailer = &Mail::factory('SMTP', array('auth' => false, 'port' => 10026 )); $msg = $toppart->toString(); /* Make sure the message has a trailing newline. */ if (substr($msg, -1) != "\n") { $msg .= "\n"; } $result = $mailer->send($recipients, $headerArray, $msg); if (is_a($result, 'PEAR_Error')) { $append = sprintf(_(", original code %s"), $result->getCode()); $result->message = $result->getMessage() . $append; $result->code = OUT_LOG || OUT_STDOUT || ERR_TEMPFAIL; return $result; } return true; } ?> --- NEW FILE: Resource.php --- From cvs at kolab.org Tue Nov 27 11:01:54 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 11:01:54 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/tests/_data tiny.eml,NONE,1.1 Message-ID: <20071127100154.6525E600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/tests/_data In directory doto:/tmp/cvs-serv8941/php-kolab/Kolab_Filter/tests/_data Added Files: tiny.eml Log Message: Fix all myLog occurences. --- NEW FILE: tiny.eml --- To: wrobel at pardus.example.com Subject: test From: Gunnar Wrobel Date: Tue, 27 Nov 2007 08:49:39 +0100 Message-ID: <878x4k6sbw.fsf at kolab.example.com> User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/22.1.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii test From cvs at kolab.org Tue Nov 27 11:01:54 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 11:01:54 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/Filter Filter.php, 1.1, 1.2 Incoming.php, 1.2, 1.3 Outgoing.php, 1.2, 1.3 Outlook.php, 1.1, 1.2 Resource.php, 1.1, 1.2 Response.php, 1.1, 1.2 Message-ID: <20071127100154.B4701600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/Filter In directory doto:/tmp/cvs-serv8941/php-kolab/Kolab_Filter/Filter Modified Files: Filter.php Incoming.php Outgoing.php Outlook.php Resource.php Response.php Log Message: Fix all myLog occurences. Index: Filter.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Filter.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Filter.php 26 Nov 2007 16:35:21 -0000 1.1 +++ Filter.php 27 Nov 2007 10:01:52 -0000 1.2 @@ -72,6 +72,7 @@ $this->_tmpdir = sys_get_temp_dir(); } + // FIXME: Do we need this? /* This is used as the default domain for unqualified adresses */ global $_SERVER; if (!array_key_exists('SERVER_NAME', $_SERVER)) { @@ -159,7 +160,7 @@ !array_key_exists('s', $options)) { return PEAR::raiseError(sprintf(_("Usage is %s -s sender at domain -r recipient at domain"), $args[0]), - OUT_STDOUT || ERR_TEMPFAIL); + OUT_STDOUT | ERR_TEMPFAIL); } $this->_sender = strtolower($options['s']); @@ -199,7 +200,7 @@ $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not open %s for writing: %s"), $this->_tmpfile, $msg), - OUT_LOG || ERR_TEMPFAIL); + OUT_LOG | ERR_TEMPFAIL); } register_shutdown_function(array($this, '_cleanupTmp')); @@ -225,7 +226,7 @@ return $transport; } return PEAR::raiseError(sprintf(_("No such class \"%s\""), $class), - OUT_LOG || ERR_TEMPFAIL); + OUT_LOG | ERR_TEMPFAIL); } function _rewriteCode($result) @@ -237,7 +238,7 @@ } $append = sprintf(_(", original code %s"), $result->getCode()); $result->message = $result->getMessage() . $append; - $result->code = OUT_LOG || OUT_STDOUT || $code; + $result->code = OUT_LOG | OUT_STDOUT | $code; return $result; } } Index: Incoming.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Incoming.php,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Incoming.php 27 Nov 2007 07:30:25 -0000 1.2 +++ Incoming.php 27 Nov 2007 10:01:52 -0000 1.3 @@ -72,7 +72,7 @@ $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not write to %s: %s"), $this->_tmpfile, $msg), - OUT_LOG || ERR_TEMPFAIL); + OUT_LOG | ERR_TEMPFAIL); } } @@ -82,7 +82,7 @@ $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not write to %s: %s"), $this->_tmpfile, $msg), - OUT_LOG || ERR_TEMPFAIL); + OUT_LOG | ERR_TEMPFAIL); } } @@ -90,7 +90,7 @@ $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Failed closing %s: %s"), $this->_tmpfile, $msg), - OUT_LOG || ERR_TEMPFAIL); + OUT_LOG | ERR_TEMPFAIL); } if ($ical) { @@ -156,7 +156,7 @@ $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not open %s for writing: %s"), $this->_tmpfile, $msg), - OUT_LOG || ERR_TEMPFAIL); + OUT_LOG | ERR_TEMPFAIL); } $result = $transport->start($this->_sender, $this->_recipients); Index: Outgoing.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Outgoing.php,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Outgoing.php 27 Nov 2007 07:30:25 -0000 1.2 +++ Outgoing.php 27 Nov 2007 10:01:52 -0000 1.3 @@ -147,7 +147,7 @@ $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not write to %s: %s"), $this->_tmpfile, $msg), - OUT_LOG || ERR_TEMPFAIL); + OUT_LOG | ERR_TEMPFAIL); } } while (!feof($inh)) { @@ -156,7 +156,7 @@ $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not write to %s: %s"), $this->_tmpfile, $msg), - OUT_LOG || ERR_TEMPFAIL); + OUT_LOG | ERR_TEMPFAIL); } } @@ -164,7 +164,7 @@ $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Failed closing %s: %s"), $this->_tmpfile, $msg), - OUT_LOG || ERR_TEMPFAIL); + OUT_LOG | ERR_TEMPFAIL); } if (!$senderok) { @@ -180,7 +180,7 @@ } else { return PEAR::raiseError(sprintf(_("Invalid From: header. %s looks like a forged sender"), $from), - OUT_LOG || OUT_STDOUT || ERR_UNAVAILABLE); + OUT_LOG | OUT_STDOUT | ERR_UNAVAILABLE); } } @@ -215,7 +215,7 @@ $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not open %s for writing: %s"), $this->_tmpfile, $msg), - OUT_LOG || ERR_TEMPFAIL); + OUT_LOG | ERR_TEMPFAIL); } $result = $transport->start($this->_sender, $this->_recipients); @@ -324,7 +324,7 @@ if (!ldap_bind($ldap, $conf['filter']['bind_dn'], $conf['filter']['bind_pw'])) { return PEAR::raiseError(sprintf(_("Unable to contact LDAP server: %s"), ldap_error($ldap)), - OUT_LOG || ERR_TEMPFAIL); + OUT_LOG | ERR_TEMPFAIL); } $filter = "(&(objectClass=kolabInetOrgPerson)(|(mail=$sasluser)(uid=$sasluser)))"; @@ -334,14 +334,14 @@ if (!$result) { return PEAR::raiseError(sprintf(_("Unable to perform LDAP search: %s"), ldap_error($ldap)), - OUT_LOG || ERR_TEMPFAIL); + OUT_LOG | ERR_TEMPFAIL); } $entries = ldap_get_entries($ldap, $result); if ($entries['count'] != 1) { return PEAR::raiseError(sprintf(_("%s objects returned for uid %s. Unable to look up user."), $entries['count'], $sasluser), - OUT_LOG || ERR_TEMPFAIL); + OUT_LOG | ERR_TEMPFAIL); } unset($entries[0]['mail']['count']); unset($entries[0]['alias']['count']); @@ -357,7 +357,7 @@ if (!$result) { return PEAR::raiseError(sprintf(_("Unable to perform LDAP search: %s"), ldap_error($ldap)), - OUT_LOG || ERR_TEMPFAIL); + OUT_LOG | ERR_TEMPFAIL); } $entries = ldap_get_entries($ldap, $result); Index: Outlook.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Outlook.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Outlook.php 27 Nov 2007 07:35:45 -0000 1.1 +++ Outlook.php 27 Nov 2007 10:01:52 -0000 1.2 @@ -160,7 +160,7 @@ $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not open %s for writing: %s"), $tmpfname, $msg), - OUT_LOG || ERR_TEMPFAIL); + OUT_LOG | ERR_TEMPFAIL); } while (!feof($handle)) { $requestText .= fread($handle, 8192); @@ -223,7 +223,7 @@ if (is_a($result, 'PEAR_Error')) { $append = sprintf(_(", original code %s"), $result->getCode()); $result->message = $result->getMessage() . $append; - $result->code = OUT_LOG || OUT_STDOUT || ERR_TEMPFAIL; + $result->code = OUT_LOG | OUT_STDOUT | ERR_TEMPFAIL; return $result; } Index: Resource.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Resource.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Resource.php 27 Nov 2007 07:35:45 -0000 1.1 +++ Resource.php 27 Nov 2007 10:01:52 -0000 1.2 @@ -85,34 +85,33 @@ conflicts between an event and a freebusy list */ class ResmgrRecurrence extends Recurrence { - function ResmgrRecurrence() { - $this->conflict = false; - } + function ResmgrRecurrence() { + $this->conflict = false; + } - function setBusy( $start, $end, $duration ) { [...2088 lines suppressed...] + return true; } - return false;; - default: - // We either don't currently handle these iTip methods, or they do not - // apply to what we're trying to accomplish here - myLog("Ignoring $method method and passing message through to $resource"); + // Pass the message through to the group's mailbox + Horde::logMessage(sprintf(_("Passing through %s method to %s"), + $method, $resource), + __FILE__, __LINE__, PEAR_LOG_INFO); return true; - } - - // Pass the message through to the group's mailbox - myLog("Passing through $method method to $resource"); - return true; } ?> Index: Response.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Response.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Response.php 26 Nov 2007 16:35:21 -0000 1.1 +++ Response.php 27 Nov 2007 10:01:52 -0000 1.2 @@ -74,20 +74,20 @@ $msg = $result->getMessage(); $code = $result->getCode(); - if ($code && OUT_STDOUT) { + if ($code & OUT_STDOUT) { fwrite(STDOUT, $msg); } - if ($code && OUT_LOG) { - $frame = $result->getBacktrace(2); + if ($code & OUT_LOG || empty($code)) { + $frame = $result->getBacktrace(1); Horde::logMessage($msg, $frame['file'], $frame['line']); } // FIXME: Add a userinfo handler in case there were multiple // combined errors - if ($code && ERR_TEMPFAIL) { + if ($code & ERR_TEMPFAIL || empty($code)) { exit(EX_TEMPFAIL); - } else if ($code && ERR_UNAVAILABLE) { + } else if ($code & ERR_UNAVAILABLE) { exit(EX_UNAVAILABLE); } else { exit(0); From cvs at kolab.org Tue Nov 27 13:35:25 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 13:35:25 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/Filter Filter.php, 1.2, 1.3 Incoming.php, 1.3, 1.4 Outgoing.php, 1.3, 1.4 Outlook.php, 1.2, 1.3 Message-ID: <20071127123525.887DF600D6D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/Filter In directory doto:/tmp/cvs-serv12401/php-kolab/Kolab_Filter/Filter Modified Files: Filter.php Incoming.php Outgoing.php Outlook.php Log Message: The kolab-filter error handler has been fixed. This hopefully gives us a clean exit state towards postfix at all times. Index: Filter.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Filter.php,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Filter.php 27 Nov 2007 10:01:52 -0000 1.2 +++ Filter.php 27 Nov 2007 12:35:23 -0000 1.3 @@ -41,12 +41,35 @@ /* Load the Filter libraries */ require_once 'Kolab/Filter/Transport.php'; +/* Some output constants */ +define('OUT_STDOUT', 128); +define('OUT_LOG', 256); + +/* Failure constants from postfix src/global/sys_exits.h */ +define('EX_USAGE', 64); /* command line usage error */ +define('EX_DATAERR', 65); /* data format error */ +define('EX_NOINPUT', 66); /* cannot open input */ +define('EX_NOUSER', 67); /* user unknown */ +define('EX_NOHOST', 68); /* host name unknown */ +define('EX_UNAVAILABLE', 69); /* service unavailable */ +define('EX_SOFTWARE', 70); /* internal software error */ +define('EX_OSERR', 71); /* system resource error */ +define('EX_OSFILE', 72); /* critical OS file missing */ +define('EX_CANTCREAT', 73); /* can't create user output file */ +define('EX_IOERR', 74); /* input/output error */ +define('EX_TEMPFAIL', 75); /* temporary failure */ +define('EX_PROTOCOL', 76); /* remote error in protocol */ +define('EX_NOPERM', 77); /* permission denied */ +define('EX_CONFIG', 78); /* local configuration error */ + class Filter { var $_transport; var $_startts; + var $_debug; + var $_tmpdir; var $_tmpfile; @@ -58,11 +81,12 @@ var $_fqhostname; var $_sasl_username; - function Filter($transport = 'StdOut') + function Filter($transport = 'StdOut', $debug = false) { global $conf; $this->_transport = $transport; + $this->_debug = $debug; $this->_startts = $this->_microtime_float(); @@ -72,6 +96,9 @@ $this->_tmpdir = sys_get_temp_dir(); } + /* Set a custom PHP error handler to catch any coding errors */ + set_error_handler(array($this, '_fatal')); + // FIXME: Do we need this? /* This is used as the default domain for unqualified adresses */ global $_SERVER; @@ -100,17 +127,30 @@ } } + function parse($inh = STDIN) + { + $result = $this->_start(); + if ($result instanceof PEAR_Error) { + $this->_handle($result); + } + + $result = $this->_parse($inh); + if ($result instanceof PEAR_Error) { + $this->_handle($result); + } + } + function _start() { /* Setup the temporary storage */ $result = $this->_initTmp(); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { return $result; } /* Parse our arguments */ $result = $this->_parseArgs(); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { return $result; } @@ -159,8 +199,8 @@ if (!array_key_exists('r', $options) || !array_key_exists('s', $options)) { return PEAR::raiseError(sprintf(_("Usage is %s -s sender at domain -r recipient at domain"), - $args[0]), - OUT_STDOUT | ERR_TEMPFAIL); + $args[0]), + OUT_STDOUT | EX_USAGE); } $this->_sender = strtolower($options['s']); @@ -200,7 +240,7 @@ $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not open %s for writing: %s"), $this->_tmpfile, $msg), - OUT_LOG | ERR_TEMPFAIL); + OUT_LOG | EX_IOERR); } register_shutdown_function(array($this, '_cleanupTmp')); @@ -226,20 +266,95 @@ return $transport; } return PEAR::raiseError(sprintf(_("No such class \"%s\""), $class), - OUT_LOG | ERR_TEMPFAIL); + OUT_LOG | EX_CONFIG); } function _rewriteCode($result) { if ($result->getCode() < 500) { - $code = ERR_TEMPFAIL; + $code = EX_TEMPFAIL; } else { - $code = ERR_UNAVAILABLE; + $code = EX_UNAVAILABLE; } $append = sprintf(_(", original code %s"), $result->getCode()); $result->message = $result->getMessage() . $append; $result->code = OUT_LOG | OUT_STDOUT | $code; return $result; + } + + function _fatal($errno, $errmsg, $filename, $linenum, $vars) + { + /* Ignore strict errors for now since even PEAR will raise + * strict notices + */ + if ($errno == E_STRICT) { + return false; + } + + $fatal = array(E_ERROR, + E_PARSE, + E_CORE_ERROR, + E_COMPILE_ERROR, + E_USER_ERROR); + + if (in_array($errno, $fatal)) { + $code = OUT_STDOUT | OUT_LOG | EX_UNAVAILABLE; + $msg = 'CRITICAL: You hit a fatal bug in kolab-filter. Please inform the Kolab developers at https://www.intevation.de/roundup/kolab/. The error was: ' . $errmsg; + } else { + $code = 0; + $msg = $errmsg; + } + + $error = &new PEAR_Error($msg, $code); + $this->_handle($error); + + if ($errno == E_ERROR) { + exit(0); + } + return false; + } + + function _log($result) + { + $msg = $result->getMessage(); + + /* Log all errors */ + $frame = $result->getBacktrace(1); + + /* In debugging mode the errors get delivered to the screen + * without a time stamp (mainly because of unit testint) + */ + if (!$this->_debug) { + Horde::logMessage($msg, $frame['file'], $frame['line']); + } else { + $msg .= ' (Line ' . $frame['line'] . ' in ' . basename($frame['file']) . ")\n"; + fwrite(STDOUT, $msg); + } + } + + function _handle($result) + { + $msg = $result->getMessage(); + $code = $result->getCode(); + + if ($code & OUT_STDOUT) { + fwrite(STDOUT, $msg); + } + + if ($code & OUT_LOG || empty($code)) { + $this->_log($result); + } + + // FIXME: Add a userinfo handler in case there were multiple + // combined errors + + /* If we have an error code we want to return it to the + * calling application and exit here + */ + if ($code) { + /* Return the first seven bits as error code to postfix */ + exit($code & 127); + } } } Index: Incoming.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Incoming.php,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Incoming.php 27 Nov 2007 10:01:52 -0000 1.3 +++ Incoming.php 27 Nov 2007 12:35:23 -0000 1.4 @@ -41,18 +41,13 @@ var $_add_headers; - function Filter_Incoming($transport = 'LMTP') + function Filter_Incoming($transport = 'LMTP', $debug = false) { - Filter::Filter($transport); + Filter::Filter($transport, $debug); } - function parse($inh = STDIN) + function _parse($inh = STDIN) { - $result = $this->_start(); - if (is_a($result, 'PEAR_Error')) { - return $result; - } - $ical = false; $add_headers = array(); $headers_done = false; @@ -72,7 +67,7 @@ $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not write to %s: %s"), $this->_tmpfile, $msg), - OUT_LOG | ERR_TEMPFAIL); + OUT_LOG | EX_TEMPFAIL); } } @@ -82,7 +77,7 @@ $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not write to %s: %s"), $this->_tmpfile, $msg), - OUT_LOG | ERR_TEMPFAIL); + OUT_LOG | EX_TEMPFAIL); } } @@ -90,7 +85,7 @@ $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Failed closing %s: %s"), $this->_tmpfile, $msg), - OUT_LOG | ERR_TEMPFAIL); + OUT_LOG | EX_TEMPFAIL); } if ($ical) { @@ -156,7 +151,7 @@ $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not open %s for writing: %s"), $this->_tmpfile, $msg), - OUT_LOG | ERR_TEMPFAIL); + OUT_LOG | EX_TEMPFAIL); } $result = $transport->start($this->_sender, $this->_recipients); Index: Outgoing.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Outgoing.php,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Outgoing.php 27 Nov 2007 10:01:52 -0000 1.3 +++ Outgoing.php 27 Nov 2007 12:35:23 -0000 1.4 @@ -43,12 +43,12 @@ class Filter_Outgoing extends Filter { - function Filter_Outgoing($transport = 'SMTP') + function Filter_Outgoing($transport = 'SMTP', $debug = false) { - Filter::Filter($transport); + Filter::Filter($transport, $debug); } - function parse($inh = STDIN) + function _parse($inh = STDIN) { global $conf; @@ -70,11 +70,6 @@ $allow_outlook_ical_forward = true; } - $result = $this->_start(); - if (is_a($result, 'PEAR_Error')) { - return $result; - } - $ical = false; $from = false; $subject = false; @@ -147,7 +142,7 @@ $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not write to %s: %s"), $this->_tmpfile, $msg), - OUT_LOG | ERR_TEMPFAIL); + OUT_LOG | EX_IOERR); } } while (!feof($inh)) { @@ -156,7 +151,7 @@ $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not write to %s: %s"), $this->_tmpfile, $msg), - OUT_LOG | ERR_TEMPFAIL); + OUT_LOG | EX_IOERR); } } @@ -164,7 +159,7 @@ $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Failed closing %s: %s"), $this->_tmpfile, $msg), - OUT_LOG | ERR_TEMPFAIL); + OUT_LOG | EX_IOERR); } if (!$senderok) { @@ -180,7 +175,7 @@ } else { return PEAR::raiseError(sprintf(_("Invalid From: header. %s looks like a forged sender"), $from), - OUT_LOG | OUT_STDOUT | ERR_UNAVAILABLE); + OUT_LOG | OUT_STDOUT | EX_NOPERM); } } @@ -215,7 +210,7 @@ $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not open %s for writing: %s"), $this->_tmpfile, $msg), - OUT_LOG | ERR_TEMPFAIL); + OUT_LOG | EX_IOERR); } $result = $transport->start($this->_sender, $this->_recipients); @@ -324,7 +319,7 @@ if (!ldap_bind($ldap, $conf['filter']['bind_dn'], $conf['filter']['bind_pw'])) { return PEAR::raiseError(sprintf(_("Unable to contact LDAP server: %s"), ldap_error($ldap)), - OUT_LOG | ERR_TEMPFAIL); + OUT_LOG | EX_TEMPFAIL); } $filter = "(&(objectClass=kolabInetOrgPerson)(|(mail=$sasluser)(uid=$sasluser)))"; @@ -334,14 +329,14 @@ if (!$result) { return PEAR::raiseError(sprintf(_("Unable to perform LDAP search: %s"), ldap_error($ldap)), - OUT_LOG | ERR_TEMPFAIL); + OUT_LOG | EX_TEMPFAIL); } $entries = ldap_get_entries($ldap, $result); if ($entries['count'] != 1) { return PEAR::raiseError(sprintf(_("%s objects returned for uid %s. Unable to look up user."), $entries['count'], $sasluser), - OUT_LOG | ERR_TEMPFAIL); + OUT_LOG | EX_TEMPFAIL); } unset($entries[0]['mail']['count']); unset($entries[0]['alias']['count']); @@ -357,7 +352,7 @@ if (!$result) { return PEAR::raiseError(sprintf(_("Unable to perform LDAP search: %s"), ldap_error($ldap)), - OUT_LOG | ERR_TEMPFAIL); + OUT_LOG | EX_TEMPFAIL); } $entries = ldap_get_entries($ldap, $result); Index: Outlook.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Outlook.php,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Outlook.php 27 Nov 2007 10:01:52 -0000 1.2 +++ Outlook.php 27 Nov 2007 12:35:23 -0000 1.3 @@ -160,7 +160,7 @@ $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not open %s for writing: %s"), $tmpfname, $msg), - OUT_LOG | ERR_TEMPFAIL); + OUT_LOG | EX_TEMPFAIL); } while (!feof($handle)) { $requestText .= fread($handle, 8192); @@ -223,7 +223,7 @@ if (is_a($result, 'PEAR_Error')) { $append = sprintf(_(", original code %s"), $result->getCode()); $result->message = $result->getMessage() . $append; - $result->code = OUT_LOG | OUT_STDOUT | ERR_TEMPFAIL; + $result->code = OUT_LOG | OUT_STDOUT | EX_TEMPFAIL; return $result; } From cvs at kolab.org Tue Nov 27 13:35:25 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 13:35:25 +0100 (CET) Subject: gunnar: server/kolabd/kolabd/templates resmgr.conf.template.in, 1.12, 1.13 Message-ID: <20071127123525.794F9600D6A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv12401/kolabd/kolabd/templates Modified Files: resmgr.conf.template.in Log Message: The kolab-filter error handler has been fixed. This hopefully gives us a clean exit state towards postfix at all times. Index: resmgr.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/resmgr.conf.template.in,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- resmgr.conf.template.in 27 Nov 2007 07:30:25 -0000 1.12 +++ resmgr.conf.template.in 27 Nov 2007 12:35:23 -0000 1.13 @@ -152,9 +152,6 @@ /* Temporary data storage for the scripts */ $conf['filter']['tempdir'] = '@resmgr_tmpdir@'; -/* PHP error logging */ -$conf['filter']['error_log'] = '@resmgr_logdir@/php-error.log'; - /* Horde::Log configuration */ $conf['log']['enabled'] = true; $conf['log']['priority'] = PEAR_LOG_DEBUG; // Leave this on DEBUG for now. We just restructured the package... From cvs at kolab.org Tue Nov 27 13:35:25 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 13:35:25 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter package.xml.in,1.4,1.5 Message-ID: <20071127123525.7B82D600D6B@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter In directory doto:/tmp/cvs-serv12401/php-kolab/Kolab_Filter Modified Files: package.xml.in Log Message: The kolab-filter error handler has been fixed. This hopefully gives us a clean exit state towards postfix at all times. Index: package.xml.in =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/package.xml.in,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- package.xml.in 27 Nov 2007 07:30:25 -0000 1.4 +++ package.xml.in 27 Nov 2007 12:35:23 -0000 1.5 @@ -94,7 +94,6 @@ -
    From cvs at kolab.org Tue Nov 27 13:35:25 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 13:35:25 +0100 (CET) Subject: gunnar: server/kolab-filter/filter config.php, 1.5, 1.6 kolabfilter.php, 1.3, 1.4 kolabmailboxfilter.php, 1.3, 1.4 Message-ID: <20071127123525.88404600D6C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-filter/filter In directory doto:/tmp/cvs-serv12401/kolab-filter/filter Modified Files: config.php kolabfilter.php kolabmailboxfilter.php Log Message: The kolab-filter error handler has been fixed. This hopefully gives us a clean exit state towards postfix at all times. Index: config.php =================================================================== RCS file: /kolabrepository/server/kolab-filter/filter/config.php,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- config.php 27 Nov 2007 07:30:24 -0000 1.5 +++ config.php 27 Nov 2007 12:35:23 -0000 1.6 @@ -138,9 +138,6 @@ $conf['filter']['smpt_host'] = 'localhost'; $conf['filter']['smpt_port'] = 10025; -/* PHP error logging */ -$conf['filter']['error_log'] = '/kolab/var/kolab-filter/log/php-error.log'; - /* Horde::Log configuration */ $conf['log']['enabled'] = true; $conf['log']['priority'] = PEAR_LOG_DEBUG; // Leave this on DEBUG for now. We just restructured the package... Index: kolabfilter.php =================================================================== RCS file: /kolabrepository/server/kolab-filter/filter/kolabfilter.php,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- kolabfilter.php 26 Nov 2007 16:35:21 -0000 1.3 +++ kolabfilter.php 27 Nov 2007 12:35:23 -0000 1.4 @@ -29,26 +29,18 @@ * ABOUT * ----- * - * A filter for outgoing mail on a Kolab Server. + * A filter for outgoing mail on a Kolab Server. It rewrites headers + * and handles Outlook issues. * */ -/* Load the filter libraries */ -require_once 'Kolab/Filter/Outgoing.php'; -require_once 'Kolab/Filter/Response.php'; - /* Read our configuration */ require_once 'config.php'; -/* Setup the classes */ -if (empty($conf['filter']['error_log'])) { - $conf['filter']['error_log'] = sys_get_temp_dir() . PATH_SEPARATOR . 'kolab-filter.log'; -} - -$response = &new Response($conf['filter']['error_log']); -$parser = &new Filter_Outgoing(); - -/* Parse the mail and spit out the response */ -$response->handle($parser->parse()); +/* Load the filter library */ +require_once 'Kolab/Filter/Outgoing.php'; +/* Parse the mail */ +$parser = &new Filter_Outgoing(); +$parser->parse(); ?> Index: kolabmailboxfilter.php =================================================================== RCS file: /kolabrepository/server/kolab-filter/filter/kolabmailboxfilter.php,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- kolabmailboxfilter.php 26 Nov 2007 16:35:21 -0000 1.3 +++ kolabmailboxfilter.php 27 Nov 2007 12:35:23 -0000 1.4 @@ -34,21 +34,13 @@ * */ -/* Load the filter libraries */ -require_once 'Kolab/Filter/Incoming.php'; -require_once 'Kolab/Filter/Response.php'; - /* Read our configuration */ require_once 'config.php'; -/* Setup the classes */ -if (empty($conf['filter']['error_log'])) { - $conf['filter']['error_log'] = sys_get_temp_dir() . PATH_SEPARATOR . 'kolab-filter.log'; -} - -$response = &new Response($conf['filter']['error_log']); -$parser = &new Filter_Incoming(); +/* Load the filter library */ +require_once 'Kolab/Filter/Incoming.php'; -/* Parse the mail and spit out the response */ -$response->handle($parser->parse()); +/* Parse the mail */ +$parser = &new Filter_Incoming(); +$parser->parse(); ?> From cvs at kolab.org Tue Nov 27 13:35:25 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 13:35:25 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/tests outgoing.phpt, NONE, 1.1 dumb_usage.phpt, 1.1, 1.2 simple_in_msg.phpt, 1.1, 1.2 simple_out_msg.phpt, 1.1, 1.2 Message-ID: <20071127123525.8C133600D6E@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/tests In directory doto:/tmp/cvs-serv12401/php-kolab/Kolab_Filter/tests Modified Files: dumb_usage.phpt simple_in_msg.phpt simple_out_msg.phpt Added Files: outgoing.phpt Log Message: The kolab-filter error handler has been fixed. This hopefully gives us a clean exit state towards postfix at all times. --- NEW FILE: outgoing.phpt --- --TEST-- Test the outgoing filter. --SKIPIF-- --FILE-- _lineFormat = '%2$s [%3$s] %7$s'; // Activate this if you need the log information. This will // make the test fail though //$logger->_lineFormat = '%2$s [%3$s] %4$s %7$s'; $inh = fopen('_data/tiny.eml', 'r'); /* Setup the classes */ $parser = &new Filter_Outgoing('StdOut', true); /* Parse the mail */ $parser->parse($inh); ?> --EXPECT-- Kolab Filter [debug] logMessage Mail from sender: me at example.com Mail to recipient: you at example.com To: wrobel at pardus.example.com Subject: test From: Gunnar Wrobel Date: Tue, 27 Nov 2007 08:49:39 +0100 Message-ID: <878x4k6sbw.fsf at kolab.example.com> User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/22.1.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii test . Kolab Filter [debug] logMessage Index: dumb_usage.phpt =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/tests/dumb_usage.phpt,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- dumb_usage.phpt 26 Nov 2007 16:35:21 -0000 1.1 +++ dumb_usage.phpt 27 Nov 2007 12:35:23 -0000 1.2 @@ -4,7 +4,6 @@ --FILE-- handle($parser->parse()); +/* Parse the mail */ +$parser->parse(); ?> --EXPECT-- Usage is test -s sender at domain -r recipient at domain Index: simple_in_msg.phpt =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/tests/simple_in_msg.phpt,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- simple_in_msg.phpt 26 Nov 2007 16:35:21 -0000 1.1 +++ simple_in_msg.phpt 27 Nov 2007 12:35:23 -0000 1.2 @@ -4,7 +4,6 @@ --FILE-- handle($parser->parse($inh)); +/* Parse the mail */ +$parser->parse($inh); ?> --EXPECT-- Kolab Filter [debug] logMessage Index: simple_out_msg.phpt =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/tests/simple_out_msg.phpt,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- simple_out_msg.phpt 26 Nov 2007 16:35:21 -0000 1.1 +++ simple_out_msg.phpt 27 Nov 2007 12:35:23 -0000 1.2 @@ -4,7 +4,6 @@ --FILE-- handle($parser->parse($inh)); +/* Parse the mail */ +$parser->parse($inh); ?> --EXPECT-- Kolab Filter [debug] logMessage From cvs at kolab.org Tue Nov 27 13:42:52 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 13:42:52 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/Filter Response.php,1.2,NONE Message-ID: <20071127124252.D34CC600D6A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/Filter In directory doto:/tmp/cvs-serv12583/php-kolab/Kolab_Filter/Filter Removed Files: Response.php Log Message: Obsolete class. --- Response.php DELETED --- From cvs at kolab.org Tue Nov 27 15:21:17 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 15:21:17 +0100 (CET) Subject: gunnar: server/kolabd/kolabd/templates resmgr.conf.template.in, 1.13, 1.14 Message-ID: <20071127142117.A3DEE600D72@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv15180/kolabd/kolabd/templates Modified Files: resmgr.conf.template.in Log Message: kolab/issue2177 (Better logging in kolabfilter and kolabmailboxfilter) Index: resmgr.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/resmgr.conf.template.in,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- resmgr.conf.template.in 27 Nov 2007 12:35:23 -0000 1.13 +++ resmgr.conf.template.in 27 Nov 2007 14:21:15 -0000 1.14 @@ -152,7 +152,14 @@ /* Temporary data storage for the scripts */ $conf['filter']['tempdir'] = '@resmgr_tmpdir@'; -/* Horde::Log configuration */ +/* PHP error logging */ +$conf['filter']['error_log'] = '@resmgr_logdir@/fatal.log'; + +/* Horde::Log configuration + * + * PEAR_LOG_INFO is the suggested setting for tracking what happens to + * your mails in the filters. + */ $conf['log']['enabled'] = true; $conf['log']['priority'] = PEAR_LOG_DEBUG; // Leave this on DEBUG for now. We just restructured the package... $conf['log']['type'] = 'file'; From cvs at kolab.org Tue Nov 27 15:21:17 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 15:21:17 +0100 (CET) Subject: gunnar: server release-notes.txt,1.179,1.180 Message-ID: <20071127142117.A1363600D6F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv15180 Modified Files: release-notes.txt Log Message: kolab/issue2177 (Better logging in kolabfilter and kolabmailboxfilter) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.179 retrieving revision 1.180 diff -u -d -r1.179 -r1.180 --- release-notes.txt 26 Nov 2007 16:35:21 -0000 1.179 +++ release-notes.txt 27 Nov 2007 14:21:15 -0000 1.180 @@ -61,10 +61,6 @@ kolab/issue2134 ([Horde] Unable to send message with attachments) kolab/issue2236 (Apache UID access broken) - - kolab-filter-2.2.beta2-2007???? - - Adapted to the restructured php-kolab/Kolab_Filter package. - - horde-framework-kolab-3.2_ALPHA-2007???? New functionality required for kolab-freebusy. @@ -87,6 +83,12 @@ kolab/issue2040 (Horde: resouces are not displayed in address book) kolab/issue2135 ([horde/turba] Turba should support some more contact attributes) + + - kolab-filter-2.2.beta2-2007???? + + Adapted to the restructured php-kolab/Kolab_Filter package. + + kolab/issue2177 (Better logging in kolabfilter and kolabmailboxfilter) - kolab-freebusy-2.2.???-2007???? From cvs at kolab.org Tue Nov 27 15:21:17 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 15:21:17 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/tests/_data big.eml,NONE,1.1 Message-ID: <20071127142117.B5681600D75@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/tests/_data In directory doto:/tmp/cvs-serv15180/php-kolab/Kolab_Filter/tests/_data Added Files: big.eml Log Message: kolab/issue2177 (Better logging in kolabfilter and kolabmailboxfilter) --- NEW FILE: big.eml --- Return-Path:

    Received: from localhost (host.example.com [127.0.0.1]) by host.example.com (Cyrus v2.3.9-openpkg) with LMTPA; Tue, 27 Nov 2007 13:56:32 +0100 X-Sieve: CMU Sieve 2.3 Received: from localhost (host.example.com [127.0.0.1]) by host.example.com (Postfix) with ESMTP id 38392A2B1566 for ; Tue, 27 Nov 2007 13:56:32 +0100 (CET) X-Virus-Scanned: by amavisd-new at host.example.com Received: from host.example.com ([127.0.0.1]) by localhost (host.example.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ki6IOTilw97b for ; Tue, 27 Nov 2007 13:56:31 +0100 (CET) Received: from localhost (host.example.com [127.0.0.1]) by host.example.com (Postfix) with ESMTP id 57BB8A2B1568 for ; Tue, 27 Nov 2007 13:56:31 +0100 (CET) Received: from example.com (mail.example.com [87.106.53.197]) by host.example.com (Postfix) with ESMTP id 198C3A2B1566 for ; Tue, 27 Nov 2007 13:56:30 +0100 (CET) [...17208 lines suppressed...] Un/56a//ANBl/wDgD0JjH/1o86ssG/8A2TSD2r/yEsf/AD1f+4+vyun/AOzdr9H4d/8AV23r8qSW P/8AxcrH/wC8B/8A4tfXbMK/71v/ANK5ZiX+w7/7j5UxujX/AJY5L/6G0/8A45vXULz/ALIVy9z/ AL0eVdjNh/8ANJpf/sP/APL9S+D/AO2uj7v/AOwb/wDw1z0qf+W1L/7b/vPoBf8A3SfWnWK/7HrV jfTj/wCHbx/7fD/3L6BxP/cPlTmx/wCyHrUafV7/AOfmL/6Hy/8A3LN6hrv6/WrVn/64eRqHegn/ AJzOn3/z9P8A4xvVti3/AGVcktP+6PlXezef+Fr3/wBD5/8A4EvrnNp+xfmKLa/3E1x6rf8A4y+J /wDny/8AwfXasQ/7AeVYW/8Aupq5N6/8L1T/AOidn/4h/XLezn7F/wDsaqcT/u8hUF4b/wA5Gb/9 pX/4z1cq/wC299YYh+8f+oqiOlv/AJQdQ/8A57R/+FJ6jb//ALZvyNfL/ePM/IVFI/8Ax0cv/wDR A/8Awk9V2H//AEaPM/KucWH/ANz766Qb1/5cYv8A/u//ABkPqQwn/tx510Wy/a/QnuP/AJT7H/7D H/8AD9VVvuryP0qXXtSVzn/jzo1/9H5P++H0jwH/AGnvI1MO/wC+nz+9Nen/AOWWX/8Aokf/AI31 Pu/7LfmK61hf7T/6n5VXHTr9c/8A/d/+CfVi3/sJ86gl/wC8PSh7ev8AyKzP/wA4g/7h60q2PlW9 3cedRJ0m/wDMMv8A9kMv/wAI+m1z+5Hl9Kz7Mbq8z86WHQH/AM8cP/0dX/4weinP9v0+tZYt/wB0 nz+ldAt4/wDI67/7SP8A4w+qe1/YPKuNW3/2R/8A4hqQ9S/8fT/+33//ALkg9QGIf916135rdz0q p9e/8io//Z19XPaH/YHlUPjP/wBgjzNf/9k= --=-=-= -- --=-=-=-- From cvs at kolab.org Tue Nov 27 15:21:17 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 15:21:17 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/Filter Filter.php, 1.3, 1.4 Incoming.php, 1.4, 1.5 Outgoing.php, 1.4, 1.5 Resource.php, 1.2, 1.3 Message-ID: <20071127142117.CB324600D76@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/Filter In directory doto:/tmp/cvs-serv15180/php-kolab/Kolab_Filter/Filter Modified Files: Filter.php Incoming.php Outgoing.php Resource.php Log Message: kolab/issue2177 (Better logging in kolabfilter and kolabmailboxfilter) Index: Filter.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Filter.php,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Filter.php 27 Nov 2007 12:35:23 -0000 1.3 +++ Filter.php 27 Nov 2007 14:21:15 -0000 1.4 @@ -68,6 +68,8 @@ var $_startts; + var $_id = ''; + var $_debug; var $_tmpdir; @@ -85,6 +87,21 @@ { global $conf; + /* Always display all possible problems */ + ini_set('error_reporting', E_ALL); + ini_set('track_errors', '1'); + + /* Setup error logging */ + if (!empty($conf['filter']['error_log'])) { + ini_set('log_errors', '1'); + ini_set('error_log', $conf['filter']['error_log']); + } + + /* Print PHP messages to StdOut if we are debugging */ + if ($debug) { + ini_set('display_errors', '1'); + } + $this->_transport = $transport; $this->_debug = $debug; @@ -138,6 +155,12 @@ if ($result instanceof PEAR_Error) { $this->_handle($result); } + + Horde::logMessage(sprintf(_("%s successfully completed (sender=%s, recipients=%s, client_address=%s, id=%s)"), + get_class($this), $this->_sender, + join(', ',$this->_recipients), + $this->_client_address, $this->_id), + __FILE__, __LINE__, PEAR_LOG_INFO); } function _start() @@ -155,7 +178,9 @@ } Horde::logMessage(sprintf(_("%s starting up (sender=%s, recipients=%s, client_address=%s)"), - get_class($this), $this->_sender, join(', ',$this->_recipients), $this->_client_address), + get_class($this), $this->_sender, + join(', ',$this->_recipients), + $this->_client_address), __FILE__, __LINE__, PEAR_LOG_DEBUG); } @@ -169,14 +194,18 @@ $args = $_SERVER['argv']; $opts = array( 's', 'r', 'c', 'h', 'u' ); + Horde::logMessage(sprintf(_("Arguments: %s"), print_r($args, true)), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + $options = array(); for ($i = 0; $i < count($args); ++$i) { $arg = $args[$i]; - if ($arg[0] == '-') { + if (!empty($arg) && $arg[0] == '-' && isset($arg[1])) { if (in_array($arg[1], $opts)) { $val = array(); $i++; - while($i < count($args) && $args[$i][0] != '-') { + while($i < count($args) && !empty($args[$i]) && + $args[$i][0] != '-') { $val[] = $args[$i]; $i++; } @@ -302,21 +331,24 @@ $msg = 'CRITICAL: You hit a fatal bug in kolab-filter. Please inform the Kolab developers at https://www.intevation.de/roundup/kolab/. The error was: ' . $errmsg; } else { $code = 0; - $msg = $errmsg; + $msg = 'PHP Error: ' . $errmsg; } $error = &new PEAR_Error($msg, $code); $this->_handle($error); - if ($errno == E_ERROR) { - exit(0); - } return false; } function _log($result) { - $msg = $result->getMessage(); + if (!empty($this->_id)) { + $id = ' _id . '>'; + } else { + $id = ''; + } + + $msg = $result->getMessage() . $id; /* Log all errors */ $frame = $result->getBacktrace(1); @@ -325,7 +357,7 @@ * without a time stamp (mainly because of unit testint) */ if (!$this->_debug) { - Horde::logMessage($msg, $frame['file'], $frame['line']); + Horde::logMessage($msg, $frame['file'], $frame['line'], PEAR_LOG_ERR); } else { $msg .= ' (Line ' . $frame['line'] . ' in ' . basename($frame['file']) . ")\n"; fwrite(STDOUT, $msg); Index: Incoming.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Incoming.php,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Incoming.php 27 Nov 2007 12:35:23 -0000 1.4 +++ Incoming.php 27 Nov 2007 14:21:15 -0000 1.5 @@ -58,10 +58,12 @@ if ($line == '') { /* Done with headers */ $headers_done = true; - } else if(eregi('^Content-Type: text/calendar', $line)) { + } else if (eregi('^Content-Type: text/calendar', $line)) { Horde::logMessage(_("Found iCal data in message"), __FILE__, __LINE__, PEAR_LOG_DEBUG); $ical = true; + } else if (eregi('^Message-ID: (.*)', $line, $regs)) { + $this->_id = $regs[1]; } if (@fwrite($this->_tmpfh, $buffer) === false) { $msg = $php_errormsg; @@ -100,9 +102,7 @@ $this->_tmpfile); if (is_a($rc, 'PEAR_Error')) { - fwrite(STDOUT, sprintf(_("Filter failed: %s\n"), - $rc->getMessage())); - exit(EX_TEMPFAIL); + return $rc; } else if ($rc === true) { $newrecips[] = $recip; } Index: Outgoing.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Outgoing.php,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Outgoing.php 27 Nov 2007 12:35:23 -0000 1.4 +++ Outgoing.php 27 Nov 2007 14:21:15 -0000 1.5 @@ -125,6 +125,8 @@ Horde::logMessage(_("Found iCal data in message"), __FILE__, __LINE__, PEAR_LOG_DEBUG); $ical = true; + } else if (eregi('^Message-ID: (.*)', $line, $regs)) { + $this->_id = $regs[1]; } break; case RM_STATE_READING_FROM: @@ -183,9 +185,6 @@ if (is_a($result, 'PEAR_Error')) { return $result; } - - Horde::logMessage(_("Filter_Outgoing successfully completed."), - __FILE__, __LINE__, PEAR_LOG_DEBUG); } function deliver($rewrittenfrom) Index: Resource.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Resource.php,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Resource.php 27 Nov 2007 10:01:52 -0000 1.2 +++ Resource.php 27 Nov 2007 14:21:15 -0000 1.3 @@ -882,28 +882,21 @@ return $epoch; } -function &buildKolabEvent(&$itip, $use_new_horde) +function &buildKolabEvent(&$itip) { global $organiser, $resource, $uid, $sid; - if (version_compare(PHP_VERSION,'5', '>=') && !$use_new_horde) { - require_once('Kolab/Freebusy/domxml-php4-to-php5.php'); - } else { - require_once('Horde/DOM.php'); - } + require_once('Horde/DOM.php'); $recurrence = false; - if (!$use_new_horde) { - $kolab_xml = domxml_new_doc('1.0'); - } else { - $kolab_xml = Horde_DOM_Document::factory(array('xml' => $xml_text)); - if (is_a($result, 'PEAR_Error')) { - // There were errors building the xml document - Horde::logMessage(sprintf(_("Error building xml document: %s"), - $result->getMessage()), - __FILE__, __LINE__, PEAR_LOG_ERR); - return false; - } + + $kolab_xml = Horde_DOM_Document::factory(array('xml' => $xml_text)); + if (is_a($result, 'PEAR_Error')) { + // There were errors building the xml document + Horde::logMessage(sprintf(_("Error building xml document: %s"), + $result->getMessage()), + __FILE__, __LINE__, PEAR_LOG_ERR); + return false; } $kolab_event = $kolab_xml->append_child($kolab_xml->create_element('event')); From cvs at kolab.org Tue Nov 27 15:21:17 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 15:21:17 +0100 (CET) Subject: gunnar: server/kolab-filter/filter config.php, 1.6, 1.7 kolabfilter.php, 1.4, 1.5 kolabmailboxfilter.php, 1.4, 1.5 Message-ID: <20071127142117.A527A600D74@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-filter/filter In directory doto:/tmp/cvs-serv15180/kolab-filter/filter Modified Files: config.php kolabfilter.php kolabmailboxfilter.php Log Message: kolab/issue2177 (Better logging in kolabfilter and kolabmailboxfilter) Index: config.php =================================================================== RCS file: /kolabrepository/server/kolab-filter/filter/config.php,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- config.php 27 Nov 2007 12:35:23 -0000 1.6 +++ config.php 27 Nov 2007 14:21:15 -0000 1.7 @@ -138,7 +138,14 @@ $conf['filter']['smpt_host'] = 'localhost'; $conf['filter']['smpt_port'] = 10025; -/* Horde::Log configuration */ +/* PHP error logging */ +$conf['filter']['error_log'] = '/kolab/var/kolab-filter/log/fatal.log'; + +/* Horde::Log configuration + * + * PEAR_LOG_INFO is the suggested setting for tracking what happens to + * your mails in the filters. + */ $conf['log']['enabled'] = true; $conf['log']['priority'] = PEAR_LOG_DEBUG; // Leave this on DEBUG for now. We just restructured the package... $conf['log']['type'] = 'file'; Index: kolabfilter.php =================================================================== RCS file: /kolabrepository/server/kolab-filter/filter/kolabfilter.php,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- kolabfilter.php 27 Nov 2007 12:35:23 -0000 1.4 +++ kolabfilter.php 27 Nov 2007 14:21:15 -0000 1.5 @@ -34,11 +34,11 @@ * */ -/* Read our configuration */ -require_once 'config.php'; - /* Load the filter library */ require_once 'Kolab/Filter/Outgoing.php'; + +/* Read our configuration */ +require_once 'config.php'; /* Parse the mail */ $parser = &new Filter_Outgoing(); Index: kolabmailboxfilter.php =================================================================== RCS file: /kolabrepository/server/kolab-filter/filter/kolabmailboxfilter.php,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- kolabmailboxfilter.php 27 Nov 2007 12:35:23 -0000 1.4 +++ kolabmailboxfilter.php 27 Nov 2007 14:21:15 -0000 1.5 @@ -34,11 +34,11 @@ * */ -/* Read our configuration */ -require_once 'config.php'; - /* Load the filter library */ require_once 'Kolab/Filter/Incoming.php'; + +/* Read our configuration */ +require_once 'config.php'; /* Parse the mail */ $parser = &new Filter_Incoming(); From cvs at kolab.org Tue Nov 27 15:52:20 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 15:52:20 +0100 (CET) Subject: gunnar: server/kolab-filter/filter config.php,1.7,1.8 Message-ID: <20071127145220.9560A600D6F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-filter/filter In directory doto:/tmp/cvs-serv16030/kolab-filter/filter Modified Files: config.php Log Message: Sync this configuration file with the template. Index: config.php =================================================================== RCS file: /kolabrepository/server/kolab-filter/filter/config.php,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- config.php 27 Nov 2007 14:21:15 -0000 1.7 +++ config.php 27 Nov 2007 14:52:18 -0000 1.8 @@ -39,6 +39,16 @@ /* Cyrus server connection string */ $conf['filter']['imap_server'] = 'localhost'; +/* LMTP settings (Cyrus IMAPd usually offers LMTP on port 2003) */ +$conf['filter']['lmpt_host'] = $conf['filter']['imap_server']; +$conf['filter']['lmpt_port'] = 2003; + +/* SMTP settings (Kolab Postfix usually offers reinjection port on + * 10025) + */ +$conf['filter']['smpt_host'] = 'localhost'; +$conf['filter']['smpt_port'] = 10025; + /* Local IP address of the mailserver for bypassing content filters */ $conf['filter']['local_addr'] = 'localhost'; @@ -124,19 +134,6 @@ /* Temporary data storage for the scripts */ $conf['filter']['tempdir'] = ''; - -/* What is the address of this host? */ -$conf['filter']['server'] = 'localhost'; - -/* LMTP settings (Cyrus IMAPd usually offers LMTP on port 2003) */ -$conf['filter']['lmpt_host'] = 'localhost'; -$conf['filter']['lmpt_port'] = 2003; - -/* SMTP settings (Kolab Postfix usually offers reinjection port on - * 10025) - */ -$conf['filter']['smpt_host'] = 'localhost'; -$conf['filter']['smpt_port'] = 10025; /* PHP error logging */ $conf['filter']['error_log'] = '/kolab/var/kolab-filter/log/fatal.log'; From cvs at kolab.org Tue Nov 27 16:31:46 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 16:31:46 +0100 (CET) Subject: gunnar: server/kolab-filter/filter kolabfilter.php,1.5,1.6 Message-ID: <20071127153146.25E3A600D70@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-filter/filter In directory doto:/tmp/cvs-serv17267/kolab-filter/filter Modified Files: kolabfilter.php Log Message: Rename Outgoing to Content and make the tests work again. Index: kolabfilter.php =================================================================== RCS file: /kolabrepository/server/kolab-filter/filter/kolabfilter.php,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- kolabfilter.php 27 Nov 2007 14:21:15 -0000 1.5 +++ kolabfilter.php 27 Nov 2007 15:31:43 -0000 1.6 @@ -35,12 +35,12 @@ */ /* Load the filter library */ -require_once 'Kolab/Filter/Outgoing.php'; +require_once 'Kolab/Filter/Content.php'; /* Read our configuration */ require_once 'config.php'; /* Parse the mail */ -$parser = &new Filter_Outgoing(); +$parser = &new Filter_Content(); $parser->parse(); ?> From cvs at kolab.org Tue Nov 27 16:31:46 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 16:31:46 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter package.xml.in,1.5,1.6 Message-ID: <20071127153146.63913600D70@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter In directory doto:/tmp/cvs-serv17267/php-kolab/Kolab_Filter Modified Files: package.xml.in Log Message: Rename Outgoing to Content and make the tests work again. Index: package.xml.in =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/package.xml.in,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- package.xml.in 27 Nov 2007 12:35:23 -0000 1.5 +++ package.xml.in 27 Nov 2007 15:31:44 -0000 1.6 @@ -91,7 +91,7 @@

    - + From cvs at kolab.org Tue Nov 27 16:31:46 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 16:31:46 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/tests dumb_usage.phpt, 1.2, 1.3 outgoing.phpt, 1.1, 1.2 simple_in_msg.phpt, 1.2, 1.3 simple_out_msg.phpt, 1.2, 1.3 Message-ID: <20071127153146.7D126600D70@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/tests In directory doto:/tmp/cvs-serv17267/php-kolab/Kolab_Filter/tests Modified Files: dumb_usage.phpt outgoing.phpt simple_in_msg.phpt simple_out_msg.phpt Log Message: Rename Outgoing to Content and make the tests work again. Index: dumb_usage.phpt =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/tests/dumb_usage.phpt,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- dumb_usage.phpt 27 Nov 2007 12:35:23 -0000 1.2 +++ dumb_usage.phpt 27 Nov 2007 15:31:44 -0000 1.3 @@ -16,6 +16,13 @@ $conf['filter']['tempdir'] = './tmp'; $_SERVER['argv'] = array('test'); +$logger = Horde::getLogger(); + +$logger->_lineFormat = '%2$s [%3$s] %7$s'; +// Activate this if you need the log information. This will +// make the test fail though +//$logger->_lineFormat = '%2$s [%3$s] %4$s %7$s'; + /* Setup the class */ $parser = &new Filter_Incoming('StdOut', true); @@ -23,4 +30,5 @@ $parser->parse(); ?> --EXPECT-- +Kolab Filter [debug] logMessage Usage is test -s sender at domain -r recipient at domain Index: outgoing.phpt =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/tests/outgoing.phpt,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- outgoing.phpt 27 Nov 2007 12:35:23 -0000 1.1 +++ outgoing.phpt 27 Nov 2007 15:31:44 -0000 1.2 @@ -3,7 +3,7 @@ --SKIPIF-- --FILE-- parse($inh); ?> --EXPECT-- Kolab Filter [debug] logMessage +Kolab Filter [debug] logMessage Mail from sender: me at example.com Mail to recipient: you at example.com To: wrobel at pardus.example.com @@ -45,4 +46,4 @@ test . -Kolab Filter [debug] logMessage +Kolab Filter [info] logMessage Index: simple_in_msg.phpt =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/tests/simple_in_msg.phpt,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- simple_in_msg.phpt 27 Nov 2007 12:35:23 -0000 1.2 +++ simple_in_msg.phpt 27 Nov 2007 15:31:44 -0000 1.3 @@ -32,6 +32,7 @@ ?> --EXPECT-- Kolab Filter [debug] logMessage +Kolab Filter [debug] logMessage Mail from sender: me at example.com Mail to recipient: you at example.com Return-Path: @@ -142,3 +143,4 @@ ------=_NextPart_7455_1D89_01C823EB.5AA2E210-- . Kolab Filter [debug] logMessage +Kolab Filter [info] logMessage Index: simple_out_msg.phpt =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/tests/simple_out_msg.phpt,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- simple_out_msg.phpt 27 Nov 2007 12:35:23 -0000 1.2 +++ simple_out_msg.phpt 27 Nov 2007 15:31:44 -0000 1.3 @@ -3,7 +3,7 @@ --SKIPIF-- --FILE-- parse($inh); ?> --EXPECT-- Kolab Filter [debug] logMessage +Kolab Filter [debug] logMessage Mail from sender: me at example.com Mail to recipient: you at example.com Return-Path: @@ -140,4 +141,4 @@ ------=_NextPart_7455_1D89_01C823EB.5AA2E210-- . -Kolab Filter [debug] logMessage +Kolab Filter [info] logMessage From cvs at kolab.org Tue Nov 27 16:31:46 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 16:31:46 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/Filter Content.php, NONE, 1.1 Outgoing.php, 1.5, NONE Message-ID: <20071127153146.72604600D71@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/Filter In directory doto:/tmp/cvs-serv17267/php-kolab/Kolab_Filter/Filter Added Files: Content.php Removed Files: Outgoing.php Log Message: Rename Outgoing to Content and make the tests work again. --- NEW FILE: Content.php --- _sasl_username, $this->_sender, $from, $this->_client_address); if (is_a($rc, 'PEAR_Error')) { return $rc; } else if ($rc === true) { /* All OK, do nothing */ } else if ($rc === false) { /* Reject! */ $senderok = false; } else if (is_string($rc)) { /* Rewrite from */ if (strpos($from, $rc) === false) { Horde::logMessage(sprintf(_("Rewriting '%s' to '%s'"), $from, $to), __FILE__, __LINE__, PEAR_LOG_DEBUG); $rewrittenfrom = "From: $rc\r\n"; } } } } else { if ($line[0] != ' ' && $line[0] != "\t") { $state = RM_STATE_READING_HEADER; } switch( $state ) { case RM_STATE_READING_HEADER: if ($allow_sender_header && eregi('^Sender: (.*)', $line, $regs)) { $from = $regs[1]; $state = RM_STATE_READING_SENDER; } else if (!$from && eregi('^From: (.*)', $line, $regs)) { $from = $regs[1]; $state = RM_STATE_READING_FROM; } else if (eregi('^Subject: (.*)', $line, $regs)) { $subject = $regs[1]; $state = RM_STATE_READING_SUBJECT; } else if (eregi('^Content-Type: text/calendar', $line)) { Horde::logMessage(_("Found iCal data in message"), __FILE__, __LINE__, PEAR_LOG_DEBUG); $ical = true; } else if (eregi('^Message-ID: (.*)', $line, $regs)) { $this->_id = $regs[1]; } break; case RM_STATE_READING_FROM: $from .= $line; break; case RM_STATE_READING_SENDER: $from .= $line; break; case RM_STATE_READING_SUBJECT: $subject .= $line; break; } } if (@fwrite($this->_tmpfh, $buffer) === false) { $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not write to %s: %s"), $this->_tmpfile, $msg), OUT_LOG | EX_IOERR); } } while (!feof($inh)) { $buffer = fread($inh, 8192); if (@fwrite($this->_tmpfh, $buffer) === false) { $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not write to %s: %s"), $this->_tmpfile, $msg), OUT_LOG | EX_IOERR); } } if (@fclose($this->_tmpfh) === false) { $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Failed closing %s: %s"), $this->_tmpfile, $msg), OUT_LOG | EX_IOERR); } if (!$senderok) { if ($ical && $allow_outlook_ical_forward ) { require_once('Kolab/Filter/Outlook.php'); $rc = olhacks_embedical($this->_fqhostname, $this->_sender, $this->_recipients, $from, $subject, $this->_tmpfname); if (is_a($rc, 'PEAR_Error')) { return $rc; } else if ($rc === true) { return; } } else { return PEAR::raiseError(sprintf(_("Invalid From: header. %s looks like a forged sender"), $from), OUT_LOG | OUT_STDOUT | EX_NOPERM); } } $result = $this->deliver($rewrittenfrom); if (is_a($result, 'PEAR_Error')) { return $result; } } function deliver($rewrittenfrom) { global $conf; if (!empty($conf['filter']['smtp_host'])) { $host = $conf['filter']['smtp_host']; } else { $host = 'localhost'; } if (!empty($conf['filter']['smtp_port'])) { $port = $conf['filter']['smtp_port']; } else { $port = 10025; } $transport = $this->_getTransport($host, $port); $tmpf = @fopen($this->_tmpfile, 'r'); if (!$tmpf) { $msg = $php_errormsg; return PEAR::raiseError(sprintf(_("Error: Could not open %s for writing: %s"), $this->_tmpfile, $msg), OUT_LOG | EX_IOERR); } $result = $transport->start($this->_sender, $this->_recipients); if (is_a($result, 'PEAR_Error')) { return $this->_rewriteCode($result); } $state = RM_STATE_READING_HEADER; while (!feof($tmpf) && $state != RM_STATE_READING_BODY) { $buffer = fgets($tmpf, 8192); if ($rewrittenfrom) { if (eregi( '^From: (.*)', $buffer)) { $result = $transport->data($rewrittenfrom); if (is_a($result, 'PEAR_Error')) { return $this->_rewriteCode($result); } $state = RM_STATE_READING_FROM; continue; } else if ($state == RM_STATE_READING_FROM && ($buffer[0] == ' ' || $buffer[0] == "\t")) { /* Folded From header, ignore */ continue; } } if (rtrim($buffer, "\r\n") == '') { $state = RM_STATE_READING_BODY; } else if ($buffer[0] != ' ' && $buffer[0] != "\t") { $state = RM_STATE_READING_HEADER; } $result = $transport->data($buffer); if (is_a($result, 'PEAR_Error')) { return $this->_rewriteCode($result); } } while (!feof($tmpf)) { $buffer = fread($tmpf, 8192); $len = strlen($buffer); /* We can't tolerate that the buffer breaks the data * between \r and \n, so we try to avoid that. The limit * of 100 reads is to battle abuse */ while ($buffer{$len-1} == "\r" && $len < 8192 + 100) { $buffer .= fread($tmpf,1); $len++; } $result = $transport->data($buffer); if (is_a($result, 'PEAR_Error')) { return $this->_rewriteCode($result); } } return $transport->end(); } } // Cleanup function function is_my_domain($addr) { global $conf; if (!empty($conf['filter']['verify_subdomains'])) { $verify_subdomains = $conf['filter']['verify_subdomains']; } else { $verify_subdomains = true; } if (!empty($conf['filter']['email_domain'])) { $email_domain = $conf['filter']['email_domain']; } else { $email_domain = 'localhost'; } $domains = (array) $email_domain; $adrs = imap_rfc822_parse_adrlist($addr, $email_domain); foreach ($adrs as $adr) { $adrdom = $adr->host; if (empty($adrdom)) { continue; } foreach ($domains as $dom) { if ($dom == $adrdom) { return true; } if ($verify_subdomains && substr($adrdom, -strlen($dom)-1) == ".$dom") { return true; } } } return false; } /** Returns a list of allowed email addresses for user $sasluser or a PEAR_Error object if something croaked. */ function addrs_for_uid($sasluser) { global $conf; /* Connect to the LDAP server and retrieve the users' * allowed email addresses */ $ldap = ldap_connect($conf['filter']['ldap_uri']); if (!ldap_bind($ldap, $conf['filter']['bind_dn'], $conf['filter']['bind_pw'])) { return PEAR::raiseError(sprintf(_("Unable to contact LDAP server: %s"), ldap_error($ldap)), OUT_LOG | EX_TEMPFAIL); } $filter = "(&(objectClass=kolabInetOrgPerson)(|(mail=$sasluser)(uid=$sasluser)))"; $result = ldap_search($ldap, $conf['filter']['base_dn'], $filter, array("dn", "mail", "alias" )); if (!$result) { return PEAR::raiseError(sprintf(_("Unable to perform LDAP search: %s"), ldap_error($ldap)), OUT_LOG | EX_TEMPFAIL); } $entries = ldap_get_entries($ldap, $result); if ($entries['count'] != 1) { return PEAR::raiseError(sprintf(_("%s objects returned for uid %s. Unable to look up user."), $entries['count'], $sasluser), OUT_LOG | EX_TEMPFAIL); } unset($entries[0]['mail']['count']); unset($entries[0]['alias']['count']); $addrs = array_merge((array) $entries[0]['mail'],(array) $entries[0]['alias']); $mail = $entries[0]['mail'][0]; ldap_free_result($result); $filter = "(&(objectClass=kolabInetOrgPerson)(kolabDelegate=$mail))"; $result = ldap_search($ldap, $conf['filter']['base_dn'], $filter, array("dn", "mail" )); if (!$result) { return PEAR::raiseError(sprintf(_("Unable to perform LDAP search: %s"), ldap_error($ldap)), OUT_LOG | EX_TEMPFAIL); } $entries = ldap_get_entries($ldap, $result); unset( $entries['count'] ); foreach( $entries as $adr ) { if( $adr['mail']['count'] > 0 ) { unset($adr['mail']['count']); $addrs = array_merge((array) $addrs,(array) $adr['mail']); } } ldap_free_result($result); ldap_close($ldap); return $addrs; } /** Returns the format string used to rewrite the From header for untrusted messages */ function get_untrusted_subject_insert($sasluser,$sender) { global $conf; if ($sasluser) { if (!empty($conf['filter']['untrusted_subject_insert'])) { $fmt = $conf['filter']['untrusted_subject_insert']; } else { $fmt = _("(UNTRUSTED, sender is <%s>)"); } } else { if (!empty($conf['filter']['unauthenticated_subject_insert'])) { $fmt = $conf['filter']['unauthenticated_subject_insert']; } else { $fmt = _("(UNTRUSTED, sender <%s> is not authenticated)"); } } return sprintf($fmt, $sender); } /** Check that the From header is not trying to impersonate a valid user that is not $sasluser. Returns one of: * True if From can be accepted * False if From must be rejected * A string with a corrected From header that makes From acceptable * A PEAR_Error object if something croaked */ function verify_sender($sasluser, $sender, $fromhdr, $client_addr) { global $conf; if (!empty($conf['filter']['email_domain'])) { $domains = $conf['filter']['email_domain']; } else { $domains = 'localhost'; } if (!is_array($domains)) { $domains = array($domains); } if (!empty($conf['filter']['local_addr'])) { $local_addr = $conf['filter']['local_addr']; } else { $local_addr = 'localhost'; } if (!empty($conf['filter']['verify_subdomains'])) { $verify_subdomains = $conf['filter']['verify_subdomains']; } else { $verify_subdomains = true; } if (!empty($conf['filter']['reject_forged_from_headers'])) { $reject_forged_from_headers = $conf['filter']['reject_forged_from_headers']; } else { $reject_forged_from_headers = true; } if (!empty($conf['filter']['kolabhosts'])) { $kolabhosts = $conf['filter']['kolabhosts']; } else { $kolabhosts = 'localhost'; } /* Allow anything from localhost and * fellow Kolab-hosts */ if ($client_addr == $local_addr) { return true; } $kolabhosts = split(',', $kolabhosts); $kolabhosts = array_map('gethostbyname', $kolabhosts ); if (array_search($client_addr, $kolabhosts) !== false) { return true; } if ($sasluser) { $allowed_addrs = addrs_for_uid($sasluser); if (is_a($allowed_addrs, 'PEAR_Error')) { return $allowed_addrs; } } else { $allowed_addrs = false; } $untrusted = get_untrusted_subject_insert($sasluser,$sender); $adrs = imap_rfc822_parse_adrlist($fromhdr, $domains[0]); foreach ($adrs as $adr) { $from = $adr->mailbox . '@' . $adr->host; $fromdom = $adr->host; if ($sasluser) { if (!in_array(strtolower($from), $allowed_addrs)) { Horde::logMessage(sprintf(_("%s is not an allowed From address for %s"), $from, $sasluser), __FILE__, __LINE__, PEAR_LOG_DEBUG); return false; } } else { foreach ($domains as $domain) { if (strtolower($fromdom) == $domain || ($verify_subdomains && substr($fromdom, -strlen($domain)-1) == ".$domain")) { if ($reject_forged_from_header) { Horde::logMessage(sprintf(_("%s is not an allowed From address for unauthenticated users."), $from), __FILE__, __LINE__, PEAR_LOG_DEBUG); return false; } else { /* Rewrite */ Horde::logMessage(sprintf(_("%s is not an allowed From address for unauthenticated users, rewriting."), $from), __FILE__, __LINE__, PEAR_LOG_DEBUG); if (strpos( $fromhdr, $untrusted )===false) { return '"'.str_replace(array("\\",'"'),array("\\\\",'\"'),$adr->personal).' '.$untrusted.'" '.'<'.$from.'>'; } else { return true; } } } } } } /* All seems OK */ return true; /* TODO: What do we do about subdomains? */ /* $senderdom = substr(strrchr($sender, '@'), 1); foreach( $domains as $domain ) { if( $conf['filter']['verify_subdomains'] ) { if( ($senderdom == $domain || $fromdom == $domain || substr($senderdom, -strlen($domain)-1) == ".$domain" || substr($fromdom, -strlen($domain)-1) == ".$domain" ) && $sender != $from ) { return false; } } else { if( ($senderdom == $domain || $fromdom == $domain ) && $sender != $from ) { return false; } } } } return true; */ } ?> --- Outgoing.php DELETED --- From cvs at kolab.org Tue Nov 27 18:16:07 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 27 Nov 2007 18:16:07 +0100 (CET) Subject: marcus: server/kolabd/kolabd/dist_conf suse,1.63,1.64 Message-ID: <20071127171607.44414600D65@lists.intevation.de> Author: marcus Update of /kolabrepository/server/kolabd/kolabd/dist_conf In directory doto:/tmp/cvs-serv20129/dist_conf Modified Files: suse Log Message: - updated dist_conf/suse file Index: suse =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/suse,v retrieving revision 1.63 retrieving revision 1.64 diff -u -d -r1.63 -r1.64 --- suse 7 Nov 2007 14:50:41 -0000 1.63 +++ suse 27 Nov 2007 17:16:05 -0000 1.64 @@ -141,17 +141,17 @@ sasl_authdconffile=${sysconfdir}/saslauthd.conf sasl_logfile=${localstatedir}/log/saslauthd.log -resmgr_logfile=${localstatedir}/log/kolab/resmgr.log +resmgr_logdir=${localstatedir}/log/kolab resmgr_scriptsdir=${kolab_scriptsdir}/resmgr resmgr_confdir=${resmgr_scriptsdir} resmgr_conffile_usr=kolab resmgr_conffile_grp=root -resmgr_filterdir=${localstatedir}/lib/kolab/resmgr +resmgr_filterdir=${localstatedir}/lib/kolab/kolab-filter resmgr_usr=root resmgr_grp=root fbview_logfile=${localstatedir}/log/kolab/fbview.log -freebusy_logfile=${localstatedir}/log/kolab/freebusy.log +freebusy_logdir=${localstatedir}/log/kolab freebusy_confdir=${webserver_document_root}${webserver_web_prefix}/freebusy freebusy_cachedir=${webserver_document_root}${webserver_web_prefix}/freebusy/cache freebusy_usr=wwwrun From cvs at kolab.org Wed Nov 28 07:06:14 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:06:14 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter ChangeLog,1.2,1.3 Message-ID: <20071128060614.DD16D600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter In directory doto:/tmp/cvs-serv10688/php-kolab/Kolab_Filter Modified Files: ChangeLog Log Message: kolab/issue2177 (Better logging in kolabfilter and kolabmailboxfilter) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/ChangeLog,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- ChangeLog 26 Nov 2007 16:35:21 -0000 1.2 +++ ChangeLog 28 Nov 2007 06:06:12 -0000 1.3 @@ -1,3 +1,15 @@ +2007-11-28 Gunnar Wrobel

    + + * Filter/Incoming.php: + + kolab/issue2174 (Automatic Invitation Policy not working with invites as attachment) + +2007-11-27 Gunnar Wrobel

    + + * Filter/*: + + kolab/issue2177 (Better logging in kolabfilter and kolabmailboxfilter) + 2007-11-26 Gunnar Wrobel

    * Filter/*: From cvs at kolab.org Wed Nov 28 07:06:14 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:06:14 +0100 (CET) Subject: gunnar: server release-notes.txt,1.180,1.181 Message-ID: <20071128060614.D928E600166@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv10688 Modified Files: release-notes.txt Log Message: kolab/issue2177 (Better logging in kolabfilter and kolabmailboxfilter) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.180 retrieving revision 1.181 diff -u -d -r1.180 -r1.181 --- release-notes.txt 27 Nov 2007 14:21:15 -0000 1.180 +++ release-notes.txt 28 Nov 2007 06:06:12 -0000 1.181 @@ -88,6 +88,7 @@ Adapted to the restructured php-kolab/Kolab_Filter package. + kolab/issue2174 (Automatic Invitation Policy not working with invites as attachment) kolab/issue2177 (Better logging in kolabfilter and kolabmailboxfilter) - kolab-freebusy-2.2.???-2007???? From cvs at kolab.org Wed Nov 28 07:06:15 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:06:15 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/Filter Content.php, 1.1, 1.2 Incoming.php, 1.5, 1.6 Outlook.php, 1.3, 1.4 Resource.php, 1.3, 1.4 Transport.php, 1.1, 1.2 Message-ID: <20071128060615.3D127600166@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/Filter In directory doto:/tmp/cvs-serv10688/php-kolab/Kolab_Filter/Filter Modified Files: Content.php Incoming.php Outlook.php Resource.php Transport.php Log Message: kolab/issue2177 (Better logging in kolabfilter and kolabmailboxfilter) Index: Content.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Content.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Content.php 27 Nov 2007 15:31:44 -0000 1.1 +++ Content.php 28 Nov 2007 06:06:12 -0000 1.2 @@ -88,7 +88,7 @@ if ($from && $verify_from_header) { $rc = verify_sender($this->_sasl_username, $this->_sender, $from, $this->_client_address); - if (is_a($rc, 'PEAR_Error')) { + if ($rc instanceof PEAR_Error) { return $rc; } else if ($rc === true) { /* All OK, do nothing */ @@ -169,7 +169,7 @@ require_once('Kolab/Filter/Outlook.php'); $rc = olhacks_embedical($this->_fqhostname, $this->_sender, $this->_recipients, $from, $subject, $this->_tmpfname); - if (is_a($rc, 'PEAR_Error')) { + if ($rc instanceof PEAR_Error) { return $rc; } else if ($rc === true) { return; @@ -182,7 +182,7 @@ } $result = $this->deliver($rewrittenfrom); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { return $result; } } @@ -213,7 +213,7 @@ } $result = $transport->start($this->_sender, $this->_recipients); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { return $this->_rewriteCode($result); } @@ -223,7 +223,7 @@ if ($rewrittenfrom) { if (eregi( '^From: (.*)', $buffer)) { $result = $transport->data($rewrittenfrom); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { return $this->_rewriteCode($result); } $state = RM_STATE_READING_FROM; @@ -240,7 +240,7 @@ $state = RM_STATE_READING_HEADER; } $result = $transport->data($buffer); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { return $this->_rewriteCode($result); } } @@ -257,7 +257,7 @@ $len++; } $result = $transport->data($buffer); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { return $this->_rewriteCode($result); } } @@ -454,7 +454,7 @@ if ($sasluser) { $allowed_addrs = addrs_for_uid($sasluser); - if (is_a($allowed_addrs, 'PEAR_Error')) { + if ($allowed_addrs instanceof PEAR_Error) { return $allowed_addrs; } } else { Index: Incoming.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Incoming.php,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Incoming.php 27 Nov 2007 14:21:15 -0000 1.5 +++ Incoming.php 28 Nov 2007 06:06:12 -0000 1.6 @@ -45,19 +45,20 @@ { Filter::Filter($transport, $debug); } - + function _parse($inh = STDIN) { $ical = false; $add_headers = array(); $headers_done = false; - while (!feof($inh) && !$headers_done) { + /* High speed section START */ + while (!feof($inh)) { $buffer = fgets($inh, 8192); $line = rtrim( $buffer, "\r\n"); if ($line == '') { /* Done with headers */ - $headers_done = true; + break; } else if (eregi('^Content-Type: text/calendar', $line)) { Horde::logMessage(_("Found iCal data in message"), __FILE__, __LINE__, PEAR_LOG_DEBUG); @@ -73,15 +74,39 @@ } } - while (!feof($inh)) { - $buffer = fread($inh, 8192); - if (@fwrite($this->_tmpfh, $buffer) === false) { - $msg = $php_errormsg; - return PEAR::raiseError(sprintf(_("Error: Could not write to %s: %s"), - $this->_tmpfile, $msg), - OUT_LOG | EX_TEMPFAIL); + if ($ical) { + /* iCal already identified. So let's just pipe the rest of + * the message through. + */ + while (!feof($inh)) { + $buffer = fread($inh, 8192); + if (@fwrite($this->_tmpfh, $buffer) === false) { + $msg = $php_errormsg; + return PEAR::raiseError(sprintf(_("Error: Could not write to %s: %s"), + $this->_tmpfile, $msg), + OUT_LOG | EX_TEMPFAIL); + } + } + } else { + /* No ical yet? Let's try to identify the string + * "text/calendar". It's likely that we have a mime + * multipart message including iCal then. + */ + while (!feof($inh)) { + $buffer = fread($inh, 8192); + if (@fwrite($this->_tmpfh, $buffer) === false) { + $msg = $php_errormsg; + return PEAR::raiseError(sprintf(_("Error: Could not write to %s: %s"), + $this->_tmpfile, $msg), + OUT_LOG | EX_TEMPFAIL); + } + if (strpos($buffer, 'text/calendar')) { + $ical = true; + } } } + /* High speed section END */ + if (@fclose($this->_tmpfh) === false) { $msg = $php_errormsg; @@ -101,7 +126,7 @@ $rc = resmgr_filter($this->_fqhostname, $this->_sender, $recip, $this->_tmpfile); - if (is_a($rc, 'PEAR_Error')) { + if ($rc instanceof PEAR_Error) { return $rc; } else if ($rc === true) { $newrecips[] = $recip; @@ -120,7 +145,7 @@ return; } else { $result = $this->deliver(); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { return $result; } } @@ -155,7 +180,7 @@ } $result = $transport->start($this->_sender, $this->_recipients); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { return $this->_rewriteCode($result); } @@ -166,13 +191,13 @@ $headers_done = true; foreach ($this->_add_headers as $h) { $result = $transport->data("$h\r\n"); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { return $this->_rewriteCode($result); } } } $result = $transport->data($buffer); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { return $this->_rewriteCode($result); } } @@ -190,7 +215,7 @@ $len++; } $result = $transport->data($buffer); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { return $this->_rewriteCode($result); } } Index: Outlook.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Outlook.php,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Outlook.php 27 Nov 2007 12:35:23 -0000 1.3 +++ Outlook.php 28 Nov 2007 06:06:12 -0000 1.4 @@ -220,7 +220,7 @@ } $result = $mailer->send($recipients, $headerArray, $msg); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { $append = sprintf(_(", original code %s"), $result->getCode()); $result->message = $result->getMessage() . $append; $result->code = OUT_LOG | OUT_STDOUT | EX_TEMPFAIL; Index: Resource.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Resource.php,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Resource.php 27 Nov 2007 14:21:15 -0000 1.3 +++ Resource.php 28 Nov 2007 06:06:12 -0000 1.4 @@ -860,7 +860,7 @@ } else { $date = gmstrftime('%Y-%m-%dT%H:%M:%SZ', $ical_date); } - Horde::logMessage(sprintf(_("To <%s>"), $date)), + Horde::logMessage(sprintf(_("To <%s>"), $date), __FILE__, __LINE__, PEAR_LOG_DEBUG); return $date; } @@ -877,7 +877,7 @@ $epoch=gmmktime($temp['hour'],$temp['minute'],$temp['second'],$temp['month'],$temp['mday'],$temp['year']); } else { $epoch=$values;} - Horde::logMessage(sprintf(_("Converted <%s>"), $epoch)), + Horde::logMessage(sprintf(_("Converted <%s>"), $epoch), __FILE__, __LINE__, PEAR_LOG_DEBUG); return $epoch; } @@ -1516,7 +1516,7 @@ // Delete any old events that we updated if( !empty( $updated_messages ) ) { Horde::logMessage(sprintf(_("Deleting %s because of update."), - join(', ',$deleted_messages)) + join(', ',$deleted_messages)), __FILE__, __LINE__, PEAR_LOG_DEBUG); $imap->deleteMessages( $updated_messages ); $imap->expunge(); Index: Transport.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Transport.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Transport.php 26 Nov 2007 16:35:21 -0000 1.1 +++ Transport.php 28 Nov 2007 06:06:12 -0000 1.2 @@ -53,7 +53,7 @@ function start($sender, $recips) { $transport = $this->createTransport(); - if (is_a($transport, 'PEAR_Error')) { + if ($transport instanceof PEAR_Error) { return $transport; } $this->transport = $transport; @@ -62,12 +62,12 @@ $this->got_newline = true; $result = $this->transport->connect(); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { return $result; } $result = $this->transport->mailFrom($sender); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { $resp = $this->transport->getResponse(); return PEAR::raiseError(sprintf(_("Failed to set sender: %s, code=%s"), $resp[1], $resp[0]), $resp[0]); @@ -80,7 +80,7 @@ $reciperrors = array(); foreach ($recips as $recip) { $result = $this->transport->rcptTo($recip); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { $resp = $this->transport->getResponse(); $reciperrors[] = PEAR::raiseError(sprintf(_("Failed to set recipient: %s, code=%s"), $resp[1], $resp[0]), $resp[0]); @@ -99,12 +99,12 @@ } $result = $this->transport->_put('DATA'); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { return $result; } $result = $this->transport->_parseResponse(354); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { return $result; } @@ -149,7 +149,7 @@ * Because a single leading period (.) signifies an end to the data, * legitimate leading periods need to be "doubled" (e.g. '..'). */ - if ($this->got_newline && $data[0] == '.') { + if ($this->got_newline && !empty($data) && $data[0] == '.') { $data = '.'.$data; } @@ -163,7 +163,7 @@ function data($data) { $this->quotedataline($data); $result = $this->transport->_send($data); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { return $result; } return true; @@ -178,11 +178,11 @@ } $result = $this->transport->_send($dot); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { return $result; } $result = $this->transport->_parseResponse(250); - if (is_a($result, 'PEAR_Error')) { + if ($result instanceof PEAR_Error) { return $result; } $this->transport->disconnect(); @@ -261,6 +261,24 @@ } } +class DropWrapper extends StdOutWrapper +{ + function mailFrom($sender) + { + return true; + } + + function rcptTo($recipient) + { + return true; + } + + function _send($data) + { + return true; + } +} + class Transport_StdOut extends Transport { @@ -271,6 +289,20 @@ function &createTransport() { $transport = &new StdOutWrapper(); + return $transport; + } +} + +class Transport_Drop extends Transport +{ + + function Transport_SMTP($host = 'irrelevant', $port = 0) + { + } + + function &createTransport() + { + $transport = &new DropWrapper(); return $transport; } } From cvs at kolab.org Wed Nov 28 07:06:14 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:06:14 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/tests load.phpt,NONE,1.1 Message-ID: <20071128060614.DBF02600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/tests In directory doto:/tmp/cvs-serv10688/php-kolab/Kolab_Filter/tests Added Files: load.phpt Log Message: kolab/issue2177 (Better logging in kolabfilter and kolabmailboxfilter) --- NEW FILE: load.phpt --- --TEST-- A load test for the incoming filter. --SKIPIF-- --FILE-- _lineFormat = '%2$s [%3$s] %7$s'; // Activate this if you need the log information. This will // make the test fail though //$logger->_lineFormat = '%2$s [%3$s] %4$s %7$s'; $timer = 0.0; for ($i = 0; $i < 100; $i++) { $parser = &new Filter_Incoming('Drop', true); $inh = fopen('_data/tiny.eml', 'r'); $parser->parse($inh); $timer += $parser->_stop(); $parser = &new Filter_Incoming('Drop', true); $inh = fopen('_data/simple.eml', 'r'); $parser->parse($inh); $timer += $parser->_stop(); $parser = &new Filter_Incoming('Drop', true); $inh = fopen('_data/big.eml', 'r'); $parser->parse($inh); $timer += $parser->_stop(); } // Let's use a average limit of 0.05 s per mail The above section runs // 300 Mails through parsing so this should take at most 15 seconds. var_dump($timer < 15); ?> --EXPECT-- bool(true) From cvs at kolab.org Wed Nov 28 07:51:30 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:30 +0100 (CET) Subject: gunnar: server/kolab-horde-framework Makefile, 1.8, NONE kolab-horde-framework.spec, 1.9, NONE Message-ID: <20071128065130.1A61C60016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework In directory doto:/tmp/cvs-serv14629 Removed Files: Makefile kolab-horde-framework.spec Log Message: Removed kolab-horde-framework --- Makefile DELETED --- --- kolab-horde-framework.spec DELETED --- From cvs at kolab.org Wed Nov 28 07:51:30 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:30 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework .htaccess, 1.1, NONE install-packages.bat, 1.1, NONE install-packages.php, 1.1, NONE Message-ID: <20071128065130.21C8A600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework In directory doto:/tmp/cvs-serv14629/kolab-horde-framework Removed Files: .htaccess install-packages.bat install-packages.php Log Message: Removed kolab-horde-framework --- .htaccess DELETED --- --- install-packages.bat DELETED --- --- install-packages.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:30 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:30 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Auth Auth.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065130.4E71360016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Auth In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Auth Removed Files: Auth.php package.xml Log Message: Removed kolab-horde-framework --- Auth.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:30 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:30 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Auth/Auth Signup.php, 1.1, NONE application.php, 1.1, NONE auto.php, 1.1, NONE composite.php, 1.1, NONE customsql.php, 1.1, NONE cyrsql.php, 1.1, NONE cyrus.php, 1.1, NONE ftp.php, 1.1, NONE http.php, 1.1, NONE imap.php, 1.1, NONE imsp.php, 1.1, NONE ipbasic.php, 1.1, NONE ipmap.php, 1.1, NONE krb5.php, 1.1, NONE ldap.php, 1.1, NONE login.php, 1.1, NONE mcal.php, 1.1, NONE pam.php, 1.1, NONE passwd.php, 1.1, NONE radius.php, 1.1, NONE sasl.php, 1.1, NONE smb.php, 1.1, NONE sql.php, 1.1, NONE yahoo.php, 1.1, NONE Message-ID: <20071128065130.9584960016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Auth/Auth In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Auth/Auth Removed Files: Signup.php application.php auto.php composite.php customsql.php cyrsql.php cyrus.php ftp.php http.php imap.php imsp.php ipbasic.php ipmap.php krb5.php ldap.php login.php mcal.php pam.php passwd.php radius.php sasl.php smb.php sql.php yahoo.php Log Message: Removed kolab-horde-framework --- Signup.php DELETED --- --- application.php DELETED --- --- auto.php DELETED --- --- composite.php DELETED --- --- customsql.php DELETED --- --- cyrsql.php DELETED --- --- cyrus.php DELETED --- --- ftp.php DELETED --- --- http.php DELETED --- --- imap.php DELETED --- --- imsp.php DELETED --- --- ipbasic.php DELETED --- --- ipmap.php DELETED --- --- krb5.php DELETED --- --- ldap.php DELETED --- --- login.php DELETED --- --- mcal.php DELETED --- --- pam.php DELETED --- --- passwd.php DELETED --- --- radius.php DELETED --- --- sasl.php DELETED --- --- smb.php DELETED --- --- sql.php DELETED --- --- yahoo.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:30 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:30 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Block Block.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065130.A00AF600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Block In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Block Removed Files: Block.php package.xml Log Message: Removed kolab-horde-framework --- Block.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:30 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:30 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Browser/Browser imode.php, 1.1, NONE Message-ID: <20071128065130.E0E2260016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Browser/Browser In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Browser/Browser Removed Files: imode.php Log Message: Removed kolab-horde-framework --- imode.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:30 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:30 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Browser Browser.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065130.B010D60016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Browser In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Browser Removed Files: Browser.php package.xml Log Message: Removed kolab-horde-framework --- Browser.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:31 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:31 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/CLI CLI.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065131.2C3D060016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/CLI In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/CLI Removed Files: CLI.php package.xml Log Message: Removed kolab-horde-framework --- CLI.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:31 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:31 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Cache Cache.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065131.77F2C60016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Cache In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Cache Removed Files: Cache.php package.xml Log Message: Removed kolab-horde-framework --- Cache.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:30 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:30 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Block/Block Collection.php, 1.1, NONE Layout.php, 1.1, NONE UI.php, 1.1, NONE Message-ID: <20071128065130.A9C2A600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Block/Block In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Block/Block Removed Files: Collection.php Layout.php UI.php Log Message: Removed kolab-horde-framework --- Collection.php DELETED --- --- Layout.php DELETED --- --- UI.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:31 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:31 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Cache/Cache file.php, 1.1, NONE zps.php, 1.1, NONE Message-ID: <20071128065131.90E3E60016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Cache/Cache In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Cache/Cache Removed Files: file.php zps.php Log Message: Removed kolab-horde-framework --- file.php DELETED --- --- zps.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:31 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:31 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Cipher Cipher.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065131.B00EF60016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Cipher In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Cipher Removed Files: Cipher.php package.xml Log Message: Removed kolab-horde-framework --- Cipher.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:32 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:32 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Cipher/Cipher/BlockMode cbc.php, 1.1, NONE cfb64.php, 1.1, NONE ecb.php, 1.1, NONE ofb64.php, 1.1, NONE Message-ID: <20071128065132.0048D60016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Cipher/Cipher/BlockMode In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Cipher/Cipher/BlockMode Removed Files: cbc.php cfb64.php ecb.php ofb64.php Log Message: Removed kolab-horde-framework --- cbc.php DELETED --- --- cfb64.php DELETED --- --- ecb.php DELETED --- --- ofb64.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:31 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:31 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Cipher/Cipher BlockMode.php, 1.1, NONE blowfish.php, 1.1, NONE cast128.php, 1.1, NONE des.php, 1.1, NONE rc2.php, 1.1, NONE rc4.php, 1.1, NONE Message-ID: <20071128065131.B4F7E600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Cipher/Cipher In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Cipher/Cipher Removed Files: BlockMode.php blowfish.php cast128.php des.php rc2.php rc4.php Log Message: Removed kolab-horde-framework --- BlockMode.php DELETED --- --- blowfish.php DELETED --- --- cast128.php DELETED --- --- des.php DELETED --- --- rc2.php DELETED --- --- rc4.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:32 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:32 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Cipher/tests Cipher1.phpt, 1.1, NONE Cipher2.phpt, 1.1, NONE Cipher3.phpt, 1.1, NONE Cipher4.phpt, 1.1, NONE Cipher5.phpt, 1.1, NONE Cipher6.phpt, 1.1, NONE cipherTest.php, 1.1, NONE Message-ID: <20071128065132.471D060016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Cipher/tests In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Cipher/tests Removed Files: Cipher1.phpt Cipher2.phpt Cipher3.phpt Cipher4.phpt Cipher5.phpt Cipher6.phpt cipherTest.php Log Message: Removed kolab-horde-framework --- Cipher1.phpt DELETED --- --- Cipher2.phpt DELETED --- --- Cipher3.phpt DELETED --- --- Cipher4.phpt DELETED --- --- Cipher5.phpt DELETED --- --- Cipher6.phpt DELETED --- --- cipherTest.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:32 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:32 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Crypt/Crypt pgp.php, 1.1, NONE smime.php, 1.1, NONE Message-ID: <20071128065132.9BFD8600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Crypt/Crypt In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Crypt/Crypt Removed Files: pgp.php smime.php Log Message: Removed kolab-horde-framework --- pgp.php DELETED --- --- smime.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:32 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:32 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Crypt Crypt.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065132.97B1C600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Crypt In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Crypt Removed Files: Crypt.php package.xml Log Message: Removed kolab-horde-framework --- Crypt.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:32 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:32 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Compress Compress.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065132.8B74F60016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Compress In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Compress Removed Files: Compress.php package.xml Log Message: Removed kolab-horde-framework --- Compress.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:32 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:32 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Compress/Compress dbx.php, 1.1, NONE gzip.php, 1.1, NONE tar.php, 1.1, NONE tnef.php, 1.1, NONE zip.php, 1.1, NONE Message-ID: <20071128065132.90576600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Compress/Compress In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Compress/Compress Removed Files: dbx.php gzip.php tar.php tnef.php zip.php Log Message: Removed kolab-horde-framework --- dbx.php DELETED --- --- gzip.php DELETED --- --- tar.php DELETED --- --- tnef.php DELETED --- --- zip.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:32 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:32 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Data Data.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065132.F016A600D66@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Data In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Data Removed Files: Data.php package.xml Log Message: Removed kolab-horde-framework --- Data.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:33 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:33 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Data/Data csv.php, 1.1, NONE icalendar.php, 1.1, NONE imc.php, 1.1, NONE palm.php, 1.1, NONE pdb.php, 1.1, NONE tsv.php, 1.1, NONE vcard.php, 1.1, NONE vnote.php, 1.1, NONE vtodo.php, 1.1, NONE Message-ID: <20071128065133.389F6600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Data/Data In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Data/Data Removed Files: csv.php icalendar.php imc.php palm.php pdb.php tsv.php vcard.php vnote.php vtodo.php Log Message: Removed kolab-horde-framework --- csv.php DELETED --- --- icalendar.php DELETED --- --- imc.php DELETED --- --- palm.php DELETED --- --- pdb.php DELETED --- --- tsv.php DELETED --- --- vcard.php DELETED --- --- vnote.php DELETED --- --- vtodo.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:33 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:33 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Data/tests csv_importFile_01.phpt, 1.1, NONE simple_dos.csv, 1.1, NONE simple_unix.csv, 1.1, NONE Message-ID: <20071128065133.7584D600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Data/tests In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Data/tests Removed Files: csv_importFile_01.phpt simple_dos.csv simple_unix.csv Log Message: Removed kolab-horde-framework --- csv_importFile_01.phpt DELETED --- --- simple_dos.csv DELETED --- --- simple_unix.csv DELETED --- From cvs at kolab.org Wed Nov 28 07:51:33 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:33 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/DataTree DataTree.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065133.763E3600D66@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/DataTree In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/DataTree Removed Files: DataTree.php package.xml Log Message: Removed kolab-horde-framework --- DataTree.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:34 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:34 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/File_PDF/PDF/fonts courier.php, 1.1, NONE helvetica.php, 1.1, NONE helveticab.php, 1.1, NONE helveticabi.php, 1.1, NONE helveticai.php, 1.1, NONE symbol.php, 1.1, NONE times.php, 1.1, NONE timesb.php, 1.1, NONE timesbi.php, 1.1, NONE timesi.php, 1.1, NONE zapfdingbats.php, 1.1, NONE Message-ID: <20071128065134.203DB600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/File_PDF/PDF/fonts In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/File_PDF/PDF/fonts Removed Files: courier.php helvetica.php helveticab.php helveticabi.php helveticai.php symbol.php times.php timesb.php timesbi.php timesi.php zapfdingbats.php Log Message: Removed kolab-horde-framework --- courier.php DELETED --- --- helvetica.php DELETED --- --- helveticab.php DELETED --- --- helveticabi.php DELETED --- --- helveticai.php DELETED --- --- symbol.php DELETED --- --- times.php DELETED --- --- timesb.php DELETED --- --- timesbi.php DELETED --- --- timesi.php DELETED --- --- zapfdingbats.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:33 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:33 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Editor/Editor htmlarea.php, 1.1, NONE Message-ID: <20071128065133.CB03C600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Editor/Editor In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Editor/Editor Removed Files: htmlarea.php Log Message: Removed kolab-horde-framework --- htmlarea.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:33 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:33 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/DataTree/DataTree null.php, 1.1, NONE sql.php, 1.1, NONE Message-ID: <20071128065133.77E4B600D67@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/DataTree/DataTree In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/DataTree/DataTree Removed Files: null.php sql.php Log Message: Removed kolab-horde-framework --- null.php DELETED --- --- sql.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:33 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:33 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/File_PDF PDF.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065133.CBBDB600D66@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/File_PDF In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/File_PDF Removed Files: PDF.php package.xml Log Message: Removed kolab-horde-framework --- PDF.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:34 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:34 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Form Form.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065134.6262D600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Form In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Form Removed Files: Form.php package.xml Log Message: Removed kolab-horde-framework --- Form.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:33 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:33 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Editor Editor.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065133.7A63C600D68@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Editor In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Editor Removed Files: Editor.php package.xml Log Message: Removed kolab-horde-framework --- Editor.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:34 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:34 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Graph Graph.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065134.6EA2D600D66@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Graph In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Graph Removed Files: Graph.php package.xml Log Message: Removed kolab-horde-framework --- Graph.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:34 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:34 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Form/Form/Action conditional_enable.php, 1.1, NONE conditional_setvalue.php, 1.1, NONE reload.php, 1.1, NONE submit.php, 1.1, NONE sum_fields.php, 1.1, NONE updatefield.php, 1.1, NONE Message-ID: <20071128065134.6C465600D65@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Form/Form/Action In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Form/Form/Action Removed Files: conditional_enable.php conditional_setvalue.php reload.php submit.php sum_fields.php updatefield.php Log Message: Removed kolab-horde-framework --- conditional_enable.php DELETED --- --- conditional_setvalue.php DELETED --- --- reload.php DELETED --- --- submit.php DELETED --- --- sum_fields.php DELETED --- --- updatefield.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:34 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:34 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Graph/Graph/Chart pie.php, 1.1, NONE pie3d.php, 1.1, NONE Message-ID: <20071128065134.897B3600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Graph/Graph/Chart In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Graph/Graph/Chart Removed Files: pie.php pie3d.php Log Message: Removed kolab-horde-framework --- pie.php DELETED --- --- pie3d.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:34 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:34 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Form/Form Action.php, 1.1, NONE Renderer.php, 1.1, NONE Message-ID: <20071128065134.675AD600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Form/Form In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Form/Form Removed Files: Action.php Renderer.php Log Message: Removed kolab-horde-framework --- Action.php DELETED --- --- Renderer.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:36 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Graph/Graph/Plot bar.php, 1.1, NONE bargrouped.php, 1.1, NONE barstacked.php, 1.1, NONE line.php, 1.1, NONE scatter.php, 1.1, NONE Message-ID: <20071128065136.20982600D65@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Graph/Graph/Plot In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Graph/Graph/Plot Removed Files: bar.php bargrouped.php barstacked.php line.php scatter.php Log Message: Removed kolab-horde-framework --- bar.php DELETED --- --- bargrouped.php DELETED --- --- barstacked.php DELETED --- --- line.php DELETED --- --- scatter.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:36 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Group Group.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065136.94271600D69@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Group In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Group Removed Files: Group.php package.xml Log Message: Removed kolab-horde-framework --- Group.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:36 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Graph/tests .htaccess, 1.1, NONE test01.php, 1.1, NONE test02.php, 1.1, NONE test03.php, 1.1, NONE test04.php, 1.1, NONE test05.php, 1.1, NONE test06.php, 1.1, NONE test_bargrouped.php, 1.1, NONE test_pie3d.php, 1.1, NONE test_pie3d_gd.php, 1.1, NONE Message-ID: <20071128065136.9364F600D68@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Graph/tests In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Graph/tests Removed Files: .htaccess test01.php test02.php test03.php test04.php test05.php test06.php test_bargrouped.php test_pie3d.php test_pie3d_gd.php Log Message: Removed kolab-horde-framework --- .htaccess DELETED --- --- test01.php DELETED --- --- test02.php DELETED --- --- test03.php DELETED --- --- test04.php DELETED --- --- test05.php DELETED --- --- test06.php DELETED --- --- test_bargrouped.php DELETED --- --- test_pie3d.php DELETED --- --- test_pie3d_gd.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:36 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Horde Horde.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065136.DAD59600D69@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Horde In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Horde Removed Files: Horde.php package.xml Log Message: Removed kolab-horde-framework --- Horde.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:36 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Group/Group hooks.php, 1.1, NONE Message-ID: <20071128065136.94E08600D6A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Group/Group In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Group/Group Removed Files: hooks.php Log Message: Removed kolab-horde-framework --- hooks.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:36 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/History History.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065136.DA18F600D68@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/History In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/History Removed Files: History.php package.xml Log Message: Removed kolab-horde-framework --- History.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:39 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/IMAP package.xml, 1.1, NONE Message-ID: <20071128065139.B1019600D6D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/IMAP In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/IMAP Removed Files: package.xml Log Message: Removed kolab-horde-framework --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:39 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Identity Identity.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065139.E3F29600D70@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Identity In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Identity Removed Files: Identity.php package.xml Log Message: Removed kolab-horde-framework --- Identity.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:39 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/IMAP/IMAP/ACL rfc2086.php, 1.1, NONE Message-ID: <20071128065139.E1972600D6D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/IMAP/IMAP/ACL In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/IMAP/IMAP/ACL Removed Files: rfc2086.php Log Message: Removed kolab-horde-framework --- rfc2086.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:39 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/IMAP/IMAP ACL.php, 1.1, NONE Admin.php, 1.1, NONE Cache.php, 1.1, NONE Search.php, 1.1, NONE Sort.php, 1.1, NONE Tree.php, 1.1, NONE Message-ID: <20071128065139.DCB98600D6A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/IMAP/IMAP In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/IMAP/IMAP Removed Files: ACL.php Admin.php Cache.php Search.php Sort.php Tree.php Log Message: Removed kolab-horde-framework --- ACL.php DELETED --- --- Admin.php DELETED --- --- Cache.php DELETED --- --- Search.php DELETED --- --- Sort.php DELETED --- --- Tree.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:39 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Horde/Horde Config.php, 1.1, NONE Help.php, 1.1, NONE Registry.php, 1.1, NONE Message-ID: <20071128065139.AFF5F600D6A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Horde/Horde In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Horde/Horde Removed Files: Config.php Help.php Registry.php Log Message: Removed kolab-horde-framework --- Config.php DELETED --- --- Help.php DELETED --- --- Registry.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:40 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:40 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Image/tests .htaccess, 1.1, NONE gd.php, 1.1, NONE im.php, 1.1, NONE svg.php, 1.1, NONE swf.php, 1.1, NONE Message-ID: <20071128065140.C56C9600D70@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Image/tests In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Image/tests Removed Files: .htaccess gd.php im.php svg.php swf.php Log Message: Removed kolab-horde-framework --- .htaccess DELETED --- --- gd.php DELETED --- --- im.php DELETED --- --- svg.php DELETED --- --- swf.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:40 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:40 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Image Image.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065140.AE4F8600D65@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Image In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Image Removed Files: Image.php package.xml Log Message: Removed kolab-horde-framework --- Image.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:40 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:40 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Image/Image/Decorator border.php, 1.1, NONE watermark.php, 1.1, NONE Message-ID: <20071128065140.BF7B4600D6D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Image/Image/Decorator In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Image/Image/Decorator Removed Files: border.php watermark.php Log Message: Removed kolab-horde-framework --- border.php DELETED --- --- watermark.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:42 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:42 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Kolab Kolab.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065142.0FB1A600D6A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Kolab In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Kolab Removed Files: Kolab.php package.xml Log Message: Removed kolab-horde-framework --- Kolab.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:40 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:40 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Image/Image Decorator.php, 1.1, NONE gd.php, 1.1, NONE im.php, 1.1, NONE png.php, 1.1, NONE rgb.php, 1.1, NONE svg.php, 1.1, NONE swf.php, 1.1, NONE Message-ID: <20071128065140.BAA15600D6A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Image/Image In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Image/Image Removed Files: Decorator.php gd.php im.php png.php rgb.php svg.php swf.php Log Message: Removed kolab-horde-framework --- Decorator.php DELETED --- --- gd.php DELETED --- --- im.php DELETED --- --- png.php DELETED --- --- rgb.php DELETED --- --- svg.php DELETED --- --- swf.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:43 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:43 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Links Links.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065143.4091A600D65@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Links In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Links Removed Files: Links.php package.xml Log Message: Removed kolab-horde-framework --- Links.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:43 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:43 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/MIME MIME.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065143.45718600D6A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/MIME In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/MIME Removed Files: MIME.php package.xml Log Message: Removed kolab-horde-framework --- MIME.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:43 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:43 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/MIME/MIME Contents.php, 1.1, NONE Headers.php, 1.2, NONE Magic.php, 1.1, NONE Message.php, 1.1, NONE Part.php, 1.1, NONE Structure.php, 1.1, NONE Viewer.php, 1.1, NONE mime.magic.php, 1.1, NONE mime.mapping.php, 1.1, NONE Message-ID: <20071128065143.4D79F600D6D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/MIME/MIME In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/MIME/MIME Removed Files: Contents.php Headers.php Magic.php Message.php Part.php Structure.php Viewer.php mime.magic.php mime.mapping.php Log Message: Removed kolab-horde-framework --- Contents.php DELETED --- --- Headers.php DELETED --- --- Magic.php DELETED --- --- Message.php DELETED --- --- Part.php DELETED --- --- Structure.php DELETED --- --- Viewer.php DELETED --- --- mime.magic.php DELETED --- --- mime.mapping.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:42 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:42 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/LDAP LDAP.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065142.CBA67600D6A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/LDAP In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/LDAP Removed Files: LDAP.php package.xml Log Message: Removed kolab-horde-framework --- LDAP.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:43 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:43 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/MIME/MIME/Viewer/ooo common.xsl, 1.1, NONE global_document.xsl, 1.1, NONE main_html.xsl, 1.1, NONE palm.xsl, 1.1, NONE style_header.xsl, 1.1, NONE style_inlined.xsl, 1.1, NONE style_mapping.xsl, 1.1, NONE table.xsl, 1.1, NONE table_cells.xsl, 1.1, NONE table_columns.xsl, 1.1, NONE table_rows.xsl, 1.1, NONE Message-ID: <20071128065143.7D9C2600D6A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/MIME/MIME/Viewer/ooo In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/MIME/MIME/Viewer/ooo Removed Files: common.xsl global_document.xsl main_html.xsl palm.xsl style_header.xsl style_inlined.xsl style_mapping.xsl table.xsl table_cells.xsl table_columns.xsl table_rows.xsl Log Message: Removed kolab-horde-framework --- common.xsl DELETED --- --- global_document.xsl DELETED --- --- main_html.xsl DELETED --- --- palm.xsl DELETED --- --- style_header.xsl DELETED --- --- style_inlined.xsl DELETED --- --- style_mapping.xsl DELETED --- --- table.xsl DELETED --- --- table_cells.xsl DELETED --- --- table_columns.xsl DELETED --- --- table_rows.xsl DELETED --- From cvs at kolab.org Wed Nov 28 07:51:43 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:43 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Maintenance Maintenance.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065143.B5BDC600D65@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Maintenance In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Maintenance Removed Files: Maintenance.php package.xml Log Message: Removed kolab-horde-framework --- Maintenance.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:44 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Menu Menu.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065144.51A2A600D65@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Menu In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Menu Removed Files: Menu.php package.xml Log Message: Removed kolab-horde-framework --- Menu.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:44 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Mobile Mobile.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065144.9AC86600D6A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Mobile In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Mobile Removed Files: Mobile.php package.xml Log Message: Removed kolab-horde-framework --- Mobile.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:43 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:43 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/MIME/MIME/Viewer deb.php, 1.1, NONE default.php, 1.1, NONE enriched.php, 1.1, NONE enscript.php, 1.1, NONE html.php, 1.1, NONE icalendar.php, 1.1, NONE images.php, 1.1, NONE msexcel.php, 1.1, NONE mspowerpoint.php, 1.1, NONE msword.php, 1.1, NONE ooo.php, 1.1, NONE pdf.php, 1.1, NONE php.php, 1.1, NONE plain.php, 1.1, NONE rar.php, 1.1, NONE report.php, 1.1, NONE rfc822.php, 1.1, NONE richtext.php, 1.1, NONE rpm.php, 1.1, NONE security.php, 1.1, NONE source.php, 1.1, NONE srchighlite.php, 1.1, NONE tgz.php, 1.1, NONE tnef.php, 1.1, NONE vcard.php, 1.1, NONE webcpp.php, 1.1, NONE zip.php, 1.1, NONE Message-ID: <20071128065143.6CB68600D65@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/MIME/MIME/Viewer In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/MIME/MIME/Viewer Removed Files: deb.php default.php enriched.php enscript.php html.php icalendar.php images.php msexcel.php mspowerpoint.php msword.php ooo.php pdf.php php.php plain.php rar.php report.php rfc822.php richtext.php rpm.php security.php source.php srchighlite.php tgz.php tnef.php vcard.php webcpp.php zip.php Log Message: Removed kolab-horde-framework --- deb.php DELETED --- --- default.php DELETED --- --- enriched.php DELETED --- --- enscript.php DELETED --- --- html.php DELETED --- --- icalendar.php DELETED --- --- images.php DELETED --- --- msexcel.php DELETED --- --- mspowerpoint.php DELETED --- --- msword.php DELETED --- --- ooo.php DELETED --- --- pdf.php DELETED --- --- php.php DELETED --- --- plain.php DELETED --- --- rar.php DELETED --- --- report.php DELETED --- --- rfc822.php DELETED --- --- richtext.php DELETED --- --- rpm.php DELETED --- --- security.php DELETED --- --- source.php DELETED --- --- srchighlite.php DELETED --- --- tgz.php DELETED --- --- tnef.php DELETED --- --- vcard.php DELETED --- --- webcpp.php DELETED --- --- zip.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:44 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Mobile/Mobile/Renderer html.php, 1.1, NONE wml.php, 1.1, NONE Message-ID: <20071128065144.AA733600D70@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Mobile/Mobile/Renderer In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Mobile/Mobile/Renderer Removed Files: html.php wml.php Log Message: Removed kolab-horde-framework --- html.php DELETED --- --- wml.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:44 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/NLS NLS.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065144.AE4FD600D65@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/NLS In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/NLS Removed Files: NLS.php package.xml Log Message: Removed kolab-horde-framework --- NLS.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:44 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Mobile/Mobile Renderer.php, 1.1, NONE Message-ID: <20071128065144.A9B48600D6D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Mobile/Mobile In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Mobile/Mobile Removed Files: Renderer.php Log Message: Removed kolab-horde-framework --- Renderer.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:45 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:45 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/NLS/NLS GeoIP.php, 1.1, NONE coordinates.php, 1.1, NONE countries.php, 1.1, NONE tld.php, 1.1, NONE Message-ID: <20071128065145.7B60D600D70@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/NLS/NLS In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/NLS/NLS Removed Files: GeoIP.php coordinates.php countries.php tld.php Log Message: Removed kolab-horde-framework --- GeoIP.php DELETED --- --- coordinates.php DELETED --- --- countries.php DELETED --- --- tld.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:46 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:46 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Net_Cyrus Cyrus.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065146.1BF48600D6D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Net_Cyrus In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Net_Cyrus Removed Files: Cyrus.php package.xml Log Message: Removed kolab-horde-framework --- Cyrus.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:46 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:46 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Net_IMAP IMAP.php, 1.1, NONE IMAPProtocol.php, 1.1, NONE IMAPProtocol.php.optimized, 1.1, NONE IMAPProtocol.php.orig, 1.1, NONE IMAPProtocol.php.working, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065146.6065E600D70@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Net_IMAP In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Net_IMAP Removed Files: IMAP.php IMAPProtocol.php IMAPProtocol.php.optimized IMAPProtocol.php.orig IMAPProtocol.php.working package.xml Log Message: Removed kolab-horde-framework --- IMAP.php DELETED --- --- IMAPProtocol.php DELETED --- --- IMAPProtocol.php.optimized DELETED --- --- IMAPProtocol.php.orig DELETED --- --- IMAPProtocol.php.working DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:46 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:46 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Net_IMSP IMSP.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065146.954A760C4A2@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Net_IMSP In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Net_IMSP Removed Files: IMSP.php package.xml Log Message: Removed kolab-horde-framework --- IMSP.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:46 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:46 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Net_IMSP/IMSP Auth.php, 1.1, NONE Book.php, 1.1, NONE Options.php, 1.1, NONE Utils.php, 1.1, NONE Message-ID: <20071128065146.E6A6B600D76@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Net_IMSP/IMSP In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Net_IMSP/IMSP Removed Files: Auth.php Book.php Options.php Utils.php Log Message: Removed kolab-horde-framework --- Auth.php DELETED --- --- Book.php DELETED --- --- Options.php DELETED --- --- Utils.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:46 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:46 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Net_IMAP/docs test_IMAP.php, 1.1, NONE test_IMAPProtocol.php, 1.1, NONE Message-ID: <20071128065146.65629600D73@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Net_IMAP/docs In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Net_IMAP/docs Removed Files: test_IMAP.php test_IMAPProtocol.php Log Message: Removed kolab-horde-framework --- test_IMAP.php DELETED --- --- test_IMAPProtocol.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:47 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:47 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Net_SMS SMS.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065147.62D4B600D7A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Net_SMS In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Net_SMS Removed Files: SMS.php package.xml Log Message: Removed kolab-horde-framework --- SMS.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:47 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:47 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Net_LMTP LMTP.php, 1.1, NONE package.xml, 1.1, NONE test_lmtp.php, 1.1, NONE Message-ID: <20071128065147.3E21B60C4A5@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Net_LMTP In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Net_LMTP Removed Files: LMTP.php package.xml test_lmtp.php Log Message: Removed kolab-horde-framework --- LMTP.php DELETED --- --- package.xml DELETED --- --- test_lmtp.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:47 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:47 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Net_IMSP/IMSP/Auth cram_md5.php, 1.1, NONE plaintext.php, 1.1, NONE Message-ID: <20071128065147.323CC600D6D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Net_IMSP/IMSP/Auth In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Net_IMSP/IMSP/Auth Removed Files: cram_md5.php plaintext.php Log Message: Removed kolab-horde-framework --- cram_md5.php DELETED --- --- plaintext.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:47 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:47 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Notification Notification.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065147.7DB1C60C4A7@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Notification In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Notification Removed Files: Notification.php package.xml Log Message: Removed kolab-horde-framework --- Notification.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:47 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:47 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Net_SMS/SMS clickatell_http.php, 1.1, NONE sms2email_http.php, 1.1, NONE vodafoneitaly_smtp.php, 1.1, NONE Message-ID: <20071128065147.6A1D660C4A6@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Net_SMS/SMS In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Net_SMS/SMS Removed Files: clickatell_http.php sms2email_http.php vodafoneitaly_smtp.php Log Message: Removed kolab-horde-framework --- clickatell_http.php DELETED --- --- sms2email_http.php DELETED --- --- vodafoneitaly_smtp.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:51 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:51 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Notification/Notification/Listener javascript.php, 1.1, NONE mobile.php, 1.1, NONE status.php, 1.1, NONE Message-ID: <20071128065151.212B360016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Notification/Notification/Listener In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Notification/Notification/Listener Removed Files: javascript.php mobile.php status.php Log Message: Removed kolab-horde-framework --- javascript.php DELETED --- --- mobile.php DELETED --- --- status.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:51 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:51 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Notification/Notification Event.php, 1.1, NONE Listener.php, 1.1, NONE Message-ID: <20071128065151.22820600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Notification/Notification In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Notification/Notification Removed Files: Event.php Listener.php Log Message: Removed kolab-horde-framework --- Event.php DELETED --- --- Listener.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:51 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:51 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Perms Perms.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065151.21D8F600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Perms In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Perms Removed Files: Perms.php package.xml Log Message: Removed kolab-horde-framework --- Perms.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:51 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:51 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Prefs Prefs.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065151.2BDFA600D66@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Prefs In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Prefs Removed Files: Prefs.php package.xml Log Message: Removed kolab-horde-framework --- Prefs.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:51 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:51 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/RPC/RPC soap.php, 1.1, NONE syncml.php, 1.1, NONE syncml_wbxml.php, 1.1, NONE webdav.php, 1.1, NONE xmlrpc.php, 1.1, NONE Message-ID: <20071128065151.2BF1D600D69@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/RPC/RPC In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/RPC/RPC Removed Files: soap.php syncml.php syncml_wbxml.php webdav.php xmlrpc.php Log Message: Removed kolab-horde-framework --- soap.php DELETED --- --- syncml.php DELETED --- --- syncml_wbxml.php DELETED --- --- webdav.php DELETED --- --- xmlrpc.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:51 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:51 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Prefs/Prefs CategoryManager.php, 1.1, NONE UI.php, 1.1, NONE imsp.php, 1.1, NONE ldap.php, 1.1, NONE session.php, 1.1, NONE sql.php, 1.1, NONE Message-ID: <20071128065151.27F2E600D67@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Prefs/Prefs In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Prefs/Prefs Removed Files: CategoryManager.php UI.php imsp.php ldap.php session.php sql.php Log Message: Removed kolab-horde-framework --- CategoryManager.php DELETED --- --- UI.php DELETED --- --- imsp.php DELETED --- --- ldap.php DELETED --- --- session.php DELETED --- --- sql.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:51 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:51 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/RPC RPC.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065151.2BE93600D68@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/RPC In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/RPC Removed Files: RPC.php package.xml Log Message: Removed kolab-horde-framework --- RPC.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:51 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:51 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/SQL/SQL Attributes.php, 1.1, NONE Message-ID: <20071128065151.37007600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/SQL/SQL In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/SQL/SQL Removed Files: Attributes.php Log Message: Removed kolab-horde-framework --- Attributes.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:51 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:51 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/RPC/tests rpc-test.php, 1.1, NONE Message-ID: <20071128065151.32892600D6B@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/RPC/tests In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/RPC/tests Removed Files: rpc-test.php Log Message: Removed kolab-horde-framework --- rpc-test.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:51 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:51 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Scheduler/Scheduler cron.php, 1.1, NONE Message-ID: <20071128065151.407CD600D6F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Scheduler/Scheduler In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Scheduler/Scheduler Removed Files: cron.php Log Message: Removed kolab-horde-framework --- cron.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:51 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:51 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/SQL SQL.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065151.36F5D60016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/SQL In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/SQL Removed Files: SQL.php package.xml Log Message: Removed kolab-horde-framework --- SQL.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:51 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:51 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Perms/Perms UI.php, 1.1, NONE Message-ID: <20071128065151.3C4C9600D6D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Perms/Perms In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Perms/Perms Removed Files: UI.php Log Message: Removed kolab-horde-framework --- UI.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:51 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:51 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Scheduler Scheduler.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065151.3709E600D6C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Scheduler In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Scheduler Removed Files: Scheduler.php package.xml Log Message: Removed kolab-horde-framework --- Scheduler.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:53 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:53 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Search Search.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065153.7DF2760016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Search In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Search Removed Files: Search.php package.xml Log Message: Removed kolab-horde-framework --- Search.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:55 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:55 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Search/Search google.php, 1.1, NONE Message-ID: <20071128065155.B63D1600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Search/Search In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Search/Search Removed Files: google.php Log Message: Removed kolab-horde-framework --- google.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:56 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:56 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/SessionHandler SessionHandler.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065156.28A49600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/SessionHandler In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/SessionHandler Removed Files: SessionHandler.php package.xml Log Message: Removed kolab-horde-framework --- SessionHandler.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:56 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:56 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Serialize Serialize.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065156.2639F600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Serialize In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Serialize Removed Files: Serialize.php package.xml Log Message: Removed kolab-horde-framework --- Serialize.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:56 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:56 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/SessionHandler/SessionHandler dbm.php, 1.1, NONE mysql.php, 1.1, NONE oci8.php, 1.1, NONE pgsql.php, 1.1, NONE sapdb.php, 1.1, NONE sql.php, 1.1, NONE Message-ID: <20071128065156.34F3D600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/SessionHandler/SessionHandler In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/SessionHandler/SessionHandler Removed Files: dbm.php mysql.php oci8.php pgsql.php sapdb.php sql.php Log Message: Removed kolab-horde-framework --- dbm.php DELETED --- --- mysql.php DELETED --- --- oci8.php DELETED --- --- pgsql.php DELETED --- --- sapdb.php DELETED --- --- sql.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:56 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:56 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Secret Secret.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065156.1C5EF60016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Secret In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Secret Removed Files: Secret.php package.xml Log Message: Removed kolab-horde-framework --- Secret.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:56 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:56 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Share Share.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065156.9DC8860016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Share In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Share Removed Files: Share.php package.xml Log Message: Removed kolab-horde-framework --- Share.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:57 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:57 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/SyncML SyncML.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065157.34C7A60016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/SyncML In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/SyncML Removed Files: SyncML.php package.xml Log Message: Removed kolab-horde-framework --- SyncML.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:57 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:57 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/SyncML/SyncML Command.php, 1.1, NONE State.php, 1.1, NONE Sync.php, 1.1, NONE Message-ID: <20071128065157.4116A600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/SyncML/SyncML In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/SyncML/SyncML Removed Files: Command.php State.php Sync.php Log Message: Removed kolab-horde-framework --- Command.php DELETED --- --- State.php DELETED --- --- Sync.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:57 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:57 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/SyncML/SyncML/Command/Sync Add.php, 1.1, NONE ContentSyncElement.php, 1.1, NONE Delete.php, 1.1, NONE Replace.php, 1.1, NONE SyncElement.php, 1.1, NONE Message-ID: <20071128065157.57021600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/SyncML/SyncML/Command/Sync In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/SyncML/SyncML/Command/Sync Removed Files: Add.php ContentSyncElement.php Delete.php Replace.php SyncElement.php Log Message: Removed kolab-horde-framework --- Add.php DELETED --- --- ContentSyncElement.php DELETED --- --- Delete.php DELETED --- --- Replace.php DELETED --- --- SyncElement.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:57 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:57 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/SyncML/SyncML/Command Alert.php, 1.1, NONE Final.php, 1.1, NONE Get.php, 1.1, NONE Put.php, 1.1, NONE Replace.php, 1.1, NONE Results.php, 1.1, NONE Status.php, 1.1, NONE Sync.php, 1.1, NONE Message-ID: <20071128065157.4FEA960016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/SyncML/SyncML/Command In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/SyncML/SyncML/Command Removed Files: Alert.php Final.php Get.php Put.php Replace.php Results.php Status.php Sync.php Log Message: Removed kolab-horde-framework --- Alert.php DELETED --- --- Final.php DELETED --- --- Get.php DELETED --- --- Put.php DELETED --- --- Replace.php DELETED --- --- Results.php DELETED --- --- Status.php DELETED --- --- Sync.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:57 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:57 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/SyncML/SyncML/Sync OneWayFromClientSync.php, 1.1, NONE OneWayFromServerSync.php, 1.1, NONE RefreshFromClientSync.php, 1.1, NONE RefreshFromServerSync.php, 1.1, NONE SlowSync.php, 1.1, NONE TwoWaySync.php, 1.1, NONE Message-ID: <20071128065157.5BE4C600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/SyncML/SyncML/Sync In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/SyncML/SyncML/Sync Removed Files: OneWayFromClientSync.php OneWayFromServerSync.php RefreshFromClientSync.php RefreshFromServerSync.php SlowSync.php TwoWaySync.php Log Message: Removed kolab-horde-framework --- OneWayFromClientSync.php DELETED --- --- OneWayFromServerSync.php DELETED --- --- RefreshFromClientSync.php DELETED --- --- RefreshFromServerSync.php DELETED --- --- SlowSync.php DELETED --- --- TwoWaySync.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:57 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:57 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/SyncML/docs TODO, 1.1, NONE Message-ID: <20071128065157.8086560016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/SyncML/docs In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/SyncML/docs Removed Files: TODO Log Message: Removed kolab-horde-framework --- TODO DELETED --- From cvs at kolab.org Wed Nov 28 07:51:56 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:56 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/SessionObjects SessionObjects.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065156.4386560016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/SessionObjects In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/SessionObjects Removed Files: SessionObjects.php package.xml Log Message: Removed kolab-horde-framework --- SessionObjects.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:58 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:58 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Text Text.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065158.5E58360016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Text In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Text Removed Files: Text.php package.xml Log Message: Removed kolab-horde-framework --- Text.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:58 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:58 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Text/tests Flowed.phpt, 1.1, NONE Message-ID: <20071128065158.73DFF600D65@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Text/tests In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Text/tests Removed Files: Flowed.phpt Log Message: Removed kolab-horde-framework --- Flowed.phpt DELETED --- From cvs at kolab.org Wed Nov 28 07:51:58 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:58 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Template Template.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065158.1C62060016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Template In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Template Removed Files: Template.php package.xml Log Message: Removed kolab-horde-framework --- Template.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:58 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:58 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Text_Diff Diff.php, 1.1, NONE Diff3.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065158.74BCD600D66@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Text_Diff In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Text_Diff Removed Files: Diff.php Diff3.php package.xml Log Message: Removed kolab-horde-framework --- Diff.php DELETED --- --- Diff3.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:51:58 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:58 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Text/Text Filter.php, 1.1, NONE Flowed.php, 1.1, NONE Message-ID: <20071128065158.63405600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Text/Text In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Text/Text Removed Files: Filter.php Flowed.php Log Message: Removed kolab-horde-framework --- Filter.php DELETED --- --- Flowed.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:58 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:58 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Text_Diff/Diff Renderer.php, 1.1, NONE Message-ID: <20071128065158.C4E0860016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Text_Diff/Diff In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Text_Diff/Diff Removed Files: Renderer.php Log Message: Removed kolab-horde-framework --- Renderer.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:59 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:59 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Text_Diff/Diff/Renderer unified.php, 1.1, NONE Message-ID: <20071128065159.129D2600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Text_Diff/Diff/Renderer In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Text_Diff/Diff/Renderer Removed Files: unified.php Log Message: Removed kolab-horde-framework --- unified.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:59 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:59 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Text_reST package.xml, 1.1, NONE reST.php, 1.1, NONE Message-ID: <20071128065159.76C85600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Text_reST In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Text_reST Removed Files: package.xml reST.php Log Message: Removed kolab-horde-framework --- package.xml DELETED --- --- reST.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:58 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:58 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Text/Text/Filter bbcode.php, 1.1, NONE emails.php, 1.1, NONE emoticons.php, 1.1, NONE linkurls.php, 1.1, NONE rst.php, 1.1, NONE Message-ID: <20071128065158.68960600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Text/Text/Filter In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Text/Text/Filter Removed Files: bbcode.php emails.php emoticons.php linkurls.php rst.php Log Message: Removed kolab-horde-framework --- bbcode.php DELETED --- --- emails.php DELETED --- --- emoticons.php DELETED --- --- linkurls.php DELETED --- --- rst.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:59 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:59 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Text_Diff/docs/examples 1.txt, 1.1, NONE 2.txt, 1.1, NONE diff.php, 1.1, NONE Message-ID: <20071128065159.6F6A860016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Text_Diff/docs/examples In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Text_Diff/docs/examples Removed Files: 1.txt 2.txt diff.php Log Message: Removed kolab-horde-framework --- 1.txt DELETED --- --- 2.txt DELETED --- --- diff.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:59 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:59 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Text_reST/reST Formatter.php, 1.1, NONE Parser.php, 1.1, NONE Message-ID: <20071128065159.B641C60016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Text_reST/reST In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Text_reST/reST Removed Files: Formatter.php Parser.php Log Message: Removed kolab-horde-framework --- Formatter.php DELETED --- --- Parser.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:59 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:59 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Text_reST/reST/Formatter html.php, 1.1, NONE Message-ID: <20071128065159.B8A03600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Text_reST/reST/Formatter In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Text_reST/reST/Formatter Removed Files: html.php Log Message: Removed kolab-horde-framework --- html.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:59 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:59 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Text_Diff/tests .cvsignore, 1.1, NONE 1.txt, 1.1, NONE 2.txt, 1.1, NONE diff.phpt, 1.1, NONE unified.phpt, 1.1, NONE Message-ID: <20071128065159.744DC600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Text_Diff/tests In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Text_Diff/tests Removed Files: .cvsignore 1.txt 2.txt diff.phpt unified.phpt Log Message: Removed kolab-horde-framework --- .cvsignore DELETED --- --- 1.txt DELETED --- --- 2.txt DELETED --- --- diff.phpt DELETED --- --- unified.phpt DELETED --- From cvs at kolab.org Wed Nov 28 07:51:59 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:59 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Timer Timer.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065159.C1023600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Timer In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Timer Removed Files: Timer.php package.xml Log Message: Removed kolab-horde-framework --- Timer.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:52:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:00 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Tree/Tree html.php, 1.1, NONE javascript.php, 1.1, NONE Message-ID: <20071128065200.82CB9600D65@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Tree/Tree In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Tree/Tree Removed Files: html.php javascript.php Log Message: Removed kolab-horde-framework --- html.php DELETED --- --- javascript.php DELETED --- From cvs at kolab.org Wed Nov 28 07:52:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:00 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Token/Token file.php, 1.1, NONE sql.php, 1.1, NONE Message-ID: <20071128065200.81435600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Token/Token In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Token/Token Removed Files: file.php sql.php Log Message: Removed kolab-horde-framework --- file.php DELETED --- --- sql.php DELETED --- From cvs at kolab.org Wed Nov 28 07:51:59 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:51:59 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Text_reST/tests headings.phpt, 1.1, NONE lblocks.phpt, 1.1, NONE links.phpt, 1.1, NONE roles.phpt, 1.1, NONE Message-ID: <20071128065159.BB310600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Text_reST/tests In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Text_reST/tests Removed Files: headings.phpt lblocks.phpt links.phpt roles.phpt Log Message: Removed kolab-horde-framework --- headings.phpt DELETED --- --- lblocks.phpt DELETED --- --- links.phpt DELETED --- --- roles.phpt DELETED --- From cvs at kolab.org Wed Nov 28 07:52:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:00 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Token Token.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065200.80880600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Token In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Token Removed Files: Token.php package.xml Log Message: Removed kolab-horde-framework --- Token.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:52:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:00 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/UI package.xml, 1.1, NONE Message-ID: <20071128065200.83921600D66@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/UI In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/UI Removed Files: package.xml Log Message: Removed kolab-horde-framework --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:52:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:00 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/UI/UI Language.php, 1.1, NONE Pager.php, 1.1, NONE Table.php, 1.1, NONE Tabs.php, 1.1, NONE VarRenderer.php, 1.1, NONE Widget.php, 1.1, NONE Message-ID: <20071128065200.86316600D67@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/UI/UI In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/UI/UI Removed Files: Language.php Pager.php Table.php Tabs.php VarRenderer.php Widget.php Log Message: Removed kolab-horde-framework --- Language.php DELETED --- --- Pager.php DELETED --- --- Table.php DELETED --- --- Tabs.php DELETED --- --- VarRenderer.php DELETED --- --- Widget.php DELETED --- From cvs at kolab.org Wed Nov 28 07:52:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:00 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Tree Tree.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065200.81FDF600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Tree In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Tree Removed Files: Tree.php package.xml Log Message: Removed kolab-horde-framework --- Tree.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:52:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:00 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Util Array.php, 1.1, NONE String.php, 1.1, NONE Util.php, 1.1, NONE Variables.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065200.D60B660016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Util In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Util Removed Files: Array.php String.php Util.php Variables.php package.xml Log Message: Removed kolab-horde-framework --- Array.php DELETED --- --- String.php DELETED --- --- Util.php DELETED --- --- Variables.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:52:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:00 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/UI/UI/VarRenderer html.php, 1.1, NONE Message-ID: <20071128065200.91C14600D68@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/UI/UI/VarRenderer In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/UI/UI/VarRenderer Removed Files: html.php Log Message: Removed kolab-horde-framework --- html.php DELETED --- From cvs at kolab.org Wed Nov 28 07:52:01 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:01 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/Util/tests String.phpt, 1.1, NONE String2.phpt, 1.1, NONE utf-8.phpt, 1.1, NONE Message-ID: <20071128065201.2B2D9600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/Util/tests In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/Util/tests Removed Files: String.phpt String2.phpt utf-8.phpt Log Message: Removed kolab-horde-framework --- String.phpt DELETED --- --- String2.phpt DELETED --- --- utf-8.phpt DELETED --- From cvs at kolab.org Wed Nov 28 07:52:01 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:01 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/VC VC.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065201.368EC600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/VC In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/VC Removed Files: VC.php package.xml Log Message: Removed kolab-horde-framework --- VC.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:52:01 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:01 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/VC/VC cvs.php, 1.1, NONE rcs.php, 1.1, NONE svn.php, 1.1, NONE Message-ID: <20071128065201.3753E600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/VC/VC In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/VC/VC Removed Files: cvs.php rcs.php svn.php Log Message: Removed kolab-horde-framework --- cvs.php DELETED --- --- rcs.php DELETED --- --- svn.php DELETED --- From cvs at kolab.org Wed Nov 28 07:52:01 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:01 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/VFS VFS.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065201.BB30D600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/VFS In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/VFS Removed Files: VFS.php package.xml Log Message: Removed kolab-horde-framework --- VFS.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:52:01 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:01 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/VC/docs TODO, 1.1, NONE Message-ID: <20071128065201.747BD60016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/VC/docs In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/VC/docs Removed Files: TODO Log Message: Removed kolab-horde-framework --- TODO DELETED --- From cvs at kolab.org Wed Nov 28 07:52:01 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:01 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/VFS/scripts vfs.php, 1.1, NONE Message-ID: <20071128065201.C9D5B600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/VFS/scripts In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/VFS/scripts Removed Files: vfs.php Log Message: Removed kolab-horde-framework --- vfs.php DELETED --- From cvs at kolab.org Wed Nov 28 07:52:02 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:02 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/XML_SVG SVG.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065202.A7A6B600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/XML_SVG In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/XML_SVG Removed Files: SVG.php package.xml Log Message: Removed kolab-horde-framework --- SVG.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:52:02 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:02 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/XML_RAX RAX.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065202.A52E660016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/XML_RAX In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/XML_RAX Removed Files: RAX.php package.xml Log Message: Removed kolab-horde-framework --- RAX.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:52:02 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:02 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/XML_WBXML WBXML.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065202.F34CF60016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/XML_WBXML In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/XML_WBXML Removed Files: WBXML.php package.xml Log Message: Removed kolab-horde-framework --- WBXML.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:52:03 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:03 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/XML_WBXML/WBXML ContentHandler.php, 1.1, NONE DTD.php, 1.1, NONE DTDManager.php, 1.1, NONE Decoder.php, 1.1, NONE Encoder.php, 1.1, NONE Message-ID: <20071128065203.5F957600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/XML_WBXML/WBXML In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/XML_WBXML/WBXML Removed Files: ContentHandler.php DTD.php DTDManager.php Decoder.php Encoder.php Log Message: Removed kolab-horde-framework --- ContentHandler.php DELETED --- --- DTD.php DELETED --- --- DTDManager.php DELETED --- --- Decoder.php DELETED --- --- Encoder.php DELETED --- From cvs at kolab.org Wed Nov 28 07:52:01 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:01 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/VFS/VFS Browser.php, 1.1, NONE GC.php, 1.1, NONE ListItem.php, 1.1, NONE Object.php, 1.1, NONE file.php, 1.1, NONE ftp.php, 1.1, NONE musql.php, 1.1, NONE sql.php, 1.1, NONE sql_file.php, 1.1, NONE Message-ID: <20071128065201.C766C60016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/VFS/VFS In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/VFS/VFS Removed Files: Browser.php GC.php ListItem.php Object.php file.php ftp.php musql.php sql.php sql_file.php Log Message: Removed kolab-horde-framework --- Browser.php DELETED --- --- GC.php DELETED --- --- ListItem.php DELETED --- --- Object.php DELETED --- --- file.php DELETED --- --- ftp.php DELETED --- --- musql.php DELETED --- --- sql.php DELETED --- --- sql_file.php DELETED --- From cvs at kolab.org Wed Nov 28 07:52:03 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:03 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/XML_WBXML/docs/examples decode.php, 1.1, NONE encode.php, 1.1, NONE syncml_client_packet_1.wbxml, 1.1, NONE syncml_client_packet_1.xml, 1.1, NONE syncml_client_packet_2.xml, 1.1, NONE syncml_server_packet_1.wbxml, 1.1, NONE syncml_server_packet_1.xml, 1.1, NONE wbxml.wbxml, 1.1, NONE Message-ID: <20071128065203.76EF460016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/XML_WBXML/docs/examples In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/XML_WBXML/docs/examples Removed Files: decode.php encode.php syncml_client_packet_1.wbxml syncml_client_packet_1.xml syncml_client_packet_2.xml syncml_server_packet_1.wbxml syncml_server_packet_1.xml wbxml.wbxml Log Message: Removed kolab-horde-framework --- decode.php DELETED --- --- encode.php DELETED --- --- syncml_client_packet_1.wbxml DELETED --- --- syncml_client_packet_1.xml DELETED --- --- syncml_client_packet_2.xml DELETED --- --- syncml_server_packet_1.wbxml DELETED --- --- syncml_server_packet_1.xml DELETED --- --- wbxml.wbxml DELETED --- From cvs at kolab.org Wed Nov 28 07:52:03 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:03 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/XML_WBXML/WBXML/DTD SyncML.php, 1.1, NONE SyncMLDevInf.php, 1.1, NONE SyncMLMetInf.php, 1.1, NONE Message-ID: <20071128065203.605A4600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/XML_WBXML/WBXML/DTD In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/XML_WBXML/WBXML/DTD Removed Files: SyncML.php SyncMLDevInf.php SyncMLMetInf.php Log Message: Removed kolab-horde-framework --- SyncML.php DELETED --- --- SyncMLDevInf.php DELETED --- --- SyncMLMetInf.php DELETED --- From cvs at kolab.org Wed Nov 28 07:52:03 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:03 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/iCalendar iCalendar.php, 1.1, NONE package.xml, 1.1, NONE Message-ID: <20071128065203.BB3A760016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/iCalendar In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/iCalendar Removed Files: iCalendar.php package.xml Log Message: Removed kolab-horde-framework --- iCalendar.php DELETED --- --- package.xml DELETED --- From cvs at kolab.org Wed Nov 28 07:52:04 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:04 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/iCalendar/iCalendar valarm.php, 1.1, NONE vevent.php, 1.1, NONE vfreebusy.php, 1.1, NONE vjournal.php, 1.1, NONE vtimezone.php, 1.1, NONE vtodo.php, 1.1, NONE Message-ID: <20071128065204.599E160016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/iCalendar/iCalendar In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/iCalendar/iCalendar Removed Files: valarm.php vevent.php vfreebusy.php vjournal.php vtimezone.php vtodo.php Log Message: Removed kolab-horde-framework --- valarm.php DELETED --- --- vevent.php DELETED --- --- vfreebusy.php DELETED --- --- vjournal.php DELETED --- --- vtimezone.php DELETED --- --- vtodo.php DELETED --- From cvs at kolab.org Wed Nov 28 07:52:03 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 07:52:03 +0100 (CET) Subject: gunnar: server/kolab-horde-framework/kolab-horde-framework/XML_WBXML/tests decode-encode.phpt, 1.1, NONE decode1.phpt, 1.1, NONE decode2.phpt, 1.1, NONE encode-decode.phpt, 1.1, NONE encode1.phpt, 1.1, NONE encode2.phpt, 1.1, NONE Message-ID: <20071128065203.83172600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-horde-framework/kolab-horde-framework/XML_WBXML/tests In directory doto:/tmp/cvs-serv14629/kolab-horde-framework/XML_WBXML/tests Removed Files: decode-encode.phpt decode1.phpt decode2.phpt encode-decode.phpt encode1.phpt encode2.phpt Log Message: Removed kolab-horde-framework --- decode-encode.phpt DELETED --- --- decode1.phpt DELETED --- --- decode2.phpt DELETED --- --- encode-decode.phpt DELETED --- --- encode1.phpt DELETED --- --- encode2.phpt DELETED --- From cvs at kolab.org Wed Nov 28 08:57:56 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 08:57:56 +0100 (CET) Subject: gunnar: server Makefile, 1.42, 1.43 install-kolab.sh, 1.14, 1.15 release-notes.txt, 1.181, 1.182 Message-ID: <20071128075756.844FD600D65@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv16648 Modified Files: Makefile install-kolab.sh release-notes.txt Log Message: Complete removal of kolab-horde-framework. Index: Makefile =================================================================== RCS file: /kolabrepository/server/Makefile,v retrieving revision 1.42 retrieving revision 1.43 diff -u -d -r1.42 -r1.43 --- Makefile 11 Oct 2007 17:05:08 -0000 1.42 +++ Makefile 28 Nov 2007 07:57:54 -0000 1.43 @@ -38,7 +38,6 @@ kolabd \ kolab-freebusy \ kolab-filter \ - kolab-horde-framework \ kolab-webadmin \ HORDE_PACKAGES=pear/PEAR-Auth_SASL \ Index: install-kolab.sh =================================================================== RCS file: /kolabrepository/server/install-kolab.sh,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- install-kolab.sh 25 Oct 2007 16:24:18 -0000 1.14 +++ install-kolab.sh 28 Nov 2007 07:57:54 -0000 1.15 @@ -20,7 +20,7 @@ INSTALL="" -PACKAGES="openpkg-tools openldap postfix kolabd kolab-filter kolab-freebusy kolab-webadmin kolab-horde-framework" +PACKAGES="openpkg-tools openldap postfix kolabd kolab-filter kolab-freebusy kolab-webadmin" DEFINE="-D openldap::with_pth=no -D sasl::with_ldap -D sasl::with_login -D postfix::with_sasl -D postfix::with_ssl -D postfix::with_ldap" #Flags Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.181 retrieving revision 1.182 diff -u -d -r1.181 -r1.182 --- release-notes.txt 28 Nov 2007 06:06:12 -0000 1.181 +++ release-notes.txt 28 Nov 2007 07:57:54 -0000 1.182 @@ -119,6 +119,15 @@ handling and unit testing. + Packages in the OpenPKG based Kolab server release: + + - Kolab packages: + + Removed: + + kolab-horde-framework (now horde-framework) + + Changes between 2.2-beta-1 and 2.2-beta-2: - perl-kolab-2.2.beta2-20071018 From cvs at kolab.org Wed Nov 28 13:45:34 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 13:45:34 +0100 (CET) Subject: gunnar: server/kolabd/kolabd/templates kolab.conf.template.in, 1.2, 1.3 Message-ID: <20071128124534.5ED79600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv23550/kolabd/kolabd/templates Modified Files: kolab.conf.template.in Log Message: kolab/issue1313 (resmngr cannot create calendar folder in multidomain setup) Index: kolab.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/kolab.conf.template.in,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- kolab.conf.template.in 8 Oct 2007 15:21:20 -0000 1.2 +++ kolab.conf.template.in 28 Nov 2007 12:45:32 -0000 1.3 @@ -11,7 +11,7 @@ ldap_master_uri : @@@ldap_master_uri@@@ php_dn : cn=nobody,cn=internal,@@@kolab_basedn@@@ php_pw : @@@nobody_pw@@@ -calendar_dn : cn=calendar,cn=internal,@@@kolab_basedn@@@ +calendar_id : calendar calendar_pw : @@@calendar_pw@@@ slurpd_addr : 127.0.0.1 slurpd_port : 9999 From cvs at kolab.org Wed Nov 28 13:45:34 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 13:45:34 +0100 (CET) Subject: gunnar: server release-notes.txt,1.182,1.183 Message-ID: <20071128124534.56576600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv23550 Modified Files: release-notes.txt Log Message: kolab/issue1313 (resmngr cannot create calendar folder in multidomain setup) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.182 retrieving revision 1.183 diff -u -d -r1.182 -r1.183 --- release-notes.txt 28 Nov 2007 07:57:54 -0000 1.182 +++ release-notes.txt 28 Nov 2007 12:45:31 -0000 1.183 @@ -50,6 +50,8 @@ Show component and log level when sending debug log to stdout. + kolab/issue1313 (resmngr cannot create calendar folder in multidomain setup) + - kolabd-2.1.99-2007???? freebusy_logfile is now freebusy_logdir. From cvs at kolab.org Wed Nov 28 13:45:34 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 13:45:34 +0100 (CET) Subject: gunnar: server/perl-kolab ChangeLog,1.25,1.26 Message-ID: <20071128124534.5F024600D65@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/perl-kolab In directory doto:/tmp/cvs-serv23550/perl-kolab Modified Files: ChangeLog Log Message: kolab/issue1313 (resmngr cannot create calendar folder in multidomain setup) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/perl-kolab/ChangeLog,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- ChangeLog 23 Oct 2007 09:17:44 -0000 1.25 +++ ChangeLog 28 Nov 2007 12:45:32 -0000 1.26 @@ -1,3 +1,13 @@ +2007-11-28 Gunnar Wrobel

    + + * lib/Kolab/LDAP.pm (syncDomains, createObject): + + Added syncing for the domins the user specified. We need one + calendar user in each domain and resource/group accounts should + allow the calendar user to access the mailbox. + + kolab/issue1313 (resmngr cannot create calendar folder in multidomain setup) + 2007-10-23 Thomas Arendsen Hein * lib/Kolab.pm: Show component and log level when sending debug From cvs at kolab.org Wed Nov 28 13:45:34 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 13:45:34 +0100 (CET) Subject: gunnar: server/perl-kolab/lib/Kolab LDAP.pm,1.1,1.2 Message-ID: <20071128124534.59A02600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/perl-kolab/lib/Kolab In directory doto:/tmp/cvs-serv23550/perl-kolab/lib/Kolab Modified Files: LDAP.pm Log Message: kolab/issue1313 (resmngr cannot create calendar folder in multidomain setup) Index: LDAP.pm =================================================================== RCS file: /kolabrepository/server/perl-kolab/lib/Kolab/LDAP.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- LDAP.pm 1 Aug 2007 14:57:42 -0000 1.1 +++ LDAP.pm 28 Nov 2007 12:45:32 -0000 1.2 @@ -36,6 +36,8 @@ use Kolab; use Kolab::Util; use Kolab::Cyrus; +use Digest::SHA1 qw(sha1); +use MIME::Base64 qw(encode_base64); use vars qw(%uid_db %gyard_db %newuid_db %gyard_ts_db %quota_db); require Exporter; @@ -351,8 +353,14 @@ # the groups/resources folder. # TODO: Don't hardcode username Kolab::log('L', "Detected group or resource account, adding ACL for calendar", KOLAB_ERROR ); + my $domain; + if ($uid =~ /.*\@(.*)/) { + $domain = $1; + } else { + $domain = $Kolab::config{'postfix-mydomain'}; + } Kolab::Cyrus::setACL($cyrus,$uid,0, ["$uid all", - 'calendar@'.$Kolab::config{'postfix-mydomain'} + 'calendar@' . $domain .' all']); } } @@ -568,6 +576,8 @@ %uid_db = %newuid_db; + syncDomains(); + Kolab::log('L', 'Finished synchronisation'); } @@ -684,6 +694,101 @@ Kolab::log('L', "Finished `$p' object synchronisation"); return $ts; } + +sub syncDomains +{ + Kolab::log('L', "Synchronising domains"); + + my $ldapmesg; + my $uid; + my $ldapobject; + my @domains; + my $domain; + + my $ldap = &create( + $Kolab::config{'ldap_ip'}, + $Kolab::config{'ldap_port'}, + $Kolab::config{'bind_dn'}, + $Kolab::config{'bind_pw'} + ); + + # If we have an old "cn=calendar" we need to fix the DN of that + # object + my $dn = 'cn=calendar,cn=internal,' . $Kolab::config{'base_dn'}; + $ldapmesg = $ldap->search( + base => 'cn=internal,' . $Kolab::config{'base_dn'}, + scope => 'one', + filter => '(&(objectClass=kolabInetOrgPerson)(cn=calendar))', + attrs => [ + 'objectClass', + 'uid', + ], + ); + + if ( UNIVERSAL::isa( $ldapmesg, 'Net::LDAP::Search') && $ldapmesg->count() > 0) { + Kolab::log('L', "Identified old calendar user with DN `$dn'", KOLAB_DEBUG); + my $cn = 'cn=' . $Kolab::config{'calendar_id'} . '@' . $Kolab::config{'postfix-mydomain'}; + $ldap->moddn($dn, newrdn => $cn, deleteoldrdn => 1); + Kolab::log('L', "Renamed old calendar user with DN `$dn' to DN `$cn'", KOLAB_INFO); + } else { + Kolab::log('L', "Unable to locate old calendar user with DN `$dn'", KOLAB_DEBUG); + } + + if( ref($Kolab::config{'postfix-mydestination'}) eq 'ARRAY' ) { + @domains = @{$Kolab::config{'postfix-mydestination'}}; + } else { + @domains =( $Kolab::config{'postfix-mydestination'} ); + } + + my $sha_pw = hash_pw($Kolab::config{'calendar_pw'}); + foreach $domain (@domains) { + $uid = $Kolab::config{'calendar_id'} . '@' . $domain; + $dn = 'cn=' . $uid . ',cn=internal,' . $Kolab::config{'base_dn'}; + $ldapmesg = $ldap->search( + base => $dn, + scope => 'one', + filter => '(&(objectClass=kolabInetOrgPerson))', + attrs => [ + 'objectClass', + 'uid', + ], + ); + if ( UNIVERSAL::isa( $ldapmesg, 'Net::LDAP::Search') && $ldapmesg->code() <= 0) { + Kolab::log('L', "Calendar user for domain `$domain' exists", KOLAB_DEBUG); + } else { + $ldapobject = Net::LDAP::Entry->new; + $ldapobject->replace('cn' => $uid, + 'sn' => 'n/a n/a', + 'uid' => $uid, + 'userPassword' => $sha_pw, + 'objectclass' => ['top','inetorgperson','kolabinetorgperson']); + $ldapobject->dn($dn); + $ldapobject->update($ldap); + undef $ldapobject; + Kolab::log('L', "Created new calendar user with DN `$dn' for domain `$domain'", KOLAB_INFO); + } + } + +} + +# Taken from Samba::LDAP::User.pm +sub hash_pw { + my $pass = shift; + + # Generate SSHA hash (SHA1 with salt) + my $salt = make_salt(4); + return '{SSHA}' . encode_base64(sha1($pass . $salt) . $salt, ''); +} + +sub make_salt { + my $self = shift; + my $length = shift || '32'; + + my @tab = ('.', '/', 0 .. 9, 'A' .. 'Z', 'a' .. 'z'); + + return join "", @tab[ map {rand 64} (1 .. $length) ]; +} + 1; __END__ From cvs at kolab.org Wed Nov 28 13:45:34 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 13:45:34 +0100 (CET) Subject: gunnar: server/kolabd/kolabd ChangeLog, 1.121, 1.122 kolab.globals.in, 1.9, 1.10 kolab_bootstrap.in, 1.28, 1.29 Message-ID: <20071128124534.5F74B600D66@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv23550/kolabd/kolabd Modified Files: ChangeLog kolab.globals.in kolab_bootstrap.in Log Message: kolab/issue1313 (resmngr cannot create calendar folder in multidomain setup) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.121 retrieving revision 1.122 diff -u -d -r1.121 -r1.122 --- ChangeLog 27 Nov 2007 07:30:24 -0000 1.121 +++ ChangeLog 28 Nov 2007 12:45:32 -0000 1.122 @@ -1,3 +1,17 @@ +2007-11-28 Gunnar Wrobel

    + + * templates/kolab.conf.template.in (calendar_id): + + Rename "calendar_dn" to "calendar_id" + + * kolab_bootstrap.in: + + Use "calendar_id" instead of "calendar_pw" + + * kolab.globals.in (calendar_id): + + Added global calendar_id setting. + 2007-11-27 Gunnar Wrobel

    * dist_conf/common: Index: kolab.globals.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolab.globals.in,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- kolab.globals.in 17 Oct 2007 17:57:13 -0000 1.9 +++ kolab.globals.in 28 Nov 2007 12:45:32 -0000 1.10 @@ -46,3 +46,4 @@ local_addr : 127.0.0.1 bind_any : TRUE bind_addr : 0.0.0.0 +calendar_id : calendar Index: kolab_bootstrap.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolab_bootstrap.in,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- kolab_bootstrap.in 17 Oct 2007 17:57:13 -0000 1.28 +++ kolab_bootstrap.in 28 Nov 2007 12:45:32 -0000 1.29 @@ -270,7 +270,7 @@ my $base_dn = $kolab_config{'base_dn'} || die "could not read base_dn from $kolab_config"; my $php_dn = $kolab_config{'php_dn'} || die "could not read php_dn from $kolab_config"; my $php_pw = $kolab_config{'php_pw'} || die "could not read php_pw from $kolab_config"; -my $calendar_dn = $kolab_config{'calendar_dn'}; +my $calendar_id = $kolab_config{'calendar_id'}; my $calendar_pw = $kolab_config{'calendar_pw'}; my $slurpd_addr = $kolab_config{'slurpd_addr'} || die "could not read slurpd_addr from $kolab_config"; my $slurpd_port = $kolab_config{'slurpd_port'} || die "could not read slurpd_port from $kolab_config"; @@ -353,10 +353,7 @@ $php_pw = `@bindir@/openssl rand -base64 30`; chomp $php_pw; } - if ($calendar_dn =~ /\@\@\@/) { - $calendar_dn =~ s/\@\@\@kolab_basedn\@\@\@/$base_dn/g; - chomp $calendar_dn; - } + if ($calendar_pw =~ /\@\@\@/) { $calendar_pw = `@bindir@/openssl rand -base64 30`; chomp $calendar_pw; @@ -373,7 +370,7 @@ print $fd "ldap_master_uri : $ldap_uri\n"; print $fd "php_dn : $php_dn\n"; print $fd "php_pw : $php_pw\n"; - print $fd "calendar_dn : $calendar_dn\n"; + print $fd "calendar_id : $calendar_id\n"; print $fd "calendar_pw : $calendar_pw\n"; print $fd "slurpd_addr : $slurpd_addr\n"; print $fd "slurpd_port : $slurpd_port\n"; @@ -609,11 +606,11 @@ undef $ldapobject; # create calendar user - $ldapobject = newOrExistingLDAPEntry( $ldap, "cn=calendar,cn=internal,$base_dn" ); - $ldapobject->replace('cn' => 'calendar', 'sn' => 'n/a n/a', 'uid' => 'calendar@'.$domain, + $ldapobject = newOrExistingLDAPEntry( $ldap, "cn=$calendar_id@$domain,cn=internal,$base_dn" ); + $ldapobject->replace('cn' => $calendar_id . '@' . $domain, 'sn' => 'n/a n/a', 'uid' => $calendar_id . '@' . $domain, 'userPassword' => hashPassword($calendar_pw), 'objectclass' => ['top','inetorgperson','kolabinetorgperson']); - $ldapobject->dn("cn=calendar,cn=internal,$base_dn"); + $ldapobject->dn("cn=$calendar_id@$domain,cn=internal,$base_dn"); $mesg = $ldapobject->update($ldap); $mesg && $mesg->code && warn "failed to write entry: ", $mesg->error; undef $ldapobject; @@ -779,7 +776,7 @@ #my $entry = $mesg->entry(0); #$php_pw = $entry->get_value( 'userPassword' ); - $calendar_dn = "cn=calendar,cn=internal,$base_dn"; + $calendar_dn = "cn=$calendar_id@$domain,cn=internal,$base_dn"; $mesg = $ldap->search(base=> $php_dn, scope=> 'exact', filter=> "(objectclass=*)"); if ($mesg && $mesg->count != 1) { print "Calendar object not found, please check your input\n"; @@ -830,7 +827,7 @@ print $fd "ldap_master_uri : $ldap_uri\n"; print $fd "php_dn : $php_dn\n"; print $fd "php_pw : $php_pw\n"; - print $fd "calendar_dn : $calendar_dn\n"; + print $fd "calendar_id : $calendar_id\n"; print $fd "calendar_pw : $calendar_pw\n"; print $fd "slurpd_addr : $slurpd_addr\n"; print $fd "slurpd_port : $slurpd_port\n"; @@ -935,7 +932,7 @@ print $fd "ldap_master_uri : $ldap_uri\n"; print $fd "php_dn : $php_dn\n"; print $fd "php_pw : $php_pw\n"; - print $fd "calendar_dn : $calendar_dn\n"; + print $fd "calendar_id : $calendar_id\n"; print $fd "calendar_pw : $calendar_pw\n"; print $fd "slurpd_addr : $slurpd_addr\n"; print $fd "slurpd_port : $slurpd_port\n"; From cvs at kolab.org Wed Nov 28 16:37:01 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 16:37:01 +0100 (CET) Subject: gunnar: server release-notes.txt,1.183,1.184 Message-ID: <20071128153701.E74F760016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv28709 Modified Files: release-notes.txt Log Message: kolab/issue1313 (resmngr cannot create calendar folder in multidomain setup) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.183 retrieving revision 1.184 diff -u -d -r1.183 -r1.184 --- release-notes.txt 28 Nov 2007 12:45:31 -0000 1.183 +++ release-notes.txt 28 Nov 2007 15:36:59 -0000 1.184 @@ -120,6 +120,7 @@ Restructured Kolab_Filter package with the focus on error handling and unit testing. + kolab/issue1313 (resmngr cannot create calendar folder in multidomain setup) Packages in the OpenPKG based Kolab server release: From cvs at kolab.org Wed Nov 28 16:37:01 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 16:37:01 +0100 (CET) Subject: gunnar: server/kolab-filter/filter config.php,1.8,1.9 Message-ID: <20071128153701.EA422600D65@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-filter/filter In directory doto:/tmp/cvs-serv28709/kolab-filter/filter Modified Files: config.php Log Message: kolab/issue1313 (resmngr cannot create calendar folder in multidomain setup) Index: config.php =================================================================== RCS file: /kolabrepository/server/kolab-filter/filter/config.php,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- config.php 27 Nov 2007 14:52:18 -0000 1.8 +++ config.php 28 Nov 2007 15:36:59 -0000 1.9 @@ -114,7 +114,7 @@ * account should have access to the calendar mailbox of all * resource/group mailboxes. */ -$conf['filter']['calendar_user'] = 'calendar@' . $conf['filter']['email_domain']; +$conf['filter']['calendar_id'] = 'calendar'; $conf['filter']['calendar_pass'] = 'zyx'; /* Filename of private key used to decrypt password from LDAP */ From cvs at kolab.org Wed Nov 28 16:37:01 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 16:37:01 +0100 (CET) Subject: gunnar: server/kolabd/kolabd/templates resmgr.conf.template.in, 1.14, 1.15 Message-ID: <20071128153701.EBAB5600D66@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv28709/kolabd/kolabd/templates Modified Files: resmgr.conf.template.in Log Message: kolab/issue1313 (resmngr cannot create calendar folder in multidomain setup) Index: resmgr.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/resmgr.conf.template.in,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- resmgr.conf.template.in 27 Nov 2007 14:21:15 -0000 1.14 +++ resmgr.conf.template.in 28 Nov 2007 15:36:59 -0000 1.15 @@ -131,7 +131,7 @@ * account should have access to the calendar mailbox of all * resource/group mailboxes. */ -$conf['filter']['calendar_user'] = 'calendar@' . $conf['filter']['email_domain']; +$conf['filter']['calendar_id'] = '@@@calendar_id@@@'; $conf['filter']['calendar_pass'] = '@@@calendar_pw@@@'; /* Filename of private key used to decrypt password from LDAP */ From cvs at kolab.org Wed Nov 28 16:37:01 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 16:37:01 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter ChangeLog,1.3,1.4 Message-ID: <20071128153701.ED1C6600D67@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter In directory doto:/tmp/cvs-serv28709/php-kolab/Kolab_Filter Modified Files: ChangeLog Log Message: kolab/issue1313 (resmngr cannot create calendar folder in multidomain setup) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/ChangeLog,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ChangeLog 28 Nov 2007 06:06:12 -0000 1.3 +++ ChangeLog 28 Nov 2007 15:36:59 -0000 1.4 @@ -1,5 +1,9 @@ 2007-11-28 Gunnar Wrobel

    + * Filter/Resource.php: + + kolab/issue1313 (resmngr cannot create calendar folder in multidomain setup) + * Filter/Incoming.php: kolab/issue2174 (Automatic Invitation Policy not working with invites as attachment) From cvs at kolab.org Wed Nov 28 16:37:02 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 28 Nov 2007 16:37:02 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/Filter Filter.php, 1.4, 1.5 Incoming.php, 1.6, 1.7 Resource.php, 1.4, 1.5 Message-ID: <20071128153702.050DC600D68@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/Filter In directory doto:/tmp/cvs-serv28709/php-kolab/Kolab_Filter/Filter Modified Files: Filter.php Incoming.php Resource.php Log Message: kolab/issue1313 (resmngr cannot create calendar folder in multidomain setup) Index: Filter.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Filter.php,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Filter.php 27 Nov 2007 14:21:15 -0000 1.4 +++ Filter.php 28 Nov 2007 15:36:59 -0000 1.5 @@ -232,7 +232,15 @@ OUT_STDOUT | EX_USAGE); } - $this->_sender = strtolower($options['s']); + if (empty($options['s'])) { + $sender = ''; + } else if (is_array($options['s'])) { + $sender = $options['s'][0]; + } else { + $sender = $options['s']; + } + + $this->_sender = strtolower($sender); $recipients = $options['r']; @@ -351,13 +359,27 @@ $msg = $result->getMessage() . $id; /* Log all errors */ - $frame = $result->getBacktrace(1); + $file = __FILE__; + $line = __LINE__; + + $frames = $result->getBacktrace(); + if (count($frames) > 1) { + $frame = $frames[1]; + } else if (count($frames) == 1) { + $frame = $frames[0]; + } + if (isset($frame['file'])) { + $file = $frame['file']; + } + if (isset($frame['line'])) { + $line = $frame['line']; + } /* In debugging mode the errors get delivered to the screen * without a time stamp (mainly because of unit testint) */ if (!$this->_debug) { - Horde::logMessage($msg, $frame['file'], $frame['line'], PEAR_LOG_ERR); + Horde::logMessage($msg, $file, $line, PEAR_LOG_ERR); } else { $msg .= ' (Line ' . $frame['line'] . ' in ' . basename($frame['file']) . ")\n"; fwrite(STDOUT, $msg); Index: Incoming.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Incoming.php,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Incoming.php 28 Nov 2007 06:06:12 -0000 1.6 +++ Incoming.php 28 Nov 2007 15:36:59 -0000 1.7 @@ -121,7 +121,7 @@ foreach ($this->_recipients as $recip) { Horde::logMessage(sprintf(_("Calling resmgr_filter(%s, %s, %s, %s)"), $this->_fqhostname, $this->_sender, - $this->_recip, $this->tmpfile), + $recip, $this->_tmpfile), __FILE__, __LINE__, PEAR_LOG_DEBUG); $rc = resmgr_filter($this->_fqhostname, $this->_sender, $recip, $this->_tmpfile); Index: Resource.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Resource.php,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Resource.php 28 Nov 2007 06:06:12 -0000 1.4 +++ Resource.php 28 Nov 2007 15:36:59 -0000 1.5 @@ -32,8 +32,6 @@ * */ -require_once 'Kolab/Filter/misc.php'; - require_once 'Net/IMAP.php'; require_once 'Horde/iCalendar.php'; require_once 'Horde/MIME.php'; @@ -42,24 +40,14 @@ require_once 'Horde/MIME/Part.php'; require_once 'Horde/MIME/Structure.php'; -require_once 'Horde/Text.php'; - -if (!method_exists('Text', 'wrap')) { - require_once 'Horde/String.php'; -} +require_once 'Horde/String.php'; // Required to be able to use the old Horde framework function wrap($text) { - if (method_exists('Text', 'wrap')) { - return Text::wrap($text, 76, "\n"); - } else { - return String::wrap($text, 76, "\n"); - } + return String::wrap($text, 76, "\n"); } -require_once 'Kolab/Freebusy/recurrence.class.php'; - // What actions we can take when receiving an event request define('RM_ACT_ALWAYS_ACCEPT', 1); define('RM_ACT_REJECT_IF_CONFLICTS', 2); @@ -84,35 +72,35 @@ /* Recurrence implementation for looking for conflicts between an event and a freebusy list */ -class ResmgrRecurrence extends Recurrence { - function ResmgrRecurrence() { - $this->conflict = false; - } +// class ResmgrRecurrence extends Recurrence { +// function ResmgrRecurrence() { +// $this->conflict = false; +// } - function setBusy( $start, $end, $duration ) { - if( $this->conflict ) return; - if( is_null($end) ) $end = $start + $duration; - foreach ($this->busyperiods as $busyfrom => $busyto) { - if ( in_array(base64_decode($this->extraparams[$busyfrom]['X-UID']), $this->ignore) || - in_array(base64_decode($this->extraparams[$busyfrom]['X-SID']), $this->ignore) ) { - // Ignore - continue; - } - if (($busyfrom >= $start && $busyfrom < $end) || ($start >= $busyfrom && $start < $busyto)) { - Horde::logMessage('Request overlaps', __FILE__, __LINE__, PEAR_LOG_DEBUG); - $this->conflict = true; - break; - } - } - } +// function setBusy( $start, $end, $duration ) { +// if( $this->conflict ) return; +// if( is_null($end) ) $end = $start + $duration; +// foreach ($this->busyperiods as $busyfrom => $busyto) { +// if ( in_array(base64_decode($this->extraparams[$busyfrom]['X-UID']), $this->ignore) || +// in_array(base64_decode($this->extraparams[$busyfrom]['X-SID']), $this->ignore) ) { +// // Ignore +// continue; +// } +// if (($busyfrom >= $start && $busyfrom < $end) || ($start >= $busyfrom && $start < $busyto)) { +// Horde::logMessage('Request overlaps', __FILE__, __LINE__, PEAR_LOG_DEBUG); +// $this->conflict = true; +// break; +// } +// } +// } - function hasConflict() { return $this->conflict; } +// function hasConflict() { return $this->conflict; } - var $busyperiods; - var $extraparams; - var $ignore; - var $conflict; -}; +// var $busyperiods; +// var $extraparams; +// var $ignore; +// var $conflict; +// }; function imapClose() { @@ -202,7 +190,7 @@ if (!ldap_bind($ldap, $conf['filter']['bind_dn'], $conf['filter']['bind_pw'])) { return PEAR::raiseError(sprintf(_("Unable to contact LDAP server: %s"), ldap_error($ldap)), - OUT_LOG | ERR_TEMPFAIL); + OUT_LOG | EX_TEMPFAIL); } $result = ldap_search($ldap, $conf['filter']['base_dn'], @@ -212,7 +200,7 @@ if (!$result) { return PEAR::raiseError(sprintf(_("Unable to perform LDAP search: %s"), ldap_error($ldap)), - OUT_LOG | ERR_TEMPFAIL); + OUT_LOG | EX_TEMPFAIL); } $entries = ldap_get_entries($ldap, $result); @@ -227,34 +215,6 @@ $hs = $entries[0]['kolabhomeserver'][0]; $actions = $entries[0]['kolabinvitationpolicy']; - /* Encrypted password are not used anymore... - * TODO: Clean this code out when we're sure - * we don't want to use it... - */ - $cleartext = false; - /* - $encpw = base64_decode($entries[0]['kolabencryptedpassword'][0]); - - # Now get private key and decrypt the password - $pkd = file_get_contents($conf['filter']['priv_key_file']); - $pkey = openssl_pkey_get_private($pkd); - if ($pkey === false) { - while ($msg = openssl_error_string()) { - Horde::logMessage(sprintf(_("Error reading private key: %s"), - $msg), __FILE__, __LINE__, PEAR_LOG_WARNING); - } - - if (!openssl_private_decrypt($encpw, $cleartext, $pkey)) { - while ($msg = openssl_error_string()) { - Horde::logMessage(sprintf(_("Error decrypting password: %s"), - $msg), __FILE__, __LINE__, PEAR_LOG_WARNING); - ldap_free_result( $result ); - $cleartext = false; - } - - openssl_free_key($pkey); - */ - $policies = array(); $defaultpolicy = false; foreach( $actions as $action ) { @@ -301,44 +261,9 @@ ldap_close($ldap); - return array( 'cn' => $cn, 'homeserver' => $hs, 'password' => $cleartext, - 'action' => $action ); + return array( 'cn' => $cn, 'homeserver' => $hs, 'action' => $action ); } -function getResourceUid($resource) -{ - global $conf; - - // Connect to the LDAP server and retrieve the users' password - $ldap = ldap_connect($conf['filter']['ldap_uri']); - if (!ldap_bind($ldap, $conf['filter']['bind_dn'], $conf['filter']['bind_pw'])) { - Horde::logMessage(sprintf(_("Unable to contact LDAP server: %s"), - ldap_error($ldap)), - __FILE__, __LINE__, PEAR_LOG_WARNING); - return false; - } - - $result = ldap_search($ldap, $conf['filter']['base_dn'], "(&(objectClass=kolabInetOrgPerson)(mail=$resource))", array("uid")); - if (!$result) { - Horde::logMessage(sprintf(_("Unable to perform LDAP search: %s"), - ldap_error($ldap)), - __FILE__, __LINE__, PEAR_LOG_WARNING); - return false; - } - - $entries = ldap_get_entries($ldap, $result); - if ($entries['count'] != 1) { - Horde::logMessage(sprintf(_("%s objects returned for %s"), - $entries['count'], $resource), - __FILE__, __LINE__, PEAR_LOG_WARNING); - return false; - } - - $ldap_uid = $entries[0]['uid'][0]; - ldap_close($ldap); - if( $ldap_uid ) return $ldap_uid; - else return $resource; -} function getRequest($filename) { @@ -485,10 +410,18 @@ Horde::logMessage(sprintf(_("URL = %s"), $url), __FILE__, __LINE__, PEAR_LOG_DEBUG); $parsed = parse_url($url); - $parsed['user'] = urlencode($conf['filter']['calendar_user']); + + list($user, $domain) = split('@', $resource); + if (empty($domain)) { + $domain = $conf['filter']['email_domain']; + } + $parsed['user'] = urlencode($conf['filter']['calendar_id'] . '@' . $domain); $parsed['pass'] = urlencode($conf['filter']['calendar_pass']); + $url = assembleUri($parsed); + Horde::logMessage(sprintf(_("URL = %s"), $url), __FILE__, __LINE__, PEAR_LOG_DEBUG); + $text = @file_get_contents($url); if ($text == false || empty($text)) { $parsed = parse_url($url); @@ -498,7 +431,8 @@ $resource, $url), __FILE__, __LINE__, PEAR_LOG_ERR); //shutdown(1, "Unable to retrieve free/busy information for $resource"); - return false; + $result = false; + return $result; } // If this call is purely to cache the f/b list then we don't need to @@ -513,7 +447,8 @@ $resource), __FILE__, __LINE__, PEAR_LOG_ERR); //shutdown(); - return false; + $result = false; + return $result; } $vfb->simplify(); @@ -527,7 +462,7 @@ global $organiser, $uid, $sid, $is_update; Horde::logMessage(sprintf(_("sendITipReply(%s, %s, %s, %s)"), - $cn, $resource, $itip, $type), + $cn, $resource, get_class($itip), $type), __FILE__, __LINE__, PEAR_LOG_DEBUG); // Build the reply. @@ -687,6 +622,13 @@ global $conf, $imap, $server, $mailbox, $calmbox, $prefix, $suffix; // Handle virtual domains + list($user, $domain) = split('@', $resource); + if (empty($domain)) { + $domain = $conf['filter']['email_domain']; + } + $calendar_user = $conf['filter']['calendar_id'] . '@' . $domain; + + // Handle virtual domains $prefix = $resource; $suffix = ''; if ($conf['filter']['virtual_domains']) { @@ -709,7 +651,7 @@ $fullmbox = $server . $mymailbox; Horde::logMessage(sprintf(_("Logging into %s as user %s to access %s"), - $conf['filter']['imap_server'], $conf['filter']['calendar_user'], $mymailbox), + $conf['filter']['imap_server'], $calendar_user, $mymailbox), __FILE__, __LINE__, PEAR_LOG_DEBUG); $imap = &new Net_IMAP( $conf['filter']['imap_server'] ); @@ -720,7 +662,7 @@ return false; } //$imap->setDebug(true); - $rc = $imap->login($conf['filter']['calendar_user'], $conf['filter']['calendar_pass'], true, false); + $rc = $imap->login($calendar_user, $conf['filter']['calendar_pass'], true, false); if( PEAR::isError($rc) ) { Horde::logMessage(sprintf(_("Unable to authenticate: %s"), $rc->getMessage()), @@ -781,7 +723,7 @@ } Horde::logMessage(sprintf(_("Selecting %s for %s"), - $calmbox, $conf['filter']['calendar_user']), + $calmbox, $calendar_user), __FILE__, __LINE__, PEAR_LOG_DEBUG); // Open an IMAP connection to the requested users' calendar $rc = $imap->selectMailBox( $calmbox ); @@ -792,8 +734,8 @@ return false; } - Horde::logMessage(sprintf(_("Connected to %s, imap object is %s"), - $calmbox, $imap), + Horde::logMessage(sprintf(_("Successfully connected to %s."), + $calmbox), __FILE__, __LINE__, PEAR_LOG_DEBUG); return $imap; } @@ -1194,7 +1136,9 @@ } } - return array($kolab_xml,$recurrence); + $result = array($kolab_xml,$recurrence); + + return $result; } @@ -1218,14 +1162,6 @@ // Not the users homeserver, ignore return true; } - if( $ldapdata['password'] === false ) { - // No decryptable password, use calendar user - $conf['filter']['calendar_uid'] = getResourceUid($resource); - } else { - $conf['filter']['calendar_user'] = $resource; - $conf['filter']['calendar_uid'] = getResourceUid($resource); - $conf['filter']['calendar_pass'] = $ldapdata['password']; - } $cn = $ldapdata['cn']; $conf['filter']['action'] = $ldapdata['action']; @@ -1323,7 +1259,7 @@ $connected = ($imap !== false); if( !$connected ) { return PEAR::raiseError(_("Error, could not open calendar folder!"), - OUT_LOG | ERR_TEMPFAIL); + OUT_LOG | EX_TEMPFAIL); } switch ($method) { case 'REQUEST': @@ -1356,6 +1292,8 @@ } list($kolab_xml,$recurrence) = buildKolabEvent($itip); + $outofperiod=0; + // Don't even bother checking free/busy info if RM_ACT_ALWAYS_ACCEPT // is specified if ($conf['filter']['action'] != RM_ACT_ALWAYS_ACCEPT) { @@ -1373,7 +1311,6 @@ $vfbstart, iCalDate2Kolab($vfbstart), $vfbend, iCalDate2Kolab($vfbend)), __FILE__, __LINE__, PEAR_LOG_DEBUG); - $outofperiod=0; if ($vfbstart && $dtstart > convert2epoch ($vfbend)) { $outofperiod=1; } else { @@ -1604,7 +1541,7 @@ if (is_a($status, 'PEAR_Error')) { return PEAR::raiseError(sprintf(_("Unable to send cancellation reply: %s"), $status->getMessage()), - OUT_LOG | ERR_TEMPFAIL); + OUT_LOG | EX_TEMPFAIL); } else { Horde::logMessage(_("Successfully sent cancellation reply"), __FILE__, __LINE__, PEAR_LOG_INFO); From cvs at kolab.org Thu Nov 29 09:22:55 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 09:22:55 +0100 (CET) Subject: gunnar: server/patches/horde HK-GW-framework_3.2_RC1-Fix_Prefs_for_Ingo.patch, NONE, 1.1 HK-GW-turba_2.2_RC1-Fix_editing_contacts.patch, NONE, 1.1 HK-GW-turba_2.2_RC1-Fix_share_id_change.patch, NONE, 1.1 HK-GW-turba_2.2_RC1-Ldap_read_only_fix.patch, NONE, 1.1 HK-GW-framework_3.2_ALPHA-Fix_Prefs_for_Ingo.patch, 1.1, NONE HK-GW-framework_3.2_ALPHA-Fix_annotation_use.patch, 1.1, NONE HK-GW-framework_3.2_ALPHA-Fix_contact_XML.patch, 1.1, NONE HK-GW-framework_3.2_ALPHA-Fix_the_share_params.patch, 1.1, NONE HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch, 1.4, NONE HK-GW-framework_3.2_ALPHA-Kolab_issue_2138.patch, 1.1, NONE HK-GW-framework_3.2_ALPHA-Kolab_issue_2144.patch, 1.1, NONE HK-GW-framework_3.2_ALPHA-Share_caching.patch, 1.1, NONE HK-GW-global_3.2_ALPHA-SyncML.patch, 1.1, NONE HK-GW-horde_3.2_ALPHA-Deleting_categories.patch, 1.1, NONE HK-GW-kronolith_2.2-Fix_create_new_event.patch, 1.1, NONE HK-GW-kronolith_2.2-Fix_share_right_editing.patch, 1.1, NONE HK-GW-kronolith_2.2_ALPHA-Kolab_issue_2138.p atch, 1.1, NONE HK-GW-mnemo_2.2_ALPHA-Edit_share_rights.patch, 1.1, NONE HK-GW-nag_2.2_ALPHA-Fix_share_right_editing.patch, 1.1, NONE HK-GW-turba_2.2-Changes_after_ALPHA.patch, 1.1, NONE HK-GW-turba_2.2-Fix_address_book_deletion_1.patch, 1.1, NONE HK-GW-turba_2.2-Fix_editing_contacts.patch, 1.1, NONE HK-GW-turba_2.2-Fix_notice_on_addressbook_creation.patch, 1.1, NONE HK-GW-turba_2.2-Fix_share_id_change.patch, 1.1, NONE HK-GW-turba_2.2-Ldap_read_only_fix.patch, 1.1, NONE HK-UV-kronolith_2.2-Fix_list_events.patch, 1.1, NONE README_Changes_after_ALPHA.patch, 1.1, NONE README_Deleting_categories.patch, 1.1, NONE README_Edit_share_rights.patch, 1.1, NONE README_Fix_address_book_deletion_1.patch, 1.1, NONE README_Fix_annotation_use.patch, 1.1, NONE README_Fix_contact_XML.patch, 1.1, NONE README_Fix_create_new_event.patch, 1.1, NONE README_Fix_list_events.patch, 1.1, NONE README_Fix_notice_on_addressbook_creation.patch, 1.1, NONE README_Fix_share_right_editing.patch, 1.1, NONE README_Fix_the_share_params.patch, 1.1, NONE R EADME_Kolab_extensions.patch, 1.1, NONE README_Kolab_issue_2138.patch, 1.1, NONE README_Kolab_issue_2144.patch, 1.1, NONE README_Share_caching.patch, 1.2, NONE README_SyncML.patch, 1.1, NONE Message-ID: <20071129082255.BE658600D65@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde In directory doto:/tmp/cvs-serv8070 Added Files: HK-GW-framework_3.2_RC1-Fix_Prefs_for_Ingo.patch HK-GW-turba_2.2_RC1-Fix_editing_contacts.patch HK-GW-turba_2.2_RC1-Fix_share_id_change.patch HK-GW-turba_2.2_RC1-Ldap_read_only_fix.patch Removed Files: HK-GW-framework_3.2_ALPHA-Fix_Prefs_for_Ingo.patch HK-GW-framework_3.2_ALPHA-Fix_annotation_use.patch HK-GW-framework_3.2_ALPHA-Fix_contact_XML.patch HK-GW-framework_3.2_ALPHA-Fix_the_share_params.patch HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch HK-GW-framework_3.2_ALPHA-Kolab_issue_2138.patch HK-GW-framework_3.2_ALPHA-Kolab_issue_2144.patch HK-GW-framework_3.2_ALPHA-Share_caching.patch HK-GW-global_3.2_ALPHA-SyncML.patch HK-GW-horde_3.2_ALPHA-Deleting_categories.patch HK-GW-kronolith_2.2-Fix_create_new_event.patch HK-GW-kronolith_2.2-Fix_share_right_editing.patch HK-GW-kronolith_2.2_ALPHA-Kolab_issue_2138.patch HK-GW-mnemo_2.2_ALPHA-Edit_share_rights.patch HK-GW-nag_2.2_ALPHA-Fix_share_right_editing.patch HK-GW-turba_2.2-Changes_after_ALPHA.patch HK-GW-turba_2.2-Fix_address_book_deletion_1.patch HK-GW-turba_2.2-Fix_editing_contacts.patch HK-GW-turba_2.2-Fix_notice_on_addressbook_creation.patch HK-GW-turba_2.2-Fix_share_id_change.patch HK-GW-turba_2.2-Ldap_read_only_fix.patch HK-UV-kronolith_2.2-Fix_list_events.patch README_Changes_after_ALPHA.patch README_Deleting_categories.patch README_Edit_share_rights.patch README_Fix_address_book_deletion_1.patch README_Fix_annotation_use.patch README_Fix_contact_XML.patch README_Fix_create_new_event.patch README_Fix_list_events.patch README_Fix_notice_on_addressbook_creation.patch README_Fix_share_right_editing.patch README_Fix_the_share_params.patch README_Kolab_extensions.patch README_Kolab_issue_2138.patch README_Kolab_issue_2144.patch README_Share_caching.patch README_SyncML.patch Log Message: Horde patch update for the new RC1 release. --- NEW FILE: HK-GW-framework_3.2_RC1-Fix_Prefs_for_Ingo.patch --- This patch is required if you want to use Ingo with the Kolab server. diff -r 56b552eb6b01 framework/Prefs/Prefs/kolab.php --- a/framework/Prefs/Prefs/kolab.php Wed Nov 28 17:00:34 2007 +0100 +++ b/framework/Prefs/Prefs/kolab.php Wed Nov 28 17:04:21 2007 +0100 @@ -1,5 +1,6 @@ '3', 'basedn' => $GLOBALS['conf']['kolab']['ldap']['basedn'], 'fetchdn' => true, + 'username' => Auth::getAuth(), + 'password' => Auth::getCredential('password'), 'searchdn' => $GLOBALS['conf']['kolab']['ldap']['phpdn'], 'searchpass' => $GLOBALS['conf']['kolab']['ldap']['phppw'], 'uid' => array('mail', 'uid')); --- NEW FILE: HK-GW-turba_2.2_RC1-Fix_editing_contacts.patch --- Fixes editing contacts. diff -r e2bcaaed2d6b turba/lib/Driver/share.php --- a/turba/lib/Driver/share.php Wed Nov 28 17:23:14 2007 +0100 +++ b/turba/lib/Driver/share.php Wed Nov 28 17:24:17 2007 +0100 @@ -58,7 +58,7 @@ class Turba_Driver_share extends Turba_D */ function getName() { - $share_parts = explode(':', $this->_share->getName()); + $share_parts = explode(':', $this->_share->getId()); return array_pop($share_parts); } --- NEW FILE: HK-GW-turba_2.2_RC1-Fix_share_id_change.patch --- This fixes a problem with the way the Kolab share driver handles ids. diff -r 0ffb2574c923 turba/lib/Turba.php --- a/turba/lib/Turba.php Wed Nov 28 17:04:21 2007 +0100 +++ b/turba/lib/Turba.php Wed Nov 28 17:23:14 2007 +0100 @@ -439,7 +439,7 @@ class Turba { $source_config = $sources[$source]; $source_config['params']['share'] = &$share; - $sources[$sourceKey] = $source_config; + $sources[$share->getId()] = $source_config; } else { $notification->push($driver, 'horde.error'); } @@ -564,7 +564,7 @@ class Turba { /* Add the new addressbook to the user's list of visible * address books. */ $prefs = explode("\n", $GLOBALS['prefs']->getValue('addressbooks')); - if (array_search($share_id, $prefs) === false) { + if (array_search($share->getId(), $prefs) === false) { $GLOBALS['prefs']->setValue('addressbooks', $GLOBALS['prefs']->getValue('addressbooks') . "\n" . $share_id); } return $share; --- NEW FILE: HK-GW-turba_2.2_RC1-Ldap_read_only_fix.patch --- This is a temporary fix to mark the ldap addressbook as read-only. This should be solved with the Horde Perms package but this needs a new driver. diff -r 449ef255c5ff turba/lib/Driver/ldap.php --- a/turba/lib/Driver/ldap.php Wed Nov 28 17:24:17 2007 +0100 +++ b/turba/lib/Driver/ldap.php Wed Nov 28 17:26:17 2007 +0100 @@ -53,6 +53,9 @@ class Turba_Driver_ldap extends Turba_Dr } if (empty($params['deref'])) { $params['deref'] = LDAP_DEREF_NEVER; + } + if (empty($params['read_only'])) { + $params['read_only'] = false; } parent::Turba_Driver($params); @@ -749,4 +752,25 @@ class Turba_Driver_ldap extends Turba_Dr return $dn; } + /** + * Checks if the current user has the requested permission + * on this source. + * + * @param integer $perm The permission to check for. + * + * @return boolean true if user has permission, false otherwise. + */ + function hasPermission($perm) + { + if ($this->_params['read_only'] === false) { + return parent::hasPermission($perm); + } else { + switch ($perm) { + case PERMS_EDIT: return false; + case PERMS_DELETE: return false; + default: return parent::hasPermission($perm); + } + } + } + } --- HK-GW-framework_3.2_ALPHA-Fix_Prefs_for_Ingo.patch DELETED --- --- HK-GW-framework_3.2_ALPHA-Fix_annotation_use.patch DELETED --- --- HK-GW-framework_3.2_ALPHA-Fix_contact_XML.patch DELETED --- --- HK-GW-framework_3.2_ALPHA-Fix_the_share_params.patch DELETED --- --- HK-GW-framework_3.2_ALPHA-Kolab_extensions.patch DELETED --- --- HK-GW-framework_3.2_ALPHA-Kolab_issue_2138.patch DELETED --- --- HK-GW-framework_3.2_ALPHA-Kolab_issue_2144.patch DELETED --- --- HK-GW-framework_3.2_ALPHA-Share_caching.patch DELETED --- --- HK-GW-global_3.2_ALPHA-SyncML.patch DELETED --- --- HK-GW-horde_3.2_ALPHA-Deleting_categories.patch DELETED --- --- HK-GW-kronolith_2.2-Fix_create_new_event.patch DELETED --- --- HK-GW-kronolith_2.2-Fix_share_right_editing.patch DELETED --- --- HK-GW-kronolith_2.2_ALPHA-Kolab_issue_2138.patch DELETED --- --- HK-GW-mnemo_2.2_ALPHA-Edit_share_rights.patch DELETED --- --- HK-GW-nag_2.2_ALPHA-Fix_share_right_editing.patch DELETED --- --- HK-GW-turba_2.2-Changes_after_ALPHA.patch DELETED --- --- HK-GW-turba_2.2-Fix_address_book_deletion_1.patch DELETED --- --- HK-GW-turba_2.2-Fix_editing_contacts.patch DELETED --- --- HK-GW-turba_2.2-Fix_notice_on_addressbook_creation.patch DELETED --- --- HK-GW-turba_2.2-Fix_share_id_change.patch DELETED --- --- HK-GW-turba_2.2-Ldap_read_only_fix.patch DELETED --- --- HK-UV-kronolith_2.2-Fix_list_events.patch DELETED --- --- README_Changes_after_ALPHA.patch DELETED --- --- README_Deleting_categories.patch DELETED --- --- README_Edit_share_rights.patch DELETED --- --- README_Fix_address_book_deletion_1.patch DELETED --- --- README_Fix_annotation_use.patch DELETED --- --- README_Fix_contact_XML.patch DELETED --- --- README_Fix_create_new_event.patch DELETED --- --- README_Fix_list_events.patch DELETED --- --- README_Fix_notice_on_addressbook_creation.patch DELETED --- --- README_Fix_share_right_editing.patch DELETED --- --- README_Fix_the_share_params.patch DELETED --- --- README_Kolab_extensions.patch DELETED --- --- README_Kolab_issue_2138.patch DELETED --- --- README_Kolab_issue_2144.patch DELETED --- --- README_Share_caching.patch DELETED --- --- README_SyncML.patch DELETED --- From cvs at kolab.org Thu Nov 29 09:25:53 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 09:25:53 +0100 (CET) Subject: gunnar: server release-notes.txt,1.184,1.185 Message-ID: <20071129082553.B16A8600D65@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv8296 Modified Files: release-notes.txt Log Message: Horde packages updated to the newest RC1 release. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.184 retrieving revision 1.185 diff -u -d -r1.184 -r1.185 --- release-notes.txt 28 Nov 2007 15:36:59 -0000 1.184 +++ release-notes.txt 29 Nov 2007 08:25:51 -0000 1.185 @@ -63,7 +63,7 @@ kolab/issue2134 ([Horde] Unable to send message with attachments) kolab/issue2236 (Apache UID access broken) - - horde-framework-kolab-3.2_ALPHA-2007???? + - horde-framework-kolab-3.2_RC1-2007???? New functionality required for kolab-freebusy. @@ -73,15 +73,15 @@ kolab/issue2138 (Horde creates events in main inbox) kolab/issue2144 (Calendar items of shared calendar not appearing) - - horde-kolab-3.2_ALPHA-2007???? + - horde-kolab-3.2_RC1-2007???? kolab/issue2101 ([horde] can't delete categories) - - horde-kronolith-2.2_ALPHA-2007???? + - horde-kronolith-2.2_RC1-2007???? kolab/issue2138 (Horde creates events in main inbox) - - horde-turba-2.2_ALPHA-2007???? + - horde-turba-2.2_RC1-2007???? kolab/issue2040 (Horde: resouces are not displayed in address book) kolab/issue2135 ([horde/turba] Turba should support some more contact attributes) @@ -126,6 +126,22 @@ - Kolab packages: + Updated: + + fbview-horde-3.2_rc1-20071013 + fbview-kronolith-2.2_rc1-20071001 + horde-framework-kolab-3.2_RC1-20071004 + horde-imp-kolab-4.2_rc1-20071004 + horde-ingo-kolab-1.2_rc1-20071004 + horde-kolab-3.2_rc1-20071013 + horde-kolab-client-0.99-20071002 + horde-kolab-client-0.99-20071002 + horde-kronolith-kolab-2.2_rc1-20071004 + horde-mnemo-kolab-2.2_rc1-20071001 + horde-nag-kolab-2.2_rc1-20071004 + horde-passwd-kolab-3.0.1-20071001 + horde-turba-kolab-2.2_rc1-20071002 + Removed: kolab-horde-framework (now horde-framework) From cvs at kolab.org Thu Nov 29 09:25:53 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 09:25:53 +0100 (CET) Subject: gunnar: server/horde external-horde.sh,1.4,1.5 Message-ID: <20071129082553.E0BAE600D66@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde In directory doto:/tmp/cvs-serv8296/horde Modified Files: external-horde.sh Log Message: Horde packages updated to the newest RC1 release. Index: external-horde.sh =================================================================== RCS file: /kolabrepository/server/horde/external-horde.sh,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- external-horde.sh 20 Nov 2007 06:48:33 -0000 1.4 +++ external-horde.sh 29 Nov 2007 08:25:51 -0000 1.5 @@ -2,47 +2,33 @@ # The package versions we will be using -HORDE_PKG=horde-3.2-alpha -IMP_PKG=imp-h3-4.2-alpha -INGO_PKG=ingo-h3-1.2-alpha +HORDE_PKG=horde-3.2-rc1 +IMP_PKG=imp-h3-4.2-rc1 +INGO_PKG=ingo-h3-1.2-rc1 PASSWD_PKG=passwd-h3-3.0.1 -KRONOLITH_PKG=kronolith-h3-2.2-alpha -MNEMO_PKG=mnemo-h3-2.2-alpha -NAG_PKG=nag-h3-2.2-alpha -TURBA_PKG=turba-h3-2.2-alpha +KRONOLITH_PKG=kronolith-h3-2.2-rc1 +MNEMO_PKG=mnemo-h3-2.2-rc1 +NAG_PKG=nag-h3-2.2-rc1 +TURBA_PKG=turba-h3-2.2-rc1 # The patches we will be using -FRAMEWORK_PATCHES="HK-GW-framework_3.2_ALPHA-Fix_Prefs_for_Ingo.patch - HK-GW-framework_3.2_ALPHA-Fix_annotation_use.patch - HK-GW-framework_3.2_ALPHA-Fix_the_share_params.patch - HK-GW-framework_3.2_ALPHA-Kolab_issue_2144.patch - HK-GW-framework_3.2_ALPHA-Share_caching.patch - HK-GW-framework_3.2_ALPHA-Kolab_issue_2138.patch - HK-GW-framework_3.2_ALPHA-Fix_contact_XML.patch" +FRAMEWORK_PATCHES="HK-GW-framework_3.2_ALPHA-Fix_Prefs_for_Ingo.patch" -HORDE_PATCHES="HK-GW-horde_3.2_ALPHA-Deleting_categories.patch" +########### +# No horde patches right now +# +#HORDE_PATCHES="" -APPLICATION_PATCHES="HK-GW-kronolith_2.2-Fix_create_new_event.patch - HK-GW-kronolith_2.2-Fix_share_right_editing.patch - HK-GW-kronolith_2.2_ALPHA-Kolab_issue_2138.patch - HK-GW-mnemo_2.2_ALPHA-Edit_share_rights.patch - HK-GW-nag_2.2_ALPHA-Fix_share_right_editing.patch - HK-GW-turba_2.2-Changes_after_ALPHA.patch - HK-GW-turba_2.2-Fix_address_book_deletion_1.patch - HK-GW-turba_2.2-Fix_editing_contacts.patch - HK-GW-turba_2.2-Fix_notice_on_addressbook_creation.patch +APPLICATION_PATCHES="HK-GW-turba_2.2-Fix_editing_contacts.patch HK-GW-turba_2.2-Fix_share_id_change.patch - HK-GW-turba_2.2-Ldap_read_only_fix.patch - HK-UV-kronolith_2.2-Fix_list_events.patch" + HK-GW-turba_2.2-Ldap_read_only_fix.patch" # The configuration files prepared for Kolab CONFIG_FILES="horde/conf.php - horde/hooks.php - horde/registry.php horde-imp/conf.php horde-imp/servers.php horde-ingo/conf.php @@ -53,7 +39,6 @@ horde-mnemo/conf.php horde-nag/conf.php horde-turba/conf.php - horde-turba/attributes.php horde-turba/sources.php" @@ -103,10 +88,13 @@ # Apply the patches -for PATCH in $HORDE_PATCHES; -do - patch -p1 < $PATCH; -done +########### +# No horde patches right now +# +#for PATCH in $HORDE_PATCHES; +#do +# patch -p1 < $PATCH; +#done cd horde for PATCH in $APPLICATION_PATCHES; From cvs at kolab.org Thu Nov 29 09:25:54 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 09:25:54 +0100 (CET) Subject: gunnar: server/horde/fbview-kronolith ChangeLog, 1.1, 1.2 fbview-kronolith.spec, 1.14, 1.15 Message-ID: <20071129082554.3095C600D68@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/fbview-kronolith In directory doto:/tmp/cvs-serv8296/horde/fbview-kronolith Modified Files: ChangeLog fbview-kronolith.spec Log Message: Horde packages updated to the newest RC1 release. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/horde/fbview-kronolith/ChangeLog,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ChangeLog 2 Aug 2007 08:25:18 -0000 1.1 +++ ChangeLog 29 Nov 2007 08:25:51 -0000 1.2 @@ -1,3 +1,7 @@ +2007-11-29 Gunnar Wrobel

    + + * fbview-kronolith.spec: Update to RC1 + 2007-08-02 Gunnar Wrobel

    * fbview-kronolith.spec: Added package to Kolab CVS. Index: fbview-kronolith.spec =================================================================== RCS file: /kolabrepository/server/horde/fbview-kronolith/fbview-kronolith.spec,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- fbview-kronolith.spec 1 Oct 2007 15:47:19 -0000 1.14 +++ fbview-kronolith.spec 29 Nov 2007 08:25:51 -0000 1.15 @@ -2,10 +2,10 @@ %define V_horde_name kronolith %define V_package fbview-%{V_horde_name} %define V_year 2007 -%define V_month 10 -%define V_day 01 -%define V_version 2.2_alpha -%define V_uver 2.2-alpha +%define V_month 11 +%define V_day 28 +%define V_version 2.2_rc1 +%define V_uver 2.2-rc1 %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -106,9 +106,10 @@ $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/fbview/%{V_horde_name}/config/ %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/fbview-kronolith-conf.template' \ - '%config(noreplace) %{l_prefix}/var/kolab/www/fbview/%{V_horde_name}/config/conf.php' \ - '%config(noreplace) %{l_prefix}/var/kolab/www/fbview/%{V_horde_name}/config/prefs.php' + '%config(noreplace)' %{l_prefix}/etc/kolab/templates/fbview-kronolith-conf.template \ + '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/kolab/www/fbview/%{V_horde_name}/config/conf.php \ + '%config(noreplace)' %{l_prefix}/var/kolab/www/fbview/%{V_horde_name}/config/conf.php \ + '%config(noreplace)' %{l_prefix}/var/kolab/www/fbview/%{V_horde_name}/config/prefs.php %clean rm -rf $RPM_BUILD_ROOT From cvs at kolab.org Thu Nov 29 09:25:54 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 09:25:54 +0100 (CET) Subject: gunnar: server/horde/fbview-horde ChangeLog, 1.1, 1.2 conf.php, 1.7, 1.8 fbview-horde.spec, 1.14, 1.15 hooks.php, 1.1, NONE registry.php, 1.1, NONE Message-ID: <20071129082554.2AC40600D67@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/fbview-horde In directory doto:/tmp/cvs-serv8296/horde/fbview-horde Modified Files: ChangeLog conf.php fbview-horde.spec Removed Files: hooks.php registry.php Log Message: Horde packages updated to the newest RC1 release. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/horde/fbview-horde/ChangeLog,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ChangeLog 2 Aug 2007 08:09:48 -0000 1.1 +++ ChangeLog 29 Nov 2007 08:25:51 -0000 1.2 @@ -1,3 +1,7 @@ +2007-11-29 Gunnar Wrobel

    + + * fbview-horde.spec: Update to RC1 + 2007-08-02 Gunnar Wrobel

    * fbview-horde.spec: Added package to Kolab CVS. Index: conf.php =================================================================== RCS file: /kolabrepository/server/horde/fbview-horde/conf.php,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- conf.php 7 Nov 2007 10:37:53 -0000 1.7 +++ conf.php 29 Nov 2007 08:25:51 -0000 1.8 @@ -1,6 +1,6 @@ Author: gunnar Update of /kolabrepository/server/horde/horde In directory doto:/tmp/cvs-serv8296/horde/horde Modified Files: ChangeLog conf.php horde-kolab.spec Log Message: Horde packages updated to the newest RC1 release. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/horde/horde/ChangeLog,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ChangeLog 19 Nov 2007 19:35:44 -0000 1.4 +++ ChangeLog 29 Nov 2007 08:25:52 -0000 1.5 @@ -1,3 +1,7 @@ +2007-11-29 Gunnar Wrobel

    + + * horde-kolab.spec: Update to RC1 + 2007-11-19 Gunnar Wrobel

    * horde-kolab.spec: Index: conf.php =================================================================== RCS file: /kolabrepository/server/horde/horde/conf.php,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- conf.php 7 Nov 2007 10:37:53 -0000 1.9 +++ conf.php 29 Nov 2007 08:25:52 -0000 1.10 @@ -1,6 +1,6 @@ Author: gunnar Update of /kolabrepository/server/horde/horde-kolab-client In directory doto:/tmp/cvs-serv8296/horde/horde-kolab-client Modified Files: ChangeLog Log Message: Horde packages updated to the newest RC1 release. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/horde/horde-kolab-client/ChangeLog,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ChangeLog 23 Jul 2007 15:14:21 -0000 1.1 +++ ChangeLog 29 Nov 2007 08:25:52 -0000 1.2 @@ -1,3 +1,7 @@ +2007-11-29 Gunnar Wrobel

    + + * horde-kolab-client.spec: Update to RC1 + 2007-07-23 Gunnar Wrobel

    * horde-kolab-client.spec: Added package to Kolab CVS. From cvs at kolab.org Thu Nov 29 09:25:55 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 09:25:55 +0100 (CET) Subject: gunnar: server/horde/horde-turba ChangeLog, 1.5, 1.6 conf.php, 1.1, 1.2 horde-turba-kolab.spec, 1.19, 1.20 sources.php, 1.4, 1.5 HK-GW-Changes_after_ALPHA.patch, 1.1, NONE HK-GW-Fix_address_book_deletion_1.patch, 1.1, NONE HK-GW-Fix_notice_on_addressbook_creation.patch, 1.1, NONE attributes.php, 1.1, NONE config-sources.php.dist.patch, 1.1, NONE Message-ID: <20071129082555.59480600D67@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-turba In directory doto:/tmp/cvs-serv8296/horde/horde-turba Modified Files: ChangeLog conf.php horde-turba-kolab.spec sources.php Removed Files: HK-GW-Changes_after_ALPHA.patch HK-GW-Fix_address_book_deletion_1.patch HK-GW-Fix_notice_on_addressbook_creation.patch attributes.php config-sources.php.dist.patch Log Message: Horde packages updated to the newest RC1 release. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/horde/horde-turba/ChangeLog,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- ChangeLog 19 Nov 2007 19:31:27 -0000 1.5 +++ ChangeLog 29 Nov 2007 08:25:53 -0000 1.6 @@ -1,3 +1,7 @@ +2007-11-29 Gunnar Wrobel

    + + * horde-turba-kolab.spec: Update to RC1 + 2007-11-19 Gunnar Wrobel

    * horde-turba-kolab.spec: Index: conf.php =================================================================== RCS file: /kolabrepository/server/horde/horde-turba/conf.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- conf.php 25 May 2007 12:07:17 -0000 1.1 +++ conf.php 29 Nov 2007 08:25:53 -0000 1.2 @@ -1,6 +1,6 @@ array('fields' => array('firstname', 'lastname'), - * 'format' => '%s %s', - * 'attribute' => 'object_name'), - * 'firstname' => 'object_firstname', - * 'lastname' => 'object_lastname', - * ... - * - * Standard Turba attributes are: - * __key : A backend-specific ID for the entry (any value - * as long as it is unique inside that source; - * required) - * __uid : Globally unique ID of the entry (used for - * synchronizing and must be able to be set to any - * value) - * __owner : User name of the contact's owner - * __type : Either 'Object' or 'Group' - * __members : Serialized PHP array with list of Group members. - * More Turba attributes are defined in config/attributes.php. - * - * tabs: All fields can be grouped into tabs with this optional entry. - * This list is multidimensional hash, the keys are the tab - * titles. - * Here is an example: - * 'tabs' => array( - * 'Names' => array('firstname', 'lastname', 'alias'), - * 'Addresses' => array('homeAddress', 'workAddress') - * ); - * - * search: A list of Turba attribute names that can be searched for this - * source. - * - * strict: A list of native field/attribute names that must - * always be matched exactly in a search. - * - * approximate: Only applies to LDAP servers. If set, should be an - * array of native field/attribute names to search - * "approximately" (for example, "Sánchez", "Sanchez", - * and "Sanchéz" will all match a search string of - * "sanchez"). - * - * export: If set to true, this source will appear on the Export menu, - * allowing users to export the contacts to a CSV (etc.) file. - * - * browse: If set to true, this source will be browseable via the Browse - * menu item, and empty searches against the source will return - * all contacts. - * - * use_shares: If this is present and true, Horde_Share functionality will - * be enabled for this source - allowing users to share their - * personal address books as well as to create new ones. Since - * Turba only supports having one backend configured for - * creating new shares, use the 'shares' configuration option to - * specify which backend will be used for creating new shares. - * All permission checking will be done against Horde_Share, but - * note that any 'extended' permissions (such as max_contacts) - * will still be enforced. Also note that the backend driver - * must have support for using this. Currently SQL and IMSP. - * - * list_name_field: If this is present and non-empty, it will be taken as the - * name of the turba field to store contact list names in. - * This is required when using a composite field as the 'name' - * field. - * Here are some example configurations: - */ - -/** - * A local address book in an LDAP directory. This implements a public - * (shared) address book. - * - * To store distribution lists in the LDAP directory, you'll need to include - * horde/scripts/ldap/horde.schema in your LDAP configuration. - * - * To store freebusy information in the LDAP directory, you'll need to include - * turba/scripts/ldap/rfc2739.schema in your LDAP configuration. - */ -// $cfgSources['localldap'] = array( -// 'title' => _("Shared Directory"), -// 'type' => 'ldap', -// 'params' => array( -// 'server' => 'ldap.example.com', -// 'port' => 389, -// 'tls' => false, -// 'root' => 'dc=example,dc=com', -// 'bind_dn' => 'cn=admin,ou=users,dc=example,dc=com', -// 'bind_password' => '********', -// 'sizelimit' => 200, -// 'dn' => array('cn'), -// 'objectclass' => array('top', -// 'person', -// 'organizationalPerson', -// 'inetOrgPerson'), -// 'scope' => 'one', -// 'charset' => 'iso-8859-1', -// // Consult the LDAP schema to verify that all required attributes for -// // an entry are set and add them if needed. -// 'checkrequired' => false, -// // Value used to fill in missing required attributes. -// 'checkrequired_string' => ' ', -// // Check LDAP schema for valid syntax. If this is false an address -// // field is assumed to have postalAddress syntax; otherwise the schema -// // is consulted for the syntax to use. -// 'checksyntax' => false, -// 'version' => 3 -// ), -// 'map' => array( -// '__key' => 'dn', -// '__uid' => 'uid', -// -// // From horde.schema: -// // '__type' => 'turbaType', -// // '__members' => 'turbaMembers' -// -// 'name' => 'cn', -// 'email' => 'mail', -// 'homePhone' => 'homephone', -// 'workPhone' => 'telephonenumber', -// 'cellPhone' => 'mobiletelephonenumber', -// 'homeAddress' => 'homepostaladdress', -// -// // From rfc2739.schema: -// // 'freebusyUrl' => 'calFBURL', -// ), -// 'search' => array( -// 'name', -// 'email', -// 'homePhone', -// 'workPhone', -// 'cellPhone', -// 'homeAddress' -// ), -// 'strict' => array( -// 'dn', -// ), -// 'approximate' => array( -// 'cn', -// ), -// 'export' => true, -// 'browse' => true, -// ); - -/** - * A personal LDAP address book. This assumes that the login is - * @domain.com and that the users are stored on the same LDAP - * server. Thus it is possible to bind with the username and password from the - * user. For more info; please refer to the docs/LDAP file in the Turba - * distribution. - * - * To store distribution lists in the LDAP directory, you'll need to include - * horde/scripts/ldap/horde.schema in your LDAP configuration. - * - * To store freebusy information in the LDAP directory, you'll need to include - * turba/scripts/ldap/rfc2739.schema in your LDAP configuration. - */ -/* First we need to get the uid. */ -// $_ldap_uid = Auth::getBareAuth(); -// $_ldap_basedn = 'dc=example,dc=com'; -// $cfgSources['personal_ldap'] = array( -// 'title' => _("My Address Book"), -// 'type' => 'ldap', -// 'params' => array( -// 'server' => 'localhost', -// 'tls' => false, -// 'root' => 'ou=' . $_ldap_uid . ',ou=personal_addressbook,' . $_ldap_basedn, -// 'bind_dn' => 'uid=' . $_ldap_uid . ',ou=People,' . $_ldap_basedn, -// 'bind_password' => Auth::getCredential('password'), -// 'dn' => array('cn', 'uid'), -// 'objectclass' => array('top', -// 'person', -// // 'turbaContact', -// 'inetOrgPerson', -// // 'calEntry', -// 'organizationalPerson'), -// 'scope' => 'one', -// 'charset' => 'utf-8', -// 'version' => 3 -// ), -// 'map' => array( -// '__key' => 'dn', -// '__uid' => 'uid', -// -// // From horde.schema: -// // '__type' => 'turbaType', -// // '__members' => 'turbaMembers' -// -// 'name' => 'cn', -// 'email' => 'mail', -// 'lastname' => 'sn', -// 'title' => 'title', -// 'company' => 'organizationname', -// 'businessCategory' => 'businesscategory', -// 'workAddress' => 'postaladdress', -// 'workPostalCode' => 'postalcode', -// 'workPhone' => 'telephonenumber', -// 'fax' => 'facsimiletelephonenumber', -// 'homeAddress' => 'homepostaladdress', -// 'homePhone' => 'homephone', -// 'cellPhone' => 'mobile', -// 'notes' => 'description', -// -// // Evolution interopt attributes: (those that do not require the -// // evolution.schema) -// 'office' => 'roomNumber', -// 'department' => 'ou', -// 'nickname' => 'displayName', -// 'website' => 'labeledURI', -// -// // These are not stored on the LDAP server. -// 'pgpPublicKey' => 'object_pgppublickey', -// 'smimePublicKey' => 'object_smimepublickey', -// -// // From rfc2739.schema: -// // 'freebusyUrl' => 'calFBURL', -// ), -// 'search' => array( -// 'name', -// 'email', -// 'businessCategory', -// 'title', -// 'homePhone', -// 'workPhone', -// 'cellPhone', -// 'homeAddress' -// ), -// 'strict' => array( -// 'dn', -// ), -// 'approximate' => array( -// 'cn', -// ), -// 'export' => true, -// 'browse' => true, -// ); - -/** - * Public netcenter and verisign LDAP directories. - */ -// $cfgSources['netcenter'] = array( -// 'title' => _("Netcenter Member Directory"), -// 'type' => 'ldap', -// 'params' => array( -// 'server' => 'memberdir.netscape.com', -// 'port' => 389, -// 'tls' => false, -// 'root' => 'ou=member_directory,o=netcenter.com', -// 'dn' => array('cn'), -// 'objectclass' => 'person', -// 'filter' => '', -// 'scope' => 'sub', -// 'charset' => 'iso-8859-1' -// ), -// 'map' => array( -// '__key' => 'dn', -// 'name' => 'cn', -// 'email' => 'mail', -// 'alias' => 'givenname' -// ), -// 'search' => array( -// 'name', -// 'email', -// 'alias' -// ), -// 'strict' => array( -// 'dn' -// ), -// 'approximate' => array( -// 'cn', -// ), -// 'export' => false, -// 'browse' => false, -// ); -// -// $cfgSources['verisign'] = array( -// 'title' => _("Verisign Directory"), -// 'type' => 'ldap', -// 'params' => array( -// 'server' => 'directory.verisign.com', -// 'port' => 389, -// 'tls' => false, -// 'root' => '', -// 'scope' => 'sub', -// 'charset' => 'iso-8859-1' -// ), -// 'map' => array( -// '__key' => 'dn', -// 'name' => 'cn', -// 'email' => 'mail' -// ), -// 'search' => array( -// 'name', -// 'email' -// ), -// 'strict' => array( -// 'dn' -// ), -// 'approximate' => array( -// 'cn', -// ), -// 'export' => false, -// 'browse' => false, -// ); - -/** - * A preferences-based address book. This will always be private. You can add - * any attributes you like to the map and it will just work; you can also - * create multiple prefs-based address books by changing the 'name' parameter. - * This is best for address books that are expected to remain small; it's not - * the most efficient, but it can't be beat for getting up and running - * quickly, especially if you already have Horde preferences working. Note - * that it is not searchable, though - searches will simply return the whole - * address book. - */ -// $cfgSources['prefs'] = array( -// 'title' => _("Private Address Book"), -// 'type' => 'prefs', -// 'params' => array( -// 'name' => 'prefs', -// 'charset' => NLS::getCharset() -// ), -// 'map' => array( -// '__key' => 'id', -// '__type' => '_type', -// '__members' => '_members', -// '__uid' => 'uid', -// 'name' => 'name', -// 'email' => 'mail', -// 'alias' => 'alias' -// ), -// 'search' => array( -// 'name', -// 'email', -// 'alias' -// ), -// 'strict' => array( -// 'id', -// '_type', -// ), -// 'export' => true, -// 'browse' => true, -// ); - -/** - * This source creates an address book for each group the current user is a - * member in. The address book will always be read only, and the group members - * must have an email address entered in their default identity. No email - * address will result in that member not being included in the address book. - */ -//$grpSource = array( -// 'title' => _("Group"), -// 'type' => 'group', -// 'params' => array( -// 'name' => '' -// ), -// 'map' => array( -// '__key' => 'email', -// 'name' => 'name', -// 'email' => 'email' -// ), -// 'search' => array( -// 'name', -// 'email' -// ), -// 'export' => true, -// 'browse' => true, -//); - -//require_once 'Horde/Group.php'; -//$_group_driver = &Group::singleton(); -//$_group_list = $_group_driver->getGroupMemberships(Auth::getAuth()); -//foreach ($_group_list as $_group_id => $_group_name) { -// $cfgSources['group_' . $_group_id] = $grpSource; -// $cfgSources['group_' . $_group_id]['params'] = array('gid' => $_group_id); -// $cfgSources['group_' . $_group_id]['title'] = $_group_name; -//} - -/** - * IMSP based address book. - * - * Communicates with an IMSP backend server. - * - * Notes: - * You should configure the user's "main" address book here. The name of the - * address book is set in the 'name' element of the params array. It should - * be configured to be the same as the IMSP server username. Any other - * address books the user has access to will automatically be configured at - * runtime. - * - * In the params array, accepted values for auth_method are 'cram_md5', - * 'imtest', and 'plaintext' - these must match a IMSP_Auth_ driver. If you - * are using the imtest driver for Cyrus, please read the - * framework/Net_IMSP/Auth/imtest.php file for more configuration information. - * - * Groups in other IMSP-aware applications are just entries with multiple - * email addresses in the email field and a 'group' field set to flag the - * entry as a group. (The Cyrusoft applications, Mulberry and Silkymail both - * use a field named 'group' set to equal 'group' to signify this). A - * Turba_Object_Group is basically a List of existing Turba_Objects. The IMSP - * driver will map between these two structures when reading and writing - * groups. - * The only caveat is that IMSP groups that contain email addresses which do - * not have a cooresponding contact entry will be ignored. The group_id_field - * should be set to the IMSP field that flags the entry as a 'group' entry and - * the group_id_value should be set to the value given to that field. - * - * By default, the username and password that were used to login to Horde is - * used to login to the IMSP server. If these credentials are different, - * there is a user preference in Horde to allow another username / password to - * be entered. The alternate credentials are always used if present. - * - * In the map array, since IMSP uses the 'name' attribute as a key, this is - * what __key is mapped to ... and a dynamic field 'fullname' is added and - * mapped to the horde 'name' field. This is populated with the IMSP 'name' - * field when the object is read from the server. - * - * If you wish to keep track of ownership of individual contacts, set - * 'contact_ownership' = true. Note that entries created using other clients - * will not be created this way and will therefore have no 'owner'. Set - * 'contact_ownership' = false and the __owner field will be automatically - * populated with the current username. - * - * To integrate with Horde_Share (requires Horde 3.2 or better) set use_shares - * to true, and uncomment the IMSP Horde_Share hooks in horde/config/hooks.php. - */ -// Check that IMSP is configured in Horde but fall through if there is no -// configuration at all - in case we don't have at least a 3.0.6 Horde -// install. (In that case, be sure to change the params array below to suit -// your needs. -if (!empty($GLOBALS['conf']['imsp']['enabled']) || - !isset($GLOBALS['conf']['imsp']['enabled'])) { - // First, get the user name to login to IMSP server with. - $_imsp_auth_user = $GLOBALS['prefs']->getValue('imsp_auth_user'); - $_imsp_auth_pass = $GLOBALS['prefs']->getValue('imsp_auth_pass'); - if (!strlen($_imsp_auth_user)) { - $_imsp_auth_user = Auth::getBareAuth(); - $_imsp_auth_pass = Auth::getCredential('password'); - } - $cfgSources['imsp'] = array( - 'title' => _("IMSP"), - 'type' => 'imsp', - 'params' => array( - 'server' => $GLOBALS['conf']['imsp']['server'], - 'port' => $GLOBALS['conf']['imsp']['port'], - 'auth_method' => $GLOBALS['conf']['imsp']['auth_method'], - // socket, command, and auth_mechanism are for imtest driver. - 'socket' => isset($GLOBALS['conf']['imsp']['socket']) ? - $GLOBALS['conf']['imsp']['socket'] . $_imsp_auth_user . '.sck' : - '', - 'command' => isset($GLOBALS['conf']['imsp']['command']) ? - $GLOBALS['conf']['imsp']['command'] : '' , - 'auth_mechanism' => isset($GLOBALS['conf']['imsp']['auth_mechanism']) ? - $GLOBALS['conf']['imsp']['auth_mechanism'] : '', - 'username' => $_imsp_auth_user, - 'password' => $_imsp_auth_pass, - 'name' => $_imsp_auth_user, - 'group_id_field' => 'group', - 'group_id_value' => 'group', - 'contact_ownership' => false, - // Dynamically generated acl rights for current user. - 'my_rights' => '', - ), - 'map' => array( - '__key' => 'name', - '__type' => '__type', - '__members' => '__members', - '__owner' => '__owner', - '__uid' => '__uid', - 'email' => 'email', - 'alias' => 'alias', - 'company' => 'company', - 'notes' => 'notes', - 'workPhone' => 'phone-work', - 'fax' => 'fax', - 'homePhone' => 'phone-home', - 'cellPhone' => 'cellphone', - 'freebusyUrl' => 'freebusyUrl' - ), - 'search' => array( - 'name', - 'email', - 'alias', - 'company', - 'homePhone' - ), - 'strict' => array(), - 'export' => true, - 'browse' => true, - 'use_shares' => false, - ); - - /** - * Get any other address books this user might be privy to. - * The values for attributes such as 'export' and 'browse' for books - * that are added below will be the same as the values set in the default - * book above. Any entries defined explicitly in cfgSources[] - * will override any entries gathered dynamically below. - */ - if (empty($cfgSources['imsp']['use_shares'])) { - require_once 'Net/IMSP/Utils.php'; - $result = Net_IMSP_Utils::getAllBooks($cfgSources['imsp']); - - if (!is_a($result, 'PEAR_Error')) { - $resultCount = count($result); - for ($i = 0; $i < $resultCount; $i++) { - // Make sure we didn't define this source explicitly, - // but set the acls from the server regardless. - $dup = false; - foreach ($cfgSources as $key => $thisSource) { - if (($thisSource['type'] == 'imsp') && - ($thisSource['params']['name'] == $result[$i]['params']['name'])) { - - $dup = true; - $acl = $result[$i]['params']['my_rights']; - $cfgSources[$key]['params']['my_rights'] = $acl; - break; - } - } - if (!$dup) { - $cfgSources[$result[$i]['params']['name']] = $result[$i]; - } - } - } else { - $notification->push($result); - } - } -} -/* End IMSP sources. */ /* Begin Kolab sources. */ if (!empty($GLOBALS['conf']['kolab']['enabled'])) { @@ -644,7 +35,8 @@ 'version' => 3, 'bind_dn' => '', 'bind_password' => '', - ), + 'read_only' => true, + ), 'map' => array( '__key' => 'dn', 'name' => 'cn', @@ -695,6 +87,10 @@ /** * The local address books for a Kolab user. These are stored in specially * flagged contact folder within the users Cyrus IMAP mailbox. + * + * Still missing attributes are: + * + * picture, sensitivity */ $cfgSources['kolab'] = array( @@ -716,7 +112,7 @@ 'namePrefix' => 'prefix', 'nameSuffix' => 'suffix', 'initials' => 'initials', - 'alias' => 'nick-name', + 'nickname' => 'nick-name', 'gender' => 'gender', 'birthday' => 'birthday', 'spouse' => 'spouse-name', @@ -756,11 +152,10 @@ 'language' => 'language', 'latitude' => 'latitude', 'longitude' => 'longitude', - // MISSING: picture, sensitivity ), 'tabs' => array( _("Personal") => array('name', 'firstname', 'lastname', 'middlenames', - 'namePrefix', 'nameSuffix', 'initials', 'alias', + 'namePrefix', 'nameSuffix', 'initials', 'nickname', 'gender', 'birthday', 'spouse', 'anniversary', 'children'), _("Location") => array('homeStreet', 'homeCity', 'homeProvince', @@ -782,7 +177,7 @@ 'namePrefix', 'nameSuffix', 'initials', - 'alias', + 'nickname', 'gender', 'birthday', 'spouse', --- HK-GW-Changes_after_ALPHA.patch DELETED --- --- HK-GW-Fix_address_book_deletion_1.patch DELETED --- --- HK-GW-Fix_notice_on_addressbook_creation.patch DELETED --- --- attributes.php DELETED --- --- config-sources.php.dist.patch DELETED --- From cvs at kolab.org Thu Nov 29 09:25:55 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 09:25:55 +0100 (CET) Subject: gunnar: server/horde/horde-framework ChangeLog, 1.11, 1.12 horde-framework-kolab.spec, 1.30, 1.31 HK-GW-Fix_annotation_use.patch, 1.1, NONE HK-GW-Fix_contact_XML.patch, 1.1, NONE HK-GW-Fix_the_share_params.patch, 1.1, NONE HK-GW-Kolab_extensions.patch, 1.4, NONE HK-GW-Kolab_issue_2138.patch, 1.1, NONE HK-GW-Kolab_issue_2144.patch, 1.1, NONE HK-GW-Share_caching.patch, 1.1, NONE Message-ID: <20071129082555.429AF600D66@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-framework In directory doto:/tmp/cvs-serv8296/horde/horde-framework Modified Files: ChangeLog horde-framework-kolab.spec Removed Files: HK-GW-Fix_annotation_use.patch HK-GW-Fix_contact_XML.patch HK-GW-Fix_the_share_params.patch HK-GW-Kolab_extensions.patch HK-GW-Kolab_issue_2138.patch HK-GW-Kolab_issue_2144.patch HK-GW-Share_caching.patch Log Message: Horde packages updated to the newest RC1 release. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/ChangeLog,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- ChangeLog 22 Nov 2007 16:24:14 -0000 1.11 +++ ChangeLog 29 Nov 2007 08:25:52 -0000 1.12 @@ -1,3 +1,7 @@ +2007-11-29 Gunnar Wrobel

    + + * horde-framework-kolab.spec: Update to RC1 + 2007-11-22 Gunnar Wrobel

    * horde-framework-kolab.spec: Index: horde-framework-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/horde-framework-kolab.spec,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- horde-framework-kolab.spec 23 Nov 2007 15:03:53 -0000 1.30 +++ horde-framework-kolab.spec 29 Nov 2007 08:25:52 -0000 1.31 @@ -3,8 +3,8 @@ %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 %define V_month 11 -%define V_day 23 -%define V_version 3.2_ALPHA +%define V_day 28 +%define V_version 3.2_RC1 %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -27,13 +27,6 @@ Source0: http://build.pardus.de/downloads/horde-%{V_horde_name}-%{V_version}.tar.bz2 Patch0: HK-GW-Fix_Prefs_for_Ingo.patch -Patch1: HK-GW-Fix_the_share_params.patch -Patch2: HK-GW-Fix_annotation_use.patch -Patch3: HK-GW-Share_caching.patch -Patch4: HK-GW-Kolab_issue_2144.patch -Patch5: HK-GW-Kolab_issue_2138.patch -Patch6: HK-GW-Fix_contact_XML.patch -Patch7: HK-GW-Kolab_extensions.patch # Build Info Prefix: %{l_prefix} @@ -56,13 +49,6 @@ %prep %setup -n framework %patch -p2 -P 0 - %patch -p2 -P 1 - %patch -p2 -P 2 - %patch -p2 -P 3 - %patch -p2 -P 4 - %patch -p2 -P 5 - %patch -p2 -P 6 - %patch -p2 -P 7 %build --- HK-GW-Fix_annotation_use.patch DELETED --- --- HK-GW-Fix_contact_XML.patch DELETED --- --- HK-GW-Fix_the_share_params.patch DELETED --- --- HK-GW-Kolab_extensions.patch DELETED --- --- HK-GW-Kolab_issue_2138.patch DELETED --- --- HK-GW-Kolab_issue_2144.patch DELETED --- --- HK-GW-Share_caching.patch DELETED --- From cvs at kolab.org Thu Nov 29 09:25:55 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 09:25:55 +0100 (CET) Subject: gunnar: server/horde/horde-mnemo ChangeLog, 1.5, 1.6 horde-mnemo-kolab.spec, 1.18, 1.19 HK-GW-Edit_share_rights.patch, 1.1, NONE Message-ID: <20071129082555.5F17C600D69@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-mnemo In directory doto:/tmp/cvs-serv8296/horde/horde-mnemo Modified Files: ChangeLog horde-mnemo-kolab.spec Removed Files: HK-GW-Edit_share_rights.patch Log Message: Horde packages updated to the newest RC1 release. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/horde/horde-mnemo/ChangeLog,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- ChangeLog 12 Sep 2007 14:48:53 -0000 1.5 +++ ChangeLog 29 Nov 2007 08:25:52 -0000 1.6 @@ -1,3 +1,7 @@ +2007-11-29 Gunnar Wrobel

    + + * horde-mnemo-kolab.spec: Update to RC1 + 2007-09-12 Gunnar Wrobel

    * horde-mnemo-kolab.spec (AutoReqProv): Index: horde-mnemo-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-mnemo/horde-mnemo-kolab.spec,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- horde-mnemo-kolab.spec 4 Oct 2007 09:47:55 -0000 1.18 +++ horde-mnemo-kolab.spec 29 Nov 2007 08:25:52 -0000 1.19 @@ -2,10 +2,10 @@ %define V_horde_name mnemo %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 -%define V_month 10 -%define V_day 01 -%define V_version 2.2_alpha -%define V_uver 2.2-alpha +%define V_month 11 +%define V_day 28 +%define V_version 2.2_rc1 +%define V_uver 2.2-rc1 %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -25,9 +25,6 @@ Source0: http://ftp.horde.org/pub/%{V_horde_name}/%{V_horde_name}-h3-%{V_uver}.tar.gz Source1: conf.php -# List of Patches -Patch0: HK-GW-Edit_share_rights.patch - # Build Info Prefix: %{l_prefix} BuildRoot: %{l_buildroot} @@ -51,7 +48,6 @@ %setup -c -q -n %{V_horde_name}-h3-%{V_uver} cd %{V_horde_name}-h3-%{V_uver} - %patch -p2 -P 0 cd .. %build @@ -71,8 +67,9 @@ %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:1} \ $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/config/ - %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \ - '%config(noreplace) %{l_prefix}/var/kolab/www/horde/%{V_horde_name}/config/conf.php' + %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \ + '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/kolab/www/horde/%{V_horde_name}/config/conf.php \ + '%config(noreplace)' %{l_prefix}/var/kolab/www/horde/%{V_horde_name}/config/conf.php %clean rm -rf $RPM_BUILD_ROOT --- HK-GW-Edit_share_rights.patch DELETED --- From cvs at kolab.org Thu Nov 29 09:25:55 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 09:25:55 +0100 (CET) Subject: gunnar: server/horde/horde-imp ChangeLog, 1.3, 1.4 conf.php, 1.2, 1.3 horde-imp-kolab.spec, 1.16, 1.17 servers.php, 1.2, 1.3 Message-ID: <20071129082555.62FDA600D6B@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-imp In directory doto:/tmp/cvs-serv8296/horde/horde-imp Modified Files: ChangeLog conf.php horde-imp-kolab.spec servers.php Log Message: Horde packages updated to the newest RC1 release. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/horde/horde-imp/ChangeLog,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ChangeLog 20 Jul 2007 11:19:08 -0000 1.3 +++ ChangeLog 29 Nov 2007 08:25:52 -0000 1.4 @@ -1,3 +1,7 @@ +2007-11-29 Gunnar Wrobel

    + + * horde-imp-kolab.spec: Update to RC1 + 2007-07-19 Gunnar Wrobel

    * horde-imp-kolab.spec: Update to 20070719 Index: conf.php =================================================================== RCS file: /kolabrepository/server/horde/horde-imp/conf.php,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- conf.php 4 Oct 2007 09:47:55 -0000 1.2 +++ conf.php 29 Nov 2007 08:25:52 -0000 1.3 @@ -1,10 +1,10 @@ array('#shared/', '#news/', '#ftp/', '#public/') - * This parameter must be set if using a TLS connection. - * Additionally, this parameter may be set if not using a TLS - * connection and you want to allow access to namespaces that may - * not be publicly advertised by the IMAP server (see RFC - * 2342 [3]). These additional namespaces will be added to the list - * of available namespaces returned by the server. - * - * imap_config: Manually set IMAP server configuration information. Please see - * http://wiki.horde.org/ImpImapConfig for information on this - * parameter. THIS PARAMETER IS NOT OFFICIALLY SUPPORTED BY THE - * HORDE PROJECT. This entry must be an array with the following - * elements: - * 'children' - (boolean) Whether the IMAP server supports the - * CHILDREN command. - * 'namespace' - (array) The namespace configuration of the - * server. See the return from - * IMAP_Client::namespace() (located in - * imp/lib/IMAP/Client.php) for the structure of - * this array. - * 'search_charset' - (array) A list of charsets the IMAP server - * supports for searches. - * - * timeout: Manually set server timeouts. This option only works with PHP >= - * 4.3.3. This entry must be an array with the following possible - * elements (if an element is missing, the default value is used): - * IMAP_OPENTIMEOUT - (integer) The timeout for open actions. - * IMAP_READTIMEOUT - (integer) The timeout for read actions. - * IMAP_WRITETIMEOUT - (integer) The timeout for write actions. - * IMAP_CLOSETIMEOUT - (integer) The timeout for close actions. - * - * login_tries: Manually set the number of login tries we make to the server. - * The PHP imap_open() function will try to login 3 times to a - * server before failing. This value indicates the number of - * times we call imap_open() before IMP fails (we pause one second - * between imap_open() calls). The default value is 3 (meaning IMP - * may attempt to login to the server 9 times). If you have a - * mail server that will lock out an account if a certain number - * of incorrect login attempts occur within a certain period of - * time, you may want to set this to a lower value. The minimum - * value for this setting is 1. - */ if ($GLOBALS['conf']['kolab']['enabled']) { require_once 'Horde/Kolab.php'; From cvs at kolab.org Thu Nov 29 09:25:55 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 09:25:55 +0100 (CET) Subject: gunnar: server/horde/horde-nag ChangeLog, 1.3, 1.4 horde-nag-kolab.spec, 1.15, 1.16 HK-GW-Fix_share_right_editing.patch, 1.1, NONE Message-ID: <20071129082555.5C495600D68@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-nag In directory doto:/tmp/cvs-serv8296/horde/horde-nag Modified Files: ChangeLog horde-nag-kolab.spec Removed Files: HK-GW-Fix_share_right_editing.patch Log Message: Horde packages updated to the newest RC1 release. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/horde/horde-nag/ChangeLog,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ChangeLog 20 Jul 2007 11:19:08 -0000 1.3 +++ ChangeLog 29 Nov 2007 08:25:52 -0000 1.4 @@ -1,3 +1,7 @@ +2007-11-29 Gunnar Wrobel

    + + * horde-nag-kolab.spec: Update to RC1 + 2007-07-19 Gunnar Wrobel

    * horde-nag-kolab.spec: Update to 20070719 Index: horde-nag-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-nag/horde-nag-kolab.spec,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- horde-nag-kolab.spec 4 Oct 2007 09:47:55 -0000 1.15 +++ horde-nag-kolab.spec 29 Nov 2007 08:25:52 -0000 1.16 @@ -2,10 +2,10 @@ %define V_horde_name nag %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 -%define V_month 10 -%define V_day 04 -%define V_version 2.2_alpha -%define V_uver 2.2-alpha +%define V_month 11 +%define V_day 28 +%define V_version 2.2_rc1 +%define V_uver 2.2-rc1 %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -25,9 +25,6 @@ Source0: http://ftp.horde.org/pub/%{V_horde_name}/%{V_horde_name}-h3-%{V_uver}.tar.gz Source1: conf.php -# List of Patches -Patch0: HK-GW-Fix_share_right_editing.patch - # Build Info Prefix: %{l_prefix} BuildRoot: %{l_buildroot} @@ -50,7 +47,6 @@ %setup -c -q -n %{V_horde_name}-h3-%{V_uver} cd %{V_horde_name}-h3-%{V_uver} - %patch -p2 -P 0 cd .. %build @@ -70,8 +66,9 @@ %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:1} \ $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/config/ - %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \ - '%config(noreplace) %{l_prefix}/var/kolab/www/horde/%{V_horde_name}/config/conf.php' + %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \ + '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/kolab/www/horde/%{V_horde_name}/config/conf.php \ + '%config(noreplace)' %{l_prefix}/var/kolab/www/horde/%{V_horde_name}/config/conf.php %clean rm -rf $RPM_BUILD_ROOT --- HK-GW-Fix_share_right_editing.patch DELETED --- From cvs at kolab.org Thu Nov 29 09:25:55 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 09:25:55 +0100 (CET) Subject: gunnar: server/horde/horde-kronolith ChangeLog, 1.4, 1.5 horde-kronolith-kolab.spec, 1.17, 1.18 HK-GW-Fix_create_new_event.patch, 1.1, NONE HK-GW-Fix_share_right_editing.patch, 1.1, NONE HK-GW-Kolab_issue_2138.patch, 1.1, NONE HK-UV-Fix_list_events.patch, 1.1, NONE Message-ID: <20071129082555.6110A600D6A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-kronolith In directory doto:/tmp/cvs-serv8296/horde/horde-kronolith Modified Files: ChangeLog horde-kronolith-kolab.spec Removed Files: HK-GW-Fix_create_new_event.patch HK-GW-Fix_share_right_editing.patch HK-GW-Kolab_issue_2138.patch HK-UV-Fix_list_events.patch Log Message: Horde packages updated to the newest RC1 release. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/horde/horde-kronolith/ChangeLog,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ChangeLog 19 Nov 2007 19:41:01 -0000 1.4 +++ ChangeLog 29 Nov 2007 08:25:52 -0000 1.5 @@ -1,3 +1,7 @@ +2007-11-29 Gunnar Wrobel

    + + * horde-kronolith-kolab.spec: Update to RC1 + 2007-11-19 Gunnar Wrobel

    * horde-kronolith-kolab.spec: Index: horde-kronolith-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-kronolith/horde-kronolith-kolab.spec,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- horde-kronolith-kolab.spec 19 Nov 2007 19:41:01 -0000 1.17 +++ horde-kronolith-kolab.spec 29 Nov 2007 08:25:52 -0000 1.18 @@ -3,9 +3,9 @@ %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 %define V_month 11 -%define V_day 19 -%define V_version 2.2_alpha -%define V_uver 2.2-alpha +%define V_day 28 +%define V_version 2.2_rc1 +%define V_uver 2.2-rc1 %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -26,12 +26,6 @@ Source1: horde-kronolith-kolab-conf.template Source2: conf.php -# List of Patches -Patch0: HK-GW-Fix_create_new_event.patch -Patch1: HK-GW-Fix_share_right_editing.patch -Patch2: HK-UV-Fix_list_events.patch -Patch3: HK-GW-Kolab_issue_2138.patch - # Build Info Prefix: %{l_prefix} BuildRoot: %{l_buildroot} @@ -60,10 +54,6 @@ %setup -c -q -n %{V_horde_name}-h3-%{V_uver} cd %{V_horde_name}-h3-%{V_uver} - %patch -p2 -P 0 - %patch -p2 -P 1 - %patch -p2 -P 2 - %patch -p2 -P 3 cd .. %build @@ -86,9 +76,10 @@ %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:2} \ $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/config/ - %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/horde-kronolith-kolab-conf.template' \ - '%config(noreplace) %{l_prefix}/var/kolab/www/horde/%{V_horde_name}/config/conf.php' + %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \ + '%config(noreplace)' %{l_prefix}/etc/kolab/templates/horde-kronolith-kolab-conf.template \ + '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/kolab/www/horde/%{V_horde_name}/config/conf.php \ + '%config(noreplace)' %{l_prefix}/var/kolab/www/horde/%{V_horde_name}/config/conf.php %clean rm -rf $RPM_BUILD_ROOT --- HK-GW-Fix_create_new_event.patch DELETED --- --- HK-GW-Fix_share_right_editing.patch DELETED --- --- HK-GW-Kolab_issue_2138.patch DELETED --- --- HK-UV-Fix_list_events.patch DELETED --- From cvs at kolab.org Thu Nov 29 09:25:55 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 09:25:55 +0100 (CET) Subject: gunnar: server/horde/horde-ingo ChangeLog, 1.3, 1.4 backends.php, 1.1, 1.2 conf.php, 1.2, 1.3 horde-ingo-kolab.spec, 1.15, 1.16 Message-ID: <20071129082555.8575F600D65@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-ingo In directory doto:/tmp/cvs-serv8296/horde/horde-ingo Modified Files: ChangeLog backends.php conf.php horde-ingo-kolab.spec Log Message: Horde packages updated to the newest RC1 release. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/horde/horde-ingo/ChangeLog,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ChangeLog 20 Jul 2007 11:19:08 -0000 1.3 +++ ChangeLog 29 Nov 2007 08:25:52 -0000 1.4 @@ -1,3 +1,7 @@ +2007-11-29 Gunnar Wrobel

    + + * horde-ingo-kolab.spec: Update to RC1 + 2007-07-19 Gunnar Wrobel

    * horde-ingo-kolab.spec: Update to 20070719 Index: backends.php =================================================================== RCS file: /kolabrepository/server/horde/horde-ingo/backends.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- backends.php 25 May 2007 13:06:44 -0000 1.1 +++ backends.php 29 Nov 2007 08:25:52 -0000 1.2 @@ -1,53 +1,28 @@ 'timsieved', 'preferred' => '', 'hordeauth' => 'full', 'params' => array( - 'hostspec' => $GLOBALS['conf']['kolab']['imap']['server'], + 'hostspec' => $server, 'logintype' => 'PLAIN', + 'usetls' => false, 'port' => $GLOBALS['conf']['kolab']['imap']['sieveport'], 'scriptname' => 'kmail-vacation.siv' ), 'script' => 'sieve', - 'scriptparams' => array() + 'scriptparams' => array(), + 'shares' => false ); } Index: conf.php =================================================================== RCS file: /kolabrepository/server/horde/horde-ingo/conf.php,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- conf.php 4 Oct 2007 09:47:55 -0000 1.2 +++ conf.php 29 Nov 2007 08:25:52 -0000 1.3 @@ -1,13 +1,12 @@ Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/tests In directory doto:/tmp/cvs-serv723/php-kolab/Kolab_Filter/tests Added Files: dumb_usage.phpt simple_in_msg.phpt simple_out_msg.phpt Removed Files: test.eml Log Message: Restructured Kolab_Filter package with the focus on error handling and unit testing. --- NEW FILE: dumb_usage.phpt --- --TEST-- Test reading a mail without iCal content. --SKIPIF-- --FILE-- handle($parser->parse()); ?> --EXPECT-- Usage is test -s sender at domain -r recipient at domain --- NEW FILE: simple_in_msg.phpt --- --TEST-- Test reading a mail without iCal content. --SKIPIF-- --FILE-- _lineFormat = '%2$s [%3$s] %7$s'; // Activate this if you need the log information. This will // make the test fail though //$logger->_lineFormat = '%2$s [%3$s] %4$s %7$s'; $inh = fopen('_data/simple.eml', 'r'); /* Setup the classes */ $parser = &new Filter_Incoming('StdOut'); $response = &new Response('', true); /* Parse the mail and spit out the response */ $response->handle($parser->parse($inh)); ?> --EXPECT-- Kolab Filter [debug] logMessage Mail from sender: me at example.com Mail to recipient: you at example.com Return-Path: Received: from localhost (fqdn.example.com [127.0.0.1]) by demo.example.com (Cyrus v2.3.9-openpkg) with LMTPA; Sat, 10 Nov 2007 20:44:52 +0100 X-Sieve: CMU Sieve 2.3 Received: from localhost (fqdn.example.com [127.0.0.1]) by demo.example.com (Postfix) with ESMTP id 395055FC0128 for ; Sat, 10 Nov 2007 20:44:52 +0100 (CET) X-Quarantine-ID: X-Virus-Scanned: by amavisd-new at demo.example.com X-Spam-Flag: YES X-Spam-Score: 15.576 X-Spam-Level: *************** X-Spam-Status: Yes, score=15.576 tagged_above=3 required=6.3 tests=[FRT_PENIS1=3.799, HTML_MESSAGE=0.001, PLING_QUERY=2.16, RCVD_FORGED_WROTE=4.365, RCVD_FORGED_WROTE2=2.052, RDNS_NONE=0.1, SUBJECT_FUZZY_PENIS=3.099] Received: from demo.example.com ([127.0.0.1]) by localhost (demo.example.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pcNZVfHFgssC for ; Sat, 10 Nov 2007 20:44:51 +0100 (CET) Received: from localhost (fqdn.example.com [127.0.0.1]) by demo.example.com (Postfix) with ESMTP id ABE8E5FC012A for ; Sat, 10 Nov 2007 20:44:51 +0100 (CET) Received: from town.windham.me.us (unknown [85.192.14.1]) by demo.example.com (Postfix) with SMTP id D10375FC0128 for ; Sat, 10 Nov 2007 20:44:49 +0100 (CET) Received: from 192.85.78.105 (HELO ccfemsasmtp.kof.com.mx) by demo.example.com with esmtp (CEYPNSAEHHT CYXPCJ) id UNrWB0-GRSpeC-lz for wrobel at demo.example.com; Sat, 10 Nov 2007 22:45:12 +0300 Message-ID: <1d2101c823d2$3555aa10$ac112c15 at Meredith> From: "Meredith F. Dick" To: "Marta Z. Rodrigues" Subject: ***SPAM*** Don't you think it's time you stopped being a loser Date: Sat, 10 Nov 2007 22:45:12 +0300 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_7455_1D89_01C823EB.5AA2E210" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.2869 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869 X-Kolab-Scheduling-Message: FALSE This is a multi-part message in MIME format. ------=_NextPart_7455_1D89_01C823EB.5AA2E210 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable request=2E Horn was a fan favorite, standing up for theA recent poll by M= ontreal based newspaper Le Devoir, on Mel Karmazin spoke on behalf of both XM and Sirius=2E Do you believe in magic? We suppose you're likely to say "no"=2E=20 We hadn't believed, either=2E=2E=2Euntil the moment MegaXXXX was introduc= ed!=20 The effect this remedy produces on a male XXXXX cannot be called otherwis= e than a Miracle!=20 It's fabulous! So, hurry up, work a miracle in your life with this wonder-medicine! competiton has a poor track record of keeping down costsas head of the pu= ppet government in China=2EParti Qubcois leader slams radio host on homop= hobiacontrols=2E XM and Sirius can be said to compete with ------=_NextPart_7455_1D89_01C823EB.5AA2E210 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable =20
    request=2E Horn was a fan favorite, standing up for theA recent poll = by Montreal based newspaper Le Devoir, on
    Mel Karmazin spoke on behalf= of both XM and Sirius=2E
    =20


    Do you believe in magic? We suppose you're likely to say "no"=2E
    We hadn't believed, either=2E=2E=2Euntil the momen= t MegaXXXX was introduced!

    The effect this remedy produces on a male XXXXX cannot be called otherwis= e than a Miracle!
    It's fabulous!

    So, hurry up, work a miracle in you= r life with this wonder-medicine!


    competiton has a poor track record of keeping = down costsas head of the puppet government in China=2EParti Qubcois leade= r slams radio host on homophobiacontrols=2E XM and Sirius can be said to = compete with
    ------=_NextPart_7455_1D89_01C823EB.5AA2E210-- . Kolab Filter [debug] logMessage --- NEW FILE: simple_out_msg.phpt --- --TEST-- Test sending a mail without iCal content. --SKIPIF-- --FILE-- _lineFormat = '%2$s [%3$s] %7$s'; // Activate this if you need the log information. This will // make the test fail though //$logger->_lineFormat = '%2$s [%3$s] %4$s %7$s'; $inh = fopen('_data/simple.eml', 'r'); /* Setup the classes */ $parser = &new Filter_Outgoing('StdOut'); $response = &new Response('', true); /* Parse the mail and spit out the response */ $response->handle($parser->parse($inh)); ?> --EXPECT-- Kolab Filter [debug] logMessage Mail from sender: me at example.com Mail to recipient: you at example.com Return-Path: Received: from localhost (fqdn.example.com [127.0.0.1]) by demo.example.com (Cyrus v2.3.9-openpkg) with LMTPA; Sat, 10 Nov 2007 20:44:52 +0100 X-Sieve: CMU Sieve 2.3 Received: from localhost (fqdn.example.com [127.0.0.1]) by demo.example.com (Postfix) with ESMTP id 395055FC0128 for ; Sat, 10 Nov 2007 20:44:52 +0100 (CET) X-Quarantine-ID: X-Virus-Scanned: by amavisd-new at demo.example.com X-Spam-Flag: YES X-Spam-Score: 15.576 X-Spam-Level: *************** X-Spam-Status: Yes, score=15.576 tagged_above=3 required=6.3 tests=[FRT_PENIS1=3.799, HTML_MESSAGE=0.001, PLING_QUERY=2.16, RCVD_FORGED_WROTE=4.365, RCVD_FORGED_WROTE2=2.052, RDNS_NONE=0.1, SUBJECT_FUZZY_PENIS=3.099] Received: from demo.example.com ([127.0.0.1]) by localhost (demo.example.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pcNZVfHFgssC for ; Sat, 10 Nov 2007 20:44:51 +0100 (CET) Received: from localhost (fqdn.example.com [127.0.0.1]) by demo.example.com (Postfix) with ESMTP id ABE8E5FC012A for ; Sat, 10 Nov 2007 20:44:51 +0100 (CET) Received: from town.windham.me.us (unknown [85.192.14.1]) by demo.example.com (Postfix) with SMTP id D10375FC0128 for ; Sat, 10 Nov 2007 20:44:49 +0100 (CET) Received: from 192.85.78.105 (HELO ccfemsasmtp.kof.com.mx) by demo.example.com with esmtp (CEYPNSAEHHT CYXPCJ) id UNrWB0-GRSpeC-lz for wrobel at demo.example.com; Sat, 10 Nov 2007 22:45:12 +0300 Message-ID: <1d2101c823d2$3555aa10$ac112c15 at Meredith> From: "Meredith F. Dick" To: "Marta Z. Rodrigues" Subject: ***SPAM*** Don't you think it's time you stopped being a loser Date: Sat, 10 Nov 2007 22:45:12 +0300 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_7455_1D89_01C823EB.5AA2E210" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.2869 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869 This is a multi-part message in MIME format. ------=_NextPart_7455_1D89_01C823EB.5AA2E210 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable request=2E Horn was a fan favorite, standing up for theA recent poll by M= ontreal based newspaper Le Devoir, on Mel Karmazin spoke on behalf of both XM and Sirius=2E Do you believe in magic? We suppose you're likely to say "no"=2E=20 We hadn't believed, either=2E=2E=2Euntil the moment MegaXXXX was introduc= ed!=20 The effect this remedy produces on a male XXXXX cannot be called otherwis= e than a Miracle!=20 It's fabulous! So, hurry up, work a miracle in your life with this wonder-medicine! competiton has a poor track record of keeping down costsas head of the pu= ppet government in China=2EParti Qubcois leader slams radio host on homop= hobiacontrols=2E XM and Sirius can be said to compete with ------=_NextPart_7455_1D89_01C823EB.5AA2E210 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable =20
    request=2E Horn was a fan favorite, standing up for theA recent poll = by Montreal based newspaper Le Devoir, on
    Mel Karmazin spoke on behalf= of both XM and Sirius=2E
    =20


    Do you believe in magic? We suppose you're likely to say "no"=2E
    We hadn't believed, either=2E=2E=2Euntil the momen= t MegaXXXX was introduced!

    The effect this remedy produces on a male XXXXX cannot be called otherwis= e than a Miracle!
    It's fabulous!

    So, hurry up, work a miracle in you= r life with this wonder-medicine!


    competiton has a poor track record of keeping = down costsas head of the puppet government in China=2EParti Qubcois leade= r slams radio host on homophobiacontrols=2E XM and Sirius can be said to = compete with
    ------=_NextPart_7455_1D89_01C823EB.5AA2E210-- . Kolab Filter [debug] logMessage --- test.eml DELETED --- From cvs at kolab.org Mon Nov 26 17:35:23 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 26 Nov 2007 17:35:23 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/tests/_data simple.eml, NONE, 1.1 test.eml, NONE, 1.1 Message-ID: <20071126163523.84C16600D6C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/tests/_data In directory doto:/tmp/cvs-serv723/php-kolab/Kolab_Filter/tests/_data Added Files: simple.eml test.eml Log Message: Restructured Kolab_Filter package with the focus on error handling and unit testing. --- NEW FILE: simple.eml --- Return-Path: Received: from localhost (fqdn.example.com [127.0.0.1]) by demo.example.com (Cyrus v2.3.9-openpkg) with LMTPA; Sat, 10 Nov 2007 20:44:52 +0100 X-Sieve: CMU Sieve 2.3 Received: from localhost (fqdn.example.com [127.0.0.1]) by demo.example.com (Postfix) with ESMTP id 395055FC0128 for ; Sat, 10 Nov 2007 20:44:52 +0100 (CET) X-Quarantine-ID: X-Virus-Scanned: by amavisd-new at demo.example.com X-Spam-Flag: YES X-Spam-Score: 15.576 X-Spam-Level: *************** X-Spam-Status: Yes, score=15.576 tagged_above=3 required=6.3 tests=[FRT_PENIS1=3.799, HTML_MESSAGE=0.001, PLING_QUERY=2.16, RCVD_FORGED_WROTE=4.365, RCVD_FORGED_WROTE2=2.052, RDNS_NONE=0.1, SUBJECT_FUZZY_PENIS=3.099] Received: from demo.example.com ([127.0.0.1]) by localhost (demo.example.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pcNZVfHFgssC for ; Sat, 10 Nov 2007 20:44:51 +0100 (CET) Received: from localhost (fqdn.example.com [127.0.0.1]) by demo.example.com (Postfix) with ESMTP id ABE8E5FC012A for ; Sat, 10 Nov 2007 20:44:51 +0100 (CET) Received: from town.windham.me.us (unknown [85.192.14.1]) by demo.example.com (Postfix) with SMTP id D10375FC0128 for ; Sat, 10 Nov 2007 20:44:49 +0100 (CET) Received: from 192.85.78.105 (HELO ccfemsasmtp.kof.com.mx) by demo.example.com with esmtp (CEYPNSAEHHT CYXPCJ) id UNrWB0-GRSpeC-lz for wrobel at demo.example.com; Sat, 10 Nov 2007 22:45:12 +0300 Message-ID: <1d2101c823d2$3555aa10$ac112c15 at Meredith> From: "Meredith F. Dick" To: "Marta Z. Rodrigues" Subject: ***SPAM*** Don't you think it's time you stopped being a loser Date: Sat, 10 Nov 2007 22:45:12 +0300 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_7455_1D89_01C823EB.5AA2E210" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.2869 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869 This is a multi-part message in MIME format. ------=_NextPart_7455_1D89_01C823EB.5AA2E210 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable request=2E Horn was a fan favorite, standing up for theA recent poll by M= ontreal based newspaper Le Devoir, on Mel Karmazin spoke on behalf of both XM and Sirius=2E Do you believe in magic? We suppose you're likely to say "no"=2E=20 We hadn't believed, either=2E=2E=2Euntil the moment MegaXXXX was introduc= ed!=20 The effect this remedy produces on a male XXXXX cannot be called otherwis= e than a Miracle!=20 It's fabulous! So, hurry up, work a miracle in your life with this wonder-medicine! competiton has a poor track record of keeping down costsas head of the pu= ppet government in China=2EParti Qubcois leader slams radio host on homop= hobiacontrols=2E XM and Sirius can be said to compete with ------=_NextPart_7455_1D89_01C823EB.5AA2E210 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable =20
    request=2E Horn was a fan favorite, standing up for theA recent poll = by Montreal based newspaper Le Devoir, on
    Mel Karmazin spoke on behalf= of both XM and Sirius=2E
    =20


    Do you believe in magic? We suppose you're likely to say "no"=2E
    We hadn't believed, either=2E=2E=2Euntil the momen= t MegaXXXX was introduced!

    The effect this remedy produces on a male XXXXX cannot be called otherwis= e than a Miracle!
    It's fabulous!

    So, hurry up, work a miracle in you= r life with this wonder-medicine!


    competiton has a poor track record of keeping = down costsas head of the puppet government in China=2EParti Qubcois leade= r slams radio host on homophobiacontrols=2E XM and Sirius can be said to = compete with
    ------=_NextPart_7455_1D89_01C823EB.5AA2E210-- --- NEW FILE: test.eml --- From: Test User To: test2 at oberon.co.za Subject: a Date: Wed, 19 May 2004 10:38:41 +0200 User-Agent: KMail/1.6.52 MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_R0xqAO2ZmkKUNMZ" Message-Id: <200405191038.41626.test at oberon.co.za> Status: R X-Status: NQ X-KMail-EncryptionState: X-KMail-SignatureState: X-KMail-MDN-Sent: --Boundary-00=_R0xqAO2ZmkKUNMZ Content-Type: text/plain; charset="us-ascii"; boundary="" Content-Transfer-Encoding: 7bit Content-Disposition: inline Organizer: test at oberon.co.za Summary: a Start Date: 2004-05-19 Start Time: 12:00 End Date: 2004-05-19 End Time: 14:00 --Boundary-00=_R0xqAO2ZmkKUNMZ Content-Type: text/calendar; name="cal.ics"; method="request" Content-Transfer-Encoding: 7bit Content-Disposition: attachment BEGIN:VCALENDAR PRODID:-//K Desktop Environment//NONSGML libkcal 3.2//EN VERSION:2.0 METHOD:REQUEST BEGIN:VEVENT DTSTAMP:20040519T083835Z ORGANIZER:MAILTO:test at oberon.co.za ATTENDEE;CN=Test2 User;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT:mailto:test2 at oberon.co.za CREATED:20040519T083734Z UID:libkcal-67797385.1001 SEQUENCE:1 LAST-MODIFIED:20040519T083734Z SUMMARY:a CLASS:PUBLIC PRIORITY:3 DTSTART:20040614T080000Z DTEND:20040614T100000Z TRANSP:OPAQUE END:VEVENT END:VCALENDAR --Boundary-00=_R0xqAO2ZmkKUNMZ-- From cvs at kolab.org Thu Nov 29 10:55:40 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 10:55:40 +0100 (CET) Subject: gunnar: server/horde/fbview-kronolith HK-JS-Fix_library_import.patch, NONE, 1.1 fbview-kronolith.spec, 1.15, 1.16 Message-ID: <20071129095540.3DB46600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/fbview-kronolith In directory doto:/tmp/cvs-serv11022/horde/fbview-kronolith Modified Files: fbview-kronolith.spec Added Files: HK-JS-Fix_library_import.patch Log Message: Import a past-RC1 patch from upstream. Otherwise we can't edit our calendars and tasklists. --- NEW FILE: HK-JS-Fix_library_import.patch --- Fixes a problem with importing the WebDAV library. diff -r 56b552eb6b01 kronolith/calendars.php --- a/kronolith/calendars.php Wed Nov 28 17:00:34 2007 +0100 +++ b/kronolith/calendars.php Thu Nov 29 09:54:49 2007 +0100 @@ -13,7 +13,9 @@ @define('KRONOLITH_BASE', dirname(__FILE__)); require_once KRONOLITH_BASE . '/lib/base.php'; require_once 'Horde/RPC.php'; -require_once 'Horde/RPC/webdav.php'; +if (@include_once 'HTTP/WebDAV/Server.php') { + require_once 'Horde/RPC/webdav.php'; +} // Exit if this isn't an authenticated user. if (!Auth::getAuth()) { Index: fbview-kronolith.spec =================================================================== RCS file: /kolabrepository/server/horde/fbview-kronolith/fbview-kronolith.spec,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- fbview-kronolith.spec 29 Nov 2007 08:25:51 -0000 1.15 +++ fbview-kronolith.spec 29 Nov 2007 09:55:38 -0000 1.16 @@ -37,7 +37,9 @@ Source5: savedattlist.inc Source6: open_savedattlist_win.js +# List of Patches Patch0: fbview.patch +Patch1: HK-JS-Fix_library_import.patch # Build Info Prefix: %{l_prefix} @@ -68,6 +70,7 @@ cd %{V_horde_name}-h3-%{V_uver} %patch -p0 -P 0 + %patch -p2 -P 1 cd .. %build From cvs at kolab.org Thu Nov 29 10:55:40 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 10:55:40 +0100 (CET) Subject: gunnar: server/horde/horde-kronolith HK-JS-Fix_library_import.patch, NONE, 1.1 horde-kronolith-kolab.spec, 1.18, 1.19 Message-ID: <20071129095540.38241600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-kronolith In directory doto:/tmp/cvs-serv11022/horde/horde-kronolith Modified Files: horde-kronolith-kolab.spec Added Files: HK-JS-Fix_library_import.patch Log Message: Import a past-RC1 patch from upstream. Otherwise we can't edit our calendars and tasklists. --- NEW FILE: HK-JS-Fix_library_import.patch --- Fixes a problem with importing the WebDAV library. diff -r 56b552eb6b01 kronolith/calendars.php --- a/kronolith/calendars.php Wed Nov 28 17:00:34 2007 +0100 +++ b/kronolith/calendars.php Thu Nov 29 09:54:49 2007 +0100 @@ -13,7 +13,9 @@ @define('KRONOLITH_BASE', dirname(__FILE__)); require_once KRONOLITH_BASE . '/lib/base.php'; require_once 'Horde/RPC.php'; -require_once 'Horde/RPC/webdav.php'; +if (@include_once 'HTTP/WebDAV/Server.php') { + require_once 'Horde/RPC/webdav.php'; +} // Exit if this isn't an authenticated user. if (!Auth::getAuth()) { Index: horde-kronolith-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-kronolith/horde-kronolith-kolab.spec,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- horde-kronolith-kolab.spec 29 Nov 2007 08:25:52 -0000 1.18 +++ horde-kronolith-kolab.spec 29 Nov 2007 09:55:38 -0000 1.19 @@ -26,6 +26,9 @@ Source1: horde-kronolith-kolab-conf.template Source2: conf.php +# List of Patches +Patch0: HK-JS-Fix_library_import.patch + # Build Info Prefix: %{l_prefix} BuildRoot: %{l_buildroot} @@ -54,6 +57,7 @@ %setup -c -q -n %{V_horde_name}-h3-%{V_uver} cd %{V_horde_name}-h3-%{V_uver} + %patch -p2 -P 0 cd .. %build From cvs at kolab.org Thu Nov 29 10:55:40 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 10:55:40 +0100 (CET) Subject: gunnar: server/horde/horde-nag HK-JS-Fix_library_import.patch, NONE, 1.1 horde-nag-kolab.spec, 1.16, 1.17 Message-ID: <20071129095540.4044A600D63@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-nag In directory doto:/tmp/cvs-serv11022/horde/horde-nag Modified Files: horde-nag-kolab.spec Added Files: HK-JS-Fix_library_import.patch Log Message: Import a past-RC1 patch from upstream. Otherwise we can't edit our calendars and tasklists. --- NEW FILE: HK-JS-Fix_library_import.patch --- Fixes a problem with importing the WebDAV library. diff -r 39ccfa2e6380 nag/tasklists.php --- a/nag/tasklists.php Thu Nov 29 09:54:49 2007 +0100 +++ b/nag/tasklists.php Thu Nov 29 09:56:00 2007 +0100 @@ -14,7 +14,9 @@ @define('NAG_BASE', dirname(__FILE__)); require_once NAG_BASE . '/lib/base.php'; require_once 'Horde/RPC.php'; -require_once 'Horde/RPC/webdav.php'; +if (@include_once 'HTTP/WebDAV/Server.php') { + require_once 'Horde/RPC/webdav.php'; +} /* Exit if this isn't an authenticated user. */ if (!Auth::getAuth()) { Index: horde-nag-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-nag/horde-nag-kolab.spec,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- horde-nag-kolab.spec 29 Nov 2007 08:25:52 -0000 1.16 +++ horde-nag-kolab.spec 29 Nov 2007 09:55:38 -0000 1.17 @@ -25,6 +25,9 @@ Source0: http://ftp.horde.org/pub/%{V_horde_name}/%{V_horde_name}-h3-%{V_uver}.tar.gz Source1: conf.php +# List of Patches +Patch0: HK-JS-Fix_library_import.patch + # Build Info Prefix: %{l_prefix} BuildRoot: %{l_buildroot} @@ -47,6 +50,7 @@ %setup -c -q -n %{V_horde_name}-h3-%{V_uver} cd %{V_horde_name}-h3-%{V_uver} + %patch -p2 -P 0 cd .. %build From cvs at kolab.org Thu Nov 29 10:55:40 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 10:55:40 +0100 (CET) Subject: gunnar: server/horde external-horde.sh,1.5,1.6 Message-ID: <20071129095540.40526600D66@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde In directory doto:/tmp/cvs-serv11022/horde Modified Files: external-horde.sh Log Message: Import a past-RC1 patch from upstream. Otherwise we can't edit our calendars and tasklists. Index: external-horde.sh =================================================================== RCS file: /kolabrepository/server/horde/external-horde.sh,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- external-horde.sh 29 Nov 2007 08:25:51 -0000 1.5 +++ external-horde.sh 29 Nov 2007 09:55:37 -0000 1.6 @@ -23,6 +23,8 @@ APPLICATION_PATCHES="HK-GW-turba_2.2-Fix_editing_contacts.patch HK-GW-turba_2.2-Fix_share_id_change.patch + HK-JS-nag_2.2_RC1-Fix_library_import.patch + HK-JS-kronolith_2.2_RC1-Fix_library_import.patch HK-GW-turba_2.2-Ldap_read_only_fix.patch" From cvs at kolab.org Thu Nov 29 10:55:40 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 10:55:40 +0100 (CET) Subject: gunnar: server/patches/horde HK-JS-kronolith_2.2_RC1-Fix_library_import.patch, NONE, 1.1 HK-JS-nag_2.2_RC1-Fix_library_import.patch, NONE, 1.1 README_Fix_library_import.patch, NONE, 1.1 README_Fix_Prefs_for_Ingo.patch, 1.1, 1.2 README_Fix_editing_contacts.patch, 1.1, 1.2 README_Fix_share_id_change.patch, 1.1, 1.2 README_Ldap_read_only_fix.patch, 1.1, 1.2 Message-ID: <20071129095540.605B5600D67@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde In directory doto:/tmp/cvs-serv11022/patches/horde Modified Files: README_Fix_Prefs_for_Ingo.patch README_Fix_editing_contacts.patch README_Fix_share_id_change.patch README_Ldap_read_only_fix.patch Added Files: HK-JS-kronolith_2.2_RC1-Fix_library_import.patch HK-JS-nag_2.2_RC1-Fix_library_import.patch README_Fix_library_import.patch Log Message: Import a past-RC1 patch from upstream. Otherwise we can't edit our calendars and tasklists. --- NEW FILE: HK-JS-kronolith_2.2_RC1-Fix_library_import.patch --- Fixes a problem with importing the WebDAV library. diff -r 56b552eb6b01 kronolith/calendars.php --- a/kronolith/calendars.php Wed Nov 28 17:00:34 2007 +0100 +++ b/kronolith/calendars.php Thu Nov 29 09:54:49 2007 +0100 @@ -13,7 +13,9 @@ @define('KRONOLITH_BASE', dirname(__FILE__)); require_once KRONOLITH_BASE . '/lib/base.php'; require_once 'Horde/RPC.php'; -require_once 'Horde/RPC/webdav.php'; +if (@include_once 'HTTP/WebDAV/Server.php') { + require_once 'Horde/RPC/webdav.php'; +} // Exit if this isn't an authenticated user. if (!Auth::getAuth()) { --- NEW FILE: HK-JS-nag_2.2_RC1-Fix_library_import.patch --- Fixes a problem with importing the WebDAV library. diff -r 39ccfa2e6380 nag/tasklists.php --- a/nag/tasklists.php Thu Nov 29 09:54:49 2007 +0100 +++ b/nag/tasklists.php Thu Nov 29 09:56:00 2007 +0100 @@ -14,7 +14,9 @@ @define('NAG_BASE', dirname(__FILE__)); require_once NAG_BASE . '/lib/base.php'; require_once 'Horde/RPC.php'; -require_once 'Horde/RPC/webdav.php'; +if (@include_once 'HTTP/WebDAV/Server.php') { + require_once 'Horde/RPC/webdav.php'; +} /* Exit if this isn't an authenticated user. */ if (!Auth::getAuth()) { --- NEW FILE: README_Fix_library_import.patch --- DESCRIPTION: A commit shortly before the release of RC1 did break the share editing in kronolith and nag in case no Webdav PEAR package is available. IMPACT: You won't be able to edit calendars or tasklists. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_RC1/summary HISTORY Fix generated from an upstream commit after RC1. Index: README_Fix_Prefs_for_Ingo.patch =================================================================== RCS file: /kolabrepository/server/patches/horde/README_Fix_Prefs_for_Ingo.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- README_Fix_Prefs_for_Ingo.patch 1 Oct 2007 15:47:58 -0000 1.1 +++ README_Fix_Prefs_for_Ingo.patch 29 Nov 2007 09:55:38 -0000 1.2 @@ -34,9 +34,9 @@ Mercurial patch repository: -http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary +http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_RC1/summary HISTORY Submitted upstream and upstream rejected, explaining the problem with -this patch. \ No newline at end of file +this patch. Index: README_Fix_editing_contacts.patch =================================================================== RCS file: /kolabrepository/server/patches/horde/README_Fix_editing_contacts.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- README_Fix_editing_contacts.patch 2 Oct 2007 14:21:34 -0000 1.1 +++ README_Fix_editing_contacts.patch 29 Nov 2007 09:55:38 -0000 1.2 @@ -10,8 +10,8 @@ Mercurial patch repository: -http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary +http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_RC1/summary HISTORY -Horde issue # 5763 \ No newline at end of file +Horde issue # 5763 Index: README_Fix_share_id_change.patch =================================================================== RCS file: /kolabrepository/server/patches/horde/README_Fix_share_id_change.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- README_Fix_share_id_change.patch 2 Oct 2007 14:21:34 -0000 1.1 +++ README_Fix_share_id_change.patch 29 Nov 2007 09:55:38 -0000 1.2 @@ -11,8 +11,8 @@ Mercurial patch repository: -http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary +http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_RC1/summary HISTORY -Horde issue # 5762 \ No newline at end of file +Horde issue # 5762 Index: README_Ldap_read_only_fix.patch =================================================================== RCS file: /kolabrepository/server/patches/horde/README_Ldap_read_only_fix.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- README_Ldap_read_only_fix.patch 2 Oct 2007 14:21:34 -0000 1.1 +++ README_Ldap_read_only_fix.patch 29 Nov 2007 09:55:38 -0000 1.2 @@ -11,9 +11,9 @@ Mercurial patch repository: -http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_ALPHA/summary +http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_RC1/summary HISTORY Is a bad patch since we currently don't have the permission -system file based. \ No newline at end of file +system file based. From cvs at kolab.org Thu Nov 29 10:55:40 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 10:55:40 +0100 (CET) Subject: gunnar: server/horde/horde-turba horde-turba-kolab.spec,1.20,1.21 Message-ID: <20071129095540.4049A600D65@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-turba In directory doto:/tmp/cvs-serv11022/horde/horde-turba Modified Files: horde-turba-kolab.spec Log Message: Import a past-RC1 patch from upstream. Otherwise we can't edit our calendars and tasklists. Index: horde-turba-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-turba/horde-turba-kolab.spec,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- horde-turba-kolab.spec 29 Nov 2007 08:25:53 -0000 1.20 +++ horde-turba-kolab.spec 29 Nov 2007 09:55:38 -0000 1.21 @@ -26,6 +26,7 @@ Source1: conf.php Source2: sources.php +# List of Patches Patch0: HK-GW-Fix_share_id_change.patch Patch1: HK-GW-Fix_editing_contacts.patch Patch2: HK-GW-Ldap_read_only_fix.patch From cvs at kolab.org Thu Nov 29 12:09:05 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 12:09:05 +0100 (CET) Subject: gunnar: server/patches/horde HK-SB-kronolith_2.2_RC1-Fbview_extra_params.patch, NONE, 1.1 HK-SB-kronolith_2.2_RC1-Fbview_save_attendees.patch, NONE, 1.1 README_Fbview_extra_params.patch, NONE, 1.1 README_Fbview_save_attendees.patch, NONE, 1.1 Message-ID: <20071129110905.0681A600D69@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde In directory doto:/tmp/cvs-serv14573/patches/horde Added Files: HK-SB-kronolith_2.2_RC1-Fbview_extra_params.patch HK-SB-kronolith_2.2_RC1-Fbview_save_attendees.patch README_Fbview_extra_params.patch README_Fbview_save_attendees.patch Log Message: Cleanup of the fbview patches. Both patches that make kronolith into fbview have now been added to the patch directory and are documented there. --- NEW FILE: HK-SB-kronolith_2.2_RC1-Fbview_extra_params.patch --- This includes extra parameters into the free/busy view. The params are hardcoded so this patch won't make it upstream. diff -r 735b35f9f866 kronolith/lib/FBView.php --- a/kronolith/lib/FBView.php Thu Nov 29 11:32:43 2007 +0100 +++ b/kronolith/lib/FBView.php Thu Nov 29 11:35:20 2007 +0100 @@ -86,8 +86,8 @@ class Kronolith_FreeBusy_View { $template = new Horde_Template(); $rows = ''; foreach ($this->_requiredMembers as $member) { - $blocks = $this->_getBlocks($member, $member->getBusyPeriods(), 'busyblock.tpl', _("Busy")); - $template = new Horde_Template(); + $blocks = $this->_getBlocks($member, $member->getBusyPeriods(), 'busyblock.tpl', _("Busy"), $member->getExtraParams()); + $template = &new Horde_Template(); $template->set('blocks', $blocks); $template->set('name', $member->getName()); $rows .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/row.tpl'); @@ -107,8 +107,8 @@ class Kronolith_FreeBusy_View { $template = new Horde_Template(); $rows = ''; foreach ($this->_optionalMembers as $member) { - $blocks = $this->_getBlocks($member, $member->getBusyPeriods(), 'busyblock.tpl', _("Busy")); - $template = new Horde_Template(); + $blocks = $this->_getBlocks($member, $member->getBusyPeriods(), 'busyblock.tpl', _("Busy"), $member->getExtraParams()); + $template = &new Horde_Template(); $template->set('blocks', $blocks); $template->set('name', $member->getName()); $rows .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/row.tpl'); @@ -122,6 +122,9 @@ class Kronolith_FreeBusy_View { $template->set('legend', ''); $html .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/section.tpl'); } + + //********** + //This has been disabled in kolab-fbview. Make this optional? // Possible meeting times. $optimal->setAttribute('ORGANIZER', _("All Attendees")); @@ -144,6 +147,9 @@ class Kronolith_FreeBusy_View { $template->set('name', _("Required Attendees")); $template->set('blocks', $blocks); $rows .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/row.tpl'); + + //This has been disabled in kolab-fbview. Make this optional? + //********** // Reset locale. setlocale(LC_NUMERIC, $lc); @@ -217,7 +223,7 @@ class Kronolith_FreeBusy_View { return $instances[$view]; } - function _getBlocks($member, $periods, $blockfile, $label) + function _getBlocks($member, $periods, $blockfile, $label, $extra = array()) { $template = new Horde_Template(); $template->set('label', $label); @@ -250,6 +256,21 @@ class Kronolith_FreeBusy_View { $template->set('left', $left . '%'); $template->set('width', $width . '%'); + $template->set('evclick', ''); + + if (isset($extra[$periodStart])) { + if (!empty($extra[$periodStart]['X-UID'])) { + $link = "javascript:performAction('viewaction', '" + . addslashes($member->getName() . "#" + . String::convertCharset(base64_decode($extra[$periodStart]['X-UID']), + 'UTF-8',NLS::getCharset())) . "')"; + $template->set('evclick', $link); + } + if (!empty($extra[$periodStart]['X-SUMMARY'])) { + $template->set('label', String::convertCharset(base64_decode($extra[$periodStart]['X-SUMMARY']),'UTF-8', + NLS::getCharset())); + } + } $blocks .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/' . $blockfile); } else { diff -r 735b35f9f866 kronolith/templates/fbview/busyblock.tpl --- a/kronolith/templates/fbview/busyblock.tpl Thu Nov 29 11:32:43 2007 +0100 +++ b/kronolith/templates/fbview/busyblock.tpl Thu Nov 29 11:35:20 2007 +0100 @@ -1,1 +1,1 @@ -

    + --- NEW FILE: HK-SB-kronolith_2.2_RC1-Fbview_save_attendees.patch --- Provides a patch to store the list of attendees in the user preferences. This is a broken patch that has been rejected upstream (http://bugs.horde.org/ticket/?id=4788). This should be solved using Horde::Groups. diff -r 848f241f83e0 kronolith/attendees.php --- a/kronolith/attendees.php Thu Nov 29 10:56:04 2007 +0100 +++ b/kronolith/attendees.php Thu Nov 29 11:32:43 2007 +0100 @@ -155,6 +155,16 @@ case 'clear': $attendees = array(); $_SESSION['kronolith']['attendees'] = $attendees; break; + +case 'save': + if (empty($attendees)) { + break; + } + $savedattlist = unserialize($prefs->getValue('saved_attendee_list')); + $savedattlist[] = array_keys($attendees); + $prefs->setValue('saved_attendee_list', serialize($savedattlist)); + $notification->push(_('Successfully saved attendee list'), 'horde.success'); + break; } // Get the current Free/Busy view; default to the 'day' view if none specified. @@ -226,6 +236,14 @@ Imple::factory('ContactAutoCompleter', a $title = _("Edit attendees"); require KRONOLITH_TEMPLATES . '/common-header.inc'; + +if ($browser->hasFeature('javascript')) { + Horde::addScriptFile('open_savedattlist_win.js'); + $savedattlist_url = 'javascript:open_savedattlist_win();'; +} else { + $savedattlist_url = Horde::applicationUrl('savedattlist.php'); +} + $notification->notify(array('status')); require KRONOLITH_TEMPLATES . '/attendees/attendees.inc'; require $registry->get('templates', 'horde') . '/common-footer.inc'; diff -r 848f241f83e0 kronolith/config/prefs.php.dist --- a/kronolith/config/prefs.php.dist Thu Nov 29 10:56:04 2007 +0100 +++ b/kronolith/config/prefs.php.dist Thu Nov 29 11:32:43 2007 +0100 @@ -465,3 +465,11 @@ if ($GLOBALS['registry']->hasMethod('con 'shared' => false, 'type' => 'implicit' ); + +$_prefs['saved_attendee_list'] = array( + 'value' => 'a:0:{}', + 'locked' => false, + 'shared' => false, + 'type' => 'implicit', + 'desc' => _("A saved list of attendees") +); diff -r 848f241f83e0 kronolith/savedattlist.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kronolith/savedattlist.php Thu Nov 29 11:32:43 2007 +0100 @@ -0,0 +1,77 @@ + + * Stuart Binge + * + * See the enclosed file COPYING for license information (GPL). If you + * did not receive this file, see http://www.fsf.org/copyleft/gpl.html. + */ + + at define('KRONOLITH_BASE', dirname(__FILE__)); +require_once KRONOLITH_BASE . '/lib/base.php'; +require_once KRONOLITH_BASE . '/lib/FBView.php'; + +$title = _('Load Attendee List'); + +Horde::addScriptFile('tooltip.js', 'horde'); +require KRONOLITH_TEMPLATES . '/common-header.inc'; + +// Get our list of saved attendees +$savedattlist = unserialize($prefs->getValue('saved_attendee_list')); + +// Preformat our image urls +$delimg = Horde::img('delete.png', _("Remove List"), null, $GLOBALS['registry']->getImageDir('horde')); +$loadimg = Horde::img('tree/folder.png', _("Load List"), null, $GLOBALS['registry']->getImageDir('horde')); + +// Get our Action ID & Value. This specifies what action the user initiated. +$actionID = Util::getFormData('actionID', false); +$actionValue = Util::getFormData('actionValue', false); +if (!$actionID) { + $actionID = (Util::getFormData('addNew', false) ? 'add' : false); + $actionValue = Util::getFormData('newAttendees', ''); +} + +// Perform the specified action, if there is one. +switch ($actionID) { +case 'remove': + // Remove the specified attendee + if (array_key_exists($actionValue, $savedattlist)) { + unset($savedattlist[$actionValue]); + $prefs->setValue('saved_attendee_list', serialize($savedattlist)); + } + + break; + +case 'dismiss': + // Make sure we're actually allowed to dismiss + if (!$allow_dismiss) break; + + // Close the attendee window + global $browser; + + if ($browser->hasFeature('javascript')) { + Util::closeWindowJS(); + } else { + $url = Util::getFormData('url'); + + if (!empty($url)) { + $location = Horde::applicationUrl($url, true); + } else { + $url = Util::addParameter($prefs->getValue('defaultview') . '.php', 'month', Util::getFormData('month')); + $url = Util::addParameter($url, 'year', Util::getFormData('year')); + $location = Horde::applicationUrl($url, true); + } + + // Make sure URL is unique. + $location = Util::addParameter($location, 'unique', md5(microtime())); + + header('Location: ' . $location); + } + break; +} + +$form_handler = Horde::applicationUrl('savedattlist.php'); +require KRONOLITH_TEMPLATES . '/savedattlist/savedattlist.inc'; +require $GLOBALS['registry']->get('templates', 'horde') . '/common-footer.inc'; diff -r 848f241f83e0 kronolith/templates/attendees/attendees.inc --- a/kronolith/templates/attendees/attendees.inc Thu Nov 29 10:56:04 2007 +0100 +++ b/kronolith/templates/attendees/attendees.inc Thu Nov 29 11:32:43 2007 +0100 @@ -92,6 +92,8 @@ function switchDateView(view, timestamp)
    " /> " /> + " onclick="" /> + " onclick="performAction('save', '');" /> " />
    diff -r 848f241f83e0 kronolith/templates/javascript/open_savedattlist_win.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kronolith/templates/javascript/open_savedattlist_win.js Thu Nov 29 11:32:43 2007 +0100 @@ -0,0 +1,36 @@ + + diff -r 848f241f83e0 kronolith/templates/savedattlist/savedattlist.inc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kronolith/templates/savedattlist/savedattlist.inc Thu Nov 29 11:32:43 2007 +0100 @@ -0,0 +1,68 @@ + + + +
    + + + + +
    + +
    AttributeValueComment

    '.MySmarty::htmlentities($value['value']).'

    '.MySmarty::htmlentities($value['value']).'

    '.KolabForm::htmlentities($value['value']).'

     
     
    + + + + + + + + + + + + + + + + $list): ?> + + ', Horde::link("javascript:updateMessage('" . addslashes(implode(', ', $list)) . "')", _("Load this list")), $loadimg, ""; + ?> + ', Horde::link("javascript:performAction('remove', '" . $index . "')", _("Remove this list")), $delimg, ""; + ?> + + + +
    + + --- NEW FILE: README_Fbview_extra_params.patch --- DESCRIPTION: Allows to display extended parameters of events in the free/busy list. The patch implements this is a Kolab specific fashion and thus it makes no sense to submit it upstream. IMPACT: The free/busy view won't display extended attributes. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_RC1/summary HISTORY The patch has been originally developed by Stuart Binge (Codefusion). --- NEW FILE: README_Fbview_save_attendees.patch --- DESCRIPTION: This allows to store the list of attendees in the user preferences. The patch implements this in a hackish way and it was consequently rejected upstream (http://bugs.horde.org/ticket/?id=4788). This should be solved using Horde::Groups or the Turba API. IMPACT: You won't be able to store the list of attendees. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_RC1/summary HISTORY The patch has been originally developed by Stuart Binge (Codefusion). Horde issue #4788 From cvs at kolab.org Thu Nov 29 12:09:05 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 12:09:05 +0100 (CET) Subject: gunnar: server/horde/fbview-kronolith HK-SB-Fbview_extra_params.patch, NONE, 1.1 HK-SB-Fbview_save_attendees.patch, NONE, 1.1 fbview-kronolith.spec, 1.16, 1.17 prefs.php, 1.2, 1.3 fbview.patch, 1.1, NONE open_savedattlist_win.js, 1.1, NONE savedattlist.inc, 1.1, NONE savedattlist.php, 1.1, NONE Message-ID: <20071129110905.019D1600D68@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/fbview-kronolith In directory doto:/tmp/cvs-serv14573/horde/fbview-kronolith Modified Files: fbview-kronolith.spec prefs.php Added Files: HK-SB-Fbview_extra_params.patch HK-SB-Fbview_save_attendees.patch Removed Files: fbview.patch open_savedattlist_win.js savedattlist.inc savedattlist.php Log Message: Cleanup of the fbview patches. Both patches that make kronolith into fbview have now been added to the patch directory and are documented there. --- NEW FILE: HK-SB-Fbview_extra_params.patch --- This includes extra parameters into the free/busy view. The params are hardcoded so this patch won't make it upstream. diff -r 735b35f9f866 kronolith/lib/FBView.php --- a/kronolith/lib/FBView.php Thu Nov 29 11:32:43 2007 +0100 +++ b/kronolith/lib/FBView.php Thu Nov 29 11:35:20 2007 +0100 @@ -86,8 +86,8 @@ class Kronolith_FreeBusy_View { $template = new Horde_Template(); $rows = ''; foreach ($this->_requiredMembers as $member) { - $blocks = $this->_getBlocks($member, $member->getBusyPeriods(), 'busyblock.tpl', _("Busy")); - $template = new Horde_Template(); + $blocks = $this->_getBlocks($member, $member->getBusyPeriods(), 'busyblock.tpl', _("Busy"), $member->getExtraParams()); + $template = &new Horde_Template(); $template->set('blocks', $blocks); $template->set('name', $member->getName()); $rows .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/row.tpl'); @@ -107,8 +107,8 @@ class Kronolith_FreeBusy_View { $template = new Horde_Template(); $rows = ''; foreach ($this->_optionalMembers as $member) { - $blocks = $this->_getBlocks($member, $member->getBusyPeriods(), 'busyblock.tpl', _("Busy")); - $template = new Horde_Template(); + $blocks = $this->_getBlocks($member, $member->getBusyPeriods(), 'busyblock.tpl', _("Busy"), $member->getExtraParams()); + $template = &new Horde_Template(); $template->set('blocks', $blocks); $template->set('name', $member->getName()); $rows .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/row.tpl'); @@ -122,6 +122,9 @@ class Kronolith_FreeBusy_View { $template->set('legend', ''); $html .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/section.tpl'); } + + //********** + //This has been disabled in kolab-fbview. Make this optional? // Possible meeting times. $optimal->setAttribute('ORGANIZER', _("All Attendees")); @@ -144,6 +147,9 @@ class Kronolith_FreeBusy_View { $template->set('name', _("Required Attendees")); $template->set('blocks', $blocks); $rows .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/row.tpl'); + + //This has been disabled in kolab-fbview. Make this optional? + //********** // Reset locale. setlocale(LC_NUMERIC, $lc); @@ -217,7 +223,7 @@ class Kronolith_FreeBusy_View { return $instances[$view]; } - function _getBlocks($member, $periods, $blockfile, $label) + function _getBlocks($member, $periods, $blockfile, $label, $extra = array()) { $template = new Horde_Template(); $template->set('label', $label); @@ -250,6 +256,21 @@ class Kronolith_FreeBusy_View { $template->set('left', $left . '%'); $template->set('width', $width . '%'); + $template->set('evclick', ''); + + if (isset($extra[$periodStart])) { + if (!empty($extra[$periodStart]['X-UID'])) { + $link = "javascript:performAction('viewaction', '" + . addslashes($member->getName() . "#" + . String::convertCharset(base64_decode($extra[$periodStart]['X-UID']), + 'UTF-8',NLS::getCharset())) . "')"; + $template->set('evclick', $link); + } + if (!empty($extra[$periodStart]['X-SUMMARY'])) { + $template->set('label', String::convertCharset(base64_decode($extra[$periodStart]['X-SUMMARY']),'UTF-8', + NLS::getCharset())); + } + } $blocks .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/' . $blockfile); } else { diff -r 735b35f9f866 kronolith/templates/fbview/busyblock.tpl --- a/kronolith/templates/fbview/busyblock.tpl Thu Nov 29 11:32:43 2007 +0100 +++ b/kronolith/templates/fbview/busyblock.tpl Thu Nov 29 11:35:20 2007 +0100 @@ -1,1 +1,1 @@ -
     
     
    + + + + + + + + + + + + + + + + $list): ?> + + ', Horde::link("javascript:updateMessage('" . addslashes(implode(', ', $list)) . "')", _("Load this list")), $loadimg, ""; + ?> + ', Horde::link("javascript:performAction('remove', '" . $index . "')", _("Remove this list")), $delimg, ""; + ?> + + + +
    +
    + Index: fbview-kronolith.spec =================================================================== RCS file: /kolabrepository/server/horde/fbview-kronolith/fbview-kronolith.spec,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- fbview-kronolith.spec 29 Nov 2007 09:55:38 -0000 1.16 +++ fbview-kronolith.spec 29 Nov 2007 11:09:02 -0000 1.17 @@ -27,19 +27,10 @@ Source2: conf.php Source3: prefs.php -################################################## -# PATCH COMMENT -# -# This allows to display extended parameters (like the event -# summary) in the fbview and to store a list of attendees in the -# preferences -Source4: savedattlist.php -Source5: savedattlist.inc -Source6: open_savedattlist_win.js - # List of Patches -Patch0: fbview.patch -Patch1: HK-JS-Fix_library_import.patch +Patch0: HK-SB-Fbview_extra_params.patch +Patch1: HK-SB-Fbview_save_attendees.patch +Patch2: HK-JS-Fix_library_import.patch # Build Info Prefix: %{l_prefix} @@ -69,8 +60,9 @@ %setup -c -q -n %{V_horde_name}-h3-%{V_uver} cd %{V_horde_name}-h3-%{V_uver} - %patch -p0 -P 0 + %patch -p2 -P 0 %patch -p2 -P 1 + %patch -p2 -P 2 cd .. %build Index: prefs.php =================================================================== RCS file: /kolabrepository/server/horde/fbview-kronolith/prefs.php,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- prefs.php 3 Aug 2007 07:38:08 -0000 1.2 +++ prefs.php 29 Nov 2007 11:09:02 -0000 1.3 @@ -1,6 +1,6 @@ array('confirm_delete', 'defaultview', 'time_between_days', 'week_start_monday', 'day_hour_start', 'day_hour_end', 'day_hour_force', - 'slots_per_hour', 'show_icons', 'show_legend', 'show_panel', - 'show_fb_legend', 'show_shared_side_by_side'), + 'slots_per_hour', 'show_icons', 'show_time', 'show_location', + 'show_legend', 'show_panel', 'show_fb_legend', 'show_shared_side_by_side', 'show_external_colors'), ); $prefGroups['summary'] = array( @@ -23,24 +23,6 @@ 'members' => array('summary_days', 'summary_alarms'), ); -$apis = array(); -foreach ($GLOBALS['registry']->listAPIs() as $api) { - if ($GLOBALS['registry']->hasMethod($api . '/listTimeObjects')) { - $apis[$api] = $GLOBALS['registry']->get('name', $GLOBALS['registry']->hasInterface($api)); - } -} -if (!isset($apis['tasks']) && $GLOBALS['registry']->hasMethod('tasks/listTasks')) { - $apis['tasks'] = $GLOBALS['registry']->get('name', $GLOBALS['registry']->hasInterface('tasks')); -} -if (count($apis)) { - $prefGroups['external'] = array( - 'column' => _("Display Options"), - 'label' => _("Tasks and other external events"), - 'desc' => _("Do you want to show external events in your calendar (like tasks which are due etc) ?"), - 'members' => array('show_external', 'show_external_colors'), - ); -} - $prefGroups['share'] = array( 'column' => _("Calendars"), 'label' => _("Default Calendar"), @@ -163,7 +145,7 @@ 'locked' => false, 'shared' => false, 'type' => 'checkbox', - 'desc' => _("Restrict day and week views to these time slots, even if there are earlier or later events?") + 'desc' => _("Restrict day and week views to these time slots, even if there are earlier or later events?"), ); // number of slots in each hour: @@ -176,7 +158,8 @@ 'enum' => array(4 => _("15 minutes"), 3 => _("20 minutes"), 2 => _("30 minutes"), - 1 => _("1 hour")) + 1 => _("1 hour"), + ), ); // show delete/alarm icons in the calendar view? @@ -185,7 +168,31 @@ 'locked' => false, 'shared' => false, 'type' => 'checkbox', - 'desc' => _("Show delete, alarm, and recurrence icons in calendar views?") + 'desc' => _("Show delete, alarm, and recurrence icons in calendar views?"), +); + +// show event start/end times in the calendar and/or print views? +$_prefs['show_time'] = array( + 'value' => 'a:1:{i:0;s:5:"print";}', + 'locked' => false, + 'shared' => false, + 'type' => 'multienum', + 'enum' => array('screen' => _("Month and Week Views"), + 'print' => _("Print Views"), + ), + 'desc' => _("Choose the views to show event start and end times in:"), +); + +// show event location in the calendar and/or print views? +$_prefs['show_location'] = array( + 'value' => 'a:1:{i:0;s:5:"print";}', + 'locked' => false, + 'shared' => false, + 'type' => 'multienum', + 'enum' => array('screen' => _("Month, Week, and Day Views"), + 'print' => _("Print Views"), + ), + 'desc' => _("Choose the views to show event locations in:"), ); // show category legend? @@ -195,7 +202,7 @@ 'locked' => false, 'shared' => false, 'type' => 'checkbox', - 'desc' => _("Show category legend?") + 'desc' => _("Show category legend?"), ); // show the calendar options panel? @@ -205,7 +212,7 @@ 'locked' => false, 'shared' => false, 'type' => 'checkbox', - 'desc' => _("Show calendar options panel?") + 'desc' => _("Show calendar options panel?"), ); // show free/busy legend? @@ -215,7 +222,7 @@ 'locked' => false, 'shared' => false, 'type' => 'checkbox', - 'desc' => _("Show free/busy legend?") + 'desc' => _("Show free/busy legend?"), ); // collapsed or side by side view @@ -224,7 +231,7 @@ 'locked' => false, 'shared' => false, 'type' => 'checkbox', - 'desc' => _("Show shared calendars side-by-side?") + 'desc' => _("Show shared calendars side-by-side?"), ); // days to show in summary @@ -243,7 +250,8 @@ 7 => '1 ' . _("week"), 14 => '2 ' . _("weeks"), 21 => '3 ' . _("weeks"), - 28 => '4 ' . _("weeks")) + 28 => '4 ' . _("weeks"), + ), ); // show alarms in summary? @@ -252,17 +260,7 @@ 'locked' => false, 'shared' => false, 'type' => 'checkbox', - 'desc' => _("Show only events that have an alarm set?") -); - -// show external events in the calendar views? -$_prefs['show_external'] = array( - 'value' => 'a:0:{}', - 'locked' => false, - 'shared' => false, - 'type' => 'multienum', - 'enum' => $apis, - 'desc' => _("Select which external events you would like to display") + 'desc' => _("Show only events that have an alarm set?"), ); // show external event colors? @@ -271,7 +269,7 @@ 'locked' => false, 'shared' => false, 'type' => 'checkbox', - 'desc' => _("Show external events using category colors?") + 'desc' => _("Show external events using category colors?"), ); // default calendar selection widget @@ -323,6 +321,14 @@ // store the remote calendars to display $_prefs['display_remote_cals'] = array( + 'value' => 'a:0:{}', + 'locked' => false, + 'shared' => false, + 'type' => 'implicit' +); + +// store the external calendars to display +$_prefs['display_external_cals'] = array( 'value' => 'a:0:{}', 'locked' => false, 'shared' => false, --- fbview.patch DELETED --- --- open_savedattlist_win.js DELETED --- --- savedattlist.inc DELETED --- --- savedattlist.php DELETED --- From cvs at kolab.org Thu Nov 29 15:15:05 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 15:15:05 +0100 (CET) Subject: thomas: server/kolab-filter/filter config.php,1.9,1.10 Message-ID: <20071129141505.852C2600D7C@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-filter/filter In directory doto:/tmp/cvs-serv20455/kolab-filter/filter Modified Files: config.php Log Message: kolab-filter and resmgr.conf.template.in: lmpt -> lmtp, smpt -> smtp Index: config.php =================================================================== RCS file: /kolabrepository/server/kolab-filter/filter/config.php,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- config.php 28 Nov 2007 15:36:59 -0000 1.9 +++ config.php 29 Nov 2007 14:15:03 -0000 1.10 @@ -40,14 +40,14 @@ $conf['filter']['imap_server'] = 'localhost'; /* LMTP settings (Cyrus IMAPd usually offers LMTP on port 2003) */ -$conf['filter']['lmpt_host'] = $conf['filter']['imap_server']; -$conf['filter']['lmpt_port'] = 2003; +$conf['filter']['lmtp_host'] = $conf['filter']['imap_server']; +$conf['filter']['lmtp_port'] = 2003; /* SMTP settings (Kolab Postfix usually offers reinjection port on * 10025) */ -$conf['filter']['smpt_host'] = 'localhost'; -$conf['filter']['smpt_port'] = 10025; +$conf['filter']['smtp_host'] = 'localhost'; +$conf['filter']['smtp_port'] = 10025; /* Local IP address of the mailserver for bypassing content filters */ $conf['filter']['local_addr'] = 'localhost'; From cvs at kolab.org Thu Nov 29 15:15:05 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 15:15:05 +0100 (CET) Subject: thomas: server/kolab-filter ChangeLog,1.1,1.2 Message-ID: <20071129141505.83BF7600D74@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-filter In directory doto:/tmp/cvs-serv20455/kolab-filter Modified Files: ChangeLog Log Message: kolab-filter and resmgr.conf.template.in: lmpt -> lmtp, smpt -> smtp Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-filter/ChangeLog,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ChangeLog 26 Nov 2007 16:35:21 -0000 1.1 +++ ChangeLog 29 Nov 2007 14:15:03 -0000 1.2 @@ -1,3 +1,7 @@ +2007-11-29 Thomas Arendsen Hein + + * filter/config.php: lmpt -> lmtp, smpt -> smtp + 2007-11-26 Gunnar Wrobel

    * config.php: From cvs at kolab.org Thu Nov 29 15:15:05 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 15:15:05 +0100 (CET) Subject: thomas: server/kolabd/kolabd/templates resmgr.conf.template.in, 1.15, 1.16 Message-ID: <20071129141505.878E7600D7E@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv20455/kolabd/kolabd/templates Modified Files: resmgr.conf.template.in Log Message: kolab-filter and resmgr.conf.template.in: lmpt -> lmtp, smpt -> smtp Index: resmgr.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/resmgr.conf.template.in,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- resmgr.conf.template.in 28 Nov 2007 15:36:59 -0000 1.15 +++ resmgr.conf.template.in 29 Nov 2007 14:15:03 -0000 1.16 @@ -45,14 +45,14 @@ $conf['filter']['imap_server'] = '@@@connect_addr@@@'; /* LMTP settings (Cyrus IMAPd usually offers LMTP on port 2003) */ -$conf['filter']['lmpt_host'] = $conf['filter']['imap_server']; -$conf['filter']['lmpt_port'] = 2003; +$conf['filter']['lmtp_host'] = $conf['filter']['imap_server']; +$conf['filter']['lmtp_port'] = 2003; /* SMTP settings (Kolab Postfix usually offers reinjection port on * 10025) */ -$conf['filter']['smpt_host'] = '@@@local_addr@@@'; -$conf['filter']['smpt_port'] = 10025; +$conf['filter']['smtp_host'] = '@@@local_addr@@@'; +$conf['filter']['smtp_port'] = 10025; /* Local IP address of the mailserver for bypassing content filters */ $conf['filter']['local_addr'] = '@@@local_addr@@@'; From cvs at kolab.org Thu Nov 29 15:15:05 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 15:15:05 +0100 (CET) Subject: thomas: server/kolabd/kolabd ChangeLog,1.122,1.123 Message-ID: <20071129141505.85F7A600D7D@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv20455/kolabd/kolabd Modified Files: ChangeLog Log Message: kolab-filter and resmgr.conf.template.in: lmpt -> lmtp, smpt -> smtp Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.122 retrieving revision 1.123 diff -u -d -r1.122 -r1.123 --- ChangeLog 28 Nov 2007 12:45:32 -0000 1.122 +++ ChangeLog 29 Nov 2007 14:15:03 -0000 1.123 @@ -1,3 +1,7 @@ +2007-11-29 Thomas Arendsen Hein + + * templates/resmgr.conf.template.in: lmpt -> lmtp, smpt -> smtp + 2007-11-28 Gunnar Wrobel

    * templates/kolab.conf.template.in (calendar_id): From cvs at kolab.org Thu Nov 29 15:37:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 15:37:39 +0100 (CET) Subject: thomas: server/kolabd/kolabd ChangeLog,1.123,1.124 Message-ID: <20071129143739.D9809600D7B@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv21027 Modified Files: ChangeLog Log Message: Fixed connection addresses for IMAP server and LMTP. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.123 retrieving revision 1.124 diff -u -d -r1.123 -r1.124 --- ChangeLog 29 Nov 2007 14:15:03 -0000 1.123 +++ ChangeLog 29 Nov 2007 14:37:37 -0000 1.124 @@ -2,6 +2,9 @@ * templates/resmgr.conf.template.in: lmpt -> lmtp, smpt -> smtp + * templates/resmgr.conf.template.in: Fixed connection addresses + for IMAP server and LMTP. + 2007-11-28 Gunnar Wrobel

    * templates/kolab.conf.template.in (calendar_id): From cvs at kolab.org Thu Nov 29 15:37:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 15:37:39 +0100 (CET) Subject: thomas: server/kolabd/kolabd/templates resmgr.conf.template.in, 1.16, 1.17 Message-ID: <20071129143739.E25DD600D7D@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv21027/templates Modified Files: resmgr.conf.template.in Log Message: Fixed connection addresses for IMAP server and LMTP. Index: resmgr.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/resmgr.conf.template.in,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- resmgr.conf.template.in 29 Nov 2007 14:15:03 -0000 1.16 +++ resmgr.conf.template.in 29 Nov 2007 14:37:37 -0000 1.17 @@ -42,10 +42,14 @@ $conf = array(); /* Cyrus server connection string */ +@@@if cyrus-imap@@@ $conf['filter']['imap_server'] = '@@@connect_addr@@@'; +@@@else@@@ +$conf['filter']['imap_server'] = '@@@local_addr@@@'; +@@@endif@@@ /* LMTP settings (Cyrus IMAPd usually offers LMTP on port 2003) */ -$conf['filter']['lmtp_host'] = $conf['filter']['imap_server']; +$conf['filter']['lmtp_host'] = '@@@local_addr@@@'; $conf['filter']['lmtp_port'] = 2003; /* SMTP settings (Kolab Postfix usually offers reinjection port on From cvs at kolab.org Thu Nov 29 16:00:18 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 16:00:18 +0100 (CET) Subject: thomas: server/php-kolab/Kolab_Filter ChangeLog,1.4,1.5 Message-ID: <20071129150018.5EE87600D7B@lists.intevation.de> Author: thomas Update of /kolabrepository/server/php-kolab/Kolab_Filter In directory doto:/tmp/cvs-serv22002 Modified Files: ChangeLog Log Message: * Filter/Content.php: Default for $local_addr is 127.0.0.1 instead of localhost since IPs are compared. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/ChangeLog,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ChangeLog 28 Nov 2007 15:36:59 -0000 1.4 +++ ChangeLog 29 Nov 2007 15:00:16 -0000 1.5 @@ -1,3 +1,8 @@ +2007-11-29 Thomas Arendsen Hein + + * Filter/Content.php: Default for $local_addr is 127.0.0.1 instead of + localhost since IPs are compared. + 2007-11-28 Gunnar Wrobel

    * Filter/Resource.php: From cvs at kolab.org Thu Nov 29 16:00:18 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 16:00:18 +0100 (CET) Subject: thomas: server/php-kolab/Kolab_Filter/Filter Content.php,1.2,1.3 Message-ID: <20071129150018.6E591600D7D@lists.intevation.de> Author: thomas Update of /kolabrepository/server/php-kolab/Kolab_Filter/Filter In directory doto:/tmp/cvs-serv22002/Filter Modified Files: Content.php Log Message: * Filter/Content.php: Default for $local_addr is 127.0.0.1 instead of localhost since IPs are compared. Index: Content.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Content.php,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Content.php 28 Nov 2007 06:06:12 -0000 1.2 +++ Content.php 29 Nov 2007 15:00:16 -0000 1.3 @@ -417,7 +417,7 @@ if (!empty($conf['filter']['local_addr'])) { $local_addr = $conf['filter']['local_addr']; } else { - $local_addr = 'localhost'; + $local_addr = '127.0.0.1'; } if (!empty($conf['filter']['verify_subdomains'])) { @@ -528,4 +528,4 @@ } -?> \ No newline at end of file +?> From cvs at kolab.org Thu Nov 29 16:32:12 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 16:32:12 +0100 (CET) Subject: gunnar: server/horde/fbview-horde fbview-horde.spec,1.15,1.16 Message-ID: <20071129153212.B919D600D7B@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/fbview-horde In directory doto:/tmp/cvs-serv23106/horde/fbview-horde Modified Files: fbview-horde.spec Log Message: Support for the extended free/busy concept. Index: fbview-horde.spec =================================================================== RCS file: /kolabrepository/server/horde/fbview-horde/fbview-horde.spec,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- fbview-horde.spec 29 Nov 2007 08:25:51 -0000 1.15 +++ fbview-horde.spec 29 Nov 2007 15:32:10 -0000 1.16 @@ -73,6 +73,8 @@ cd %{V_horde_name}-%{V_uver} + rm -rf test.php + cd config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd .. rm -rf lib/{File,File.php,Horde,Horde.php,Net,SyncML,SyncML.php,Text,VFS,VFS.php,XML} From cvs at kolab.org Thu Nov 29 16:32:12 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 16:32:12 +0100 (CET) Subject: gunnar: server release-notes.txt,1.185,1.186 Message-ID: <20071129153212.B806D600D7A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv23106 Modified Files: release-notes.txt Log Message: Support for the extended free/busy concept. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.185 retrieving revision 1.186 diff -u -d -r1.185 -r1.186 --- release-notes.txt 29 Nov 2007 08:25:51 -0000 1.185 +++ release-notes.txt 29 Nov 2007 15:32:10 -0000 1.186 @@ -60,6 +60,8 @@ Allow postfix smtp and smtps to bind to a specific IP, too. + Support for the extended free/busy concept. + kolab/issue2134 ([Horde] Unable to send message with attachments) kolab/issue2236 (Apache UID access broken) @@ -67,6 +69,8 @@ New functionality required for kolab-freebusy. + Support for the extended free/busy concept. + kolab/issue2128 (Building horde-framework-kolab without http access fails) kolab/issue2134 ([Horde] Unable to send message with attachments) kolab/issue2135 ([horde/turba] Turba should support some more contact attributes) @@ -85,6 +89,10 @@ kolab/issue2040 (Horde: resouces are not displayed in address book) kolab/issue2135 ([horde/turba] Turba should support some more contact attributes) + + - fbview-kronolith-2.2_RC1-2007???? + + Support for the extended free/busy concept. - kolab-filter-2.2.beta2-2007???? From cvs at kolab.org Thu Nov 29 16:32:12 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 16:32:12 +0100 (CET) Subject: gunnar: server/horde/horde-framework HK-GW-Fbview_xfb_concept.patch, NONE, 1.1 horde-framework-kolab.spec, 1.31, 1.32 Message-ID: <20071129153212.CEA01600D7B@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-framework In directory doto:/tmp/cvs-serv23106/horde/horde-framework Modified Files: horde-framework-kolab.spec Added Files: HK-GW-Fbview_xfb_concept.patch Log Message: Support for the extended free/busy concept. --- NEW FILE: HK-GW-Fbview_xfb_concept.patch --- diff -r fce4450434a7 framework/Share/Share/kolab.php --- a/framework/Share/Share/kolab.php Thu Nov 29 14:45:46 2007 +0100 +++ b/framework/Share/Share/kolab.php Thu Nov 29 14:49:04 2007 +0100 @@ -17,6 +17,13 @@ define('HORDE_ANNOT_SHARE_ATTR', HORDE_A * Marks a share without a name. These shares are still invalid */ define('KOLAB_SHARE_INVALID', 'KOLAB_SHARE_INVALID'); + +/** + * Kolab specific free/busy relevance + */ +define('KOLAB_FBRELEVANCE_ADMINS', 0); +define('KOLAB_FBRELEVANCE_READERS', 1); +define('KOLAB_FBRELEVANCE_NOBODY', 2); /** * Horde_Share_kolab:: provides the kolab backend for the horde share driver. @@ -825,16 +832,135 @@ class Horde_Share_Object_kolab extends H */ function isDefault() { + $type = $this->getType(); + if (is_a($type, 'PEAR_Error')) { + return false; + } + return $type[1]; + } + + //FIXME: The following five functions (actually also most other things in this class + // needs to go into Kolab/IMAP.php + /** + * Get the folder type + * + * @return mixed Array containing the type and the default status or a PEAR_Error + * if the folder annotation cannot be accessed. + */ + function getType() + { $imap = &$this->_shareOb->getImap(); - $annotation = $imap->getAnnotation(KOLAB_ANNOT_FOLDER_TYPE, 'value.shared', $this->_folder); + $annotation = $imap->getAnnotation(KOLAB_ANNOT_FOLDER_TYPE, + 'value.shared', + $this->_folder); if (is_a($annotation, 'PEAR_Error')) { - return false; - } - if (empty($annotation)) { - return false; - } - $type = explode('.', $annotation); - return (!empty($type[1]) && $type[1] == 'default'); + return $annotation; + } + + if (!empty($annotation)) { + $default = false; + $subtype = ''; + $type = explode('.', $annotation); + if (!empty($type[0])) { + $foldertype = $type[0]; + if (!empty($type[1])) { + $subtype = $type[1]; + if ($type[1] == 'default') { + $default = true; + } + } + } + return array($foldertype, $default, $subtype); + } else { + return PEAR::raiseError(sprintf(_("Unknown folder type for folder %s."), $this->_folder)); + } + } + + /** + * Get the free/busy relevance for this folder + * + * @return int Value containing the FB_RELEVANCE. + */ + function getFbrelevance() + { + $imap = &$this->_shareOb->getImap(); + $entry = KOLAB_ANNOT_ROOT . 'incidences-for'; + + $annotation = $imap->getAnnotation($entry, 'value.shared', $this->_folder); + if (is_a($annotation, 'PEAR_Error') || empty($annotation)) { + return KOLAB_FBRELEVANCE_ADMINS; + } + switch ($annotation) { + case 'admins': + return KOLAB_FBRELEVANCE_ADMINS; + case 'readers': + return KOLAB_FBRELEVANCE_READERS; + case 'nobody': + return KOLAB_FBRELEVANCE_NOBODY; + default: + return KOLAB_FBRELEVANCE_ADMINS; + } + } + + /** + * Set the free/busy relevance for this folder + * + * @param int $relevance Value containing the FB_RELEVANCE + * + * @return mixed True on success or a PEAR_Error. + */ + function setFbrelevance($relevance) + { + switch ($relevance) { + case KOLAB_FBRELEVANCE_ADMINS: + $value = 'admins'; + break; + case KOLAB_FBRELEVANCE_READERS: + $value = 'readers'; + break; + case KOLAB_FBRELEVANCE_NOBODY: + $value = 'nobody'; + break; + default: + $value = 'admins'; + } + + $imap = &$this->_shareOb->getImap(); + $entry = KOLAB_ANNOT_ROOT . 'incidences-for'; + return $imap->setAnnotation($entry, array('value.shared' => $value), $this->_folder); + } + + /** + * Get the extended free/busy access settings for this folder + * + * @return array Array containing the users with access to the + * extended information. + */ + function getXfbaccess() + { + $imap = &$this->_shareOb->getImap(); + $entry = KOLAB_ANNOT_ROOT . 'xfb-readable'; + + $annotation = $imap->getAnnotation($entry, 'value.shared', $this->_folder); + if (is_a($annotation, 'PEAR_Error') || empty($annotation)) { + return array(); + } + return explode(' ', $annotation); + } + + /** + * Set the extended free/busy access settings for this folder + * + * @param array $access Array containing the users with access to the + * extended information. + * + * @return mixed True on success or a PEAR_Error. + */ + function setXfbaccess($access) + { + $imap = &$this->_shareOb->getImap(); + $entry = KOLAB_ANNOT_ROOT . 'xfb-readable'; + return $imap->setAnnotation($entry, array('value.shared' => join(' ', $access)), $this->_folder); } /** @@ -910,13 +1036,18 @@ class Horde_Share_Object_kolab extends H break; case 'params': - $params = $this->getAttribute('params'); + $params = @unserialize($this->getAttribute('params')); if (is_a($params, 'PEAR_Error') || $params == '') { - $params = serialize(array('source' => 'kolab', - 'default' => $this->get('default'), - 'name' => $this->get('name'))); - } - $this->data['params'] = $params; + $params = array('source' => 'kolab', + 'default' => $this->get('default'), + 'name' => $this->get('name')); + } + $type = $this->getType(); + if (!is_a($type, 'PEAR_Error') && $type[0] == 'event') { + $params = array_merge($params, array('fbrelevance' => $this->getFbrelevance(), + 'xfbaccess' => $this->getXfbaccess())); + } + $this->data['params'] = serialize($params); break; case 'default': @@ -967,8 +1098,9 @@ class Horde_Share_Object_kolab extends H $value = unserialize($value); if (isset($value['default'])) { $this->data['default'] = $value['default']; - } - break; + unset($value['default']); + } + $value = serialize($value); default: $this->data[$attribute] = $value; @@ -1017,6 +1149,7 @@ class Horde_Share_Object_kolab extends H } } elseif ($attribute == 'default') { $imap = &$this->_shareOb->getImap(); + //FIXME: Simplify with getType $annotation = $imap->getAnnotation(KOLAB_ANNOT_FOLDER_TYPE, 'value.shared', $this->_folder); if (is_a($annotation, 'PEAR_Error')) { return $annotation; @@ -1037,6 +1170,40 @@ class Horde_Share_Object_kolab extends H continue; } elseif ($attribute == 'folder') { continue; + } elseif ($attribute == 'params') { + $type = $this->getType(); + if (!is_a($type, 'PEAR_Error') && $type[0] == 'event') { + $params = @unserialize($value); + if (isset($params['fbrelevance'])) { + $result = $this->setFbrelevance($params['fbrelevance']); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + unset($params['fbrelevance']); + } + if (isset($params['xfbaccess'])) { + $result = $this->setXfbaccess($params['xfbaccess']); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + unset($params['xfbaccess']); + } + + if (empty($params)) { + continue; + } + + $value = @serialize($params); + } + + $imap = &$this->_shareOb->getImap(); + // setAnnotation apparently does not suppoort UTF-8 nor any special characters + $store = base64_encode($value); + $entry = HORDE_ANNOT_SHARE_ATTR . $attribute; + $result = $imap->setAnnotation($entry, array('value.shared' => $store), $this->_folder); + if (is_a($result, 'PEAR_Error')) { + return $result; + } } else { $imap = &$this->_shareOb->getImap(); // setAnnotation apparently does not suppoort UTF-8 nor any special characters Index: horde-framework-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/horde-framework-kolab.spec,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- horde-framework-kolab.spec 29 Nov 2007 08:25:52 -0000 1.31 +++ horde-framework-kolab.spec 29 Nov 2007 15:32:10 -0000 1.32 @@ -3,7 +3,7 @@ %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 %define V_month 11 -%define V_day 28 +%define V_day 29 %define V_version 3.2_RC1 %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} @@ -27,6 +27,7 @@ Source0: http://build.pardus.de/downloads/horde-%{V_horde_name}-%{V_version}.tar.bz2 Patch0: HK-GW-Fix_Prefs_for_Ingo.patch +Patch1: HK-GW-Fbview_xfb_concept.patch # Build Info Prefix: %{l_prefix} @@ -49,6 +50,7 @@ %prep %setup -n framework %patch -p2 -P 0 + %patch -p2 -P 1 %build From cvs at kolab.org Thu Nov 29 16:32:12 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 16:32:12 +0100 (CET) Subject: gunnar: server/horde/horde-imp horde-imp-kolab.spec,1.17,1.18 Message-ID: <20071129153212.D5D4F600D7A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-imp In directory doto:/tmp/cvs-serv23106/horde/horde-imp Modified Files: horde-imp-kolab.spec Log Message: Support for the extended free/busy concept. Index: horde-imp-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-imp/horde-imp-kolab.spec,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- horde-imp-kolab.spec 29 Nov 2007 08:25:52 -0000 1.17 +++ horde-imp-kolab.spec 29 Nov 2007 15:32:10 -0000 1.18 @@ -57,6 +57,8 @@ cd %{V_horde_name}-h3-%{V_uver} + rm -rf test.php + cd config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd .. cp -r * $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/ From cvs at kolab.org Thu Nov 29 16:32:12 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 16:32:12 +0100 (CET) Subject: gunnar: server/horde/horde-kronolith horde-kronolith-kolab.spec, 1.19, 1.20 Message-ID: <20071129153212.E1421600D7F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-kronolith In directory doto:/tmp/cvs-serv23106/horde/horde-kronolith Modified Files: horde-kronolith-kolab.spec Log Message: Support for the extended free/busy concept. Index: horde-kronolith-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-kronolith/horde-kronolith-kolab.spec,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- horde-kronolith-kolab.spec 29 Nov 2007 09:55:38 -0000 1.19 +++ horde-kronolith-kolab.spec 29 Nov 2007 15:32:10 -0000 1.20 @@ -68,6 +68,8 @@ cd %{V_horde_name}-h3-%{V_uver} + rm -rf test.php + cd config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd .. cp -r * $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/ From cvs at kolab.org Thu Nov 29 16:32:12 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 16:32:12 +0100 (CET) Subject: gunnar: server/horde/horde-ingo horde-ingo-kolab.spec,1.16,1.17 Message-ID: <20071129153212.DAB72600D7E@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-ingo In directory doto:/tmp/cvs-serv23106/horde/horde-ingo Modified Files: horde-ingo-kolab.spec Log Message: Support for the extended free/busy concept. Index: horde-ingo-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-ingo/horde-ingo-kolab.spec,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- horde-ingo-kolab.spec 29 Nov 2007 08:25:52 -0000 1.16 +++ horde-ingo-kolab.spec 29 Nov 2007 15:32:10 -0000 1.17 @@ -60,6 +60,8 @@ cd %{V_horde_name}-h3-%{V_uver} + rm -rf test.php + cd config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd .. cp -r * $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/ From cvs at kolab.org Thu Nov 29 16:32:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 16:32:13 +0100 (CET) Subject: gunnar: server/horde/horde-mnemo horde-mnemo-kolab.spec,1.19,1.20 Message-ID: <20071129153213.14EDA600D7A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-mnemo In directory doto:/tmp/cvs-serv23106/horde/horde-mnemo Modified Files: horde-mnemo-kolab.spec Log Message: Support for the extended free/busy concept. Index: horde-mnemo-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-mnemo/horde-mnemo-kolab.spec,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- horde-mnemo-kolab.spec 29 Nov 2007 08:25:52 -0000 1.19 +++ horde-mnemo-kolab.spec 29 Nov 2007 15:32:10 -0000 1.20 @@ -58,6 +58,8 @@ cd %{V_horde_name}-h3-%{V_uver} + rm -rf test.php + cd config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd .. cp -r * $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/ From cvs at kolab.org Thu Nov 29 16:32:12 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 16:32:12 +0100 (CET) Subject: gunnar: server/horde/fbview-kronolith HK-GW-Fbview_menu.patch, NONE, 1.1 HK-GW-Fbview_relevance.patch, NONE, 1.1 HK-GW-Fbview_xfb_access.patch, NONE, 1.1 fbview-kronolith.spec, 1.17, 1.18 Message-ID: <20071129153212.ED2B8600D7B@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/fbview-kronolith In directory doto:/tmp/cvs-serv23106/horde/fbview-kronolith Modified Files: fbview-kronolith.spec Added Files: HK-GW-Fbview_menu.patch HK-GW-Fbview_relevance.patch HK-GW-Fbview_xfb_access.patch Log Message: Support for the extended free/busy concept. --- NEW FILE: HK-GW-Fbview_menu.patch --- diff -r 538d4c6293be kronolith/attendees.php --- a/kronolith/attendees.php Thu Nov 29 12:33:18 2007 +0100 +++ b/kronolith/attendees.php Thu Nov 29 12:34:39 2007 +0100 @@ -236,6 +236,7 @@ Imple::factory('ContactAutoCompleter', a $title = _("Edit attendees"); require KRONOLITH_TEMPLATES . '/common-header.inc'; +require KRONOLITH_TEMPLATES . '/fbview-menu.inc'; if ($browser->hasFeature('javascript')) { Horde::addScriptFile('open_savedattlist_win.js'); diff -r 538d4c6293be kronolith/calendars.php --- a/kronolith/calendars.php Thu Nov 29 12:33:18 2007 +0100 +++ b/kronolith/calendars.php Thu Nov 29 12:34:39 2007 +0100 @@ -134,6 +134,6 @@ Horde::addScriptFile('popup.js', 'horde' Horde::addScriptFile('popup.js', 'horde', true); $title = _("My Calendars"); require KRONOLITH_TEMPLATES . '/common-header.inc'; -require KRONOLITH_TEMPLATES . '/menu.inc'; +require KRONOLITH_TEMPLATES . '/fbview-menu.inc'; require KRONOLITH_TEMPLATES . '/calendars/calendars.inc'; require $registry->get('templates', 'horde') . '/common-footer.inc'; diff -r 538d4c6293be kronolith/lib/Kronolith.php --- a/kronolith/lib/Kronolith.php Thu Nov 29 12:33:18 2007 +0100 +++ b/kronolith/lib/Kronolith.php Thu Nov 29 12:34:39 2007 +0100 @@ -1968,6 +1968,33 @@ class Kronolith { } /** + * Builds Kronolith's list of menu items. + */ + function getFbviewMenu($returnType = 'object') + { + global $conf, $registry, $browser, $prefs; + + /* Check here for guest calendars so that we don't get multiple + * messages after redirects, etc. */ + if (!Auth::getAuth() && !count($GLOBALS['all_calendars'])) { + $GLOBALS['notification']->push(_("No calendars are available to guests.")); + } + + require_once 'Horde/Menu.php'; + $menu = new Menu(HORDE_MENU_MASK_HELP | HORDE_MENU_MASK_LOGIN); + + $menu->add(Horde::applicationUrl('attendees.php'), _("Attendees"), 'attendees.png', null, null, null, '__noselection'); + + $menu->add(Horde::applicationUrl('calendars.php'), _("Calendars"), 'calendars.png', null, null, null, '__noselection'); + + if ($returnType == 'object') { + return $menu; + } else { + return $menu->render(); + } + } + + /** * Used with usort() to sort events based on their start times. * This function ignores the date component so recuring events can * be sorted correctly on a per day basis. diff -r 538d4c6293be kronolith/templates/fbview-menu.inc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kronolith/templates/fbview-menu.inc Thu Nov 29 12:34:39 2007 +0100 @@ -0,0 +1,4 @@ +

    +notify(array('listeners' => 'status')) ?> --- NEW FILE: HK-GW-Fbview_relevance.patch --- Allows to set the free/busy relevance on a calendar. diff -r e7fdad8797ac kronolith/calendars.php --- a/kronolith/calendars.php Thu Nov 29 14:36:50 2007 +0100 +++ b/kronolith/calendars.php Thu Nov 29 14:43:24 2007 +0100 @@ -39,6 +39,7 @@ case 'save': $cal = $kronolith_shares->newShare(md5(microtime())); $cal->set('name', $id); $cal->set('desc', Util::getFormData('description', '')); + $cal->set('params', serialize(array('fbrelevance' => (int) Util::getFormData('fbrelevance', 0)))); $result = $kronolith_shares->addShare($cal); if (is_a($result, 'PEAR_Error')) { $notification->push($result, 'horde.error'); @@ -50,6 +51,7 @@ case 'save': $original_name = $cal->get('name'); $cal->set('name', $id); $cal->set('desc', Util::getFormData('description', '')); + $cal->set('params', serialize(array('fbrelevance' => (int) Util::getFormData('fbrelevance', 0)))); if ($original_name != $id) { $result = $kronolith_driver->rename($original_name, $id); @@ -125,9 +127,16 @@ case 'delete': $remote_calendars = unserialize($prefs->getValue('remote_cals')); $current_user = Auth::getAuth(); $my_calendars = array(); +$fbrelevance = array(); foreach (Kronolith::listCalendars() as $id => $cal) { if ($cal->get('owner') == $current_user) { $my_calendars[$id] = $cal; + $params = @unserialize($cal->get('params')); + if (isset($params['fbrelevance'])) { + $fbrelevance[$id] = $params['fbrelevance']; + } else { + $fbrelevance[$id] = 0; + } } } diff -r e7fdad8797ac kronolith/templates/calendars/calendars.inc --- a/kronolith/templates/calendars/calendars.inc Thu Nov 29 14:36:50 2007 +0100 +++ b/kronolith/templates/calendars/calendars.inc Thu Nov 29 14:43:24 2007 +0100 @@ -8,7 +8,8 @@ var fields = []; $cal): ?> fields[''] = [ "get('name'), NLS::getCharset(), 'UTF-8')) ?>", - "get('desc'), NLS::getCharset(), 'UTF-8')) ?>"]; + "get('desc'), NLS::getCharset(), 'UTF-8')) ?>", + ""]; function newChoice() @@ -25,6 +26,7 @@ function newChoice() document.shares.edit_share.value = share; document.shares.id.value = decodeURIComponent(fields[share][0]); document.shares.description.value = decodeURIComponent(fields[share][1]); + document.shares.fbrelevance[fields[share][2]].checked = true; urlObj.innerHTML = "" + share; subscriptionUrlObj.innerHTML = "get('webroot', 'horde'), true, -1) . '/rpc.php/kronolith/" + share + ".ics"') : Util::addParameter(Horde::applicationUrl('ics.php', true, -1), 'c', '') . '" + share' ?>; } @@ -126,11 +128,55 @@ function checkSubmit()
    +
    + +

    + +
    + + + + + + + + + + + + + + + + + +
    + +
    +   + +
    +
    +   + + +
    +   + +
    +
    +
    + +
    + +
    + + + + - --- NEW FILE: HK-GW-Fbview_xfb_access.patch --- diff -r 14457cf2ea2c kronolith/perms.php --- a/kronolith/perms.php Thu Nov 29 15:20:49 2007 +0100 +++ b/kronolith/perms.php Thu Nov 29 15:25:36 2007 +0100 @@ -15,6 +15,34 @@ require_once KRONOLITH_BASE . '/lib/base require_once KRONOLITH_BASE . '/lib/base.php'; require_once 'Horde/Group.php'; +function &getFbperms($share) +{ + $fbperms = array(); + $params = $share->get('params'); + if (!is_a($params, 'PEAR_Error')) { + $params = @unserialize($params); + if (isset($params['xfbaccess'])) { + $xfbusers = $params['xfbaccess']; + foreach ($xfbusers as $user) { + $fbperms[$user] = PERMS_READ; + } + } + } + return $fbperms; +} + +function setFbperms($share, $xfbusers) +{ + $fbperms = array(); + $params = $share->get('params'); + if (!is_a($params, 'PEAR_Error')) { + $params = @unserialize($params); + $params['xfbaccess'] = $xfbusers; + $params = serialize($params); + $share->set('params', $params); + } +} + $shares = &Horde_Share::singleton('kronolith'); $groups = &Group::singleton(); $auth = &Auth::singleton($conf['auth']['driver']); @@ -36,6 +64,8 @@ case 'edit': $notification->push($share, 'horde.error'); } elseif (isset($share) && Auth::getAuth() != $share->get('owner')) { exit('permission denied'); + } else { + $fbperms = getFbperms($share); } break; @@ -251,6 +281,24 @@ case 'editform': } } + // Process free/busy permissions. + $fb_names = Util::getFormData('fb_names'); + $fb_read = Util::getFormData('fb_read'); + + $fbperms = getFbperms($share); + foreach ($fb_names as $key => $user) { + if (empty($user)) { + continue; + } + + if (!empty($fb_read[$key])) { + $fbperms[$user] = PERMS_READ; + } else { + unset($fbperms[$user]); + } + } + setFbperms($share, array_keys($fbperms)); + $share->setPermission($perm, false); $share->save(); $notification->push(sprintf(_("Updated \"%s\"."), $share->get('name')), 'horde.success'); diff -r 14457cf2ea2c kronolith/templates/perms/perms.inc --- a/kronolith/templates/perms/perms.inc Thu Nov 29 15:20:49 2007 +0100 +++ b/kronolith/templates/perms/perms.inc Thu Nov 29 15:25:36 2007 +0100 @@ -355,6 +355,61 @@ + + + + + + + + + + + $fbperm) { if ($user != $owner) { ?> + + + + + + + + + + + + +hasCapability('list')): ?> + + + + + + + + + + + + Index: fbview-kronolith.spec =================================================================== RCS file: /kolabrepository/server/horde/fbview-kronolith/fbview-kronolith.spec,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- fbview-kronolith.spec 29 Nov 2007 11:09:02 -0000 1.17 +++ fbview-kronolith.spec 29 Nov 2007 15:32:10 -0000 1.18 @@ -3,7 +3,7 @@ %define V_package fbview-%{V_horde_name} %define V_year 2007 %define V_month 11 -%define V_day 28 +%define V_day 29 %define V_version 2.2_rc1 %define V_uver 2.2-rc1 %define V_date %{V_year}-%{V_month}-%{V_day} @@ -31,6 +31,9 @@ Patch0: HK-SB-Fbview_extra_params.patch Patch1: HK-SB-Fbview_save_attendees.patch Patch2: HK-JS-Fix_library_import.patch +Patch3: HK-GW-Fbview_menu.patch +Patch4: HK-GW-Fbview_relevance.patch +Patch5: HK-GW-Fbview_xfb_access.patch # Build Info Prefix: %{l_prefix} @@ -63,6 +66,9 @@ %patch -p2 -P 0 %patch -p2 -P 1 %patch -p2 -P 2 + %patch -p2 -P 3 + %patch -p2 -P 4 + %patch -p2 -P 5 cd .. %build @@ -76,7 +82,7 @@ cd config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd .. # Remove some stuff not necessary for fbview - rm add.php calendars.php day.php perms.php view.php \ + rm add.php day.php view.php \ delete.php ics.php search.php week.php contacts.php \ imple.php month.php pref_api.php workweek.php \ edit.php new.php test.php year.php attend.php \ From cvs at kolab.org Thu Nov 29 16:32:12 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 16:32:12 +0100 (CET) Subject: gunnar: server/horde/horde horde-kolab.spec,1.22,1.23 Message-ID: <20071129153212.CB817600D7D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde In directory doto:/tmp/cvs-serv23106/horde/horde Modified Files: horde-kolab.spec Log Message: Support for the extended free/busy concept. Index: horde-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde/horde-kolab.spec,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- horde-kolab.spec 29 Nov 2007 08:25:52 -0000 1.22 +++ horde-kolab.spec 29 Nov 2007 15:32:10 -0000 1.23 @@ -76,6 +76,8 @@ cd %{V_horde_name}-%{V_uver} + rm -rf test.php + cd config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd .. rm -rf lib/{File,File.php,Horde,Horde.php,Net,SyncML,SyncML.php,Text,VFS,VFS.php,XML} From cvs at kolab.org Thu Nov 29 16:32:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 16:32:13 +0100 (CET) Subject: gunnar: server/kolabd/kolabd ChangeLog,1.124,1.125 Message-ID: <20071129153213.94418600D7A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv23106/kolabd/kolabd Modified Files: ChangeLog Log Message: Support for the extended free/busy concept. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.124 retrieving revision 1.125 diff -u -d -r1.124 -r1.125 --- ChangeLog 29 Nov 2007 14:37:37 -0000 1.124 +++ ChangeLog 29 Nov 2007 15:32:11 -0000 1.125 @@ -1,3 +1,15 @@ +2007-11-29 Gunnar Wrobel

    + + * templates/httpd.conf.template.in: + + Reverted the fix for bug #1507. Read: + + http://www.horde.org/horde/docs/?f=SECURITY.html + + * templates/imapd.annotation_definitions.template.in: + + Added /vendor/kolab/xfb-readable + 2007-11-29 Thomas Arendsen Hein * templates/resmgr.conf.template.in: lmpt -> lmtp, smpt -> smtp From cvs at kolab.org Thu Nov 29 16:32:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 16:32:13 +0100 (CET) Subject: gunnar: server/horde/horde-nag horde-nag-kolab.spec,1.17,1.18 Message-ID: <20071129153213.549BB600D7A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-nag In directory doto:/tmp/cvs-serv23106/horde/horde-nag Modified Files: horde-nag-kolab.spec Log Message: Support for the extended free/busy concept. Index: horde-nag-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-nag/horde-nag-kolab.spec,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- horde-nag-kolab.spec 29 Nov 2007 09:55:38 -0000 1.17 +++ horde-nag-kolab.spec 29 Nov 2007 15:32:11 -0000 1.18 @@ -61,6 +61,8 @@ cd %{V_horde_name}-h3-%{V_uver} + rm -rf test.php + cd config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd .. cp -r * $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/ From cvs at kolab.org Thu Nov 29 16:32:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 16:32:13 +0100 (CET) Subject: gunnar: server/patches/horde HK-GW-framework_3.2_RC1-Fbview_xfb_concept.patch, NONE, 1.1 HK-GW-kronolith_2.2_RC1-Fbview_menu.patch, NONE, 1.1 HK-GW-kronolith_2.2_RC1-Fbview_relevance.patch, NONE, 1.1 HK-GW-kronolith_2.2_RC1-Fbview_xfb_access.patch, NONE, 1.1 README_Fbview_menu.patch, NONE, 1.1 README_Fbview_relevance.patch, NONE, 1.1 README_Fbview_xfb_access.patch, NONE, 1.1 README_Fbview_xfb_concept.patch, NONE, 1.1 Message-ID: <20071129153213.AB85B600D7A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde In directory doto:/tmp/cvs-serv23106/patches/horde Added Files: HK-GW-framework_3.2_RC1-Fbview_xfb_concept.patch HK-GW-kronolith_2.2_RC1-Fbview_menu.patch HK-GW-kronolith_2.2_RC1-Fbview_relevance.patch HK-GW-kronolith_2.2_RC1-Fbview_xfb_access.patch README_Fbview_menu.patch README_Fbview_relevance.patch README_Fbview_xfb_access.patch README_Fbview_xfb_concept.patch Log Message: Support for the extended free/busy concept. --- NEW FILE: HK-GW-framework_3.2_RC1-Fbview_xfb_concept.patch --- diff -r fce4450434a7 framework/Share/Share/kolab.php --- a/framework/Share/Share/kolab.php Thu Nov 29 14:45:46 2007 +0100 +++ b/framework/Share/Share/kolab.php Thu Nov 29 14:49:04 2007 +0100 @@ -17,6 +17,13 @@ define('HORDE_ANNOT_SHARE_ATTR', HORDE_A * Marks a share without a name. These shares are still invalid */ define('KOLAB_SHARE_INVALID', 'KOLAB_SHARE_INVALID'); + +/** + * Kolab specific free/busy relevance + */ +define('KOLAB_FBRELEVANCE_ADMINS', 0); +define('KOLAB_FBRELEVANCE_READERS', 1); +define('KOLAB_FBRELEVANCE_NOBODY', 2); /** * Horde_Share_kolab:: provides the kolab backend for the horde share driver. @@ -825,16 +832,135 @@ class Horde_Share_Object_kolab extends H */ function isDefault() { + $type = $this->getType(); + if (is_a($type, 'PEAR_Error')) { + return false; + } + return $type[1]; + } + + //FIXME: The following five functions (actually also most other things in this class + // needs to go into Kolab/IMAP.php + /** + * Get the folder type + * + * @return mixed Array containing the type and the default status or a PEAR_Error + * if the folder annotation cannot be accessed. + */ + function getType() + { $imap = &$this->_shareOb->getImap(); - $annotation = $imap->getAnnotation(KOLAB_ANNOT_FOLDER_TYPE, 'value.shared', $this->_folder); + $annotation = $imap->getAnnotation(KOLAB_ANNOT_FOLDER_TYPE, + 'value.shared', + $this->_folder); if (is_a($annotation, 'PEAR_Error')) { - return false; - } - if (empty($annotation)) { - return false; - } - $type = explode('.', $annotation); - return (!empty($type[1]) && $type[1] == 'default'); + return $annotation; + } + + if (!empty($annotation)) { + $default = false; + $subtype = ''; + $type = explode('.', $annotation); + if (!empty($type[0])) { + $foldertype = $type[0]; + if (!empty($type[1])) { + $subtype = $type[1]; + if ($type[1] == 'default') { + $default = true; + } + } + } + return array($foldertype, $default, $subtype); + } else { + return PEAR::raiseError(sprintf(_("Unknown folder type for folder %s."), $this->_folder)); + } + } + + /** + * Get the free/busy relevance for this folder + * + * @return int Value containing the FB_RELEVANCE. + */ + function getFbrelevance() + { + $imap = &$this->_shareOb->getImap(); + $entry = KOLAB_ANNOT_ROOT . 'incidences-for'; + + $annotation = $imap->getAnnotation($entry, 'value.shared', $this->_folder); + if (is_a($annotation, 'PEAR_Error') || empty($annotation)) { + return KOLAB_FBRELEVANCE_ADMINS; + } + switch ($annotation) { + case 'admins': + return KOLAB_FBRELEVANCE_ADMINS; + case 'readers': + return KOLAB_FBRELEVANCE_READERS; + case 'nobody': + return KOLAB_FBRELEVANCE_NOBODY; + default: + return KOLAB_FBRELEVANCE_ADMINS; + } + } + + /** + * Set the free/busy relevance for this folder + * + * @param int $relevance Value containing the FB_RELEVANCE + * + * @return mixed True on success or a PEAR_Error. + */ + function setFbrelevance($relevance) + { + switch ($relevance) { + case KOLAB_FBRELEVANCE_ADMINS: + $value = 'admins'; + break; + case KOLAB_FBRELEVANCE_READERS: + $value = 'readers'; + break; + case KOLAB_FBRELEVANCE_NOBODY: + $value = 'nobody'; + break; + default: + $value = 'admins'; + } + + $imap = &$this->_shareOb->getImap(); + $entry = KOLAB_ANNOT_ROOT . 'incidences-for'; + return $imap->setAnnotation($entry, array('value.shared' => $value), $this->_folder); + } + + /** + * Get the extended free/busy access settings for this folder + * + * @return array Array containing the users with access to the + * extended information. + */ + function getXfbaccess() + { + $imap = &$this->_shareOb->getImap(); + $entry = KOLAB_ANNOT_ROOT . 'xfb-readable'; + + $annotation = $imap->getAnnotation($entry, 'value.shared', $this->_folder); + if (is_a($annotation, 'PEAR_Error') || empty($annotation)) { + return array(); + } + return explode(' ', $annotation); + } + + /** + * Set the extended free/busy access settings for this folder + * + * @param array $access Array containing the users with access to the + * extended information. + * + * @return mixed True on success or a PEAR_Error. + */ + function setXfbaccess($access) + { + $imap = &$this->_shareOb->getImap(); + $entry = KOLAB_ANNOT_ROOT . 'xfb-readable'; + return $imap->setAnnotation($entry, array('value.shared' => join(' ', $access)), $this->_folder); } /** @@ -910,13 +1036,18 @@ class Horde_Share_Object_kolab extends H break; case 'params': - $params = $this->getAttribute('params'); + $params = @unserialize($this->getAttribute('params')); if (is_a($params, 'PEAR_Error') || $params == '') { - $params = serialize(array('source' => 'kolab', - 'default' => $this->get('default'), - 'name' => $this->get('name'))); - } - $this->data['params'] = $params; + $params = array('source' => 'kolab', + 'default' => $this->get('default'), + 'name' => $this->get('name')); + } + $type = $this->getType(); + if (!is_a($type, 'PEAR_Error') && $type[0] == 'event') { + $params = array_merge($params, array('fbrelevance' => $this->getFbrelevance(), + 'xfbaccess' => $this->getXfbaccess())); + } + $this->data['params'] = serialize($params); break; case 'default': @@ -967,8 +1098,9 @@ class Horde_Share_Object_kolab extends H $value = unserialize($value); if (isset($value['default'])) { $this->data['default'] = $value['default']; - } - break; + unset($value['default']); + } + $value = serialize($value); default: $this->data[$attribute] = $value; @@ -1017,6 +1149,7 @@ class Horde_Share_Object_kolab extends H } } elseif ($attribute == 'default') { $imap = &$this->_shareOb->getImap(); + //FIXME: Simplify with getType $annotation = $imap->getAnnotation(KOLAB_ANNOT_FOLDER_TYPE, 'value.shared', $this->_folder); if (is_a($annotation, 'PEAR_Error')) { return $annotation; @@ -1037,6 +1170,40 @@ class Horde_Share_Object_kolab extends H continue; } elseif ($attribute == 'folder') { continue; + } elseif ($attribute == 'params') { + $type = $this->getType(); + if (!is_a($type, 'PEAR_Error') && $type[0] == 'event') { + $params = @unserialize($value); + if (isset($params['fbrelevance'])) { + $result = $this->setFbrelevance($params['fbrelevance']); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + unset($params['fbrelevance']); + } + if (isset($params['xfbaccess'])) { + $result = $this->setXfbaccess($params['xfbaccess']); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + unset($params['xfbaccess']); + } + + if (empty($params)) { + continue; + } + + $value = @serialize($params); + } + + $imap = &$this->_shareOb->getImap(); + // setAnnotation apparently does not suppoort UTF-8 nor any special characters + $store = base64_encode($value); + $entry = HORDE_ANNOT_SHARE_ATTR . $attribute; + $result = $imap->setAnnotation($entry, array('value.shared' => $store), $this->_folder); + if (is_a($result, 'PEAR_Error')) { + return $result; + } } else { $imap = &$this->_shareOb->getImap(); // setAnnotation apparently does not suppoort UTF-8 nor any special characters --- NEW FILE: HK-GW-kronolith_2.2_RC1-Fbview_menu.patch --- diff -r 538d4c6293be kronolith/attendees.php --- a/kronolith/attendees.php Thu Nov 29 12:33:18 2007 +0100 +++ b/kronolith/attendees.php Thu Nov 29 12:34:39 2007 +0100 @@ -236,6 +236,7 @@ Imple::factory('ContactAutoCompleter', a $title = _("Edit attendees"); require KRONOLITH_TEMPLATES . '/common-header.inc'; +require KRONOLITH_TEMPLATES . '/fbview-menu.inc'; if ($browser->hasFeature('javascript')) { Horde::addScriptFile('open_savedattlist_win.js'); diff -r 538d4c6293be kronolith/calendars.php --- a/kronolith/calendars.php Thu Nov 29 12:33:18 2007 +0100 +++ b/kronolith/calendars.php Thu Nov 29 12:34:39 2007 +0100 @@ -134,6 +134,6 @@ Horde::addScriptFile('popup.js', 'horde' Horde::addScriptFile('popup.js', 'horde', true); $title = _("My Calendars"); require KRONOLITH_TEMPLATES . '/common-header.inc'; -require KRONOLITH_TEMPLATES . '/menu.inc'; +require KRONOLITH_TEMPLATES . '/fbview-menu.inc'; require KRONOLITH_TEMPLATES . '/calendars/calendars.inc'; require $registry->get('templates', 'horde') . '/common-footer.inc'; diff -r 538d4c6293be kronolith/lib/Kronolith.php --- a/kronolith/lib/Kronolith.php Thu Nov 29 12:33:18 2007 +0100 +++ b/kronolith/lib/Kronolith.php Thu Nov 29 12:34:39 2007 +0100 @@ -1968,6 +1968,33 @@ class Kronolith { } /** + * Builds Kronolith's list of menu items. + */ + function getFbviewMenu($returnType = 'object') + { + global $conf, $registry, $browser, $prefs; + + /* Check here for guest calendars so that we don't get multiple + * messages after redirects, etc. */ + if (!Auth::getAuth() && !count($GLOBALS['all_calendars'])) { + $GLOBALS['notification']->push(_("No calendars are available to guests.")); + } + + require_once 'Horde/Menu.php'; + $menu = new Menu(HORDE_MENU_MASK_HELP | HORDE_MENU_MASK_LOGIN); + + $menu->add(Horde::applicationUrl('attendees.php'), _("Attendees"), 'attendees.png', null, null, null, '__noselection'); + + $menu->add(Horde::applicationUrl('calendars.php'), _("Calendars"), 'calendars.png', null, null, null, '__noselection'); + + if ($returnType == 'object') { + return $menu; + } else { + return $menu->render(); + } + } + + /** * Used with usort() to sort events based on their start times. * This function ignores the date component so recuring events can * be sorted correctly on a per day basis. diff -r 538d4c6293be kronolith/templates/fbview-menu.inc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kronolith/templates/fbview-menu.inc Thu Nov 29 12:34:39 2007 +0100 @@ -0,0 +1,4 @@ +

    +notify(array('listeners' => 'status')) ?> --- NEW FILE: HK-GW-kronolith_2.2_RC1-Fbview_relevance.patch --- Allows to set the free/busy relevance on a calendar. diff -r e7fdad8797ac kronolith/calendars.php --- a/kronolith/calendars.php Thu Nov 29 14:36:50 2007 +0100 +++ b/kronolith/calendars.php Thu Nov 29 14:43:24 2007 +0100 @@ -39,6 +39,7 @@ case 'save': $cal = $kronolith_shares->newShare(md5(microtime())); $cal->set('name', $id); $cal->set('desc', Util::getFormData('description', '')); + $cal->set('params', serialize(array('fbrelevance' => (int) Util::getFormData('fbrelevance', 0)))); $result = $kronolith_shares->addShare($cal); if (is_a($result, 'PEAR_Error')) { $notification->push($result, 'horde.error'); @@ -50,6 +51,7 @@ case 'save': $original_name = $cal->get('name'); $cal->set('name', $id); $cal->set('desc', Util::getFormData('description', '')); + $cal->set('params', serialize(array('fbrelevance' => (int) Util::getFormData('fbrelevance', 0)))); if ($original_name != $id) { $result = $kronolith_driver->rename($original_name, $id); @@ -125,9 +127,16 @@ case 'delete': $remote_calendars = unserialize($prefs->getValue('remote_cals')); $current_user = Auth::getAuth(); $my_calendars = array(); +$fbrelevance = array(); foreach (Kronolith::listCalendars() as $id => $cal) { if ($cal->get('owner') == $current_user) { $my_calendars[$id] = $cal; + $params = @unserialize($cal->get('params')); + if (isset($params['fbrelevance'])) { + $fbrelevance[$id] = $params['fbrelevance']; + } else { + $fbrelevance[$id] = 0; + } } } diff -r e7fdad8797ac kronolith/templates/calendars/calendars.inc --- a/kronolith/templates/calendars/calendars.inc Thu Nov 29 14:36:50 2007 +0100 +++ b/kronolith/templates/calendars/calendars.inc Thu Nov 29 14:43:24 2007 +0100 @@ -8,7 +8,8 @@ var fields = []; $cal): ?> fields[''] = [ "get('name'), NLS::getCharset(), 'UTF-8')) ?>", - "get('desc'), NLS::getCharset(), 'UTF-8')) ?>"]; + "get('desc'), NLS::getCharset(), 'UTF-8')) ?>", + ""]; function newChoice() @@ -25,6 +26,7 @@ function newChoice() document.shares.edit_share.value = share; document.shares.id.value = decodeURIComponent(fields[share][0]); document.shares.description.value = decodeURIComponent(fields[share][1]); + document.shares.fbrelevance[fields[share][2]].checked = true; urlObj.innerHTML = "" + share; subscriptionUrlObj.innerHTML = "get('webroot', 'horde'), true, -1) . '/rpc.php/kronolith/" + share + ".ics"') : Util::addParameter(Horde::applicationUrl('ics.php', true, -1), 'c', '') . '" + share' ?>; } @@ -126,11 +128,55 @@ function checkSubmit() - -
      +
     
    + getImageDir('horde')) . ' ' . _("Extended free/busy access") ?> +      
      + /> + +     
    + + + + + +   + + +     
     
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + +
    + +
    +   + +
    +
    +   + + +
    +   + +
    +
    +
    + +
    + +
    + + + + - --- NEW FILE: HK-GW-kronolith_2.2_RC1-Fbview_xfb_access.patch --- diff -r 14457cf2ea2c kronolith/perms.php --- a/kronolith/perms.php Thu Nov 29 15:20:49 2007 +0100 +++ b/kronolith/perms.php Thu Nov 29 15:25:36 2007 +0100 @@ -15,6 +15,34 @@ require_once KRONOLITH_BASE . '/lib/base require_once KRONOLITH_BASE . '/lib/base.php'; require_once 'Horde/Group.php'; +function &getFbperms($share) +{ + $fbperms = array(); + $params = $share->get('params'); + if (!is_a($params, 'PEAR_Error')) { + $params = @unserialize($params); + if (isset($params['xfbaccess'])) { + $xfbusers = $params['xfbaccess']; + foreach ($xfbusers as $user) { + $fbperms[$user] = PERMS_READ; + } + } + } + return $fbperms; +} + +function setFbperms($share, $xfbusers) +{ + $fbperms = array(); + $params = $share->get('params'); + if (!is_a($params, 'PEAR_Error')) { + $params = @unserialize($params); + $params['xfbaccess'] = $xfbusers; + $params = serialize($params); + $share->set('params', $params); + } +} + $shares = &Horde_Share::singleton('kronolith'); $groups = &Group::singleton(); $auth = &Auth::singleton($conf['auth']['driver']); @@ -36,6 +64,8 @@ case 'edit': $notification->push($share, 'horde.error'); } elseif (isset($share) && Auth::getAuth() != $share->get('owner')) { exit('permission denied'); + } else { + $fbperms = getFbperms($share); } break; @@ -251,6 +281,24 @@ case 'editform': } } + // Process free/busy permissions. + $fb_names = Util::getFormData('fb_names'); + $fb_read = Util::getFormData('fb_read'); + + $fbperms = getFbperms($share); + foreach ($fb_names as $key => $user) { + if (empty($user)) { + continue; + } + + if (!empty($fb_read[$key])) { + $fbperms[$user] = PERMS_READ; + } else { + unset($fbperms[$user]); + } + } + setFbperms($share, array_keys($fbperms)); + $share->setPermission($perm, false); $share->save(); $notification->push(sprintf(_("Updated \"%s\"."), $share->get('name')), 'horde.success'); diff -r 14457cf2ea2c kronolith/templates/perms/perms.inc --- a/kronolith/templates/perms/perms.inc Thu Nov 29 15:20:49 2007 +0100 +++ b/kronolith/templates/perms/perms.inc Thu Nov 29 15:25:36 2007 +0100 @@ -355,6 +355,61 @@ + + + + + + + + + + + $fbperm) { if ($user != $owner) { ?> + + + + + + + + + + + + +hasCapability('list')): ?> + + + + + + + + + + + + --- NEW FILE: README_Fbview_menu.patch --- DESCRIPTION: Adds a reduced menu to the attendees view. This won't make it upstream since the the view is used by upstream as a popup and does not need a menu. IMPACT: The menu will be missing in fbview. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_RC1/summary HISTORY --- NEW FILE: README_Fbview_relevance.patch --- DESCRIPTION: Allows to set the free/busy relevance of a calendar. This is Kolab specific and won't make it upstream in this form. IMPACT: Without this patch you won't be able to set the free/busy relevance of a calendar in fbview. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_RC1/summary HISTORY --- NEW FILE: README_Fbview_xfb_access.patch --- DESCRIPTION: Allows to set the access rules for extended free busy parameters. This is Kolab specific and won't make it upstream in this form. IMPACT: Without this patch you won't be able to modify the access rights in fbview. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_RC1/summary HISTORY --- NEW FILE: README_Fbview_xfb_concept.patch --- DESCRIPTION: Adds routines in the Horde::Share library to store the free/busy relevance and the free/busy access settings. This could be submitted upstream after some restructuring. IMPACT: Setting/Getting these parameters won't work in fbview. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_RC1/summary HISTORY From cvs at kolab.org Thu Nov 29 16:32:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 16:32:13 +0100 (CET) Subject: gunnar: server/horde/horde-turba horde-turba-kolab.spec,1.21,1.22 Message-ID: <20071129153213.56F41600D7B@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-turba In directory doto:/tmp/cvs-serv23106/horde/horde-turba Modified Files: horde-turba-kolab.spec Log Message: Support for the extended free/busy concept. Index: horde-turba-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-turba/horde-turba-kolab.spec,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- horde-turba-kolab.spec 29 Nov 2007 09:55:38 -0000 1.21 +++ horde-turba-kolab.spec 29 Nov 2007 15:32:11 -0000 1.22 @@ -76,6 +76,8 @@ cd %{V_horde_name}-h3-%{V_uver} + rm -rf test.php + cd config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd .. cp -r * $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/ From cvs at kolab.org Thu Nov 29 16:32:13 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 29 Nov 2007 16:32:13 +0100 (CET) Subject: gunnar: server/kolabd/kolabd/templates httpd.conf.template.in, 1.17, 1.18 imapd.annotation_definitions.template.in, 1.3, 1.4 Message-ID: <20071129153213.A9988600D7B@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv23106/kolabd/kolabd/templates Modified Files: httpd.conf.template.in imapd.annotation_definitions.template.in Log Message: Support for the extended free/busy concept. Index: httpd.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/httpd.conf.template.in,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- httpd.conf.template.in 21 Nov 2007 11:05:41 -0000 1.17 +++ httpd.conf.template.in 29 Nov 2007 15:32:11 -0000 1.18 @@ -145,20 +145,7 @@ ErrorDocument 403 https://@@@fqdnhostname@@@@webserver_web_prefix@/admin/ - Deny from all ErrorDocument 403 https://@@@fqdnhostname@@@@webserver_web_prefix@/fbview/ - - - Order allow,deny - Allow from all - - - Order allow,deny - Allow from all - - - Order allow,deny - Allow from all Index: imapd.annotation_definitions.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/imapd.annotation_definitions.template.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- imapd.annotation_definitions.template.in 3 Oct 2007 10:05:18 -0000 1.3 +++ imapd.annotation_definitions.template.in 29 Nov 2007 15:32:11 -0000 1.4 @@ -6,6 +6,7 @@ /vendor/kolab/folder-test,mailbox,string,backend,value.shared value.priv,a /vendor/kolab/folder-type,mailbox,string,backend,value.shared value.priv,a /vendor/kolab/incidences-for,mailbox,string,backend,value.shared value.priv,a +/vendor/kolab/xfb-readable,mailbox,string,backend,value.shared value.priv,a /vendor/kolab/h-share-attr-desc,mailbox,string,backend,value.shared value.priv,a /vendor/horde/share-params,mailbox,string,backend,value.shared value.priv,a /vendor/x-toltec/test,mailbox,string,backend,value.shared value.priv,a From cvs at kolab.org Fri Nov 30 06:44:49 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 06:44:49 +0100 (CET) Subject: gunnar: server cvs-kolab.sh,1.17,1.18 Message-ID: <20071130054449.6AFF3600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv20169 Modified Files: cvs-kolab.sh Log Message: Fixed some syntax problems from the beta2 release run. Let's see if this script makes beta3 nice and easy. Index: cvs-kolab.sh =================================================================== RCS file: /kolabrepository/server/cvs-kolab.sh,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- cvs-kolab.sh 25 Oct 2007 16:13:45 -0000 1.17 +++ cvs-kolab.sh 30 Nov 2007 05:44:47 -0000 1.18 @@ -188,17 +188,18 @@ "/${KOLAB_REL_USER}/bin/openpkg" index -r . -o 00INDEX.rdf -i . cd .. cp RELEASE/install-kolab.sh . - cat << EOF > 00INDEX.rdf - - - - - - - -EOF + cat << __EOF > 00INDEX.rdf + + + + + + + +__EOF + ./install-kolab.sh -t "${KOLAB_REL_USER}" -I 23414 -F -H > kolab-build.log2 2>&1 cp /"${KOLAB_REL_USER}"/RPM/PKG/*.src.rpm RELEASE/ cd RELEASE From cvs at kolab.org Fri Nov 30 06:49:49 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 06:49:49 +0100 (CET) Subject: gunnar: server/horde/horde-kronolith HK-GW-Fbview_relevance.patch, NONE, 1.1 HK-GW-Fbview_xfb_access.patch, NONE, 1.1 HK-SB-Fbview_extra_params.patch, NONE, 1.1 HK-SB-Fbview_save_attendees.patch, NONE, 1.1 horde-kronolith-kolab.spec, 1.20, 1.21 Message-ID: <20071130054949.3A142600166@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-kronolith In directory doto:/tmp/cvs-serv20305 Modified Files: horde-kronolith-kolab.spec Added Files: HK-GW-Fbview_relevance.patch HK-GW-Fbview_xfb_access.patch HK-SB-Fbview_extra_params.patch HK-SB-Fbview_save_attendees.patch Log Message: We can add these fbview patches also to the main kronolith. They won't hurt. --- NEW FILE: HK-GW-Fbview_relevance.patch --- Allows to set the free/busy relevance on a calendar. diff -r e7fdad8797ac kronolith/calendars.php --- a/kronolith/calendars.php Thu Nov 29 14:36:50 2007 +0100 +++ b/kronolith/calendars.php Thu Nov 29 14:43:24 2007 +0100 @@ -39,6 +39,7 @@ case 'save': $cal = $kronolith_shares->newShare(md5(microtime())); $cal->set('name', $id); $cal->set('desc', Util::getFormData('description', '')); + $cal->set('params', serialize(array('fbrelevance' => (int) Util::getFormData('fbrelevance', 0)))); $result = $kronolith_shares->addShare($cal); if (is_a($result, 'PEAR_Error')) { $notification->push($result, 'horde.error'); @@ -50,6 +51,7 @@ case 'save': $original_name = $cal->get('name'); $cal->set('name', $id); $cal->set('desc', Util::getFormData('description', '')); + $cal->set('params', serialize(array('fbrelevance' => (int) Util::getFormData('fbrelevance', 0)))); if ($original_name != $id) { $result = $kronolith_driver->rename($original_name, $id); @@ -125,9 +127,16 @@ case 'delete': $remote_calendars = unserialize($prefs->getValue('remote_cals')); $current_user = Auth::getAuth(); $my_calendars = array(); +$fbrelevance = array(); foreach (Kronolith::listCalendars() as $id => $cal) { if ($cal->get('owner') == $current_user) { $my_calendars[$id] = $cal; + $params = @unserialize($cal->get('params')); + if (isset($params['fbrelevance'])) { + $fbrelevance[$id] = $params['fbrelevance']; + } else { + $fbrelevance[$id] = 0; + } } } diff -r e7fdad8797ac kronolith/templates/calendars/calendars.inc --- a/kronolith/templates/calendars/calendars.inc Thu Nov 29 14:36:50 2007 +0100 +++ b/kronolith/templates/calendars/calendars.inc Thu Nov 29 14:43:24 2007 +0100 @@ -8,7 +8,8 @@ var fields = []; $cal): ?> fields[''] = [ "get('name'), NLS::getCharset(), 'UTF-8')) ?>", - "get('desc'), NLS::getCharset(), 'UTF-8')) ?>"]; + "get('desc'), NLS::getCharset(), 'UTF-8')) ?>", + ""]; function newChoice() @@ -25,6 +26,7 @@ function newChoice() document.shares.edit_share.value = share; document.shares.id.value = decodeURIComponent(fields[share][0]); document.shares.description.value = decodeURIComponent(fields[share][1]); + document.shares.fbrelevance[fields[share][2]].checked = true; urlObj.innerHTML = "" + share; subscriptionUrlObj.innerHTML = "get('webroot', 'horde'), true, -1) . '/rpc.php/kronolith/" + share + ".ics"') : Util::addParameter(Horde::applicationUrl('ics.php', true, -1), 'c', '') . '" + share' ?>; } @@ -126,11 +128,55 @@ function checkSubmit() - -
      +
     
    + getImageDir('horde')) . ' ' . _("Extended free/busy access") ?> +      
      + /> + +     
    + + + + + +   + + +     
     
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + +
    + +
    +   + +
    +
    +   + + +
    +   + +
    +
    +
    + +
    + +
    + + + + - --- NEW FILE: HK-GW-Fbview_xfb_access.patch --- diff -r 14457cf2ea2c kronolith/perms.php --- a/kronolith/perms.php Thu Nov 29 15:20:49 2007 +0100 +++ b/kronolith/perms.php Thu Nov 29 15:25:36 2007 +0100 @@ -15,6 +15,34 @@ require_once KRONOLITH_BASE . '/lib/base require_once KRONOLITH_BASE . '/lib/base.php'; require_once 'Horde/Group.php'; +function &getFbperms($share) +{ + $fbperms = array(); + $params = $share->get('params'); + if (!is_a($params, 'PEAR_Error')) { + $params = @unserialize($params); + if (isset($params['xfbaccess'])) { + $xfbusers = $params['xfbaccess']; + foreach ($xfbusers as $user) { + $fbperms[$user] = PERMS_READ; + } + } + } + return $fbperms; +} + +function setFbperms($share, $xfbusers) +{ + $fbperms = array(); + $params = $share->get('params'); + if (!is_a($params, 'PEAR_Error')) { + $params = @unserialize($params); + $params['xfbaccess'] = $xfbusers; + $params = serialize($params); + $share->set('params', $params); + } +} + $shares = &Horde_Share::singleton('kronolith'); $groups = &Group::singleton(); $auth = &Auth::singleton($conf['auth']['driver']); @@ -36,6 +64,8 @@ case 'edit': $notification->push($share, 'horde.error'); } elseif (isset($share) && Auth::getAuth() != $share->get('owner')) { exit('permission denied'); + } else { + $fbperms = getFbperms($share); } break; @@ -251,6 +281,24 @@ case 'editform': } } + // Process free/busy permissions. + $fb_names = Util::getFormData('fb_names'); + $fb_read = Util::getFormData('fb_read'); + + $fbperms = getFbperms($share); + foreach ($fb_names as $key => $user) { + if (empty($user)) { + continue; + } + + if (!empty($fb_read[$key])) { + $fbperms[$user] = PERMS_READ; + } else { + unset($fbperms[$user]); + } + } + setFbperms($share, array_keys($fbperms)); + $share->setPermission($perm, false); $share->save(); $notification->push(sprintf(_("Updated \"%s\"."), $share->get('name')), 'horde.success'); diff -r 14457cf2ea2c kronolith/templates/perms/perms.inc --- a/kronolith/templates/perms/perms.inc Thu Nov 29 15:20:49 2007 +0100 +++ b/kronolith/templates/perms/perms.inc Thu Nov 29 15:25:36 2007 +0100 @@ -355,6 +355,61 @@ + + + + + + + + + + + $fbperm) { if ($user != $owner) { ?> + + + + + + + + + + + + +hasCapability('list')): ?> + + + + + + + + + + + + --- NEW FILE: HK-SB-Fbview_extra_params.patch --- This includes extra parameters into the free/busy view. The params are hardcoded so this patch won't make it upstream. diff -r 735b35f9f866 kronolith/lib/FBView.php --- a/kronolith/lib/FBView.php Thu Nov 29 11:32:43 2007 +0100 +++ b/kronolith/lib/FBView.php Thu Nov 29 11:35:20 2007 +0100 @@ -86,8 +86,8 @@ class Kronolith_FreeBusy_View { $template = new Horde_Template(); $rows = ''; foreach ($this->_requiredMembers as $member) { - $blocks = $this->_getBlocks($member, $member->getBusyPeriods(), 'busyblock.tpl', _("Busy")); - $template = new Horde_Template(); + $blocks = $this->_getBlocks($member, $member->getBusyPeriods(), 'busyblock.tpl', _("Busy"), $member->getExtraParams()); + $template = &new Horde_Template(); $template->set('blocks', $blocks); $template->set('name', $member->getName()); $rows .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/row.tpl'); @@ -107,8 +107,8 @@ class Kronolith_FreeBusy_View { $template = new Horde_Template(); $rows = ''; foreach ($this->_optionalMembers as $member) { - $blocks = $this->_getBlocks($member, $member->getBusyPeriods(), 'busyblock.tpl', _("Busy")); - $template = new Horde_Template(); + $blocks = $this->_getBlocks($member, $member->getBusyPeriods(), 'busyblock.tpl', _("Busy"), $member->getExtraParams()); + $template = &new Horde_Template(); $template->set('blocks', $blocks); $template->set('name', $member->getName()); $rows .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/row.tpl'); @@ -122,6 +122,9 @@ class Kronolith_FreeBusy_View { $template->set('legend', ''); $html .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/section.tpl'); } + + //********** + //This has been disabled in kolab-fbview. Make this optional? // Possible meeting times. $optimal->setAttribute('ORGANIZER', _("All Attendees")); @@ -144,6 +147,9 @@ class Kronolith_FreeBusy_View { $template->set('name', _("Required Attendees")); $template->set('blocks', $blocks); $rows .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/row.tpl'); + + //This has been disabled in kolab-fbview. Make this optional? + //********** // Reset locale. setlocale(LC_NUMERIC, $lc); @@ -217,7 +223,7 @@ class Kronolith_FreeBusy_View { return $instances[$view]; } - function _getBlocks($member, $periods, $blockfile, $label) + function _getBlocks($member, $periods, $blockfile, $label, $extra = array()) { $template = new Horde_Template(); $template->set('label', $label); @@ -250,6 +256,21 @@ class Kronolith_FreeBusy_View { $template->set('left', $left . '%'); $template->set('width', $width . '%'); + $template->set('evclick', ''); + + if (isset($extra[$periodStart])) { + if (!empty($extra[$periodStart]['X-UID'])) { + $link = "javascript:performAction('viewaction', '" + . addslashes($member->getName() . "#" + . String::convertCharset(base64_decode($extra[$periodStart]['X-UID']), + 'UTF-8',NLS::getCharset())) . "')"; + $template->set('evclick', $link); + } + if (!empty($extra[$periodStart]['X-SUMMARY'])) { + $template->set('label', String::convertCharset(base64_decode($extra[$periodStart]['X-SUMMARY']),'UTF-8', + NLS::getCharset())); + } + } $blocks .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/' . $blockfile); } else { diff -r 735b35f9f866 kronolith/templates/fbview/busyblock.tpl --- a/kronolith/templates/fbview/busyblock.tpl Thu Nov 29 11:32:43 2007 +0100 +++ b/kronolith/templates/fbview/busyblock.tpl Thu Nov 29 11:35:20 2007 +0100 @@ -1,1 +1,1 @@ - + --- NEW FILE: HK-SB-Fbview_save_attendees.patch --- Provides a patch to store the list of attendees in the user preferences. This is a broken patch that has been rejected upstream (http://bugs.horde.org/ticket/?id=4788). This should be solved using Horde::Groups. diff -r 848f241f83e0 kronolith/attendees.php --- a/kronolith/attendees.php Thu Nov 29 10:56:04 2007 +0100 +++ b/kronolith/attendees.php Thu Nov 29 11:32:43 2007 +0100 @@ -155,6 +155,16 @@ case 'clear': $attendees = array(); $_SESSION['kronolith']['attendees'] = $attendees; break; + +case 'save': + if (empty($attendees)) { + break; + } + $savedattlist = unserialize($prefs->getValue('saved_attendee_list')); + $savedattlist[] = array_keys($attendees); + $prefs->setValue('saved_attendee_list', serialize($savedattlist)); + $notification->push(_('Successfully saved attendee list'), 'horde.success'); + break; } // Get the current Free/Busy view; default to the 'day' view if none specified. @@ -226,6 +236,14 @@ Imple::factory('ContactAutoCompleter', a $title = _("Edit attendees"); require KRONOLITH_TEMPLATES . '/common-header.inc'; + +if ($browser->hasFeature('javascript')) { + Horde::addScriptFile('open_savedattlist_win.js'); + $savedattlist_url = 'javascript:open_savedattlist_win();'; +} else { + $savedattlist_url = Horde::applicationUrl('savedattlist.php'); +} + $notification->notify(array('status')); require KRONOLITH_TEMPLATES . '/attendees/attendees.inc'; require $registry->get('templates', 'horde') . '/common-footer.inc'; diff -r 848f241f83e0 kronolith/config/prefs.php.dist --- a/kronolith/config/prefs.php.dist Thu Nov 29 10:56:04 2007 +0100 +++ b/kronolith/config/prefs.php.dist Thu Nov 29 11:32:43 2007 +0100 @@ -465,3 +465,11 @@ if ($GLOBALS['registry']->hasMethod('con 'shared' => false, 'type' => 'implicit' ); + +$_prefs['saved_attendee_list'] = array( + 'value' => 'a:0:{}', + 'locked' => false, + 'shared' => false, + 'type' => 'implicit', + 'desc' => _("A saved list of attendees") +); diff -r 848f241f83e0 kronolith/savedattlist.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kronolith/savedattlist.php Thu Nov 29 11:32:43 2007 +0100 @@ -0,0 +1,77 @@ + + * Stuart Binge + * + * See the enclosed file COPYING for license information (GPL). If you + * did not receive this file, see http://www.fsf.org/copyleft/gpl.html. + */ + + at define('KRONOLITH_BASE', dirname(__FILE__)); +require_once KRONOLITH_BASE . '/lib/base.php'; +require_once KRONOLITH_BASE . '/lib/FBView.php'; + +$title = _('Load Attendee List'); + +Horde::addScriptFile('tooltip.js', 'horde'); +require KRONOLITH_TEMPLATES . '/common-header.inc'; + +// Get our list of saved attendees +$savedattlist = unserialize($prefs->getValue('saved_attendee_list')); + +// Preformat our image urls +$delimg = Horde::img('delete.png', _("Remove List"), null, $GLOBALS['registry']->getImageDir('horde')); +$loadimg = Horde::img('tree/folder.png', _("Load List"), null, $GLOBALS['registry']->getImageDir('horde')); + +// Get our Action ID & Value. This specifies what action the user initiated. +$actionID = Util::getFormData('actionID', false); +$actionValue = Util::getFormData('actionValue', false); +if (!$actionID) { + $actionID = (Util::getFormData('addNew', false) ? 'add' : false); + $actionValue = Util::getFormData('newAttendees', ''); +} + +// Perform the specified action, if there is one. +switch ($actionID) { +case 'remove': + // Remove the specified attendee + if (array_key_exists($actionValue, $savedattlist)) { + unset($savedattlist[$actionValue]); + $prefs->setValue('saved_attendee_list', serialize($savedattlist)); + } + + break; + +case 'dismiss': + // Make sure we're actually allowed to dismiss + if (!$allow_dismiss) break; + + // Close the attendee window + global $browser; + + if ($browser->hasFeature('javascript')) { + Util::closeWindowJS(); + } else { + $url = Util::getFormData('url'); + + if (!empty($url)) { + $location = Horde::applicationUrl($url, true); + } else { + $url = Util::addParameter($prefs->getValue('defaultview') . '.php', 'month', Util::getFormData('month')); + $url = Util::addParameter($url, 'year', Util::getFormData('year')); + $location = Horde::applicationUrl($url, true); + } + + // Make sure URL is unique. + $location = Util::addParameter($location, 'unique', md5(microtime())); + + header('Location: ' . $location); + } + break; +} + +$form_handler = Horde::applicationUrl('savedattlist.php'); +require KRONOLITH_TEMPLATES . '/savedattlist/savedattlist.inc'; +require $GLOBALS['registry']->get('templates', 'horde') . '/common-footer.inc'; diff -r 848f241f83e0 kronolith/templates/attendees/attendees.inc --- a/kronolith/templates/attendees/attendees.inc Thu Nov 29 10:56:04 2007 +0100 +++ b/kronolith/templates/attendees/attendees.inc Thu Nov 29 11:32:43 2007 +0100 @@ -92,6 +92,8 @@ function switchDateView(view, timestamp)
    " /> " /> + " onclick="" /> + " onclick="performAction('save', '');" /> " />
    diff -r 848f241f83e0 kronolith/templates/javascript/open_savedattlist_win.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kronolith/templates/javascript/open_savedattlist_win.js Thu Nov 29 11:32:43 2007 +0100 @@ -0,0 +1,36 @@ + + diff -r 848f241f83e0 kronolith/templates/savedattlist/savedattlist.inc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kronolith/templates/savedattlist/savedattlist.inc Thu Nov 29 11:32:43 2007 +0100 @@ -0,0 +1,68 @@ + + + +
    + + + + +
    + +
      +
     
    + getImageDir('horde')) . ' ' . _("Extended free/busy access") ?> +      
      + /> + +     
    + + + + + +   + + +     
     
     
     
    + + + + + + + + + + + + + + + + $list): ?> + + ', Horde::link("javascript:updateMessage('" . addslashes(implode(', ', $list)) . "')", _("Load this list")), $loadimg, ""; + ?> + ', Horde::link("javascript:performAction('remove', '" . $index . "')", _("Remove this list")), $delimg, ""; + ?> + + + +
    +
    + Index: horde-kronolith-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-kronolith/horde-kronolith-kolab.spec,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- horde-kronolith-kolab.spec 29 Nov 2007 15:32:10 -0000 1.20 +++ horde-kronolith-kolab.spec 30 Nov 2007 05:49:47 -0000 1.21 @@ -3,7 +3,7 @@ %define V_package horde-%{V_horde_name}-kolab %define V_year 2007 %define V_month 11 -%define V_day 28 +%define V_day 29 %define V_version 2.2_rc1 %define V_uver 2.2-rc1 %define V_date %{V_year}-%{V_month}-%{V_day} @@ -28,6 +28,10 @@ # List of Patches Patch0: HK-JS-Fix_library_import.patch +Patch1: HK-SB-Fbview_extra_params.patch +Patch2: HK-SB-Fbview_save_attendees.patch +Patch3: HK-GW-Fbview_relevance.patch +Patch4: HK-GW-Fbview_xfb_access.patch # Build Info Prefix: %{l_prefix} @@ -58,6 +62,10 @@ cd %{V_horde_name}-h3-%{V_uver} %patch -p2 -P 0 + %patch -p2 -P 1 + %patch -p2 -P 2 + %patch -p2 -P 3 + %patch -p2 -P 4 cd .. %build From cvs at kolab.org Fri Nov 30 06:55:53 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 06:55:53 +0100 (CET) Subject: gunnar: server/horde/fbview-kronolith Makefile,1.4,1.5 Message-ID: <20071130055553.1FB34600166@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/fbview-kronolith In directory doto:/tmp/cvs-serv20457 Modified Files: Makefile Log Message: Hm, looks like I missed that when commiting some time earlier. Index: Makefile =================================================================== RCS file: /kolabrepository/server/horde/fbview-kronolith/Makefile,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Makefile 1 Oct 2007 15:47:19 -0000 1.4 +++ Makefile 30 Nov 2007 05:55:51 -0000 1.5 @@ -23,7 +23,7 @@ UVER = $(shell grep "%define[ ]*V_uver" *.spec | sed -e "s/.*V_uver\s*\([0-9.a-z-]*\).*/\1/") RELEASE = ${YEAR}${MONTH}${DAY} -PATCHES = $(shell find . -name "*.patch") savedattlist.inc open_savedattlist_win.js +PATCHES = $(shell find . -name "*.patch") TEMPLATES = $(shell find . -name "*.template") CONFIGS = $(shell find . -name "*.php") From cvs at kolab.org Fri Nov 30 07:47:24 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 07:47:24 +0100 (CET) Subject: gunnar: server/horde/fbview-kronolith fbview-kronolith.spec, 1.18, 1.19 Message-ID: <20071130064724.83B0F600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/fbview-kronolith In directory doto:/tmp/cvs-serv21764 Modified Files: fbview-kronolith.spec Log Message: This was the second part of the commit that I missed yesterday. Index: fbview-kronolith.spec =================================================================== RCS file: /kolabrepository/server/horde/fbview-kronolith/fbview-kronolith.spec,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- fbview-kronolith.spec 29 Nov 2007 15:32:10 -0000 1.18 +++ fbview-kronolith.spec 30 Nov 2007 06:47:22 -0000 1.19 @@ -88,17 +88,10 @@ edit.php new.php test.php year.php attend.php \ data.php event.php + find . -name '*.orig' | xargs rm cp -r * $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/fbview/%{V_horde_name}/ cd .. - - %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/fbview/%{V_horde_name}/templates/savedattlist - %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:4} \ - $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/fbview/%{V_horde_name} - %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:5} \ - $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/fbview/%{V_horde_name}/templates/savedattlist - %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:6} \ - $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/fbview/%{V_horde_name}/templates/javascript %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:1} \ $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates From cvs at kolab.org Fri Nov 30 07:58:41 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 07:58:41 +0100 (CET) Subject: gunnar: server/horde/horde-kronolith horde-kronolith-kolab.spec, 1.21, 1.22 Message-ID: <20071130065841.0E881600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-kronolith In directory doto:/tmp/cvs-serv22088/horde-kronolith Modified Files: horde-kronolith-kolab.spec Log Message: If we use the fbview patches we will also need to remove the *.orig files. Index: horde-kronolith-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-kronolith/horde-kronolith-kolab.spec,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- horde-kronolith-kolab.spec 30 Nov 2007 05:49:47 -0000 1.21 +++ horde-kronolith-kolab.spec 30 Nov 2007 06:58:38 -0000 1.22 @@ -80,6 +80,8 @@ cd config && for fl in *.dist;do cp $fl ${fl/.dist/};done; cd .. + find . -name '*.orig' | xargs rm + cp -r * $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/horde/%{V_horde_name}/ cd .. From cvs at kolab.org Fri Nov 30 08:13:40 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 08:13:40 +0100 (CET) Subject: gunnar: server Makefile,1.43,1.44 Message-ID: <20071130071340.13868600166@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv22667 Modified Files: Makefile Log Message: These files don't exist anymore. Index: Makefile =================================================================== RCS file: /kolabrepository/server/Makefile,v retrieving revision 1.43 retrieving revision 1.44 diff -u -d -r1.43 -r1.44 --- Makefile 28 Nov 2007 07:57:54 -0000 1.43 +++ Makefile 30 Nov 2007 07:13:37 -0000 1.44 @@ -67,9 +67,7 @@ BASE_FILES=install-kolab.sh \ 00INDEX.rdf \ - LIESMICH.txt \ - README.1st \ - README.webclient + README.1st .PHONY: dist dist: stage base kolab horde files From cvs at kolab.org Fri Nov 30 09:47:47 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 09:47:47 +0100 (CET) Subject: gunnar: server Makefile,1.44,1.45 Message-ID: <20071130084747.6BCD5600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv25225 Modified Files: Makefile Log Message: Added missing package. Index: Makefile =================================================================== RCS file: /kolabrepository/server/Makefile,v retrieving revision 1.44 retrieving revision 1.45 diff -u -d -r1.44 -r1.45 --- Makefile 30 Nov 2007 07:13:37 -0000 1.44 +++ Makefile 30 Nov 2007 08:47:44 -0000 1.45 @@ -52,6 +52,7 @@ pear/PEAR-Net_SMTP \ pear/PEAR-Net_LMTP \ pear/PEAR-HTTP_Request \ + horde/php-channel-horde \ horde/fbview-horde \ horde/fbview-kronolith \ horde/horde-framework \ From cvs at kolab.org Fri Nov 30 09:50:18 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 09:50:18 +0100 (CET) Subject: gunnar: server install-kolab.sh,1.15,1.16 Message-ID: <20071130085018.30434600D50@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv25358 Modified Files: install-kolab.sh Log Message: While this added output does not exactly look beautiful it helps to see the final command the installer will actually run. Index: install-kolab.sh =================================================================== RCS file: /kolabrepository/server/install-kolab.sh,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- install-kolab.sh 28 Nov 2007 07:57:54 -0000 1.15 +++ install-kolab.sh 30 Nov 2007 08:50:16 -0000 1.16 @@ -302,6 +302,13 @@ " fi find "$DIR" -mindepth 1 -maxdepth 1 -name "*.$PLATTAG.rpm" -exec ln -sf '{}' "$PREFIX/RPM/PKG/" \; + echo "----------- SETUP COMPLETED -----------" + echo "" + echo " Now running:" + echo "" + echo " $PREFIX/bin/openpkg build -kKBuZ -r \"$DIR\" -p \"$PLATTAG\" $DEFINE $PACKAGES | sh" + echo "" + echo "---------------------------------------" "$PREFIX/bin/openpkg" build -kKBuZ -r "$DIR" -p "$PLATTAG" $DEFINE $PACKAGES | sh || exit $? fi From cvs at kolab.org Fri Nov 30 10:43:29 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 10:43:29 +0100 (CET) Subject: gunnar: server cvs-kolab.sh,1.18,1.19 Message-ID: <20071130094329.76D4F600151@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv27300 Modified Files: cvs-kolab.sh Log Message: Add some fixes to the release process. Maybe this becomes useful next time then. Index: cvs-kolab.sh =================================================================== RCS file: /kolabrepository/server/cvs-kolab.sh,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- cvs-kolab.sh 30 Nov 2007 05:44:47 -0000 1.18 +++ cvs-kolab.sh 30 Nov 2007 09:43:27 -0000 1.19 @@ -169,23 +169,36 @@ die "There exists no CVS environment at /${KOLAB_DEV_USER}/CVS/server! Did you run ./cvs-kolab.sh -i to setup the CVS based Kolab server?" fi cd "/${KOLAB_DEV_USER}/CVS/server" - cvs -q update -P -d + cvs -Q update -P -d chown -R "${KOLAB_DEV_USER}:" "/${KOLAB_DEV_USER}/CVS" - su - "${KOLAB_DEV_USER}" -c "cd `pwd` && make clean" || die "Not releasing! Looks like the Kolab developers broke CVS. Bug them at https://www.intevation.de/roundup/kolab" - su - "${KOLAB_DEV_USER}" -c "cd `pwd` && make" || die "Not releasing! Looks like the Kolab developers broke CVS. Bug them at https://www.intevation.de/roundup/kolab" mkdir -p "${KOLAB_PACKAGES}/source-release/RELEASE" + su - "${KOLAB_DEV_USER}" -c "cd `pwd` && make clean" > "${KOLAB_PACKAGES}/source-release/make-clean.log" || die "Not releasing! Looks like the Kolab developers broke CVS. Bug them at https://www.intevation.de/roundup/kolab" + su - "${KOLAB_DEV_USER}" -c "cd `pwd` && make" > "${KOLAB_PACKAGES}/source-release/make.log" || die "Not releasing! Looks like the Kolab developers broke CVS. Bug them at https://www.intevation.de/roundup/kolab" cd "${KOLAB_PACKAGES}/source-release/RELEASE" cp "/${KOLAB_DEV_USER}/CVS/server/install-kolab.sh" . cp /"${KOLAB_DEV_USER}"/CVS/server/stage/* . - wget "ftp://ftp.openpkg.org/current/SRC/CORE/openpkg-*.src.sh" || die "No OpenPKG installer found!" - ./install-kolab.sh -E -t "${KOLAB_REL_USER}" -I 23414 -F -H > ../kolab-build.log 2>&1 + wget -q "ftp://ftp.openpkg.org/current/SRC/CORE/openpkg-*.src.sh" || die "No OpenPKG installer found!" + ./install-kolab.sh -E -t "${KOLAB_REL_USER}" -I 23414 -F -H > ../openpkg-build.log 2>&1 || die "Couldn't build OpenPKG!" wget "ftp://ftp.openpkg.org/current/SRC/BASE/openpkg-tools*.src.rpm" || die "No OpenPKG tools found!" - "/${KOLAB_REL_USER}/bin/openpkg" build -k openpkg-tools | sh - "/${KOLAB_REL_USER}/bin/openpkg" register --mode=post --user=${OPENPKG_USER} + "/${KOLAB_REL_USER}/bin/openpkg" build -k openpkg-tools | sh > ../openpkg-tools-build.log 2>&1 || die "Couldn't build OpenPKG tools!" + echo "----------------------------------------------------" + echo "" + echo " Registering your instance:" + echo "" + "/${KOLAB_REL_USER}/bin/openpkg" register --mode=post --user=${OPENPKG_USER} || die "Failed to register the release instance!" + echo "" + echo " Registered your instance." + echo " Now go to http://registry.openpkg.org/register and" + echo " associate your release instance." + echo "" + echo "----------------------------------------------------" + echo "Press [Enter] after registering..." + echo "" + read ANSWER PLATFORM=`/"${KOLAB_REL_USER}"/lib/openpkg/shtool platform --type=binary` rm *$PLATFORM* chown ${KOLAB_REL_USER} . - "/${KOLAB_REL_USER}/bin/openpkg" index -r . -o 00INDEX.rdf -i . + "/${KOLAB_REL_USER}/bin/openpkg" index -r . -o 00INDEX.rdf -i . > ../local-index.log 2>&1 || die "Failed generating the Kolab package index!" cd .. cp RELEASE/install-kolab.sh . cat << __EOF > 00INDEX.rdf @@ -200,10 +213,10 @@ __EOF - ./install-kolab.sh -t "${KOLAB_REL_USER}" -I 23414 -F -H > kolab-build.log2 2>&1 + ./install-kolab.sh -t "${KOLAB_REL_USER}" -I 23414 -F -H > kolab-build.log2 2>&1 || die "Failed to build the Kolab server!" cp /"${KOLAB_REL_USER}"/RPM/PKG/*.src.rpm RELEASE/ cd RELEASE - "/${KOLAB_REL_USER}/bin/openpkg" index -r . -o 00INDEX.rdf -i . + "/${KOLAB_REL_USER}/bin/openpkg" index -r . -o 00INDEX.rdf -i . > ../final-index.log 2>&1 || die "Failed generating the final release index!" md5sum *.sh *.rpm > MD5SUMS cd .. From cvs at kolab.org Fri Nov 30 12:15:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 12:15:00 +0100 (CET) Subject: gunnar: server/kolabd/kolabd/templates ldapdistlist.cf.template.in, 1.3, 1.4 Message-ID: <20071130111500.C71F860C4B9@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv30102/kolabd/kolabd/templates Modified Files: ldapdistlist.cf.template.in Log Message: kolab/issue2206 (Multiple deliveries to distribution lists) Index: ldapdistlist.cf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/ldapdistlist.cf.template.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ldapdistlist.cf.template.in 4 Feb 2006 18:19:58 -0000 1.3 +++ ldapdistlist.cf.template.in 30 Nov 2007 11:14:58 -0000 1.4 @@ -19,9 +19,7 @@ server_host = @@@ldap_uri@@@ search_base = @@@user_dn_list@@@ query_filter = (&(objectClass=kolabGroupOfNames)(!(kolabDeleteFlag=*))(mail=%s)) -special_result_attribute = member exclude_internal = yes -result_attribute = mail result_filter = %s search_timeout = 15 scope = sub @@ -30,3 +28,10 @@ bind_pw = @@@php_pw@@@ version = 3 #debuglevel = 255 + + +# Postfix 2.4.0 distribution list support +# see http://archive.netbsd.se/?ml=postfix-devel&a=2007-03&m=3322510 +special_result_attribute = member +result_attribute = +leaf_result_attribute = mail From cvs at kolab.org Fri Nov 30 12:15:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 12:15:00 +0100 (CET) Subject: gunnar: server release-notes.txt,1.186,1.187 Message-ID: <20071130111500.BEF4360C4B0@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv30102 Modified Files: release-notes.txt Log Message: kolab/issue2206 (Multiple deliveries to distribution lists) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.186 retrieving revision 1.187 diff -u -d -r1.186 -r1.187 --- release-notes.txt 29 Nov 2007 15:32:10 -0000 1.186 +++ release-notes.txt 30 Nov 2007 11:14:58 -0000 1.187 @@ -63,6 +63,7 @@ Support for the extended free/busy concept. kolab/issue2134 ([Horde] Unable to send message with attachments) + kolab/issue2206 (Multiple deliveries to distribution lists) kolab/issue2236 (Apache UID access broken) - horde-framework-kolab-3.2_RC1-2007???? From cvs at kolab.org Fri Nov 30 12:15:00 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 12:15:00 +0100 (CET) Subject: gunnar: server/kolabd/kolabd ChangeLog,1.125,1.126 Message-ID: <20071130111500.C2A9A60C4B5@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv30102/kolabd/kolabd Modified Files: ChangeLog Log Message: kolab/issue2206 (Multiple deliveries to distribution lists) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.125 retrieving revision 1.126 diff -u -d -r1.125 -r1.126 --- ChangeLog 29 Nov 2007 15:32:11 -0000 1.125 +++ ChangeLog 30 Nov 2007 11:14:58 -0000 1.126 @@ -1,3 +1,9 @@ +2007-11-30 Gunnar Wrobel

    + + * templates/ldapdistlist.cf.template.in: + + kolab/issue2206 (Multiple deliveries to distribution lists) + 2007-11-29 Gunnar Wrobel

    * templates/httpd.conf.template.in: From cvs at kolab.org Fri Nov 30 12:41:50 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 12:41:50 +0100 (CET) Subject: gunnar: server/kolabd/kolabd kolab_bootstrap.in,1.29,1.30 Message-ID: <20071130114150.BE44560C4AD@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv30973 Modified Files: kolab_bootstrap.in Log Message: Fix bootstrap issues. Index: kolab_bootstrap.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolab_bootstrap.in,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- kolab_bootstrap.in 28 Nov 2007 12:45:32 -0000 1.29 +++ kolab_bootstrap.in 30 Nov 2007 11:41:48 -0000 1.30 @@ -275,6 +275,7 @@ my $slurpd_addr = $kolab_config{'slurpd_addr'} || die "could not read slurpd_addr from $kolab_config"; my $slurpd_port = $kolab_config{'slurpd_port'} || die "could not read slurpd_port from $kolab_config"; my @kolabhosts; +my $domain; if (!$bind_dn || !$bind_pw || !$ldap_uri || !$base_dn) { print "Please check $kolab_config (seems to be incomplete)\n"; @@ -312,7 +313,7 @@ ##### Master server setup getopt('f'); - (my $dummy, my $domain) = split(/\./, $fqdn, 2); + (my $dummy, $domain) = split(/\./, $fqdn, 2); if (!$domain) { $domain = $fqdn; } @@ -776,7 +777,7 @@ #my $entry = $mesg->entry(0); #$php_pw = $entry->get_value( 'userPassword' ); - $calendar_dn = "cn=$calendar_id@$domain,cn=internal,$base_dn"; + my $calendar_dn = "cn=$calendar_id@$domain,cn=internal,$base_dn"; $mesg = $ldap->search(base=> $php_dn, scope=> 'exact', filter=> "(objectclass=*)"); if ($mesg && $mesg->count != 1) { print "Calendar object not found, please check your input\n"; From cvs at kolab.org Fri Nov 30 14:53:32 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 14:53:32 +0100 (CET) Subject: gunnar: server/kolabd/kolabd kolab_bootstrap.in,1.30,1.31 Message-ID: <20071130135332.90429600151@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv2497 Modified Files: kolab_bootstrap.in Log Message: Fix another bootstrap issue. Index: kolab_bootstrap.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolab_bootstrap.in,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- kolab_bootstrap.in 30 Nov 2007 11:41:48 -0000 1.30 +++ kolab_bootstrap.in 30 Nov 2007 13:53:30 -0000 1.31 @@ -607,7 +607,7 @@ undef $ldapobject; # create calendar user - $ldapobject = newOrExistingLDAPEntry( $ldap, "cn=$calendar_id@$domain,cn=internal,$base_dn" ); + $ldapobject = newOrExistingLDAPEntry( $ldap, "cn=$calendar_id@" . $domain . ",cn=internal,$base_dn" ); $ldapobject->replace('cn' => $calendar_id . '@' . $domain, 'sn' => 'n/a n/a', 'uid' => $calendar_id . '@' . $domain, 'userPassword' => hashPassword($calendar_pw), 'objectclass' => ['top','inetorgperson','kolabinetorgperson']); From cvs at kolab.org Fri Nov 30 15:02:25 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 15:02:25 +0100 (CET) Subject: gunnar: server/kolabd/kolabd kolab_bootstrap.in,1.31,1.32 Message-ID: <20071130140225.ED91560C4A7@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv2677 Modified Files: kolab_bootstrap.in Log Message: Fix another bootstrap issue. Index: kolab_bootstrap.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolab_bootstrap.in,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- kolab_bootstrap.in 30 Nov 2007 13:53:30 -0000 1.31 +++ kolab_bootstrap.in 30 Nov 2007 14:02:23 -0000 1.32 @@ -611,7 +611,7 @@ $ldapobject->replace('cn' => $calendar_id . '@' . $domain, 'sn' => 'n/a n/a', 'uid' => $calendar_id . '@' . $domain, 'userPassword' => hashPassword($calendar_pw), 'objectclass' => ['top','inetorgperson','kolabinetorgperson']); - $ldapobject->dn("cn=$calendar_id@$domain,cn=internal,$base_dn"); + $ldapobject->dn("cn=$calendar_id@" . $domain . ",cn=internal,$base_dn"); $mesg = $ldapobject->update($ldap); $mesg && $mesg->code && warn "failed to write entry: ", $mesg->error; undef $ldapobject; @@ -777,7 +777,7 @@ #my $entry = $mesg->entry(0); #$php_pw = $entry->get_value( 'userPassword' ); - my $calendar_dn = "cn=$calendar_id@$domain,cn=internal,$base_dn"; + my $calendar_dn = "cn=$calendar_id@" . $domain . ",cn=internal,$base_dn"; $mesg = $ldap->search(base=> $php_dn, scope=> 'exact', filter=> "(objectclass=*)"); if ($mesg && $mesg->count != 1) { print "Calendar object not found, please check your input\n"; From cvs at kolab.org Fri Nov 30 15:27:46 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 15:27:46 +0100 (CET) Subject: gunnar: server release-notes.txt,1.187,1.188 Message-ID: <20071130142746.1242560C4A7@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv3322 Modified Files: release-notes.txt Log Message: kolab/issue2225 (notifyd logging going into fsl.log) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.187 retrieving revision 1.188 diff -u -d -r1.187 -r1.188 --- release-notes.txt 30 Nov 2007 11:14:58 -0000 1.187 +++ release-notes.txt 30 Nov 2007 14:27:43 -0000 1.188 @@ -64,6 +64,7 @@ kolab/issue2134 ([Horde] Unable to send message with attachments) kolab/issue2206 (Multiple deliveries to distribution lists) + kolab/issue2225 (notifyd logging going into fsl.log) kolab/issue2236 (Apache UID access broken) - horde-framework-kolab-3.2_RC1-2007???? From cvs at kolab.org Fri Nov 30 15:27:46 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 15:27:46 +0100 (CET) Subject: gunnar: server/kolabd/kolabd/templates cyrus.conf.template.in, 1.5, 1.6 Message-ID: <20071130142746.19C0860C4B5@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv3322/kolabd/kolabd/templates Modified Files: cyrus.conf.template.in Log Message: kolab/issue2225 (notifyd logging going into fsl.log) Index: cyrus.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/cyrus.conf.template.in,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- cyrus.conf.template.in 8 Oct 2007 15:39:27 -0000 1.5 +++ cyrus.conf.template.in 30 Nov 2007 14:27:44 -0000 1.6 @@ -53,7 +53,7 @@ lmtp cmd="lmtpd -a" listen="@@@local_addr@@@:2003" # this is only necessary if using notifications - notify cmd="notifyd" listen="@imap_notify_socket@" proto="udp" prefork=1 + notifyd cmd="notifyd" listen="@imap_notify_socket@" proto="udp" prefork=1 } EVENTS { From cvs at kolab.org Fri Nov 30 15:27:46 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 15:27:46 +0100 (CET) Subject: gunnar: server/kolabd/kolabd ChangeLog,1.126,1.127 Message-ID: <20071130142746.1619460C4AD@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv3322/kolabd/kolabd Modified Files: ChangeLog Log Message: kolab/issue2225 (notifyd logging going into fsl.log) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.126 retrieving revision 1.127 diff -u -d -r1.126 -r1.127 --- ChangeLog 30 Nov 2007 11:14:58 -0000 1.126 +++ ChangeLog 30 Nov 2007 14:27:44 -0000 1.127 @@ -1,5 +1,9 @@ 2007-11-30 Gunnar Wrobel

    + * templates/cyrus.conf.template.in: + + kolab/issue2225 (notifyd logging going into fsl.log) + * templates/ldapdistlist.cf.template.in: kolab/issue2206 (Multiple deliveries to distribution lists) From cvs at kolab.org Fri Nov 30 16:10:26 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 16:10:26 +0100 (CET) Subject: thomas: server/kolab-freebusy Makefile,1.8,1.9 Message-ID: <20071130151026.E07F8600174@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-freebusy In directory doto:/tmp/cvs-serv4605/kolab-freebusy Modified Files: Makefile Log Message: Bumped some version numbers for 2.2-beta3 Index: Makefile =================================================================== RCS file: /kolabrepository/server/kolab-freebusy/Makefile,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- Makefile 23 Oct 2007 09:11:28 -0000 1.8 +++ Makefile 30 Nov 2007 15:10:24 -0000 1.9 @@ -1,8 +1,8 @@ PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([a-z\_-]*\).*/\1/") RELEASE = $(shell date '+%Y%m%d') -VERSION = 2.2.beta2 -CVS = 1 +VERSION = 2.2.beta3 +CVS = 0 ifeq "x$(CVS)" "x0" SOURCE_TAG = $(VERSION) From cvs at kolab.org Fri Nov 30 16:10:26 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 16:10:26 +0100 (CET) Subject: thomas: server/kolab-filter Makefile,1.7,1.8 Message-ID: <20071130151026.E094A600D7D@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-filter In directory doto:/tmp/cvs-serv4605/kolab-filter Modified Files: Makefile Log Message: Bumped some version numbers for 2.2-beta3 Index: Makefile =================================================================== RCS file: /kolabrepository/server/kolab-filter/Makefile,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Makefile 23 Oct 2007 09:11:27 -0000 1.7 +++ Makefile 30 Nov 2007 15:10:24 -0000 1.8 @@ -1,8 +1,8 @@ PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([a-z\_-]*\).*/\1/") RELEASE = $(shell date '+%Y%m%d') -VERSION = 2.2.beta2 -CVS = 1 +VERSION = 2.2.beta3 +CVS = 0 ifeq "x$(CVS)" "x0" SOURCE_TAG = $(VERSION) From cvs at kolab.org Fri Nov 30 16:10:26 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 16:10:26 +0100 (CET) Subject: thomas: server/perl-kolab/lib Kolab.pm,1.10,1.11 Message-ID: <20071130151026.EA87160C4A7@lists.intevation.de> Author: thomas Update of /kolabrepository/server/perl-kolab/lib In directory doto:/tmp/cvs-serv4605/perl-kolab/lib Modified Files: Kolab.pm Log Message: Bumped some version numbers for 2.2-beta3 Index: Kolab.pm =================================================================== RCS file: /kolabrepository/server/perl-kolab/lib/Kolab.pm,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- Kolab.pm 23 Oct 2007 09:17:44 -0000 1.10 +++ Kolab.pm 30 Nov 2007 15:10:24 -0000 1.11 @@ -59,10 +59,10 @@ ); # The Kolab version number for the perl-kolab package -our $KOLAB_BASE_VERSION = "2.2.beta2"; +our $KOLAB_BASE_VERSION = "2.2.beta3"; # Are current releases cvs based or is this a real release? -my $KOLAB_CVS = 1; +my $KOLAB_CVS = 0; our $KOLAB_RELEASE = sprintf "%0004d%02d%02d", ((gmtime)[5] + 1900), ((gmtime)[4] + 1), (gmtime)[3]; From cvs at kolab.org Fri Nov 30 16:10:27 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 16:10:27 +0100 (CET) Subject: thomas: server/php-kolab Makefile,1.13,1.14 Message-ID: <20071130151027.21F0B600166@lists.intevation.de> Author: thomas Update of /kolabrepository/server/php-kolab In directory doto:/tmp/cvs-serv4605/php-kolab Modified Files: Makefile Log Message: Bumped some version numbers for 2.2-beta3 Index: Makefile =================================================================== RCS file: /kolabrepository/server/php-kolab/Makefile,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- Makefile 23 Oct 2007 09:11:28 -0000 1.13 +++ Makefile 30 Nov 2007 15:10:24 -0000 1.14 @@ -4,8 +4,8 @@ VERSION = 2.2 PRERELEASE = beta -PRERELEASE_VERSION = 2 -CVS = 1 +PRERELEASE_VERSION = 3 +CVS = 0 ifeq "x$(PRERELEASE)" "x" ifeq "x$(CVS)" "x0" From cvs at kolab.org Fri Nov 30 16:10:26 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 16:10:26 +0100 (CET) Subject: thomas: server/kolabconf Makefile.PL,1.13,1.14 Message-ID: <20071130151026.E97B160C4A2@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabconf In directory doto:/tmp/cvs-serv4605/kolabconf Modified Files: Makefile.PL Log Message: Bumped some version numbers for 2.2-beta3 Index: Makefile.PL =================================================================== RCS file: /kolabrepository/server/kolabconf/Makefile.PL,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- Makefile.PL 23 Oct 2007 09:11:28 -0000 1.13 +++ Makefile.PL 30 Nov 2007 15:10:24 -0000 1.14 @@ -9,10 +9,10 @@ my $KOLAB_VERSION; # The Kolab version number for the perl-kolab package -my $KOLAB_BASE_VERSION = "2.2.beta2"; +my $KOLAB_BASE_VERSION = "2.2.beta3"; # Are current releases cvs based or is this a real release? -my $KOLAB_CVS = 1; +my $KOLAB_CVS = 0; my $KOLAB_RELEASE = sprintf "%0004d%02d%02d", ((gmtime)[5] + 1900), ((gmtime)[4] + 1), (gmtime)[3]; From cvs at kolab.org Fri Nov 30 16:10:26 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 16:10:26 +0100 (CET) Subject: thomas: server install-kolab.sh,1.16,1.17 Message-ID: <20071130151026.DEA16600166@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv4605 Modified Files: install-kolab.sh Log Message: Bumped some version numbers for 2.2-beta3 Index: install-kolab.sh =================================================================== RCS file: /kolabrepository/server/install-kolab.sh,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- install-kolab.sh 30 Nov 2007 08:50:16 -0000 1.16 +++ install-kolab.sh 30 Nov 2007 15:10:24 -0000 1.17 @@ -11,7 +11,7 @@ # # This program is free software under the GNU GPL (>=v2) -KOLAB_VERSION="2.2-beta2" +KOLAB_VERSION="2.2-beta3" KID="19414" TAG="kolab" @@ -55,7 +55,7 @@ echo " -p PREFIX (alternate installation prefix; default is /\$TAG)" echo " -u USER (alternate user name; default is \$TAG)" echo - echo " -V VERSION (alternate version; default is 2.2-beta1)" + echo " -V VERSION (alternate version; default is $KOLAB_VERSION)" echo echo " -D (generate a binary distribution based on ./ and /\$PREFIX)" echo " -S (generate a source distribution based on ./ and /\$PREFIX)" From cvs at kolab.org Fri Nov 30 16:11:02 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 16:11:02 +0100 (CET) Subject: thomas: server README.1st,1.67,1.68 Message-ID: <20071130151102.C16D2600166@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv4718 Modified Files: README.1st Log Message: Added "Nothing special" upgrade instructions from beta2 to beta3. Index: README.1st =================================================================== RCS file: /kolabrepository/server/README.1st,v retrieving revision 1.67 retrieving revision 1.68 diff -u -d -r1.67 -r1.68 --- README.1st 16 Nov 2007 18:01:52 -0000 1.67 +++ README.1st 30 Nov 2007 15:11:00 -0000 1.68 @@ -120,6 +120,12 @@ # /kolab/bin/openpkg rc all start +Upgrade from 2.2-beta2 to 2.2-beta3 +----------------------------------- + +Nothing special has to be done for this upgrade. + + Upgrade from 2.2-beta1 to 2.2-beta2 ----------------------------------- From cvs at kolab.org Fri Nov 30 16:24:50 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 16:24:50 +0100 (CET) Subject: gunnar: server/horde/horde-framework horde-framework-kolab.spec, 1.32, 1.33 Message-ID: <20071130152450.CC9E4600D70@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde-framework In directory doto:/tmp/cvs-serv5020 Modified Files: horde-framework-kolab.spec Log Message: Change package suffix to lower case so that it is in line with the other packages. Index: horde-framework-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/horde-framework-kolab.spec,v retrieving revision 1.32 retrieving revision 1.33 diff -u -d -r1.32 -r1.33 --- horde-framework-kolab.spec 29 Nov 2007 15:32:10 -0000 1.32 +++ horde-framework-kolab.spec 30 Nov 2007 15:24:48 -0000 1.33 @@ -4,7 +4,7 @@ %define V_year 2007 %define V_month 11 %define V_day 29 -%define V_version 3.2_RC1 +%define V_version 3.2_rc1 %define V_date %{V_year}-%{V_month}-%{V_day} %define V_release %{V_year}%{V_month}%{V_day} From cvs at kolab.org Fri Nov 30 16:55:31 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 16:55:31 +0100 (CET) Subject: thomas: server 00INDEX.rdf,1.4,1.5 Message-ID: <20071130155531.37C3F600151@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv5524 Modified Files: 00INDEX.rdf Log Message: Updated 00INDEX.rdf for 2.2beta3 Index: 00INDEX.rdf =================================================================== RCS file: /kolabrepository/server/00INDEX.rdf,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- 00INDEX.rdf 18 Oct 2007 16:45:46 -0000 1.4 +++ 00INDEX.rdf 30 Nov 2007 15:55:28 -0000 1.5 @@ -2,151 +2,6 @@ - - PEAR-Auth_SASL - 1.0.2 - 1 - OpenPKG - Development/Libraries - PHP License - Gunnar Wrobel <wrobel at pardus.de> (p at rdus) [...8835 lines suppressed...] - 2.2.beta2 - 20071018 + 2.2.beta3 + 20071130 OpenPKG Community PLUS Language @@ -7107,9 +7360,9 @@ - Kolab_Filter-2.2beta220071018.tgz - Kolab_Webadmin-2.2beta220071018.tgz - Kolab_Freebusy-2.2beta220071018.tgz + Kolab_Filter-2.2beta320071130.tgz + Kolab_Webadmin-2.2beta320071130.tgz + Kolab_Freebusy-2.2beta320071130.tgz From cvs at kolab.org Fri Nov 30 17:07:14 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 17:07:14 +0100 (CET) Subject: thomas: server 00INDEX.rdf,1.5,1.6 Message-ID: <20071130160714.8451D600151@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv5985 Modified Files: 00INDEX.rdf Log Message: Regenerated 00INDEX.rdf again (the openpkg binary snuck in) Index: 00INDEX.rdf =================================================================== RCS file: /kolabrepository/server/00INDEX.rdf,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- 00INDEX.rdf 30 Nov 2007 15:55:28 -0000 1.5 +++ 00INDEX.rdf 30 Nov 2007 16:07:12 -0000 1.6 @@ -2,6 +2,454 @@ + + PEAR-Auth_SASL + 1.0.2 + 1 + OpenPKG + Development/Libraries + PHP License + Gunnar Wrobel <wrobel at pardus.de> (p at rdus) [...3423 lines suppressed...] - Languages - LGPL - Steffen Hansen <steffen at klaralvdalens-datakonsult.se> (Klaraelvdalens Datakonsult AB) -

    Template engine for PHP - http://smarty.php.net/ - - - http://smarty.php.net/distributions/Smarty-2.6.18.tar.gz - - - -Smarty is a template engine for PHP. Smarty provides your basic -variable substitution and dynamic block functionality, and also takes -a step further to be a "smart" template engine, adding features such -as configuration files, template functions, variable modifiers, and -making all of this functionality as easy as possible to use for both -programmers and template designers.
    From cvs at kolab.org Fri Nov 30 17:10:19 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 17:10:19 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Freebusy ChangeLog,1.5,1.6 Message-ID: <20071130161019.E4450600151@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Freebusy In directory doto:/tmp/cvs-serv6099/Kolab_Freebusy Modified Files: ChangeLog Log Message: Fix the loading of free/busy list so that we do not fetch the list of the caller but of the requested owner. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Freebusy/ChangeLog,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- ChangeLog 23 Nov 2007 13:39:32 -0000 1.5 +++ ChangeLog 30 Nov 2007 16:10:17 -0000 1.6 @@ -1,3 +1,10 @@ +2007-11-30 Gunnar Wrobel

    + + * Freebusy/Cache.php: + + Fix the loading of free/busy list so that we do not fetch the list + of the caller but of the requested owner. + 2007-11-23 Gunnar Wrobel

    * Freebusy/Cache.php: From cvs at kolab.org Fri Nov 30 17:10:19 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 17:10:19 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Freebusy/Freebusy Cache.php,1.2,1.3 Message-ID: <20071130161019.EBDF6600D70@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Freebusy/Freebusy In directory doto:/tmp/cvs-serv6099/Kolab_Freebusy/Freebusy Modified Files: Cache.php Log Message: Fix the loading of free/busy list so that we do not fetch the list of the caller but of the requested owner. Index: Cache.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Freebusy/Freebusy/Cache.php,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Cache.php 23 Nov 2007 13:39:32 -0000 1.2 +++ Cache.php 30 Nov 2007 16:10:17 -0000 1.3 @@ -165,13 +165,9 @@ /* Which files will we access? */ $aclcache = &FreeBusyCacheDB_acl::singleton('acl', $this->_cache_dir); - $files = array(); - foreach ($access->groups as $id) { - $add = $aclcache->get($id); - if (is_a($add, 'PEAR_Error')) { - return $add; - } - $files = array_unique(array_merge($files, $add)); + $files = $aclcache->get($access->owner); + if (is_a($files, 'PEAR_Error')) { + return $files; } $filesnames = array(); From cvs at kolab.org Fri Nov 30 17:13:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 17:13:44 +0100 (CET) Subject: thomas: server/horde/horde-framework Makefile,1.9,1.10 Message-ID: <20071130161344.0A2B2600151@lists.intevation.de> Author: thomas Update of /kolabrepository/server/horde/horde-framework In directory doto:/tmp/cvs-serv6179/horde-framework Modified Files: Makefile Log Message: Fixed horde-framework version number sed command. Adjusted horde-kolab-client to use the absolutely identical command. Index: Makefile =================================================================== RCS file: /kolabrepository/server/horde/horde-framework/Makefile,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- Makefile 1 Oct 2007 15:47:19 -0000 1.9 +++ Makefile 30 Nov 2007 16:13:41 -0000 1.10 @@ -19,7 +19,7 @@ DATE = ${YEAR}-${MONTH}-${DAY} PACKAGE = horde-$(HORDE_NAME)-kolab -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9._A-Z]*\).*/\1/") +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9._a-z]*\).*/\1/") RELEASE = ${YEAR}${MONTH}${DAY} PATCHES = $(shell find . -name "*.patch") From cvs at kolab.org Fri Nov 30 17:13:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 17:13:44 +0100 (CET) Subject: thomas: server/horde/horde-kolab-client Makefile,1.4,1.5 Message-ID: <20071130161344.0DC23600D70@lists.intevation.de> Author: thomas Update of /kolabrepository/server/horde/horde-kolab-client In directory doto:/tmp/cvs-serv6179/horde-kolab-client Modified Files: Makefile Log Message: Fixed horde-framework version number sed command. Adjusted horde-kolab-client to use the absolutely identical command. Index: Makefile =================================================================== RCS file: /kolabrepository/server/horde/horde-kolab-client/Makefile,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Makefile 3 Aug 2007 11:40:04 -0000 1.4 +++ Makefile 30 Nov 2007 16:13:42 -0000 1.5 @@ -18,7 +18,7 @@ DATE = ${YEAR}-${MONTH}-${DAY} -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9._a-z]*\).*/\1/") RELEASE = ${YEAR}${MONTH}${DAY} .PHONY: all From cvs at kolab.org Fri Nov 30 17:21:14 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 17:21:14 +0100 (CET) Subject: thomas: server/horde/php-channel-horde .cvsignore,NONE,1.1 Message-ID: <20071130162114.44FCC600151@lists.intevation.de> Author: thomas Update of /kolabrepository/server/horde/php-channel-horde In directory doto:/tmp/cvs-serv6417 Added Files: .cvsignore Log Message: ignore .src.rpm in php-channel-horde --- NEW FILE: .cvsignore --- *.src.rpm From cvs at kolab.org Fri Nov 30 17:25:22 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 17:25:22 +0100 (CET) Subject: thomas: server 00INDEX.rdf,1.6,1.7 Message-ID: <20071130162522.E6E97600151@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv6567 Modified Files: 00INDEX.rdf Log Message: horde-framework-3.2_RC1 -> horde-framework-3.2_rc1 Index: 00INDEX.rdf =================================================================== RCS file: /kolabrepository/server/00INDEX.rdf,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- 00INDEX.rdf 30 Nov 2007 16:07:12 -0000 1.6 +++ 00INDEX.rdf 30 Nov 2007 16:25:20 -0000 1.7 @@ -2386,9 +2386,9 @@ 1951 and 1952. - + horde-framework-kolab - 3.2_RC1 + 3.2_rc1 20071129 OpenPKG Languages @@ -2407,7 +2407,7 @@ - http://build.pardus.de/downloads/horde-framework-3.2_RC1.tar.bz2 + http://build.pardus.de/downloads/horde-framework-3.2_rc1.tar.bz2 From cvs at kolab.org Fri Nov 30 19:02:08 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 30 Nov 2007 19:02:08 +0100 (CET) Subject: thomas: server release-notes.txt,1.188,1.189 Message-ID: <20071130180208.CCB76600151@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv8402 Modified Files: release-notes.txt Log Message: Updated release notes to current status of 2.2-beta3 Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.188 retrieving revision 1.189 diff -u -d -r1.188 -r1.189 --- release-notes.txt 30 Nov 2007 14:27:43 -0000 1.188 +++ release-notes.txt 30 Nov 2007 18:02:05 -0000 1.189 @@ -1,6 +1,6 @@ Kolab Server 2.2 Release Notes ============================== -(Version 2007????, Kolab Server 2.2-???) +(Version 20071130, Kolab Server 2.2-beta3) For upgrading and installation instructions, please refer to the 1st.README file in the package directory. @@ -44,15 +44,14 @@ The specifics are described below. -Changes between 2.2-beta-2 and 2.2-???: - - - perl-kolab-2.2.???-2007???? - - Show component and log level when sending debug log to stdout. +Changes between 2.2-beta-2 and 2.2-beta-3: - kolab/issue1313 (resmngr cannot create calendar folder in multidomain setup) + All packages except for openldap and db were upgraded to OpenPKG-CURRENT + (as of 20071130). The package openldap-2.3.39-20071130 was created to + fix security issues (CVE-2007-5707 and CVE-2007-5708) without upgrading + to OpenLDAP 2.4. - - kolabd-2.1.99-2007???? + - kolabd-2.1.99-20071130 freebusy_logfile is now freebusy_logdir. @@ -67,51 +66,24 @@ kolab/issue2225 (notifyd logging going into fsl.log) kolab/issue2236 (Apache UID access broken) - - horde-framework-kolab-3.2_RC1-2007???? - - New functionality required for kolab-freebusy. - - Support for the extended free/busy concept. - - kolab/issue2128 (Building horde-framework-kolab without http access fails) - kolab/issue2134 ([Horde] Unable to send message with attachments) - kolab/issue2135 ([horde/turba] Turba should support some more contact attributes) - kolab/issue2138 (Horde creates events in main inbox) - kolab/issue2144 (Calendar items of shared calendar not appearing) - - - horde-kolab-3.2_RC1-2007???? - - kolab/issue2101 ([horde] can't delete categories) - - - horde-kronolith-2.2_RC1-2007???? - - kolab/issue2138 (Horde creates events in main inbox) - - - horde-turba-2.2_RC1-2007???? - - kolab/issue2040 (Horde: resouces are not displayed in address book) - kolab/issue2135 ([horde/turba] Turba should support some more contact attributes) - - - fbview-kronolith-2.2_RC1-2007???? - - Support for the extended free/busy concept. - - - kolab-filter-2.2.beta2-2007???? + - kolab-filter-2.2.beta3-20071130 Adapted to the restructured php-kolab/Kolab_Filter package. - kolab/issue2174 (Automatic Invitation Policy not working with invites as attachment) + kolab/issue2174 (Automatic Invitation Policy not working with invites + as attachment) kolab/issue2177 (Better logging in kolabfilter and kolabmailboxfilter) - - kolab-freebusy-2.2.???-2007???? + - kolab-freebusy-2.2.beta3-20071130 A fully restructured free/busy with the most recent free/busy concept implemented. - kolab/issue799 (pfb php script cannot handle umlaut and dots in foldernames correctly) + kolab/issue799 (pfb php script cannot handle umlaut and dots in + foldernames correctly) kolab/issue898 (pfbs from several servers, are not combined into .ifb) - - kolab-webadmin-2.1.99-2007???? + - kolab-webadmin-2.1.99-20071130 Improved some message strings. @@ -122,7 +94,14 @@ kolab/issue1912 (some field descriptions missing in web admin interface) - - php-kolab-2.2.???-2007???? + - perl-kolab-2.2.beta3-20071130 + + Show component and log level when sending debug log to stdout. + + kolab/issue1313 (resmngr cannot create calendar folder in multidomain + setup) + + - php-kolab-2.2.beta3-20071130 A fully restructured free/busy with the most recent free/busy concept implemented. @@ -130,31 +109,176 @@ Restructured Kolab_Filter package with the focus on error handling and unit testing. - kolab/issue1313 (resmngr cannot create calendar folder in multidomain setup) + kolab/issue1313 (resmngr cannot create calendar folder in multidomain + setup) + + - horde-framework-kolab-3.2_rc1-20071129 + + New functionality required for kolab-freebusy. + + Support for the extended free/busy concept. + + kolab/issue2128 (Building horde-framework-kolab without http access + fails) + kolab/issue2134 ([Horde] Unable to send message with attachments) + kolab/issue2135 ([horde/turba] Turba should support some more contact + attributes) + kolab/issue2138 (Horde creates events in main inbox) + kolab/issue2144 (Calendar items of shared calendar not appearing) + + - horde-kolab-3.2_rc1-20071128 + + kolab/issue2101 ([horde] can't delete categories) + + - horde-kronolith-kolab-2.2_rc1-20071129 + + kolab/issue2138 (Horde creates events in main inbox) + + - horde-turba-kolab-2.2_rc1-20071128 + + kolab/issue2040 (Horde: resouces are not displayed in address book) + kolab/issue2135 ([horde/turba] Turba should support some more contact + attributes) + + - fbview-kronolith-2.2_rc1-20071129 + + Support for the extended free/busy concept. + Packages in the OpenPKG based Kolab server release: - + - Kolab packages: - + + Removed: + + kolab-horde-framework (now horde-framework-kolab) + + Added: + + php-channel-horde-1.0-1 + Updated: - fbview-horde-3.2_rc1-20071013 - fbview-kronolith-2.2_rc1-20071001 - horde-framework-kolab-3.2_RC1-20071004 - horde-imp-kolab-4.2_rc1-20071004 - horde-ingo-kolab-1.2_rc1-20071004 - horde-kolab-3.2_rc1-20071013 - horde-kolab-client-0.99-20071002 + fbview-horde-3.2_rc1-20071128 + fbview-kronolith-2.2_rc1-20071129 + horde-framework-kolab-3.2_rc1-20071129 + horde-imp-kolab-4.2_rc1-20071128 + horde-ingo-kolab-1.2_rc1-20071128 + horde-kolab-3.2_rc1-20071128 + horde-kronolith-kolab-2.2_rc1-20071129 + horde-mnemo-kolab-2.2_rc1-20071128 + horde-nag-kolab-2.2_rc1-20071128 + horde-turba-kolab-2.2_rc1-20071128 + kolab-filter-2.2.beta3-20071130 + kolab-freebusy-2.2.beta3-20071130 + kolab-webadmin-2.1.99-20071130 + kolabconf-2.2.beta3-20071130 + kolabd-2.1.99-20071130 + openldap-2.3.39-20071130 + perl-kolab-2.2.beta3-20071130 + php-kolab-2.2.beta3-20071130 + + Unchanged: + + PEAR-Auth_SASL-1.0.2-1 + PEAR-Date-1.4.7-1 + PEAR-HTTP_Request-1.4.1-1 + PEAR-Log-1.9.9-1 + PEAR-Mail-1.1.14-1 + PEAR-Mail_Mime-1.3.1-1 + PEAR-Net_IMAP-1.1.0beta1-1 + PEAR-Net_LMTP-1.0.1-1 + PEAR-Net_SMTP-1.2.10-1 + PEAR-Net_Sieve-1.1.5-1 + PEAR-Net_Socket-1.0.6-1 + PEAR-Net_URL-1.0.15-1 horde-kolab-client-0.99-20071002 - horde-kronolith-kolab-2.2_rc1-20071004 - horde-mnemo-kolab-2.2_rc1-20071001 - horde-nag-kolab-2.2_rc1-20071004 horde-passwd-kolab-3.0.1-20071001 - horde-turba-kolab-2.2_rc1-20071002 + php-smarty-2.6.18-20070607 - Removed: - - kolab-horde-framework (now horde-framework) + - OpenPKG packages: + + Updated: + + apache-2.2.6-20071121 + apache-php-5.2.5-20071112 + apr-1.2.12-20071126 + binutils-2.18-20071111 + curl-7.17.1-20071030 + flex-2.5.33-20071104 + fsl-1.7.0-20071027 + gcc-4.2.2-20071031 + gettext-0.17-20071107 + gmp-4.2.2-20071107 + imap-2006j2-20071028 + imapd-2.3.10-20071130 + libiconv-1.12-20071112 + ncurses-5.6.20071124-20071126 + openpkg-20071030-20071030 + openssl-0.9.8g-20071104 + pcre-7.4-20071101 + perl-5.8.8-20071108 + perl-comp-5.8.8-20071120 + perl-crypto-5.8.8-20071110 + perl-db-5.8.8-20071029 + perl-ds-5.8.8-20071114 + perl-mail-5.8.8-20071128 + perl-module-5.8.8-20071118 + perl-net-5.8.8-20071109 + perl-parse-5.8.8-20071129 + perl-ssl-5.8.8-20071026 + perl-stats-5.8.8-20071028 + perl-sys-5.8.8-20071124 + perl-time-5.8.8-20071128 + perl-util-5.8.8-20071122 + perl-www-5.8.8-20071126 + perl-xml-5.8.8-20071121 + php-5.2.5-20071112 + png-1.2.23-20071109 + postfix-2.4.6-20071027 + procmail-3.22-20071027 + sasl-2.1.22-20071027 + spamassassin-3.2.3-20071027 + + Unchanged: + + amavisd-2.5.2-20070907 + autoconf-2.61-20070711 + automake-1.10-20061111 + bc-1.06-20061013 + bison-2.3-20070312 + bzip2-1.0.4-20070507 + clamav-0.91.2-20070907 + config-20060923-20061013 + db-4.5.20.2-20070628 + diffutils-2.8.7-20071005 + expat-2.0.1-20070629 + file-4.21-20070829 + freetype-2.3.5-20070720 + gd-2.0.35-20071011 + grep-2.5.3-20070829 + groff-1.19.2-20070113 + gzip-1.3.12-20070623 + jpeg-6b-20070507 + libmcrypt-2.5.8-20070720 + libxml-2.6.30-20070824 + libxslt-1.1.22-20070824 + lzo-2.02-20061013 + m4-1.4.9-20070818 + make-3.81-20061013 + mhash-0.9.9-20070807 + mm-1.4.2-20061013 + openpkg-tools-1.4.5-20070624 + perl-conv-5.8.8-20070526 + perl-dns-5.8.8-20070920 + perl-ldap-5.8.8-20070916 + perl-openpkg-5.8.8-20061013 + perl-term-5.8.8-20070924 + pkgconfig-0.22-20070720 + readline-5.2.7-20070927 + sed-4.1.5-20061013 + texinfo-4.11-20070911 + zlib-1.2.3-20070507 Changes between 2.2-beta-1 and 2.2-beta-2: From cvs at kolab.org Sat Dec 1 07:57:45 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 1 Dec 2007 07:57:45 +0100 (CET) Subject: gunnar: server/horde/horde conf.php, 1.10, 1.11 horde-kolab.spec, 1.23, 1.24 Message-ID: <20071201065745.65727602CA2@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde In directory doto:/tmp/cvs-serv30484/horde Modified Files: conf.php horde-kolab.spec Log Message: Let's just disable the share cache for now. This seems to be broken after the upstream fixes last week and I need more time to fix the code. Index: conf.php =================================================================== RCS file: /kolabrepository/server/horde/horde/conf.php,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- conf.php 29 Nov 2007 08:25:52 -0000 1.10 +++ conf.php 1 Dec 2007 06:57:42 -0000 1.11 @@ -41,7 +41,7 @@ $conf['group']['driver'] = 'datatree'; $conf['group']['cache'] = false; $conf['share']['no_sharing'] = false; -$conf['share']['cache'] = true; +$conf['share']['cache'] = false; $conf['share']['driver'] = 'kolab'; $conf['cache']['default_lifetime'] = 1800; $conf['cache']['params']['dir'] = Horde::getTempDir(); Index: horde-kolab.spec =================================================================== RCS file: /kolabrepository/server/horde/horde/horde-kolab.spec,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- horde-kolab.spec 29 Nov 2007 15:32:10 -0000 1.23 +++ horde-kolab.spec 1 Dec 2007 06:57:42 -0000 1.24 @@ -2,8 +2,8 @@ %define V_horde_name horde %define V_package %{V_horde_name}-kolab %define V_year 2007 -%define V_month 11 -%define V_day 28 +%define V_month 12 +%define V_day 01 %define V_version 3.2_rc1 %define V_uver 3.2-rc1 %define V_date %{V_year}-%{V_month}-%{V_day} From cvs at kolab.org Sat Dec 1 07:57:45 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 1 Dec 2007 07:57:45 +0100 (CET) Subject: gunnar: server/horde/fbview-horde conf.php, 1.8, 1.9 fbview-horde.spec, 1.16, 1.17 Message-ID: <20071201065745.67B52602CA3@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/fbview-horde In directory doto:/tmp/cvs-serv30484/fbview-horde Modified Files: conf.php fbview-horde.spec Log Message: Let's just disable the share cache for now. This seems to be broken after the upstream fixes last week and I need more time to fix the code. Index: conf.php =================================================================== RCS file: /kolabrepository/server/horde/fbview-horde/conf.php,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- conf.php 29 Nov 2007 08:25:51 -0000 1.8 +++ conf.php 1 Dec 2007 06:57:42 -0000 1.9 @@ -41,7 +41,7 @@ $conf['group']['driver'] = 'datatree'; $conf['group']['cache'] = false; $conf['share']['no_sharing'] = false; -$conf['share']['cache'] = true; +$conf['share']['cache'] = false; $conf['share']['driver'] = 'kolab'; $conf['cache']['default_lifetime'] = 1800; $conf['cache']['params']['dir'] = Horde::getTempDir(); Index: fbview-horde.spec =================================================================== RCS file: /kolabrepository/server/horde/fbview-horde/fbview-horde.spec,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- fbview-horde.spec 29 Nov 2007 15:32:10 -0000 1.16 +++ fbview-horde.spec 1 Dec 2007 06:57:42 -0000 1.17 @@ -2,8 +2,8 @@ %define V_horde_name horde %define V_package fbview-%{V_horde_name} %define V_year 2007 -%define V_month 11 -%define V_day 28 +%define V_month 12 +%define V_day 01 %define V_version 3.2_rc1 %define V_uver 3.2-rc1 %define V_date %{V_year}-%{V_month}-%{V_day} From cvs at kolab.org Sat Dec 1 08:00:14 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 1 Dec 2007 08:00:14 +0100 (CET) Subject: gunnar: server/horde external-horde.sh,1.6,1.7 Message-ID: <20071201070014.E9F66602CA2@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde In directory doto:/tmp/cvs-serv30615 Modified Files: external-horde.sh Log Message: Include the kronolith patches for the external horde installation. Index: external-horde.sh =================================================================== RCS file: /kolabrepository/server/horde/external-horde.sh,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- external-horde.sh 29 Nov 2007 09:55:37 -0000 1.6 +++ external-horde.sh 1 Dec 2007 07:00:12 -0000 1.7 @@ -24,6 +24,10 @@ APPLICATION_PATCHES="HK-GW-turba_2.2-Fix_editing_contacts.patch HK-GW-turba_2.2-Fix_share_id_change.patch HK-JS-nag_2.2_RC1-Fix_library_import.patch + HK-GW-kronolith_2.2_RC1-Fbview_relevance.patch + HK-GW-kronolith_2.2_RC1-Fbview_xfb_access.patch + HK-SB-kronolith_2.2_RC1-Fbview_extra_params.patch + HK-SB-kronolith_2.2_RC1-Fbview_save_attendees.patch HK-JS-kronolith_2.2_RC1-Fix_library_import.patch HK-GW-turba_2.2-Ldap_read_only_fix.patch" From cvs at kolab.org Mon Dec 3 09:43:38 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 09:43:38 +0100 (CET) Subject: gunnar: server/kolab-filter/filter config.php,1.10,1.11 Message-ID: <20071203084338.7DA61600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-filter/filter In directory doto:/tmp/cvs-serv10806/kolab-filter/filter Modified Files: config.php Log Message: kolab-filter configuration file fixes as suggested by Richard Bos. Index: config.php =================================================================== RCS file: /kolabrepository/server/kolab-filter/filter/config.php,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- config.php 29 Nov 2007 14:15:03 -0000 1.10 +++ config.php 3 Dec 2007 08:43:35 -0000 1.11 @@ -118,7 +118,7 @@ $conf['filter']['calendar_pass'] = 'zyx'; /* Filename of private key used to decrypt password from LDAP */ -$conf['filter']['priv_key_file'] = '@sysconfdir@/kolab/res_priv.pem'; +$conf['filter']['priv_key_file'] = '/etc/kolab/res_priv.pem'; /* What is the name of the users' calendar mailbox? This is only used * when the user does not already have a primary calendar folder @@ -127,10 +127,10 @@ $conf['filter']['calendar_store'] = 'Calendar'; /* Where can we get free/busy information from? */ -$conf['filter']['freebusy_url'] = 'http://kolab.example.com/freebusy/${USER}.xfb'; +$conf['filter']['freebusy_url'] = 'http://localhost/freebusy/${USER}.xfb'; /* PFB url to trigger creation of pfb */ -$conf['filter']['pfb_trigger_url'] = 'http://@@@fqdnhostname@@@/freebusy/trigger/${USER}/${FOLDER}.xpfb'; +$conf['filter']['pfb_trigger_url'] = 'https://localhost/freebusy/trigger/${USER}/${FOLDER}.xpfb'; /* Temporary data storage for the scripts */ $conf['filter']['tempdir'] = ''; From cvs at kolab.org Mon Dec 3 09:43:38 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 09:43:38 +0100 (CET) Subject: gunnar: server/kolabd/kolabd/templates resmgr.conf.template.in, 1.17, 1.18 Message-ID: <20071203084338.76F3E600169@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv10806/kolabd/kolabd/templates Modified Files: resmgr.conf.template.in Log Message: kolab-filter configuration file fixes as suggested by Richard Bos. Index: resmgr.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/resmgr.conf.template.in,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- resmgr.conf.template.in 29 Nov 2007 14:37:37 -0000 1.17 +++ resmgr.conf.template.in 3 Dec 2007 08:43:36 -0000 1.18 @@ -82,9 +82,9 @@ * that origins on this server? */ @@@if kolabfilter-verify-from-header@@@ -$params['verify_from_header'] = ('@@@kolabfilter-verify-from-header@@@'=='TRUE'); +$conf['filter']['verify_from_header'] = ('@@@kolabfilter-verify-from-header@@@'=='TRUE'); @@@else@@@ -$params['verify_from_header'] = false; +$conf['filter']['verify_from_header'] = false; @@@endif@@@ /* Should we perform this check on mail from our @@ -94,18 +94,18 @@ /* Should the Sender: header be used over From: if present? */ @@@if kolabfilter-allow-sender-header@@@ -$params['allow_sender_header'] = ('@@@kolabfilter-allow-sender-header@@@'=='TRUE'); +$conf['filter']['allow_sender_header'] = ('@@@kolabfilter-allow-sender-header@@@'=='TRUE'); @@@else@@@ -$params['allow_sender_header'] = false; +$conf['filter']['allow_sender_header'] = false; @@@endif@@@ /* Should reject messages with From headers that dont match * the envelope? Default is to rewrite the header */ @@@if kolabfilter-reject-forged-from-header@@@ -$params['reject_forged_from_header'] = ('@@@kolabfilter-reject-forged-from-header@@@'=='TRUE'); +$conf['filter']['reject_forged_from_header'] = ('@@@kolabfilter-reject-forged-from-header@@@'=='TRUE'); @@@else@@@ -$params['reject_forged_from_header'] = false; +$conf['filter']['reject_forged_from_header'] = false; @@@endif@@@ /* Text to be inserted in From: when rewriting untrusted mails */ @@ -148,7 +148,7 @@ $conf['filter']['calendar_store'] = 'Calendar'; /* Where can we get free/busy information from? */ -$conf['filter']['freebusy_url'] = '@@@fqdnhostname@@@@webserver_web_prefix@/freebusy/${USER}.xfb'; +$conf['filter']['freebusy_url'] = 'http://@@@fqdnhostname@@@@webserver_web_prefix@/freebusy/${USER}.xfb'; /* PFB url to trigger creation of pfb */ $conf['filter']['pfb_trigger_url'] = 'https://@@@fqdnhostname@@@@webserver_web_prefix@/freebusy/trigger/${USER}/${FOLDER}.xpfb'; From cvs at kolab.org Mon Dec 3 09:44:22 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 09:44:22 +0100 (CET) Subject: thomas: server release-notes.txt,1.189,1.190 Message-ID: <20071203084422.A885A600169@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv10872 Modified Files: release-notes.txt Log Message: Updated release notes for fbview-horde and horde-kolab packages Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.189 retrieving revision 1.190 diff -u -d -r1.189 -r1.190 --- release-notes.txt 30 Nov 2007 18:02:05 -0000 1.189 +++ release-notes.txt 3 Dec 2007 08:44:20 -0000 1.190 @@ -1,6 +1,6 @@ Kolab Server 2.2 Release Notes ============================== -(Version 20071130, Kolab Server 2.2-beta3) +(Version 20071203, Kolab Server 2.2-beta3) For upgrading and installation instructions, please refer to the 1st.README file in the package directory. @@ -126,7 +126,7 @@ kolab/issue2138 (Horde creates events in main inbox) kolab/issue2144 (Calendar items of shared calendar not appearing) - - horde-kolab-3.2_rc1-20071128 + - horde-kolab-3.2_rc1-20071201 kolab/issue2101 ([horde] can't delete categories) @@ -159,12 +159,12 @@ Updated: - fbview-horde-3.2_rc1-20071128 + fbview-horde-3.2_rc1-20071201 fbview-kronolith-2.2_rc1-20071129 horde-framework-kolab-3.2_rc1-20071129 horde-imp-kolab-4.2_rc1-20071128 horde-ingo-kolab-1.2_rc1-20071128 - horde-kolab-3.2_rc1-20071128 + horde-kolab-3.2_rc1-20071201 horde-kronolith-kolab-2.2_rc1-20071129 horde-mnemo-kolab-2.2_rc1-20071128 horde-nag-kolab-2.2_rc1-20071128 From cvs at kolab.org Mon Dec 3 12:27:21 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 12:27:21 +0100 (CET) Subject: thomas: server release-notes.txt,1.190,1.191 Message-ID: <20071203112721.D08D3600169@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv16355 Modified Files: release-notes.txt Log Message: Removed resource password handling which is unused since server 2.1. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.190 retrieving revision 1.191 diff -u -d -r1.190 -r1.191 --- release-notes.txt 3 Dec 2007 08:44:20 -0000 1.190 +++ release-notes.txt 3 Dec 2007 11:27:19 -0000 1.191 @@ -51,7 +51,7 @@ fix security issues (CVE-2007-5707 and CVE-2007-5708) without upgrading to OpenLDAP 2.4. - - kolabd-2.1.99-20071130 + - kolabd-2.1.99-20071203 freebusy_logfile is now freebusy_logdir. @@ -61,15 +61,19 @@ Support for the extended free/busy concept. + Removed resource password handling which is unused since server 2.1. + kolab/issue2134 ([Horde] Unable to send message with attachments) kolab/issue2206 (Multiple deliveries to distribution lists) kolab/issue2225 (notifyd logging going into fsl.log) kolab/issue2236 (Apache UID access broken) - - kolab-filter-2.2.beta3-20071130 + - kolab-filter-2.2.beta3-20071203 Adapted to the restructured php-kolab/Kolab_Filter package. + Removed resource password handling which is unused since server 2.1. + kolab/issue2174 (Automatic Invitation Policy not working with invites as attachment) kolab/issue2177 (Better logging in kolabfilter and kolabmailboxfilter) @@ -83,12 +87,14 @@ foldernames correctly) kolab/issue898 (pfbs from several servers, are not combined into .ifb) - - kolab-webadmin-2.1.99-20071130 + - kolab-webadmin-2.1.99-20071203 Improved some message strings. Updated German translations. + Removed resource password handling which is unused since server 2.1. + kolab/issue1711 (extra space after first name when editing users or admins) kolab/issue1912 (some field descriptions missing in web admin @@ -169,11 +175,11 @@ horde-mnemo-kolab-2.2_rc1-20071128 horde-nag-kolab-2.2_rc1-20071128 horde-turba-kolab-2.2_rc1-20071128 - kolab-filter-2.2.beta3-20071130 + kolab-filter-2.2.beta3-20071203 kolab-freebusy-2.2.beta3-20071130 - kolab-webadmin-2.1.99-20071130 + kolab-webadmin-2.1.99-20071203 kolabconf-2.2.beta3-20071130 - kolabd-2.1.99-20071130 + kolabd-2.1.99-20071203 openldap-2.3.39-20071130 perl-kolab-2.2.beta3-20071130 php-kolab-2.2.beta3-20071130 From cvs at kolab.org Mon Dec 3 12:27:21 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 12:27:21 +0100 (CET) Subject: thomas: server/kolab-filter ChangeLog,1.2,1.3 Message-ID: <20071203112721.D4F81600D5D@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-filter In directory doto:/tmp/cvs-serv16355/kolab-filter Modified Files: ChangeLog Log Message: Removed resource password handling which is unused since server 2.1. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-filter/ChangeLog,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- ChangeLog 29 Nov 2007 14:15:03 -0000 1.2 +++ ChangeLog 3 Dec 2007 11:27:19 -0000 1.3 @@ -1,3 +1,8 @@ +2007-12-03 Thomas Arendsen Hein + + * filter/config.php: Removed resource password handling which is + unused since server 2.1. + 2007-11-29 Thomas Arendsen Hein * filter/config.php: lmpt -> lmtp, smpt -> smtp From cvs at kolab.org Mon Dec 3 12:27:21 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 12:27:21 +0100 (CET) Subject: thomas: server/kolabd/kolabd/templates resmgr.conf.template.in, 1.18, 1.19 Message-ID: <20071203112721.E0FF3600D60@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv16355/kolabd/kolabd/templates Modified Files: resmgr.conf.template.in Log Message: Removed resource password handling which is unused since server 2.1. Index: resmgr.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/resmgr.conf.template.in,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- resmgr.conf.template.in 3 Dec 2007 08:43:36 -0000 1.18 +++ resmgr.conf.template.in 3 Dec 2007 11:27:19 -0000 1.19 @@ -138,9 +138,6 @@ $conf['filter']['calendar_id'] = '@@@calendar_id@@@'; $conf['filter']['calendar_pass'] = '@@@calendar_pw@@@'; -/* Filename of private key used to decrypt password from LDAP */ -$conf['filter']['priv_key_file'] = '@sysconfdir@/kolab/res_priv.pem'; - /* What is the name of the users' calendar mailbox? This is only used * when the user does not already have a primary calendar folder * (search via Kolab annotation) From cvs at kolab.org Mon Dec 3 12:27:22 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 12:27:22 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin ChangeLog,1.66,1.67 Message-ID: <20071203112722.DC9CC600D5E@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin In directory doto:/tmp/cvs-serv16355/kolab-webadmin/kolab-webadmin Modified Files: ChangeLog Log Message: Removed resource password handling which is unused since server 2.1. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/ChangeLog,v retrieving revision 1.66 retrieving revision 1.67 diff -u -d -r1.66 -r1.67 --- ChangeLog 21 Nov 2007 18:11:37 -0000 1.66 +++ ChangeLog 3 Dec 2007 11:27:19 -0000 1.67 @@ -1,3 +1,8 @@ +2007-12-03 Thomas Arendsen Hein + + * www/admin/user/user.php.in: Removed resource password handling + which is unused since server 2.1. + 2007-11-21 Thomas Arendsen Hein * www/admin/user/user.php.in: Renamed "Free/Busy future" to From cvs at kolab.org Mon Dec 3 12:27:21 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 12:27:21 +0100 (CET) Subject: thomas: server/kolab-filter/filter config.php,1.11,1.12 Message-ID: <20071203112721.DFE4A600D5F@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-filter/filter In directory doto:/tmp/cvs-serv16355/kolab-filter/filter Modified Files: config.php Log Message: Removed resource password handling which is unused since server 2.1. Index: config.php =================================================================== RCS file: /kolabrepository/server/kolab-filter/filter/config.php,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- config.php 3 Dec 2007 08:43:35 -0000 1.11 +++ config.php 3 Dec 2007 11:27:19 -0000 1.12 @@ -117,9 +117,6 @@ $conf['filter']['calendar_id'] = 'calendar'; $conf['filter']['calendar_pass'] = 'zyx'; -/* Filename of private key used to decrypt password from LDAP */ -$conf['filter']['priv_key_file'] = '/etc/kolab/res_priv.pem'; - /* What is the name of the users' calendar mailbox? This is only used * when the user does not already have a primary calendar folder * (search via Kolab annotation) From cvs at kolab.org Mon Dec 3 12:27:22 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 12:27:22 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/www/admin/user user.php.in, 1.26, 1.27 Message-ID: <20071203112722.16E5F600169@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user In directory doto:/tmp/cvs-serv16355/kolab-webadmin/kolab-webadmin/www/admin/user Modified Files: user.php.in Log Message: Removed resource password handling which is unused since server 2.1. Index: user.php.in =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user/user.php.in,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- user.php.in 21 Nov 2007 18:11:37 -0000 1.26 +++ user.php.in 3 Dec 2007 11:27:19 -0000 1.27 @@ -501,34 +501,6 @@ // We are editing our own password, let's update the session! $auth->setPassword($_POST['password_0']); } - - /* The code below is disabled for now because we're - not going to use that encrypted password anyway. - - TODO: Clean it up once we're sure we don't want it - */ - if( false && isset( $_POST['accttype'] ) && $_POST['accttype'] > 1 ) { - // We have a group or resource, create encrypted pw - $pubkeydata=file_get_contents("@sysconfdir@/kolab/res_pub.pem" ); - $pkey = openssl_pkey_get_public( $pubkeydata ); - if( $pkey === false ) { - $sslerr = "Could not read resource encryption public key file://@sysconfdir@/kolab/res_pub.pem: "; - - while( $msg = openssl_error_string() ) - $sslerr .= $msg.' '; - $errors[] = $sslerr; - } else { - if( !openssl_public_encrypt( $_POST['password_0'], $encpw, $pkey ) ) { - $sslerr = _("Could not encrypt password: "); - while( $msg = openssl_error_string() ) - $sslerr .= $msg.' '; - $errors[] = $sslerr; - } else { - $ldap_object['kolabEncryptedPassword'] = base64_encode( $encpw ); - } - openssl_free_key( $pkey ); - } - } } $ldap_object['mail'] = trim( strtolower( $_POST['user_mail'] ) ).'@'.trim( strtolower( $_POST['domain_mail'] ) ); $ldap_object['uid'] = trim( strtolower( $_POST['uid'] ) ); From cvs at kolab.org Mon Dec 3 12:27:21 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 12:27:21 +0100 (CET) Subject: thomas: server/kolabd/kolabd ChangeLog, 1.127, 1.128 kolab_bootstrap.in, 1.32, 1.33 Message-ID: <20071203112721.E2F19600D61@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv16355/kolabd/kolabd Modified Files: ChangeLog kolab_bootstrap.in Log Message: Removed resource password handling which is unused since server 2.1. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.127 retrieving revision 1.128 diff -u -d -r1.127 -r1.128 --- ChangeLog 30 Nov 2007 14:27:44 -0000 1.127 +++ ChangeLog 3 Dec 2007 11:27:19 -0000 1.128 @@ -1,3 +1,8 @@ +2007-12-03 Thomas Arendsen Hein + + * kolab_bootstrap.in, templates/resmgr.conf.template.in: Removed + resource password handling which is unused since server 2.1. + 2007-11-30 Gunnar Wrobel

    * templates/cyrus.conf.template.in: Index: kolab_bootstrap.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolab_bootstrap.in,v retrieving revision 1.32 retrieving revision 1.33 diff -u -d -r1.32 -r1.33 --- kolab_bootstrap.in 30 Nov 2007 14:02:23 -0000 1.32 +++ kolab_bootstrap.in 3 Dec 2007 11:27:19 -0000 1.33 @@ -661,25 +661,6 @@ } } - # Create key-pair for resource password encryption - # if they dont exist already - my $pubreskey = "@sysconfdir@/kolab/res_pub.pem"; - my $privreskey = "@sysconfdir@/kolab/res_priv.pem"; - if( ! -e $pubreskey || ! -e $privreskey ) { - my $oldmask = umask 0077; - #print "Creating DSA keypair for resource password encryption\n"; - #system("@bindir@/openssl dsaparam 1024 -out dsa-params"); - #system("@bindir@/openssl gendsa -out $privreskey dsa-params"); - #system("@bindir@/openssl dsa -in $privreskey -pubout -out $pubreskey"); - print "Creating RSA keypair for resource password encryption\n"; - kolab_system("@bindir@/openssl genrsa -out $privreskey 1024"); - kolab_system("@bindir@/openssl rsa -in $privreskey -pubout -out $pubreskey"); - kolab_system("chown @kolab_musr@:@kolab_grp@ $pubreskey $privreskey"); - chmod 0660, $privreskey, $pubreskey; - #unlink( "dsa-params" ); - umask $oldmask; - } - print <<'EOS'; Kolab can create and manage a certificate authority that can be used to create SSL certificates for use within the Kolab environment. @@ -910,17 +891,6 @@ EOS } - print <<'EOS'; -To be able to encrypt and decrypt passwords for group and resource accounts -we need to copy the RSA keypair used for that purpose from the master server. -EOS - my $privreskey = "@sysconfdir@/kolab/res_priv.pem"; - my $pubreskey = "@sysconfdir@/kolab/res_pub.pem"; - kolab_system("scp $master_host:$privreskey " - ."$master_host:$pubreskey " - ."@sysconfdir@/kolab/"); - kolab_system("chown @kolab_musr@:@kolab_grp@ $pubreskey $privreskey"); - chmod 0660, $privreskey, $pubreskey; kolab_system("@sbindir@/kolabconf -n"); $fd = IO::File->new($kolab_config, "w+") || die "could not open $kolab_config"; From cvs at kolab.org Mon Dec 3 17:14:39 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 17:14:39 +0100 (CET) Subject: gunnar: server/horde/horde HK-GW-Deleting_categories.patch,1.1,NONE Message-ID: <20071203161439.BDC90600165@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/horde/horde In directory doto:/tmp/cvs-serv28021 Removed Files: HK-GW-Deleting_categories.patch Log Message: Obsolete patch. --- HK-GW-Deleting_categories.patch DELETED --- From cvs at kolab.org Mon Dec 3 17:17:02 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 17:17:02 +0100 (CET) Subject: thomas: server 00INDEX.rdf,1.7,1.8 Message-ID: <20071203161702.CA0D4600D73@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv28115 Modified Files: 00INDEX.rdf Log Message: Updated 00INDEX.rdf for 2.2-beta3 Index: 00INDEX.rdf =================================================================== RCS file: /kolabrepository/server/00INDEX.rdf,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- 00INDEX.rdf 30 Nov 2007 16:25:20 -0000 1.7 +++ 00INDEX.rdf 3 Dec 2007 16:17:00 -0000 1.8 @@ -1745,49 +1745,6 @@ conforming. It is currently not a validating XML parser. - - fbview-horde - 3.2_rc1 - 20071128 - OpenPKG - JUNK - MAIL - GPL - Gunnar Wrobel <wrobel at pardus.de> (p at rdus) -

    The Horde Application Framework - http://www.horde.org/ - - - OpenPKG - openpkg - php - php::with_pear - - - - - horde-framework-kolab - PEAR-Mail_Mime - PEAR-Mail - PEAR-Log - - - - - fbview-horde-conf.template - conf.php - prefs.php - http://ftp.horde.org/pub/horde/horde-3.2-rc1.tar.gz - - - -The Horde Framework is the glue that all Horde applications have in -common. It is many things, including some coding standards, common -code, and inter-application communication. The shared code provides -common ways of handling things like preferences, permissions, browser -detection, user help, and more. - - fbview-kronolith 2.2_rc1 @@ -2495,48 +2452,150 @@ filtering agent in IMP H3 (4.x). - - horde-kolab - 3.2_rc1 - 20071128 + + kolabd + 2.1.99 + 20071203 OpenPKG - JUNK - MAIL + PLUS + Mail GPL - Gunnar Wrobel <wrobel at pardus.de> (p at rdus) - The Horde Application Framework - http://www.horde.org/ + Klaraelvdalens Datakonsult AB + Kolab2 Groupware Server Daemon + http://www.kolab.org/ + Erfrakon, Intevation, Code Fusion, Klaraelvdalens Datakonsult AB OpenPKG openpkg - php - php::with_pear - kolabd::with_horde - horde-framework-kolab - PEAR-Mail_Mime - PEAR-Mail - PEAR-Log - PEAR-HTTP_Request + OpenPKG + openpkg + postfix + postfix::with_ldap + postfix::with_sasl + postfix::with_ssl + sasl::with_ldap + sasl::with_login + amavisd + clamav + openldap + openldap::with_pth + imap + imap::with_annotate + apache + apache::with_mod_ssl + apache::with_mod_ldap + apache::with_mod_authn_alias + imapd + imapd::with_group + imapd::with_group_igncase + imapd::with_ldap + imapd::with_annotate + imapd::with_atvdom + imapd::with_morelogging + imapd::with_kolab + perl-ssl + perl-www + perl-ldap + perl-kolab + kolabconf + + + + + php + php::with_zlib + php::with_bdb + php::with_gettext + php::with_imap + php::with_imap_annotate + php::with_openldap + php::with_pear + php::with_xml + php::with_dom + php::with_ssl + php::with_mbstring + php::with_mm + apache-php + apache-php::with_zlib + apache-php::with_bdb + apache-php::with_gettext + apache-php::with_imap + apache-php::with_imap_annotate + apache-php::with_openldap + apache-php::with_pear + apache-php::with_xml + apache-php::with_dom + apache-php::with_ssl + apache-php::with_mbstring + apache-php::with_mm + + + + + php + php::with_pear + php::with_gettext + php::with_dom + php::with_mcrypt + php::with_iconv + php::with_mbstring + php::with_mbregex + php::with_gd + php::with_imap + php::with_ssl + php::with_ctype + php::with_openldap + php::with_mhash + php::with_zlib + php::with_bdb + php::with_imap_annotate + php::with_pear + php::with_xml + php::with_mm + apache-php + apache-php::with_gettext + apache-php::with_dom + apache-php::with_mcrypt + apache-php::with_iconv + apache-php::with_mbstring + apache-php::with_mbregex + apache-php::with_gd + apache-php::with_imap + apache-php::with_ssl + apache-php::with_ctype + apache-php::with_openldap + apache-php::with_mhash + apache-php::with_zlib + apache-php::with_bdb + apache-php::with_imap_annotate + apache-php::with_pear + apache-php::with_xml + apache-php::with_mm + + + kolabd::with_horde + kolabd::kolab_version + + - horde-kolab-conf.template - conf.php - http://ftp.horde.org/pub/horde/horde-3.2-rc1.tar.gz + kolabd-2.1.99.tar.bz2 -The Horde Framework is the glue that all Horde applications have in -common. It is many things, including some coding standards, common -code, and inter-application communication. The shared code provides -common ways of handling things like preferences, permissions, browser -detection, user help, and more. +Kolab is the KDE Groupware Server that provides full groupware +features to either KDE Kolab clients or Microsoft Outlook[tm] +clients using third party plugins and web clients in the future. +In addition it is a robust and flexible general IMAP mail server +with LDAP addressbooks. +Kolab %{V_ei_maj}.%{V_ei_min} @@ -2974,39 +3033,6 @@ original name of the committee that wrote the standard. - - kolab-filter - 2.2.beta3 - 20071130 - OpenPKG Community - PLUS - Mail - GPL - Gunnar Wrobel <wrobel at pardus.de> (p at rdus) - Kolab2 Groupware Server mail filters - http://www.kolab.org/ - Kolab Consortium - - - OpenPKG - openpkg - - - - - php-kolab - - - - - kolab-filter-2.2.beta3.tar.bz2 - - - -kolab-freebusy provides two filtering scripts for the postfix MTA -service. The scripts identify iCal mails and process these. - - kolab-freebusy 2.2.beta3 @@ -3040,46 +3066,6 @@ Groupware server. - - kolab-webadmin - 2.1.99 - 20071130 - OpenPKG - JUNK - Mail - GPL - Klaraelvdalens Datakonsult AB - Kolab Groupware Server Web Administration Interface - http://www.kolab.org/ - Klaraelvdalens Datakonsult AB - - - OpenPKG - openpkg - - - - - OpenPKG - openpkg - kolabd - php-smarty - - - - - kolab-webadmin::kolab_version - - - - - kolab-webadmin-2.1.99.tar.bz2 - - - -Web based administration interface for The Kolab Groupware Server - - kolabconf 2.2.beta3 @@ -3120,152 +3106,6 @@ associated to that process. - - kolabd - 2.1.99 - 20071130 - OpenPKG - PLUS - Mail - GPL - Klaraelvdalens Datakonsult AB - Kolab2 Groupware Server Daemon - http://www.kolab.org/ - Erfrakon, Intevation, Code Fusion, Klaraelvdalens Datakonsult AB - - - OpenPKG - openpkg - - - - - OpenPKG - openpkg - postfix - postfix::with_ldap - postfix::with_sasl - postfix::with_ssl - sasl::with_ldap - sasl::with_login - amavisd - clamav - openldap - openldap::with_pth - imap - imap::with_annotate - apache - apache::with_mod_ssl - apache::with_mod_ldap - apache::with_mod_authn_alias - imapd - imapd::with_group - imapd::with_group_igncase - imapd::with_ldap - imapd::with_annotate - imapd::with_atvdom - imapd::with_morelogging - imapd::with_kolab - perl-ssl - perl-www - perl-ldap - perl-kolab - kolabconf - - - - - php - php::with_zlib - php::with_bdb - php::with_gettext - php::with_imap - php::with_imap_annotate - php::with_openldap - php::with_pear - php::with_xml - php::with_dom - php::with_ssl - php::with_mbstring - php::with_mm - apache-php - apache-php::with_zlib - apache-php::with_bdb - apache-php::with_gettext - apache-php::with_imap - apache-php::with_imap_annotate - apache-php::with_openldap - apache-php::with_pear - apache-php::with_xml - apache-php::with_dom - apache-php::with_ssl - apache-php::with_mbstring - apache-php::with_mm - - - - - php - php::with_pear - php::with_gettext - php::with_dom - php::with_mcrypt - php::with_iconv - php::with_mbstring - php::with_mbregex - php::with_gd - php::with_imap - php::with_ssl - php::with_ctype - php::with_openldap - php::with_mhash - php::with_zlib - php::with_bdb - php::with_imap_annotate - php::with_pear - php::with_xml - php::with_mm - apache-php - apache-php::with_gettext - apache-php::with_dom - apache-php::with_mcrypt - apache-php::with_iconv - apache-php::with_mbstring - apache-php::with_mbregex - apache-php::with_gd - apache-php::with_imap - apache-php::with_ssl - apache-php::with_ctype - apache-php::with_openldap - apache-php::with_mhash - apache-php::with_zlib - apache-php::with_bdb - apache-php::with_imap_annotate - apache-php::with_pear - apache-php::with_xml - apache-php::with_mm - - - - - kolabd::with_horde - kolabd::kolab_version - - - - - kolabd-2.1.99.tar.bz2 - - - -Kolab is the KDE Groupware Server that provides full groupware -features to either KDE Kolab clients or Microsoft Outlook[tm] -clients using third party plugins and web clients in the future. -In addition it is a robust and flexible general IMAP mail server -with LDAP addressbooks. -Kolab %{V_ei_maj}.%{V_ei_min} - - libiconv 1.12 @@ -6413,102 +6253,6 @@ stand-alone webserver-independent CGI scripts. - - php-channel-horde - 1.0 - 1 - Development/Languages - N/A - Adds pear.horde.org channel to PEAR - http://pear.horde.org/ - - - php - php::with_pear - - - - - http://pear.horde.org/channel.xml - - - -This package adds the pear.horde.org channel which allows PEAR packages -from this channel to be installed. - - - - php-kolab - 2.2.beta3 - 20071130 - OpenPKG Community - PLUS - Language - GPL - Gunnar Wrobel <wrobel at pardus.de> (p at rdus) - php-kolab provides several PEAR-style package with PHP routines for the Kolab Groupware server - http://www.kolab.org - Kolab Consortium - - - OpenPKG - openpkg - php - php::with_pear - - - - - horde-framework-kolab - PEAR-Net_LMTP - PEAR-Net_SMTP - PEAR-Net_IMAP - - - - - Kolab_Filter-2.2beta320071130.tgz - Kolab_Webadmin-2.2beta320071130.tgz - Kolab_Freebusy-2.2beta320071130.tgz - - - -php-kolab provides several PEAR-style package with PHP routines for -the Kolab Groupware server. - -Kolab_Freebusy provides the library required for free/busy support on -the server. - -Kolab_Filter holds routines necessary to parse iCal mail messages. - -Kolab_Webadmin groups utilities for the Kolab web admin frontend. - - - - php-smarty - 2.6.18 - 20070607 - OpenPKG - JUNK - Languages - LGPL - Steffen Hansen <steffen at klaralvdalens-datakonsult.se> (Klaraelvdalens Datakonsult AB) - Template engine for PHP - http://smarty.php.net/ - - - http://smarty.php.net/distributions/Smarty-2.6.18.tar.gz - - - -Smarty is a template engine for PHP. Smarty provides your basic -variable substitution and dynamic block functionality, and also takes -a step further to be a "smart" template engine, adding features such -as configuration files, template functions, variable modifiers, and -making all of this functionality as easy as possible to use for both -programmers and template designers. - - pkgconfig 0.22 @@ -7163,6 +6907,262 @@ the file size in extreme cases). ZLIB's memory footprint is also independent of the input data and can be reduced, if necessary, at some cost in compression. + + + + php-channel-horde + 1.0 + 1 + Development/Languages + N/A + Adds pear.horde.org channel to PEAR + http://pear.horde.org/ + + + php + php::with_pear + + + + + http://pear.horde.org/channel.xml + + + +This package adds the pear.horde.org channel which allows PEAR packages +from this channel to be installed. + + + + php-kolab + 2.2.beta3 + 20071130 + OpenPKG Community + PLUS + Language + GPL + Gunnar Wrobel <wrobel at pardus.de> (p at rdus) + php-kolab provides several PEAR-style package with PHP routines for the Kolab Groupware server + http://www.kolab.org + Kolab Consortium + + + OpenPKG + openpkg + php + php::with_pear + + + + + horde-framework-kolab + PEAR-Net_LMTP + PEAR-Net_SMTP + PEAR-Net_IMAP + + + + + Kolab_Filter-2.2beta320071130.tgz + Kolab_Webadmin-2.2beta320071130.tgz + Kolab_Freebusy-2.2beta320071130.tgz + + + +php-kolab provides several PEAR-style package with PHP routines for +the Kolab Groupware server. + +Kolab_Freebusy provides the library required for free/busy support on +the server. + +Kolab_Filter holds routines necessary to parse iCal mail messages. + +Kolab_Webadmin groups utilities for the Kolab web admin frontend. + + + + php-smarty + 2.6.18 + 20070607 + OpenPKG + JUNK + Languages + LGPL + Steffen Hansen <steffen at klaralvdalens-datakonsult.se> (Klaraelvdalens Datakonsult AB) + Template engine for PHP + http://smarty.php.net/ + + + http://smarty.php.net/distributions/Smarty-2.6.18.tar.gz + + + +Smarty is a template engine for PHP. Smarty provides your basic +variable substitution and dynamic block functionality, and also takes +a step further to be a "smart" template engine, adding features such +as configuration files, template functions, variable modifiers, and +making all of this functionality as easy as possible to use for both +programmers and template designers. + + + + fbview-horde + 3.2_rc1 + 20071201 + OpenPKG + JUNK + MAIL + GPL + Gunnar Wrobel <wrobel at pardus.de> (p at rdus) + The Horde Application Framework + http://www.horde.org/ + + + OpenPKG + openpkg + php + php::with_pear + + + + + horde-framework-kolab + PEAR-Mail_Mime + PEAR-Mail + PEAR-Log + + + + + fbview-horde-conf.template + conf.php + prefs.php + http://ftp.horde.org/pub/horde/horde-3.2-rc1.tar.gz + + + +The Horde Framework is the glue that all Horde applications have in +common. It is many things, including some coding standards, common +code, and inter-application communication. The shared code provides +common ways of handling things like preferences, permissions, browser +detection, user help, and more. + + + + horde-kolab + 3.2_rc1 + 20071201 + OpenPKG + JUNK + MAIL + GPL + Gunnar Wrobel <wrobel at pardus.de> (p at rdus) + The Horde Application Framework + http://www.horde.org/ + + + OpenPKG + openpkg + php + php::with_pear + + + + + kolabd::with_horde + horde-framework-kolab + PEAR-Mail_Mime + PEAR-Mail + PEAR-Log + PEAR-HTTP_Request + + + + + horde-kolab-conf.template + conf.php + http://ftp.horde.org/pub/horde/horde-3.2-rc1.tar.gz + + + +The Horde Framework is the glue that all Horde applications have in +common. It is many things, including some coding standards, common +code, and inter-application communication. The shared code provides +common ways of handling things like preferences, permissions, browser +detection, user help, and more. + + + + kolab-filter + 2.2.beta3 + 20071203 + OpenPKG Community + PLUS + Mail + GPL + Gunnar Wrobel <wrobel at pardus.de> (p at rdus) + Kolab2 Groupware Server mail filters + http://www.kolab.org/ + Kolab Consortium + + + OpenPKG + openpkg + + + + + php-kolab + + + + + kolab-filter-2.2.beta3.tar.bz2 + + + +kolab-freebusy provides two filtering scripts for the postfix MTA +service. The scripts identify iCal mails and process these. + + + + kolab-webadmin + 2.1.99 + 20071203 + OpenPKG + JUNK + Mail + GPL + Klaraelvdalens Datakonsult AB + Kolab Groupware Server Web Administration Interface + http://www.kolab.org/ + Klaraelvdalens Datakonsult AB + + + OpenPKG + openpkg + + + + + OpenPKG + openpkg + kolabd + php-smarty + + + + + kolab-webadmin::kolab_version + + + + + kolab-webadmin-2.1.99.tar.bz2 + + + +Web based administration interface for The Kolab Groupware Server From cvs at kolab.org Mon Dec 3 17:30:51 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 17:30:51 +0100 (CET) Subject: gunnar: server/patches/fbview - New directory Message-ID: <20071203163051.4B834600D64@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/fbview In directory doto:/tmp/cvs-serv28370/fbview Log Message: Directory /kolabrepository/server/patches/fbview added to the repository From cvs at kolab.org Mon Dec 3 17:34:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 17:34:44 +0100 (CET) Subject: gunnar: server/patches/fbview HK-GW-framework_3.2_RC1-Fbview_xfb_concept.patch, NONE, 1.1 HK-GW-kronolith_2.2_RC1-Fbview_menu.patch, NONE, 1.1 HK-GW-kronolith_2.2_RC1-Fbview_relevance.patch, NONE, 1.1 HK-GW-kronolith_2.2_RC1-Fbview_xfb_access.patch, NONE, 1.1 HK-JS-kronolith_2.2_RC1-Fix_library_import.patch, NONE, 1.1 HK-SB-kronolith_2.2_RC1-Fbview_extra_params.patch, NONE, 1.1 HK-SB-kronolith_2.2_RC1-Fbview_save_attendees.patch, NONE, 1.1 README_Fbview_extra_params.patch, NONE, 1.1 README_Fbview_menu.patch, NONE, 1.1 README_Fbview_relevance.patch, NONE, 1.1 README_Fbview_save_attendees.patch, NONE, 1.1 README_Fbview_xfb_access.patch, NONE, 1.1 README_Fbview_xfb_concept.patch, NONE, 1.1 README_Fix_library_import.patch, NONE, 1.1 Message-ID: <20071203163444.E321E600165@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/fbview In directory doto:/tmp/cvs-serv28445 Added Files: HK-GW-framework_3.2_RC1-Fbview_xfb_concept.patch HK-GW-kronolith_2.2_RC1-Fbview_menu.patch HK-GW-kronolith_2.2_RC1-Fbview_relevance.patch HK-GW-kronolith_2.2_RC1-Fbview_xfb_access.patch HK-JS-kronolith_2.2_RC1-Fix_library_import.patch HK-SB-kronolith_2.2_RC1-Fbview_extra_params.patch HK-SB-kronolith_2.2_RC1-Fbview_save_attendees.patch README_Fbview_extra_params.patch README_Fbview_menu.patch README_Fbview_relevance.patch README_Fbview_save_attendees.patch README_Fbview_xfb_access.patch README_Fbview_xfb_concept.patch README_Fix_library_import.patch Log Message: Create a separate patch directory for the fbview application. --- NEW FILE: HK-GW-framework_3.2_RC1-Fbview_xfb_concept.patch --- diff -r fce4450434a7 framework/Share/Share/kolab.php --- a/framework/Share/Share/kolab.php Thu Nov 29 14:45:46 2007 +0100 +++ b/framework/Share/Share/kolab.php Thu Nov 29 14:49:04 2007 +0100 @@ -17,6 +17,13 @@ define('HORDE_ANNOT_SHARE_ATTR', HORDE_A * Marks a share without a name. These shares are still invalid */ define('KOLAB_SHARE_INVALID', 'KOLAB_SHARE_INVALID'); + +/** + * Kolab specific free/busy relevance + */ +define('KOLAB_FBRELEVANCE_ADMINS', 0); +define('KOLAB_FBRELEVANCE_READERS', 1); +define('KOLAB_FBRELEVANCE_NOBODY', 2); /** * Horde_Share_kolab:: provides the kolab backend for the horde share driver. @@ -825,16 +832,135 @@ class Horde_Share_Object_kolab extends H */ function isDefault() { + $type = $this->getType(); + if (is_a($type, 'PEAR_Error')) { + return false; + } + return $type[1]; + } + + //FIXME: The following five functions (actually also most other things in this class + // needs to go into Kolab/IMAP.php + /** + * Get the folder type + * + * @return mixed Array containing the type and the default status or a PEAR_Error + * if the folder annotation cannot be accessed. + */ + function getType() + { $imap = &$this->_shareOb->getImap(); - $annotation = $imap->getAnnotation(KOLAB_ANNOT_FOLDER_TYPE, 'value.shared', $this->_folder); + $annotation = $imap->getAnnotation(KOLAB_ANNOT_FOLDER_TYPE, + 'value.shared', + $this->_folder); if (is_a($annotation, 'PEAR_Error')) { - return false; - } - if (empty($annotation)) { - return false; - } - $type = explode('.', $annotation); - return (!empty($type[1]) && $type[1] == 'default'); + return $annotation; + } + + if (!empty($annotation)) { + $default = false; + $subtype = ''; + $type = explode('.', $annotation); + if (!empty($type[0])) { + $foldertype = $type[0]; + if (!empty($type[1])) { + $subtype = $type[1]; + if ($type[1] == 'default') { + $default = true; + } + } + } + return array($foldertype, $default, $subtype); + } else { + return PEAR::raiseError(sprintf(_("Unknown folder type for folder %s."), $this->_folder)); + } + } + + /** + * Get the free/busy relevance for this folder + * + * @return int Value containing the FB_RELEVANCE. + */ + function getFbrelevance() + { + $imap = &$this->_shareOb->getImap(); + $entry = KOLAB_ANNOT_ROOT . 'incidences-for'; + + $annotation = $imap->getAnnotation($entry, 'value.shared', $this->_folder); + if (is_a($annotation, 'PEAR_Error') || empty($annotation)) { + return KOLAB_FBRELEVANCE_ADMINS; + } + switch ($annotation) { + case 'admins': + return KOLAB_FBRELEVANCE_ADMINS; + case 'readers': + return KOLAB_FBRELEVANCE_READERS; + case 'nobody': + return KOLAB_FBRELEVANCE_NOBODY; + default: + return KOLAB_FBRELEVANCE_ADMINS; + } + } + + /** + * Set the free/busy relevance for this folder + * + * @param int $relevance Value containing the FB_RELEVANCE + * + * @return mixed True on success or a PEAR_Error. + */ + function setFbrelevance($relevance) + { + switch ($relevance) { + case KOLAB_FBRELEVANCE_ADMINS: + $value = 'admins'; + break; + case KOLAB_FBRELEVANCE_READERS: + $value = 'readers'; + break; + case KOLAB_FBRELEVANCE_NOBODY: + $value = 'nobody'; + break; + default: + $value = 'admins'; + } + + $imap = &$this->_shareOb->getImap(); + $entry = KOLAB_ANNOT_ROOT . 'incidences-for'; + return $imap->setAnnotation($entry, array('value.shared' => $value), $this->_folder); + } + + /** + * Get the extended free/busy access settings for this folder + * + * @return array Array containing the users with access to the + * extended information. + */ + function getXfbaccess() + { + $imap = &$this->_shareOb->getImap(); + $entry = KOLAB_ANNOT_ROOT . 'xfb-readable'; + + $annotation = $imap->getAnnotation($entry, 'value.shared', $this->_folder); + if (is_a($annotation, 'PEAR_Error') || empty($annotation)) { + return array(); + } + return explode(' ', $annotation); + } + + /** + * Set the extended free/busy access settings for this folder + * + * @param array $access Array containing the users with access to the + * extended information. + * + * @return mixed True on success or a PEAR_Error. + */ + function setXfbaccess($access) + { + $imap = &$this->_shareOb->getImap(); + $entry = KOLAB_ANNOT_ROOT . 'xfb-readable'; + return $imap->setAnnotation($entry, array('value.shared' => join(' ', $access)), $this->_folder); } /** @@ -910,13 +1036,18 @@ class Horde_Share_Object_kolab extends H break; case 'params': - $params = $this->getAttribute('params'); + $params = @unserialize($this->getAttribute('params')); if (is_a($params, 'PEAR_Error') || $params == '') { - $params = serialize(array('source' => 'kolab', - 'default' => $this->get('default'), - 'name' => $this->get('name'))); - } - $this->data['params'] = $params; + $params = array('source' => 'kolab', + 'default' => $this->get('default'), + 'name' => $this->get('name')); + } + $type = $this->getType(); + if (!is_a($type, 'PEAR_Error') && $type[0] == 'event') { + $params = array_merge($params, array('fbrelevance' => $this->getFbrelevance(), + 'xfbaccess' => $this->getXfbaccess())); + } + $this->data['params'] = serialize($params); break; case 'default': @@ -967,8 +1098,9 @@ class Horde_Share_Object_kolab extends H $value = unserialize($value); if (isset($value['default'])) { $this->data['default'] = $value['default']; - } - break; + unset($value['default']); + } + $value = serialize($value); default: $this->data[$attribute] = $value; @@ -1017,6 +1149,7 @@ class Horde_Share_Object_kolab extends H } } elseif ($attribute == 'default') { $imap = &$this->_shareOb->getImap(); + //FIXME: Simplify with getType $annotation = $imap->getAnnotation(KOLAB_ANNOT_FOLDER_TYPE, 'value.shared', $this->_folder); if (is_a($annotation, 'PEAR_Error')) { return $annotation; @@ -1037,6 +1170,40 @@ class Horde_Share_Object_kolab extends H continue; } elseif ($attribute == 'folder') { continue; + } elseif ($attribute == 'params') { + $type = $this->getType(); + if (!is_a($type, 'PEAR_Error') && $type[0] == 'event') { + $params = @unserialize($value); + if (isset($params['fbrelevance'])) { + $result = $this->setFbrelevance($params['fbrelevance']); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + unset($params['fbrelevance']); + } + if (isset($params['xfbaccess'])) { + $result = $this->setXfbaccess($params['xfbaccess']); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + unset($params['xfbaccess']); + } + + if (empty($params)) { + continue; + } + + $value = @serialize($params); + } + + $imap = &$this->_shareOb->getImap(); + // setAnnotation apparently does not suppoort UTF-8 nor any special characters + $store = base64_encode($value); + $entry = HORDE_ANNOT_SHARE_ATTR . $attribute; + $result = $imap->setAnnotation($entry, array('value.shared' => $store), $this->_folder); + if (is_a($result, 'PEAR_Error')) { + return $result; + } } else { $imap = &$this->_shareOb->getImap(); // setAnnotation apparently does not suppoort UTF-8 nor any special characters --- NEW FILE: HK-GW-kronolith_2.2_RC1-Fbview_menu.patch --- diff -r 538d4c6293be kronolith/attendees.php --- a/kronolith/attendees.php Thu Nov 29 12:33:18 2007 +0100 +++ b/kronolith/attendees.php Thu Nov 29 12:34:39 2007 +0100 @@ -236,6 +236,7 @@ Imple::factory('ContactAutoCompleter', a $title = _("Edit attendees"); require KRONOLITH_TEMPLATES . '/common-header.inc'; +require KRONOLITH_TEMPLATES . '/fbview-menu.inc'; if ($browser->hasFeature('javascript')) { Horde::addScriptFile('open_savedattlist_win.js'); diff -r 538d4c6293be kronolith/calendars.php --- a/kronolith/calendars.php Thu Nov 29 12:33:18 2007 +0100 +++ b/kronolith/calendars.php Thu Nov 29 12:34:39 2007 +0100 @@ -134,6 +134,6 @@ Horde::addScriptFile('popup.js', 'horde' Horde::addScriptFile('popup.js', 'horde', true); $title = _("My Calendars"); require KRONOLITH_TEMPLATES . '/common-header.inc'; -require KRONOLITH_TEMPLATES . '/menu.inc'; +require KRONOLITH_TEMPLATES . '/fbview-menu.inc'; require KRONOLITH_TEMPLATES . '/calendars/calendars.inc'; require $registry->get('templates', 'horde') . '/common-footer.inc'; diff -r 538d4c6293be kronolith/lib/Kronolith.php --- a/kronolith/lib/Kronolith.php Thu Nov 29 12:33:18 2007 +0100 +++ b/kronolith/lib/Kronolith.php Thu Nov 29 12:34:39 2007 +0100 @@ -1968,6 +1968,33 @@ class Kronolith { } /** + * Builds Kronolith's list of menu items. + */ + function getFbviewMenu($returnType = 'object') + { + global $conf, $registry, $browser, $prefs; + + /* Check here for guest calendars so that we don't get multiple + * messages after redirects, etc. */ + if (!Auth::getAuth() && !count($GLOBALS['all_calendars'])) { + $GLOBALS['notification']->push(_("No calendars are available to guests.")); + } + + require_once 'Horde/Menu.php'; + $menu = new Menu(HORDE_MENU_MASK_HELP | HORDE_MENU_MASK_LOGIN); + + $menu->add(Horde::applicationUrl('attendees.php'), _("Attendees"), 'attendees.png', null, null, null, '__noselection'); + + $menu->add(Horde::applicationUrl('calendars.php'), _("Calendars"), 'calendars.png', null, null, null, '__noselection'); + + if ($returnType == 'object') { + return $menu; + } else { + return $menu->render(); + } + } + + /** * Used with usort() to sort events based on their start times. * This function ignores the date component so recuring events can * be sorted correctly on a per day basis. diff -r 538d4c6293be kronolith/templates/fbview-menu.inc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kronolith/templates/fbview-menu.inc Thu Nov 29 12:34:39 2007 +0100 @@ -0,0 +1,4 @@ + +notify(array('listeners' => 'status')) ?> --- NEW FILE: HK-GW-kronolith_2.2_RC1-Fbview_relevance.patch --- Allows to set the free/busy relevance on a calendar. diff -r e7fdad8797ac kronolith/calendars.php --- a/kronolith/calendars.php Thu Nov 29 14:36:50 2007 +0100 +++ b/kronolith/calendars.php Thu Nov 29 14:43:24 2007 +0100 @@ -39,6 +39,7 @@ case 'save': $cal = $kronolith_shares->newShare(md5(microtime())); $cal->set('name', $id); $cal->set('desc', Util::getFormData('description', '')); + $cal->set('params', serialize(array('fbrelevance' => (int) Util::getFormData('fbrelevance', 0)))); $result = $kronolith_shares->addShare($cal); if (is_a($result, 'PEAR_Error')) { $notification->push($result, 'horde.error'); @@ -50,6 +51,7 @@ case 'save': $original_name = $cal->get('name'); $cal->set('name', $id); $cal->set('desc', Util::getFormData('description', '')); + $cal->set('params', serialize(array('fbrelevance' => (int) Util::getFormData('fbrelevance', 0)))); if ($original_name != $id) { $result = $kronolith_driver->rename($original_name, $id); @@ -125,9 +127,16 @@ case 'delete': $remote_calendars = unserialize($prefs->getValue('remote_cals')); $current_user = Auth::getAuth(); $my_calendars = array(); +$fbrelevance = array(); foreach (Kronolith::listCalendars() as $id => $cal) { if ($cal->get('owner') == $current_user) { $my_calendars[$id] = $cal; + $params = @unserialize($cal->get('params')); + if (isset($params['fbrelevance'])) { + $fbrelevance[$id] = $params['fbrelevance']; + } else { + $fbrelevance[$id] = 0; + } } } diff -r e7fdad8797ac kronolith/templates/calendars/calendars.inc --- a/kronolith/templates/calendars/calendars.inc Thu Nov 29 14:36:50 2007 +0100 +++ b/kronolith/templates/calendars/calendars.inc Thu Nov 29 14:43:24 2007 +0100 @@ -8,7 +8,8 @@ var fields = []; $cal): ?> fields[''] = [ "get('name'), NLS::getCharset(), 'UTF-8')) ?>", - "get('desc'), NLS::getCharset(), 'UTF-8')) ?>"]; + "get('desc'), NLS::getCharset(), 'UTF-8')) ?>", + ""]; function newChoice() @@ -25,6 +26,7 @@ function newChoice() document.shares.edit_share.value = share; document.shares.id.value = decodeURIComponent(fields[share][0]); document.shares.description.value = decodeURIComponent(fields[share][1]); + document.shares.fbrelevance[fields[share][2]].checked = true; urlObj.innerHTML = "" + share; subscriptionUrlObj.innerHTML = "get('webroot', 'horde'), true, -1) . '/rpc.php/kronolith/" + share + ".ics"') : Util::addParameter(Horde::applicationUrl('ics.php', true, -1), 'c', '') . '" + share' ?>; } @@ -126,11 +128,55 @@ function checkSubmit() - - + + +
    + +
    + + + + + + + + + + + + + + + + + +
    + +
    +   + +
    +
    +   + + +
    +   + +
    +
    +
    + +
    + +
    + + + + - --- NEW FILE: HK-GW-kronolith_2.2_RC1-Fbview_xfb_access.patch --- diff -r 14457cf2ea2c kronolith/perms.php --- a/kronolith/perms.php Thu Nov 29 15:20:49 2007 +0100 +++ b/kronolith/perms.php Thu Nov 29 15:25:36 2007 +0100 @@ -15,6 +15,34 @@ require_once KRONOLITH_BASE . '/lib/base require_once KRONOLITH_BASE . '/lib/base.php'; require_once 'Horde/Group.php'; +function &getFbperms($share) +{ + $fbperms = array(); + $params = $share->get('params'); + if (!is_a($params, 'PEAR_Error')) { + $params = @unserialize($params); + if (isset($params['xfbaccess'])) { + $xfbusers = $params['xfbaccess']; + foreach ($xfbusers as $user) { + $fbperms[$user] = PERMS_READ; + } + } + } + return $fbperms; +} + +function setFbperms($share, $xfbusers) +{ + $fbperms = array(); + $params = $share->get('params'); + if (!is_a($params, 'PEAR_Error')) { + $params = @unserialize($params); + $params['xfbaccess'] = $xfbusers; + $params = serialize($params); + $share->set('params', $params); + } +} + $shares = &Horde_Share::singleton('kronolith'); $groups = &Group::singleton(); $auth = &Auth::singleton($conf['auth']['driver']); @@ -36,6 +64,8 @@ case 'edit': $notification->push($share, 'horde.error'); } elseif (isset($share) && Auth::getAuth() != $share->get('owner')) { exit('permission denied'); + } else { + $fbperms = getFbperms($share); } break; @@ -251,6 +281,24 @@ case 'editform': } } + // Process free/busy permissions. + $fb_names = Util::getFormData('fb_names'); + $fb_read = Util::getFormData('fb_read'); + + $fbperms = getFbperms($share); + foreach ($fb_names as $key => $user) { + if (empty($user)) { + continue; + } + + if (!empty($fb_read[$key])) { + $fbperms[$user] = PERMS_READ; + } else { + unset($fbperms[$user]); + } + } + setFbperms($share, array_keys($fbperms)); + $share->setPermission($perm, false); $share->save(); $notification->push(sprintf(_("Updated \"%s\"."), $share->get('name')), 'horde.success'); diff -r 14457cf2ea2c kronolith/templates/perms/perms.inc --- a/kronolith/templates/perms/perms.inc Thu Nov 29 15:20:49 2007 +0100 +++ b/kronolith/templates/perms/perms.inc Thu Nov 29 15:25:36 2007 +0100 @@ -355,6 +355,61 @@ + + + + + + + + + + + $fbperm) { if ($user != $owner) { ?> + + + + + + + + + + + + +hasCapability('list')): ?> + + + + + + + + + + + + --- NEW FILE: HK-JS-kronolith_2.2_RC1-Fix_library_import.patch --- Fixes a problem with importing the WebDAV library. diff -r 56b552eb6b01 kronolith/calendars.php --- a/kronolith/calendars.php Wed Nov 28 17:00:34 2007 +0100 +++ b/kronolith/calendars.php Thu Nov 29 09:54:49 2007 +0100 @@ -13,7 +13,9 @@ @define('KRONOLITH_BASE', dirname(__FILE__)); require_once KRONOLITH_BASE . '/lib/base.php'; require_once 'Horde/RPC.php'; -require_once 'Horde/RPC/webdav.php'; +if (@include_once 'HTTP/WebDAV/Server.php') { + require_once 'Horde/RPC/webdav.php'; +} // Exit if this isn't an authenticated user. if (!Auth::getAuth()) { --- NEW FILE: HK-SB-kronolith_2.2_RC1-Fbview_extra_params.patch --- This includes extra parameters into the free/busy view. The params are hardcoded so this patch won't make it upstream. diff -r 735b35f9f866 kronolith/lib/FBView.php --- a/kronolith/lib/FBView.php Thu Nov 29 11:32:43 2007 +0100 +++ b/kronolith/lib/FBView.php Thu Nov 29 11:35:20 2007 +0100 @@ -86,8 +86,8 @@ class Kronolith_FreeBusy_View { $template = new Horde_Template(); $rows = ''; foreach ($this->_requiredMembers as $member) { - $blocks = $this->_getBlocks($member, $member->getBusyPeriods(), 'busyblock.tpl', _("Busy")); - $template = new Horde_Template(); + $blocks = $this->_getBlocks($member, $member->getBusyPeriods(), 'busyblock.tpl', _("Busy"), $member->getExtraParams()); + $template = &new Horde_Template(); $template->set('blocks', $blocks); $template->set('name', $member->getName()); $rows .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/row.tpl'); @@ -107,8 +107,8 @@ class Kronolith_FreeBusy_View { $template = new Horde_Template(); $rows = ''; foreach ($this->_optionalMembers as $member) { - $blocks = $this->_getBlocks($member, $member->getBusyPeriods(), 'busyblock.tpl', _("Busy")); - $template = new Horde_Template(); + $blocks = $this->_getBlocks($member, $member->getBusyPeriods(), 'busyblock.tpl', _("Busy"), $member->getExtraParams()); + $template = &new Horde_Template(); $template->set('blocks', $blocks); $template->set('name', $member->getName()); $rows .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/row.tpl'); @@ -122,6 +122,9 @@ class Kronolith_FreeBusy_View { $template->set('legend', ''); $html .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/section.tpl'); } + + //********** + //This has been disabled in kolab-fbview. Make this optional? // Possible meeting times. $optimal->setAttribute('ORGANIZER', _("All Attendees")); @@ -144,6 +147,9 @@ class Kronolith_FreeBusy_View { $template->set('name', _("Required Attendees")); $template->set('blocks', $blocks); $rows .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/row.tpl'); + + //This has been disabled in kolab-fbview. Make this optional? + //********** // Reset locale. setlocale(LC_NUMERIC, $lc); @@ -217,7 +223,7 @@ class Kronolith_FreeBusy_View { return $instances[$view]; } - function _getBlocks($member, $periods, $blockfile, $label) + function _getBlocks($member, $periods, $blockfile, $label, $extra = array()) { $template = new Horde_Template(); $template->set('label', $label); @@ -250,6 +256,21 @@ class Kronolith_FreeBusy_View { $template->set('left', $left . '%'); $template->set('width', $width . '%'); + $template->set('evclick', ''); + + if (isset($extra[$periodStart])) { + if (!empty($extra[$periodStart]['X-UID'])) { + $link = "javascript:performAction('viewaction', '" + . addslashes($member->getName() . "#" + . String::convertCharset(base64_decode($extra[$periodStart]['X-UID']), + 'UTF-8',NLS::getCharset())) . "')"; + $template->set('evclick', $link); + } + if (!empty($extra[$periodStart]['X-SUMMARY'])) { + $template->set('label', String::convertCharset(base64_decode($extra[$periodStart]['X-SUMMARY']),'UTF-8', + NLS::getCharset())); + } + } $blocks .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/' . $blockfile); } else { diff -r 735b35f9f866 kronolith/templates/fbview/busyblock.tpl --- a/kronolith/templates/fbview/busyblock.tpl Thu Nov 29 11:32:43 2007 +0100 +++ b/kronolith/templates/fbview/busyblock.tpl Thu Nov 29 11:35:20 2007 +0100 @@ -1,1 +1,1 @@ - + --- NEW FILE: HK-SB-kronolith_2.2_RC1-Fbview_save_attendees.patch --- Provides a patch to store the list of attendees in the user preferences. This is a broken patch that has been rejected upstream (http://bugs.horde.org/ticket/?id=4788). This should be solved using Horde::Groups. diff -r 848f241f83e0 kronolith/attendees.php --- a/kronolith/attendees.php Thu Nov 29 10:56:04 2007 +0100 +++ b/kronolith/attendees.php Thu Nov 29 11:32:43 2007 +0100 @@ -155,6 +155,16 @@ case 'clear': $attendees = array(); $_SESSION['kronolith']['attendees'] = $attendees; break; + +case 'save': + if (empty($attendees)) { + break; + } + $savedattlist = unserialize($prefs->getValue('saved_attendee_list')); + $savedattlist[] = array_keys($attendees); + $prefs->setValue('saved_attendee_list', serialize($savedattlist)); + $notification->push(_('Successfully saved attendee list'), 'horde.success'); + break; } // Get the current Free/Busy view; default to the 'day' view if none specified. @@ -226,6 +236,14 @@ Imple::factory('ContactAutoCompleter', a $title = _("Edit attendees"); require KRONOLITH_TEMPLATES . '/common-header.inc'; + +if ($browser->hasFeature('javascript')) { + Horde::addScriptFile('open_savedattlist_win.js'); + $savedattlist_url = 'javascript:open_savedattlist_win();'; +} else { + $savedattlist_url = Horde::applicationUrl('savedattlist.php'); +} + $notification->notify(array('status')); require KRONOLITH_TEMPLATES . '/attendees/attendees.inc'; require $registry->get('templates', 'horde') . '/common-footer.inc'; diff -r 848f241f83e0 kronolith/config/prefs.php.dist --- a/kronolith/config/prefs.php.dist Thu Nov 29 10:56:04 2007 +0100 +++ b/kronolith/config/prefs.php.dist Thu Nov 29 11:32:43 2007 +0100 @@ -465,3 +465,11 @@ if ($GLOBALS['registry']->hasMethod('con 'shared' => false, 'type' => 'implicit' ); + +$_prefs['saved_attendee_list'] = array( + 'value' => 'a:0:{}', + 'locked' => false, + 'shared' => false, + 'type' => 'implicit', + 'desc' => _("A saved list of attendees") +); diff -r 848f241f83e0 kronolith/savedattlist.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kronolith/savedattlist.php Thu Nov 29 11:32:43 2007 +0100 @@ -0,0 +1,77 @@ + + * Stuart Binge + * + * See the enclosed file COPYING for license information (GPL). If you + * did not receive this file, see http://www.fsf.org/copyleft/gpl.html. + */ + + at define('KRONOLITH_BASE', dirname(__FILE__)); +require_once KRONOLITH_BASE . '/lib/base.php'; +require_once KRONOLITH_BASE . '/lib/FBView.php'; + +$title = _('Load Attendee List'); + +Horde::addScriptFile('tooltip.js', 'horde'); +require KRONOLITH_TEMPLATES . '/common-header.inc'; + +// Get our list of saved attendees +$savedattlist = unserialize($prefs->getValue('saved_attendee_list')); + +// Preformat our image urls +$delimg = Horde::img('delete.png', _("Remove List"), null, $GLOBALS['registry']->getImageDir('horde')); +$loadimg = Horde::img('tree/folder.png', _("Load List"), null, $GLOBALS['registry']->getImageDir('horde')); + +// Get our Action ID & Value. This specifies what action the user initiated. +$actionID = Util::getFormData('actionID', false); +$actionValue = Util::getFormData('actionValue', false); +if (!$actionID) { + $actionID = (Util::getFormData('addNew', false) ? 'add' : false); + $actionValue = Util::getFormData('newAttendees', ''); +} + +// Perform the specified action, if there is one. +switch ($actionID) { +case 'remove': + // Remove the specified attendee + if (array_key_exists($actionValue, $savedattlist)) { + unset($savedattlist[$actionValue]); + $prefs->setValue('saved_attendee_list', serialize($savedattlist)); + } + + break; + +case 'dismiss': + // Make sure we're actually allowed to dismiss + if (!$allow_dismiss) break; + + // Close the attendee window + global $browser; + + if ($browser->hasFeature('javascript')) { + Util::closeWindowJS(); + } else { + $url = Util::getFormData('url'); + + if (!empty($url)) { + $location = Horde::applicationUrl($url, true); + } else { + $url = Util::addParameter($prefs->getValue('defaultview') . '.php', 'month', Util::getFormData('month')); + $url = Util::addParameter($url, 'year', Util::getFormData('year')); + $location = Horde::applicationUrl($url, true); + } + + // Make sure URL is unique. + $location = Util::addParameter($location, 'unique', md5(microtime())); + + header('Location: ' . $location); + } + break; +} + +$form_handler = Horde::applicationUrl('savedattlist.php'); +require KRONOLITH_TEMPLATES . '/savedattlist/savedattlist.inc'; +require $GLOBALS['registry']->get('templates', 'horde') . '/common-footer.inc'; diff -r 848f241f83e0 kronolith/templates/attendees/attendees.inc --- a/kronolith/templates/attendees/attendees.inc Thu Nov 29 10:56:04 2007 +0100 +++ b/kronolith/templates/attendees/attendees.inc Thu Nov 29 11:32:43 2007 +0100 @@ -92,6 +92,8 @@ function switchDateView(view, timestamp)
    " /> " /> + " onclick="" /> + " onclick="performAction('save', '');" /> " />
    diff -r 848f241f83e0 kronolith/templates/javascript/open_savedattlist_win.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kronolith/templates/javascript/open_savedattlist_win.js Thu Nov 29 11:32:43 2007 +0100 @@ -0,0 +1,36 @@ + + diff -r 848f241f83e0 kronolith/templates/savedattlist/savedattlist.inc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kronolith/templates/savedattlist/savedattlist.inc Thu Nov 29 11:32:43 2007 +0100 @@ -0,0 +1,68 @@ + + + +
    + + + + +
    + +
      +
     
    + getImageDir('horde')) . ' ' . _("Extended free/busy access") ?> +      
      + /> + +     
    + + + + + +   + + +     
     
     
     
    + + + + + + + + + + + + + + + + $list): ?> + + ', Horde::link("javascript:updateMessage('" . addslashes(implode(', ', $list)) . "')", _("Load this list")), $loadimg, ""; + ?> + ', Horde::link("javascript:performAction('remove', '" . $index . "')", _("Remove this list")), $delimg, ""; + ?> + + + +
    + + --- NEW FILE: README_Fbview_extra_params.patch --- DESCRIPTION: Allows to display extended parameters of events in the free/busy list. The patch implements this is a Kolab specific fashion and thus it makes no sense to submit it upstream. IMPACT: The free/busy view won't display extended attributes. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_RC1/summary HISTORY The patch has been originally developed by Stuart Binge (Codefusion). --- NEW FILE: README_Fbview_menu.patch --- DESCRIPTION: Adds a reduced menu to the attendees view. This won't make it upstream since the the view is used by upstream as a popup and does not need a menu. IMPACT: The menu will be missing in fbview. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_RC1/summary HISTORY --- NEW FILE: README_Fbview_relevance.patch --- DESCRIPTION: Allows to set the free/busy relevance of a calendar. This is Kolab specific and won't make it upstream in this form. IMPACT: Without this patch you won't be able to set the free/busy relevance of a calendar in fbview. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_RC1/summary HISTORY --- NEW FILE: README_Fbview_save_attendees.patch --- DESCRIPTION: This allows to store the list of attendees in the user preferences. The patch implements this in a hackish way and it was consequently rejected upstream (http://bugs.horde.org/ticket/?id=4788). This should be solved using Horde::Groups or the Turba API. IMPACT: You won't be able to store the list of attendees. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_RC1/summary HISTORY The patch has been originally developed by Stuart Binge (Codefusion). Horde issue #4788 --- NEW FILE: README_Fbview_xfb_access.patch --- DESCRIPTION: Allows to set the access rules for extended free busy parameters. This is Kolab specific and won't make it upstream in this form. IMPACT: Without this patch you won't be able to modify the access rights in fbview. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_RC1/summary HISTORY --- NEW FILE: README_Fbview_xfb_concept.patch --- DESCRIPTION: Adds routines in the Horde::Share library to store the free/busy relevance and the free/busy access settings. This could be submitted upstream after some restructuring. IMPACT: Setting/Getting these parameters won't work in fbview. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_RC1/summary HISTORY --- NEW FILE: README_Fix_library_import.patch --- DESCRIPTION: A commit shortly before the release of RC1 did break the share editing in kronolith and nag in case no Webdav PEAR package is available. IMPACT: You won't be able to edit calendars or tasklists. REFERENCES: Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/horde/HORDE_3_2_RC1/summary HISTORY Fix generated from an upstream commit after RC1. From cvs at kolab.org Mon Dec 3 17:36:04 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 17:36:04 +0100 (CET) Subject: gunnar: server/patches/horde HK-GW-kronolith_2.2_RC1-Fbview_menu.patch, 1.1, NONE README_Fbview_menu.patch, 1.1, NONE Message-ID: <20071203163604.59398600165@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde In directory doto:/tmp/cvs-serv28500 Removed Files: HK-GW-kronolith_2.2_RC1-Fbview_menu.patch README_Fbview_menu.patch Log Message: This is the only fbview specific patch. --- HK-GW-kronolith_2.2_RC1-Fbview_menu.patch DELETED --- --- README_Fbview_menu.patch DELETED --- From cvs at kolab.org Mon Dec 3 18:10:32 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 18:10:32 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/templates service.tpl, 1.15, 1.16 Message-ID: <20071203171032.2C4BE600165@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/templates In directory doto:/tmp/cvs-serv29359/kolab-webadmin/kolab-webadmin/php/admin/templates Modified Files: service.tpl Log Message: Removed obsolete explanation about enabling legacy services. Index: service.tpl =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/templates/service.tpl,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- service.tpl 21 Nov 2007 14:26:38 -0000 1.15 +++ service.tpl 3 Dec 2007 17:10:30 -0000 1.16 @@ -25,12 +25,6 @@ {/if}

    {tr msg="Enable or Disable individual Services"}

    -
    -

    {tr msg="Using legacy services poses a security thread due to leakage of cleartext passwords, lack of authenticity and privacy."}

    -

    {tr msg="The legacy Freebusy Support (FTP and HTTP) is only required for Outlook2000 clients. Under all other circumstances it is advised to use the server-side freebusy creation feature over secure HTTP instead (this is enabled by default and may not be deactivated)."}

    -

    {tr msg="Further details with regards to security considerations might be available from the Kolab Project."}

    -
    -

    {tr msg="Services"}

    From cvs at kolab.org Mon Dec 3 18:10:32 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 18:10:32 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin ChangeLog,1.67,1.68 Message-ID: <20071203171032.2DCBF600D67@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin In directory doto:/tmp/cvs-serv29359/kolab-webadmin/kolab-webadmin Modified Files: ChangeLog Log Message: Removed obsolete explanation about enabling legacy services. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/ChangeLog,v retrieving revision 1.67 retrieving revision 1.68 diff -u -d -r1.67 -r1.68 --- ChangeLog 3 Dec 2007 11:27:19 -0000 1.67 +++ ChangeLog 3 Dec 2007 17:10:30 -0000 1.68 @@ -3,6 +3,9 @@ * www/admin/user/user.php.in: Removed resource password handling which is unused since server 2.1. + * php/admin/templates/service.tpl: Removed obsolete explanation + about enabling legacy services. + 2007-11-21 Thomas Arendsen Hein * www/admin/user/user.php.in: Renamed "Free/Busy future" to From cvs at kolab.org Mon Dec 3 18:10:32 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 18:10:32 +0100 (CET) Subject: thomas: server release-notes.txt,1.191,1.192 Message-ID: <20071203171032.2D14460016D@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv29359 Modified Files: release-notes.txt Log Message: Removed obsolete explanation about enabling legacy services. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.191 retrieving revision 1.192 diff -u -d -r1.191 -r1.192 --- release-notes.txt 3 Dec 2007 11:27:19 -0000 1.191 +++ release-notes.txt 3 Dec 2007 17:10:30 -0000 1.192 @@ -95,6 +95,8 @@ Removed resource password handling which is unused since server 2.1. + Removed obsolete explanation about enabling legacy services. + kolab/issue1711 (extra space after first name when editing users or admins) kolab/issue1912 (some field descriptions missing in web admin From cvs at kolab.org Mon Dec 3 18:16:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 18:16:36 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/es/LC_MESSAGES messages.po, 1.14, 1.15 Message-ID: <20071203171636.8CB47600165@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/es/LC_MESSAGES In directory doto:/tmp/cvs-serv29647/es/LC_MESSAGES Modified Files: messages.po Log Message: Ran kolab-webadmin/kolab-webadmin/php/admin/locale/extract_messages Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/es/LC_MESSAGES/messages.po,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- messages.po 21 Nov 2007 14:26:38 -0000 1.14 +++ messages.po 3 Dec 2007 17:16:34 -0000 1.15 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Kolab-Webadmin Spanish\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-21 15:22+0100\n" +"POT-Creation-Date: 2007-12-03 18:11+0100\n" "PO-Revision-Date: 2007-11-21 14:56+0100\n" "Last-Translator: Aron Galdon \n" "Language-Team: Kolab development coordination \n" @@ -19,7 +19,7 @@ msgstr "La dirección con DN" [...1645 lines suppressed...] +#~ msgstr "" +#~ "El soporte heredado Freebusy (FTP y HTTP) sólo se requiere para los " +#~ "clientesOutlook2000. Bajo todas las otras circunstancias se recomienda " +#~ "usar la característica de creación freebusy en el lado del servidor sobre " +#~ "HTTP seguro en su lugar (esto está habilitado por defecto y no debería de " +#~ "ser desactivado)." + +#~ msgid "" +#~ "Further details with regards to security considerations might be " +#~ "available from the Kolab Project." +#~ msgstr "" +#~ "Más detalles con respecto a las consideraciones de seguridad deben de " +#~ "estar disponibles desde el proyecto " +#~ "Kolab." + +#~ msgid "Could not encrypt password: " +#~ msgstr "No se puede encriptar la contraseña: " #~ msgid "(FTP Server)" #~ msgstr "(Servidor FTP)" From cvs at kolab.org Mon Dec 3 18:16:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 18:16:36 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES messages.po, 1.33, 1.34 Message-ID: <20071203171636.9404060016D@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES In directory doto:/tmp/cvs-serv29647/de/LC_MESSAGES Modified Files: messages.po Log Message: Ran kolab-webadmin/kolab-webadmin/php/admin/locale/extract_messages Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/de/LC_MESSAGES/messages.po,v retrieving revision 1.33 retrieving revision 1.34 diff -u -d -r1.33 -r1.34 --- messages.po 21 Nov 2007 14:26:38 -0000 1.33 +++ messages.po 3 Dec 2007 17:16:34 -0000 1.34 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Kolab-Webadmin German\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-21 15:22+0100\n" +"POT-Creation-Date: 2007-12-03 18:11+0100\n" "PO-Revision-Date: 2007-11-21 15:23+0100\n" "Last-Translator: Thomas Arendsen Hein \n" "Language-Team: Kolab development coordination \n" @@ -20,7 +20,7 @@ msgstr "Die Adresse mit DN" [...1646 lines suppressed...] +#~ "is enabled by default and may not be deactivated)." +#~ msgstr "" +#~ "Die Frei/Belegt-Unterstützung für Altsysteme (FTP und HTTP) wird nur für " +#~ "Outlook2000-Klienten benötigt. Unter allen Umständen sollten Sie die " +#~ "serverseitige Erzeugung von Frei/Belegt-Listen über sicheres HTTP " +#~ "verwenden (dies ist von Haus aus eingestellt und kann nicht deaktiviert " +#~ "werden)." + +#~ msgid "" +#~ "Further details with regards to security considerations might be " +#~ "available from the Kolab Project." +#~ msgstr "" +#~ "Weitere Details zu Sicherheitsfragen können Sie beim Kolab Projekt finden." + +#~ msgid "Could not encrypt password: " +#~ msgstr "Konnte Passwort nicht verschlüsseln: " #~ msgid "(FTP Server)" #~ msgstr "(FTP-Server)" From cvs at kolab.org Mon Dec 3 18:16:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 18:16:36 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/it/LC_MESSAGES messages.po, 1.16, 1.17 Message-ID: <20071203171636.9B98E600D70@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/it/LC_MESSAGES In directory doto:/tmp/cvs-serv29647/it/LC_MESSAGES Modified Files: messages.po Log Message: Ran kolab-webadmin/kolab-webadmin/php/admin/locale/extract_messages Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/it/LC_MESSAGES/messages.po,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- messages.po 21 Nov 2007 14:26:38 -0000 1.16 +++ messages.po 3 Dec 2007 17:16:34 -0000 1.17 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Kolab-Webadmin Italian\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-21 15:22+0100\n" +"POT-Creation-Date: 2007-12-03 18:11+0100\n" "PO-Revision-Date: 2007-11-21 14:56+0100\n" "Last-Translator: Yvette Agostini \n" "Language-Team: Kolab development coordination \n" @@ -19,7 +19,7 @@ msgstr "L'indirizzo con il DN" [...1650 lines suppressed...] +#~ "tramite servizi obsoleti (FTP e HTTP) è richiesto solo per i client " +#~ "Outlook2000. In tutte le altre circostanze invece è consigliato usare la " +#~ "funzionalità di creazione di liste di disponibilità lato server tramite " +#~ "HTTP sicuro (HTTPS) (questo è abilitato di default e non può essere " +#~ "disattivato)." + +#, fuzzy +#~ msgid "" +#~ "Further details with regards to security considerations might be " +#~ "available from the Kolab Project." +#~ msgstr "" +#~ "Maggiori dettagli a riguardo alle considerazioni di sicurezza sono " +#~ "disponibili su internet sul webserver Kolab" + +#~ msgid "Could not encrypt password: " +#~ msgstr "E' impossibile cifrare la password" #~ msgid "(FTP Server)" #~ msgstr "(Server FTP)" From cvs at kolab.org Mon Dec 3 18:16:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 18:16:36 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/fr/LC_MESSAGES messages.po, 1.19, 1.20 Message-ID: <20071203171636.94CCA600D6D@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/fr/LC_MESSAGES In directory doto:/tmp/cvs-serv29647/fr/LC_MESSAGES Modified Files: messages.po Log Message: Ran kolab-webadmin/kolab-webadmin/php/admin/locale/extract_messages Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/fr/LC_MESSAGES/messages.po,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- messages.po 21 Nov 2007 14:26:38 -0000 1.19 +++ messages.po 3 Dec 2007 17:16:34 -0000 1.20 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Kolab-Webadmin French\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-21 15:22+0100\n" +"POT-Creation-Date: 2007-12-03 18:11+0100\n" "PO-Revision-Date: 2007-11-21 14:56+0100\n" "Last-Translator: Jean-Michel LACROIX \n" "Language-Team: Kolab development coordination \n" @@ -20,7 +20,7 @@ msgstr "L'adresse de messagerie avec le DN" [...1668 lines suppressed...] +#~ "is enabled by default and may not be deactivated)." +#~ msgstr "" +#~ "Le support de l'ancien mode des options de disponibilités (FTP et HTTP) " +#~ "sont seulement nécessaire pour les clients Outlook2000 clients. Dans tout " +#~ "les autres cas il est fortement recommandé d'utiliser le création des " +#~ "options de disponibilité au niveau du serveur en HTTPS (Ceci est activé " +#~ "par défaut et ne peut être désactivé )." + +#~ msgid "" +#~ "Further details with regards to security considerations might be " +#~ "available from the Kolab Project." +#~ msgstr "" +#~ "De plus amples détails sur le mesures de sécurités sont disponibles sur " +#~ "le site internet a l'adresse Kolab." + +#~ msgid "Could not encrypt password: " +#~ msgstr "Impossible de crypter le mot de passe: " #~ msgid "(FTP Server)" #~ msgstr "(Serveur FTP)" From cvs at kolab.org Mon Dec 3 18:16:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 18:16:36 +0100 (CET) Subject: thomas: server/kolab-webadmin/kolab-webadmin/php/admin/locale/nl/LC_MESSAGES messages.po, 1.28, 1.29 Message-ID: <20071203171636.A1F59600D73@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/nl/LC_MESSAGES In directory doto:/tmp/cvs-serv29647/nl/LC_MESSAGES Modified Files: messages.po Log Message: Ran kolab-webadmin/kolab-webadmin/php/admin/locale/extract_messages Index: messages.po =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/locale/nl/LC_MESSAGES/messages.po,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- messages.po 21 Nov 2007 14:26:38 -0000 1.28 +++ messages.po 3 Dec 2007 17:16:34 -0000 1.29 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Kolab-Webadmin Dutch\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-21 15:22+0100\n" +"POT-Creation-Date: 2007-12-03 18:11+0100\n" "PO-Revision-Date: 2007-11-21 14:56+0100\n" "Last-Translator: Richard Bos \n" "Language-Team: Kolab development coordination \n" @@ -20,7 +20,7 @@ msgstr "Het adres met DN" [...1637 lines suppressed...] +#~ "the server-side freebusy creation feature over secure HTTP instead (this " +#~ "is enabled by default and may not be deactivated)." +#~ msgstr "" +#~ "Het verouderde Freebusy support (gebaseerd op ftp en http) is alleen " +#~ "nodig voor Outlook200 clients. Onder alle omstandigheden is het beter om " +#~ "de frrebusy informatie aan te laten maken op de server middels https (dit " +#~ "is default aktief en kan niet worden uitgezet)." + +#~ msgid "" +#~ "Further details with regards to security considerations might be " +#~ "available from the Kolab Project." +#~ msgstr "" +#~ "Meer informatie betreffende security is beschikbaat op Kolab Project." + +#~ msgid "Could not encrypt password: " +#~ msgstr "Kon wachtwoord niet versleutelen:" #~ msgid "(FTP Server)" #~ msgstr "(FTP Server)" From cvs at kolab.org Mon Dec 3 18:22:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 3 Dec 2007 18:22:44 +0100 (CET) Subject: thomas: server README.1st,1.68,1.69 Message-ID: <20071203172244.14042600165@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv29814 Modified Files: README.1st Log Message: Added upgrade instructions for 2.2b2 -> b3 (remove kolab-horde-framework) Index: README.1st =================================================================== RCS file: /kolabrepository/server/README.1st,v retrieving revision 1.68 retrieving revision 1.69 diff -u -d -r1.68 -r1.69 --- README.1st 30 Nov 2007 15:11:00 -0000 1.68 +++ README.1st 3 Dec 2007 17:22:41 -0000 1.69 @@ -123,7 +123,10 @@ Upgrade from 2.2-beta2 to 2.2-beta3 ----------------------------------- -Nothing special has to be done for this upgrade. +After upgrading, you should remove the package "kolab-horde-framework", +which is no longer needed: + +# /kolab/bin/openpkg rpm -e kolab-horde-framework Upgrade from 2.2-beta1 to 2.2-beta2 From cvs at kolab.org Tue Dec 4 08:34:21 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 4 Dec 2007 08:34:21 +0100 (CET) Subject: richard: server/kolabd/kolabd/templates convert_resmgr_conf2config.pl, NONE, 1.1 Message-ID: <20071204073421.3BB26600174@lists.intevation.de> Author: richard Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv20006/templates Added Files: convert_resmgr_conf2config.pl Log Message: The script convert_resmgr_conf2config.pl is to be used to convert the templates/resmgr.conf.template file into config.php, which is than to be copied to kolab-filter cvs module. --- NEW FILE: convert_resmgr_conf2config.pl --- #!/usr/bin/perl # # This code has be copied from: # server/kolabconf/lib/Kolab/Conf.pm cvs version 1.12 # # $Id: convert_resmgr_conf2config.pl,v 1.1 2007/12/04 07:34:19 richard Exp $ # use IO::File; $Kolab::config{"kolabfilter-verify-from-header"} = "true"; $Kolab::config{"kolabfilter-allow-sender-header"} = "true"; $Kolab::config{"kolabfilter-reject-forged-from-header"} = "false"; # The script has to be run from: # server/kolabd/kolabd/templates my $template; $template = IO::File->new('resmgr.conf.template.in', 'r'); my $skip = 0; my $keep = 0; while (<$template>) { #Eat the meta data sections if (/^KOLAB_META_START$/) { my $found_end; while (!$found_end) { $_ = <$template>; $found_end = /^KOLAB_META_END$/; } $_ = <$template>; } s%\@{3}connect_addr\@{3}%localhost%g; s%\@{3}local_addr\@{3}%localhost%g; s%\@{3}postfix-mydomain\@{3}%example.com%g; s%\@{3}ldap_uri\@{3}%ldaps://ldap.example.com%g; s%\@{3}base_dn\@{3}%dc=example,dc=com%g; s%\@{3}php_dn\@{3}%cn=nobody,cn=internal,dc=example,dc=com%g; s%\@{3}php_pw\@{3}%xyz%g; s%\@{3}postfix-mydomain\@{3}%example.com%g; s%\@{3}kolabhost.*\@{3}%one.example.com,two.example.com,three.example.com%g; s%\@{3}base_dn\@{3}%dc=example,dc=com%g; s%\@{3}calendar_id\@{3}%calendar%g; s%\@{3}calendar_pw\@{3}%zyx%g; s%\@{3}fqdnhostname\@{3}%localhost%g; s%\@webserver_web_prefix\@%%g; s%\@resmgr_logdir\@%/kolab/var/kolab-filter/log%g; s%\@resmgr_tmpdir\@%%g; s%\@sysconfdir\@%/kolab/etc%g; if (/\@{3}if (\S+?)\@{3}/) { # print STDERR "DEBUG: " . $1 . "\n"; if ($Kolab::config{$1} && lc($Kolab::config{$1}) ne "false" ) { # Keep text $keep = 1; } else { # Skip text $skip++; $keep = 0; } s/\@{3}if (\S+?)\@{3}\n?//; } elsif (/\@{3}else\@{3}/) { if( $keep == 0 ) { # Now keep $keep = 1; $skip--; } else { # Now skip $keep = 0; $skip++; } s/\@{3}else\@{3}\n?//; } elsif (/\@{3}endif\@{3}/) { ($skip > 0) && $skip--; s/\@{3}endif\@{3}\n?//; } else { while (/\@{3}([^\s\@]+?)(\|(.+?)\((.*)\))?\@{3}/) { my $attr = $1; my $fct = $3; my $args = $4; # print STDERR "attr=\"$attr\", fct=\"$fct\", args=\"$args\"\n"; # print STDERR "config=" . $Kolab::config{$attr} . "\n"; $val = $Kolab::config{$attr}; s/\@{3}([^\s\@]+?)(\|.+?)?\@{3}/$val/; last if ( $val eq "\@{3}$attr\@{3}" ); # prevent endless loop } } if ($skip == 0) { # Change the resulting string ('true'='TRUE') in just true # If there is a better a way, to achieve the same result please # update the script. s/\('//; s/'=='TRUE'\)//; print $_; } } $template->close; From cvs at kolab.org Tue Dec 4 08:34:21 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 4 Dec 2007 08:34:21 +0100 (CET) Subject: richard: server/kolabd/kolabd ChangeLog,1.128,1.129 Message-ID: <20071204073421.3C199600D5E@lists.intevation.de> Author: richard Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv20006 Modified Files: ChangeLog Log Message: The script convert_resmgr_conf2config.pl is to be used to convert the templates/resmgr.conf.template file into config.php, which is than to be copied to kolab-filter cvs module. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.128 retrieving revision 1.129 diff -u -d -r1.128 -r1.129 --- ChangeLog 3 Dec 2007 11:27:19 -0000 1.128 +++ ChangeLog 4 Dec 2007 07:34:18 -0000 1.129 @@ -1,3 +1,9 @@ +2007-12-04 Richard Bos + * templates/convert_resmgr_conf2config.pl: added. + The script is to be used to convert the templates/resmgr.conf.template + file into config.php, which is than to be copied to + kolab-filter cvs module. + 2007-12-03 Thomas Arendsen Hein * kolab_bootstrap.in, templates/resmgr.conf.template.in: Removed From cvs at kolab.org Thu Dec 6 09:14:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 6 Dec 2007 09:14:44 +0100 (CET) Subject: gunnar: server/patches/php/php-5.2.3 - New directory Message-ID: <20071206081444.0298F600D60@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/php/php-5.2.3 In directory doto:/tmp/cvs-serv31793/php-5.2.3 Log Message: Directory /kolabrepository/server/patches/php/php-5.2.3 added to the repository From cvs at kolab.org Thu Dec 6 09:14:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 6 Dec 2007 09:14:44 +0100 (CET) Subject: gunnar: server/patches/php/php-5.2.5 - New directory Message-ID: <20071206081444.053A3600D64@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/php/php-5.2.5 In directory doto:/tmp/cvs-serv31793/php-5.2.5 Log Message: Directory /kolabrepository/server/patches/php/php-5.2.5 added to the repository From cvs at kolab.org Thu Dec 6 09:14:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 6 Dec 2007 09:14:44 +0100 (CET) Subject: gunnar: server/patches/php/php-5.2.4 - New directory Message-ID: <20071206081444.04140600D61@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/php/php-5.2.4 In directory doto:/tmp/cvs-serv31793/php-5.2.4 Log Message: Directory /kolabrepository/server/patches/php/php-5.2.4 added to the repository From cvs at kolab.org Thu Dec 6 09:17:25 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 6 Dec 2007 09:17:25 +0100 (CET) Subject: gunnar: server/patches/php README_Annotations.patch, NONE, 1.1 KOLAB_php_5.2.3_Annotations.patch, 1.1, NONE KOLAB_php_5.2.4_Annotations.patch, 1.1, NONE README, 1.1, NONE Message-ID: <20071206081725.E060B600D60@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/php In directory doto:/tmp/cvs-serv31909 Added Files: README_Annotations.patch Removed Files: KOLAB_php_5.2.3_Annotations.patch KOLAB_php_5.2.4_Annotations.patch README Log Message: Reorganize this patch directory and add the php-5.2.5 patch. --- NEW FILE: README_Annotations.patch --- DESCRIPTION: This provides the imap_getannotation and imap_setannotation functions within PHP. This is needed for imap caching in the free/busy system of Kolab-2.1. In addition this patch is required to accelerate Horde. IMPACT: The free/busy system won't work without this patch. Horde will run slower if not using this patch. REFERENCES: Kolab bug tracker merge: https://intevation.de/roundup/kolab/merge16 Wiki page: http://wiki.kolab.org/index.php/Template:Patches_php Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/kolab/patches/php/summary HISTORY This patch depends on the imap c-client patch since PHP uses the c-client library. This can only move forward once the c-client patch has been integrated. --- KOLAB_php_5.2.3_Annotations.patch DELETED --- --- KOLAB_php_5.2.4_Annotations.patch DELETED --- --- README DELETED --- From cvs at kolab.org Thu Dec 6 09:17:25 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 6 Dec 2007 09:17:25 +0100 (CET) Subject: gunnar: server/patches/php/php-5.2.3 KOLAB_Annotations.patch, NONE, 1.1 Message-ID: <20071206081725.E353A600D61@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/php/php-5.2.3 In directory doto:/tmp/cvs-serv31909/php-5.2.3 Added Files: KOLAB_Annotations.patch Log Message: Reorganize this patch directory and add the php-5.2.5 patch. --- NEW FILE: KOLAB_Annotations.patch --- Provides get/set ANNOTATIONS support to php. [Version: 5.2.3] diff -r 3bd462c02589 ext/imap/php_imap.c --- a/ext/imap/php_imap.c Sat Sep 29 12:38:38 2007 +0200 +++ b/ext/imap/php_imap.c Sat Sep 29 12:47:11 2007 +0200 @@ -129,6 +129,7 @@ zend_function_entry imap_functions[] = { PHP_FE(imap_binary, NULL) PHP_FE(imap_utf8, NULL) PHP_FE(imap_status, NULL) + PHP_FE(imap_status_current, NULL) PHP_FE(imap_mailboxmsginfo, NULL) PHP_FE(imap_setflag_full, NULL) PHP_FE(imap_clearflag_full, NULL) @@ -155,6 +156,10 @@ zend_function_entry imap_functions[] = { PHP_FE(imap_setacl, NULL) PHP_FE(imap_getacl, NULL) #endif +#if defined(HAVE_IMAP2005) + PHP_FE(imap_setannotation, NULL) + PHP_FE(imap_getannotation, NULL) +#endif PHP_FE(imap_mail, NULL) @@ -415,6 +420,30 @@ void mail_getacl(MAILSTREAM *stream, cha #endif + +#if defined(HAVE_IMAP2005) +/* {{{ mail_getannotation + * + * Mail GET_ANNOTATION callback + * Called via the mail_parameter function in c-client:src/c-client/mail.c + */ +void mail_getannotation(MAILSTREAM *stream, ANNOTATION *alist) +{ + ANNOTATION_VALUES *cur; + + TSRMLS_FETCH(); + + /* walk through the ANNOTATION_VALUES */ + + for(cur = alist->values; cur; cur = cur->next) { + if (cur->value) + add_assoc_stringl(IMAPG(imap_annotation_list), cur->attr, cur->value, strlen(cur->value), 1); + else + add_assoc_stringl(IMAPG(imap_annotation_list), cur->attr, "", 0, 1); + } +} +/* }}} */ +#endif /* {{{ PHP_GINIT_FUNCTION */ @@ -1092,6 +1121,122 @@ PHP_FUNCTION(imap_getacl) #endif /* HAVE_IMAP2000 || HAVE_IMAP2001 */ +#if defined(HAVE_IMAP2005) + +/* {{{ proto bool imap_setannotation(resource stream_id, string mailbox, string entry, string attr, string value) + Sets an annotation for a given mailbox */ +PHP_FUNCTION(imap_setannotation) +{ + zval **streamind, **mailbox, **entry, **attr, **value; + pils *imap_le_struct; + long ret; + + // TODO: Use zend_parse_parameters here + if (ZEND_NUM_ARGS() != 5 || zend_get_parameters_ex(5, &streamind, &mailbox, &entry, &attr, &value) == FAILURE) { + ZEND_WRONG_PARAM_COUNT(); + } + + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); + + convert_to_string_ex(mailbox); + convert_to_string_ex(entry); + convert_to_string_ex(attr); + convert_to_string_ex(value); + + // create annotation object + ANNOTATION *annotation = mail_newannotation(); + if (!annotation) + RETURN_FALSE; + annotation->values = mail_newannotationvalue(); + if (!annotation->values) { + mail_free_annotation(&annotation); + RETURN_FALSE; + } + + // fill in annotation values + annotation->mbox = Z_STRVAL_PP(mailbox); + annotation->entry = Z_STRVAL_PP(entry); + annotation->values->attr = Z_STRVAL_PP(attr); + annotation->values->value = Z_STRVAL_PP(value); + + ret = imap_setannotation(imap_le_struct->imap_stream, annotation); + + // make sure mail_free_annotation doesn't free our variables + annotation->mbox = NULL; + annotation->entry = NULL; + annotation->values->attr = NULL; + annotation->values->value = NULL; + mail_free_annotation(&annotation); + + RETURN_BOOL(ret); +} +/* }}} */ + +/* {{{ proto array imap_getannotation(resource stream_id, string mailbox, string entry, string attr) + Gets the ACL for a given mailbox */ +PHP_FUNCTION(imap_getannotation) +{ + zval **streamind, **mailbox, **entry, **attr; + pils *imap_le_struct; + long ret; + + if(ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &streamind, &mailbox, &entry, &attr) == FAILURE) { + ZEND_WRONG_PARAM_COUNT(); + } + + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); + + convert_to_string_ex(mailbox); + convert_to_string_ex(entry); + convert_to_string_ex(attr); + + /* initializing the special array for the return values */ + if (array_init(return_value) == FAILURE) { + RETURN_FALSE; + } + + // fillup calling parameters + STRINGLIST *entries = mail_newstringlist(); + if (!entries) + RETURN_FALSE; + + STRINGLIST *cur = entries; + cur->text.data = (unsigned char *)cpystr(Z_STRVAL_PP(entry)); + cur->text.size = Z_STRLEN_PP(entry); + cur->next = NIL; + + STRINGLIST *attributes = mail_newstringlist(); + cur = attributes; + cur->text.data = (unsigned char *)cpystr (Z_STRVAL_PP(attr)); + cur->text.size = Z_STRLEN_PP(attr); + cur->next = NIL; + + /* initializing the special array for the return values */ + if (array_init(return_value) == FAILURE) { + mail_free_stringlist(&entries); + mail_free_stringlist(&attributes); + RETURN_FALSE; + } + + IMAPG(imap_annotation_list) = return_value; + + /* set the callback for the GET_ANNOTATION function */ + mail_parameters(NIL, SET_ANNOTATION, (void *) mail_getannotation); + ret = imap_getannotation(imap_le_struct->imap_stream, Z_STRVAL_PP(mailbox), entries, attributes); + + mail_free_stringlist(&entries); + mail_free_stringlist(&attributes); + + if (!ret) { + zval_dtor(return_value); + RETURN_FALSE; + } + + IMAPG(imap_annotation_list) = NIL; +} +/* }}} */ + +#endif /* HAVE_IMAP2005 */ /* {{{ proto bool imap_expunge(resource stream_id) Permanently delete all messages marked for deletion */ @@ -2699,6 +2844,42 @@ PHP_FUNCTION(imap_msgno) convert_to_long_ex(msgno); RETURN_LONG(mail_msgno(imap_le_struct->imap_stream, Z_LVAL_PP(msgno))); +} +/* }}} */ + +/* {{{ proto object imap_status_current(resource stream_id, int options) + Get (cached) status info from current mailbox */ +PHP_FUNCTION(imap_status_current) +{ + zval **streamind, **pflags; + pils *imap_le_struct; + long flags = 0L; + + if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &streamind, &pflags) == FAILURE) { + ZEND_WRONG_PARAM_COUNT(); + } + + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); + + convert_to_long_ex(pflags); + flags = Z_LVAL_PP(pflags); + + if (object_init(return_value) == FAILURE) { + RETURN_FALSE; + } + + if (flags & SA_MESSAGES) { + add_property_long(return_value, "messages", imap_le_struct->imap_stream->nmsgs); + } + if (flags & SA_RECENT) { + add_property_long(return_value, "recent", imap_le_struct->imap_stream->recent); + } + if (flags & SA_UIDNEXT) { + add_property_long(return_value, "uidnext", imap_le_struct->imap_stream->uid_last+1); + } + if (flags & SA_UIDVALIDITY) { + add_property_long(return_value, "uidvalidity", imap_le_struct->imap_stream->uid_validity); + } } /* }}} */ diff -r 3bd462c02589 ext/imap/php_imap.h --- a/ext/imap/php_imap.h Sat Sep 29 12:38:38 2007 +0200 +++ b/ext/imap/php_imap.h Sat Sep 29 12:47:11 2007 +0200 @@ -152,6 +152,7 @@ PHP_FUNCTION(imap_lsub_full); PHP_FUNCTION(imap_lsub_full); PHP_FUNCTION(imap_create); PHP_FUNCTION(imap_rename); +PHP_FUNCTION(imap_status_current); PHP_FUNCTION(imap_status); PHP_FUNCTION(imap_bodystruct); PHP_FUNCTION(imap_fetch_overview); @@ -168,6 +169,9 @@ PHP_FUNCTION(imap_thread); PHP_FUNCTION(imap_thread); PHP_FUNCTION(imap_timeout); +// TODO: Needs fixing in configure in +#define HAVE_IMAP2005 1 + #if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001) PHP_FUNCTION(imap_get_quota); PHP_FUNCTION(imap_get_quotaroot); @@ -175,7 +179,10 @@ PHP_FUNCTION(imap_setacl); PHP_FUNCTION(imap_setacl); PHP_FUNCTION(imap_getacl); #endif - +#if defined(HAVE_IMAP2005) +PHP_FUNCTION(imap_setannotation); +PHP_FUNCTION(imap_getannotation); +#endif ZEND_BEGIN_MODULE_GLOBALS(imap) char *imap_user; @@ -206,6 +213,9 @@ ZEND_BEGIN_MODULE_GLOBALS(imap) zval **quota_return; zval *imap_acl_list; #endif +#if defined(HAVE_IMAP2005) + zval *imap_annotation_list; +#endif /* php_stream for php_mail_gets() */ php_stream *gets_stream; ZEND_END_MODULE_GLOBALS(imap) From cvs at kolab.org Thu Dec 6 09:17:25 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 6 Dec 2007 09:17:25 +0100 (CET) Subject: gunnar: server/patches/php/php-5.2.4 KOLAB_Annotations.patch, NONE, 1.1 Message-ID: <20071206081725.E5B29600D64@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/php/php-5.2.4 In directory doto:/tmp/cvs-serv31909/php-5.2.4 Added Files: KOLAB_Annotations.patch Log Message: Reorganize this patch directory and add the php-5.2.5 patch. --- NEW FILE: KOLAB_Annotations.patch --- Provides get/set ANNOTATIONS support to PHP. [Version: 5.2.4] diff -r 5bd2ac9f8bea ext/imap/php_imap.c --- a/ext/imap/php_imap.c Sat Sep 29 12:56:59 2007 +0200 +++ b/ext/imap/php_imap.c Sat Sep 29 12:59:01 2007 +0200 @@ -129,6 +129,7 @@ zend_function_entry imap_functions[] = { PHP_FE(imap_binary, NULL) PHP_FE(imap_utf8, NULL) PHP_FE(imap_status, NULL) + PHP_FE(imap_status_current, NULL) PHP_FE(imap_mailboxmsginfo, NULL) PHP_FE(imap_setflag_full, NULL) PHP_FE(imap_clearflag_full, NULL) @@ -155,6 +156,10 @@ zend_function_entry imap_functions[] = { PHP_FE(imap_setacl, NULL) PHP_FE(imap_getacl, NULL) #endif +#if defined(HAVE_IMAP2005) + PHP_FE(imap_setannotation, NULL) + PHP_FE(imap_getannotation, NULL) +#endif PHP_FE(imap_mail, NULL) @@ -415,6 +420,30 @@ void mail_getacl(MAILSTREAM *stream, cha #endif + +#if defined(HAVE_IMAP2005) +/* {{{ mail_getannotation + * + * Mail GET_ANNOTATION callback + * Called via the mail_parameter function in c-client:src/c-client/mail.c + */ +void mail_getannotation(MAILSTREAM *stream, ANNOTATION *alist) +{ + ANNOTATION_VALUES *cur; + + TSRMLS_FETCH(); + + /* walk through the ANNOTATION_VALUES */ + + for(cur = alist->values; cur; cur = cur->next) { + if (cur->value) + add_assoc_stringl(IMAPG(imap_annotation_list), cur->attr, cur->value, strlen(cur->value), 1); + else + add_assoc_stringl(IMAPG(imap_annotation_list), cur->attr, "", 0, 1); + } +} +/* }}} */ +#endif /* {{{ PHP_GINIT_FUNCTION */ @@ -1092,6 +1121,122 @@ PHP_FUNCTION(imap_getacl) #endif /* HAVE_IMAP2000 || HAVE_IMAP2001 */ +#if defined(HAVE_IMAP2005) + +/* {{{ proto bool imap_setannotation(resource stream_id, string mailbox, string entry, string attr, string value) + Sets an annotation for a given mailbox */ +PHP_FUNCTION(imap_setannotation) +{ + zval **streamind, **mailbox, **entry, **attr, **value; + pils *imap_le_struct; + long ret; + + // TODO: Use zend_parse_parameters here + if (ZEND_NUM_ARGS() != 5 || zend_get_parameters_ex(5, &streamind, &mailbox, &entry, &attr, &value) == FAILURE) { + ZEND_WRONG_PARAM_COUNT(); + } + + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); + + convert_to_string_ex(mailbox); + convert_to_string_ex(entry); + convert_to_string_ex(attr); + convert_to_string_ex(value); + + // create annotation object + ANNOTATION *annotation = mail_newannotation(); + if (!annotation) + RETURN_FALSE; + annotation->values = mail_newannotationvalue(); + if (!annotation->values) { + mail_free_annotation(&annotation); + RETURN_FALSE; + } + + // fill in annotation values + annotation->mbox = Z_STRVAL_PP(mailbox); + annotation->entry = Z_STRVAL_PP(entry); + annotation->values->attr = Z_STRVAL_PP(attr); + annotation->values->value = Z_STRVAL_PP(value); + + ret = imap_setannotation(imap_le_struct->imap_stream, annotation); + + // make sure mail_free_annotation doesn't free our variables + annotation->mbox = NULL; + annotation->entry = NULL; + annotation->values->attr = NULL; + annotation->values->value = NULL; + mail_free_annotation(&annotation); + + RETURN_BOOL(ret); +} +/* }}} */ + +/* {{{ proto array imap_getannotation(resource stream_id, string mailbox, string entry, string attr) + Gets the ACL for a given mailbox */ +PHP_FUNCTION(imap_getannotation) +{ + zval **streamind, **mailbox, **entry, **attr; + pils *imap_le_struct; + long ret; + + if(ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &streamind, &mailbox, &entry, &attr) == FAILURE) { + ZEND_WRONG_PARAM_COUNT(); + } + + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); + + convert_to_string_ex(mailbox); + convert_to_string_ex(entry); + convert_to_string_ex(attr); + + /* initializing the special array for the return values */ + if (array_init(return_value) == FAILURE) { + RETURN_FALSE; + } + + // fillup calling parameters + STRINGLIST *entries = mail_newstringlist(); + if (!entries) + RETURN_FALSE; + + STRINGLIST *cur = entries; + cur->text.data = (unsigned char *)cpystr(Z_STRVAL_PP(entry)); + cur->text.size = Z_STRLEN_PP(entry); + cur->next = NIL; + + STRINGLIST *attributes = mail_newstringlist(); + cur = attributes; + cur->text.data = (unsigned char *)cpystr (Z_STRVAL_PP(attr)); + cur->text.size = Z_STRLEN_PP(attr); + cur->next = NIL; + + /* initializing the special array for the return values */ + if (array_init(return_value) == FAILURE) { + mail_free_stringlist(&entries); + mail_free_stringlist(&attributes); + RETURN_FALSE; + } + + IMAPG(imap_annotation_list) = return_value; + + /* set the callback for the GET_ANNOTATION function */ + mail_parameters(NIL, SET_ANNOTATION, (void *) mail_getannotation); + ret = imap_getannotation(imap_le_struct->imap_stream, Z_STRVAL_PP(mailbox), entries, attributes); + + mail_free_stringlist(&entries); + mail_free_stringlist(&attributes); + + if (!ret) { + zval_dtor(return_value); + RETURN_FALSE; + } + + IMAPG(imap_annotation_list) = NIL; +} +/* }}} */ + +#endif /* HAVE_IMAP2005 */ /* {{{ proto bool imap_expunge(resource stream_id) Permanently delete all messages marked for deletion */ @@ -2699,6 +2844,42 @@ PHP_FUNCTION(imap_msgno) convert_to_long_ex(msgno); RETURN_LONG(mail_msgno(imap_le_struct->imap_stream, Z_LVAL_PP(msgno))); +} +/* }}} */ + +/* {{{ proto object imap_status_current(resource stream_id, int options) + Get (cached) status info from current mailbox */ +PHP_FUNCTION(imap_status_current) +{ + zval **streamind, **pflags; + pils *imap_le_struct; + long flags = 0L; + + if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &streamind, &pflags) == FAILURE) { + ZEND_WRONG_PARAM_COUNT(); + } + + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); + + convert_to_long_ex(pflags); + flags = Z_LVAL_PP(pflags); + + if (object_init(return_value) == FAILURE) { + RETURN_FALSE; + } + + if (flags & SA_MESSAGES) { + add_property_long(return_value, "messages", imap_le_struct->imap_stream->nmsgs); + } + if (flags & SA_RECENT) { + add_property_long(return_value, "recent", imap_le_struct->imap_stream->recent); + } + if (flags & SA_UIDNEXT) { + add_property_long(return_value, "uidnext", imap_le_struct->imap_stream->uid_last+1); + } + if (flags & SA_UIDVALIDITY) { + add_property_long(return_value, "uidvalidity", imap_le_struct->imap_stream->uid_validity); + } } /* }}} */ diff -r 5bd2ac9f8bea ext/imap/php_imap.h --- a/ext/imap/php_imap.h Sat Sep 29 12:56:59 2007 +0200 +++ b/ext/imap/php_imap.h Sat Sep 29 12:59:01 2007 +0200 @@ -152,6 +152,7 @@ PHP_FUNCTION(imap_lsub_full); PHP_FUNCTION(imap_lsub_full); PHP_FUNCTION(imap_create); PHP_FUNCTION(imap_rename); +PHP_FUNCTION(imap_status_current); PHP_FUNCTION(imap_status); PHP_FUNCTION(imap_bodystruct); PHP_FUNCTION(imap_fetch_overview); @@ -168,6 +169,9 @@ PHP_FUNCTION(imap_thread); PHP_FUNCTION(imap_thread); PHP_FUNCTION(imap_timeout); +// TODO: Needs fixing in configure in +#define HAVE_IMAP2005 1 + #if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001) PHP_FUNCTION(imap_get_quota); PHP_FUNCTION(imap_get_quotaroot); @@ -175,7 +179,10 @@ PHP_FUNCTION(imap_setacl); PHP_FUNCTION(imap_setacl); PHP_FUNCTION(imap_getacl); #endif - +#if defined(HAVE_IMAP2005) +PHP_FUNCTION(imap_setannotation); +PHP_FUNCTION(imap_getannotation); +#endif ZEND_BEGIN_MODULE_GLOBALS(imap) char *imap_user; @@ -206,6 +213,9 @@ ZEND_BEGIN_MODULE_GLOBALS(imap) zval **quota_return; zval *imap_acl_list; #endif +#if defined(HAVE_IMAP2005) + zval *imap_annotation_list; +#endif /* php_stream for php_mail_gets() */ php_stream *gets_stream; ZEND_END_MODULE_GLOBALS(imap) From cvs at kolab.org Thu Dec 6 09:17:25 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 6 Dec 2007 09:17:25 +0100 (CET) Subject: gunnar: server/patches/php/php-5.2.5 KOLAB_Annotations.patch, NONE, 1.1 Message-ID: <20071206081725.E8FB6600D67@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/php/php-5.2.5 In directory doto:/tmp/cvs-serv31909/php-5.2.5 Added Files: KOLAB_Annotations.patch Log Message: Reorganize this patch directory and add the php-5.2.5 patch. --- NEW FILE: KOLAB_Annotations.patch --- Provides get/set ANNOTATIONS support to PHP. [Version: 5.2.5] diff -r 28c002b221ac ext/imap/php_imap.c --- a/ext/imap/php_imap.c Thu Dec 06 09:11:21 2007 +0100 +++ b/ext/imap/php_imap.c Thu Dec 06 09:12:29 2007 +0100 @@ -129,6 +129,7 @@ zend_function_entry imap_functions[] = { PHP_FE(imap_binary, NULL) PHP_FE(imap_utf8, NULL) PHP_FE(imap_status, NULL) + PHP_FE(imap_status_current, NULL) PHP_FE(imap_mailboxmsginfo, NULL) PHP_FE(imap_setflag_full, NULL) PHP_FE(imap_clearflag_full, NULL) @@ -155,6 +156,10 @@ zend_function_entry imap_functions[] = { PHP_FE(imap_setacl, NULL) PHP_FE(imap_getacl, NULL) #endif +#if defined(HAVE_IMAP2005) + PHP_FE(imap_setannotation, NULL) + PHP_FE(imap_getannotation, NULL) +#endif PHP_FE(imap_mail, NULL) @@ -415,6 +420,30 @@ void mail_getacl(MAILSTREAM *stream, cha #endif + +#if defined(HAVE_IMAP2005) +/* {{{ mail_getannotation + * + * Mail GET_ANNOTATION callback + * Called via the mail_parameter function in c-client:src/c-client/mail.c + */ +void mail_getannotation(MAILSTREAM *stream, ANNOTATION *alist) +{ + ANNOTATION_VALUES *cur; + + TSRMLS_FETCH(); + + /* walk through the ANNOTATION_VALUES */ + + for(cur = alist->values; cur; cur = cur->next) { + if (cur->value) + add_assoc_stringl(IMAPG(imap_annotation_list), cur->attr, cur->value, strlen(cur->value), 1); + else + add_assoc_stringl(IMAPG(imap_annotation_list), cur->attr, "", 0, 1); + } +} +/* }}} */ +#endif /* {{{ PHP_GINIT_FUNCTION */ @@ -1092,6 +1121,122 @@ PHP_FUNCTION(imap_getacl) #endif /* HAVE_IMAP2000 || HAVE_IMAP2001 */ +#if defined(HAVE_IMAP2005) + +/* {{{ proto bool imap_setannotation(resource stream_id, string mailbox, string entry, string attr, string value) + Sets an annotation for a given mailbox */ +PHP_FUNCTION(imap_setannotation) +{ + zval **streamind, **mailbox, **entry, **attr, **value; + pils *imap_le_struct; + long ret; + + // TODO: Use zend_parse_parameters here + if (ZEND_NUM_ARGS() != 5 || zend_get_parameters_ex(5, &streamind, &mailbox, &entry, &attr, &value) == FAILURE) { + ZEND_WRONG_PARAM_COUNT(); + } + + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); + + convert_to_string_ex(mailbox); + convert_to_string_ex(entry); + convert_to_string_ex(attr); + convert_to_string_ex(value); + + // create annotation object + ANNOTATION *annotation = mail_newannotation(); + if (!annotation) + RETURN_FALSE; + annotation->values = mail_newannotationvalue(); + if (!annotation->values) { + mail_free_annotation(&annotation); + RETURN_FALSE; + } + + // fill in annotation values + annotation->mbox = Z_STRVAL_PP(mailbox); + annotation->entry = Z_STRVAL_PP(entry); + annotation->values->attr = Z_STRVAL_PP(attr); + annotation->values->value = Z_STRVAL_PP(value); + + ret = imap_setannotation(imap_le_struct->imap_stream, annotation); + + // make sure mail_free_annotation doesn't free our variables + annotation->mbox = NULL; + annotation->entry = NULL; + annotation->values->attr = NULL; + annotation->values->value = NULL; + mail_free_annotation(&annotation); + + RETURN_BOOL(ret); +} +/* }}} */ + +/* {{{ proto array imap_getannotation(resource stream_id, string mailbox, string entry, string attr) + Gets the ACL for a given mailbox */ +PHP_FUNCTION(imap_getannotation) +{ + zval **streamind, **mailbox, **entry, **attr; + pils *imap_le_struct; + long ret; + + if(ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &streamind, &mailbox, &entry, &attr) == FAILURE) { + ZEND_WRONG_PARAM_COUNT(); + } + + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); + + convert_to_string_ex(mailbox); + convert_to_string_ex(entry); + convert_to_string_ex(attr); + + /* initializing the special array for the return values */ + if (array_init(return_value) == FAILURE) { + RETURN_FALSE; + } + + // fillup calling parameters + STRINGLIST *entries = mail_newstringlist(); + if (!entries) + RETURN_FALSE; + + STRINGLIST *cur = entries; + cur->text.data = (unsigned char *)cpystr(Z_STRVAL_PP(entry)); + cur->text.size = Z_STRLEN_PP(entry); + cur->next = NIL; + + STRINGLIST *attributes = mail_newstringlist(); + cur = attributes; + cur->text.data = (unsigned char *)cpystr (Z_STRVAL_PP(attr)); + cur->text.size = Z_STRLEN_PP(attr); + cur->next = NIL; + + /* initializing the special array for the return values */ + if (array_init(return_value) == FAILURE) { + mail_free_stringlist(&entries); + mail_free_stringlist(&attributes); + RETURN_FALSE; + } + + IMAPG(imap_annotation_list) = return_value; + + /* set the callback for the GET_ANNOTATION function */ + mail_parameters(NIL, SET_ANNOTATION, (void *) mail_getannotation); + ret = imap_getannotation(imap_le_struct->imap_stream, Z_STRVAL_PP(mailbox), entries, attributes); + + mail_free_stringlist(&entries); + mail_free_stringlist(&attributes); + + if (!ret) { + zval_dtor(return_value); + RETURN_FALSE; + } + + IMAPG(imap_annotation_list) = NIL; +} +/* }}} */ + +#endif /* HAVE_IMAP2005 */ /* {{{ proto bool imap_expunge(resource stream_id) Permanently delete all messages marked for deletion */ @@ -2699,6 +2844,42 @@ PHP_FUNCTION(imap_msgno) convert_to_long_ex(msgno); RETURN_LONG(mail_msgno(imap_le_struct->imap_stream, Z_LVAL_PP(msgno))); +} +/* }}} */ + +/* {{{ proto object imap_status_current(resource stream_id, int options) + Get (cached) status info from current mailbox */ +PHP_FUNCTION(imap_status_current) +{ + zval **streamind, **pflags; + pils *imap_le_struct; + long flags = 0L; + + if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &streamind, &pflags) == FAILURE) { + ZEND_WRONG_PARAM_COUNT(); + } + + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); + + convert_to_long_ex(pflags); + flags = Z_LVAL_PP(pflags); + + if (object_init(return_value) == FAILURE) { + RETURN_FALSE; + } + + if (flags & SA_MESSAGES) { + add_property_long(return_value, "messages", imap_le_struct->imap_stream->nmsgs); + } + if (flags & SA_RECENT) { + add_property_long(return_value, "recent", imap_le_struct->imap_stream->recent); + } + if (flags & SA_UIDNEXT) { + add_property_long(return_value, "uidnext", imap_le_struct->imap_stream->uid_last+1); + } + if (flags & SA_UIDVALIDITY) { + add_property_long(return_value, "uidvalidity", imap_le_struct->imap_stream->uid_validity); + } } /* }}} */ diff -r 28c002b221ac ext/imap/php_imap.h --- a/ext/imap/php_imap.h Thu Dec 06 09:11:21 2007 +0100 +++ b/ext/imap/php_imap.h Thu Dec 06 09:12:29 2007 +0100 @@ -152,6 +152,7 @@ PHP_FUNCTION(imap_lsub_full); PHP_FUNCTION(imap_lsub_full); PHP_FUNCTION(imap_create); PHP_FUNCTION(imap_rename); +PHP_FUNCTION(imap_status_current); PHP_FUNCTION(imap_status); PHP_FUNCTION(imap_bodystruct); PHP_FUNCTION(imap_fetch_overview); @@ -168,6 +169,9 @@ PHP_FUNCTION(imap_thread); PHP_FUNCTION(imap_thread); PHP_FUNCTION(imap_timeout); +// TODO: Needs fixing in configure in +#define HAVE_IMAP2005 1 + #if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001) PHP_FUNCTION(imap_get_quota); PHP_FUNCTION(imap_get_quotaroot); @@ -175,7 +179,10 @@ PHP_FUNCTION(imap_setacl); PHP_FUNCTION(imap_setacl); PHP_FUNCTION(imap_getacl); #endif - +#if defined(HAVE_IMAP2005) +PHP_FUNCTION(imap_setannotation); +PHP_FUNCTION(imap_getannotation); +#endif ZEND_BEGIN_MODULE_GLOBALS(imap) char *imap_user; @@ -206,6 +213,9 @@ ZEND_BEGIN_MODULE_GLOBALS(imap) zval **quota_return; zval *imap_acl_list; #endif +#if defined(HAVE_IMAP2005) + zval *imap_annotation_list; +#endif /* php_stream for php_mail_gets() */ php_stream *gets_stream; ZEND_END_MODULE_GLOBALS(imap) From cvs at kolab.org Thu Dec 6 15:58:51 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 6 Dec 2007 15:58:51 +0100 (CET) Subject: thomas: server release-notes.txt,1.192,1.193 Message-ID: <20071206145851.EB477600174@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv10117 Modified Files: release-notes.txt Log Message: Updated OpenPKG packages Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.192 retrieving revision 1.193 diff -u -d -r1.192 -r1.193 --- release-notes.txt 3 Dec 2007 17:10:30 -0000 1.192 +++ release-notes.txt 6 Dec 2007 14:58:49 -0000 1.193 @@ -1,6 +1,6 @@ Kolab Server 2.2 Release Notes ============================== -(Version 20071203, Kolab Server 2.2-beta3) +(Version 20071206, Kolab Server 2.2-beta3) For upgrading and installation instructions, please refer to the 1st.README file in the package directory. @@ -47,7 +47,7 @@ Changes between 2.2-beta-2 and 2.2-beta-3: All packages except for openldap and db were upgraded to OpenPKG-CURRENT - (as of 20071130). The package openldap-2.3.39-20071130 was created to + (as of 20071206). The package openldap-2.3.39-20071130 was created to fix security issues (CVE-2007-5707 and CVE-2007-5708) without upgrading to OpenLDAP 2.4. @@ -209,7 +209,7 @@ Updated: apache-2.2.6-20071121 - apache-php-5.2.5-20071112 + apache-php-5.2.5-20071206 apr-1.2.12-20071126 binutils-2.18-20071111 curl-7.17.1-20071030 @@ -219,33 +219,34 @@ gettext-0.17-20071107 gmp-4.2.2-20071107 imap-2006j2-20071028 - imapd-2.3.10-20071130 + imapd-2.3.10-20071206 libiconv-1.12-20071112 - ncurses-5.6.20071124-20071126 + libxml-2.6.30-20071205 + ncurses-5.6.20071201-20071202 openpkg-20071030-20071030 openssl-0.9.8g-20071104 pcre-7.4-20071101 perl-5.8.8-20071108 - perl-comp-5.8.8-20071120 + perl-comp-5.8.8-20071201 perl-crypto-5.8.8-20071110 perl-db-5.8.8-20071029 perl-ds-5.8.8-20071114 - perl-mail-5.8.8-20071128 - perl-module-5.8.8-20071118 - perl-net-5.8.8-20071109 + perl-mail-5.8.8-20071206 + perl-module-5.8.8-20071206 + perl-net-5.8.8-20071203 perl-parse-5.8.8-20071129 perl-ssl-5.8.8-20071026 - perl-stats-5.8.8-20071028 + perl-stats-5.8.8-20071204 perl-sys-5.8.8-20071124 - perl-time-5.8.8-20071128 - perl-util-5.8.8-20071122 - perl-www-5.8.8-20071126 + perl-time-5.8.8-20071204 + perl-util-5.8.8-20071203 + perl-www-5.8.8-20071201 perl-xml-5.8.8-20071121 - php-5.2.5-20071112 + php-5.2.5-20071206 png-1.2.23-20071109 postfix-2.4.6-20071027 procmail-3.22-20071027 - sasl-2.1.22-20071027 + sasl-2.1.22-20071206 spamassassin-3.2.3-20071027 Unchanged: @@ -269,7 +270,6 @@ gzip-1.3.12-20070623 jpeg-6b-20070507 libmcrypt-2.5.8-20070720 - libxml-2.6.30-20070824 libxslt-1.1.22-20070824 lzo-2.02-20061013 m4-1.4.9-20070818 From cvs at kolab.org Fri Dec 7 12:13:58 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 7 Dec 2007 12:13:58 +0100 (CET) Subject: thomas: server 00INDEX.rdf,1.8,1.9 Message-ID: <20071207111358.20D1E600169@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv20489 Modified Files: 00INDEX.rdf Log Message: Updated for 2.2-beta3 Index: 00INDEX.rdf =================================================================== RCS file: /kolabrepository/server/00INDEX.rdf,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- 00INDEX.rdf 3 Dec 2007 16:17:00 -0000 1.8 +++ 00INDEX.rdf 7 Dec 2007 11:13:55 -0000 1.9 @@ -628,416 +628,69 @@ project. - - apache-php - 5.2.5 - 20071112 + + perl-comp + 5.8.8 + 20071201 [...3962 lines suppressed...] + + + + rc.sasl + fsl.sasl + saslauthd.conf + ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.22.tar.gz + + + +SASL is the Simple Authentication and Security Layer, a method +for adding authentication support to connection-based protocols. +To use SASL, a protocol includes a command for identifying and +authenticating a user to a server and for optionally negotiating +protection of subsequent protocol interactions. If its use is +negotiated, a security layer is inserted between the protocol and +the connection. From cvs at kolab.org Fri Dec 7 13:22:36 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 7 Dec 2007 13:22:36 +0100 (CET) Subject: richard: server/kolabd/kolabd/templates convert_template2config_php.pl, NONE, 1.1 convert_resmgr_conf2config.pl, 1.1, NONE Message-ID: <20071207122236.6E0EB600D7E@lists.intevation.de> Author: richard Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv22272 Added Files: convert_template2config_php.pl Removed Files: convert_resmgr_conf2config.pl Log Message: Rename thje script convert_resmgr_conf2config.pl to convert_template2config_php.pl as it seems that there more config.php files that just the kolab-filter config.php file. The template files that are to be converted are: resmgr.conf_config.php freebusy.conf_config.php The script does this for the resmgr.conf.template.in and freebusy.conf.template.in files. The resulting file is a combination of the template file name and the suffix _config.php. The resulting example config files are to be copied to the correct cvs module. See the template file. --- NEW FILE: convert_template2config_php.pl --- #!/usr/bin/perl # # This code has be copied from: # server/kolabconf/lib/Kolab/Conf.pm cvs version 1.12 # # $Id: convert_template2config_php.pl,v 1.1 2007/12/07 12:22:34 richard Exp $ # # This script converts a template file to an example config.php file. # It does this for the resmgr.conf.template.in and freebusy.conf.template.in # templates. The resulting file is a combination of the template file # name and the suffix _config.php. The resulting example config files are # to be copied to the correct cvs module. See the template file. use IO::File; $Kolab::config{"kolabfilter-verify-from-header"} = "true"; $Kolab::config{"kolabfilter-allow-sender-header"} = "true"; $Kolab::config{"kolabfilter-reject-forged-from-header"} = "false"; # The script has to be run from: # server/kolabd/kolabd/templates my @configs; my @metatemplates; $metatemplates[0] = 'resmgr.conf.template.in'; $metatemplates[1] = 'freebusy.conf.template.in'; $configs[0] = 'resmgr.conf_config.php'; $configs[1] = 'freebusy.conf_config.php'; for ($file_id=0; $file_id<=1; $file_id++) { $template = IO::File->new($metatemplates[$file_id], 'r'); $config = IO::File->new($configs[$file_id], 'w'); my $skip = 0; my $keep = 0; while (<$template>) { #Eat the meta data sections if (/^KOLAB_META_START$/) { my $found_end; while (!$found_end) { $_ = <$template>; $found_end = /^KOLAB_META_END$/; } $_ = <$template>; } s%\@{3}connect_addr\@{3}%localhost%g; s%\@{3}local_addr\@{3}%localhost%g; s%\@{3}postfix-mydomain\@{3}%example.com%g; s%\@{3}ldap_uri\@{3}%ldaps://ldap.example.com%g; s%\@{3}base_dn\@{3}%dc=example,dc=com%g; s%\@{3}php_dn\@{3}%cn=nobody,cn=internal,dc=example,dc=com%g; s%\@{3}php_pw\@{3}%xyz%g; s%\@{3}postfix-mydomain\@{3}%example.com%g; s%\@{3}kolabhost.*\@{3}%one.example.com,two.example.com,three.example.com%g; s%\@{3}base_dn\@{3}%dc=example,dc=com%g; s%\@{3}calendar_id\@{3}%calendar%g; s%\@{3}calendar_pw\@{3}%zyx%g; s%\@{3}fqdnhostname\@{3}%example.com%g; s%\@webserver_web_prefix\@%%g; s%\@resmgr_logdir\@%/kolab/var/kolab-filter/log%g; s%\@resmgr_tmpdir\@%%g; s%\@sysconfdir\@%/kolab/etc%g; s%\@freebusy_logdir\@%/kolab/var/kolab-freebusy/log%g; s%\@freebusy_cachedir\@%/kolab/var/kolab-freebusy/cache%g; if (/\@{3}if (\S+?)\@{3}/) { # print STDERR "DEBUG: " . $1 . "\n"; if ($Kolab::config{$1} && lc($Kolab::config{$1}) ne "false" ) { # Keep text $keep = 1; } else { # Skip text $skip++; $keep = 0; } s/\@{3}if (\S+?)\@{3}\n?//; } elsif (/\@{3}else\@{3}/) { if( $keep == 0 ) { # Now keep $keep = 1; $skip--; } else { # Now skip $keep = 0; $skip++; } s/\@{3}else\@{3}\n?//; } elsif (/\@{3}endif\@{3}/) { ($skip > 0) && $skip--; s/\@{3}endif\@{3}\n?//; } else { while (/\@{3}([^\s\@]+?)(\|(.+?)\((.*)\))?\@{3}/) { my $attr = $1; my $fct = $3; my $args = $4; # print STDERR "attr=\"$attr\", fct=\"$fct\", args=\"$args\"\n"; # print STDERR "config=" . $Kolab::config{$attr} . "\n"; $val = $Kolab::config{$attr}; s/\@{3}([^\s\@]+?)(\|.+?)?\@{3}/$val/; last if ( $val eq "\@{3}$attr\@{3}" ); # prevent endless loop } } if ($skip == 0) { # Change the resulting string ('true'='TRUE') in just true # If there is a better a way, to achieve the same result please # update the script. s/\('true/true/; s/'=='TRUE'\)//; print $config $_; } } $config->close; $template->close; } --- convert_resmgr_conf2config.pl DELETED --- From cvs at kolab.org Fri Dec 7 14:19:25 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 7 Dec 2007 14:19:25 +0100 (CET) Subject: richard: server/kolabd/kolabd/templates resmgr.conf.template.in, 1.19, 1.20 Message-ID: <20071207131925.1DA75602CB4@lists.intevation.de> Author: richard Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv24407 Modified Files: resmgr.conf.template.in Log Message: Added update instruction Index: resmgr.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/resmgr.conf.template.in,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- resmgr.conf.template.in 3 Dec 2007 11:27:19 -0000 1.19 +++ resmgr.conf.template.in 7 Dec 2007 13:19:22 -0000 1.20 @@ -2,6 +2,19 @@ TARGET=@resmgr_confdir@/config.php PERMISSIONS=0640 OWNERSHIP=@resmgr_conffile_usr@:@resmgr_conffile_grp@ + +# Update instructions: +# -------------------- +# If this file is being modified, please do the following: +# - execute the command: convert_template2config_php.pl +# - move the file resmgs.conf_config.php to server/kolab-filter/filter/config.php +# +# The file server/kolab-filter/filter/config.php is a configuration example +# file that is distributed with the kolab-filter module/package. +# The purpose of the server/kolab-filter/filter/config.php file is to be +# an example configuration file, in case the kolab-filter module/package +# is distributed on it's own. + KOLAB_META_END Author: richard Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv26998 Modified Files: freebusy.conf.template.in Log Message: Added update instruction Index: freebusy.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/freebusy.conf.template.in,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- freebusy.conf.template.in 23 Nov 2007 13:39:32 -0000 1.12 +++ freebusy.conf.template.in 7 Dec 2007 15:04:19 -0000 1.13 @@ -2,6 +2,19 @@ TARGET=@freebusy_confdir@/config.php PERMISSIONS=0640 OWNERSHIP=@freebusy_usr@:@freebusy_grp@ + +# Update instructions: +# -------------------- +# If this file is being modified, please do the following: +# - execute the command: convert_template2config_php.pl +# - move the file freebusy.conf_config.php to server/kolab-freebusy/freebusy/config.php +# +# The file server/kolab-freebusy/freebusy/config.php is a configuration example +# file that is distributed with the kolab-freebusy module/package. +# The purpose of the server/kolab-freebusy/freebusy/config.php file is to be +# an example configuration file, in case the kolab-freebusy module/package +# is distributed on it's own. + KOLAB_META_END Author: gunnar Update of /kolabrepository/server/kolabconf In directory doto:/tmp/cvs-serv27958 Modified Files: ChangeLog Makefile.PL Log Message: Fix the install location for kolabconf for the newest MakeMaker. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabconf/ChangeLog,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- ChangeLog 17 Oct 2007 17:57:13 -0000 1.2 +++ ChangeLog 7 Dec 2007 15:29:06 -0000 1.3 @@ -1,3 +1,9 @@ +2007-12-07 Gunnar Wrobel

    + + * Makefile.PL (MY::postamble): + + Fix the install location for kolabconf for the newest MakeMaker. + 2007-10-17 Thomas Arendsen Hein * lib/Kolab/Conf.pm: kolab/issue934 (Remove FTP FreeBusy Service (proftpd)) Index: Makefile.PL =================================================================== RCS file: /kolabrepository/server/kolabconf/Makefile.PL,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- Makefile.PL 30 Nov 2007 15:10:24 -0000 1.14 +++ Makefile.PL 7 Dec 2007 15:29:06 -0000 1.15 @@ -144,7 +144,7 @@ VERSION => $VERSION, INSTALLDIRS => 'vendor', EXE_FILES => [ 'bin/kolabconf', ], - INSTALLSCRIPT => $INSTALLSCRIPT, + INSTALLVENDORSCRIPT => $INSTALLSCRIPT, ABSTRACT => 'kolabconf provides the central mechanism to the configuration concept of the Kolab server. It rewrites the Kolab configuration templates From cvs at kolab.org Fri Dec 7 16:44:22 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 7 Dec 2007 16:44:22 +0100 (CET) Subject: thomas: server/kolabd/kolabd/templates freebusy.conf.template.in, 1.13, 1.14 resmgr.conf.template.in, 1.20, 1.21 Message-ID: <20071207154422.6198A600D7E@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv28289 Modified Files: freebusy.conf.template.in resmgr.conf.template.in Log Message: Reverted "Update instructions" in template files. These should not be in the template files, because those are intended to be edited by users. So these instructions should only be in CVS or at most in the source tarball, not in the installed "binary" package. Index: freebusy.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/freebusy.conf.template.in,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- freebusy.conf.template.in 7 Dec 2007 15:04:19 -0000 1.13 +++ freebusy.conf.template.in 7 Dec 2007 15:44:20 -0000 1.14 @@ -2,19 +2,6 @@ TARGET=@freebusy_confdir@/config.php PERMISSIONS=0640 OWNERSHIP=@freebusy_usr@:@freebusy_grp@ - -# Update instructions: -# -------------------- -# If this file is being modified, please do the following: -# - execute the command: convert_template2config_php.pl -# - move the file freebusy.conf_config.php to server/kolab-freebusy/freebusy/config.php -# -# The file server/kolab-freebusy/freebusy/config.php is a configuration example -# file that is distributed with the kolab-freebusy module/package. -# The purpose of the server/kolab-freebusy/freebusy/config.php file is to be -# an example configuration file, in case the kolab-freebusy module/package -# is distributed on it's own. - KOLAB_META_END Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv28534 Modified Files: release-notes.txt Log Message: Updated release notes for new kolabconf package Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.193 retrieving revision 1.194 diff -u -d -r1.193 -r1.194 --- release-notes.txt 6 Dec 2007 14:58:49 -0000 1.193 +++ release-notes.txt 7 Dec 2007 15:49:02 -0000 1.194 @@ -1,6 +1,6 @@ Kolab Server 2.2 Release Notes ============================== -(Version 20071206, Kolab Server 2.2-beta3) +(Version 20071207, Kolab Server 2.2-beta3) For upgrading and installation instructions, please refer to the 1st.README file in the package directory. @@ -51,6 +51,10 @@ fix security issues (CVE-2007-5707 and CVE-2007-5708) without upgrading to OpenLDAP 2.4. + - kolabconf-2.2.beta3-20071207 + + Fix the install location for kolabconf for the newest MakeMaker. + - kolabd-2.1.99-20071203 freebusy_logfile is now freebusy_logdir. @@ -180,7 +184,7 @@ kolab-filter-2.2.beta3-20071203 kolab-freebusy-2.2.beta3-20071130 kolab-webadmin-2.1.99-20071203 - kolabconf-2.2.beta3-20071130 + kolabconf-2.2.beta3-20071207 kolabd-2.1.99-20071203 openldap-2.3.39-20071130 perl-kolab-2.2.beta3-20071130 From cvs at kolab.org Fri Dec 7 17:14:05 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 7 Dec 2007 17:14:05 +0100 (CET) Subject: thomas: server 00INDEX.rdf,1.9,1.10 Message-ID: <20071207161405.C58B9600D64@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv29781 Modified Files: 00INDEX.rdf Log Message: New kolabconf package Index: 00INDEX.rdf =================================================================== RCS file: /kolabrepository/server/00INDEX.rdf,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- 00INDEX.rdf 7 Dec 2007 11:13:55 -0000 1.9 +++ 00INDEX.rdf 7 Dec 2007 16:14:03 -0000 1.10 @@ -3071,46 +3071,6 @@ Groupware server. - - kolabconf - 2.2.beta3 - 20071130 - OpenPKG Community - PLUS - Mail - GPL - p at rdus -

    Kolab2 Groupware Server configuration tool - http://www.kolab.org/ - Kolab Consortium - - - OpenPKG - openpkg - perl - perl-openpkg - - - - - OpenPKG - openpkg - perl - perl-kolab - - - - - kolabconf-2.2.beta3.tar.gz - - - -kolabconf provides the central mechanism to the configuration concept -of the Kolab server. It rewrites the Kolab configuration templates -into the final configuration files and handles the necessary magic -associated to that process. - -
    libiconv 1.12 @@ -3972,6 +3932,46 @@ sophisticated and flexible (but this way also complex) programming language. This is the original implementation of the Perl 5 interpreter from Larry Wall and his community. + + + + kolabconf + 2.2.beta3 + 20071207 + OpenPKG Community + PLUS + Mail + GPL + p at rdus + Kolab2 Groupware Server configuration tool + http://www.kolab.org/ + Kolab Consortium + + + OpenPKG + openpkg + perl + perl-openpkg + + + + + OpenPKG + openpkg + perl + perl-kolab + + + + + kolabconf-2.2.beta3.tar.gz + + + +kolabconf provides the central mechanism to the configuration concept +of the Kolab server. It rewrites the Kolab configuration templates +into the final configuration files and handles the necessary magic +associated to that process. From cvs at kolab.org Fri Dec 7 19:46:53 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 7 Dec 2007 19:46:53 +0100 (CET) Subject: thomas: server release-notes.txt,1.194,1.195 Message-ID: <20071207184653.95A59600D7E@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv1798 Modified Files: release-notes.txt Log Message: New php-kolab version Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.194 retrieving revision 1.195 diff -u -d -r1.194 -r1.195 --- release-notes.txt 7 Dec 2007 15:49:02 -0000 1.194 +++ release-notes.txt 7 Dec 2007 18:46:51 -0000 1.195 @@ -113,7 +113,7 @@ kolab/issue1313 (resmngr cannot create calendar folder in multidomain setup) - - php-kolab-2.2.beta3-20071130 + - php-kolab-2.2.beta3-20071207 A fully restructured free/busy with the most recent free/busy concept implemented. @@ -188,7 +188,7 @@ kolabd-2.1.99-20071203 openldap-2.3.39-20071130 perl-kolab-2.2.beta3-20071130 - php-kolab-2.2.beta3-20071130 + php-kolab-2.2.beta3-20071207 Unchanged: From cvs at kolab.org Fri Dec 7 19:49:23 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 7 Dec 2007 19:49:23 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter ChangeLog,1.5,1.6 Message-ID: <20071207184923.C955A602CA3@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter In directory doto:/tmp/cvs-serv1920/php-kolab/Kolab_Filter Modified Files: ChangeLog Log Message: Fix removal of the empty line between header and body. Added a unit test for that. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/ChangeLog,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- ChangeLog 29 Nov 2007 15:00:16 -0000 1.5 +++ ChangeLog 7 Dec 2007 18:49:21 -0000 1.6 @@ -1,3 +1,9 @@ +2007-12-07 Gunnar Wrobel

    + + * Filter/Incoming.php: + + Fix removal of the empty line between header and body. Added a unit test for that. + 2007-11-29 Thomas Arendsen Hein * Filter/Content.php: Default for $local_addr is 127.0.0.1 instead of From cvs at kolab.org Fri Dec 7 19:49:23 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 7 Dec 2007 19:49:23 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/Filter Incoming.php,1.7,1.8 Message-ID: <20071207184923.CD19F602CB9@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/Filter In directory doto:/tmp/cvs-serv1920/php-kolab/Kolab_Filter/Filter Modified Files: Incoming.php Log Message: Fix removal of the empty line between header and body. Added a unit test for that. Index: Incoming.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Filter/Incoming.php,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Incoming.php 28 Nov 2007 15:36:59 -0000 1.7 +++ Incoming.php 7 Dec 2007 18:49:21 -0000 1.8 @@ -53,12 +53,13 @@ $headers_done = false; /* High speed section START */ - while (!feof($inh)) { + $headers_done = false; + while (!feof($inh) && !$headers_done) { $buffer = fgets($inh, 8192); $line = rtrim( $buffer, "\r\n"); if ($line == '') { /* Done with headers */ - break; + $headers_done = true; } else if (eregi('^Content-Type: text/calendar', $line)) { Horde::logMessage(_("Found iCal data in message"), __FILE__, __LINE__, PEAR_LOG_DEBUG); From cvs at kolab.org Fri Dec 7 19:49:23 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 7 Dec 2007 19:49:23 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/tests incoming_line_end.phpt, NONE, 1.1 Message-ID: <20071207184923.CFD09602CBA@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/tests In directory doto:/tmp/cvs-serv1920/php-kolab/Kolab_Filter/tests Added Files: incoming_line_end.phpt Log Message: Fix removal of the empty line between header and body. Added a unit test for that. --- NEW FILE: incoming_line_end.phpt --- --TEST-- Test handling of \r\n --SKIPIF-- --FILE-- _lineFormat = '%2$s [%3$s] %7$s'; // Activate this if you need the log information. This will // make the test fail though //$logger->_lineFormat = '%2$s [%3$s] %4$s %7$s'; $inh = fopen('_data/empty.eml', 'r'); /* Setup the class */ $parser = &new Filter_Incoming('StdOut', true); /* Parse the mail */ $parser->parse($inh); ?> --EXPECT-- Kolab Filter [debug] logMessage Kolab Filter [debug] logMessage Mail from sender: me at example.com Mail to recipient: me at example.com From: me at example.com To:me at example.com Subject: xx X-Kolab-Scheduling-Message: FALSE xx . Kolab Filter [debug] logMessage Kolab Filter [info] logMessage From cvs at kolab.org Fri Dec 7 19:49:23 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 7 Dec 2007 19:49:23 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Filter/tests/_data empty.eml, NONE, 1.1 Message-ID: <20071207184923.D282A602CBB@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter/tests/_data In directory doto:/tmp/cvs-serv1920/php-kolab/Kolab_Filter/tests/_data Added Files: empty.eml Log Message: Fix removal of the empty line between header and body. Added a unit test for that. --- NEW FILE: empty.eml --- From: me at example.com To:me at example.com Subject: xx xx From cvs at kolab.org Fri Dec 7 19:49:23 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 7 Dec 2007 19:49:23 +0100 (CET) Subject: gunnar: server release-notes.txt,1.195,1.196 Message-ID: <20071207184923.C597D600D7E@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv1920 Modified Files: release-notes.txt Log Message: Fix removal of the empty line between header and body. Added a unit test for that. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.195 retrieving revision 1.196 diff -u -d -r1.195 -r1.196 --- release-notes.txt 7 Dec 2007 18:46:51 -0000 1.195 +++ release-notes.txt 7 Dec 2007 18:49:21 -0000 1.196 @@ -121,6 +121,9 @@ Restructured Kolab_Filter package with the focus on error handling and unit testing. + Fix removal of the empty line between header and body. Added a + unit test for that. + kolab/issue1313 (resmngr cannot create calendar folder in multidomain setup) From cvs at kolab.org Fri Dec 7 20:07:44 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 7 Dec 2007 20:07:44 +0100 (CET) Subject: thomas: server 00INDEX.rdf,1.10,1.11 Message-ID: <20071207190744.505FC600D7E@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv2598 Modified Files: 00INDEX.rdf Log Message: Updated php-kolab Index: 00INDEX.rdf =================================================================== RCS file: /kolabrepository/server/00INDEX.rdf,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- 00INDEX.rdf 7 Dec 2007 16:14:03 -0000 1.10 +++ 00INDEX.rdf 7 Dec 2007 19:07:42 -0000 1.11 @@ -2,6 +2,78 @@ + + clamav + 0.91.2 + 20070907 + OpenPKG Community + EVAL + AntiVirus + GPL [...3459 lines suppressed...] + openpkg + + + + + OpenPKG + openpkg + + + + + readline.pc + ftp://ftp.cwru.edu/pub/bash/readline-5.2.tar.gz + + + +Readline is a full-featured text terminal line editing library. From cvs at kolab.org Fri Dec 7 20:14:43 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 7 Dec 2007 20:14:43 +0100 (CET) Subject: thomas: server 00INDEX.rdf,1.11,1.12 Message-ID: <20071207191443.14789600D7E@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv2843 Modified Files: 00INDEX.rdf Log Message: Forgot to remove the old php-kolab package when generating the index Index: 00INDEX.rdf =================================================================== RCS file: /kolabrepository/server/00INDEX.rdf,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- 00INDEX.rdf 7 Dec 2007 19:07:42 -0000 1.11 +++ 00INDEX.rdf 7 Dec 2007 19:14:41 -0000 1.12 @@ -5790,53 +5790,6 @@ from this channel to be installed. - - php-kolab - 2.2.beta3 - 20071130 - OpenPKG Community - PLUS - Language - GPL - Gunnar Wrobel <wrobel at pardus.de> (p at rdus) -

    php-kolab provides several PEAR-style package with PHP routines for the Kolab Groupware server - http://www.kolab.org - Kolab Consortium - - - OpenPKG - openpkg - php - php::with_pear - - - - - horde-framework-kolab - PEAR-Net_LMTP - PEAR-Net_SMTP - PEAR-Net_IMAP - - - - - Kolab_Filter-2.2beta320071130.tgz - Kolab_Webadmin-2.2beta320071130.tgz - Kolab_Freebusy-2.2beta320071130.tgz - - - -php-kolab provides several PEAR-style package with PHP routines for -the Kolab Groupware server. - -Kolab_Freebusy provides the library required for free/busy support on -the server. - -Kolab_Filter holds routines necessary to parse iCal mail messages. - -Kolab_Webadmin groups utilities for the Kolab web admin frontend. - -
    fbview-horde 3.2_rc1 From cvs at kolab.org Sat Dec 8 08:32:27 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 8 Dec 2007 08:32:27 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Freebusy ChangeLog,1.6,1.7 Message-ID: <20071208073227.77691600D62@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Freebusy In directory doto:/tmp/cvs-serv29308/Kolab_Freebusy Modified Files: ChangeLog Log Message: Remove non-functional line (Reported by: Marcus Hüwe). Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Freebusy/ChangeLog,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- ChangeLog 30 Nov 2007 16:10:17 -0000 1.6 +++ ChangeLog 8 Dec 2007 07:32:25 -0000 1.7 @@ -1,3 +1,9 @@ +2007-12-08 Gunnar Wrobel

    + + * Freebusy/Cache.php: + + Remove non-functional line (Reported by: Marcus Hüwe). + 2007-11-30 Gunnar Wrobel

    * Freebusy/Cache.php: From cvs at kolab.org Sat Dec 8 08:32:27 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 8 Dec 2007 08:32:27 +0100 (CET) Subject: gunnar: server/php-kolab/Kolab_Freebusy/Freebusy Cache.php,1.3,1.4 Message-ID: <20071208073227.774D6600D5F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Freebusy/Freebusy In directory doto:/tmp/cvs-serv29308/Kolab_Freebusy/Freebusy Modified Files: Cache.php Log Message: Remove non-functional line (Reported by: Marcus Hüwe). Index: Cache.php =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Freebusy/Freebusy/Cache.php,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Cache.php 30 Nov 2007 16:10:17 -0000 1.3 +++ Cache.php 8 Dec 2007 07:32:25 -0000 1.4 @@ -306,7 +306,6 @@ $fldrcomp[] = 'INBOX'; } else { $fldrcomp[] = 'user'; - $owner[] = 'user'; } if (!empty($access->folder)) { From cvs at kolab.org Mon Dec 10 08:58:05 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 10 Dec 2007 08:58:05 +0100 (CET) Subject: thomas: doc/www/src index.html.m4,1.129,1.130 Message-ID: <20071210075805.CD7A4600D50@lists.intevation.de> Author: thomas Update of /kolabrepository/doc/www/src In directory doto:/tmp/cvs-serv4655 Modified Files: index.html.m4 Log Message: Announced Kolab Server 2.2 beta 3 and moved latest block Index: index.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/index.html.m4,v retrieving revision 1.129 retrieving revision 1.130 diff -u -d -r1.129 -r1.130 --- index.html.m4 19 Oct 2007 08:36:11 -0000 1.129 +++ index.html.m4 10 Dec 2007 07:58:03 -0000 1.130 @@ -47,6 +47,30 @@

    + + +
    May 10th, 2007» + Kolab Server 2.2 Beta 3 (with Horde web client) released +
    +

    +

    + Source and binary packages for Kolab Server 2.2 Beta 3 are available for + download. +
    + Since 2.2 beta 2 the Kolab server provides a web client that + supports all the groupware features known from Outlook and Kontact. + Thus users are less dependent on their local client and can access + their groupware data from anywhere in the world provided they have + a standard browser available. +
    + See the + + announcement for details. +
    +

    + + +
    October 18th, 2007 » Kolab KDE Client 2.1.11 released, revision 'proko2.1.11' @@ -63,6 +87,12 @@

    + +

    + +

    + +
    September 3rd, 2007 » @@ -79,13 +109,6 @@

    - -

    - -

    - - -
    August 21st, 2007 » @@ -111,11 +134,6 @@ folder is only filtered, if the folder is selected. This release also contains several bugfixes. See the announement for details.

    - - - - - From cvs at kolab.org Mon Dec 10 09:01:18 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 10 Dec 2007 09:01:18 +0100 (CET) Subject: thomas: doc/www/src index.html.m4,1.130,1.131 Message-ID: <20071210080118.D9B52600D50@lists.intevation.de> Author: thomas Update of /kolabrepository/doc/www/src In directory doto:/tmp/cvs-serv4765 Modified Files: index.html.m4 Log Message: Consistent naming scheme for Kolab KDE Client announcements Index: index.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/index.html.m4,v retrieving revision 1.130 retrieving revision 1.131 diff -u -d -r1.130 -r1.131 --- index.html.m4 10 Dec 2007 07:58:03 -0000 1.130 +++ index.html.m4 10 Dec 2007 08:01:16 -0000 1.131 @@ -73,7 +73,7 @@
    October 18th, 2007 » - Kolab KDE Client 2.1.11 released, revision 'proko2.1.11' + Kolab KDE Client released, revision 'proko2.1.11'

    @@ -96,7 +96,7 @@
    September 3rd, 2007 » - Kolab KDE Client 2.1.10 released, revision 'proko2.1.10' + Kolab KDE Client released, revision 'proko2.1.10'

    @@ -125,7 +125,7 @@
    August 14th, 2007 » - Kolab KDE Client 2.1.9 released, revision 'proko2.1.9' + Kolab KDE Client released, revision 'proko2.1.9'

    @@ -188,7 +188,7 @@
    May 8th, 2007 » - Kolab KDE Client 2.1.7 released + Kolab KDE Client released, revision 'proko2.1.7'

    From cvs at kolab.org Mon Dec 10 09:02:32 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 10 Dec 2007 09:02:32 +0100 (CET) Subject: thomas: doc/www/src index.html.m4,1.131,1.132 Message-ID: <20071210080232.B7BD6600D50@lists.intevation.de> Author: thomas Update of /kolabrepository/doc/www/src In directory doto:/tmp/cvs-serv4830 Modified Files: index.html.m4 Log Message: Forgot to update the time stamp for server release Index: index.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/index.html.m4,v retrieving revision 1.131 retrieving revision 1.132 diff -u -d -r1.131 -r1.132 --- index.html.m4 10 Dec 2007 08:01:16 -0000 1.131 +++ index.html.m4 10 Dec 2007 08:02:30 -0000 1.132 @@ -47,7 +47,7 @@

    - + From cvs at kolab.org Tue Dec 11 11:24:02 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 11 Dec 2007 11:24:02 +0100 (CET) Subject: gunnar: server/patches/cyrus-imapd/cyrus-imapd-2.3.10 - New directory Message-ID: <20071211102402.E319D600169@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.10 In directory doto:/tmp/cvs-serv15665/cyrus-imapd-2.3.10 Log Message: Directory /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.10 added to the repository From cvs at kolab.org Tue Dec 11 11:24:02 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 11 Dec 2007 11:24:02 +0100 (CET) Subject: gunnar: server/patches/cyrus-imapd/cyrus-imapd-2.3.11 - New directory Message-ID: <20071211102402.E67AA600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.11 In directory doto:/tmp/cvs-serv15665/cyrus-imapd-2.3.11 Log Message: Directory /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.11 added to the repository From cvs at kolab.org Tue Dec 11 11:24:02 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 11 Dec 2007 11:24:02 +0100 (CET) Subject: gunnar: server/patches/cyrus-imapd/cyrus-imapd-2.3.9 - New directory Message-ID: <20071211102402.E8FE5600D60@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.9 In directory doto:/tmp/cvs-serv15665/cyrus-imapd-2.3.9 Log Message: Directory /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.9 added to the repository From cvs at kolab.org Tue Dec 11 11:34:52 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 11 Dec 2007 11:34:52 +0100 (CET) Subject: gunnar: server/patches/cyrus-imapd/cyrus-imapd-2.3.10 KOLAB_cyrus-cyradm_Annotations.patch, NONE, 1.1 KOLAB_cyrus-imapd_Annotations2.patch, NONE, 1.1 KOLAB_cyrus-imapd_Folder-names.patch, NONE, 1.1 KOLAB_cyrus-imapd_Groups.patch, NONE, 1.1 KOLAB_cyrus-imapd_Logging.patch, NONE, 1.1 KOLAB_cyrus-imapd_UID.patch, NONE, 1.1 Message-ID: <20071211103452.4F414600171@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.10 In directory doto:/tmp/cvs-serv15983/cyrus-imapd-2.3.10 Added Files: KOLAB_cyrus-cyradm_Annotations.patch KOLAB_cyrus-imapd_Annotations2.patch KOLAB_cyrus-imapd_Folder-names.patch KOLAB_cyrus-imapd_Groups.patch KOLAB_cyrus-imapd_Logging.patch KOLAB_cyrus-imapd_UID.patch Log Message: cyrus-imapd-2.3.11 has been released upstream. Patches updated and patch directory restructured according to kolab-devel discussion. --- NEW FILE: KOLAB_cyrus-cyradm_Annotations.patch --- Allows to use arbitrary annotations with the cyradm tool. diff -r a07884e259c3 doc/man/cyradm.1.html --- a/doc/man/cyradm.1.html Thu Oct 25 08:24:39 2007 +0200 +++ b/doc/man/cyradm.1.html Thu Oct 25 08:29:40 2007 +0200 @@ -241,6 +241,13 @@ The currently supported attributes are:<

    Sets an email address to which messages injected into the server via NNTP will be sent.

    +
    + +
    /explicit/annotation + +
    +

    Sets the annotation /explicit/annotation +on mailbox to value.

    sharedseen diff -r a07884e259c3 perl/imap/IMAP/Admin.pm --- a/perl/imap/IMAP/Admin.pm Thu Oct 25 08:24:39 2007 +0200 +++ b/perl/imap/IMAP/Admin.pm Thu Oct 25 08:29:40 2007 +0200 @@ -796,11 +796,11 @@ sub mboxconfig { return undef; } - if(!exists($values{$entry})) { - $self->{error} = "Unknown parameter $entry"; - } - - $entry = $values{$entry}; + if(exists($values{$entry})) { + $entry = $values{$entry}; + } else { + $self->{error} = "Unknown parameter $entry" unless substr($entry,0,1) eq "/"; + } my ($rc, $msg); diff -r a07884e259c3 perl/imap/IMAP/Shell.pm --- a/perl/imap/IMAP/Shell.pm Thu Oct 25 08:24:39 2007 +0200 +++ b/perl/imap/IMAP/Shell.pm Thu Oct 25 08:29:40 2007 +0200 @@ -126,7 +126,7 @@ my %builtins = (exit => [\&_sc_info, '[mailbox]', 'display mailbox/server metadata'], mboxcfg => - [\&_sc_mboxcfg, 'mailbox [comment|condstore|expire|news2mail|sharedseen|sieve|squat] value', + [\&_sc_mboxcfg, 'mailbox [comment|condstore|news2mail|expire|sieve|squat|/] value', 'configure mailbox'], mboxconfig => 'mboxcfg', reconstruct => @@ -1436,7 +1436,7 @@ sub _sc_mboxcfg { while (defined ($opt = shift(@argv))) { last if $opt eq '--'; if ($opt =~ /^-/) { - die "usage: mboxconfig mailbox [comment|condstore|expire|news2mail|sharedseen|sieve|squat] value\n"; + die "usage: mboxconfig mailbox [comment|condstore|expire|news2mail|sharedseen|sieve|squat|/] value\n"; } else { push(@nargv, $opt); @@ -1445,7 +1445,7 @@ sub _sc_mboxcfg { } push(@nargv, @argv); if (@nargv < 2) { - die "usage: mboxconfig mailbox [comment|condstore|expire|news2mail|sharedseen|sieve|squat] value\n"; + die "usage: mboxconfig mailbox [comment|condstore|expire|news2mail|sharedseen|sieve|squat|/] value\n"; } if (!$cyrref || !$$cyrref) { die "mboxconfig: no connection to server\n"; diff -r a07884e259c3 perl/imap/cyradm.sh --- a/perl/imap/cyradm.sh Thu Oct 25 08:24:39 2007 +0200 +++ b/perl/imap/cyradm.sh Thu Oct 25 08:29:40 2007 +0200 @@ -241,6 +241,10 @@ mailboxes). Indicates that the mailbox should have a squat index created for it. +=item C + +Sets the annotation I on I to I. + =back =item C [C<--partition> I] I I --- NEW FILE: KOLAB_cyrus-imapd_Annotations2.patch --- Provides a new version of annotation support for the cyrus imapd server [Version: 2.3.9] diff -r b693d1281318 imap/annotate.c --- a/imap/annotate.c Thu Oct 25 08:21:36 2007 +0200 +++ b/imap/annotate.c Thu Oct 25 08:24:37 2007 +0200 @@ -40,6 +40,13 @@ * */ /* + * This file contains code Copyright (c) 2006 by Thomas Viehmann. + * You may distribute source code or binaries under the conditions + * conditions given in the CMU license, provided this note stays intact + * in the distributed source. If you want to distribute my code without + * this notice, do contact me at . + */ +/* * $Id: KOLAB_cyrus-imapd_Annotations2.patch,v 1.1 2007/12/11 10:34:48 gunnar Exp $ */ @@ -92,6 +99,8 @@ int (*proxy_store_func)(const char *serv int (*proxy_store_func)(const char *server, const char *mbox_pat, struct entryattlist *entryatts) = NULL; +void init_annotation_definitions(); + /* String List Management */ /* * Append 's' to the strlist 'l'. Possibly include metadata. @@ -238,6 +247,8 @@ void annotatemore_init(int myflags, if (store_func) { proxy_store_func = store_func; } + + init_annotation_definitions(); } void annotatemore_open(char *fname) @@ -1833,6 +1844,224 @@ const struct annotate_st_entry mailbox_r { NULL, 0, ANNOTATION_PROXY_T_INVALID, 0, 0, NULL, NULL } }; +struct annotate_st_entry_list *server_entries_list = NULL; +struct annotate_st_entry_list *mailbox_rw_entries_list = NULL; + +enum { + ANNOTATION_SCOPE_SERVER = 1, + ANNOTATION_SCOPE_MAILBOX = 2 +}; + +const struct annotate_attrib annotation_scope_names[] = +{ + { "server", ANNOTATION_SCOPE_SERVER }, + { "mailbox", ANNOTATION_SCOPE_MAILBOX }, + { NULL, 0 } +}; + +const struct annotate_attrib annotation_proxy_type_names[] = +{ + { "proxy", PROXY_ONLY }, + { "backend", BACKEND_ONLY }, + { "proxy_and_backend", PROXY_AND_BACKEND }, + { NULL, 0 } +}; + +const struct annotate_attrib attribute_type_names[] = +{ + { "content-type", ATTRIB_TYPE_CONTENTTYPE }, + { "string", ATTRIB_TYPE_STRING }, + { "boolean", ATTRIB_TYPE_BOOLEAN }, + { "uint", ATTRIB_TYPE_UINT }, + { "int", ATTRIB_TYPE_INT }, + { NULL, 0 } +}; + +#define ANNOT_DEF_MAXLINELEN 1024 + +int table_lookup(const struct annotate_attrib *table, + char* name, + size_t namelen, + char* errmsg) +/* search in table for the value given by name and namelen (name is null-terminated, + but possibly more than just the key). errmsg is used to hint the user where we failed */ +{ + char errbuf[ANNOT_DEF_MAXLINELEN*2]; + int entry; + + for (entry = 0; table[entry].name && + (strncasecmp(table[entry].name, name, namelen) + || table[entry].name[namelen] != '\0'); entry++); + + if (! table[entry].name) { + sprintf(errbuf, "invalid %s at '%s'", errmsg, name); + fatal(errbuf, EC_CONFIG); + } + return table[entry].entry; +} + +char *consume_comma(char* p) + /* advance beyond the next ',', skipping whitespace, fail if next non-space is no comma */ +{ + char errbuf[ANNOT_DEF_MAXLINELEN*2]; + + for (; *p && isspace(*p); p++); + if (*p != ',') { + sprintf(errbuf, "',' expected, '%s' found parsing annotation definition", + p); + fatal(errbuf, EC_CONFIG); + } + p++; + for (; *p && isspace(*p); p++); + + return p; +} + +int parse_table_lookup_bitmask(const struct annotate_attrib *table, + char** s, + char* errmsg) + /* parses strings of the form value1 [ value2 [ ... ]] + value1 is mapped via table to ints and the result ored + whitespace is allowed between value names and punctuation + the field must end in '\0' or ',' + s is advanced to '\0' or ',' + on error errmsg is used to identify item to be parsed + */ +{ + char errbuf[ANNOT_DEF_MAXLINELEN*2]; + int result = 0; + char *p, *p2; + + p = *s; + do { + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + result |= table_lookup(table, p2, p-p2, errmsg); + for (; *p && isspace(*p); p++); + } while (*p && *p != ','); + + *s = p; + return result; +} + +void init_annotation_definitions() +{ + char *p, *p2, *tmp; + const char *filename; + char aline[ANNOT_DEF_MAXLINELEN]; + char errbuf[ANNOT_DEF_MAXLINELEN*2]; + struct annotate_st_entry_list *se, *me; + struct annotate_st_entry *ae; + int i; + FILE* f; + + /* NOTE: we assume # static entries > 0 */ + server_entries_list = xmalloc(sizeof(struct annotate_st_entry_list)); + mailbox_rw_entries_list = xmalloc(sizeof(struct annotate_st_entry_list)); + se = server_entries_list; + me = mailbox_rw_entries_list; + /* copy static entries into list */ + for (i = 0; server_entries[i].name;i++) { + se->entry = &server_entries[i]; + if (server_entries[i+1].name) { + se->next = xmalloc(sizeof(struct annotate_st_entry_list)); + se = se->next; + } + } + /* copy static entries into list */ + for (i = 0; mailbox_rw_entries[i].name;i++) { + me->entry = &mailbox_rw_entries[i]; + if (mailbox_rw_entries[i+1].name) { + me->next = xmalloc(sizeof(struct annotate_st_entry_list)); + me = me->next; + } + } + + /* parse config file */ + filename = config_getstring(IMAPOPT_ANNOTATION_DEFINITIONS); + + if (! filename) { + se->next = NULL; + me->next = NULL; + return; + } + + f = fopen(filename,"r"); + if (! f) { + sprintf(errbuf, "could not open annotation definiton %s", filename); + fatal(errbuf, EC_CONFIG); + } + + while (fgets(aline, sizeof(aline), f)) { + // remove leading space, skip blank lines and comments + for (p = aline; *p && isspace(*p); p++); + if (!*p || *p == '#') continue; + + // note, we only do the most basic validity checking and may + // be more restrictive than neccessary + + ae = xmalloc(sizeof(struct annotate_st_entry)); + + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + // TV-TODO: should test for empty + ae->name = xstrndup(p2, p-p2); + + p = consume_comma(p); + + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + + if (table_lookup(annotation_scope_names, p2, p-p2, + "annotation scope")==ANNOTATION_SCOPE_SERVER) { + se->next = xmalloc(sizeof(struct annotate_st_entry_list)); + se = se->next; + se->entry = ae; + } + else { + me->next = xmalloc(sizeof(struct annotate_st_entry_list)); + me = me->next; + me->entry = ae; + } + + p = consume_comma(p); + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + ae->type = table_lookup(attribute_type_names, p2, p-p2, + "attribute type"); + + p = consume_comma(p); + ae->proxytype = parse_table_lookup_bitmask(annotation_proxy_type_names, + &p, + "annotation proxy type"); + + p = consume_comma(p); + ae->attribs = parse_table_lookup_bitmask(annotation_attributes, + &p, + "annotation attributes"); + + p = consume_comma(p); + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + tmp = xstrndup(p2, p-p2); + ae->acl = cyrus_acl_strtomask(tmp); + free(tmp); + + for (; *p && isspace(*p); p++); + if (*p) { + sprintf(errbuf, "junk at end of line: '%s'", p); + fatal(errbuf, EC_CONFIG); + } + + ae->set = annotation_set_todb; + ae->rock = NULL; + } + + fclose(f); + se->next = NULL; + me->next = NULL; +} + int annotatemore_store(char *mailbox, struct entryattlist *l, struct namespace *namespace, @@ -1844,7 +2073,7 @@ int annotatemore_store(char *mailbox, struct entryattlist *e = l; struct attvaluelist *av; struct storedata sdata; - const struct annotate_st_entry *entries; + const struct annotate_st_entry_list *entries, *currententry; time_t now = time(0); memset(&sdata, 0, sizeof(struct storedata)); @@ -1855,45 +2084,45 @@ int annotatemore_store(char *mailbox, if (!mailbox[0]) { /* server annotations */ - entries = server_entries; + entries = server_entries_list; } else { /* mailbox annotation(s) */ - entries = mailbox_rw_entries; + entries = mailbox_rw_entries_list; } /* Build a list of callbacks for storing the annotations */ while (e) { - int entrycount, attribs; + int attribs; struct annotate_st_entry_list *nentry = NULL; /* See if we support this entry */ - for (entrycount = 0; - entries[entrycount].name; - entrycount++) { - if (!strcmp(e->entry, entries[entrycount].name)) { + for (currententry = entries; + currententry; + currententry = currententry->next) { + if (!strcmp(e->entry, currententry->entry->name)) { break; } } - if (!entries[entrycount].name) { + if (!currententry) { /* unknown annotation */ return IMAP_PERMISSION_DENIED; } /* Add this entry to our list only if it applies to our particular server type */ - if ((entries[entrycount].proxytype != PROXY_ONLY) + if ((currententry->entry->proxytype != PROXY_ONLY) || proxy_store_func) { nentry = xzmalloc(sizeof(struct annotate_st_entry_list)); nentry->next = sdata.entry_list; - nentry->entry = &(entries[entrycount]); + nentry->entry = currententry->entry; nentry->shared.modifiedsince = now; nentry->priv.modifiedsince = now; sdata.entry_list = nentry; } /* See if we are allowed to set the given attributes. */ - attribs = entries[entrycount].attribs; + attribs = currententry->entry->attribs; av = e->attvalues; while (av) { const char *value; @@ -1903,7 +2132,7 @@ int annotatemore_store(char *mailbox, goto cleanup; } value = annotate_canon_value(av->value, - entries[entrycount].type); + currententry->entry->type); if (!value) { r = IMAP_ANNOTATION_BADVALUE; goto cleanup; @@ -1929,7 +2158,7 @@ int annotatemore_store(char *mailbox, goto cleanup; } value = annotate_canon_value(av->value, - entries[entrycount].type); + currententry->entry->type); if (!value) { r = IMAP_ANNOTATION_BADVALUE; goto cleanup; diff -r b693d1281318 lib/imapoptions --- a/lib/imapoptions Thu Oct 25 08:21:36 2007 +0200 +++ b/lib/imapoptions Thu Oct 25 08:24:37 2007 +0200 @@ -152,6 +152,9 @@ are listed with ``''. user on their mailboxes? In a large organization this can cause support problems, but it's enabled by default. */ +{ "annotation_definitions", NULL, STRING } +/* File containing annotation definitions. */ + { "auth_mech", "unix", STRINGLIST("unix", "pts", "krb", "krb5")} /* The authorization mechanism to use. */ --- NEW FILE: KOLAB_cyrus-imapd_Folder-names.patch --- Modifies the set of accepted characters in folder names for the cyrus imapd server [Version: 2.3.9] diff -r 6bcd324910d3 imap/mboxname.c --- a/imap/mboxname.c Thu Oct 25 08:30:33 2007 +0200 +++ b/imap/mboxname.c Thu Oct 25 08:30:43 2007 +0200 @@ -700,8 +700,13 @@ int mboxname_netnewscheck(char *name) /* * Apply site policy restrictions on mailbox names. * Restrictions are hardwired for now. - */ + + * original definition #define GOODCHARS " +,-.0123456789:=@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~" + */ + +#define GOODCHARS " #$%'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~" + int mboxname_policycheck(char *name) { unsigned i; --- NEW FILE: KOLAB_cyrus-imapd_Groups.patch --- Allows to use a file other than /etc/groups for group definitions within the cyrus imapd server [Version: 2.3.9] diff -r e502c48f9ba9 lib/auth_unix.c --- a/lib/auth_unix.c Thu Oct 25 08:10:12 2007 +0200 +++ b/lib/auth_unix.c Thu Oct 25 08:21:36 2007 +0200 @@ -48,12 +48,133 @@ #include #include #include +#include #include #include #include "auth.h" #include "libcyr_cfg.h" #include "xmalloc.h" + +#ifdef __FreeBSD__ +/* + * __getgrent.c - This file is part of the libc-8086/grp package for ELKS, + * Copyright (C) 1995, 1996 Nat Friedman . + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include +#include +#include + +static struct group *__getgrent(int grp_fd, char *line_buff, char **members) +{ + short line_index; + short buff_size; + static struct group group; + register char *ptr; + char *field_begin; + short member_num; + char *endptr; + int line_len; + + /* We use the restart label to handle malformatted lines */ + restart: + line_index = 0; + buff_size = 256; + + line_buff = realloc(line_buff, buff_size); + while (1) { + if ((line_len = read(grp_fd, line_buff + line_index, + buff_size - line_index)) <= 0) { + return NULL; + } + field_begin = strchr(line_buff, '\n'); + if (field_begin != NULL) { + lseek(grp_fd, + (long) (1 + field_begin - + (line_len + line_index + line_buff)), SEEK_CUR); + *field_begin = '\0'; + if (*line_buff == '#' || *line_buff == ' ' + || *line_buff == '\n' || *line_buff == '\t') + goto restart; + break; + } else { + /* Allocate some more space */ + line_index = buff_size; + buff_size += 256; + line_buff = realloc(line_buff, buff_size); + } + } + + /* Now parse the line */ + group.gr_name = line_buff; + ptr = strchr(line_buff, ':'); + if (ptr == NULL) + goto restart; + *ptr++ = '\0'; + + group.gr_passwd = ptr; + ptr = strchr(ptr, ':'); + if (ptr == NULL) + goto restart; + *ptr++ = '\0'; + + field_begin = ptr; + ptr = strchr(ptr, ':'); + if (ptr == NULL) + goto restart; + *ptr++ = '\0'; + + group.gr_gid = (gid_t) strtoul(field_begin, &endptr, 10); + if (*endptr != '\0') + goto restart; + + member_num = 0; + field_begin = ptr; + + if (members != NULL) + free(members); + members = (char **) malloc((member_num + 1) * sizeof(char *)); + for ( ; field_begin && *field_begin != '\0'; field_begin = ptr) { + if ((ptr = strchr(field_begin, ',')) != NULL) + *ptr++ = '\0'; + members[member_num++] = field_begin; + members = (char **) realloc(members, + (member_num + 1) * sizeof(char *)); + } + members[member_num] = NULL; + + group.gr_mem = members; + return &group; +} + +static char *line_buff = NULL; +static char **members = NULL; + +struct group *fgetgrent(FILE *file) +{ + if (file == NULL) { + errno = EINTR; + return NULL; + } + return __getgrent(fileno(file), line_buff, members); +} +#endif /* __FreeBSD__ */ struct auth_state { char userid[81]; @@ -142,6 +263,25 @@ static char allowedchars[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +static struct group* fgetgrnam(const char* name) +{ + struct group *grp; + FILE *groupfile; + + groupfile = fopen("/etc/imapd.group", "r"); + if (!groupfile) groupfile = fopen("/etc/group", "r"); + if (groupfile) { + while ((grp = fgetgrent(groupfile))) { + if (strcasecmp(grp->gr_name, name) == 0) { + fclose(groupfile); + return grp; + } + } + } + if (groupfile) fclose(groupfile); + return NULL; +} + /* * Convert 'identifier' into canonical form. * Returns a pointer to a static buffer containing the canonical form @@ -177,7 +317,7 @@ size_t len; */ if (!strncmp(retbuf, "group:", 6)) { - grp = getgrnam(retbuf+6); + grp = fgetgrnam(retbuf+6); if (!grp) return 0; strcpy(retbuf+6, grp->gr_name); return retbuf; @@ -228,6 +368,7 @@ static struct auth_state *mynewstate(con int ret, ngroups = 0; #else char **mem; + FILE *groupfile; #endif identifier = mycanonifyid(identifier, 0); @@ -286,20 +427,23 @@ err: if (groupids) free(groupids); #else /* !HAVE_GETGROUPLIST */ - setgrent(); - while ((grp = getgrent())) { - for (mem = grp->gr_mem; *mem; mem++) { - if (!strcmp(*mem, identifier)) break; - } - - if (*mem || (pwd && pwd->pw_gid == grp->gr_gid)) { - newstate->ngroups++; - newstate->group = (char **)xrealloc((char *)newstate->group, - newstate->ngroups * sizeof(char *)); - newstate->group[newstate->ngroups-1] = xstrdup(grp->gr_name); - } - } - endgrent(); + groupfile = fopen("/etc/imapd.group", "r"); + if (!groupfile) groupfile = fopen("/etc/group", "r"); + if (groupfile) { + while ((grp = fgetgrent(groupfile))) { + for (mem = grp->gr_mem; *mem; mem++) { + if (!strcasecmp(*mem, identifier)) break; + } + + if (*mem || (pwd && pwd->pw_gid == grp->gr_gid)) { + newstate->ngroups++; + newstate->group = (char **)xrealloc((char *)newstate->group, + newstate->ngroups * sizeof(char *)); + newstate->group[newstate->ngroups-1] = xstrdup(grp->gr_name); + } + } + fclose(groupfile); + } #endif /* HAVE_GETGROUPLIST */ return newstate; --- NEW FILE: KOLAB_cyrus-imapd_Logging.patch --- Provides improved logging for the cyrus imapd server [Version: 2.3.9] diff -r e60d8aee10e9 imap/append.c --- a/imap/append.c Thu Oct 25 08:30:15 2007 +0200 +++ b/imap/append.c Thu Oct 25 08:30:23 2007 +0200 @@ -648,6 +648,9 @@ int append_fromstage(struct appendstate /* ok, we've successfully added a message */ as->quota_used += message_index.size; + + syslog(LOG_DEBUG, "append_fromstage: message %d added to %s", + message_index.uid, mailbox->name ); return 0; } diff -r e60d8aee10e9 imap/imapd.c --- a/imap/imapd.c Thu Oct 25 08:30:15 2007 +0200 +++ b/imap/imapd.c Thu Oct 25 08:30:23 2007 +0200 @@ -3510,17 +3510,19 @@ void cmd_close(char *tag) if (!r) sync_log_mailbox(imapd_mailbox->name); } + if (r) { + prot_printf(imapd_out, "%s NO %s\r\n", tag, error_message(r)); + } + else { + prot_printf(imapd_out, "%s OK %s\r\n", tag, + error_message(IMAP_OK_COMPLETED)); + syslog(LOG_DEBUG, "cmd_expunge: user %s, mailbox %s, sequence %s", + imapd_userid, imapd_mailbox->name, "''"); + } + index_closemailbox(imapd_mailbox); mailbox_close(imapd_mailbox); imapd_mailbox = 0; - - if (r) { - prot_printf(imapd_out, "%s NO %s\r\n", tag, error_message(r)); - } - else { - prot_printf(imapd_out, "%s OK %s\r\n", tag, - error_message(IMAP_OK_COMPLETED)); - } } /* diff -r e60d8aee10e9 imap/mailbox.c --- a/imap/mailbox.c Thu Oct 25 08:30:15 2007 +0200 +++ b/imap/mailbox.c Thu Oct 25 08:30:23 2007 +0200 @@ -2520,6 +2520,8 @@ int mailbox_expunge(struct mailbox *mail *(fname->tail)++ = '/'; fname->len++; for (msgno = 0; msgno < numdeleted; msgno++) { + syslog(LOG_DEBUG, "mailbox_expunge: removing mail %s:%d", + mailbox->name, deleted[msgno]); mailbox_message_get_fname(mailbox, deleted[msgno], fname->tail, sizeof(fname->buf) - fname->len); --- NEW FILE: KOLAB_cyrus-imapd_UID.patch --- Allows login by uid rather than the mail address on the cyrus imapd server [Version: 2.3.9] diff -r d62bf3b0902d configure --- a/configure Thu Oct 25 08:30:57 2007 +0200 +++ b/configure Thu Oct 25 08:31:06 2007 +0200 @@ -18119,7 +18119,7 @@ done done IMAP_COM_ERR_LIBS="${COM_ERR_LIBS}" -IMAP_LIBS="${LIB_SASL} ${LIBS}" +IMAP_LIBS="${LIB_SASL} -lldap -llber ${LIBS}" diff -r d62bf3b0902d imap/global.c --- a/imap/global.c Thu Oct 25 08:30:57 2007 +0200 +++ b/imap/global.c Thu Oct 25 08:31:06 2007 +0200 @@ -52,6 +52,9 @@ #include #include +#include +#include + #if HAVE_UNISTD_H # include #endif @@ -362,6 +365,18 @@ char *canonify_userid(char *user, char * char *domain = NULL; int len = strlen(user); char buf[81]; + const char *uri; + const char *base; + const char *binddn; + const char *bindpw; + struct timeval timeout; + char filter[255]; + LDAP *handle; + LDAPMessage *res; + LDAPMessage *entry; + char ** vals; + + int rc; /* check for domain */ if (config_virtdomains && @@ -380,6 +395,47 @@ char *canonify_userid(char *user, char * } if (config_virtdomains) { + if (config_virtdomains == IMAP_ENUM_VIRTDOMAINS_LDAP) { + uri = config_getstring(IMAPOPT_LDAP_URI); + base = config_getstring(IMAPOPT_LDAP_BASE); + binddn = config_getstring(IMAPOPT_LDAP_BIND_DN); + bindpw = config_getstring(IMAPOPT_LDAP_PASSWORD); + timeout.tv_sec = config_getint(IMAPOPT_LDAP_TIME_LIMIT); + timeout.tv_usec = 0; + sprintf(filter, "(uid=%s)", user); + rc = ldap_initialize(&handle, uri); + if (rc != LDAP_SUCCESS) { + syslog(LOG_ERR, "ldap_initialize failed (%s)", uri); + } else { + rc = ldap_simple_bind_s(handle, binddn, bindpw); + if (rc != LDAP_SUCCESS) { + syslog(LOG_ERR, "ldap_simple_bind() failed %d (%s)", rc, ldap_err2string(rc)); + } else { + rc = ldap_search_st(handle, base, LDAP_SCOPE_SUBTREE, filter, NULL, 0, &timeout, &res); + if (rc != LDAP_SUCCESS) { + syslog(LOG_ERR, "ldap_search_st failed %d (%s)", rc, ldap_err2string(rc)); + } else { + if ( (entry = ldap_first_entry(handle, res)) != NULL ) { + // read mail attribute from entry + if ( (vals = ldap_get_values(handle, entry, "mail")) ) { + if (strchr(vals[0], '@')) { + static char buf[81]; /* same size as in auth_canonifyid */ + strncpy( buf, vals[0], sizeof(buf) ); + buf[80] = '\0'; /* make sure it's null-terminated */ + ldap_value_free( vals ); + ldap_msgfree( res ); + ldap_unbind_s(handle); /* also frees handle */ + return auth_canonifyid( buf, 0) ; + } + ldap_value_free( vals ); + } + } + ldap_msgfree( res ); + } + } + ldap_unbind_s(handle); /* also frees handle */ + } + } if (domain) { if (config_defdomain && !strcasecmp(config_defdomain, domain+1)) { *domain = '\0'; /* trim the default domain */ @@ -392,7 +448,7 @@ char *canonify_userid(char *user, char * user = buf; } } - else if (config_virtdomains != IMAP_ENUM_VIRTDOMAINS_USERID) { + else if (config_virtdomains != IMAP_ENUM_VIRTDOMAINS_USERID && config_virtdomains != IMAP_ENUM_VIRTDOMAINS_LDAP) { socklen_t salen; int error; struct sockaddr_storage localaddr; diff -r d62bf3b0902d lib/imapoptions --- a/lib/imapoptions Thu Oct 25 08:30:57 2007 +0200 +++ b/lib/imapoptions Thu Oct 25 08:31:06 2007 +0200 @@ -1034,7 +1034,7 @@ are listed with ``''. mailbox hierarchy. The default is to use the netnews separator character '.'. */ -{ "virtdomains", "off", ENUM("off", "userid", "on") } +{ "virtdomains", "off", ENUM("off", "userid", "ldap", "on") } /* Enable virtual domain support. If enabled, the user's domain will be determined by splitting a fully qualified userid at the last '@' or '%' symbol. If the userid is unqualified, and the virtdomains From cvs at kolab.org Tue Dec 11 11:34:52 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 11 Dec 2007 11:34:52 +0100 (CET) Subject: gunnar: server/patches/cyrus-imapd/cyrus-imapd-2.3.9 KOLAB_cyrus-cyradm_Annotations.patch, NONE, 1.1 KOLAB_cyrus-imapd_Annotations2.patch, NONE, 1.1 KOLAB_cyrus-imapd_Folder-names.patch, NONE, 1.1 KOLAB_cyrus-imapd_Groups.patch, NONE, 1.1 KOLAB_cyrus-imapd_Logging.patch, NONE, 1.1 KOLAB_cyrus-imapd_UID.patch, NONE, 1.1 Message-ID: <20071211103452.511B0600D62@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.9 In directory doto:/tmp/cvs-serv15983/cyrus-imapd-2.3.9 Added Files: KOLAB_cyrus-cyradm_Annotations.patch KOLAB_cyrus-imapd_Annotations2.patch KOLAB_cyrus-imapd_Folder-names.patch KOLAB_cyrus-imapd_Groups.patch KOLAB_cyrus-imapd_Logging.patch KOLAB_cyrus-imapd_UID.patch Log Message: cyrus-imapd-2.3.11 has been released upstream. Patches updated and patch directory restructured according to kolab-devel discussion. --- NEW FILE: KOLAB_cyrus-cyradm_Annotations.patch --- Allows to use arbitrary annotations with the cyradm tool. diff -r 124e8301a15d doc/man/cyradm.1.html --- a/doc/man/cyradm.1.html Mon Oct 01 11:18:56 2007 +0200 +++ b/doc/man/cyradm.1.html Thu Oct 11 08:14:56 2007 +0200 @@ -255,6 +255,13 @@ mailboxes).

    Sets an email address to which messages injected into the server via NNTP will be sent.

    +
    + +
    /explicit/annotation + +
    +

    Sets the annotation /explicit/annotation +on mailbox to value.

    diff -r 124e8301a15d perl/imap/IMAP/Admin.pm --- a/perl/imap/IMAP/Admin.pm Mon Oct 01 11:18:56 2007 +0200 +++ b/perl/imap/IMAP/Admin.pm Thu Oct 11 08:14:56 2007 +0200 @@ -795,11 +795,11 @@ sub mboxconfig { return undef; } - if(!exists($values{$entry})) { - $self->{error} = "Unknown parameter $entry"; - } - - $entry = $values{$entry}; + if(exists($values{$entry})) { + $entry = $values{$entry}; + } else { + $self->{error} = "Unknown parameter $entry" unless substr($entry,0,1) eq "/"; + } my ($rc, $msg); diff -r 124e8301a15d perl/imap/IMAP/Shell.pm --- a/perl/imap/IMAP/Shell.pm Mon Oct 01 11:18:56 2007 +0200 +++ b/perl/imap/IMAP/Shell.pm Thu Oct 11 08:14:56 2007 +0200 @@ -126,7 +126,7 @@ my %builtins = (exit => [\&_sc_info, '[mailbox]', 'display mailbox/server metadata'], mboxcfg => - [\&_sc_mboxcfg, 'mailbox [comment|condstore|news2mail|expire|sieve|squat] value', + [\&_sc_mboxcfg, 'mailbox [comment|condstore|news2mail|expire|sieve|squat|/] value', 'configure mailbox'], mboxconfig => 'mboxcfg', reconstruct => @@ -1424,7 +1424,7 @@ sub _sc_mboxcfg { while (defined ($opt = shift(@argv))) { last if $opt eq '--'; if ($opt =~ /^-/) { - die "usage: mboxconfig mailbox [comment|condstore|news2mail|expire|sieve|squat] value\n"; + die "usage: mboxconfig mailbox [comment|condstore|news2mail|expire|sieve|squat|/] value\n"; } else { push(@nargv, $opt); @@ -1433,7 +1433,7 @@ sub _sc_mboxcfg { } push(@nargv, @argv); if (@nargv < 2) { - die "usage: mboxconfig mailbox [comment|condstore|news2mail|expire|sieve|squat] value\n"; + die "usage: mboxconfig mailbox [comment|condstore|news2mail|expire|sieve|squat|/] value\n"; } if (!$cyrref || !$$cyrref) { die "mboxconfig: no connection to server\n"; diff -r 124e8301a15d perl/imap/cyradm.sh --- a/perl/imap/cyradm.sh Mon Oct 01 11:18:56 2007 +0200 +++ b/perl/imap/cyradm.sh Thu Oct 11 08:14:56 2007 +0200 @@ -235,6 +235,10 @@ Sets an email address to which messages Sets an email address to which messages injected into the server via NNTP will be sent. +=item C + +Sets the annotation I on I to I. + =back =item C [C<--partition> I] I I --- NEW FILE: KOLAB_cyrus-imapd_Annotations2.patch --- Provides a new version of annotation support for the cyrus imapd server [Version: 2.3.9] diff -r 43265f589d80 imap/annotate.c --- a/imap/annotate.c Sat Sep 29 13:49:34 2007 +0200 +++ b/imap/annotate.c Sat Sep 29 13:56:24 2007 +0200 @@ -40,6 +40,13 @@ * */ /* + * This file contains code Copyright (c) 2006 by Thomas Viehmann. + * You may distribute source code or binaries under the conditions + * conditions given in the CMU license, provided this note stays intact + * in the distributed source. If you want to distribute my code without + * this notice, do contact me at . + */ +/* * $Id: KOLAB_cyrus-imapd_Annotations2.patch,v 1.1 2007/12/11 10:34:48 gunnar Exp $ */ @@ -92,6 +99,8 @@ int (*proxy_store_func)(const char *serv int (*proxy_store_func)(const char *server, const char *mbox_pat, struct entryattlist *entryatts) = NULL; +void init_annotation_definitions(); + /* String List Management */ /* * Append 's' to the strlist 'l'. Possibly include metadata. @@ -238,6 +247,8 @@ void annotatemore_init(int myflags, if (store_func) { proxy_store_func = store_func; } + + init_annotation_definitions(); } void annotatemore_open(char *fname) @@ -1797,6 +1808,224 @@ const struct annotate_st_entry mailbox_r { NULL, 0, ANNOTATION_PROXY_T_INVALID, 0, 0, NULL, NULL } }; +struct annotate_st_entry_list *server_entries_list = NULL; +struct annotate_st_entry_list *mailbox_rw_entries_list = NULL; + +enum { + ANNOTATION_SCOPE_SERVER = 1, + ANNOTATION_SCOPE_MAILBOX = 2 +}; + +const struct annotate_attrib annotation_scope_names[] = +{ + { "server", ANNOTATION_SCOPE_SERVER }, + { "mailbox", ANNOTATION_SCOPE_MAILBOX }, + { NULL, 0 } +}; + +const struct annotate_attrib annotation_proxy_type_names[] = +{ + { "proxy", PROXY_ONLY }, + { "backend", BACKEND_ONLY }, + { "proxy_and_backend", PROXY_AND_BACKEND }, + { NULL, 0 } +}; + +const struct annotate_attrib attribute_type_names[] = +{ + { "content-type", ATTRIB_TYPE_CONTENTTYPE }, + { "string", ATTRIB_TYPE_STRING }, + { "boolean", ATTRIB_TYPE_BOOLEAN }, + { "uint", ATTRIB_TYPE_UINT }, + { "int", ATTRIB_TYPE_INT }, + { NULL, 0 } +}; + +#define ANNOT_DEF_MAXLINELEN 1024 + +int table_lookup(const struct annotate_attrib *table, + char* name, + size_t namelen, + char* errmsg) +/* search in table for the value given by name and namelen (name is null-terminated, + but possibly more than just the key). errmsg is used to hint the user where we failed */ +{ + char errbuf[ANNOT_DEF_MAXLINELEN*2]; + int entry; + + for (entry = 0; table[entry].name && + (strncasecmp(table[entry].name, name, namelen) + || table[entry].name[namelen] != '\0'); entry++); + + if (! table[entry].name) { + sprintf(errbuf, "invalid %s at '%s'", errmsg, name); + fatal(errbuf, EC_CONFIG); + } + return table[entry].entry; +} + +char *consume_comma(char* p) + /* advance beyond the next ',', skipping whitespace, fail if next non-space is no comma */ +{ + char errbuf[ANNOT_DEF_MAXLINELEN*2]; + + for (; *p && isspace(*p); p++); + if (*p != ',') { + sprintf(errbuf, "',' expected, '%s' found parsing annotation definition", + p); + fatal(errbuf, EC_CONFIG); + } + p++; + for (; *p && isspace(*p); p++); + + return p; +} + +int parse_table_lookup_bitmask(const struct annotate_attrib *table, + char** s, + char* errmsg) + /* parses strings of the form value1 [ value2 [ ... ]] + value1 is mapped via table to ints and the result ored + whitespace is allowed between value names and punctuation + the field must end in '\0' or ',' + s is advanced to '\0' or ',' + on error errmsg is used to identify item to be parsed + */ +{ + char errbuf[ANNOT_DEF_MAXLINELEN*2]; + int result = 0; + char *p, *p2; + + p = *s; + do { + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + result |= table_lookup(table, p2, p-p2, errmsg); + for (; *p && isspace(*p); p++); + } while (*p && *p != ','); + + *s = p; + return result; +} + +void init_annotation_definitions() +{ + char *p, *p2, *tmp; + const char *filename; + char aline[ANNOT_DEF_MAXLINELEN]; + char errbuf[ANNOT_DEF_MAXLINELEN*2]; + struct annotate_st_entry_list *se, *me; + struct annotate_st_entry *ae; + int i; + FILE* f; + + /* NOTE: we assume # static entries > 0 */ + server_entries_list = xmalloc(sizeof(struct annotate_st_entry_list)); + mailbox_rw_entries_list = xmalloc(sizeof(struct annotate_st_entry_list)); + se = server_entries_list; + me = mailbox_rw_entries_list; + /* copy static entries into list */ + for (i = 0; server_entries[i].name;i++) { + se->entry = &server_entries[i]; + if (server_entries[i+1].name) { + se->next = xmalloc(sizeof(struct annotate_st_entry_list)); + se = se->next; + } + } + /* copy static entries into list */ + for (i = 0; mailbox_rw_entries[i].name;i++) { + me->entry = &mailbox_rw_entries[i]; + if (mailbox_rw_entries[i+1].name) { + me->next = xmalloc(sizeof(struct annotate_st_entry_list)); + me = me->next; + } + } + + /* parse config file */ + filename = config_getstring(IMAPOPT_ANNOTATION_DEFINITIONS); + + if (! filename) { + se->next = NULL; + me->next = NULL; + return; + } + + f = fopen(filename,"r"); + if (! f) { + sprintf(errbuf, "could not open annotation definiton %s", filename); + fatal(errbuf, EC_CONFIG); + } + + while (fgets(aline, sizeof(aline), f)) { + // remove leading space, skip blank lines and comments + for (p = aline; *p && isspace(*p); p++); + if (!*p || *p == '#') continue; + + // note, we only do the most basic validity checking and may + // be more restrictive than neccessary + + ae = xmalloc(sizeof(struct annotate_st_entry)); + + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + // TV-TODO: should test for empty + ae->name = xstrndup(p2, p-p2); + + p = consume_comma(p); + + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + + if (table_lookup(annotation_scope_names, p2, p-p2, + "annotation scope")==ANNOTATION_SCOPE_SERVER) { + se->next = xmalloc(sizeof(struct annotate_st_entry_list)); + se = se->next; + se->entry = ae; + } + else { + me->next = xmalloc(sizeof(struct annotate_st_entry_list)); + me = me->next; + me->entry = ae; + } + + p = consume_comma(p); + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + ae->type = table_lookup(attribute_type_names, p2, p-p2, + "attribute type"); + + p = consume_comma(p); + ae->proxytype = parse_table_lookup_bitmask(annotation_proxy_type_names, + &p, + "annotation proxy type"); + + p = consume_comma(p); + ae->attribs = parse_table_lookup_bitmask(annotation_attributes, + &p, + "annotation attributes"); + + p = consume_comma(p); + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + tmp = xstrndup(p2, p-p2); + ae->acl = cyrus_acl_strtomask(tmp); + free(tmp); + + for (; *p && isspace(*p); p++); + if (*p) { + sprintf(errbuf, "junk at end of line: '%s'", p); + fatal(errbuf, EC_CONFIG); + } + + ae->set = annotation_set_todb; + ae->rock = NULL; + } + + fclose(f); + se->next = NULL; + me->next = NULL; +} + int annotatemore_store(char *mailbox, struct entryattlist *l, struct namespace *namespace, @@ -1808,7 +2037,7 @@ int annotatemore_store(char *mailbox, struct entryattlist *e = l; struct attvaluelist *av; struct storedata sdata; - const struct annotate_st_entry *entries; + const struct annotate_st_entry_list *entries, *currententry; time_t now = time(0); memset(&sdata, 0, sizeof(struct storedata)); @@ -1819,45 +2048,45 @@ int annotatemore_store(char *mailbox, if (!mailbox[0]) { /* server annotations */ - entries = server_entries; + entries = server_entries_list; } else { /* mailbox annotation(s) */ - entries = mailbox_rw_entries; + entries = mailbox_rw_entries_list; } /* Build a list of callbacks for storing the annotations */ while (e) { - int entrycount, attribs; + int attribs; struct annotate_st_entry_list *nentry = NULL; /* See if we support this entry */ - for (entrycount = 0; - entries[entrycount].name; - entrycount++) { - if (!strcmp(e->entry, entries[entrycount].name)) { + for (currententry = entries; + currententry; + currententry = currententry->next) { + if (!strcmp(e->entry, currententry->entry->name)) { break; } } - if (!entries[entrycount].name) { + if (!currententry) { /* unknown annotation */ return IMAP_PERMISSION_DENIED; } /* Add this entry to our list only if it applies to our particular server type */ - if ((entries[entrycount].proxytype != PROXY_ONLY) + if ((currententry->entry->proxytype != PROXY_ONLY) || proxy_store_func) { nentry = xzmalloc(sizeof(struct annotate_st_entry_list)); nentry->next = sdata.entry_list; - nentry->entry = &(entries[entrycount]); + nentry->entry = currententry->entry; nentry->shared.modifiedsince = now; nentry->priv.modifiedsince = now; sdata.entry_list = nentry; } /* See if we are allowed to set the given attributes. */ - attribs = entries[entrycount].attribs; + attribs = currententry->entry->attribs; av = e->attvalues; while (av) { const char *value; @@ -1867,7 +2096,7 @@ int annotatemore_store(char *mailbox, goto cleanup; } value = annotate_canon_value(av->value, - entries[entrycount].type); + currententry->entry->type); if (!value) { r = IMAP_ANNOTATION_BADVALUE; goto cleanup; @@ -1893,7 +2122,7 @@ int annotatemore_store(char *mailbox, goto cleanup; } value = annotate_canon_value(av->value, - entries[entrycount].type); + currententry->entry->type); if (!value) { r = IMAP_ANNOTATION_BADVALUE; goto cleanup; diff -r 43265f589d80 lib/imapoptions --- a/lib/imapoptions Sat Sep 29 13:49:34 2007 +0200 +++ b/lib/imapoptions Sat Sep 29 13:56:24 2007 +0200 @@ -152,6 +152,9 @@ are listed with ``''. user on their mailboxes? In a large organization this can cause support problems, but it's enabled by default. */ +{ "annotation_definitions", NULL, STRING } +/* File containing annotation definitions. */ + { "auth_mech", "unix", STRINGLIST("unix", "pts", "krb", "krb5")} /* The authorization mechanism to use. */ --- NEW FILE: KOLAB_cyrus-imapd_Folder-names.patch --- Modifies the set of accepted characters in folder names for the cyrus imapd server [Version: 2.3.9] diff -r 575b237ded7b imap/mboxname.c --- a/imap/mboxname.c Sat Sep 29 13:40:37 2007 +0200 +++ b/imap/mboxname.c Sat Sep 29 13:41:01 2007 +0200 @@ -649,8 +649,13 @@ int mboxname_netnewscheck(char *name) /* * Apply site policy restrictions on mailbox names. * Restrictions are hardwired for now. - */ + + * original definition #define GOODCHARS " +,-.0123456789:=@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~" + */ + +#define GOODCHARS " #$%'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~" + int mboxname_policycheck(char *name) { unsigned i; --- NEW FILE: KOLAB_cyrus-imapd_Groups.patch --- Allows to use a file other than /etc/groups for group definitions within the cyrus imapd server [Version: 2.3.9] diff -r 719114a03da4 lib/auth_unix.c --- a/lib/auth_unix.c Sat Sep 29 13:38:16 2007 +0200 +++ b/lib/auth_unix.c Sat Sep 29 13:39:58 2007 +0200 @@ -48,12 +48,133 @@ #include #include #include +#include #include #include #include "auth.h" #include "libcyr_cfg.h" #include "xmalloc.h" + +#ifdef __FreeBSD__ +/* + * __getgrent.c - This file is part of the libc-8086/grp package for ELKS, + * Copyright (C) 1995, 1996 Nat Friedman . + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include +#include +#include + +static struct group *__getgrent(int grp_fd, char *line_buff, char **members) +{ + short line_index; + short buff_size; + static struct group group; + register char *ptr; + char *field_begin; + short member_num; + char *endptr; + int line_len; + + /* We use the restart label to handle malformatted lines */ + restart: + line_index = 0; + buff_size = 256; + + line_buff = realloc(line_buff, buff_size); + while (1) { + if ((line_len = read(grp_fd, line_buff + line_index, + buff_size - line_index)) <= 0) { + return NULL; + } + field_begin = strchr(line_buff, '\n'); + if (field_begin != NULL) { + lseek(grp_fd, + (long) (1 + field_begin - + (line_len + line_index + line_buff)), SEEK_CUR); + *field_begin = '\0'; + if (*line_buff == '#' || *line_buff == ' ' + || *line_buff == '\n' || *line_buff == '\t') + goto restart; + break; + } else { + /* Allocate some more space */ + line_index = buff_size; + buff_size += 256; + line_buff = realloc(line_buff, buff_size); + } + } + + /* Now parse the line */ + group.gr_name = line_buff; + ptr = strchr(line_buff, ':'); + if (ptr == NULL) + goto restart; + *ptr++ = '\0'; + + group.gr_passwd = ptr; + ptr = strchr(ptr, ':'); + if (ptr == NULL) + goto restart; + *ptr++ = '\0'; + + field_begin = ptr; + ptr = strchr(ptr, ':'); + if (ptr == NULL) + goto restart; + *ptr++ = '\0'; + + group.gr_gid = (gid_t) strtoul(field_begin, &endptr, 10); + if (*endptr != '\0') + goto restart; + + member_num = 0; + field_begin = ptr; + + if (members != NULL) + free(members); + members = (char **) malloc((member_num + 1) * sizeof(char *)); + for ( ; field_begin && *field_begin != '\0'; field_begin = ptr) { + if ((ptr = strchr(field_begin, ',')) != NULL) + *ptr++ = '\0'; + members[member_num++] = field_begin; + members = (char **) realloc(members, + (member_num + 1) * sizeof(char *)); + } + members[member_num] = NULL; + + group.gr_mem = members; + return &group; +} + +static char *line_buff = NULL; +static char **members = NULL; + +struct group *fgetgrent(FILE *file) +{ + if (file == NULL) { + errno = EINTR; + return NULL; + } + return __getgrent(fileno(file), line_buff, members); +} +#endif /* __FreeBSD__ */ struct auth_state { char userid[81]; @@ -142,6 +263,25 @@ static char allowedchars[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +static struct group* fgetgrnam(const char* name) +{ + struct group *grp; + FILE *groupfile; + + groupfile = fopen("/etc/imapd.group", "r"); + if (!groupfile) groupfile = fopen("/etc/group", "r"); + if (groupfile) { + while ((grp = fgetgrent(groupfile))) { + if (strcasecmp(grp->gr_name, name) == 0) { + fclose(groupfile); + return grp; + } + } + } + if (groupfile) fclose(groupfile); + return NULL; +} + /* * Convert 'identifier' into canonical form. * Returns a pointer to a static buffer containing the canonical form @@ -177,7 +317,7 @@ size_t len; */ if (!strncmp(retbuf, "group:", 6)) { - grp = getgrnam(retbuf+6); + grp = fgetgrnam(retbuf+6); if (!grp) return 0; strcpy(retbuf+6, grp->gr_name); return retbuf; @@ -224,6 +364,7 @@ static struct auth_state *mynewstate(con struct passwd *pwd; struct group *grp; char **mem; + FILE *groupfile; identifier = mycanonifyid(identifier, 0); if (!identifier) return 0; @@ -240,20 +381,23 @@ static struct auth_state *mynewstate(con pwd = getpwnam(identifier); - setgrent(); - while ((grp = getgrent())) { - for (mem = grp->gr_mem; *mem; mem++) { - if (!strcmp(*mem, identifier)) break; - } - - if (*mem || (pwd && pwd->pw_gid == grp->gr_gid)) { - newstate->ngroups++; - newstate->group = (char **)xrealloc((char *)newstate->group, - newstate->ngroups * sizeof(char *)); - newstate->group[newstate->ngroups-1] = xstrdup(grp->gr_name); - } - } - endgrent(); + groupfile = fopen("/etc/imapd.group", "r"); + if (!groupfile) groupfile = fopen("/etc/group", "r"); + if (groupfile) { + while ((grp = fgetgrent(groupfile))) { + for (mem = grp->gr_mem; *mem; mem++) { + if (!strcasecmp(*mem, identifier)) break; + } + + if (*mem || (pwd && pwd->pw_gid == grp->gr_gid)) { + newstate->ngroups++; + newstate->group = (char **)xrealloc((char *)newstate->group, + newstate->ngroups * sizeof(char *)); + newstate->group[newstate->ngroups-1] = xstrdup(grp->gr_name); + } + } + fclose(groupfile); + } return newstate; } --- NEW FILE: KOLAB_cyrus-imapd_Logging.patch --- Provides improved logging for the cyrus imapd server [Version: 2.3.9] diff -r 5e673d53c57c imap/append.c --- a/imap/append.c Sat Sep 29 13:56:24 2007 +0200 +++ b/imap/append.c Mon Oct 01 11:17:30 2007 +0200 @@ -653,6 +653,9 @@ int append_fromstage(struct appendstate /* ok, we've successfully added a message */ as->quota_used += message_index.size; + + syslog(LOG_DEBUG, "append_fromstage: message %d added to %s", + message_index.uid, mailbox->name ); return 0; } diff -r 5e673d53c57c imap/imapd.c --- a/imap/imapd.c Sat Sep 29 13:56:24 2007 +0200 +++ b/imap/imapd.c Mon Oct 01 11:17:30 2007 +0200 @@ -3504,17 +3504,19 @@ void cmd_close(char *tag) if (!r) sync_log_mailbox(imapd_mailbox->name); } + if (r) { + prot_printf(imapd_out, "%s NO %s\r\n", tag, error_message(r)); + } + else { + prot_printf(imapd_out, "%s OK %s\r\n", tag, + error_message(IMAP_OK_COMPLETED)); + syslog(LOG_DEBUG, "cmd_expunge: user %s, mailbox %s, sequence %s", + imapd_userid, imapd_mailbox->name, "''"); + } + index_closemailbox(imapd_mailbox); mailbox_close(imapd_mailbox); imapd_mailbox = 0; - - if (r) { - prot_printf(imapd_out, "%s NO %s\r\n", tag, error_message(r)); - } - else { - prot_printf(imapd_out, "%s OK %s\r\n", tag, - error_message(IMAP_OK_COMPLETED)); - } } /* diff -r 5e673d53c57c imap/mailbox.c --- a/imap/mailbox.c Sat Sep 29 13:56:24 2007 +0200 +++ b/imap/mailbox.c Mon Oct 01 11:17:30 2007 +0200 @@ -2457,6 +2457,8 @@ int mailbox_expunge(struct mailbox *mail *(fname->tail)++ = '/'; fname->len++; for (msgno = 0; msgno < numdeleted; msgno++) { + syslog(LOG_DEBUG, "mailbox_expunge: removing mail %s:%d", + mailbox->name, deleted[msgno]); mailbox_message_get_fname(mailbox, deleted[msgno], fname->tail, sizeof(fname->buf) - fname->len); --- NEW FILE: KOLAB_cyrus-imapd_UID.patch --- Allows login by uid rather than the mail address on the cyrus imapd server [Version: 2.3.9] diff -r a0335c09d80e configure --- a/configure Mon Oct 01 11:18:56 2007 +0200 +++ b/configure Mon Oct 15 11:10:31 2007 +0200 @@ -18094,7 +18094,7 @@ done done IMAP_COM_ERR_LIBS="${COM_ERR_LIBS}" -IMAP_LIBS="${LIB_SASL} ${LIBS}" +IMAP_LIBS="${LIB_SASL} -lldap -llber ${LIBS}" diff -r a0335c09d80e imap/global.c --- a/imap/global.c Mon Oct 01 11:18:56 2007 +0200 +++ b/imap/global.c Mon Oct 15 11:10:31 2007 +0200 @@ -52,6 +52,9 @@ #include #include +#include +#include + #if HAVE_UNISTD_H # include #endif @@ -362,6 +365,18 @@ char *canonify_userid(char *user, char * char *domain = NULL; int len = strlen(user); char buf[81]; + const char *uri; + const char *base; + const char *binddn; + const char *bindpw; + struct timeval timeout; + char filter[255]; + LDAP *handle; + LDAPMessage *res; + LDAPMessage *entry; + char ** vals; + + int rc; /* check for domain */ if (config_virtdomains && @@ -380,6 +395,47 @@ char *canonify_userid(char *user, char * } if (config_virtdomains) { + if (config_virtdomains == IMAP_ENUM_VIRTDOMAINS_LDAP) { + uri = config_getstring(IMAPOPT_LDAP_URI); + base = config_getstring(IMAPOPT_LDAP_BASE); + binddn = config_getstring(IMAPOPT_LDAP_BIND_DN); + bindpw = config_getstring(IMAPOPT_LDAP_PASSWORD); + timeout.tv_sec = config_getint(IMAPOPT_LDAP_TIME_LIMIT); + timeout.tv_usec = 0; + sprintf(filter, "(uid=%s)", user); + rc = ldap_initialize(&handle, uri); + if (rc != LDAP_SUCCESS) { + syslog(LOG_ERR, "ldap_initialize failed (%s)", uri); + } else { + rc = ldap_simple_bind_s(handle, binddn, bindpw); + if (rc != LDAP_SUCCESS) { + syslog(LOG_ERR, "ldap_simple_bind() failed %d (%s)", rc, ldap_err2string(rc)); + } else { + rc = ldap_search_st(handle, base, LDAP_SCOPE_SUBTREE, filter, NULL, 0, &timeout, &res); + if (rc != LDAP_SUCCESS) { + syslog(LOG_ERR, "ldap_search_st failed %d (%s)", rc, ldap_err2string(rc)); + } else { + if ( (entry = ldap_first_entry(handle, res)) != NULL ) { + // read mail attribute from entry + if ( (vals = ldap_get_values(handle, entry, "mail")) ) { + if (strchr(vals[0], '@')) { + static char buf[81]; /* same size as in auth_canonifyid */ + strncpy( buf, vals[0], sizeof(buf) ); + buf[80] = '\0'; /* make sure it's null-terminated */ + ldap_value_free( vals ); + ldap_msgfree( res ); + ldap_unbind_s(handle); /* also frees handle */ + return auth_canonifyid( buf, 0) ; + } + ldap_value_free( vals ); + } + } + ldap_msgfree( res ); + } + } + ldap_unbind_s(handle); /* also frees handle */ + } + } if (domain) { if (config_defdomain && !strcasecmp(config_defdomain, domain+1)) { *domain = '\0'; /* trim the default domain */ @@ -392,7 +448,7 @@ char *canonify_userid(char *user, char * user = buf; } } - else if (config_virtdomains != IMAP_ENUM_VIRTDOMAINS_USERID) { + else if (config_virtdomains != IMAP_ENUM_VIRTDOMAINS_USERID && config_virtdomains != IMAP_ENUM_VIRTDOMAINS_LDAP) { socklen_t salen; int error; struct sockaddr_storage localaddr; diff -r a0335c09d80e lib/imapoptions --- a/lib/imapoptions Mon Oct 01 11:18:56 2007 +0200 +++ b/lib/imapoptions Mon Oct 15 11:10:31 2007 +0200 @@ -1017,7 +1017,7 @@ are listed with ``''. mailbox hierarchy. The default is to use the netnews separator character '.'. */ -{ "virtdomains", "off", ENUM("off", "userid", "on") } +{ "virtdomains", "off", ENUM("off", "userid", "ldap", "on") } /* Enable virtual domain support. If enabled, the user's domain will be determined by splitting a fully qualified userid at the last '@' or '%' symbol. If the userid is unqualified, and the virtdomains From cvs at kolab.org Tue Dec 11 11:34:52 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 11 Dec 2007 11:34:52 +0100 (CET) Subject: gunnar: server/patches/cyrus-imapd KOLAB_cyrus-cyradm_2.3.10_Annotations.patch, 1.1, NONE KOLAB_cyrus-cyradm_2.3.9_Annotations.patch, 1.1, NONE KOLAB_cyrus-imapd_2.3.10_Annotations2.patch, 1.1, NONE KOLAB_cyrus-imapd_2.3.10_Folder-names.patch, 1.1, NONE KOLAB_cyrus-imapd_2.3.10_Groups.patch, 1.1, NONE KOLAB_cyrus-imapd_2.3.10_Logging.patch, 1.1, NONE KOLAB_cyrus-imapd_2.3.10_UID.patch, 1.1, NONE KOLAB_cyrus-imapd_2.3.9_Annotations2.patch, 1.1, NONE KOLAB_cyrus-imapd_2.3.9_Folder-names.patch, 1.1, NONE KOLAB_cyrus-imapd_2.3.9_Groups.patch, 1.1, NONE KOLAB_cyrus-imapd_2.3.9_Logging.patch, 1.2, NONE KOLAB_cyrus-imapd_2.3.9_UID.patch, 1.2, NONE Message-ID: <20071211103452.4D4C8600169@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd In directory doto:/tmp/cvs-serv15983 Removed Files: KOLAB_cyrus-cyradm_2.3.10_Annotations.patch KOLAB_cyrus-cyradm_2.3.9_Annotations.patch KOLAB_cyrus-imapd_2.3.10_Annotations2.patch KOLAB_cyrus-imapd_2.3.10_Folder-names.patch KOLAB_cyrus-imapd_2.3.10_Groups.patch KOLAB_cyrus-imapd_2.3.10_Logging.patch KOLAB_cyrus-imapd_2.3.10_UID.patch KOLAB_cyrus-imapd_2.3.9_Annotations2.patch KOLAB_cyrus-imapd_2.3.9_Folder-names.patch KOLAB_cyrus-imapd_2.3.9_Groups.patch KOLAB_cyrus-imapd_2.3.9_Logging.patch KOLAB_cyrus-imapd_2.3.9_UID.patch Log Message: cyrus-imapd-2.3.11 has been released upstream. Patches updated and patch directory restructured according to kolab-devel discussion. --- KOLAB_cyrus-cyradm_2.3.10_Annotations.patch DELETED --- --- KOLAB_cyrus-cyradm_2.3.9_Annotations.patch DELETED --- --- KOLAB_cyrus-imapd_2.3.10_Annotations2.patch DELETED --- --- KOLAB_cyrus-imapd_2.3.10_Folder-names.patch DELETED --- --- KOLAB_cyrus-imapd_2.3.10_Groups.patch DELETED --- --- KOLAB_cyrus-imapd_2.3.10_Logging.patch DELETED --- --- KOLAB_cyrus-imapd_2.3.10_UID.patch DELETED --- --- KOLAB_cyrus-imapd_2.3.9_Annotations2.patch DELETED --- --- KOLAB_cyrus-imapd_2.3.9_Folder-names.patch DELETED --- --- KOLAB_cyrus-imapd_2.3.9_Groups.patch DELETED --- --- KOLAB_cyrus-imapd_2.3.9_Logging.patch DELETED --- --- KOLAB_cyrus-imapd_2.3.9_UID.patch DELETED --- From cvs at kolab.org Tue Dec 11 11:34:52 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 11 Dec 2007 11:34:52 +0100 (CET) Subject: gunnar: server/patches/cyrus-imapd/cyrus-imapd-2.3.11 KOLAB_cyrus-cyradm_Annotations.patch, NONE, 1.1 KOLAB_cyrus-imapd_Annotations2.patch, NONE, 1.1 KOLAB_cyrus-imapd_Folder-names.patch, NONE, 1.1 KOLAB_cyrus-imapd_Groups.patch, NONE, 1.1 KOLAB_cyrus-imapd_Logging.patch, NONE, 1.1 KOLAB_cyrus-imapd_UID.patch, NONE, 1.1 Message-ID: <20071211103452.502EC600D60@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.11 In directory doto:/tmp/cvs-serv15983/cyrus-imapd-2.3.11 Added Files: KOLAB_cyrus-cyradm_Annotations.patch KOLAB_cyrus-imapd_Annotations2.patch KOLAB_cyrus-imapd_Folder-names.patch KOLAB_cyrus-imapd_Groups.patch KOLAB_cyrus-imapd_Logging.patch KOLAB_cyrus-imapd_UID.patch Log Message: cyrus-imapd-2.3.11 has been released upstream. Patches updated and patch directory restructured according to kolab-devel discussion. --- NEW FILE: KOLAB_cyrus-cyradm_Annotations.patch --- Allows to use arbitrary annotations with the cyradm tool. diff -r a07884e259c3 doc/man/cyradm.1.html --- a/doc/man/cyradm.1.html Thu Oct 25 08:24:39 2007 +0200 +++ b/doc/man/cyradm.1.html Thu Oct 25 08:29:40 2007 +0200 @@ -241,6 +241,13 @@ The currently supported attributes are:<

    Sets an email address to which messages injected into the server via NNTP will be sent.

    +
    + +
    /explicit/annotation + +
    +

    Sets the annotation /explicit/annotation +on mailbox to value.

    sharedseen diff -r a07884e259c3 perl/imap/IMAP/Admin.pm --- a/perl/imap/IMAP/Admin.pm Thu Oct 25 08:24:39 2007 +0200 +++ b/perl/imap/IMAP/Admin.pm Thu Oct 25 08:29:40 2007 +0200 @@ -796,11 +796,11 @@ sub mboxconfig { return undef; } - if(!exists($values{$entry})) { - $self->{error} = "Unknown parameter $entry"; - } - - $entry = $values{$entry}; + if(exists($values{$entry})) { + $entry = $values{$entry}; + } else { + $self->{error} = "Unknown parameter $entry" unless substr($entry,0,1) eq "/"; + } my ($rc, $msg); diff -r a07884e259c3 perl/imap/IMAP/Shell.pm --- a/perl/imap/IMAP/Shell.pm Thu Oct 25 08:24:39 2007 +0200 +++ b/perl/imap/IMAP/Shell.pm Thu Oct 25 08:29:40 2007 +0200 @@ -126,7 +126,7 @@ my %builtins = (exit => [\&_sc_info, '[mailbox]', 'display mailbox/server metadata'], mboxcfg => - [\&_sc_mboxcfg, 'mailbox [comment|condstore|expire|news2mail|sharedseen|sieve|squat] value', + [\&_sc_mboxcfg, 'mailbox [comment|condstore|news2mail|expire|sieve|squat|/] value', 'configure mailbox'], mboxconfig => 'mboxcfg', reconstruct => @@ -1436,7 +1436,7 @@ sub _sc_mboxcfg { while (defined ($opt = shift(@argv))) { last if $opt eq '--'; if ($opt =~ /^-/) { - die "usage: mboxconfig mailbox [comment|condstore|expire|news2mail|sharedseen|sieve|squat] value\n"; + die "usage: mboxconfig mailbox [comment|condstore|expire|news2mail|sharedseen|sieve|squat|/] value\n"; } else { push(@nargv, $opt); @@ -1445,7 +1445,7 @@ sub _sc_mboxcfg { } push(@nargv, @argv); if (@nargv < 2) { - die "usage: mboxconfig mailbox [comment|condstore|expire|news2mail|sharedseen|sieve|squat] value\n"; + die "usage: mboxconfig mailbox [comment|condstore|expire|news2mail|sharedseen|sieve|squat|/] value\n"; } if (!$cyrref || !$$cyrref) { die "mboxconfig: no connection to server\n"; diff -r a07884e259c3 perl/imap/cyradm.sh --- a/perl/imap/cyradm.sh Thu Oct 25 08:24:39 2007 +0200 +++ b/perl/imap/cyradm.sh Thu Oct 25 08:29:40 2007 +0200 @@ -241,6 +241,10 @@ mailboxes). Indicates that the mailbox should have a squat index created for it. +=item C + +Sets the annotation I on I to I. + =back =item C [C<--partition> I] I I --- NEW FILE: KOLAB_cyrus-imapd_Annotations2.patch --- Provides a new version of annotation support for the cyrus imapd server [Version: 2.3.9] diff -r b693d1281318 imap/annotate.c --- a/imap/annotate.c Thu Oct 25 08:21:36 2007 +0200 +++ b/imap/annotate.c Thu Oct 25 08:24:37 2007 +0200 @@ -40,6 +40,13 @@ * */ /* + * This file contains code Copyright (c) 2006 by Thomas Viehmann. + * You may distribute source code or binaries under the conditions + * conditions given in the CMU license, provided this note stays intact + * in the distributed source. If you want to distribute my code without + * this notice, do contact me at . + */ +/* * $Id: KOLAB_cyrus-imapd_Annotations2.patch,v 1.1 2007/12/11 10:34:48 gunnar Exp $ */ @@ -92,6 +99,8 @@ int (*proxy_store_func)(const char *serv int (*proxy_store_func)(const char *server, const char *mbox_pat, struct entryattlist *entryatts) = NULL; +void init_annotation_definitions(); + /* String List Management */ /* * Append 's' to the strlist 'l'. Possibly include metadata. @@ -238,6 +247,8 @@ void annotatemore_init(int myflags, if (store_func) { proxy_store_func = store_func; } + + init_annotation_definitions(); } void annotatemore_open(char *fname) @@ -1833,6 +1844,224 @@ const struct annotate_st_entry mailbox_r { NULL, 0, ANNOTATION_PROXY_T_INVALID, 0, 0, NULL, NULL } }; +struct annotate_st_entry_list *server_entries_list = NULL; +struct annotate_st_entry_list *mailbox_rw_entries_list = NULL; + +enum { + ANNOTATION_SCOPE_SERVER = 1, + ANNOTATION_SCOPE_MAILBOX = 2 +}; + +const struct annotate_attrib annotation_scope_names[] = +{ + { "server", ANNOTATION_SCOPE_SERVER }, + { "mailbox", ANNOTATION_SCOPE_MAILBOX }, + { NULL, 0 } +}; + +const struct annotate_attrib annotation_proxy_type_names[] = +{ + { "proxy", PROXY_ONLY }, + { "backend", BACKEND_ONLY }, + { "proxy_and_backend", PROXY_AND_BACKEND }, + { NULL, 0 } +}; + +const struct annotate_attrib attribute_type_names[] = +{ + { "content-type", ATTRIB_TYPE_CONTENTTYPE }, + { "string", ATTRIB_TYPE_STRING }, + { "boolean", ATTRIB_TYPE_BOOLEAN }, + { "uint", ATTRIB_TYPE_UINT }, + { "int", ATTRIB_TYPE_INT }, + { NULL, 0 } +}; + +#define ANNOT_DEF_MAXLINELEN 1024 + +int table_lookup(const struct annotate_attrib *table, + char* name, + size_t namelen, + char* errmsg) +/* search in table for the value given by name and namelen (name is null-terminated, + but possibly more than just the key). errmsg is used to hint the user where we failed */ +{ + char errbuf[ANNOT_DEF_MAXLINELEN*2]; + int entry; + + for (entry = 0; table[entry].name && + (strncasecmp(table[entry].name, name, namelen) + || table[entry].name[namelen] != '\0'); entry++); + + if (! table[entry].name) { + sprintf(errbuf, "invalid %s at '%s'", errmsg, name); + fatal(errbuf, EC_CONFIG); + } + return table[entry].entry; +} + +char *consume_comma(char* p) + /* advance beyond the next ',', skipping whitespace, fail if next non-space is no comma */ +{ + char errbuf[ANNOT_DEF_MAXLINELEN*2]; + + for (; *p && isspace(*p); p++); + if (*p != ',') { + sprintf(errbuf, "',' expected, '%s' found parsing annotation definition", + p); + fatal(errbuf, EC_CONFIG); + } + p++; + for (; *p && isspace(*p); p++); + + return p; +} + +int parse_table_lookup_bitmask(const struct annotate_attrib *table, + char** s, + char* errmsg) + /* parses strings of the form value1 [ value2 [ ... ]] + value1 is mapped via table to ints and the result ored + whitespace is allowed between value names and punctuation + the field must end in '\0' or ',' + s is advanced to '\0' or ',' + on error errmsg is used to identify item to be parsed + */ +{ + char errbuf[ANNOT_DEF_MAXLINELEN*2]; + int result = 0; + char *p, *p2; + + p = *s; + do { + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + result |= table_lookup(table, p2, p-p2, errmsg); + for (; *p && isspace(*p); p++); + } while (*p && *p != ','); + + *s = p; + return result; +} + +void init_annotation_definitions() +{ + char *p, *p2, *tmp; + const char *filename; + char aline[ANNOT_DEF_MAXLINELEN]; + char errbuf[ANNOT_DEF_MAXLINELEN*2]; + struct annotate_st_entry_list *se, *me; + struct annotate_st_entry *ae; + int i; + FILE* f; + + /* NOTE: we assume # static entries > 0 */ + server_entries_list = xmalloc(sizeof(struct annotate_st_entry_list)); + mailbox_rw_entries_list = xmalloc(sizeof(struct annotate_st_entry_list)); + se = server_entries_list; + me = mailbox_rw_entries_list; + /* copy static entries into list */ + for (i = 0; server_entries[i].name;i++) { + se->entry = &server_entries[i]; + if (server_entries[i+1].name) { + se->next = xmalloc(sizeof(struct annotate_st_entry_list)); + se = se->next; + } + } + /* copy static entries into list */ + for (i = 0; mailbox_rw_entries[i].name;i++) { + me->entry = &mailbox_rw_entries[i]; + if (mailbox_rw_entries[i+1].name) { + me->next = xmalloc(sizeof(struct annotate_st_entry_list)); + me = me->next; + } + } + + /* parse config file */ + filename = config_getstring(IMAPOPT_ANNOTATION_DEFINITIONS); + + if (! filename) { + se->next = NULL; + me->next = NULL; + return; + } + + f = fopen(filename,"r"); + if (! f) { + sprintf(errbuf, "could not open annotation definiton %s", filename); + fatal(errbuf, EC_CONFIG); + } + + while (fgets(aline, sizeof(aline), f)) { + // remove leading space, skip blank lines and comments + for (p = aline; *p && isspace(*p); p++); + if (!*p || *p == '#') continue; + + // note, we only do the most basic validity checking and may + // be more restrictive than neccessary + + ae = xmalloc(sizeof(struct annotate_st_entry)); + + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + // TV-TODO: should test for empty + ae->name = xstrndup(p2, p-p2); + + p = consume_comma(p); + + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + + if (table_lookup(annotation_scope_names, p2, p-p2, + "annotation scope")==ANNOTATION_SCOPE_SERVER) { + se->next = xmalloc(sizeof(struct annotate_st_entry_list)); + se = se->next; + se->entry = ae; + } + else { + me->next = xmalloc(sizeof(struct annotate_st_entry_list)); + me = me->next; + me->entry = ae; + } + + p = consume_comma(p); + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + ae->type = table_lookup(attribute_type_names, p2, p-p2, + "attribute type"); + + p = consume_comma(p); + ae->proxytype = parse_table_lookup_bitmask(annotation_proxy_type_names, + &p, + "annotation proxy type"); + + p = consume_comma(p); + ae->attribs = parse_table_lookup_bitmask(annotation_attributes, + &p, + "annotation attributes"); + + p = consume_comma(p); + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + tmp = xstrndup(p2, p-p2); + ae->acl = cyrus_acl_strtomask(tmp); + free(tmp); + + for (; *p && isspace(*p); p++); + if (*p) { + sprintf(errbuf, "junk at end of line: '%s'", p); + fatal(errbuf, EC_CONFIG); + } + + ae->set = annotation_set_todb; + ae->rock = NULL; + } + + fclose(f); + se->next = NULL; + me->next = NULL; +} + int annotatemore_store(char *mailbox, struct entryattlist *l, struct namespace *namespace, @@ -1844,7 +2073,7 @@ int annotatemore_store(char *mailbox, struct entryattlist *e = l; struct attvaluelist *av; struct storedata sdata; - const struct annotate_st_entry *entries; + const struct annotate_st_entry_list *entries, *currententry; time_t now = time(0); memset(&sdata, 0, sizeof(struct storedata)); @@ -1855,45 +2084,45 @@ int annotatemore_store(char *mailbox, if (!mailbox[0]) { /* server annotations */ - entries = server_entries; + entries = server_entries_list; } else { /* mailbox annotation(s) */ - entries = mailbox_rw_entries; + entries = mailbox_rw_entries_list; } /* Build a list of callbacks for storing the annotations */ while (e) { - int entrycount, attribs; + int attribs; struct annotate_st_entry_list *nentry = NULL; /* See if we support this entry */ - for (entrycount = 0; - entries[entrycount].name; - entrycount++) { - if (!strcmp(e->entry, entries[entrycount].name)) { + for (currententry = entries; + currententry; + currententry = currententry->next) { + if (!strcmp(e->entry, currententry->entry->name)) { break; } } - if (!entries[entrycount].name) { + if (!currententry) { /* unknown annotation */ return IMAP_PERMISSION_DENIED; } /* Add this entry to our list only if it applies to our particular server type */ - if ((entries[entrycount].proxytype != PROXY_ONLY) + if ((currententry->entry->proxytype != PROXY_ONLY) || proxy_store_func) { nentry = xzmalloc(sizeof(struct annotate_st_entry_list)); nentry->next = sdata.entry_list; - nentry->entry = &(entries[entrycount]); + nentry->entry = currententry->entry; nentry->shared.modifiedsince = now; nentry->priv.modifiedsince = now; sdata.entry_list = nentry; } /* See if we are allowed to set the given attributes. */ - attribs = entries[entrycount].attribs; + attribs = currententry->entry->attribs; av = e->attvalues; while (av) { const char *value; @@ -1903,7 +2132,7 @@ int annotatemore_store(char *mailbox, goto cleanup; } value = annotate_canon_value(av->value, - entries[entrycount].type); + currententry->entry->type); if (!value) { r = IMAP_ANNOTATION_BADVALUE; goto cleanup; @@ -1929,7 +2158,7 @@ int annotatemore_store(char *mailbox, goto cleanup; } value = annotate_canon_value(av->value, - entries[entrycount].type); + currententry->entry->type); if (!value) { r = IMAP_ANNOTATION_BADVALUE; goto cleanup; diff -r b693d1281318 lib/imapoptions --- a/lib/imapoptions Thu Oct 25 08:21:36 2007 +0200 +++ b/lib/imapoptions Thu Oct 25 08:24:37 2007 +0200 @@ -152,6 +152,9 @@ are listed with ``''. user on their mailboxes? In a large organization this can cause support problems, but it's enabled by default. */ +{ "annotation_definitions", NULL, STRING } +/* File containing annotation definitions. */ + { "auth_mech", "unix", STRINGLIST("unix", "pts", "krb", "krb5")} /* The authorization mechanism to use. */ --- NEW FILE: KOLAB_cyrus-imapd_Folder-names.patch --- Modifies the set of accepted characters in folder names for the cyrus imapd server [Version: 2.3.9] diff -r a83b43bb79a3 imap/mboxname.c --- a/imap/mboxname.c Tue Dec 11 11:22:14 2007 +0100 +++ b/imap/mboxname.c Tue Dec 11 11:22:22 2007 +0100 @@ -712,8 +712,13 @@ int mboxname_netnewscheck(char *name) /* * Apply site policy restrictions on mailbox names. * Restrictions are hardwired for now. - */ + + * original definition #define GOODCHARS " +,-.0123456789:=@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~" + */ + +#define GOODCHARS " #$%'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~" + int mboxname_policycheck(char *name) { unsigned i; --- NEW FILE: KOLAB_cyrus-imapd_Groups.patch --- Allows to use a file other than /etc/groups for group definitions within the cyrus imapd server [Version: 2.3.9] diff -r 5f6f7a246f32 lib/auth_unix.c --- a/lib/auth_unix.c Tue Dec 11 11:20:37 2007 +0100 +++ b/lib/auth_unix.c Tue Dec 11 11:22:01 2007 +0100 @@ -48,12 +48,133 @@ #include #include #include +#include #include #include #include "auth.h" #include "libcyr_cfg.h" #include "xmalloc.h" + +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) +/* + * __getgrent.c - This file is part of the libc-8086/grp package for ELKS, + * Copyright (C) 1995, 1996 Nat Friedman . + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include +#include +#include + +static struct group *__getgrent(int grp_fd, char *line_buff, char **members) +{ + short line_index; + short buff_size; + static struct group group; + register char *ptr; + char *field_begin; + short member_num; + char *endptr; + int line_len; + + /* We use the restart label to handle malformatted lines */ + restart: + line_index = 0; + buff_size = 256; + + line_buff = realloc(line_buff, buff_size); + while (1) { + if ((line_len = read(grp_fd, line_buff + line_index, + buff_size - line_index)) <= 0) { + return NULL; + } + field_begin = strchr(line_buff, '\n'); + if (field_begin != NULL) { + lseek(grp_fd, + (long) (1 + field_begin - + (line_len + line_index + line_buff)), SEEK_CUR); + *field_begin = '\0'; + if (*line_buff == '#' || *line_buff == ' ' + || *line_buff == '\n' || *line_buff == '\t') + goto restart; + break; + } else { + /* Allocate some more space */ + line_index = buff_size; + buff_size += 256; + line_buff = realloc(line_buff, buff_size); + } + } + + /* Now parse the line */ + group.gr_name = line_buff; + ptr = strchr(line_buff, ':'); + if (ptr == NULL) + goto restart; + *ptr++ = '\0'; + + group.gr_passwd = ptr; + ptr = strchr(ptr, ':'); + if (ptr == NULL) + goto restart; + *ptr++ = '\0'; + + field_begin = ptr; + ptr = strchr(ptr, ':'); + if (ptr == NULL) + goto restart; + *ptr++ = '\0'; + + group.gr_gid = (gid_t) strtoul(field_begin, &endptr, 10); + if (*endptr != '\0') + goto restart; + + member_num = 0; + field_begin = ptr; + + if (members != NULL) + free(members); + members = (char **) malloc((member_num + 1) * sizeof(char *)); + for ( ; field_begin && *field_begin != '\0'; field_begin = ptr) { + if ((ptr = strchr(field_begin, ',')) != NULL) + *ptr++ = '\0'; + members[member_num++] = field_begin; + members = (char **) realloc(members, + (member_num + 1) * sizeof(char *)); + } + members[member_num] = NULL; + + group.gr_mem = members; + return &group; +} + +static char *line_buff = NULL; +static char **members = NULL; + +struct group *fgetgrent(FILE *file) +{ + if (file == NULL) { + errno = EINTR; + return NULL; + } + return __getgrent(fileno(file), line_buff, members); +} +#endif /* __FreeBSD__ */ struct auth_state { char userid[81]; @@ -142,6 +263,25 @@ static char allowedchars[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +static struct group* fgetgrnam(const char* name) +{ + struct group *grp; + FILE *groupfile; + + groupfile = fopen("/etc/imapd.group", "r"); + if (!groupfile) groupfile = fopen("/etc/group", "r"); + if (groupfile) { + while ((grp = fgetgrent(groupfile))) { + if (strcasecmp(grp->gr_name, name) == 0) { + fclose(groupfile); + return grp; + } + } + } + if (groupfile) fclose(groupfile); + return NULL; +} + /* * Convert 'identifier' into canonical form. * Returns a pointer to a static buffer containing the canonical form @@ -177,7 +317,7 @@ size_t len; */ if (!strncmp(retbuf, "group:", 6)) { - grp = getgrnam(retbuf+6); + grp = fgetgrnam(retbuf+6); if (!grp) return 0; strcpy(retbuf+6, grp->gr_name); return retbuf; @@ -228,6 +368,7 @@ static struct auth_state *mynewstate(con int ret, ngroups = 10; #else char **mem; + FILE *groupfile; #endif identifier = mycanonifyid(identifier, 0); @@ -283,20 +424,23 @@ err: if (groupids) free(groupids); #else /* !HAVE_GETGROUPLIST */ - setgrent(); - while ((grp = getgrent())) { - for (mem = grp->gr_mem; *mem; mem++) { - if (!strcmp(*mem, identifier)) break; - } - - if (*mem || (pwd && pwd->pw_gid == grp->gr_gid)) { - newstate->ngroups++; - newstate->group = (char **)xrealloc((char *)newstate->group, - newstate->ngroups * sizeof(char *)); - newstate->group[newstate->ngroups-1] = xstrdup(grp->gr_name); - } - } - endgrent(); + groupfile = fopen("/etc/imapd.group", "r"); + if (!groupfile) groupfile = fopen("/etc/group", "r"); + if (groupfile) { + while ((grp = fgetgrent(groupfile))) { + for (mem = grp->gr_mem; *mem; mem++) { + if (!strcasecmp(*mem, identifier)) break; + } + + if (*mem || (pwd && pwd->pw_gid == grp->gr_gid)) { + newstate->ngroups++; + newstate->group = (char **)xrealloc((char *)newstate->group, + newstate->ngroups * sizeof(char *)); + newstate->group[newstate->ngroups-1] = xstrdup(grp->gr_name); + } + } + fclose(groupfile); + } #endif /* HAVE_GETGROUPLIST */ return newstate; --- NEW FILE: KOLAB_cyrus-imapd_Logging.patch --- Provides improved logging for the cyrus imapd server [Version: 2.3.9] diff -r 6162fc947b22 imap/append.c --- a/imap/append.c Tue Dec 11 11:22:03 2007 +0100 +++ b/imap/append.c Tue Dec 11 11:22:13 2007 +0100 @@ -648,6 +648,9 @@ int append_fromstage(struct appendstate /* ok, we've successfully added a message */ as->quota_used += message_index.size; + + syslog(LOG_DEBUG, "append_fromstage: message %d added to %s", + message_index.uid, mailbox->name ); return 0; } diff -r 6162fc947b22 imap/imapd.c --- a/imap/imapd.c Tue Dec 11 11:22:03 2007 +0100 +++ b/imap/imapd.c Tue Dec 11 11:22:13 2007 +0100 @@ -3509,17 +3509,19 @@ void cmd_close(char *tag) if (!r) sync_log_mailbox(imapd_mailbox->name); } + if (r) { + prot_printf(imapd_out, "%s NO %s\r\n", tag, error_message(r)); + } + else { + prot_printf(imapd_out, "%s OK %s\r\n", tag, + error_message(IMAP_OK_COMPLETED)); + syslog(LOG_DEBUG, "cmd_expunge: user %s, mailbox %s, sequence %s", + imapd_userid, imapd_mailbox->name, "''"); + } + index_closemailbox(imapd_mailbox); mailbox_close(imapd_mailbox); imapd_mailbox = 0; - - if (r) { - prot_printf(imapd_out, "%s NO %s\r\n", tag, error_message(r)); - } - else { - prot_printf(imapd_out, "%s OK %s\r\n", tag, - error_message(IMAP_OK_COMPLETED)); - } } /* diff -r 6162fc947b22 imap/mailbox.c --- a/imap/mailbox.c Tue Dec 11 11:22:03 2007 +0100 +++ b/imap/mailbox.c Tue Dec 11 11:22:13 2007 +0100 @@ -2520,6 +2520,8 @@ int mailbox_expunge(struct mailbox *mail *(fname->tail)++ = '/'; fname->len++; for (msgno = 0; msgno < numdeleted; msgno++) { + syslog(LOG_DEBUG, "mailbox_expunge: removing mail %s:%d", + mailbox->name, deleted[msgno]); mailbox_message_get_fname(mailbox, deleted[msgno], fname->tail, sizeof(fname->buf) - fname->len); --- NEW FILE: KOLAB_cyrus-imapd_UID.patch --- Allows login by uid rather than the mail address on the cyrus imapd server [Version: 2.3.9] diff -r d62bf3b0902d configure --- a/configure Thu Oct 25 08:30:57 2007 +0200 +++ b/configure Thu Oct 25 08:31:06 2007 +0200 @@ -18119,7 +18119,7 @@ done done IMAP_COM_ERR_LIBS="${COM_ERR_LIBS}" -IMAP_LIBS="${LIB_SASL} ${LIBS}" +IMAP_LIBS="${LIB_SASL} -lldap -llber ${LIBS}" diff -r d62bf3b0902d imap/global.c --- a/imap/global.c Thu Oct 25 08:30:57 2007 +0200 +++ b/imap/global.c Thu Oct 25 08:31:06 2007 +0200 @@ -52,6 +52,9 @@ #include #include +#include +#include + #if HAVE_UNISTD_H # include #endif @@ -362,6 +365,18 @@ char *canonify_userid(char *user, char * char *domain = NULL; int len = strlen(user); char buf[81]; + const char *uri; + const char *base; + const char *binddn; + const char *bindpw; + struct timeval timeout; + char filter[255]; + LDAP *handle; + LDAPMessage *res; + LDAPMessage *entry; + char ** vals; + + int rc; /* check for domain */ if (config_virtdomains && @@ -380,6 +395,47 @@ char *canonify_userid(char *user, char * } if (config_virtdomains) { + if (config_virtdomains == IMAP_ENUM_VIRTDOMAINS_LDAP) { + uri = config_getstring(IMAPOPT_LDAP_URI); + base = config_getstring(IMAPOPT_LDAP_BASE); + binddn = config_getstring(IMAPOPT_LDAP_BIND_DN); + bindpw = config_getstring(IMAPOPT_LDAP_PASSWORD); + timeout.tv_sec = config_getint(IMAPOPT_LDAP_TIME_LIMIT); + timeout.tv_usec = 0; + sprintf(filter, "(uid=%s)", user); + rc = ldap_initialize(&handle, uri); + if (rc != LDAP_SUCCESS) { + syslog(LOG_ERR, "ldap_initialize failed (%s)", uri); + } else { + rc = ldap_simple_bind_s(handle, binddn, bindpw); + if (rc != LDAP_SUCCESS) { + syslog(LOG_ERR, "ldap_simple_bind() failed %d (%s)", rc, ldap_err2string(rc)); + } else { + rc = ldap_search_st(handle, base, LDAP_SCOPE_SUBTREE, filter, NULL, 0, &timeout, &res); + if (rc != LDAP_SUCCESS) { + syslog(LOG_ERR, "ldap_search_st failed %d (%s)", rc, ldap_err2string(rc)); + } else { + if ( (entry = ldap_first_entry(handle, res)) != NULL ) { + // read mail attribute from entry + if ( (vals = ldap_get_values(handle, entry, "mail")) ) { + if (strchr(vals[0], '@')) { + static char buf[81]; /* same size as in auth_canonifyid */ + strncpy( buf, vals[0], sizeof(buf) ); + buf[80] = '\0'; /* make sure it's null-terminated */ + ldap_value_free( vals ); + ldap_msgfree( res ); + ldap_unbind_s(handle); /* also frees handle */ + return auth_canonifyid( buf, 0) ; + } + ldap_value_free( vals ); + } + } + ldap_msgfree( res ); + } + } + ldap_unbind_s(handle); /* also frees handle */ + } + } if (domain) { if (config_defdomain && !strcasecmp(config_defdomain, domain+1)) { *domain = '\0'; /* trim the default domain */ @@ -392,7 +448,7 @@ char *canonify_userid(char *user, char * user = buf; } } - else if (config_virtdomains != IMAP_ENUM_VIRTDOMAINS_USERID) { + else if (config_virtdomains != IMAP_ENUM_VIRTDOMAINS_USERID && config_virtdomains != IMAP_ENUM_VIRTDOMAINS_LDAP) { socklen_t salen; int error; struct sockaddr_storage localaddr; diff -r d62bf3b0902d lib/imapoptions --- a/lib/imapoptions Thu Oct 25 08:30:57 2007 +0200 +++ b/lib/imapoptions Thu Oct 25 08:31:06 2007 +0200 @@ -1034,7 +1034,7 @@ are listed with ``''. mailbox hierarchy. The default is to use the netnews separator character '.'. */ -{ "virtdomains", "off", ENUM("off", "userid", "on") } +{ "virtdomains", "off", ENUM("off", "userid", "ldap", "on") } /* Enable virtual domain support. If enabled, the user's domain will be determined by splitting a fully qualified userid at the last '@' or '%' symbol. If the userid is unqualified, and the virtdomains From cvs at kolab.org Wed Dec 12 15:24:33 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 12 Dec 2007 15:24:33 +0100 (CET) Subject: thomas: server/kolab-filter Makefile,1.8,1.9 Message-ID: <20071212142433.6291C602CB6@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-filter In directory doto:/tmp/cvs-serv17468/kolab-filter Modified Files: Makefile Log Message: Bumped version numbers to 2.2-beta3+cvs Index: Makefile =================================================================== RCS file: /kolabrepository/server/kolab-filter/Makefile,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- Makefile 30 Nov 2007 15:10:24 -0000 1.8 +++ Makefile 12 Dec 2007 14:24:31 -0000 1.9 @@ -2,7 +2,7 @@ RELEASE = $(shell date '+%Y%m%d') VERSION = 2.2.beta3 -CVS = 0 +CVS = 1 ifeq "x$(CVS)" "x0" SOURCE_TAG = $(VERSION) From cvs at kolab.org Wed Dec 12 15:24:33 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 12 Dec 2007 15:24:33 +0100 (CET) Subject: thomas: server/perl-kolab/lib Kolab.pm,1.11,1.12 Message-ID: <20071212142433.660F3602CBA@lists.intevation.de> Author: thomas Update of /kolabrepository/server/perl-kolab/lib In directory doto:/tmp/cvs-serv17468/perl-kolab/lib Modified Files: Kolab.pm Log Message: Bumped version numbers to 2.2-beta3+cvs Index: Kolab.pm =================================================================== RCS file: /kolabrepository/server/perl-kolab/lib/Kolab.pm,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- Kolab.pm 30 Nov 2007 15:10:24 -0000 1.11 +++ Kolab.pm 12 Dec 2007 14:24:31 -0000 1.12 @@ -62,7 +62,7 @@ our $KOLAB_BASE_VERSION = "2.2.beta3"; # Are current releases cvs based or is this a real release? -my $KOLAB_CVS = 0; +my $KOLAB_CVS = 1; our $KOLAB_RELEASE = sprintf "%0004d%02d%02d", ((gmtime)[5] + 1900), ((gmtime)[4] + 1), (gmtime)[3]; From cvs at kolab.org Wed Dec 12 15:24:33 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 12 Dec 2007 15:24:33 +0100 (CET) Subject: thomas: server install-kolab.sh,1.17,1.18 Message-ID: <20071212142433.616B1602CB4@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv17468 Modified Files: install-kolab.sh Log Message: Bumped version numbers to 2.2-beta3+cvs Index: install-kolab.sh =================================================================== RCS file: /kolabrepository/server/install-kolab.sh,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- install-kolab.sh 30 Nov 2007 15:10:24 -0000 1.17 +++ install-kolab.sh 12 Dec 2007 14:24:31 -0000 1.18 @@ -11,7 +11,7 @@ # # This program is free software under the GNU GPL (>=v2) -KOLAB_VERSION="2.2-beta3" +KOLAB_VERSION="2.2-beta3+cvs" KID="19414" TAG="kolab" From cvs at kolab.org Wed Dec 12 15:24:33 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 12 Dec 2007 15:24:33 +0100 (CET) Subject: thomas: server/kolabconf Makefile.PL,1.15,1.16 Message-ID: <20071212142433.64EFC602CB9@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabconf In directory doto:/tmp/cvs-serv17468/kolabconf Modified Files: Makefile.PL Log Message: Bumped version numbers to 2.2-beta3+cvs Index: Makefile.PL =================================================================== RCS file: /kolabrepository/server/kolabconf/Makefile.PL,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- Makefile.PL 7 Dec 2007 15:29:06 -0000 1.15 +++ Makefile.PL 12 Dec 2007 14:24:31 -0000 1.16 @@ -12,7 +12,7 @@ my $KOLAB_BASE_VERSION = "2.2.beta3"; # Are current releases cvs based or is this a real release? -my $KOLAB_CVS = 0; +my $KOLAB_CVS = 1; my $KOLAB_RELEASE = sprintf "%0004d%02d%02d", ((gmtime)[5] + 1900), ((gmtime)[4] + 1), (gmtime)[3]; From cvs at kolab.org Wed Dec 12 15:24:33 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 12 Dec 2007 15:24:33 +0100 (CET) Subject: thomas: server/kolab-freebusy Makefile,1.9,1.10 Message-ID: <20071212142433.63B80602CB7@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-freebusy In directory doto:/tmp/cvs-serv17468/kolab-freebusy Modified Files: Makefile Log Message: Bumped version numbers to 2.2-beta3+cvs Index: Makefile =================================================================== RCS file: /kolabrepository/server/kolab-freebusy/Makefile,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- Makefile 30 Nov 2007 15:10:24 -0000 1.9 +++ Makefile 12 Dec 2007 14:24:31 -0000 1.10 @@ -2,7 +2,7 @@ RELEASE = $(shell date '+%Y%m%d') VERSION = 2.2.beta3 -CVS = 0 +CVS = 1 ifeq "x$(CVS)" "x0" SOURCE_TAG = $(VERSION) From cvs at kolab.org Wed Dec 12 15:24:33 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 12 Dec 2007 15:24:33 +0100 (CET) Subject: thomas: server/php-kolab Makefile,1.14,1.15 Message-ID: <20071212142433.67277602CBB@lists.intevation.de> Author: thomas Update of /kolabrepository/server/php-kolab In directory doto:/tmp/cvs-serv17468/php-kolab Modified Files: Makefile Log Message: Bumped version numbers to 2.2-beta3+cvs Index: Makefile =================================================================== RCS file: /kolabrepository/server/php-kolab/Makefile,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- Makefile 30 Nov 2007 15:10:24 -0000 1.14 +++ Makefile 12 Dec 2007 14:24:31 -0000 1.15 @@ -5,7 +5,7 @@ VERSION = 2.2 PRERELEASE = beta PRERELEASE_VERSION = 3 -CVS = 0 +CVS = 1 ifeq "x$(PRERELEASE)" "x" ifeq "x$(CVS)" "x0" From cvs at kolab.org Wed Dec 12 15:38:51 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 12 Dec 2007 15:38:51 +0100 (CET) Subject: thomas: server release-notes.txt,1.196,1.197 Message-ID: <20071212143851.A6563602CAF@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv18011 Modified Files: release-notes.txt Log Message: Don't trigger the loop detection for two servers on one machine (kolab/issue26) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.196 retrieving revision 1.197 diff -u -d -r1.196 -r1.197 --- release-notes.txt 7 Dec 2007 18:49:21 -0000 1.196 +++ release-notes.txt 12 Dec 2007 14:38:49 -0000 1.197 @@ -1,6 +1,6 @@ Kolab Server 2.2 Release Notes ============================== -(Version 20071207, Kolab Server 2.2-beta3) +(Version 2008????, Kolab Server 2.2-???) For upgrading and installation instructions, please refer to the 1st.README file in the package directory. @@ -42,6 +42,13 @@ issues found in earlier versions. Additionally all software components have been upgraded to new upstream versions. The specifics are described below. + + +Changes between 2.2-beta-3 and 2.2-???: + + - kolabd-2.1.99-2008???? + + kolab/issue26 (Allow to bind to specific IPs) Changes between 2.2-beta-2 and 2.2-beta-3: From cvs at kolab.org Wed Dec 12 15:38:51 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 12 Dec 2007 15:38:51 +0100 (CET) Subject: thomas: server/kolabd/kolabd/templates main.cf.template.in, 1.17, 1.18 Message-ID: <20071212143851.A8807602CB4@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv18011/kolabd/kolabd/templates Modified Files: main.cf.template.in Log Message: Don't trigger the loop detection for two servers on one machine (kolab/issue26) Index: main.cf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/main.cf.template.in,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- main.cf.template.in 3 Oct 2007 10:05:18 -0000 1.17 +++ main.cf.template.in 12 Dec 2007 14:38:49 -0000 1.18 @@ -54,7 +54,10 @@ # smtp daemon #smtpd_banner = $myhostname ESMTP $mail_name -#inet_interfaces = 127.0.0.1 +@@@if bind_any@@@ +@@@else@@@ +inet_interfaces = @@@local_addr@@@, @@@bind_addr@@@ +@@@endif@@@ # relaying mynetworks = @@@postfix-mynetworks|join( )@@@ From cvs at kolab.org Wed Dec 12 15:40:19 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 12 Dec 2007 15:40:19 +0100 (CET) Subject: thomas: server/kolabd/kolabd/templates main.cf.template.in, 1.16, 1.16.2.1 Message-ID: <20071212144019.95313602CAF@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv18139/kolabd/kolabd/templates Modified Files: Tag: kolab_2_1_branch main.cf.template.in Log Message: Don't trigger the loop detection for two servers on one machine (kolab/issue26) Index: main.cf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/main.cf.template.in,v retrieving revision 1.16 retrieving revision 1.16.2.1 diff -u -d -r1.16 -r1.16.2.1 --- main.cf.template.in 9 May 2007 10:16:24 -0000 1.16 +++ main.cf.template.in 12 Dec 2007 14:40:17 -0000 1.16.2.1 @@ -54,7 +54,10 @@ # smtp daemon #smtpd_banner = $myhostname ESMTP $mail_name -#inet_interfaces = 127.0.0.1 +@@@if bind_any@@@ +@@@else@@@ +inet_interfaces = @@@local_addr@@@, @@@bind_addr@@@ +@@@endif@@@ # relaying mynetworks = @@@postfix-mynetworks|join( )@@@ From cvs at kolab.org Wed Dec 12 16:40:52 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 12 Dec 2007 16:40:52 +0100 (CET) Subject: thomas: server/kolabd/kolabd/templates resmgr.conf.template.in, 1.9.2.1, 1.9.2.2 Message-ID: <20071212154052.8FF13602CB4@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv20514 Modified Files: Tag: kolab_2_1_branch resmgr.conf.template.in Log Message: Fixed resmgr connection address for IMAP server if public imap port is disabled. Index: resmgr.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/resmgr.conf.template.in,v retrieving revision 1.9.2.1 retrieving revision 1.9.2.2 diff -u -d -r1.9.2.1 -r1.9.2.2 --- resmgr.conf.template.in 19 Sep 2007 17:06:42 -0000 1.9.2.1 +++ resmgr.conf.template.in 12 Dec 2007 15:40:50 -0000 1.9.2.2 @@ -9,7 +9,11 @@ @define('HORDE_BASE', '@webserver_document_root@@webserver_web_prefix@/fbview'); // What is the address of the Cyrus server where the calendar data is stored? +@@@if cyrus-imap@@@ $params['server'] = '@@@connect_addr@@@'; +@@@else@@@ +$params['server'] = '@@@local_addr@@@'; +@@@endif@@@ // Local IP address of the mailserver for bypassing content filters $params['local_addr'] = '@@@local_addr@@@'; From cvs at kolab.org Fri Dec 14 08:25:27 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 14 Dec 2007 08:25:27 +0100 (CET) Subject: gunnar: server/patches/cyrus-imapd/cyrus-imapd-2.3.11 KOLAB_cyrus-cyradm-2.3.11_Annotations.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.11-_Annotations2.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.11-_Folder-names.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.11-_Groups.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.11-_Logging.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.11-_UID.patch, NONE, 1.1 KOLAB_cyrus-cyradm_Annotations.patch, 1.1, NONE KOLAB_cyrus-imapd_Annotations2.patch, 1.1, NONE KOLAB_cyrus-imapd_Folder-names.patch, 1.1, NONE KOLAB_cyrus-imapd_Groups.patch, 1.1, NONE KOLAB_cyrus-imapd_Logging.patch, 1.1, NONE KOLAB_cyrus-imapd_UID.patch, 1.1, NONE Message-ID: <20071214072527.5830760C4AB@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.11 In directory doto:/tmp/cvs-serv18474 Added Files: KOLAB_cyrus-cyradm-2.3.11_Annotations.patch KOLAB_cyrus-imapd-2.3.11-_Annotations2.patch KOLAB_cyrus-imapd-2.3.11-_Folder-names.patch KOLAB_cyrus-imapd-2.3.11-_Groups.patch KOLAB_cyrus-imapd-2.3.11-_Logging.patch KOLAB_cyrus-imapd-2.3.11-_UID.patch Removed Files: KOLAB_cyrus-cyradm_Annotations.patch KOLAB_cyrus-imapd_Annotations2.patch KOLAB_cyrus-imapd_Folder-names.patch KOLAB_cyrus-imapd_Groups.patch KOLAB_cyrus-imapd_Logging.patch KOLAB_cyrus-imapd_UID.patch Log Message: Make OpenPKG happy. --- NEW FILE: KOLAB_cyrus-cyradm-2.3.11_Annotations.patch --- Allows to use arbitrary annotations with the cyradm tool. diff -r a07884e259c3 doc/man/cyradm.1.html --- a/doc/man/cyradm.1.html Thu Oct 25 08:24:39 2007 +0200 +++ b/doc/man/cyradm.1.html Thu Oct 25 08:29:40 2007 +0200 @@ -241,6 +241,13 @@ The currently supported attributes are:<

    Sets an email address to which messages injected into the server via NNTP will be sent.

    +
    + +
    /explicit/annotation + +
    +

    Sets the annotation /explicit/annotation +on mailbox to value.

    sharedseen diff -r a07884e259c3 perl/imap/IMAP/Admin.pm --- a/perl/imap/IMAP/Admin.pm Thu Oct 25 08:24:39 2007 +0200 +++ b/perl/imap/IMAP/Admin.pm Thu Oct 25 08:29:40 2007 +0200 @@ -796,11 +796,11 @@ sub mboxconfig { return undef; } - if(!exists($values{$entry})) { - $self->{error} = "Unknown parameter $entry"; - } - - $entry = $values{$entry}; + if(exists($values{$entry})) { + $entry = $values{$entry}; + } else { + $self->{error} = "Unknown parameter $entry" unless substr($entry,0,1) eq "/"; + } my ($rc, $msg); diff -r a07884e259c3 perl/imap/IMAP/Shell.pm --- a/perl/imap/IMAP/Shell.pm Thu Oct 25 08:24:39 2007 +0200 +++ b/perl/imap/IMAP/Shell.pm Thu Oct 25 08:29:40 2007 +0200 @@ -126,7 +126,7 @@ my %builtins = (exit => [\&_sc_info, '[mailbox]', 'display mailbox/server metadata'], mboxcfg => - [\&_sc_mboxcfg, 'mailbox [comment|condstore|expire|news2mail|sharedseen|sieve|squat] value', + [\&_sc_mboxcfg, 'mailbox [comment|condstore|news2mail|expire|sieve|squat|/] value', 'configure mailbox'], mboxconfig => 'mboxcfg', reconstruct => @@ -1436,7 +1436,7 @@ sub _sc_mboxcfg { while (defined ($opt = shift(@argv))) { last if $opt eq '--'; if ($opt =~ /^-/) { - die "usage: mboxconfig mailbox [comment|condstore|expire|news2mail|sharedseen|sieve|squat] value\n"; + die "usage: mboxconfig mailbox [comment|condstore|expire|news2mail|sharedseen|sieve|squat|/] value\n"; } else { push(@nargv, $opt); @@ -1445,7 +1445,7 @@ sub _sc_mboxcfg { } push(@nargv, @argv); if (@nargv < 2) { - die "usage: mboxconfig mailbox [comment|condstore|expire|news2mail|sharedseen|sieve|squat] value\n"; + die "usage: mboxconfig mailbox [comment|condstore|expire|news2mail|sharedseen|sieve|squat|/] value\n"; } if (!$cyrref || !$$cyrref) { die "mboxconfig: no connection to server\n"; diff -r a07884e259c3 perl/imap/cyradm.sh --- a/perl/imap/cyradm.sh Thu Oct 25 08:24:39 2007 +0200 +++ b/perl/imap/cyradm.sh Thu Oct 25 08:29:40 2007 +0200 @@ -241,6 +241,10 @@ mailboxes). Indicates that the mailbox should have a squat index created for it. +=item C + +Sets the annotation I on I to I. + =back =item C [C<--partition> I] I I --- NEW FILE: KOLAB_cyrus-imapd-2.3.11-_Annotations2.patch --- Provides a new version of annotation support for the cyrus imapd server [Version: 2.3.9] diff -r b693d1281318 imap/annotate.c --- a/imap/annotate.c Thu Oct 25 08:21:36 2007 +0200 +++ b/imap/annotate.c Thu Oct 25 08:24:37 2007 +0200 @@ -40,6 +40,13 @@ * */ /* + * This file contains code Copyright (c) 2006 by Thomas Viehmann. + * You may distribute source code or binaries under the conditions + * conditions given in the CMU license, provided this note stays intact + * in the distributed source. If you want to distribute my code without + * this notice, do contact me at . + */ +/* * $Id: KOLAB_cyrus-imapd-2.3.11-_Annotations2.patch,v 1.1 2007/12/14 07:25:25 gunnar Exp $ */ @@ -92,6 +99,8 @@ int (*proxy_store_func)(const char *serv int (*proxy_store_func)(const char *server, const char *mbox_pat, struct entryattlist *entryatts) = NULL; +void init_annotation_definitions(); + /* String List Management */ /* * Append 's' to the strlist 'l'. Possibly include metadata. @@ -238,6 +247,8 @@ void annotatemore_init(int myflags, if (store_func) { proxy_store_func = store_func; } + + init_annotation_definitions(); } void annotatemore_open(char *fname) @@ -1833,6 +1844,224 @@ const struct annotate_st_entry mailbox_r { NULL, 0, ANNOTATION_PROXY_T_INVALID, 0, 0, NULL, NULL } }; +struct annotate_st_entry_list *server_entries_list = NULL; +struct annotate_st_entry_list *mailbox_rw_entries_list = NULL; + +enum { + ANNOTATION_SCOPE_SERVER = 1, + ANNOTATION_SCOPE_MAILBOX = 2 +}; + +const struct annotate_attrib annotation_scope_names[] = +{ + { "server", ANNOTATION_SCOPE_SERVER }, + { "mailbox", ANNOTATION_SCOPE_MAILBOX }, + { NULL, 0 } +}; + +const struct annotate_attrib annotation_proxy_type_names[] = +{ + { "proxy", PROXY_ONLY }, + { "backend", BACKEND_ONLY }, + { "proxy_and_backend", PROXY_AND_BACKEND }, + { NULL, 0 } +}; + +const struct annotate_attrib attribute_type_names[] = +{ + { "content-type", ATTRIB_TYPE_CONTENTTYPE }, + { "string", ATTRIB_TYPE_STRING }, + { "boolean", ATTRIB_TYPE_BOOLEAN }, + { "uint", ATTRIB_TYPE_UINT }, + { "int", ATTRIB_TYPE_INT }, + { NULL, 0 } +}; + +#define ANNOT_DEF_MAXLINELEN 1024 + +int table_lookup(const struct annotate_attrib *table, + char* name, + size_t namelen, + char* errmsg) +/* search in table for the value given by name and namelen (name is null-terminated, + but possibly more than just the key). errmsg is used to hint the user where we failed */ +{ + char errbuf[ANNOT_DEF_MAXLINELEN*2]; + int entry; + + for (entry = 0; table[entry].name && + (strncasecmp(table[entry].name, name, namelen) + || table[entry].name[namelen] != '\0'); entry++); + + if (! table[entry].name) { + sprintf(errbuf, "invalid %s at '%s'", errmsg, name); + fatal(errbuf, EC_CONFIG); + } + return table[entry].entry; +} + +char *consume_comma(char* p) + /* advance beyond the next ',', skipping whitespace, fail if next non-space is no comma */ +{ + char errbuf[ANNOT_DEF_MAXLINELEN*2]; + + for (; *p && isspace(*p); p++); + if (*p != ',') { + sprintf(errbuf, "',' expected, '%s' found parsing annotation definition", + p); + fatal(errbuf, EC_CONFIG); + } + p++; + for (; *p && isspace(*p); p++); + + return p; +} + +int parse_table_lookup_bitmask(const struct annotate_attrib *table, + char** s, + char* errmsg) + /* parses strings of the form value1 [ value2 [ ... ]] + value1 is mapped via table to ints and the result ored + whitespace is allowed between value names and punctuation + the field must end in '\0' or ',' + s is advanced to '\0' or ',' + on error errmsg is used to identify item to be parsed + */ +{ + char errbuf[ANNOT_DEF_MAXLINELEN*2]; + int result = 0; + char *p, *p2; + + p = *s; + do { + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + result |= table_lookup(table, p2, p-p2, errmsg); + for (; *p && isspace(*p); p++); + } while (*p && *p != ','); + + *s = p; + return result; +} + +void init_annotation_definitions() +{ + char *p, *p2, *tmp; + const char *filename; + char aline[ANNOT_DEF_MAXLINELEN]; + char errbuf[ANNOT_DEF_MAXLINELEN*2]; + struct annotate_st_entry_list *se, *me; + struct annotate_st_entry *ae; + int i; + FILE* f; + + /* NOTE: we assume # static entries > 0 */ + server_entries_list = xmalloc(sizeof(struct annotate_st_entry_list)); + mailbox_rw_entries_list = xmalloc(sizeof(struct annotate_st_entry_list)); + se = server_entries_list; + me = mailbox_rw_entries_list; + /* copy static entries into list */ + for (i = 0; server_entries[i].name;i++) { + se->entry = &server_entries[i]; + if (server_entries[i+1].name) { + se->next = xmalloc(sizeof(struct annotate_st_entry_list)); + se = se->next; + } + } + /* copy static entries into list */ + for (i = 0; mailbox_rw_entries[i].name;i++) { + me->entry = &mailbox_rw_entries[i]; + if (mailbox_rw_entries[i+1].name) { + me->next = xmalloc(sizeof(struct annotate_st_entry_list)); + me = me->next; + } + } + + /* parse config file */ + filename = config_getstring(IMAPOPT_ANNOTATION_DEFINITIONS); + + if (! filename) { + se->next = NULL; + me->next = NULL; + return; + } + + f = fopen(filename,"r"); + if (! f) { + sprintf(errbuf, "could not open annotation definiton %s", filename); + fatal(errbuf, EC_CONFIG); + } + + while (fgets(aline, sizeof(aline), f)) { + // remove leading space, skip blank lines and comments + for (p = aline; *p && isspace(*p); p++); + if (!*p || *p == '#') continue; + + // note, we only do the most basic validity checking and may + // be more restrictive than neccessary + + ae = xmalloc(sizeof(struct annotate_st_entry)); + + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + // TV-TODO: should test for empty + ae->name = xstrndup(p2, p-p2); + + p = consume_comma(p); + + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + + if (table_lookup(annotation_scope_names, p2, p-p2, + "annotation scope")==ANNOTATION_SCOPE_SERVER) { + se->next = xmalloc(sizeof(struct annotate_st_entry_list)); + se = se->next; + se->entry = ae; + } + else { + me->next = xmalloc(sizeof(struct annotate_st_entry_list)); + me = me->next; + me->entry = ae; + } + + p = consume_comma(p); + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + ae->type = table_lookup(attribute_type_names, p2, p-p2, + "attribute type"); + + p = consume_comma(p); + ae->proxytype = parse_table_lookup_bitmask(annotation_proxy_type_names, + &p, + "annotation proxy type"); + + p = consume_comma(p); + ae->attribs = parse_table_lookup_bitmask(annotation_attributes, + &p, + "annotation attributes"); + + p = consume_comma(p); + p2 = p; + for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++); + tmp = xstrndup(p2, p-p2); + ae->acl = cyrus_acl_strtomask(tmp); + free(tmp); + + for (; *p && isspace(*p); p++); + if (*p) { + sprintf(errbuf, "junk at end of line: '%s'", p); + fatal(errbuf, EC_CONFIG); + } + + ae->set = annotation_set_todb; + ae->rock = NULL; + } + + fclose(f); + se->next = NULL; + me->next = NULL; +} + int annotatemore_store(char *mailbox, struct entryattlist *l, struct namespace *namespace, @@ -1844,7 +2073,7 @@ int annotatemore_store(char *mailbox, struct entryattlist *e = l; struct attvaluelist *av; struct storedata sdata; - const struct annotate_st_entry *entries; + const struct annotate_st_entry_list *entries, *currententry; time_t now = time(0); memset(&sdata, 0, sizeof(struct storedata)); @@ -1855,45 +2084,45 @@ int annotatemore_store(char *mailbox, if (!mailbox[0]) { /* server annotations */ - entries = server_entries; + entries = server_entries_list; } else { /* mailbox annotation(s) */ - entries = mailbox_rw_entries; + entries = mailbox_rw_entries_list; } /* Build a list of callbacks for storing the annotations */ while (e) { - int entrycount, attribs; + int attribs; struct annotate_st_entry_list *nentry = NULL; /* See if we support this entry */ - for (entrycount = 0; - entries[entrycount].name; - entrycount++) { - if (!strcmp(e->entry, entries[entrycount].name)) { + for (currententry = entries; + currententry; + currententry = currententry->next) { + if (!strcmp(e->entry, currententry->entry->name)) { break; } } - if (!entries[entrycount].name) { + if (!currententry) { /* unknown annotation */ return IMAP_PERMISSION_DENIED; } /* Add this entry to our list only if it applies to our particular server type */ - if ((entries[entrycount].proxytype != PROXY_ONLY) + if ((currententry->entry->proxytype != PROXY_ONLY) || proxy_store_func) { nentry = xzmalloc(sizeof(struct annotate_st_entry_list)); nentry->next = sdata.entry_list; - nentry->entry = &(entries[entrycount]); + nentry->entry = currententry->entry; nentry->shared.modifiedsince = now; nentry->priv.modifiedsince = now; sdata.entry_list = nentry; } /* See if we are allowed to set the given attributes. */ - attribs = entries[entrycount].attribs; + attribs = currententry->entry->attribs; av = e->attvalues; while (av) { const char *value; @@ -1903,7 +2132,7 @@ int annotatemore_store(char *mailbox, goto cleanup; } value = annotate_canon_value(av->value, - entries[entrycount].type); + currententry->entry->type); if (!value) { r = IMAP_ANNOTATION_BADVALUE; goto cleanup; @@ -1929,7 +2158,7 @@ int annotatemore_store(char *mailbox, goto cleanup; } value = annotate_canon_value(av->value, - entries[entrycount].type); + currententry->entry->type); if (!value) { r = IMAP_ANNOTATION_BADVALUE; goto cleanup; diff -r b693d1281318 lib/imapoptions --- a/lib/imapoptions Thu Oct 25 08:21:36 2007 +0200 +++ b/lib/imapoptions Thu Oct 25 08:24:37 2007 +0200 @@ -152,6 +152,9 @@ are listed with ``''. user on their mailboxes? In a large organization this can cause support problems, but it's enabled by default. */ +{ "annotation_definitions", NULL, STRING } +/* File containing annotation definitions. */ + { "auth_mech", "unix", STRINGLIST("unix", "pts", "krb", "krb5")} /* The authorization mechanism to use. */ --- NEW FILE: KOLAB_cyrus-imapd-2.3.11-_Folder-names.patch --- Modifies the set of accepted characters in folder names for the cyrus imapd server [Version: 2.3.9] diff -r a83b43bb79a3 imap/mboxname.c --- a/imap/mboxname.c Tue Dec 11 11:22:14 2007 +0100 +++ b/imap/mboxname.c Tue Dec 11 11:22:22 2007 +0100 @@ -712,8 +712,13 @@ int mboxname_netnewscheck(char *name) /* * Apply site policy restrictions on mailbox names. * Restrictions are hardwired for now. - */ + + * original definition #define GOODCHARS " +,-.0123456789:=@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~" + */ + +#define GOODCHARS " #$%'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~" + int mboxname_policycheck(char *name) { unsigned i; --- NEW FILE: KOLAB_cyrus-imapd-2.3.11-_Groups.patch --- Allows to use a file other than /etc/groups for group definitions within the cyrus imapd server [Version: 2.3.9] diff -r 5f6f7a246f32 lib/auth_unix.c --- a/lib/auth_unix.c Tue Dec 11 11:20:37 2007 +0100 +++ b/lib/auth_unix.c Tue Dec 11 11:22:01 2007 +0100 @@ -48,12 +48,133 @@ #include #include #include +#include #include #include #include "auth.h" #include "libcyr_cfg.h" #include "xmalloc.h" + +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) +/* + * __getgrent.c - This file is part of the libc-8086/grp package for ELKS, + * Copyright (C) 1995, 1996 Nat Friedman . + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include +#include +#include + +static struct group *__getgrent(int grp_fd, char *line_buff, char **members) +{ + short line_index; + short buff_size; + static struct group group; + register char *ptr; + char *field_begin; + short member_num; + char *endptr; + int line_len; + + /* We use the restart label to handle malformatted lines */ + restart: + line_index = 0; + buff_size = 256; + + line_buff = realloc(line_buff, buff_size); + while (1) { + if ((line_len = read(grp_fd, line_buff + line_index, + buff_size - line_index)) <= 0) { + return NULL; + } + field_begin = strchr(line_buff, '\n'); + if (field_begin != NULL) { + lseek(grp_fd, + (long) (1 + field_begin - + (line_len + line_index + line_buff)), SEEK_CUR); + *field_begin = '\0'; + if (*line_buff == '#' || *line_buff == ' ' + || *line_buff == '\n' || *line_buff == '\t') + goto restart; + break; + } else { + /* Allocate some more space */ + line_index = buff_size; + buff_size += 256; + line_buff = realloc(line_buff, buff_size); + } + } + + /* Now parse the line */ + group.gr_name = line_buff; + ptr = strchr(line_buff, ':'); + if (ptr == NULL) + goto restart; + *ptr++ = '\0'; + + group.gr_passwd = ptr; + ptr = strchr(ptr, ':'); + if (ptr == NULL) + goto restart; + *ptr++ = '\0'; + + field_begin = ptr; + ptr = strchr(ptr, ':'); + if (ptr == NULL) + goto restart; + *ptr++ = '\0'; + + group.gr_gid = (gid_t) strtoul(field_begin, &endptr, 10); + if (*endptr != '\0') + goto restart; + + member_num = 0; + field_begin = ptr; + + if (members != NULL) + free(members); + members = (char **) malloc((member_num + 1) * sizeof(char *)); + for ( ; field_begin && *field_begin != '\0'; field_begin = ptr) { + if ((ptr = strchr(field_begin, ',')) != NULL) + *ptr++ = '\0'; + members[member_num++] = field_begin; + members = (char **) realloc(members, + (member_num + 1) * sizeof(char *)); + } + members[member_num] = NULL; + + group.gr_mem = members; + return &group; +} + +static char *line_buff = NULL; +static char **members = NULL; + +struct group *fgetgrent(FILE *file) +{ + if (file == NULL) { + errno = EINTR; + return NULL; + } + return __getgrent(fileno(file), line_buff, members); +} +#endif /* __FreeBSD__ */ struct auth_state { char userid[81]; @@ -142,6 +263,25 @@ static char allowedchars[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +static struct group* fgetgrnam(const char* name) +{ + struct group *grp; + FILE *groupfile; + + groupfile = fopen("/etc/imapd.group", "r"); + if (!groupfile) groupfile = fopen("/etc/group", "r"); + if (groupfile) { + while ((grp = fgetgrent(groupfile))) { + if (strcasecmp(grp->gr_name, name) == 0) { + fclose(groupfile); + return grp; + } + } + } + if (groupfile) fclose(groupfile); + return NULL; +} + /* * Convert 'identifier' into canonical form. * Returns a pointer to a static buffer containing the canonical form @@ -177,7 +317,7 @@ size_t len; */ if (!strncmp(retbuf, "group:", 6)) { - grp = getgrnam(retbuf+6); + grp = fgetgrnam(retbuf+6); if (!grp) return 0; strcpy(retbuf+6, grp->gr_name); return retbuf; @@ -228,6 +368,7 @@ static struct auth_state *mynewstate(con int ret, ngroups = 10; #else char **mem; + FILE *groupfile; #endif identifier = mycanonifyid(identifier, 0); @@ -283,20 +424,23 @@ err: if (groupids) free(groupids); #else /* !HAVE_GETGROUPLIST */ - setgrent(); - while ((grp = getgrent())) { - for (mem = grp->gr_mem; *mem; mem++) { - if (!strcmp(*mem, identifier)) break; - } - - if (*mem || (pwd && pwd->pw_gid == grp->gr_gid)) { - newstate->ngroups++; - newstate->group = (char **)xrealloc((char *)newstate->group, - newstate->ngroups * sizeof(char *)); - newstate->group[newstate->ngroups-1] = xstrdup(grp->gr_name); - } - } - endgrent(); + groupfile = fopen("/etc/imapd.group", "r"); + if (!groupfile) groupfile = fopen("/etc/group", "r"); + if (groupfile) { + while ((grp = fgetgrent(groupfile))) { + for (mem = grp->gr_mem; *mem; mem++) { + if (!strcasecmp(*mem, identifier)) break; + } + + if (*mem || (pwd && pwd->pw_gid == grp->gr_gid)) { + newstate->ngroups++; + newstate->group = (char **)xrealloc((char *)newstate->group, + newstate->ngroups * sizeof(char *)); + newstate->group[newstate->ngroups-1] = xstrdup(grp->gr_name); + } + } + fclose(groupfile); + } #endif /* HAVE_GETGROUPLIST */ return newstate; --- NEW FILE: KOLAB_cyrus-imapd-2.3.11-_Logging.patch --- Provides improved logging for the cyrus imapd server [Version: 2.3.9] diff -r 6162fc947b22 imap/append.c --- a/imap/append.c Tue Dec 11 11:22:03 2007 +0100 +++ b/imap/append.c Tue Dec 11 11:22:13 2007 +0100 @@ -648,6 +648,9 @@ int append_fromstage(struct appendstate /* ok, we've successfully added a message */ as->quota_used += message_index.size; + + syslog(LOG_DEBUG, "append_fromstage: message %d added to %s", + message_index.uid, mailbox->name ); return 0; } diff -r 6162fc947b22 imap/imapd.c --- a/imap/imapd.c Tue Dec 11 11:22:03 2007 +0100 +++ b/imap/imapd.c Tue Dec 11 11:22:13 2007 +0100 @@ -3509,17 +3509,19 @@ void cmd_close(char *tag) if (!r) sync_log_mailbox(imapd_mailbox->name); } + if (r) { + prot_printf(imapd_out, "%s NO %s\r\n", tag, error_message(r)); + } + else { + prot_printf(imapd_out, "%s OK %s\r\n", tag, + error_message(IMAP_OK_COMPLETED)); + syslog(LOG_DEBUG, "cmd_expunge: user %s, mailbox %s, sequence %s", + imapd_userid, imapd_mailbox->name, "''"); + } + index_closemailbox(imapd_mailbox); mailbox_close(imapd_mailbox); imapd_mailbox = 0; - - if (r) { - prot_printf(imapd_out, "%s NO %s\r\n", tag, error_message(r)); - } - else { - prot_printf(imapd_out, "%s OK %s\r\n", tag, - error_message(IMAP_OK_COMPLETED)); - } } /* diff -r 6162fc947b22 imap/mailbox.c --- a/imap/mailbox.c Tue Dec 11 11:22:03 2007 +0100 +++ b/imap/mailbox.c Tue Dec 11 11:22:13 2007 +0100 @@ -2520,6 +2520,8 @@ int mailbox_expunge(struct mailbox *mail *(fname->tail)++ = '/'; fname->len++; for (msgno = 0; msgno < numdeleted; msgno++) { + syslog(LOG_DEBUG, "mailbox_expunge: removing mail %s:%d", + mailbox->name, deleted[msgno]); mailbox_message_get_fname(mailbox, deleted[msgno], fname->tail, sizeof(fname->buf) - fname->len); --- NEW FILE: KOLAB_cyrus-imapd-2.3.11-_UID.patch --- Allows login by uid rather than the mail address on the cyrus imapd server [Version: 2.3.9] diff -r d62bf3b0902d configure --- a/configure Thu Oct 25 08:30:57 2007 +0200 +++ b/configure Thu Oct 25 08:31:06 2007 +0200 @@ -18119,7 +18119,7 @@ done done IMAP_COM_ERR_LIBS="${COM_ERR_LIBS}" -IMAP_LIBS="${LIB_SASL} ${LIBS}" +IMAP_LIBS="${LIB_SASL} -lldap -llber ${LIBS}" diff -r d62bf3b0902d imap/global.c --- a/imap/global.c Thu Oct 25 08:30:57 2007 +0200 +++ b/imap/global.c Thu Oct 25 08:31:06 2007 +0200 @@ -52,6 +52,9 @@ #include #include +#include +#include + #if HAVE_UNISTD_H # include #endif @@ -362,6 +365,18 @@ char *canonify_userid(char *user, char * char *domain = NULL; int len = strlen(user); char buf[81]; + const char *uri; + const char *base; + const char *binddn; + const char *bindpw; + struct timeval timeout; + char filter[255]; + LDAP *handle; + LDAPMessage *res; + LDAPMessage *entry; + char ** vals; + + int rc; /* check for domain */ if (config_virtdomains && @@ -380,6 +395,47 @@ char *canonify_userid(char *user, char * } if (config_virtdomains) { + if (config_virtdomains == IMAP_ENUM_VIRTDOMAINS_LDAP) { + uri = config_getstring(IMAPOPT_LDAP_URI); + base = config_getstring(IMAPOPT_LDAP_BASE); + binddn = config_getstring(IMAPOPT_LDAP_BIND_DN); + bindpw = config_getstring(IMAPOPT_LDAP_PASSWORD); + timeout.tv_sec = config_getint(IMAPOPT_LDAP_TIME_LIMIT); + timeout.tv_usec = 0; + sprintf(filter, "(uid=%s)", user); + rc = ldap_initialize(&handle, uri); + if (rc != LDAP_SUCCESS) { + syslog(LOG_ERR, "ldap_initialize failed (%s)", uri); + } else { + rc = ldap_simple_bind_s(handle, binddn, bindpw); + if (rc != LDAP_SUCCESS) { + syslog(LOG_ERR, "ldap_simple_bind() failed %d (%s)", rc, ldap_err2string(rc)); + } else { + rc = ldap_search_st(handle, base, LDAP_SCOPE_SUBTREE, filter, NULL, 0, &timeout, &res); + if (rc != LDAP_SUCCESS) { + syslog(LOG_ERR, "ldap_search_st failed %d (%s)", rc, ldap_err2string(rc)); + } else { + if ( (entry = ldap_first_entry(handle, res)) != NULL ) { + // read mail attribute from entry + if ( (vals = ldap_get_values(handle, entry, "mail")) ) { + if (strchr(vals[0], '@')) { + static char buf[81]; /* same size as in auth_canonifyid */ + strncpy( buf, vals[0], sizeof(buf) ); + buf[80] = '\0'; /* make sure it's null-terminated */ + ldap_value_free( vals ); + ldap_msgfree( res ); + ldap_unbind_s(handle); /* also frees handle */ + return auth_canonifyid( buf, 0) ; + } + ldap_value_free( vals ); + } + } + ldap_msgfree( res ); + } + } + ldap_unbind_s(handle); /* also frees handle */ + } + } if (domain) { if (config_defdomain && !strcasecmp(config_defdomain, domain+1)) { *domain = '\0'; /* trim the default domain */ @@ -392,7 +448,7 @@ char *canonify_userid(char *user, char * user = buf; } } - else if (config_virtdomains != IMAP_ENUM_VIRTDOMAINS_USERID) { + else if (config_virtdomains != IMAP_ENUM_VIRTDOMAINS_USERID && config_virtdomains != IMAP_ENUM_VIRTDOMAINS_LDAP) { socklen_t salen; int error; struct sockaddr_storage localaddr; diff -r d62bf3b0902d lib/imapoptions --- a/lib/imapoptions Thu Oct 25 08:30:57 2007 +0200 +++ b/lib/imapoptions Thu Oct 25 08:31:06 2007 +0200 @@ -1034,7 +1034,7 @@ are listed with ``''. mailbox hierarchy. The default is to use the netnews separator character '.'. */ -{ "virtdomains", "off", ENUM("off", "userid", "on") } +{ "virtdomains", "off", ENUM("off", "userid", "ldap", "on") } /* Enable virtual domain support. If enabled, the user's domain will be determined by splitting a fully qualified userid at the last '@' or '%' symbol. If the userid is unqualified, and the virtdomains --- KOLAB_cyrus-cyradm_Annotations.patch DELETED --- --- KOLAB_cyrus-imapd_Annotations2.patch DELETED --- --- KOLAB_cyrus-imapd_Folder-names.patch DELETED --- --- KOLAB_cyrus-imapd_Groups.patch DELETED --- --- KOLAB_cyrus-imapd_Logging.patch DELETED --- --- KOLAB_cyrus-imapd_UID.patch DELETED --- From cvs at kolab.org Sun Dec 16 21:41:57 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 16 Dec 2007 21:41:57 +0100 (CET) Subject: richard: server/kolabd/kolabd ChangeLog,1.129,1.130 Message-ID: <20071216204157.E5112600D60@lists.intevation.de> Author: richard Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv18175 Modified Files: ChangeLog Log Message: The sasl2/smtp.conf location has changed, adapt to this. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.129 retrieving revision 1.130 diff -u -d -r1.129 -r1.130 --- ChangeLog 4 Dec 2007 07:34:18 -0000 1.129 +++ ChangeLog 16 Dec 2007 20:41:55 -0000 1.130 @@ -1,3 +1,6 @@ +2007-12-16 Richard Bos + * dist_conf/suse: the sasl2/smtp.conf location has changed, adapt to this. + 2007-12-04 Richard Bos * templates/convert_resmgr_conf2config.pl: added. The script is to be used to convert the templates/resmgr.conf.template From cvs at kolab.org Sun Dec 16 21:43:27 2007 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 16 Dec 2007 21:43:27 +0100 (CET) Subject: richard: server/kolabd/kolabd/dist_conf suse,1.64,1.65 Message-ID: <20071216204327.3E75D600D60@lists.intevation.de> Author: richard Update of /kolabrepository/server/kolabd/kolabd/dist_conf In directory doto:/tmp/cvs-serv18248/dist_conf Modified Files: suse Log Message: The sasl2/smtp.conf location has changed, adapt to this. Index: suse =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/suse,v retrieving revision 1.64 retrieving revision 1.65 diff -u -d -r1.64 -r1.65 --- suse 27 Nov 2007 17:16:05 -0000 1.64 +++ suse 16 Dec 2007 20:43:25 -0000 1.65 @@ -183,5 +183,5 @@ /etc/saslauthd.conf \ /etc/sysconfig/ldap \ /etc/sysconfig/saslauthd \ - /usr/lib/sasl2/smtpd.conf + /etc/sasl2/smtpd.conf
    May 10th, 2007
    December 9th, 2007 » Kolab Server 2.2 Beta 3 (with Horde web client) released