From cvs at kolab.org Wed Apr 1 15:46:52 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 1 Apr 2009 15:46:52 +0200 (CEST) Subject: thomas: doc/www/src roadmap.html.m4,1.24,1.25 Message-ID: <20090401134652.206EE600811@lists.intevation.de> Author: thomas Update of /kolabrepository/doc/www/src In directory doto:/tmp/cvs-serv12834 Modified Files: roadmap.html.m4 Log Message: Updated server roadmap Index: roadmap.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/roadmap.html.m4,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- roadmap.html.m4 5 Mar 2009 16:54:53 -0000 1.24 +++ roadmap.html.m4 1 Apr 2009 13:46:49 -0000 1.25 @@ -22,12 +22,12 @@ 2.2.0 was released in July 2008.

-Release 2.2.1 is scheduled for March 2009. +Release 2.2.1 is scheduled for April 2009. 2.2.1-rc1 was published on March 5th, 2009. Improvements include the SyncML improvements to the Kolab Webclient, code cleanup and eliminating defects.

-It is planned to have further improvements in a release 2.2.2 in 2009. +It is planned to have further improvements in a release 2.2.2 or 2.3.0 in 2009.

Kolab Server 2.1 release series

Current is 2.1.0 Final. No further releases planned. From cvs at kolab.org Wed Apr 1 18:04:40 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 1 Apr 2009 18:04:40 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.398.2.20,1.398.2.21 Message-ID: <20090401160440.F0934600815@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv19577 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: kolab/issue3521 (kolabmailboxfilter does not accept mail for user+extension at example.com) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.20 retrieving revision 1.398.2.21 diff -u -d -r1.398.2.20 -r1.398.2.21 --- release-notes.txt 31 Mar 2009 12:52:34 -0000 1.398.2.20 +++ release-notes.txt 1 Apr 2009 16:04:38 -0000 1.398.2.21 @@ -56,13 +56,15 @@ kolab/issue3420 (web client prefs and hooks should be configurable via templates) - - Kolab_Filter-0.1.4-20090320 + - Kolab_Filter-0.1.4-20090401 Fixed quoting of arguments to dovecot deliver command in the DovecotLDA transport backend. kolab/issue3464 (kolab-filter inserts wrong/undecodeable utf-8 code into From: header) + kolab/issue3521 (kolabmailboxfilter does not accept mail for + user+extension at example.com) - Kolab_FreeBusy-0.1.2-20090320 From cvs at kolab.org Wed Apr 1 18:04:40 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 1 Apr 2009 18:04:40 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Filter ChangeLog, 1.29.2.2, 1.29.2.3 Kolab_Filter.spec, 1.19.2.3, 1.19.2.4 Makefile, 1.8.2.2, 1.8.2.3 Message-ID: <20090401160440.F36D0600818@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter In directory doto:/tmp/cvs-serv19577/php-kolab/Kolab_Filter Modified Files: Tag: kolab_2_2_branch ChangeLog Kolab_Filter.spec Makefile Log Message: kolab/issue3521 (kolabmailboxfilter does not accept mail for user+extension at example.com) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/ChangeLog,v retrieving revision 1.29.2.2 retrieving revision 1.29.2.3 diff -u -d -r1.29.2.2 -r1.29.2.3 --- ChangeLog 31 Mar 2009 10:19:42 -0000 1.29.2.2 +++ ChangeLog 1 Apr 2009 16:04:38 -0000 1.29.2.3 @@ -1,3 +1,8 @@ +2009-04-01 Gunnar Wrobel

+ + * Kolab_Filter.spec: kolab/issue3521 (kolabmailboxfilter does not + accept mail for user+extension at example.com) + 2009-03-20 Gunnar Wrobel

* revert_issue2499.patch, Kolab_Filter.spec, Makefile: Index: Kolab_Filter.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Kolab_Filter.spec,v retrieving revision 1.19.2.3 retrieving revision 1.19.2.4 diff -u -d -r1.19.2.3 -r1.19.2.4 --- Kolab_Filter.spec 20 Mar 2009 07:53:23 -0000 1.19.2.3 +++ Kolab_Filter.spec 1 Apr 2009 16:04:38 -0000 1.19.2.4 @@ -1,7 +1,7 @@ # Variables %define V_package Kolab_Filter %define V_version 0.1.4 -%define V_release 20090320 +%define V_release 20090401 # Package Information Name: %{V_package} @@ -24,6 +24,7 @@ Patch2: issue3441.patch Patch3: dovecotlda-quoting.patch Patch4: revert_issue2499.patch +Patch5: issue3521.patch # Build Info Prefix: %{l_prefix} @@ -63,6 +64,7 @@ %patch -p1 -P 2 %patch -p1 -P 3 %patch -p3 -P 4 + %patch -p3 -P 5 cp %{S:1} . %build Index: Makefile =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Makefile,v retrieving revision 1.8.2.2 retrieving revision 1.8.2.3 diff -u -d -r1.8.2.2 -r1.8.2.3 --- Makefile 20 Mar 2009 07:05:09 -0000 1.8.2.2 +++ Makefile 1 Apr 2009 16:04:38 -0000 1.8.2.3 @@ -21,7 +21,7 @@ SOURCE_URL=http://pear.horde.org/get SOURCE_0=$(PACKAGE)-$(VERSION).tgz -EXTRA=ChangeLog revert_issue2499.patch issue3435.patch issue3192.patch issue3441.patch dovecotlda-quoting.patch package.xml +EXTRA=ChangeLog issue3521.patch revert_issue2499.patch issue3435.patch issue3192.patch issue3441.patch dovecotlda-quoting.patch package.xml .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm From cvs at kolab.org Wed Apr 1 18:24:44 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 1 Apr 2009 18:24:44 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Filter issue3521.patch,NONE,1.1.2.1 Message-ID: <20090401162444.402BF600815@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter In directory doto:/tmp/cvs-serv20479/php-kolab/Kolab_Filter Added Files: Tag: kolab_2_2_branch issue3521.patch Log Message: Actual patch was missing from the last commit ( kolab/issue3521 (kolabmailboxfilter does not accept mail for user+extension at example.com)). --- NEW FILE: issue3521.patch --- --- a/framework/Kolab_Filter/lib/Horde/Kolab/Filter/Incoming.php.orig 2009-04-01 15:47:53.000000000 +0000 +++ a/framework/Kolab_Filter/lib/Horde/Kolab/Filter/Incoming.php 2009-04-01 15:48:40.000000000 +0000 @@ -200,30 +200,7 @@ $hosts = array(); foreach ($this->_recipients as $recipient) { - $dn = $server->uidForIdOrMail($recipient); - if (is_a($dn, 'PEAR_Error')) { - return $dn; - } - if (!$dn) { - Horde::logMessage(sprintf('User %s does not exist!', $recipient), - __FILE__, __LINE__, PEAR_LOG_DEBUG); - } - $user = $server->fetch($dn, KOLAB_OBJECT_USER); - if (is_a($user, 'PEAR_Error')) { - $user->code = OUT_LOG | EX_NOUSER; - return $user; - } - $imapserver = $user->get(KOLAB_ATTR_IMAPHOST); - if (is_a($imapserver, 'PEAR_Error')) { - $imapserver->code = OUT_LOG | EX_NOUSER; - return $imapserver; - } - if (!empty($imapserver)) { - $uhost = $imapserver; - } else { - $uhost = $host; - } - $hosts[$uhost][] = $recipient; + $hosts[$host][] = $recipient; } foreach (array_keys($hosts) as $imap_host) { From cvs at kolab.org Wed Apr 1 19:03:47 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 1 Apr 2009 19:03:47 +0200 (CEST) Subject: gunnar: server/imapd kolab.patch,1.39,1.39.2.1 Message-ID: <20090401170347.79884600167@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/imapd In directory doto:/tmp/cvs-serv21872/imapd Modified Files: Tag: kolab_2_2_branch kolab.patch Log Message: kolab/issue2535 (group:distributionlist at example.com doesn't work for Cyrus IMAP ACLs) Index: kolab.patch =================================================================== RCS file: /kolabrepository/server/imapd/kolab.patch,v retrieving revision 1.39 retrieving revision 1.39.2.1 diff -u -d -r1.39 -r1.39.2.1 --- kolab.patch 25 Jan 2009 22:11:11 -0000 1.39 +++ kolab.patch 1 Apr 2009 17:03:45 -0000 1.39.2.1 @@ -5,7 +5,7 @@ License: BSD Version: 2.3.13 -Release: 20081020 -+Release: 20081020_kolab1 ++Release: 20081020_kolab2 # package options %option with_fsl yes From cvs at kolab.org Wed Apr 1 19:03:47 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 1 Apr 2009 19:03:47 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.398.2.21,1.398.2.22 Message-ID: <20090401170347.7A616600837@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv21872 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: kolab/issue2535 (group:distributionlist at example.com doesn't work for Cyrus IMAP ACLs) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.21 retrieving revision 1.398.2.22 diff -u -d -r1.398.2.21 -r1.398.2.22 --- release-notes.txt 1 Apr 2009 16:04:38 -0000 1.398.2.21 +++ release-notes.txt 1 Apr 2009 17:03:45 -0000 1.398.2.22 @@ -45,6 +45,11 @@ Changes between 2.2.1-rc-1 and 2.2.1: + - imapd-2.3.13-20081020_kolab1 + + kolab/issue2535 (group:distributionlist at example.com doesn't work + for Cyrus IMAP ACLs) + - install-kolab.sh kolab/issue3130 (Perl Error on Upgrade) From cvs at kolab.org Wed Apr 1 19:03:47 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 1 Apr 2009 19:03:47 +0200 (CEST) Subject: gunnar: server/patches/cyrus-imapd/cyrus-imapd-2.3.13 KOLAB_cyrus-imapd-2.3.13_Groups2.patch, 1.1, 1.1.2.1 Message-ID: <20090401170347.7A56F600836@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.13 In directory doto:/tmp/cvs-serv21872/patches/cyrus-imapd/cyrus-imapd-2.3.13 Modified Files: Tag: kolab_2_2_branch KOLAB_cyrus-imapd-2.3.13_Groups2.patch Log Message: kolab/issue2535 (group:distributionlist at example.com doesn't work for Cyrus IMAP ACLs) Index: KOLAB_cyrus-imapd-2.3.13_Groups2.patch =================================================================== RCS file: /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.13/KOLAB_cyrus-imapd-2.3.13_Groups2.patch,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -d -r1.1 -r1.1.2.1 --- KOLAB_cyrus-imapd-2.3.13_Groups2.patch 27 Oct 2008 17:53:01 -0000 1.1 +++ KOLAB_cyrus-imapd-2.3.13_Groups2.patch 1 Apr 2009 17:03:45 -0000 1.1.2.1 @@ -1,6 +1,6 @@ diff -r 0d5aacd84718 lib/auth_unix.c --- a/lib/auth_unix.c Mon Oct 27 18:37:49 2008 +0100 -+++ b/lib/auth_unix.c Mon Oct 27 18:43:28 2008 +0100 ++++ b/lib/auth_unix.c Wed Apr 01 18:19:19 2009 +0200 @@ -46,12 +46,133 @@ #include #include @@ -17,7 +17,7 @@ +/* + * __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 @@ -119,7 +119,7 @@ + group.gr_mem = members; + return &group; +} -+ ++ +static char *line_buff = NULL; +static char **members = NULL; + @@ -148,7 +148,7 @@ + if (!groupfile) groupfile = fopen("/etc/group", "r"); + if (groupfile) { + while ((grp = fgetgrent(groupfile))) { -+ if (strcasecmp(grp->gr_name, name) == 0) { ++ if (strcmp(grp->gr_name, name) == 0) { + fclose(groupfile); + return grp; + } @@ -170,7 +170,13 @@ if (!grp) return NULL; if (strlen(grp->gr_name) >= sizeof(retbuf)-6) return NULL; -@@ -228,6 +368,7 @@ +@@ -223,11 +363,12 @@ + struct auth_state *newstate; + struct passwd *pwd; + struct group *grp; +-#if defined(HAVE_GETGROUPLIST) && defined(__GLIBC__) ++#if 0 && defined(HAVE_GETGROUPLIST) && defined(__GLIBC__) + gid_t gid, *groupids = NULL; int ret, ngroups = 10; #else char **mem; @@ -178,6 +184,15 @@ #endif identifier = mycanonifyid(identifier, 0); +@@ -245,7 +386,7 @@ + + pwd = getpwnam(identifier); + +-#if defined(HAVE_GETGROUPLIST) && defined(__GLIBC__) ++#if 0 && defined(HAVE_GETGROUPLIST) && defined(__GLIBC__) + gid = pwd ? pwd->pw_gid : (gid_t) -1; + + /* get the group ids */ @@ -283,20 +424,23 @@ if (groupids) free(groupids); @@ -192,7 +207,7 @@ + if (groupfile) { + while ((grp = fgetgrent(groupfile))) { + for (mem = grp->gr_mem; *mem; mem++) { -+ if (!strcasecmp(*mem, identifier)) break; ++ if (!strcmp(*mem, identifier)) break; + } - if (*mem || (pwd && pwd->pw_gid == grp->gr_gid)) { From cvs at kolab.org Thu Apr 2 09:29:23 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 2 Apr 2009 09:29:23 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Format Makefile,1.6,1.6.2.1 Message-ID: <20090402072923.BD890600168@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Format In directory doto:/tmp/cvs-serv2128/php-kolab/Kolab_Format Modified Files: Tag: kolab_2_2_branch Makefile Log Message: Cleaned up the generic PEAR Makefile. This version should be able to fully rely on information from the *.spec file so that it never needs any editing. It supports flexible patching of PEAR packages and allows to install the package from within CVS. It also carries some documentation so that others may understand it too. CVS HEAD should use this version for all PEAR based packages. Index: Makefile =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Format/Makefile,v retrieving revision 1.6 retrieving revision 1.6.2.1 diff -u -d -r1.6 -r1.6.2.1 --- Makefile 12 Dec 2008 11:48:22 -0000 1.6 +++ Makefile 2 Apr 2009 07:29:21 -0000 1.6.2.1 @@ -1,40 +1,111 @@ -PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9RC.]*\).*/\1/") -RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") +# If home is unset this Makefile assumes the Kolab server installation +# resides in /kolab. If this is not the case this Makefile must be +# called using +# +# HOME="/mykolabroot" make TARGET +# +ifeq "x$(HOME)" "x" + HOME = /kolab +endif +# If HOME is set to /root it is likely that somebody is calling this +# Makefile as root user. In this case this Makefile assumes that the +# Kolab server installation resides in /kolab. +# +# In the (hopefully) unlikely event that somebody really installed the +# Kolab server in /root this Makefile will fail. +ifeq "x$(HOME)" "x/root" + HOME = /kolab +endif + +# Set the location of the rpm binary ifeq "x$(RPM)" "x" RPM = $(HOME)/bin/openpkg rpm endif + +# Set the location for rpm source package installations ifeq "x$(KOLABRPMSRC)" "x" KOLABRPMSRC = $(HOME)/RPM/SRC endif + +# Set the location for rpm packages ifeq "x$(KOLABRPMPKG)" "x" KOLABRPMPKG = $(HOME)/RPM/PKG endif + +# Set the location for the rpm temporary directory ifeq "x$(KOLABRPMTMP)" "x" KOLABRPMTMP = $(HOME)/RPM/TMP endif -SOURCE_0=http://pear.horde.org/get/$(PACKAGE)-$(VERSION).tgz +# Determine the suffix for binary packages on this system +ifeq "x$(PLATTAG)" "x" + PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) +endif + +# Determine the staging area for collecting new source rpms +ifeq "x$(STAGING)" "x" + STAGING = ../../stage +endif + +# Determine the package name from the *.spec file +PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") + +# Determine the package version from the *.spec file +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") + +# Determine the release number from the *.spec file +RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") +# Determine the download url for the PEAR package from the *.spec file +SOURCE_URL=$(shell grep "%define[ ]*V_sourceurl" *.spec | sed -e "s/.*V_sourceurl\s*\(.*\)/\1/") + +# Get the list of patches if there are any in this directory +PATCHES = $(shell ls *.patch 2> /dev/null) + +# Generate the full package name +SOURCE_0=$(PACKAGE)-$(VERSION).tgz + +# Generate a list of extra files for the package +EXTRA=ChangeLog $(PATCHES) + + +# Default target to generate the source rpm package .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm +# Target for placing the source rpm in the staging area .PHONY: dist dist: all - cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm ../../stage/ + test -d $(STAGING) || mkdir $(STAGING) + cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm $(STAGING) -.PHONY: clean -clean: - rm -rf /kolab/RPM/TMP/$(PACKAGE)* - rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - rm -rf *~ +# Target for installing the binary rpm package in our current Kolab +# server installation +.PHONY: install +install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm -$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec ChangeLog +# Target for retrieving the source package +$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) - cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_0)" + cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_URL)/$(SOURCE_0)" - cp $(PACKAGE).spec $(KOLABRPMSRC)/$(PACKAGE) +# Target for preparing the source area and building the package +$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: Makefile $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) + cp $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec +# Target for fetching the source rpm into the current directory +$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . + +# Target for cleaning up the files that can be generated with this Makefile +.PHONY: clean +clean: + rm -rf $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + rm -rf $(KOLABRPMSRC)/$(PACKAGE) + rm -rf $(KOLABRPMTMP)/$(PACKAGE)* + rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm + rm -rf *~ + From cvs at kolab.org Thu Apr 2 09:29:48 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 2 Apr 2009 09:29:48 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Format issue3525.patch, NONE, 1.1.2.1 ChangeLog, 1.3, 1.3.2.1 Kolab_Format.spec, 1.9, 1.9.2.1 Message-ID: <20090402072948.03259600168@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Format In directory doto:/tmp/cvs-serv2173/php-kolab/Kolab_Format Modified Files: Tag: kolab_2_2_branch ChangeLog Kolab_Format.spec Added Files: Tag: kolab_2_2_branch issue3525.patch Log Message: kolab/issue3525 (free/busy regeneration aborts for unparsable events) --- NEW FILE: issue3525.patch --- diff --git a/framework/Kolab_Format/lib/Horde/Kolab/Format/XML.php b/framework/Kolab_Format/lib/Horde/Kolab/Format/XML.php index 03a5318..0a9859e 100644 --- a/framework/Kolab_Format/lib/Horde/Kolab/Format/XML.php +++ b/framework/Kolab_Format/lib/Horde/Kolab/Format/XML.php @@ -416,6 +416,6 @@ class Horde_Kolab_Format_XML function load(&$xmltext) { $noderoot = $this->_parseXml($xmltext); - if ($noderoot === false) { + if (empty($noderoot)) { return false; } Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Format/ChangeLog,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -u -d -r1.3 -r1.3.2.1 --- ChangeLog 12 Dec 2008 11:48:22 -0000 1.3 +++ ChangeLog 2 Apr 2009 07:29:45 -0000 1.3.2.1 @@ -1,3 +1,8 @@ +2009-04-02 Gunnar Wrobel

+ + * Kolab_Format.spec: kolab/issue3525 (free/busy regeneration + aborts for unparsable events) + 2008-12-12 Gunnar Wrobel

* Kolab_Format.spec: Update to 1.0.0. Index: Kolab_Format.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Format/Kolab_Format.spec,v retrieving revision 1.9 retrieving revision 1.9.2.1 diff -u -d -r1.9 -r1.9.2.1 --- Kolab_Format.spec 12 Dec 2008 11:48:22 -0000 1.9 +++ Kolab_Format.spec 2 Apr 2009 07:29:45 -0000 1.9.2.1 @@ -1,7 +1,8 @@ # Variables %define V_package Kolab_Format %define V_version 1.0.0 -%define V_release 20081212 +%define V_release 20090402 +%define V_sourceurl http://pear.horde.org/get # Package Information Name: %{V_package} @@ -14,7 +15,11 @@ Group: Development/Libraries Distribution: OpenPKG -Source: http://pear.horde.org/get/%{V_package}-%{V_version}.tgz +# List of Sources +Source: %{V_sourceurl}/%{V_package}-%{V_version}.tgz + +# List of patches +Patch0: issue3525.patch # Build Info Prefix: %{l_prefix} @@ -37,12 +42,16 @@ %prep %setup -n %{V_package}-%{V_version} + %patch -p3 -P 0 + + cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml + %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ - %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT $RPM_SOURCE_DIR/%{V_package}-%{V_version}.tgz + %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT package.xml rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/php/{.filemap,.lock,.channels,.depdb,.depdblock} %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} From cvs at kolab.org Thu Apr 2 09:29:48 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 2 Apr 2009 09:29:48 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.398.2.22,1.398.2.23 Message-ID: <20090402072948.05B20600810@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv2173 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: kolab/issue3525 (free/busy regeneration aborts for unparsable events) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.22 retrieving revision 1.398.2.23 diff -u -d -r1.398.2.22 -r1.398.2.23 --- release-notes.txt 1 Apr 2009 17:03:45 -0000 1.398.2.22 +++ release-notes.txt 2 Apr 2009 07:29:45 -0000 1.398.2.23 @@ -71,6 +71,10 @@ kolab/issue3521 (kolabmailboxfilter does not accept mail for user+extension at example.com) + - Kolab_Format-1.0.0-20090402 + + kolab/issue3525 (free/busy regeneration aborts for unparsable events) + - Kolab_FreeBusy-0.1.2-20090320 kolab/issue3413 (freebusy fails after uprading Kolab_FreeBusy From cvs at kolab.org Thu Apr 2 11:48:47 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 2 Apr 2009 11:48:47 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Format Kolab_Format.spec, 1.9.2.1, 1.9.2.2 issue3525.patch, 1.1.2.1, 1.1.2.2 Message-ID: <20090402094847.E3286600928@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Format In directory doto:/tmp/cvs-serv7828 Modified Files: Tag: kolab_2_2_branch Kolab_Format.spec issue3525.patch Log Message: Second attempt at fixing kolab/issue3525 (free/busy regeneration aborts for unparsable events). Also contains a fix for kolab/issue3528 (Events with broken encoding should work). Index: Kolab_Format.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Format/Kolab_Format.spec,v retrieving revision 1.9.2.1 retrieving revision 1.9.2.2 diff -u -d -r1.9.2.1 -r1.9.2.2 --- Kolab_Format.spec 2 Apr 2009 07:29:45 -0000 1.9.2.1 +++ Kolab_Format.spec 2 Apr 2009 09:48:45 -0000 1.9.2.2 @@ -42,7 +42,7 @@ %prep %setup -n %{V_package}-%{V_version} - %patch -p3 -P 0 + %patch -p2 -P 0 cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml Index: issue3525.patch =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Format/Attic/issue3525.patch,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- issue3525.patch 2 Apr 2009 07:29:45 -0000 1.1.2.1 +++ issue3525.patch 2 Apr 2009 09:48:45 -0000 1.1.2.2 @@ -1,12 +1,85 @@ -diff --git a/framework/Kolab_Format/lib/Horde/Kolab/Format/XML.php b/framework/Kolab_Format/lib/Horde/Kolab/Format/XML.php -index 03a5318..0a9859e 100644 ---- a/framework/Kolab_Format/lib/Horde/Kolab/Format/XML.php -+++ b/framework/Kolab_Format/lib/Horde/Kolab/Format/XML.php -@@ -416,6 +416,6 @@ class Horde_Kolab_Format_XML +From: Gunnar Wrobel

+Subject: [PATCH] t/Kolab_Format/HK/GW/HandleEmptyXmlParserReturn + +Correct handling of empty return values from the XML parser. An empty +return might occur if the XML document is broken (e.g. broken encoding). + +ISSUE: kolab/issue3520 (calendar with certain entries does not display in web client) +ISSUE: kolab/issue3525 (free/busy regeneration aborts for unparsable events) +ISSUE: kolab/issue3528 (Events with broken encoding should work) + +LINK: https://www.intevation.de/roundup/kolab/issue3520 +LINK: https://www.intevation.de/roundup/kolab/issue3525 +LINK: https://www.intevation.de/roundup/kolab/issue3528 + +STATUS: COMMIT + +REF: + +Signed-off-by: Gunnar Wrobel

+ +--- + horde-webmail/lib/Horde/Kolab/Format/XML.php | 14 ++++++++++++-- + 1 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/horde-webmail/lib/Horde/Kolab/Format/XML.php b/horde-webmail/lib/Horde/Kolab/Format/XML.php +index d3d7def..30320c9 100644 +--- a/horde-webmail/lib/Horde/Kolab/Format/XML.php ++++ b/horde-webmail/lib/Horde/Kolab/Format/XML.php +@@ -364,6 +364,9 @@ class Horde_Kolab_Format_XML + /** + * Load an object based on the given XML string. + * ++ * @todo Check encoding of the returned array. It seems to be ISO-8859-1 at ++ * the moment and UTF-8 would seem more appropriate. ++ * + * @param string $xmltext The XML of the message as string. + * + * @return array|PEAR_Error The data array representing the object. +@@ -371,7 +374,10 @@ class Horde_Kolab_Format_XML function load(&$xmltext) { $noderoot = $this->_parseXml($xmltext); - if ($noderoot === false) { ++ if (is_a($noderoot, 'PEAR_Error')) { ++ return $noderoot; ++ } + if (empty($noderoot)) { return false; } + +@@ -530,9 +536,13 @@ class Horde_Kolab_Format_XML + */ + function _parseXml(&$xmltext) + { ++ if (strcasecmp(mb_detect_encoding($xmltext, 'UTF-8, ISO-8859-1'), 'UTF-8') !== 0) { ++ $xmltext = mb_convert_encoding($xmltext, 'UTF-8', 'ISO-8859-1'); ++ } ++ + $params = array( + 'xml' => $xmltext, +- 'options' => HORDE_DOM_LOAD_REMOVE_BLANKS, ++ 'options' => HORDE_DOM_LOAD_REMOVE_BLANKS | HORDE_DOM_LOAD_RECOVER, + ); + + $result = Horde_DOM_Document::factory($params); +-- +tg: (2d1588f..) t/Kolab_Format/HK/GW/HandleEmptyXmlParserReturn (depends on: t/kronolith/HK/GW/XfbAccess) +-- +TOPGIT patch commit log +======================= + +commit 1883efc257b2e50646e11da79cc47fb0f7f328ca +Author: Gunnar Wrobel

+Date: Thu Apr 2 11:36:17 2009 +0200 + + Correct handling of empty return values from the XML parser. An empty + return might occur if the XML document is broken (e.g. broken encoding). + + ISSUE: kolab/issue3520 (calendar with certain entries does not display in web client) + ISSUE: kolab/issue3525 (free/busy regeneration aborts for unparsable events) + ISSUE: kolab/issue3528 (Events with broken encoding should work) + + LINK: https://www.intevation.de/roundup/kolab/issue3520 + LINK: https://www.intevation.de/roundup/kolab/issue3525 + LINK: https://www.intevation.de/roundup/kolab/issue3528 From cvs at kolab.org Thu Apr 2 11:51:35 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 2 Apr 2009 11:51:35 +0200 (CEST) Subject: gunnar: server/kolab-webclient ChangeLog, 1.10.2.2, 1.10.2.3 kolab-webclient.spec, 1.23.2.5, 1.23.2.6 Message-ID: <20090402095135.D66F760092B@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv7930/kolab-webclient Modified Files: Tag: kolab_2_2_branch ChangeLog kolab-webclient.spec Log Message: kolab/issue3520 (calendar with certain entries does not display in web client) kolab/issue3528 (Events with broken encoding should work) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webclient/ChangeLog,v retrieving revision 1.10.2.2 retrieving revision 1.10.2.3 diff -u -d -r1.10.2.2 -r1.10.2.3 --- ChangeLog 31 Mar 2009 12:43:37 -0000 1.10.2.2 +++ ChangeLog 2 Apr 2009 09:51:33 -0000 1.10.2.3 @@ -1,3 +1,10 @@ +2009-04-02 Gunnar Wrobel

+ + * kolab-webclient.spec: + kolab/issue3520 (calendar with certain entries does not display in + web client) + kolab/issue3528 (Events with broken encoding should work) + 2009-03-27 Gunnar Wrobel

* kolab-webclient.spec, webclient-*.php.template: Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.23.2.5 retrieving revision 1.23.2.6 diff -u -d -r1.23.2.5 -r1.23.2.6 --- kolab-webclient.spec 27 Mar 2009 11:32:56 -0000 1.23.2.5 +++ kolab-webclient.spec 2 Apr 2009 09:51:33 -0000 1.23.2.6 @@ -2,8 +2,8 @@ %define V_horde_name horde-webmail %define V_package kolab-webclient %define V_year 2009 -%define V_month 03 -%define V_day 27 +%define V_month 04 +%define V_day 02 %define V_version 1.2.0 %define V_source_version 1.2 %define V_passwd_version 3.0.1 From cvs at kolab.org Thu Apr 2 11:51:36 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 2 Apr 2009 11:51:36 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0/tg t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff, NONE, 1.1.2.1 series, 1.5.2.2, 1.5.2.3 Message-ID: <20090402095136.2F97A600929@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0/tg In directory doto:/tmp/cvs-serv7930/patches/horde-webmail/1.2.0/tg Modified Files: Tag: kolab_2_2_branch series Added Files: Tag: kolab_2_2_branch t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff Log Message: kolab/issue3520 (calendar with certain entries does not display in web client) kolab/issue3528 (Events with broken encoding should work) --- NEW FILE: t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff --- From: Gunnar Wrobel

Subject: [PATCH] t/Kolab_Format/HK/GW/HandleEmptyXmlParserReturn Correct handling of empty return values from the XML parser. An empty return might occur if the XML document is broken (e.g. broken encoding). ISSUE: kolab/issue3520 (calendar with certain entries does not display in web client) ISSUE: kolab/issue3525 (free/busy regeneration aborts for unparsable events) ISSUE: kolab/issue3528 (Events with broken encoding should work) LINK: https://www.intevation.de/roundup/kolab/issue3520 LINK: https://www.intevation.de/roundup/kolab/issue3525 LINK: https://www.intevation.de/roundup/kolab/issue3528 STATUS: COMMIT REF: Signed-off-by: Gunnar Wrobel

--- horde-webmail/lib/Horde/Kolab/Format/XML.php | 14 ++++++++++++-- 1 files changed, 12 insertions(+), 2 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Format/XML.php b/horde-webmail/lib/Horde/Kolab/Format/XML.php index d3d7def..30320c9 100644 --- a/horde-webmail/lib/Horde/Kolab/Format/XML.php +++ b/horde-webmail/lib/Horde/Kolab/Format/XML.php @@ -364,6 +364,9 @@ class Horde_Kolab_Format_XML /** * Load an object based on the given XML string. * + * @todo Check encoding of the returned array. It seems to be ISO-8859-1 at + * the moment and UTF-8 would seem more appropriate. + * * @param string $xmltext The XML of the message as string. * * @return array|PEAR_Error The data array representing the object. @@ -371,7 +374,10 @@ class Horde_Kolab_Format_XML function load(&$xmltext) { $noderoot = $this->_parseXml($xmltext); - if ($noderoot === false) { + if (is_a($noderoot, 'PEAR_Error')) { + return $noderoot; + } + if (empty($noderoot)) { return false; } @@ -530,9 +536,13 @@ class Horde_Kolab_Format_XML */ function _parseXml(&$xmltext) { + if (strcasecmp(mb_detect_encoding($xmltext, 'UTF-8, ISO-8859-1'), 'UTF-8') !== 0) { + $xmltext = mb_convert_encoding($xmltext, 'UTF-8', 'ISO-8859-1'); + } + $params = array( 'xml' => $xmltext, - 'options' => HORDE_DOM_LOAD_REMOVE_BLANKS, + 'options' => HORDE_DOM_LOAD_REMOVE_BLANKS | HORDE_DOM_LOAD_RECOVER, ); $result = Horde_DOM_Document::factory($params); -- tg: (2d1588f..) t/Kolab_Format/HK/GW/HandleEmptyXmlParserReturn (depends on: t/kronolith/HK/GW/XfbAccess) -- TOPGIT patch commit log ======================= commit 1883efc257b2e50646e11da79cc47fb0f7f328ca Author: Gunnar Wrobel

Date: Thu Apr 2 11:36:17 2009 +0200 Correct handling of empty return values from the XML parser. An empty return might occur if the XML document is broken (e.g. broken encoding). ISSUE: kolab/issue3520 (calendar with certain entries does not display in web client) ISSUE: kolab/issue3525 (free/busy regeneration aborts for unparsable events) ISSUE: kolab/issue3528 (Events with broken encoding should work) LINK: https://www.intevation.de/roundup/kolab/issue3520 LINK: https://www.intevation.de/roundup/kolab/issue3525 LINK: https://www.intevation.de/roundup/kolab/issue3528 Index: series =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/tg/series,v retrieving revision 1.5.2.2 retrieving revision 1.5.2.3 diff -u -d -r1.5.2.2 -r1.5.2.3 --- series 26 Mar 2009 21:31:00 -0000 1.5.2.2 +++ series 2 Apr 2009 09:51:34 -0000 1.5.2.3 @@ -67,3 +67,4 @@ t_imp_H_GW_LoginRetries.diff -p1 t_imp_H_JS_bug7739.diff -p1 t_imp_H_MS_bug7438.diff -p1 +t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff -p1 From cvs at kolab.org Thu Apr 2 11:51:36 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 2 Apr 2009 11:51:36 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0 horde-webmail-1.2.0_kolab_openpkg.patch, 1.32.2.3, 1.32.2.4 Message-ID: <20090402095136.68E08600929@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0 In directory doto:/tmp/cvs-serv7930/patches/horde-webmail/1.2.0 Modified Files: Tag: kolab_2_2_branch horde-webmail-1.2.0_kolab_openpkg.patch Log Message: kolab/issue3520 (calendar with certain entries does not display in web client) kolab/issue3528 (Events with broken encoding should work) Index: horde-webmail-1.2.0_kolab_openpkg.patch =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/horde-webmail-1.2.0_kolab_openpkg.patch,v retrieving revision 1.32.2.3 retrieving revision 1.32.2.4 diff -u -d -r1.32.2.3 -r1.32.2.4 --- horde-webmail-1.2.0_kolab_openpkg.patch 26 Mar 2009 21:31:00 -0000 1.32.2.3 +++ horde-webmail-1.2.0_kolab_openpkg.patch 2 Apr 2009 09:51:33 -0000 1.32.2.4 @@ -19915,6 +19915,91 @@ Date: Sun Mar 8 07:23:20 2009 +0000 Fix [#7438] Failed login not passed back to login screen +From: Gunnar Wrobel

+Subject: [PATCH] t/Kolab_Format/HK/GW/HandleEmptyXmlParserReturn + +Correct handling of empty return values from the XML parser. An empty +return might occur if the XML document is broken (e.g. broken encoding). + +ISSUE: kolab/issue3520 (calendar with certain entries does not display in web client) +ISSUE: kolab/issue3525 (free/busy regeneration aborts for unparsable events) +ISSUE: kolab/issue3528 (Events with broken encoding should work) + +LINK: https://www.intevation.de/roundup/kolab/issue3520 +LINK: https://www.intevation.de/roundup/kolab/issue3525 +LINK: https://www.intevation.de/roundup/kolab/issue3528 + +STATUS: COMMIT + +REF: + +Signed-off-by: Gunnar Wrobel

+ +--- + horde-webmail/lib/Horde/Kolab/Format/XML.php | 14 ++++++++++++-- + 1 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/horde-webmail/lib/Horde/Kolab/Format/XML.php b/horde-webmail/lib/Horde/Kolab/Format/XML.php +index d3d7def..30320c9 100644 +--- a/horde-webmail/lib/Horde/Kolab/Format/XML.php ++++ b/horde-webmail/lib/Horde/Kolab/Format/XML.php +@@ -364,6 +364,9 @@ class Horde_Kolab_Format_XML + /** + * Load an object based on the given XML string. + * ++ * @todo Check encoding of the returned array. It seems to be ISO-8859-1 at ++ * the moment and UTF-8 would seem more appropriate. ++ * + * @param string $xmltext The XML of the message as string. + * + * @return array|PEAR_Error The data array representing the object. +@@ -371,7 +374,10 @@ class Horde_Kolab_Format_XML + function load(&$xmltext) + { + $noderoot = $this->_parseXml($xmltext); +- if ($noderoot === false) { ++ if (is_a($noderoot, 'PEAR_Error')) { ++ return $noderoot; ++ } ++ if (empty($noderoot)) { + return false; + } + +@@ -530,9 +536,13 @@ class Horde_Kolab_Format_XML + */ + function _parseXml(&$xmltext) + { ++ if (strcasecmp(mb_detect_encoding($xmltext, 'UTF-8, ISO-8859-1'), 'UTF-8') !== 0) { ++ $xmltext = mb_convert_encoding($xmltext, 'UTF-8', 'ISO-8859-1'); ++ } ++ + $params = array( + 'xml' => $xmltext, +- 'options' => HORDE_DOM_LOAD_REMOVE_BLANKS, ++ 'options' => HORDE_DOM_LOAD_REMOVE_BLANKS | HORDE_DOM_LOAD_RECOVER, + ); + + $result = Horde_DOM_Document::factory($params); +-- +tg: (2d1588f..) t/Kolab_Format/HK/GW/HandleEmptyXmlParserReturn (depends on: t/kronolith/HK/GW/XfbAccess) +-- +TOPGIT patch commit log +======================= + +commit 1883efc257b2e50646e11da79cc47fb0f7f328ca +Author: Gunnar Wrobel

+Date: Thu Apr 2 11:36:17 2009 +0200 + + Correct handling of empty return values from the XML parser. An empty + return might occur if the XML document is broken (e.g. broken encoding). + + ISSUE: kolab/issue3520 (calendar with certain entries does not display in web client) + ISSUE: kolab/issue3525 (free/busy regeneration aborts for unparsable events) + ISSUE: kolab/issue3528 (Events with broken encoding should work) + + LINK: https://www.intevation.de/roundup/kolab/issue3520 + LINK: https://www.intevation.de/roundup/kolab/issue3525 + LINK: https://www.intevation.de/roundup/kolab/issue3528 diff -c a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php From cvs at kolab.org Thu Apr 2 11:51:35 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 2 Apr 2009 11:51:35 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.398.2.23,1.398.2.24 Message-ID: <20090402095135.D1E0B600929@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv7930 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: kolab/issue3520 (calendar with certain entries does not display in web client) kolab/issue3528 (Events with broken encoding should work) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.23 retrieving revision 1.398.2.24 diff -u -d -r1.398.2.23 -r1.398.2.24 --- release-notes.txt 2 Apr 2009 07:29:45 -0000 1.398.2.23 +++ release-notes.txt 2 Apr 2009 09:51:33 -0000 1.398.2.24 @@ -97,6 +97,9 @@ creating a new folder) kolab/issue3452 (Allow to configure the default imp view offered to the user) + kolab/issue3520 (calendar with certain entries does not display in + web client) + kolab/issue3528 (Events with broken encoding should work) - openpkg-20071227-20071227_kolab1 From cvs at kolab.org Thu Apr 2 15:51:46 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 2 Apr 2009 15:51:46 +0200 (CEST) Subject: thomas: server release-notes.txt,1.398.2.24,1.398.2.25 Message-ID: <20090402135146.7D96E600838@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv14183 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: Final changes for kolab/issue2535: use strcasecmp and bump release number Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.24 retrieving revision 1.398.2.25 diff -u -d -r1.398.2.24 -r1.398.2.25 --- release-notes.txt 2 Apr 2009 09:51:33 -0000 1.398.2.24 +++ release-notes.txt 2 Apr 2009 13:51:44 -0000 1.398.2.25 @@ -45,7 +45,7 @@ Changes between 2.2.1-rc-1 and 2.2.1: - - imapd-2.3.13-20081020_kolab1 + - imapd-2.3.13-20081020_kolab2 kolab/issue2535 (group:distributionlist at example.com doesn't work for Cyrus IMAP ACLs) From cvs at kolab.org Thu Apr 2 15:51:46 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 2 Apr 2009 15:51:46 +0200 (CEST) Subject: thomas: server/imapd Makefile,1.40.2.1,1.40.2.2 Message-ID: <20090402135146.7E1FD600920@lists.intevation.de> Author: thomas Update of /kolabrepository/server/imapd In directory doto:/tmp/cvs-serv14183/imapd Modified Files: Tag: kolab_2_2_branch Makefile Log Message: Final changes for kolab/issue2535: use strcasecmp and bump release number Index: Makefile =================================================================== RCS file: /kolabrepository/server/imapd/Makefile,v retrieving revision 1.40.2.1 retrieving revision 1.40.2.2 diff -u -d -r1.40.2.1 -r1.40.2.2 --- Makefile 24 Mar 2009 16:29:25 -0000 1.40.2.1 +++ Makefile 2 Apr 2009 13:51:44 -0000 1.40.2.2 @@ -21,7 +21,7 @@ PACKAGE=imapd VERSION=2.3.13 RELEASE=20081020 -KOLABRELEASE=20081020_kolab1 +KOLABRELEASE=20081020_kolab2 PATCHES=../patches/cyrus-imapd/cyrus-imapd-$(VERSION)/KOLAB_cyrus-cyradm-$(VERSION)_Annotations.patch \ ../patches/cyrus-imapd/cyrus-imapd-$(VERSION)/KOLAB_cyrus-imapd-$(VERSION)_Annotations2.patch \ From cvs at kolab.org Thu Apr 2 20:54:59 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 2 Apr 2009 20:54:59 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.425,1.426 Message-ID: <20090402185459.D6CC960083F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv27849 Modified Files: release-notes.txt Log Message: Kolab_FreeBusy-0.1.4 Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.425 retrieving revision 1.426 diff -u -d -r1.425 -r1.426 --- release-notes.txt 31 Mar 2009 12:53:34 -0000 1.425 +++ release-notes.txt 2 Apr 2009 18:54:57 -0000 1.426 @@ -32,11 +32,15 @@ kolab/issue2499 (Notification messages by the resource manager sould be localized) - - Kolab_FreeBusy-0.1.3-2009???? + - Kolab_FreeBusy-0.1.4-2009???? kolab/issue3415 (freebusy cache regeneration on the command line looks confusing) kolab/issue3446 (SERVER_NAME undefined in freebusy/regenerate.php) + kolab/issue3450 (freebusy/user at example.com.ifb returns extended + free/busy information) + kolab/issue3527 (no immediately printing of folders during + freebusy cache regeneration) - kolabd-2.?.?-2009???? From cvs at kolab.org Thu Apr 2 20:54:59 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 2 Apr 2009 20:54:59 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Freebusy ChangeLog, 1.26, 1.27 Kolab_FreeBusy.spec, 1.19, 1.20 Makefile, 1.7, 1.8 Message-ID: <20090402185459.E09B6600920@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Freebusy In directory doto:/tmp/cvs-serv27849/php-kolab/Kolab_Freebusy Modified Files: ChangeLog Kolab_FreeBusy.spec Makefile Log Message: Kolab_FreeBusy-0.1.4 Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Freebusy/ChangeLog,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- ChangeLog 6 Mar 2009 21:10:49 -0000 1.26 +++ ChangeLog 2 Apr 2009 18:54:57 -0000 1.27 @@ -1,3 +1,12 @@ +2009-04-02 Gunnar Wrobel

+ + * Kolab_FreeBusy.spec: Update to 0.1.4. + + kolab/issue3450 (freebusy/user at example.com.ifb returns extended + free/busy information) + kolab/issue3527 (no immediately printing of folders during + freebusy cache regeneration) + 2009-03-06 Gunnar Wrobel

* Kolab_FreeBusy.spec: Update to 0.1.3. Index: Kolab_FreeBusy.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Freebusy/Kolab_FreeBusy.spec,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- Kolab_FreeBusy.spec 6 Mar 2009 21:10:49 -0000 1.19 +++ Kolab_FreeBusy.spec 2 Apr 2009 18:54:57 -0000 1.20 @@ -1,7 +1,8 @@ # Variables %define V_package Kolab_FreeBusy -%define V_version 0.1.3 -%define V_release 20090306 +%define V_version 0.1.4 +%define V_release 20090402 +%define V_sourceurl http://pear.horde.org/get # Package Information Name: %{V_package} @@ -15,7 +16,7 @@ Distribution: OpenPKG # List of Sources -Source0: http://pear.horde.org/get/%{V_package}-%{V_version}.tgz +Source0: %{V_sourceurl}/%{V_package}-%{V_version}.tgz # List of patches #Patch0: issueXYZ.patch Index: Makefile =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Freebusy/Makefile,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Makefile 6 Mar 2009 21:10:49 -0000 1.7 +++ Makefile 2 Apr 2009 18:54:57 -0000 1.8 @@ -1,52 +1,111 @@ -PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") -RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") -PATCHES = $(shell ls *.patch) +# If home is unset this Makefile assumes the Kolab server installation +# resides in /kolab. If this is not the case this Makefile must be +# called using +# +# HOME="/mykolabroot" make TARGET +# +ifeq "x$(HOME)" "x" + HOME = /kolab +endif + +# If HOME is set to /root it is likely that somebody is calling this +# Makefile as root user. In this case this Makefile assumes that the +# Kolab server installation resides in /kolab. +# +# In the (hopefully) unlikely event that somebody really installed the +# Kolab server in /root this Makefile will fail. +ifeq "x$(HOME)" "x/root" + HOME = /kolab +endif +# Set the location of the rpm binary ifeq "x$(RPM)" "x" RPM = $(HOME)/bin/openpkg rpm endif + +# Set the location for rpm source package installations ifeq "x$(KOLABRPMSRC)" "x" KOLABRPMSRC = $(HOME)/RPM/SRC endif + +# Set the location for rpm packages ifeq "x$(KOLABRPMPKG)" "x" KOLABRPMPKG = $(HOME)/RPM/PKG endif + +# Set the location for the rpm temporary directory ifeq "x$(KOLABRPMTMP)" "x" KOLABRPMTMP = $(HOME)/RPM/TMP endif +# Determine the suffix for binary packages on this system ifeq "x$(PLATTAG)" "x" PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) endif -SOURCE_URL=http://pear.horde.org/get +# Determine the staging area for collecting new source rpms +ifeq "x$(STAGING)" "x" + STAGING = ../../stage +endif + +# Determine the package name from the *.spec file +PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") + +# Determine the package version from the *.spec file +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") + +# Determine the release number from the *.spec file +RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") + +# Determine the download url for the PEAR package from the *.spec file +SOURCE_URL=$(shell grep "%define[ ]*V_sourceurl" *.spec | sed -e "s/.*V_sourceurl\s*\(.*\)/\1/") + +# Get the list of patches if there are any in this directory +PATCHES = $(shell ls *.patch 2> /dev/null) + +# Generate the full package name SOURCE_0=$(PACKAGE)-$(VERSION).tgz + +# Generate a list of extra files for the package EXTRA=ChangeLog $(PATCHES) + +# Default target to generate the source rpm package .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm +# Target for placing the source rpm in the staging area .PHONY: dist dist: all - cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm ../../stage/ + test -d $(STAGING) || mkdir $(STAGING) + cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm $(STAGING) -.PHONY: clean -clean: - rm -rf /kolab/RPM/TMP/$(PACKAGE)* - rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - rm -rf *~ +# Target for installing the binary rpm package in our current Kolab +# server installation +.PHONY: install +install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm -$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): +# Target for retrieving the source package +$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_URL)/$(SOURCE_0)" -$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec ChangeLog $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) +# Target for preparing the source area and building the package +$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: Makefile $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) cp $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec +# Target for fetching the source rpm into the current directory +$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . -.PHONY: install -install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm - $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm +# Target for cleaning up the files that can be generated with this Makefile +.PHONY: clean +clean: + rm -rf $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + rm -rf $(KOLABRPMSRC)/$(PACKAGE) + rm -rf $(KOLABRPMTMP)/$(PACKAGE)* + rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm + rm -rf *~ + From cvs at kolab.org Thu Apr 2 22:27:17 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 2 Apr 2009 22:27:17 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.426,1.427 Message-ID: <20090402202717.188C1600920@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv32113 Modified Files: release-notes.txt Log Message: kolab/issue3520 (calendar with certain entries does not display in web client) kolab/issue3525 (free/busy regeneration aborts for unparsable events) kolab/issue3528 (Events with broken encoding should work) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.426 retrieving revision 1.427 diff -u -d -r1.426 -r1.427 --- release-notes.txt 2 Apr 2009 18:54:57 -0000 1.426 +++ release-notes.txt 2 Apr 2009 20:27:15 -0000 1.427 @@ -32,6 +32,13 @@ kolab/issue2499 (Notification messages by the resource manager sould be localized) + - Kolab_Format-1.0.1-2009???? + + kolab/issue3520 (calendar with certain entries does not display in web + client) + kolab/issue3525 (free/busy regeneration aborts for unparsable events) + kolab/issue3528 (Events with broken encoding should work) + - Kolab_FreeBusy-0.1.4-2009???? kolab/issue3415 (freebusy cache regeneration on the command line looks From cvs at kolab.org Thu Apr 2 22:27:17 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 2 Apr 2009 22:27:17 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Format ChangeLog, 1.3, 1.4 Kolab_Format.spec, 1.9, 1.10 Makefile, 1.6, 1.7 Message-ID: <20090402202717.21B6F60092A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Format In directory doto:/tmp/cvs-serv32113/php-kolab/Kolab_Format Modified Files: ChangeLog Kolab_Format.spec Makefile Log Message: kolab/issue3520 (calendar with certain entries does not display in web client) kolab/issue3525 (free/busy regeneration aborts for unparsable events) kolab/issue3528 (Events with broken encoding should work) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Format/ChangeLog,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ChangeLog 12 Dec 2008 11:48:22 -0000 1.3 +++ ChangeLog 2 Apr 2009 20:27:15 -0000 1.4 @@ -1,3 +1,16 @@ +2009-04-02 Gunnar Wrobel

+ + * Kolab_Format.spec: Update to 1.0.1. + + Handle parsing errors within the DOM XML extension correctly + kolab/issue3520 (calendar with certain entries does not display in web client) + https://www.intevation.de/roundup/kolab/issue3520 + kolab/issue3525 (free/busy regeneration aborts for unparsable events) + https://www.intevation.de/roundup/kolab/issue3525 + Accept ISO-8859-1 encoding even if advertised as UTF-8 + kolab/issue3528 (Events with broken encoding should work) + https://www.intevation.de/roundup/kolab/issue3528 + 2008-12-12 Gunnar Wrobel

* Kolab_Format.spec: Update to 1.0.0. Index: Kolab_Format.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Format/Kolab_Format.spec,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- Kolab_Format.spec 12 Dec 2008 11:48:22 -0000 1.9 +++ Kolab_Format.spec 2 Apr 2009 20:27:15 -0000 1.10 @@ -1,7 +1,8 @@ # Variables %define V_package Kolab_Format -%define V_version 1.0.0 -%define V_release 20081212 +%define V_version 1.0.1 +%define V_release 20090402 +%define V_sourceurl http://pear.horde.org/get # Package Information Name: %{V_package} @@ -14,7 +15,11 @@ Group: Development/Libraries Distribution: OpenPKG -Source: http://pear.horde.org/get/%{V_package}-%{V_version}.tgz +# List of Sources +Source: %{V_sourceurl}/%{V_package}-%{V_version}.tgz + +# List of patches +#Patch0: issueXYZ.patch # Build Info Prefix: %{l_prefix} @@ -37,12 +42,16 @@ %prep %setup -n %{V_package}-%{V_version} + #%patch -p2 -P 0 + + cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml + %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ - %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT $RPM_SOURCE_DIR/%{V_package}-%{V_version}.tgz + %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT package.xml rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/php/{.filemap,.lock,.channels,.depdb,.depdblock} %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} Index: Makefile =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Format/Makefile,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Makefile 12 Dec 2008 11:48:22 -0000 1.6 +++ Makefile 2 Apr 2009 20:27:15 -0000 1.7 @@ -1,40 +1,111 @@ -PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9RC.]*\).*/\1/") -RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") +# If home is unset this Makefile assumes the Kolab server installation +# resides in /kolab. If this is not the case this Makefile must be +# called using +# +# HOME="/mykolabroot" make TARGET +# +ifeq "x$(HOME)" "x" + HOME = /kolab +endif +# If HOME is set to /root it is likely that somebody is calling this +# Makefile as root user. In this case this Makefile assumes that the +# Kolab server installation resides in /kolab. +# +# In the (hopefully) unlikely event that somebody really installed the +# Kolab server in /root this Makefile will fail. +ifeq "x$(HOME)" "x/root" + HOME = /kolab +endif + +# Set the location of the rpm binary ifeq "x$(RPM)" "x" RPM = $(HOME)/bin/openpkg rpm endif + +# Set the location for rpm source package installations ifeq "x$(KOLABRPMSRC)" "x" KOLABRPMSRC = $(HOME)/RPM/SRC endif + +# Set the location for rpm packages ifeq "x$(KOLABRPMPKG)" "x" KOLABRPMPKG = $(HOME)/RPM/PKG endif + +# Set the location for the rpm temporary directory ifeq "x$(KOLABRPMTMP)" "x" KOLABRPMTMP = $(HOME)/RPM/TMP endif -SOURCE_0=http://pear.horde.org/get/$(PACKAGE)-$(VERSION).tgz +# Determine the suffix for binary packages on this system +ifeq "x$(PLATTAG)" "x" + PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) +endif + +# Determine the staging area for collecting new source rpms +ifeq "x$(STAGING)" "x" + STAGING = ../../stage +endif + +# Determine the package name from the *.spec file +PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") + +# Determine the package version from the *.spec file +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") + +# Determine the release number from the *.spec file +RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") +# Determine the download url for the PEAR package from the *.spec file +SOURCE_URL=$(shell grep "%define[ ]*V_sourceurl" *.spec | sed -e "s/.*V_sourceurl\s*\(.*\)/\1/") + +# Get the list of patches if there are any in this directory +PATCHES = $(shell ls *.patch 2> /dev/null) + +# Generate the full package name +SOURCE_0=$(PACKAGE)-$(VERSION).tgz + +# Generate a list of extra files for the package +EXTRA=ChangeLog $(PATCHES) + + +# Default target to generate the source rpm package .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm +# Target for placing the source rpm in the staging area .PHONY: dist dist: all - cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm ../../stage/ + test -d $(STAGING) || mkdir $(STAGING) + cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm $(STAGING) -.PHONY: clean -clean: - rm -rf /kolab/RPM/TMP/$(PACKAGE)* - rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - rm -rf *~ +# Target for installing the binary rpm package in our current Kolab +# server installation +.PHONY: install +install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm -$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec ChangeLog +# Target for retrieving the source package +$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) - cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_0)" + cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_URL)/$(SOURCE_0)" - cp $(PACKAGE).spec $(KOLABRPMSRC)/$(PACKAGE) +# Target for preparing the source area and building the package +$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: Makefile $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) + cp $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec +# Target for fetching the source rpm into the current directory +$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . + +# Target for cleaning up the files that can be generated with this Makefile +.PHONY: clean +clean: + rm -rf $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + rm -rf $(KOLABRPMSRC)/$(PACKAGE) + rm -rf $(KOLABRPMTMP)/$(PACKAGE)* + rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm + rm -rf *~ + From cvs at kolab.org Mon Apr 6 15:59:27 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 6 Apr 2009 15:59:27 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.398.2.25,1.398.2.26 Message-ID: <20090406135927.393DB600804@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv23209 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: kolab/issue3537 (Allowing xfb access to groups does not work) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.25 retrieving revision 1.398.2.26 diff -u -d -r1.398.2.25 -r1.398.2.26 --- release-notes.txt 2 Apr 2009 13:51:44 -0000 1.398.2.25 +++ release-notes.txt 6 Apr 2009 13:59:22 -0000 1.398.2.26 @@ -82,6 +82,7 @@ kolab/issue3438 (kolabFreeBusyPast is not used) kolab/issue3450 (freebusy/user at example.com.ifb returns extended free/busy information) + kolab/issue3537 (Allowing xfb access to groups does not work) - kolab-webadmin-2.2.1-20090331 From cvs at kolab.org Mon Apr 6 15:59:27 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 6 Apr 2009 15:59:27 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Freebusy issue3537.patch, NONE, 1.1.2.1 Kolab_FreeBusy.spec, 1.18.2.2, 1.18.2.3 Makefile, 1.6.2.1, 1.6.2.2 Message-ID: <20090406135927.4E1BB600806@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Freebusy In directory doto:/tmp/cvs-serv23209/php-kolab/Kolab_Freebusy Modified Files: Tag: kolab_2_2_branch Kolab_FreeBusy.spec Makefile Added Files: Tag: kolab_2_2_branch issue3537.patch Log Message: kolab/issue3537 (Allowing xfb access to groups does not work) --- NEW FILE: issue3537.patch --- --- a/lib/Horde/Kolab/FreeBusy/Cache.php.orig 2009-04-06 15:23:35.000000000 +0200 +++ b/lib/Horde/Kolab/FreeBusy/Cache.php 2009-04-06 15:51:49.000000000 +0200 @@ -363,9 +363,27 @@ /* Check if the calling user has access to the extended information of * the folder we are about to integrate into the free/busy data. */ - $groups = $access->user_object->getGroups(); - if (is_a($groups, 'PEAR_Error')) { - return $groups; + $uid_groups = $access->user_object->getGroups(); + if (is_a($uid_groups, 'PEAR_Error')) { + return $uid_groups; + } + + global $conf; + require_once 'Horde/Kolab/Server.php'; + /* Connect to the Kolab user database */ + $db = &Horde_Kolab_Server::singleton(array('uid' => $conf['kolab']['ldap']['phpdn'])); + + $groups = array(); + foreach ($uid_groups as $uid) { + $group = $db->fetch($uid); + if (is_a($groups, 'PEAR_Error')) { + continue; + } + $mail = $group->get(KOLAB_ATTR_MAIL); + if (is_a($mail, 'PEAR_Error')) { + continue; + } + $groups[] = $mail; } $groups[] = $access->user; Index: Kolab_FreeBusy.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Freebusy/Kolab_FreeBusy.spec,v retrieving revision 1.18.2.2 retrieving revision 1.18.2.3 diff -u -d -r1.18.2.2 -r1.18.2.3 --- Kolab_FreeBusy.spec 20 Mar 2009 22:11:48 -0000 1.18.2.2 +++ Kolab_FreeBusy.spec 6 Apr 2009 13:59:22 -0000 1.18.2.3 @@ -1,7 +1,7 @@ # Variables %define V_package Kolab_FreeBusy %define V_version 0.1.2 -%define V_release 20090320 +%define V_release 20090406 # Package Information Name: %{V_package} @@ -22,6 +22,7 @@ Patch0: kolab_issue3313.patch Patch1: issue3438.patch Patch2: issue3450.patch +Patch3: issue3537.patch # Build Info Prefix: %{l_prefix} @@ -57,6 +58,7 @@ %patch -p1 -P 0 %patch -p3 -P 1 %patch -p3 -P 2 + %patch -p1 -P 3 cp %{S:1} . %build Index: Makefile =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Freebusy/Makefile,v retrieving revision 1.6.2.1 retrieving revision 1.6.2.2 diff -u -d -r1.6.2.1 -r1.6.2.2 --- Makefile 20 Mar 2009 22:11:48 -0000 1.6.2.1 +++ Makefile 6 Apr 2009 13:59:22 -0000 1.6.2.2 @@ -21,7 +21,7 @@ SOURCE_URL=http://pear.horde.org/get SOURCE_0=$(PACKAGE)-$(VERSION).tgz -EXTRA=ChangeLog kolab_issue3313.patch issue3438.patch issue3450.patch package.xml +EXTRA=ChangeLog kolab_issue3313.patch issue3438.patch issue3450.patch issue3537.patch package.xml .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm From cvs at kolab.org Mon Apr 6 16:48:37 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 6 Apr 2009 16:48:37 +0200 (CEST) Subject: thomas: server/patches/cyrus-imapd/cyrus-imapd-2.3.13 KOLAB_cyrus-imapd-2.3.13_Groups2.patch, 1.1.2.1, 1.1.2.2 Message-ID: <20090406144837.7AC0C60082F@lists.intevation.de> Author: thomas Update of /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.13 In directory doto:/tmp/cvs-serv25163/cyrus-imapd-2.3.13 Modified Files: Tag: kolab_2_2_branch KOLAB_cyrus-imapd-2.3.13_Groups2.patch Log Message: Forgotten commit for "Final changes for kolab/issue2535: use strcasecmp ..." Having the imapd patches outside the imapd directory just calls for mistakes like this one ... Index: KOLAB_cyrus-imapd-2.3.13_Groups2.patch =================================================================== RCS file: /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.13/KOLAB_cyrus-imapd-2.3.13_Groups2.patch,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- KOLAB_cyrus-imapd-2.3.13_Groups2.patch 1 Apr 2009 17:03:45 -0000 1.1.2.1 +++ KOLAB_cyrus-imapd-2.3.13_Groups2.patch 6 Apr 2009 14:48:35 -0000 1.1.2.2 @@ -148,7 +148,7 @@ + if (!groupfile) groupfile = fopen("/etc/group", "r"); + if (groupfile) { + while ((grp = fgetgrent(groupfile))) { -+ if (strcmp(grp->gr_name, name) == 0) { ++ if (strcasecmp(grp->gr_name, name) == 0) { + fclose(groupfile); + return grp; + } @@ -207,7 +207,7 @@ + if (groupfile) { + while ((grp = fgetgrent(groupfile))) { + for (mem = grp->gr_mem; *mem; mem++) { -+ if (!strcmp(*mem, identifier)) break; ++ if (!strcasecmp(*mem, identifier)) break; + } - if (*mem || (pwd && pwd->pw_gid == grp->gr_gid)) { From cvs at kolab.org Mon Apr 6 18:04:11 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 6 Apr 2009 18:04:11 +0200 (CEST) Subject: thomas: server release-notes.txt,1.398.2.26,1.398.2.27 Message-ID: <20090406160411.6E8BF60080A@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv27451 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: updated release number for Kolab_FreeBusy Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.26 retrieving revision 1.398.2.27 diff -u -d -r1.398.2.26 -r1.398.2.27 --- release-notes.txt 6 Apr 2009 13:59:22 -0000 1.398.2.26 +++ release-notes.txt 6 Apr 2009 16:04:09 -0000 1.398.2.27 @@ -75,7 +75,7 @@ kolab/issue3525 (free/busy regeneration aborts for unparsable events) - - Kolab_FreeBusy-0.1.2-20090320 + - Kolab_FreeBusy-0.1.2-20090406 kolab/issue3413 (freebusy fails after uprading Kolab_FreeBusy until kolabconf is run) From cvs at kolab.org Mon Apr 6 18:17:57 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 6 Apr 2009 18:17:57 +0200 (CEST) Subject: thomas: server release-notes.txt,1.398.2.27,1.398.2.28 Message-ID: <20090406161757.27B5C60080A@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv28134 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: kolab/issue3513 (Clamav - new upstream version 0.95) Ported templates from HEAD Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.27 retrieving revision 1.398.2.28 diff -u -d -r1.398.2.27 -r1.398.2.28 --- release-notes.txt 6 Apr 2009 16:04:09 -0000 1.398.2.27 +++ release-notes.txt 6 Apr 2009 16:17:55 -0000 1.398.2.28 @@ -45,6 +45,10 @@ Changes between 2.2.1-rc-1 and 2.2.1: + - clamav-0.95-20090323 + + kolab/issue3513 (Clamav - new upstream version 0.95) + - imapd-2.3.13-20081020_kolab2 kolab/issue2535 (group:distributionlist at example.com doesn't work @@ -54,12 +58,13 @@ kolab/issue3130 (Perl Error on Upgrade) - - kolabd-2.2.1-20090331 + - kolabd-2.2.1-20090406 kolab/issue3096 (Address book aliases shouldn't redirect outgoing mails) kolab/issue3420 (web client prefs and hooks should be configurable via templates) + kolab/issue3513 (Clamav - new upstream version 0.95) - Kolab_Filter-0.1.4-20090401 From cvs at kolab.org Mon Apr 6 18:17:57 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 6 Apr 2009 18:17:57 +0200 (CEST) Subject: thomas: server/kolabd/kolabd ChangeLog,1.234.2.4,1.234.2.5 Message-ID: <20090406161757.2D778600814@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv28134/kolabd/kolabd Modified Files: Tag: kolab_2_2_branch ChangeLog Log Message: kolab/issue3513 (Clamav - new upstream version 0.95) Ported templates from HEAD Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.234.2.4 retrieving revision 1.234.2.5 diff -u -d -r1.234.2.4 -r1.234.2.5 --- ChangeLog 27 Mar 2009 16:18:15 -0000 1.234.2.4 +++ ChangeLog 6 Apr 2009 16:17:55 -0000 1.234.2.5 @@ -1,3 +1,10 @@ +2009-04-06 Thomas Arendsen Hein + + * templates/clamd.conf.template.in, + templates/freshclam.conf.template.in: + Updated templates for clamav-0.95-20090323 for + kolab/issue3513 (Clamav - new upstream version 0.95) + 2009-03-17 Mathieu Parent * dist_conf/debian: Prepare kolabd for additional webclient From cvs at kolab.org Mon Apr 6 18:17:57 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 6 Apr 2009 18:17:57 +0200 (CEST) Subject: thomas: server/kolabd/kolabd/templates clamd.conf.template.in, 1.3, 1.3.4.1 freshclam.conf.template.in, 1.2, 1.2.4.1 Message-ID: <20090406161757.330FE600817@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv28134/kolabd/kolabd/templates Modified Files: Tag: kolab_2_2_branch clamd.conf.template.in freshclam.conf.template.in Log Message: kolab/issue3513 (Clamav - new upstream version 0.95) Ported templates from HEAD Index: clamd.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/clamd.conf.template.in,v retrieving revision 1.3 retrieving revision 1.3.4.1 diff -u -d -r1.3 -r1.3.4.1 --- clamd.conf.template.in 17 Apr 2007 17:09:57 -0000 1.3 +++ clamd.conf.template.in 6 Apr 2009 16:17:55 -0000 1.3.4.1 @@ -71,15 +71,15 @@ # Default: hardcoded (depends on installation options) DatabaseDirectory @clamav_datadir@ -# The daemon works in a local OR a network mode. Due to security reasons we -# recommend the local mode. +# The daemon can work in local mode, network mode or both. +# Due to security reasons we recommend the local mode. # Path to a local socket file the daemon will listen on. # Default: disabled (must be specified by a user) LocalSocket @clamav_socket@ # Remove stale socket after unclean shutdown. -# Default: no +# Default: yes FixStaleSocket yes # TCP port address. @@ -103,8 +103,8 @@ # Close the connection when the data size limit is exceeded. # The value should match your MTA's limit for a maximum attachment size. -# Default: 10M -#StreamMaxLength 20M +# Default: 25M +#StreamMaxLength 10M # Limit port range. # Default: 1024 @@ -125,6 +125,12 @@ # Default: 30 #IdleTimeout 60 +# Don't scan files and directories matching regex +# This directive can be used multiple times +# Default: scan all +#ExcludePath ^/proc/ +#ExcludePath ^/sys/ + # Maximum depth directories are scanned at. # Default: 15 #MaxDirectoryRecursion 20 @@ -146,8 +152,7 @@ # Default: no #VirusEvent /usr/local/bin/send_sms 123456789 "VIRUS ALERT: %v" -# Run as another user (clamd must be started by root to make this option -# working). +# Run as another user (clamd must be started by root for this option to work) # Default: don't drop privileges User @clamav_rusr@ @@ -170,12 +175,31 @@ # Default: no #LeaveTemporaryFiles yes +# Detect Possibly Unwanted Applications. +# Default: no +#DetectPUA yes + +# Exclude a specific PUA category. This directive can be used multiple times. +# See http://www.clamav.net/support/pua for the complete list of PUA +# categories. +# Default: Load all categories (if DetectPUA is activated) +#ExcludePUA NetTool +#ExcludePUA PWTool + +# Only include a specific PUA category. This directive can be used multiple +# times. +# Default: Load all categories (if DetectPUA is activated) +#IncludePUA Spy +#IncludePUA Scanner +#IncludePUA RAT + # In some cases (eg. complex malware, exploits in graphic files, and others), # ClamAV uses special algorithms to provide accurate detection. This option # controls the algorithmic detection. # Default: yes #AlgorithmicDetection yes + ## ## Executable files ## @@ -209,9 +233,10 @@ #ScanOLE2 yes # This option enables scanning within PDF files. -# Default: no +# Default: yes #ScanPDF yes + ## ## Mail files ## @@ -226,42 +251,80 @@ # Default: no #MailFollowURLs no -# Recursion level limit for the mail scanner. -# Default: 64 -#MailMaxRecursion 128 +# Scan RFC1341 messages split over many emails. +# You will need to periodically clean up $TemporaryDirectory/clamav-partial directory. +# WARNING: This option may open your system to a DoS attack. +# Never use it on loaded servers. +# Default: no +#ScanPartialMessages yes + # With this option enabled ClamAV will try to detect phishing attempts by using # signatures. # Default: yes #PhishingSignatures yes - -# Scan urls found in mails for phishing attempts. -# (available in experimental builds only) +# Scan URLs found in mails for phishing attempts using heuristics. # Default: yes #PhishingScanURLs yes -# Use phishing detection only for domains listed in the .pdb database. It is -# not recommended to have this option turned off, because scanning of all -# domains may lead to many false positives! -# (available in experimental builds only) -# Default: yes -#PhishingRestrictedScan yes - # Always block SSL mismatches in URLs, even if the URL isn't in the database. # This can lead to false positives. -# (available in experimental builds only) # # Default: no #PhishingAlwaysBlockSSLMismatch no # Always block cloaked URLs, even if URL isn't in database. # This can lead to false positives. -# (available in experimental builds only) # # Default: no #PhishingAlwaysBlockCloak no +# Allow heuristic match to take precedence. +# When enabled, if a heuristic scan (such as phishingScan) detects +# a possible virus/phish it will stop scan immediately. Recommended, saves CPU +# scan-time. +# When disabled, virus/phish detected by heuristic scans will be reported only at +# the end of a scan. If an archive contains both a heuristically detected +# virus/phish, and a real malware, the real malware will be reported +# +# Keep this disabled if you intend to handle "*.Heuristics.*" viruses +# differently from "real" malware. +# If a non-heuristically-detected virus (signature-based) is found first, +# the scan is interrupted immediately, regardless of this config option. +# +# Default: no +#HeuristicScanPrecedence yes + +## +## Data Loss Prevention (DLP) +## + +# Enable the DLP module +# Default: No +#StructuredDataDetection yes + +# This option sets the lowest number of Credit Card numbers found in a file +# to generate a detect. +# Default: 3 +#StructuredMinCreditCardCount 5 + +# This option sets the lowest number of Social Security Numbers found +# in a file to generate a detect. +# Default: 3 +#StructuredMinSSNCount 5 + +# With this option enabled the DLP module will search for valid +# SSNs formatted as xxx-yy-zzzz +# Default: yes +#StructuredSSNFormatNormal yes + +# With this option enabled the DLP module will search for valid +# SSNs formatted as xxxyyzzzz +# Default: no +#StructuredSSNFormatStripped yes + + ## ## HTML ## @@ -279,50 +342,57 @@ # Default: yes #ScanArchive yes +# Use slower but memory efficient decompression algorithm. +# only affects the bzip2 decompressor. +# Default: no +#ArchiveLimitMemoryUsage yes + +# Mark encrypted archives as viruses (Encrypted.Zip, Encrypted.RAR). +# Default: no +#ArchiveBlockEncrypted no + + +## +## Limits +## + # The options below protect your system against Denial of Service attacks # using archive bombs. -# Files in archives larger than this limit won't be scanned. +# This option sets the maximum amount of data to be scanned for each input file. +# Archives and other containers are recursively extracted and scanned up to this +# value. +# Value of 0 disables the limit +# Note: disabling this limit or setting it too high may result in severe damage +# to the system. +# Default: 100M +#MaxScanSize 150M + +# Files larger than this limit won't be scanned. Affects the input file itself +# as well as files contained inside it (when the input file is an archive, a +# document or some other kind of container). # Value of 0 disables the limit. -# Default: 10M -#ArchiveMaxFileSize 15M +# Note: disabling this limit or setting it too high may result in severe damage +# to the system. +# Default: 25M +#MaxFileSize 30M # Nested archives are scanned recursively, e.g. if a Zip archive contains a RAR # file, all files within it will also be scanned. This options specifies how # deeply the process should be continued. +# Note: disabling this limit or setting it too high may result in severe damage +# to the system. # Value of 0 disables the limit. -# Default: 8 -#ArchiveMaxRecursion 10 - -# Number of files to be scanned within an archive. -# Value of 0 disables the limit. -# Default: 1000 -#ArchiveMaxFiles 1500 +# Default: 16 +#MaxRecursion 10 -# If a file in an archive is compressed more than ArchiveMaxCompressionRatio -# times it will be marked as a virus (Oversized.ArchiveType, e.g. Oversized.Zip) +# Number of files to be scanned within an archive, a document, or any other +# container file. # Value of 0 disables the limit. -# Default: 250 -#ArchiveMaxCompressionRatio 300 - -# Use slower but memory efficient decompression algorithm. -# only affects the bzip2 decompressor. -# Default: no -#ArchiveLimitMemoryUsage yes - -# Mark encrypted archives as viruses (Encrypted.Zip, Encrypted.RAR). -# Default: no -#ArchiveBlockEncrypted no - -# Mark archives as viruses (e.g. RAR.ExceededFileSize, Zip.ExceededFilesLimit) -# if ArchiveMaxFiles, ArchiveMaxFileSize, or ArchiveMaxRecursion limit is -# reached. -# Default: no -#ArchiveBlockMax no - -# Enable support for Sensory Networks' NodalCore hardware accelerator. -# Default: no -#NodalCoreAcceleration yes +# Note: disabling this limit or setting it too high may result in severe damage +# to the system. +# Default: 10000 +#MaxFiles 15000 ## Index: freshclam.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/freshclam.conf.template.in,v retrieving revision 1.2 retrieving revision 1.2.4.1 diff -u -d -r1.2 -r1.2.4.1 --- freshclam.conf.template.in 14 Feb 2007 17:44:17 -0000 1.2 +++ freshclam.conf.template.in 6 Apr 2009 16:17:55 -0000 1.2.4.1 @@ -23,6 +23,18 @@ # Default: disabled UpdateLogFile @freshclam_logfile@ +# Maximum size of the log file. +# Value of 0 disables the limit. +# You may use 'M' or 'm' for megabytes (1M = 1m = 1048576 bytes) +# and 'K' or 'k' for kilobytes (1K = 1k = 1024 bytes). +# in bytes just don't use modifiers. +# Default: 1M +#LogFileMaxSize 2M + +# Log time with each message. +# Default: no +#LogTime yes + # Enable verbose logging. # Default: no #LogVerbose yes @@ -73,8 +85,15 @@ # With this option you can control scripted updates. It's highly recommended # to keep it enabled. +# Default: yes #ScriptedUpdates yes +# By default freshclam will keep the local databases (.cld) uncompressed to +# make their handling faster. With this option you can enable the compression; +# the change will take effect with the next database update. +# Default: no +#CompressLocalDatabase no + # Number of database checks per day. # Default: 12 (every two hours) #Checks 24 @@ -129,3 +148,35 @@ # Timeout in seconds when reading from database server. # Default: 30 #ReceiveTimeout 60 + +# When enabled freshclam will submit statistics to the ClamAV Project about +# the latest virus detections in your environment. The ClamAV maintainers +# will then use this data to determine what types of malware are the most +# detected in the field and in what geographic area they are. +# This feature requires LogTime and LogFile to be enabled in clamd.conf. +# Default: no +#SubmitDetectionStats /path/to/clamd.conf + +# Country of origin of malware/detection statistics (for statistical +# purposes only). The statistics collector at ClamAV.net will look up +# your IP address to determine the geographical origin of the malware +# reported by your installation. If this installation is mainly used to +# scan data which comes from a different location, please enable this +# option and enter a two-letter code (see http://www.iana.org/domains/root/db/) +# of the country of origin. +# Default: disabled +#DetectionStatsCountry country-code + +# This option enables support for Google Safe Browsing. When activated for +# the first time, freshclam will download a new database file (safebrowsing.cvd) +# which will be automatically loaded by clamd and clamscan during the next +# reload, provided that the heuristic phishing detection is turned on. This +# database includes information about websites that may be phishing sites or +# possible sources of malware. When using this option, it's mandatory to run +# freshclam at least every 30 minutes. +# Freshclam uses the ClamAV's mirror infrastructure to distribute the +# database and its updates but all the contents are provided under Google's +# terms of use. See http://code.google.com/support/bin/answer.py?answer=70015 +# and http://safebrowsing.clamav.net for more information. +# Default: disabled +#SafeBrowsing yes From cvs at kolab.org Mon Apr 6 18:20:29 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 6 Apr 2009 18:20:29 +0200 (CEST) Subject: thomas: server release-notes.txt,1.427,1.428 Message-ID: <20090406162029.65B22600814@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv28270 Modified Files: release-notes.txt Log Message: clamav-0.95 will be included in server 2.2.1, so move release notes Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.427 retrieving revision 1.428 diff -u -d -r1.427 -r1.428 --- release-notes.txt 2 Apr 2009 20:27:15 -0000 1.427 +++ release-notes.txt 6 Apr 2009 16:20:27 -0000 1.428 @@ -12,10 +12,6 @@ Activated the HASH and JSON modules. - - clamav-0.95-20090323 - - New upstream version. - - install-kolab.sh kolab/issue2924 (install-kolab.sh: -maxdepth/-mindepth not supported by all @@ -60,8 +56,6 @@ Use RUNONCHANGE mechanism to restart or reload sasl, apache, amavisd, clamav and postfix. - Updated templates for clamav-0.95-20090323. - kolab/issue1382 (resmgr accepts concurrent overlapping invitations) kolab/issue2499 (Notification messages by the resource manager sould be localized) @@ -86,14 +80,19 @@ Changes between 2.2.1-rc-1 and 2.2.1: (keep in sync with kolab_2_2_branch!) + - clamav-0.95-20090323 + + kolab/issue3513 (Clamav - new upstream version 0.95) + - install-kolab.sh kolab/issue3130 (Perl Error on Upgrade) - - kolabd-2.2.1-20090331 + - kolabd-2.2.1-20090406 kolab/issue3096 (Address book aliases shouldn't redirect outgoing mails) + kolab/issue3513 (Clamav - new upstream version 0.95) - Kolab_Filter-0.1.4-20090320 From cvs at kolab.org Tue Apr 7 15:27:44 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 7 Apr 2009 15:27:44 +0200 (CEST) Subject: thomas: server release-notes.txt,1.398.2.28,1.398.2.29 Message-ID: <20090407132744.BF010600803@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv13071 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: kolabd: Disable quarantine of mails with bad headers in amavisd template since they are passed through by default. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.28 retrieving revision 1.398.2.29 diff -u -d -r1.398.2.28 -r1.398.2.29 --- release-notes.txt 6 Apr 2009 16:17:55 -0000 1.398.2.28 +++ release-notes.txt 7 Apr 2009 13:27:42 -0000 1.398.2.29 @@ -58,7 +58,10 @@ kolab/issue3130 (Perl Error on Upgrade) - - kolabd-2.2.1-20090406 + - kolabd-2.2.1-20090407 + + Disable quarantine of mails with bad headers in amavisd template + since they are passed through by default. kolab/issue3096 (Address book aliases shouldn't redirect outgoing mails) From cvs at kolab.org Tue Apr 7 15:27:44 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 7 Apr 2009 15:27:44 +0200 (CEST) Subject: thomas: server/kolabd/kolabd ChangeLog,1.234.2.5,1.234.2.6 Message-ID: <20090407132744.C14C6600817@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv13071/kolabd/kolabd Modified Files: Tag: kolab_2_2_branch ChangeLog Log Message: kolabd: Disable quarantine of mails with bad headers in amavisd template since they are passed through by default. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.234.2.5 retrieving revision 1.234.2.6 diff -u -d -r1.234.2.5 -r1.234.2.6 --- ChangeLog 6 Apr 2009 16:17:55 -0000 1.234.2.5 +++ ChangeLog 7 Apr 2009 13:27:42 -0000 1.234.2.6 @@ -1,3 +1,8 @@ +2009-04-07 Thomas Arendsen Hein + + * templates/amavisd.conf.template.in: Disable + $bad_header_quarantine_method since D_PASS is default policy. + 2009-04-06 Thomas Arendsen Hein * templates/clamd.conf.template.in, From cvs at kolab.org Tue Apr 7 15:27:44 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 7 Apr 2009 15:27:44 +0200 (CEST) Subject: thomas: server/kolabd/kolabd/templates amavisd.conf.template.in, 1.13, 1.13.2.1 Message-ID: <20090407132744.C2BAD600833@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv13071/kolabd/kolabd/templates Modified Files: Tag: kolab_2_2_branch amavisd.conf.template.in Log Message: kolabd: Disable quarantine of mails with bad headers in amavisd template since they are passed through by default. Index: amavisd.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/amavisd.conf.template.in,v retrieving revision 1.13 retrieving revision 1.13.2.1 diff -u -d -r1.13 -r1.13.2.1 --- amavisd.conf.template.in 8 Oct 2007 15:33:12 -0000 1.13 +++ amavisd.conf.template.in 7 Apr 2009 13:27:42 -0000 1.13.2.1 @@ -535,6 +535,7 @@ #$virus_quarantine_method = "local:virus-%i-%n"; # default #$spam_quarantine_method = "local:spam-%b-%i-%n"; # default +$bad_header_quarantine_method = undef; # default: 'local:badh-%m'; # #use the new 'bsmtp:' method as an alternative to the default 'local:' #$virus_quarantine_method = "bsmtp:$QUARANTINEDIR/virus-%i-%n.bsmtp"; From cvs at kolab.org Tue Apr 7 15:31:18 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 7 Apr 2009 15:31:18 +0200 (CEST) Subject: thomas: server/kolabd/kolabd/templates amavisd.conf.template.in, 1.14, 1.15 Message-ID: <20090407133118.0CEFC600833@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv13259/kolabd/kolabd/templates Modified Files: amavisd.conf.template.in Log Message: kolabd: Disable quarantine of mails with bad headers in amavisd template since they are passed through by default. Index: amavisd.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/amavisd.conf.template.in,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- amavisd.conf.template.in 17 Mar 2009 13:15:16 -0000 1.14 +++ amavisd.conf.template.in 7 Apr 2009 13:31:16 -0000 1.15 @@ -536,6 +536,7 @@ #$virus_quarantine_method = "local:virus-%i-%n"; # default #$spam_quarantine_method = "local:spam-%b-%i-%n"; # default +$bad_header_quarantine_method = undef; # default: 'local:badh-%m'; # #use the new 'bsmtp:' method as an alternative to the default 'local:' #$virus_quarantine_method = "bsmtp:$QUARANTINEDIR/virus-%i-%n.bsmtp"; From cvs at kolab.org Tue Apr 7 15:31:18 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 7 Apr 2009 15:31:18 +0200 (CEST) Subject: thomas: server release-notes.txt,1.428,1.429 Message-ID: <20090407133118.00F11600803@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv13259 Modified Files: release-notes.txt Log Message: kolabd: Disable quarantine of mails with bad headers in amavisd template since they are passed through by default. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.428 retrieving revision 1.429 diff -u -d -r1.428 -r1.429 --- release-notes.txt 6 Apr 2009 16:20:27 -0000 1.428 +++ release-notes.txt 7 Apr 2009 13:31:15 -0000 1.429 @@ -88,7 +88,10 @@ kolab/issue3130 (Perl Error on Upgrade) - - kolabd-2.2.1-20090406 + - kolabd-2.2.1-20090407 + + Disable quarantine of mails with bad headers in amavisd template + since they are passed through by default. kolab/issue3096 (Address book aliases shouldn't redirect outgoing mails) From cvs at kolab.org Tue Apr 7 15:31:18 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 7 Apr 2009 15:31:18 +0200 (CEST) Subject: thomas: server/kolabd/kolabd ChangeLog,1.245,1.246 Message-ID: <20090407133118.05F22600817@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv13259/kolabd/kolabd Modified Files: ChangeLog Log Message: kolabd: Disable quarantine of mails with bad headers in amavisd template since they are passed through by default. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.245 retrieving revision 1.246 diff -u -d -r1.245 -r1.246 --- ChangeLog 27 Mar 2009 12:09:27 -0000 1.245 +++ ChangeLog 7 Apr 2009 13:31:15 -0000 1.246 @@ -1,3 +1,8 @@ +2009-04-07 Thomas Arendsen Hein + + * templates/amavisd.conf.template.in: Disable + $bad_header_quarantine_method since D_PASS is default policy. + 2009-03-27 Thomas Arendsen Hein * templates/ldapvirtual.cf.template.in: Fix kolab/issue3096 From cvs at kolab.org Tue Apr 7 15:43:45 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 7 Apr 2009 15:43:45 +0200 (CEST) Subject: thomas: server 1st.README, 1.1.2.5, 1.1.2.6 release-notes.txt, 1.398.2.29, 1.398.2.30 Message-ID: <20090407134345.C5E99600803@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv13804 Modified Files: Tag: kolab_2_2_branch 1st.README release-notes.txt Log Message: Finalize release notes and README for 2.2.1 Index: 1st.README =================================================================== RCS file: /kolabrepository/server/1st.README,v retrieving revision 1.1.2.5 retrieving revision 1.1.2.6 diff -u -d -r1.1.2.5 -r1.1.2.6 --- 1st.README 31 Mar 2009 16:12:59 -0000 1.1.2.5 +++ 1st.README 7 Apr 2009 13:43:43 -0000 1.1.2.6 @@ -1,6 +1,6 @@ Kolab Server 2.2 Install and Upgrade Information ================================================ -(Version 2009????, Kolab Server 2.2.1) +(Version 20090407, Kolab Server 2.2.1) See http://kolab.org/ for general information about Kolab, or look at http://wiki.kolab.org/ for specific topics. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.29 retrieving revision 1.398.2.30 diff -u -d -r1.398.2.29 -r1.398.2.30 --- release-notes.txt 7 Apr 2009 13:27:42 -0000 1.398.2.29 +++ release-notes.txt 7 Apr 2009 13:43:43 -0000 1.398.2.30 @@ -1,6 +1,6 @@ Kolab Server 2.2 Release Notes ============================== -(Version 2009????, Kolab Server 2.2.1) +(Version 20090407, Kolab Server 2.2.1) For upgrading and installation instructions, please refer to the 1st.README file in the package directory. @@ -126,7 +126,149 @@ Packages in the OpenPKG based Kolab server release: - ??? + - Kolab packages: + + Updated: + + Kolab_Filter-0.1.4-20090401 + Kolab_Format-1.0.0-20090402 + Kolab_FreeBusy-0.1.2-20090406 + kolab-webadmin-2.2.1-20090331 + kolab-webclient-1.2.0-20090402 + kolabd-2.2.1-20090407 + perl-kolab-2.2.1-20090331 + + Unchanged: + + Horde_Argv-0.1.0-20081209 + Horde_Auth-0.1.1-20081209 + Horde_Browser-0.0.2-20081209 + Horde_CLI-0.0.2-20081209 + Horde_Cache-0.0.2-20081209 + Horde_Cipher-0.0.2-20081209 + Horde_DOM-0.1.0-20081209 + Horde_DataTree-0.0.3-20081209 + Horde_Date-0.1.0-20081209 + Horde_Framework-0.0.2-20081209 + Horde_Group-0.1.0-20081209 + Horde_History-0.0.2-20081209 + Horde_LDAP-0.0.2-20081209 + Horde_MIME-0.0.2-20081209 + Horde_NLS-0.0.2-20081209 + Horde_Notification-0.0.2-20090223 + Horde_Perms-0.1.0-20081209 + Horde_Prefs-0.0.3-20090223 + Horde_Secret-0.0.2-20081209 + Horde_Serialize-0.0.2-20081209 + Horde_SessionObjects-0.0.2-20081209 + Horde_Util-0.1.0-20081209 + Horde_iCalendar-0.1.0-20081209 + Kolab_Server-0.4.0-20090224 + Kolab_Storage-0.4.0-20090224 + PEAR-Auth_SASL-1.0.2-1 + PEAR-Date-1.4.7-1 + PEAR-HTTP_Request-1.4.3-1 + PEAR-Horde-Channel-1.0-20090119 + PEAR-Log-1.11.2-1 + PEAR-Mail-1.1.14-1 + PEAR-Mail_mimeDecode-1.5.0-20081209 + PEAR-Net_LMTP-1.0.1-1 + PEAR-Net_SMTP-1.3.1-1 + PEAR-Net_Socket-1.0.9-1 + PEAR-Net_URL-1.0.15-1 + PEAR-PHPUnit-Channel-1.0-20090119 + PHPUnit-3.3.3-1 + kolab-fbview-1.2.0-20081227 + openldap-2.3.43-20081212 + perl-ldap-5.10.0-20081028_kolab1 + php-smarty-2.6.20-20081212 + sqlite-3.6.4-20081212 + + - OpenPKG packages: + + Updated: + + clamav-0.95-20090323 + imapd-2.3.13-20081020_kolab2 + openpkg-20071227-20071227_kolab1 + + Unchanged: + + amavisd-2.5.3-20080101 + apache-2.2.10-20081111 + apache-php-5.2.8-20081209_kolab2 + apr-1.2.12-20080101 + autoconf-2.61-20080101 + automake-1.10-20080101 + bc-1.06-20080101 + binutils-2.18-20080101 + bison-2.3-20080101 + bzip2-1.0.5-20080318 + config-20060923-20080101 + curl-7.17.1-20080101 + db-4.5.20.2-20070628 + diffutils-2.8.7-20080101 + expat-2.0.1-20080101 + file-4.23-20080101 + flex-2.5.34-20080101 + freetype-2.3.5-20080101 + fsl-1.7.0-20080101 + gawk-3.1.6-20080101 + gcc-4.2.2-20080101 + gd-2.0.35-20080101 + gettext-0.17-20080101 + gmp-4.2.2-20080101_kolab + grep-2.5.3-20080101 + groff-1.19.2-20080101 + gzip-1.3.12-20080101 + imap-2006k-20080101 + jpeg-6b-20080101 + libiconv-1.12-20080101 + libmcrypt-2.5.8-20080101 + libxml-2.6.31-20080111 + libxslt-1.1.22-20080101 + lzo-2.02-20080101 + m4-1.4.9-20080101 + make-3.81-20080101 + mhash-0.9.9-20080101 + mm-1.4.2-20080101 + ncurses-5.6.20080112-20080113 + openpkg-tools-1.4.6-20071231 + openssl-0.9.8g-20080101 + pcre-7.5-20080110 + perl-5.10.0-20080103 + perl-comp-5.10.0-20080110 + perl-conv-5.10.0-20080101 + perl-crypto-5.10.0-20080101 + perl-db-5.10.0-20080118 + perl-dns-5.10.0-20080101 + perl-ds-5.10.0-20080104 + perl-locale-5.10.0-20080112 + perl-mail-5.10.0-20080117 + perl-module-5.10.0-20080101 + perl-net-5.10.0-20080101 + perl-openpkg-5.10.0-20080109 + perl-parse-5.10.0-20080117 + perl-ssl-5.10.0-20080101 + perl-stats-5.10.0-20080101 + perl-sys-5.10.0-20080101 + perl-term-5.10.0-20080116 + perl-text-5.10.0-20080101 + perl-time-5.10.0-20080101 + perl-util-5.10.0-20080116 + perl-www-5.10.0-20080103 + perl-xml-5.10.0-20080101 + php-5.2.8-20081209_kolab2 + pkgconfig-0.23-20080117 + png-1.2.24-20080101 + postfix-2.4.6-20080101_kolab + procmail-3.22-20080101 + readline-5.2.12-20080101 + sasl-2.1.22-20080101 + sed-4.1.5-20080101 + spamassassin-3.2.4-20080107 + texinfo-4.11-20080101 + zlib-1.2.3-20080101 Changes between 2.2.1-beta-1 and 2.2.1-rc-1: From cvs at kolab.org Tue Apr 7 18:09:59 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 7 Apr 2009 18:09:59 +0200 (CEST) Subject: thomas: doc/www/src download.html.m4,1.18,1.19 Message-ID: <20090407160959.90E20600168@lists.intevation.de> Author: thomas Update of /kolabrepository/doc/www/src In directory doto:/tmp/cvs-serv17932 Modified Files: download.html.m4 Log Message: Kolab Server 2.2.1 download location Index: download.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/download.html.m4,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- download.html.m4 19 Mar 2009 17:53:47 -0000 1.18 +++ download.html.m4 7 Apr 2009 16:09:57 -0000 1.19 @@ -73,10 +73,10 @@

   server/
    |--release/                      - stable releases of Kolab Server
-   |   `--kolab-server-2.2.0/       - current stable release 2.2.0
+   |   `--kolab-server-2.2.1/       - current stable release 2.2.1
    |--security-updates/             - files referenced by Kolab Security Issues
    |--beta/                         - beta versions and release candidates
-       `--kolab-server-2.2.1-rc-1/  - current release candidate 2.2.1-rc-1
+       `--kolab-server-2.2.1-rc-1/  - previous release candidate 2.2.1-rc-1
 
(alternatively use one of our download mirrors) From cvs at kolab.org Wed Apr 8 14:13:41 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 8 Apr 2009 14:13:41 +0200 (CEST) Subject: thomas: doc/www/src index.html.m4, 1.162, 1.163 roadmap.html.m4, 1.25, 1.26 Message-ID: <20090408121341.9C53A60092F@lists.intevation.de> Author: thomas Update of /kolabrepository/doc/www/src In directory doto:/tmp/cvs-serv28847 Modified Files: index.html.m4 roadmap.html.m4 Log Message: server 2.2.1 released Index: index.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/index.html.m4,v retrieving revision 1.162 retrieving revision 1.163 diff -u -d -r1.162 -r1.163 --- index.html.m4 5 Mar 2009 16:54:53 -0000 1.162 +++ index.html.m4 8 Apr 2009 12:13:39 -0000 1.163 @@ -60,6 +60,20 @@
+ + +
April 8th, 2009» + Kolab Server 2.2.1 Final Release +
+
+ This release contains about 20 enhancements and fixes compared to rc1.
+ Source and binary packages are available from the download page.
+ See the announcement for details. +
+

+ + + + + + + +-- +tg: (3c3721f..) t/dimp/H/GW/AclView (depends on: t/dimp/H/GW/FoldersView) +-- +TOPGIT patch commit log +======================= + +commit cac1482cec6c96a8a1d7fb7c0e8c2433877728f5 +Author: Gunnar Wrobel

+Date: Fri Mar 13 12:04:03 2009 +0000 + + Complete the patch description. + +commit 7a349ad9da06264378e84e54d7424f5dc78a9154 +Author: Gunnar Wrobel

+Date: Fri Mar 13 12:00:43 2009 +0000 + + Reduce the functionality of the ACL view when calling from DIMP. In addition add the call to the acl settings page within the folder context menu. + +commit 2fdc4d0fcd6e4956129f6ec11501112568b99c6d +Author: Gunnar Wrobel

+Date: Sun Mar 8 19:59:30 2009 +0000 + + Completed a draft. From cvs at kolab.org Wed Apr 22 18:00:48 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 22 Apr 2009 18:00:48 +0200 (CEST) Subject: wilde: server/patches/horde-webmail/1.2.0/merges t_dimp_H_GW_AclView.diff, NONE, 1.1.2.1 series, 1.1.4.1, 1.1.4.2 Message-ID: <20090422160048.669D360082D@lists.intevation.de> Author: wilde Update of /kolabrepository/server/patches/horde-webmail/1.2.0/merges In directory doto:/tmp/cvs-serv17413/patches/horde-webmail/1.2.0/merges Modified Files: Tag: suc_branch series Added Files: Tag: suc_branch t_dimp_H_GW_AclView.diff Log Message: Added Gunnar's patch for kolab/issue3455^Jconvenient ACL handling in dimp. --- NEW FILE: t_dimp_H_GW_AclView.diff --- From: Gunnar Wrobel

Subject: [PATCH] t/dimp/H/GW/AclView Provide a possibility to edit IMAP folder acls within DIMP. kolab/issue3455 (There is no convenient/dimp-like way in dimp to set folder acls) https://www.intevation.de/roundup/kolab/issue3455 [#8060] Additional entry in the folder popup to set IMAP ACLs http://bugs.horde.org/ticket/8060 Signed-off-by: Gunnar Wrobel

--- horde-webmail/dimp/js/DimpBase.js | 1 + horde-webmail/dimp/lib/DIMP.php | 1 + horde-webmail/dimp/templates/index/index.inc | 1 + horde-webmail/imp/acl.php | 12 ++++++++++-- horde-webmail/imp/templates/acl/acl.html | 6 ++++++ 5 files changed, 19 insertions(+), 2 deletions(-) diff --git a/horde-webmail/dimp/js/DimpBase.js b/horde-webmail/dimp/js/DimpBase.js index 39a728b..c4eb9f4 100644 --- a/horde-webmail/dimp/js/DimpBase.js +++ b/horde-webmail/dimp/js/DimpBase.js @@ -1941,6 +1941,7 @@ var DimpBase = { C({ d: $('ctx_folder_rename'), f: function() { this.renameFolder(DimpCore.DMenu.element()); }.bind(this), ns: true }); C({ d: $('ctx_folder_empty'), f: function() { if (window.confirm(DIMP.text.empty_folder)) { DimpCore.doAction('EmptyFolder', { folder: DimpCore.DMenu.element().readAttribute('mbox') }, [], this._emptyFolderCallback.bind(this)); } }.bind(this), ns: true }); C({ d: $('ctx_folder_delete'), f: function() { if (window.confirm(DIMP.text.delete_folder)) { DimpCore.doAction('DeleteFolder', { folder: DimpCore.DMenu.element().readAttribute('mbox') }, [], this.bcache.get('folderC') || this.bcache.set('folderC', this._folderCallback.bind(this))); } }.bind(this), ns: true }); + C({ d: $('ctx_folder_rights'), f: function() { this.go('app:horde', DIMP.conf.folder_rights + '&' + $H({ folder: DimpCore.DMenu.element().readAttribute('mbox') }).toQueryString() ) }.bind(this), ns: true }); [ 'ctx_folder_seen', 'ctx_folder_unseen' ].each(function(a) { C({ d: $(a), f: function(type) { this.flag(type, null, DimpCore.DMenu.element().readAttribute('mbox')); }.bind(this, a == 'ctx_folder_seen' ? 'allSeen' : 'allUnseen'), ns: true }); }, this); diff --git a/horde-webmail/dimp/lib/DIMP.php b/horde-webmail/dimp/lib/DIMP.php index 0aa3b78..92a1e55 100644 --- a/horde-webmail/dimp/lib/DIMP.php +++ b/horde-webmail/dimp/lib/DIMP.php @@ -145,6 +145,7 @@ class DIMP { 'message_url' => Horde::url($dimp_webroot . '/message.php'), 'compose_url' => Horde::url($dimp_webroot . '/compose.php'), 'prefs_url' => str_replace('&', '&', Horde::getServiceLink('options', 'dimp')), + 'folder_rights' => Util::addParameter(Horde::url($registry->get('webroot', 'imp') . '/acl.php', true), array('app' => 'imp', 'group'=> 'acl'), null, false), 'sortthread' => SORTTHREAD, 'sortdate' => SORTDATE, diff --git a/horde-webmail/dimp/templates/index/index.inc b/horde-webmail/dimp/templates/index/index.inc index 21939e0..7c02fe7 100644 --- a/horde-webmail/dimp/templates/index/index.inc +++ b/horde-webmail/dimp/templates/index/index.inc @@ -323,6 +323,7 @@ function _createDA($text, $image, $id = null, $class = '', $show_text = true) +

diff --git a/horde-webmail/imp/acl.php b/horde-webmail/imp/acl.php index cfa285f..851d8de 100644 --- a/horde-webmail/imp/acl.php +++ b/horde-webmail/imp/acl.php @@ -162,14 +162,22 @@ if (is_callable(array('Horde', 'loadConfiguration'))) { } $app = 'imp'; $chunk = Util::nonInputVar('chunk'); -Prefs_UI::generateHeader(null, $chunk); +if ($_SESSION['imp']['default_view'] != 'dimp') { + Prefs_UI::generateHeader(null, $chunk); +} else { + require $registry->get('templates', $app) . '/common-header.inc'; + $GLOBALS['notification']->notify(array('listeners' => 'status')); +} /* Set up template. */ $t = new IMP_Template(); $t->setOption('gettext', true); $t->set('aclurl', Horde::applicationUrl('acl.php')); $t->set('forminput', Util::formInput()); -$t->set('aclnavcell', Util::bufferOutput(array('Prefs_UI', 'generateNavigationCell'), 'acl')); +$t->set('imp_view', $_SESSION['imp']['default_view'] != 'dimp'); +if ($_SESSION['imp']['default_view'] != 'dimp') { + $t->set('aclnavcell', Util::bufferOutput(array('Prefs_UI', 'generateNavigationCell'), 'acl')); +} $t->set('changefolder', Horde::link('#', _("Change Folder"), 'smallheader', '', 'ACLFolderChange(true); return false;')); $t->set('sharedimg', Horde::img('shared.png', _("Change Folder"))); $t->set('options', IMP::flistSelect('', true, array(), $folder)); diff --git a/horde-webmail/imp/templates/acl/acl.html b/horde-webmail/imp/templates/acl/acl.html index 79580aa..72cf1c5 100644 --- a/horde-webmail/imp/templates/acl/acl.html +++ b/horde-webmail/imp/templates/acl/acl.html @@ -7,6 +7,7 @@ Share mail folders +
  • @@ -17,6 +18,7 @@
+
@@ -76,9 +78,13 @@ -- tg: (3c3721f..) t/dimp/H/GW/AclView (depends on: t/dimp/H/GW/FoldersView) -- TOPGIT patch commit log ======================= commit cac1482cec6c96a8a1d7fb7c0e8c2433877728f5 Author: Gunnar Wrobel

Date: Fri Mar 13 12:04:03 2009 +0000 Complete the patch description. commit 7a349ad9da06264378e84e54d7424f5dc78a9154 Author: Gunnar Wrobel

Date: Fri Mar 13 12:00:43 2009 +0000 Reduce the functionality of the ACL view when calling from DIMP. In addition add the call to the acl settings page within the folder context menu. commit 2fdc4d0fcd6e4956129f6ec11501112568b99c6d Author: Gunnar Wrobel

Date: Sun Mar 8 19:59:30 2009 +0000 Completed a draft. Index: series =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/merges/series,v retrieving revision 1.1.4.1 retrieving revision 1.1.4.2 diff -u -d -r1.1.4.1 -r1.1.4.2 --- series 22 Apr 2009 15:42:21 -0000 1.1.4.1 +++ series 22 Apr 2009 16:00:46 -0000 1.1.4.2 @@ -1,2 +1,3 @@ t_framework_HK_SW_Kolab__Storage_DovecotSharedFolderOwner.diff issue3329.patch +t_dimp_H_GW_AclView.diff From cvs at kolab.org Wed Apr 22 18:18:53 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 22 Apr 2009 18:18:53 +0200 (CEST) Subject: wilde: server/kolab-webclient kolab-webclient.spec, 1.23.2.6.2.2, 1.23.2.6.2.3 Message-ID: <20090422161853.264BA60082A@lists.intevation.de> Author: wilde Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv18133/kolab-webclient Modified Files: Tag: suc_branch kolab-webclient.spec Log Message: Added Gunnar's patch for kolab/issue3456^Jadded folder management functions (like subscription) to dimp. Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.23.2.6.2.2 retrieving revision 1.23.2.6.2.3 diff -u -d -r1.23.2.6.2.2 -r1.23.2.6.2.3 --- kolab-webclient.spec 22 Apr 2009 16:00:45 -0000 1.23.2.6.2.2 +++ kolab-webclient.spec 22 Apr 2009 16:18:51 -0000 1.23.2.6.2.3 @@ -8,7 +8,7 @@ %define V_source_version 1.2 %define V_passwd_version 3.0.1 %define V_date %{V_year}-%{V_month}-%{V_day} -%define V_release %{V_year}%{V_month}%{V_day}suc02 +%define V_release %{V_year}%{V_month}%{V_day}suc03 # Package Information Name: %{V_package} From cvs at kolab.org Wed Apr 22 18:18:53 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 22 Apr 2009 18:18:53 +0200 (CEST) Subject: wilde: server/patches/horde-webmail/1.2.0/merges t_dimp_H_GW_FoldersView.diff, NONE, 1.1.2.1 series, 1.1.4.2, 1.1.4.3 Message-ID: <20090422161853.81FFC60082A@lists.intevation.de> Author: wilde Update of /kolabrepository/server/patches/horde-webmail/1.2.0/merges In directory doto:/tmp/cvs-serv18133/patches/horde-webmail/1.2.0/merges Modified Files: Tag: suc_branch series Added Files: Tag: suc_branch t_dimp_H_GW_FoldersView.diff Log Message: Added Gunnar's patch for kolab/issue3456^Jadded folder management functions (like subscription) to dimp. --- NEW FILE: t_dimp_H_GW_FoldersView.diff --- From: Gunnar Wrobel

Subject: [PATCH] t/dimp/H/GW/FoldersView Provide a folders menu for dimp. kolab/issue3456 (There is no view in dimp that allows folder subscription) https://www.intevation.de/roundup/kolab/issue3456 [#8059] DIMP provides no view to subscribe/unsubscribe to folders http://bugs.horde.org/ticket/8059 Signed-off-by: Gunnar Wrobel

--- horde-webmail/dimp/config/menu.php | 6 ++++++ horde-webmail/imp/folders.php | 17 ++++++++++++----- horde-webmail/imp/templates/folders/actions.html | 2 ++ 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/horde-webmail/dimp/config/menu.php b/horde-webmail/dimp/config/menu.php index 5dcf354..99a4b8c 100644 --- a/horde-webmail/dimp/config/menu.php +++ b/horde-webmail/dimp/config/menu.php @@ -28,6 +28,12 @@ // 'text' => 'Say Hi!', // 'icon' => $GLOBALS['registry']->getImageDir('horde') . '/horde.png'), // ); +$site_menu = array( + 'folders' => array( + 'action' => 'DimpBase.go("app:horde", "' . Horde::url($GLOBALS['registry']->get('webroot', 'imp') . '/folders.php', true) . '")', + 'text' => _('Folders'), + 'icon' => $GLOBALS['registry']->getImageDir('imp') . '/folders/folder.png'), +); if (file_exists(dirname(__FILE__) . '/menu.local.php')) { require_once(dirname(__FILE__) . '/menu.local.php'); } diff --git a/horde-webmail/imp/folders.php b/horde-webmail/imp/folders.php index a0425aa..c46b0e5 100644 --- a/horde-webmail/imp/folders.php +++ b/horde-webmail/imp/folders.php @@ -324,7 +324,9 @@ $folders_url = Util::addParameter($folders_url, 'folders_token', $folders_token) $title = _("Folder Navigator"); require IMP_TEMPLATES . '/common-header.inc'; -IMP::menu(); +if ($_SESSION['imp']['default_view'] != 'dimp') { + IMP::menu(); +} IMP::status(); IMP::quota(); @@ -375,6 +377,7 @@ if ($a_template->get('javascript')) { } $a_template->set('create_folder', !empty($GLOBALS['conf']['hooks']['permsdenied']) || (IMP::hasPermission('create_folders') && IMP::hasPermission('max_folders'))); +$a_template->set('imp_view', $_SESSION['imp']['default_view'] != 'dimp'); if ($prefs->getValue('subscribe')) { $a_template->set('subscribe', true); $subToggleText = ($showAll) ? _("Hide Unsubscribed") : _("Show Unsubscribed"); @@ -414,9 +417,11 @@ $rowct = 0; $morembox = $rows = array(); foreach ($raw_rows as $val) { $val['nocheckbox'] = !empty($val['vfolder']); - if (!empty($val['vfolder']) && ($val['value'] != IMPTREE_VFOLDER_KEY)) { - $val['delvfolder'] = Horde::link($imp_search->deleteURL($val['value']), _("Delete Virtual Folder")) . _("Delete") . ''; - $val['editvfolder'] = Horde::link($imp_search->editURL($val['value']), _("Edit Virtual Folder")) . _("Edit") . ''; + if ($_SESSION['imp']['default_view'] != 'dimp') { + if (!empty($val['vfolder']) && ($val['value'] != IMPTREE_VFOLDER_KEY)) { + $val['delvfolder'] = Horde::link($imp_search->deleteURL($val['value']), _("Delete Virtual Folder")) . _("Delete") . ''; + $val['editvfolder'] = Horde::link($imp_search->editURL($val['value']), _("Edit Virtual Folder")) . _("Edit") . ''; + } } $val['class'] = (++$rowct % 2) ? 'item0' : 'item1'; @@ -433,7 +438,9 @@ foreach ($raw_rows as $val) { if (!empty($val['unseen'])) { $val['name'] = '' . $val['name'] . ''; } - $val['name'] = Horde::link(Util::addParameter($name_url, 'mailbox', $val['value']), sprintf(_("View messages in %s"), ($val['vfolder']) ? $val['base_elt']['l'] : $val['display'])) . $val['name'] . ''; + if ($_SESSION['imp']['default_view'] != 'dimp') { + $val['name'] = Horde::link(Util::addParameter($name_url, 'mailbox', $val['value']), sprintf(_("View messages in %s"), ($val['vfolder']) ? $val['base_elt']['l'] : $val['display'])) . $val['name'] . ''; + } } $dir2 = _image($val, null, 'folder'); diff --git a/horde-webmail/imp/templates/folders/actions.html b/horde-webmail/imp/templates/folders/actions.html index f882a82..8e39b8a 100644 --- a/horde-webmail/imp/templates/folders/actions.html +++ b/horde-webmail/imp/templates/folders/actions.html @@ -12,12 +12,14 @@ + + ++ + + + + + + ++ + + + +-- +tg: (eff636a..) t/dimp/H/GW/FoldersView (depends on: t/kronolith/H/GW/UseDayHourStartEndAlsoInFBView) +-- +TOPGIT patch commit log +======================= + +commit a1966161022108d9bf4831a8613b1db9a4e68c4d +Author: Gunnar Wrobel

+Date: Fri Mar 13 11:06:45 2009 +0000 + + Include issue references in the patch description. + +commit de8c5e8cac0bfb29c9cf94989016487302da653f +Author: Gunnar Wrobel

+Date: Fri Mar 13 11:04:54 2009 +0000 + + Exclude IMP specific functionality as requested by Sascha wilde in kolab/issue3456 (There is no view in dimp that allows folder subscription). + +commit 9c9a343c04cf11f857bfeb4148f0ab9d9df7dce6 +Author: Gunnar Wrobel

+Date: Sun Mar 8 19:06:05 2009 +0000 + + Completed the hack. + +commit caa539aac138c4b77376ab9f4a4a86691709a96b +Author: Gunnar Wrobel

+Date: Sun Mar 8 19:01:41 2009 +0000 + + Completed the hack. From cvs at kolab.org Thu Apr 23 08:32:41 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 08:32:41 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Server mapping.patch, NONE, 1.1.2.1 Kolab_Server.spec, 1.9, 1.9.4.1 Makefile, 1.6, 1.6.4.1 Message-ID: <20090423063241.2431B60081A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Server In directory doto:/tmp/cvs-serv25918 Modified Files: Tag: suc_branch Kolab_Server.spec Makefile Added Files: Tag: suc_branch mapping.patch Log Message: Support for configurable mapping of LDAP attributes. --- NEW FILE: mapping.patch --- diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server.php b/framework/Kolab_Server/lib/Horde/Kolab/Server.php index 941cbe6..4d77f11 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server.php @@ -159,9 +159,12 @@ class Horde_Kolab_Server { $driver = 'ldap'; $server_params = array('server' => $conf['kolab']['ldap']['server'], - 'base_dn' => $conf['kolab']['ldap']['basedn'], - 'uid' => $conf['kolab']['ldap']['phpdn'], - 'pass' => $conf['kolab']['ldap']['phppw']); + 'base_dn' => $conf['kolab']['ldap']['basedn'], + 'uid' => $conf['kolab']['ldap']['phpdn'], + 'pass' => $conf['kolab']['ldap']['phppw']); + if (isset($conf['kolab']['ldap']['map'])) { + $server_params['map'] = $conf['kolab']['ldap']['map']; + } } else { $driver = null; $server_params = array(); @@ -473,7 +476,7 @@ class Horde_Kolab_Server { function uidForId($id, $restrict = KOLAB_SERVER_RESULT_SINGLE) { - return $this->uidForAttr('uid', $id); + return $this->uidForAttr(KOLAB_ATTR_SID, $id); } /** @@ -513,7 +516,7 @@ class Horde_Kolab_Server { */ function uidForIdOrMail($id) { - $uid = $this->uidForAttr('uid', $id); + $uid = $this->uidForAttr(KOLAB_ATTR_SID, $id); if (!$uid) { $uid = $this->uidForAttr('mail', $id); } @@ -562,7 +565,7 @@ class Horde_Kolab_Server { */ function uidForMailOrIdOrAlias($id) { - $uid = $this->uidForAttr('uid', $id); + $uid = $this->uidForAttr(KOLAB_ATTR_SID, $id); if (!$uid) { $uid = $this->uidForAttr('mail', $id); if (!$uid) { diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object.php index 2b1237c..27993cc 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object.php @@ -26,6 +26,7 @@ define('KOLAB_OBJECT_USER', 'Horde_Kolab_Server_Object_user'); define('KOLAB_OBJECT_SERVER', 'Horde_Kolab_Server_Object_server'); /** Define the possible Kolab object attributes */ +define('KOLAB_ATTR_OC', 'objectClass'); define('KOLAB_ATTR_UID', 'dn'); define('KOLAB_ATTR_ID', 'id'); define('KOLAB_ATTR_SN', 'sn'); @@ -35,6 +36,7 @@ define('KOLAB_ATTR_FN', 'fn'); define('KOLAB_ATTR_LNFN', 'lnfn'); define('KOLAB_ATTR_FNLN', 'fnln'); define('KOLAB_ATTR_MAIL', 'mail'); +define('KOLAB_ATTR_ALIAS', 'alias'); define('KOLAB_ATTR_SID', 'uid'); define('KOLAB_ATTR_ACL', 'acl'); define('KOLAB_ATTR_MEMBER', 'member'); diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/address.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/address.php index 697a0c0..59d9ad4 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/address.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/address.php @@ -33,13 +33,6 @@ class Horde_Kolab_Server_Object_address extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(&(objectclass=inetOrgPerson)(!(uid=*))(sn=*))'; - - /** * The attributes supported by this class * * @var array @@ -86,6 +79,32 @@ class Horde_Kolab_Server_Object_address extends Horde_Kolab_Server_Object { ); /** + * The LDAP filter to retrieve this object type + * + * @return string + */ + function getFilter() + { + $criteria = array('AND' => array( + array('field' => KOLAB_ATTR_SN, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_INETORGPERSON), + array('NOT' => array( + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => '*'), + ), + ), + ), + ); + return $criteria; + } + + + /** * Convert the object attributes to a hash. * * @param string $attrs The attributes to return. diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/adminrole.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/adminrole.php index cebfba2..f0b9f46 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/adminrole.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/adminrole.php @@ -32,13 +32,6 @@ class Horde_Kolab_Server_Object_adminrole extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(&(cn=*)(objectClass=inetOrgPerson)(!(uid=manager))(sn=*))'; - - /** * The attributes supported by this class * * @var array @@ -87,6 +80,34 @@ class Horde_Kolab_Server_Object_adminrole extends Horde_Kolab_Server_Object { ); /** + * The LDAP filter to retrieve this object type + * + * @return string + */ + function getFilter() + { + $criteria = array('AND' => array( + array('field' => KOLAB_ATTR_CN, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_SN, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_INETORGPERSON), + array('NOT' => array( + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => 'manager'), + ), + ), + ), + ); + return $criteria; + } + + /** * Convert the object attributes to a hash. * * @param string $attrs The attributes to return. diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/distlist.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/distlist.php index e2c1c3e..04889b0 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/distlist.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/distlist.php @@ -34,14 +34,6 @@ require_once 'Horde/Kolab/Server/Object/group.php'; class Horde_Kolab_Server_Object_distlist extends Horde_Kolab_Server_Object_group { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(&(objectClass=kolabGroupOfNames)(mail=*))'; - - - /** * The attributes required when creating an object of this class. * * @var array @@ -49,4 +41,26 @@ class Horde_Kolab_Server_Object_distlist extends Horde_Kolab_Server_Object_group var $_required_attributes = array( KOLAB_ATTR_MAIL, ); + + /** + * Return the filter string to retrieve this object type. + * + * @static + * + * @return string The filter to retrieve this object type from the server + * database. + */ + public static function getFilter() + { + $criteria = array('AND' => array( + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABGROUPOFNAMES), + ), + ); + return $criteria; + } }; diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/group.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/group.php index e72604a..ea3d370 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/group.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/group.php @@ -32,13 +32,6 @@ class Horde_Kolab_Server_Object_group extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(objectClass=kolabGroupOfNames)'; - - /** * The attributes supported by this class * * @var array @@ -104,6 +97,22 @@ class Horde_Kolab_Server_Object_group extends Horde_Kolab_Server_Object { } /** + * Return the filter string to retrieve this object type. + * + * @return string The filter to retrieve this object type from the server + * database. + */ + public static function getFilter() + { + $criteria = array('AND' => array(array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABGROUPOFNAMES), + ), + ); + return $criteria; + } + + /** * Convert the object attributes to a hash. * * @param string $attrs The attributes to return. diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/server.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/server.php index 23549d5..b52a587 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/server.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/server.php @@ -32,11 +32,26 @@ class Horde_Kolab_Server_Object_server extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type + * Return the filter string to retrieve this object type. * - * @var string + * @static + * + * @return string The filter to retrieve this object type from the server + * database. */ - var $filter = '(&((k=kolab))(objectclass=kolab))'; + public static function getFilter() + { + $criteria = array('AND' => array( + array('field' => 'k', + 'op' => '=', + 'test' => 'kolab'), + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLAB), + ), + ); + return $criteria; + } /** * The attributes supported by this class diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/sharedfolder.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/sharedfolder.php index 81a68f6..ea8994b 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/sharedfolder.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/sharedfolder.php @@ -33,13 +33,6 @@ class Horde_Kolab_Server_Object_sharedfolder extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(objectClass=kolabSharedFolder)'; - - /** * The attributes supported by this class * * @var array @@ -89,6 +82,22 @@ class Horde_Kolab_Server_Object_sharedfolder extends Horde_Kolab_Server_Object { } /** + * Return the filter string to retrieve this object type. + * + * @return string The filter to retrieve this object type from the server + * database. + */ + public static function getFilter() + { + $criteria = array('AND' => array(array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABSHAREDFOLDER), + ), + ); + return $criteria; + } + + /** * Convert the object attributes to a hash. * * @param string $attrs The attributes to return. diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/user.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/user.php index a02b7fe..c648f65 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/user.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/user.php @@ -33,13 +33,6 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(&(objectClass=kolabInetOrgPerson)(uid=*)(mail=*)(sn=*))'; - - /** * The attributes supported by this class * * @var array @@ -154,6 +147,31 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object { } /** + * The LDAP filter to retrieve this object type + * + * @return string + */ + function getFilter() + { + $criteria = array('AND' => array( + array('field' => KOLAB_ATTR_SN, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + ), + ); + return $criteria; + } + + /** * Convert the object attributes to a hash. * * @param string $attrs The attributes to return. diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/ldap.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/ldap.php index eee8f52..ddc953f 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/ldap.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/ldap.php @@ -210,6 +210,7 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } if (isset($attrs)) { + $this->mapKeys($attrs); $result = @ldap_read($this->_connection, $dn, '(objectclass=*)', $attrs); } else { $result = @ldap_read($this->_connection, $dn, '(objectclass=*)'); @@ -230,6 +231,9 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { $dn, $this->_error())); } ldap_free_result($result); + + $this->unmapAttributes($object); + return $object; } @@ -250,6 +254,8 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } } + $this->mapAttributes($data); + return @ldap_add($this->_connection, $dn, $data); } @@ -681,9 +687,25 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { */ function mailForIdOrMail($id) { - $filter = '(&(objectClass=kolabInetOrgPerson)(|(uid='. - Horde_LDAP::quote($id) . ')(mail=' . - Horde_LDAP::quote($id) . ')))'; + $criteria = array('AND' => + array( + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + array('OR' => + array( + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => $id), + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => $id), + ), + ), + ), + ); + $filter = $this->searchQuery($criteria); + $result = $this->_attrsForFilter($filter, array('mail'), KOLAB_SERVER_RESULT_STRICT); if (is_a($result, 'PEAR_Error')) { @@ -702,9 +724,24 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { */ function uidForIdOrMail($id) { - $filter = '(&(objectClass=kolabInetOrgPerson)(|(uid='. - Horde_LDAP::quote($id) . ')(mail=' . - Horde_LDAP::quote($id) . ')))'; + $criteria = array('AND' => + array( + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + array('OR' => + array( + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => $id), + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => $id), + ), + ), + ), + ); + $filter = $this->searchQuery($criteria); return $this->_dnForFilter($filter, KOLAB_SERVER_RESULT_STRICT); } @@ -717,9 +754,25 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { */ function addrsForIdOrMail($id) { - $filter = '(&(objectClass=kolabInetOrgPerson)(|(mail=' - . Horde_LDAP::quote($id) . ')(uid=' - . Horde_LDAP::quote($id) . ')))'; + $criteria = array('AND' => + array( + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + array('OR' => + array( + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => $id), + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => $id), + ), + ), + ), + ); + $filter = $this->searchQuery($criteria); + $result = $this->_attrsForFilter($filter, array('mail', 'alias'), KOLAB_SERVER_RESULT_STRICT); if (empty($result)) { @@ -768,10 +821,27 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { */ function uidForMailAddress($mail) { - $filter = '(&(objectClass=kolabInetOrgPerson)(|(uid='. - Horde_LDAP::quote($mail) . ')(mail=' . - Horde_LDAP::quote($mail) . ')(alias=' . - Horde_LDAP::quote($mail) . ')))'; + $criteria = array('AND' => + array( + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + array('OR' => + array( + array('field' => KOLAB_ATTR_ALIAS, + 'op' => '=', + 'test' => $mail), + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => $mail), + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => $mail), + ), + ), + ), + ); + $filter = $this->searchQuery($criteria); return $this->_dnForFilter($filter); } @@ -874,7 +944,13 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { return $result; } $vars = get_class_vars($type); - $filter = $vars['filter']; + $methods = get_class_methods($type); + if (!in_array('getFilter', $methods)) { + $filter = $vars['filter']; + } else { + $criteria = call_user_func(array($type, 'getFilter')); + $filter = $this->searchQuery($criteria); + } $sort = $vars['sort_by']; if (isset($params['sort'])) { @@ -993,4 +1069,176 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } } + /** + * Build a search query. + * + * Taken from the Turba LDAP driver. + * + * @param array $criteria The array of criteria. + * + * @return string An LDAP query filter. + */ + public function searchQuery($criteria) + { + require_once 'Net/LDAP2.php'; + + /* Accept everything. */ + $filter = '(' . strtolower(KOLAB_ATTR_OC) . '=*)'; + + /* Build the LDAP filter. */ + if (count($criteria)) { + $f = $this->buildSearchQuery($criteria); + if (is_a($f, 'Net_LDAP2_Filter')) { + $filter = $f->asString(); + } + } + return $filter; + } + + /** + * Build a piece of a search query. + * + * Taken from the Turba LDAP driver. + * + * @param array $criteria The array of criteria. + * + * @return string An LDAP query fragment. + */ + protected function &buildSearchQuery($criteria) + { + if (isset($criteria['field'])) { + require_once 'Horde/String.php'; + require_once 'Horde/NLS.php'; + $rhs = $criteria['test']; + /* Keep this in for reference as we did not really test servers with different encoding yet */ + //$rhs = String::convertCharset($criteria['test'], NLS::getCharset(), $this->params['charset']); + switch ($criteria['op']) { + case '=': + $op = 'equals'; + break; + } + return Net_LDAP2_Filter::create($this->mapField($criteria['field']), + $op, $rhs); + } + foreach ($criteria as $key => $vals) { + if (!empty($vals['OR']) + || !empty($vals['AND']) + || !empty($vals['NOT'])) { + $parts = $this->buildSearchQuery($vals); + if (count($parts) > 1) { + if (!empty($vals['OR'])) { + $operator = '|'; + } else if (!empty($vals['NOT'])) { + $operator = '!'; + } else { + $operator = '&'; + } + return Net_LDAP2_Filter::combine($operator, $parts); + } else { + return $parts[0]; + } + } else { + $parts = array(); + foreach ($vals as $test) { + $parts[] = &$this->buildSearchQuery($test); + } + switch ($key) { + case 'OR': + $operator = '|'; + break; + case 'AND': + $operator = '&'; + break; + case 'NOT': + $operator = '!'; + break; + } + if (count($parts) > 1) { + return Net_LDAP2_Filter::combine($operator, $parts); + } else if ($operator == '!') { + return Net_LDAP2_Filter::combine($operator, $parts[0]); + } else { + return $parts[0]; + } + } + } + } + + /** + * Map attributes defined within this library their their real world + * counterparts. + * + * @param array $data The data that has been read and needs to be mapped. + * + * @return NULL + */ + protected function unmapAttributes(&$data) + { + if (!empty($this->_params['map'])) { + foreach ($this->_params['map'] as $attribute => $map) { + if (isset($data[$map])) { + $data[$attribute] = $data[$map]; + unset($data[$map]); + } + } + } + } + + /** + * Map attributes defined within this library into their real world + * counterparts. + * + * @param array $data The data to be written. + * + * @return NULL + */ + protected function mapAttributes(&$data) + { + if (!empty($this->_params['map'])) { + foreach ($this->_params['map'] as $attribute => $map) { + if (isset($data[$attribute])) { + $data[$map] = $data[$attribute]; + unset($data[$attribute]); + } + } + } + } + + /** + * Map attribute keys defined within this library into their real world + * counterparts. + * + * @param array $keys The attribute keys. + * + * @return NULL + */ + protected function mapKeys(&$keys) + { + if (!empty($this->_params['map'])) { + foreach ($this->_params['map'] as $attribute => $map) { + if (in_array($attribute, $keys)) { + $keys = array_diff($keys, array($attribute)); + $keys[] = $map; + } + } + } + } + + /** + * Map a single attribute key defined within this library into its real + * world counterpart. + * + * @param array $field The attribute name. + * + * @return The real name of this attribute on the server we connect to. + */ + protected function mapField($field) + { + if (!empty($this->_params['map']) + && isset($this->_params['map'][$field])) { + return $this->_params['map'][$field]; + } + return $field; + } + } diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/test.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/test.php index 0127069..8d6d522 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/test.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/test.php @@ -247,6 +247,10 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { } } + if (!empty($attributes)) { + $this->mapKeys($attributes); + } + $filter = $this->_parse($filter); if (is_a($filter, 'PEAR_Error')) { return $filter; @@ -265,6 +269,8 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { $result = $subtree; } + $this->unmapAttributes($result); + return $result; } @@ -286,7 +292,8 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { switch ($filter['log']) { case '=': $value = $element['data'][$filter['att']]; - if (($filter['val'] == '*' && !empty($value)) + if ((($filter['val'] == '*' || $filter['val'] == '\2a') + && !empty($value)) || $value == $filter['val'] || (is_array($value) && in_array($filter['val'], $value))) { @@ -390,8 +397,12 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { $dn)); } if (empty($attrs)) { - return $GLOBALS['KOLAB_SERVER_TEST_DATA'][$dn]['data']; + $data = $GLOBALS['KOLAB_SERVER_TEST_DATA'][$dn]['data']; + $this->unmapAttributes($data); + return $data; } else { + $this->mapKeys($attrs); + $result = array(); $data = $GLOBALS['KOLAB_SERVER_TEST_DATA'][$dn]['data']; @@ -401,6 +412,9 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { array_push($result, $attr); } } + + $this->unmapAttributes($result); + $result['count'] = 1; return $result; } @@ -423,6 +437,8 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { } } + $this->mapAttributes($data); + $ldap_data = array(); foreach ($data as $key => $val) { if (!is_array($val)) { Index: Kolab_Server.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Server/Kolab_Server.spec,v retrieving revision 1.9 retrieving revision 1.9.4.1 diff -u -d -r1.9 -r1.9.4.1 --- Kolab_Server.spec 24 Feb 2009 11:57:46 -0000 1.9 +++ Kolab_Server.spec 23 Apr 2009 06:32:38 -0000 1.9.4.1 @@ -2,6 +2,7 @@ %define V_package Kolab_Server %define V_version 0.4.0 %define V_release 20090224 +%define V_sourceurl http://pear.horde.org/get # Package Information Name: %{V_package} @@ -15,7 +16,10 @@ Distribution: OpenPKG # List of Sources -Source: http://pear.horde.org/get/%{V_package}-%{V_version}.tgz +Source: %{V_sourceurl}/%{V_package}-%{V_version}.tgz + +# List of patches +Patch0: mapping.patch # Build Info Prefix: %{l_prefix} @@ -28,6 +32,7 @@ PreReq: OpenPKG, openpkg >= 20070603 PreReq: php, php::with_pear = yes PreReq: Horde_LDAP +PreReq: Net_LDAP2 PreReq: PHPUnit %description @@ -37,12 +42,16 @@ %prep %setup -n %{V_package}-%{V_version} + %patch -p3 -P 0 + + cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml + %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ - %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT $RPM_SOURCE_DIR/%{V_package}-%{V_version}.tgz + %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT package.xml rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/php/{.filemap,.lock,.channels,.depdb,.depdblock} %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} Index: Makefile =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Server/Makefile,v retrieving revision 1.6 retrieving revision 1.6.4.1 diff -u -d -r1.6 -r1.6.4.1 --- Makefile 24 Feb 2009 11:57:46 -0000 1.6 +++ Makefile 23 Apr 2009 06:32:38 -0000 1.6.4.1 @@ -1,50 +1,111 @@ -PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") -RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") +# If home is unset this Makefile assumes the Kolab server installation +# resides in /kolab. If this is not the case this Makefile must be +# called using +# +# HOME="/mykolabroot" make TARGET +# +ifeq "x$(HOME)" "x" + HOME = /kolab +endif +# If HOME is set to /root it is likely that somebody is calling this +# Makefile as root user. In this case this Makefile assumes that the +# Kolab server installation resides in /kolab. +# +# In the (hopefully) unlikely event that somebody really installed the +# Kolab server in /root this Makefile will fail. +ifeq "x$(HOME)" "x/root" + HOME = /kolab +endif + +# Set the location of the rpm binary ifeq "x$(RPM)" "x" RPM = $(HOME)/bin/openpkg rpm endif + +# Set the location for rpm source package installations ifeq "x$(KOLABRPMSRC)" "x" KOLABRPMSRC = $(HOME)/RPM/SRC endif + +# Set the location for rpm packages ifeq "x$(KOLABRPMPKG)" "x" KOLABRPMPKG = $(HOME)/RPM/PKG endif + +# Set the location for the rpm temporary directory ifeq "x$(KOLABRPMTMP)" "x" KOLABRPMTMP = $(HOME)/RPM/TMP endif +# Determine the suffix for binary packages on this system ifeq "x$(PLATTAG)" "x" PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) endif -SOURCE_URL=http://pear.horde.org/get +# Determine the staging area for collecting new source rpms +ifeq "x$(STAGING)" "x" + STAGING = ../../stage +endif + +# Determine the package name from the *.spec file +PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") + +# Determine the package version from the *.spec file +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") + +# Determine the release number from the *.spec file +RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") + +# Determine the download url for the PEAR package from the *.spec file +SOURCE_URL=$(shell grep "%define[ ]*V_sourceurl" *.spec | sed -e "s/.*V_sourceurl\s*\(.*\)/\1/") + +# Get the list of patches if there are any in this directory +PATCHES = $(shell ls *.patch 2> /dev/null) + +# Generate the full package name SOURCE_0=$(PACKAGE)-$(VERSION).tgz +# Generate a list of extra files for the package +EXTRA=ChangeLog $(PATCHES) + + +# Default target to generate the source rpm package .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm +# Target for placing the source rpm in the staging area .PHONY: dist dist: all - cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm ../../stage/ + test -d $(STAGING) || mkdir $(STAGING) + cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm $(STAGING) -.PHONY: clean -clean: - rm -rf /kolab/RPM/TMP/$(PACKAGE)* - rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - rm -rf *~ +# Target for installing the binary rpm package in our current Kolab +# server installation +.PHONY: install +install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm -$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): +# Target for retrieving the source package +$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_URL)/$(SOURCE_0)" -$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec ChangeLog $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) - cp $(PACKAGE).spec $(KOLABRPMSRC)/$(PACKAGE) +# Target for preparing the source area and building the package +$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: Makefile $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) + cp $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec +# Target for fetching the source rpm into the current directory +$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . -.PHONY: install -install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm - $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm +# Target for cleaning up the files that can be generated with this Makefile +.PHONY: clean +clean: + rm -rf $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + rm -rf $(KOLABRPMSRC)/$(PACKAGE) + rm -rf $(KOLABRPMTMP)/$(PACKAGE)* + rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm + rm -rf *~ + From cvs at kolab.org Thu Apr 23 08:39:18 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 08:39:18 +0200 (CEST) Subject: gunnar: server/pear/PEAR-Net_LDAP2 - New directory Message-ID: <20090423063918.CF793600824@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/PEAR-Net_LDAP2 In directory doto:/tmp/cvs-serv26129/PEAR-Net_LDAP2 Log Message: Directory /kolabrepository/server/pear/PEAR-Net_LDAP2 added to the repository --> Using per-directory sticky tag `suc_branch' From cvs at kolab.org Thu Apr 23 08:40:14 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 08:40:14 +0200 (CEST) Subject: gunnar: server/pear/PEAR-Net_LDAP2 .cvsignore, NONE, 1.1.2.1 ChangeLog, NONE, 1.1.2.1 Makefile, NONE, 1.1.2.1 PEAR-Net_LDAP2.spec, NONE, 1.1.2.1 Message-ID: <20090423064014.4278D600825@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/PEAR-Net_LDAP2 In directory doto:/tmp/cvs-serv26189 Added Files: Tag: suc_branch .cvsignore ChangeLog Makefile PEAR-Net_LDAP2.spec Log Message: Added PEAR-Net_LDAP2 which is a new dependency for Kolab_Server. --- NEW FILE: .cvsignore --- *.src.rpm --- NEW FILE: ChangeLog --- 2009-04-23 Gunnar Wrobel

* PEAR-Net_LDAP2.spec: Added package to Kolab CVS. --- NEW FILE: Makefile --- PEAR_NAME = $(shell grep "%define[ ]*V_pear_name" *.spec | sed -e "s/.*V_pear_name \([A-Za-z0-9\-\_]*\).*/\1/") PACKAGE = PEAR-$(PEAR_NAME) VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([A-Za-z0-9RC.]*\).*/\1/") RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") ifeq "x$(RPM)" "x" RPM = $(HOME)/bin/openpkg rpm endif ifeq "x$(KOLABRPMSRC)" "x" KOLABRPMSRC = $(HOME)/RPM/SRC endif ifeq "x$(KOLABRPMPKG)" "x" KOLABRPMPKG = $(HOME)/RPM/PKG endif ifeq "x$(KOLABRPMTMP)" "x" KOLABRPMTMP = $(HOME)/RPM/TMP endif SOURCE_0=http://pear.php.net/get/$(PEAR_NAME)-$(VERSION).tgz .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm .PHONY: dist dist: all cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm ../../stage/ .PHONY: clean clean: rm -rf /kolab/RPM/TMP/$(PEAR_NAME)* rm -rf /kolab/RPM/TMP/$(PACKAGE) rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm rm -rf *~ $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec ChangeLog test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_0)" cp $(PACKAGE).spec $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . --- NEW FILE: PEAR-Net_LDAP2.spec --- # Variables %define V_pear_name Net_LDAP2 %define V_package PEAR-%{V_pear_name} %define V_version 2.0.0RC5 %define V_release 1 # Package Information Name: %{V_package} Summary: Object oriented interface for searching and manipulating LDAP-entries URL: http://pear.php.net/package/%{V_pear_name} Packager: Gunnar Wrobel (p at rdus) Version: %{V_version} Release: %{V_release} License: LGPL License Group: Development/Libraries Distribution: OpenPKG # List of Sources Source: http://pear.php.net/get/%{V_pear_name}-%{V_version}.tgz # Build Info Prefix: %{l_prefix} BuildRoot: %{l_buildroot} #Pre requisites BuildPreReq: OpenPKG, openpkg >= 20070603 BuildPreReq: php, php::with_pear = yes PreReq: OpenPKG, openpkg >= 20070603 PreReq: php, php::with_pear = yes PreReq: PEAR-Net_Socket >= 1.0 PreReq: PEAR-Auth_SASL %description Net_LDAP2 is the successor of Net_LDAP which is a clone of Perls Net::LDAP object interface to directory servers. It does contain most of Net::LDAPs features but has some own too. With Net_LDAP2 you have: * A simple object-oriented interface to connections, searches entries and filters. * Support for tls and ldap v3. * Simple modification, deletion and creation of ldap entries. * Support for schema handling. %prep %setup -n %{V_pear_name}-%{V_version} %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT $RPM_SOURCE_DIR/%{V_pear_name}-%{V_version}.tgz rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/php/{.filemap,.lock,.channels,.depdb,.depdblock} %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} %clean rm -rf $RPM_BUILD_ROOT %files -f files From cvs at kolab.org Thu Apr 23 08:55:51 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 08:55:51 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0/tg t_framework_HK_GW_Kolab__Server_AttributeMapping.diff, NONE, 1.1.2.1 series, 1.5.2.3, 1.5.2.3.2.1 Message-ID: <20090423065551.1371B60081A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0/tg In directory doto:/tmp/cvs-serv26507/tg Modified Files: Tag: suc_branch series Added Files: Tag: suc_branch t_framework_HK_GW_Kolab__Server_AttributeMapping.diff Log Message: Support for configurable mapping of LDAP attributes. --- NEW FILE: t_framework_HK_GW_Kolab__Server_AttributeMapping.diff --- diff --git a/horde-webmail/lib/Horde/Kolab/Server.php b/horde-webmail/lib/Horde/Kolab/Server.php index 941cbe6..4d77f11 100644 --- a/horde-webmail/lib/Horde/Kolab/Server.php +++ b/horde-webmail/lib/Horde/Kolab/Server.php @@ -159,9 +159,12 @@ class Horde_Kolab_Server { $driver = 'ldap'; $server_params = array('server' => $conf['kolab']['ldap']['server'], - 'base_dn' => $conf['kolab']['ldap']['basedn'], - 'uid' => $conf['kolab']['ldap']['phpdn'], - 'pass' => $conf['kolab']['ldap']['phppw']); + 'base_dn' => $conf['kolab']['ldap']['basedn'], + 'uid' => $conf['kolab']['ldap']['phpdn'], + 'pass' => $conf['kolab']['ldap']['phppw']); + if (isset($conf['kolab']['ldap']['map'])) { + $server_params['map'] = $conf['kolab']['ldap']['map']; + } } else { $driver = null; $server_params = array(); @@ -473,7 +476,7 @@ class Horde_Kolab_Server { function uidForId($id, $restrict = KOLAB_SERVER_RESULT_SINGLE) { - return $this->uidForAttr('uid', $id); + return $this->uidForAttr(KOLAB_ATTR_SID, $id); } /** @@ -513,7 +516,7 @@ class Horde_Kolab_Server { */ function uidForIdOrMail($id) { - $uid = $this->uidForAttr('uid', $id); + $uid = $this->uidForAttr(KOLAB_ATTR_SID, $id); if (!$uid) { $uid = $this->uidForAttr('mail', $id); } @@ -562,7 +565,7 @@ class Horde_Kolab_Server { */ function uidForMailOrIdOrAlias($id) { - $uid = $this->uidForAttr('uid', $id); + $uid = $this->uidForAttr(KOLAB_ATTR_SID, $id); if (!$uid) { $uid = $this->uidForAttr('mail', $id); if (!$uid) { diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object.php b/horde-webmail/lib/Horde/Kolab/Server/Object.php index 2b1237c..27993cc 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object.php @@ -26,6 +26,7 @@ define('KOLAB_OBJECT_USER', 'Horde_Kolab_Server_Object_user'); define('KOLAB_OBJECT_SERVER', 'Horde_Kolab_Server_Object_server'); /** Define the possible Kolab object attributes */ +define('KOLAB_ATTR_OC', 'objectClass'); define('KOLAB_ATTR_UID', 'dn'); define('KOLAB_ATTR_ID', 'id'); define('KOLAB_ATTR_SN', 'sn'); @@ -35,6 +36,7 @@ define('KOLAB_ATTR_FN', 'fn'); define('KOLAB_ATTR_LNFN', 'lnfn'); define('KOLAB_ATTR_FNLN', 'fnln'); define('KOLAB_ATTR_MAIL', 'mail'); +define('KOLAB_ATTR_ALIAS', 'alias'); define('KOLAB_ATTR_SID', 'uid'); define('KOLAB_ATTR_ACL', 'acl'); define('KOLAB_ATTR_MEMBER', 'member'); diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/address.php b/horde-webmail/lib/Horde/Kolab/Server/Object/address.php index 697a0c0..59d9ad4 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/address.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/address.php @@ -33,13 +33,6 @@ class Horde_Kolab_Server_Object_address extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(&(objectclass=inetOrgPerson)(!(uid=*))(sn=*))'; - - /** * The attributes supported by this class * * @var array @@ -86,6 +79,32 @@ class Horde_Kolab_Server_Object_address extends Horde_Kolab_Server_Object { ); /** + * The LDAP filter to retrieve this object type + * + * @return string + */ + function getFilter() + { + $criteria = array('AND' => array( + array('field' => KOLAB_ATTR_SN, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_INETORGPERSON), + array('NOT' => array( + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => '*'), + ), + ), + ), + ); + return $criteria; + } + + + /** * Convert the object attributes to a hash. * * @param string $attrs The attributes to return. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/adminrole.php b/horde-webmail/lib/Horde/Kolab/Server/Object/adminrole.php index cebfba2..f0b9f46 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/adminrole.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/adminrole.php @@ -32,13 +32,6 @@ class Horde_Kolab_Server_Object_adminrole extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(&(cn=*)(objectClass=inetOrgPerson)(!(uid=manager))(sn=*))'; - - /** * The attributes supported by this class * * @var array @@ -87,6 +80,34 @@ class Horde_Kolab_Server_Object_adminrole extends Horde_Kolab_Server_Object { ); /** + * The LDAP filter to retrieve this object type + * + * @return string + */ + function getFilter() + { + $criteria = array('AND' => array( + array('field' => KOLAB_ATTR_CN, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_SN, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_INETORGPERSON), + array('NOT' => array( + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => 'manager'), + ), + ), + ), + ); + return $criteria; + } + + /** * Convert the object attributes to a hash. * * @param string $attrs The attributes to return. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/distlist.php b/horde-webmail/lib/Horde/Kolab/Server/Object/distlist.php index e2c1c3e..04889b0 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/distlist.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/distlist.php @@ -34,14 +34,6 @@ require_once 'Horde/Kolab/Server/Object/group.php'; class Horde_Kolab_Server_Object_distlist extends Horde_Kolab_Server_Object_group { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(&(objectClass=kolabGroupOfNames)(mail=*))'; - - - /** * The attributes required when creating an object of this class. * * @var array @@ -49,4 +41,26 @@ class Horde_Kolab_Server_Object_distlist extends Horde_Kolab_Server_Object_group var $_required_attributes = array( KOLAB_ATTR_MAIL, ); + + /** + * Return the filter string to retrieve this object type. + * + * @static + * + * @return string The filter to retrieve this object type from the server + * database. + */ + public static function getFilter() + { + $criteria = array('AND' => array( + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABGROUPOFNAMES), + ), + ); + return $criteria; + } }; diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/group.php b/horde-webmail/lib/Horde/Kolab/Server/Object/group.php index e72604a..ea3d370 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/group.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/group.php @@ -32,13 +32,6 @@ class Horde_Kolab_Server_Object_group extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(objectClass=kolabGroupOfNames)'; - - /** * The attributes supported by this class * * @var array @@ -104,6 +97,22 @@ class Horde_Kolab_Server_Object_group extends Horde_Kolab_Server_Object { } /** + * Return the filter string to retrieve this object type. + * + * @return string The filter to retrieve this object type from the server + * database. + */ + public static function getFilter() + { + $criteria = array('AND' => array(array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABGROUPOFNAMES), + ), + ); + return $criteria; + } + + /** * Convert the object attributes to a hash. * * @param string $attrs The attributes to return. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/server.php b/horde-webmail/lib/Horde/Kolab/Server/Object/server.php index 23549d5..b52a587 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/server.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/server.php @@ -32,11 +32,26 @@ class Horde_Kolab_Server_Object_server extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type + * Return the filter string to retrieve this object type. * - * @var string + * @static + * + * @return string The filter to retrieve this object type from the server + * database. */ - var $filter = '(&((k=kolab))(objectclass=kolab))'; + public static function getFilter() + { + $criteria = array('AND' => array( + array('field' => 'k', + 'op' => '=', + 'test' => 'kolab'), + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLAB), + ), + ); + return $criteria; + } /** * The attributes supported by this class diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/sharedfolder.php b/horde-webmail/lib/Horde/Kolab/Server/Object/sharedfolder.php index 81a68f6..ea8994b 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/sharedfolder.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/sharedfolder.php @@ -33,13 +33,6 @@ class Horde_Kolab_Server_Object_sharedfolder extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(objectClass=kolabSharedFolder)'; - - /** * The attributes supported by this class * * @var array @@ -89,6 +82,22 @@ class Horde_Kolab_Server_Object_sharedfolder extends Horde_Kolab_Server_Object { } /** + * Return the filter string to retrieve this object type. + * + * @return string The filter to retrieve this object type from the server + * database. + */ + public static function getFilter() + { + $criteria = array('AND' => array(array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABSHAREDFOLDER), + ), + ); + return $criteria; + } + + /** * Convert the object attributes to a hash. * * @param string $attrs The attributes to return. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/user.php b/horde-webmail/lib/Horde/Kolab/Server/Object/user.php index a02b7fe..c648f65 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/user.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/user.php @@ -33,13 +33,6 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(&(objectClass=kolabInetOrgPerson)(uid=*)(mail=*)(sn=*))'; - - /** * The attributes supported by this class * * @var array @@ -154,6 +147,31 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object { } /** + * The LDAP filter to retrieve this object type + * + * @return string + */ + function getFilter() + { + $criteria = array('AND' => array( + array('field' => KOLAB_ATTR_SN, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + ), + ); + return $criteria; + } + + /** * Convert the object attributes to a hash. * * @param string $attrs The attributes to return. diff --git a/horde-webmail/lib/Horde/Kolab/Server/ldap.php b/horde-webmail/lib/Horde/Kolab/Server/ldap.php index eee8f52..ddc953f 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/ldap.php +++ b/horde-webmail/lib/Horde/Kolab/Server/ldap.php @@ -210,6 +210,7 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } if (isset($attrs)) { + $this->mapKeys($attrs); $result = @ldap_read($this->_connection, $dn, '(objectclass=*)', $attrs); } else { $result = @ldap_read($this->_connection, $dn, '(objectclass=*)'); @@ -230,6 +231,9 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { $dn, $this->_error())); } ldap_free_result($result); + + $this->unmapAttributes($object); + return $object; } @@ -250,6 +254,8 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } } + $this->mapAttributes($data); + return @ldap_add($this->_connection, $dn, $data); } @@ -681,9 +687,25 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { */ function mailForIdOrMail($id) { - $filter = '(&(objectClass=kolabInetOrgPerson)(|(uid='. - Horde_LDAP::quote($id) . ')(mail=' . - Horde_LDAP::quote($id) . ')))'; + $criteria = array('AND' => + array( + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + array('OR' => + array( + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => $id), + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => $id), + ), + ), + ), + ); + $filter = $this->searchQuery($criteria); + $result = $this->_attrsForFilter($filter, array('mail'), KOLAB_SERVER_RESULT_STRICT); if (is_a($result, 'PEAR_Error')) { @@ -702,9 +724,24 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { */ function uidForIdOrMail($id) { - $filter = '(&(objectClass=kolabInetOrgPerson)(|(uid='. - Horde_LDAP::quote($id) . ')(mail=' . - Horde_LDAP::quote($id) . ')))'; + $criteria = array('AND' => + array( + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + array('OR' => + array( + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => $id), + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => $id), + ), + ), + ), + ); + $filter = $this->searchQuery($criteria); return $this->_dnForFilter($filter, KOLAB_SERVER_RESULT_STRICT); } @@ -717,9 +754,25 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { */ function addrsForIdOrMail($id) { - $filter = '(&(objectClass=kolabInetOrgPerson)(|(mail=' - . Horde_LDAP::quote($id) . ')(uid=' - . Horde_LDAP::quote($id) . ')))'; + $criteria = array('AND' => + array( + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + array('OR' => + array( + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => $id), + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => $id), + ), + ), + ), + ); + $filter = $this->searchQuery($criteria); + $result = $this->_attrsForFilter($filter, array('mail', 'alias'), KOLAB_SERVER_RESULT_STRICT); if (empty($result)) { @@ -768,10 +821,27 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { */ function uidForMailAddress($mail) { - $filter = '(&(objectClass=kolabInetOrgPerson)(|(uid='. - Horde_LDAP::quote($mail) . ')(mail=' . - Horde_LDAP::quote($mail) . ')(alias=' . - Horde_LDAP::quote($mail) . ')))'; + $criteria = array('AND' => + array( + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + array('OR' => + array( + array('field' => KOLAB_ATTR_ALIAS, + 'op' => '=', + 'test' => $mail), + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => $mail), + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => $mail), + ), + ), + ), + ); + $filter = $this->searchQuery($criteria); return $this->_dnForFilter($filter); } @@ -874,7 +944,13 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { return $result; } $vars = get_class_vars($type); - $filter = $vars['filter']; + $methods = get_class_methods($type); + if (!in_array('getFilter', $methods)) { + $filter = $vars['filter']; + } else { + $criteria = call_user_func(array($type, 'getFilter')); + $filter = $this->searchQuery($criteria); + } $sort = $vars['sort_by']; if (isset($params['sort'])) { @@ -993,4 +1069,176 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } } + /** + * Build a search query. + * + * Taken from the Turba LDAP driver. + * + * @param array $criteria The array of criteria. + * + * @return string An LDAP query filter. + */ + public function searchQuery($criteria) + { + require_once 'Net/LDAP2.php'; + + /* Accept everything. */ + $filter = '(' . strtolower(KOLAB_ATTR_OC) . '=*)'; + + /* Build the LDAP filter. */ + if (count($criteria)) { + $f = $this->buildSearchQuery($criteria); + if (is_a($f, 'Net_LDAP2_Filter')) { + $filter = $f->asString(); + } + } + return $filter; + } + + /** + * Build a piece of a search query. + * + * Taken from the Turba LDAP driver. + * + * @param array $criteria The array of criteria. + * + * @return string An LDAP query fragment. + */ + protected function &buildSearchQuery($criteria) + { + if (isset($criteria['field'])) { + require_once 'Horde/String.php'; + require_once 'Horde/NLS.php'; + $rhs = $criteria['test']; + /* Keep this in for reference as we did not really test servers with different encoding yet */ + //$rhs = String::convertCharset($criteria['test'], NLS::getCharset(), $this->params['charset']); + switch ($criteria['op']) { + case '=': + $op = 'equals'; + break; + } + return Net_LDAP2_Filter::create($this->mapField($criteria['field']), + $op, $rhs); + } + foreach ($criteria as $key => $vals) { + if (!empty($vals['OR']) + || !empty($vals['AND']) + || !empty($vals['NOT'])) { + $parts = $this->buildSearchQuery($vals); + if (count($parts) > 1) { + if (!empty($vals['OR'])) { + $operator = '|'; + } else if (!empty($vals['NOT'])) { + $operator = '!'; + } else { + $operator = '&'; + } + return Net_LDAP2_Filter::combine($operator, $parts); + } else { + return $parts[0]; + } + } else { + $parts = array(); + foreach ($vals as $test) { + $parts[] = &$this->buildSearchQuery($test); + } + switch ($key) { + case 'OR': + $operator = '|'; + break; + case 'AND': + $operator = '&'; + break; + case 'NOT': + $operator = '!'; + break; + } + if (count($parts) > 1) { + return Net_LDAP2_Filter::combine($operator, $parts); + } else if ($operator == '!') { + return Net_LDAP2_Filter::combine($operator, $parts[0]); + } else { + return $parts[0]; + } + } + } + } + + /** + * Map attributes defined within this library their their real world + * counterparts. + * + * @param array $data The data that has been read and needs to be mapped. + * + * @return NULL + */ + protected function unmapAttributes(&$data) + { + if (!empty($this->_params['map'])) { + foreach ($this->_params['map'] as $attribute => $map) { + if (isset($data[$map])) { + $data[$attribute] = $data[$map]; + unset($data[$map]); + } + } + } + } + + /** + * Map attributes defined within this library into their real world + * counterparts. + * + * @param array $data The data to be written. + * + * @return NULL + */ + protected function mapAttributes(&$data) + { + if (!empty($this->_params['map'])) { + foreach ($this->_params['map'] as $attribute => $map) { + if (isset($data[$attribute])) { + $data[$map] = $data[$attribute]; + unset($data[$attribute]); + } + } + } + } + + /** + * Map attribute keys defined within this library into their real world + * counterparts. + * + * @param array $keys The attribute keys. + * + * @return NULL + */ + protected function mapKeys(&$keys) + { + if (!empty($this->_params['map'])) { + foreach ($this->_params['map'] as $attribute => $map) { + if (in_array($attribute, $keys)) { + $keys = array_diff($keys, array($attribute)); + $keys[] = $map; + } + } + } + } + + /** + * Map a single attribute key defined within this library into its real + * world counterpart. + * + * @param array $field The attribute name. + * + * @return The real name of this attribute on the server we connect to. + */ + protected function mapField($field) + { + if (!empty($this->_params['map']) + && isset($this->_params['map'][$field])) { + return $this->_params['map'][$field]; + } + return $field; + } + } diff --git a/horde-webmail/lib/Horde/Kolab/Server/test.php b/horde-webmail/lib/Horde/Kolab/Server/test.php index 0127069..8d6d522 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/test.php +++ b/horde-webmail/lib/Horde/Kolab/Server/test.php @@ -247,6 +247,10 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { } } + if (!empty($attributes)) { + $this->mapKeys($attributes); + } + $filter = $this->_parse($filter); if (is_a($filter, 'PEAR_Error')) { return $filter; @@ -265,6 +269,8 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { $result = $subtree; } + $this->unmapAttributes($result); + return $result; } @@ -286,7 +292,8 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { switch ($filter['log']) { case '=': $value = $element['data'][$filter['att']]; - if (($filter['val'] == '*' && !empty($value)) + if ((($filter['val'] == '*' || $filter['val'] == '\2a') + && !empty($value)) || $value == $filter['val'] || (is_array($value) && in_array($filter['val'], $value))) { @@ -390,8 +397,12 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { $dn)); } if (empty($attrs)) { - return $GLOBALS['KOLAB_SERVER_TEST_DATA'][$dn]['data']; + $data = $GLOBALS['KOLAB_SERVER_TEST_DATA'][$dn]['data']; + $this->unmapAttributes($data); + return $data; } else { + $this->mapKeys($attrs); + $result = array(); $data = $GLOBALS['KOLAB_SERVER_TEST_DATA'][$dn]['data']; @@ -401,6 +412,9 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { array_push($result, $attr); } } + + $this->unmapAttributes($result); + $result['count'] = 1; return $result; } @@ -423,6 +437,8 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { } } + $this->mapAttributes($data); + $ldap_data = array(); foreach ($data as $key => $val) { if (!is_array($val)) { Index: series =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/tg/series,v retrieving revision 1.5.2.3 retrieving revision 1.5.2.3.2.1 diff -u -d -r1.5.2.3 -r1.5.2.3.2.1 --- series 2 Apr 2009 09:51:34 -0000 1.5.2.3 +++ series 23 Apr 2009 06:55:48 -0000 1.5.2.3.2.1 @@ -68,3 +68,4 @@ t_imp_H_JS_bug7739.diff -p1 t_imp_H_MS_bug7438.diff -p1 t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff -p1 +t_framework_HK_GW_Kolab__Server_AttributeMapping.diff -p1 From cvs at kolab.org Thu Apr 23 08:55:51 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 08:55:51 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0 horde-webmail-1.2.0_kolab_openpkg.patch, 1.32.2.4.2.3, 1.32.2.4.2.4 Message-ID: <20090423065551.16CAD600824@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0 In directory doto:/tmp/cvs-serv26507 Modified Files: Tag: suc_branch horde-webmail-1.2.0_kolab_openpkg.patch Log Message: Support for configurable mapping of LDAP attributes. Index: horde-webmail-1.2.0_kolab_openpkg.patch =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/horde-webmail-1.2.0_kolab_openpkg.patch,v retrieving revision 1.32.2.4.2.3 retrieving revision 1.32.2.4.2.4 diff -u -d -r1.32.2.4.2.3 -r1.32.2.4.2.4 --- horde-webmail-1.2.0_kolab_openpkg.patch 22 Apr 2009 16:18:51 -0000 1.32.2.4.2.3 +++ horde-webmail-1.2.0_kolab_openpkg.patch 23 Apr 2009 06:55:48 -0000 1.32.2.4.2.4 @@ -20000,6 +20000,797 @@ LINK: https://www.intevation.de/roundup/kolab/issue3520 LINK: https://www.intevation.de/roundup/kolab/issue3525 LINK: https://www.intevation.de/roundup/kolab/issue3528 +diff --git a/horde-webmail/lib/Horde/Kolab/Server.php b/horde-webmail/lib/Horde/Kolab/Server.php +index 941cbe6..4d77f11 100644 +--- a/horde-webmail/lib/Horde/Kolab/Server.php ++++ b/horde-webmail/lib/Horde/Kolab/Server.php +@@ -159,9 +159,12 @@ class Horde_Kolab_Server { + $driver = 'ldap'; + + $server_params = array('server' => $conf['kolab']['ldap']['server'], +- 'base_dn' => $conf['kolab']['ldap']['basedn'], +- 'uid' => $conf['kolab']['ldap']['phpdn'], +- 'pass' => $conf['kolab']['ldap']['phppw']); ++ 'base_dn' => $conf['kolab']['ldap']['basedn'], ++ 'uid' => $conf['kolab']['ldap']['phpdn'], ++ 'pass' => $conf['kolab']['ldap']['phppw']); ++ if (isset($conf['kolab']['ldap']['map'])) { ++ $server_params['map'] = $conf['kolab']['ldap']['map']; ++ } + } else { + $driver = null; + $server_params = array(); +@@ -473,7 +476,7 @@ class Horde_Kolab_Server { + function uidForId($id, + $restrict = KOLAB_SERVER_RESULT_SINGLE) + { +- return $this->uidForAttr('uid', $id); ++ return $this->uidForAttr(KOLAB_ATTR_SID, $id); + } + + /** +@@ -513,7 +516,7 @@ class Horde_Kolab_Server { + */ + function uidForIdOrMail($id) + { +- $uid = $this->uidForAttr('uid', $id); ++ $uid = $this->uidForAttr(KOLAB_ATTR_SID, $id); + if (!$uid) { + $uid = $this->uidForAttr('mail', $id); + } +@@ -562,7 +565,7 @@ class Horde_Kolab_Server { + */ + function uidForMailOrIdOrAlias($id) + { +- $uid = $this->uidForAttr('uid', $id); ++ $uid = $this->uidForAttr(KOLAB_ATTR_SID, $id); + if (!$uid) { + $uid = $this->uidForAttr('mail', $id); + if (!$uid) { +diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object.php b/horde-webmail/lib/Horde/Kolab/Server/Object.php +index 2b1237c..27993cc 100644 +--- a/horde-webmail/lib/Horde/Kolab/Server/Object.php ++++ b/horde-webmail/lib/Horde/Kolab/Server/Object.php +@@ -26,6 +26,7 @@ define('KOLAB_OBJECT_USER', 'Horde_Kolab_Server_Object_user'); + define('KOLAB_OBJECT_SERVER', 'Horde_Kolab_Server_Object_server'); + + /** Define the possible Kolab object attributes */ ++define('KOLAB_ATTR_OC', 'objectClass'); + define('KOLAB_ATTR_UID', 'dn'); + define('KOLAB_ATTR_ID', 'id'); + define('KOLAB_ATTR_SN', 'sn'); +@@ -35,6 +36,7 @@ define('KOLAB_ATTR_FN', 'fn'); + define('KOLAB_ATTR_LNFN', 'lnfn'); + define('KOLAB_ATTR_FNLN', 'fnln'); + define('KOLAB_ATTR_MAIL', 'mail'); ++define('KOLAB_ATTR_ALIAS', 'alias'); + define('KOLAB_ATTR_SID', 'uid'); + define('KOLAB_ATTR_ACL', 'acl'); + define('KOLAB_ATTR_MEMBER', 'member'); +diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/address.php b/horde-webmail/lib/Horde/Kolab/Server/Object/address.php +index 697a0c0..59d9ad4 100644 +--- a/horde-webmail/lib/Horde/Kolab/Server/Object/address.php ++++ b/horde-webmail/lib/Horde/Kolab/Server/Object/address.php +@@ -33,13 +33,6 @@ + class Horde_Kolab_Server_Object_address extends Horde_Kolab_Server_Object { + + /** +- * The LDAP filter to retrieve this object type +- * +- * @var string +- */ +- var $filter = '(&(objectclass=inetOrgPerson)(!(uid=*))(sn=*))'; +- +- /** + * The attributes supported by this class + * + * @var array +@@ -86,6 +79,32 @@ class Horde_Kolab_Server_Object_address extends Horde_Kolab_Server_Object { + ); + + /** ++ * The LDAP filter to retrieve this object type ++ * ++ * @return string ++ */ ++ function getFilter() ++ { ++ $criteria = array('AND' => array( ++ array('field' => KOLAB_ATTR_SN, ++ 'op' => '=', ++ 'test' => '*'), ++ array('field' => KOLAB_ATTR_OC, ++ 'op' => '=', ++ 'test' => KOLAB_OC_INETORGPERSON), ++ array('NOT' => array( ++ array('field' => KOLAB_ATTR_SID, ++ 'op' => '=', ++ 'test' => '*'), ++ ), ++ ), ++ ), ++ ); ++ return $criteria; ++ } ++ ++ ++ /** + * Convert the object attributes to a hash. + * + * @param string $attrs The attributes to return. +diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/adminrole.php b/horde-webmail/lib/Horde/Kolab/Server/Object/adminrole.php +index cebfba2..f0b9f46 100644 +--- a/horde-webmail/lib/Horde/Kolab/Server/Object/adminrole.php ++++ b/horde-webmail/lib/Horde/Kolab/Server/Object/adminrole.php +@@ -32,13 +32,6 @@ + class Horde_Kolab_Server_Object_adminrole extends Horde_Kolab_Server_Object { + + /** +- * The LDAP filter to retrieve this object type +- * +- * @var string +- */ +- var $filter = '(&(cn=*)(objectClass=inetOrgPerson)(!(uid=manager))(sn=*))'; +- +- /** + * The attributes supported by this class + * + * @var array +@@ -87,6 +80,34 @@ class Horde_Kolab_Server_Object_adminrole extends Horde_Kolab_Server_Object { + ); + + /** ++ * The LDAP filter to retrieve this object type ++ * ++ * @return string ++ */ ++ function getFilter() ++ { ++ $criteria = array('AND' => array( ++ array('field' => KOLAB_ATTR_CN, ++ 'op' => '=', ++ 'test' => '*'), ++ array('field' => KOLAB_ATTR_SN, ++ 'op' => '=', ++ 'test' => '*'), ++ array('field' => KOLAB_ATTR_OC, ++ 'op' => '=', ++ 'test' => KOLAB_OC_INETORGPERSON), ++ array('NOT' => array( ++ array('field' => KOLAB_ATTR_SID, ++ 'op' => '=', ++ 'test' => 'manager'), ++ ), ++ ), ++ ), ++ ); ++ return $criteria; ++ } ++ ++ /** + * Convert the object attributes to a hash. + * + * @param string $attrs The attributes to return. +diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/distlist.php b/horde-webmail/lib/Horde/Kolab/Server/Object/distlist.php +index e2c1c3e..04889b0 100644 +--- a/horde-webmail/lib/Horde/Kolab/Server/Object/distlist.php ++++ b/horde-webmail/lib/Horde/Kolab/Server/Object/distlist.php +@@ -34,14 +34,6 @@ require_once 'Horde/Kolab/Server/Object/group.php'; + class Horde_Kolab_Server_Object_distlist extends Horde_Kolab_Server_Object_group { + + /** +- * The LDAP filter to retrieve this object type +- * +- * @var string +- */ +- var $filter = '(&(objectClass=kolabGroupOfNames)(mail=*))'; +- +- +- /** + * The attributes required when creating an object of this class. + * + * @var array +@@ -49,4 +41,26 @@ class Horde_Kolab_Server_Object_distlist extends Horde_Kolab_Server_Object_group + var $_required_attributes = array( + KOLAB_ATTR_MAIL, + ); ++ ++ /** ++ * Return the filter string to retrieve this object type. ++ * ++ * @static ++ * ++ * @return string The filter to retrieve this object type from the server ++ * database. ++ */ ++ public static function getFilter() ++ { ++ $criteria = array('AND' => array( ++ array('field' => KOLAB_ATTR_MAIL, ++ 'op' => '=', ++ 'test' => '*'), ++ array('field' => KOLAB_ATTR_OC, ++ 'op' => '=', ++ 'test' => KOLAB_OC_KOLABGROUPOFNAMES), ++ ), ++ ); ++ return $criteria; ++ } + }; +diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/group.php b/horde-webmail/lib/Horde/Kolab/Server/Object/group.php +index e72604a..ea3d370 100644 +--- a/horde-webmail/lib/Horde/Kolab/Server/Object/group.php ++++ b/horde-webmail/lib/Horde/Kolab/Server/Object/group.php +@@ -32,13 +32,6 @@ + class Horde_Kolab_Server_Object_group extends Horde_Kolab_Server_Object { + + /** +- * The LDAP filter to retrieve this object type +- * +- * @var string +- */ +- var $filter = '(objectClass=kolabGroupOfNames)'; +- +- /** + * The attributes supported by this class + * + * @var array +@@ -104,6 +97,22 @@ class Horde_Kolab_Server_Object_group extends Horde_Kolab_Server_Object { + } + + /** ++ * Return the filter string to retrieve this object type. ++ * ++ * @return string The filter to retrieve this object type from the server ++ * database. ++ */ ++ public static function getFilter() ++ { ++ $criteria = array('AND' => array(array('field' => KOLAB_ATTR_OC, ++ 'op' => '=', ++ 'test' => KOLAB_OC_KOLABGROUPOFNAMES), ++ ), ++ ); ++ return $criteria; ++ } ++ ++ /** + * Convert the object attributes to a hash. + * + * @param string $attrs The attributes to return. +diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/server.php b/horde-webmail/lib/Horde/Kolab/Server/Object/server.php +index 23549d5..b52a587 100644 +--- a/horde-webmail/lib/Horde/Kolab/Server/Object/server.php ++++ b/horde-webmail/lib/Horde/Kolab/Server/Object/server.php +@@ -32,11 +32,26 @@ + class Horde_Kolab_Server_Object_server extends Horde_Kolab_Server_Object { + + /** +- * The LDAP filter to retrieve this object type ++ * Return the filter string to retrieve this object type. + * +- * @var string ++ * @static ++ * ++ * @return string The filter to retrieve this object type from the server ++ * database. + */ +- var $filter = '(&((k=kolab))(objectclass=kolab))'; ++ public static function getFilter() ++ { ++ $criteria = array('AND' => array( ++ array('field' => 'k', ++ 'op' => '=', ++ 'test' => 'kolab'), ++ array('field' => KOLAB_ATTR_OC, ++ 'op' => '=', ++ 'test' => KOLAB_OC_KOLAB), ++ ), ++ ); ++ return $criteria; ++ } + + /** + * The attributes supported by this class +diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/sharedfolder.php b/horde-webmail/lib/Horde/Kolab/Server/Object/sharedfolder.php +index 81a68f6..ea8994b 100644 +--- a/horde-webmail/lib/Horde/Kolab/Server/Object/sharedfolder.php ++++ b/horde-webmail/lib/Horde/Kolab/Server/Object/sharedfolder.php +@@ -33,13 +33,6 @@ + class Horde_Kolab_Server_Object_sharedfolder extends Horde_Kolab_Server_Object { + + /** +- * The LDAP filter to retrieve this object type +- * +- * @var string +- */ +- var $filter = '(objectClass=kolabSharedFolder)'; +- +- /** + * The attributes supported by this class + * + * @var array +@@ -89,6 +82,22 @@ class Horde_Kolab_Server_Object_sharedfolder extends Horde_Kolab_Server_Object { + } + + /** ++ * Return the filter string to retrieve this object type. ++ * ++ * @return string The filter to retrieve this object type from the server ++ * database. ++ */ ++ public static function getFilter() ++ { ++ $criteria = array('AND' => array(array('field' => KOLAB_ATTR_OC, ++ 'op' => '=', ++ 'test' => KOLAB_OC_KOLABSHAREDFOLDER), ++ ), ++ ); ++ return $criteria; ++ } ++ ++ /** + * Convert the object attributes to a hash. + * + * @param string $attrs The attributes to return. +diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/user.php b/horde-webmail/lib/Horde/Kolab/Server/Object/user.php +index a02b7fe..c648f65 100644 +--- a/horde-webmail/lib/Horde/Kolab/Server/Object/user.php ++++ b/horde-webmail/lib/Horde/Kolab/Server/Object/user.php +@@ -33,13 +33,6 @@ + class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object { + + /** +- * The LDAP filter to retrieve this object type +- * +- * @var string +- */ +- var $filter = '(&(objectClass=kolabInetOrgPerson)(uid=*)(mail=*)(sn=*))'; +- +- /** + * The attributes supported by this class + * + * @var array +@@ -154,6 +147,31 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object { + } + + /** ++ * The LDAP filter to retrieve this object type ++ * ++ * @return string ++ */ ++ function getFilter() ++ { ++ $criteria = array('AND' => array( ++ array('field' => KOLAB_ATTR_SN, ++ 'op' => '=', ++ 'test' => '*'), ++ array('field' => KOLAB_ATTR_MAIL, ++ 'op' => '=', ++ 'test' => '*'), ++ array('field' => KOLAB_ATTR_SID, ++ 'op' => '=', ++ 'test' => '*'), ++ array('field' => KOLAB_ATTR_OC, ++ 'op' => '=', ++ 'test' => KOLAB_OC_KOLABINETORGPERSON), ++ ), ++ ); ++ return $criteria; ++ } ++ ++ /** + * Convert the object attributes to a hash. + * + * @param string $attrs The attributes to return. +diff --git a/horde-webmail/lib/Horde/Kolab/Server/ldap.php b/horde-webmail/lib/Horde/Kolab/Server/ldap.php +index eee8f52..ddc953f 100644 +--- a/horde-webmail/lib/Horde/Kolab/Server/ldap.php ++++ b/horde-webmail/lib/Horde/Kolab/Server/ldap.php +@@ -210,6 +210,7 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + } + + if (isset($attrs)) { ++ $this->mapKeys($attrs); + $result = @ldap_read($this->_connection, $dn, '(objectclass=*)', $attrs); + } else { + $result = @ldap_read($this->_connection, $dn, '(objectclass=*)'); +@@ -230,6 +231,9 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + $dn, $this->_error())); + } + ldap_free_result($result); ++ ++ $this->unmapAttributes($object); ++ + return $object; + } + +@@ -250,6 +254,8 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + } + } + ++ $this->mapAttributes($data); ++ + return @ldap_add($this->_connection, $dn, $data); + } + +@@ -681,9 +687,25 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + */ + function mailForIdOrMail($id) + { +- $filter = '(&(objectClass=kolabInetOrgPerson)(|(uid='. +- Horde_LDAP::quote($id) . ')(mail=' . +- Horde_LDAP::quote($id) . ')))'; ++ $criteria = array('AND' => ++ array( ++ array('field' => KOLAB_ATTR_OC, ++ 'op' => '=', ++ 'test' => KOLAB_OC_KOLABINETORGPERSON), ++ array('OR' => ++ array( ++ array('field' => KOLAB_ATTR_SID, ++ 'op' => '=', ++ 'test' => $id), ++ array('field' => KOLAB_ATTR_MAIL, ++ 'op' => '=', ++ 'test' => $id), ++ ), ++ ), ++ ), ++ ); ++ $filter = $this->searchQuery($criteria); ++ + $result = $this->_attrsForFilter($filter, array('mail'), + KOLAB_SERVER_RESULT_STRICT); + if (is_a($result, 'PEAR_Error')) { +@@ -702,9 +724,24 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + */ + function uidForIdOrMail($id) + { +- $filter = '(&(objectClass=kolabInetOrgPerson)(|(uid='. +- Horde_LDAP::quote($id) . ')(mail=' . +- Horde_LDAP::quote($id) . ')))'; ++ $criteria = array('AND' => ++ array( ++ array('field' => KOLAB_ATTR_OC, ++ 'op' => '=', ++ 'test' => KOLAB_OC_KOLABINETORGPERSON), ++ array('OR' => ++ array( ++ array('field' => KOLAB_ATTR_SID, ++ 'op' => '=', ++ 'test' => $id), ++ array('field' => KOLAB_ATTR_MAIL, ++ 'op' => '=', ++ 'test' => $id), ++ ), ++ ), ++ ), ++ ); ++ $filter = $this->searchQuery($criteria); + return $this->_dnForFilter($filter, KOLAB_SERVER_RESULT_STRICT); + } + +@@ -717,9 +754,25 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + */ + function addrsForIdOrMail($id) + { +- $filter = '(&(objectClass=kolabInetOrgPerson)(|(mail=' +- . Horde_LDAP::quote($id) . ')(uid=' +- . Horde_LDAP::quote($id) . ')))'; ++ $criteria = array('AND' => ++ array( ++ array('field' => KOLAB_ATTR_OC, ++ 'op' => '=', ++ 'test' => KOLAB_OC_KOLABINETORGPERSON), ++ array('OR' => ++ array( ++ array('field' => KOLAB_ATTR_SID, ++ 'op' => '=', ++ 'test' => $id), ++ array('field' => KOLAB_ATTR_MAIL, ++ 'op' => '=', ++ 'test' => $id), ++ ), ++ ), ++ ), ++ ); ++ $filter = $this->searchQuery($criteria); ++ + $result = $this->_attrsForFilter($filter, array('mail', 'alias'), + KOLAB_SERVER_RESULT_STRICT); + if (empty($result)) { +@@ -768,10 +821,27 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + */ + function uidForMailAddress($mail) + { +- $filter = '(&(objectClass=kolabInetOrgPerson)(|(uid='. +- Horde_LDAP::quote($mail) . ')(mail=' . +- Horde_LDAP::quote($mail) . ')(alias=' . +- Horde_LDAP::quote($mail) . ')))'; ++ $criteria = array('AND' => ++ array( ++ array('field' => KOLAB_ATTR_OC, ++ 'op' => '=', ++ 'test' => KOLAB_OC_KOLABINETORGPERSON), ++ array('OR' => ++ array( ++ array('field' => KOLAB_ATTR_ALIAS, ++ 'op' => '=', ++ 'test' => $mail), ++ array('field' => KOLAB_ATTR_MAIL, ++ 'op' => '=', ++ 'test' => $mail), ++ array('field' => KOLAB_ATTR_SID, ++ 'op' => '=', ++ 'test' => $mail), ++ ), ++ ), ++ ), ++ ); ++ $filter = $this->searchQuery($criteria); + return $this->_dnForFilter($filter); + } + +@@ -874,7 +944,13 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + return $result; + } + $vars = get_class_vars($type); +- $filter = $vars['filter']; ++ $methods = get_class_methods($type); ++ if (!in_array('getFilter', $methods)) { ++ $filter = $vars['filter']; ++ } else { ++ $criteria = call_user_func(array($type, 'getFilter')); ++ $filter = $this->searchQuery($criteria); ++ } + $sort = $vars['sort_by']; + + if (isset($params['sort'])) { +@@ -993,4 +1069,176 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + } + } + ++ /** ++ * Build a search query. ++ * ++ * Taken from the Turba LDAP driver. ++ * ++ * @param array $criteria The array of criteria. ++ * ++ * @return string An LDAP query filter. ++ */ ++ public function searchQuery($criteria) ++ { ++ require_once 'Net/LDAP2.php'; ++ ++ /* Accept everything. */ ++ $filter = '(' . strtolower(KOLAB_ATTR_OC) . '=*)'; ++ ++ /* Build the LDAP filter. */ ++ if (count($criteria)) { ++ $f = $this->buildSearchQuery($criteria); ++ if (is_a($f, 'Net_LDAP2_Filter')) { ++ $filter = $f->asString(); ++ } ++ } ++ return $filter; ++ } ++ ++ /** ++ * Build a piece of a search query. ++ * ++ * Taken from the Turba LDAP driver. ++ * ++ * @param array $criteria The array of criteria. ++ * ++ * @return string An LDAP query fragment. ++ */ ++ protected function &buildSearchQuery($criteria) ++ { ++ if (isset($criteria['field'])) { ++ require_once 'Horde/String.php'; ++ require_once 'Horde/NLS.php'; ++ $rhs = $criteria['test']; ++ /* Keep this in for reference as we did not really test servers with different encoding yet */ ++ //$rhs = String::convertCharset($criteria['test'], NLS::getCharset(), $this->params['charset']); ++ switch ($criteria['op']) { ++ case '=': ++ $op = 'equals'; ++ break; ++ } ++ return Net_LDAP2_Filter::create($this->mapField($criteria['field']), ++ $op, $rhs); ++ } ++ foreach ($criteria as $key => $vals) { ++ if (!empty($vals['OR']) ++ || !empty($vals['AND']) ++ || !empty($vals['NOT'])) { ++ $parts = $this->buildSearchQuery($vals); ++ if (count($parts) > 1) { ++ if (!empty($vals['OR'])) { ++ $operator = '|'; ++ } else if (!empty($vals['NOT'])) { ++ $operator = '!'; ++ } else { ++ $operator = '&'; ++ } ++ return Net_LDAP2_Filter::combine($operator, $parts); ++ } else { ++ return $parts[0]; ++ } ++ } else { ++ $parts = array(); ++ foreach ($vals as $test) { ++ $parts[] = &$this->buildSearchQuery($test); ++ } ++ switch ($key) { ++ case 'OR': ++ $operator = '|'; ++ break; ++ case 'AND': ++ $operator = '&'; ++ break; ++ case 'NOT': ++ $operator = '!'; ++ break; ++ } ++ if (count($parts) > 1) { ++ return Net_LDAP2_Filter::combine($operator, $parts); ++ } else if ($operator == '!') { ++ return Net_LDAP2_Filter::combine($operator, $parts[0]); ++ } else { ++ return $parts[0]; ++ } ++ } ++ } ++ } ++ ++ /** ++ * Map attributes defined within this library their their real world ++ * counterparts. ++ * ++ * @param array $data The data that has been read and needs to be mapped. ++ * ++ * @return NULL ++ */ ++ protected function unmapAttributes(&$data) ++ { ++ if (!empty($this->_params['map'])) { ++ foreach ($this->_params['map'] as $attribute => $map) { ++ if (isset($data[$map])) { ++ $data[$attribute] = $data[$map]; ++ unset($data[$map]); ++ } ++ } ++ } ++ } ++ ++ /** ++ * Map attributes defined within this library into their real world ++ * counterparts. ++ * ++ * @param array $data The data to be written. ++ * ++ * @return NULL ++ */ ++ protected function mapAttributes(&$data) ++ { ++ if (!empty($this->_params['map'])) { ++ foreach ($this->_params['map'] as $attribute => $map) { ++ if (isset($data[$attribute])) { ++ $data[$map] = $data[$attribute]; ++ unset($data[$attribute]); ++ } ++ } ++ } ++ } ++ ++ /** ++ * Map attribute keys defined within this library into their real world ++ * counterparts. ++ * ++ * @param array $keys The attribute keys. ++ * ++ * @return NULL ++ */ ++ protected function mapKeys(&$keys) ++ { ++ if (!empty($this->_params['map'])) { ++ foreach ($this->_params['map'] as $attribute => $map) { ++ if (in_array($attribute, $keys)) { ++ $keys = array_diff($keys, array($attribute)); ++ $keys[] = $map; ++ } ++ } ++ } ++ } ++ ++ /** ++ * Map a single attribute key defined within this library into its real ++ * world counterpart. ++ * ++ * @param array $field The attribute name. ++ * ++ * @return The real name of this attribute on the server we connect to. ++ */ ++ protected function mapField($field) ++ { ++ if (!empty($this->_params['map']) ++ && isset($this->_params['map'][$field])) { ++ return $this->_params['map'][$field]; ++ } ++ return $field; ++ } ++ + } +diff --git a/horde-webmail/lib/Horde/Kolab/Server/test.php b/horde-webmail/lib/Horde/Kolab/Server/test.php +index 0127069..8d6d522 100644 +--- a/horde-webmail/lib/Horde/Kolab/Server/test.php ++++ b/horde-webmail/lib/Horde/Kolab/Server/test.php +@@ -247,6 +247,10 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { + } + } + ++ if (!empty($attributes)) { ++ $this->mapKeys($attributes); ++ } ++ + $filter = $this->_parse($filter); + if (is_a($filter, 'PEAR_Error')) { + return $filter; +@@ -265,6 +269,8 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { + $result = $subtree; + } + ++ $this->unmapAttributes($result); ++ + return $result; + } + +@@ -286,7 +292,8 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { + switch ($filter['log']) { + case '=': + $value = $element['data'][$filter['att']]; +- if (($filter['val'] == '*' && !empty($value)) ++ if ((($filter['val'] == '*' || $filter['val'] == '\2a') ++ && !empty($value)) + || $value == $filter['val'] + || (is_array($value) + && in_array($filter['val'], $value))) { +@@ -390,8 +397,12 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { + $dn)); + } + if (empty($attrs)) { +- return $GLOBALS['KOLAB_SERVER_TEST_DATA'][$dn]['data']; ++ $data = $GLOBALS['KOLAB_SERVER_TEST_DATA'][$dn]['data']; ++ $this->unmapAttributes($data); ++ return $data; + } else { ++ $this->mapKeys($attrs); ++ + $result = array(); + $data = $GLOBALS['KOLAB_SERVER_TEST_DATA'][$dn]['data']; + +@@ -401,6 +412,9 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { + array_push($result, $attr); + } + } ++ ++ $this->unmapAttributes($result); ++ + $result['count'] = 1; + return $result; + } +@@ -423,6 +437,8 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { + } + } + ++ $this->mapAttributes($data); ++ + $ldap_data = array(); + foreach ($data as $key => $val) { + if (!is_array($val)) { diff -c a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php From cvs at kolab.org Thu Apr 23 08:56:12 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 08:56:12 +0200 (CEST) Subject: gunnar: server/kolab-webclient kolab-webclient.spec, 1.23.2.6.2.3, 1.23.2.6.2.4 Message-ID: <20090423065612.E888D600824@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv26570 Modified Files: Tag: suc_branch kolab-webclient.spec Log Message: Support for configurable mapping of LDAP attributes. Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.23.2.6.2.3 retrieving revision 1.23.2.6.2.4 diff -u -d -r1.23.2.6.2.3 -r1.23.2.6.2.4 --- kolab-webclient.spec 22 Apr 2009 16:18:51 -0000 1.23.2.6.2.3 +++ kolab-webclient.spec 23 Apr 2009 06:56:10 -0000 1.23.2.6.2.4 @@ -3,12 +3,12 @@ %define V_package kolab-webclient %define V_year 2009 %define V_month 04 -%define V_day 22 +%define V_day 23 %define V_version 1.2.0 %define V_source_version 1.2 %define V_passwd_version 3.0.1 %define V_date %{V_year}-%{V_month}-%{V_day} -%define V_release %{V_year}%{V_month}%{V_day}suc03 +%define V_release %{V_year}%{V_month}%{V_day}suc04 # Package Information Name: %{V_package} From cvs at kolab.org Thu Apr 23 08:57:02 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 08:57:02 +0200 (CEST) Subject: gunnar: server/kolab-webclient ChangeLog,1.10.2.3,1.10.2.3.2.1 Message-ID: <20090423065702.1BA74600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv26591 Modified Files: Tag: suc_branch ChangeLog Log Message: Changelog. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webclient/ChangeLog,v retrieving revision 1.10.2.3 retrieving revision 1.10.2.3.2.1 diff -u -d -r1.10.2.3 -r1.10.2.3.2.1 --- ChangeLog 2 Apr 2009 09:51:33 -0000 1.10.2.3 +++ ChangeLog 23 Apr 2009 06:57:00 -0000 1.10.2.3.2.1 @@ -1,3 +1,8 @@ +2009-04-23 Gunnar Wrobel

+ + * kolab-webclient.spec: Support for configurable mapping of LDAP + attributes. + 2009-04-02 Gunnar Wrobel

* kolab-webclient.spec: From cvs at kolab.org Thu Apr 23 08:57:26 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 08:57:26 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Server ChangeLog,1.4,1.4.4.1 Message-ID: <20090423065726.13996600827@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Server In directory doto:/tmp/cvs-serv26608 Modified Files: Tag: suc_branch ChangeLog Log Message: Changelog. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Server/ChangeLog,v retrieving revision 1.4 retrieving revision 1.4.4.1 diff -u -d -r1.4 -r1.4.4.1 --- ChangeLog 24 Feb 2009 11:57:46 -0000 1.4 +++ ChangeLog 23 Apr 2009 06:57:24 -0000 1.4.4.1 @@ -1,3 +1,8 @@ +2009-04-23 Gunnar Wrobel

+ + * Kolab_Server.spec: Support for configurable mapping of LDAP + attributes. + 2009-02-24 Gunnar Wrobel

* Kolab_Server.spec: Update to 0.4.0. From cvs at kolab.org Thu Apr 23 09:13:22 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 09:13:22 +0200 (CEST) Subject: gunnar: server/kolab-webclient webclient-kolab-conf.template, 1.2, 1.2.4.1 Message-ID: <20090423071322.BA9AC60081A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv27228 Modified Files: Tag: suc_branch webclient-kolab-conf.template Log Message: Demo configuration for attribute mapping. Index: webclient-kolab-conf.template =================================================================== RCS file: /kolabrepository/server/kolab-webclient/webclient-kolab-conf.template,v retrieving revision 1.2 retrieving revision 1.2.4.1 diff -u -d -r1.2 -r1.2.4.1 --- webclient-kolab-conf.template 7 Feb 2009 15:51:27 -0000 1.2 +++ webclient-kolab-conf.template 23 Apr 2009 07:13:20 -0000 1.2.4.1 @@ -12,6 +12,23 @@ $conf['kolab']['ldap']['basedn'] = '@@@base_dn@@@'; $conf['kolab']['ldap']['phpdn'] = '@@@php_dn@@@'; $conf['kolab']['ldap']['phppw'] = '@@@php_pw@@@'; +/** + * If you use customized LDAP attributes on your LDAP server the + * following configuration setting allows you to map the standard + * Kolab attribute names to your customizations. + * + * Specify the mapping line by line: + * + * $conf['kolab']['ldap']['map']['uid'] = 'uid2'; + * $conf['kolab']['ldap']['map']['mobile'] = 'handy'; + * + * or use a hash structure: + * + * $conf['kolab']['ldap']['map'] = array('uid' => 'uid2', + * 'mobile' => 'handy'); + * + */ +//$conf['kolab']['ldap']['map']['uid'] = 'uid2'; @@@if cyrus-imap@@@ $conf['kolab']['imap']['server'] = '@@@fqdnhostname@@@'; @@@else@@@ From cvs at kolab.org Thu Apr 23 09:16:04 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 09:16:04 +0200 (CEST) Subject: gunnar: server/kolabd/kolabd/templates resmgr.conf.template.in, 1.34, 1.34.4.1 Message-ID: <20090423071604.D6EE9600825@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv27344/templates Modified Files: Tag: suc_branch resmgr.conf.template.in Log Message: Demo configuration for attribute mapping. Index: resmgr.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/resmgr.conf.template.in,v retrieving revision 1.34 retrieving revision 1.34.4.1 diff -u -d -r1.34 -r1.34.4.1 --- resmgr.conf.template.in 10 Feb 2009 22:41:14 -0000 1.34 +++ resmgr.conf.template.in 23 Apr 2009 07:16:02 -0000 1.34.4.1 @@ -138,6 +138,24 @@ /* What password should we use with the above DN when binding? */ $conf['kolab']['ldap']['phppw'] = '@@@php_pw@@@'; +/** + * If you use customized LDAP attributes on your LDAP server the + * following configuration setting allows you to map the standard + * Kolab attribute names to your customizations. + * + * Specify the mapping line by line: + * + * $conf['kolab']['ldap']['map']['uid'] = 'uid2'; + * $conf['kolab']['ldap']['map']['mobile'] = 'handy'; + * + * or use a hash structure: + * + * $conf['kolab']['ldap']['map'] = array('uid' => 'uid2', + * 'mobile' => 'handy'); + * + */ +//$conf['kolab']['ldap']['map']['uid'] = 'uid2'; + /* What account should we use to read/write calendar data? This * account should have access to the calendar mailbox of all * resource/group mailboxes. From cvs at kolab.org Thu Apr 23 09:16:04 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 09:16:04 +0200 (CEST) Subject: gunnar: server/kolabd/kolabd ChangeLog,1.234.2.7,1.234.2.7.2.1 Message-ID: <20090423071604.D5664600824@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv27344 Modified Files: Tag: suc_branch ChangeLog Log Message: Demo configuration for attribute mapping. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.234.2.7 retrieving revision 1.234.2.7.2.1 diff -u -d -r1.234.2.7 -r1.234.2.7.2.1 --- ChangeLog 20 Apr 2009 16:22:37 -0000 1.234.2.7 +++ ChangeLog 23 Apr 2009 07:16:02 -0000 1.234.2.7.2.1 @@ -1,3 +1,8 @@ +2009-04-23 Gunnar Wrobel

+ + * templates/resmgr.conf.template.in: Configuration support for + LDAP attribute mapping. + 2009-04-20 Thomas Arendsen Hein * templates/slapd.conf.template.in: Make kolabAllowSMTPRecipient From cvs at kolab.org Thu Apr 23 09:22:25 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 09:22:25 +0200 (CEST) Subject: gunnar: server/kolabd/kolabd ChangeLog,1.234.2.7.2.1,1.234.2.7.2.2 Message-ID: <20090423072225.E7104600824@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv27575 Modified Files: Tag: suc_branch ChangeLog Log Message: Demo configuration for attribute mapping. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.234.2.7.2.1 retrieving revision 1.234.2.7.2.2 diff -u -d -r1.234.2.7.2.1 -r1.234.2.7.2.2 --- ChangeLog 23 Apr 2009 07:16:02 -0000 1.234.2.7.2.1 +++ ChangeLog 23 Apr 2009 07:22:23 -0000 1.234.2.7.2.2 @@ -1,5 +1,8 @@ 2009-04-23 Gunnar Wrobel

+ * templates/freebusy.conf.template.in: Configuration support for + LDAP attribute mapping. + * templates/resmgr.conf.template.in: Configuration support for LDAP attribute mapping. From cvs at kolab.org Thu Apr 23 09:22:25 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 09:22:25 +0200 (CEST) Subject: gunnar: server/kolabd/kolabd/templates freebusy.conf.template.in, 1.21, 1.21.4.1 Message-ID: <20090423072225.EB2B7600825@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv27575/templates Modified Files: Tag: suc_branch freebusy.conf.template.in Log Message: Demo configuration for attribute mapping. Index: freebusy.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/freebusy.conf.template.in,v retrieving revision 1.21 retrieving revision 1.21.4.1 diff -u -d -r1.21 -r1.21.4.1 --- freebusy.conf.template.in 10 Feb 2009 22:41:14 -0000 1.21 +++ freebusy.conf.template.in 23 Apr 2009 07:22:23 -0000 1.21.4.1 @@ -58,6 +58,24 @@ $conf['kolab']['ldap']['phpdn'] = '@@@php_dn@@@'; $conf['kolab']['ldap']['phppw'] = '@@@php_pw@@@'; +/** + * If you use customized LDAP attributes on your LDAP server the + * following configuration setting allows you to map the standard + * Kolab attribute names to your customizations. + * + * Specify the mapping line by line: + * + * $conf['kolab']['ldap']['map']['uid'] = 'uid2'; + * $conf['kolab']['ldap']['map']['mobile'] = 'handy'; + * + * or use a hash structure: + * + * $conf['kolab']['ldap']['map'] = array('uid' => 'uid2', + * 'mobile' => 'handy'); + * + */ +//$conf['kolab']['ldap']['map']['uid'] = 'uid2'; + /* Horde::Kolab::IMAP configuration */ $conf['kolab']['imap']['server'] = '@@@fqdnhostname@@@'; $conf['kolab']['imap']['port'] = 143; From cvs at kolab.org Thu Apr 23 11:15:36 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 11:15:36 +0200 (CEST) Subject: wilde: server/php-kolab/Kolab_Server Kolab_Server.spec, 1.9.4.1, 1.9.4.2 Message-ID: <20090423091536.38E9860081A@lists.intevation.de> Author: wilde Update of /kolabrepository/server/php-kolab/Kolab_Server In directory doto:/tmp/cvs-serv31384 Modified Files: Tag: suc_branch Kolab_Server.spec Log Message: Fixed release number and dependencies. Index: Kolab_Server.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Server/Kolab_Server.spec,v retrieving revision 1.9.4.1 retrieving revision 1.9.4.2 diff -u -d -r1.9.4.1 -r1.9.4.2 --- Kolab_Server.spec 23 Apr 2009 06:32:38 -0000 1.9.4.1 +++ Kolab_Server.spec 23 Apr 2009 09:15:34 -0000 1.9.4.2 @@ -1,7 +1,7 @@ # Variables %define V_package Kolab_Server %define V_version 0.4.0 -%define V_release 20090224 +%define V_release 20090423suc01 %define V_sourceurl http://pear.horde.org/get # Package Information @@ -32,7 +32,7 @@ PreReq: OpenPKG, openpkg >= 20070603 PreReq: php, php::with_pear = yes PreReq: Horde_LDAP -PreReq: Net_LDAP2 +PreReq: PEAR-Net_LDAP2 PreReq: PHPUnit %description From cvs at kolab.org Thu Apr 23 14:05:13 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 14:05:13 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0 horde-webmail-1.2.0_kolab_openpkg.patch, 1.32.2.4.2.4, 1.32.2.4.2.5 Message-ID: <20090423120513.087B2600818@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0 In directory doto:/tmp/cvs-serv3140 Modified Files: Tag: suc_branch horde-webmail-1.2.0_kolab_openpkg.patch Log Message: Renamed t_framework_HK_GW_Kolab__Server_AttributeMapping.diff to t_Kolab__Server_HK_GW_MappableAttributes.diff and added PEAR-Net_LDAP2 for the web client. Index: horde-webmail-1.2.0_kolab_openpkg.patch =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/horde-webmail-1.2.0_kolab_openpkg.patch,v retrieving revision 1.32.2.4.2.4 retrieving revision 1.32.2.4.2.5 diff -u -d -r1.32.2.4.2.4 -r1.32.2.4.2.5 --- horde-webmail-1.2.0_kolab_openpkg.patch 23 Apr 2009 06:55:48 -0000 1.32.2.4.2.4 +++ horde-webmail-1.2.0_kolab_openpkg.patch 23 Apr 2009 12:05:09 -0000 1.32.2.4.2.5 @@ -20000,8 +20000,6056 @@ LINK: https://www.intevation.de/roundup/kolab/issue3520 LINK: https://www.intevation.de/roundup/kolab/issue3525 LINK: https://www.intevation.de/roundup/kolab/issue3528 +From: Gunnar Wrobel

+Subject: [PATCH] t/pear/HK/GW/AddNetLDAP2 + +Adds the PEAR-Net_LDAP2 library. + +Signed-off-by: Gunnar Wrobel

+ +--- [...6134 lines suppressed...] +++ b/horde-webmail/lib/Horde/Kolab/Server/test.php @@ -247,6 +247,10 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { @@ -20791,6 +26839,17 @@ $ldap_data = array(); foreach ($data as $key => $val) { if (!is_array($val)) { +-- +tg: (0ad87da..) t/Kolab_Server/HK/GW/MappableAttributes (depends on: t/pear/HK/GW/AddNetLDAP2) +-- +TOPGIT patch commit log +======================= + +commit a2525f3bf8a77431e4cd28bd92e1cb9fec14e392 +Author: Gunnar Wrobel

+Date: Thu Apr 23 13:45:14 2009 +0200 + + Allow to configurable LDAP attribute mapping. diff -c a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php From cvs at kolab.org Thu Apr 23 14:05:12 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 14:05:12 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0/tg t_Kolab__Server_HK_GW_MappableAttributes.diff, NONE, 1.1.2.1 t_pear_HK_GW_AddNetLDAP2.diff, NONE, 1.1.2.1 series, 1.5.2.3.2.1, 1.5.2.3.2.2 t_framework_HK_GW_Kolab__Server_AttributeMapping.diff, 1.1.2.1, NONE Message-ID: <20090423120512.EB908600817@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0/tg In directory doto:/tmp/cvs-serv3140/tg Modified Files: Tag: suc_branch series Added Files: Tag: suc_branch t_Kolab__Server_HK_GW_MappableAttributes.diff t_pear_HK_GW_AddNetLDAP2.diff Removed Files: Tag: suc_branch t_framework_HK_GW_Kolab__Server_AttributeMapping.diff Log Message: Renamed t_framework_HK_GW_Kolab__Server_AttributeMapping.diff to t_Kolab__Server_HK_GW_MappableAttributes.diff and added PEAR-Net_LDAP2 for the web client. --- NEW FILE: t_Kolab__Server_HK_GW_MappableAttributes.diff --- From: Gunnar Wrobel

Subject: [PATCH] t/Kolab_Server/HK/GW/MappableAttributes Allow to configure mapped LDAP attributes. Signed-off-by: Gunnar Wrobel

--- horde-webmail/lib/Horde/Kolab/Server.php | 15 +- horde-webmail/lib/Horde/Kolab/Server/Object.php | 2 + .../lib/Horde/Kolab/Server/Object/address.php | 33 ++- .../lib/Horde/Kolab/Server/Object/adminrole.php | 35 ++- .../lib/Horde/Kolab/Server/Object/distlist.php | 30 ++- .../lib/Horde/Kolab/Server/Object/group.php | 23 ++- .../lib/Horde/Kolab/Server/Object/server.php | 21 ++- .../lib/Horde/Kolab/Server/Object/sharedfolder.php | 23 ++- .../lib/Horde/Kolab/Server/Object/user.php | 32 ++- horde-webmail/lib/Horde/Kolab/Server/ldap.php | 276 +++++++++++++++++++- horde-webmail/lib/Horde/Kolab/Server/test.php | 20 ++- 11 files changed, 442 insertions(+), 68 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Server.php b/horde-webmail/lib/Horde/Kolab/Server.php index bf251f5..fd0bda7 100644 --- a/horde-webmail/lib/Horde/Kolab/Server.php +++ b/horde-webmail/lib/Horde/Kolab/Server.php @@ -159,9 +159,12 @@ class Horde_Kolab_Server { $driver = 'ldap'; $server_params = array('server' => $conf['kolab']['ldap']['server'], - 'base_dn' => $conf['kolab']['ldap']['basedn'], - 'uid' => $conf['kolab']['ldap']['phpdn'], - 'pass' => $conf['kolab']['ldap']['phppw']); + 'base_dn' => $conf['kolab']['ldap']['basedn'], + 'uid' => $conf['kolab']['ldap']['phpdn'], + 'pass' => $conf['kolab']['ldap']['phppw']); + if (isset($conf['kolab']['ldap']['map'])) { + $server_params['map'] = $conf['kolab']['ldap']['map']; + } } else { $driver = null; $server_params = array(); @@ -473,7 +476,7 @@ class Horde_Kolab_Server { function uidForId($id, $restrict = KOLAB_SERVER_RESULT_SINGLE) { - return $this->uidForAttr('uid', $id); + return $this->uidForAttr(KOLAB_ATTR_SID, $id); } /** @@ -513,7 +516,7 @@ class Horde_Kolab_Server { */ function uidForIdOrMail($id) { - $uid = $this->uidForAttr('uid', $id); + $uid = $this->uidForAttr(KOLAB_ATTR_SID, $id); if (!$uid) { $uid = $this->uidForAttr('mail', $id); } @@ -562,7 +565,7 @@ class Horde_Kolab_Server { */ function uidForMailOrIdOrAlias($id) { - $uid = $this->uidForAttr('uid', $id); + $uid = $this->uidForAttr(KOLAB_ATTR_SID, $id); if (!$uid) { $uid = $this->uidForAttr('mail', $id); if (!$uid) { diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object.php b/horde-webmail/lib/Horde/Kolab/Server/Object.php index 2e5ada2..be9eca9 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object.php @@ -26,6 +26,7 @@ define('KOLAB_OBJECT_USER', 'Horde_Kolab_Server_Object_user'); define('KOLAB_OBJECT_SERVER', 'Horde_Kolab_Server_Object_server'); /** Define the possible Kolab object attributes */ +define('KOLAB_ATTR_OC', 'objectClass'); define('KOLAB_ATTR_UID', 'dn'); define('KOLAB_ATTR_ID', 'id'); define('KOLAB_ATTR_SN', 'sn'); @@ -35,6 +36,7 @@ define('KOLAB_ATTR_FN', 'fn'); define('KOLAB_ATTR_LNFN', 'lnfn'); define('KOLAB_ATTR_FNLN', 'fnln'); define('KOLAB_ATTR_MAIL', 'mail'); +define('KOLAB_ATTR_ALIAS', 'alias'); define('KOLAB_ATTR_SID', 'uid'); define('KOLAB_ATTR_ACL', 'acl'); define('KOLAB_ATTR_MEMBER', 'member'); diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/address.php b/horde-webmail/lib/Horde/Kolab/Server/Object/address.php index 98ed518..bd6128f 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/address.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/address.php @@ -33,13 +33,6 @@ class Horde_Kolab_Server_Object_address extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(&(objectclass=inetOrgPerson)(!(uid=*))(sn=*))'; - - /** * The attributes supported by this class * * @var array @@ -86,6 +79,32 @@ class Horde_Kolab_Server_Object_address extends Horde_Kolab_Server_Object { ); /** + * The LDAP filter to retrieve this object type + * + * @return string + */ + function getFilter() + { + $criteria = array('AND' => array( + array('field' => KOLAB_ATTR_SN, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_INETORGPERSON), + array('NOT' => array( + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => '*'), + ), + ), + ), + ); + return $criteria; + } + + + /** * Convert the object attributes to a hash. * * @param string $attrs The attributes to return. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/adminrole.php b/horde-webmail/lib/Horde/Kolab/Server/Object/adminrole.php index aea4410..b2571ff 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/adminrole.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/adminrole.php @@ -32,13 +32,6 @@ class Horde_Kolab_Server_Object_adminrole extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(&(cn=*)(objectClass=inetOrgPerson)(!(uid=manager))(sn=*))'; - - /** * The attributes supported by this class * * @var array @@ -87,6 +80,34 @@ class Horde_Kolab_Server_Object_adminrole extends Horde_Kolab_Server_Object { ); /** + * The LDAP filter to retrieve this object type + * + * @return string + */ + function getFilter() + { + $criteria = array('AND' => array( + array('field' => KOLAB_ATTR_CN, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_SN, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_INETORGPERSON), + array('NOT' => array( + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => 'manager'), + ), + ), + ), + ); + return $criteria; + } + + /** * Convert the object attributes to a hash. * * @param string $attrs The attributes to return. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/distlist.php b/horde-webmail/lib/Horde/Kolab/Server/Object/distlist.php index 7965e0d..22e096e 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/distlist.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/distlist.php @@ -34,14 +34,6 @@ require_once 'Horde/Kolab/Server/Object/group.php'; class Horde_Kolab_Server_Object_distlist extends Horde_Kolab_Server_Object_group { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(&(objectClass=kolabGroupOfNames)(mail=*))'; - - - /** * The attributes required when creating an object of this class. * * @var array @@ -49,4 +41,26 @@ class Horde_Kolab_Server_Object_distlist extends Horde_Kolab_Server_Object_group var $_required_attributes = array( KOLAB_ATTR_MAIL, ); + + /** + * Return the filter string to retrieve this object type. + * + * @static + * + * @return string The filter to retrieve this object type from the server + * database. + */ + public static function getFilter() + { + $criteria = array('AND' => array( + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABGROUPOFNAMES), + ), + ); + return $criteria; + } }; diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/group.php b/horde-webmail/lib/Horde/Kolab/Server/Object/group.php index 91c1bd2..f58c905 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/group.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/group.php @@ -32,13 +32,6 @@ class Horde_Kolab_Server_Object_group extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(objectClass=kolabGroupOfNames)'; - - /** * The attributes supported by this class * * @var array @@ -104,6 +97,22 @@ class Horde_Kolab_Server_Object_group extends Horde_Kolab_Server_Object { } /** + * Return the filter string to retrieve this object type. + * + * @return string The filter to retrieve this object type from the server + * database. + */ + public static function getFilter() + { + $criteria = array('AND' => array(array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABGROUPOFNAMES), + ), + ); + return $criteria; + } + + /** * Convert the object attributes to a hash. * * @param string $attrs The attributes to return. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/server.php b/horde-webmail/lib/Horde/Kolab/Server/Object/server.php index 965eb84..740417c 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/server.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/server.php @@ -32,11 +32,26 @@ class Horde_Kolab_Server_Object_server extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type + * Return the filter string to retrieve this object type. * - * @var string + * @static + * + * @return string The filter to retrieve this object type from the server + * database. */ - var $filter = '(&((k=kolab))(objectclass=kolab))'; + public static function getFilter() + { + $criteria = array('AND' => array( + array('field' => 'k', + 'op' => '=', + 'test' => 'kolab'), + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLAB), + ), + ); + return $criteria; + } /** * The attributes supported by this class diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/sharedfolder.php b/horde-webmail/lib/Horde/Kolab/Server/Object/sharedfolder.php index 3b68862..b92f07b 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/sharedfolder.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/sharedfolder.php @@ -33,13 +33,6 @@ class Horde_Kolab_Server_Object_sharedfolder extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(objectClass=kolabSharedFolder)'; - - /** * The attributes supported by this class * * @var array @@ -89,6 +82,22 @@ class Horde_Kolab_Server_Object_sharedfolder extends Horde_Kolab_Server_Object { } /** + * Return the filter string to retrieve this object type. + * + * @return string The filter to retrieve this object type from the server + * database. + */ + public static function getFilter() + { + $criteria = array('AND' => array(array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABSHAREDFOLDER), + ), + ); + return $criteria; + } + + /** * Convert the object attributes to a hash. * * @param string $attrs The attributes to return. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/user.php b/horde-webmail/lib/Horde/Kolab/Server/Object/user.php index d4e57a0..b702a4f 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/user.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/user.php @@ -33,13 +33,6 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(&(objectClass=kolabInetOrgPerson)(uid=*)(mail=*)(sn=*))'; - - /** * The attributes supported by this class * * @var array @@ -154,6 +147,31 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object { } /** + * The LDAP filter to retrieve this object type + * + * @return string + */ + function getFilter() + { + $criteria = array('AND' => array( + array('field' => KOLAB_ATTR_SN, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + ), + ); + return $criteria; + } + + /** * Convert the object attributes to a hash. * * @param string $attrs The attributes to return. diff --git a/horde-webmail/lib/Horde/Kolab/Server/ldap.php b/horde-webmail/lib/Horde/Kolab/Server/ldap.php index a50ba2c..2f39d47 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/ldap.php +++ b/horde-webmail/lib/Horde/Kolab/Server/ldap.php @@ -210,6 +210,7 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } if (isset($attrs)) { + $this->mapKeys($attrs); $result = @ldap_read($this->_connection, $dn, '(objectclass=*)', $attrs); } else { $result = @ldap_read($this->_connection, $dn, '(objectclass=*)'); @@ -230,6 +231,9 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { $dn, $this->_error())); } ldap_free_result($result); + + $this->unmapAttributes($object); + return $object; } @@ -250,6 +254,8 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } } + $this->mapAttributes($data); + return @ldap_add($this->_connection, $dn, $data); } @@ -681,9 +687,25 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { */ function mailForIdOrMail($id) { - $filter = '(&(objectClass=kolabInetOrgPerson)(|(uid='. - Horde_LDAP::quote($id) . ')(mail=' . - Horde_LDAP::quote($id) . ')))'; + $criteria = array('AND' => + array( + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + array('OR' => + array( + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => $id), + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => $id), + ), + ), + ), + ); + $filter = $this->searchQuery($criteria); + $result = $this->_attrsForFilter($filter, array('mail'), KOLAB_SERVER_RESULT_STRICT); if (is_a($result, 'PEAR_Error')) { @@ -702,9 +724,24 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { */ function uidForIdOrMail($id) { - $filter = '(&(objectClass=kolabInetOrgPerson)(|(uid='. - Horde_LDAP::quote($id) . ')(mail=' . - Horde_LDAP::quote($id) . ')))'; + $criteria = array('AND' => + array( + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + array('OR' => + array( + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => $id), + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => $id), + ), + ), + ), + ); + $filter = $this->searchQuery($criteria); return $this->_dnForFilter($filter, KOLAB_SERVER_RESULT_STRICT); } @@ -717,9 +754,25 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { */ function addrsForIdOrMail($id) { - $filter = '(&(objectClass=kolabInetOrgPerson)(|(mail=' - . Horde_LDAP::quote($id) . ')(uid=' - . Horde_LDAP::quote($id) . ')))'; + $criteria = array('AND' => + array( + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + array('OR' => + array( + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => $id), + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => $id), + ), + ), + ), + ); + $filter = $this->searchQuery($criteria); + $result = $this->_attrsForFilter($filter, array('mail', 'alias'), KOLAB_SERVER_RESULT_STRICT); if (empty($result)) { @@ -768,10 +821,27 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { */ function uidForMailAddress($mail) { - $filter = '(&(objectClass=kolabInetOrgPerson)(|(uid='. - Horde_LDAP::quote($mail) . ')(mail=' . - Horde_LDAP::quote($mail) . ')(alias=' . - Horde_LDAP::quote($mail) . ')))'; + $criteria = array('AND' => + array( + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + array('OR' => + array( + array('field' => KOLAB_ATTR_ALIAS, + 'op' => '=', + 'test' => $mail), + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => $mail), + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => $mail), + ), + ), + ), + ); + $filter = $this->searchQuery($criteria); return $this->_dnForFilter($filter); } @@ -874,7 +944,13 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { return $result; } $vars = get_class_vars($type); - $filter = $vars['filter']; + $methods = get_class_methods($type); + if (!in_array('getFilter', $methods)) { + $filter = $vars['filter']; + } else { + $criteria = call_user_func(array($type, 'getFilter')); + $filter = $this->searchQuery($criteria); + } $sort = $vars['sort_by']; if (isset($params['sort'])) { @@ -993,4 +1069,176 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } } + /** + * Build a search query. + * + * Taken from the Turba LDAP driver. + * + * @param array $criteria The array of criteria. + * + * @return string An LDAP query filter. + */ + public function searchQuery($criteria) + { + require_once 'Net/LDAP2.php'; + + /* Accept everything. */ + $filter = '(' . strtolower(KOLAB_ATTR_OC) . '=*)'; + + /* Build the LDAP filter. */ + if (count($criteria)) { + $f = $this->buildSearchQuery($criteria); + if (is_a($f, 'Net_LDAP2_Filter')) { + $filter = $f->asString(); + } + } + return $filter; + } + + /** + * Build a piece of a search query. + * + * Taken from the Turba LDAP driver. + * + * @param array $criteria The array of criteria. + * + * @return string An LDAP query fragment. + */ + protected function &buildSearchQuery($criteria) + { + if (isset($criteria['field'])) { + require_once 'Horde/String.php'; + require_once 'Horde/NLS.php'; + $rhs = $criteria['test']; + /* Keep this in for reference as we did not really test servers with different encoding yet */ + //$rhs = String::convertCharset($criteria['test'], NLS::getCharset(), $this->params['charset']); + switch ($criteria['op']) { + case '=': + $op = 'equals'; + break; + } + return Net_LDAP2_Filter::create($this->mapField($criteria['field']), + $op, $rhs); + } + foreach ($criteria as $key => $vals) { + if (!empty($vals['OR']) + || !empty($vals['AND']) + || !empty($vals['NOT'])) { + $parts = $this->buildSearchQuery($vals); + if (count($parts) > 1) { + if (!empty($vals['OR'])) { + $operator = '|'; + } else if (!empty($vals['NOT'])) { + $operator = '!'; + } else { + $operator = '&'; + } + return Net_LDAP2_Filter::combine($operator, $parts); + } else { + return $parts[0]; + } + } else { + $parts = array(); + foreach ($vals as $test) { + $parts[] = &$this->buildSearchQuery($test); + } + switch ($key) { + case 'OR': + $operator = '|'; + break; + case 'AND': + $operator = '&'; + break; + case 'NOT': + $operator = '!'; + break; + } + if (count($parts) > 1) { + return Net_LDAP2_Filter::combine($operator, $parts); + } else if ($operator == '!') { + return Net_LDAP2_Filter::combine($operator, $parts[0]); + } else { + return $parts[0]; + } + } + } + } + + /** + * Map attributes defined within this library their their real world + * counterparts. + * + * @param array $data The data that has been read and needs to be mapped. + * + * @return NULL + */ + protected function unmapAttributes(&$data) + { + if (!empty($this->_params['map'])) { + foreach ($this->_params['map'] as $attribute => $map) { + if (isset($data[$map])) { + $data[$attribute] = $data[$map]; + unset($data[$map]); + } + } + } + } + + /** + * Map attributes defined within this library into their real world + * counterparts. + * + * @param array $data The data to be written. + * + * @return NULL + */ + protected function mapAttributes(&$data) + { + if (!empty($this->_params['map'])) { + foreach ($this->_params['map'] as $attribute => $map) { + if (isset($data[$attribute])) { + $data[$map] = $data[$attribute]; + unset($data[$attribute]); + } + } + } + } + + /** + * Map attribute keys defined within this library into their real world + * counterparts. + * + * @param array $keys The attribute keys. + * + * @return NULL + */ + protected function mapKeys(&$keys) + { + if (!empty($this->_params['map'])) { + foreach ($this->_params['map'] as $attribute => $map) { + if (in_array($attribute, $keys)) { + $keys = array_diff($keys, array($attribute)); + $keys[] = $map; + } + } + } + } + + /** + * Map a single attribute key defined within this library into its real + * world counterpart. + * + * @param array $field The attribute name. + * + * @return The real name of this attribute on the server we connect to. + */ + protected function mapField($field) + { + if (!empty($this->_params['map']) + && isset($this->_params['map'][$field])) { + return $this->_params['map'][$field]; + } + return $field; + } + } diff --git a/horde-webmail/lib/Horde/Kolab/Server/test.php b/horde-webmail/lib/Horde/Kolab/Server/test.php index 47f985a..fc19c80 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/test.php +++ b/horde-webmail/lib/Horde/Kolab/Server/test.php @@ -247,6 +247,10 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { } } + if (!empty($attributes)) { + $this->mapKeys($attributes); + } + $filter = $this->_parse($filter); if (is_a($filter, 'PEAR_Error')) { return $filter; @@ -265,6 +269,8 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { $result = $subtree; } + $this->unmapAttributes($result); + return $result; } @@ -286,7 +292,8 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { switch ($filter['log']) { case '=': $value = $element['data'][$filter['att']]; - if (($filter['val'] == '*' && !empty($value)) + if ((($filter['val'] == '*' || $filter['val'] == '\2a') + && !empty($value)) || $value == $filter['val'] || (is_array($value) && in_array($filter['val'], $value))) { @@ -390,8 +397,12 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { $dn)); } if (empty($attrs)) { - return $GLOBALS['KOLAB_SERVER_TEST_DATA'][$dn]['data']; + $data = $GLOBALS['KOLAB_SERVER_TEST_DATA'][$dn]['data']; + $this->unmapAttributes($data); + return $data; } else { + $this->mapKeys($attrs); + $result = array(); $data = $GLOBALS['KOLAB_SERVER_TEST_DATA'][$dn]['data']; @@ -401,6 +412,9 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { array_push($result, $attr); } } + + $this->unmapAttributes($result); + $result['count'] = 1; return $result; } @@ -423,6 +437,8 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { } } + $this->mapAttributes($data); + $ldap_data = array(); foreach ($data as $key => $val) { if (!is_array($val)) { -- tg: (0ad87da..) t/Kolab_Server/HK/GW/MappableAttributes (depends on: t/pear/HK/GW/AddNetLDAP2) -- TOPGIT patch commit log ======================= commit a2525f3bf8a77431e4cd28bd92e1cb9fec14e392 Author: Gunnar Wrobel

Date: Thu Apr 23 13:45:14 2009 +0200 Allow to configurable LDAP attribute mapping. --- NEW FILE: t_pear_HK_GW_AddNetLDAP2.diff --- From: Gunnar Wrobel

Subject: [PATCH] t/pear/HK/GW/AddNetLDAP2 Adds the PEAR-Net_LDAP2 library. Signed-off-by: Gunnar Wrobel

--- horde-webmail/pear/Net/LDAP2.php | 1698 ++++++++++++++++++++++++++++++ horde-webmail/pear/Net/LDAP2/Entry.php | 1019 ++++++++++++++++++ horde-webmail/pear/Net/LDAP2/Filter.php | 447 ++++++++ horde-webmail/pear/Net/LDAP2/LDIF.php | 904 ++++++++++++++++ horde-webmail/pear/Net/LDAP2/RootDSE.php | 221 ++++ horde-webmail/pear/Net/LDAP2/Schema.php | 502 +++++++++ horde-webmail/pear/Net/LDAP2/Search.php | 596 +++++++++++ horde-webmail/pear/Net/LDAP2/Util.php | 557 ++++++++++ 8 files changed, 5944 insertions(+), 0 deletions(-) diff --git a/horde-webmail/pear/Net/LDAP2.php b/horde-webmail/pear/Net/LDAP2.php [...5988 lines suppressed...] + } + } + } + return array_values($dn); + } +} + +?> \ No newline at end of file -- tg: (031aea6..) t/pear/HK/GW/AddNetLDAP2 (depends on: t/dimp/H/GW/AclView) -- TOPGIT patch commit log ======================= commit 0ad87da8cf55073240d541edea74e6a60bbe3695 Author: Gunnar Wrobel

Date: Thu Apr 23 13:41:35 2009 +0200 Add PEAR-Net_LDAP2 Index: series =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/tg/series,v retrieving revision 1.5.2.3.2.1 retrieving revision 1.5.2.3.2.2 diff -u -d -r1.5.2.3.2.1 -r1.5.2.3.2.2 --- series 23 Apr 2009 06:55:48 -0000 1.5.2.3.2.1 +++ series 23 Apr 2009 12:05:10 -0000 1.5.2.3.2.2 @@ -68,4 +68,5 @@ t_imp_H_JS_bug7739.diff -p1 t_imp_H_MS_bug7438.diff -p1 t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff -p1 -t_framework_HK_GW_Kolab__Server_AttributeMapping.diff -p1 +t_pear_HK_GW_AddNetLDAP2.diff -p1 +t_Kolab__Server_HK_GW_MappableAttributes.diff -p1 --- t_framework_HK_GW_Kolab__Server_AttributeMapping.diff DELETED --- From cvs at kolab.org Thu Apr 23 14:13:43 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 14:13:43 +0200 (CEST) Subject: gunnar: server/kolab-webclient Makefile, 1.6, 1.6.4.1 kolab-webclient.spec, 1.23.2.6.2.4, 1.23.2.6.2.5 Message-ID: <20090423121343.B3615600817@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv3614 Modified Files: Tag: suc_branch Makefile kolab-webclient.spec Log Message: Bump release number for updated patch. Should be ready for testing. Index: Makefile =================================================================== RCS file: /kolabrepository/server/kolab-webclient/Makefile,v retrieving revision 1.6 retrieving revision 1.6.4.1 diff -u -d -r1.6 -r1.6.4.1 --- Makefile 5 Feb 2009 23:28:10 -0000 1.6 +++ Makefile 23 Apr 2009 12:13:41 -0000 1.6.4.1 @@ -26,7 +26,7 @@ VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9._a-z]*\).*/\1/") SOURCE_VERSION = $(shell grep "%define[ ]*V_source_version" *.spec | sed -e "s/.*V_source_version\s*\([0-9._a-z-]*\).*/\1/") PASSWD_VERSION = $(shell grep "%define[ ]*V_passwd_version" *.spec | sed -e "s/.*V_passwd_version\s*\([0-9._a-z]*\).*/\1/") -RELEASE = ${YEAR}${MONTH}${DAY} +RELEASE = ${YEAR}${MONTH}${DAY}suc05 PATCHES = ../patches/horde-webmail/$(VERSION)/horde-webmail-$(VERSION)_kolab_openpkg.patch TEMPLATES = $(shell find . -name "*.template") Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.23.2.6.2.4 retrieving revision 1.23.2.6.2.5 diff -u -d -r1.23.2.6.2.4 -r1.23.2.6.2.5 --- kolab-webclient.spec 23 Apr 2009 06:56:10 -0000 1.23.2.6.2.4 +++ kolab-webclient.spec 23 Apr 2009 12:13:41 -0000 1.23.2.6.2.5 @@ -8,7 +8,7 @@ %define V_source_version 1.2 %define V_passwd_version 3.0.1 %define V_date %{V_year}-%{V_month}-%{V_day} -%define V_release %{V_year}%{V_month}%{V_day}suc04 +%define V_release %{V_year}%{V_month}%{V_day}suc05 # Package Information Name: %{V_package} From cvs at kolab.org Thu Apr 23 22:17:18 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 22:17:18 +0200 (CEST) Subject: gunnar: server/patches/cyrus-imapd/cyrus-imapd-2.3.13 KOLAB_cyrus-imapd-2.3.13_Groups2.patch, 1.1, 1.2 Message-ID: <20090423201718.72891600819@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.13 In directory doto:/tmp/cvs-serv16898 Modified Files: KOLAB_cyrus-imapd-2.3.13_Groups2.patch Log Message: Merge from branch (kolab/issue2535 (group:distributionlist at example.com doesn't work for Cyrus IMAP ACLs), cvs diff -u -d -r1.1 -r1.1.2.1 KOLAB_cyrus-imapd-2.3.13_Groups2.patch | patch KOLAB_cyrus-imapd-2.3.13_Groups2.patch). Index: KOLAB_cyrus-imapd-2.3.13_Groups2.patch =================================================================== RCS file: /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.13/KOLAB_cyrus-imapd-2.3.13_Groups2.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- KOLAB_cyrus-imapd-2.3.13_Groups2.patch 27 Oct 2008 17:53:01 -0000 1.1 +++ KOLAB_cyrus-imapd-2.3.13_Groups2.patch 23 Apr 2009 20:17:16 -0000 1.2 @@ -1,6 +1,6 @@ diff -r 0d5aacd84718 lib/auth_unix.c --- a/lib/auth_unix.c Mon Oct 27 18:37:49 2008 +0100 -+++ b/lib/auth_unix.c Mon Oct 27 18:43:28 2008 +0100 ++++ b/lib/auth_unix.c Wed Apr 01 18:19:19 2009 +0200 @@ -46,12 +46,133 @@ #include #include @@ -17,7 +17,7 @@ +/* + * __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 @@ -119,7 +119,7 @@ + group.gr_mem = members; + return &group; +} -+ ++ +static char *line_buff = NULL; +static char **members = NULL; + @@ -148,7 +148,7 @@ + if (!groupfile) groupfile = fopen("/etc/group", "r"); + if (groupfile) { + while ((grp = fgetgrent(groupfile))) { -+ if (strcasecmp(grp->gr_name, name) == 0) { ++ if (strcmp(grp->gr_name, name) == 0) { + fclose(groupfile); + return grp; + } @@ -170,7 +170,13 @@ if (!grp) return NULL; if (strlen(grp->gr_name) >= sizeof(retbuf)-6) return NULL; -@@ -228,6 +368,7 @@ +@@ -223,11 +363,12 @@ + struct auth_state *newstate; + struct passwd *pwd; + struct group *grp; +-#if defined(HAVE_GETGROUPLIST) && defined(__GLIBC__) ++#if 0 && defined(HAVE_GETGROUPLIST) && defined(__GLIBC__) + gid_t gid, *groupids = NULL; int ret, ngroups = 10; #else char **mem; @@ -178,6 +184,15 @@ #endif identifier = mycanonifyid(identifier, 0); +@@ -245,7 +386,7 @@ + + pwd = getpwnam(identifier); + +-#if defined(HAVE_GETGROUPLIST) && defined(__GLIBC__) ++#if 0 && defined(HAVE_GETGROUPLIST) && defined(__GLIBC__) + gid = pwd ? pwd->pw_gid : (gid_t) -1; + + /* get the group ids */ @@ -283,20 +424,23 @@ if (groupids) free(groupids); @@ -192,7 +207,7 @@ + if (groupfile) { + while ((grp = fgetgrent(groupfile))) { + for (mem = grp->gr_mem; *mem; mem++) { -+ if (!strcasecmp(*mem, identifier)) break; ++ if (!strcmp(*mem, identifier)) break; + } - if (*mem || (pwd && pwd->pw_gid == grp->gr_gid)) { From cvs at kolab.org Thu Apr 23 22:18:51 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 22:18:51 +0200 (CEST) Subject: gunnar: server/imapd kolab.patch,1.39,1.40 Message-ID: <20090423201851.1534A60081A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/imapd In directory doto:/tmp/cvs-serv17014 Modified Files: kolab.patch Log Message: Merge from branch (kolab/issue2535 (group:distributionlist at example.com doesn't work for Cyrus IMAP ACLs), cvs diff -u -d -r1.39 -r1.39.2.1 kolab.patch | patch kolab.patch). Index: kolab.patch =================================================================== RCS file: /kolabrepository/server/imapd/kolab.patch,v retrieving revision 1.39 retrieving revision 1.40 diff -u -d -r1.39 -r1.40 --- kolab.patch 25 Jan 2009 22:11:11 -0000 1.39 +++ kolab.patch 23 Apr 2009 20:18:49 -0000 1.40 @@ -5,7 +5,7 @@ License: BSD Version: 2.3.13 -Release: 20081020 -+Release: 20081020_kolab1 ++Release: 20081020_kolab2 # package options %option with_fsl yes From cvs at kolab.org Thu Apr 23 22:22:02 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 22:22:02 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.433,1.434 Message-ID: <20090423202202.D1258600819@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv17176 Modified Files: release-notes.txt Log Message: Merge from branch (kolab/issue2535 (group:distributionlist at example.com doesn't work for Cyrus IMAP ACLs), removed TODOs). Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.433 retrieving revision 1.434 diff -u -d -r1.433 -r1.434 --- release-notes.txt 20 Apr 2009 16:25:47 -0000 1.433 +++ release-notes.txt 23 Apr 2009 20:22:00 -0000 1.434 @@ -114,10 +114,9 @@ kolab/issue3513 (Clamav - new upstream version 0.95) -TODO: - imapd-2.3.13-20081020_kolab2 -TODO: kolab/issue2535 (group:distributionlist at example.com doesn't work + kolab/issue2535 (group:distributionlist at example.com doesn't work for Cyrus IMAP ACLs) - install-kolab.sh From cvs at kolab.org Thu Apr 23 23:27:04 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:27:04 +0200 (CEST) Subject: gunnar: server/imapd/patches - New directory Message-ID: <20090423212704.2864E600819@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/imapd/patches In directory doto:/tmp/cvs-serv19128/patches Log Message: Directory /kolabrepository/server/imapd/patches added to the repository From cvs at kolab.org Thu Apr 23 23:29:45 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:29:45 +0200 (CEST) Subject: gunnar: server/imapd/patches/cyrus-imapd-2.3.12 - New directory Message-ID: <20090423212945.C6A34600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/imapd/patches/cyrus-imapd-2.3.12 In directory doto:/tmp/cvs-serv19220/cyrus-imapd-2.3.12 Log Message: Directory /kolabrepository/server/imapd/patches/cyrus-imapd-2.3.12 added to the repository From cvs at kolab.org Thu Apr 23 23:29:45 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:29:45 +0200 (CEST) Subject: gunnar: server/imapd/patches/cyrus-imapd-2.3.10 - New directory Message-ID: <20090423212945.BFD97600825@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/imapd/patches/cyrus-imapd-2.3.10 In directory doto:/tmp/cvs-serv19220/cyrus-imapd-2.3.10 Log Message: Directory /kolabrepository/server/imapd/patches/cyrus-imapd-2.3.10 added to the repository From cvs at kolab.org Thu Apr 23 23:29:45 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:29:45 +0200 (CEST) Subject: gunnar: server/imapd/patches/cyrus-imapd-2.3.13 - New directory Message-ID: <20090423212945.C994F600827@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/imapd/patches/cyrus-imapd-2.3.13 In directory doto:/tmp/cvs-serv19220/cyrus-imapd-2.3.13 Log Message: Directory /kolabrepository/server/imapd/patches/cyrus-imapd-2.3.13 added to the repository From cvs at kolab.org Thu Apr 23 23:29:45 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:29:45 +0200 (CEST) Subject: gunnar: server/imapd/patches/cyrus-imapd-2.3.9 - New directory Message-ID: <20090423212945.CF00E60082E@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/imapd/patches/cyrus-imapd-2.3.9 In directory doto:/tmp/cvs-serv19220/cyrus-imapd-2.3.9 Log Message: Directory /kolabrepository/server/imapd/patches/cyrus-imapd-2.3.9 added to the repository From cvs at kolab.org Thu Apr 23 23:29:45 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:29:45 +0200 (CEST) Subject: gunnar: server/imapd/patches/cyrus-imapd-2.3.14 - New directory Message-ID: <20090423212945.CC5DA600829@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/imapd/patches/cyrus-imapd-2.3.14 In directory doto:/tmp/cvs-serv19220/cyrus-imapd-2.3.14 Log Message: Directory /kolabrepository/server/imapd/patches/cyrus-imapd-2.3.14 added to the repository From cvs at kolab.org Thu Apr 23 23:29:45 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:29:45 +0200 (CEST) Subject: gunnar: server/imapd/patches/cyrus-imapd-2.3.11 - New directory Message-ID: <20090423212945.D15E3600830@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/imapd/patches/cyrus-imapd-2.3.11 In directory doto:/tmp/cvs-serv19220/cyrus-imapd-2.3.11 Log Message: Directory /kolabrepository/server/imapd/patches/cyrus-imapd-2.3.11 added to the repository From cvs at kolab.org Thu Apr 23 23:33:11 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:33:11 +0200 (CEST) Subject: gunnar: server/imapd/patches Makefile, NONE, 1.1 README, NONE, 1.1 README_Annotations.patch, NONE, 1.1 README_Annotations2.patch, NONE, 1.1 README_Folder-names.patch, NONE, 1.1 README_Groups.patch, NONE, 1.1 README_Logging.patch, NONE, 1.1 README_UID.patch, NONE, 1.1 hgrc, NONE, 1.1 Message-ID: <20090423213311.096E6600817@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/imapd/patches In directory doto:/tmp/cvs-serv19408 Added Files: Makefile README README_Annotations.patch README_Annotations2.patch README_Folder-names.patch README_Groups.patch README_Logging.patch README_UID.patch hgrc Log Message: Move the cyrus patches over here. In addition a Makefile has been added to facilitate the patch series update between versions. This Makefile is dependant on mercurial. It will automatically fetch an old version, check the patch series, fetch the new version, pull in changes and reapply the patch series (make update). After fixing any errors that may occur on pushing the series the patches can be exported into their respective patch directory by running make patches. --- NEW FILE: Makefile --- # This is a very rough draft for updating a patch series using # mercurial queues. The Makefile could see some optimizations but for # the occasional upstream update it hopefully does fine. # # Author: G. Wrobel OLD_VERSION=2.3.13 NEW_VERSION=2.3.14 PN=cyrus-imapd SOURCE_URL=ftp://ftp.andrew.cmu.edu/pub/cyrus/ .PHONY: update update: @if [ -d $(PN)-$(NEW_VERSION) ]; then echo "Patches for the new version do already exist!" && exit 1; fi rm -rf tmp mkdir -p tmp cd tmp && wget $(SOURCE_URL)/$(PN)-$(OLD_VERSION).tar.gz cd tmp && tar xfz $(PN)-$(OLD_VERSION).tar.gz cd tmp/$(PN)-$(OLD_VERSION) && hg init && hg commit --addremove -m "$(PN)-$(OLD_VERSION)" cd tmp && hg clone $(PN)-$(OLD_VERSION) $(PN)-PATCHED cp hgrc tmp/$(PN)-PATCHED/.hg/ cd tmp/$(PN)-PATCHED && hg qinit cp $(PN)-$(OLD_VERSION)/series tmp/$(PN)-PATCHED/.hg/patches/ cd $(PN)-$(OLD_VERSION); \ for FL in KOLAB*; do \ cp $$FL ../tmp/$(PN)-PATCHED/.hg/patches/$${FL/$(PN)-$(OLD_VERSION)_/}; \ done cp $(PN)-$(OLD_VERSION)/series tmp/$(PN)-PATCHED/.hg/patches/ cd tmp/$(PN)-PATCHED && hg qpush -a && hg qpop -a cd tmp && hg clone $(PN)-$(OLD_VERSION) $(PN)-$(NEW_VERSION) cd tmp/$(PN)-$(NEW_VERSION) && hg locate -0 | xargs -0 rm cd tmp && wget $(SOURCE_URL)/$(PN)-$(NEW_VERSION).tar.gz cd tmp && tar xfz $(PN)-$(NEW_VERSION).tar.gz cd tmp/$(PN)-$(NEW_VERSION) && hg commit --addremove -m "$(PN)-$(NEW_VERSION)" cd tmp/$(PN)-PATCHED && hg pull ../$(PN)-$(NEW_VERSION) && hg update @echo @echo @echo "The patch series will be pushed now. If errors occur you will need to fix them" @echo "run \"hg qrefresh\" and continue with \"hg qpush\" until the full series applied" @echo "successfully. Finally you may move back to the current directory and run \"make patches\"" @echo @echo cd tmp/$(PN)-PATCHED && hg qpush -a .PHONY: patches patches: @if [ -d $(PN)-$(NEW_VERSION) ]; then echo "Patches for the new version do already exist!" && exit 1; fi mkdir $(PN)-$(NEW_VERSION) cd tmp/$(PN)-PATCHED/.hg/patches; \ for FL in KOLAB*; do \ cp $$FL ../../../../$(PN)-$(NEW_VERSION)/$${FL/KOLAB_/KOLAB_$(PN)-$(NEW_VERSION)_}; \ done cp tmp/$(PN)-PATCHED/.hg/patches/series $(PN)-$(NEW_VERSION)/ rm -rf tmp --- NEW FILE: README --- If you patch cyrus-imapd with these patches for Kolab you will need to ensure in addition that you remove two files from the sources: rm -f lib/imapopts.h lib/imapopts.c Both will get rebuild automatically during the build process. If you don't rebuild them during build time they will be outdated. --- NEW FILE: README_Annotations.patch --- DESCRIPTION: Adds annotation support to the cyradm tool. IMPACT: Without this you will not be able to get/set custom annotations. REFERENCES: Wiki page: http://wiki.kolab.org/index.php/Template:Patches_cyrus Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/kolab/patches/cyrus-imapd/summary HISTORY I currently don't know if this has been submitted alongside with the main annotation patch. --- NEW FILE: README_Annotations2.patch --- DESCRIPTION: There is an imap extension for adding "annotations" (eg. metadata) to imap folders in the form of key/value pairs. The key is typically something like /vendor//. Cyrus imapd only supports a few special annotation keys for internal use (such as being able to mark a folder for indexing etc.). The patch extends cyrus imapd to allow arbitrary annotations on IMAP folders. IMPACT: The annotation patch is critical to kolab. Without the patch, the clients will not know which folder is for calender, tasks etc. REFERENCES: Kolab bug tracker merge: https://intevation.de/roundup/kolab/merge4 Wiki page: http://wiki.kolab.org/index.php/Template:Patches_cyrus Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/kolab/patches/cyrus-imapd/summary HISTORY The patch has been submitted upstream and the original version was rejected. https://bugzilla.andrew.cmu.edu/show_bug.cgi?id=2458 A new version of the patch has been provided recently by Thomas Viemann (http://vman.de/cyrus/). It looked as though upstream would accept the patch but so far nothing has happened. Another status inquiry on 2007-05-21. --- NEW FILE: README_Folder-names.patch --- DESCRIPTION: Specifies the allowed characters in IMAP folder names. IMPACT: Without this patch some folder names will not work. REFERENCES: Kolab bug tracker merge: https://intevation.de/roundup/kolab/merge34 Wiki page: http://wiki.kolab.org/index.php/Template:Patches_cyrus Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/kolab/patches/cyrus-imapd/summary HISTORY This patch hardwires the acceptable characters for folder names. This is something that will probably not be accepted upstream and the patch was never submitted. It would be good if this would be rewritten to make the acceptable characters a configuration option. --- NEW FILE: README_Groups.patch --- DESCRIPTION: Plain cyrus imapd reads groups from /etc/group, and OpenPKG includes a patch that allows us to use a private file (for example /kolab/etc/imapd/groupfile) for this instead of the system one. Groups in cyrus can be used in ACLs. To cater for MS windows users who are not used to "case matters", the kolab developers patched the openpkg patch to use case-insignificant string comparison when looking up groups. IMPACT: Groups won't work for the Kolab server if this patch is missing. REFERENCES: Kolab bug tracker merge: https://intevation.de/roundup/kolab/merge6 Wiki page: http://wiki.kolab.org/index.php/Template:Patches_cyrus Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/kolab/patches/cyrus-imapd/summary HISTORY The patch has been submitted upstream but upstream never reacted. Another status inquiry on 2007-05-21. https://bugzilla.andrew.cmu.edu/show_bug.cgi?id=2632 --- NEW FILE: README_Logging.patch --- DESCRIPTION: Logs IMAP expunge events. IMPACT: Not absolutely required for the Kolab server. Just adds some more information to your logs. REFERENCES: Kolab bug tracker merge: https://intevation.de/roundup/kolab/merge13 Wiki page: http://wiki.kolab.org/index.php/Template:Patches_cyrus Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/kolab/patches/cyrus-imapd/summary HISTORY The patch has been submitted upstream on 2007-05-21. https://bugzilla.andrew.cmu.edu/show_bug.cgi?id=2964 --- NEW FILE: README_UID.patch --- DESCRIPTION: Allows to use the uid instead of the mail address for logging into the cyrus imap server. IMPACT: Without this patch users will be unable to use the UID for logging in. REFERENCES: Kolab bug tracker merge: https://intevation.de/roundup/kolab/merge5 Wiki page: http://wiki.kolab.org/index.php/Template:Patches_cyrus Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/kolab/patches/cyrus-imapd/summary HISTORY This has been specifically written for Kolab and is not compatible with upstream. It needs to be rewritten to a general LDAP filter support if it should be integrated upstream. --- NEW FILE: hgrc --- [extensions] hgext.mq = From cvs at kolab.org Thu Apr 23 23:33:11 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:33:11 +0200 (CEST) Subject: gunnar: server/imapd/patches/cyrus-imapd-2.3.13 KOLAB_cyrus-imapd-2.3.13_Annotations2.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.13_Cyradm_Annotations.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.13_Folder-names.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.13_Groups2.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.13_Logging.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.13_UID.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.13_timsieved_starttls-sendcaps.patch, NONE, 1.1 series, NONE, 1.1 Message-ID: <20090423213311.1D3DC600827@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/imapd/patches/cyrus-imapd-2.3.13 In directory doto:/tmp/cvs-serv19408/cyrus-imapd-2.3.13 Added Files: KOLAB_cyrus-imapd-2.3.13_Annotations2.patch KOLAB_cyrus-imapd-2.3.13_Cyradm_Annotations.patch KOLAB_cyrus-imapd-2.3.13_Folder-names.patch KOLAB_cyrus-imapd-2.3.13_Groups2.patch KOLAB_cyrus-imapd-2.3.13_Logging.patch KOLAB_cyrus-imapd-2.3.13_UID.patch KOLAB_cyrus-imapd-2.3.13_timsieved_starttls-sendcaps.patch series Log Message: Move the cyrus patches over here. In addition a Makefile has been added to facilitate the patch series update between versions. This Makefile is dependant on mercurial. It will automatically fetch an old version, check the patch series, fetch the new version, pull in changes and reapply the patch series (make update). After fixing any errors that may occur on pushing the series the patches can be exported into their respective patch directory by running make patches. --- NEW FILE: KOLAB_cyrus-imapd-2.3.13_Annotations2.patch --- Provides a new version of annotation support for the cyrus imapd server [Version: 2.3.9] diff -r 321cda1d6136 imap/annotate.c --- a/imap/annotate.c Tue Apr 22 10:44:56 2008 +0200 +++ b/imap/annotate.c Tue Apr 22 10:47:04 2008 +0200 @@ -90,6 +90,8 @@ int (*proxy_fetch_func)(const char *serv struct strlist *attribute_pat) = NULL; int (*proxy_store_func)(const char *server, const char *mbox_pat, struct entryattlist *entryatts) = NULL; + +void init_annotation_definitions(); /* String List Management */ /* @@ -237,6 +239,8 @@ void annotatemore_init(int myflags, if (store_func) { proxy_store_func = store_func; } + + init_annotation_definitions(); } void annotatemore_open(char *fname) @@ -1832,6 +1836,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, @@ -1843,7 +2065,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)); @@ -1854,45 +2076,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; @@ -1902,7 +2124,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; @@ -1928,7 +2150,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; @@ -2110,3 +2332,10 @@ int annotatemore_delete(const char *mbox return annotatemore_rename(mboxname, NULL, NULL, NULL); } + +/* 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 . + */ diff -r 321cda1d6136 lib/imapoptions --- a/lib/imapoptions Tue Apr 22 10:44:56 2008 +0200 +++ b/lib/imapoptions Tue Apr 22 10:47:04 2008 +0200 @@ -172,6 +172,9 @@ are listed with ``''. /* Should non-admin users be allowed to set ACLs for the 'anyone' 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.13_Cyradm_Annotations.patch --- Allows to use arbitrary annotations with the cyradm tool. diff -r 639190be2385 doc/man/cyradm.1.html --- a/doc/man/cyradm.1.html Mon Oct 27 18:48:18 2008 +0100 +++ b/doc/man/cyradm.1.html Mon Oct 27 18:48:25 2008 +0100 @@ -245,6 +245,13 @@

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 639190be2385 perl/imap/IMAP/Admin.pm --- a/perl/imap/IMAP/Admin.pm Mon Oct 27 18:48:18 2008 +0100 +++ b/perl/imap/IMAP/Admin.pm Mon Oct 27 18:48:26 2008 +0100 @@ -797,11 +797,11 @@ return undef; } - if(!exists($values{$entry})) { - $self->{error} = "Unknown parameter $entry"; + if(exists($values{$entry})) { + $entry = $values{$entry}; + } else { + $self->{error} = "Unknown parameter $entry" unless substr($entry,0,1) eq "/"; } - - $entry = $values{$entry}; my ($rc, $msg); diff -r 639190be2385 perl/imap/IMAP/Shell.pm --- a/perl/imap/IMAP/Shell.pm Mon Oct 27 18:48:18 2008 +0100 +++ b/perl/imap/IMAP/Shell.pm Mon Oct 27 18:48:26 2008 +0100 @@ -127,7 +127,7 @@ [\&_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 => @@ -1437,7 +1437,7 @@ 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); @@ -1446,7 +1446,7 @@ } 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 639190be2385 perl/imap/cyradm.sh --- a/perl/imap/cyradm.sh Mon Oct 27 18:48:18 2008 +0100 +++ b/perl/imap/cyradm.sh Mon Oct 27 18:48:26 2008 +0100 @@ -241,6 +241,10 @@ 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.13_Folder-names.patch --- Modifies the set of accepted characters in folder names for the cyrus imapd server [Version: 2.3.9] diff -r 17e54b46d7b6 imap/mboxname.c --- a/imap/mboxname.c Mon Oct 27 18:44:56 2008 +0100 +++ b/imap/mboxname.c Mon Oct 27 18:47:11 2008 +0100 @@ -713,8 +713,10 @@ /* * Apply site policy restrictions on mailbox names. * Restrictions are hardwired for now. + * original definition +#define GOODCHARS " #$'+,-.0123456789:=@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~" */ -#define GOODCHARS " #$'+,-.0123456789:=@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~" +#define GOODCHARS " #$%'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~" int mboxname_policycheck(char *name) { unsigned i; --- NEW FILE: KOLAB_cyrus-imapd-2.3.13_Groups2.patch --- diff -r 0d5aacd84718 lib/auth_unix.c --- a/lib/auth_unix.c Mon Oct 27 18:37:49 2008 +0100 +++ b/lib/auth_unix.c Wed Apr 01 18:19:19 2009 +0200 @@ -46,12 +46,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]; @@ -140,6 +261,25 @@ 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 (strcmp(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 @@ -175,7 +315,7 @@ */ if (!strncmp(retbuf, "group:", 6)) { - grp = getgrnam(retbuf+6); + grp = fgetgrnam(retbuf+6); if (!grp) return NULL; if (strlen(grp->gr_name) >= sizeof(retbuf)-6) return NULL; @@ -223,11 +363,12 @@ struct auth_state *newstate; struct passwd *pwd; struct group *grp; -#if defined(HAVE_GETGROUPLIST) && defined(__GLIBC__) +#if 0 && defined(HAVE_GETGROUPLIST) && defined(__GLIBC__) gid_t gid, *groupids = NULL; int ret, ngroups = 10; #else char **mem; + FILE *groupfile; #endif identifier = mycanonifyid(identifier, 0); @@ -245,7 +386,7 @@ pwd = getpwnam(identifier); -#if defined(HAVE_GETGROUPLIST) && defined(__GLIBC__) +#if 0 && defined(HAVE_GETGROUPLIST) && defined(__GLIBC__) gid = pwd ? pwd->pw_gid : (gid_t) -1; /* get the group ids */ @@ -283,20 +424,23 @@ if (groupids) free(groupids); #else /* !HAVE_GETGROUPLIST */ - setgrent(); - while ((grp = getgrent())) { - for (mem = grp->gr_mem; *mem; mem++) { - if (!strcmp(*mem, identifier)) break; - } + 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 (!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(); + 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.13_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.13_UID.patch --- Allows login by uid rather than the mail address on the cyrus imapd server [Version: 2.3.9] diff -r 2ebe14b7db9d configure --- a/configure Mon Oct 27 18:47:12 2008 +0100 +++ b/configure Mon Oct 27 18:48:18 2008 +0100 @@ -19667,7 +19667,7 @@ done IMAP_COM_ERR_LIBS="${COM_ERR_LIBS}" -IMAP_LIBS="${LIB_SASL} ${LIBS} ${SQL_LIBS}" +IMAP_LIBS="${LIB_SASL} -lldap -llber ${LIBS} ${SQL_LIBS}" diff -r 2ebe14b7db9d imap/global.c --- a/imap/global.c Mon Oct 27 18:47:12 2008 +0100 +++ b/imap/global.c Mon Oct 27 18:48:18 2008 +0100 @@ -52,6 +52,9 @@ #include #include #include + +#include +#include #if HAVE_UNISTD_H # include @@ -378,6 +381,18 @@ 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; + struct berval** vals; + + int rc; /* check for domain */ if (config_virtdomains && @@ -396,6 +411,49 @@ } 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_len(handle, entry, "mail")) ) { + if (memchr(vals[0]->bv_val, '@', vals[0]->bv_len)) { + static char buf[81]; /* same size as in auth_canonifyid */ + int len = ((sizeof(buf) - 1) > vals[0]->bv_len ? vals[0]->bv_len : sizeof(buf) - 1); + strncpy( buf, vals[0]->bv_val, len); + buf[len] = '\0'; /* make sure it's null-terminated */ + ldap_value_free_len( vals ); + ldap_msgfree( res ); + ldap_unbind_s(handle); /* also frees handle */ + syslog(LOG_DEBUG, "canonify: '%s'\n", buf); + return auth_canonifyid( buf, 0) ; + } + ldap_value_free_len( 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 */ @@ -408,7 +466,7 @@ 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 2ebe14b7db9d lib/imapoptions --- a/lib/imapoptions Mon Oct 27 18:47:12 2008 +0100 +++ b/lib/imapoptions Mon Oct 27 18:48:18 2008 +0100 @@ -1114,7 +1114,7 @@ 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 --- NEW FILE: KOLAB_cyrus-imapd-2.3.13_timsieved_starttls-sendcaps.patch --- This patch was downloaded from https://bugzilla.andrew.cmu.edu/cgi-bin/cvsweb.cgi/src/cyrus/timsieved/parser.c.diff?r1=1.44;r2=1.45 (minus the CVS keywords) It should be reverse-applied with patch -p2 -R to work around the kontact behaviour described in kolab/issue2443 (kontact aborts sieve when imapd sends capabilities after starttls) and can be dropped as soon as kontact has a way to work with old and new cyrus imapd servers. --- a/timsieved/parser.c 2007/11/26 20:23:06 1.44 +++ b/timsieved/parser.c 2007/12/10 14:47:08 1.45 @@ -861,7 +861,7 @@ static int cmd_starttls(struct protstrea starttls_done = 1; - return capabilities(sieved_out, sieved_saslconn, starttls_done, authenticated); + return result; } #else static int cmd_starttls(struct protstream *sieved_out, struct protstream *sieved_in) --- NEW FILE: series --- KOLAB_Groups2.patch KOLAB_Annotations2.patch KOLAB_Logging.patch KOLAB_Folder-names.patch KOLAB_UID.patch KOLAB_Cyradm_Annotations.patch KOLAB_timsieved_starttls-sendcaps.patch From cvs at kolab.org Thu Apr 23 23:33:11 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:33:11 +0200 (CEST) Subject: gunnar: server/imapd/patches/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: <20090423213311.0FE0B600819@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/imapd/patches/cyrus-imapd-2.3.10 In directory doto:/tmp/cvs-serv19408/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: Move the cyrus patches over here. In addition a Makefile has been added to facilitate the patch series update between versions. This Makefile is dependant on mercurial. It will automatically fetch an old version, check the patch series, fetch the new version, pull in changes and reapply the patch series (make update). After fixing any errors that may occur on pushing the series the patches can be exported into their respective patch directory by running make patches. --- NEW FILE: 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 2009/04/23 21:33:09 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 Thu Apr 23 23:33:11 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:33:11 +0200 (CEST) Subject: gunnar: server/imapd/patches/cyrus-imapd-2.3.12 KOLAB_cyrus-cyradm-2.3.12_Annotations.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.12_Annotations2.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.12_Folder-names.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.12_Groups.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.12_Logging.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.12_UID.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.12_timsieved_starttls-sendcaps.patch, NONE, 1.1 Message-ID: <20090423213311.18FCE600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/imapd/patches/cyrus-imapd-2.3.12 In directory doto:/tmp/cvs-serv19408/cyrus-imapd-2.3.12 Added Files: KOLAB_cyrus-cyradm-2.3.12_Annotations.patch KOLAB_cyrus-imapd-2.3.12_Annotations2.patch KOLAB_cyrus-imapd-2.3.12_Folder-names.patch KOLAB_cyrus-imapd-2.3.12_Groups.patch KOLAB_cyrus-imapd-2.3.12_Logging.patch KOLAB_cyrus-imapd-2.3.12_UID.patch KOLAB_cyrus-imapd-2.3.12_timsieved_starttls-sendcaps.patch Log Message: Move the cyrus patches over here. In addition a Makefile has been added to facilitate the patch series update between versions. This Makefile is dependant on mercurial. It will automatically fetch an old version, check the patch series, fetch the new version, pull in changes and reapply the patch series (make update). After fixing any errors that may occur on pushing the series the patches can be exported into their respective patch directory by running make patches. --- NEW FILE: KOLAB_cyrus-cyradm-2.3.12_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.12_Annotations2.patch --- Provides a new version of annotation support for the cyrus imapd server [Version: 2.3.9] diff -r 321cda1d6136 imap/annotate.c --- a/imap/annotate.c Tue Apr 22 10:44:56 2008 +0200 +++ b/imap/annotate.c Tue Apr 22 10:47:04 2008 +0200 @@ -90,6 +90,8 @@ int (*proxy_fetch_func)(const char *serv struct strlist *attribute_pat) = NULL; int (*proxy_store_func)(const char *server, const char *mbox_pat, struct entryattlist *entryatts) = NULL; + +void init_annotation_definitions(); /* String List Management */ /* @@ -237,6 +239,8 @@ void annotatemore_init(int myflags, if (store_func) { proxy_store_func = store_func; } + + init_annotation_definitions(); } void annotatemore_open(char *fname) @@ -1832,6 +1836,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, @@ -1843,7 +2065,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)); @@ -1854,45 +2076,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; @@ -1902,7 +2124,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; @@ -1928,7 +2150,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; @@ -2110,3 +2332,10 @@ int annotatemore_delete(const char *mbox return annotatemore_rename(mboxname, NULL, NULL, NULL); } + +/* 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 . + */ diff -r 321cda1d6136 lib/imapoptions --- a/lib/imapoptions Tue Apr 22 10:44:56 2008 +0200 +++ b/lib/imapoptions Tue Apr 22 10:47:04 2008 +0200 @@ -172,6 +172,9 @@ are listed with ``''. /* Should non-admin users be allowed to set ACLs for the 'anyone' 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.12_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.12_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.12_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.12_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; + struct berval** vals; + + int rc; /* check for domain */ if (config_virtdomains && @@ -380,6 +395,49 @@ } 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_len(handle, entry, "mail")) ) { + if (memchr(vals[0]->bv_val, '@', vals[0]->bv_len)) { + static char buf[81]; /* same size as in auth_canonifyid */ + int len = ((sizeof(buf) - 1) > vals[0]->bv_len ? vals[0]->bv_len : sizeof(buf) - 1); + strncpy( buf, vals[0]->bv_val, len); + buf[len] = '\0'; /* make sure it's null-terminated */ + ldap_value_free_len( vals ); + ldap_msgfree( res ); + ldap_unbind_s(handle); /* also frees handle */ + syslog(LOG_DEBUG, "canonify: '%s'\n", buf); + return auth_canonifyid( buf, 0) ; + } + ldap_value_free_len( 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 --- NEW FILE: KOLAB_cyrus-imapd-2.3.12_timsieved_starttls-sendcaps.patch --- This patch was downloaded from https://bugzilla.andrew.cmu.edu/cgi-bin/cvsweb.cgi/src/cyrus/timsieved/parser.c.diff?r1=1.44;r2=1.45 (minus the CVS keywords) It should be reverse-applied with patch -p2 -R to work around the kontact behaviour described in kolab/issue2443 (kontact aborts sieve when imapd sends capabilities after starttls) and can be dropped as soon as kontact has a way to work with old and new cyrus imapd servers. --- a/timsieved/parser.c 2007/11/26 20:23:06 1.44 +++ b/timsieved/parser.c 2007/12/10 14:47:08 1.45 @@ -861,7 +861,7 @@ static int cmd_starttls(struct protstrea starttls_done = 1; - return capabilities(sieved_out, sieved_saslconn, starttls_done, authenticated); + return result; } #else static int cmd_starttls(struct protstream *sieved_out, struct protstream *sieved_in) From cvs at kolab.org Thu Apr 23 23:33:11 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:33:11 +0200 (CEST) Subject: gunnar: server/imapd/patches/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 Message-ID: <20090423213311.14F6E600825@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/imapd/patches/cyrus-imapd-2.3.11 In directory doto:/tmp/cvs-serv19408/cyrus-imapd-2.3.11 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 Log Message: Move the cyrus patches over here. In addition a Makefile has been added to facilitate the patch series update between versions. This Makefile is dependant on mercurial. It will automatically fetch an old version, check the patch series, fetch the new version, pull in changes and reapply the patch series (make update). After fixing any errors that may occur on pushing the series the patches can be exported into their respective patch directory by running make patches. --- NEW FILE: 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 2009/04/23 21:33:09 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 From cvs at kolab.org Thu Apr 23 23:33:11 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:33:11 +0200 (CEST) Subject: gunnar: server/imapd/patches/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: <20090423213311.27154600819@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/imapd/patches/cyrus-imapd-2.3.9 In directory doto:/tmp/cvs-serv19408/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: Move the cyrus patches over here. In addition a Makefile has been added to facilitate the patch series update between versions. This Makefile is dependant on mercurial. It will automatically fetch an old version, check the patch series, fetch the new version, pull in changes and reapply the patch series (make update). After fixing any errors that may occur on pushing the series the patches can be exported into their respective patch directory by running make patches. --- NEW FILE: 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 2009/04/23 21:33:09 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 Thu Apr 23 23:33:11 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:33:11 +0200 (CEST) Subject: gunnar: server/imapd/patches/cyrus-imapd-2.3.14 KOLAB_cyrus-imapd-2.3.14_Annotations2.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.14_Cyradm_Annotations.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.14_Folder-names.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.14_Groups2.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.14_Logging.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.14_UID.patch, NONE, 1.1 KOLAB_cyrus-imapd-2.3.14_timsieved_starttls-sendcaps.patch, NONE, 1.1 series, NONE, 1.1 Message-ID: <20090423213311.21DA8600817@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/imapd/patches/cyrus-imapd-2.3.14 In directory doto:/tmp/cvs-serv19408/cyrus-imapd-2.3.14 Added Files: KOLAB_cyrus-imapd-2.3.14_Annotations2.patch KOLAB_cyrus-imapd-2.3.14_Cyradm_Annotations.patch KOLAB_cyrus-imapd-2.3.14_Folder-names.patch KOLAB_cyrus-imapd-2.3.14_Groups2.patch KOLAB_cyrus-imapd-2.3.14_Logging.patch KOLAB_cyrus-imapd-2.3.14_UID.patch KOLAB_cyrus-imapd-2.3.14_timsieved_starttls-sendcaps.patch series Log Message: Move the cyrus patches over here. In addition a Makefile has been added to facilitate the patch series update between versions. This Makefile is dependant on mercurial. It will automatically fetch an old version, check the patch series, fetch the new version, pull in changes and reapply the patch series (make update). After fixing any errors that may occur on pushing the series the patches can be exported into their respective patch directory by running make patches. --- NEW FILE: KOLAB_cyrus-imapd-2.3.14_Annotations2.patch --- Provides a new version of annotation support for the cyrus imapd server [Version: 2.3.9] diff -r 321cda1d6136 imap/annotate.c --- a/imap/annotate.c Tue Apr 22 10:44:56 2008 +0200 +++ b/imap/annotate.c Tue Apr 22 10:47:04 2008 +0200 @@ -90,6 +90,8 @@ int (*proxy_fetch_func)(const char *serv struct strlist *attribute_pat) = NULL; int (*proxy_store_func)(const char *server, const char *mbox_pat, struct entryattlist *entryatts) = NULL; + +void init_annotation_definitions(); /* String List Management */ /* @@ -237,6 +239,8 @@ void annotatemore_init(int myflags, if (store_func) { proxy_store_func = store_func; } + + init_annotation_definitions(); } void annotatemore_open(char *fname) @@ -1832,6 +1836,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, @@ -1843,7 +2065,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)); @@ -1854,45 +2076,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; @@ -1902,7 +2124,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; @@ -1928,7 +2150,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; @@ -2110,3 +2332,10 @@ int annotatemore_delete(const char *mbox return annotatemore_rename(mboxname, NULL, NULL, NULL); } + +/* 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 . + */ diff -r 321cda1d6136 lib/imapoptions --- a/lib/imapoptions Tue Apr 22 10:44:56 2008 +0200 +++ b/lib/imapoptions Tue Apr 22 10:47:04 2008 +0200 @@ -172,6 +172,9 @@ are listed with ``''. /* Should non-admin users be allowed to set ACLs for the 'anyone' 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.14_Cyradm_Annotations.patch --- Allows to use arbitrary annotations with the cyradm tool. diff -r 639190be2385 doc/man/cyradm.1.html --- a/doc/man/cyradm.1.html Mon Oct 27 18:48:18 2008 +0100 +++ b/doc/man/cyradm.1.html Mon Oct 27 18:48:25 2008 +0100 @@ -245,6 +245,13 @@

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 639190be2385 perl/imap/IMAP/Admin.pm --- a/perl/imap/IMAP/Admin.pm Mon Oct 27 18:48:18 2008 +0100 +++ b/perl/imap/IMAP/Admin.pm Mon Oct 27 18:48:26 2008 +0100 @@ -797,11 +797,11 @@ return undef; } - if(!exists($values{$entry})) { - $self->{error} = "Unknown parameter $entry"; + if(exists($values{$entry})) { + $entry = $values{$entry}; + } else { + $self->{error} = "Unknown parameter $entry" unless substr($entry,0,1) eq "/"; } - - $entry = $values{$entry}; my ($rc, $msg); diff -r 639190be2385 perl/imap/IMAP/Shell.pm --- a/perl/imap/IMAP/Shell.pm Mon Oct 27 18:48:18 2008 +0100 +++ b/perl/imap/IMAP/Shell.pm Mon Oct 27 18:48:26 2008 +0100 @@ -127,7 +127,7 @@ [\&_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 => @@ -1437,7 +1437,7 @@ 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); @@ -1446,7 +1446,7 @@ } 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 639190be2385 perl/imap/cyradm.sh --- a/perl/imap/cyradm.sh Mon Oct 27 18:48:18 2008 +0100 +++ b/perl/imap/cyradm.sh Mon Oct 27 18:48:26 2008 +0100 @@ -241,6 +241,10 @@ 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.14_Folder-names.patch --- Modifies the set of accepted characters in folder names for the cyrus imapd server [Version: 2.3.9] diff -r 17e54b46d7b6 imap/mboxname.c --- a/imap/mboxname.c Mon Oct 27 18:44:56 2008 +0100 +++ b/imap/mboxname.c Mon Oct 27 18:47:11 2008 +0100 @@ -713,8 +713,10 @@ /* * Apply site policy restrictions on mailbox names. * Restrictions are hardwired for now. + * original definition +#define GOODCHARS " #$'+,-.0123456789:=@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~" */ -#define GOODCHARS " #$'+,-.0123456789:=@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~" +#define GOODCHARS " #$%'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~" int mboxname_policycheck(char *name) { unsigned i; --- NEW FILE: KOLAB_cyrus-imapd-2.3.14_Groups2.patch --- diff -r 0d5aacd84718 lib/auth_unix.c --- a/lib/auth_unix.c Mon Oct 27 18:37:49 2008 +0100 +++ b/lib/auth_unix.c Wed Apr 01 18:19:19 2009 +0200 @@ -46,12 +46,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]; @@ -140,6 +261,25 @@ 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 (strcmp(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 @@ -175,7 +315,7 @@ */ if (!strncmp(retbuf, "group:", 6)) { - grp = getgrnam(retbuf+6); + grp = fgetgrnam(retbuf+6); if (!grp) return NULL; if (strlen(grp->gr_name) >= sizeof(retbuf)-6) return NULL; @@ -223,11 +363,12 @@ struct auth_state *newstate; struct passwd *pwd; struct group *grp; -#if defined(HAVE_GETGROUPLIST) && defined(__GLIBC__) +#if 0 && defined(HAVE_GETGROUPLIST) && defined(__GLIBC__) gid_t gid, *groupids = NULL; int ret, ngroups = 10; #else char **mem; + FILE *groupfile; #endif identifier = mycanonifyid(identifier, 0); @@ -245,7 +386,7 @@ pwd = getpwnam(identifier); -#if defined(HAVE_GETGROUPLIST) && defined(__GLIBC__) +#if 0 && defined(HAVE_GETGROUPLIST) && defined(__GLIBC__) gid = pwd ? pwd->pw_gid : (gid_t) -1; /* get the group ids */ @@ -283,20 +424,23 @@ if (groupids) free(groupids); #else /* !HAVE_GETGROUPLIST */ - setgrent(); - while ((grp = getgrent())) { - for (mem = grp->gr_mem; *mem; mem++) { - if (!strcmp(*mem, identifier)) break; - } + 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 (!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(); + 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.14_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.14_UID.patch --- Allows login by uid rather than the mail address on the cyrus imapd server [Version: 2.3.9] diff -r 2ebe14b7db9d configure --- a/configure Mon Oct 27 18:47:12 2008 +0100 +++ b/configure Mon Oct 27 18:48:18 2008 +0100 @@ -19667,7 +19667,7 @@ done IMAP_COM_ERR_LIBS="${COM_ERR_LIBS}" -IMAP_LIBS="${LIB_SASL} ${LIBS} ${SQL_LIBS}" +IMAP_LIBS="${LIB_SASL} -lldap -llber ${LIBS} ${SQL_LIBS}" diff -r 2ebe14b7db9d imap/global.c --- a/imap/global.c Mon Oct 27 18:47:12 2008 +0100 +++ b/imap/global.c Mon Oct 27 18:48:18 2008 +0100 @@ -52,6 +52,9 @@ #include #include #include + +#include +#include #if HAVE_UNISTD_H # include @@ -378,6 +381,18 @@ 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; + struct berval** vals; + + int rc; /* check for domain */ if (config_virtdomains && @@ -396,6 +411,49 @@ } 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_len(handle, entry, "mail")) ) { + if (memchr(vals[0]->bv_val, '@', vals[0]->bv_len)) { + static char buf[81]; /* same size as in auth_canonifyid */ + int len = ((sizeof(buf) - 1) > vals[0]->bv_len ? vals[0]->bv_len : sizeof(buf) - 1); + strncpy( buf, vals[0]->bv_val, len); + buf[len] = '\0'; /* make sure it's null-terminated */ + ldap_value_free_len( vals ); + ldap_msgfree( res ); + ldap_unbind_s(handle); /* also frees handle */ + syslog(LOG_DEBUG, "canonify: '%s'\n", buf); + return auth_canonifyid( buf, 0) ; + } + ldap_value_free_len( 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 */ @@ -408,7 +466,7 @@ 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 2ebe14b7db9d lib/imapoptions --- a/lib/imapoptions Mon Oct 27 18:47:12 2008 +0100 +++ b/lib/imapoptions Mon Oct 27 18:48:18 2008 +0100 @@ -1114,7 +1114,7 @@ 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 --- NEW FILE: KOLAB_cyrus-imapd-2.3.14_timsieved_starttls-sendcaps.patch --- This patch was downloaded from https://bugzilla.andrew.cmu.edu/cgi-bin/cvsweb.cgi/src/cyrus/timsieved/parser.c.diff?r1=1.44;r2=1.45 (minus the CVS keywords) It should be reverse-applied with patch -p2 -R to work around the kontact behaviour described in kolab/issue2443 (kontact aborts sieve when imapd sends capabilities after starttls) and can be dropped as soon as kontact has a way to work with old and new cyrus imapd servers. diff -r 1688e25afb65 timsieved/parser.c --- a/timsieved/parser.c Thu Apr 23 23:28:07 2009 +0200 +++ b/timsieved/parser.c Thu Apr 23 23:28:54 2009 +0200 @@ -908,8 +908,7 @@ starttls_done = 1; - return capabilities(sieved_out, sieved_saslconn, starttls_done, - authenticated, sasl_ssf); + return result; } #else static int cmd_starttls(struct protstream *sieved_out, struct protstream *sieved_in) --- NEW FILE: series --- KOLAB_Groups2.patch KOLAB_Annotations2.patch KOLAB_Logging.patch KOLAB_Folder-names.patch KOLAB_UID.patch KOLAB_Cyradm_Annotations.patch KOLAB_timsieved_starttls-sendcaps.patch From cvs at kolab.org Thu Apr 23 23:43:19 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:43:19 +0200 (CEST) Subject: gunnar: server/imapd Makefile,1.41,1.42 kolab.patch,1.40,1.41 Message-ID: <20090423214319.A9ACE600817@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/imapd In directory doto:/tmp/cvs-serv19677 Modified Files: Makefile kolab.patch Log Message: Adapt the package to the new patch location. This is still 2.3.13 though the patches for 2.3.14 are available in the patches directory now. I currently don't get access to the 2.3.14 package from OpenPKG (if there is such a package). So the new version still needs to be integrated. Index: Makefile =================================================================== RCS file: /kolabrepository/server/imapd/Makefile,v retrieving revision 1.41 retrieving revision 1.42 diff -u -d -r1.41 -r1.42 --- Makefile 24 Mar 2009 16:29:41 -0000 1.41 +++ Makefile 23 Apr 2009 21:43:17 -0000 1.42 @@ -23,13 +23,13 @@ RELEASE=20081020 KOLABRELEASE=20081020_kolab1 -PATCHES=../patches/cyrus-imapd/cyrus-imapd-$(VERSION)/KOLAB_cyrus-cyradm-$(VERSION)_Annotations.patch \ - ../patches/cyrus-imapd/cyrus-imapd-$(VERSION)/KOLAB_cyrus-imapd-$(VERSION)_Annotations2.patch \ - ../patches/cyrus-imapd/cyrus-imapd-$(VERSION)/KOLAB_cyrus-imapd-$(VERSION)_Folder-names.patch \ - ../patches/cyrus-imapd/cyrus-imapd-$(VERSION)/KOLAB_cyrus-imapd-$(VERSION)_Groups2.patch \ - ../patches/cyrus-imapd/cyrus-imapd-$(VERSION)/KOLAB_cyrus-imapd-$(VERSION)_Logging.patch \ - ../patches/cyrus-imapd/cyrus-imapd-$(VERSION)/KOLAB_cyrus-imapd-$(VERSION)_timsieved_starttls-sendcaps.patch \ - ../patches/cyrus-imapd/cyrus-imapd-$(VERSION)/KOLAB_cyrus-imapd-$(VERSION)_UID.patch +PATCHES=patches/cyrus-imapd-$(VERSION)/KOLAB_cyrus-imapd-$(VERSION)_Cyradm_Annotations.patch \ + patches/cyrus-imapd-$(VERSION)/KOLAB_cyrus-imapd-$(VERSION)_Annotations2.patch \ + patches/cyrus-imapd-$(VERSION)/KOLAB_cyrus-imapd-$(VERSION)_Folder-names.patch \ + patches/cyrus-imapd-$(VERSION)/KOLAB_cyrus-imapd-$(VERSION)_Groups2.patch \ + patches/cyrus-imapd-$(VERSION)/KOLAB_cyrus-imapd-$(VERSION)_Logging.patch \ + patches/cyrus-imapd-$(VERSION)/KOLAB_cyrus-imapd-$(VERSION)_timsieved_starttls-sendcaps.patch \ + patches/cyrus-imapd-$(VERSION)/KOLAB_cyrus-imapd-$(VERSION)_UID.patch .PHONY: all all: $(PACKAGE)-$(VERSION)-$(KOLABRELEASE).src.rpm Index: kolab.patch =================================================================== RCS file: /kolabrepository/server/imapd/kolab.patch,v retrieving revision 1.40 retrieving revision 1.41 diff -u -d -r1.40 -r1.41 --- kolab.patch 23 Apr 2009 20:18:49 -0000 1.40 +++ kolab.patch 23 Apr 2009 21:43:17 -0000 1.41 @@ -27,13 +27,13 @@ -Patch4: http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/server/patches/cyrus-imapd/cyrus-imapd-2.3.11/KOLAB_cyrus-imapd-2.3.11-_Logging.patch -Patch5: http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/server/patches/cyrus-imapd/cyrus-imapd-2.3.11/KOLAB_cyrus-imapd-2.3.11-_UID.patch -Patch6: http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/server/patches/cyrus-imapd/cyrus-imapd-2.3.11/KOLAB_cyrus-imapd-2.3.11-_Folder-names.patch -+Patch1: http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/server/patches/cyrus-imapd/cyrus-imapd-%{version}/KOLAB_cyrus-imapd-%{version}_Groups2.patch -+Patch2: http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/server/patches/cyrus-imapd/cyrus-imapd-%{version}/KOLAB_cyrus-imapd-%{version}_Annotations2.patch -+Patch3: http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/server/patches/cyrus-imapd/cyrus-imapd-%{version}/KOLAB_cyrus-cyradm-%{version}_Annotations.patch -+Patch4: http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/server/patches/cyrus-imapd/cyrus-imapd-%{version}/KOLAB_cyrus-imapd-%{version}_Logging.patch -+Patch5: http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/server/patches/cyrus-imapd/cyrus-imapd-%{version}/KOLAB_cyrus-imapd-%{version}_UID.patch -+Patch6: http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/server/patches/cyrus-imapd/cyrus-imapd-%{version}/KOLAB_cyrus-imapd-%{version}_Folder-names.patch -+Patch7: http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/server/patches/cyrus-imapd/cyrus-imapd-%{version}/KOLAB_cyrus-imapd-%{version}_timsieved_starttls-sendcaps.patch ++Patch1: patches/cyrus-imapd-%{version}/KOLAB_cyrus-imapd-%{version}_Groups2.patch ++Patch2: patches/cyrus-imapd-%{version}/KOLAB_cyrus-imapd-%{version}_Annotations2.patch ++Patch3: patches/cyrus-imapd-%{version}/KOLAB_cyrus-imapd-%{version}_Cyradm_Annotations.patch ++Patch4: patches/cyrus-imapd-%{version}/KOLAB_cyrus-imapd-%{version}_Logging.patch ++Patch5: patches/cyrus-imapd-%{version}/KOLAB_cyrus-imapd-%{version}_UID.patch ++Patch6: patches/cyrus-imapd-%{version}/KOLAB_cyrus-imapd-%{version}_Folder-names.patch ++Patch7: patches/cyrus-imapd-%{version}/KOLAB_cyrus-imapd-%{version}_timsieved_starttls-sendcaps.patch # build information Prefix: %{l_prefix} From cvs at kolab.org Thu Apr 23 23:47:36 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:47:36 +0200 (CEST) Subject: gunnar: server/patches/cyrus-imapd README, 1.1, NONE README_Annotations.patch, 1.1, NONE README_Annotations2.patch, 1.1, NONE README_Folder-names.patch, 1.1, NONE README_Groups.patch, 1.1, NONE README_Logging.patch, 1.1, NONE README_UID.patch, 1.1, NONE Message-ID: <20090423214736.4A8B3600817@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd In directory doto:/tmp/cvs-serv19990 Removed Files: README README_Annotations.patch README_Annotations2.patch README_Folder-names.patch README_Groups.patch README_Logging.patch README_UID.patch Log Message: The patches were moved over to the imapd package. --- README DELETED --- --- README_Annotations.patch DELETED --- --- README_Annotations2.patch DELETED --- --- README_Folder-names.patch DELETED --- --- README_Groups.patch DELETED --- --- README_Logging.patch DELETED --- --- README_UID.patch DELETED --- From cvs at kolab.org Thu Apr 23 23:47:36 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:47:36 +0200 (CEST) Subject: gunnar: server/patches/cyrus-imapd/cyrus-imapd-2.3.10 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: <20090423214736.556D6600819@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.10 In directory doto:/tmp/cvs-serv19990/cyrus-imapd-2.3.10 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: The patches were moved over to the imapd package. --- 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 Thu Apr 23 23:47:36 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:47:36 +0200 (CEST) Subject: gunnar: server/patches/cyrus-imapd/cyrus-imapd-2.3.11 KOLAB_cyrus-cyradm-2.3.11_Annotations.patch, 1.1, NONE KOLAB_cyrus-imapd-2.3.11-_Annotations2.patch, 1.1, NONE KOLAB_cyrus-imapd-2.3.11-_Folder-names.patch, 1.1, NONE KOLAB_cyrus-imapd-2.3.11-_Groups.patch, 1.1, NONE KOLAB_cyrus-imapd-2.3.11-_Logging.patch, 1.1, NONE KOLAB_cyrus-imapd-2.3.11-_UID.patch, 1.1, NONE Message-ID: <20090423214736.5E1F5600817@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.11 In directory doto:/tmp/cvs-serv19990/cyrus-imapd-2.3.11 Removed 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 Log Message: The patches were moved over to the imapd package. --- KOLAB_cyrus-cyradm-2.3.11_Annotations.patch DELETED --- --- KOLAB_cyrus-imapd-2.3.11-_Annotations2.patch DELETED --- --- KOLAB_cyrus-imapd-2.3.11-_Folder-names.patch DELETED --- --- KOLAB_cyrus-imapd-2.3.11-_Groups.patch DELETED --- --- KOLAB_cyrus-imapd-2.3.11-_Logging.patch DELETED --- --- KOLAB_cyrus-imapd-2.3.11-_UID.patch DELETED --- From cvs at kolab.org Thu Apr 23 23:47:36 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:47:36 +0200 (CEST) Subject: gunnar: server/patches/cyrus-imapd/cyrus-imapd-2.3.13 KOLAB_cyrus-cyradm-2.3.13_Annotations.patch, 1.1, NONE KOLAB_cyrus-imapd-2.3.13_Annotations2.patch, 1.1, NONE KOLAB_cyrus-imapd-2.3.13_Folder-names.patch, 1.1, NONE KOLAB_cyrus-imapd-2.3.13_Groups2.patch, 1.2, NONE KOLAB_cyrus-imapd-2.3.13_Logging.patch, 1.1, NONE KOLAB_cyrus-imapd-2.3.13_UID.patch, 1.1, NONE KOLAB_cyrus-imapd-2.3.13_timsieved_starttls-sendcaps.patch, 1.1, NONE Message-ID: <20090423214736.76CD3600819@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.13 In directory doto:/tmp/cvs-serv19990/cyrus-imapd-2.3.13 Removed Files: KOLAB_cyrus-cyradm-2.3.13_Annotations.patch KOLAB_cyrus-imapd-2.3.13_Annotations2.patch KOLAB_cyrus-imapd-2.3.13_Folder-names.patch KOLAB_cyrus-imapd-2.3.13_Groups2.patch KOLAB_cyrus-imapd-2.3.13_Logging.patch KOLAB_cyrus-imapd-2.3.13_UID.patch KOLAB_cyrus-imapd-2.3.13_timsieved_starttls-sendcaps.patch Log Message: The patches were moved over to the imapd package. --- KOLAB_cyrus-cyradm-2.3.13_Annotations.patch DELETED --- --- KOLAB_cyrus-imapd-2.3.13_Annotations2.patch DELETED --- --- KOLAB_cyrus-imapd-2.3.13_Folder-names.patch DELETED --- --- KOLAB_cyrus-imapd-2.3.13_Groups2.patch DELETED --- --- KOLAB_cyrus-imapd-2.3.13_Logging.patch DELETED --- --- KOLAB_cyrus-imapd-2.3.13_UID.patch DELETED --- --- KOLAB_cyrus-imapd-2.3.13_timsieved_starttls-sendcaps.patch DELETED --- From cvs at kolab.org Thu Apr 23 23:47:36 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:47:36 +0200 (CEST) Subject: gunnar: server/patches/cyrus-imapd/cyrus-imapd-2.3.12 KOLAB_cyrus-cyradm-2.3.12_Annotations.patch, 1.1, NONE KOLAB_cyrus-imapd-2.3.12_Annotations2.patch, 1.1, NONE KOLAB_cyrus-imapd-2.3.12_Folder-names.patch, 1.1, NONE KOLAB_cyrus-imapd-2.3.12_Groups.patch, 1.1, NONE KOLAB_cyrus-imapd-2.3.12_Logging.patch, 1.1, NONE KOLAB_cyrus-imapd-2.3.12_UID.patch, 1.2, NONE KOLAB_cyrus-imapd-2.3.12_timsieved_starttls-sendcaps.patch, 1.1, NONE Message-ID: <20090423214736.6BDEA600817@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.12 In directory doto:/tmp/cvs-serv19990/cyrus-imapd-2.3.12 Removed Files: KOLAB_cyrus-cyradm-2.3.12_Annotations.patch KOLAB_cyrus-imapd-2.3.12_Annotations2.patch KOLAB_cyrus-imapd-2.3.12_Folder-names.patch KOLAB_cyrus-imapd-2.3.12_Groups.patch KOLAB_cyrus-imapd-2.3.12_Logging.patch KOLAB_cyrus-imapd-2.3.12_UID.patch KOLAB_cyrus-imapd-2.3.12_timsieved_starttls-sendcaps.patch Log Message: The patches were moved over to the imapd package. --- KOLAB_cyrus-cyradm-2.3.12_Annotations.patch DELETED --- --- KOLAB_cyrus-imapd-2.3.12_Annotations2.patch DELETED --- --- KOLAB_cyrus-imapd-2.3.12_Folder-names.patch DELETED --- --- KOLAB_cyrus-imapd-2.3.12_Groups.patch DELETED --- --- KOLAB_cyrus-imapd-2.3.12_Logging.patch DELETED --- --- KOLAB_cyrus-imapd-2.3.12_UID.patch DELETED --- --- KOLAB_cyrus-imapd-2.3.12_timsieved_starttls-sendcaps.patch DELETED --- From cvs at kolab.org Thu Apr 23 23:47:36 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 23 Apr 2009 23:47:36 +0200 (CEST) Subject: gunnar: server/patches/cyrus-imapd/cyrus-imapd-2.3.9 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: <20090423214736.7C771600817@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/cyrus-imapd/cyrus-imapd-2.3.9 In directory doto:/tmp/cvs-serv19990/cyrus-imapd-2.3.9 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: The patches were moved over to the imapd package. --- 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 Fri Apr 24 07:01:25 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 24 Apr 2009 07:01:25 +0200 (CEST) Subject: gunnar: server/kolabd/kolabd/dist_conf common, 1.55, 1.56 kolab, 1.71, 1.72 Message-ID: <20090424050125.427E9600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd/dist_conf In directory doto:/tmp/cvs-serv8901/dist_conf Modified Files: common kolab Log Message: Merge from branch (Prepare kolabd for kolab/issue3420 (web client prefs and hooks should be configurable via templates) cvs diff -u -d -r1.234 -r1.234.2.1 ChangeLog | patch ChangeLog cvs diff -u -d -r1.22 -r1.22.2.1 kolab.globals.in | patch kolab.globals.in cvs diff -u -d -r1.53 -r1.53.2.1 dist_conf/common | patch dist_conf/common cvs diff -u -d -r1.70 -r1.70.2.1 dist_conf/kolab | patch dist_conf/kolab) Index: common =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/common,v retrieving revision 1.55 retrieving revision 1.56 diff -u -d -r1.55 -r1.56 --- common 7 Mar 2009 16:20:37 -0000 1.55 +++ common 24 Apr 2009 05:01:23 -0000 1.56 @@ -151,4 +151,11 @@ -e 's=[@]webserver_web_prefix[@]=$(webserver_web_prefix)=g' \ -e 's=[@]horde_cookie_path[@]=$(horde_cookie_path)=g' \ -e 's=[@]horde_confdir[@]=$(horde_confdir)=g' \ - -e 's=[@]kronolith_confdir[@]=$(kronolith_confdir)=g' + -e 's=[@]dimp_confdir[@]=$(dimp_confdir)=g' \ + -e 's=[@]imp_confdir[@]=$(imp_confdir)=g' \ + -e 's=[@]ingo_confdir[@]=$(ingo_confdir)=g' \ + -e 's=[@]kronolith_confdir[@]=$(kronolith_confdir)=g' \ + -e 's=[@]mimp_confdir[@]=$(mimp_confdir)=g' \ + -e 's=[@]mnemo_confdir[@]=$(mnemo_confdir)=g' \ + -e 's=[@]nag_confdir[@]=$(nag_confdir)=g' \ + -e 's=[@]turba_confdir[@]=$(turba_confdir)=g' Index: kolab =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/kolab,v retrieving revision 1.71 retrieving revision 1.72 diff -u -d -r1.71 -r1.72 --- kolab 6 Mar 2009 08:40:56 -0000 1.71 +++ kolab 24 Apr 2009 05:01:23 -0000 1.72 @@ -150,7 +150,14 @@ #webclient horde_cookie_path=/client horde_confdir=${webserver_document_root}/client/config +dimp_confdir=${webserver_document_root}/client/dimp/config +imp_confdir=${webserver_document_root}/client/imp/config +ingo_confdir=${webserver_document_root}/client/ingo/config kronolith_confdir=${webserver_document_root}/client/kronolith/config +mimp_confdir=${webserver_document_root}/client/mimp/config +mnemo_confdir=${webserver_document_root}/client/mnemo/config +nag_confdir=${webserver_document_root}/client/nag/config +turba_confdir=${webserver_document_root}/client/turba/config phpini_dir=${sysconfdir}/apache phplibdir=${libdir}/php From cvs at kolab.org Fri Apr 24 07:01:25 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 24 Apr 2009 07:01:25 +0200 (CEST) Subject: gunnar: server/kolabd/kolabd ChangeLog, 1.247, 1.248 kolab.globals.in, 1.24, 1.25 Message-ID: <20090424050125.3FBD7600819@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv8901 Modified Files: ChangeLog kolab.globals.in Log Message: Merge from branch (Prepare kolabd for kolab/issue3420 (web client prefs and hooks should be configurable via templates) cvs diff -u -d -r1.234 -r1.234.2.1 ChangeLog | patch ChangeLog cvs diff -u -d -r1.22 -r1.22.2.1 kolab.globals.in | patch kolab.globals.in cvs diff -u -d -r1.53 -r1.53.2.1 dist_conf/common | patch dist_conf/common cvs diff -u -d -r1.70 -r1.70.2.1 dist_conf/kolab | patch dist_conf/kolab) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.247 retrieving revision 1.248 diff -u -d -r1.247 -r1.248 --- ChangeLog 20 Apr 2009 16:25:47 -0000 1.247 +++ ChangeLog 24 Apr 2009 05:01:22 -0000 1.248 @@ -65,6 +65,11 @@ kolab/issue2499 (Notification messages by the resource manager sould be localized) +2009-03-26 Gunnar Wrobel

+ + * kolab.globals.in: Prepare kolabd for additional webclient + configuration templates. + 2009-03-03 Thomas Arendsen Hein * templates/httpd.conf.template.in: "AllowOverride All" for /client to Index: kolab.globals.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolab.globals.in,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- kolab.globals.in 17 Mar 2009 16:46:31 -0000 1.24 +++ kolab.globals.in 24 Apr 2009 05:01:23 -0000 1.25 @@ -50,7 +50,14 @@ webserver_grp: @webserver_grp@ horde_cookie_path: @horde_cookie_path@ horde_confdir: @horde_confdir@ +dimp_confdir: @dimp_confdir@ +ingo_confdir: @ingo_confdir@ +imp_confdir: @imp_confdir@ kronolith_confdir: @kronolith_confdir@ +mimp_confdir: @mimp_confdir@ +mnemo_confdir: @mnemo_confdir@ +nag_confdir: @nag_confdir@ +turba_confdir: @turba_confdir@ kolab_statedir: @kolab_statedir@ kolab_pidfile: @kolab_pidfile@ kolab_mailboxuiddb: @kolab_mailboxuiddb@ From cvs at kolab.org Fri Apr 24 07:03:04 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 24 Apr 2009 07:03:04 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.434,1.435 Message-ID: <20090424050304.DDD9F600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv9012 Modified Files: release-notes.txt Log Message: Removed TODO. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.434 retrieving revision 1.435 diff -u -d -r1.434 -r1.435 --- release-notes.txt 23 Apr 2009 20:22:00 -0000 1.434 +++ release-notes.txt 24 Apr 2009 05:03:02 -0000 1.435 @@ -130,7 +130,7 @@ kolab/issue3096 (Address book aliases shouldn't redirect outgoing mails) -TODO: kolab/issue3420 (web client prefs and hooks should be + kolab/issue3420 (web client prefs and hooks should be configurable via templates) kolab/issue3513 (Clamav - new upstream version 0.95) From cvs at kolab.org Fri Apr 24 08:20:54 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 24 Apr 2009 08:20:54 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.435,1.436 Message-ID: <20090424062054.CC499600819@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv11175 Modified Files: release-notes.txt Log Message: Added backport of upstream patch to fix encoding again. Removed TODO from release notes as the upstream release + the patch includes all fixes also available in the branch. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.435 retrieving revision 1.436 diff -u -d -r1.435 -r1.436 --- release-notes.txt 24 Apr 2009 05:03:02 -0000 1.435 +++ release-notes.txt 24 Apr 2009 06:20:52 -0000 1.436 @@ -145,10 +145,9 @@ TODO: kolab/issue3521 (kolabmailboxfilter does not accept mail for user+extension at example.com) -TODO: - Kolab_Format-1.0.0-20090402 -TODO: kolab/issue3525 (free/busy regeneration aborts for unparsable events) + kolab/issue3525 (free/busy regeneration aborts for unparsable events) TODO: - Kolab_FreeBusy-0.1.2-20090406 From cvs at kolab.org Fri Apr 24 08:20:54 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 24 Apr 2009 08:20:54 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Format Kolab_Format_1.0.1_p1.patch, NONE, 1.1 ChangeLog, 1.4, 1.5 Kolab_Format.spec, 1.10, 1.11 Message-ID: <20090424062054.D2716600829@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Format In directory doto:/tmp/cvs-serv11175/php-kolab/Kolab_Format Modified Files: ChangeLog Kolab_Format.spec Added Files: Kolab_Format_1.0.1_p1.patch Log Message: Added backport of upstream patch to fix encoding again. Removed TODO from release notes as the upstream release + the patch includes all fixes also available in the branch. --- NEW FILE: Kolab_Format_1.0.1_p1.patch --- From: Gunnar Wrobel Subject: [PATCH] Kolab_Format_1.0.1_p1.patch Removes an additional option that does not help in dealing with XML format problems but instead breaks encoding again. https://www.intevation.de/roundup/kolab/issue3528 STATUS: MERGED http://cvs.horde.org/diff.php/framework/Kolab_Format/lib/Horde/Kolab/Format/XML.php?r1=1.15&r2=1.16 Signed-off-by: Gunnar Wrobel Index: lib/Horde/Kolab/Format/XML.php =================================================================== RCS file: /repository/framework/Kolab_Format/lib/Horde/Kolab/Format/XML.php,v retrieving revision 1.5.2.11 retrieving revision 1.5.2.12 diff -u -B -r1.5.2.11 -r1.5.2.12 --- lib/Horde/Kolab/Format/XML.php 2 Apr 2009 20:14:51 -0000 1.5.2.11 +++ lib/Horde/Kolab/Format/XML.php 8 Apr 2009 18:34:39 -0000 1.5.2.12 @@ -597,7 +597,7 @@ { $params = array( 'xml' => $xmltext, - 'options' => HORDE_DOM_LOAD_REMOVE_BLANKS | HORDE_DOM_LOAD_RECOVER, + 'options' => HORDE_DOM_LOAD_REMOVE_BLANKS, ); $result = Horde_DOM_Document::factory($params); Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Format/ChangeLog,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ChangeLog 2 Apr 2009 20:27:15 -0000 1.4 +++ ChangeLog 24 Apr 2009 06:20:52 -0000 1.5 @@ -1,3 +1,13 @@ +2009-04-24 Gunnar Wrobel

+ + * Kolab_Format_1.0.1_p1.patch: Removes an additional option that + does not help in dealing with XML format problems but instead + breaks encoding again. + + Accept ISO-8859-1 encoding even if advertised as UTF-8 + kolab/issue3528 (Events with broken encoding should work) + https://www.intevation.de/roundup/kolab/issue3528 + 2009-04-02 Gunnar Wrobel

* Kolab_Format.spec: Update to 1.0.1. Index: Kolab_Format.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Format/Kolab_Format.spec,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- Kolab_Format.spec 2 Apr 2009 20:27:15 -0000 1.10 +++ Kolab_Format.spec 24 Apr 2009 06:20:52 -0000 1.11 @@ -1,7 +1,7 @@ # Variables %define V_package Kolab_Format %define V_version 1.0.1 -%define V_release 20090402 +%define V_release 20090424 %define V_sourceurl http://pear.horde.org/get # Package Information @@ -19,7 +19,7 @@ Source: %{V_sourceurl}/%{V_package}-%{V_version}.tgz # List of patches -#Patch0: issueXYZ.patch +Patch0: Kolab_Format_1.0.1_p1.patch # Build Info Prefix: %{l_prefix} @@ -42,7 +42,7 @@ %prep %setup -n %{V_package}-%{V_version} - #%patch -p2 -P 0 + %patch -p0 -P 0 cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml From cvs at kolab.org Fri Apr 24 09:34:45 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 24 Apr 2009 09:34:45 +0200 (CEST) Subject: gunnar: server Makefile,1.76,1.77 Message-ID: <20090424073445.35023600829@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv13496 Modified Files: Makefile Log Message: Start reducing the test script output. Index: Makefile =================================================================== RCS file: /kolabrepository/server/Makefile,v retrieving revision 1.76 retrieving revision 1.77 diff -u -d -r1.76 -r1.77 --- Makefile 24 Feb 2009 15:05:53 -0000 1.76 +++ Makefile 24 Apr 2009 07:34:43 -0000 1.77 @@ -169,7 +169,13 @@ .PHONY: test test: - for TEST in $(PHPUNIT_TESTS); \ - do \ - $(PHPUNIT) $$TEST; \ + @for TEST in $(PHPUNIT_TESTS); \ + do \ + $(PHPUNIT) -d log_errors=1 -d error_log="/tmp/$${TEST//\//_}-php-errors.log" $$TEST 2>&1 | tee -a /tmp/$${TEST//\//_}-phpunit.log | grep "^OK" > /dev/null || PHPUNIT="FAIL"; \ + if [ -n "$$PHPUNIT" ]; then \ + echo; \ + echo "FAIL ($$TEST): Some phpunit tests failed!"; \ + else \ + echo -n "."; \ + fi; \ done From cvs at kolab.org Fri Apr 24 09:42:27 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 24 Apr 2009 09:42:27 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Server Makefile,1.6,1.7 Message-ID: <20090424074227.F3106600829@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Server In directory doto:/tmp/cvs-serv13725 Modified Files: Makefile Log Message: Update the Makefile to the newest version for PEAR packages. Index: Makefile =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Server/Makefile,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Makefile 24 Feb 2009 11:57:46 -0000 1.6 +++ Makefile 24 Apr 2009 07:42:25 -0000 1.7 @@ -1,50 +1,111 @@ -PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") -RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") +# If home is unset this Makefile assumes the Kolab server installation +# resides in /kolab. If this is not the case this Makefile must be +# called using +# +# HOME="/mykolabroot" make TARGET +# +ifeq "x$(HOME)" "x" + HOME = /kolab +endif +# If HOME is set to /root it is likely that somebody is calling this +# Makefile as root user. In this case this Makefile assumes that the +# Kolab server installation resides in /kolab. +# +# In the (hopefully) unlikely event that somebody really installed the +# Kolab server in /root this Makefile will fail. +ifeq "x$(HOME)" "x/root" + HOME = /kolab +endif + +# Set the location of the rpm binary ifeq "x$(RPM)" "x" RPM = $(HOME)/bin/openpkg rpm endif + +# Set the location for rpm source package installations ifeq "x$(KOLABRPMSRC)" "x" KOLABRPMSRC = $(HOME)/RPM/SRC endif + +# Set the location for rpm packages ifeq "x$(KOLABRPMPKG)" "x" KOLABRPMPKG = $(HOME)/RPM/PKG endif + +# Set the location for the rpm temporary directory ifeq "x$(KOLABRPMTMP)" "x" KOLABRPMTMP = $(HOME)/RPM/TMP endif +# Determine the suffix for binary packages on this system ifeq "x$(PLATTAG)" "x" PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) endif -SOURCE_URL=http://pear.horde.org/get +# Determine the staging area for collecting new source rpms +ifeq "x$(STAGING)" "x" + STAGING = ../../stage +endif + +# Determine the package name from the *.spec file +PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") + +# Determine the package version from the *.spec file +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") + +# Determine the release number from the *.spec file +RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") + +# Determine the download url for the PEAR package from the *.spec file +SOURCE_URL=$(shell grep "%define[ ]*V_sourceurl" *.spec | sed -e "s/.*V_sourceurl\s*\(.*\)/\1/") + +# Get the list of patches if there are any in this directory +PATCHES = $(shell ls *.patch 2> /dev/null) + +# Generate the full package name SOURCE_0=$(PACKAGE)-$(VERSION).tgz +# Generate a list of extra files for the package +EXTRA=ChangeLog $(PATCHES) + + +# Default target to generate the source rpm package .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm +# Target for placing the source rpm in the staging area .PHONY: dist dist: all - cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm ../../stage/ + test -d $(STAGING) || mkdir $(STAGING) + cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm $(STAGING) -.PHONY: clean -clean: - rm -rf /kolab/RPM/TMP/$(PACKAGE)* - rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - rm -rf *~ +# Target for installing the binary rpm package in our current Kolab +# server installation +.PHONY: install +install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm -$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): +# Target for retrieving the source package +$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_URL)/$(SOURCE_0)" -$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec ChangeLog $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) - cp $(PACKAGE).spec $(KOLABRPMSRC)/$(PACKAGE) +# Target for preparing the source area and building the package +$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: Makefile $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) + cp $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec +# Target for fetching the source rpm into the current directory +$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . -.PHONY: install -install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm - $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm +# Target for cleaning up the files that can be generated with this Makefile +.PHONY: clean +clean: + rm -rf $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + rm -rf $(KOLABRPMSRC)/$(PACKAGE) + rm -rf $(KOLABRPMTMP)/$(PACKAGE)* + rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm + rm -rf *~ + From cvs at kolab.org Fri Apr 24 09:56:35 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 24 Apr 2009 09:56:35 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Server Kolab_Server.spec,1.9,1.10 Message-ID: <20090424075635.50FD6600829@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Server In directory doto:/tmp/cvs-serv14044 Modified Files: Kolab_Server.spec Log Message: Adapt the spec file to the Makefile. Index: Kolab_Server.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Server/Kolab_Server.spec,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- Kolab_Server.spec 24 Feb 2009 11:57:46 -0000 1.9 +++ Kolab_Server.spec 24 Apr 2009 07:56:33 -0000 1.10 @@ -2,6 +2,7 @@ %define V_package Kolab_Server %define V_version 0.4.0 %define V_release 20090224 +%define V_sourceurl http://pear.horde.org/get # Package Information Name: %{V_package} @@ -15,7 +16,7 @@ Distribution: OpenPKG # List of Sources -Source: http://pear.horde.org/get/%{V_package}-%{V_version}.tgz +Source: %{V_sourceurl}/%{V_package}-%{V_version}.tgz # Build Info Prefix: %{l_prefix} From cvs at kolab.org Fri Apr 24 11:06:12 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 24 Apr 2009 11:06:12 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Server Kolab_Server.spec,1.10,1.11 Message-ID: <20090424090612.46200600825@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Server In directory doto:/tmp/cvs-serv15954 Modified Files: Kolab_Server.spec Log Message: Prepare for potential patches. Index: Kolab_Server.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Server/Kolab_Server.spec,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- Kolab_Server.spec 24 Apr 2009 07:56:33 -0000 1.10 +++ Kolab_Server.spec 24 Apr 2009 09:06:10 -0000 1.11 @@ -18,6 +18,9 @@ # List of Sources Source: %{V_sourceurl}/%{V_package}-%{V_version}.tgz +# List of patches +#Patch0: issueXYZ.patch + # Build Info Prefix: %{l_prefix} BuildRoot: %{l_buildroot} @@ -38,12 +41,16 @@ %prep %setup -n %{V_package}-%{V_version} + #%patch -p0 -P 0 + + cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml + %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ - %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT $RPM_SOURCE_DIR/%{V_package}-%{V_version}.tgz + %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT package.xml rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/php/{.filemap,.lock,.channels,.depdb,.depdblock} %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} From cvs at kolab.org Fri Apr 24 11:08:14 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 24 Apr 2009 11:08:14 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Storage Kolab_Storage_0.4.0_p1.patch, NONE, 1.1 ChangeLog, 1.4, 1.5 Kolab_Storage.spec, 1.7, 1.8 Makefile, 1.6, 1.7 Message-ID: <20090424090814.8B7D3600829@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Storage In directory doto:/tmp/cvs-serv16040 Modified Files: ChangeLog Kolab_Storage.spec Makefile Added Files: Kolab_Storage_0.4.0_p1.patch Log Message: Update Makefile and spec for the new PEAR package layout. Added a patch from upstream to fix unit testing the package. --- NEW FILE: Kolab_Storage_0.4.0_p1.patch --- From: Gunnar Wrobel Subject: [PATCH] Kolab_Storage_0.4.0_p1.patch Fixes a unit test. STATUS: MERGED http://cvs.horde.org/diff.php/framework/Kolab_Storage/test/Horde/Kolab/Storage/FolderTest.php?r1=1.2.2.8&r2=1.2.2.9 Signed-off-by: Gunnar Wrobel Index: test/Horde/Kolab/Storage/FolderTest.php =================================================================== RCS file: /repository/framework/Kolab_Storage/test/Horde/Kolab/Storage/FolderTest.php,v retrieving revision 1.2.2.8 diff -u -B -r1.2.2.8 FolderTest.php --- test/Horde/Kolab/Storage/FolderTest.php 6 Jan 2009 15:23:18 -0000 1.2.2.8 +++ test/Horde/Kolab/Storage/FolderTest.php 24 Apr 2009 07:51:45 -0000 @@ -162,7 +162,7 @@ */ public function testGetImapFailNoServer() { - $session = &new Horde_Kolab_Session(); + $session = Horde_Kolab_Session::singleton('anonymous', null, true); $imap = $session->getImapParams(); $this->assertEquals('localhost', $imap['hostspec']); } Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Storage/ChangeLog,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ChangeLog 24 Feb 2009 11:57:46 -0000 1.4 +++ ChangeLog 24 Apr 2009 09:08:12 -0000 1.5 @@ -1,3 +1,7 @@ +2009-04-24 Gunnar Wrobel

+ + * Kolab_Storage.spec: Fixed unit testing. + 2009-02-24 Gunnar Wrobel

* Kolab_Storage.spec: Update to 0.4.0. Index: Kolab_Storage.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Storage/Kolab_Storage.spec,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Kolab_Storage.spec 24 Feb 2009 11:57:46 -0000 1.7 +++ Kolab_Storage.spec 24 Apr 2009 09:08:12 -0000 1.8 @@ -2,6 +2,7 @@ %define V_package Kolab_Storage %define V_version 0.4.0 %define V_release 20090224 +%define V_sourceurl http://pear.horde.org/get # Package Information Name: %{V_package} @@ -15,7 +16,10 @@ Distribution: OpenPKG # List of Sources -Source: http://pear.horde.org/get/%{V_package}-%{V_version}.tgz +Source: %{V_sourceurl}/%{V_package}-%{V_version}.tgz + +# List of patches +Patch0: Kolab_Storage_0.4.0_p1.patch # Build Info Prefix: %{l_prefix} @@ -50,12 +54,16 @@ %prep %setup -n %{V_package}-%{V_version} + %patch -p0 -P 0 + + cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml + %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ - %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT $RPM_SOURCE_DIR/%{V_package}-%{V_version}.tgz + %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT package.xml rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/php/{.filemap,.lock,.channels,.depdb,.depdblock} %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} Index: Makefile =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Storage/Makefile,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Makefile 24 Feb 2009 11:57:46 -0000 1.6 +++ Makefile 24 Apr 2009 09:08:12 -0000 1.7 @@ -1,50 +1,111 @@ -PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") -RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") +# If home is unset this Makefile assumes the Kolab server installation +# resides in /kolab. If this is not the case this Makefile must be +# called using +# +# HOME="/mykolabroot" make TARGET +# +ifeq "x$(HOME)" "x" + HOME = /kolab +endif +# If HOME is set to /root it is likely that somebody is calling this +# Makefile as root user. In this case this Makefile assumes that the +# Kolab server installation resides in /kolab. +# +# In the (hopefully) unlikely event that somebody really installed the +# Kolab server in /root this Makefile will fail. +ifeq "x$(HOME)" "x/root" + HOME = /kolab +endif + +# Set the location of the rpm binary ifeq "x$(RPM)" "x" RPM = $(HOME)/bin/openpkg rpm endif + +# Set the location for rpm source package installations ifeq "x$(KOLABRPMSRC)" "x" KOLABRPMSRC = $(HOME)/RPM/SRC endif + +# Set the location for rpm packages ifeq "x$(KOLABRPMPKG)" "x" KOLABRPMPKG = $(HOME)/RPM/PKG endif + +# Set the location for the rpm temporary directory ifeq "x$(KOLABRPMTMP)" "x" KOLABRPMTMP = $(HOME)/RPM/TMP endif +# Determine the suffix for binary packages on this system ifeq "x$(PLATTAG)" "x" PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) endif -SOURCE_URL=http://pear.horde.org/get +# Determine the staging area for collecting new source rpms +ifeq "x$(STAGING)" "x" + STAGING = ../../stage +endif + +# Determine the package name from the *.spec file +PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") + +# Determine the package version from the *.spec file +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") + +# Determine the release number from the *.spec file +RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") + +# Determine the download url for the PEAR package from the *.spec file +SOURCE_URL=$(shell grep "%define[ ]*V_sourceurl" *.spec | sed -e "s/.*V_sourceurl\s*\(.*\)/\1/") + +# Get the list of patches if there are any in this directory +PATCHES = $(shell ls *.patch 2> /dev/null) + +# Generate the full package name SOURCE_0=$(PACKAGE)-$(VERSION).tgz +# Generate a list of extra files for the package +EXTRA=ChangeLog $(PATCHES) + + +# Default target to generate the source rpm package .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm +# Target for placing the source rpm in the staging area .PHONY: dist dist: all - cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm ../../stage/ + test -d $(STAGING) || mkdir $(STAGING) + cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm $(STAGING) -.PHONY: clean -clean: - rm -rf /kolab/RPM/TMP/$(PACKAGE)* - rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - rm -rf *~ +# Target for installing the binary rpm package in our current Kolab +# server installation +.PHONY: install +install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm -$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): +# Target for retrieving the source package +$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_URL)/$(SOURCE_0)" -$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec ChangeLog $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) - cp $(PACKAGE).spec $(KOLABRPMSRC)/$(PACKAGE) +# Target for preparing the source area and building the package +$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: Makefile $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) + cp $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec +# Target for fetching the source rpm into the current directory +$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . -.PHONY: install -install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm - $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm +# Target for cleaning up the files that can be generated with this Makefile +.PHONY: clean +clean: + rm -rf $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + rm -rf $(KOLABRPMSRC)/$(PACKAGE) + rm -rf $(KOLABRPMTMP)/$(PACKAGE)* + rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm + rm -rf *~ + From cvs at kolab.org Fri Apr 24 13:00:43 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 24 Apr 2009 13:00:43 +0200 (CEST) Subject: thomas: server release-notes.txt,1.398.2.32,1.398.2.33 Message-ID: <20090424110043.731D3600829@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv19136 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: updated release notes Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.32 retrieving revision 1.398.2.33 diff -u -d -r1.398.2.32 -r1.398.2.33 --- release-notes.txt 20 Apr 2009 16:22:36 -0000 1.398.2.32 +++ release-notes.txt 24 Apr 2009 11:00:41 -0000 1.398.2.33 @@ -55,7 +55,7 @@ kolab/issue1340 (RFC: restrict users to sending mail only to internal recipients) - - Kolab_Filter-0.1.4-20090417 + - Kolab_Filter-0.1.4-20090418 kolab/issue3558 (whole-day events broken for resources) From cvs at kolab.org Fri Apr 24 19:38:30 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 24 Apr 2009 19:38:30 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Server ChangeLog, 1.4.4.1, 1.4.4.2 Kolab_Server.spec, 1.9.4.2, 1.9.4.3 mapping.patch, 1.1.2.1, 1.1.2.2 Message-ID: <20090424173830.4352D600824@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Server In directory doto:/tmp/cvs-serv30736 Modified Files: Tag: suc_branch ChangeLog Kolab_Server.spec mapping.patch Log Message: Additional fixes for configurable mapping of LDAP attributes. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Server/ChangeLog,v retrieving revision 1.4.4.1 retrieving revision 1.4.4.2 diff -u -d -r1.4.4.1 -r1.4.4.2 --- ChangeLog 23 Apr 2009 06:57:24 -0000 1.4.4.1 +++ ChangeLog 24 Apr 2009 17:38:28 -0000 1.4.4.2 @@ -1,3 +1,8 @@ +2009-04-24 Gunnar Wrobel

+ + * Kolab_Server.spec: Additional fixes for configurable mapping of + LDAP attributes. + 2009-04-23 Gunnar Wrobel

* Kolab_Server.spec: Support for configurable mapping of LDAP Index: Kolab_Server.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Server/Kolab_Server.spec,v retrieving revision 1.9.4.2 retrieving revision 1.9.4.3 diff -u -d -r1.9.4.2 -r1.9.4.3 --- Kolab_Server.spec 23 Apr 2009 09:15:34 -0000 1.9.4.2 +++ Kolab_Server.spec 24 Apr 2009 17:38:28 -0000 1.9.4.3 @@ -1,7 +1,7 @@ # Variables %define V_package Kolab_Server %define V_version 0.4.0 -%define V_release 20090423suc01 +%define V_release 20090424suc01 %define V_sourceurl http://pear.horde.org/get # Package Information Index: mapping.patch =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Server/Attic/mapping.patch,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- mapping.patch 23 Apr 2009 06:32:38 -0000 1.1.2.1 +++ mapping.patch 24 Apr 2009 17:38:28 -0000 1.1.2.2 @@ -382,7 +382,7 @@ * * @param string $attrs The attributes to return. diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/ldap.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/ldap.php -index eee8f52..ddc953f 100644 +index eee8f52..ea73b4f 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/ldap.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/ldap.php @@ -210,6 +210,7 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { @@ -393,10 +393,21 @@ $result = @ldap_read($this->_connection, $dn, '(objectclass=*)', $attrs); } else { $result = @ldap_read($this->_connection, $dn, '(objectclass=*)'); -@@ -230,6 +231,9 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { +@@ -220,7 +221,7 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + } + $entry = $this->_firstEntry($result); + if (!$entry) { +- ldap_free_result($result); ++ @ldap_free_result($result); + return PEAR::raiseError(sprintf(_("LDAP Error: Empty result for: %s."), + $dn)); + } +@@ -229,7 +230,10 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + return PEAR::raiseError(sprintf(_("LDAP Error: No such dn: %s: %s"), $dn, $this->_error())); } - ldap_free_result($result); +- ldap_free_result($result); ++ @ldap_free_result($result); + + $this->unmapAttributes($object); + @@ -530,7 +541,47 @@ return $this->_dnForFilter($filter); } -@@ -874,7 +944,13 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { +@@ -788,8 +858,17 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + function uidForAttr($attr, $value, + $restrict = KOLAB_SERVER_RESULT_SINGLE) + { +- $filter = '(&(objectClass=kolabInetOrgPerson)(' . $attr . +- '=' . Horde_LDAP::quote($value) . '))'; ++ $criteria = array('AND' => ++ array( ++ array('field' => KOLAB_ATTR_OC, ++ 'op' => '=', ++ 'test' => KOLAB_OC_KOLABINETORGPERSON), ++ array('field' => $attr, ++ 'op' => '=', ++ 'test' => $value), ++ ), ++ ); ++ $filter = $this->searchQuery($criteria); + return $this->_dnForFilter($filter, $restrict); + } + +@@ -806,8 +885,17 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + function gidForAttr($attr, $value, + $restrict = KOLAB_SERVER_RESULT_SINGLE) + { +- $filter = '(&(objectClass=kolabGroupOfNames)(' . $attr . +- '=' . Horde_LDAP::quote($value) . '))'; ++ $criteria = array('AND' => ++ array( ++ array('field' => KOLAB_ATTR_OC, ++ 'op' => '=', ++ 'test' => KOLAB_OC_KOLABGROUPOFNAMES), ++ array('field' => $attr, ++ 'op' => '=', ++ 'test' => $value), ++ ), ++ ); ++ $filter = $this->searchQuery($criteria); + return $this->_dnForFilter($filter, $restrict); + } + +@@ -874,7 +962,13 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { return $result; } $vars = get_class_vars($type); @@ -545,7 +596,7 @@ $sort = $vars['sort_by']; if (isset($params['sort'])) { -@@ -993,4 +1069,176 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { +@@ -993,4 +1087,176 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } } @@ -696,9 +747,9 @@ + { + if (!empty($this->_params['map'])) { + foreach ($this->_params['map'] as $attribute => $map) { -+ if (in_array($attribute, $keys)) { -+ $keys = array_diff($keys, array($attribute)); -+ $keys[] = $map; ++ $key = array_search($attribute, $keys); ++ if ($key !== false) { ++ $keys[$key] = $map; + } + } + } From cvs at kolab.org Fri Apr 24 19:42:22 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 24 Apr 2009 19:42:22 +0200 (CEST) Subject: gunnar: server/kolab-webclient ChangeLog, 1.10.2.3.2.1, 1.10.2.3.2.2 kolab-webclient.spec, 1.23.2.6.2.5, 1.23.2.6.2.6 Message-ID: <20090424174222.211AF600824@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv30845/kolab-webclient Modified Files: Tag: suc_branch ChangeLog kolab-webclient.spec Log Message: Additional fixes for configurable mapping of LDAP attributes. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webclient/ChangeLog,v retrieving revision 1.10.2.3.2.1 retrieving revision 1.10.2.3.2.2 diff -u -d -r1.10.2.3.2.1 -r1.10.2.3.2.2 --- ChangeLog 23 Apr 2009 06:57:00 -0000 1.10.2.3.2.1 +++ ChangeLog 24 Apr 2009 17:42:20 -0000 1.10.2.3.2.2 @@ -1,3 +1,8 @@ +2009-04-24 Gunnar Wrobel

+ + * kolab-webclient.spec: Additional fixes for configurable mapping + of LDAP attributes. + 2009-04-23 Gunnar Wrobel

* kolab-webclient.spec: Support for configurable mapping of LDAP Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.23.2.6.2.5 retrieving revision 1.23.2.6.2.6 diff -u -d -r1.23.2.6.2.5 -r1.23.2.6.2.6 --- kolab-webclient.spec 23 Apr 2009 12:13:41 -0000 1.23.2.6.2.5 +++ kolab-webclient.spec 24 Apr 2009 17:42:20 -0000 1.23.2.6.2.6 @@ -3,12 +3,12 @@ %define V_package kolab-webclient %define V_year 2009 %define V_month 04 -%define V_day 23 +%define V_day 24 %define V_version 1.2.0 %define V_source_version 1.2 %define V_passwd_version 3.0.1 %define V_date %{V_year}-%{V_month}-%{V_day} -%define V_release %{V_year}%{V_month}%{V_day}suc05 +%define V_release %{V_year}%{V_month}%{V_day}suc01 # Package Information Name: %{V_package} From cvs at kolab.org Fri Apr 24 19:42:22 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 24 Apr 2009 19:42:22 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0/tg t_Kolab__Server_HK_GW_MappableAttributes.diff, 1.1.2.1, 1.1.2.2 Message-ID: <20090424174222.99F77600824@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0/tg In directory doto:/tmp/cvs-serv30845/patches/horde-webmail/1.2.0/tg Modified Files: Tag: suc_branch t_Kolab__Server_HK_GW_MappableAttributes.diff Log Message: Additional fixes for configurable mapping of LDAP attributes. Index: t_Kolab__Server_HK_GW_MappableAttributes.diff =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/tg/Attic/t_Kolab__Server_HK_GW_MappableAttributes.diff,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- t_Kolab__Server_HK_GW_MappableAttributes.diff 23 Apr 2009 12:05:10 -0000 1.1.2.1 +++ t_Kolab__Server_HK_GW_MappableAttributes.diff 24 Apr 2009 17:42:20 -0000 1.1.2.2 @@ -11,13 +11,13 @@ .../lib/Horde/Kolab/Server/Object/address.php | 33 ++- .../lib/Horde/Kolab/Server/Object/adminrole.php | 35 ++- .../lib/Horde/Kolab/Server/Object/distlist.php | 30 ++- - .../lib/Horde/Kolab/Server/Object/group.php | 23 ++- + .../lib/Horde/Kolab/Server/Object/group.php | 23 +- .../lib/Horde/Kolab/Server/Object/server.php | 21 ++- - .../lib/Horde/Kolab/Server/Object/sharedfolder.php | 23 ++- + .../lib/Horde/Kolab/Server/Object/sharedfolder.php | 23 +- .../lib/Horde/Kolab/Server/Object/user.php | 32 ++- - horde-webmail/lib/Horde/Kolab/Server/ldap.php | 276 +++++++++++++++++++- + horde-webmail/lib/Horde/Kolab/Server/ldap.php | 308 ++++++++++++++++++-- horde-webmail/lib/Horde/Kolab/Server/test.php | 20 ++- - 11 files changed, 442 insertions(+), 68 deletions(-) + 11 files changed, 467 insertions(+), 75 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Server.php b/horde-webmail/lib/Horde/Kolab/Server.php index bf251f5..fd0bda7 100644 @@ -403,9 +403,18 @@ * * @param string $attrs The attributes to return. diff --git a/horde-webmail/lib/Horde/Kolab/Server/ldap.php b/horde-webmail/lib/Horde/Kolab/Server/ldap.php -index a50ba2c..2f39d47 100644 +index a50ba2c..ea73b4f 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/ldap.php +++ b/horde-webmail/lib/Horde/Kolab/Server/ldap.php +@@ -2,7 +2,7 @@ + /** + * The driver for accessing the Kolab user database stored in LDAP. + * +- * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/ldap.php,v 1.2.2.2 2008/08/01 07:56:19 wrobel Exp $ ++ * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/ldap.php,v 1.2.2.10 2009/02/24 07:39:47 wrobel Exp $ + * + * PHP version 4 + * @@ -210,6 +210,7 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } @@ -414,10 +423,21 @@ $result = @ldap_read($this->_connection, $dn, '(objectclass=*)', $attrs); } else { $result = @ldap_read($this->_connection, $dn, '(objectclass=*)'); -@@ -230,6 +231,9 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { +@@ -220,7 +221,7 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + } + $entry = $this->_firstEntry($result); + if (!$entry) { +- ldap_free_result($result); ++ @ldap_free_result($result); + return PEAR::raiseError(sprintf(_("LDAP Error: Empty result for: %s."), + $dn)); + } +@@ -229,7 +230,10 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + return PEAR::raiseError(sprintf(_("LDAP Error: No such dn: %s: %s"), $dn, $this->_error())); } - ldap_free_result($result); +- ldap_free_result($result); ++ @ldap_free_result($result); + + $this->unmapAttributes($object); + @@ -551,7 +571,47 @@ return $this->_dnForFilter($filter); } -@@ -874,7 +944,13 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { +@@ -788,8 +858,17 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + function uidForAttr($attr, $value, + $restrict = KOLAB_SERVER_RESULT_SINGLE) + { +- $filter = '(&(objectClass=kolabInetOrgPerson)(' . $attr . +- '=' . Horde_LDAP::quote($value) . '))'; ++ $criteria = array('AND' => ++ array( ++ array('field' => KOLAB_ATTR_OC, ++ 'op' => '=', ++ 'test' => KOLAB_OC_KOLABINETORGPERSON), ++ array('field' => $attr, ++ 'op' => '=', ++ 'test' => $value), ++ ), ++ ); ++ $filter = $this->searchQuery($criteria); + return $this->_dnForFilter($filter, $restrict); + } + +@@ -806,8 +885,17 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + function gidForAttr($attr, $value, + $restrict = KOLAB_SERVER_RESULT_SINGLE) + { +- $filter = '(&(objectClass=kolabGroupOfNames)(' . $attr . +- '=' . Horde_LDAP::quote($value) . '))'; ++ $criteria = array('AND' => ++ array( ++ array('field' => KOLAB_ATTR_OC, ++ 'op' => '=', ++ 'test' => KOLAB_OC_KOLABGROUPOFNAMES), ++ array('field' => $attr, ++ 'op' => '=', ++ 'test' => $value), ++ ), ++ ); ++ $filter = $this->searchQuery($criteria); + return $this->_dnForFilter($filter, $restrict); + } + +@@ -874,7 +962,13 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { return $result; } $vars = get_class_vars($type); @@ -566,7 +626,7 @@ $sort = $vars['sort_by']; if (isset($params['sort'])) { -@@ -993,4 +1069,176 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { +@@ -993,4 +1087,176 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } } @@ -717,9 +777,9 @@ + { + if (!empty($this->_params['map'])) { + foreach ($this->_params['map'] as $attribute => $map) { -+ if (in_array($attribute, $keys)) { -+ $keys = array_diff($keys, array($attribute)); -+ $keys[] = $map; ++ $key = array_search($attribute, $keys); ++ if ($key !== false) { ++ $keys[$key] = $map; + } + } + } @@ -815,6 +875,12 @@ -- TOPGIT patch commit log ======================= + +commit 296112ac1021e0433ca9578a700c8f066bc139a9 +Author: Gunnar Wrobel

+Date: Fri Apr 24 19:30:10 2009 +0200 + + Fixed mapping of attributes. Fixed uidForAttr and gidForAttr. commit a2525f3bf8a77431e4cd28bd92e1cb9fec14e392 Author: Gunnar Wrobel

From cvs at kolab.org Fri Apr 24 19:42:22 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 24 Apr 2009 19:42:22 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0 horde-webmail-1.2.0_kolab_openpkg.patch, 1.32.2.4.2.5, 1.32.2.4.2.6 Message-ID: <20090424174222.E246C600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0 In directory doto:/tmp/cvs-serv30845/patches/horde-webmail/1.2.0 Modified Files: Tag: suc_branch horde-webmail-1.2.0_kolab_openpkg.patch Log Message: Additional fixes for configurable mapping of LDAP attributes. Index: horde-webmail-1.2.0_kolab_openpkg.patch =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/horde-webmail-1.2.0_kolab_openpkg.patch,v retrieving revision 1.32.2.4.2.5 retrieving revision 1.32.2.4.2.6 diff -u -d -r1.32.2.4.2.5 -r1.32.2.4.2.6 --- horde-webmail-1.2.0_kolab_openpkg.patch 23 Apr 2009 12:05:09 -0000 1.32.2.4.2.5 +++ horde-webmail-1.2.0_kolab_openpkg.patch 24 Apr 2009 17:42:20 -0000 1.32.2.4.2.6 @@ -26040,13 +26040,13 @@ .../lib/Horde/Kolab/Server/Object/address.php | 33 ++- .../lib/Horde/Kolab/Server/Object/adminrole.php | 35 ++- .../lib/Horde/Kolab/Server/Object/distlist.php | 30 ++- - .../lib/Horde/Kolab/Server/Object/group.php | 23 ++- + .../lib/Horde/Kolab/Server/Object/group.php | 23 +- .../lib/Horde/Kolab/Server/Object/server.php | 21 ++- - .../lib/Horde/Kolab/Server/Object/sharedfolder.php | 23 ++- + .../lib/Horde/Kolab/Server/Object/sharedfolder.php | 23 +- .../lib/Horde/Kolab/Server/Object/user.php | 32 ++- - horde-webmail/lib/Horde/Kolab/Server/ldap.php | 276 +++++++++++++++++++- + horde-webmail/lib/Horde/Kolab/Server/ldap.php | 308 ++++++++++++++++++-- horde-webmail/lib/Horde/Kolab/Server/test.php | 20 ++- - 11 files changed, 442 insertions(+), 68 deletions(-) + 11 files changed, 467 insertions(+), 75 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Server.php b/horde-webmail/lib/Horde/Kolab/Server.php index bf251f5..fd0bda7 100644 @@ -26432,9 +26432,18 @@ * * @param string $attrs The attributes to return. diff --git a/horde-webmail/lib/Horde/Kolab/Server/ldap.php b/horde-webmail/lib/Horde/Kolab/Server/ldap.php -index a50ba2c..2f39d47 100644 +index a50ba2c..ea73b4f 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/ldap.php +++ b/horde-webmail/lib/Horde/Kolab/Server/ldap.php +@@ -2,7 +2,7 @@ + /** + * The driver for accessing the Kolab user database stored in LDAP. + * +- * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/ldap.php,v 1.2.2.2 2008/08/01 07:56:19 wrobel Exp $ ++ * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/ldap.php,v 1.2.2.10 2009/02/24 07:39:47 wrobel Exp $ + * + * PHP version 4 + * @@ -210,6 +210,7 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } @@ -26443,10 +26452,21 @@ $result = @ldap_read($this->_connection, $dn, '(objectclass=*)', $attrs); } else { $result = @ldap_read($this->_connection, $dn, '(objectclass=*)'); -@@ -230,6 +231,9 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { +@@ -220,7 +221,7 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + } + $entry = $this->_firstEntry($result); + if (!$entry) { +- ldap_free_result($result); ++ @ldap_free_result($result); + return PEAR::raiseError(sprintf(_("LDAP Error: Empty result for: %s."), + $dn)); + } +@@ -229,7 +230,10 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + return PEAR::raiseError(sprintf(_("LDAP Error: No such dn: %s: %s"), $dn, $this->_error())); } - ldap_free_result($result); +- ldap_free_result($result); ++ @ldap_free_result($result); + + $this->unmapAttributes($object); + @@ -26580,7 +26600,47 @@ return $this->_dnForFilter($filter); } -@@ -874,7 +944,13 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { +@@ -788,8 +858,17 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + function uidForAttr($attr, $value, + $restrict = KOLAB_SERVER_RESULT_SINGLE) + { +- $filter = '(&(objectClass=kolabInetOrgPerson)(' . $attr . +- '=' . Horde_LDAP::quote($value) . '))'; ++ $criteria = array('AND' => ++ array( ++ array('field' => KOLAB_ATTR_OC, ++ 'op' => '=', ++ 'test' => KOLAB_OC_KOLABINETORGPERSON), ++ array('field' => $attr, ++ 'op' => '=', ++ 'test' => $value), ++ ), ++ ); ++ $filter = $this->searchQuery($criteria); + return $this->_dnForFilter($filter, $restrict); + } + +@@ -806,8 +885,17 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { + function gidForAttr($attr, $value, + $restrict = KOLAB_SERVER_RESULT_SINGLE) + { +- $filter = '(&(objectClass=kolabGroupOfNames)(' . $attr . +- '=' . Horde_LDAP::quote($value) . '))'; ++ $criteria = array('AND' => ++ array( ++ array('field' => KOLAB_ATTR_OC, ++ 'op' => '=', ++ 'test' => KOLAB_OC_KOLABGROUPOFNAMES), ++ array('field' => $attr, ++ 'op' => '=', ++ 'test' => $value), ++ ), ++ ); ++ $filter = $this->searchQuery($criteria); + return $this->_dnForFilter($filter, $restrict); + } + +@@ -874,7 +962,13 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { return $result; } $vars = get_class_vars($type); @@ -26595,7 +26655,7 @@ $sort = $vars['sort_by']; if (isset($params['sort'])) { -@@ -993,4 +1069,176 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { +@@ -993,4 +1087,176 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } } @@ -26746,9 +26806,9 @@ + { + if (!empty($this->_params['map'])) { + foreach ($this->_params['map'] as $attribute => $map) { -+ if (in_array($attribute, $keys)) { -+ $keys = array_diff($keys, array($attribute)); -+ $keys[] = $map; ++ $key = array_search($attribute, $keys); ++ if ($key !== false) { ++ $keys[$key] = $map; + } + } + } @@ -26844,6 +26904,12 @@ -- TOPGIT patch commit log ======================= + +commit 296112ac1021e0433ca9578a700c8f066bc139a9 +Author: Gunnar Wrobel

+Date: Fri Apr 24 19:30:10 2009 +0200 + + Fixed mapping of attributes. Fixed uidForAttr and gidForAttr. commit a2525f3bf8a77431e4cd28bd92e1cb9fec14e392 Author: Gunnar Wrobel

From cvs at kolab.org Fri Apr 24 21:47:39 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 24 Apr 2009 21:47:39 +0200 (CEST) Subject: gunnar: server/kolab-webclient Makefile,1.6.4.1,1.6.4.2 Message-ID: <20090424194739.83763600819@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv1084/kolab-webclient Modified Files: Tag: suc_branch Makefile Log Message: Fix release number. Index: Makefile =================================================================== RCS file: /kolabrepository/server/kolab-webclient/Makefile,v retrieving revision 1.6.4.1 retrieving revision 1.6.4.2 diff -u -d -r1.6.4.1 -r1.6.4.2 --- Makefile 23 Apr 2009 12:13:41 -0000 1.6.4.1 +++ Makefile 24 Apr 2009 19:47:37 -0000 1.6.4.2 @@ -26,7 +26,7 @@ VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9._a-z]*\).*/\1/") SOURCE_VERSION = $(shell grep "%define[ ]*V_source_version" *.spec | sed -e "s/.*V_source_version\s*\([0-9._a-z-]*\).*/\1/") PASSWD_VERSION = $(shell grep "%define[ ]*V_passwd_version" *.spec | sed -e "s/.*V_passwd_version\s*\([0-9._a-z]*\).*/\1/") -RELEASE = ${YEAR}${MONTH}${DAY}suc05 +RELEASE = ${YEAR}${MONTH}${DAY}suc01 PATCHES = ../patches/horde-webmail/$(VERSION)/horde-webmail-$(VERSION)_kolab_openpkg.patch TEMPLATES = $(shell find . -name "*.template") From cvs at kolab.org Sat Apr 25 13:36:31 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 25 Apr 2009 13:36:31 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.436,1.437 Message-ID: <20090425113631.04AE0600824@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv10885 Modified Files: release-notes.txt Log Message: kolab/issue3450 has been part of Kolab_FreeBusy-0.1.4 so it is fixed in HEAD. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.436 retrieving revision 1.437 diff -u -d -r1.436 -r1.437 --- release-notes.txt 24 Apr 2009 06:20:52 -0000 1.436 +++ release-notes.txt 25 Apr 2009 11:36:28 -0000 1.437 @@ -155,7 +155,7 @@ kolab/issue3413 (freebusy fails after uprading Kolab_FreeBusy until kolabconf is run) kolab/issue3438 (kolabFreeBusyPast is not used) -TODO: kolab/issue3450 (freebusy/user at example.com.ifb returns extended + kolab/issue3450 (freebusy/user at example.com.ifb returns extended free/busy information) TODO: kolab/issue3537 (Allowing xfb access to groups does not work) From cvs at kolab.org Sat Apr 25 13:43:16 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 25 Apr 2009 13:43:16 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Server ChangeLog, 1.4, 1.5 Kolab_Server.spec, 1.11, 1.12 Message-ID: <20090425114316.EE0BC600824@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Server In directory doto:/tmp/cvs-serv11052 Modified Files: ChangeLog Kolab_Server.spec Log Message: * Kolab_Server.spec: Update to 0.5.0 Support configurable attribute mapping. Added getGroupAddresses() to return the mail addresses of groups the user belongs to. kolab/issue3537 (Allowing xfb access to groups does not work) https://www.intevation.de/roundup/kolab/issue3537 Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Server/ChangeLog,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ChangeLog 24 Feb 2009 11:57:46 -0000 1.4 +++ ChangeLog 25 Apr 2009 11:43:13 -0000 1.5 @@ -1,3 +1,14 @@ +2009-04-25 Gunnar Wrobel

+ + * Kolab_Server.spec: Update to 0.5.0 + + Support configurable attribute mapping. + + Added getGroupAddresses() to return the mail addresses of groups + the user belongs to. + kolab/issue3537 (Allowing xfb access to groups does not work) + https://www.intevation.de/roundup/kolab/issue3537 + 2009-02-24 Gunnar Wrobel

* Kolab_Server.spec: Update to 0.4.0. Index: Kolab_Server.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Server/Kolab_Server.spec,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- Kolab_Server.spec 24 Apr 2009 09:06:10 -0000 1.11 +++ Kolab_Server.spec 25 Apr 2009 11:43:13 -0000 1.12 @@ -1,7 +1,7 @@ # Variables %define V_package Kolab_Server -%define V_version 0.4.0 -%define V_release 20090224 +%define V_version 0.5.0 +%define V_release 20090225 %define V_sourceurl http://pear.horde.org/get # Package Information From cvs at kolab.org Sat Apr 25 13:54:51 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 25 Apr 2009 13:54:51 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.437,1.438 Message-ID: <20090425115451.BE862600824@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv11331 Modified Files: release-notes.txt Log Message: - Kolab_Server-0.5.0-2009???? Support configurable attribute mapping. kolab/issue3537 (Allowing xfb access to groups does not work) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.437 retrieving revision 1.438 diff -u -d -r1.437 -r1.438 --- release-notes.txt 25 Apr 2009 11:36:28 -0000 1.437 +++ release-notes.txt 25 Apr 2009 11:54:49 -0000 1.438 @@ -45,6 +45,12 @@ kolab/issue3527 (no immediately printing of folders during freebusy cache regeneration) + - Kolab_Server-0.5.0-2009???? + + Support configurable attribute mapping. + + kolab/issue3537 (Allowing xfb access to groups does not work) + - kolabd-2.?.?-2009???? Corrected a syntax error in dist_conf/debian From cvs at kolab.org Sat Apr 25 14:37:55 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 25 Apr 2009 14:37:55 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Server Kolab_Server-0.5.0_p1.patch, NONE, 1.1 Kolab_Server.spec, 1.12, 1.13 Message-ID: <20090425123755.CE437600824@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Server In directory doto:/tmp/cvs-serv13875 Modified Files: Kolab_Server.spec Added Files: Kolab_Server-0.5.0_p1.patch Log Message: Fetching group mail addresses will be easier if also available via the user object. Added corresponding patch from upstream. --- NEW FILE: Kolab_Server-0.5.0_p1.patch --- ? Kolab_Server-0.5.0.tgz ? Kolab_Server-0.5.0_p1.patch Index: lib/Horde/Kolab/Server/Object/user.php =================================================================== RCS file: /repository/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Attic/user.php,v retrieving revision 1.2.2.11 diff -u -B -r1.2.2.11 user.php --- lib/Horde/Kolab/Server/Object/user.php 25 Apr 2009 08:56:33 -0000 1.2.2.11 +++ lib/Horde/Kolab/Server/Object/user.php 25 Apr 2009 12:34:45 -0000 @@ -203,6 +203,17 @@ } /** + * Get the group mail addresses for this object + * + * @return mixed|PEAR_Error An array of group addresses, false if no groups were + * found. + */ + function getGroupAddresses() + { + return $this->_db->getGroupAddresses($this->_uid); + } + + /** * Returns the server url of the given type for this user. * * This method is used to encapsulate multidomain support. Index: Kolab_Server.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Server/Kolab_Server.spec,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- Kolab_Server.spec 25 Apr 2009 11:43:13 -0000 1.12 +++ Kolab_Server.spec 25 Apr 2009 12:37:53 -0000 1.13 @@ -19,7 +19,7 @@ Source: %{V_sourceurl}/%{V_package}-%{V_version}.tgz # List of patches -#Patch0: issueXYZ.patch +Patch0: Kolab_Server-0.5.0_p1.patch # Build Info Prefix: %{l_prefix} @@ -41,7 +41,7 @@ %prep %setup -n %{V_package}-%{V_version} - #%patch -p0 -P 0 + %patch -p0 -P 0 cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml From cvs at kolab.org Sat Apr 25 20:56:48 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 25 Apr 2009 20:56:48 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Storage Kolab_Storage_0.4.0_p2.patch, NONE, 1.1 ChangeLog, 1.5, 1.6 Kolab_Storage.spec, 1.8, 1.9 Message-ID: <20090425185648.BA4B8600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Storage In directory doto:/tmp/cvs-serv25404 Modified Files: ChangeLog Kolab_Storage.spec Added Files: Kolab_Storage_0.4.0_p2.patch Log Message: Add another patch from upstream that fixes testing in the Kolab_FreeBusy package. --- NEW FILE: Kolab_Storage_0.4.0_p2.patch --- From: Gunnar Wrobel Subject: [PATCH] Kolab_Storage_0.4.0_p2.patch Fixes unit testing in Kolab_FreeBusy. STATUS: MERGED http://lists.horde.org/archives/cvs/Week-of-Mon-20090420/087649.html http://lists.horde.org/archives/cvs/Week-of-Mon-20090420/087650.html Signed-off-by: Gunnar Wrobel Index: lib/Horde/Kolab/Storage/Folder.php =================================================================== RCS file: /repository/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Folder.php,v retrieving revision 1.7.2.19 diff -u -B -r1.7.2.19 Folder.php --- lib/Horde/Kolab/Storage/Folder.php 24 Feb 2009 07:40:40 -0000 1.7.2.19 +++ lib/Horde/Kolab/Storage/Folder.php 25 Apr 2009 18:41:09 -0000 @@ -1422,6 +1422,11 @@ return $iresult; } + if (!empty($this->_perms)) { + /** Refresh the cache after changing the permissions */ + $this->_perms->getPerm(); + } + $result = $this->trigger(); if (is_a($result, 'PEAR_Error')) { Horde::logMessage(sprintf('Failed triggering folder %s! Error was: %s', Index: lib/Horde/Kolab/Storage/List.php =================================================================== RCS file: /repository/framework/Kolab_Storage/lib/Horde/Kolab/Storage/List.php,v retrieving revision 1.3.2.7 diff -u -B -r1.3.2.7 List.php --- lib/Horde/Kolab/Storage/List.php 23 Feb 2009 21:33:19 -0000 1.3.2.7 +++ lib/Horde/Kolab/Storage/List.php 25 Apr 2009 18:41:10 -0000 @@ -96,7 +96,7 @@ * * @return Kolab_Folders_List The concrete List reference. */ - function &singleton() + function &singleton($destruct = false) { static $list; @@ -107,7 +107,7 @@ $list = $session->query('kolab_folderlist'); } - if (empty($list[Auth::getAuth()])) { + if (empty($list[Auth::getAuth()]) || $destruct) { $list[Auth::getAuth()] = new Kolab_List(); } Index: lib/Horde/Kolab/Test/Storage.php =================================================================== RCS file: /repository/framework/Kolab_Storage/lib/Horde/Kolab/Test/Storage.php,v retrieving revision 1.1.2.4 diff -u -B -r1.1.2.4 Storage.php --- lib/Horde/Kolab/Test/Storage.php 24 Feb 2009 07:40:40 -0000 1.1.2.4 +++ lib/Horde/Kolab/Test/Storage.php 25 Apr 2009 18:41:10 -0000 @@ -92,6 +92,11 @@ $folder->setName($arguments[0]); $world['folder_creation'] = $folder->save(array('type' => 'event', 'default' => true)); + $folder->setACL(Auth::getAuth(), 'alrid'); + break; + case 'allow a group full access to a folder': + $folder = $world['storage']->getFolder($arguments[1]); + $folder->setACL($arguments[0], 'alrid'); break; case 'retrieving the list of shares for the application': require_once 'Horde/Share.php'; @@ -100,6 +105,11 @@ $world['list'] = $shares->listShares(Auth::getAuth()); break; + case 'logging in as a user with a password': + $world['login'] = $world['auth']->authenticate($arguments[0], + array('password' => $arguments[1])); + $world['storage'] = &$this->prepareEmptyKolabStorage(); + return parent::runWhen($world, $action, $arguments); default: return parent::runWhen($world, $action, $arguments); } @@ -153,7 +163,7 @@ $GLOBALS['KOLAB_TESTING'] = array(); /** Prepare a Kolab test storage */ - $storage = Kolab_List::singleton(); + $storage = Kolab_List::singleton(true); return $storage; } Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Storage/ChangeLog,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- ChangeLog 24 Apr 2009 09:08:12 -0000 1.5 +++ ChangeLog 25 Apr 2009 18:56:46 -0000 1.6 @@ -1,3 +1,8 @@ +2009-04-25 Gunnar Wrobel

+ + * Kolab_Storage_0.4.0_p2.patch: Fixes unit testing in + Kolab_FreeBusy. + 2009-04-24 Gunnar Wrobel

* Kolab_Storage.spec: Fixed unit testing. Index: Kolab_Storage.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Storage/Kolab_Storage.spec,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- Kolab_Storage.spec 24 Apr 2009 09:08:12 -0000 1.8 +++ Kolab_Storage.spec 25 Apr 2009 18:56:46 -0000 1.9 @@ -20,6 +20,7 @@ # List of patches Patch0: Kolab_Storage_0.4.0_p1.patch +Patch1: Kolab_Storage_0.4.0_p2.patch # Build Info Prefix: %{l_prefix} @@ -55,6 +56,7 @@ %setup -n %{V_package}-%{V_version} %patch -p0 -P 0 + %patch -p0 -P 1 cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml From cvs at kolab.org Sat Apr 25 21:13:34 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 25 Apr 2009 21:13:34 +0200 (CEST) Subject: gunnar: server Makefile,1.77,1.78 Message-ID: <20090425191334.2FF97600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv26118 Modified Files: Makefile Log Message: Ensure earlier tests don't affect lates ones. Index: Makefile =================================================================== RCS file: /kolabrepository/server/Makefile,v retrieving revision 1.77 retrieving revision 1.78 diff -u -d -r1.77 -r1.78 --- Makefile 24 Apr 2009 07:34:43 -0000 1.77 +++ Makefile 25 Apr 2009 19:13:32 -0000 1.78 @@ -171,6 +171,7 @@ test: @for TEST in $(PHPUNIT_TESTS); \ do \ + PHPUNIT=''; \ $(PHPUNIT) -d log_errors=1 -d error_log="/tmp/$${TEST//\//_}-php-errors.log" $$TEST 2>&1 | tee -a /tmp/$${TEST//\//_}-phpunit.log | grep "^OK" > /dev/null || PHPUNIT="FAIL"; \ if [ -n "$$PHPUNIT" ]; then \ echo; \ From cvs at kolab.org Sat Apr 25 21:24:47 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 25 Apr 2009 21:24:47 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.438,1.439 Message-ID: <20090425192447.573E4600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv26802 Modified Files: release-notes.txt Log Message: * Kolab_FreeBusy.spec: Update to 0.1.5 Improved handling of dba access. Extended support for more complex scenario testing. kolab/issue3537 (Allowing xfb access to groups does not work) https://www.intevation.de/roundup/kolab/issue3537 Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.438 retrieving revision 1.439 diff -u -d -r1.438 -r1.439 --- release-notes.txt 25 Apr 2009 11:54:49 -0000 1.438 +++ release-notes.txt 25 Apr 2009 19:24:45 -0000 1.439 @@ -35,7 +35,10 @@ kolab/issue3525 (free/busy regeneration aborts for unparsable events) kolab/issue3528 (Events with broken encoding should work) - - Kolab_FreeBusy-0.1.4-2009???? + - Kolab_FreeBusy-0.1.5-2009???? + + Improved handling of dba access. + Extended support for more complex scenario testing. kolab/issue3415 (freebusy cache regeneration on the command line looks confusing) @@ -44,6 +47,7 @@ free/busy information) kolab/issue3527 (no immediately printing of folders during freebusy cache regeneration) + kolab/issue3537 (Allowing xfb access to groups does not work) - Kolab_Server-0.5.0-2009???? @@ -155,7 +159,6 @@ kolab/issue3525 (free/busy regeneration aborts for unparsable events) -TODO: - Kolab_FreeBusy-0.1.2-20090406 kolab/issue3413 (freebusy fails after uprading Kolab_FreeBusy @@ -163,7 +166,7 @@ kolab/issue3438 (kolabFreeBusyPast is not used) kolab/issue3450 (freebusy/user at example.com.ifb returns extended free/busy information) -TODO: kolab/issue3537 (Allowing xfb access to groups does not work) + kolab/issue3537 (Allowing xfb access to groups does not work) - kolab-webadmin-2.2.1-20090331 From cvs at kolab.org Sat Apr 25 21:24:47 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 25 Apr 2009 21:24:47 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Freebusy ChangeLog, 1.27, 1.28 Kolab_FreeBusy.spec, 1.20, 1.21 Message-ID: <20090425192447.5C3EA60082D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Freebusy In directory doto:/tmp/cvs-serv26802/php-kolab/Kolab_Freebusy Modified Files: ChangeLog Kolab_FreeBusy.spec Log Message: * Kolab_FreeBusy.spec: Update to 0.1.5 Improved handling of dba access. Extended support for more complex scenario testing. kolab/issue3537 (Allowing xfb access to groups does not work) https://www.intevation.de/roundup/kolab/issue3537 Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Freebusy/ChangeLog,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- ChangeLog 2 Apr 2009 18:54:57 -0000 1.27 +++ ChangeLog 25 Apr 2009 19:24:45 -0000 1.28 @@ -1,3 +1,13 @@ +2009-04-25 Gunnar Wrobel

+ + * Kolab_FreeBusy.spec: Update to 0.1.5 + + Improved handling of dba access. + Extended support for more complex scenario testing. + + kolab/issue3537 (Allowing xfb access to groups does not work) + https://www.intevation.de/roundup/kolab/issue3537 + 2009-04-02 Gunnar Wrobel

* Kolab_FreeBusy.spec: Update to 0.1.4. Index: Kolab_FreeBusy.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Freebusy/Kolab_FreeBusy.spec,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- Kolab_FreeBusy.spec 2 Apr 2009 18:54:57 -0000 1.20 +++ Kolab_FreeBusy.spec 25 Apr 2009 19:24:45 -0000 1.21 @@ -1,7 +1,7 @@ # Variables %define V_package Kolab_FreeBusy -%define V_version 0.1.4 -%define V_release 20090402 +%define V_version 0.1.5 +%define V_release 20090425 %define V_sourceurl http://pear.horde.org/get # Package Information From cvs at kolab.org Sat Apr 25 23:01:46 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 25 Apr 2009 23:01:46 +0200 (CEST) Subject: gunnar: server/kolab-webclient/patches - New directory Message-ID: <20090425210146.9FC64600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient/patches In directory doto:/tmp/cvs-serv28705/patches Log Message: Directory /kolabrepository/server/kolab-webclient/patches added to the repository From cvs at kolab.org Sat Apr 25 23:02:04 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 25 Apr 2009 23:02:04 +0200 (CEST) Subject: gunnar: server/kolab-webclient/patches/1.2.0 - New directory Message-ID: <20090425210204.2C2F160082D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient/patches/1.2.0 In directory doto:/tmp/cvs-serv28743/1.2.0 Log Message: Directory /kolabrepository/server/kolab-webclient/patches/1.2.0 added to the repository From cvs at kolab.org Sat Apr 25 23:02:15 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 25 Apr 2009 23:02:15 +0200 (CEST) Subject: gunnar: server/kolab-webclient/patches/1.2.0/KOLAB - New directory Message-ID: <20090425210215.A147360082E@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB In directory doto:/tmp/cvs-serv28757/KOLAB Log Message: Directory /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB added to the repository From cvs at kolab.org Sat Apr 25 23:12:39 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 25 Apr 2009 23:12:39 +0200 (CEST) Subject: gunnar: server/kolab-webclient Makefile, 1.6, 1.7 kolab-webclient.spec, 1.24, 1.25 Message-ID: <20090425211239.9A4C1600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv29177 Modified Files: Makefile kolab-webclient.spec Log Message: Update Makefile and allow automatic generation of the combined patch from the patch series without storing the intermediate result in CVS. Index: Makefile =================================================================== RCS file: /kolabrepository/server/kolab-webclient/Makefile,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Makefile 5 Feb 2009 23:28:10 -0000 1.6 +++ Makefile 25 Apr 2009 21:12:37 -0000 1.7 @@ -1,20 +1,53 @@ +# If home is unset this Makefile assumes the Kolab server installation +# resides in /kolab. If this is not the case this Makefile must be +# called using +# +# HOME="/mykolabroot" make TARGET +# +ifeq "x$(HOME)" "x" + HOME = /kolab +endif + +# If HOME is set to /root it is likely that somebody is calling this +# Makefile as root user. In this case this Makefile assumes that the +# Kolab server installation resides in /kolab. +# +# In the (hopefully) unlikely event that somebody really installed the +# Kolab server in /root this Makefile will fail. +ifeq "x$(HOME)" "x/root" + HOME = /kolab +endif + +# Set the location of the rpm binary ifeq "x$(RPM)" "x" RPM = $(HOME)/bin/openpkg rpm endif + +# Set the location for rpm source package installations ifeq "x$(KOLABRPMSRC)" "x" KOLABRPMSRC = $(HOME)/RPM/SRC endif + +# Set the location for rpm packages ifeq "x$(KOLABRPMPKG)" "x" KOLABRPMPKG = $(HOME)/RPM/PKG endif + +# Set the location for the rpm temporary directory ifeq "x$(KOLABRPMTMP)" "x" KOLABRPMTMP = $(HOME)/RPM/TMP endif +# Determine the suffix for binary packages on this system ifeq "x$(PLATTAG)" "x" PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) endif +# Determine the staging area for collecting new source rpms +ifeq "x$(STAGING)" "x" + STAGING = ../stage +endif + HORDE_NAME = $(shell grep "%define[ ]*V_horde_name" *.spec | sed -e "s/.*V_horde_name \([a-z-]*\).*/\1/") YEAR = $(shell grep "%define[ ]*V_year" *.spec | sed -e "s/.*V_year\s*\([0-9]*\).*/\1/") MONTH = $(shell grep "%define[ ]*V_month" *.spec | sed -e "s/.*V_month\s*\([0-9]*\).*/\1/") @@ -28,7 +61,7 @@ PASSWD_VERSION = $(shell grep "%define[ ]*V_passwd_version" *.spec | sed -e "s/.*V_passwd_version\s*\([0-9._a-z]*\).*/\1/") RELEASE = ${YEAR}${MONTH}${DAY} -PATCHES = ../patches/horde-webmail/$(VERSION)/horde-webmail-$(VERSION)_kolab_openpkg.patch +PATCHES = ./patches/$(VERSION)/KOLAB TEMPLATES = $(shell find . -name "*.template") CONFIGS = $(shell find . -name "*.php") @@ -51,12 +84,17 @@ rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm rm -rf *~ -$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec $(TEMPLATES) $(CONFIGS) ChangeLog +$(KOLABRPMSRC)/$(PACKAGE)/$(PACKAGE_0): test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_0)" && wget -c "$(SOURCE_1)" - for PATCH in $(PATCHES); do \ - cp "$$PATCH" $(KOLABRPMSRC)/$(PACKAGE); done +$(KOLABRPMSRC)/$(PACKAGE)/series.patch: $(KOLABRPMSRC)/$(PACKAGE)/$(PACKAGE_0) + for PATCH in `cat $(PATCHES)/series | grep -v t_KOLAB`; \ + do \ + cat $(PATCHES)/$$PATCH >> $(KOLABRPMSRC)/$(PACKAGE)/series.patch; \ + done + +$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec $(TEMPLATES) $(CONFIGS) ChangeLog $(KOLABRPMSRC)/$(PACKAGE)/series.patch cp $(PACKAGE).spec $(KOLABRPMSRC)/$(PACKAGE) Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- kolab-webclient.spec 8 Mar 2009 23:26:35 -0000 1.24 +++ kolab-webclient.spec 25 Apr 2009 21:12:37 -0000 1.25 @@ -2,8 +2,8 @@ %define V_horde_name horde-webmail %define V_package kolab-webclient %define V_year 2009 -%define V_month 03 -%define V_day 08 +%define V_month 04 +%define V_day 25 %define V_version 1.2.0 %define V_source_version 1.2 %define V_passwd_version 3.0.1 @@ -30,7 +30,7 @@ Source5: backends.php # List of Patches -Patch0: http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/server/patches/horde-webmail/%{V_version}/horde-webmail-%{V_version}_kolab_openpkg.patch +Patch0: series.patch # Build Info Prefix: %{l_prefix} From cvs at kolab.org Sat Apr 25 23:18:03 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 25 Apr 2009 23:18:03 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0 horde-webmail-1.2.0_kolab_openpkg.patch, 1.34, NONE Message-ID: <20090425211803.01B57600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0 In directory doto:/tmp/cvs-serv29777 Removed Files: horde-webmail-1.2.0_kolab_openpkg.patch Log Message: These patches were moved into the kolab-webclient directory. --- horde-webmail-1.2.0_kolab_openpkg.patch DELETED --- From cvs at kolab.org Sat Apr 25 23:18:03 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 25 Apr 2009 23:18:03 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0/tg series, 1.8, NONE t_COPYRIGHT.diff, 1.2, NONE t_COPYRIGHT2.diff, 1.3, NONE t_COPYRIGHT3.diff, 1.3, NONE t_GLOBAL_HK_GW_Config.diff, 1.7, NONE t_GLOBAL_HK_GW_ConfigOpenPKG.diff, 1.7, NONE t_Kolab__Server_HK_GW_DenyLogin.diff, 1.4, NONE t_Kolab__Server_HK_GW_FixAddrForIdOrMail.diff, 1.2, NONE t_Kolab__Server_HK_GW_FixBodyHeaderBreakInTestDriver.diff, 1.2, NONE t_Kolab__Server_HK_GW_FixLowerCaseObjectClasses.diff, 1.2, NONE t_Kolab__Server_HK_GW_FixNotics.diff, 1.2, NONE t_Kolab__Server_HK_GW_UserMailAndFullname.diff, 1.4, NONE t_Kolab__Storage_HK_GW_MultipleListCaches.diff, 1.2, NONE t_Kolab__Storage_HK_GW_SuppressTriggering.diff, 1.3, NONE t_Prefs_HK_GW_FixLDAPAuthForIngo.diff, 1.4, NONE t_SyncML_HK_GW_CombinedFixes.diff, 1.4, NONE t_Text_Filter_SC_CH_Xss.diff, 1.4, NONE t_dimp_HK_GW_ItipHandling.diff, 1.5, NONE t_dimp_H_MS_FixBrokenFolderImages.diff, 1.3, NONE t_framework_HK_GW_Auth_InvalidCheck.diff, 1.4, NONE t_framework_HK_GW_Auth_ListUsers.diff, 1.4, NONE t_f ramework_HK_GW_Auth_SafetyCheck.diff, 1.4, NONE t_framework_HK_GW_Auth_UseKolabServer.diff, 1.4, NONE t_framework_HK_GW_Auth_UseSession.diff, 1.4, NONE t_framework_HK_GW_DB_SqliteErrorChecking.diff, 1.4, NONE t_framework_HK_GW_Kolab_AttachmentSupport.diff, 1.4, NONE t_framework_HK_GW_Kolab_MoveIMAP.diff, 1.4, NONE t_framework_HK_GW_Kolab_XfbFixes.diff, 1.4, NONE t_framework_HK_GW_Kolab__Fbview_XfbConcept.diff, 1.4, NONE t_framework_HK_GW_Kolab__Format_ImprovedPreferencesHandling.diff, 1.4, NONE t_framework_HK_GW_Kolab__Server_AdditionalGetFeeBusyServerFixes.diff, 1.4, NONE t_framework_HK_GW_Kolab__Server_FixAddressObjectIdentification.diff, 1.4, NONE t_framework_HK_GW_Kolab__Server_FixGetGroups.diff, 1.4, NONE t_framework_HK_GW_Kolab__Server_ImprovedFreebusyServerFallback.diff, 1.4, NONE t_framework_HK_GW_Kolab__Server_ImprovedServerFallbacks.diff, 1.4, NONE t_framework_HK_GW_Kolab__Server_ListObjects.diff, 1.4, NONE t_framework_HK_GW_Kolab__Server_RequireIMAP.diff, 1.4, NONE t_framework_HK_GW_Kolab__Serve r_RewriteExtend.diff, 1.4, NONE t_framework_HK_GW_Kolab__Server_SafetyCheck.diff, 1.4, NONE t_framework_HK_GW_Kolab__Server_Session.diff, 1.4, NONE t_framework_HK_GW_Kolab__Server_getFreebusyServer.diff, 1.4, NONE t_framework_HK_GW_Kolab__Storage_CatchPossibleError.diff, 1.4, NONE t_framework_HK_GW_Kolab__Storage_FixTriggerOnFolderCreation.diff, 1.4, NONE t_framework_HK_GW_Kolab__Storage_FixTriggerOnFolderRename.diff, 1.4, NONE t_framework_HK_GW_Kolab__Storage_Foreign__owner.patch.diff, 1.4, NONE t_framework_HK_GW_Kolab__Storage_Restructuring__Fixes.diff, 1.4, NONE t_framework_HK_GW_Kolab__Storage_ShareIdFix.diff, 1.4, NONE t_framework_HK_GW_Kolab__Storage_Trigger.diff, 1.4, NONE t_framework_HK_GW_Kolab__Storgae_FixedUpdateTriggering.diff, 1.4, NONE t_framework_HK_GW_Prefs__KolabImapApplicationTag.diff, 1.4, NONE t_framework_HK_GW_Vfs_KolabDriver.diff, 1.4, NONE t_framework_HK_GW_framework_Kolab_DeprecatedGetServer.diff, 1.4, NONE t_framework_HK_GW_framework_Kolab_MoveSessionHandler.diff, 1.4, NONE t_frame work_HK_GW_framework_Kolab__Format_WS.diff, 1.4, NONE t_framework_HK_GW_horde_conf__xmlUpdates.diff, 1.4, NONE t_framework_HK_GW_iCalendar_QuotedParameters.diff, 1.4, NONE t_horde_SC_CH_SecIssues20090128.diff, 1.3, NONE t_imp_HK_GW_AuthForInvitations.diff, 1.4, NONE t_imp_H_GW_DefaultLoginView.diff, 1.4, NONE t_imp_H_GW_LoginRetries.diff, 1.3, NONE t_imp_H_JS_bug7739.diff, 1.3, NONE t_imp_H_MS_bug7438.diff, 1.3, NONE t_imp_HideGroupwareFolders.diff, 1.4, NONE t_imp_SC_CH_SecIssues20090128.diff, 1.3, NONE t_kronolith_HK_GW_AuthenticatedFreeBusy.diff, 1.4, NONE t_kronolith_HK_GW_CalendarRenaming.diff, 1.4, NONE t_kronolith_HK_GW_FbviewRelevance.diff, 1.5, NONE t_kronolith_HK_GW_SyncMLrefresh.diff, 1.4, NONE t_kronolith_HK_GW_XfbAccess.diff, 1.5, NONE t_kronolith_HK_GW_getFreebusyServer.diff, 1.4, NONE t_kronolith_HK_SB_ExtraParameters.diff, 1.5, NONE t_kronolith_HK_SB_SaveEventAttendees.diff, 1.4, NONE t_nag_H_MR_Bug__7400.diff, 1.4, NONE t_pear_HK_GW_AddNetIMAP.diff, 1.2, NONE t_turba_HK_GW_AutomaticFreeBusyUrl.diff, 1.4, NONE t_turba_HK_GW_FixAddressbookDeletion.diff, 1.4, NONE t_turba_HK_GW_FixSyncMLAttributeDeletion.diff, 1.4, NONE t_turba_HK_GW_PhotoSupport.diff, 1.4, NONE t_turba_HK_GW_SyncMLrefresh.diff, 1.4, NONE Message-ID: <20090425211803.404FD600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0/tg In directory doto:/tmp/cvs-serv29777/tg Removed Files: series t_COPYRIGHT.diff t_COPYRIGHT2.diff t_COPYRIGHT3.diff t_GLOBAL_HK_GW_Config.diff t_GLOBAL_HK_GW_ConfigOpenPKG.diff t_Kolab__Server_HK_GW_DenyLogin.diff t_Kolab__Server_HK_GW_FixAddrForIdOrMail.diff t_Kolab__Server_HK_GW_FixBodyHeaderBreakInTestDriver.diff t_Kolab__Server_HK_GW_FixLowerCaseObjectClasses.diff t_Kolab__Server_HK_GW_FixNotics.diff t_Kolab__Server_HK_GW_UserMailAndFullname.diff t_Kolab__Storage_HK_GW_MultipleListCaches.diff t_Kolab__Storage_HK_GW_SuppressTriggering.diff t_Prefs_HK_GW_FixLDAPAuthForIngo.diff t_SyncML_HK_GW_CombinedFixes.diff t_Text_Filter_SC_CH_Xss.diff t_dimp_HK_GW_ItipHandling.diff t_dimp_H_MS_FixBrokenFolderImages.diff t_framework_HK_GW_Auth_InvalidCheck.diff t_framework_HK_GW_Auth_ListUsers.diff t_framework_HK_GW_Auth_SafetyCheck.diff t_framework_HK_GW_Auth_UseKolabServer.diff t_framework_HK_GW_Auth_UseSession.diff t_framework_HK_GW_DB_SqliteErrorChecking.diff t_framework_HK_GW_Kolab_AttachmentSupport.diff t_framework_HK_GW_Kolab_MoveIMAP.diff t_framework_HK_GW_Kolab_XfbFixes.diff t_framework_HK_GW_Kolab__Fbview_XfbConcept.diff t_framework_HK_GW_Kolab__Format_ImprovedPreferencesHandling.diff t_framework_HK_GW_Kolab__Server_AdditionalGetFeeBusyServerFixes.diff t_framework_HK_GW_Kolab__Server_FixAddressObjectIdentification.diff t_framework_HK_GW_Kolab__Server_FixGetGroups.diff t_framework_HK_GW_Kolab__Server_ImprovedFreebusyServerFallback.diff t_framework_HK_GW_Kolab__Server_ImprovedServerFallbacks.diff t_framework_HK_GW_Kolab__Server_ListObjects.diff t_framework_HK_GW_Kolab__Server_RequireIMAP.diff t_framework_HK_GW_Kolab__Server_RewriteExtend.diff t_framework_HK_GW_Kolab__Server_SafetyCheck.diff t_framework_HK_GW_Kolab__Server_Session.diff t_framework_HK_GW_Kolab__Server_getFreebusyServer.diff t_framework_HK_GW_Kolab__Storage_CatchPossibleError.diff t_framework_HK_GW_Kolab__Storage_FixTriggerOnFolderCreation.diff t_framework_HK_GW_Kolab__Storage_FixTriggerOnFolderRename.diff t_framework_HK_GW_Kolab__Storage_Foreign__owner.patch.diff t_framework_HK_GW_Kolab__Storage_Restructuring__Fixes.diff t_framework_HK_GW_Kolab__Storage_ShareIdFix.diff t_framework_HK_GW_Kolab__Storage_Trigger.diff t_framework_HK_GW_Kolab__Storgae_FixedUpdateTriggering.diff t_framework_HK_GW_Prefs__KolabImapApplicationTag.diff t_framework_HK_GW_Vfs_KolabDriver.diff t_framework_HK_GW_framework_Kolab_DeprecatedGetServer.diff t_framework_HK_GW_framework_Kolab_MoveSessionHandler.diff t_framework_HK_GW_framework_Kolab__Format_WS.diff t_framework_HK_GW_horde_conf__xmlUpdates.diff t_framework_HK_GW_iCalendar_QuotedParameters.diff t_horde_SC_CH_SecIssues20090128.diff t_imp_HK_GW_AuthForInvitations.diff t_imp_H_GW_DefaultLoginView.diff t_imp_H_GW_LoginRetries.diff t_imp_H_JS_bug7739.diff t_imp_H_MS_bug7438.diff t_imp_HideGroupwareFolders.diff t_imp_SC_CH_SecIssues20090128.diff t_kronolith_HK_GW_AuthenticatedFreeBusy.diff t_kronolith_HK_GW_CalendarRenaming.diff t_kronolith_HK_GW_FbviewRelevance.diff t_kronolith_HK_GW_SyncMLrefresh.diff t_kronolith_HK_GW_XfbAccess.diff t_kronolith_HK_GW_getFreebusyServer.diff t_kronolith_HK_SB_ExtraParameters.diff t_kronolith_HK_SB_SaveEventAttendees.diff t_nag_H_MR_Bug__7400.diff t_pear_HK_GW_AddNetIMAP.diff t_turba_HK_GW_AutomaticFreeBusyUrl.diff t_turba_HK_GW_FixAddressbookDeletion.diff t_turba_HK_GW_FixSyncMLAttributeDeletion.diff t_turba_HK_GW_PhotoSupport.diff t_turba_HK_GW_SyncMLrefresh.diff Log Message: These patches were moved into the kolab-webclient directory. --- series DELETED --- --- t_COPYRIGHT.diff DELETED --- --- t_COPYRIGHT2.diff DELETED --- --- t_COPYRIGHT3.diff DELETED --- --- t_GLOBAL_HK_GW_Config.diff DELETED --- --- t_GLOBAL_HK_GW_ConfigOpenPKG.diff DELETED --- --- t_Kolab__Server_HK_GW_DenyLogin.diff DELETED --- --- t_Kolab__Server_HK_GW_FixAddrForIdOrMail.diff DELETED --- --- t_Kolab__Server_HK_GW_FixBodyHeaderBreakInTestDriver.diff DELETED --- --- t_Kolab__Server_HK_GW_FixLowerCaseObjectClasses.diff DELETED --- --- t_Kolab__Server_HK_GW_FixNotics.diff DELETED --- --- t_Kolab__Server_HK_GW_UserMailAndFullname.diff DELETED --- --- t_Kolab__Storage_HK_GW_MultipleListCaches.diff DELETED --- --- t_Kolab__Storage_HK_GW_SuppressTriggering.diff DELETED --- --- t_Prefs_HK_GW_FixLDAPAuthForIngo.diff DELETED --- --- t_SyncML_HK_GW_CombinedFixes.diff DELETED --- --- t_Text_Filter_SC_CH_Xss.diff DELETED --- --- t_dimp_HK_GW_ItipHandling.diff DELETED --- --- t_dimp_H_MS_FixBrokenFolderImages.diff DELETED --- --- t_framework_HK_GW_Auth_InvalidCheck.diff DELETED --- --- t_framework_HK_GW_Auth_ListUsers.diff DELETED --- --- t_framework_HK_GW_Auth_SafetyCheck.diff DELETED --- --- t_framework_HK_GW_Auth_UseKolabServer.diff DELETED --- --- t_framework_HK_GW_Auth_UseSession.diff DELETED --- --- t_framework_HK_GW_DB_SqliteErrorChecking.diff DELETED --- --- t_framework_HK_GW_Kolab_AttachmentSupport.diff DELETED --- --- t_framework_HK_GW_Kolab_MoveIMAP.diff DELETED --- --- t_framework_HK_GW_Kolab_XfbFixes.diff DELETED --- --- t_framework_HK_GW_Kolab__Fbview_XfbConcept.diff DELETED --- --- t_framework_HK_GW_Kolab__Format_ImprovedPreferencesHandling.diff DELETED --- --- t_framework_HK_GW_Kolab__Server_AdditionalGetFeeBusyServerFixes.diff DELETED --- --- t_framework_HK_GW_Kolab__Server_FixAddressObjectIdentification.diff DELETED --- --- t_framework_HK_GW_Kolab__Server_FixGetGroups.diff DELETED --- --- t_framework_HK_GW_Kolab__Server_ImprovedFreebusyServerFallback.diff DELETED --- --- t_framework_HK_GW_Kolab__Server_ImprovedServerFallbacks.diff DELETED --- --- t_framework_HK_GW_Kolab__Server_ListObjects.diff DELETED --- --- t_framework_HK_GW_Kolab__Server_RequireIMAP.diff DELETED --- --- t_framework_HK_GW_Kolab__Server_RewriteExtend.diff DELETED --- --- t_framework_HK_GW_Kolab__Server_SafetyCheck.diff DELETED --- --- t_framework_HK_GW_Kolab__Server_Session.diff DELETED --- --- t_framework_HK_GW_Kolab__Server_getFreebusyServer.diff DELETED --- --- t_framework_HK_GW_Kolab__Storage_CatchPossibleError.diff DELETED --- --- t_framework_HK_GW_Kolab__Storage_FixTriggerOnFolderCreation.diff DELETED --- --- t_framework_HK_GW_Kolab__Storage_FixTriggerOnFolderRename.diff DELETED --- --- t_framework_HK_GW_Kolab__Storage_Foreign__owner.patch.diff DELETED --- --- t_framework_HK_GW_Kolab__Storage_Restructuring__Fixes.diff DELETED --- --- t_framework_HK_GW_Kolab__Storage_ShareIdFix.diff DELETED --- --- t_framework_HK_GW_Kolab__Storage_Trigger.diff DELETED --- --- t_framework_HK_GW_Kolab__Storgae_FixedUpdateTriggering.diff DELETED --- --- t_framework_HK_GW_Prefs__KolabImapApplicationTag.diff DELETED --- --- t_framework_HK_GW_Vfs_KolabDriver.diff DELETED --- --- t_framework_HK_GW_framework_Kolab_DeprecatedGetServer.diff DELETED --- --- t_framework_HK_GW_framework_Kolab_MoveSessionHandler.diff DELETED --- --- t_framework_HK_GW_framework_Kolab__Format_WS.diff DELETED --- --- t_framework_HK_GW_horde_conf__xmlUpdates.diff DELETED --- --- t_framework_HK_GW_iCalendar_QuotedParameters.diff DELETED --- --- t_horde_SC_CH_SecIssues20090128.diff DELETED --- --- t_imp_HK_GW_AuthForInvitations.diff DELETED --- --- t_imp_H_GW_DefaultLoginView.diff DELETED --- --- t_imp_H_GW_LoginRetries.diff DELETED --- --- t_imp_H_JS_bug7739.diff DELETED --- --- t_imp_H_MS_bug7438.diff DELETED --- --- t_imp_HideGroupwareFolders.diff DELETED --- --- t_imp_SC_CH_SecIssues20090128.diff DELETED --- --- t_kronolith_HK_GW_AuthenticatedFreeBusy.diff DELETED --- --- t_kronolith_HK_GW_CalendarRenaming.diff DELETED --- --- t_kronolith_HK_GW_FbviewRelevance.diff DELETED --- --- t_kronolith_HK_GW_SyncMLrefresh.diff DELETED --- --- t_kronolith_HK_GW_XfbAccess.diff DELETED --- --- t_kronolith_HK_GW_getFreebusyServer.diff DELETED --- --- t_kronolith_HK_SB_ExtraParameters.diff DELETED --- --- t_kronolith_HK_SB_SaveEventAttendees.diff DELETED --- --- t_nag_H_MR_Bug__7400.diff DELETED --- --- t_pear_HK_GW_AddNetIMAP.diff DELETED --- --- t_turba_HK_GW_AutomaticFreeBusyUrl.diff DELETED --- --- t_turba_HK_GW_FixAddressbookDeletion.diff DELETED --- --- t_turba_HK_GW_FixSyncMLAttributeDeletion.diff DELETED --- --- t_turba_HK_GW_PhotoSupport.diff DELETED --- --- t_turba_HK_GW_SyncMLrefresh.diff DELETED --- From cvs at kolab.org Sat Apr 25 23:45:06 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 25 Apr 2009 23:45:06 +0200 (CEST) Subject: gunnar: server/kolab-webclient ChangeLog,1.10,1.11 Message-ID: <20090425214506.E31E3600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv30677 Modified Files: ChangeLog Log Message: Add the Kolab_Format patch to the kolab-webclient. This should fix kolab/issue3520 (calendar with certain entries does not display in web client) kolab/issue3528 (Events with broken encoding should work) and at the same time sync the library with Kolab_Format. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webclient/ChangeLog,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- ChangeLog 7 Feb 2009 15:51:27 -0000 1.10 +++ ChangeLog 25 Apr 2009 21:45:04 -0000 1.11 @@ -1,3 +1,10 @@ +2009-04-25 Gunnar Wrobel

+ + * patches/1.2.0/KOLAB/t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff: + + kolab/issue3520 (calendar with certain entries does not display in web client) + kolab/issue3528 (Events with broken encoding should work) + 2008-02-07 Mathieu Parent * webclient-kolab-conf.template, webclient-kronolith-kolab-conf.template: From cvs at kolab.org Sat Apr 25 23:45:06 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 25 Apr 2009 23:45:06 +0200 (CEST) Subject: gunnar: server/kolab-webclient/patches/1.2.0/KOLAB series,1.1,1.2 Message-ID: <20090425214506.E7D4560082D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB In directory doto:/tmp/cvs-serv30677/patches/1.2.0/KOLAB Modified Files: series Log Message: Add the Kolab_Format patch to the kolab-webclient. This should fix kolab/issue3520 (calendar with certain entries does not display in web client) kolab/issue3528 (Events with broken encoding should work) and at the same time sync the library with Kolab_Format. Index: series =================================================================== RCS file: /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB/series,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- series 25 Apr 2009 21:04:19 -0000 1.1 +++ series 25 Apr 2009 21:45:04 -0000 1.2 @@ -76,3 +76,4 @@ t_kronolith_HK_SB_ExtraParameters.diff t_kronolith_HK_GW_FbviewRelevance.diff t_kronolith_HK_GW_XfbAccess.diff +t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff From cvs at kolab.org Sun Apr 26 00:31:53 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 00:31:53 +0200 (CEST) Subject: gunnar: server/kolab-webclient ChangeLog, 1.11, 1.12 Makefile, 1.7, 1.8 kolab-webclient.spec, 1.25, 1.26 Message-ID: <20090425223153.731AA600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv31773 Modified Files: ChangeLog Makefile kolab-webclient.spec Log Message: Started cleanup of the code triplication. Kolab_Format is now completely in sync and can be removed from within the kolab-webclient package. kolab/issue3293 (Big code duplication and code version messup: Horde libs in 2.2.1) kolab/issue3420 (web client prefs and hooks should be configurable via templates) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webclient/ChangeLog,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- ChangeLog 25 Apr 2009 21:45:04 -0000 1.11 +++ ChangeLog 25 Apr 2009 22:31:50 -0000 1.12 @@ -1,3 +1,16 @@ +2009-04-26 Gunnar Wrobel

+ + * kolab-webclient.spec: + + Started cleanup of the code triplication. Kolab_Format is now + completely in sync and can be removed from within the + kolab-webclient package. + + kolab/issue3293 (Big code duplication and code version messup: Horde + libs in 2.2.1) + kolab/issue3420 (web client prefs and hooks should be + configurable via templates) + 2009-04-25 Gunnar Wrobel

* patches/1.2.0/KOLAB/t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff: Index: Makefile =================================================================== RCS file: /kolabrepository/server/kolab-webclient/Makefile,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Makefile 25 Apr 2009 21:12:37 -0000 1.7 +++ Makefile 25 Apr 2009 22:31:51 -0000 1.8 @@ -88,7 +88,9 @@ test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_0)" && wget -c "$(SOURCE_1)" +.PHONY: $(KOLABRPMSRC)/$(PACKAGE)/series.patch $(KOLABRPMSRC)/$(PACKAGE)/series.patch: $(KOLABRPMSRC)/$(PACKAGE)/$(PACKAGE_0) + rm -f $(KOLABRPMSRC)/$(PACKAGE)/series.patch for PATCH in `cat $(PATCHES)/series | grep -v t_KOLAB`; \ do \ cat $(PATCHES)/$$PATCH >> $(KOLABRPMSRC)/$(PACKAGE)/series.patch; \ Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- kolab-webclient.spec 25 Apr 2009 21:12:37 -0000 1.25 +++ kolab-webclient.spec 25 Apr 2009 22:31:51 -0000 1.26 @@ -77,6 +77,17 @@ cp -r * $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/ + # The following section removes libraries again so that we + # only need to patch/install them once in the system. + # + # kolab/issue3293 (Big code duplication and code version messup: Horde + # libs in 2.2.1) + + # Kolab_Format is in sync + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Format* + + + sqlite $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/storage/horde.db < scripts/sql/groupware.sql cd .. From cvs at kolab.org Sun Apr 26 00:31:53 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 00:31:53 +0200 (CEST) Subject: gunnar: server/kolab-webclient/patches/1.2.0/KOLAB t_GLOBAL_HK_GW_ConfigTemplateSupport.diff, NONE, 1.1 t_GLOBAL_HK_GW_SystemLibInclude.diff, NONE, 1.1 series, 1.2, 1.3 Message-ID: <20090425223153.7789660082D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB In directory doto:/tmp/cvs-serv31773/patches/1.2.0/KOLAB Modified Files: series Added Files: t_GLOBAL_HK_GW_ConfigTemplateSupport.diff t_GLOBAL_HK_GW_SystemLibInclude.diff Log Message: Started cleanup of the code triplication. Kolab_Format is now completely in sync and can be removed from within the kolab-webclient package. kolab/issue3293 (Big code duplication and code version messup: Horde libs in 2.2.1) kolab/issue3420 (web client prefs and hooks should be configurable via templates) --- NEW FILE: t_GLOBAL_HK_GW_ConfigTemplateSupport.diff --- From: Gunnar Wrobel

Subject: [PATCH] t/GLOBAL/HK/GW/ConfigTemplateSupport This adds a small section to each configuration file that allows overriding the default settings with a local configuration file. These local overrides are going to be generated via templates for the Kolab Server. https://www.intevation.de/roundup/kolab/issue3420 Notes: Did this + a few manual edits -> for FILE in `find horde-webmail/ -wholename *config/*.php | grep -v scripts`;do A=${FILE/*config\//}; B=${A/.php/.local.php};echo "if (file_exists(dirname(__FILE__) . '/$B')) { require_once(dirname(__FILE__) . '/$B'); } " >> $FILE;done for FILE in `find horde-webmail/ -wholename *config/*.php | grep -v scripts`;do A=${FILE/*config\//}; B=${A/.php/.local.php};C=${FILE//\//_};D=${C/horde-webmail_/};E=${D/_config/};echo "KOLAB_META_START TARGET=@@@horde_confdir@@@/$B PERMISSIONS=0400 OWNERSHIP=@@@webserver_usr@@@:@@@webserver_grp@@@ KOLAB_META_END /CVS/server/kolab-webclient/webclient-${E};done Signed-off-by: Gunnar Wrobel

--- horde-webmail/config/hooks.php | 4 ++++ horde-webmail/config/mime_drivers.php | 4 ++++ horde-webmail/config/motd.php | 7 +++++++ horde-webmail/config/nls.php | 4 ++++ horde-webmail/config/prefs.php | 4 ++++ horde-webmail/config/registry.php | 4 ++++ horde-webmail/dimp/config/conf.php | 4 ++++ horde-webmail/dimp/config/hooks.php | 4 ++++ horde-webmail/dimp/config/menu.php | 4 ++++ horde-webmail/dimp/config/portal.php | 4 ++++ horde-webmail/dimp/config/prefs.php | 4 ++++ horde-webmail/dimp/config/servers.php | 4 ++++ horde-webmail/imp/config/conf.php | 4 ++++ horde-webmail/imp/config/header.php | 4 ++++ horde-webmail/imp/config/hooks.php | 4 ++++ horde-webmail/imp/config/menu.php | 4 ++++ horde-webmail/imp/config/mime_drivers.php | 4 ++++ horde-webmail/imp/config/motd.php | 4 ++++ horde-webmail/imp/config/prefs.php | 4 ++++ horde-webmail/imp/config/servers.php | 4 ++++ horde-webmail/imp/config/spelling.php | 4 ++++ horde-webmail/ingo/config/backends.php | 4 ++++ horde-webmail/ingo/config/conf.php | 4 ++++ horde-webmail/ingo/config/fields.php | 4 ++++ horde-webmail/ingo/config/hooks.php | 4 ++++ horde-webmail/ingo/config/prefs.php | 4 ++++ horde-webmail/kronolith/config/keywords.php | 4 ++++ horde-webmail/kronolith/config/menu.php | 4 ++++ horde-webmail/kronolith/config/prefs.php | 4 ++++ horde-webmail/mimp/config/conf.php | 4 ++++ horde-webmail/mimp/config/menu.php | 4 ++++ horde-webmail/mimp/config/mime_drivers.php | 4 ++++ horde-webmail/mimp/config/prefs.php | 4 ++++ horde-webmail/mnemo/config/conf.php | 4 ++++ horde-webmail/mnemo/config/prefs.php | 4 ++++ horde-webmail/nag/config/conf.php | 4 ++++ horde-webmail/nag/config/menu.php | 4 ++++ horde-webmail/nag/config/prefs.php | 4 ++++ horde-webmail/turba/config/attributes.php | 4 ++++ horde-webmail/turba/config/conf.php | 4 ++++ horde-webmail/turba/config/hooks.php | 4 ++++ horde-webmail/turba/config/menu.php | 4 ++++ horde-webmail/turba/config/mime_drivers.php | 4 ++++ horde-webmail/turba/config/prefs.php | 4 ++++ horde-webmail/turba/config/sources.php | 4 ++++ 45 files changed, 183 insertions(+), 0 deletions(-) diff --git a/horde-webmail/config/hooks.php b/horde-webmail/config/hooks.php index 1fb2f6e..c7e41a2 100644 --- a/horde-webmail/config/hooks.php +++ b/horde-webmail/config/hooks.php @@ -691,3 +691,7 @@ if (!function_exists('_prefs_hook_fullname')) { } } }*/ +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { + require_once(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/config/mime_drivers.php b/horde-webmail/config/mime_drivers.php index e963402..da0e14a 100644 --- a/horde-webmail/config/mime_drivers.php +++ b/horde-webmail/config/mime_drivers.php @@ -638,3 +638,7 @@ $mime_drivers['horde']['wordperfect'] = array( 'default' => 'wordperfect.png' ) ); +if (file_exists(dirname(__FILE__) . '/mime_drivers.local.php')) { + require_once(dirname(__FILE__) . '/mime_drivers.local.php'); +} + diff --git a/horde-webmail/config/motd.php b/horde-webmail/config/motd.php index 9f0b57b..bca4c41 100644 --- a/horde-webmail/config/motd.php +++ b/horde-webmail/config/motd.php @@ -1,6 +1,13 @@ + +

March 5th, 2009 » Kolab Server 2.2.1 Release Candidate 1 released Index: roadmap.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/roadmap.html.m4,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- roadmap.html.m4 1 Apr 2009 13:46:49 -0000 1.25 +++ roadmap.html.m4 8 Apr 2009 12:13:39 -0000 1.26 @@ -20,10 +20,8 @@

Kolab Server 2.2 series

2.2.0 was released in July 2008. -

-Release 2.2.1 is scheduled for April 2009. -2.2.1-rc1 was published on March 5th, 2009. +2.2.1 was published on April 8th, 2009. Improvements include the SyncML improvements to the Kolab Webclient, code cleanup and eliminating defects.

From cvs at kolab.org Wed Apr 8 14:15:28 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 8 Apr 2009 14:15:28 +0200 (CEST) Subject: thomas: doc/www/src kolabsearch.htm, 1.7, 1.8 newsarchive.html.m4, 1.16, 1.17 roadmap.html.m4, 1.26, 1.27 Message-ID: <20090408121528.5920C600932@lists.intevation.de> Author: thomas Update of /kolabrepository/doc/www/src In directory doto:/tmp/cvs-serv28936 Modified Files: kolabsearch.htm newsarchive.html.m4 roadmap.html.m4 Log Message: Use www.intevation.de instead of intevation.de for https Index: kolabsearch.htm =================================================================== RCS file: /kolabrepository/doc/www/src/kolabsearch.htm,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- kolabsearch.htm 23 Mar 2007 11:03:27 -0000 1.7 +++ kolabsearch.htm 8 Apr 2009 12:15:26 -0000 1.8 @@ -545,7 +545,7 @@ Archive | Subscribe/Manage

-Bug/Wish Tracker
Mini-HOWTOs in CVS

Index: newsarchive.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/newsarchive.html.m4,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- newsarchive.html.m4 19 Mar 2008 14:42:04 -0000 1.16 +++ newsarchive.html.m4 8 Apr 2009 12:15:26 -0000 1.17 @@ -1222,7 +1222,7 @@
December 1, 2003 » - Kolab Issue/Wish Tracker launched + Kolab Issue/Wish Tracker launched
Index: roadmap.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/roadmap.html.m4,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- roadmap.html.m4 8 Apr 2009 12:13:39 -0000 1.26 +++ roadmap.html.m4 8 Apr 2009 12:15:26 -0000 1.27 @@ -9,9 +9,9 @@

There are of course many more -wishes +wishes and -features +features listed in the Kolab issue tracker. This is only a rough overview. From cvs at kolab.org Thu Apr 16 10:55:20 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 16 Apr 2009 10:55:20 +0200 (CEST) Subject: gunnar: server/perl-kolab/lib/Kolab LDAP.pm,1.13,1.14 Message-ID: <20090416085520.A2989600821@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/perl-kolab/lib/Kolab In directory doto:/tmp/cvs-serv25477/perl-kolab/lib/Kolab Modified Files: LDAP.pm Log Message: MFB: kolab/issue3472 (web client user prefs not deleted when user gets deleted) cvs diff -u -d -r1.11.2.1 -r1.11.2.2 perl-kolab/lib/Kolab/LDAP.pm cvs diff -u -d -r1.398.2.10 -r1.398.2.11 release-notes.txt Index: LDAP.pm =================================================================== RCS file: /kolabrepository/server/perl-kolab/lib/Kolab/LDAP.pm,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- LDAP.pm 16 Mar 2009 17:57:15 -0000 1.13 +++ LDAP.pm 16 Apr 2009 08:55:18 -0000 1.14 @@ -721,6 +721,18 @@ } } + # FIXME + # This is a horrible fix for kolab/issue3472. kolabd is a simple + # deamon that should react to changes within LDAP. It should NOT + # however have any application knowledge. It would be better if + # each application that requires cleanup operations after user + # removal could add a script in a directory collecting such + # operations. + if (-e $Kolab::config{'webserver_document_root'} . '/client/storage/' . $uid . '.prefs' ) { + unlink($Kolab::config{'webserver_document_root'} . '/client/storage/' . $uid . '.prefs'); + Kolab::log('L', "Deleted web client user preferences for user $uid.", KOLAB_DEBUG); + } + if (!$uid) { Kolab::log('L', 'Deleted object not found in mboxcache, returning', KOLAB_DEBUG); return; From cvs at kolab.org Thu Apr 16 10:55:20 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 16 Apr 2009 10:55:20 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.429,1.430 Message-ID: <20090416085520.A0577600820@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv25477 Modified Files: release-notes.txt Log Message: MFB: kolab/issue3472 (web client user prefs not deleted when user gets deleted) cvs diff -u -d -r1.11.2.1 -r1.11.2.2 perl-kolab/lib/Kolab/LDAP.pm cvs diff -u -d -r1.398.2.10 -r1.398.2.11 release-notes.txt Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.429 retrieving revision 1.430 diff -u -d -r1.429 -r1.430 --- release-notes.txt 7 Apr 2009 13:31:15 -0000 1.429 +++ release-notes.txt 16 Apr 2009 08:55:18 -0000 1.430 @@ -76,6 +76,8 @@ Activated the HASH and JSON modules. + kolab/issue3472 (web client user prefs not deleted when user gets + deleted) Changes between 2.2.1-rc-1 and 2.2.1: (keep in sync with kolab_2_2_branch!) From cvs at kolab.org Thu Apr 16 10:56:28 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 16 Apr 2009 10:56:28 +0200 (CEST) Subject: gunnar: server/perl-kolab ChangeLog,1.62,1.63 Message-ID: <20090416085628.E9754600821@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/perl-kolab In directory doto:/tmp/cvs-serv25546/perl-kolab Modified Files: ChangeLog Log Message: Update ChangeLog Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/perl-kolab/ChangeLog,v retrieving revision 1.62 retrieving revision 1.63 diff -u -d -r1.62 -r1.63 --- ChangeLog 17 Mar 2009 16:46:31 -0000 1.62 +++ ChangeLog 16 Apr 2009 08:56:26 -0000 1.63 @@ -1,3 +1,7 @@ +2009-04-16 Gunnar Wrobel

+ + * lib/Kolab/LDAP.pm (deleteObject): Workaround for kolab/issue3472. + 2009-03-17 Thomas Arendsen Hein * lib/Kolab/Conf.pm: Removed special handling of saslauthd. From cvs at kolab.org Thu Apr 16 10:57:15 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 16 Apr 2009 10:57:15 +0200 (CEST) Subject: gunnar: server/perl-kolab Makefile.PL,1.15,1.16 Message-ID: <20090416085715.EFB3A600823@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/perl-kolab In directory doto:/tmp/cvs-serv25568/perl-kolab Modified Files: Makefile.PL Log Message: MFB: ttempt at adding an install target for the perl package. This does not work completely yet. It is okay to call it from within the directory after calling make dist but I can't include it in the update target in the global Makefile yet. diff -u -d -r1.14 -r1.14.2.1 Index: Makefile.PL =================================================================== RCS file: /kolabrepository/server/perl-kolab/Makefile.PL,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- Makefile.PL 16 Mar 2009 17:17:34 -0000 1.15 +++ Makefile.PL 16 Apr 2009 08:57:13 -0000 1.16 @@ -131,6 +131,10 @@ KOLABRPMTMP = \$(HOME)/RPM/TMP endif +ifeq \"x\$(PLATTAG)\" \"x\" + PLATTAG = \$(shell \$(RPM) -q --qf=\"%{ARCH}-%{OS}\" openpkg)-\$(HOME:/%=%) +endif + PACKAGE = \$(shell [ -r \"perl-kolab.spec\" ] && grep '%define[ ]*V_package' perl-kolab.spec | sed -e 's/.*V_package\\s*\\([a-z\\_-]*\\).*/\\1/') VERSION = \$(shell perl -I lib -e 'use Kolab;print \$\$Kolab::KOLAB_VERSION;') RELEASE = \$(shell perl -I lib -e 'use Kolab;print \$\$Kolab::KOLAB_RELEASE;') @@ -147,7 +151,7 @@ dist_openpkg: perl-kolab.spec \$(PACKAGE)-\$(VERSION)-\$(RELEASE).src.rpm cp \$(PACKAGE)-\$(VERSION)-\$(RELEASE).src.rpm ../stage/ -\$(PACKAGE)-\$(VERSION)-\$(RELEASE).src.rpm: \$(PACKAGE).spec +\$(KOLABRPMPKG)/\$(PACKAGE)-\$(VERSION)-\$(RELEASE).\$(PLATTAG).rpm \$(PACKAGE)-\$(VERSION)-\$(RELEASE).src.rpm: \$(PACKAGE).spec test -d \$(KOLABRPMSRC)/\$(PACKAGE) || mkdir \$(KOLABRPMSRC)/\$(PACKAGE) cp \$(PACKAGE).spec \$(PACKAGE).spec.tmp sed -i -e 's/\@VERSION\@/\$(VERSION)/' \$(PACKAGE).spec.tmp @@ -158,6 +162,9 @@ cd \$(KOLABRPMSRC)/\$(PACKAGE) && \$(RPM) -ba \$(PACKAGE).spec cp -p \$(KOLABRPMPKG)/\$(PACKAGE)-\$(VERSION)-\$(RELEASE).src.rpm . +.PHONY: install-kolab +install-kolab: \$(KOLABRPMPKG)/\$(PACKAGE)-\$(VERSION)-\$(RELEASE).\$(PLATTAG).rpm + \$(RPM) -Uhv --force \$(KOLABRPMPKG)/\$(PACKAGE)-\$(VERSION)-\$(RELEASE).\$(PLATTAG).rpm "; return $add; From cvs at kolab.org Thu Apr 16 12:23:03 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 16 Apr 2009 12:23:03 +0200 (CEST) Subject: thomas: doc/www/src roadmap.html.m4,1.27,1.28 Message-ID: <20090416102303.A7694600821@lists.intevation.de> Author: thomas Update of /kolabrepository/doc/www/src In directory doto:/tmp/cvs-serv27839 Modified Files: roadmap.html.m4 Log Message: There are critical bugs in 2.2.1, so we need 2.2.2 soon. Index: roadmap.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/roadmap.html.m4,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- roadmap.html.m4 8 Apr 2009 12:15:26 -0000 1.27 +++ roadmap.html.m4 16 Apr 2009 10:23:01 -0000 1.28 @@ -25,7 +25,8 @@ Improvements include the SyncML improvements to the Kolab Webclient, code cleanup and eliminating defects.

-It is planned to have further improvements in a release 2.2.2 or 2.3.0 in 2009. +It is planned to have a bugfix release 2.2.2 in April or early May 2009 and +to have further improvements in a release 2.3.0 in the second half of 2009.

Kolab Server 2.1 release series

Current is 2.1.0 Final. No further releases planned. From cvs at kolab.org Thu Apr 16 20:55:05 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 16 Apr 2009 20:55:05 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Filter issue3558.patch, NONE, 1.1.2.1 ChangeLog, 1.29.2.3, 1.29.2.4 Kolab_Filter.spec, 1.19.2.4, 1.19.2.5 Makefile, 1.8.2.3, 1.8.2.4 Message-ID: <20090416185505.C9A48600824@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter In directory doto:/tmp/cvs-serv7339 Modified Files: Tag: kolab_2_2_branch ChangeLog Kolab_Filter.spec Makefile Added Files: Tag: kolab_2_2_branch issue3558.patch Log Message: kolab/issue3558 (whole-day events broken for resources) --- NEW FILE: issue3558.patch --- --- a/lib/Horde/Kolab/Resource.php.orig 2009-04-16 20:00:58.000000000 +0200 +++ b/lib/Horde/Kolab/Resource.php 2009-04-16 20:46:05.000000000 +0200 @@ -247,8 +247,17 @@ $object['summary'] = $itip->getAttributeDefault('SUMMARY', ''); $object['location'] = $itip->getAttributeDefault('LOCATION', ''); $object['body'] = $itip->getAttributeDefault('DESCRIPTION', ''); - $object['start-date'] = $itip->getAttributeDefault('DTSTART', ''); - $object['end-date'] = $itip->getAttributeDefault('DTEND', ''); + $dtend = $itip->getAttributeDefault('DTEND', ''); + if (is_array($dtend)) { + $object['_is_all_day'] = true; + /** + * Substract a day (86400 seconds) using epochs to take number of + * days per month into account + */ + $dtend = $this->convert2epoch($dtend) - 86400; + } + $object['start-date'] = $this->convert2epoch($itip->getAttributeDefault('DTSTART', '')); + $object['end-date'] = $this->convert2epoch($dtend); if ($itip->getAttributeDefault('TRANSP', 'OPAQUE') == 'TRANSPARENT') { $object['show-time-as'] = $itip->getAttributeDefault('DTEND', ''); } @@ -997,17 +1006,16 @@ */ function cleanArray($ical_date) { - if (array_key_exists('hour', $ical_date)) { - $temp['hour'] = array_key_exists('hour', $ical_date) ? $ical_date['hour'] : '00'; - $temp['minute'] = array_key_exists('minute', $ical_date) ? $ical_date['minute'] : '00'; - $temp['second'] = array_key_exists('second', $ical_date) ? $ical_date['second'] : '00'; - $temp['zone'] = array_key_exists('zone', $ical_date) ? $ical_date['zone'] : 'UTC'; - } else { + if (!array_key_exists('hour', $ical_date)) { $temp['DATE'] = '1'; } + $temp['hour'] = array_key_exists('hour', $ical_date) ? $ical_date['hour'] : '00'; + $temp['minute'] = array_key_exists('minute', $ical_date) ? $ical_date['minute'] : '00'; + $temp['second'] = array_key_exists('second', $ical_date) ? $ical_date['second'] : '00'; $temp['year'] = array_key_exists('year', $ical_date) ? $ical_date['year'] : '0000'; $temp['month'] = array_key_exists('month', $ical_date) ? $ical_date['month'] : '00'; $temp['mday'] = array_key_exists('mday', $ical_date) ? $ical_date['mday'] : '00'; + $temp['zone'] = array_key_exists('zone', $ical_date) ? $ical_date['zone'] : 'UTC'; return $temp; } Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/ChangeLog,v retrieving revision 1.29.2.3 retrieving revision 1.29.2.4 diff -u -d -r1.29.2.3 -r1.29.2.4 --- ChangeLog 1 Apr 2009 16:04:38 -0000 1.29.2.3 +++ ChangeLog 16 Apr 2009 18:55:03 -0000 1.29.2.4 @@ -1,3 +1,8 @@ +2009-04-16 Gunnar Wrobel

+ + * Kolab_Filter.spec: kolab/issue3558 (whole-day events broken for + resources) + 2009-04-01 Gunnar Wrobel

* Kolab_Filter.spec: kolab/issue3521 (kolabmailboxfilter does not Index: Kolab_Filter.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Kolab_Filter.spec,v retrieving revision 1.19.2.4 retrieving revision 1.19.2.5 diff -u -d -r1.19.2.4 -r1.19.2.5 --- Kolab_Filter.spec 1 Apr 2009 16:04:38 -0000 1.19.2.4 +++ Kolab_Filter.spec 16 Apr 2009 18:55:03 -0000 1.19.2.5 @@ -25,6 +25,7 @@ Patch3: dovecotlda-quoting.patch Patch4: revert_issue2499.patch Patch5: issue3521.patch +Patch6: issue3558.patch # Build Info Prefix: %{l_prefix} @@ -65,6 +66,7 @@ %patch -p1 -P 3 %patch -p3 -P 4 %patch -p3 -P 5 + %patch -p1 -P 6 cp %{S:1} . %build Index: Makefile =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Makefile,v retrieving revision 1.8.2.3 retrieving revision 1.8.2.4 diff -u -d -r1.8.2.3 -r1.8.2.4 --- Makefile 1 Apr 2009 16:04:38 -0000 1.8.2.3 +++ Makefile 16 Apr 2009 18:55:03 -0000 1.8.2.4 @@ -21,7 +21,7 @@ SOURCE_URL=http://pear.horde.org/get SOURCE_0=$(PACKAGE)-$(VERSION).tgz -EXTRA=ChangeLog issue3521.patch revert_issue2499.patch issue3435.patch issue3192.patch issue3441.patch dovecotlda-quoting.patch package.xml +EXTRA=ChangeLog issue3521.patch revert_issue2499.patch issue3435.patch issue3192.patch issue3441.patch issue3558.patch dovecotlda-quoting.patch package.xml .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm From cvs at kolab.org Fri Apr 17 16:30:21 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 17 Apr 2009 16:30:21 +0200 (CEST) Subject: thomas: server/php-kolab/Kolab_Filter Kolab_Filter.spec, 1.19.2.5, 1.19.2.6 Message-ID: <20090417143021.E2B9B600828@lists.intevation.de> Author: thomas Update of /kolabrepository/server/php-kolab/Kolab_Filter In directory doto:/tmp/cvs-serv18419/php-kolab/Kolab_Filter Modified Files: Tag: kolab_2_2_branch Kolab_Filter.spec Log Message: Prepare version numbers for 2.2.1+CVS/2.2.2 and update Kolab_Filter version Index: Kolab_Filter.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Kolab_Filter.spec,v retrieving revision 1.19.2.5 retrieving revision 1.19.2.6 diff -u -d -r1.19.2.5 -r1.19.2.6 --- Kolab_Filter.spec 16 Apr 2009 18:55:03 -0000 1.19.2.5 +++ Kolab_Filter.spec 17 Apr 2009 14:30:19 -0000 1.19.2.6 @@ -1,7 +1,7 @@ # Variables %define V_package Kolab_Filter %define V_version 0.1.4 -%define V_release 20090401 +%define V_release 20090417 # Package Information Name: %{V_package} From cvs at kolab.org Fri Apr 17 16:30:21 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 17 Apr 2009 16:30:21 +0200 (CEST) Subject: thomas: server 1st.README, 1.1.2.6, 1.1.2.7 install-kolab.sh, 1.54.2.5, 1.54.2.6 release-notes.txt, 1.398.2.30, 1.398.2.31 Message-ID: <20090417143021.E0C22600823@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv18419 Modified Files: Tag: kolab_2_2_branch 1st.README install-kolab.sh release-notes.txt Log Message: Prepare version numbers for 2.2.1+CVS/2.2.2 and update Kolab_Filter version Index: 1st.README =================================================================== RCS file: /kolabrepository/server/1st.README,v retrieving revision 1.1.2.6 retrieving revision 1.1.2.7 diff -u -d -r1.1.2.6 -r1.1.2.7 --- 1st.README 7 Apr 2009 13:43:43 -0000 1.1.2.6 +++ 1st.README 17 Apr 2009 14:30:19 -0000 1.1.2.7 @@ -1,6 +1,6 @@ Kolab Server 2.2 Install and Upgrade Information ================================================ -(Version 20090407, Kolab Server 2.2.1) +(Version 2009????, Kolab Server 2.2.2) See http://kolab.org/ for general information about Kolab, or look at http://wiki.kolab.org/ for specific topics. @@ -123,6 +123,12 @@ # /kolab/bin/openpkg rc openldap start # /kolab/sbin/kolabconf -n # /kolab/bin/openpkg rc all start + + +Upgrade from 2.2.1 to 2.2.2 +--------------------------- + +Nothing special has to be done for this upgrade. Upgrade from 2.2.1-rc1 to 2.2.1 Index: install-kolab.sh =================================================================== RCS file: /kolabrepository/server/install-kolab.sh,v retrieving revision 1.54.2.5 retrieving revision 1.54.2.6 diff -u -d -r1.54.2.5 -r1.54.2.6 --- install-kolab.sh 31 Mar 2009 12:56:22 -0000 1.54.2.5 +++ install-kolab.sh 17 Apr 2009 14:30:19 -0000 1.54.2.6 @@ -12,7 +12,7 @@ # # This program is free software under the GNU GPL (>=v2) -KOLAB_VERSION="2.2.1" +KOLAB_VERSION="2.2.1+CVS" KID="19414" TAG="kolab" Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.30 retrieving revision 1.398.2.31 diff -u -d -r1.398.2.30 -r1.398.2.31 --- release-notes.txt 7 Apr 2009 13:43:43 -0000 1.398.2.30 +++ release-notes.txt 17 Apr 2009 14:30:19 -0000 1.398.2.31 @@ -1,6 +1,6 @@ Kolab Server 2.2 Release Notes ============================== -(Version 20090407, Kolab Server 2.2.1) +(Version 2009????, Kolab Server 2.2.2) For upgrading and installation instructions, please refer to the 1st.README file in the package directory. @@ -41,6 +41,22 @@ 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.1 and 2.2.2: + + - clamav-0.95.1-20090409 + + kolab/issue3513 (Clamav - new upstream version 0.95.1) + + - Kolab_Filter-0.1.4-20090417 + + kolab/issue3558 (whole-day events broken for resources) + + + Packages in the OpenPKG based Kolab server release: + + ??? Changes between 2.2.1-rc-1 and 2.2.1: From cvs at kolab.org Fri Apr 17 16:38:43 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 17 Apr 2009 16:38:43 +0200 (CEST) Subject: thomas: server 1st.README,1.1.2.7,1.1.2.8 Message-ID: <20090417143843.0B6E3600823@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv18610 Modified Files: Tag: kolab_2_2_branch 1st.README Log Message: Removed obsolete section about known regressions in the prerelease (it was fixed in 2.2.1, I just forgot to remove the section after -rc1) Index: 1st.README =================================================================== RCS file: /kolabrepository/server/1st.README,v retrieving revision 1.1.2.7 retrieving revision 1.1.2.8 diff -u -d -r1.1.2.7 -r1.1.2.8 --- 1st.README 17 Apr 2009 14:30:19 -0000 1.1.2.7 +++ 1st.README 17 Apr 2009 14:38:41 -0000 1.1.2.8 @@ -368,15 +368,6 @@ and then restore the IMAP data from the backup. -Known regressions compared to Kolab Server 2.2.0 ------------------------------------------------- - -The following issues affect the current prerelease, but are expected -to be fixed for the final release: - - kolab/issue3438 (kolabFreeBusyPast is not used) - - Generating your own 00INDEX.rdf for installations or upgrades ------------------------------------------------------------- From cvs at kolab.org Fri Apr 17 16:39:09 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 17 Apr 2009 16:39:09 +0200 (CEST) Subject: thomas: server 1st.README,1.7,1.8 Message-ID: <20090417143909.01886600828@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv18670 Modified Files: 1st.README Log Message: merge README changes from kolab_2_2_branch Index: 1st.README =================================================================== RCS file: /kolabrepository/server/1st.README,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- 1st.README 31 Mar 2009 16:13:20 -0000 1.7 +++ 1st.README 17 Apr 2009 14:39:06 -0000 1.8 @@ -125,6 +125,12 @@ # /kolab/bin/openpkg rc all start +Upgrade from 2.2.1 to 2.2.2 +--------------------------- + +Nothing special has to be done for this upgrade. + + Upgrade from 2.2.1-rc1 to 2.2.1 ------------------------------------- @@ -360,15 +366,6 @@ 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 regressions compared to Kolab Server 2.2.0 ------------------------------------------------- - -The following issues affect the current prerelease, but are expected -to be fixed for the final release: - - kolab/issue3438 (kolabFreeBusyPast is not used) Generating your own 00INDEX.rdf for installations or upgrades From cvs at kolab.org Fri Apr 17 16:53:29 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 17 Apr 2009 16:53:29 +0200 (CEST) Subject: thomas: server release-notes.txt,1.430,1.431 Message-ID: <20090417145329.D8276600830@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv19016 Modified Files: release-notes.txt Log Message: release notes: Add missing parts from kolab_2_2_branch, marked TODOs I'm not sure if all TODOs need to be merged from kolab_2_2_branch as some already appear in HEAD's release notes. But some fixes had to be fixed again, so this has to be verified. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.430 retrieving revision 1.431 diff -u -d -r1.430 -r1.431 --- release-notes.txt 16 Apr 2009 08:55:18 -0000 1.430 +++ release-notes.txt 17 Apr 2009 14:53:27 -0000 1.431 @@ -6,7 +6,7 @@ the 1st.README file in the package directory. -Changes between 2.2.1 and 2.???: +Changes between 2.2.2 and 2.???: - apache-php-5.2.8-20081209_kolab3 @@ -79,13 +79,44 @@ kolab/issue3472 (web client user prefs not deleted when user gets deleted) + + Packages in the OpenPKG based Kolab server release: + + ??? + + +Changes between 2.2.1 and 2.2.2: +(TODOs might need to be merged from kolab_2_2_branch!) + +TODO: + - clamav-0.95.1-20090409 + +TODO: kolab/issue3513 (Clamav - new upstream version 0.95.1) + +TODO: + - Kolab_Filter-0.1.4-20090417 + +TODO: kolab/issue3558 (whole-day events broken for resources) + + + Packages in the OpenPKG based Kolab server release: + + ??? + + Changes between 2.2.1-rc-1 and 2.2.1: -(keep in sync with kolab_2_2_branch!) +(TODOs might need to be merged from kolab_2_2_branch!) - clamav-0.95-20090323 kolab/issue3513 (Clamav - new upstream version 0.95) +TODO: + - imapd-2.3.13-20081020_kolab2 + +TODO: kolab/issue2535 (group:distributionlist at example.com doesn't work + for Cyrus IMAP ACLs) + - install-kolab.sh kolab/issue3130 (Perl Error on Upgrade) @@ -97,21 +128,35 @@ kolab/issue3096 (Address book aliases shouldn't redirect outgoing mails) +TODO: kolab/issue3420 (web client prefs and hooks should be + configurable via templates) kolab/issue3513 (Clamav - new upstream version 0.95) - - Kolab_Filter-0.1.4-20090320 +TODO: + - Kolab_Filter-0.1.4-20090401 Fixed quoting of arguments to dovecot deliver command in the DovecotLDA transport backend. kolab/issue3464 (kolab-filter inserts wrong/undecodeable utf-8 code into From: header) +TODO: kolab/issue3521 (kolabmailboxfilter does not accept mail for + user+extension at example.com) - - Kolab_FreeBusy-0.1.2-20090320 +TODO: + - Kolab_Format-1.0.0-20090402 + +TODO: kolab/issue3525 (free/busy regeneration aborts for unparsable events) + +TODO: + - Kolab_FreeBusy-0.1.2-20090406 kolab/issue3413 (freebusy fails after uprading Kolab_FreeBusy until kolabconf is run) kolab/issue3438 (kolabFreeBusyPast is not used) +TODO: kolab/issue3450 (freebusy/user at example.com.ifb returns extended + free/busy information) +TODO: kolab/issue3537 (Allowing xfb access to groups does not work) - kolab-webadmin-2.2.1-20090331 @@ -119,12 +164,17 @@ - kolab-webclient-1.2.0-20090327 +TODO: kolab/issue3420 (web client prefs and hooks should be + configurable via templates) kolab/issue3444 (No error message when login fails because of wrong credentials) kolab/issue3451 (Folder list does not get updated in dimp after creating a new folder) kolab/issue3452 (Allow to configure the default imp view offered to the user) +TODO: kolab/issue3520 (calendar with certain entries does not display in + web client) +TODO: kolab/issue3528 (Events with broken encoding should work) - openpkg-20071227-20071227_kolab1 @@ -142,7 +192,149 @@ Packages in the OpenPKG based Kolab server release: - ??? + - Kolab packages: + + Updated: + + Kolab_Filter-0.1.4-20090401 + Kolab_Format-1.0.0-20090402 + Kolab_FreeBusy-0.1.2-20090406 + kolab-webadmin-2.2.1-20090331 + kolab-webclient-1.2.0-20090402 + kolabd-2.2.1-20090407 + perl-kolab-2.2.1-20090331 + + Unchanged: + + Horde_Argv-0.1.0-20081209 + Horde_Auth-0.1.1-20081209 + Horde_Browser-0.0.2-20081209 + Horde_CLI-0.0.2-20081209 + Horde_Cache-0.0.2-20081209 + Horde_Cipher-0.0.2-20081209 + Horde_DOM-0.1.0-20081209 + Horde_DataTree-0.0.3-20081209 + Horde_Date-0.1.0-20081209 + Horde_Framework-0.0.2-20081209 + Horde_Group-0.1.0-20081209 + Horde_History-0.0.2-20081209 + Horde_LDAP-0.0.2-20081209 + Horde_MIME-0.0.2-20081209 + Horde_NLS-0.0.2-20081209 + Horde_Notification-0.0.2-20090223 + Horde_Perms-0.1.0-20081209 + Horde_Prefs-0.0.3-20090223 + Horde_Secret-0.0.2-20081209 + Horde_Serialize-0.0.2-20081209 + Horde_SessionObjects-0.0.2-20081209 + Horde_Util-0.1.0-20081209 + Horde_iCalendar-0.1.0-20081209 + Kolab_Server-0.4.0-20090224 + Kolab_Storage-0.4.0-20090224 + PEAR-Auth_SASL-1.0.2-1 + PEAR-Date-1.4.7-1 + PEAR-HTTP_Request-1.4.3-1 + PEAR-Horde-Channel-1.0-20090119 + PEAR-Log-1.11.2-1 + PEAR-Mail-1.1.14-1 + PEAR-Mail_mimeDecode-1.5.0-20081209 + PEAR-Net_LMTP-1.0.1-1 + PEAR-Net_SMTP-1.3.1-1 + PEAR-Net_Socket-1.0.9-1 + PEAR-Net_URL-1.0.15-1 + PEAR-PHPUnit-Channel-1.0-20090119 + PHPUnit-3.3.3-1 + kolab-fbview-1.2.0-20081227 + openldap-2.3.43-20081212 + perl-ldap-5.10.0-20081028_kolab1 + php-smarty-2.6.20-20081212 + sqlite-3.6.4-20081212 + + - OpenPKG packages: + + Updated: + + clamav-0.95-20090323 + imapd-2.3.13-20081020_kolab2 + openpkg-20071227-20071227_kolab1 + + Unchanged: + + amavisd-2.5.3-20080101 + apache-2.2.10-20081111 + apache-php-5.2.8-20081209_kolab2 + apr-1.2.12-20080101 + autoconf-2.61-20080101 + automake-1.10-20080101 + bc-1.06-20080101 + binutils-2.18-20080101 + bison-2.3-20080101 + bzip2-1.0.5-20080318 + config-20060923-20080101 + curl-7.17.1-20080101 + db-4.5.20.2-20070628 + diffutils-2.8.7-20080101 + expat-2.0.1-20080101 + file-4.23-20080101 + flex-2.5.34-20080101 + freetype-2.3.5-20080101 + fsl-1.7.0-20080101 + gawk-3.1.6-20080101 + gcc-4.2.2-20080101 + gd-2.0.35-20080101 + gettext-0.17-20080101 + gmp-4.2.2-20080101_kolab + grep-2.5.3-20080101 + groff-1.19.2-20080101 + gzip-1.3.12-20080101 + imap-2006k-20080101 + jpeg-6b-20080101 + libiconv-1.12-20080101 + libmcrypt-2.5.8-20080101 + libxml-2.6.31-20080111 + libxslt-1.1.22-20080101 + lzo-2.02-20080101 + m4-1.4.9-20080101 + make-3.81-20080101 + mhash-0.9.9-20080101 + mm-1.4.2-20080101 + ncurses-5.6.20080112-20080113 + openpkg-tools-1.4.6-20071231 + openssl-0.9.8g-20080101 + pcre-7.5-20080110 + perl-5.10.0-20080103 + perl-comp-5.10.0-20080110 + perl-conv-5.10.0-20080101 + perl-crypto-5.10.0-20080101 + perl-db-5.10.0-20080118 + perl-dns-5.10.0-20080101 + perl-ds-5.10.0-20080104 + perl-locale-5.10.0-20080112 + perl-mail-5.10.0-20080117 + perl-module-5.10.0-20080101 + perl-net-5.10.0-20080101 + perl-openpkg-5.10.0-20080109 + perl-parse-5.10.0-20080117 + perl-ssl-5.10.0-20080101 + perl-stats-5.10.0-20080101 + perl-sys-5.10.0-20080101 + perl-term-5.10.0-20080116 + perl-text-5.10.0-20080101 + perl-time-5.10.0-20080101 + perl-util-5.10.0-20080116 + perl-www-5.10.0-20080103 + perl-xml-5.10.0-20080101 + php-5.2.8-20081209_kolab2 + pkgconfig-0.23-20080117 + png-1.2.24-20080101 + postfix-2.4.6-20080101_kolab + procmail-3.22-20080101 + readline-5.2.12-20080101 + sasl-2.1.22-20080101 + sed-4.1.5-20080101 + spamassassin-3.2.4-20080107 + texinfo-4.11-20080101 + zlib-1.2.3-20080101 Changes between 2.2.1-beta-1 and 2.2.1-rc-1: From cvs at kolab.org Fri Apr 17 17:00:34 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 17 Apr 2009 17:00:34 +0200 (CEST) Subject: thomas: server release-notes.txt,1.431,1.432 Message-ID: <20090417150034.7C679600830@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv19273 Modified Files: release-notes.txt Log Message: Removed HEAD's release notes entry for kolab/issue3472: 1. it was misplaced 2. since it is a simple port from kolab_2_2_branch, it only needs to be listed once (in the section 2.2.1-rc1 -> 2.2.1) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.431 retrieving revision 1.432 diff -u -d -r1.431 -r1.432 --- release-notes.txt 17 Apr 2009 14:53:27 -0000 1.431 +++ release-notes.txt 17 Apr 2009 15:00:32 -0000 1.432 @@ -76,9 +76,6 @@ Activated the HASH and JSON modules. - kolab/issue3472 (web client user prefs not deleted when user gets - deleted) - Packages in the OpenPKG based Kolab server release: From cvs at kolab.org Sat Apr 18 22:47:01 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 18 Apr 2009 22:47:01 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Filter Kolab_Filter.spec, 1.19.2.6, 1.19.2.7 issue3558.patch, 1.1.2.1, 1.1.2.2 Message-ID: <20090418204701.4EBE8600820@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter In directory doto:/tmp/cvs-serv24347 Modified Files: Tag: kolab_2_2_branch Kolab_Filter.spec issue3558.patch Log Message: Do not substract a day. I'm still confused why the old code might have had any needs to do that. kolab/issue3558 (whole-day events broken for resources) Index: Kolab_Filter.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Kolab_Filter.spec,v retrieving revision 1.19.2.6 retrieving revision 1.19.2.7 diff -u -d -r1.19.2.6 -r1.19.2.7 --- Kolab_Filter.spec 17 Apr 2009 14:30:19 -0000 1.19.2.6 +++ Kolab_Filter.spec 18 Apr 2009 20:46:59 -0000 1.19.2.7 @@ -1,7 +1,7 @@ # Variables %define V_package Kolab_Filter %define V_version 0.1.4 -%define V_release 20090417 +%define V_release 20090418 # Package Information Name: %{V_package} Index: issue3558.patch =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Attic/issue3558.patch,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- issue3558.patch 16 Apr 2009 18:55:03 -0000 1.1.2.1 +++ issue3558.patch 18 Apr 2009 20:46:59 -0000 1.1.2.2 @@ -1,6 +1,6 @@ ---- a/lib/Horde/Kolab/Resource.php.orig 2009-04-16 20:00:58.000000000 +0200 -+++ b/lib/Horde/Kolab/Resource.php 2009-04-16 20:46:05.000000000 +0200 -@@ -247,8 +247,17 @@ +--- /kolab/RPM/TMP/Kolab_Filter-0.1.4/lib/Horde/Kolab/Resource.php.orig 2009-04-16 20:48:29.000000000 +0200 ++++ /kolab/lib/php/Horde/Kolab/Resource.php 2009-04-18 22:43:11.000000000 +0200 +@@ -247,8 +247,12 @@ $object['summary'] = $itip->getAttributeDefault('SUMMARY', ''); $object['location'] = $itip->getAttributeDefault('LOCATION', ''); $object['body'] = $itip->getAttributeDefault('DESCRIPTION', ''); @@ -9,18 +9,13 @@ + $dtend = $itip->getAttributeDefault('DTEND', ''); + if (is_array($dtend)) { + $object['_is_all_day'] = true; -+ /** -+ * Substract a day (86400 seconds) using epochs to take number of -+ * days per month into account -+ */ -+ $dtend = $this->convert2epoch($dtend) - 86400; + } + $object['start-date'] = $this->convert2epoch($itip->getAttributeDefault('DTSTART', '')); + $object['end-date'] = $this->convert2epoch($dtend); if ($itip->getAttributeDefault('TRANSP', 'OPAQUE') == 'TRANSPARENT') { $object['show-time-as'] = $itip->getAttributeDefault('DTEND', ''); } -@@ -997,17 +1006,16 @@ +@@ -997,17 +1001,16 @@ */ function cleanArray($ical_date) { From cvs at kolab.org Sat Apr 18 22:49:00 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 18 Apr 2009 22:49:00 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Filter issue3558.patch, 1.1.2.2, 1.1.2.3 Message-ID: <20090418204900.D2986600821@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter In directory doto:/tmp/cvs-serv24427 Modified Files: Tag: kolab_2_2_branch issue3558.patch Log Message: Fix typo. Index: issue3558.patch =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Attic/issue3558.patch,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -u -d -r1.1.2.2 -r1.1.2.3 --- issue3558.patch 18 Apr 2009 20:46:59 -0000 1.1.2.2 +++ issue3558.patch 18 Apr 2009 20:48:58 -0000 1.1.2.3 @@ -1,5 +1,5 @@ ---- /kolab/RPM/TMP/Kolab_Filter-0.1.4/lib/Horde/Kolab/Resource.php.orig 2009-04-16 20:48:29.000000000 +0200 -+++ /kolab/lib/php/Horde/Kolab/Resource.php 2009-04-18 22:43:11.000000000 +0200 +--- a/lib/Horde/Kolab/Resource.php.orig 2009-04-16 20:00:58.000000000 +0200 ++++ b/lib/Horde/Kolab/Resource.php 2009-04-16 20:46:05.000000000 +0200 @@ -247,8 +247,12 @@ $object['summary'] = $itip->getAttributeDefault('SUMMARY', ''); $object['location'] = $itip->getAttributeDefault('LOCATION', ''); From cvs at kolab.org Mon Apr 20 18:22:39 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 20 Apr 2009 18:22:39 +0200 (CEST) Subject: thomas: server release-notes.txt,1.398.2.31,1.398.2.32 Message-ID: <20090420162239.394C6600168@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv18953 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: slapd.conf.template.in: Make kolabAllowSMTPRecipient readable for the nobody user, needed for kolab/issue1340 (RFC: restrict users to sending mail only to internal recipients) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.31 retrieving revision 1.398.2.32 diff -u -d -r1.398.2.31 -r1.398.2.32 --- release-notes.txt 17 Apr 2009 14:30:19 -0000 1.398.2.31 +++ release-notes.txt 20 Apr 2009 16:22:36 -0000 1.398.2.32 @@ -49,6 +49,12 @@ kolab/issue3513 (Clamav - new upstream version 0.95.1) + - kolabd-2.2.2-2009???? + + Make kolabAllowSMTPRecipient readable for the nobody user, needed for + kolab/issue1340 (RFC: restrict users to sending mail only to internal + recipients) + - Kolab_Filter-0.1.4-20090417 kolab/issue3558 (whole-day events broken for resources) From cvs at kolab.org Mon Apr 20 18:22:39 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 20 Apr 2009 18:22:39 +0200 (CEST) Subject: thomas: server/kolabd/kolabd/templates slapd.conf.template.in, 1.25, 1.25.2.1 Message-ID: <20090420162239.3BDF4600173@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv18953/kolabd/kolabd/templates Modified Files: Tag: kolab_2_2_branch slapd.conf.template.in Log Message: slapd.conf.template.in: Make kolabAllowSMTPRecipient readable for the nobody user, needed for kolab/issue1340 (RFC: restrict users to sending mail only to internal recipients) Index: slapd.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/slapd.conf.template.in,v retrieving revision 1.25 retrieving revision 1.25.2.1 diff -u -d -r1.25 -r1.25.2.1 --- slapd.conf.template.in 11 Dec 2008 16:56:52 -0000 1.25 +++ slapd.conf.template.in 20 Apr 2009 16:22:37 -0000 1.25.2.1 @@ -159,6 +159,7 @@ access to attrs=kolabAllowSMTPRecipient by group/kolabGroupOfNames="cn=admin,cn=internal,@@@base_dn@@@" write by group/kolabGroupOfNames="cn=maintainer,cn=internal,@@@base_dn@@@" write + by dn="cn=nobody,cn=internal,@@@base_dn@@@" read by self read stop access to dn="cn=nobody,@@@base_dn@@@" From cvs at kolab.org Mon Apr 20 18:22:39 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 20 Apr 2009 18:22:39 +0200 (CEST) Subject: thomas: server/kolabd/kolabd ChangeLog,1.234.2.6,1.234.2.7 Message-ID: <20090420162239.3A7A560016D@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv18953/kolabd/kolabd Modified Files: Tag: kolab_2_2_branch ChangeLog Log Message: slapd.conf.template.in: Make kolabAllowSMTPRecipient readable for the nobody user, needed for kolab/issue1340 (RFC: restrict users to sending mail only to internal recipients) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.234.2.6 retrieving revision 1.234.2.7 diff -u -d -r1.234.2.6 -r1.234.2.7 --- ChangeLog 7 Apr 2009 13:27:42 -0000 1.234.2.6 +++ ChangeLog 20 Apr 2009 16:22:37 -0000 1.234.2.7 @@ -1,3 +1,9 @@ +2009-04-20 Thomas Arendsen Hein + + * templates/slapd.conf.template.in: Make kolabAllowSMTPRecipient + readable for the nobody user, needed for kolab/issue1340 (RFC: + restrict users to sending mail only to internal recipients) + 2009-04-07 Thomas Arendsen Hein * templates/amavisd.conf.template.in: Disable From cvs at kolab.org Mon Apr 20 18:25:51 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 20 Apr 2009 18:25:51 +0200 (CEST) Subject: thomas: server release-notes.txt,1.432,1.433 Message-ID: <20090420162551.641EB60081D@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv19124 Modified Files: release-notes.txt Log Message: slapd.conf.template.in: Make kolabAllowSMTPRecipient readable for the nobody user, needed for kolab/issue1340 (RFC: restrict users to sending mail only to internal recipients) (ported from kolab_2_2_branch) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.432 retrieving revision 1.433 diff -u -d -r1.432 -r1.433 --- release-notes.txt 17 Apr 2009 15:00:32 -0000 1.432 +++ release-notes.txt 20 Apr 2009 16:25:47 -0000 1.433 @@ -90,6 +90,12 @@ TODO: kolab/issue3513 (Clamav - new upstream version 0.95.1) + - kolabd-2.2.2-2009???? + + Make kolabAllowSMTPRecipient readable for the nobody user, needed for + kolab/issue1340 (RFC: restrict users to sending mail only to internal + recipients) + TODO: - Kolab_Filter-0.1.4-20090417 From cvs at kolab.org Mon Apr 20 18:25:51 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 20 Apr 2009 18:25:51 +0200 (CEST) Subject: thomas: server/kolabd/kolabd/templates slapd.conf.template.in, 1.25, 1.26 Message-ID: <20090420162551.63EAA60016D@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv19124/kolabd/kolabd/templates Modified Files: slapd.conf.template.in Log Message: slapd.conf.template.in: Make kolabAllowSMTPRecipient readable for the nobody user, needed for kolab/issue1340 (RFC: restrict users to sending mail only to internal recipients) (ported from kolab_2_2_branch) Index: slapd.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/slapd.conf.template.in,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- slapd.conf.template.in 11 Dec 2008 16:56:52 -0000 1.25 +++ slapd.conf.template.in 20 Apr 2009 16:25:47 -0000 1.26 @@ -159,6 +159,7 @@ access to attrs=kolabAllowSMTPRecipient by group/kolabGroupOfNames="cn=admin,cn=internal,@@@base_dn@@@" write by group/kolabGroupOfNames="cn=maintainer,cn=internal,@@@base_dn@@@" write + by dn="cn=nobody,cn=internal,@@@base_dn@@@" read by self read stop access to dn="cn=nobody,@@@base_dn@@@" From cvs at kolab.org Mon Apr 20 18:25:51 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 20 Apr 2009 18:25:51 +0200 (CEST) Subject: thomas: server/kolabd/kolabd ChangeLog,1.246,1.247 Message-ID: <20090420162551.631C9600168@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv19124/kolabd/kolabd Modified Files: ChangeLog Log Message: slapd.conf.template.in: Make kolabAllowSMTPRecipient readable for the nobody user, needed for kolab/issue1340 (RFC: restrict users to sending mail only to internal recipients) (ported from kolab_2_2_branch) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.246 retrieving revision 1.247 diff -u -d -r1.246 -r1.247 --- ChangeLog 7 Apr 2009 13:31:15 -0000 1.246 +++ ChangeLog 20 Apr 2009 16:25:47 -0000 1.247 @@ -1,3 +1,9 @@ +2009-04-20 Thomas Arendsen Hein + + * templates/slapd.conf.template.in: Make kolabAllowSMTPRecipient + readable for the nobody user, needed for kolab/issue1340 (RFC: + restrict users to sending mail only to internal recipients) + 2009-04-07 Thomas Arendsen Hein * templates/amavisd.conf.template.in: Disable From cvs at kolab.org Wed Apr 22 17:42:23 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 22 Apr 2009 17:42:23 +0200 (CEST) Subject: wilde: server/kolab-webclient kolab-webclient.spec, 1.23.2.6, 1.23.2.6.2.1 Message-ID: <20090422154223.0A70260082A@lists.intevation.de> Author: wilde Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv16955/kolab-webclient Modified Files: Tag: suc_branch kolab-webclient.spec Log Message: Added Boris patch for kolab/issue3329 improving placement of invitation handling popup menu Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.23.2.6 retrieving revision 1.23.2.6.2.1 diff -u -d -r1.23.2.6 -r1.23.2.6.2.1 --- kolab-webclient.spec 2 Apr 2009 09:51:33 -0000 1.23.2.6 +++ kolab-webclient.spec 22 Apr 2009 15:42:20 -0000 1.23.2.6.2.1 @@ -3,12 +3,12 @@ %define V_package kolab-webclient %define V_year 2009 %define V_month 04 -%define V_day 02 +%define V_day 22 %define V_version 1.2.0 %define V_source_version 1.2 %define V_passwd_version 3.0.1 %define V_date %{V_year}-%{V_month}-%{V_day} -%define V_release %{V_year}%{V_month}%{V_day} +%define V_release %{V_year}%{V_month}%{V_day}suc01 # Package Information Name: %{V_package} From cvs at kolab.org Wed Apr 22 17:42:23 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 22 Apr 2009 17:42:23 +0200 (CEST) Subject: wilde: server/patches/horde-webmail/1.2.0/merges issue3329.patch, NONE, 1.1.2.1 series, 1.1, 1.1.4.1 Message-ID: <20090422154223.516F160082A@lists.intevation.de> Author: wilde Update of /kolabrepository/server/patches/horde-webmail/1.2.0/merges In directory doto:/tmp/cvs-serv16955/patches/horde-webmail/1.2.0/merges Modified Files: Tag: suc_branch series Added Files: Tag: suc_branch issue3329.patch Log Message: Added Boris patch for kolab/issue3329 improving placement of invitation handling popup menu --- NEW FILE: issue3329.patch --- diff --git a/horde-webmail/imp/lib/MIME/Viewer/itip.php b/horde-webmail/imp/lib/MIME/Viewer/itip.php index 3227519..48769a2 100644 --- a/horde-webmail/imp/lib/MIME/Viewer/itip.php +++ b/horde-webmail/imp/lib/MIME/Viewer/itip.php @@ -752,8 +752,6 @@ class IMP_MIME_Viewer_itip extends MIME_Viewer { } $script = 'if (DIMP.baseWindow) {var B = DIMP.baseWindow.DimpBase;} else {B = DimpBase;};DimpCore.addMouseEvents({ id: \'button_invitation_cont\', type: \'itippopdown\', offset: \'button_invitation_cont\', left: true});'; - $script .= '[ \'acceptimport\', \'import\', \'accept\', \'tentative\', \'deny\', \'update\', \'send\' ].each(function(a) {var d = $(\'ctx_itippopdown_\' + a); if (d) { DimpCore.clickObserveHandler({ d: d, f: function(a) { B.itip(a, DIMP.conf.msg_index, DIMP.conf.msg_folder, ' . $id . '); window.close(); }.curry(a) })}})'; - $html .= '

' . _createMEntry(_("Invitation"), 'kronolith.png', 'button_invitation', 'hasmenu', true, 'kronolith') . Horde::img('popdown.png', '', array(), $GLOBALS['registry']->getImageDir('dimp')) . '

'; if ($this->_msgs) { @@ -866,14 +864,30 @@ class IMP_MIME_Viewer_itip extends MIME_Viewer { $html .= ' '; } else if ($_SESSION['imp']['viewmode'] == 'dimp') { + // the div of the context menu + $script = "var itipContextMenu = document.createElement('div');\n"; + $script .= "itipContextMenu.setAttribute('class', 'context');\n"; + $script .= "itipContextMenu.setAttribute('id', 'ctx_itippopdown');\n"; + $script .= "itipContextMenu.setAttribute('style', 'display:none');\n"; - $html .= '

'; - + // all the context menu items foreach ($options as $key => $description) { - $html .= '
' . _createMEntry($description, 'kronolith.png', 'ctx_itippopdown_' . $key, '', true, 'kronolith') . '
'; + $script .= "var itipContextMenuItem = document.createElement('a');\n"; + $script .= "itipContextMenuItem.setAttribute('id', 'ctx_itippopdown" . $key . "');\n"; + $script .= "var linkText = document.createTextNode('" . $description . "');\n"; + $script .= "itipContextMenuItem.appendChild(linkText);\n"; + $script .= "itipContextMenu.appendChild(itipContextMenuItem);\n"; + $script .= "var d = $(itipContextMenuItem);\n"; + $script .= "DimpCore.clickObserveHandler({ d: d,\n"; + $script .= " f: function(a) {\n"; + $script .= " B.itip(a, DIMP.conf.msg_index, DIMP.conf.msg_folder, '" . $id . "');\n"; + $script .= " window.close();\n"; + $script .= " }.curry('" . $key . "'),\n"; + $script .= " ns: true,\n"; + $script .= " });\n"; } - - $html .= '
'; + $script .= "document.getElementById('dimpPage').appendChild(itipContextMenu);\n"; + $html .= ''; } } Index: series =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/merges/series,v retrieving revision 1.1 retrieving revision 1.1.4.1 diff -u -d -r1.1 -r1.1.4.1 --- series 20 Feb 2009 10:19:09 -0000 1.1 +++ series 22 Apr 2009 15:42:21 -0000 1.1.4.1 @@ -1 +1,2 @@ t_framework_HK_SW_Kolab__Storage_DovecotSharedFolderOwner.diff +issue3329.patch From cvs at kolab.org Wed Apr 22 17:42:23 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 22 Apr 2009 17:42:23 +0200 (CEST) Subject: wilde: server/patches/horde-webmail/1.2.0 horde-webmail-1.2.0_kolab_openpkg.patch, 1.32.2.4, 1.32.2.4.2.1 Message-ID: <20090422154223.94E2F60082C@lists.intevation.de> Author: wilde Update of /kolabrepository/server/patches/horde-webmail/1.2.0 In directory doto:/tmp/cvs-serv16955/patches/horde-webmail/1.2.0 Modified Files: Tag: suc_branch horde-webmail-1.2.0_kolab_openpkg.patch Log Message: Added Boris patch for kolab/issue3329 improving placement of invitation handling popup menu Index: horde-webmail-1.2.0_kolab_openpkg.patch =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/horde-webmail-1.2.0_kolab_openpkg.patch,v retrieving revision 1.32.2.4 retrieving revision 1.32.2.4.2.1 diff -u -d -r1.32.2.4 -r1.32.2.4.2.1 --- horde-webmail-1.2.0_kolab_openpkg.patch 2 Apr 2009 09:51:33 -0000 1.32.2.4 +++ horde-webmail-1.2.0_kolab_openpkg.patch 22 Apr 2009 15:42:21 -0000 1.32.2.4.2.1 @@ -20022,3 +20022,52 @@ } Diff finished. Wed Feb 18 17:55:20 2009 +diff --git a/horde-webmail/imp/lib/MIME/Viewer/itip.php b/horde-webmail/imp/lib/MIME/Viewer/itip.php +index 3227519..48769a2 100644 +--- a/horde-webmail/imp/lib/MIME/Viewer/itip.php ++++ b/horde-webmail/imp/lib/MIME/Viewer/itip.php +@@ -752,8 +752,6 @@ class IMP_MIME_Viewer_itip extends MIME_Viewer { + } + + $script = 'if (DIMP.baseWindow) {var B = DIMP.baseWindow.DimpBase;} else {B = DimpBase;};DimpCore.addMouseEvents({ id: \'button_invitation_cont\', type: \'itippopdown\', offset: \'button_invitation_cont\', left: true});'; +- $script .= '[ \'acceptimport\', \'import\', \'accept\', \'tentative\', \'deny\', \'update\', \'send\' ].each(function(a) {var d = $(\'ctx_itippopdown_\' + a); if (d) { DimpCore.clickObserveHandler({ d: d, f: function(a) { B.itip(a, DIMP.conf.msg_index, DIMP.conf.msg_folder, ' . $id . '); window.close(); }.curry(a) })}})'; +- + $html .= '
' . _createMEntry(_("Invitation"), 'kronolith.png', 'button_invitation', 'hasmenu', true, 'kronolith') . Horde::img('popdown.png', '', array(), $GLOBALS['registry']->getImageDir('dimp')) . '

'; + + if ($this->_msgs) { +@@ -866,14 +864,30 @@ class IMP_MIME_Viewer_itip extends MIME_Viewer { + $html .= ' '; + + } else if ($_SESSION['imp']['viewmode'] == 'dimp') { ++ // the div of the context menu ++ $script = "var itipContextMenu = document.createElement('div');\n"; ++ $script .= "itipContextMenu.setAttribute('class', 'context');\n"; ++ $script .= "itipContextMenu.setAttribute('id', 'ctx_itippopdown');\n"; ++ $script .= "itipContextMenu.setAttribute('style', 'display:none');\n"; + +- $html .= '

'; +- ++ // all the context menu items + foreach ($options as $key => $description) { +- $html .= '
' . _createMEntry($description, 'kronolith.png', 'ctx_itippopdown_' . $key, '', true, 'kronolith') . '
'; ++ $script .= "var itipContextMenuItem = document.createElement('a');\n"; ++ $script .= "itipContextMenuItem.setAttribute('id', 'ctx_itippopdown" . $key . "');\n"; ++ $script .= "var linkText = document.createTextNode('" . $description . "');\n"; ++ $script .= "itipContextMenuItem.appendChild(linkText);\n"; ++ $script .= "itipContextMenu.appendChild(itipContextMenuItem);\n"; ++ $script .= "var d = $(itipContextMenuItem);\n"; ++ $script .= "DimpCore.clickObserveHandler({ d: d,\n"; ++ $script .= " f: function(a) {\n"; ++ $script .= " B.itip(a, DIMP.conf.msg_index, DIMP.conf.msg_folder, '" . $id . "');\n"; ++ $script .= " window.close();\n"; ++ $script .= " }.curry('" . $key . "'),\n"; ++ $script .= " ns: true,\n"; ++ $script .= " });\n"; + } +- +- $html .= '
'; ++ $script .= "document.getElementById('dimpPage').appendChild(itipContextMenu);\n"; ++ $html .= ''; + } + } + From cvs at kolab.org Wed Apr 22 18:00:47 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 22 Apr 2009 18:00:47 +0200 (CEST) Subject: wilde: server/kolab-webclient kolab-webclient.spec, 1.23.2.6.2.1, 1.23.2.6.2.2 Message-ID: <20090422160047.BC25B60082A@lists.intevation.de> Author: wilde Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv17413/kolab-webclient Modified Files: Tag: suc_branch kolab-webclient.spec Log Message: Added Gunnar's patch for kolab/issue3455^Jconvenient ACL handling in dimp. Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.23.2.6.2.1 retrieving revision 1.23.2.6.2.2 diff -u -d -r1.23.2.6.2.1 -r1.23.2.6.2.2 --- kolab-webclient.spec 22 Apr 2009 15:42:20 -0000 1.23.2.6.2.1 +++ kolab-webclient.spec 22 Apr 2009 16:00:45 -0000 1.23.2.6.2.2 @@ -8,7 +8,7 @@ %define V_source_version 1.2 %define V_passwd_version 3.0.1 %define V_date %{V_year}-%{V_month}-%{V_day} -%define V_release %{V_year}%{V_month}%{V_day}suc01 +%define V_release %{V_year}%{V_month}%{V_day}suc02 # Package Information Name: %{V_package} From cvs at kolab.org Wed Apr 22 18:00:48 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 22 Apr 2009 18:00:48 +0200 (CEST) Subject: wilde: server/patches/horde-webmail/1.2.0 horde-webmail-1.2.0_kolab_openpkg.patch, 1.32.2.4.2.1, 1.32.2.4.2.2 Message-ID: <20090422160048.64E6060082C@lists.intevation.de> Author: wilde Update of /kolabrepository/server/patches/horde-webmail/1.2.0 In directory doto:/tmp/cvs-serv17413/patches/horde-webmail/1.2.0 Modified Files: Tag: suc_branch horde-webmail-1.2.0_kolab_openpkg.patch Log Message: Added Gunnar's patch for kolab/issue3455^Jconvenient ACL handling in dimp. Index: horde-webmail-1.2.0_kolab_openpkg.patch =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/horde-webmail-1.2.0_kolab_openpkg.patch,v retrieving revision 1.32.2.4.2.1 retrieving revision 1.32.2.4.2.2 diff -u -d -r1.32.2.4.2.1 -r1.32.2.4.2.2 --- horde-webmail-1.2.0_kolab_openpkg.patch 22 Apr 2009 15:42:21 -0000 1.32.2.4.2.1 +++ horde-webmail-1.2.0_kolab_openpkg.patch 22 Apr 2009 16:00:45 -0000 1.32.2.4.2.2 @@ -20071,3 +20071,146 @@ } } +From: Gunnar Wrobel

+Subject: [PATCH] t/dimp/H/GW/AclView + +Provide a possibility to edit IMAP folder acls within DIMP. + +kolab/issue3455 (There is no convenient/dimp-like way in dimp to set folder acls) +https://www.intevation.de/roundup/kolab/issue3455 + +[#8060] Additional entry in the folder popup to set IMAP ACLs +http://bugs.horde.org/ticket/8060 + +Signed-off-by: Gunnar Wrobel

+ +--- + horde-webmail/dimp/js/DimpBase.js | 1 + + horde-webmail/dimp/lib/DIMP.php | 1 + + horde-webmail/dimp/templates/index/index.inc | 1 + + horde-webmail/imp/acl.php | 12 ++++++++++-- + horde-webmail/imp/templates/acl/acl.html | 6 ++++++ + 5 files changed, 19 insertions(+), 2 deletions(-) + +diff --git a/horde-webmail/dimp/js/DimpBase.js b/horde-webmail/dimp/js/DimpBase.js +index 39a728b..c4eb9f4 100644 +--- a/horde-webmail/dimp/js/DimpBase.js ++++ b/horde-webmail/dimp/js/DimpBase.js +@@ -1941,6 +1941,7 @@ var DimpBase = { + C({ d: $('ctx_folder_rename'), f: function() { this.renameFolder(DimpCore.DMenu.element()); }.bind(this), ns: true }); + C({ d: $('ctx_folder_empty'), f: function() { if (window.confirm(DIMP.text.empty_folder)) { DimpCore.doAction('EmptyFolder', { folder: DimpCore.DMenu.element().readAttribute('mbox') }, [], this._emptyFolderCallback.bind(this)); } }.bind(this), ns: true }); + C({ d: $('ctx_folder_delete'), f: function() { if (window.confirm(DIMP.text.delete_folder)) { DimpCore.doAction('DeleteFolder', { folder: DimpCore.DMenu.element().readAttribute('mbox') }, [], this.bcache.get('folderC') || this.bcache.set('folderC', this._folderCallback.bind(this))); } }.bind(this), ns: true }); ++ C({ d: $('ctx_folder_rights'), f: function() { this.go('app:horde', DIMP.conf.folder_rights + '&' + $H({ folder: DimpCore.DMenu.element().readAttribute('mbox') }).toQueryString() ) }.bind(this), ns: true }); + [ 'ctx_folder_seen', 'ctx_folder_unseen' ].each(function(a) { + C({ d: $(a), f: function(type) { this.flag(type, null, DimpCore.DMenu.element().readAttribute('mbox')); }.bind(this, a == 'ctx_folder_seen' ? 'allSeen' : 'allUnseen'), ns: true }); + }, this); +diff --git a/horde-webmail/dimp/lib/DIMP.php b/horde-webmail/dimp/lib/DIMP.php +index 0aa3b78..92a1e55 100644 +--- a/horde-webmail/dimp/lib/DIMP.php ++++ b/horde-webmail/dimp/lib/DIMP.php +@@ -145,6 +145,7 @@ class DIMP { + 'message_url' => Horde::url($dimp_webroot . '/message.php'), + 'compose_url' => Horde::url($dimp_webroot . '/compose.php'), + 'prefs_url' => str_replace('&', '&', Horde::getServiceLink('options', 'dimp')), ++ 'folder_rights' => Util::addParameter(Horde::url($registry->get('webroot', 'imp') . '/acl.php', true), array('app' => 'imp', 'group'=> 'acl'), null, false), + + 'sortthread' => SORTTHREAD, + 'sortdate' => SORTDATE, +diff --git a/horde-webmail/dimp/templates/index/index.inc b/horde-webmail/dimp/templates/index/index.inc +index 21939e0..7c02fe7 100644 +--- a/horde-webmail/dimp/templates/index/index.inc ++++ b/horde-webmail/dimp/templates/index/index.inc +@@ -323,6 +323,7 @@ function _createDA($text, $image, $id = null, $class = '', $show_text = true) + + + ++ +

+ + +diff --git a/horde-webmail/imp/acl.php b/horde-webmail/imp/acl.php +index cfa285f..851d8de 100644 +--- a/horde-webmail/imp/acl.php ++++ b/horde-webmail/imp/acl.php +@@ -162,14 +162,22 @@ if (is_callable(array('Horde', 'loadConfiguration'))) { + } + $app = 'imp'; + $chunk = Util::nonInputVar('chunk'); +-Prefs_UI::generateHeader(null, $chunk); ++if ($_SESSION['imp']['default_view'] != 'dimp') { ++ Prefs_UI::generateHeader(null, $chunk); ++} else { ++ require $registry->get('templates', $app) . '/common-header.inc'; ++ $GLOBALS['notification']->notify(array('listeners' => 'status')); ++} + + /* Set up template. */ + $t = new IMP_Template(); + $t->setOption('gettext', true); + $t->set('aclurl', Horde::applicationUrl('acl.php')); + $t->set('forminput', Util::formInput()); +-$t->set('aclnavcell', Util::bufferOutput(array('Prefs_UI', 'generateNavigationCell'), 'acl')); ++$t->set('imp_view', $_SESSION['imp']['default_view'] != 'dimp'); ++if ($_SESSION['imp']['default_view'] != 'dimp') { ++ $t->set('aclnavcell', Util::bufferOutput(array('Prefs_UI', 'generateNavigationCell'), 'acl')); ++} + $t->set('changefolder', Horde::link('#', _("Change Folder"), 'smallheader', '', 'ACLFolderChange(true); return false;')); + $t->set('sharedimg', Horde::img('shared.png', _("Change Folder"))); + $t->set('options', IMP::flistSelect('', true, array(), $folder)); +diff --git a/horde-webmail/imp/templates/acl/acl.html b/horde-webmail/imp/templates/acl/acl.html +index 79580aa..72cf1c5 100644 +--- a/horde-webmail/imp/templates/acl/acl.html ++++ b/horde-webmail/imp/templates/acl/acl.html +@@ -7,6 +7,7 @@ + Share mail folders + + ++ +
+
    +
  • +@@ -17,6 +18,7 @@ + +
+ ++
+ +
+ +@@ -76,9 +78,13 @@ +
++ + + + ++ ++ ++ +  
+ + + +  
Powered by Horde
+ diff --git a/horde-webmail/config/nls.php b/horde-webmail/config/nls.php index 21a3d19..8720096 100644 --- a/horde-webmail/config/nls.php +++ b/horde-webmail/config/nls.php @@ -646,3 +646,7 @@ $tz['Pacific/Wallis'] = 'Pacific/Wallis'; $tz['Pacific/Yap'] = 'Pacific/Yap'; $GLOBALS['tz'] = &$tz; +if (file_exists(dirname(__FILE__) . '/nls.local.php')) { + require_once(dirname(__FILE__) . '/nls.local.php'); +} + diff --git a/horde-webmail/config/prefs.php b/horde-webmail/config/prefs.php index 52c7730..d3632dc 100644 --- a/horde-webmail/config/prefs.php +++ b/horde-webmail/config/prefs.php @@ -574,3 +574,7 @@ $_prefs['editor_plugins'] = array( 'desc' => _("Select editor plugins") ); // End Rich Text Editor preferences. +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { + require_once(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/config/registry.php b/horde-webmail/config/registry.php index cbd6221..6268106 100644 --- a/horde-webmail/config/registry.php +++ b/horde-webmail/config/registry.php @@ -525,3 +525,7 @@ function _detect_webroot() return $webroot; } +if (file_exists(dirname(__FILE__) . '/registry.local.php')) { + require_once(dirname(__FILE__) . '/registry.local.php'); +} + diff --git a/horde-webmail/dimp/config/conf.php b/horde-webmail/dimp/config/conf.php index de4e32c..83a50d4 100644 --- a/horde-webmail/dimp/config/conf.php +++ b/horde-webmail/dimp/config/conf.php @@ -15,3 +15,7 @@ $conf['viewport']['background_inbox'] = true; $conf['search']['search_all'] = false; $conf['menu']['apps'] = array('turba', 'ingo', 'kronolith', 'nag', 'mnemo'); /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { + require_once(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/dimp/config/hooks.php b/horde-webmail/dimp/config/hooks.php index f315631..02a6dc7 100644 --- a/horde-webmail/dimp/config/hooks.php +++ b/horde-webmail/dimp/config/hooks.php @@ -123,3 +123,7 @@ // return $ret; // } // } +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { + require_once(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/dimp/config/menu.php b/horde-webmail/dimp/config/menu.php index 5dcf354..842c4c5 100644 --- a/horde-webmail/dimp/config/menu.php +++ b/horde-webmail/dimp/config/menu.php @@ -28,3 +28,7 @@ // 'text' => 'Say Hi!', // 'icon' => $GLOBALS['registry']->getImageDir('horde') . '/horde.png'), // ); +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { + require_once(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/dimp/config/portal.php b/horde-webmail/dimp/config/portal.php index 7720eb3..3ccf2ae 100644 --- a/horde-webmail/dimp/config/portal.php +++ b/horde-webmail/dimp/config/portal.php @@ -47,3 +47,7 @@ $dimp_block_list[$collection->getName('turba', 'minisearch')] = array( $dimp_block_list[$collection->getName('kronolith', 'summary')] = array( 'ob' => $collection->getBlock('kronolith', 'summary', array()) ); +if (file_exists(dirname(__FILE__) . '/portal.local.php')) { + require_once(dirname(__FILE__) . '/portal.local.php'); +} + diff --git a/horde-webmail/dimp/config/prefs.php b/horde-webmail/dimp/config/prefs.php index a55ecc2..09a0041 100644 --- a/horde-webmail/dimp/config/prefs.php +++ b/horde-webmail/dimp/config/prefs.php @@ -30,3 +30,7 @@ $_prefs['show_preview'] = array( 'shared' => false, 'type' => 'implicit', ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { + require_once(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/dimp/config/servers.php b/horde-webmail/dimp/config/servers.php index 30962f3..b0c5de9 100644 --- a/horde-webmail/dimp/config/servers.php +++ b/horde-webmail/dimp/config/servers.php @@ -253,3 +253,7 @@ if ($GLOBALS['conf']['kolab']['enabled']) { ), ); } +if (file_exists(dirname(__FILE__) . '/servers.local.php')) { + require_once(dirname(__FILE__) . '/servers.local.php'); +} + diff --git a/horde-webmail/imp/config/conf.php b/horde-webmail/imp/config/conf.php index 3a0f1d6..011472d 100644 --- a/horde-webmail/imp/config/conf.php +++ b/horde-webmail/imp/config/conf.php @@ -63,3 +63,7 @@ $conf['sentmail']['driver'] = 'none'; $conf['tasklist']['use_tasklist'] = true; $conf['notepad']['use_notepad'] = true; /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { + require_once(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/imp/config/header.php b/horde-webmail/imp/config/header.php index a442e09..7cc941e 100644 --- a/horde-webmail/imp/config/header.php +++ b/horde-webmail/imp/config/header.php @@ -20,3 +20,7 @@ $_header = array(); /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/header.local.php')) { + require_once(dirname(__FILE__) . '/header.local.php'); +} + diff --git a/horde-webmail/imp/config/hooks.php b/horde-webmail/imp/config/hooks.php index 3bab14e..3c39f20 100644 --- a/horde-webmail/imp/config/hooks.php +++ b/horde-webmail/imp/config/hooks.php @@ -535,3 +535,7 @@ if (!function_exists('_imp_hook_quota')) { return array($quota[1] * 1024, $quota[2] * 1024); } } +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { + require_once(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/imp/config/menu.php b/horde-webmail/imp/config/menu.php index 1ea56c7..0d2925c 100644 --- a/horde-webmail/imp/config/menu.php +++ b/horde-webmail/imp/config/menu.php @@ -39,3 +39,7 @@ $_menu = array(); /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { + require_once(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/imp/config/mime_drivers.php b/horde-webmail/imp/config/mime_drivers.php index 1019aaf..786934b 100644 --- a/horde-webmail/imp/config/mime_drivers.php +++ b/horde-webmail/imp/config/mime_drivers.php @@ -301,3 +301,7 @@ $mime_drivers['imp']['tnef'] = array( 'default' => 'binary.png' ) ); +if (file_exists(dirname(__FILE__) . '/mime_drivers.local.php')) { + require_once(dirname(__FILE__) . '/mime_drivers.local.php'); +} + diff --git a/horde-webmail/imp/config/motd.php b/horde-webmail/imp/config/motd.php index 70803c9..60a33f5 100644 --- a/horde-webmail/imp/config/motd.php +++ b/horde-webmail/imp/config/motd.php @@ -36,6 +36,10 @@ // // echo '' . _("Click here for Standard HTTP") . ' - ' . _("Click here for Secure HTTPS") . '

'; +if (file_exists(dirname(__FILE__) . '/motd.local.php')) { + require_once(dirname(__FILE__) . '/motd.local.php'); +} ?>
getImageDir('horde')) ?>
+ diff --git a/horde-webmail/imp/config/prefs.php b/horde-webmail/imp/config/prefs.php index e1f6426..02a28ab 100644 --- a/horde-webmail/imp/config/prefs.php +++ b/horde-webmail/imp/config/prefs.php @@ -1506,3 +1506,7 @@ $_prefs['vinbox_id'] = array( 'locked' => false, 'shared' => false, 'type' => 'implicit'); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { + require_once(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/imp/config/servers.php b/horde-webmail/imp/config/servers.php index 1c6e537..5fd0cf7 100644 --- a/horde-webmail/imp/config/servers.php +++ b/horde-webmail/imp/config/servers.php @@ -286,3 +286,7 @@ if ($GLOBALS['conf']['kolab']['enabled']) { ), ); } +if (file_exists(dirname(__FILE__) . '/servers.local.php')) { + require_once(dirname(__FILE__) . '/servers.local.php'); +} + diff --git a/horde-webmail/imp/config/spelling.php b/horde-webmail/imp/config/spelling.php index e9b78bd..7bbe2c2 100644 --- a/horde-webmail/imp/config/spelling.php +++ b/horde-webmail/imp/config/spelling.php @@ -11,3 +11,7 @@ $ignore_list = array( 'jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec', 'fwd', 'http', 'https', 'html', 'email', 'bcc', 'jpg', 'gif' ); +if (file_exists(dirname(__FILE__) . '/spelling.local.php')) { + require_once(dirname(__FILE__) . '/spelling.local.php'); +} + diff --git a/horde-webmail/ingo/config/backends.php b/horde-webmail/ingo/config/backends.php index d5e26c1..feeabb6 100644 --- a/horde-webmail/ingo/config/backends.php +++ b/horde-webmail/ingo/config/backends.php @@ -327,3 +327,7 @@ if ($GLOBALS['conf']['kolab']['enabled']) { 'shares' => false ); } +if (file_exists(dirname(__FILE__) . '/backends.local.php')) { + require_once(dirname(__FILE__) . '/backends.local.php'); +} + diff --git a/horde-webmail/ingo/config/conf.php b/horde-webmail/ingo/config/conf.php index ffc834a..8a35d6f 100644 --- a/horde-webmail/ingo/config/conf.php +++ b/horde-webmail/ingo/config/conf.php @@ -13,3 +13,7 @@ $conf['spam']['compare'] = 'string'; $conf['hooks']['vacation_addresses'] = false; $conf['hooks']['vacation_only'] = true; /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { + require_once(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/ingo/config/fields.php b/horde-webmail/ingo/config/fields.php index 045ff52..82fc932 100644 --- a/horde-webmail/ingo/config/fields.php +++ b/horde-webmail/ingo/config/fields.php @@ -104,3 +104,7 @@ $ingo_fields = array( 'matches', 'not matches') ) ); +if (file_exists(dirname(__FILE__) . '/fields.local.php')) { + require_once(dirname(__FILE__) . '/fields.local.php'); +} + diff --git a/horde-webmail/ingo/config/hooks.php b/horde-webmail/ingo/config/hooks.php index 9e52c95..9e9685c 100644 --- a/horde-webmail/ingo/config/hooks.php +++ b/horde-webmail/ingo/config/hooks.php @@ -22,3 +22,7 @@ // return array($user . '@example.com', $user . '@foobar.com'); // } // } +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { + require_once(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/ingo/config/prefs.php b/horde-webmail/ingo/config/prefs.php index fe645fb..0f7641e 100644 --- a/horde-webmail/ingo/config/prefs.php +++ b/horde-webmail/ingo/config/prefs.php @@ -112,3 +112,7 @@ $_prefs['spam'] = array( 'shared' => false, 'type' => 'implicit' ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { + require_once(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/kronolith/config/keywords.php b/horde-webmail/kronolith/config/keywords.php index 6ed32d5..f227f74 100644 --- a/horde-webmail/kronolith/config/keywords.php +++ b/horde-webmail/kronolith/config/keywords.php @@ -15,3 +15,7 @@ */ $keywords[_("Type")] = array(_("Birthday"), _("Meeting"), _("Game")); +if (file_exists(dirname(__FILE__) . '/keywords.local.php')) { + require_once(dirname(__FILE__) . '/keywords.local.php'); +} + diff --git a/horde-webmail/kronolith/config/menu.php b/horde-webmail/kronolith/config/menu.php index 282ac8a..f097cb6 100644 --- a/horde-webmail/kronolith/config/menu.php +++ b/horde-webmail/kronolith/config/menu.php @@ -39,3 +39,7 @@ $_menu = array(); /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { + require_once(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/kronolith/config/prefs.php b/horde-webmail/kronolith/config/prefs.php index 22c08c3..099c385 100644 --- a/horde-webmail/kronolith/config/prefs.php +++ b/horde-webmail/kronolith/config/prefs.php @@ -497,3 +497,7 @@ $_prefs['last_kronolith_maintenance'] = array( 'shared' => false, 'type' => 'implicit' ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { + require_once(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/mimp/config/conf.php b/horde-webmail/mimp/config/conf.php index 29762a5..dcd6165 100644 --- a/horde-webmail/mimp/config/conf.php +++ b/horde-webmail/mimp/config/conf.php @@ -4,3 +4,7 @@ $conf['mailbox']['max_from_chars'] = 10; $conf['mailbox']['max_subj_chars'] = 20; /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { + require_once(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/mimp/config/menu.php b/horde-webmail/mimp/config/menu.php index 2f0a5c7..46bbf9e 100644 --- a/horde-webmail/mimp/config/menu.php +++ b/horde-webmail/mimp/config/menu.php @@ -27,3 +27,7 @@ $_menu = array(); /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { + require_once(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/mimp/config/mime_drivers.php b/horde-webmail/mimp/config/mime_drivers.php index 1666a86..6c0843c 100644 --- a/horde-webmail/mimp/config/mime_drivers.php +++ b/horde-webmail/mimp/config/mime_drivers.php @@ -100,3 +100,7 @@ $mime_drivers['mimp']['multipart'] = array( 'multipart/*' ) ); +if (file_exists(dirname(__FILE__) . '/mime_drivers.local.php')) { + require_once(dirname(__FILE__) . '/mime_drivers.local.php'); +} + diff --git a/horde-webmail/mimp/config/prefs.php b/horde-webmail/mimp/config/prefs.php index 52bbb95..1d3ddf6 100644 --- a/horde-webmail/mimp/config/prefs.php +++ b/horde-webmail/mimp/config/prefs.php @@ -23,3 +23,7 @@ $_prefs['preview_msg'] = array( 'desc' => _("Display only the first 250 characters of a message initially?")); // End Message Viewing preferences +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { + require_once(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/mnemo/config/conf.php b/horde-webmail/mnemo/config/conf.php index a4e9764..864f011 100644 --- a/horde-webmail/mnemo/config/conf.php +++ b/horde-webmail/mnemo/config/conf.php @@ -7,3 +7,7 @@ $conf['menu']['print'] = true; $conf['menu']['import_export'] = true; $conf['menu']['apps'] = array(); /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { + require_once(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/mnemo/config/prefs.php b/horde-webmail/mnemo/config/prefs.php index b83d5a4..09133c7 100644 --- a/horde-webmail/mnemo/config/prefs.php +++ b/horde-webmail/mnemo/config/prefs.php @@ -116,3 +116,7 @@ $_prefs['delete_opt'] = array( 'type' => 'checkbox', 'desc' => _("Do you want to confirm deleting entries?") ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { + require_once(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/nag/config/conf.php b/horde-webmail/nag/config/conf.php index 7809067..a0396f7 100644 --- a/horde-webmail/nag/config/conf.php +++ b/horde-webmail/nag/config/conf.php @@ -6,3 +6,7 @@ $conf['menu']['print'] = true; $conf['menu']['import_export'] = true; $conf['menu']['apps'] = array(); /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { + require_once(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/nag/config/menu.php b/horde-webmail/nag/config/menu.php index 162c88c..457a10d 100644 --- a/horde-webmail/nag/config/menu.php +++ b/horde-webmail/nag/config/menu.php @@ -39,3 +39,7 @@ $_menu = array(); /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { + require_once(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/nag/config/prefs.php b/horde-webmail/nag/config/prefs.php index e14bd8a..bf2d841 100644 --- a/horde-webmail/nag/config/prefs.php +++ b/horde-webmail/nag/config/prefs.php @@ -238,3 +238,7 @@ $_prefs['display_tasklists'] = array( 'shared' => false, 'type' => 'implicit', ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { + require_once(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/turba/config/attributes.php b/horde-webmail/turba/config/attributes.php index ce124f0..adec673 100644 --- a/horde-webmail/turba/config/attributes.php +++ b/horde-webmail/turba/config/attributes.php @@ -558,3 +558,7 @@ $attributes['homeLongitude'] = array( 'type' => 'number', 'required' => false, ); +if (file_exists(dirname(__FILE__) . '/attributes.local.php')) { + require_once(dirname(__FILE__) . '/attributes.local.php'); +} + diff --git a/horde-webmail/turba/config/conf.php b/horde-webmail/turba/config/conf.php index b83f681..8f00f61 100644 --- a/horde-webmail/turba/config/conf.php +++ b/horde-webmail/turba/config/conf.php @@ -8,3 +8,7 @@ $conf['shares']['source'] = 'kolab'; $conf['comments']['allow'] = true; $conf['documents']['type'] = 'horde'; /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { + require_once(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/turba/config/hooks.php b/horde-webmail/turba/config/hooks.php index b7d0d40..d423897 100644 --- a/horde-webmail/turba/config/hooks.php +++ b/horde-webmail/turba/config/hooks.php @@ -38,3 +38,7 @@ // } // } // } +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { + require_once(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/turba/config/menu.php b/horde-webmail/turba/config/menu.php index 418a4b3..49022bf 100644 --- a/horde-webmail/turba/config/menu.php +++ b/horde-webmail/turba/config/menu.php @@ -39,3 +39,7 @@ $_menu = array(); /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { + require_once(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/turba/config/mime_drivers.php b/horde-webmail/turba/config/mime_drivers.php index 729ca75..7395c13 100644 --- a/horde-webmail/turba/config/mime_drivers.php +++ b/horde-webmail/turba/config/mime_drivers.php @@ -19,3 +19,7 @@ $mime_drivers_map['turba']['overrides'] = array(); * Driver specific settings. See horde/config/mime_drivers.php for * the format. */ +if (file_exists(dirname(__FILE__) . '/mime_drivers.local.php')) { + require_once(dirname(__FILE__) . '/mime_drivers.local.php'); +} + diff --git a/horde-webmail/turba/config/prefs.php b/horde-webmail/turba/config/prefs.php index 2f7c7c3..c2d74f5 100644 --- a/horde-webmail/turba/config/prefs.php +++ b/horde-webmail/turba/config/prefs.php @@ -162,3 +162,7 @@ $_prefs['own_contact'] = array( 'shared' => false, 'type' => 'implicit' ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { + require_once(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/turba/config/sources.php b/horde-webmail/turba/config/sources.php index 083defe..d6acb36 100644 --- a/horde-webmail/turba/config/sources.php +++ b/horde-webmail/turba/config/sources.php @@ -547,3 +547,7 @@ $cfgSources['favourites'] = array( 'export' => true, 'browse' => true, ); +if (file_exists(dirname(__FILE__) . '/sources.local.php')) { + require_once(dirname(__FILE__) . '/sources.local.php'); +} + -- tg: (b375ec9..) t/GLOBAL/HK/GW/ConfigTemplateSupport (depends on: t/GLOBAL/HK/GW/ConfigOpenPKG) -- TOPGIT patch commit log ======================= commit 1714037ef074301c0fd987b217fee5a0a1cac71b Author: Gunnar Wrobel

Date: Thu Mar 26 21:08:33 2009 +0000 Fix the inclusion statements for the motd.php files. commit caf19136c96afa98cf1fc7f3a66cc74af6cb286a Author: Gunnar Wrobel

Date: Thu Mar 26 16:44:50 2009 +0000 Added postfix sections to all horde config files. --- NEW FILE: t_GLOBAL_HK_GW_SystemLibInclude.diff --- From: Gunnar Wrobel

Subject: [PATCH] t/GLOBAL/HK/GW/SystemLibInclude This includes the system wide php library again so that we can start to split the horde-webmail package into single parts. STATUS: CONFIG Signed-off-by: Gunnar Wrobel

--- horde-webmail/lib/core.php | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/horde-webmail/lib/core.php b/horde-webmail/lib/core.php index 656dae3..e85aa42 100644 --- a/horde-webmail/lib/core.php +++ b/horde-webmail/lib/core.php @@ -30,7 +30,7 @@ if (ini_get('register_globals')) { /* If the Horde Framework packages are not installed in PHP's global * include_path, you must add an ini_set() call here to add their location to * the include_path. */ -ini_set('include_path', dirname(__FILE__) . PATH_SEPARATOR . dirname(__FILE__) . '/../pear'); +ini_set('include_path', dirname(__FILE__) . PATH_SEPARATOR . dirname(__FILE__) . '/../pear' . PATH_SEPARATOR . ini_get('include_path')); ini_set('log_errors', true); ini_set('display_errors', '0'); ini_set('error_log', dirname(__FILE__) . '/../log/php-errors.log'); -- tg: (1714037..) t/GLOBAL/HK/GW/SystemLibInclude (depends on: t/GLOBAL/HK/GW/ConfigTemplateSupport) -- TOPGIT patch commit log ======================= commit 2e2b54a82d8f696b1d50e76e0af98e07ff4936ed Author: Gunnar Wrobel

Date: Sun Apr 26 00:15:36 2009 +0200 Typo. commit bd93fe1db54fd373838302e4ab912a678bab10b5 Author: Gunnar Wrobel

Date: Sun Apr 26 00:08:47 2009 +0200 Include the system wide PHP libary so that we can start to split packages from the big horde-webmail installation. Index: series =================================================================== RCS file: /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB/series,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- series 25 Apr 2009 21:45:04 -0000 1.2 +++ series 25 Apr 2009 22:31:51 -0000 1.3 @@ -9,6 +9,8 @@ t_nag_H_MR_Bug__7400.diff t_GLOBAL_HK_GW_Config.diff t_GLOBAL_HK_GW_ConfigOpenPKG.diff +t_GLOBAL_HK_GW_ConfigTemplateSupport.diff +t_GLOBAL_HK_GW_SystemLibInclude.diff t_kronolith_HK_GW_SyncMLrefresh.diff t_turba_HK_GW_FixAddressbookDeletion.diff t_turba_HK_GW_FixSyncMLAttributeDeletion.diff From cvs at kolab.org Sun Apr 26 00:45:09 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 00:45:09 +0200 (CEST) Subject: gunnar: server/kolab-webclient kolab-webclient.spec,1.26,1.27 Message-ID: <20090425224509.7B40F600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv32108 Modified Files: kolab-webclient.spec Log Message: MFB (cvs diff -r 1.23.2.1 -r 1.23.2.4 kolab-webclient.spec | patch -p0) Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- kolab-webclient.spec 25 Apr 2009 22:31:51 -0000 1.26 +++ kolab-webclient.spec 25 Apr 2009 22:45:06 -0000 1.27 @@ -28,6 +28,51 @@ Source3: webclient-kronolith-kolab-conf.template Source4: conf.php Source5: backends.php +Source6: webclient-config_hooks.php.template +Source7: webclient-config_mime_drivers.php.template +Source8: webclient-config_motd.php.template +Source9: webclient-config_nls.php.template +Source10: webclient-config_prefs.php.template +Source11: webclient-config_registry.php.template +Source12: webclient-dimp_conf.php.template +Source13: webclient-dimp_hooks.php.template +Source14: webclient-dimp_menu.php.template +Source15: webclient-dimp_portal.php.template +Source16: webclient-dimp_prefs.php.template +Source17: webclient-dimp_servers.php.template +Source18: webclient-imp_conf.php.template +Source19: webclient-imp_header.php.template +Source20: webclient-imp_hooks.php.template +Source21: webclient-imp_menu.php.template +Source22: webclient-imp_mime_drivers.php.template +Source23: webclient-imp_motd.php.template +Source24: webclient-imp_prefs.php.template +Source25: webclient-imp_servers.php.template +Source26: webclient-imp_spelling.php.template +Source27: webclient-ingo_backends.php.template +Source28: webclient-ingo_conf.php.template +Source29: webclient-ingo_fields.php.template +Source30: webclient-ingo_hooks.php.template +Source31: webclient-ingo_prefs.php.template +Source32: webclient-kronolith_keywords.php.template +Source33: webclient-kronolith_menu.php.template +Source34: webclient-kronolith_prefs.php.template +Source35: webclient-mimp_conf.php.template +Source36: webclient-mimp_menu.php.template +Source37: webclient-mimp_mime_drivers.php.template +Source38: webclient-mimp_prefs.php.template +Source39: webclient-mnemo_conf.php.template +Source40: webclient-mnemo_prefs.php.template +Source41: webclient-nag_conf.php.template +Source42: webclient-nag_menu.php.template +Source43: webclient-nag_prefs.php.template +Source44: webclient-turba_attributes.php.template +Source45: webclient-turba_conf.php.template +Source46: webclient-turba_hooks.php.template +Source47: webclient-turba_menu.php.template +Source48: webclient-turba_mime_drivers.php.template +Source49: webclient-turba_prefs.php.template +Source50: webclient-turba_sources.php.template # List of Patches Patch0: series.patch @@ -94,8 +139,21 @@ %{l_shtool} install -d $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/passwd - %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:2} %{S:3} \ - $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates + %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:2} %{S:3} %{S:6} %{S:7} %{S:8} %{S:9} %{S:10} %{S:11} %{S:12} \ + %{S:13} %{S:14} %{S:15} %{S:16} %{S:17} %{S:18} %{S:19} %{S:20} %{S:21} %{S:22} %{S:23} %{S:24} %{S:25} %{S:26} %{S:27} %{S:28} %{S:29} \ + %{S:30} %{S:31} %{S:32} %{S:33} %{S:34} %{S:35} %{S:36} %{S:37} %{S:38} %{S:39} %{S:40} %{S:41} %{S:42} %{S:43} %{S:44} %{S:45} %{S:46} \ + %{S:47} %{S:48} %{S:49} %{S:50} \ + $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates + + sed -i -e 's#@@@horde_confdir@@@#%{l_prefix}/var/kolab/www/client/config#' $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates/*.php.template + sed -i -e 's#@@@dimp_confdir@@@#%{l_prefix}/var/kolab/www/client/dimp/config#' $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates/*.php.template + sed -i -e 's#@@@imp_confdir@@@#%{l_prefix}/var/kolab/www/client/imp/config#' $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates/*.php.template + sed -i -e 's#@@@ingo_confdir@@@#%{l_prefix}/var/kolab/www/client/ingo/config#' $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates/*.php.template + sed -i -e 's#@@@kronolith_confdir@@@#%{l_prefix}/var/kolab/www/client/kronolith/config#' $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates/*.php.template + sed -i -e 's#@@@mimp_confdir@@@#%{l_prefix}/var/kolab/www/client/mimp/config#' $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates/*.php.template + sed -i -e 's#@@@mnemo_confdir@@@#%{l_prefix}/var/kolab/www/client/mnemo/config#' $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates/*.php.template + sed -i -e 's#@@@nag_confdir@@@#%{l_prefix}/var/kolab/www/client/nag/config#' $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates/*.php.template + sed -i -e 's#@@@turba_confdir@@@#%{l_prefix}/var/kolab/www/client/turba/config#' $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates/*.php.template %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:4} %{S:5} \ $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/passwd/config @@ -103,6 +161,51 @@ %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \ '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-kolab-conf.template' \ '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-kronolith-kolab-conf.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-config_hooks.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-config_mime_drivers.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-config_motd.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-config_nls.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-config_prefs.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-config_registry.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-dimp_conf.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-dimp_hooks.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-dimp_menu.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-dimp_portal.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-dimp_prefs.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-dimp_servers.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-imp_conf.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-imp_header.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-imp_hooks.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-imp_menu.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-imp_mime_drivers.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-imp_motd.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-imp_prefs.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-imp_servers.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-imp_spelling.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-ingo_backends.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-ingo_conf.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-ingo_fields.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-ingo_hooks.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-ingo_prefs.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-kronolith_keywords.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-kronolith_menu.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-kronolith_prefs.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-mimp_conf.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-mimp_menu.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-mimp_mime_drivers.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-mimp_prefs.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-mnemo_conf.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-mnemo_prefs.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-nag_conf.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-nag_menu.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-nag_prefs.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-turba_attributes.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-turba_conf.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-turba_hooks.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-turba_menu.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-turba_mime_drivers.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-turba_prefs.php.template' \ + '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-turba_sources.php.template' \ '%config(noreplace) %{l_prefix}/var/kolab/www/client/config/*.php' \ '%config(noreplace) %{l_prefix}/var/kolab/www/client/dimp/config/*.php' \ '%config(noreplace) %{l_prefix}/var/kolab/www/client/imp/config/*.php' \ From cvs at kolab.org Sun Apr 26 00:45:59 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 00:45:59 +0200 (CEST) Subject: gunnar: server/kolab-webclient webclient-config_hooks.php.template, 1.1, 1.2 webclient-config_mime_drivers.php.template, 1.1, 1.2 webclient-config_motd.php.template, 1.1, 1.2 webclient-config_nls.php.template, 1.1, 1.2 webclient-config_prefs.php.template, 1.1, 1.2 webclient-config_registry.php.template, 1.1, 1.2 webclient-dimp_conf.php.template, 1.1, 1.2 webclient-dimp_hooks.php.template, 1.1, 1.2 webclient-dimp_menu.php.template, 1.1, 1.2 webclient-dimp_portal.php.template, 1.1, 1.2 webclient-dimp_prefs.php.template, 1.1, 1.2 webclient-dimp_servers.php.template, 1.1, 1.2 webclient-imp_conf.php.template, 1.1, 1.2 webclient-imp_header.php.template, 1.1, 1.2 webclient-imp_hooks.php.template, 1.1, 1.2 webclient-imp_menu.php.template, 1.1, 1.2 webclient-imp_mime_drivers.php.template, 1.1, 1.2 webclient-imp_motd.php.template, 1.1, 1.2 webclient-imp_prefs.php.template, 1.1, 1.2 webclient-imp_servers.php.template, 1.1, 1.2 webclient-imp_spelling.php.template, 1.1, 1.2 webclient-ingo_backends.php.template, 1.1, 1.2 we bclient-ingo_conf.php.template, 1.1, 1.2 webclient-ingo_fields.php.template, 1.1, 1.2 webclient-ingo_hooks.php.template, 1.1, 1.2 webclient-ingo_prefs.php.template, 1.1, 1.2 webclient-kronolith_keywords.php.template, 1.1, 1.2 webclient-kronolith_menu.php.template, 1.1, 1.2 webclient-kronolith_prefs.php.template, 1.1, 1.2 webclient-mimp_conf.php.template, 1.1, 1.2 webclient-mimp_menu.php.template, 1.1, 1.2 webclient-mimp_mime_drivers.php.template, 1.1, 1.2 webclient-mimp_prefs.php.template, 1.1, 1.2 webclient-mnemo_conf.php.template, 1.1, 1.2 webclient-mnemo_prefs.php.template, 1.1, 1.2 webclient-nag_conf.php.template, 1.1, 1.2 webclient-nag_menu.php.template, 1.1, 1.2 webclient-nag_prefs.php.template, 1.1, 1.2 webclient-turba_attributes.php.template, 1.1, 1.2 webclient-turba_conf.php.template, 1.1, 1.2 webclient-turba_hooks.php.template, 1.1, 1.2 webclient-turba_menu.php.template, 1.1, 1.2 webclient-turba_mime_drivers.php.template, 1.1, 1.2 webclient-turba_prefs.php.template, 1.1, 1.2 webclient-turba_sources.php.templ ate,1.1,1.2 Message-ID: <20090425224559.AF87660082D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv32164 Added Files: webclient-config_hooks.php.template webclient-config_mime_drivers.php.template webclient-config_motd.php.template webclient-config_nls.php.template webclient-config_prefs.php.template webclient-config_registry.php.template webclient-dimp_conf.php.template webclient-dimp_hooks.php.template webclient-dimp_menu.php.template webclient-dimp_portal.php.template webclient-dimp_prefs.php.template webclient-dimp_servers.php.template webclient-imp_conf.php.template webclient-imp_header.php.template webclient-imp_hooks.php.template webclient-imp_menu.php.template webclient-imp_mime_drivers.php.template webclient-imp_motd.php.template webclient-imp_prefs.php.template webclient-imp_servers.php.template webclient-imp_spelling.php.template webclient-ingo_backends.php.template webclient-ingo_conf.php.template webclient-ingo_fields.php.template webclient-ingo_hooks.php.template webclient-ingo_prefs.php.template webclient-kronolith_keywords.php.template webclient-kronolith_menu.php.template webclient-kronolith_prefs.php.template webclient-mimp_conf.php.template webclient-mimp_menu.php.template webclient-mimp_mime_drivers.php.template webclient-mimp_prefs.php.template webclient-mnemo_conf.php.template webclient-mnemo_prefs.php.template webclient-nag_conf.php.template webclient-nag_menu.php.template webclient-nag_prefs.php.template webclient-turba_attributes.php.template webclient-turba_conf.php.template webclient-turba_hooks.php.template webclient-turba_menu.php.template webclient-turba_mime_drivers.php.template webclient-turba_prefs.php.template webclient-turba_sources.php.template Log Message: MFB (kolab/issue3420 (web client prefs and hooks should be configurable via templates) From cvs at kolab.org Sun Apr 26 00:51:12 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 00:51:12 +0200 (CEST) Subject: gunnar: server/kolab-webclient/patches/1.2.0/KOLAB t_Kolab__Server_HK_GW_FixBodyHeaderBreakInTestDriver.diff, 1.1, 1.2 t_imp_H_GW_DefaultLoginView.diff, 1.1, 1.2 t_imp_H_GW_LoginRetries.diff, 1.1, 1.2 t_kronolith_HK_GW_FbviewRelevance.diff, 1.1, 1.2 t_kronolith_HK_GW_XfbAccess.diff, 1.1, 1.2 t_kronolith_HK_SB_SaveEventAttendees.diff, 1.1, 1.2 Message-ID: <20090425225112.91A7D600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB In directory doto:/tmp/cvs-serv32322/1.2.0/KOLAB Modified Files: t_Kolab__Server_HK_GW_FixBodyHeaderBreakInTestDriver.diff t_imp_H_GW_DefaultLoginView.diff t_imp_H_GW_LoginRetries.diff t_kronolith_HK_GW_FbviewRelevance.diff t_kronolith_HK_GW_XfbAccess.diff t_kronolith_HK_SB_SaveEventAttendees.diff Log Message: Sync the topgit queue with the patch directory. No patch changes were introduced - only merges that left the contents untouched. Index: t_Kolab__Server_HK_GW_FixBodyHeaderBreakInTestDriver.diff =================================================================== RCS file: /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB/t_Kolab__Server_HK_GW_FixBodyHeaderBreakInTestDriver.diff,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- t_Kolab__Server_HK_GW_FixBodyHeaderBreakInTestDriver.diff 25 Apr 2009 21:04:19 -0000 1.1 +++ t_Kolab__Server_HK_GW_FixBodyHeaderBreakInTestDriver.diff 25 Apr 2009 22:51:10 -0000 1.2 @@ -25,7 +25,7 @@ 'body' => substr($msg, $split + 3)); return $this->_appendMessage($mail); -- -tg: (9cfd718..) t/Kolab_Server/HK/GW/FixBodyHeaderBreakInTestDriver (depends on: t/imp/H/GW/LoginRetries) +tg: (563a168..) t/Kolab_Server/HK/GW/FixBodyHeaderBreakInTestDriver (depends on: t/imp/H/GW/LoginRetries) -- TOPGIT patch commit log ======================= Index: t_imp_H_GW_DefaultLoginView.diff =================================================================== RCS file: /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB/t_imp_H_GW_DefaultLoginView.diff,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- t_imp_H_GW_DefaultLoginView.diff 25 Apr 2009 21:04:19 -0000 1.1 +++ t_imp_H_GW_DefaultLoginView.diff 25 Apr 2009 22:51:10 -0000 1.2 @@ -14,7 +14,7 @@ 3 files changed, 11 insertions(+), 1 deletions(-) diff --git a/horde-webmail/imp/config/conf.php b/horde-webmail/imp/config/conf.php -index 3a0f1d6..6cea64b 100644 +index 3a0f1d6..b0d8772 100644 --- a/horde-webmail/imp/config/conf.php +++ b/horde-webmail/imp/config/conf.php @@ -13,6 +13,7 @@ $conf['user']['allow_resume_all'] = false; @@ -63,6 +63,12 @@ -- TOPGIT patch commit log ======================= + +commit 580072bc0b627e05bfe3053efbd31b4215019923 +Author: Gunnar Wrobel

+Date: Thu Mar 26 19:22:37 2009 +0000 + + Merge change from http://kolab.org/cgi-bin/viewcvs-kolab.cgi/server/patches/horde-webmail/1.2.0/tg/t_imp_H_GW_DefaultLoginView.diff.diff?r1=1.3&r2=1.4 commit e2430d5bafced289bb0b8ac9d073fca9a4e9bb4a Author: Gunnar Wrobel

Index: t_imp_H_GW_LoginRetries.diff =================================================================== RCS file: /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB/t_imp_H_GW_LoginRetries.diff,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- t_imp_H_GW_LoginRetries.diff 25 Apr 2009 21:04:19 -0000 1.1 +++ t_imp_H_GW_LoginRetries.diff 25 Apr 2009 22:51:10 -0000 1.2 @@ -30,7 +30,7 @@ ); } -- -tg: (4f99941..) t/imp/H/GW/LoginRetries (depends on: t/imp/H/GW/DefaultLoginView) +tg: (580072b..) t/imp/H/GW/LoginRetries (depends on: t/imp/H/GW/DefaultLoginView) -- TOPGIT patch commit log ======================= Index: t_kronolith_HK_GW_FbviewRelevance.diff =================================================================== RCS file: /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB/t_kronolith_HK_GW_FbviewRelevance.diff,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- t_kronolith_HK_GW_FbviewRelevance.diff 25 Apr 2009 21:04:19 -0000 1.1 +++ t_kronolith_HK_GW_FbviewRelevance.diff 25 Apr 2009 22:51:10 -0000 1.2 @@ -71,18 +71,18 @@ if ($original_name != $this->_vars->get('name')) { $result = $GLOBALS['kronolith_driver']->rename($original_name, $this->_vars->get('name')); -- -tg: (67b6582..) t/kronolith/HK/GW/FbviewRelevance (depends on: t/kronolith/HK/SB/ExtraParameters) +tg: (2b89751..) t/kronolith/HK/GW/FbviewRelevance (depends on: t/kronolith/HK/SB/ExtraParameters) -- TOPGIT patch commit log ======================= -commit dae3753e368fefa0e825f97b03b146bb7f9fc44a +commit 0175a71d1238e9b6907c31b7b97430dd7fc0486e Author: Gunnar Wrobel

-Date: Fri Mar 13 01:25:36 2009 +0100 +Date: Sat Mar 14 01:10:44 2009 +0100 Remove stray .orig file. -commit adae108bd20332a0383b10ecbc0123d6d5c00fed +commit 6aba4a0d6a6d139204db96eeff2569528088b265 Author: Gunnar Wrobel

Date: Sun Feb 1 22:27:55 2009 +0000 Index: t_kronolith_HK_GW_XfbAccess.diff =================================================================== RCS file: /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB/t_kronolith_HK_GW_XfbAccess.diff,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- t_kronolith_HK_GW_XfbAccess.diff 25 Apr 2009 21:04:19 -0000 1.1 +++ t_kronolith_HK_GW_XfbAccess.diff 25 Apr 2009 22:51:10 -0000 1.2 @@ -150,18 +150,12 @@   -- -tg: (d2b5eee..) t/kronolith/HK/GW/XfbAccess (depends on: t/kronolith/HK/GW/FbviewRelevance) +tg: (0175a71..) t/kronolith/HK/GW/XfbAccess (depends on: t/kronolith/HK/GW/FbviewRelevance) -- TOPGIT patch commit log ======================= -commit 56a0438a5135d9dc3cde040531ad8d7dbc654f8c -Author: Gunnar Wrobel

-Date: Fri Mar 13 01:27:45 2009 +0100 - - Remove stray .orig file. - -commit a6a8bb95cc237651c51fa16bd64dd30f122553bf +commit 2d1588fad36f7b13bb534d70f14aa4f75ef8d35f Author: Gunnar Wrobel

Date: Sun Feb 1 22:29:11 2009 +0000 Index: t_kronolith_HK_SB_SaveEventAttendees.diff =================================================================== RCS file: /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB/t_kronolith_HK_SB_SaveEventAttendees.diff,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- t_kronolith_HK_SB_SaveEventAttendees.diff 25 Apr 2009 21:04:19 -0000 1.1 +++ t_kronolith_HK_SB_SaveEventAttendees.diff 25 Apr 2009 22:51:10 -0000 1.2 @@ -286,13 +286,13 @@ TOPGIT patch commit log ======================= -commit 917327fa2943eff049d5cb98cd33ffcb8cea880c +commit cd7f4fe16072b7b40a1a75bd5c9a296e23bca779 Author: Gunnar Wrobel

-Date: Fri Mar 13 07:44:50 2009 +0100 +Date: Sat Mar 14 01:10:10 2009 +0100 Remove stray .orig file. -commit 026a99dd501ffc926853a2d8af9a7cdd7e30c9a0 +commit e508e429dcac35ef7ac223c771a9973f823db53f Author: Gunnar Wrobel

Date: Sun Feb 1 22:21:11 2009 +0000 From cvs at kolab.org Sun Apr 26 01:01:10 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 01:01:10 +0200 (CEST) Subject: gunnar: server/pear/PEAR-Net_LDAP2 .cvsignore, 1.1, 1.2 ChangeLog, 1.1, 1.2 Makefile, 1.1, 1.2 PEAR-Net_LDAP2.spec, 1.1, 1.2 Message-ID: <20090425230110.B590F600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/PEAR-Net_LDAP2 In directory doto:/tmp/cvs-serv3198 Added Files: .cvsignore ChangeLog Makefile PEAR-Net_LDAP2.spec Log Message: Merged PEAR-Net_LDAP2 from the suc branch. From cvs at kolab.org Sun Apr 26 01:01:59 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 01:01:59 +0200 (CEST) Subject: gunnar: server Makefile,1.78,1.79 Message-ID: <20090425230159.D495160082D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv3271 Modified Files: Makefile Log Message: Added PEAR-Net_LDAP2 to the Makefile. Index: Makefile =================================================================== RCS file: /kolabrepository/server/Makefile,v retrieving revision 1.78 retrieving revision 1.79 diff -u -d -r1.78 -r1.79 --- Makefile 25 Apr 2009 19:13:32 -0000 1.78 +++ Makefile 25 Apr 2009 23:01:57 -0000 1.79 @@ -36,6 +36,7 @@ pear/PEAR-Log \ pear/PEAR-Mail \ pear/PEAR-Mail-mimeDecode\ + pear/PEAR-Net_LDAP2 \ pear/PEAR-Net_LMTP \ pear/PEAR-Net_SMTP \ pear/PEAR-Net_Socket \ From cvs at kolab.org Sun Apr 26 09:53:47 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 09:53:47 +0200 (CEST) Subject: gunnar: server/kolab-webclient ChangeLog, 1.12, 1.13 kolab-webclient.spec, 1.27, 1.28 Message-ID: <20090426075347.5138E600170@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv25535 Modified Files: ChangeLog kolab-webclient.spec Log Message: Kolab_Server is now completely in sync and was removed from the kolab-webclient package. The library install in /kolab/lib/php is used instead. Allow to configure mapped LDAP attributes. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webclient/ChangeLog,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- ChangeLog 25 Apr 2009 22:31:50 -0000 1.12 +++ ChangeLog 26 Apr 2009 07:53:45 -0000 1.13 @@ -2,10 +2,18 @@ * kolab-webclient.spec: - Started cleanup of the code triplication. Kolab_Format is now - completely in sync and can be removed from within the - kolab-webclient package. + Started cleanup of the code triplication. + + Kolab_Format is now completely in sync and was removed from the + kolab-webclient package. The library install in /kolab/lib/php is + used instead. + Kolab_Server is now completely in sync and was removed from the + kolab-webclient package. The library install in /kolab/lib/php is + used instead. + + Allow to configure mapped LDAP attributes. + kolab/issue3293 (Big code duplication and code version messup: Horde libs in 2.2.1) kolab/issue3420 (web client prefs and hooks should be Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- kolab-webclient.spec 25 Apr 2009 22:45:06 -0000 1.27 +++ kolab-webclient.spec 26 Apr 2009 07:53:45 -0000 1.28 @@ -3,7 +3,7 @@ %define V_package kolab-webclient %define V_year 2009 %define V_month 04 -%define V_day 25 +%define V_day 26 %define V_version 1.2.0 %define V_source_version 1.2 %define V_passwd_version 3.0.1 @@ -131,6 +131,11 @@ # Kolab_Format is in sync rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Format* + # Kolab_Server is in sync + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/IMAP* + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Server* + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Session.php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Test/Server.php sqlite $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/storage/horde.db < scripts/sql/groupware.sql From cvs at kolab.org Sun Apr 26 09:53:47 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 09:53:47 +0200 (CEST) Subject: gunnar: server/kolab-webclient/patches/1.2.0/KOLAB t_Kolab__Server_HK_GW_MappableAttributes__.diff, NONE, 1.1 t_pear_HK_GW_AddNetLDAP2__.diff, NONE, 1.1 series, 1.3, 1.4 Message-ID: <20090426075347.4E4C060016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB In directory doto:/tmp/cvs-serv25535/patches/1.2.0/KOLAB Modified Files: series Added Files: t_Kolab__Server_HK_GW_MappableAttributes__.diff t_pear_HK_GW_AddNetLDAP2__.diff Log Message: Kolab_Server is now completely in sync and was removed from the kolab-webclient package. The library install in /kolab/lib/php is used instead. Allow to configure mapped LDAP attributes. --- NEW FILE: t_Kolab__Server_HK_GW_MappableAttributes__.diff --- From: Gunnar Wrobel

Subject: [PATCH] t/Kolab_Server/HK/GW/MappableAttributes_ Allow to configure mapped LDAP attributes. STATUS: MERGED REF: http://lists.horde.org/archives/cvs/Week-of-Mon-20090420/087641.html Signed-off-by: Gunnar Wrobel

--- horde-webmail/lib/Horde/Kolab/Server.php | 15 +- horde-webmail/lib/Horde/Kolab/Server/Object.php | 2 + .../lib/Horde/Kolab/Server/Object/address.php | 33 ++- .../lib/Horde/Kolab/Server/Object/adminrole.php | 35 ++- .../lib/Horde/Kolab/Server/Object/distlist.php | 30 ++- .../lib/Horde/Kolab/Server/Object/group.php | 23 +- .../lib/Horde/Kolab/Server/Object/server.php | 21 +- .../lib/Horde/Kolab/Server/Object/sharedfolder.php | 23 +- .../lib/Horde/Kolab/Server/Object/user.php | 43 ++- horde-webmail/lib/Horde/Kolab/Server/ldap.php | 339 ++++++++++++++++++-- horde-webmail/lib/Horde/Kolab/Server/test.php | 20 +- 11 files changed, 509 insertions(+), 75 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Server.php b/horde-webmail/lib/Horde/Kolab/Server.php index bf251f5..fd0bda7 100644 --- a/horde-webmail/lib/Horde/Kolab/Server.php +++ b/horde-webmail/lib/Horde/Kolab/Server.php @@ -159,9 +159,12 @@ class Horde_Kolab_Server { $driver = 'ldap'; $server_params = array('server' => $conf['kolab']['ldap']['server'], - 'base_dn' => $conf['kolab']['ldap']['basedn'], - 'uid' => $conf['kolab']['ldap']['phpdn'], - 'pass' => $conf['kolab']['ldap']['phppw']); + 'base_dn' => $conf['kolab']['ldap']['basedn'], + 'uid' => $conf['kolab']['ldap']['phpdn'], + 'pass' => $conf['kolab']['ldap']['phppw']); + if (isset($conf['kolab']['ldap']['map'])) { + $server_params['map'] = $conf['kolab']['ldap']['map']; + } } else { $driver = null; $server_params = array(); @@ -473,7 +476,7 @@ class Horde_Kolab_Server { function uidForId($id, $restrict = KOLAB_SERVER_RESULT_SINGLE) { - return $this->uidForAttr('uid', $id); + return $this->uidForAttr(KOLAB_ATTR_SID, $id); } /** @@ -513,7 +516,7 @@ class Horde_Kolab_Server { */ function uidForIdOrMail($id) { - $uid = $this->uidForAttr('uid', $id); + $uid = $this->uidForAttr(KOLAB_ATTR_SID, $id); if (!$uid) { $uid = $this->uidForAttr('mail', $id); } @@ -562,7 +565,7 @@ class Horde_Kolab_Server { */ function uidForMailOrIdOrAlias($id) { - $uid = $this->uidForAttr('uid', $id); + $uid = $this->uidForAttr(KOLAB_ATTR_SID, $id); if (!$uid) { $uid = $this->uidForAttr('mail', $id); if (!$uid) { diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object.php b/horde-webmail/lib/Horde/Kolab/Server/Object.php index 2e5ada2..be9eca9 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object.php @@ -26,6 +26,7 @@ define('KOLAB_OBJECT_USER', 'Horde_Kolab_Server_Object_user'); define('KOLAB_OBJECT_SERVER', 'Horde_Kolab_Server_Object_server'); /** Define the possible Kolab object attributes */ +define('KOLAB_ATTR_OC', 'objectClass'); define('KOLAB_ATTR_UID', 'dn'); define('KOLAB_ATTR_ID', 'id'); define('KOLAB_ATTR_SN', 'sn'); @@ -35,6 +36,7 @@ define('KOLAB_ATTR_FN', 'fn'); define('KOLAB_ATTR_LNFN', 'lnfn'); define('KOLAB_ATTR_FNLN', 'fnln'); define('KOLAB_ATTR_MAIL', 'mail'); +define('KOLAB_ATTR_ALIAS', 'alias'); define('KOLAB_ATTR_SID', 'uid'); define('KOLAB_ATTR_ACL', 'acl'); define('KOLAB_ATTR_MEMBER', 'member'); diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/address.php b/horde-webmail/lib/Horde/Kolab/Server/Object/address.php index 98ed518..bd6128f 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/address.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/address.php @@ -33,13 +33,6 @@ class Horde_Kolab_Server_Object_address extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(&(objectclass=inetOrgPerson)(!(uid=*))(sn=*))'; - - /** * The attributes supported by this class * * @var array @@ -86,6 +79,32 @@ class Horde_Kolab_Server_Object_address extends Horde_Kolab_Server_Object { ); /** + * The LDAP filter to retrieve this object type + * + * @return string + */ + function getFilter() + { + $criteria = array('AND' => array( + array('field' => KOLAB_ATTR_SN, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_INETORGPERSON), + array('NOT' => array( + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => '*'), + ), + ), + ), + ); + return $criteria; + } + + + /** * Convert the object attributes to a hash. * * @param string $attrs The attributes to return. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/adminrole.php b/horde-webmail/lib/Horde/Kolab/Server/Object/adminrole.php index aea4410..b2571ff 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/adminrole.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/adminrole.php @@ -32,13 +32,6 @@ class Horde_Kolab_Server_Object_adminrole extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(&(cn=*)(objectClass=inetOrgPerson)(!(uid=manager))(sn=*))'; - - /** * The attributes supported by this class * * @var array @@ -87,6 +80,34 @@ class Horde_Kolab_Server_Object_adminrole extends Horde_Kolab_Server_Object { ); /** + * The LDAP filter to retrieve this object type + * + * @return string + */ + function getFilter() + { + $criteria = array('AND' => array( + array('field' => KOLAB_ATTR_CN, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_SN, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_INETORGPERSON), + array('NOT' => array( + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => 'manager'), + ), + ), + ), + ); + return $criteria; + } + + /** * Convert the object attributes to a hash. * * @param string $attrs The attributes to return. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/distlist.php b/horde-webmail/lib/Horde/Kolab/Server/Object/distlist.php index 7965e0d..22e096e 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/distlist.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/distlist.php @@ -34,14 +34,6 @@ require_once 'Horde/Kolab/Server/Object/group.php'; class Horde_Kolab_Server_Object_distlist extends Horde_Kolab_Server_Object_group { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(&(objectClass=kolabGroupOfNames)(mail=*))'; - - - /** * The attributes required when creating an object of this class. * * @var array @@ -49,4 +41,26 @@ class Horde_Kolab_Server_Object_distlist extends Horde_Kolab_Server_Object_group var $_required_attributes = array( KOLAB_ATTR_MAIL, ); + + /** + * Return the filter string to retrieve this object type. + * + * @static + * + * @return string The filter to retrieve this object type from the server + * database. + */ + public static function getFilter() + { + $criteria = array('AND' => array( + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABGROUPOFNAMES), + ), + ); + return $criteria; + } }; diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/group.php b/horde-webmail/lib/Horde/Kolab/Server/Object/group.php index 91c1bd2..f58c905 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/group.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/group.php @@ -32,13 +32,6 @@ class Horde_Kolab_Server_Object_group extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(objectClass=kolabGroupOfNames)'; - - /** * The attributes supported by this class * * @var array @@ -104,6 +97,22 @@ class Horde_Kolab_Server_Object_group extends Horde_Kolab_Server_Object { } /** + * Return the filter string to retrieve this object type. + * + * @return string The filter to retrieve this object type from the server + * database. + */ + public static function getFilter() + { + $criteria = array('AND' => array(array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABGROUPOFNAMES), + ), + ); + return $criteria; + } + + /** * Convert the object attributes to a hash. * * @param string $attrs The attributes to return. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/server.php b/horde-webmail/lib/Horde/Kolab/Server/Object/server.php index 965eb84..740417c 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/server.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/server.php @@ -32,11 +32,26 @@ class Horde_Kolab_Server_Object_server extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type + * Return the filter string to retrieve this object type. * - * @var string + * @static + * + * @return string The filter to retrieve this object type from the server + * database. */ - var $filter = '(&((k=kolab))(objectclass=kolab))'; + public static function getFilter() + { + $criteria = array('AND' => array( + array('field' => 'k', + 'op' => '=', + 'test' => 'kolab'), + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLAB), + ), + ); + return $criteria; + } /** * The attributes supported by this class diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/sharedfolder.php b/horde-webmail/lib/Horde/Kolab/Server/Object/sharedfolder.php index 3b68862..b92f07b 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/sharedfolder.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/sharedfolder.php @@ -33,13 +33,6 @@ class Horde_Kolab_Server_Object_sharedfolder extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(objectClass=kolabSharedFolder)'; - - /** * The attributes supported by this class * * @var array @@ -89,6 +82,22 @@ class Horde_Kolab_Server_Object_sharedfolder extends Horde_Kolab_Server_Object { } /** + * Return the filter string to retrieve this object type. + * + * @return string The filter to retrieve this object type from the server + * database. + */ + public static function getFilter() + { + $criteria = array('AND' => array(array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABSHAREDFOLDER), + ), + ); + return $criteria; + } + + /** * Convert the object attributes to a hash. * * @param string $attrs The attributes to return. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/user.php b/horde-webmail/lib/Horde/Kolab/Server/Object/user.php index d4e57a0..4846211 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/user.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/user.php @@ -33,13 +33,6 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object { /** - * The LDAP filter to retrieve this object type - * - * @var string - */ - var $filter = '(&(objectClass=kolabInetOrgPerson)(uid=*)(mail=*)(sn=*))'; - - /** * The attributes supported by this class * * @var array @@ -154,6 +147,31 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object { } /** + * The LDAP filter to retrieve this object type + * + * @return string + */ + function getFilter() + { + $criteria = array('AND' => array( + array('field' => KOLAB_ATTR_SN, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => '*'), + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + ), + ); + return $criteria; + } + + /** * Convert the object attributes to a hash. * * @param string $attrs The attributes to return. @@ -185,6 +203,17 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object { } /** + * Get the group mail addresses for this object + * + * @return mixed|PEAR_Error An array of group addresses, false if no groups were + * found. + */ + function getGroupAddresses() + { + return $this->_db->getGroupAddresses($this->_uid); + } + + /** * Returns the server url of the given type for this user. * * This method is used to encapsulate multidomain support. diff --git a/horde-webmail/lib/Horde/Kolab/Server/ldap.php b/horde-webmail/lib/Horde/Kolab/Server/ldap.php index a50ba2c..c371b5a 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/ldap.php +++ b/horde-webmail/lib/Horde/Kolab/Server/ldap.php @@ -2,7 +2,7 @@ /** * The driver for accessing the Kolab user database stored in LDAP. * - * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/ldap.php,v 1.2.2.2 2008/08/01 07:56:19 wrobel Exp $ + * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/ldap.php,v 1.2.2.10 2009/02/24 07:39:47 wrobel Exp $ * * PHP version 4 * @@ -210,6 +210,7 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } if (isset($attrs)) { + $this->mapKeys($attrs); $result = @ldap_read($this->_connection, $dn, '(objectclass=*)', $attrs); } else { $result = @ldap_read($this->_connection, $dn, '(objectclass=*)'); @@ -220,7 +221,7 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } $entry = $this->_firstEntry($result); if (!$entry) { - ldap_free_result($result); + @ldap_free_result($result); return PEAR::raiseError(sprintf(_("LDAP Error: Empty result for: %s."), $dn)); } @@ -229,7 +230,10 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { return PEAR::raiseError(sprintf(_("LDAP Error: No such dn: %s: %s"), $dn, $this->_error())); } - ldap_free_result($result); + @ldap_free_result($result); + + $this->unmapAttributes($object); + return $object; } @@ -250,6 +254,8 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } } + $this->mapAttributes($data); + return @ldap_add($this->_connection, $dn, $data); } @@ -681,9 +687,25 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { */ function mailForIdOrMail($id) { - $filter = '(&(objectClass=kolabInetOrgPerson)(|(uid='. - Horde_LDAP::quote($id) . ')(mail=' . - Horde_LDAP::quote($id) . ')))'; + $criteria = array('AND' => + array( + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + array('OR' => + array( + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => $id), + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => $id), + ), + ), + ), + ); + $filter = $this->searchQuery($criteria); + $result = $this->_attrsForFilter($filter, array('mail'), KOLAB_SERVER_RESULT_STRICT); if (is_a($result, 'PEAR_Error')) { @@ -702,9 +724,24 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { */ function uidForIdOrMail($id) { - $filter = '(&(objectClass=kolabInetOrgPerson)(|(uid='. - Horde_LDAP::quote($id) . ')(mail=' . - Horde_LDAP::quote($id) . ')))'; + $criteria = array('AND' => + array( + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + array('OR' => + array( + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => $id), + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => $id), + ), + ), + ), + ); + $filter = $this->searchQuery($criteria); return $this->_dnForFilter($filter, KOLAB_SERVER_RESULT_STRICT); } @@ -717,9 +754,25 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { */ function addrsForIdOrMail($id) { - $filter = '(&(objectClass=kolabInetOrgPerson)(|(mail=' - . Horde_LDAP::quote($id) . ')(uid=' - . Horde_LDAP::quote($id) . ')))'; + $criteria = array('AND' => + array( + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + array('OR' => + array( + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => $id), + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => $id), + ), + ), + ), + ); + $filter = $this->searchQuery($criteria); + $result = $this->_attrsForFilter($filter, array('mail', 'alias'), KOLAB_SERVER_RESULT_STRICT); if (empty($result)) { @@ -768,10 +821,27 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { */ function uidForMailAddress($mail) { - $filter = '(&(objectClass=kolabInetOrgPerson)(|(uid='. - Horde_LDAP::quote($mail) . ')(mail=' . - Horde_LDAP::quote($mail) . ')(alias=' . - Horde_LDAP::quote($mail) . ')))'; + $criteria = array('AND' => + array( + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + array('OR' => + array( + array('field' => KOLAB_ATTR_ALIAS, + 'op' => '=', + 'test' => $mail), + array('field' => KOLAB_ATTR_MAIL, + 'op' => '=', + 'test' => $mail), + array('field' => KOLAB_ATTR_SID, + 'op' => '=', + 'test' => $mail), + ), + ), + ), + ); + $filter = $this->searchQuery($criteria); return $this->_dnForFilter($filter); } @@ -788,8 +858,17 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { function uidForAttr($attr, $value, $restrict = KOLAB_SERVER_RESULT_SINGLE) { - $filter = '(&(objectClass=kolabInetOrgPerson)(' . $attr . - '=' . Horde_LDAP::quote($value) . '))'; + $criteria = array('AND' => + array( + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABINETORGPERSON), + array('field' => $attr, + 'op' => '=', + 'test' => $value), + ), + ); + $filter = $this->searchQuery($criteria); return $this->_dnForFilter($filter, $restrict); } @@ -806,8 +885,17 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { function gidForAttr($attr, $value, $restrict = KOLAB_SERVER_RESULT_SINGLE) { - $filter = '(&(objectClass=kolabGroupOfNames)(' . $attr . - '=' . Horde_LDAP::quote($value) . '))'; + $criteria = array('AND' => + array( + array('field' => KOLAB_ATTR_OC, + 'op' => '=', + 'test' => KOLAB_OC_KOLABGROUPOFNAMES), + array('field' => $attr, + 'op' => '=', + 'test' => $value), + ), + ); + $filter = $this->searchQuery($criteria); return $this->_dnForFilter($filter, $restrict); } @@ -854,6 +942,37 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } /** + * Get the mail addresses for the group of this object. + * + * @param string $uid The UID of the object to fetch. + * + * @return array|PEAR_Error An array of group ids. + * + * @since 0.5.0 + */ + function getGroupAddresses($uid) + { + $filter = '(&(objectClass=kolabGroupOfNames)(member=' + . Horde_LDAP::quote($uid) . '))'; + $result = $this->_attrsForFilter($filter, array(KOLAB_ATTR_MAIL), + KOLAB_SERVER_RESULT_MANY); + if (empty($result)) { + return array(); + } + $mails = array(); + foreach ($result as $element) { + if (isset($element[KOLAB_ATTR_MAIL])) { + if (is_array($element[KOLAB_ATTR_MAIL])) { + $mails = array_merge($mails, $element[KOLAB_ATTR_MAIL]); + } else { + $mails[] = $element[KOLAB_ATTR_MAIL]; + } + } + } + return $mails; + } + + /** * List all objects of a specific type * * @param string $type The type of the objects to be listed @@ -874,7 +993,13 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { return $result; } $vars = get_class_vars($type); - $filter = $vars['filter']; + $methods = get_class_methods($type); + if (!in_array('getFilter', $methods)) { + $filter = $vars['filter']; + } else { + $criteria = call_user_func(array($type, 'getFilter')); + $filter = $this->searchQuery($criteria); + } $sort = $vars['sort_by']; if (isset($params['sort'])) { @@ -993,4 +1118,176 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } } + /** + * Build a search query. + * + * Taken from the Turba LDAP driver. + * + * @param array $criteria The array of criteria. + * + * @return string An LDAP query filter. + */ + public function searchQuery($criteria) + { + require_once 'Net/LDAP2.php'; + + /* Accept everything. */ + $filter = '(' . strtolower(KOLAB_ATTR_OC) . '=*)'; + + /* Build the LDAP filter. */ + if (count($criteria)) { + $f = $this->buildSearchQuery($criteria); + if (is_a($f, 'Net_LDAP2_Filter')) { + $filter = $f->asString(); + } + } + return $filter; + } + + /** + * Build a piece of a search query. + * + * Taken from the Turba LDAP driver. + * + * @param array $criteria The array of criteria. + * + * @return string An LDAP query fragment. + */ + protected function &buildSearchQuery($criteria) + { + if (isset($criteria['field'])) { + require_once 'Horde/String.php'; + require_once 'Horde/NLS.php'; + $rhs = $criteria['test']; + /* Keep this in for reference as we did not really test servers with different encoding yet */ + //$rhs = String::convertCharset($criteria['test'], NLS::getCharset(), $this->params['charset']); + switch ($criteria['op']) { + case '=': + $op = 'equals'; + break; + } + return Net_LDAP2_Filter::create($this->mapField($criteria['field']), + $op, $rhs); + } + foreach ($criteria as $key => $vals) { + if (!empty($vals['OR']) + || !empty($vals['AND']) + || !empty($vals['NOT'])) { + $parts = $this->buildSearchQuery($vals); + if (count($parts) > 1) { + if (!empty($vals['OR'])) { + $operator = '|'; + } else if (!empty($vals['NOT'])) { + $operator = '!'; + } else { + $operator = '&'; + } + return Net_LDAP2_Filter::combine($operator, $parts); + } else { + return $parts[0]; + } + } else { + $parts = array(); + foreach ($vals as $test) { + $parts[] = &$this->buildSearchQuery($test); + } + switch ($key) { + case 'OR': + $operator = '|'; + break; + case 'AND': + $operator = '&'; + break; + case 'NOT': + $operator = '!'; + break; + } + if (count($parts) > 1) { + return Net_LDAP2_Filter::combine($operator, $parts); + } else if ($operator == '!') { + return Net_LDAP2_Filter::combine($operator, $parts[0]); + } else { + return $parts[0]; + } + } + } + } + + /** + * Map attributes defined within this library their their real world + * counterparts. + * + * @param array $data The data that has been read and needs to be mapped. + * + * @return NULL + */ + protected function unmapAttributes(&$data) + { + if (!empty($this->_params['map'])) { + foreach ($this->_params['map'] as $attribute => $map) { + if (isset($data[$map])) { + $data[$attribute] = $data[$map]; + unset($data[$map]); + } + } + } + } + + /** + * Map attributes defined within this library into their real world + * counterparts. + * + * @param array $data The data to be written. + * + * @return NULL + */ + protected function mapAttributes(&$data) + { + if (!empty($this->_params['map'])) { + foreach ($this->_params['map'] as $attribute => $map) { + if (isset($data[$attribute])) { + $data[$map] = $data[$attribute]; + unset($data[$attribute]); + } + } + } + } + + /** + * Map attribute keys defined within this library into their real world + * counterparts. + * + * @param array $keys The attribute keys. + * + * @return NULL + */ + protected function mapKeys(&$keys) + { + if (!empty($this->_params['map'])) { + foreach ($this->_params['map'] as $attribute => $map) { + $key = array_search($attribute, $keys); + if ($key !== false) { + $keys[$key] = $map; + } + } + } + } + + /** + * Map a single attribute key defined within this library into its real + * world counterpart. + * + * @param array $field The attribute name. + * + * @return The real name of this attribute on the server we connect to. + */ + protected function mapField($field) + { + if (!empty($this->_params['map']) + && isset($this->_params['map'][$field])) { + return $this->_params['map'][$field]; + } + return $field; + } + } diff --git a/horde-webmail/lib/Horde/Kolab/Server/test.php b/horde-webmail/lib/Horde/Kolab/Server/test.php index 47f985a..fc19c80 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/test.php +++ b/horde-webmail/lib/Horde/Kolab/Server/test.php @@ -247,6 +247,10 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { } } + if (!empty($attributes)) { + $this->mapKeys($attributes); + } + $filter = $this->_parse($filter); if (is_a($filter, 'PEAR_Error')) { return $filter; @@ -265,6 +269,8 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { $result = $subtree; } + $this->unmapAttributes($result); + return $result; } @@ -286,7 +292,8 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { switch ($filter['log']) { case '=': $value = $element['data'][$filter['att']]; - if (($filter['val'] == '*' && !empty($value)) + if ((($filter['val'] == '*' || $filter['val'] == '\2a') + && !empty($value)) || $value == $filter['val'] || (is_array($value) && in_array($filter['val'], $value))) { @@ -390,8 +397,12 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { $dn)); } if (empty($attrs)) { - return $GLOBALS['KOLAB_SERVER_TEST_DATA'][$dn]['data']; + $data = $GLOBALS['KOLAB_SERVER_TEST_DATA'][$dn]['data']; + $this->unmapAttributes($data); + return $data; } else { + $this->mapKeys($attrs); + $result = array(); $data = $GLOBALS['KOLAB_SERVER_TEST_DATA'][$dn]['data']; @@ -401,6 +412,9 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { array_push($result, $attr); } } + + $this->unmapAttributes($result); + $result['count'] = 1; return $result; } @@ -423,6 +437,8 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { } } + $this->mapAttributes($data); + $ldap_data = array(); foreach ($data as $key => $val) { if (!is_array($val)) { -- tg: (f439252..) t/Kolab_Server/HK/GW/MappableAttributes_ (depends on: t/Prefs/HK/GW/FixLDAPAuthForIngo t/Text/Filter/SC/CH/Xss t/framework/HK/GW/Kolab_Format/ImprovedPreferencesHandling t/framework/HK/GW/Prefs_KolabImapApplicationTag t/framework/HK/GW/horde/conf_xmlUpdates t/kronolith/HK/GW/AuthenticatedFreeBusy t/nag/H/MR/Bug_7400 t/GLOBAL/HK/GW/SystemLibInclude t/kronolith/HK/GW/SyncMLrefresh t/turba/HK/GW/FixAddressbookDeletion t/turba/HK/GW/SyncMLrefresh t/imp/HideGroupwareFolders t/imp/SC/CH/SecIssues20090128 t/horde/SC/CH/SecIssues20090128 t/dimp/H/MS/FixBrokenFolderImages t/dimp/HK/GW/ItipHandling t/pear/HK/GW/AddNetIMAP t/pear/HK/GW/AddNetLDAP2_) -- TOPGIT patch commit log ======================= commit 98296a8e96f64476e450c62e46c1f125e35c20f6 Author: Gunnar Wrobel

Date: Sun Apr 26 09:03:52 2009 +0200 Add getGroupAddresses(). commit e84042e7941b8f7e5a76f9de9baf9bf660a3467a Author: Gunnar Wrobel

Date: Sun Apr 26 01:28:02 2009 +0200 Allow to configure mapped LDAP attributes. commit db709e264c26db8c9382a446795f78abb7e39a22 Author: Gunnar Wrobel

Date: Sun Apr 26 01:25:13 2009 +0200 Add all dependencies from t/KOLAB. --- NEW FILE: t_pear_HK_GW_AddNetLDAP2__.diff --- From: Gunnar Wrobel

Subject: [PATCH] t/pear/HK/GW/AddNetLDAP2_ Adds the PEAR-Net_LDAP2 library. Signed-off-by: Gunnar Wrobel

--- horde-webmail/pear/Net/LDAP2.php | 1698 ++++++++++++++++++++++++++++++ horde-webmail/pear/Net/LDAP2/Entry.php | 1019 ++++++++++++++++++ horde-webmail/pear/Net/LDAP2/Filter.php | 447 ++++++++ horde-webmail/pear/Net/LDAP2/LDIF.php | 904 ++++++++++++++++ horde-webmail/pear/Net/LDAP2/RootDSE.php | 221 ++++ horde-webmail/pear/Net/LDAP2/Schema.php | 502 +++++++++ horde-webmail/pear/Net/LDAP2/Search.php | 596 +++++++++++ horde-webmail/pear/Net/LDAP2/Util.php | 557 ++++++++++ 8 files changed, 5944 insertions(+), 0 deletions(-) diff --git a/horde-webmail/pear/Net/LDAP2.php b/horde-webmail/pear/Net/LDAP2.php [...5994 lines suppressed...] + +?> \ No newline at end of file -- tg: (adba3be..) t/pear/HK/GW/AddNetLDAP2_ (depends on: t/Kolab_Format/HK/GW/HandleEmptyXmlParserReturn) -- TOPGIT patch commit log ======================= commit 05adaf4b3acf2e521808ab3e11082f284c394db9 Author: Gunnar Wrobel

Date: Sun Apr 26 00:58:43 2009 +0200 Imported Net_LDAP2 patch. commit 2e29b114b3c847b91333d9a5c2a99b4c6cfb7308 Author: Gunnar Wrobel

Date: Thu Apr 23 13:41:35 2009 +0200 Add PEAR-Net_LDAP2 Index: series =================================================================== RCS file: /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB/series,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- series 25 Apr 2009 22:31:51 -0000 1.3 +++ series 26 Apr 2009 07:53:45 -0000 1.4 @@ -79,3 +79,5 @@ t_kronolith_HK_GW_FbviewRelevance.diff t_kronolith_HK_GW_XfbAccess.diff t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff +t_pear_HK_GW_AddNetLDAP2__.diff +t_Kolab__Server_HK_GW_MappableAttributes__.diff From cvs at kolab.org Sun Apr 26 10:33:59 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 10:33:59 +0200 (CEST) Subject: gunnar: server/kolab-webclient/patches/1.2.0/KOLAB t_kronolith_HK_SB_ExtraParameters.diff, 1.1, 1.2 Message-ID: <20090426083359.5A2A060016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB In directory doto:/tmp/cvs-serv26655/patches/1.2.0/KOLAB Modified Files: t_kronolith_HK_SB_ExtraParameters.diff Log Message: Idempotent patch, only merge changes from topgit. Index: t_kronolith_HK_SB_ExtraParameters.diff =================================================================== RCS file: /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB/t_kronolith_HK_SB_ExtraParameters.diff,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- t_kronolith_HK_SB_ExtraParameters.diff 25 Apr 2009 21:04:19 -0000 1.1 +++ t_kronolith_HK_SB_ExtraParameters.diff 26 Apr 2009 08:33:57 -0000 1.2 @@ -91,18 +91,18 @@ -

 
+
 
-- -tg: (917327f..) t/kronolith/HK/SB/ExtraParameters (depends on: t/kronolith/HK/SB/SaveEventAttendees) +tg: (cd7f4fe..) t/kronolith/HK/SB/ExtraParameters (depends on: t/kronolith/HK/SB/SaveEventAttendees) -- TOPGIT patch commit log ======================= -commit 0c5a8f2db1f17bcc46f24ca0cc7c5395abb289dc +commit 2b897516731f83d8acfc3d09c4ecb99c4699f6be Author: Gunnar Wrobel

-Date: Fri Mar 13 01:19:17 2009 +0100 +Date: Sat Mar 14 01:10:42 2009 +0100 Removed stray .orig file. -commit c9a3d3d22933a4b7c27288c49250ff7535bcbfbf +commit 925627f7aa47741226eeacdf09b15dcc38ab5225 Author: Gunnar Wrobel

Date: Sun Feb 1 22:26:49 2009 +0000 From cvs at kolab.org Sun Apr 26 10:34:52 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 10:34:52 +0200 (CEST) Subject: gunnar: server/kolab-webclient/patches/1.2.0/KOLAB t_Kolab__Storage_HK_GW_TestingFixes.diff, NONE, 1.1 series, 1.4, 1.5 Message-ID: <20090426083452.DEB2E600170@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB In directory doto:/tmp/cvs-serv26716/patches/1.2.0/KOLAB Modified Files: series Added Files: t_Kolab__Storage_HK_GW_TestingFixes.diff Log Message: Bring Kolab_Storage closer to the library installed in /kolab/lib/php. --- NEW FILE: t_Kolab__Storage_HK_GW_TestingFixes.diff --- From: Gunnar Wrobel

Subject: [PATCH] t/Kolab_Storage/HK/GW/TestingFixes Fix the permission object in case we use setACL() directly. Also allows complex testing scenarios within FreeBusy. While this patch is irrelevant for the kolab-webclient it syncs the Kolab_Storage library. STATUS: MERGED REF: http://lists.horde.org/archives/cvs/Week-of-Mon-20090420/087647.html REF: http://lists.horde.org/archives/cvs/Week-of-Mon-20090420/087648.html Signed-off-by: Gunnar Wrobel

--- horde-webmail/lib/Horde/Kolab/Storage/Folder.php | 5 +++++ horde-webmail/lib/Horde/Kolab/Storage/List.php | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php index 4d3e0f3..7eb97d5 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php @@ -1422,6 +1422,11 @@ class Kolab_Folder { return $iresult; } + if (!empty($this->_perms)) { + /** Refresh the cache after changing the permissions */ + $this->_perms->getPerm(); + } + $result = $this->trigger(); if (is_a($result, 'PEAR_Error')) { Horde::logMessage(sprintf('Failed triggering folder %s! Error was: %s', diff --git a/horde-webmail/lib/Horde/Kolab/Storage/List.php b/horde-webmail/lib/Horde/Kolab/Storage/List.php index 583f41f..a9bff36 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/List.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/List.php @@ -96,7 +96,7 @@ class Kolab_List { * * @return Kolab_Folders_List The concrete List reference. */ - function &singleton() + function &singleton($destruct = false) { static $list; @@ -107,7 +107,7 @@ class Kolab_List { $list = $session->query('kolab_folderlist'); } - if (empty($list[Auth::getAuth()])) { + if (empty($list[Auth::getAuth()]) || $destruct) { $list[Auth::getAuth()] = new Kolab_List(); } -- tg: (98296a8..) t/Kolab_Storage/HK/GW/TestingFixes (depends on: t/Kolab_Server/HK/GW/MappableAttributes_) -- TOPGIT patch commit log ======================= commit 0f2720ba809d71ff40332b0477a23aca4b90b17e Author: Gunnar Wrobel

Date: Sun Apr 26 10:22:03 2009 +0200 Fix the permission object in case we use setACL() directly. Also allows complex testing scenarios within FreeBusy. While this patch is irrelevant for the kolab-webclient it syncs the Kolab_Storage library. STATUS: MERGED REF: http://lists.horde.org/archives/cvs/Week-of-Mon-20090420/087647.html REF: http://lists.horde.org/archives/cvs/Week-of-Mon-20090420/087648.html Index: series =================================================================== RCS file: /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB/series,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- series 26 Apr 2009 07:53:45 -0000 1.4 +++ series 26 Apr 2009 08:34:50 -0000 1.5 @@ -81,3 +81,4 @@ t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff t_pear_HK_GW_AddNetLDAP2__.diff t_Kolab__Server_HK_GW_MappableAttributes__.diff +t_Kolab__Storage_HK_GW_TestingFixes.diff From cvs at kolab.org Sun Apr 26 10:57:03 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 10:57:03 +0200 (CEST) Subject: mathieu: server/kolabd/kolabd/dist_conf debian,1.28,1.29 Message-ID: <20090426085703.7EDAF600170@lists.intevation.de> Author: mathieu Update of /kolabrepository/server/kolabd/kolabd/dist_conf In directory doto:/tmp/cvs-serv27642/dist_conf Modified Files: debian Log Message: dist_conf/debian: Prepare kolabd for additional webclient configuration templates. Index: debian =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/debian,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- debian 17 Mar 2009 22:11:41 -0000 1.28 +++ debian 26 Apr 2009 08:57:01 -0000 1.29 @@ -133,7 +133,14 @@ #webclient horde_cookie_path=/horde3 horde_confdir=${sysconfdir}/kolab-webclient/horde3 +dimp_confdir=${sysconfdir}/kolab-webclient/dimp1 +imp_confdir=${sysconfdir}/kolab-webclient/imp4 +ingo_confdir=${sysconfdir}/kolab-webclient/ingo1 kronolith_confdir=${sysconfdir}/kolab-webclient/kronolith2 +mimp_confdir=${sysconfdir}/kolab-webclient/mimp1 +mnemo_confdir=${sysconfdir}/kolab-webclient/mnemo2 +nag_confdir=${sysconfdir}/kolab-webclient/nag2 +turba_confdir=${sysconfdir}/kolab-webclient/turba2 phpini_dir=${sysconfdir}/kolab phplibdir=${datadir}/php From cvs at kolab.org Sun Apr 26 10:57:03 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 10:57:03 +0200 (CEST) Subject: mathieu: server/kolabd/kolabd ChangeLog,1.248,1.249 Message-ID: <20090426085703.7B6D960016D@lists.intevation.de> Author: mathieu Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv27642 Modified Files: ChangeLog Log Message: dist_conf/debian: Prepare kolabd for additional webclient configuration templates. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.248 retrieving revision 1.249 diff -u -d -r1.248 -r1.249 --- ChangeLog 24 Apr 2009 05:01:22 -0000 1.248 +++ ChangeLog 26 Apr 2009 08:57:01 -0000 1.249 @@ -1,3 +1,8 @@ +2009-04-26 Mathieu Parent + + * dist_conf/debian: Prepare kolabd for additional webclient + configuration templates. + 2009-04-20 Thomas Arendsen Hein * templates/slapd.conf.template.in: Make kolabAllowSMTPRecipient From cvs at kolab.org Sun Apr 26 11:24:23 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 11:24:23 +0200 (CEST) Subject: gunnar: server/kolab-webclient/patches/1.2.0/KOLAB t_framework_HK_GW_Kolab_XfbFixes.diff, 1.1, 1.2 Message-ID: <20090426092423.6303E60016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB In directory doto:/tmp/cvs-serv29675/patches/1.2.0/KOLAB Modified Files: t_framework_HK_GW_Kolab_XfbFixes.diff Log Message: This came from the old mercurial patch queue but it seems to be incorrect as the fbrelevance is a simple integer and no array. It was also never commited upstream this way. So lets fix this and test it with the web client. Index: t_framework_HK_GW_Kolab_XfbFixes.diff =================================================================== RCS file: /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB/t_framework_HK_GW_Kolab_XfbFixes.diff,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- t_framework_HK_GW_Kolab_XfbFixes.diff 25 Apr 2009 21:04:19 -0000 1.1 +++ t_framework_HK_GW_Kolab_XfbFixes.diff 26 Apr 2009 09:24:21 -0000 1.2 @@ -11,7 +11,7 @@ 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php -index 36844f9..1da391b 100644 +index 36844f9..29775cd 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php @@ -406,6 +406,22 @@ class Kolab_Folder { @@ -27,7 +27,7 @@ + } + } + if (isset($params['fbrelevance'])) { -+ $result = $this->setFbrelevance(join(' ', $params['fbrelevance'])); ++ $result = $this->setFbrelevance($params['fbrelevance']); + if (is_a($result, 'PEAR_Error')) { + return $result; + } @@ -81,6 +81,12 @@ -- TOPGIT patch commit log ======================= + +commit c20af1d5f227a4444951676bdee250d88069d891 +Author: Gunnar Wrobel

+Date: Sun Apr 26 10:53:52 2009 +0200 + + This came from the old mercurial patch queue but it seems to be incorrect as the fbrelevance is a simple integer and no array. It was also never commited upstream this way. So lets fix this and test it with the web client. commit 07447788c136353d40cc6c5b4d9f1d1f0d13ef76 Author: Gunnar Wrobel

From cvs at kolab.org Sun Apr 26 11:48:35 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 11:48:35 +0200 (CEST) Subject: gunnar: server/kolab-webclient ChangeLog, 1.13, 1.14 kolab-webclient.spec, 1.28, 1.29 Message-ID: <20090426094835.3095160016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv31174 Modified Files: ChangeLog kolab-webclient.spec Log Message: Kolab_Storage is now completely in sync and was removed from the kolab-webclient package. The library install in /kolab/lib/php is used instead. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webclient/ChangeLog,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- ChangeLog 26 Apr 2009 07:53:45 -0000 1.13 +++ ChangeLog 26 Apr 2009 09:48:33 -0000 1.14 @@ -12,6 +12,10 @@ kolab-webclient package. The library install in /kolab/lib/php is used instead. + Kolab_Storage is now completely in sync and was removed from the + kolab-webclient package. The library install in /kolab/lib/php is + used instead. + Allow to configure mapped LDAP attributes. kolab/issue3293 (Big code duplication and code version messup: Horde Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- kolab-webclient.spec 26 Apr 2009 07:53:45 -0000 1.28 +++ kolab-webclient.spec 26 Apr 2009 09:48:33 -0000 1.29 @@ -137,6 +137,11 @@ rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Session.php rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Test/Server.php + # Kolab_Storage is in sync + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Deprecated.php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Storage* + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Test/Storage.php + sqlite $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/storage/horde.db < scripts/sql/groupware.sql From cvs at kolab.org Sun Apr 26 12:07:04 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 12:07:04 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.439,1.440 Message-ID: <20090426100704.3E7EC600832@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv332 Modified Files: release-notes.txt Log Message: kolab-webclient in HEAD contains all fixes from the release branch now. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.439 retrieving revision 1.440 diff -u -d -r1.439 -r1.440 --- release-notes.txt 25 Apr 2009 19:24:45 -0000 1.439 +++ release-notes.txt 26 Apr 2009 10:07:02 -0000 1.440 @@ -174,7 +174,7 @@ - kolab-webclient-1.2.0-20090327 -TODO: kolab/issue3420 (web client prefs and hooks should be + kolab/issue3420 (web client prefs and hooks should be configurable via templates) kolab/issue3444 (No error message when login fails because of wrong credentials) @@ -182,9 +182,9 @@ creating a new folder) kolab/issue3452 (Allow to configure the default imp view offered to the user) -TODO: kolab/issue3520 (calendar with certain entries does not display in + kolab/issue3520 (calendar with certain entries does not display in web client) -TODO: kolab/issue3528 (Events with broken encoding should work) + kolab/issue3528 (Events with broken encoding should work) - openpkg-20071227-20071227_kolab1 From cvs at kolab.org Sun Apr 26 12:33:23 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 12:33:23 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Filter Kolab_Filter.spec, 1.21, 1.22 Makefile, 1.10, 1.11 Message-ID: <20090426103323.541B7600170@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter In directory doto:/tmp/cvs-serv2502 Modified Files: Kolab_Filter.spec Makefile Log Message: Update Makefile. Fix dependencies. Index: Kolab_Filter.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Kolab_Filter.spec,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- Kolab_Filter.spec 17 Mar 2009 11:49:41 -0000 1.21 +++ Kolab_Filter.spec 26 Apr 2009 10:33:21 -0000 1.22 @@ -2,6 +2,7 @@ %define V_package Kolab_Filter %define V_version 0.1.5 %define V_release 20090317 +%define V_sourceurl http://pear.horde.org/get # Package Information Name: %{V_package} @@ -15,7 +16,7 @@ Distribution: OpenPKG # List of Sources -Source0: http://pear.horde.org/get/%{V_package}-%{V_version}.tgz +Source0: %{V_sourceurl}/%{V_package}-%{V_version}.tgz # List of patches Patch0: dovecotlda-quoting.patch @@ -30,9 +31,9 @@ BuildPreReq: PEAR-Horde-Channel PreReq: OpenPKG, openpkg >= 20070603 PreReq: php, php::with_pear = yes -PreReq: Kolab_Format -PreReq: Kolab_Server -PreReq: Kolab_Storage +PreReq: Kolab_Format >= 1.0.1 +PreReq: Kolab_Server >= 0.5.0 +PreReq: Kolab_Storage >= 0.4.0 PreReq: PEAR-HTTP_Request PreReq: PEAR-Net_LMTP PreReq: PEAR-Net_SMTP Index: Makefile =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Makefile,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- Makefile 6 Mar 2009 21:10:49 -0000 1.10 +++ Makefile 26 Apr 2009 10:33:21 -0000 1.11 @@ -1,52 +1,111 @@ -PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") -RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") -PATCHES = $(shell ls *.patch) +# If home is unset this Makefile assumes the Kolab server installation +# resides in /kolab. If this is not the case this Makefile must be +# called using +# +# HOME="/mykolabroot" make TARGET +# +ifeq "x$(HOME)" "x" + HOME = /kolab +endif + +# If HOME is set to /root it is likely that somebody is calling this +# Makefile as root user. In this case this Makefile assumes that the +# Kolab server installation resides in /kolab. +# +# In the (hopefully) unlikely event that somebody really installed the +# Kolab server in /root this Makefile will fail. +ifeq "x$(HOME)" "x/root" + HOME = /kolab +endif +# Set the location of the rpm binary ifeq "x$(RPM)" "x" RPM = $(HOME)/bin/openpkg rpm endif + +# Set the location for rpm source package installations ifeq "x$(KOLABRPMSRC)" "x" KOLABRPMSRC = $(HOME)/RPM/SRC endif + +# Set the location for rpm packages ifeq "x$(KOLABRPMPKG)" "x" KOLABRPMPKG = $(HOME)/RPM/PKG endif + +# Set the location for the rpm temporary directory ifeq "x$(KOLABRPMTMP)" "x" KOLABRPMTMP = $(HOME)/RPM/TMP endif +# Determine the suffix for binary packages on this system ifeq "x$(PLATTAG)" "x" PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) endif -SOURCE_URL=http://pear.horde.org/get +# Determine the staging area for collecting new source rpms +ifeq "x$(STAGING)" "x" + STAGING = ../../stage +endif + +# Determine the package name from the *.spec file +PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") + +# Determine the package version from the *.spec file +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") + +# Determine the release number from the *.spec file +RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") + +# Determine the download url for the PEAR package from the *.spec file +SOURCE_URL=$(shell grep "%define[ ]*V_sourceurl" *.spec | sed -e "s/.*V_sourceurl\s*\(.*\)/\1/") + +# Get the list of patches if there are any in this directory +PATCHES = $(shell ls *.patch 2> /dev/null) + +# Generate the full package name SOURCE_0=$(PACKAGE)-$(VERSION).tgz + +# Generate a list of extra files for the package EXTRA=ChangeLog $(PATCHES) + +# Default target to generate the source rpm package .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm +# Target for placing the source rpm in the staging area .PHONY: dist dist: all - cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm ../../stage/ + test -d $(STAGING) || mkdir $(STAGING) + cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm $(STAGING) -.PHONY: clean -clean: - rm -rf /kolab/RPM/TMP/$(PACKAGE)* - rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - rm -rf *~ +# Target for installing the binary rpm package in our current Kolab +# server installation +.PHONY: install +install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm -$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): +# Target for retrieving the source package +$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_URL)/$(SOURCE_0)" -$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec ChangeLog $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) +# Target for preparing the source area and building the package +$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: Makefile $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) cp $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec +# Target for fetching the source rpm into the current directory +$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . -.PHONY: install -install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm - $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm +# Target for cleaning up the files that can be generated with this Makefile +.PHONY: clean +clean: + rm -rf $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + rm -rf $(KOLABRPMSRC)/$(PACKAGE) + rm -rf $(KOLABRPMTMP)/$(PACKAGE)* + rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm + rm -rf *~ + From cvs at kolab.org Sun Apr 26 12:33:43 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 12:33:43 +0200 (CEST) Subject: gunnar: server/kolab-webclient kolab-webclient.spec,1.29,1.30 Message-ID: <20090426103343.76E2C600831@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv2570/kolab-webclient Modified Files: kolab-webclient.spec Log Message: Fix dependencies. Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- kolab-webclient.spec 26 Apr 2009 09:48:33 -0000 1.29 +++ kolab-webclient.spec 26 Apr 2009 10:33:41 -0000 1.30 @@ -85,6 +85,9 @@ BuildPreReq: OpenPKG, openpkg >= 20070603 BuildPreReq: php, php::with_pear = yes PreReq: kolabd +PreReq: Kolab_Format >= 1.0.1 +PreReq: Kolab_Server >= 0.5.0 +PreReq: Kolab_Storage >= 0.4.0 Obsoletes: horde-kolab, horde-kronolith-kolab, horde-imp-kolab, horde-ingo-kolab, horde-kolab-client, horde-dimp-kolab, horde-mimp-kolab, horde-mnemo-kolab, horde-nag-kolab, horde-passwd-kolab, horde-turba-kolab, PEAR-Net_Sieve From cvs at kolab.org Sun Apr 26 12:33:43 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 12:33:43 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Freebusy Kolab_FreeBusy.spec, 1.21, 1.22 Message-ID: <20090426103343.7AB08600832@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Freebusy In directory doto:/tmp/cvs-serv2570/php-kolab/Kolab_Freebusy Modified Files: Kolab_FreeBusy.spec Log Message: Fix dependencies. Index: Kolab_FreeBusy.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Freebusy/Kolab_FreeBusy.spec,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- Kolab_FreeBusy.spec 25 Apr 2009 19:24:45 -0000 1.21 +++ Kolab_FreeBusy.spec 26 Apr 2009 10:33:41 -0000 1.22 @@ -31,9 +31,9 @@ BuildPreReq: PEAR-Horde-Channel PreReq: OpenPKG, openpkg >= 20070603 PreReq: php, php::with_pear = yes -PreReq: Kolab_Format -PreReq: Kolab_Server -PreReq: Kolab_Storage +PreReq: Kolab_Format >= 1.0.1 +PreReq: Kolab_Server >= 0.5.0 +PreReq: Kolab_Storage >= 0.4.0 PreReq: Horde_Date PreReq: Horde_iCalendar From cvs at kolab.org Sun Apr 26 12:33:43 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 12:33:43 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Storage Kolab_Storage.spec,1.9,1.10 Message-ID: <20090426103343.81B3B600833@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Storage In directory doto:/tmp/cvs-serv2570/php-kolab/Kolab_Storage Modified Files: Kolab_Storage.spec Log Message: Fix dependencies. Index: Kolab_Storage.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Storage/Kolab_Storage.spec,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- Kolab_Storage.spec 25 Apr 2009 18:56:46 -0000 1.9 +++ Kolab_Storage.spec 26 Apr 2009 10:33:41 -0000 1.10 @@ -32,8 +32,8 @@ BuildPreReq: PEAR-Horde-Channel PreReq: OpenPKG, openpkg >= 20070603 PreReq: php, php::with_pear = yes -PreReq: Kolab_Format -PreReq: Kolab_Server +PreReq: Kolab_Format >= 1.0.1 +PreReq: Kolab_Server >= 0.5.0 PreReq: Horde_Auth PreReq: Horde_Cache PreReq: Horde_Group From cvs at kolab.org Sun Apr 26 13:39:07 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 13:39:07 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0/merges issue3439.patch, 1.2, NONE Message-ID: <20090426113907.C5494600170@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0/merges In directory doto:/tmp/cvs-serv7232/patches/horde-webmail/1.2.0/merges Removed Files: issue3439.patch Log Message: Merge the patch for issue 3439 into the kolab-webclient patch queue. --- issue3439.patch DELETED --- From cvs at kolab.org Sun Apr 26 13:39:07 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 13:39:07 +0200 (CEST) Subject: gunnar: server/kolab-webclient/patches/1.2.0/KOLAB t_turba_HK_GW_AllowAttributeDefaults.diff, NONE, 1.1 series, 1.5, 1.6 Message-ID: <20090426113907.C1B0C60016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB In directory doto:/tmp/cvs-serv7232/kolab-webclient/patches/1.2.0/KOLAB Modified Files: series Added Files: t_turba_HK_GW_AllowAttributeDefaults.diff Log Message: Merge the patch for issue 3439 into the kolab-webclient patch queue. --- NEW FILE: t_turba_HK_GW_AllowAttributeDefaults.diff --- From: Gunnar Wrobel

Subject: [PATCH] t/turba/HK/GW/AllowAttributeDefaults Allow attribute default values for the turba source configuration. kolab/issue3439 (FreeBusy display in web client and fbview depends on kolabHomeServer in LDAP) ISSUE: https://www.intevation.de/roundup/kolab/issue3439 STATUS: SUBMIT Signed-off-by: Gunnar Wrobel

--- horde-webmail/turba/config/sources.php | 3 ++- horde-webmail/turba/lib/Object.php | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/horde-webmail/turba/config/sources.php b/horde-webmail/turba/config/sources.php index d6acb36..ec46b43 100644 --- a/horde-webmail/turba/config/sources.php +++ b/horde-webmail/turba/config/sources.php @@ -332,7 +332,8 @@ if (!empty($GLOBALS['conf']['kolab']['enabled'])) { 'notes' => 'description', 'kolabHomeServer' => 'kolabHomeServer', 'freebusyUrl' => array('fields' => array('kolabHomeServer', 'email'), - 'format' => 'https://%s/freebusy/%s.xfb'), + 'format' => 'https://%s/freebusy/%s.xfb', + 'defaults' => array('kolabHomeServer' => $GLOBALS['conf']['kolab']['imap']['server'])), ), 'search' => array( 'name', diff --git a/horde-webmail/turba/lib/Object.php b/horde-webmail/turba/lib/Object.php index 57c9368..68b537d 100644 --- a/horde-webmail/turba/lib/Object.php +++ b/horde-webmail/turba/lib/Object.php @@ -115,7 +115,11 @@ class Turba_Object { is_array($this->driver->map[$attribute])) { $args = array(); foreach ($this->driver->map[$attribute]['fields'] as $field) { - $args[] = $this->getValue($field); + $value = $this->getValue($field); + if (empty($value) && isset($this->driver->map[$attribute]['defaults'][$field])) { + $value = $this->driver->map[$attribute]['defaults'][$field]; + } + $args[] = $value; } return trim(vsprintf($this->driver->map[$attribute]['format'], $args), " \t\n\r\0\x0B,"); } elseif (!isset($this->attributes[$attribute])) { -- tg: (d84b81d..) t/turba/HK/GW/AllowAttributeDefaults (depends on: t/Kolab_Storage/HK/GW/TestingFixes) -- TOPGIT patch commit log ======================= commit d3e51ed7f0eb792de6a84975e6ae51199ed1b7cb Author: Gunnar Wrobel

Date: Sun Apr 26 12:55:30 2009 +0200 Allow attribute default values for the turba source configuration. kolab/issue3439 (FreeBusy display in web client and fbview depends on kolabHomeServer in LDAP) ISSUE: https://www.intevation.de/roundup/kolab/issue3439 Index: series =================================================================== RCS file: /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB/series,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- series 26 Apr 2009 08:34:50 -0000 1.5 +++ series 26 Apr 2009 11:39:05 -0000 1.6 @@ -82,3 +82,4 @@ t_pear_HK_GW_AddNetLDAP2__.diff t_Kolab__Server_HK_GW_MappableAttributes__.diff t_Kolab__Storage_HK_GW_TestingFixes.diff +t_turba_HK_GW_AllowAttributeDefaults.diff From cvs at kolab.org Sun Apr 26 13:47:50 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 13:47:50 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0/merges series, 1.1, NONE t_framework_HK_SW_Kolab__Storage_DovecotSharedFolderOwner.diff, 1.1, NONE Message-ID: <20090426114750.6F64860016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0/merges In directory doto:/tmp/cvs-serv7583/patches/horde-webmail/1.2.0/merges Removed Files: series t_framework_HK_SW_Kolab__Storage_DovecotSharedFolderOwner.diff Log Message: Moved t_framework_HK_SW_Kolab__Storage_DovecotSharedFolderOwner.diff from the patches directory into Kolab_Storage. --- series DELETED --- --- t_framework_HK_SW_Kolab__Storage_DovecotSharedFolderOwner.diff DELETED --- From cvs at kolab.org Sun Apr 26 13:47:50 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 13:47:50 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Storage t_framework_HK_SW_Kolab__Storage_DovecotSharedFolderOwner.patch, NONE, 1.1 Kolab_Storage.spec, 1.10, 1.11 Message-ID: <20090426114750.73876600170@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Storage In directory doto:/tmp/cvs-serv7583/php-kolab/Kolab_Storage Modified Files: Kolab_Storage.spec Added Files: t_framework_HK_SW_Kolab__Storage_DovecotSharedFolderOwner.patch Log Message: Moved t_framework_HK_SW_Kolab__Storage_DovecotSharedFolderOwner.diff from the patches directory into Kolab_Storage. --- NEW FILE: t_framework_HK_SW_Kolab__Storage_DovecotSharedFolderOwner.patch --- diff -c a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php @@ -494,9 +494,13 @@ if (substr($matches[1], 0, 6) == 'INBOX/') { $this->_owner = Auth::getAuth(); } elseif (substr($matches[1], 0, 5) == 'user/') { - $domain = strstr(Auth::getAuth(), '@'); - $user_domain = isset($matches[4]) ? $matches[4] : $domain; - $this->_owner = $matches[2] . $user_domain; + if (strpos($matches[2], '@') === FALSE) { + $domain = strstr(Auth::getAuth(), '@'); + $user_domain = isset($matches[4]) ? $matches[4] : $domain; + $this->_owner = $matches[2] . $user_domain; + } else { + $this->_owner = $matches[2]; + } } elseif ($matches[1] == 'shared.') { $this->_owner = 'anonymous'; } Diff finished. Wed Feb 18 17:55:20 2009 Index: Kolab_Storage.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Storage/Kolab_Storage.spec,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- Kolab_Storage.spec 26 Apr 2009 10:33:41 -0000 1.10 +++ Kolab_Storage.spec 26 Apr 2009 11:47:48 -0000 1.11 @@ -21,6 +21,7 @@ # List of patches Patch0: Kolab_Storage_0.4.0_p1.patch Patch1: Kolab_Storage_0.4.0_p2.patch +Patch2: t_framework_HK_SW_Kolab__Storage_DovecotSharedFolderOwner.patch # Build Info Prefix: %{l_prefix} @@ -57,6 +58,7 @@ %patch -p0 -P 0 %patch -p0 -P 1 + %patch -p2 -P 2 cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml From cvs at kolab.org Sun Apr 26 15:03:33 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 15:03:33 +0200 (CEST) Subject: mathieu: server/kolabd/kolabd rfc2739.schema, 1.1.1.1, 1.2 ChangeLog, 1.249, 1.250 Message-ID: <20090426130333.6D96C600170@lists.intevation.de> Author: mathieu Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv10171 Modified Files: rfc2739.schema ChangeLog Log Message: Index: rfc2739.schema =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/rfc2739.schema,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- rfc2739.schema 23 Nov 2004 20:26:47 -0000 1.1.1.1 +++ rfc2739.schema 26 Apr 2009 13:03:31 -0000 1.2 @@ -1,9 +1,17 @@ -# (c) 2004 Martin Konold - # This schema is derived from RFC 2739 and may act as a substitute # when used with OpenLDAP as the original schema from RFC 2739 # is syntactically not accepted by OpenLDAP 2.2.14 # +# The conversion is from 2004 Martin Konold + +# Apart from short and obvious comments, the text of this file is purely +# a functional interface specification, which is not subject to IETF RFC +# license and is not copyrightable under US law. +# +# The license statement is retained below so as not to remove credit, but +# as best as we can determine, it is not applicable to the contents of +# this file. + # Copyright (C) The Internet Society (2000). All Rights Reserved. # # This document and translations of it may be copied and furnished to Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.249 retrieving revision 1.250 diff -u -d -r1.249 -r1.250 --- ChangeLog 26 Apr 2009 08:57:01 -0000 1.249 +++ ChangeLog 26 Apr 2009 13:03:31 -0000 1.250 @@ -1,5 +1,10 @@ 2009-04-26 Mathieu Parent + * rfc2739.schema: Fix kolab/issue3584 (rfc2739 is not copyrightable nor + licensable) + +2009-04-26 Mathieu Parent + * dist_conf/debian: Prepare kolabd for additional webclient configuration templates. From cvs at kolab.org Sun Apr 26 15:07:49 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 15:07:49 +0200 (CEST) Subject: mathieu: server release-notes.txt,1.440,1.441 Message-ID: <20090426130749.6DC27600170@lists.intevation.de> Author: mathieu Update of /kolabrepository/server In directory doto:/tmp/cvs-serv10520 Modified Files: release-notes.txt Log Message: Previous commit is kolab/issue3584 (rfc2739 is not copyrightable nor licensable) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.440 retrieving revision 1.441 diff -u -d -r1.440 -r1.441 --- release-notes.txt 26 Apr 2009 10:07:02 -0000 1.440 +++ release-notes.txt 26 Apr 2009 13:07:47 -0000 1.441 @@ -69,6 +69,7 @@ kolab/issue1382 (resmgr accepts concurrent overlapping invitations) kolab/issue2499 (Notification messages by the resource manager sould be localized) + kolab/issue3584 (rfc2739 is not copyrightable nor licensable) - kolab-webclient-1.2.0-2009???? From cvs at kolab.org Sun Apr 26 23:20:27 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 23:20:27 +0200 (CEST) Subject: gunnar: server/kolab-fbview/patches - New directory Message-ID: <20090426212027.E192D600833@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-fbview/patches In directory doto:/tmp/cvs-serv24354/kolab-fbview/patches Log Message: Directory /kolabrepository/server/kolab-fbview/patches added to the repository From cvs at kolab.org Sun Apr 26 23:20:37 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 23:20:37 +0200 (CEST) Subject: gunnar: server/kolab-fbview/patches/1.2.0 - New directory Message-ID: <20090426212037.85E97600834@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-fbview/patches/1.2.0 In directory doto:/tmp/cvs-serv24393/kolab-fbview/patches/1.2.0 Log Message: Directory /kolabrepository/server/kolab-fbview/patches/1.2.0 added to the repository From cvs at kolab.org Sun Apr 26 23:20:45 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 23:20:45 +0200 (CEST) Subject: gunnar: server/kolab-fbview/patches/1.2.0/FBVIEW - New directory Message-ID: <20090426212045.62A21600835@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-fbview/patches/1.2.0/FBVIEW In directory doto:/tmp/cvs-serv24408/kolab-fbview/patches/1.2.0/FBVIEW Log Message: Directory /kolabrepository/server/kolab-fbview/patches/1.2.0/FBVIEW added to the repository From cvs at kolab.org Sun Apr 26 23:27:14 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 23:27:14 +0200 (CEST) Subject: gunnar: server/kolab-fbview ChangeLog, 1.3, 1.4 Makefile, 1.4, 1.5 kolab-fbview.spec, 1.10, 1.11 Message-ID: <20090426212714.16977600834@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-fbview In directory doto:/tmp/cvs-serv24564/kolab-fbview Modified Files: ChangeLog Makefile kolab-fbview.spec Log Message: The package installation procedure was synchronized with the installation of the kolab-webclient. kolab/issue3293 (Big code duplication and code version messup: Horde libs in 2.2.1) kolab/issue3439 (FreeBusy display in web client and fbview depends on kolabHomeServer in LDAP) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-fbview/ChangeLog,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ChangeLog 27 Dec 2008 10:46:14 -0000 1.3 +++ ChangeLog 26 Apr 2009 21:27:12 -0000 1.4 @@ -1,3 +1,15 @@ +2009-04-26 Gunnar Wrobel

+ + * kolab-fbview.spec: + + The package installation procedure was synchronized with the + installation of the kolab-webclient. + + kolab/issue3293 (Big code duplication and code version messup: Horde + libs in 2.2.1) + kolab/issue3439 (FreeBusy display in web client and fbview depends on + kolabHomeServer in LDAP) + 2008-12-27 Gunnar Wrobel

* kolab-fbview.spec: kolab/issue3318 (kolab-fbview-1.2.0-20081212 Index: Makefile =================================================================== RCS file: /kolabrepository/server/kolab-fbview/Makefile,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Makefile 20 Nov 2008 17:46:57 -0000 1.4 +++ Makefile 26 Apr 2009 21:27:12 -0000 1.5 @@ -1,16 +1,53 @@ +# If home is unset this Makefile assumes the Kolab server installation +# resides in /kolab. If this is not the case this Makefile must be +# called using +# +# HOME="/mykolabroot" make TARGET +# +ifeq "x$(HOME)" "x" + HOME = /kolab +endif + +# If HOME is set to /root it is likely that somebody is calling this +# Makefile as root user. In this case this Makefile assumes that the +# Kolab server installation resides in /kolab. +# +# In the (hopefully) unlikely event that somebody really installed the +# Kolab server in /root this Makefile will fail. +ifeq "x$(HOME)" "x/root" + HOME = /kolab +endif + +# Set the location of the rpm binary ifeq "x$(RPM)" "x" RPM = $(HOME)/bin/openpkg rpm endif + +# Set the location for rpm source package installations ifeq "x$(KOLABRPMSRC)" "x" KOLABRPMSRC = $(HOME)/RPM/SRC endif + +# Set the location for rpm packages ifeq "x$(KOLABRPMPKG)" "x" KOLABRPMPKG = $(HOME)/RPM/PKG endif + +# Set the location for the rpm temporary directory ifeq "x$(KOLABRPMTMP)" "x" KOLABRPMTMP = $(HOME)/RPM/TMP endif +# Determine the suffix for binary packages on this system +ifeq "x$(PLATTAG)" "x" + PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) +endif + +# Determine the staging area for collecting new source rpms +ifeq "x$(STAGING)" "x" + STAGING = ../stage +endif + HORDE_NAME = $(shell grep "%define[ ]*V_horde_name" *.spec | sed -e "s/.*V_horde_name \([a-z-]*\).*/\1/") YEAR = $(shell grep "%define[ ]*V_year" *.spec | sed -e "s/.*V_year\s*\([0-9]*\).*/\1/") MONTH = $(shell grep "%define[ ]*V_month" *.spec | sed -e "s/.*V_month\s*\([0-9]*\).*/\1/") @@ -24,7 +61,8 @@ PASSWD_VERSION = $(shell grep "%define[ ]*V_passwd_version" *.spec | sed -e "s/.*V_passwd_version\s*\([0-9._a-z]*\).*/\1/") RELEASE = ${YEAR}${MONTH}${DAY} -PATCHES = ../patches/horde-webmail/$(VERSION)/horde-webmail-$(VERSION)_kolab_fbview_openpkg.patch +PATCHES_HORDE = ../kolab-webclient/patches/$(VERSION)/KOLAB +PATCHES_FBVIEW = ./patches/$(VERSION)/FBVIEW TEMPLATES = $(shell find . -name "*.template") CONFIGS = $(shell find . -name "*.php") @@ -44,12 +82,23 @@ rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm rm -rf *~ -$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec $(TEMPLATES) $(CONFIGS) ChangeLog +$(KOLABRPMSRC)/$(PACKAGE)/$(PACKAGE_0): test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_0)" - for PATCH in $(PATCHES); do \ - cp "$$PATCH" $(KOLABRPMSRC)/$(PACKAGE); done +.PHONY: $(KOLABRPMSRC)/$(PACKAGE)/series.patch +$(KOLABRPMSRC)/$(PACKAGE)/series.patch: $(KOLABRPMSRC)/$(PACKAGE)/$(PACKAGE_0) + rm -f $(KOLABRPMSRC)/$(PACKAGE)/series.patch + for PATCH in `cat $(PATCHES_HORDE)/series`; \ + do \ + cat $(PATCHES_HORDE)/$$PATCH >> $(KOLABRPMSRC)/$(PACKAGE)/series.patch; \ + done + for PATCH in `cat $(PATCHES_FBVIEW)/series`; \ + do \ + cat $(PATCHES_FBVIEW)/$$PATCH >> $(KOLABRPMSRC)/$(PACKAGE)/series.patch; \ + done + +$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec $(TEMPLATES) $(CONFIGS) ChangeLog $(KOLABRPMSRC)/$(PACKAGE)/series.patch cp $(PACKAGE).spec $(KOLABRPMSRC)/$(PACKAGE) @@ -70,3 +119,7 @@ cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . + +.PHONY: install +install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm Index: kolab-fbview.spec =================================================================== RCS file: /kolabrepository/server/kolab-fbview/kolab-fbview.spec,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- kolab-fbview.spec 19 Feb 2009 16:44:06 -0000 1.10 +++ kolab-fbview.spec 26 Apr 2009 21:27:12 -0000 1.11 @@ -1,9 +1,9 @@ # Versions %define V_horde_name horde-webmail %define V_package kolab-fbview -%define V_year 2008 -%define V_month 12 -%define V_day 27 +%define V_year 2009 +%define V_month 04 +%define V_day 26 %define V_version 1.2.0 %define V_source_version 1.2 %define V_date %{V_year}-%{V_month}-%{V_day} @@ -26,7 +26,7 @@ Source2: fbview-kronolith-kolab-conf.template # List of Patches -Patch0: http://kolab.org/cgi-bin/viewcvs-kolab.cgi/*checkout*/server/patches/horde-webmail/%{V_version}/horde-webmail-%{V_version}_kolab_fbview_openpkg.patch +Patch0: series.patch # Build Info Prefix: %{l_prefix} @@ -36,6 +36,9 @@ BuildPreReq: OpenPKG, openpkg >= 20070603 BuildPreReq: php, php::with_pear = yes PreReq: kolabd +PreReq: Kolab_Format >= 1.0.1 +PreReq: Kolab_Server >= 0.5.0 +PreReq: Kolab_Storage >= 0.4.0 Obsoletes: fbview-horde, fbview-kronolith @@ -51,7 +54,7 @@ %setup -q -c %{V_horde_name}-%{V_source_version} cd %{V_horde_name}-%{V_source_version} - %patch -p1 -P 0 + %patch -p2 -P 0 cd .. %build @@ -83,6 +86,27 @@ cd .. cp -r * $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/fbview/ + + # The following section removes libraries again so that we + # only need to patch/install them once in the system. + # + # kolab/issue3293 (Big code duplication and code version messup: Horde + # libs in 2.2.1) + + # Kolab_Format is in sync + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Format* + + # Kolab_Server is in sync + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/IMAP* + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Server* + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Session.php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Test/Server.php + + # Kolab_Storage is in sync + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Deprecated.php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Storage* + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Test/Storage.php + sqlite $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/fbview/storage/horde.db < scripts/sql/groupware.sql From cvs at kolab.org Sun Apr 26 23:27:14 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 23:27:14 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.441,1.442 Message-ID: <20090426212714.0FD28600833@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv24564 Modified Files: release-notes.txt Log Message: The package installation procedure was synchronized with the installation of the kolab-webclient. kolab/issue3293 (Big code duplication and code version messup: Horde libs in 2.2.1) kolab/issue3439 (FreeBusy display in web client and fbview depends on kolabHomeServer in LDAP) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.441 retrieving revision 1.442 diff -u -d -r1.441 -r1.442 --- release-notes.txt 26 Apr 2009 13:07:47 -0000 1.441 +++ release-notes.txt 26 Apr 2009 21:27:11 -0000 1.442 @@ -71,6 +71,13 @@ localized) kolab/issue3584 (rfc2739 is not copyrightable nor licensable) + - kolab-fbview-1.2.0-2009???? + + kolab/issue3293 (Big code duplication and code version messup: Horde + libs in 2.2.1) + kolab/issue3439 (FreeBusy display in web client and fbview depends on + kolabHomeServer in LDAP) + - kolab-webclient-1.2.0-2009???? kolab/issue3293 (Big code duplication and code version messup: Horde From cvs at kolab.org Sun Apr 26 23:27:14 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 23:27:14 +0200 (CEST) Subject: gunnar: server/kolab-webclient Makefile,1.8,1.9 Message-ID: <20090426212714.267E1600834@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv24564/kolab-webclient Modified Files: Makefile Log Message: The package installation procedure was synchronized with the installation of the kolab-webclient. kolab/issue3293 (Big code duplication and code version messup: Horde libs in 2.2.1) kolab/issue3439 (FreeBusy display in web client and fbview depends on kolabHomeServer in LDAP) Index: Makefile =================================================================== RCS file: /kolabrepository/server/kolab-webclient/Makefile,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- Makefile 25 Apr 2009 22:31:51 -0000 1.8 +++ Makefile 26 Apr 2009 21:27:12 -0000 1.9 @@ -91,7 +91,7 @@ .PHONY: $(KOLABRPMSRC)/$(PACKAGE)/series.patch $(KOLABRPMSRC)/$(PACKAGE)/series.patch: $(KOLABRPMSRC)/$(PACKAGE)/$(PACKAGE_0) rm -f $(KOLABRPMSRC)/$(PACKAGE)/series.patch - for PATCH in `cat $(PATCHES)/series | grep -v t_KOLAB`; \ + for PATCH in `cat $(PATCHES)/series`; \ do \ cat $(PATCHES)/$$PATCH >> $(KOLABRPMSRC)/$(PACKAGE)/series.patch; \ done From cvs at kolab.org Sun Apr 26 23:27:14 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 23:27:14 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0 Makefile, 1.4, NONE README, 1.2, NONE horde-webmail-1.2.0_kolab_fbview_openpkg.patch, 1.6, NONE Message-ID: <20090426212714.335F8600833@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0 In directory doto:/tmp/cvs-serv24564/patches/horde-webmail/1.2.0 Removed Files: Makefile README horde-webmail-1.2.0_kolab_fbview_openpkg.patch Log Message: The package installation procedure was synchronized with the installation of the kolab-webclient. kolab/issue3293 (Big code duplication and code version messup: Horde libs in 2.2.1) kolab/issue3439 (FreeBusy display in web client and fbview depends on kolabHomeServer in LDAP) --- Makefile DELETED --- --- README DELETED --- --- horde-webmail-1.2.0_kolab_fbview_openpkg.patch DELETED --- From cvs at kolab.org Sun Apr 26 23:27:14 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 26 Apr 2009 23:27:14 +0200 (CEST) Subject: gunnar: server/kolab-fbview/patches/1.2.0/FBVIEW series, NONE, 1.1 t_Fbview_HK_GW_Config.diff, NONE, 1.1 t_Prefs_HK_GW_Fbview.diff, NONE, 1.1 t_kronolith_HK_GW_FbviewMenu.diff, NONE, 1.1 Message-ID: <20090426212714.2304D600833@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-fbview/patches/1.2.0/FBVIEW In directory doto:/tmp/cvs-serv24564/kolab-fbview/patches/1.2.0/FBVIEW Added Files: series t_Fbview_HK_GW_Config.diff t_Prefs_HK_GW_Fbview.diff t_kronolith_HK_GW_FbviewMenu.diff Log Message: The package installation procedure was synchronized with the installation of the kolab-webclient. kolab/issue3293 (Big code duplication and code version messup: Horde libs in 2.2.1) kolab/issue3439 (FreeBusy display in web client and fbview depends on kolabHomeServer in LDAP) --- NEW FILE: series --- t_kronolith_HK_GW_FbviewMenu.diff t_Prefs_HK_GW_Fbview.diff t_Fbview_HK_GW_Config.diff --- NEW FILE: t_Fbview_HK_GW_Config.diff --- From: Gunnar Wrobel

Subject: [PATCH] t/Fbview/HK/GW/Config Configuration for the Kolab Fbview application. Signed-off-by: Gunnar Wrobel

--- horde-webmail/config/conf.php | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/horde-webmail/config/conf.php b/horde-webmail/config/conf.php index ae2acef..421ac6c 100644 --- a/horde-webmail/config/conf.php +++ b/horde-webmail/config/conf.php @@ -30,8 +30,7 @@ $conf['auth']['checkip'] = true; $conf['auth']['checkbrowser'] = true; $conf['auth']['alternate_login'] = false; $conf['auth']['redirect_on_logout'] = false; -$conf['auth']['params']['app'] = 'imp'; -$conf['auth']['driver'] = 'application'; +$conf['auth']['driver'] = 'kolab'; $conf['signup']['allow'] = false; $conf['log']['priority'] = PEAR_LOG_DEBUG; $conf['log']['ident'] = 'HORDE'; -- tg: (342156a..) t/Fbview/HK/GW/Config (depends on: t/Prefs/HK/GW/Fbview) -- TOPGIT patch commit log ======================= commit 5f20001f15a232b20c32ba3af1ff3e6522166d2b Author: Gunnar Wrobel

Date: Sun Apr 26 23:04:52 2009 +0200 Configuration for the Kolab Fbview application. commit 273c43662bf5b7c46466c42a20bfcd13d0855313 Author: Gunnar Wrobel

Date: Sun Apr 26 23:04:14 2009 +0200 Use the kolab auth driver. --- NEW FILE: t_Prefs_HK_GW_Fbview.diff --- From: Gunnar Wrobel

Subject: [PATCH] t/Prefs/HK/GW/Fbview Hard locking the preferences for the Kolab FBview system. This needs code changes as locking is not enough. Though by using the file based preferences system it should actually be enough if we lock the preferences. Should be fixed at some point. STATUS: HACK Signed-off-by: Gunnar Wrobel

--- horde-webmail/lib/Horde/Prefs.php | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/horde-webmail/lib/Horde/Prefs.php b/horde-webmail/lib/Horde/Prefs.php index efe7f8d..c0d2cd4 100644 --- a/horde-webmail/lib/Horde/Prefs.php +++ b/horde-webmail/lib/Horde/Prefs.php @@ -320,6 +320,16 @@ class Prefs { */ function getValue($pref, $convert = true) { + if ($pref == 'show_sidebar') { + return false; + } + if ($pref == 'initial_application') { + return 'kronolith'; + } + if ($pref == 'defaultview') { + return 'attendees'; + } + static $charset; if (!isset($charset)) { $charset = NLS::getCharset(); -- tg: (7a177c9..) t/Prefs/HK/GW/Fbview (depends on: t/kronolith/HK/GW/FbviewMenu) -- TOPGIT patch commit log ======================= commit 342156af90879e615215e34633035c83bd26a591 Author: Gunnar Wrobel

Date: Sun Apr 26 22:40:30 2009 +0200 Hard locking the preferences for the Kolab FBview system. This needs code changes as locking is not enough. Though by using the file based preferences system it should actually be enough if we lock the preferences. Should be fixed at some point. --- NEW FILE: t_kronolith_HK_GW_FbviewMenu.diff --- From: Gunnar Wrobel

Subject: [PATCH] t/kronolith/HK/GW/FbviewMenu Imported kronolith/HK-GW-Fbview_menu.patch from the mercurial patch queue. STATUS: HACK Signed-off-by: Gunnar Wrobel

--- horde-webmail/kronolith/attendees.php | 1 + horde-webmail/kronolith/calendars/create.php | 2 +- horde-webmail/kronolith/calendars/delete.php | 2 +- horde-webmail/kronolith/calendars/edit.php | 2 +- horde-webmail/kronolith/calendars/index.php | 2 +- horde-webmail/kronolith/calendars/remote_edit.php | 2 +- .../kronolith/calendars/remote_subscribe.php | 2 +- .../kronolith/calendars/remote_unsubscribe.php | 2 +- horde-webmail/kronolith/lib/Kronolith.php | 27 ++++++++++++++++++++ horde-webmail/kronolith/templates/fbview-menu.inc | 4 +++ 10 files changed, 39 insertions(+), 7 deletions(-) diff --git a/horde-webmail/kronolith/attendees.php b/horde-webmail/kronolith/attendees.php index e1b15c0..0812b56 100644 --- a/horde-webmail/kronolith/attendees.php +++ b/horde-webmail/kronolith/attendees.php @@ -274,6 +274,7 @@ Imple::factory('ContactAutoCompleter', array('triggerId' => 'newAttendees')); $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 --git a/horde-webmail/kronolith/calendars/create.php b/horde-webmail/kronolith/calendars/create.php index 4daffc3..dc831dd 100644 --- a/horde-webmail/kronolith/calendars/create.php +++ b/horde-webmail/kronolith/calendars/create.php @@ -39,6 +39,6 @@ if ($form->validate($vars)) { $title = $form->getTitle(); require KRONOLITH_TEMPLATES . '/common-header.inc'; -require KRONOLITH_TEMPLATES . '/menu.inc'; +require KRONOLITH_TEMPLATES . '/fbview-menu.inc'; echo $form->renderActive($form->getRenderer(), $vars, 'create.php', 'post'); require $registry->get('templates', 'horde') . '/common-footer.inc'; diff --git a/horde-webmail/kronolith/calendars/delete.php b/horde-webmail/kronolith/calendars/delete.php index cc9b357..b61f585 100644 --- a/horde-webmail/kronolith/calendars/delete.php +++ b/horde-webmail/kronolith/calendars/delete.php @@ -56,6 +56,6 @@ if ($form->validate(new Variables($_POST))) { $title = $form->getTitle(); require KRONOLITH_TEMPLATES . '/common-header.inc'; -require KRONOLITH_TEMPLATES . '/menu.inc'; +require KRONOLITH_TEMPLATES . '/fbview-menu.inc'; echo $form->renderActive($form->getRenderer(), $vars, 'delete.php', 'post'); require $registry->get('templates', 'horde') . '/common-footer.inc'; diff --git a/horde-webmail/kronolith/calendars/edit.php b/horde-webmail/kronolith/calendars/edit.php index 6357a2c..ba4cd8e 100644 --- a/horde-webmail/kronolith/calendars/edit.php +++ b/horde-webmail/kronolith/calendars/edit.php @@ -59,6 +59,6 @@ if (isset($params['fbrelevance'])) { } $title = $form->getTitle(); require KRONOLITH_TEMPLATES . '/common-header.inc'; -require KRONOLITH_TEMPLATES . '/menu.inc'; +require KRONOLITH_TEMPLATES . '/fbview-menu.inc'; echo $form->renderActive($form->getRenderer(), $vars, 'edit.php', 'post'); require $registry->get('templates', 'horde') . '/common-footer.inc'; diff --git a/horde-webmail/kronolith/calendars/index.php b/horde-webmail/kronolith/calendars/index.php index 09f7b3e..aca8137 100644 --- a/horde-webmail/kronolith/calendars/index.php +++ b/horde-webmail/kronolith/calendars/index.php @@ -73,6 +73,6 @@ Horde::addScriptFile('popup.js', 'horde', true); Horde::addScriptFile('tables.js', 'kronolith', true); $title = _("Manage Calendars"); require KRONOLITH_TEMPLATES . '/common-header.inc'; -require KRONOLITH_TEMPLATES . '/menu.inc'; +require KRONOLITH_TEMPLATES . '/fbview-menu.inc'; require KRONOLITH_TEMPLATES . '/calendar_list.php'; require $registry->get('templates', 'horde') . '/common-footer.inc'; diff --git a/horde-webmail/kronolith/calendars/remote_edit.php b/horde-webmail/kronolith/calendars/remote_edit.php index 7ecb9c4..9827331 100644 --- a/horde-webmail/kronolith/calendars/remote_edit.php +++ b/horde-webmail/kronolith/calendars/remote_edit.php @@ -68,6 +68,6 @@ $vars->set('username', $username); $vars->set('password', $password); $title = $form->getTitle(); require KRONOLITH_TEMPLATES . '/common-header.inc'; -require KRONOLITH_TEMPLATES . '/menu.inc'; +require KRONOLITH_TEMPLATES . '/fbview-menu.inc'; echo $form->renderActive($form->getRenderer(), $vars, 'remote_edit.php', 'post'); require $registry->get('templates', 'horde') . '/common-footer.inc'; diff --git a/horde-webmail/kronolith/calendars/remote_subscribe.php b/horde-webmail/kronolith/calendars/remote_subscribe.php index 70d769d..5f81ed9 100644 --- a/horde-webmail/kronolith/calendars/remote_subscribe.php +++ b/horde-webmail/kronolith/calendars/remote_subscribe.php @@ -39,6 +39,6 @@ if ($form->validate($vars)) { $title = $form->getTitle(); require KRONOLITH_TEMPLATES . '/common-header.inc'; -require KRONOLITH_TEMPLATES . '/menu.inc'; +require KRONOLITH_TEMPLATES . '/fbview-menu.inc'; echo $form->renderActive($form->getRenderer(), $vars, 'remote_subscribe.php', 'post'); require $registry->get('templates', 'horde') . '/common-footer.inc'; diff --git a/horde-webmail/kronolith/calendars/remote_unsubscribe.php b/horde-webmail/kronolith/calendars/remote_unsubscribe.php index 98f07d3..7bb5388 100644 --- a/horde-webmail/kronolith/calendars/remote_unsubscribe.php +++ b/horde-webmail/kronolith/calendars/remote_unsubscribe.php @@ -56,6 +56,6 @@ if ($form->validate(new Variables($_POST))) { $vars->set('url', $calendar['url']); $title = $form->getTitle(); require KRONOLITH_TEMPLATES . '/common-header.inc'; -require KRONOLITH_TEMPLATES . '/menu.inc'; +require KRONOLITH_TEMPLATES . '/fbview-menu.inc'; echo $form->renderActive($form->getRenderer(), $vars, 'remote_unsubscribe.php', 'post'); require $registry->get('templates', 'horde') . '/common-footer.inc'; diff --git a/horde-webmail/kronolith/lib/Kronolith.php b/horde-webmail/kronolith/lib/Kronolith.php index af37cc6..a9f0a28 100644 --- a/horde-webmail/kronolith/lib/Kronolith.php +++ b/horde-webmail/kronolith/lib/Kronolith.php @@ -2098,6 +2098,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/'), _("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. */ function _sortEventStartTime($a, $b) diff --git a/horde-webmail/kronolith/templates/fbview-menu.inc b/horde-webmail/kronolith/templates/fbview-menu.inc new file mode 100644 index 0000000..50626d0 --- /dev/null +++ b/horde-webmail/kronolith/templates/fbview-menu.inc @@ -0,0 +1,4 @@ +

+notify(array('listeners' => 'status')) ?> -- tg: (193d13d..) t/kronolith/HK/GW/FbviewMenu (depends on: t/KOLAB) -- TOPGIT patch commit log ======================= commit 7a177c9accd851d45c414f1ac63dc8a9a0cb35f1 Author: Gunnar Wrobel

Date: Sun Apr 26 22:34:11 2009 +0200 Imported kronolith/HK-GW-Fbview_menu.patch from the mercurial patch queue. From cvs at kolab.org Wed Apr 29 17:19:46 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 29 Apr 2009 17:19:46 +0200 (CEST) Subject: wilde: server/php-kolab/Kolab_Storage t_framework_HK_SW_Kolab__Storage_DovecotSharedFolderOwner.patch, 1.1, 1.2 Message-ID: <20090429151946.3E7CA60092D@lists.intevation.de> Author: wilde Update of /kolabrepository/server/php-kolab/Kolab_Storage In directory doto:/tmp/cvs-serv901 Modified Files: t_framework_HK_SW_Kolab__Storage_DovecotSharedFolderOwner.patch Log Message: Added explanation to the DovecotSharedFolderOwner patch. Index: t_framework_HK_SW_Kolab__Storage_DovecotSharedFolderOwner.patch =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Storage/t_framework_HK_SW_Kolab__Storage_DovecotSharedFolderOwner.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- t_framework_HK_SW_Kolab__Storage_DovecotSharedFolderOwner.patch 26 Apr 2009 11:47:48 -0000 1.1 +++ t_framework_HK_SW_Kolab__Storage_DovecotSharedFolderOwner.patch 29 Apr 2009 15:19:44 -0000 1.2 @@ -1,3 +1,19 @@ +In the Kolab Cyrus Imap server mailboxes shared by other users are +named following the pattern: + + user/USERNAME/MAILBOX + +Where USERNAME is the sharing users name _without_ the domain part. +Other IMAP servers however might specify the USERNAME including the +domain -- this is the case for example with some Dovecot setups. + +The current code assumes the behavior of Cyrus and adds the users +domain to construct the fully qualified owner of an shared folder. + +This Patch looks at the extracted USERNAME and if it already contains +an at-sign, if so no extra domain part is added. + + diff -c a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php From cvs at kolab.org Wed Apr 29 18:06:23 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 29 Apr 2009 18:06:23 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.398.2.33,1.398.2.34 Message-ID: <20090429160623.C03E9600922@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv1840 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: kolab/issue3568 (umlauts broken in automatically accepted events) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.33 retrieving revision 1.398.2.34 diff -u -d -r1.398.2.33 -r1.398.2.34 --- release-notes.txt 24 Apr 2009 11:00:41 -0000 1.398.2.33 +++ release-notes.txt 29 Apr 2009 16:06:21 -0000 1.398.2.34 @@ -58,6 +58,7 @@ - Kolab_Filter-0.1.4-20090418 kolab/issue3558 (whole-day events broken for resources) + kolab/issue3568 (umlauts broken in automatically accepted events) Packages in the OpenPKG based Kolab server release: From cvs at kolab.org Wed Apr 29 18:06:23 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 29 Apr 2009 18:06:23 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Filter issue3568.patch, NONE, 1.1.2.1 ChangeLog, 1.29.2.4, 1.29.2.5 Kolab_Filter.spec, 1.19.2.7, 1.19.2.8 Makefile, 1.8.2.4, 1.8.2.5 Message-ID: <20090429160623.D67D660092D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter In directory doto:/tmp/cvs-serv1840/php-kolab/Kolab_Filter Modified Files: Tag: kolab_2_2_branch ChangeLog Kolab_Filter.spec Makefile Added Files: Tag: kolab_2_2_branch issue3568.patch Log Message: kolab/issue3568 (umlauts broken in automatically accepted events) --- NEW FILE: issue3568.patch --- --- a/lib/Horde/Kolab/Filter/Base.php 2009-04-29 17:58:31.000000000 +0200 +++ b/lib/Horde/Kolab/Filter/Base.php 2009-04-29 17:59:09.000000000 +0200 @@ -243,6 +243,8 @@ Horde::logMessage(sprintf("Arguments: %s", print_r($values, true)), __FILE__, __LINE__, PEAR_LOG_DEBUG); + require_once 'Horde/NLS.php'; + NLS::setCharset('utf-8'); /* This is used as the default domain for unqualified adresses */ global $_SERVER; Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/ChangeLog,v retrieving revision 1.29.2.4 retrieving revision 1.29.2.5 diff -u -d -r1.29.2.4 -r1.29.2.5 --- ChangeLog 16 Apr 2009 18:55:03 -0000 1.29.2.4 +++ ChangeLog 29 Apr 2009 16:06:21 -0000 1.29.2.5 @@ -1,3 +1,8 @@ +2009-04-29 Gunnar Wrobel

+ + * Kolab_Filter.spec: kolab/issue3568 (umlauts broken in + automatically accepted events) + 2009-04-16 Gunnar Wrobel

* Kolab_Filter.spec: kolab/issue3558 (whole-day events broken for Index: Kolab_Filter.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Kolab_Filter.spec,v retrieving revision 1.19.2.7 retrieving revision 1.19.2.8 diff -u -d -r1.19.2.7 -r1.19.2.8 --- Kolab_Filter.spec 18 Apr 2009 20:46:59 -0000 1.19.2.7 +++ Kolab_Filter.spec 29 Apr 2009 16:06:21 -0000 1.19.2.8 @@ -1,7 +1,7 @@ # Variables %define V_package Kolab_Filter %define V_version 0.1.4 -%define V_release 20090418 +%define V_release 20090429 # Package Information Name: %{V_package} @@ -26,6 +26,7 @@ Patch4: revert_issue2499.patch Patch5: issue3521.patch Patch6: issue3558.patch +Patch7: issue3568.patch # Build Info Prefix: %{l_prefix} @@ -67,6 +68,7 @@ %patch -p3 -P 4 %patch -p3 -P 5 %patch -p1 -P 6 + %patch -p1 -P 7 cp %{S:1} . %build Index: Makefile =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Makefile,v retrieving revision 1.8.2.4 retrieving revision 1.8.2.5 diff -u -d -r1.8.2.4 -r1.8.2.5 --- Makefile 16 Apr 2009 18:55:03 -0000 1.8.2.4 +++ Makefile 29 Apr 2009 16:06:21 -0000 1.8.2.5 @@ -21,7 +21,7 @@ SOURCE_URL=http://pear.horde.org/get SOURCE_0=$(PACKAGE)-$(VERSION).tgz -EXTRA=ChangeLog issue3521.patch revert_issue2499.patch issue3435.patch issue3192.patch issue3441.patch issue3558.patch dovecotlda-quoting.patch package.xml +EXTRA=ChangeLog issue3521.patch revert_issue2499.patch issue3435.patch issue3192.patch issue3441.patch issue3558.patch issue3568.patch dovecotlda-quoting.patch package.xml .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm From cvs at kolab.org Thu Apr 30 21:22:06 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 30 Apr 2009 21:22:06 +0200 (CEST) Subject: richard: server/kolabd/kolabd ChangeLog,1.250,1.251 Message-ID: <20090430192206.D4634600941@lists.intevation.de> Author: richard Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv17581 Modified Files: ChangeLog Log Message: Prepare kolabd for additional webclient configuration templates. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.250 retrieving revision 1.251 diff -u -d -r1.250 -r1.251 --- ChangeLog 26 Apr 2009 13:03:31 -0000 1.250 +++ ChangeLog 30 Apr 2009 19:22:04 -0000 1.251 @@ -1,3 +1,8 @@ +2009-04-30 Richard Bos + + * dist_conf/suse: Prepare kolabd for additional webclient + configuration templates. + 2009-04-26 Mathieu Parent * rfc2739.schema: Fix kolab/issue3584 (rfc2739 is not copyrightable nor From cvs at kolab.org Thu Apr 30 21:22:06 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 30 Apr 2009 21:22:06 +0200 (CEST) Subject: richard: server/kolabd/kolabd/dist_conf suse,1.87,1.88 Message-ID: <20090430192206.D6AEC600945@lists.intevation.de> Author: richard Update of /kolabrepository/server/kolabd/kolabd/dist_conf In directory doto:/tmp/cvs-serv17581/dist_conf Modified Files: suse Log Message: Prepare kolabd for additional webclient configuration templates. Index: suse =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/suse,v retrieving revision 1.87 retrieving revision 1.88 diff -u -d -r1.87 -r1.88 --- suse 24 Feb 2009 22:16:03 -0000 1.87 +++ suse 30 Apr 2009 19:22:04 -0000 1.88 @@ -134,8 +134,15 @@ #webclient horde_cookie_path=/client +dimp_confdir=${webserver_document_root}/client/dimp/config horde_confdir=${webserver_document_root}/client/config +imp_confdir=${webserver_document_root}/client/imp/config +ingo_confdir=${webserver_document_root}/client/ingo/config kronolith_confdir=${webserver_document_root}/client/kronolith/config +mimp_confdir=${webserver_document_root}/client/mimp/config +mnemo_confdir=${webserver_document_root}/client/mnemo/config +nag_confdir=${webserver_document_root}/client/nag/config +turba_confdir=${webserver_document_root}/client/turba/config phpini_dir=${sysconfdir}/php5/cli phplibdir=${datadir}/php5 From cvs at kolab.org Sun May 3 21:40:16 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 3 May 2009 21:40:16 +0200 (CEST) Subject: richard: server/kolabd/kolabd ChangeLog,1.251,1.252 Message-ID: <20090503194016.96A2F600812@lists.intevation.de> Author: richard Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv12694 Modified Files: ChangeLog Log Message: Change @LDAPD@ to just openldap, kolab/issue3604 Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.251 retrieving revision 1.252 diff -u -d -r1.251 -r1.252 --- ChangeLog 30 Apr 2009 19:22:04 -0000 1.251 +++ ChangeLog 3 May 2009 19:40:14 -0000 1.252 @@ -1,3 +1,8 @@ +2009-05-03 Richard Bos + + * dist_conf/kolabsrv.in: Change @LDAPD@ to just openldap + kolab/issue3604 + 2009-04-30 Richard Bos * dist_conf/suse: Prepare kolabd for additional webclient From cvs at kolab.org Sun May 3 21:40:16 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 3 May 2009 21:40:16 +0200 (CEST) Subject: richard: server/kolabd/kolabd/dist_conf kolabsrv.in,1.17,1.18 Message-ID: <20090503194016.9811D600813@lists.intevation.de> Author: richard Update of /kolabrepository/server/kolabd/kolabd/dist_conf In directory doto:/tmp/cvs-serv12694/dist_conf Modified Files: kolabsrv.in Log Message: Change @LDAPD@ to just openldap, kolab/issue3604 Index: kolabsrv.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/kolabsrv.in,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- kolabsrv.in 17 Mar 2009 22:16:48 -0000 1.17 +++ kolabsrv.in 3 May 2009 19:40:14 -0000 1.18 @@ -36,6 +36,7 @@ # lsb_release -i | cut -f2 if [ -e /etc/SuSE-release ]; then case $sname in + apache) SERVICE="apache2" ;; openldap) SERVICE="@LDAPD@" ;; sasl) SERVICE="saslauthd" ;; imapd) SERVICE="cyrus" ;; @@ -45,6 +46,7 @@ esac elif [ -e /etc/debian_version ]; then case $sname in + apache) SERVICE="apache2" ;; openldap) SERVICE="@LDAPD@" ;; sasl) SERVICE="saslauthd" ;; imapd) SERVICE="kolab-cyrus" ;; @@ -65,7 +67,7 @@ # Use the service name as defined in the openpkg environment # Kolab installations on native distributions, should adap service names # with the function getServiceName -SERVICES="@LDAPD@ saslauthd spamd amavisd apache2 freshclam imapd postfix" +SERVICES="openldap sasl spamd amavisd apache freshclam imapd postfix" SERVICES="$SERVICES clamav kolabd" case $RC in From cvs at kolab.org Sun May 3 23:31:38 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 3 May 2009 23:31:38 +0200 (CEST) Subject: richard: server/kolabd/kolabd/dist_conf suse,1.88,1.89 Message-ID: <20090503213138.73704600812@lists.intevation.de> Author: richard Update of /kolabrepository/server/kolabd/kolabd/dist_conf In directory doto:/tmp/cvs-serv17018 Modified Files: suse Log Message: remove resmgr_filterdir as it is not used anymore (2007/11/22), see update 1.41 for the file dist_conf/common Index: suse =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/suse,v retrieving revision 1.88 retrieving revision 1.89 diff -u -d -r1.88 -r1.89 --- suse 30 Apr 2009 19:22:04 -0000 1.88 +++ suse 3 May 2009 21:31:36 -0000 1.89 @@ -162,7 +162,6 @@ resmgr_confdir=${sysconfdir}/kolab/filter resmgr_conffile_usr=kolab resmgr_conffile_grp=root -resmgr_filterdir=${localstatedir}/lib/kolab/kolab-filter/tmp resmgr_usr=root resmgr_grp=www resmgr_log_type=file From cvs at kolab.org Mon May 4 22:43:41 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 4 May 2009 22:43:41 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.398.2.34,1.398.2.35 Message-ID: <20090504204341.5315A600839@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv31587 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: kolab/issue3521 (kolabmailboxfilter does not accept mail for user+extension at example.com) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.34 retrieving revision 1.398.2.35 diff -u -d -r1.398.2.34 -r1.398.2.35 --- release-notes.txt 29 Apr 2009 16:06:21 -0000 1.398.2.34 +++ release-notes.txt 4 May 2009 20:43:39 -0000 1.398.2.35 @@ -57,6 +57,8 @@ - Kolab_Filter-0.1.4-20090418 + kolab/issue3521 (kolabmailboxfilter does not accept mail for + user+extension at example.com) kolab/issue3558 (whole-day events broken for resources) kolab/issue3568 (umlauts broken in automatically accepted events) From cvs at kolab.org Mon May 4 22:43:41 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 4 May 2009 22:43:41 +0200 (CEST) Subject: gunnar: server/php-kolab/Kolab_Filter ChangeLog, 1.29.2.5, 1.29.2.6 Kolab_Filter.spec, 1.19.2.8, 1.19.2.9 issue3521.patch, 1.1.2.1, 1.1.2.2 Message-ID: <20090504204341.55CD660083A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php-kolab/Kolab_Filter In directory doto:/tmp/cvs-serv31587/php-kolab/Kolab_Filter Modified Files: Tag: kolab_2_2_branch ChangeLog Kolab_Filter.spec issue3521.patch Log Message: kolab/issue3521 (kolabmailboxfilter does not accept mail for user+extension at example.com) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/ChangeLog,v retrieving revision 1.29.2.5 retrieving revision 1.29.2.6 diff -u -d -r1.29.2.5 -r1.29.2.6 --- ChangeLog 29 Apr 2009 16:06:21 -0000 1.29.2.5 +++ ChangeLog 4 May 2009 20:43:39 -0000 1.29.2.6 @@ -1,3 +1,8 @@ +2009-05-04 Gunnar Wrobel

+ + * Kolab_Filter.spec: kolab/issue3521 (kolabmailboxfilter does not + accept mail for user+extension at example.com) + 2009-04-29 Gunnar Wrobel

* Kolab_Filter.spec: kolab/issue3568 (umlauts broken in Index: Kolab_Filter.spec =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Kolab_Filter.spec,v retrieving revision 1.19.2.8 retrieving revision 1.19.2.9 diff -u -d -r1.19.2.8 -r1.19.2.9 --- Kolab_Filter.spec 29 Apr 2009 16:06:21 -0000 1.19.2.8 +++ Kolab_Filter.spec 4 May 2009 20:43:39 -0000 1.19.2.9 @@ -1,7 +1,7 @@ # Variables %define V_package Kolab_Filter %define V_version 0.1.4 -%define V_release 20090429 +%define V_release 20090504 # Package Information Name: %{V_package} Index: issue3521.patch =================================================================== RCS file: /kolabrepository/server/php-kolab/Kolab_Filter/Attic/issue3521.patch,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- issue3521.patch 1 Apr 2009 16:24:42 -0000 1.1.2.1 +++ issue3521.patch 4 May 2009 20:43:39 -0000 1.1.2.2 @@ -32,3 +32,28 @@ } foreach (array_keys($hosts) as $imap_host) { +--- a/framework/Kolab_Filter/lib/Horde/Kolab/Filter/Incoming.php.orig 2009-04-01 15:47:53.000000000 +0000 ++++ a/framework/Kolab_Filter/lib/Horde/Kolab/Filter/Incoming.php 2009-04-01 15:48:40.000000000 +0000 +@@ -132,13 +132,20 @@ + require_once 'Horde/Kolab/Resource.php'; + $newrecips = array(); + foreach ($this->_recipients as $recip) { ++ if (strpos($recip, '+')) { ++ list($local, $rest) = explode('+', $recip, 2); ++ list($rest, $domain) = explode('@', $recip, 2); ++ $resource = $local . '@' . $domain; ++ } else { ++ $resource = $recip; ++ } + Horde::logMessage(sprintf("Calling resmgr_filter(%s, %s, %s, %s)", + $this->_fqhostname, $this->_sender, +- $recip, $this->_tmpfile), __FILE__, __LINE__, ++ $resource, $this->_tmpfile), __FILE__, __LINE__, + PEAR_LOG_DEBUG); + $r = &new Kolab_Resource(); + $rc = $r->handleMessage($this->_fqhostname, $this->_sender, +- $recip, $this->_tmpfile); ++ $resource, $this->_tmpfile); + if (is_a($rc, 'PEAR_Error')) { + return $rc; + } else if ($rc === true) { From cvs at kolab.org Tue May 5 15:05:51 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 5 May 2009 15:05:51 +0200 (CEST) Subject: thomas: server release-notes.txt,1.442,1.443 Message-ID: <20090505130551.76E67600811@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv5646 Modified Files: release-notes.txt Log Message: Execute duplicate RUNONCHANGE commands only once. Part of kolab/issue1679 ([kolabconf] Update template META mechanism to support service restarts) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.442 retrieving revision 1.443 diff -u -d -r1.442 -r1.443 --- release-notes.txt 26 Apr 2009 21:27:11 -0000 1.442 +++ release-notes.txt 5 May 2009 13:05:49 -0000 1.443 @@ -90,6 +90,8 @@ Removed special handling of saslauthd, apache, amavisd and clamav. Do not handle postfix reload and postmap calls. + Execute duplicate RUNONCHANGE commands only once. + - php-5.2.8-20081209_kolab3 Activated the HASH and JSON modules. From cvs at kolab.org Tue May 5 15:05:51 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 5 May 2009 15:05:51 +0200 (CEST) Subject: thomas: server/perl-kolab/lib/Kolab Conf.pm,1.8,1.9 Message-ID: <20090505130551.79869600813@lists.intevation.de> Author: thomas Update of /kolabrepository/server/perl-kolab/lib/Kolab In directory doto:/tmp/cvs-serv5646/perl-kolab/lib/Kolab Modified Files: Conf.pm Log Message: Execute duplicate RUNONCHANGE commands only once. Part of kolab/issue1679 ([kolabconf] Update template META mechanism to support service restarts) Index: Conf.pm =================================================================== RCS file: /kolabrepository/server/perl-kolab/lib/Kolab/Conf.pm,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- Conf.pm 17 Mar 2009 16:46:31 -0000 1.8 +++ Conf.pm 5 May 2009 13:05:49 -0000 1.9 @@ -733,14 +733,18 @@ Kolab::log('T', 'Finished regenerating configuration files', KOLAB_DEBUG ); + my %cmds = (); foreach $key (keys %runonchange) { if (defined $templatehaschanged{$key}) { - Kolab::log('T', 'Actioning RUNONCHANGE for '.$key, KOLAB_DEBUG ); - my $cmd = $runonchange{$key}; - system($cmd); - Kolab::log('T', 'Executing command', KOLAB_DEBUG ); + Kolab::log('T', 'Queueing RUNONCHANGE for '.$key, KOLAB_DEBUG ); + $cmds{$runonchange{$key}} = 1; } + } + my $cmd; + foreach $cmd (keys %cmds) { + Kolab::log('T', 'Executing command: '.$cmd, KOLAB_DEBUG ); + system($cmd); } } From cvs at kolab.org Tue May 5 15:05:51 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 5 May 2009 15:05:51 +0200 (CEST) Subject: thomas: server/perl-kolab ChangeLog,1.63,1.64 Message-ID: <20090505130551.7836A600812@lists.intevation.de> Author: thomas Update of /kolabrepository/server/perl-kolab In directory doto:/tmp/cvs-serv5646/perl-kolab Modified Files: ChangeLog Log Message: Execute duplicate RUNONCHANGE commands only once. Part of kolab/issue1679 ([kolabconf] Update template META mechanism to support service restarts) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/perl-kolab/ChangeLog,v retrieving revision 1.63 retrieving revision 1.64 diff -u -d -r1.63 -r1.64 --- ChangeLog 16 Apr 2009 08:56:26 -0000 1.63 +++ ChangeLog 5 May 2009 13:05:49 -0000 1.64 @@ -1,3 +1,9 @@ +2009-05-05 Thomas Arendsen Hein + + * lib/Kolab/Conf.pm: Execute duplicate RUNONCHANGE commands only once. + Part of kolab/issue1679 ([kolabconf] Update template META mechanism to + support service restarts) + 2009-04-16 Gunnar Wrobel

* lib/Kolab/LDAP.pm (deleteObject): Workaround for kolab/issue3472. From cvs at kolab.org Thu May 7 18:13:35 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 7 May 2009 18:13:35 +0200 (CEST) Subject: thomas: server release-notes.txt,1.443,1.444 Message-ID: <20090507161335.6D1C3600169@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv5785 Modified Files: release-notes.txt Log Message: Use RUNONCHANGE mechanism to restart or reload imapd: cyrus.conf.template: openpkg rc imapd reload (see man cyrmaster) imapd.conf.template: openpkg rc imapd restart (reload and reconnect was not enough when I tested changing unixhierarchysep and annotation_definitions) imapd.annotation_definitions.template: openpkg rc imapd restart (reload and reconnect was not enough) imapd.group.template: nothing (a simple reconnect was enough, this is the old behaviour and changing this to restart to force new permissions would be overkill since then all users would be disconnected) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.443 retrieving revision 1.444 diff -u -d -r1.443 -r1.444 --- release-notes.txt 5 May 2009 13:05:49 -0000 1.443 +++ release-notes.txt 7 May 2009 16:13:33 -0000 1.444 @@ -64,7 +64,7 @@ Select random imap partition when creating new user mailboxes. Use RUNONCHANGE mechanism to restart or reload sasl, apache, amavisd, - clamav and postfix. + clamav, postfix and imapd. kolab/issue1382 (resmgr accepts concurrent overlapping invitations) kolab/issue2499 (Notification messages by the resource manager sould be From cvs at kolab.org Thu May 7 18:13:35 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 7 May 2009 18:13:35 +0200 (CEST) Subject: thomas: server/perl-kolab ChangeLog,1.64,1.65 Message-ID: <20090507161335.70D95600816@lists.intevation.de> Author: thomas Update of /kolabrepository/server/perl-kolab In directory doto:/tmp/cvs-serv5785/perl-kolab Modified Files: ChangeLog Log Message: Use RUNONCHANGE mechanism to restart or reload imapd: cyrus.conf.template: openpkg rc imapd reload (see man cyrmaster) imapd.conf.template: openpkg rc imapd restart (reload and reconnect was not enough when I tested changing unixhierarchysep and annotation_definitions) imapd.annotation_definitions.template: openpkg rc imapd restart (reload and reconnect was not enough) imapd.group.template: nothing (a simple reconnect was enough, this is the old behaviour and changing this to restart to force new permissions would be overkill since then all users would be disconnected) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/perl-kolab/ChangeLog,v retrieving revision 1.64 retrieving revision 1.65 diff -u -d -r1.64 -r1.65 --- ChangeLog 5 May 2009 13:05:49 -0000 1.64 +++ ChangeLog 7 May 2009 16:13:33 -0000 1.65 @@ -1,3 +1,8 @@ +2009-05-07 Thomas Arendsen Hein + + * lib/Kolab/Conf.pm: Removed special handling of imapd (except for + imapd.group.template) + 2009-05-05 Thomas Arendsen Hein * lib/Kolab/Conf.pm: Execute duplicate RUNONCHANGE commands only once. From cvs at kolab.org Thu May 7 18:13:35 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 7 May 2009 18:13:35 +0200 (CEST) Subject: thomas: server/kolabd/kolabd ChangeLog,1.252,1.253 Message-ID: <20090507161335.6F6D560080C@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv5785/kolabd/kolabd Modified Files: ChangeLog Log Message: Use RUNONCHANGE mechanism to restart or reload imapd: cyrus.conf.template: openpkg rc imapd reload (see man cyrmaster) imapd.conf.template: openpkg rc imapd restart (reload and reconnect was not enough when I tested changing unixhierarchysep and annotation_definitions) imapd.annotation_definitions.template: openpkg rc imapd restart (reload and reconnect was not enough) imapd.group.template: nothing (a simple reconnect was enough, this is the old behaviour and changing this to restart to force new permissions would be overkill since then all users would be disconnected) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.252 retrieving revision 1.253 diff -u -d -r1.252 -r1.253 --- ChangeLog 3 May 2009 19:40:14 -0000 1.252 +++ ChangeLog 7 May 2009 16:13:33 -0000 1.253 @@ -1,3 +1,9 @@ +2009-05-07 Thomas Arendsen Hein + + * templates/cyrus.conf.template.in, templates/imapd.conf.template.in, + templates/imapd.annotation_definitions.template.in: Use RUNONCHANGE + mechanism to reload or restart imapd. + 2009-05-03 Richard Bos * dist_conf/kolabsrv.in: Change @LDAPD@ to just openldap From cvs at kolab.org Thu May 7 18:13:35 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 7 May 2009 18:13:35 +0200 (CEST) Subject: thomas: server/perl-kolab/lib/Kolab Conf.pm,1.9,1.10 Message-ID: <20090507161335.725A0600829@lists.intevation.de> Author: thomas Update of /kolabrepository/server/perl-kolab/lib/Kolab In directory doto:/tmp/cvs-serv5785/perl-kolab/lib/Kolab Modified Files: Conf.pm Log Message: Use RUNONCHANGE mechanism to restart or reload imapd: cyrus.conf.template: openpkg rc imapd reload (see man cyrmaster) imapd.conf.template: openpkg rc imapd restart (reload and reconnect was not enough when I tested changing unixhierarchysep and annotation_definitions) imapd.annotation_definitions.template: openpkg rc imapd restart (reload and reconnect was not enough) imapd.group.template: nothing (a simple reconnect was enough, this is the old behaviour and changing this to restart to force new permissions would be overkill since then all users would be disconnected) Index: Conf.pm =================================================================== RCS file: /kolabrepository/server/perl-kolab/lib/Kolab/Conf.pm,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- Conf.pm 5 May 2009 13:05:49 -0000 1.9 +++ Conf.pm 7 May 2009 16:13:33 -0000 1.10 @@ -288,8 +288,6 @@ if ($rc) { if ($cfg =~ /openldap/) { $haschanged{'slapd'} = 1; - } elsif ($cfg =~ /imapd/) { - $haschanged{'imapd'} = 1; } $templatehaschanged{$tmpl} = 1; @@ -812,12 +810,6 @@ if ($haschanged{'slapd'}) { &Kolab::log('K', 'Restarting OpenLDAP...'); system("$Kolab::config{'KOLABRC'} rc openldap restart &"); - } - - if ($haschanged{'imapd'}) { - &Kolab::log('K', 'Restarting imapd...'); - # Would it be enough with a reload here? /steffen - system("$Kolab::config{'KOLABRC'} rc imapd restart"); } %Kolab::Conf::haschanged = (); From cvs at kolab.org Thu May 7 18:13:35 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 7 May 2009 18:13:35 +0200 (CEST) Subject: thomas: server/kolabd/kolabd/templates cyrus.conf.template.in, 1.7, 1.8 imapd.annotation_definitions.template.in, 1.5, 1.6 imapd.conf.template.in, 1.16, 1.17 Message-ID: <20090507161335.73CF5600830@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv5785/kolabd/kolabd/templates Modified Files: cyrus.conf.template.in imapd.annotation_definitions.template.in imapd.conf.template.in Log Message: Use RUNONCHANGE mechanism to restart or reload imapd: cyrus.conf.template: openpkg rc imapd reload (see man cyrmaster) imapd.conf.template: openpkg rc imapd restart (reload and reconnect was not enough when I tested changing unixhierarchysep and annotation_definitions) imapd.annotation_definitions.template: openpkg rc imapd restart (reload and reconnect was not enough) imapd.group.template: nothing (a simple reconnect was enough, this is the old behaviour and changing this to restart to force new permissions would be overkill since then all users would be disconnected) Index: cyrus.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/cyrus.conf.template.in,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- cyrus.conf.template.in 4 Apr 2008 19:33:30 -0000 1.7 +++ cyrus.conf.template.in 7 May 2009 16:13:33 -0000 1.8 @@ -2,6 +2,7 @@ TARGET=@imap_confdir@/cyrus.conf PERMISSIONS=0640 OWNERSHIP=@imap_usr@:@imap_grp@ +RUNONCHANGE=@KOLABRC@ rc imapd reload KOLAB_META_END # (c) 2003 Tassilo Erlewein # (c) 2003 Martin Konold Index: imapd.annotation_definitions.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/imapd.annotation_definitions.template.in,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- imapd.annotation_definitions.template.in 22 Apr 2008 14:03:34 -0000 1.5 +++ imapd.annotation_definitions.template.in 7 May 2009 16:13:33 -0000 1.6 @@ -2,6 +2,7 @@ TARGET=@imap_confdir@/imapd.annotation_definitions PERMISSIONS=0640 OWNERSHIP=@imap_usr@:@imap_grp@ +RUNONCHANGE=@KOLABRC@ rc imapd restart KOLAB_META_END /vendor/kolab/folder-test,mailbox,string,backend,value.shared value.priv,a /vendor/kolab/folder-type,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.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- imapd.conf.template.in 9 Jul 2008 14:46:15 -0000 1.16 +++ imapd.conf.template.in 7 May 2009 16:13:33 -0000 1.17 @@ -2,6 +2,7 @@ TARGET=@imap_confdir@/imapd.conf PERMISSIONS=0640 OWNERSHIP=@imap_usr@:@imap_grp@ +RUNONCHANGE=@KOLABRC@ rc imapd restart KOLAB_META_END # (c) 2003 Tassilo Erlewein # (c) 2003-2006 Martin Konold From cvs at kolab.org Thu May 7 20:42:39 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 7 May 2009 20:42:39 +0200 (CEST) Subject: richard: server/perl-kolab ChangeLog,1.65,1.66 Message-ID: <20090507184239.144A0600169@lists.intevation.de> Author: richard Update of /kolabrepository/server/perl-kolab In directory doto:/tmp/cvs-serv12241 Modified Files: ChangeLog Log Message: Change $Kolab::config{'LDAPD'} to just openldap, see kolab/issue3604 kolabsrv (kolabd dist_conf/kolabsrv.in) will take care for the conversion, from an openpkg service name to the correct service name for other distributions Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/perl-kolab/ChangeLog,v retrieving revision 1.65 retrieving revision 1.66 diff -u -d -r1.65 -r1.66 --- ChangeLog 7 May 2009 16:13:33 -0000 1.65 +++ ChangeLog 7 May 2009 18:42:37 -0000 1.66 @@ -1,3 +1,8 @@ +2009-05-07 Richard Bos + + * sbin/kolab_bootstrap.in: Change $Kolab::config{'LDAPD'} to just + openldap, see kolab/issue3604 + 2009-05-07 Thomas Arendsen Hein * lib/Kolab/Conf.pm: Removed special handling of imapd (except for From cvs at kolab.org Thu May 7 20:42:39 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 7 May 2009 20:42:39 +0200 (CEST) Subject: richard: server/perl-kolab/sbin kolab_bootstrap.in,1.8,1.9 Message-ID: <20090507184239.1D448600809@lists.intevation.de> Author: richard Update of /kolabrepository/server/perl-kolab/sbin In directory doto:/tmp/cvs-serv12241/sbin Modified Files: kolab_bootstrap.in Log Message: Change $Kolab::config{'LDAPD'} to just openldap, see kolab/issue3604 kolabsrv (kolabd dist_conf/kolabsrv.in) will take care for the conversion, from an openpkg service name to the correct service name for other distributions Index: kolab_bootstrap.in =================================================================== RCS file: /kolabrepository/server/perl-kolab/sbin/kolab_bootstrap.in,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- kolab_bootstrap.in 27 Mar 2009 11:45:29 -0000 1.8 +++ kolab_bootstrap.in 7 May 2009 18:42:37 -0000 1.9 @@ -612,7 +612,7 @@ if ($ldap_uri =~ /127\.0\.0\.1/ || $ldap_uri =~ /localhost/) { print "\nkill temporary slapd\n\n"; - system("$Kolab::config{'KOLABRC'} rc $Kolab::config{'LDAPD'} stop"); + system("$Kolab::config{'KOLABRC'} rc openldap stop"); sleep 1; # actually race should be impossible system("killall -9 slapd >/dev/null 2>&1"); } @@ -665,7 +665,7 @@ ##### Slave server setup print "stop running slapd (if any)\n"; - kolab_system("$Kolab::config{'KOLABRC'} rc $Kolab::config{'LDAPD'} stop"); + kolab_system("$Kolab::config{'KOLABRC'} rc openldap stop"); # Make sure that no rogue demons are running tryConnect( '127.0.0.1', 389 ) && die "A process is already listening to port 389 (ldap)\n" @@ -787,9 +787,9 @@ is copied over to this slave. Please make sure that this slave is entered into the list of kolabhosts on the master before proceeding. EOS - kolab_system("ssh -C $master_host \'$Kolab::config{'KOLABRC'} rc $Kolab::config{'LDAPD'} stop". + kolab_system("ssh -C $master_host \'$Kolab::config{'KOLABRC'} rc openldap stop". " && $Kolab::config{'TAR'} -C $Kolab::config{'ldapserver_statedir'} -pcf - openldap-data". - " && $Kolab::config{'KOLABRC'} rc $Kolab::config{'LDAPD'} start\'". + " && $Kolab::config{'KOLABRC'} rc openldap start\'". " | $Kolab::config{'TAR'} -C $Kolab::config{'ldapserver_statedir'} -pxf -"); } From cvs at kolab.org Fri May 8 15:36:29 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 8 May 2009 15:36:29 +0200 (CEST) Subject: thomas: server release-notes.txt,1.398.2.35,1.398.2.36 Message-ID: <20090508133629.44339600804@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv20050 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: Updated release notes Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.35 retrieving revision 1.398.2.36 diff -u -d -r1.398.2.35 -r1.398.2.36 --- release-notes.txt 4 May 2009 20:43:39 -0000 1.398.2.35 +++ release-notes.txt 8 May 2009 13:36:26 -0000 1.398.2.36 @@ -55,7 +55,7 @@ kolab/issue1340 (RFC: restrict users to sending mail only to internal recipients) - - Kolab_Filter-0.1.4-20090418 + - Kolab_Filter-0.1.4-20090504 kolab/issue3521 (kolabmailboxfilter does not accept mail for user+extension at example.com) From cvs at kolab.org Sat May 9 10:46:40 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 9 May 2009 10:46:40 +0200 (CEST) Subject: mathieu: server release-notes.txt,1.444,1.445 Message-ID: <20090509084640.0F47D600168@lists.intevation.de> Author: mathieu Update of /kolabrepository/server In directory doto:/tmp/cvs-serv32430 Modified Files: release-notes.txt Log Message: kolab/issue3490 (Please include dist_conf/kolabsrv.in in source packages) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.444 retrieving revision 1.445 diff -u -d -r1.444 -r1.445 --- release-notes.txt 7 May 2009 16:13:33 -0000 1.444 +++ release-notes.txt 9 May 2009 08:46:37 -0000 1.445 @@ -69,6 +69,8 @@ kolab/issue1382 (resmgr accepts concurrent overlapping invitations) kolab/issue2499 (Notification messages by the resource manager sould be localized) + kolab/issue3490 (Please include dist_conf/kolabsrv.in in source + packages) kolab/issue3584 (rfc2739 is not copyrightable nor licensable) - kolab-fbview-1.2.0-2009???? From cvs at kolab.org Sat May 9 10:46:40 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 9 May 2009 10:46:40 +0200 (CEST) Subject: mathieu: server/kolabd/kolabd ChangeLog, 1.253, 1.254 Makefile.am, 1.51, 1.52 Message-ID: <20090509084640.1190C600806@lists.intevation.de> Author: mathieu Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv32430/kolabd/kolabd Modified Files: ChangeLog Makefile.am Log Message: kolab/issue3490 (Please include dist_conf/kolabsrv.in in source packages) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.253 retrieving revision 1.254 diff -u -d -r1.253 -r1.254 --- ChangeLog 7 May 2009 16:13:33 -0000 1.253 +++ ChangeLog 9 May 2009 08:46:37 -0000 1.254 @@ -1,3 +1,8 @@ +2009-05-09 Mathieu Parent + + * Makefile.am: include dist_conf/kolabsrv.in in source packages + (kolab/issue3490). + 2009-05-07 Thomas Arendsen Hein * templates/cyrus.conf.template.in, templates/imapd.conf.template.in, Index: Makefile.am =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/Makefile.am,v retrieving revision 1.51 retrieving revision 1.52 diff -u -d -r1.51 -r1.52 --- Makefile.am 22 Feb 2009 20:04:25 -0000 1.51 +++ Makefile.am 9 May 2009 08:46:37 -0000 1.52 @@ -183,6 +183,7 @@ EXTRA_DIST += dist_conf/common \ dist_conf/debian \ dist_conf/kolab \ + dist_conf/kolabsrv \ dist_conf/mandriva \ dist_conf/suse From cvs at kolab.org Mon May 11 15:05:34 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 11 May 2009 15:05:34 +0200 (CEST) Subject: gunnar: server/kolab-webclient ChangeLog, 1.14, 1.15 kolab-webclient.spec, 1.30, 1.31 Message-ID: <20090511130534.DC02A60082A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv14488/kolab-webclient Modified Files: ChangeLog kolab-webclient.spec Log Message: kolab/issue3293 (Big code duplication and code version messup: Horde libs in 2.2.1) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webclient/ChangeLog,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- ChangeLog 26 Apr 2009 09:48:33 -0000 1.14 +++ ChangeLog 11 May 2009 13:05:32 -0000 1.15 @@ -1,3 +1,13 @@ +2009-05-11 Gunnar Wrobel

+ + * kolab-webclient.spec: + + Use Archive_Tar-1.3.2 from /kolab/lib/php + Use Structures_Graph-1.0.2 from /kolab/lib/php + Use Console_Getopt-1.2.3 from /kolab/lib/php + Use XML_Util-1.2.1 from /kolab/lib/php + Use PEAR-1.7.2 from /kolab/lib/php + 2009-04-26 Gunnar Wrobel

* kolab-webclient.spec: Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- kolab-webclient.spec 26 Apr 2009 10:33:41 -0000 1.30 +++ kolab-webclient.spec 11 May 2009 13:05:32 -0000 1.31 @@ -131,6 +131,22 @@ # kolab/issue3293 (Big code duplication and code version messup: Horde # libs in 2.2.1) + # Use Archive_Tar-1.3.2 from /kolab/lib/php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/pear/Archive/Tar.php + + # Use Structures_Graph-1.0.2 from /kolab/lib/php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/pear/Structures + + # Use Console_Getopt-1.2.3 from /kolab/lib/php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/pear/Console/Getopt.php + + # Use XML_Util-1.2.1 from /kolab/lib/php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/pear/XML/Util.php + + # Use PEAR-1.7.2 from /kolab/lib/php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/pear/OS/Guess.php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/pear/PEAR + # Kolab_Format is in sync rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Format* From cvs at kolab.org Mon May 11 15:05:34 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 11 May 2009 15:05:34 +0200 (CEST) Subject: gunnar: server/kolab-fbview ChangeLog, 1.4, 1.5 kolab-fbview.spec, 1.11, 1.12 Message-ID: <20090511130534.D99FA600828@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-fbview In directory doto:/tmp/cvs-serv14488/kolab-fbview Modified Files: ChangeLog kolab-fbview.spec Log Message: kolab/issue3293 (Big code duplication and code version messup: Horde libs in 2.2.1) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-fbview/ChangeLog,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ChangeLog 26 Apr 2009 21:27:12 -0000 1.4 +++ ChangeLog 11 May 2009 13:05:32 -0000 1.5 @@ -1,3 +1,13 @@ +2009-05-11 Gunnar Wrobel

+ + * kolab-fbview.spec: + + Use Archive_Tar-1.3.2 from /kolab/lib/php + Use Structures_Graph-1.0.2 from /kolab/lib/php + Use Console_Getopt-1.2.3 from /kolab/lib/php + Use XML_Util-1.2.1 from /kolab/lib/php + Use PEAR-1.7.2 from /kolab/lib/php + 2009-04-26 Gunnar Wrobel

* kolab-fbview.spec: Index: kolab-fbview.spec =================================================================== RCS file: /kolabrepository/server/kolab-fbview/kolab-fbview.spec,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- kolab-fbview.spec 26 Apr 2009 21:27:12 -0000 1.11 +++ kolab-fbview.spec 11 May 2009 13:05:32 -0000 1.12 @@ -93,6 +93,22 @@ # kolab/issue3293 (Big code duplication and code version messup: Horde # libs in 2.2.1) + # Use Archive_Tar-1.3.2 from /kolab/lib/php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/pear/Archive/Tar.php + + # Use Structures_Graph-1.0.2 from /kolab/lib/php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/pear/Structures + + # Use Console_Getopt-1.2.3 from /kolab/lib/php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/pear/Console/Getopt.php + + # Use XML_Util-1.2.1 from /kolab/lib/php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/pear/XML/Util.php + + # Use PEAR-1.7.2 from /kolab/lib/php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/pear/OS/Guess.php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/pear/PEAR + # Kolab_Format is in sync rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Format* From cvs at kolab.org Mon May 11 17:58:16 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 11 May 2009 17:58:16 +0200 (CEST) Subject: gunnar: server/kolab-webclient ChangeLog, 1.15, 1.16 kolab-webclient.spec, 1.31, 1.32 Message-ID: <20090511155816.9E25D60082A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv20037/kolab-webclient Modified Files: ChangeLog kolab-webclient.spec Log Message: Update Horde_Util to 0.1.0dev20090501 and adapt kolab-webclient and kolab-fbview to use this package. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webclient/ChangeLog,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- ChangeLog 11 May 2009 13:05:32 -0000 1.15 +++ ChangeLog 11 May 2009 15:58:14 -0000 1.16 @@ -2,6 +2,8 @@ * kolab-webclient.spec: + Use Horde_Util-0.1.0dev20090501 from /kolab/lib/php + Use Archive_Tar-1.3.2 from /kolab/lib/php Use Structures_Graph-1.0.2 from /kolab/lib/php Use Console_Getopt-1.2.3 from /kolab/lib/php Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- kolab-webclient.spec 11 May 2009 13:05:32 -0000 1.31 +++ kolab-webclient.spec 11 May 2009 15:58:14 -0000 1.32 @@ -147,6 +147,12 @@ rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/pear/OS/Guess.php rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/pear/PEAR + # Use Horde_Util-0.1.0dev20090501 from /kolab/lib/php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Array.php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/String.php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Util.php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Variables.php + # Kolab_Format is in sync rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Format* From cvs at kolab.org Mon May 11 17:58:16 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 11 May 2009 17:58:16 +0200 (CEST) Subject: gunnar: server/kolab-fbview ChangeLog, 1.5, 1.6 kolab-fbview.spec, 1.12, 1.13 Message-ID: <20090511155816.9CB13600829@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-fbview In directory doto:/tmp/cvs-serv20037/kolab-fbview Modified Files: ChangeLog kolab-fbview.spec Log Message: Update Horde_Util to 0.1.0dev20090501 and adapt kolab-webclient and kolab-fbview to use this package. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-fbview/ChangeLog,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- ChangeLog 11 May 2009 13:05:32 -0000 1.5 +++ ChangeLog 11 May 2009 15:58:14 -0000 1.6 @@ -2,6 +2,8 @@ * kolab-fbview.spec: + Use Horde_Util-0.1.0dev20090501 from /kolab/lib/php + Use Archive_Tar-1.3.2 from /kolab/lib/php Use Structures_Graph-1.0.2 from /kolab/lib/php Use Console_Getopt-1.2.3 from /kolab/lib/php Index: kolab-fbview.spec =================================================================== RCS file: /kolabrepository/server/kolab-fbview/kolab-fbview.spec,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- kolab-fbview.spec 11 May 2009 13:05:32 -0000 1.12 +++ kolab-fbview.spec 11 May 2009 15:58:14 -0000 1.13 @@ -109,6 +109,12 @@ rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/pear/OS/Guess.php rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/pear/PEAR + # Use Horde_Util-0.1.0dev20090501 from /kolab/lib/php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Array.php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/String.php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Util.php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Variables.php + # Kolab_Format is in sync rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Format* From cvs at kolab.org Mon May 11 17:58:16 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 11 May 2009 17:58:16 +0200 (CEST) Subject: gunnar: server/pear/Horde_Util ChangeLog, 1.2, 1.3 Horde_Util.spec, 1.6, 1.7 Makefile, 1.4, 1.5 Message-ID: <20090511155816.9B6E2600828@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Util In directory doto:/tmp/cvs-serv20037/pear/Horde_Util Modified Files: ChangeLog Horde_Util.spec Makefile Log Message: Update Horde_Util to 0.1.0dev20090501 and adapt kolab-webclient and kolab-fbview to use this package. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/pear/Horde_Util/ChangeLog,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- ChangeLog 26 Sep 2008 05:32:58 -0000 1.2 +++ ChangeLog 11 May 2009 15:58:14 -0000 1.3 @@ -1,3 +1,7 @@ +2009-05-11 Gunnar Wrobel

+ + * Horde_Util.spec: Update to the HORDE_3_3_4 release tag. + 2008-09-25 Gunnar Wrobel

* Horde_Util.spec: Update to 0.1.0. Index: Horde_Util.spec =================================================================== RCS file: /kolabrepository/server/pear/Horde_Util/Horde_Util.spec,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Horde_Util.spec 9 Dec 2008 20:32:47 -0000 1.6 +++ Horde_Util.spec 11 May 2009 15:58:14 -0000 1.7 @@ -1,8 +1,9 @@ # Variables +%define V_horde_pkgdir Util %define V_horde_package Util %define V_package Horde_Util -%define V_version 0.1.0 -%define V_release 20081209 +%define V_version 0.1.0dev20090501 +%define V_release 1 # Package Information Name: %{V_package} Index: Makefile =================================================================== RCS file: /kolabrepository/server/pear/Horde_Util/Makefile,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Makefile 26 Sep 2008 05:32:58 -0000 1.4 +++ Makefile 11 May 2009 15:58:14 -0000 1.5 @@ -1,41 +1,155 @@ -HORDE_PACKAGE = $(shell grep "%define[ ]*V_horde_package" *.spec | sed -e "s/.*V_horde_package \([A-Za-z\-\_]*\).*/\1/") -PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") -RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") +# If home is unset this Makefile assumes the Kolab server installation +# resides in /kolab. If this is not the case this Makefile must be +# called using +# +# HOME="/mykolabroot" make TARGET +# +ifeq "x$(HOME)" "x" + HOME = /kolab +endif + +# If HOME is set to /root it is likely that somebody is calling this +# Makefile as root user. In this case this Makefile assumes that the +# Kolab server installation resides in /kolab. +# +# In the (hopefully) unlikely event that somebody really installed the +# Kolab server in /root this Makefile will fail. +ifeq "x$(HOME)" "x/root" + HOME = /kolab +endif +# Set the location of the rpm binary ifeq "x$(RPM)" "x" RPM = $(HOME)/bin/openpkg rpm endif + +# Set the location for rpm source package installations ifeq "x$(KOLABRPMSRC)" "x" KOLABRPMSRC = $(HOME)/RPM/SRC endif + +# Set the location for rpm packages ifeq "x$(KOLABRPMPKG)" "x" KOLABRPMPKG = $(HOME)/RPM/PKG endif + +# Set the location for the rpm temporary directory ifeq "x$(KOLABRPMTMP)" "x" KOLABRPMTMP = $(HOME)/RPM/TMP endif -SOURCE_0=http://pear.horde.org/get/$(HORDE_PACKAGE)-$(VERSION).tgz +# Determine the suffix for binary packages on this system +ifeq "x$(PLATTAG)" "x" + PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) +endif + +# Determine the staging area for collecting new source rpms +ifeq "x$(STAGING)" "x" + STAGING = ../../stage +endif + +# Determine the horde package name from the *.spec file +HORDE_PKGDIR = $(shell grep "%define[ ]*V_horde_pkgdir" *.spec | sed -e "s/.*V_horde_pkgdir \([A-Za-z\-\_]*\).*/\1/") + +# Determine the horde package name from the *.spec file +HORDE_PACKAGE = $(shell grep "%define[ ]*V_horde_package" *.spec | sed -e "s/.*V_horde_package \([A-Za-z\-\_]*\).*/\1/") + +# Determine the package name from the *.spec file +PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") + +# Determine the package version from the *.spec file +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.a-z]*\).*/\1/") + +# Determine the release number from the *.spec file +RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") + +# Determine the download url for the PEAR package from the *.spec file +SOURCE_URL=$(shell grep "%define[ ]*V_sourceurl" *.spec | sed -e "s/.*V_sourceurl\s*\(.*\)/\1/") + +# Get the list of patches if there are any in this directory +PATCHES = $(shell ls *.patch 2> /dev/null) + +# Generate the full package name +SOURCE_0=$(HORDE_PACKAGE)-$(VERSION).tgz + +# Generate a list of extra files for the package +EXTRA=ChangeLog $(PATCHES) + +# CVS information +UPSTREAM=../upstream/cvs +REPO=framework +REPO_URL=:pserver:cvsread at anoncvs.horde.org:/repository +REPO_UP_CMD=cvs update +REPO_CO_CMD=cvs -d $(REPO_URL) co +REPO_SC_CMD=cvs update -r +COMMIT=HORDE_3_3_4 +RELTAG=20090501 +DATE=$(shell date +%Y-%m-%d) +PEAR=$(HOME)/bin/pear +# Default target to generate the source rpm package .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm +# Target for placing the source rpm in the staging area .PHONY: dist dist: all - cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm ../../stage/ + test -d $(STAGING) || mkdir $(STAGING) + cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm $(STAGING) -.PHONY: clean -clean: - rm -rf /kolab/RPM/TMP/$(PACKAGE)* - rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - rm -rf *~ +# Target for installing the binary rpm package in our current Kolab +# server installation +.PHONY: install +install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm -$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec ChangeLog +# Target location for the CVS checkout +$(UPSTREAM): + mkdir -p $(UPSTREAM) + +# Target for generating the CVS checkout +.PHONY: $(UPSTREAM)/$(REPO) +$(UPSTREAM)/$(REPO): + if [ -e $(UPSTREAM)/$(REPO) ]; then \ + cd $(UPSTREAM)/$(REPO) && $(REPO_SC_CMD) "$(COMMIT)"; \ + else \ + @echo The password is 'horde'; \ + cvs -d $(REPO_URL) login; \ + cd $(UPSTREAM) && $(REPO_CO_CMD) $(REPO); \ + cd $(UPSTREAM)/$(REPO) && $(REPO_SC_CMD) "$(COMMIT)"; \ + fi; + +# Generate the source pacakge fron the CVS checkout +.PHONY: $(SOURCE_0) +$(SOURCE_0): $(UPSTREAM) $(UPSTREAM)/$(REPO) + rm -rf tmp + mkdir tmp + cp -r $(UPSTREAM)/$(REPO)/$(HORDE_PKGDIR) tmp/$(PACKAGE) + sed -i -e "/version/,+1 s#\(.*\)#\1dev$(RELTAG)#" tmp/$(PACKAGE)/package.xml + sed -i -e "/lead/,+1 s#.*#$(DATE)#" tmp/$(PACKAGE)/package.xml + $(PEAR) package tmp/$(PACKAGE)/package.xml + rm -rf tmp + +# Target for retrieving the source package +$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): $(SOURCE_0) test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) - cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_0)" + cp $(SOURCE_0) $(KOLABRPMSRC)/$(PACKAGE)/ - cp $(PACKAGE).spec $(KOLABRPMSRC)/$(PACKAGE) +# Target for preparing the source area and building the package +$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: Makefile $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) + cp $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec +# Target for fetching the source rpm into the current directory +$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . + +# Target for cleaning up the files that can be generated with this Makefile +.PHONY: clean +clean: + rm -rf $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + rm -rf $(KOLABRPMSRC)/$(PACKAGE) + rm -rf $(KOLABRPMTMP)/$(PACKAGE)* + rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm + rm -rf *~ + From cvs at kolab.org Mon May 11 21:00:18 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 11 May 2009 21:00:18 +0200 (CEST) Subject: gunnar: server/pear/Horde_NLS ChangeLog, 1.1, 1.2 Horde_NLS.spec, 1.4, 1.5 Makefile, 1.2, 1.3 Message-ID: <20090511190018.5D5EF60082C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_NLS In directory doto:/tmp/cvs-serv24621 Modified Files: ChangeLog Horde_NLS.spec Makefile Log Message: Update to the HORDE_3_3_4 release tag. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/pear/Horde_NLS/ChangeLog,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ChangeLog 10 Sep 2008 10:35:22 -0000 1.1 +++ ChangeLog 11 May 2009 19:00:16 -0000 1.2 @@ -1,3 +1,7 @@ +2009-05-11 Gunnar Wrobel

+ + * Horde_NLS.spec: Update to the HORDE_3_3_4 release tag. + 2008-09-10 Gunnar Wrobel

* Horde_DOM.spec: Added package to Kolab CVS. Index: Horde_NLS.spec =================================================================== RCS file: /kolabrepository/server/pear/Horde_NLS/Horde_NLS.spec,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Horde_NLS.spec 9 Dec 2008 20:32:47 -0000 1.4 +++ Horde_NLS.spec 11 May 2009 19:00:16 -0000 1.5 @@ -1,7 +1,9 @@ # Variables +%define V_horde_pkgdir NLS +%define V_horde_package Horde_NLS %define V_package Horde_NLS -%define V_version 0.0.2 -%define V_release 20081209 +%define V_version 0.0.2dev20090501 +%define V_release 1 # Package Information Name: %{V_package} @@ -15,7 +17,7 @@ Distribution: OpenPKG # List of Sources -Source: http://pear.horde.org/get/%{V_package}-%{V_version}.tgz +Source: http://pear.horde.org/get/%{V_horde_package}-%{V_version}.tgz # Build Info Prefix: %{l_prefix} @@ -37,14 +39,14 @@ Localization package. %prep - %setup -n %{V_package}-%{V_version} + %setup -n %{V_horde_package}-%{V_version} %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ - %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT $RPM_SOURCE_DIR/%{V_package}-%{V_version}.tgz + %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/php/{.filemap,.lock,.channels,.depdb,.depdblock} %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} Index: Makefile =================================================================== RCS file: /kolabrepository/server/pear/Horde_NLS/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Makefile 10 Sep 2008 10:57:01 -0000 1.2 +++ Makefile 11 May 2009 19:00:16 -0000 1.3 @@ -1,40 +1,155 @@ -PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") -RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") +# If home is unset this Makefile assumes the Kolab server installation +# resides in /kolab. If this is not the case this Makefile must be +# called using +# +# HOME="/mykolabroot" make TARGET +# +ifeq "x$(HOME)" "x" + HOME = /kolab +endif + +# If HOME is set to /root it is likely that somebody is calling this +# Makefile as root user. In this case this Makefile assumes that the +# Kolab server installation resides in /kolab. +# +# In the (hopefully) unlikely event that somebody really installed the +# Kolab server in /root this Makefile will fail. +ifeq "x$(HOME)" "x/root" + HOME = /kolab +endif +# Set the location of the rpm binary ifeq "x$(RPM)" "x" RPM = $(HOME)/bin/openpkg rpm endif + +# Set the location for rpm source package installations ifeq "x$(KOLABRPMSRC)" "x" KOLABRPMSRC = $(HOME)/RPM/SRC endif + +# Set the location for rpm packages ifeq "x$(KOLABRPMPKG)" "x" KOLABRPMPKG = $(HOME)/RPM/PKG endif + +# Set the location for the rpm temporary directory ifeq "x$(KOLABRPMTMP)" "x" KOLABRPMTMP = $(HOME)/RPM/TMP endif -SOURCE_0=http://pear.horde.org/get/$(PACKAGE)-$(VERSION).tgz +# Determine the suffix for binary packages on this system +ifeq "x$(PLATTAG)" "x" + PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) +endif +# Determine the staging area for collecting new source rpms +ifeq "x$(STAGING)" "x" + STAGING = ../../stage +endif + +# Determine the horde package name from the *.spec file +HORDE_PKGDIR = $(shell grep "%define[ ]*V_horde_pkgdir" *.spec | sed -e "s/.*V_horde_pkgdir \([A-Za-z\-\_]*\).*/\1/") + +# Determine the horde package name from the *.spec file +HORDE_PACKAGE = $(shell grep "%define[ ]*V_horde_package" *.spec | sed -e "s/.*V_horde_package \([A-Za-z\-\_]*\).*/\1/") + +# Determine the package name from the *.spec file +PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") + +# Determine the package version from the *.spec file +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.a-z]*\).*/\1/") + +# Determine the release number from the *.spec file +RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") + +# Determine the download url for the PEAR package from the *.spec file +SOURCE_URL=$(shell grep "%define[ ]*V_sourceurl" *.spec | sed -e "s/.*V_sourceurl\s*\(.*\)/\1/") + +# Get the list of patches if there are any in this directory +PATCHES = $(shell ls *.patch 2> /dev/null) + +# Generate the full package name +SOURCE_0=$(HORDE_PACKAGE)-$(VERSION).tgz + +# Generate a list of extra files for the package +EXTRA=ChangeLog $(PATCHES) + +# CVS information +UPSTREAM=../upstream/cvs +REPO=framework +REPO_URL=:pserver:cvsread at anoncvs.horde.org:/repository +REPO_UP_CMD=cvs update +REPO_CO_CMD=cvs -d $(REPO_URL) co +REPO_SC_CMD=cvs update -r +COMMIT=HORDE_3_3_4 +RELTAG=20090501 +DATE=$(shell date +%Y-%m-%d) +PEAR=$(HOME)/bin/pear + +# Default target to generate the source rpm package .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm +# Target for placing the source rpm in the staging area .PHONY: dist dist: all - cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm ../../stage/ + test -d $(STAGING) || mkdir $(STAGING) + cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm $(STAGING) -.PHONY: clean -clean: - rm -rf /kolab/RPM/TMP/$(PACKAGE)* - rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - rm -rf *~ +# Target for installing the binary rpm package in our current Kolab +# server installation +.PHONY: install +install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm -$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec ChangeLog +# Target location for the CVS checkout +$(UPSTREAM): + mkdir -p $(UPSTREAM) + +# Target for generating the CVS checkout +.PHONY: $(UPSTREAM)/$(REPO) +$(UPSTREAM)/$(REPO): + if [ -e $(UPSTREAM)/$(REPO) ]; then \ + cd $(UPSTREAM)/$(REPO) && $(REPO_SC_CMD) "$(COMMIT)"; \ + else \ + @echo The password is 'horde'; \ + cvs -d $(REPO_URL) login; \ + cd $(UPSTREAM) && $(REPO_CO_CMD) $(REPO); \ + cd $(UPSTREAM)/$(REPO) && $(REPO_SC_CMD) "$(COMMIT)"; \ + fi; + +# Generate the source pacakge fron the CVS checkout +.PHONY: $(SOURCE_0) +$(SOURCE_0): $(UPSTREAM) $(UPSTREAM)/$(REPO) + rm -rf tmp + mkdir tmp + cp -r $(UPSTREAM)/$(REPO)/$(HORDE_PKGDIR) tmp/$(PACKAGE) + sed -i -e "/version/,+1 s#\(.*\)#\1dev$(RELTAG)#" tmp/$(PACKAGE)/package.xml + sed -i -e "/lead/,+1 s#.*#$(DATE)#" tmp/$(PACKAGE)/package.xml + $(PEAR) package tmp/$(PACKAGE)/package.xml + rm -rf tmp + +# Target for retrieving the source package +$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): $(SOURCE_0) test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) - cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_0)" + cp $(SOURCE_0) $(KOLABRPMSRC)/$(PACKAGE)/ - cp $(PACKAGE).spec $(KOLABRPMSRC)/$(PACKAGE) +# Target for preparing the source area and building the package +$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: Makefile $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) + cp $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec +# Target for fetching the source rpm into the current directory +$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . + +# Target for cleaning up the files that can be generated with this Makefile +.PHONY: clean +clean: + rm -rf $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + rm -rf $(KOLABRPMSRC)/$(PACKAGE) + rm -rf $(KOLABRPMTMP)/$(PACKAGE)* + rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm + rm -rf *~ + From cvs at kolab.org Mon May 11 21:12:05 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 11 May 2009 21:12:05 +0200 (CEST) Subject: gunnar: server/kolab-webclient ChangeLog, 1.16, 1.17 kolab-webclient.spec, 1.32, 1.33 Message-ID: <20090511191205.5B16C60082D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv25072/kolab-webclient Modified Files: ChangeLog kolab-webclient.spec Log Message: kolab/issue3293 (Big code duplication and code version messup: Horde libs in 2.2.1) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webclient/ChangeLog,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- ChangeLog 11 May 2009 15:58:14 -0000 1.16 +++ ChangeLog 11 May 2009 19:12:03 -0000 1.17 @@ -2,6 +2,7 @@ * kolab-webclient.spec: + Use Horde_NLS-0.0.2dev20090501 from /kolab/lib/php Use Horde_Util-0.1.0dev20090501 from /kolab/lib/php Use Archive_Tar-1.3.2 from /kolab/lib/php Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.32 retrieving revision 1.33 diff -u -d -r1.32 -r1.33 --- kolab-webclient.spec 11 May 2009 15:58:14 -0000 1.32 +++ kolab-webclient.spec 11 May 2009 19:12:03 -0000 1.33 @@ -153,6 +153,9 @@ rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Util.php rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Variables.php + # Use Horde_NLS-0.0.2dev20090501 from /kolab/lib/php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/NLS* + # Kolab_Format is in sync rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Format* From cvs at kolab.org Mon May 11 21:12:05 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 11 May 2009 21:12:05 +0200 (CEST) Subject: gunnar: server/kolab-fbview ChangeLog, 1.6, 1.7 kolab-fbview.spec, 1.13, 1.14 Message-ID: <20090511191205.525AA60082C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-fbview In directory doto:/tmp/cvs-serv25072/kolab-fbview Modified Files: ChangeLog kolab-fbview.spec Log Message: kolab/issue3293 (Big code duplication and code version messup: Horde libs in 2.2.1) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-fbview/ChangeLog,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- ChangeLog 11 May 2009 15:58:14 -0000 1.6 +++ ChangeLog 11 May 2009 19:12:03 -0000 1.7 @@ -2,6 +2,7 @@ * kolab-fbview.spec: + Use Horde_NLS-0.0.2dev20090501 from /kolab/lib/php Use Horde_Util-0.1.0dev20090501 from /kolab/lib/php Use Archive_Tar-1.3.2 from /kolab/lib/php Index: kolab-fbview.spec =================================================================== RCS file: /kolabrepository/server/kolab-fbview/kolab-fbview.spec,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- kolab-fbview.spec 11 May 2009 15:58:14 -0000 1.13 +++ kolab-fbview.spec 11 May 2009 19:12:03 -0000 1.14 @@ -115,6 +115,9 @@ rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Util.php rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Variables.php + # Use Horde_NLS-0.0.2dev20090501 from /kolab/lib/php + rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/NLS* + # Kolab_Format is in sync rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/lib/Horde/Kolab/Format* From cvs at kolab.org Mon May 11 21:38:48 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 11 May 2009 21:38:48 +0200 (CEST) Subject: gunnar: server/pear/Horde_Browser ChangeLog, 1.1, 1.2 Horde_Browser.spec, 1.4, 1.5 Makefile, 1.2, 1.3 Message-ID: <20090511193848.A928C60080B@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Browser In directory doto:/tmp/cvs-serv25531 Modified Files: ChangeLog Horde_Browser.spec Makefile Log Message: Update to the HORDE_3_3_4 release tag. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/pear/Horde_Browser/ChangeLog,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ChangeLog 10 Sep 2008 10:04:49 -0000 1.1 +++ ChangeLog 11 May 2009 19:38:46 -0000 1.2 @@ -1,4 +1,8 @@ +2009-05-11 Gunnar Wrobel

+ + * Horde_Browser.spec: Update to the HORDE_3_3_4 release tag. + 2008-09-10 Gunnar Wrobel

- * Horde_DOM.spec: Added package to Kolab CVS. + * Horde_Browser.spec: Added package to Kolab CVS. Index: Horde_Browser.spec =================================================================== RCS file: /kolabrepository/server/pear/Horde_Browser/Horde_Browser.spec,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Horde_Browser.spec 9 Dec 2008 20:32:47 -0000 1.4 +++ Horde_Browser.spec 11 May 2009 19:38:46 -0000 1.5 @@ -1,7 +1,9 @@ # Variables +%define V_horde_pkgdir Browser +%define V_horde_package Horde_Browser %define V_package Horde_Browser -%define V_version 0.0.2 -%define V_release 20081209 +%define V_version 0.0.2dev20090501 +%define V_release 1 # Package Information Name: %{V_package} @@ -15,7 +17,7 @@ Distribution: OpenPKG # List of Sources -Source: http://pear.horde.org/get/%{V_package}-%{V_version}.tgz +Source: http://pear.horde.org/get/%{V_horde_package}-%{V_version}.tgz # Build Info Prefix: %{l_prefix} @@ -37,14 +39,14 @@ about the current users browser and its capabilities. %prep - %setup -n %{V_package}-%{V_version} + %setup -n %{V_horde_package}-%{V_version} %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ - %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT $RPM_SOURCE_DIR/%{V_package}-%{V_version}.tgz + %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/php/{.filemap,.lock,.channels,.depdb,.depdblock} %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} Index: Makefile =================================================================== RCS file: /kolabrepository/server/pear/Horde_Browser/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Makefile 10 Sep 2008 10:57:01 -0000 1.2 +++ Makefile 11 May 2009 19:38:46 -0000 1.3 @@ -1,40 +1,155 @@ -PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") -RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") +# If home is unset this Makefile assumes the Kolab server installation +# resides in /kolab. If this is not the case this Makefile must be +# called using +# +# HOME="/mykolabroot" make TARGET +# +ifeq "x$(HOME)" "x" + HOME = /kolab +endif + +# If HOME is set to /root it is likely that somebody is calling this +# Makefile as root user. In this case this Makefile assumes that the +# Kolab server installation resides in /kolab. +# +# In the (hopefully) unlikely event that somebody really installed the +# Kolab server in /root this Makefile will fail. +ifeq "x$(HOME)" "x/root" + HOME = /kolab +endif +# Set the location of the rpm binary ifeq "x$(RPM)" "x" RPM = $(HOME)/bin/openpkg rpm endif + +# Set the location for rpm source package installations ifeq "x$(KOLABRPMSRC)" "x" KOLABRPMSRC = $(HOME)/RPM/SRC endif + +# Set the location for rpm packages ifeq "x$(KOLABRPMPKG)" "x" KOLABRPMPKG = $(HOME)/RPM/PKG endif + +# Set the location for the rpm temporary directory ifeq "x$(KOLABRPMTMP)" "x" KOLABRPMTMP = $(HOME)/RPM/TMP endif -SOURCE_0=http://pear.horde.org/get/$(PACKAGE)-$(VERSION).tgz +# Determine the suffix for binary packages on this system +ifeq "x$(PLATTAG)" "x" + PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) +endif +# Determine the staging area for collecting new source rpms +ifeq "x$(STAGING)" "x" + STAGING = ../../stage +endif + +# Determine the horde package name from the *.spec file +HORDE_PKGDIR = $(shell grep "%define[ ]*V_horde_pkgdir" *.spec | sed -e "s/.*V_horde_pkgdir \([A-Za-z\-\_]*\).*/\1/") + +# Determine the horde package name from the *.spec file +HORDE_PACKAGE = $(shell grep "%define[ ]*V_horde_package" *.spec | sed -e "s/.*V_horde_package \([A-Za-z\-\_]*\).*/\1/") + +# Determine the package name from the *.spec file +PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") + +# Determine the package version from the *.spec file +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.a-z]*\).*/\1/") + +# Determine the release number from the *.spec file +RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") + +# Determine the download url for the PEAR package from the *.spec file +SOURCE_URL=$(shell grep "%define[ ]*V_sourceurl" *.spec | sed -e "s/.*V_sourceurl\s*\(.*\)/\1/") + +# Get the list of patches if there are any in this directory +PATCHES = $(shell ls *.patch 2> /dev/null) + +# Generate the full package name +SOURCE_0=$(HORDE_PACKAGE)-$(VERSION).tgz + +# Generate a list of extra files for the package +EXTRA=ChangeLog $(PATCHES) + +# CVS information +UPSTREAM=../upstream/cvs +REPO=framework +REPO_URL=:pserver:cvsread at anoncvs.horde.org:/repository +REPO_UP_CMD=cvs update +REPO_CO_CMD=cvs -d $(REPO_URL) co +REPO_SC_CMD=cvs update -r +COMMIT=HORDE_3_3_4 +RELTAG=20090501 +DATE=$(shell date +%Y-%m-%d) +PEAR=$(HOME)/bin/pear + +# Default target to generate the source rpm package .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm +# Target for placing the source rpm in the staging area .PHONY: dist dist: all - cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm ../../stage/ + test -d $(STAGING) || mkdir $(STAGING) + cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm $(STAGING) -.PHONY: clean -clean: - rm -rf /kolab/RPM/TMP/$(PACKAGE)* - rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - rm -rf *~ +# Target for installing the binary rpm package in our current Kolab +# server installation +.PHONY: install +install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm -$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec ChangeLog +# Target location for the CVS checkout +$(UPSTREAM): + mkdir -p $(UPSTREAM) + +# Target for generating the CVS checkout +.PHONY: $(UPSTREAM)/$(REPO) +$(UPSTREAM)/$(REPO): + if [ -e $(UPSTREAM)/$(REPO) ]; then \ + cd $(UPSTREAM)/$(REPO) && $(REPO_SC_CMD) "$(COMMIT)"; \ + else \ + @echo The password is 'horde'; \ + cvs -d $(REPO_URL) login; \ + cd $(UPSTREAM) && $(REPO_CO_CMD) $(REPO); \ + cd $(UPSTREAM)/$(REPO) && $(REPO_SC_CMD) "$(COMMIT)"; \ + fi; + +# Generate the source pacakge fron the CVS checkout +.PHONY: $(SOURCE_0) +$(SOURCE_0): $(UPSTREAM) $(UPSTREAM)/$(REPO) + rm -rf tmp + mkdir tmp + cp -r $(UPSTREAM)/$(REPO)/$(HORDE_PKGDIR) tmp/$(PACKAGE) + sed -i -e "/version/,+1 s#\(.*\)#\1dev$(RELTAG)#" tmp/$(PACKAGE)/package.xml + sed -i -e "/lead/,+1 s#.*#$(DATE)#" tmp/$(PACKAGE)/package.xml + $(PEAR) package tmp/$(PACKAGE)/package.xml + rm -rf tmp + +# Target for retrieving the source package +$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): $(SOURCE_0) test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) - cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_0)" + cp $(SOURCE_0) $(KOLABRPMSRC)/$(PACKAGE)/ - cp $(PACKAGE).spec $(KOLABRPMSRC)/$(PACKAGE) +# Target for preparing the source area and building the package +$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: Makefile $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) + cp $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec +# Target for fetching the source rpm into the current directory +$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . + +# Target for cleaning up the files that can be generated with this Makefile +.PHONY: clean +clean: + rm -rf $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + rm -rf $(KOLABRPMSRC)/$(PACKAGE) + rm -rf $(KOLABRPMTMP)/$(PACKAGE)* + rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm + rm -rf *~ + From cvs at kolab.org Tue May 12 07:22:49 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 12 May 2009 07:22:49 +0200 (CEST) Subject: gunnar: server/pear/Horde_Notification ChangeLog, 1.1, 1.2 Horde_Notification.spec, 1.1, 1.2 Makefile, 1.1, 1.2 Message-ID: <20090512052249.53EF8600808@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Notification In directory doto:/tmp/cvs-serv15676 Modified Files: ChangeLog Horde_Notification.spec Makefile Log Message: Update to the HORDE_3_3_4 release tag. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/pear/Horde_Notification/ChangeLog,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ChangeLog 24 Feb 2009 11:57:46 -0000 1.1 +++ ChangeLog 12 May 2009 05:22:47 -0000 1.2 @@ -1,3 +1,7 @@ +2009-05-11 Gunnar Wrobel

+ + * Horde_Notification.spec: Update to the HORDE_3_3_4 release tag. + 2009-02-24 Gunnar Wrobel

* Horde_Notification.spec: Added package to Kolab CVS. Index: Horde_Notification.spec =================================================================== RCS file: /kolabrepository/server/pear/Horde_Notification/Horde_Notification.spec,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Horde_Notification.spec 24 Feb 2009 11:57:46 -0000 1.1 +++ Horde_Notification.spec 12 May 2009 05:22:47 -0000 1.2 @@ -1,7 +1,9 @@ # Variables +%define V_horde_pkgdir Notification +%define V_horde_package Horde_Notification %define V_package Horde_Notification -%define V_version 0.0.2 -%define V_release 20090223 +%define V_version 0.0.2dev20090501 +%define V_release 1 # Package Information Name: %{V_package} Index: Makefile =================================================================== RCS file: /kolabrepository/server/pear/Horde_Notification/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Makefile 24 Feb 2009 11:57:46 -0000 1.1 +++ Makefile 12 May 2009 05:22:47 -0000 1.2 @@ -1,50 +1,155 @@ -PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") -RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") +# If home is unset this Makefile assumes the Kolab server installation +# resides in /kolab. If this is not the case this Makefile must be +# called using +# +# HOME="/mykolabroot" make TARGET +# +ifeq "x$(HOME)" "x" + HOME = /kolab +endif + +# If HOME is set to /root it is likely that somebody is calling this +# Makefile as root user. In this case this Makefile assumes that the +# Kolab server installation resides in /kolab. +# +# In the (hopefully) unlikely event that somebody really installed the +# Kolab server in /root this Makefile will fail. +ifeq "x$(HOME)" "x/root" + HOME = /kolab +endif +# Set the location of the rpm binary ifeq "x$(RPM)" "x" RPM = $(HOME)/bin/openpkg rpm endif + +# Set the location for rpm source package installations ifeq "x$(KOLABRPMSRC)" "x" KOLABRPMSRC = $(HOME)/RPM/SRC endif + +# Set the location for rpm packages ifeq "x$(KOLABRPMPKG)" "x" KOLABRPMPKG = $(HOME)/RPM/PKG endif + +# Set the location for the rpm temporary directory ifeq "x$(KOLABRPMTMP)" "x" KOLABRPMTMP = $(HOME)/RPM/TMP endif +# Determine the suffix for binary packages on this system ifeq "x$(PLATTAG)" "x" PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) endif -SOURCE_URL=http://pear.horde.org/get -SOURCE_0=$(PACKAGE)-$(VERSION).tgz +# Determine the staging area for collecting new source rpms +ifeq "x$(STAGING)" "x" + STAGING = ../../stage +endif +# Determine the horde package name from the *.spec file +HORDE_PKGDIR = $(shell grep "%define[ ]*V_horde_pkgdir" *.spec | sed -e "s/.*V_horde_pkgdir \([A-Za-z\-\_]*\).*/\1/") + +# Determine the horde package name from the *.spec file +HORDE_PACKAGE = $(shell grep "%define[ ]*V_horde_package" *.spec | sed -e "s/.*V_horde_package \([A-Za-z\-\_]*\).*/\1/") + +# Determine the package name from the *.spec file +PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") + +# Determine the package version from the *.spec file +VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.a-z]*\).*/\1/") + +# Determine the release number from the *.spec file +RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") + +# Determine the download url for the PEAR package from the *.spec file +SOURCE_URL=$(shell grep "%define[ ]*V_sourceurl" *.spec | sed -e "s/.*V_sourceurl\s*\(.*\)/\1/") + +# Get the list of patches if there are any in this directory +PATCHES = $(shell ls *.patch 2> /dev/null) + +# Generate the full package name +SOURCE_0=$(HORDE_PACKAGE)-$(VERSION).tgz + +# Generate a list of extra files for the package +EXTRA=ChangeLog $(PATCHES) + +# CVS information +UPSTREAM=../upstream/cvs +REPO=framework +REPO_URL=:pserver:cvsread at anoncvs.horde.org:/repository +REPO_UP_CMD=cvs update +REPO_CO_CMD=cvs -d $(REPO_URL) co +REPO_SC_CMD=cvs update -r +COMMIT=HORDE_3_3_4 +RELTAG=20090501 +DATE=$(shell date +%Y-%m-%d) +PEAR=$(HOME)/bin/pear + +# Default target to generate the source rpm package .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm +# Target for placing the source rpm in the staging area .PHONY: dist dist: all - cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm ../../stage/ + test -d $(STAGING) || mkdir $(STAGING) + cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm $(STAGING) -.PHONY: clean -clean: - rm -rf /kolab/RPM/TMP/$(PACKAGE)* - rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - rm -rf *~ +# Target for installing the binary rpm package in our current Kolab +# server installation +.PHONY: install +install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm -$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): +# Target location for the CVS checkout +$(UPSTREAM): + mkdir -p $(UPSTREAM) + +# Target for generating the CVS checkout +.PHONY: $(UPSTREAM)/$(REPO) +$(UPSTREAM)/$(REPO): + if [ -e $(UPSTREAM)/$(REPO) ]; then \ + cd $(UPSTREAM)/$(REPO) && $(REPO_SC_CMD) "$(COMMIT)"; \ + else \ + @echo The password is 'horde'; \ + cvs -d $(REPO_URL) login; \ + cd $(UPSTREAM) && $(REPO_CO_CMD) $(REPO); \ + cd $(UPSTREAM)/$(REPO) && $(REPO_SC_CMD) "$(COMMIT)"; \ + fi; + +# Generate the source pacakge fron the CVS checkout +.PHONY: $(SOURCE_0) +$(SOURCE_0): $(UPSTREAM) $(UPSTREAM)/$(REPO) + rm -rf tmp + mkdir tmp + cp -r $(UPSTREAM)/$(REPO)/$(HORDE_PKGDIR) tmp/$(PACKAGE) + sed -i -e "/version/,+1 s#\(.*\)#\1dev$(RELTAG)#" tmp/$(PACKAGE)/package.xml + sed -i -e "/lead/,+1 s#.*#$(DATE)#" tmp/$(PACKAGE)/package.xml + $(PEAR) package tmp/$(PACKAGE)/package.xml + rm -rf tmp + +# Target for retrieving the source package +$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): $(SOURCE_0) test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) - cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_URL)/$(SOURCE_0)" + cp $(SOURCE_0) $(KOLABRPMSRC)/$(PACKAGE)/ -$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec ChangeLog $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) - cp $(PACKAGE).spec $(KOLABRPMSRC)/$(PACKAGE) +# Target for preparing the source area and building the package +$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: Makefile $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) + cp $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec +# Target for fetching the source rpm into the current directory +$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . -.PHONY: install -install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm - $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm +# Target for cleaning up the files that can be generated with this Makefile +.PHONY: clean +clean: + rm -rf $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + rm -rf $(KOLABRPMSRC)/$(PACKAGE) + rm -rf $(KOLABRPMTMP)/$(PACKAGE)* + rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm + rm -rf *~ + From cvs at kolab.org Wed May 13 12:05:05 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 13 May 2009 12:05:05 +0200 (CEST) Subject: gunnar: server release-notes.txt,1.398.2.36,1.398.2.37 Message-ID: <20090513100505.C5556600803@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv23210 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: kolab/issue3420 (web client prefs and hooks should be configurable via templates) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.36 retrieving revision 1.398.2.37 diff -u -d -r1.398.2.36 -r1.398.2.37 --- release-notes.txt 8 May 2009 13:36:26 -0000 1.398.2.36 +++ release-notes.txt 13 May 2009 10:05:02 -0000 1.398.2.37 @@ -55,6 +55,11 @@ kolab/issue1340 (RFC: restrict users to sending mail only to internal recipients) + - kolab-webclient-1.2.0-20090513 + + kolab/issue3420 (web client prefs and hooks should be + configurable via templates) + - Kolab_Filter-0.1.4-20090504 kolab/issue3521 (kolabmailboxfilter does not accept mail for From cvs at kolab.org Wed May 13 12:05:05 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 13 May 2009 12:05:05 +0200 (CEST) Subject: gunnar: server/kolab-webclient ChangeLog, 1.10.2.3, 1.10.2.4 kolab-webclient.spec, 1.23.2.6, 1.23.2.7 Message-ID: <20090513100505.C66DE600805@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv23210/kolab-webclient Modified Files: Tag: kolab_2_2_branch ChangeLog kolab-webclient.spec Log Message: kolab/issue3420 (web client prefs and hooks should be configurable via templates) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webclient/ChangeLog,v retrieving revision 1.10.2.3 retrieving revision 1.10.2.4 diff -u -d -r1.10.2.3 -r1.10.2.4 --- ChangeLog 2 Apr 2009 09:51:33 -0000 1.10.2.3 +++ ChangeLog 13 May 2009 10:05:03 -0000 1.10.2.4 @@ -1,3 +1,10 @@ +2009-05-13 Gunnar Wrobel

+ + * kolab-webclient.spec: + + kolab/issue3420 (web client prefs and hooks should be configurable + via templates) + 2009-04-02 Gunnar Wrobel

* kolab-webclient.spec: Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.23.2.6 retrieving revision 1.23.2.7 diff -u -d -r1.23.2.6 -r1.23.2.7 --- kolab-webclient.spec 2 Apr 2009 09:51:33 -0000 1.23.2.6 +++ kolab-webclient.spec 13 May 2009 10:05:03 -0000 1.23.2.7 @@ -2,8 +2,8 @@ %define V_horde_name horde-webmail %define V_package kolab-webclient %define V_year 2009 -%define V_month 04 -%define V_day 02 +%define V_month 05 +%define V_day 13 %define V_version 1.2.0 %define V_source_version 1.2 %define V_passwd_version 3.0.1 From cvs at kolab.org Wed May 13 12:05:05 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 13 May 2009 12:05:05 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0 horde-webmail-1.2.0_kolab_openpkg.patch, 1.32.2.4, 1.32.2.5 Message-ID: <20090513100505.EF425600803@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0 In directory doto:/tmp/cvs-serv23210/patches/horde-webmail/1.2.0 Modified Files: Tag: kolab_2_2_branch horde-webmail-1.2.0_kolab_openpkg.patch Log Message: kolab/issue3420 (web client prefs and hooks should be configurable via templates) Index: horde-webmail-1.2.0_kolab_openpkg.patch =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/Attic/horde-webmail-1.2.0_kolab_openpkg.patch,v retrieving revision 1.32.2.4 retrieving revision 1.32.2.5 diff -u -d -r1.32.2.4 -r1.32.2.5 --- horde-webmail-1.2.0_kolab_openpkg.patch 2 Apr 2009 09:51:33 -0000 1.32.2.4 +++ horde-webmail-1.2.0_kolab_openpkg.patch 13 May 2009 10:05:03 -0000 1.32.2.5 @@ -16090,7 +16090,7 @@ Did this + a few manual edits -> for FILE in `find horde-webmail/ -wholename *config/*.php | grep -v scripts`;do A=${FILE/*config\//}; B=${A/.php/.local.php};echo "if (file_exists(dirname(__FILE__) . '/$B')) { - require_once(dirname(__FILE__) . '/$B'); + require(dirname(__FILE__) . '/$B'); } " >> $FILE;done @@ -16166,7 +16166,7 @@ } }*/ +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { -+ require_once(dirname(__FILE__) . '/hooks.local.php'); ++ require(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/config/mime_drivers.php b/horde-webmail/config/mime_drivers.php @@ -16178,7 +16178,7 @@ ) ); +if (file_exists(dirname(__FILE__) . '/mime_drivers.local.php')) { -+ require_once(dirname(__FILE__) . '/mime_drivers.local.php'); ++ require(dirname(__FILE__) . '/mime_drivers.local.php'); +} + diff --git a/horde-webmail/config/motd.php b/horde-webmail/config/motd.php @@ -16191,7 +16191,7 @@ + + @@ -16208,7 +16208,7 @@ $GLOBALS['tz'] = &$tz; +if (file_exists(dirname(__FILE__) . '/nls.local.php')) { -+ require_once(dirname(__FILE__) . '/nls.local.php'); ++ require(dirname(__FILE__) . '/nls.local.php'); +} + diff --git a/horde-webmail/config/prefs.php b/horde-webmail/config/prefs.php @@ -16220,7 +16220,7 @@ ); // End Rich Text Editor preferences. +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/config/registry.php b/horde-webmail/config/registry.php @@ -16232,7 +16232,7 @@ return $webroot; } +if (file_exists(dirname(__FILE__) . '/registry.local.php')) { -+ require_once(dirname(__FILE__) . '/registry.local.php'); ++ require(dirname(__FILE__) . '/registry.local.php'); +} + diff --git a/horde-webmail/dimp/config/conf.php b/horde-webmail/dimp/config/conf.php @@ -16244,7 +16244,7 @@ $conf['menu']['apps'] = array('turba', 'ingo', 'kronolith', 'nag', 'mnemo'); /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/dimp/config/hooks.php b/horde-webmail/dimp/config/hooks.php @@ -16256,7 +16256,7 @@ // } // } +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { -+ require_once(dirname(__FILE__) . '/hooks.local.php'); ++ require(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/dimp/config/menu.php b/horde-webmail/dimp/config/menu.php @@ -16268,7 +16268,7 @@ // 'icon' => $GLOBALS['registry']->getImageDir('horde') . '/horde.png'), // ); +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/dimp/config/portal.php b/horde-webmail/dimp/config/portal.php @@ -16280,7 +16280,7 @@ 'ob' => $collection->getBlock('kronolith', 'summary', array()) ); +if (file_exists(dirname(__FILE__) . '/portal.local.php')) { -+ require_once(dirname(__FILE__) . '/portal.local.php'); ++ require(dirname(__FILE__) . '/portal.local.php'); +} + diff --git a/horde-webmail/dimp/config/prefs.php b/horde-webmail/dimp/config/prefs.php @@ -16292,7 +16292,7 @@ 'type' => 'implicit', ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/dimp/config/servers.php b/horde-webmail/dimp/config/servers.php @@ -16304,7 +16304,7 @@ ); } +if (file_exists(dirname(__FILE__) . '/servers.local.php')) { -+ require_once(dirname(__FILE__) . '/servers.local.php'); ++ require(dirname(__FILE__) . '/servers.local.php'); +} + diff --git a/horde-webmail/imp/config/conf.php b/horde-webmail/imp/config/conf.php @@ -16316,7 +16316,7 @@ $conf['notepad']['use_notepad'] = true; /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/imp/config/header.php b/horde-webmail/imp/config/header.php @@ -16328,7 +16328,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/header.local.php')) { -+ require_once(dirname(__FILE__) . '/header.local.php'); ++ require(dirname(__FILE__) . '/header.local.php'); +} + diff --git a/horde-webmail/imp/config/hooks.php b/horde-webmail/imp/config/hooks.php @@ -16340,7 +16340,7 @@ } } +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { -+ require_once(dirname(__FILE__) . '/hooks.local.php'); ++ require(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/imp/config/menu.php b/horde-webmail/imp/config/menu.php @@ -16352,7 +16352,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/imp/config/mime_drivers.php b/horde-webmail/imp/config/mime_drivers.php @@ -16364,7 +16364,7 @@ ) ); +if (file_exists(dirname(__FILE__) . '/mime_drivers.local.php')) { -+ require_once(dirname(__FILE__) . '/mime_drivers.local.php'); ++ require(dirname(__FILE__) . '/mime_drivers.local.php'); +} + diff --git a/horde-webmail/imp/config/motd.php b/horde-webmail/imp/config/motd.php @@ -16376,7 +16376,7 @@ // echo '' . _("Click here for Standard HTTP") . ' - ' . _("Click here for Secure HTTPS") . ''; +if (file_exists(dirname(__FILE__) . '/motd.local.php')) { -+ require_once(dirname(__FILE__) . '/motd.local.php'); ++ require(dirname(__FILE__) . '/motd.local.php'); +} ?>
@@ -16391,7 +16391,7 @@ 'shared' => false, 'type' => 'implicit'); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/imp/config/servers.php b/horde-webmail/imp/config/servers.php @@ -16403,7 +16403,7 @@ ); } +if (file_exists(dirname(__FILE__) . '/servers.local.php')) { -+ require_once(dirname(__FILE__) . '/servers.local.php'); ++ require(dirname(__FILE__) . '/servers.local.php'); +} + diff --git a/horde-webmail/imp/config/spelling.php b/horde-webmail/imp/config/spelling.php @@ -16415,7 +16415,7 @@ 'nov', 'dec', 'fwd', 'http', 'https', 'html', 'email', 'bcc', 'jpg', 'gif' ); +if (file_exists(dirname(__FILE__) . '/spelling.local.php')) { -+ require_once(dirname(__FILE__) . '/spelling.local.php'); ++ require(dirname(__FILE__) . '/spelling.local.php'); +} + diff --git a/horde-webmail/ingo/config/backends.php b/horde-webmail/ingo/config/backends.php @@ -16427,7 +16427,7 @@ ); } +if (file_exists(dirname(__FILE__) . '/backends.local.php')) { -+ require_once(dirname(__FILE__) . '/backends.local.php'); ++ require(dirname(__FILE__) . '/backends.local.php'); +} + diff --git a/horde-webmail/ingo/config/conf.php b/horde-webmail/ingo/config/conf.php @@ -16439,7 +16439,7 @@ $conf['hooks']['vacation_only'] = true; /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/ingo/config/fields.php b/horde-webmail/ingo/config/fields.php @@ -16451,7 +16451,7 @@ ) ); +if (file_exists(dirname(__FILE__) . '/fields.local.php')) { -+ require_once(dirname(__FILE__) . '/fields.local.php'); ++ require(dirname(__FILE__) . '/fields.local.php'); +} + diff --git a/horde-webmail/ingo/config/hooks.php b/horde-webmail/ingo/config/hooks.php @@ -16463,7 +16463,7 @@ // } // } +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { -+ require_once(dirname(__FILE__) . '/hooks.local.php'); ++ require(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/ingo/config/prefs.php b/horde-webmail/ingo/config/prefs.php @@ -16475,7 +16475,7 @@ 'type' => 'implicit' ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/kronolith/config/keywords.php b/horde-webmail/kronolith/config/keywords.php @@ -16487,7 +16487,7 @@ $keywords[_("Type")] = array(_("Birthday"), _("Meeting"), _("Game")); +if (file_exists(dirname(__FILE__) . '/keywords.local.php')) { -+ require_once(dirname(__FILE__) . '/keywords.local.php'); ++ require(dirname(__FILE__) . '/keywords.local.php'); +} + diff --git a/horde-webmail/kronolith/config/menu.php b/horde-webmail/kronolith/config/menu.php @@ -16499,7 +16499,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/kronolith/config/prefs.php b/horde-webmail/kronolith/config/prefs.php @@ -16511,7 +16511,7 @@ 'type' => 'implicit' ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/mimp/config/conf.php b/horde-webmail/mimp/config/conf.php @@ -16523,7 +16523,7 @@ $conf['mailbox']['max_subj_chars'] = 20; /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/mimp/config/menu.php b/horde-webmail/mimp/config/menu.php @@ -16535,7 +16535,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/mimp/config/mime_drivers.php b/horde-webmail/mimp/config/mime_drivers.php @@ -16547,7 +16547,7 @@ ) ); +if (file_exists(dirname(__FILE__) . '/mime_drivers.local.php')) { -+ require_once(dirname(__FILE__) . '/mime_drivers.local.php'); ++ require(dirname(__FILE__) . '/mime_drivers.local.php'); +} + diff --git a/horde-webmail/mimp/config/prefs.php b/horde-webmail/mimp/config/prefs.php @@ -16559,7 +16559,7 @@ // End Message Viewing preferences +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/mnemo/config/conf.php b/horde-webmail/mnemo/config/conf.php @@ -16571,7 +16571,7 @@ $conf['menu']['apps'] = array(); /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/mnemo/config/prefs.php b/horde-webmail/mnemo/config/prefs.php @@ -16583,7 +16583,7 @@ 'desc' => _("Do you want to confirm deleting entries?") ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/nag/config/conf.php b/horde-webmail/nag/config/conf.php @@ -16595,7 +16595,7 @@ $conf['menu']['apps'] = array(); /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/nag/config/menu.php b/horde-webmail/nag/config/menu.php @@ -16607,7 +16607,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/nag/config/prefs.php b/horde-webmail/nag/config/prefs.php @@ -16619,7 +16619,7 @@ 'type' => 'implicit', ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/turba/config/attributes.php b/horde-webmail/turba/config/attributes.php @@ -16631,7 +16631,7 @@ 'required' => false, ); +if (file_exists(dirname(__FILE__) . '/attributes.local.php')) { -+ require_once(dirname(__FILE__) . '/attributes.local.php'); ++ require(dirname(__FILE__) . '/attributes.local.php'); +} + diff --git a/horde-webmail/turba/config/conf.php b/horde-webmail/turba/config/conf.php @@ -16643,7 +16643,7 @@ $conf['documents']['type'] = 'horde'; /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/turba/config/hooks.php b/horde-webmail/turba/config/hooks.php @@ -16655,7 +16655,7 @@ // } // } +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { -+ require_once(dirname(__FILE__) . '/hooks.local.php'); ++ require(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/turba/config/menu.php b/horde-webmail/turba/config/menu.php @@ -16667,7 +16667,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/turba/config/mime_drivers.php b/horde-webmail/turba/config/mime_drivers.php @@ -16679,7 +16679,7 @@ * the format. */ +if (file_exists(dirname(__FILE__) . '/mime_drivers.local.php')) { -+ require_once(dirname(__FILE__) . '/mime_drivers.local.php'); ++ require(dirname(__FILE__) . '/mime_drivers.local.php'); +} + diff --git a/horde-webmail/turba/config/prefs.php b/horde-webmail/turba/config/prefs.php @@ -16691,7 +16691,7 @@ 'type' => 'implicit' ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/turba/config/sources.php b/horde-webmail/turba/config/sources.php @@ -16703,7 +16703,7 @@ 'browse' => true, ); +if (file_exists(dirname(__FILE__) . '/sources.local.php')) { -+ require_once(dirname(__FILE__) . '/sources.local.php'); ++ require(dirname(__FILE__) . '/sources.local.php'); +} + -- From cvs at kolab.org Wed May 13 12:05:05 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 13 May 2009 12:05:05 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0/tg t_GLOBAL_HK_GW_ConfigTemplateSupport.diff, 1.1.2.1, 1.1.2.2 Message-ID: <20090513100505.C78E960080C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0/tg In directory doto:/tmp/cvs-serv23210/patches/horde-webmail/1.2.0/tg Modified Files: Tag: kolab_2_2_branch t_GLOBAL_HK_GW_ConfigTemplateSupport.diff Log Message: kolab/issue3420 (web client prefs and hooks should be configurable via templates) Index: t_GLOBAL_HK_GW_ConfigTemplateSupport.diff =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/tg/Attic/t_GLOBAL_HK_GW_ConfigTemplateSupport.diff,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- t_GLOBAL_HK_GW_ConfigTemplateSupport.diff 26 Mar 2009 21:31:00 -0000 1.1.2.1 +++ t_GLOBAL_HK_GW_ConfigTemplateSupport.diff 13 May 2009 10:05:03 -0000 1.1.2.2 @@ -13,7 +13,7 @@ Did this + a few manual edits -> for FILE in `find horde-webmail/ -wholename *config/*.php | grep -v scripts`;do A=${FILE/*config\//}; B=${A/.php/.local.php};echo "if (file_exists(dirname(__FILE__) . '/$B')) { - require_once(dirname(__FILE__) . '/$B'); + require(dirname(__FILE__) . '/$B'); } " >> $FILE;done @@ -89,7 +89,7 @@ } }*/ +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { -+ require_once(dirname(__FILE__) . '/hooks.local.php'); ++ require(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/config/mime_drivers.php b/horde-webmail/config/mime_drivers.php @@ -101,7 +101,7 @@ ) ); +if (file_exists(dirname(__FILE__) . '/mime_drivers.local.php')) { -+ require_once(dirname(__FILE__) . '/mime_drivers.local.php'); ++ require(dirname(__FILE__) . '/mime_drivers.local.php'); +} + diff --git a/horde-webmail/config/motd.php b/horde-webmail/config/motd.php @@ -114,7 +114,7 @@ + + @@ -131,7 +131,7 @@ $GLOBALS['tz'] = &$tz; +if (file_exists(dirname(__FILE__) . '/nls.local.php')) { -+ require_once(dirname(__FILE__) . '/nls.local.php'); ++ require(dirname(__FILE__) . '/nls.local.php'); +} + diff --git a/horde-webmail/config/prefs.php b/horde-webmail/config/prefs.php @@ -143,7 +143,7 @@ ); // End Rich Text Editor preferences. +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/config/registry.php b/horde-webmail/config/registry.php @@ -155,7 +155,7 @@ return $webroot; } +if (file_exists(dirname(__FILE__) . '/registry.local.php')) { -+ require_once(dirname(__FILE__) . '/registry.local.php'); ++ require(dirname(__FILE__) . '/registry.local.php'); +} + diff --git a/horde-webmail/dimp/config/conf.php b/horde-webmail/dimp/config/conf.php @@ -167,7 +167,7 @@ $conf['menu']['apps'] = array('turba', 'ingo', 'kronolith', 'nag', 'mnemo'); /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/dimp/config/hooks.php b/horde-webmail/dimp/config/hooks.php @@ -179,7 +179,7 @@ // } // } +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { -+ require_once(dirname(__FILE__) . '/hooks.local.php'); ++ require(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/dimp/config/menu.php b/horde-webmail/dimp/config/menu.php @@ -191,7 +191,7 @@ // 'icon' => $GLOBALS['registry']->getImageDir('horde') . '/horde.png'), // ); +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/dimp/config/portal.php b/horde-webmail/dimp/config/portal.php @@ -203,7 +203,7 @@ 'ob' => $collection->getBlock('kronolith', 'summary', array()) ); +if (file_exists(dirname(__FILE__) . '/portal.local.php')) { -+ require_once(dirname(__FILE__) . '/portal.local.php'); ++ require(dirname(__FILE__) . '/portal.local.php'); +} + diff --git a/horde-webmail/dimp/config/prefs.php b/horde-webmail/dimp/config/prefs.php @@ -215,7 +215,7 @@ 'type' => 'implicit', ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/dimp/config/servers.php b/horde-webmail/dimp/config/servers.php @@ -227,7 +227,7 @@ ); } +if (file_exists(dirname(__FILE__) . '/servers.local.php')) { -+ require_once(dirname(__FILE__) . '/servers.local.php'); ++ require(dirname(__FILE__) . '/servers.local.php'); +} + diff --git a/horde-webmail/imp/config/conf.php b/horde-webmail/imp/config/conf.php @@ -239,7 +239,7 @@ $conf['notepad']['use_notepad'] = true; /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/imp/config/header.php b/horde-webmail/imp/config/header.php @@ -251,7 +251,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/header.local.php')) { -+ require_once(dirname(__FILE__) . '/header.local.php'); ++ require(dirname(__FILE__) . '/header.local.php'); +} + diff --git a/horde-webmail/imp/config/hooks.php b/horde-webmail/imp/config/hooks.php @@ -263,7 +263,7 @@ } } +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { -+ require_once(dirname(__FILE__) . '/hooks.local.php'); ++ require(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/imp/config/menu.php b/horde-webmail/imp/config/menu.php @@ -275,7 +275,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/imp/config/mime_drivers.php b/horde-webmail/imp/config/mime_drivers.php @@ -287,7 +287,7 @@ ) ); +if (file_exists(dirname(__FILE__) . '/mime_drivers.local.php')) { -+ require_once(dirname(__FILE__) . '/mime_drivers.local.php'); ++ require(dirname(__FILE__) . '/mime_drivers.local.php'); +} + diff --git a/horde-webmail/imp/config/motd.php b/horde-webmail/imp/config/motd.php @@ -299,7 +299,7 @@ // echo '' . _("Click here for Standard HTTP") . ' - ' . _("Click here for Secure HTTPS") . ''; +if (file_exists(dirname(__FILE__) . '/motd.local.php')) { -+ require_once(dirname(__FILE__) . '/motd.local.php'); ++ require(dirname(__FILE__) . '/motd.local.php'); +} ?>
@@ -314,7 +314,7 @@ 'shared' => false, 'type' => 'implicit'); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/imp/config/servers.php b/horde-webmail/imp/config/servers.php @@ -326,7 +326,7 @@ ); } +if (file_exists(dirname(__FILE__) . '/servers.local.php')) { -+ require_once(dirname(__FILE__) . '/servers.local.php'); ++ require(dirname(__FILE__) . '/servers.local.php'); +} + diff --git a/horde-webmail/imp/config/spelling.php b/horde-webmail/imp/config/spelling.php @@ -338,7 +338,7 @@ 'nov', 'dec', 'fwd', 'http', 'https', 'html', 'email', 'bcc', 'jpg', 'gif' ); +if (file_exists(dirname(__FILE__) . '/spelling.local.php')) { -+ require_once(dirname(__FILE__) . '/spelling.local.php'); ++ require(dirname(__FILE__) . '/spelling.local.php'); +} + diff --git a/horde-webmail/ingo/config/backends.php b/horde-webmail/ingo/config/backends.php @@ -350,7 +350,7 @@ ); } +if (file_exists(dirname(__FILE__) . '/backends.local.php')) { -+ require_once(dirname(__FILE__) . '/backends.local.php'); ++ require(dirname(__FILE__) . '/backends.local.php'); +} + diff --git a/horde-webmail/ingo/config/conf.php b/horde-webmail/ingo/config/conf.php @@ -362,7 +362,7 @@ $conf['hooks']['vacation_only'] = true; /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/ingo/config/fields.php b/horde-webmail/ingo/config/fields.php @@ -374,7 +374,7 @@ ) ); +if (file_exists(dirname(__FILE__) . '/fields.local.php')) { -+ require_once(dirname(__FILE__) . '/fields.local.php'); ++ require(dirname(__FILE__) . '/fields.local.php'); +} + diff --git a/horde-webmail/ingo/config/hooks.php b/horde-webmail/ingo/config/hooks.php @@ -386,7 +386,7 @@ // } // } +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { -+ require_once(dirname(__FILE__) . '/hooks.local.php'); ++ require(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/ingo/config/prefs.php b/horde-webmail/ingo/config/prefs.php @@ -398,7 +398,7 @@ 'type' => 'implicit' ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/kronolith/config/keywords.php b/horde-webmail/kronolith/config/keywords.php @@ -410,7 +410,7 @@ $keywords[_("Type")] = array(_("Birthday"), _("Meeting"), _("Game")); +if (file_exists(dirname(__FILE__) . '/keywords.local.php')) { -+ require_once(dirname(__FILE__) . '/keywords.local.php'); ++ require(dirname(__FILE__) . '/keywords.local.php'); +} + diff --git a/horde-webmail/kronolith/config/menu.php b/horde-webmail/kronolith/config/menu.php @@ -422,7 +422,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/kronolith/config/prefs.php b/horde-webmail/kronolith/config/prefs.php @@ -434,7 +434,7 @@ 'type' => 'implicit' ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/mimp/config/conf.php b/horde-webmail/mimp/config/conf.php @@ -446,7 +446,7 @@ $conf['mailbox']['max_subj_chars'] = 20; /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/mimp/config/menu.php b/horde-webmail/mimp/config/menu.php @@ -458,7 +458,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/mimp/config/mime_drivers.php b/horde-webmail/mimp/config/mime_drivers.php @@ -470,7 +470,7 @@ ) ); +if (file_exists(dirname(__FILE__) . '/mime_drivers.local.php')) { -+ require_once(dirname(__FILE__) . '/mime_drivers.local.php'); ++ require(dirname(__FILE__) . '/mime_drivers.local.php'); +} + diff --git a/horde-webmail/mimp/config/prefs.php b/horde-webmail/mimp/config/prefs.php @@ -482,7 +482,7 @@ // End Message Viewing preferences +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/mnemo/config/conf.php b/horde-webmail/mnemo/config/conf.php @@ -494,7 +494,7 @@ $conf['menu']['apps'] = array(); /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/mnemo/config/prefs.php b/horde-webmail/mnemo/config/prefs.php @@ -506,7 +506,7 @@ 'desc' => _("Do you want to confirm deleting entries?") ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/nag/config/conf.php b/horde-webmail/nag/config/conf.php @@ -518,7 +518,7 @@ $conf['menu']['apps'] = array(); /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/nag/config/menu.php b/horde-webmail/nag/config/menu.php @@ -530,7 +530,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/nag/config/prefs.php b/horde-webmail/nag/config/prefs.php @@ -542,7 +542,7 @@ 'type' => 'implicit', ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/turba/config/attributes.php b/horde-webmail/turba/config/attributes.php @@ -554,7 +554,7 @@ 'required' => false, ); +if (file_exists(dirname(__FILE__) . '/attributes.local.php')) { -+ require_once(dirname(__FILE__) . '/attributes.local.php'); ++ require(dirname(__FILE__) . '/attributes.local.php'); +} + diff --git a/horde-webmail/turba/config/conf.php b/horde-webmail/turba/config/conf.php @@ -566,7 +566,7 @@ $conf['documents']['type'] = 'horde'; /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/turba/config/hooks.php b/horde-webmail/turba/config/hooks.php @@ -578,7 +578,7 @@ // } // } +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { -+ require_once(dirname(__FILE__) . '/hooks.local.php'); ++ require(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/turba/config/menu.php b/horde-webmail/turba/config/menu.php @@ -590,7 +590,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/turba/config/mime_drivers.php b/horde-webmail/turba/config/mime_drivers.php @@ -602,7 +602,7 @@ * the format. */ +if (file_exists(dirname(__FILE__) . '/mime_drivers.local.php')) { -+ require_once(dirname(__FILE__) . '/mime_drivers.local.php'); ++ require(dirname(__FILE__) . '/mime_drivers.local.php'); +} + diff --git a/horde-webmail/turba/config/prefs.php b/horde-webmail/turba/config/prefs.php @@ -614,7 +614,7 @@ 'type' => 'implicit' ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/turba/config/sources.php b/horde-webmail/turba/config/sources.php @@ -626,7 +626,7 @@ 'browse' => true, ); +if (file_exists(dirname(__FILE__) . '/sources.local.php')) { -+ require_once(dirname(__FILE__) . '/sources.local.php'); ++ require(dirname(__FILE__) . '/sources.local.php'); +} + -- From cvs at kolab.org Wed May 13 13:08:06 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 13 May 2009 13:08:06 +0200 (CEST) Subject: thomas: server/kolabd/kolabd/templates clamd.conf.template.in, 1.3.4.1, 1.3.4.2 Message-ID: <20090513110806.7D239600803@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv26334/kolabd/kolabd/templates Modified Files: Tag: kolab_2_2_branch clamd.conf.template.in Log Message: Updated kolabd templates for clamav-0.95.1-20090409 kolab/issue3513 (Clamav - new upstream version 0.95.1) Index: clamd.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/clamd.conf.template.in,v retrieving revision 1.3.4.1 retrieving revision 1.3.4.2 diff -u -d -r1.3.4.1 -r1.3.4.2 --- clamd.conf.template.in 6 Apr 2009 16:17:55 -0000 1.3.4.1 +++ clamd.conf.template.in 13 May 2009 11:08:04 -0000 1.3.4.2 @@ -121,6 +121,26 @@ # Default: 120 #ReadTimeout 300 +# This option specifies the time (in seconds) after which clamd should +# timeout if a client doesn't provide any initial command after connecting. +# Default: 5 +#CommandReadTimeout 5 + +# This option specifies how long to wait (in miliseconds) if the send buffer is full. +# Keep this value low to prevent clamd hanging +# +# Default: 500 +#SendBufTimeout 200 + +# Maximum number of queued items (including those being processed by MaxThreads threads) +# It is recommended to have this value at least twice MaxThreads if possible. +# WARNING: you shouldn't increase this too much to avoid running out of file descriptors, +# the following condition should hold: +# MaxThreads*MaxRecursion + (MaxQueue - MaxThreads) + 6< RLIMIT_NOFILE (usual max is 1024) +# +# Default: 100 +#MaxQueue 200 + # Waiting for a new job will timeout after this time (seconds). # Default: 30 #IdleTimeout 60 @@ -144,7 +164,7 @@ #FollowFileSymlinks yes # Perform a database check. -# Default: 1800 (30 min) +# Default: 600 (10 min) #SelfCheck 600 # Execute a command when virus is found. In the command string %v will @@ -341,11 +361,6 @@ # ClamAV can scan within archives and compressed files. # Default: yes #ScanArchive yes - -# Use slower but memory efficient decompression algorithm. -# only affects the bzip2 decompressor. -# Default: no -#ArchiveLimitMemoryUsage yes # Mark encrypted archives as viruses (Encrypted.Zip, Encrypted.RAR). # Default: no From cvs at kolab.org Wed May 13 13:08:06 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 13 May 2009 13:08:06 +0200 (CEST) Subject: thomas: server/kolabd/kolabd ChangeLog,1.234.2.7,1.234.2.8 Message-ID: <20090513110806.7BDA8600802@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv26334/kolabd/kolabd Modified Files: Tag: kolab_2_2_branch ChangeLog Log Message: Updated kolabd templates for clamav-0.95.1-20090409 kolab/issue3513 (Clamav - new upstream version 0.95.1) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.234.2.7 retrieving revision 1.234.2.8 diff -u -d -r1.234.2.7 -r1.234.2.8 --- ChangeLog 20 Apr 2009 16:22:37 -0000 1.234.2.7 +++ ChangeLog 13 May 2009 11:08:04 -0000 1.234.2.8 @@ -1,3 +1,9 @@ +2009-05-13 Thomas Arendsen Hein + + * templates/clamd.conf.template.in: + Updated templates for clamav-0.95.1-20090409 for + kolab/issue3513 (Clamav - new upstream version 0.95.1) + 2009-04-20 Thomas Arendsen Hein * templates/slapd.conf.template.in: Make kolabAllowSMTPRecipient From cvs at kolab.org Wed May 13 13:08:06 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 13 May 2009 13:08:06 +0200 (CEST) Subject: thomas: server release-notes.txt,1.398.2.37,1.398.2.38 Message-ID: <20090513110806.74E00600169@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv26334 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: Updated kolabd templates for clamav-0.95.1-20090409 kolab/issue3513 (Clamav - new upstream version 0.95.1) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.37 retrieving revision 1.398.2.38 diff -u -d -r1.398.2.37 -r1.398.2.38 --- release-notes.txt 13 May 2009 10:05:02 -0000 1.398.2.37 +++ release-notes.txt 13 May 2009 11:08:04 -0000 1.398.2.38 @@ -55,6 +55,8 @@ kolab/issue1340 (RFC: restrict users to sending mail only to internal recipients) + kolab/issue3513 (Clamav - new upstream version 0.95.1) + - kolab-webclient-1.2.0-20090513 kolab/issue3420 (web client prefs and hooks should be From cvs at kolab.org Wed May 13 13:11:53 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 13 May 2009 13:11:53 +0200 (CEST) Subject: thomas: server/kolabd/kolabd/templates clamd.conf.template.in, 1.5, 1.6 Message-ID: <20090513111153.8EA5B600803@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv26366/kolabd/kolabd/templates Modified Files: clamd.conf.template.in Log Message: Updated kolabd templates for clamav-0.95.1-20090409 kolab/issue3513 (Clamav - new upstream version 0.95.1) Index: clamd.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/clamd.conf.template.in,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- clamd.conf.template.in 26 Mar 2009 16:17:15 -0000 1.5 +++ clamd.conf.template.in 13 May 2009 11:11:51 -0000 1.6 @@ -122,6 +122,26 @@ # Default: 120 #ReadTimeout 300 +# This option specifies the time (in seconds) after which clamd should +# timeout if a client doesn't provide any initial command after connecting. +# Default: 5 +#CommandReadTimeout 5 + +# This option specifies how long to wait (in miliseconds) if the send buffer is full. +# Keep this value low to prevent clamd hanging +# +# Default: 500 +#SendBufTimeout 200 + +# Maximum number of queued items (including those being processed by MaxThreads threads) +# It is recommended to have this value at least twice MaxThreads if possible. +# WARNING: you shouldn't increase this too much to avoid running out of file descriptors, +# the following condition should hold: +# MaxThreads*MaxRecursion + (MaxQueue - MaxThreads) + 6< RLIMIT_NOFILE (usual max is 1024) +# +# Default: 100 +#MaxQueue 200 + # Waiting for a new job will timeout after this time (seconds). # Default: 30 #IdleTimeout 60 @@ -145,7 +165,7 @@ #FollowFileSymlinks yes # Perform a database check. -# Default: 1800 (30 min) +# Default: 600 (10 min) #SelfCheck 600 # Execute a command when virus is found. In the command string %v will @@ -342,11 +362,6 @@ # ClamAV can scan within archives and compressed files. # Default: yes #ScanArchive yes - -# Use slower but memory efficient decompression algorithm. -# only affects the bzip2 decompressor. -# Default: no -#ArchiveLimitMemoryUsage yes # Mark encrypted archives as viruses (Encrypted.Zip, Encrypted.RAR). # Default: no From cvs at kolab.org Wed May 13 13:11:53 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 13 May 2009 13:11:53 +0200 (CEST) Subject: thomas: server/kolabd/kolabd ChangeLog,1.254,1.255 Message-ID: <20090513111153.8A8C8600802@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv26366/kolabd/kolabd Modified Files: ChangeLog Log Message: Updated kolabd templates for clamav-0.95.1-20090409 kolab/issue3513 (Clamav - new upstream version 0.95.1) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.254 retrieving revision 1.255 diff -u -d -r1.254 -r1.255 --- ChangeLog 9 May 2009 08:46:37 -0000 1.254 +++ ChangeLog 13 May 2009 11:11:51 -0000 1.255 @@ -1,3 +1,9 @@ +2009-05-13 Thomas Arendsen Hein + + * templates/clamd.conf.template.in: + Updated templates for clamav-0.95.1-20090409 for + kolab/issue3513 (Clamav - new upstream version 0.95.1) + 2009-05-09 Mathieu Parent * Makefile.am: include dist_conf/kolabsrv.in in source packages From cvs at kolab.org Wed May 13 13:11:53 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 13 May 2009 13:11:53 +0200 (CEST) Subject: thomas: server release-notes.txt,1.445,1.446 Message-ID: <20090513111153.84EDC600169@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv26366 Modified Files: release-notes.txt Log Message: Updated kolabd templates for clamav-0.95.1-20090409 kolab/issue3513 (Clamav - new upstream version 0.95.1) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.445 retrieving revision 1.446 diff -u -d -r1.445 -r1.446 --- release-notes.txt 9 May 2009 08:46:37 -0000 1.445 +++ release-notes.txt 13 May 2009 11:11:51 -0000 1.446 @@ -107,16 +107,17 @@ Changes between 2.2.1 and 2.2.2: (TODOs might need to be merged from kolab_2_2_branch!) -TODO: - clamav-0.95.1-20090409 -TODO: kolab/issue3513 (Clamav - new upstream version 0.95.1) + kolab/issue3513 (Clamav - new upstream version 0.95.1) - kolabd-2.2.2-2009???? Make kolabAllowSMTPRecipient readable for the nobody user, needed for kolab/issue1340 (RFC: restrict users to sending mail only to internal recipients) + + kolab/issue3513 (Clamav - new upstream version 0.95.1) TODO: - Kolab_Filter-0.1.4-20090417 From cvs at kolab.org Thu May 14 12:52:37 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 12:52:37 +0200 (CEST) Subject: thomas: server release-notes.txt,1.398.2.38,1.398.2.39 Message-ID: <20090514105237.2033860082B@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv17282 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: Fix kolab/issue3549 (append_dot_mydomain allows circumventing kolabfilter-verify-from-header) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.38 retrieving revision 1.398.2.39 diff -u -d -r1.398.2.38 -r1.398.2.39 --- release-notes.txt 13 May 2009 11:08:04 -0000 1.398.2.38 +++ release-notes.txt 14 May 2009 10:52:33 -0000 1.398.2.39 @@ -56,6 +56,8 @@ recipients) kolab/issue3513 (Clamav - new upstream version 0.95.1) + kolab/issue3549 (append_dot_mydomain allows circumventing + kolabfilter-verify-from-header) - kolab-webclient-1.2.0-20090513 From cvs at kolab.org Thu May 14 12:52:37 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 12:52:37 +0200 (CEST) Subject: thomas: server/kolabd/kolabd ChangeLog,1.234.2.8,1.234.2.9 Message-ID: <20090514105237.20BCD60082E@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv17282/kolabd/kolabd Modified Files: Tag: kolab_2_2_branch ChangeLog Log Message: Fix kolab/issue3549 (append_dot_mydomain allows circumventing kolabfilter-verify-from-header) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.234.2.8 retrieving revision 1.234.2.9 diff -u -d -r1.234.2.8 -r1.234.2.9 --- ChangeLog 13 May 2009 11:08:04 -0000 1.234.2.8 +++ ChangeLog 14 May 2009 10:52:35 -0000 1.234.2.9 @@ -1,3 +1,11 @@ +2009-05-14 Thomas Arendsen Hein + + * templates/main.cf.template.in, templates/master.cf.template.in: + Use append_dot_mydomain = no and remote_header_rewrite_domain = + domain.invalid and disable masquerade_domains for post-cleanup. + Fixes kolab/issue3549 (append_dot_mydomain allows circumventing + kolabfilter-verify-from-header) + 2009-05-13 Thomas Arendsen Hein * templates/clamd.conf.template.in: From cvs at kolab.org Thu May 14 12:52:38 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 12:52:38 +0200 (CEST) Subject: thomas: server/kolabd/kolabd/templates main.cf.template.in, 1.22, 1.22.2.1 master.cf.template.in, 1.25, 1.25.2.1 Message-ID: <20090514105238.1180360082B@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv17282/kolabd/kolabd/templates Modified Files: Tag: kolab_2_2_branch main.cf.template.in master.cf.template.in Log Message: Fix kolab/issue3549 (append_dot_mydomain allows circumventing kolabfilter-verify-from-header) Index: main.cf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/main.cf.template.in,v retrieving revision 1.22 retrieving revision 1.22.2.1 diff -u -d -r1.22 -r1.22.2.1 --- main.cf.template.in 30 Jan 2009 12:00:49 -0000 1.22 +++ main.cf.template.in 14 May 2009 10:52:36 -0000 1.22.2.1 @@ -55,6 +55,10 @@ masquerade_classes = envelope_sender, envelope_recipient, header_sender, header_recipient +# See kolab/issue3549 (append_dot_mydomain allows circumventing kolabfilter-verify-from-header) +append_dot_mydomain = no +remote_header_rewrite_domain = domain.invalid + # smtp daemon #smtpd_banner = $myhostname ESMTP $mail_name @@@if bind_any@@@ Index: master.cf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/master.cf.template.in,v retrieving revision 1.25 retrieving revision 1.25.2.1 diff -u -d -r1.25 -r1.25.2.1 --- master.cf.template.in 8 Nov 2008 11:59:28 -0000 1.25 +++ master.cf.template.in 14 May 2009 10:52:36 -0000 1.25.2.1 @@ -48,7 +48,7 @@ #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 @@@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_alias_maps= +post-cleanup unix n - n - 0 cleanup -o virtual_alias_maps= -o masquerade_domains= smtp-amavis unix - - n - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes From cvs at kolab.org Thu May 14 12:58:35 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 12:58:35 +0200 (CEST) Subject: thomas: server release-notes.txt,1.446,1.447 Message-ID: <20090514105835.A063C600828@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv17633 Modified Files: release-notes.txt Log Message: Fix kolab/issue3549 (append_dot_mydomain allows circumventing kolabfilter-verify-from-header) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.446 retrieving revision 1.447 diff -u -d -r1.446 -r1.447 --- release-notes.txt 13 May 2009 11:11:51 -0000 1.446 +++ release-notes.txt 14 May 2009 10:58:33 -0000 1.447 @@ -118,6 +118,8 @@ recipients) kolab/issue3513 (Clamav - new upstream version 0.95.1) + kolab/issue3549 (append_dot_mydomain allows circumventing + kolabfilter-verify-from-header) TODO: - Kolab_Filter-0.1.4-20090417 From cvs at kolab.org Thu May 14 12:58:35 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 12:58:35 +0200 (CEST) Subject: thomas: server/kolabd/kolabd/templates main.cf.template.in, 1.23, 1.24 master.cf.template.in, 1.26, 1.27 Message-ID: <20090514105835.AAEB360082E@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv17633/kolabd/kolabd/templates Modified Files: main.cf.template.in master.cf.template.in Log Message: Fix kolab/issue3549 (append_dot_mydomain allows circumventing kolabfilter-verify-from-header) Index: main.cf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/main.cf.template.in,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- main.cf.template.in 17 Mar 2009 16:46:31 -0000 1.23 +++ main.cf.template.in 14 May 2009 10:58:33 -0000 1.24 @@ -56,6 +56,10 @@ masquerade_classes = envelope_sender, envelope_recipient, header_sender, header_recipient +# See kolab/issue3549 (append_dot_mydomain allows circumventing kolabfilter-verify-from-header) +append_dot_mydomain = no +remote_header_rewrite_domain = domain.invalid + # smtp daemon #smtpd_banner = $myhostname ESMTP $mail_name @@@if bind_any@@@ Index: master.cf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/master.cf.template.in,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- master.cf.template.in 17 Mar 2009 16:46:31 -0000 1.26 +++ master.cf.template.in 14 May 2009 10:58:33 -0000 1.27 @@ -49,7 +49,7 @@ #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 @@@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_alias_maps= +post-cleanup unix n - n - 0 cleanup -o virtual_alias_maps= -o masquerade_domains= smtp-amavis unix - - n - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes From cvs at kolab.org Thu May 14 12:58:35 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 12:58:35 +0200 (CEST) Subject: thomas: server/kolabd/kolabd ChangeLog,1.255,1.256 Message-ID: <20090514105835.A5D3160082C@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv17633/kolabd/kolabd Modified Files: ChangeLog Log Message: Fix kolab/issue3549 (append_dot_mydomain allows circumventing kolabfilter-verify-from-header) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.255 retrieving revision 1.256 diff -u -d -r1.255 -r1.256 --- ChangeLog 13 May 2009 11:11:51 -0000 1.255 +++ ChangeLog 14 May 2009 10:58:33 -0000 1.256 @@ -1,3 +1,11 @@ +2009-05-14 Thomas Arendsen Hein + + * templates/main.cf.template.in, templates/master.cf.template.in: + Use append_dot_mydomain = no and remote_header_rewrite_domain = + domain.invalid and disable masquerade_domains for post-cleanup. + Fixes kolab/issue3549 (append_dot_mydomain allows circumventing + kolabfilter-verify-from-header) + 2009-05-13 Thomas Arendsen Hein * templates/clamd.conf.template.in: From cvs at kolab.org Thu May 14 16:10:15 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 16:10:15 +0200 (CEST) Subject: thomas: server/kolab-webadmin/kolab-webadmin ChangeLog, 1.110.2.1, 1.110.2.2 Message-ID: <20090514141015.155A060082C@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin In directory doto:/tmp/cvs-serv25970 Modified Files: Tag: kolab_2_2_branch ChangeLog Log Message: space->tab in ChangeLog Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/ChangeLog,v retrieving revision 1.110.2.1 retrieving revision 1.110.2.2 diff -u -d -r1.110.2.1 -r1.110.2.2 --- ChangeLog 13 Mar 2009 11:45:32 -0000 1.110.2.1 +++ ChangeLog 14 May 2009 14:10:12 -0000 1.110.2.2 @@ -1,6 +1,6 @@ 2009-03-07 Mathieu Parent - * php/admin/include/ldap.class.php.in: Fix undefined variable $conn + * php/admin/include/ldap.class.php.in: Fix undefined variable $conn 2009-02-16 Richard Bos From cvs at kolab.org Thu May 14 16:12:00 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 16:12:00 +0200 (CEST) Subject: thomas: server/kolab-webadmin/kolab-webadmin ChangeLog, 1.110.2.2, 1.110.2.3 Message-ID: <20090514141200.6335B60082D@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin In directory doto:/tmp/cvs-serv26083 Modified Files: Tag: kolab_2_2_branch ChangeLog Log Message: Updated french translation (kolab/issue2505) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/ChangeLog,v retrieving revision 1.110.2.2 retrieving revision 1.110.2.3 diff -u -d -r1.110.2.2 -r1.110.2.3 --- ChangeLog 14 May 2009 14:10:12 -0000 1.110.2.2 +++ ChangeLog 14 May 2009 14:11:58 -0000 1.110.2.3 @@ -1,3 +1,8 @@ +2009-05-14 Thomas Arendsen Hein + + * php/admin/locale/fr/LC_MESSAGES/messages.po: Updated french + translation (kolab/issue2505) + 2009-03-07 Mathieu Parent * php/admin/include/ldap.class.php.in: Fix undefined variable $conn From cvs at kolab.org Thu May 14 16:13:45 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 16:13:45 +0200 (CEST) Subject: thomas: server/kolab-webadmin/kolab-webadmin ChangeLog,1.112,1.113 Message-ID: <20090514141345.3444A600805@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin In directory doto:/tmp/cvs-serv26199 Modified Files: ChangeLog Log Message: Updated french translation (kolab/issue2505) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/ChangeLog,v retrieving revision 1.112 retrieving revision 1.113 diff -u -d -r1.112 -r1.113 --- ChangeLog 11 Mar 2009 16:47:02 -0000 1.112 +++ ChangeLog 14 May 2009 14:13:43 -0000 1.113 @@ -1,3 +1,8 @@ +2009-05-14 Thomas Arendsen Hein + + * php/admin/locale/fr/LC_MESSAGES/messages.po: Updated french + translation (kolab/issue2505) + 2009-03-07 Mathieu Parent * php/admin/include/ldap.class.php.in: Fix undefined variable $conn From cvs at kolab.org Thu May 14 16:15:55 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 16:15:55 +0200 (CEST) Subject: thomas: server release-notes.txt,1.398.2.39,1.398.2.40 Message-ID: <20090514141555.81161600828@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv26334 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: updated release notes Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.39 retrieving revision 1.398.2.40 diff -u -d -r1.398.2.39 -r1.398.2.40 --- release-notes.txt 14 May 2009 10:52:33 -0000 1.398.2.39 +++ release-notes.txt 14 May 2009 14:15:53 -0000 1.398.2.40 @@ -59,17 +59,21 @@ kolab/issue3549 (append_dot_mydomain allows circumventing kolabfilter-verify-from-header) - - kolab-webclient-1.2.0-20090513 - - kolab/issue3420 (web client prefs and hooks should be - configurable via templates) - - Kolab_Filter-0.1.4-20090504 kolab/issue3521 (kolabmailboxfilter does not accept mail for user+extension at example.com) kolab/issue3558 (whole-day events broken for resources) kolab/issue3568 (umlauts broken in automatically accepted events) + + - kolab-webadmin-2.2.2-2009???? + + kolab/issue2505 (update of the french translation for kolab-server 2.2) + + - kolab-webclient-1.2.0-20090513 + + kolab/issue3420 (web client prefs and hooks should be + configurable via templates) Packages in the OpenPKG based Kolab server release: From cvs at kolab.org Thu May 14 16:16:50 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 16:16:50 +0200 (CEST) Subject: thomas: server release-notes.txt,1.447,1.448 Message-ID: <20090514141650.E65D360082D@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv26399 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.447 retrieving revision 1.448 diff -u -d -r1.447 -r1.448 --- release-notes.txt 14 May 2009 10:58:33 -0000 1.447 +++ release-notes.txt 14 May 2009 14:16:48 -0000 1.448 @@ -126,6 +126,10 @@ TODO: kolab/issue3558 (whole-day events broken for resources) + - kolab-webadmin-2.2.2-2009???? + + kolab/issue2505 (update of the french translation for kolab-server 2.2) + Packages in the OpenPKG based Kolab server release: From cvs at kolab.org Thu May 14 16:32:17 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 16:32:17 +0200 (CEST) Subject: gunnar: server/kolab-webclient ChangeLog, 1.10.2.3.2.2, 1.10.2.3.2.3 kolab-webclient.spec, 1.23.2.6.2.6, 1.23.2.6.2.7 Message-ID: <20090514143217.022DE60080A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv27212/kolab-webclient Modified Files: Tag: suc_branch ChangeLog kolab-webclient.spec Log Message: MFB (kolab/issue3420 (web client prefs and hooks should be configurable via templates)) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webclient/ChangeLog,v retrieving revision 1.10.2.3.2.2 retrieving revision 1.10.2.3.2.3 diff -u -d -r1.10.2.3.2.2 -r1.10.2.3.2.3 --- ChangeLog 24 Apr 2009 17:42:20 -0000 1.10.2.3.2.2 +++ ChangeLog 14 May 2009 14:32:14 -0000 1.10.2.3.2.3 @@ -1,3 +1,10 @@ +2009-05-13 Gunnar Wrobel

+ + * kolab-webclient.spec: + + kolab/issue3420 (web client prefs and hooks should be configurable + via templates) + 2009-04-24 Gunnar Wrobel

* kolab-webclient.spec: Additional fixes for configurable mapping Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.23.2.6.2.6 retrieving revision 1.23.2.6.2.7 diff -u -d -r1.23.2.6.2.6 -r1.23.2.6.2.7 --- kolab-webclient.spec 24 Apr 2009 17:42:20 -0000 1.23.2.6.2.6 +++ kolab-webclient.spec 14 May 2009 14:32:14 -0000 1.23.2.6.2.7 @@ -2,8 +2,8 @@ %define V_horde_name horde-webmail %define V_package kolab-webclient %define V_year 2009 -%define V_month 04 -%define V_day 24 +%define V_month 05 +%define V_day 13 %define V_version 1.2.0 %define V_source_version 1.2 %define V_passwd_version 3.0.1 From cvs at kolab.org Thu May 14 16:32:17 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 16:32:17 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0/tg t_GLOBAL_HK_GW_ConfigTemplateSupport.diff, 1.1.2.1, 1.1.2.1.2.1 Message-ID: <20090514143217.A3FAC60080A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0/tg In directory doto:/tmp/cvs-serv27212/patches/horde-webmail/1.2.0/tg Modified Files: Tag: suc_branch t_GLOBAL_HK_GW_ConfigTemplateSupport.diff Log Message: MFB (kolab/issue3420 (web client prefs and hooks should be configurable via templates)) Index: t_GLOBAL_HK_GW_ConfigTemplateSupport.diff =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/tg/Attic/t_GLOBAL_HK_GW_ConfigTemplateSupport.diff,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.1.2.1 diff -u -d -r1.1.2.1 -r1.1.2.1.2.1 --- t_GLOBAL_HK_GW_ConfigTemplateSupport.diff 26 Mar 2009 21:31:00 -0000 1.1.2.1 +++ t_GLOBAL_HK_GW_ConfigTemplateSupport.diff 14 May 2009 14:32:15 -0000 1.1.2.1.2.1 @@ -13,7 +13,7 @@ Did this + a few manual edits -> for FILE in `find horde-webmail/ -wholename *config/*.php | grep -v scripts`;do A=${FILE/*config\//}; B=${A/.php/.local.php};echo "if (file_exists(dirname(__FILE__) . '/$B')) { - require_once(dirname(__FILE__) . '/$B'); + require(dirname(__FILE__) . '/$B'); } " >> $FILE;done @@ -89,7 +89,7 @@ } }*/ +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { -+ require_once(dirname(__FILE__) . '/hooks.local.php'); ++ require(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/config/mime_drivers.php b/horde-webmail/config/mime_drivers.php @@ -101,7 +101,7 @@ ) ); +if (file_exists(dirname(__FILE__) . '/mime_drivers.local.php')) { -+ require_once(dirname(__FILE__) . '/mime_drivers.local.php'); ++ require(dirname(__FILE__) . '/mime_drivers.local.php'); +} + diff --git a/horde-webmail/config/motd.php b/horde-webmail/config/motd.php @@ -114,7 +114,7 @@ + + @@ -131,7 +131,7 @@ $GLOBALS['tz'] = &$tz; +if (file_exists(dirname(__FILE__) . '/nls.local.php')) { -+ require_once(dirname(__FILE__) . '/nls.local.php'); ++ require(dirname(__FILE__) . '/nls.local.php'); +} + diff --git a/horde-webmail/config/prefs.php b/horde-webmail/config/prefs.php @@ -143,7 +143,7 @@ ); // End Rich Text Editor preferences. +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/config/registry.php b/horde-webmail/config/registry.php @@ -155,7 +155,7 @@ return $webroot; } +if (file_exists(dirname(__FILE__) . '/registry.local.php')) { -+ require_once(dirname(__FILE__) . '/registry.local.php'); ++ require(dirname(__FILE__) . '/registry.local.php'); +} + diff --git a/horde-webmail/dimp/config/conf.php b/horde-webmail/dimp/config/conf.php @@ -167,7 +167,7 @@ $conf['menu']['apps'] = array('turba', 'ingo', 'kronolith', 'nag', 'mnemo'); /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/dimp/config/hooks.php b/horde-webmail/dimp/config/hooks.php @@ -179,7 +179,7 @@ // } // } +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { -+ require_once(dirname(__FILE__) . '/hooks.local.php'); ++ require(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/dimp/config/menu.php b/horde-webmail/dimp/config/menu.php @@ -191,7 +191,7 @@ // 'icon' => $GLOBALS['registry']->getImageDir('horde') . '/horde.png'), // ); +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/dimp/config/portal.php b/horde-webmail/dimp/config/portal.php @@ -203,7 +203,7 @@ 'ob' => $collection->getBlock('kronolith', 'summary', array()) ); +if (file_exists(dirname(__FILE__) . '/portal.local.php')) { -+ require_once(dirname(__FILE__) . '/portal.local.php'); ++ require(dirname(__FILE__) . '/portal.local.php'); +} + diff --git a/horde-webmail/dimp/config/prefs.php b/horde-webmail/dimp/config/prefs.php @@ -215,7 +215,7 @@ 'type' => 'implicit', ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/dimp/config/servers.php b/horde-webmail/dimp/config/servers.php @@ -227,7 +227,7 @@ ); } +if (file_exists(dirname(__FILE__) . '/servers.local.php')) { -+ require_once(dirname(__FILE__) . '/servers.local.php'); ++ require(dirname(__FILE__) . '/servers.local.php'); +} + diff --git a/horde-webmail/imp/config/conf.php b/horde-webmail/imp/config/conf.php @@ -239,7 +239,7 @@ $conf['notepad']['use_notepad'] = true; /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/imp/config/header.php b/horde-webmail/imp/config/header.php @@ -251,7 +251,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/header.local.php')) { -+ require_once(dirname(__FILE__) . '/header.local.php'); ++ require(dirname(__FILE__) . '/header.local.php'); +} + diff --git a/horde-webmail/imp/config/hooks.php b/horde-webmail/imp/config/hooks.php @@ -263,7 +263,7 @@ } } +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { -+ require_once(dirname(__FILE__) . '/hooks.local.php'); ++ require(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/imp/config/menu.php b/horde-webmail/imp/config/menu.php @@ -275,7 +275,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/imp/config/mime_drivers.php b/horde-webmail/imp/config/mime_drivers.php @@ -287,7 +287,7 @@ ) ); +if (file_exists(dirname(__FILE__) . '/mime_drivers.local.php')) { -+ require_once(dirname(__FILE__) . '/mime_drivers.local.php'); ++ require(dirname(__FILE__) . '/mime_drivers.local.php'); +} + diff --git a/horde-webmail/imp/config/motd.php b/horde-webmail/imp/config/motd.php @@ -299,7 +299,7 @@ // echo '' . _("Click here for Standard HTTP") . ' - ' . _("Click here for Secure HTTPS") . ''; +if (file_exists(dirname(__FILE__) . '/motd.local.php')) { -+ require_once(dirname(__FILE__) . '/motd.local.php'); ++ require(dirname(__FILE__) . '/motd.local.php'); +} ?>
@@ -314,7 +314,7 @@ 'shared' => false, 'type' => 'implicit'); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/imp/config/servers.php b/horde-webmail/imp/config/servers.php @@ -326,7 +326,7 @@ ); } +if (file_exists(dirname(__FILE__) . '/servers.local.php')) { -+ require_once(dirname(__FILE__) . '/servers.local.php'); ++ require(dirname(__FILE__) . '/servers.local.php'); +} + diff --git a/horde-webmail/imp/config/spelling.php b/horde-webmail/imp/config/spelling.php @@ -338,7 +338,7 @@ 'nov', 'dec', 'fwd', 'http', 'https', 'html', 'email', 'bcc', 'jpg', 'gif' ); +if (file_exists(dirname(__FILE__) . '/spelling.local.php')) { -+ require_once(dirname(__FILE__) . '/spelling.local.php'); ++ require(dirname(__FILE__) . '/spelling.local.php'); +} + diff --git a/horde-webmail/ingo/config/backends.php b/horde-webmail/ingo/config/backends.php @@ -350,7 +350,7 @@ ); } +if (file_exists(dirname(__FILE__) . '/backends.local.php')) { -+ require_once(dirname(__FILE__) . '/backends.local.php'); ++ require(dirname(__FILE__) . '/backends.local.php'); +} + diff --git a/horde-webmail/ingo/config/conf.php b/horde-webmail/ingo/config/conf.php @@ -362,7 +362,7 @@ $conf['hooks']['vacation_only'] = true; /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/ingo/config/fields.php b/horde-webmail/ingo/config/fields.php @@ -374,7 +374,7 @@ ) ); +if (file_exists(dirname(__FILE__) . '/fields.local.php')) { -+ require_once(dirname(__FILE__) . '/fields.local.php'); ++ require(dirname(__FILE__) . '/fields.local.php'); +} + diff --git a/horde-webmail/ingo/config/hooks.php b/horde-webmail/ingo/config/hooks.php @@ -386,7 +386,7 @@ // } // } +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { -+ require_once(dirname(__FILE__) . '/hooks.local.php'); ++ require(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/ingo/config/prefs.php b/horde-webmail/ingo/config/prefs.php @@ -398,7 +398,7 @@ 'type' => 'implicit' ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/kronolith/config/keywords.php b/horde-webmail/kronolith/config/keywords.php @@ -410,7 +410,7 @@ $keywords[_("Type")] = array(_("Birthday"), _("Meeting"), _("Game")); +if (file_exists(dirname(__FILE__) . '/keywords.local.php')) { -+ require_once(dirname(__FILE__) . '/keywords.local.php'); ++ require(dirname(__FILE__) . '/keywords.local.php'); +} + diff --git a/horde-webmail/kronolith/config/menu.php b/horde-webmail/kronolith/config/menu.php @@ -422,7 +422,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/kronolith/config/prefs.php b/horde-webmail/kronolith/config/prefs.php @@ -434,7 +434,7 @@ 'type' => 'implicit' ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/mimp/config/conf.php b/horde-webmail/mimp/config/conf.php @@ -446,7 +446,7 @@ $conf['mailbox']['max_subj_chars'] = 20; /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/mimp/config/menu.php b/horde-webmail/mimp/config/menu.php @@ -458,7 +458,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/mimp/config/mime_drivers.php b/horde-webmail/mimp/config/mime_drivers.php @@ -470,7 +470,7 @@ ) ); +if (file_exists(dirname(__FILE__) . '/mime_drivers.local.php')) { -+ require_once(dirname(__FILE__) . '/mime_drivers.local.php'); ++ require(dirname(__FILE__) . '/mime_drivers.local.php'); +} + diff --git a/horde-webmail/mimp/config/prefs.php b/horde-webmail/mimp/config/prefs.php @@ -482,7 +482,7 @@ // End Message Viewing preferences +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/mnemo/config/conf.php b/horde-webmail/mnemo/config/conf.php @@ -494,7 +494,7 @@ $conf['menu']['apps'] = array(); /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/mnemo/config/prefs.php b/horde-webmail/mnemo/config/prefs.php @@ -506,7 +506,7 @@ 'desc' => _("Do you want to confirm deleting entries?") ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/nag/config/conf.php b/horde-webmail/nag/config/conf.php @@ -518,7 +518,7 @@ $conf['menu']['apps'] = array(); /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/nag/config/menu.php b/horde-webmail/nag/config/menu.php @@ -530,7 +530,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/nag/config/prefs.php b/horde-webmail/nag/config/prefs.php @@ -542,7 +542,7 @@ 'type' => 'implicit', ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/turba/config/attributes.php b/horde-webmail/turba/config/attributes.php @@ -554,7 +554,7 @@ 'required' => false, ); +if (file_exists(dirname(__FILE__) . '/attributes.local.php')) { -+ require_once(dirname(__FILE__) . '/attributes.local.php'); ++ require(dirname(__FILE__) . '/attributes.local.php'); +} + diff --git a/horde-webmail/turba/config/conf.php b/horde-webmail/turba/config/conf.php @@ -566,7 +566,7 @@ $conf['documents']['type'] = 'horde'; /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/turba/config/hooks.php b/horde-webmail/turba/config/hooks.php @@ -578,7 +578,7 @@ // } // } +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { -+ require_once(dirname(__FILE__) . '/hooks.local.php'); ++ require(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/turba/config/menu.php b/horde-webmail/turba/config/menu.php @@ -590,7 +590,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/turba/config/mime_drivers.php b/horde-webmail/turba/config/mime_drivers.php @@ -602,7 +602,7 @@ * the format. */ +if (file_exists(dirname(__FILE__) . '/mime_drivers.local.php')) { -+ require_once(dirname(__FILE__) . '/mime_drivers.local.php'); ++ require(dirname(__FILE__) . '/mime_drivers.local.php'); +} + diff --git a/horde-webmail/turba/config/prefs.php b/horde-webmail/turba/config/prefs.php @@ -614,7 +614,7 @@ 'type' => 'implicit' ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/turba/config/sources.php b/horde-webmail/turba/config/sources.php @@ -626,7 +626,7 @@ 'browse' => true, ); +if (file_exists(dirname(__FILE__) . '/sources.local.php')) { -+ require_once(dirname(__FILE__) . '/sources.local.php'); ++ require(dirname(__FILE__) . '/sources.local.php'); +} + -- From cvs at kolab.org Thu May 14 16:32:17 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 16:32:17 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0 horde-webmail-1.2.0_kolab_openpkg.patch, 1.32.2.4.2.6, 1.32.2.4.2.7 Message-ID: <20090514143217.E7454600828@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0 In directory doto:/tmp/cvs-serv27212/patches/horde-webmail/1.2.0 Modified Files: Tag: suc_branch horde-webmail-1.2.0_kolab_openpkg.patch Log Message: MFB (kolab/issue3420 (web client prefs and hooks should be configurable via templates)) Index: horde-webmail-1.2.0_kolab_openpkg.patch =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/Attic/horde-webmail-1.2.0_kolab_openpkg.patch,v retrieving revision 1.32.2.4.2.6 retrieving revision 1.32.2.4.2.7 diff -u -d -r1.32.2.4.2.6 -r1.32.2.4.2.7 --- horde-webmail-1.2.0_kolab_openpkg.patch 24 Apr 2009 17:42:20 -0000 1.32.2.4.2.6 +++ horde-webmail-1.2.0_kolab_openpkg.patch 14 May 2009 14:32:15 -0000 1.32.2.4.2.7 @@ -16090,7 +16090,7 @@ Did this + a few manual edits -> for FILE in `find horde-webmail/ -wholename *config/*.php | grep -v scripts`;do A=${FILE/*config\//}; B=${A/.php/.local.php};echo "if (file_exists(dirname(__FILE__) . '/$B')) { - require_once(dirname(__FILE__) . '/$B'); + require(dirname(__FILE__) . '/$B'); } " >> $FILE;done @@ -16166,7 +16166,7 @@ } }*/ +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { -+ require_once(dirname(__FILE__) . '/hooks.local.php'); ++ require(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/config/mime_drivers.php b/horde-webmail/config/mime_drivers.php @@ -16178,7 +16178,7 @@ ) ); +if (file_exists(dirname(__FILE__) . '/mime_drivers.local.php')) { -+ require_once(dirname(__FILE__) . '/mime_drivers.local.php'); ++ require(dirname(__FILE__) . '/mime_drivers.local.php'); +} + diff --git a/horde-webmail/config/motd.php b/horde-webmail/config/motd.php @@ -16191,7 +16191,7 @@ + + @@ -16208,7 +16208,7 @@ $GLOBALS['tz'] = &$tz; +if (file_exists(dirname(__FILE__) . '/nls.local.php')) { -+ require_once(dirname(__FILE__) . '/nls.local.php'); ++ require(dirname(__FILE__) . '/nls.local.php'); +} + diff --git a/horde-webmail/config/prefs.php b/horde-webmail/config/prefs.php @@ -16220,7 +16220,7 @@ ); // End Rich Text Editor preferences. +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/config/registry.php b/horde-webmail/config/registry.php @@ -16232,7 +16232,7 @@ return $webroot; } +if (file_exists(dirname(__FILE__) . '/registry.local.php')) { -+ require_once(dirname(__FILE__) . '/registry.local.php'); ++ require(dirname(__FILE__) . '/registry.local.php'); +} + diff --git a/horde-webmail/dimp/config/conf.php b/horde-webmail/dimp/config/conf.php @@ -16244,7 +16244,7 @@ $conf['menu']['apps'] = array('turba', 'ingo', 'kronolith', 'nag', 'mnemo'); /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/dimp/config/hooks.php b/horde-webmail/dimp/config/hooks.php @@ -16256,7 +16256,7 @@ // } // } +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { -+ require_once(dirname(__FILE__) . '/hooks.local.php'); ++ require(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/dimp/config/menu.php b/horde-webmail/dimp/config/menu.php @@ -16268,7 +16268,7 @@ // 'icon' => $GLOBALS['registry']->getImageDir('horde') . '/horde.png'), // ); +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/dimp/config/portal.php b/horde-webmail/dimp/config/portal.php @@ -16280,7 +16280,7 @@ 'ob' => $collection->getBlock('kronolith', 'summary', array()) ); +if (file_exists(dirname(__FILE__) . '/portal.local.php')) { -+ require_once(dirname(__FILE__) . '/portal.local.php'); ++ require(dirname(__FILE__) . '/portal.local.php'); +} + diff --git a/horde-webmail/dimp/config/prefs.php b/horde-webmail/dimp/config/prefs.php @@ -16292,7 +16292,7 @@ 'type' => 'implicit', ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/dimp/config/servers.php b/horde-webmail/dimp/config/servers.php @@ -16304,7 +16304,7 @@ ); } +if (file_exists(dirname(__FILE__) . '/servers.local.php')) { -+ require_once(dirname(__FILE__) . '/servers.local.php'); ++ require(dirname(__FILE__) . '/servers.local.php'); +} + diff --git a/horde-webmail/imp/config/conf.php b/horde-webmail/imp/config/conf.php @@ -16316,7 +16316,7 @@ $conf['notepad']['use_notepad'] = true; /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/imp/config/header.php b/horde-webmail/imp/config/header.php @@ -16328,7 +16328,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/header.local.php')) { -+ require_once(dirname(__FILE__) . '/header.local.php'); ++ require(dirname(__FILE__) . '/header.local.php'); +} + diff --git a/horde-webmail/imp/config/hooks.php b/horde-webmail/imp/config/hooks.php @@ -16340,7 +16340,7 @@ } } +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { -+ require_once(dirname(__FILE__) . '/hooks.local.php'); ++ require(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/imp/config/menu.php b/horde-webmail/imp/config/menu.php @@ -16352,7 +16352,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/imp/config/mime_drivers.php b/horde-webmail/imp/config/mime_drivers.php @@ -16364,7 +16364,7 @@ ) ); +if (file_exists(dirname(__FILE__) . '/mime_drivers.local.php')) { -+ require_once(dirname(__FILE__) . '/mime_drivers.local.php'); ++ require(dirname(__FILE__) . '/mime_drivers.local.php'); +} + diff --git a/horde-webmail/imp/config/motd.php b/horde-webmail/imp/config/motd.php @@ -16376,7 +16376,7 @@ // echo '' . _("Click here for Standard HTTP") . ' - ' . _("Click here for Secure HTTPS") . ''; +if (file_exists(dirname(__FILE__) . '/motd.local.php')) { -+ require_once(dirname(__FILE__) . '/motd.local.php'); ++ require(dirname(__FILE__) . '/motd.local.php'); +} ?>
@@ -16391,7 +16391,7 @@ 'shared' => false, 'type' => 'implicit'); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/imp/config/servers.php b/horde-webmail/imp/config/servers.php @@ -16403,7 +16403,7 @@ ); } +if (file_exists(dirname(__FILE__) . '/servers.local.php')) { -+ require_once(dirname(__FILE__) . '/servers.local.php'); ++ require(dirname(__FILE__) . '/servers.local.php'); +} + diff --git a/horde-webmail/imp/config/spelling.php b/horde-webmail/imp/config/spelling.php @@ -16415,7 +16415,7 @@ 'nov', 'dec', 'fwd', 'http', 'https', 'html', 'email', 'bcc', 'jpg', 'gif' ); +if (file_exists(dirname(__FILE__) . '/spelling.local.php')) { -+ require_once(dirname(__FILE__) . '/spelling.local.php'); ++ require(dirname(__FILE__) . '/spelling.local.php'); +} + diff --git a/horde-webmail/ingo/config/backends.php b/horde-webmail/ingo/config/backends.php @@ -16427,7 +16427,7 @@ ); } +if (file_exists(dirname(__FILE__) . '/backends.local.php')) { -+ require_once(dirname(__FILE__) . '/backends.local.php'); ++ require(dirname(__FILE__) . '/backends.local.php'); +} + diff --git a/horde-webmail/ingo/config/conf.php b/horde-webmail/ingo/config/conf.php @@ -16439,7 +16439,7 @@ $conf['hooks']['vacation_only'] = true; /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/ingo/config/fields.php b/horde-webmail/ingo/config/fields.php @@ -16451,7 +16451,7 @@ ) ); +if (file_exists(dirname(__FILE__) . '/fields.local.php')) { -+ require_once(dirname(__FILE__) . '/fields.local.php'); ++ require(dirname(__FILE__) . '/fields.local.php'); +} + diff --git a/horde-webmail/ingo/config/hooks.php b/horde-webmail/ingo/config/hooks.php @@ -16463,7 +16463,7 @@ // } // } +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { -+ require_once(dirname(__FILE__) . '/hooks.local.php'); ++ require(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/ingo/config/prefs.php b/horde-webmail/ingo/config/prefs.php @@ -16475,7 +16475,7 @@ 'type' => 'implicit' ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/kronolith/config/keywords.php b/horde-webmail/kronolith/config/keywords.php @@ -16487,7 +16487,7 @@ $keywords[_("Type")] = array(_("Birthday"), _("Meeting"), _("Game")); +if (file_exists(dirname(__FILE__) . '/keywords.local.php')) { -+ require_once(dirname(__FILE__) . '/keywords.local.php'); ++ require(dirname(__FILE__) . '/keywords.local.php'); +} + diff --git a/horde-webmail/kronolith/config/menu.php b/horde-webmail/kronolith/config/menu.php @@ -16499,7 +16499,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/kronolith/config/prefs.php b/horde-webmail/kronolith/config/prefs.php @@ -16511,7 +16511,7 @@ 'type' => 'implicit' ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/mimp/config/conf.php b/horde-webmail/mimp/config/conf.php @@ -16523,7 +16523,7 @@ $conf['mailbox']['max_subj_chars'] = 20; /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/mimp/config/menu.php b/horde-webmail/mimp/config/menu.php @@ -16535,7 +16535,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/mimp/config/mime_drivers.php b/horde-webmail/mimp/config/mime_drivers.php @@ -16547,7 +16547,7 @@ ) ); +if (file_exists(dirname(__FILE__) . '/mime_drivers.local.php')) { -+ require_once(dirname(__FILE__) . '/mime_drivers.local.php'); ++ require(dirname(__FILE__) . '/mime_drivers.local.php'); +} + diff --git a/horde-webmail/mimp/config/prefs.php b/horde-webmail/mimp/config/prefs.php @@ -16559,7 +16559,7 @@ // End Message Viewing preferences +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/mnemo/config/conf.php b/horde-webmail/mnemo/config/conf.php @@ -16571,7 +16571,7 @@ $conf['menu']['apps'] = array(); /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/mnemo/config/prefs.php b/horde-webmail/mnemo/config/prefs.php @@ -16583,7 +16583,7 @@ 'desc' => _("Do you want to confirm deleting entries?") ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/nag/config/conf.php b/horde-webmail/nag/config/conf.php @@ -16595,7 +16595,7 @@ $conf['menu']['apps'] = array(); /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/nag/config/menu.php b/horde-webmail/nag/config/menu.php @@ -16607,7 +16607,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/nag/config/prefs.php b/horde-webmail/nag/config/prefs.php @@ -16619,7 +16619,7 @@ 'type' => 'implicit', ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/turba/config/attributes.php b/horde-webmail/turba/config/attributes.php @@ -16631,7 +16631,7 @@ 'required' => false, ); +if (file_exists(dirname(__FILE__) . '/attributes.local.php')) { -+ require_once(dirname(__FILE__) . '/attributes.local.php'); ++ require(dirname(__FILE__) . '/attributes.local.php'); +} + diff --git a/horde-webmail/turba/config/conf.php b/horde-webmail/turba/config/conf.php @@ -16643,7 +16643,7 @@ $conf['documents']['type'] = 'horde'; /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */ +if (file_exists(dirname(__FILE__) . '/conf.local.php')) { -+ require_once(dirname(__FILE__) . '/conf.local.php'); ++ require(dirname(__FILE__) . '/conf.local.php'); +} + diff --git a/horde-webmail/turba/config/hooks.php b/horde-webmail/turba/config/hooks.php @@ -16655,7 +16655,7 @@ // } // } +if (file_exists(dirname(__FILE__) . '/hooks.local.php')) { -+ require_once(dirname(__FILE__) . '/hooks.local.php'); ++ require(dirname(__FILE__) . '/hooks.local.php'); +} + diff --git a/horde-webmail/turba/config/menu.php b/horde-webmail/turba/config/menu.php @@ -16667,7 +16667,7 @@ /* Add your custom entries below this line. */ +if (file_exists(dirname(__FILE__) . '/menu.local.php')) { -+ require_once(dirname(__FILE__) . '/menu.local.php'); ++ require(dirname(__FILE__) . '/menu.local.php'); +} + diff --git a/horde-webmail/turba/config/mime_drivers.php b/horde-webmail/turba/config/mime_drivers.php @@ -16679,7 +16679,7 @@ * the format. */ +if (file_exists(dirname(__FILE__) . '/mime_drivers.local.php')) { -+ require_once(dirname(__FILE__) . '/mime_drivers.local.php'); ++ require(dirname(__FILE__) . '/mime_drivers.local.php'); +} + diff --git a/horde-webmail/turba/config/prefs.php b/horde-webmail/turba/config/prefs.php @@ -16691,7 +16691,7 @@ 'type' => 'implicit' ); +if (file_exists(dirname(__FILE__) . '/prefs.local.php')) { -+ require_once(dirname(__FILE__) . '/prefs.local.php'); ++ require(dirname(__FILE__) . '/prefs.local.php'); +} + diff --git a/horde-webmail/turba/config/sources.php b/horde-webmail/turba/config/sources.php @@ -16703,7 +16703,7 @@ 'browse' => true, ); +if (file_exists(dirname(__FILE__) . '/sources.local.php')) { -+ require_once(dirname(__FILE__) . '/sources.local.php'); ++ require(dirname(__FILE__) . '/sources.local.php'); +} + -- From cvs at kolab.org Thu May 14 16:35:39 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 16:35:39 +0200 (CEST) Subject: thomas: server release-notes.txt,1.448,1.449 Message-ID: <20090514143539.BCA50600805@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv27421 Modified Files: release-notes.txt Log Message: kolab/issue3570 (Viewing external addresses fails to display phone numbers and some other values) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.448 retrieving revision 1.449 diff -u -d -r1.448 -r1.449 --- release-notes.txt 14 May 2009 14:16:48 -0000 1.448 +++ release-notes.txt 14 May 2009 14:35:37 -0000 1.449 @@ -129,6 +129,8 @@ - kolab-webadmin-2.2.2-2009???? kolab/issue2505 (update of the french translation for kolab-server 2.2) + kolab/issue3570 (Viewing external addresses fails to display phone + numbers and some other values) Packages in the OpenPKG based Kolab server release: From cvs at kolab.org Thu May 14 16:35:39 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 16:35:39 +0200 (CEST) Subject: thomas: server/kolab-webadmin/kolab-webadmin ChangeLog,1.113,1.114 Message-ID: <20090514143539.C0A6A60080A@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin In directory doto:/tmp/cvs-serv27421/kolab-webadmin/kolab-webadmin Modified Files: ChangeLog Log Message: kolab/issue3570 (Viewing external addresses fails to display phone numbers and some other values) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/ChangeLog,v retrieving revision 1.113 retrieving revision 1.114 diff -u -d -r1.113 -r1.114 --- ChangeLog 14 May 2009 14:13:43 -0000 1.113 +++ ChangeLog 14 May 2009 14:35:37 -0000 1.114 @@ -3,6 +3,10 @@ * php/admin/locale/fr/LC_MESSAGES/messages.po: Updated french translation (kolab/issue2505) + * www/admin/addressbook/addr.php.in: Fix kolab/issue3570 (Viewing + external addresses fails to display phone numbers and some other + values) by removing strtolower for attribute names. + 2009-03-07 Mathieu Parent * php/admin/include/ldap.class.php.in: Fix undefined variable $conn From cvs at kolab.org Thu May 14 16:35:39 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 16:35:39 +0200 (CEST) Subject: thomas: server/kolab-webadmin/kolab-webadmin/www/admin/addressbook addr.php.in, 1.10, 1.11 Message-ID: <20090514143539.C471B600828@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/addressbook In directory doto:/tmp/cvs-serv27421/kolab-webadmin/kolab-webadmin/www/admin/addressbook Modified Files: addr.php.in Log Message: kolab/issue3570 (Viewing external addresses fails to display phone numbers and some other values) Index: addr.php.in =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/addressbook/addr.php.in,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- addr.php.in 23 Feb 2008 20:19:12 -0000 1.10 +++ addr.php.in 14 May 2009 14:35:37 -0000 1.11 @@ -34,8 +34,8 @@ foreach( array( 'title', 'o', 'ou', 'roomNumber', 'street', 'postOfficeBox', 'postalCode', 'l', 'c', 'telephoneNumber', 'facsimileTelephoneNumber' ) as $attr ) { - if (is_array($ldap_object[strtolower($attr)])) $v = $ldap_object[strtolower($attr)][0]; - else $v = $ldap_object[strtolower($attr)]; + if (is_array($ldap_object[$attr])) $v = $ldap_object[$attr][0]; + else $v = $ldap_object[$attr]; $form->entries[$attr]['value'] = $v; } if (is_array($ldap_object['alias'])) { From cvs at kolab.org Thu May 14 16:36:04 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 16:36:04 +0200 (CEST) Subject: thomas: server release-notes.txt,1.398.2.40,1.398.2.41 Message-ID: <20090514143604.89D27600828@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv27510 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: kolab/issue3570 (Viewing external addresses fails to display phone numbers and some other values) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.40 retrieving revision 1.398.2.41 diff -u -d -r1.398.2.40 -r1.398.2.41 --- release-notes.txt 14 May 2009 14:15:53 -0000 1.398.2.40 +++ release-notes.txt 14 May 2009 14:36:02 -0000 1.398.2.41 @@ -69,6 +69,8 @@ - kolab-webadmin-2.2.2-2009???? kolab/issue2505 (update of the french translation for kolab-server 2.2) + kolab/issue3570 (Viewing external addresses fails to display phone + numbers and some other values) - kolab-webclient-1.2.0-20090513 From cvs at kolab.org Thu May 14 16:36:04 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 16:36:04 +0200 (CEST) Subject: thomas: server/kolab-webadmin/kolab-webadmin/www/admin/addressbook addr.php.in, 1.10, 1.10.2.1 Message-ID: <20090514143604.8F0CF600830@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/addressbook In directory doto:/tmp/cvs-serv27510/kolab-webadmin/kolab-webadmin/www/admin/addressbook Modified Files: Tag: kolab_2_2_branch addr.php.in Log Message: kolab/issue3570 (Viewing external addresses fails to display phone numbers and some other values) Index: addr.php.in =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/addressbook/addr.php.in,v retrieving revision 1.10 retrieving revision 1.10.2.1 diff -u -d -r1.10 -r1.10.2.1 --- addr.php.in 23 Feb 2008 20:19:12 -0000 1.10 +++ addr.php.in 14 May 2009 14:36:02 -0000 1.10.2.1 @@ -34,8 +34,8 @@ foreach( array( 'title', 'o', 'ou', 'roomNumber', 'street', 'postOfficeBox', 'postalCode', 'l', 'c', 'telephoneNumber', 'facsimileTelephoneNumber' ) as $attr ) { - if (is_array($ldap_object[strtolower($attr)])) $v = $ldap_object[strtolower($attr)][0]; - else $v = $ldap_object[strtolower($attr)]; + if (is_array($ldap_object[$attr])) $v = $ldap_object[$attr][0]; + else $v = $ldap_object[$attr]; $form->entries[$attr]['value'] = $v; } if (is_array($ldap_object['alias'])) { From cvs at kolab.org Thu May 14 16:36:04 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 16:36:04 +0200 (CEST) Subject: thomas: server/kolab-webadmin/kolab-webadmin ChangeLog, 1.110.2.3, 1.110.2.4 Message-ID: <20090514143604.8CF0760082F@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin In directory doto:/tmp/cvs-serv27510/kolab-webadmin/kolab-webadmin Modified Files: Tag: kolab_2_2_branch ChangeLog Log Message: kolab/issue3570 (Viewing external addresses fails to display phone numbers and some other values) Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/ChangeLog,v retrieving revision 1.110.2.3 retrieving revision 1.110.2.4 diff -u -d -r1.110.2.3 -r1.110.2.4 --- ChangeLog 14 May 2009 14:11:58 -0000 1.110.2.3 +++ ChangeLog 14 May 2009 14:36:02 -0000 1.110.2.4 @@ -3,6 +3,10 @@ * php/admin/locale/fr/LC_MESSAGES/messages.po: Updated french translation (kolab/issue2505) + * www/admin/addressbook/addr.php.in: Fix kolab/issue3570 (Viewing + external addresses fails to display phone numbers and some other + values) by removing strtolower for attribute names. + 2009-03-07 Mathieu Parent * php/admin/include/ldap.class.php.in: Fix undefined variable $conn From cvs at kolab.org Thu May 14 16:38:23 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 16:38:23 +0200 (CEST) Subject: thomas: server install-kolab.sh,1.54.2.6,1.54.2.7 Message-ID: <20090514143823.EFEE6600832@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv27624 Modified Files: Tag: kolab_2_2_branch install-kolab.sh Log Message: Bumped some version numbers to 2.2.2 Index: install-kolab.sh =================================================================== RCS file: /kolabrepository/server/install-kolab.sh,v retrieving revision 1.54.2.6 retrieving revision 1.54.2.7 diff -u -d -r1.54.2.6 -r1.54.2.7 --- install-kolab.sh 17 Apr 2009 14:30:19 -0000 1.54.2.6 +++ install-kolab.sh 14 May 2009 14:38:21 -0000 1.54.2.7 @@ -12,7 +12,7 @@ # # This program is free software under the GNU GPL (>=v2) -KOLAB_VERSION="2.2.1+CVS" +KOLAB_VERSION="2.2.2" KID="19414" TAG="kolab" From cvs at kolab.org Thu May 14 16:38:24 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 16:38:24 +0200 (CEST) Subject: thomas: server/kolab-webadmin/kolab-webadmin configure.ac, 1.30, 1.30.2.1 Message-ID: <20090514143824.07B9A600832@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin In directory doto:/tmp/cvs-serv27624/kolab-webadmin/kolab-webadmin Modified Files: Tag: kolab_2_2_branch configure.ac Log Message: Bumped some version numbers to 2.2.2 Index: configure.ac =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/configure.ac,v retrieving revision 1.30 retrieving revision 1.30.2.1 diff -u -d -r1.30 -r1.30.2.1 --- configure.ac 12 Dec 2008 13:33:25 -0000 1.30 +++ configure.ac 14 May 2009 14:38:21 -0000 1.30.2.1 @@ -1,6 +1,6 @@ AC_PREREQ(2.57) -m4_define(_VERSION,2.2.1) +m4_define(_VERSION,2.2.2) AC_INIT([kolab-webadmin],[_VERSION],[kolab-devel at kolab.org]) AC_CONFIG_AUX_DIR(.) From cvs at kolab.org Thu May 14 16:38:35 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 16:38:35 +0200 (CEST) Subject: thomas: server install-kolab.sh,1.61,1.62 Message-ID: <20090514143835.D924B600833@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv27646 Modified Files: install-kolab.sh Log Message: Bumped some version numbers to 2.2.2(+CVS) Index: install-kolab.sh =================================================================== RCS file: /kolabrepository/server/install-kolab.sh,v retrieving revision 1.61 retrieving revision 1.62 diff -u -d -r1.61 -r1.62 --- install-kolab.sh 27 Mar 2009 11:16:07 -0000 1.61 +++ install-kolab.sh 14 May 2009 14:38:33 -0000 1.62 @@ -12,7 +12,7 @@ # # This program is free software under the GNU GPL (>=v2) -KOLAB_VERSION="2.2.1+CVS" +KOLAB_VERSION="2.2.2+CVS" KID="19414" TAG="kolab" From cvs at kolab.org Thu May 14 16:38:36 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 16:38:36 +0200 (CEST) Subject: thomas: server/kolab-webadmin/kolab-webadmin configure.ac,1.30,1.31 Message-ID: <20090514143836.25615600833@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin In directory doto:/tmp/cvs-serv27646/kolab-webadmin/kolab-webadmin Modified Files: configure.ac Log Message: Bumped some version numbers to 2.2.2(+CVS) Index: configure.ac =================================================================== RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/configure.ac,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- configure.ac 12 Dec 2008 13:33:25 -0000 1.30 +++ configure.ac 14 May 2009 14:38:33 -0000 1.31 @@ -1,6 +1,6 @@ AC_PREREQ(2.57) -m4_define(_VERSION,2.2.1) +m4_define(_VERSION,2.2.2) AC_INIT([kolab-webadmin],[_VERSION],[kolab-devel at kolab.org]) AC_CONFIG_AUX_DIR(.) From cvs at kolab.org Thu May 14 16:41:20 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 16:41:20 +0200 (CEST) Subject: thomas: server/kolabd/kolabd configure.ac,1.12,1.13 Message-ID: <20090514144120.F327B600805@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv27818 Modified Files: configure.ac Log Message: bumped kolabd to 2.2.2, too Index: configure.ac =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/configure.ac,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- configure.ac 12 Dec 2008 13:33:25 -0000 1.12 +++ configure.ac 14 May 2009 14:41:18 -0000 1.13 @@ -1,7 +1,7 @@ AC_PREREQ(2.59) # not the real version -m4_define(_VERSION,2.2.1) +m4_define(_VERSION,2.2.2) AC_INIT([kolabd],[_VERSION],[kolab-devel at kolab.org]) AC_CONFIG_AUX_DIR(.) From cvs at kolab.org Thu May 14 16:41:28 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 16:41:28 +0200 (CEST) Subject: thomas: server/kolabd/kolabd configure.ac,1.12,1.12.2.1 Message-ID: <20090514144128.D32F0600828@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv27841/kolabd Modified Files: Tag: kolab_2_2_branch configure.ac Log Message: bumped kolabd to 2.2.2, too Index: configure.ac =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/configure.ac,v retrieving revision 1.12 retrieving revision 1.12.2.1 diff -u -d -r1.12 -r1.12.2.1 --- configure.ac 12 Dec 2008 13:33:25 -0000 1.12 +++ configure.ac 14 May 2009 14:41:26 -0000 1.12.2.1 @@ -1,7 +1,7 @@ AC_PREREQ(2.59) # not the real version -m4_define(_VERSION,2.2.1) +m4_define(_VERSION,2.2.2) AC_INIT([kolabd],[_VERSION],[kolab-devel at kolab.org]) AC_CONFIG_AUX_DIR(.) From cvs at kolab.org Thu May 14 18:06:29 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 18:06:29 +0200 (CEST) Subject: thomas: server 1st.README, 1.1.2.8, 1.1.2.9 release-notes.txt, 1.398.2.41, 1.398.2.42 Message-ID: <20090514160629.3A22D60080A@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv31367 Modified Files: Tag: kolab_2_2_branch 1st.README release-notes.txt Log Message: Set 20090515 as release date for 2.2.2, note known package revisions Index: 1st.README =================================================================== RCS file: /kolabrepository/server/1st.README,v retrieving revision 1.1.2.8 retrieving revision 1.1.2.9 diff -u -d -r1.1.2.8 -r1.1.2.9 --- 1st.README 17 Apr 2009 14:38:41 -0000 1.1.2.8 +++ 1st.README 14 May 2009 16:06:26 -0000 1.1.2.9 @@ -1,6 +1,6 @@ Kolab Server 2.2 Install and Upgrade Information ================================================ -(Version 2009????, Kolab Server 2.2.2) +(Version 20090515, Kolab Server 2.2.2) See http://kolab.org/ for general information about Kolab, or look at http://wiki.kolab.org/ for specific topics. Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.41 retrieving revision 1.398.2.42 diff -u -d -r1.398.2.41 -r1.398.2.42 --- release-notes.txt 14 May 2009 14:36:02 -0000 1.398.2.41 +++ release-notes.txt 14 May 2009 16:06:26 -0000 1.398.2.42 @@ -1,6 +1,6 @@ Kolab Server 2.2 Release Notes ============================== -(Version 2009????, Kolab Server 2.2.2) +(Version 20090515, Kolab Server 2.2.2) For upgrading and installation instructions, please refer to the 1st.README file in the package directory. @@ -49,7 +49,7 @@ kolab/issue3513 (Clamav - new upstream version 0.95.1) - - kolabd-2.2.2-2009???? + - kolabd-2.2.2-20090514 Make kolabAllowSMTPRecipient readable for the nobody user, needed for kolab/issue1340 (RFC: restrict users to sending mail only to internal @@ -66,7 +66,7 @@ kolab/issue3558 (whole-day events broken for resources) kolab/issue3568 (umlauts broken in automatically accepted events) - - kolab-webadmin-2.2.2-2009???? + - kolab-webadmin-2.2.2-20090514 kolab/issue2505 (update of the french translation for kolab-server 2.2) kolab/issue3570 (Viewing external addresses fails to display phone From cvs at kolab.org Thu May 14 18:06:51 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 18:06:51 +0200 (CEST) Subject: thomas: server release-notes.txt,1.449,1.450 Message-ID: <20090514160651.5A1FC600828@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv31431 Modified Files: release-notes.txt Log Message: note known package revisions for 2.2.2 Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.449 retrieving revision 1.450 diff -u -d -r1.449 -r1.450 --- release-notes.txt 14 May 2009 14:35:37 -0000 1.449 +++ release-notes.txt 14 May 2009 16:06:49 -0000 1.450 @@ -111,7 +111,7 @@ kolab/issue3513 (Clamav - new upstream version 0.95.1) - - kolabd-2.2.2-2009???? + - kolabd-2.2.2-20090514 Make kolabAllowSMTPRecipient readable for the nobody user, needed for kolab/issue1340 (RFC: restrict users to sending mail only to internal @@ -126,7 +126,7 @@ TODO: kolab/issue3558 (whole-day events broken for resources) - - kolab-webadmin-2.2.2-2009???? + - kolab-webadmin-2.2.2-20090514 kolab/issue2505 (update of the french translation for kolab-server 2.2) kolab/issue3570 (Viewing external addresses fails to display phone From cvs at kolab.org Thu May 14 18:07:13 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 18:07:13 +0200 (CEST) Subject: wilde: server/patches/horde-webmail/1.2.0/merges issue3329.patch, NONE, 1.1.4.1 series, 1.1, 1.1.2.1 Message-ID: <20090514160713.D9AEA60082A@lists.intevation.de> Author: wilde Update of /kolabrepository/server/patches/horde-webmail/1.2.0/merges In directory doto:/tmp/cvs-serv31454/merges Modified Files: Tag: kolab_2_2_branch series Added Files: Tag: kolab_2_2_branch issue3329.patch Log Message: Added Boris patch for kolab/issue3329 improving placement of invitation handling popup menu (merged from suc_branch) --- NEW FILE: issue3329.patch --- diff --git a/horde-webmail/imp/lib/MIME/Viewer/itip.php b/horde-webmail/imp/lib/MIME/Viewer/itip.php index 3227519..48769a2 100644 --- a/horde-webmail/imp/lib/MIME/Viewer/itip.php +++ b/horde-webmail/imp/lib/MIME/Viewer/itip.php @@ -752,8 +752,6 @@ class IMP_MIME_Viewer_itip extends MIME_Viewer { } $script = 'if (DIMP.baseWindow) {var B = DIMP.baseWindow.DimpBase;} else {B = DimpBase;};DimpCore.addMouseEvents({ id: \'button_invitation_cont\', type: \'itippopdown\', offset: \'button_invitation_cont\', left: true});'; - $script .= '[ \'acceptimport\', \'import\', \'accept\', \'tentative\', \'deny\', \'update\', \'send\' ].each(function(a) {var d = $(\'ctx_itippopdown_\' + a); if (d) { DimpCore.clickObserveHandler({ d: d, f: function(a) { B.itip(a, DIMP.conf.msg_index, DIMP.conf.msg_folder, ' . $id . '); window.close(); }.curry(a) })}})'; - $html .= '

' . _createMEntry(_("Invitation"), 'kronolith.png', 'button_invitation', 'hasmenu', true, 'kronolith') . Horde::img('popdown.png', '', array(), $GLOBALS['registry']->getImageDir('dimp')) . '

'; if ($this->_msgs) { @@ -866,14 +864,30 @@ class IMP_MIME_Viewer_itip extends MIME_Viewer { $html .= ' '; } else if ($_SESSION['imp']['viewmode'] == 'dimp') { + // the div of the context menu + $script = "var itipContextMenu = document.createElement('div');\n"; + $script .= "itipContextMenu.setAttribute('class', 'context');\n"; + $script .= "itipContextMenu.setAttribute('id', 'ctx_itippopdown');\n"; + $script .= "itipContextMenu.setAttribute('style', 'display:none');\n"; - $html .= '

'; - + // all the context menu items foreach ($options as $key => $description) { - $html .= '
' . _createMEntry($description, 'kronolith.png', 'ctx_itippopdown_' . $key, '', true, 'kronolith') . '
'; + $script .= "var itipContextMenuItem = document.createElement('a');\n"; + $script .= "itipContextMenuItem.setAttribute('id', 'ctx_itippopdown" . $key . "');\n"; + $script .= "var linkText = document.createTextNode('" . $description . "');\n"; + $script .= "itipContextMenuItem.appendChild(linkText);\n"; + $script .= "itipContextMenu.appendChild(itipContextMenuItem);\n"; + $script .= "var d = $(itipContextMenuItem);\n"; + $script .= "DimpCore.clickObserveHandler({ d: d,\n"; + $script .= " f: function(a) {\n"; + $script .= " B.itip(a, DIMP.conf.msg_index, DIMP.conf.msg_folder, '" . $id . "');\n"; + $script .= " window.close();\n"; + $script .= " }.curry('" . $key . "'),\n"; + $script .= " ns: true,\n"; + $script .= " });\n"; } - - $html .= '
'; + $script .= "document.getElementById('dimpPage').appendChild(itipContextMenu);\n"; + $html .= ''; } } Index: series =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/merges/Attic/series,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -d -r1.1 -r1.1.2.1 --- series 20 Feb 2009 10:19:09 -0000 1.1 +++ series 14 May 2009 16:07:11 -0000 1.1.2.1 @@ -1 +1,2 @@ t_framework_HK_SW_Kolab__Storage_DovecotSharedFolderOwner.diff +issue3329.patch From cvs at kolab.org Thu May 14 18:07:14 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 18:07:14 +0200 (CEST) Subject: wilde: server/patches/horde-webmail/1.2.0 horde-webmail-1.2.0_kolab_openpkg.patch, 1.32.2.5, 1.32.2.6 Message-ID: <20090514160714.223C360082A@lists.intevation.de> Author: wilde Update of /kolabrepository/server/patches/horde-webmail/1.2.0 In directory doto:/tmp/cvs-serv31454 Modified Files: Tag: kolab_2_2_branch horde-webmail-1.2.0_kolab_openpkg.patch Log Message: Added Boris patch for kolab/issue3329 improving placement of invitation handling popup menu (merged from suc_branch) Index: horde-webmail-1.2.0_kolab_openpkg.patch =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/Attic/horde-webmail-1.2.0_kolab_openpkg.patch,v retrieving revision 1.32.2.5 retrieving revision 1.32.2.6 diff -u -d -r1.32.2.5 -r1.32.2.6 --- horde-webmail-1.2.0_kolab_openpkg.patch 13 May 2009 10:05:03 -0000 1.32.2.5 +++ horde-webmail-1.2.0_kolab_openpkg.patch 14 May 2009 16:07:11 -0000 1.32.2.6 @@ -20022,3 +20022,52 @@ } Diff finished. Wed Feb 18 17:55:20 2009 +diff --git a/horde-webmail/imp/lib/MIME/Viewer/itip.php b/horde-webmail/imp/lib/MIME/Viewer/itip.php +index 3227519..48769a2 100644 +--- a/horde-webmail/imp/lib/MIME/Viewer/itip.php ++++ b/horde-webmail/imp/lib/MIME/Viewer/itip.php +@@ -752,8 +752,6 @@ class IMP_MIME_Viewer_itip extends MIME_Viewer { + } + + $script = 'if (DIMP.baseWindow) {var B = DIMP.baseWindow.DimpBase;} else {B = DimpBase;};DimpCore.addMouseEvents({ id: \'button_invitation_cont\', type: \'itippopdown\', offset: \'button_invitation_cont\', left: true});'; +- $script .= '[ \'acceptimport\', \'import\', \'accept\', \'tentative\', \'deny\', \'update\', \'send\' ].each(function(a) {var d = $(\'ctx_itippopdown_\' + a); if (d) { DimpCore.clickObserveHandler({ d: d, f: function(a) { B.itip(a, DIMP.conf.msg_index, DIMP.conf.msg_folder, ' . $id . '); window.close(); }.curry(a) })}})'; +- + $html .= '
' . _createMEntry(_("Invitation"), 'kronolith.png', 'button_invitation', 'hasmenu', true, 'kronolith') . Horde::img('popdown.png', '', array(), $GLOBALS['registry']->getImageDir('dimp')) . '

'; + + if ($this->_msgs) { +@@ -866,14 +864,30 @@ class IMP_MIME_Viewer_itip extends MIME_Viewer { + $html .= ' '; + + } else if ($_SESSION['imp']['viewmode'] == 'dimp') { ++ // the div of the context menu ++ $script = "var itipContextMenu = document.createElement('div');\n"; ++ $script .= "itipContextMenu.setAttribute('class', 'context');\n"; ++ $script .= "itipContextMenu.setAttribute('id', 'ctx_itippopdown');\n"; ++ $script .= "itipContextMenu.setAttribute('style', 'display:none');\n"; + +- $html .= '

'; +- ++ // all the context menu items + foreach ($options as $key => $description) { +- $html .= '
' . _createMEntry($description, 'kronolith.png', 'ctx_itippopdown_' . $key, '', true, 'kronolith') . '
'; ++ $script .= "var itipContextMenuItem = document.createElement('a');\n"; ++ $script .= "itipContextMenuItem.setAttribute('id', 'ctx_itippopdown" . $key . "');\n"; ++ $script .= "var linkText = document.createTextNode('" . $description . "');\n"; ++ $script .= "itipContextMenuItem.appendChild(linkText);\n"; ++ $script .= "itipContextMenu.appendChild(itipContextMenuItem);\n"; ++ $script .= "var d = $(itipContextMenuItem);\n"; ++ $script .= "DimpCore.clickObserveHandler({ d: d,\n"; ++ $script .= " f: function(a) {\n"; ++ $script .= " B.itip(a, DIMP.conf.msg_index, DIMP.conf.msg_folder, '" . $id . "');\n"; ++ $script .= " window.close();\n"; ++ $script .= " }.curry('" . $key . "'),\n"; ++ $script .= " ns: true,\n"; ++ $script .= " });\n"; + } +- +- $html .= '
'; ++ $script .= "document.getElementById('dimpPage').appendChild(itipContextMenu);\n"; ++ $html .= ''; + } + } + From cvs at kolab.org Thu May 14 18:14:10 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 18:14:10 +0200 (CEST) Subject: wilde: server release-notes.txt,1.398.2.42,1.398.2.43 Message-ID: <20090514161410.C37B760080A@lists.intevation.de> Author: wilde Update of /kolabrepository/server In directory doto:/tmp/cvs-serv31744 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: Added Boris patch for kolab/issue3329 improving placement of invitation handling popup menu (merged from suc_branch) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.42 retrieving revision 1.398.2.43 diff -u -d -r1.398.2.42 -r1.398.2.43 --- release-notes.txt 14 May 2009 16:06:26 -0000 1.398.2.42 +++ release-notes.txt 14 May 2009 16:14:08 -0000 1.398.2.43 @@ -76,7 +76,7 @@ kolab/issue3420 (web client prefs and hooks should be configurable via templates) - + kolab/issue3329 (Can not accept/deny invitations in Dimp) Packages in the OpenPKG based Kolab server release: From cvs at kolab.org Thu May 14 18:17:39 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 18:17:39 +0200 (CEST) Subject: wilde: server release-notes.txt,1.398.2.43,1.398.2.44 Message-ID: <20090514161739.9659E60080A@lists.intevation.de> Author: wilde Update of /kolabrepository/server In directory doto:/tmp/cvs-serv31915 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: Added Gunnar's patch for kolab/issue3455 convenient ACL handling in dimp. (merged from suc_branch) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.43 retrieving revision 1.398.2.44 diff -u -d -r1.398.2.43 -r1.398.2.44 --- release-notes.txt 14 May 2009 16:14:08 -0000 1.398.2.43 +++ release-notes.txt 14 May 2009 16:17:37 -0000 1.398.2.44 @@ -77,6 +77,8 @@ kolab/issue3420 (web client prefs and hooks should be configurable via templates) kolab/issue3329 (Can not accept/deny invitations in Dimp) + kolab/issue3455 (There is no convenient/dimp-like way in dimp + to set folder acls) Packages in the OpenPKG based Kolab server release: From cvs at kolab.org Thu May 14 18:17:40 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 18:17:40 +0200 (CEST) Subject: wilde: server/patches/horde-webmail/1.2.0 horde-webmail-1.2.0_kolab_openpkg.patch, 1.32.2.6, 1.32.2.7 Message-ID: <20090514161740.464C2600828@lists.intevation.de> Author: wilde Update of /kolabrepository/server/patches/horde-webmail/1.2.0 In directory doto:/tmp/cvs-serv31915/patches/horde-webmail/1.2.0 Modified Files: Tag: kolab_2_2_branch horde-webmail-1.2.0_kolab_openpkg.patch Log Message: Added Gunnar's patch for kolab/issue3455 convenient ACL handling in dimp. (merged from suc_branch) Index: horde-webmail-1.2.0_kolab_openpkg.patch =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/Attic/horde-webmail-1.2.0_kolab_openpkg.patch,v retrieving revision 1.32.2.6 retrieving revision 1.32.2.7 diff -u -d -r1.32.2.6 -r1.32.2.7 --- horde-webmail-1.2.0_kolab_openpkg.patch 14 May 2009 16:07:11 -0000 1.32.2.6 +++ horde-webmail-1.2.0_kolab_openpkg.patch 14 May 2009 16:17:37 -0000 1.32.2.7 @@ -20071,3 +20071,146 @@ } } +From: Gunnar Wrobel

+Subject: [PATCH] t/dimp/H/GW/AclView + +Provide a possibility to edit IMAP folder acls within DIMP. + +kolab/issue3455 (There is no convenient/dimp-like way in dimp to set folder acls) +https://www.intevation.de/roundup/kolab/issue3455 + +[#8060] Additional entry in the folder popup to set IMAP ACLs +http://bugs.horde.org/ticket/8060 + +Signed-off-by: Gunnar Wrobel

+ +--- + horde-webmail/dimp/js/DimpBase.js | 1 + + horde-webmail/dimp/lib/DIMP.php | 1 + + horde-webmail/dimp/templates/index/index.inc | 1 + + horde-webmail/imp/acl.php | 12 ++++++++++-- + horde-webmail/imp/templates/acl/acl.html | 6 ++++++ + 5 files changed, 19 insertions(+), 2 deletions(-) + +diff --git a/horde-webmail/dimp/js/DimpBase.js b/horde-webmail/dimp/js/DimpBase.js +index 39a728b..c4eb9f4 100644 +--- a/horde-webmail/dimp/js/DimpBase.js ++++ b/horde-webmail/dimp/js/DimpBase.js +@@ -1941,6 +1941,7 @@ var DimpBase = { + C({ d: $('ctx_folder_rename'), f: function() { this.renameFolder(DimpCore.DMenu.element()); }.bind(this), ns: true }); + C({ d: $('ctx_folder_empty'), f: function() { if (window.confirm(DIMP.text.empty_folder)) { DimpCore.doAction('EmptyFolder', { folder: DimpCore.DMenu.element().readAttribute('mbox') }, [], this._emptyFolderCallback.bind(this)); } }.bind(this), ns: true }); + C({ d: $('ctx_folder_delete'), f: function() { if (window.confirm(DIMP.text.delete_folder)) { DimpCore.doAction('DeleteFolder', { folder: DimpCore.DMenu.element().readAttribute('mbox') }, [], this.bcache.get('folderC') || this.bcache.set('folderC', this._folderCallback.bind(this))); } }.bind(this), ns: true }); ++ C({ d: $('ctx_folder_rights'), f: function() { this.go('app:horde', DIMP.conf.folder_rights + '&' + $H({ folder: DimpCore.DMenu.element().readAttribute('mbox') }).toQueryString() ) }.bind(this), ns: true }); + [ 'ctx_folder_seen', 'ctx_folder_unseen' ].each(function(a) { + C({ d: $(a), f: function(type) { this.flag(type, null, DimpCore.DMenu.element().readAttribute('mbox')); }.bind(this, a == 'ctx_folder_seen' ? 'allSeen' : 'allUnseen'), ns: true }); + }, this); +diff --git a/horde-webmail/dimp/lib/DIMP.php b/horde-webmail/dimp/lib/DIMP.php +index 0aa3b78..92a1e55 100644 +--- a/horde-webmail/dimp/lib/DIMP.php ++++ b/horde-webmail/dimp/lib/DIMP.php +@@ -145,6 +145,7 @@ class DIMP { + 'message_url' => Horde::url($dimp_webroot . '/message.php'), + 'compose_url' => Horde::url($dimp_webroot . '/compose.php'), + 'prefs_url' => str_replace('&', '&', Horde::getServiceLink('options', 'dimp')), ++ 'folder_rights' => Util::addParameter(Horde::url($registry->get('webroot', 'imp') . '/acl.php', true), array('app' => 'imp', 'group'=> 'acl'), null, false), + + 'sortthread' => SORTTHREAD, + 'sortdate' => SORTDATE, +diff --git a/horde-webmail/dimp/templates/index/index.inc b/horde-webmail/dimp/templates/index/index.inc +index 21939e0..7c02fe7 100644 +--- a/horde-webmail/dimp/templates/index/index.inc ++++ b/horde-webmail/dimp/templates/index/index.inc +@@ -323,6 +323,7 @@ function _createDA($text, $image, $id = null, $class = '', $show_text = true) + + + ++ +

+ + +diff --git a/horde-webmail/imp/acl.php b/horde-webmail/imp/acl.php +index cfa285f..851d8de 100644 +--- a/horde-webmail/imp/acl.php ++++ b/horde-webmail/imp/acl.php +@@ -162,14 +162,22 @@ if (is_callable(array('Horde', 'loadConfiguration'))) { + } + $app = 'imp'; + $chunk = Util::nonInputVar('chunk'); +-Prefs_UI::generateHeader(null, $chunk); ++if ($_SESSION['imp']['default_view'] != 'dimp') { ++ Prefs_UI::generateHeader(null, $chunk); ++} else { ++ require $registry->get('templates', $app) . '/common-header.inc'; ++ $GLOBALS['notification']->notify(array('listeners' => 'status')); ++} + + /* Set up template. */ + $t = new IMP_Template(); + $t->setOption('gettext', true); + $t->set('aclurl', Horde::applicationUrl('acl.php')); + $t->set('forminput', Util::formInput()); +-$t->set('aclnavcell', Util::bufferOutput(array('Prefs_UI', 'generateNavigationCell'), 'acl')); ++$t->set('imp_view', $_SESSION['imp']['default_view'] != 'dimp'); ++if ($_SESSION['imp']['default_view'] != 'dimp') { ++ $t->set('aclnavcell', Util::bufferOutput(array('Prefs_UI', 'generateNavigationCell'), 'acl')); ++} + $t->set('changefolder', Horde::link('#', _("Change Folder"), 'smallheader', '', 'ACLFolderChange(true); return false;')); + $t->set('sharedimg', Horde::img('shared.png', _("Change Folder"))); + $t->set('options', IMP::flistSelect('', true, array(), $folder)); +diff --git a/horde-webmail/imp/templates/acl/acl.html b/horde-webmail/imp/templates/acl/acl.html +index 79580aa..72cf1c5 100644 +--- a/horde-webmail/imp/templates/acl/acl.html ++++ b/horde-webmail/imp/templates/acl/acl.html +@@ -7,6 +7,7 @@ + Share mail folders + + ++ +
+
+ ++
+ +
+ +@@ -76,9 +78,13 @@ + + + ++ + + + ++ ++ ++ + +   + +-- +tg: (3c3721f..) t/dimp/H/GW/AclView (depends on: t/dimp/H/GW/FoldersView) +-- +TOPGIT patch commit log +======================= + +commit cac1482cec6c96a8a1d7fb7c0e8c2433877728f5 +Author: Gunnar Wrobel

+Date: Fri Mar 13 12:04:03 2009 +0000 + + Complete the patch description. + +commit 7a349ad9da06264378e84e54d7424f5dc78a9154 +Author: Gunnar Wrobel

+Date: Fri Mar 13 12:00:43 2009 +0000 + + Reduce the functionality of the ACL view when calling from DIMP. In addition add the call to the acl settings page within the folder context menu. + +commit 2fdc4d0fcd6e4956129f6ec11501112568b99c6d +Author: Gunnar Wrobel

+Date: Sun Mar 8 19:59:30 2009 +0000 + + Completed a draft. From cvs at kolab.org Thu May 14 18:17:40 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 18:17:40 +0200 (CEST) Subject: wilde: server/patches/horde-webmail/1.2.0/merges t_dimp_H_GW_AclView.diff, NONE, 1.1.4.1 series, 1.1.2.1, 1.1.2.2 Message-ID: <20090514161740.48467600829@lists.intevation.de> Author: wilde Update of /kolabrepository/server/patches/horde-webmail/1.2.0/merges In directory doto:/tmp/cvs-serv31915/patches/horde-webmail/1.2.0/merges Modified Files: Tag: kolab_2_2_branch series Added Files: Tag: kolab_2_2_branch t_dimp_H_GW_AclView.diff Log Message: Added Gunnar's patch for kolab/issue3455 convenient ACL handling in dimp. (merged from suc_branch) --- NEW FILE: t_dimp_H_GW_AclView.diff --- From: Gunnar Wrobel

Subject: [PATCH] t/dimp/H/GW/AclView Provide a possibility to edit IMAP folder acls within DIMP. kolab/issue3455 (There is no convenient/dimp-like way in dimp to set folder acls) https://www.intevation.de/roundup/kolab/issue3455 [#8060] Additional entry in the folder popup to set IMAP ACLs http://bugs.horde.org/ticket/8060 Signed-off-by: Gunnar Wrobel

--- horde-webmail/dimp/js/DimpBase.js | 1 + horde-webmail/dimp/lib/DIMP.php | 1 + horde-webmail/dimp/templates/index/index.inc | 1 + horde-webmail/imp/acl.php | 12 ++++++++++-- horde-webmail/imp/templates/acl/acl.html | 6 ++++++ 5 files changed, 19 insertions(+), 2 deletions(-) diff --git a/horde-webmail/dimp/js/DimpBase.js b/horde-webmail/dimp/js/DimpBase.js index 39a728b..c4eb9f4 100644 --- a/horde-webmail/dimp/js/DimpBase.js +++ b/horde-webmail/dimp/js/DimpBase.js @@ -1941,6 +1941,7 @@ var DimpBase = { C({ d: $('ctx_folder_rename'), f: function() { this.renameFolder(DimpCore.DMenu.element()); }.bind(this), ns: true }); C({ d: $('ctx_folder_empty'), f: function() { if (window.confirm(DIMP.text.empty_folder)) { DimpCore.doAction('EmptyFolder', { folder: DimpCore.DMenu.element().readAttribute('mbox') }, [], this._emptyFolderCallback.bind(this)); } }.bind(this), ns: true }); C({ d: $('ctx_folder_delete'), f: function() { if (window.confirm(DIMP.text.delete_folder)) { DimpCore.doAction('DeleteFolder', { folder: DimpCore.DMenu.element().readAttribute('mbox') }, [], this.bcache.get('folderC') || this.bcache.set('folderC', this._folderCallback.bind(this))); } }.bind(this), ns: true }); + C({ d: $('ctx_folder_rights'), f: function() { this.go('app:horde', DIMP.conf.folder_rights + '&' + $H({ folder: DimpCore.DMenu.element().readAttribute('mbox') }).toQueryString() ) }.bind(this), ns: true }); [ 'ctx_folder_seen', 'ctx_folder_unseen' ].each(function(a) { C({ d: $(a), f: function(type) { this.flag(type, null, DimpCore.DMenu.element().readAttribute('mbox')); }.bind(this, a == 'ctx_folder_seen' ? 'allSeen' : 'allUnseen'), ns: true }); }, this); diff --git a/horde-webmail/dimp/lib/DIMP.php b/horde-webmail/dimp/lib/DIMP.php index 0aa3b78..92a1e55 100644 --- a/horde-webmail/dimp/lib/DIMP.php +++ b/horde-webmail/dimp/lib/DIMP.php @@ -145,6 +145,7 @@ class DIMP { 'message_url' => Horde::url($dimp_webroot . '/message.php'), 'compose_url' => Horde::url($dimp_webroot . '/compose.php'), 'prefs_url' => str_replace('&', '&', Horde::getServiceLink('options', 'dimp')), + 'folder_rights' => Util::addParameter(Horde::url($registry->get('webroot', 'imp') . '/acl.php', true), array('app' => 'imp', 'group'=> 'acl'), null, false), 'sortthread' => SORTTHREAD, 'sortdate' => SORTDATE, diff --git a/horde-webmail/dimp/templates/index/index.inc b/horde-webmail/dimp/templates/index/index.inc index 21939e0..7c02fe7 100644 --- a/horde-webmail/dimp/templates/index/index.inc +++ b/horde-webmail/dimp/templates/index/index.inc @@ -323,6 +323,7 @@ function _createDA($text, $image, $id = null, $class = '', $show_text = true) +

diff --git a/horde-webmail/imp/acl.php b/horde-webmail/imp/acl.php index cfa285f..851d8de 100644 --- a/horde-webmail/imp/acl.php +++ b/horde-webmail/imp/acl.php @@ -162,14 +162,22 @@ if (is_callable(array('Horde', 'loadConfiguration'))) { } $app = 'imp'; $chunk = Util::nonInputVar('chunk'); -Prefs_UI::generateHeader(null, $chunk); +if ($_SESSION['imp']['default_view'] != 'dimp') { + Prefs_UI::generateHeader(null, $chunk); +} else { + require $registry->get('templates', $app) . '/common-header.inc'; + $GLOBALS['notification']->notify(array('listeners' => 'status')); +} /* Set up template. */ $t = new IMP_Template(); $t->setOption('gettext', true); $t->set('aclurl', Horde::applicationUrl('acl.php')); $t->set('forminput', Util::formInput()); -$t->set('aclnavcell', Util::bufferOutput(array('Prefs_UI', 'generateNavigationCell'), 'acl')); +$t->set('imp_view', $_SESSION['imp']['default_view'] != 'dimp'); +if ($_SESSION['imp']['default_view'] != 'dimp') { + $t->set('aclnavcell', Util::bufferOutput(array('Prefs_UI', 'generateNavigationCell'), 'acl')); +} $t->set('changefolder', Horde::link('#', _("Change Folder"), 'smallheader', '', 'ACLFolderChange(true); return false;')); $t->set('sharedimg', Horde::img('shared.png', _("Change Folder"))); $t->set('options', IMP::flistSelect('', true, array(), $folder)); diff --git a/horde-webmail/imp/templates/acl/acl.html b/horde-webmail/imp/templates/acl/acl.html index 79580aa..72cf1c5 100644 --- a/horde-webmail/imp/templates/acl/acl.html +++ b/horde-webmail/imp/templates/acl/acl.html @@ -7,6 +7,7 @@ Share mail folders +
  • @@ -17,6 +18,7 @@
+
@@ -76,9 +78,13 @@ + + + +   -- tg: (3c3721f..) t/dimp/H/GW/AclView (depends on: t/dimp/H/GW/FoldersView) -- TOPGIT patch commit log ======================= commit cac1482cec6c96a8a1d7fb7c0e8c2433877728f5 Author: Gunnar Wrobel

Date: Fri Mar 13 12:04:03 2009 +0000 Complete the patch description. commit 7a349ad9da06264378e84e54d7424f5dc78a9154 Author: Gunnar Wrobel

Date: Fri Mar 13 12:00:43 2009 +0000 Reduce the functionality of the ACL view when calling from DIMP. In addition add the call to the acl settings page within the folder context menu. commit 2fdc4d0fcd6e4956129f6ec11501112568b99c6d Author: Gunnar Wrobel

Date: Sun Mar 8 19:59:30 2009 +0000 Completed a draft. Index: series =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/merges/Attic/series,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- series 14 May 2009 16:07:11 -0000 1.1.2.1 +++ series 14 May 2009 16:17:37 -0000 1.1.2.2 @@ -1,2 +1,3 @@ t_framework_HK_SW_Kolab__Storage_DovecotSharedFolderOwner.diff issue3329.patch +t_dimp_H_GW_AclView.diff From cvs at kolab.org Thu May 14 18:22:41 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 18:22:41 +0200 (CEST) Subject: wilde: server release-notes.txt,1.398.2.44,1.398.2.45 Message-ID: <20090514162241.59B0C60080A@lists.intevation.de> Author: wilde Update of /kolabrepository/server In directory doto:/tmp/cvs-serv32181 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: Added Gunnar's patch for kolab/issue3456 added folder management functions (like subscription) to dimp. (merged from suc_branch) Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.44 retrieving revision 1.398.2.45 diff -u -d -r1.398.2.44 -r1.398.2.45 --- release-notes.txt 14 May 2009 16:17:37 -0000 1.398.2.44 +++ release-notes.txt 14 May 2009 16:22:39 -0000 1.398.2.45 @@ -79,6 +79,8 @@ kolab/issue3329 (Can not accept/deny invitations in Dimp) kolab/issue3455 (There is no convenient/dimp-like way in dimp to set folder acls) + kolab/issue3456 (There is no view in dimp that allows folder + subscription) Packages in the OpenPKG based Kolab server release: From cvs at kolab.org Thu May 14 18:22:42 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 18:22:42 +0200 (CEST) Subject: wilde: server/patches/horde-webmail/1.2.0 horde-webmail-1.2.0_kolab_openpkg.patch, 1.32.2.7, 1.32.2.8 Message-ID: <20090514162242.1A7C260082A@lists.intevation.de> Author: wilde Update of /kolabrepository/server/patches/horde-webmail/1.2.0 In directory doto:/tmp/cvs-serv32181/patches/horde-webmail/1.2.0 Modified Files: Tag: kolab_2_2_branch horde-webmail-1.2.0_kolab_openpkg.patch Log Message: Added Gunnar's patch for kolab/issue3456 added folder management functions (like subscription) to dimp. (merged from suc_branch) Index: horde-webmail-1.2.0_kolab_openpkg.patch =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/Attic/horde-webmail-1.2.0_kolab_openpkg.patch,v retrieving revision 1.32.2.7 retrieving revision 1.32.2.8 diff -u -d -r1.32.2.7 -r1.32.2.8 --- horde-webmail-1.2.0_kolab_openpkg.patch 14 May 2009 16:17:37 -0000 1.32.2.7 +++ horde-webmail-1.2.0_kolab_openpkg.patch 14 May 2009 16:22:39 -0000 1.32.2.8 @@ -20214,3 +20214,136 @@ Date: Sun Mar 8 19:59:30 2009 +0000 Completed a draft. +From: Gunnar Wrobel

+Subject: [PATCH] t/dimp/H/GW/FoldersView + +Provide a folders menu for dimp. + +kolab/issue3456 (There is no view in dimp that allows folder subscription) +https://www.intevation.de/roundup/kolab/issue3456 + +[#8059] DIMP provides no view to subscribe/unsubscribe to folders +http://bugs.horde.org/ticket/8059 + +Signed-off-by: Gunnar Wrobel

+ +--- + horde-webmail/dimp/config/menu.php | 6 ++++++ + horde-webmail/imp/folders.php | 17 ++++++++++++----- + horde-webmail/imp/templates/folders/actions.html | 2 ++ + 3 files changed, 20 insertions(+), 5 deletions(-) + +diff --git a/horde-webmail/dimp/config/menu.php b/horde-webmail/dimp/config/menu.php +index 5dcf354..99a4b8c 100644 +--- a/horde-webmail/dimp/config/menu.php ++++ b/horde-webmail/dimp/config/menu.php +@@ -28,6 +28,12 @@ + // 'text' => 'Say Hi!', + // 'icon' => $GLOBALS['registry']->getImageDir('horde') . '/horde.png'), + // ); ++$site_menu = array( ++ 'folders' => array( ++ 'action' => 'DimpBase.go("app:horde", "' . Horde::url($GLOBALS['registry']->get('webroot', 'imp') . '/folders.php', true) . '")', ++ 'text' => _('Folders'), ++ 'icon' => $GLOBALS['registry']->getImageDir('imp') . '/folders/folder.png'), ++); + if (file_exists(dirname(__FILE__) . '/menu.local.php')) { + require_once(dirname(__FILE__) . '/menu.local.php'); + } +diff --git a/horde-webmail/imp/folders.php b/horde-webmail/imp/folders.php +index a0425aa..c46b0e5 100644 +--- a/horde-webmail/imp/folders.php ++++ b/horde-webmail/imp/folders.php +@@ -324,7 +324,9 @@ $folders_url = Util::addParameter($folders_url, 'folders_token', $folders_token) + + $title = _("Folder Navigator"); + require IMP_TEMPLATES . '/common-header.inc'; +-IMP::menu(); ++if ($_SESSION['imp']['default_view'] != 'dimp') { ++ IMP::menu(); ++} + IMP::status(); + IMP::quota(); + +@@ -375,6 +377,7 @@ if ($a_template->get('javascript')) { + } + + $a_template->set('create_folder', !empty($GLOBALS['conf']['hooks']['permsdenied']) || (IMP::hasPermission('create_folders') && IMP::hasPermission('max_folders'))); ++$a_template->set('imp_view', $_SESSION['imp']['default_view'] != 'dimp'); + if ($prefs->getValue('subscribe')) { + $a_template->set('subscribe', true); + $subToggleText = ($showAll) ? _("Hide Unsubscribed") : _("Show Unsubscribed"); +@@ -414,9 +417,11 @@ $rowct = 0; + $morembox = $rows = array(); + foreach ($raw_rows as $val) { + $val['nocheckbox'] = !empty($val['vfolder']); +- if (!empty($val['vfolder']) && ($val['value'] != IMPTREE_VFOLDER_KEY)) { +- $val['delvfolder'] = Horde::link($imp_search->deleteURL($val['value']), _("Delete Virtual Folder")) . _("Delete") . ''; +- $val['editvfolder'] = Horde::link($imp_search->editURL($val['value']), _("Edit Virtual Folder")) . _("Edit") . ''; ++ if ($_SESSION['imp']['default_view'] != 'dimp') { ++ if (!empty($val['vfolder']) && ($val['value'] != IMPTREE_VFOLDER_KEY)) { ++ $val['delvfolder'] = Horde::link($imp_search->deleteURL($val['value']), _("Delete Virtual Folder")) . _("Delete") . ''; ++ $val['editvfolder'] = Horde::link($imp_search->editURL($val['value']), _("Edit Virtual Folder")) . _("Edit") . ''; ++ } + } + + $val['class'] = (++$rowct % 2) ? 'item0' : 'item1'; +@@ -433,7 +438,9 @@ foreach ($raw_rows as $val) { + if (!empty($val['unseen'])) { + $val['name'] = '' . $val['name'] . ''; + } +- $val['name'] = Horde::link(Util::addParameter($name_url, 'mailbox', $val['value']), sprintf(_("View messages in %s"), ($val['vfolder']) ? $val['base_elt']['l'] : $val['display'])) . $val['name'] . ''; ++ if ($_SESSION['imp']['default_view'] != 'dimp') { ++ $val['name'] = Horde::link(Util::addParameter($name_url, 'mailbox', $val['value']), sprintf(_("View messages in %s"), ($val['vfolder']) ? $val['base_elt']['l'] : $val['display'])) . $val['name'] . ''; ++ } + } + + $dir2 = _image($val, null, 'folder'); +diff --git a/horde-webmail/imp/templates/folders/actions.html b/horde-webmail/imp/templates/folders/actions.html +index f882a82..8e39b8a 100644 +--- a/horde-webmail/imp/templates/folders/actions.html ++++ b/horde-webmail/imp/templates/folders/actions.html +@@ -12,12 +12,14 @@ + + + -- tg: (eff636a..) t/dimp/H/GW/FoldersView (depends on: t/kronolith/H/GW/UseDayHourStartEndAlsoInFBView) -- TOPGIT patch commit log ======================= commit a1966161022108d9bf4831a8613b1db9a4e68c4d Author: Gunnar Wrobel

Date: Fri Mar 13 11:06:45 2009 +0000 Include issue references in the patch description. commit de8c5e8cac0bfb29c9cf94989016487302da653f Author: Gunnar Wrobel

Date: Fri Mar 13 11:04:54 2009 +0000 Exclude IMP specific functionality as requested by Sascha wilde in kolab/issue3456 (There is no view in dimp that allows folder subscription). commit 9c9a343c04cf11f857bfeb4148f0ab9d9df7dce6 Author: Gunnar Wrobel

Date: Sun Mar 8 19:06:05 2009 +0000 Completed the hack. commit caa539aac138c4b77376ab9f4a4a86691709a96b Author: Gunnar Wrobel

Date: Sun Mar 8 19:01:41 2009 +0000 Completed the hack. Index: series =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/merges/Attic/series,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -u -d -r1.1.2.2 -r1.1.2.3 --- series 14 May 2009 16:17:37 -0000 1.1.2.2 +++ series 14 May 2009 16:22:39 -0000 1.1.2.3 @@ -1,3 +1,4 @@ t_framework_HK_SW_Kolab__Storage_DovecotSharedFolderOwner.diff issue3329.patch t_dimp_H_GW_AclView.diff +t_dimp_H_GW_FoldersView.diff From cvs at kolab.org Thu May 14 18:29:53 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 18:29:53 +0200 (CEST) Subject: thomas: server release-notes.txt,1.398.2.45,1.398.2.46 Message-ID: <20090514162953.CC73460080A@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv32463 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: webclient: update release number and notes Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.45 retrieving revision 1.398.2.46 diff -u -d -r1.398.2.45 -r1.398.2.46 --- release-notes.txt 14 May 2009 16:22:39 -0000 1.398.2.45 +++ release-notes.txt 14 May 2009 16:29:51 -0000 1.398.2.46 @@ -72,11 +72,11 @@ kolab/issue3570 (Viewing external addresses fails to display phone numbers and some other values) - - kolab-webclient-1.2.0-20090513 + - kolab-webclient-1.2.0-20090514 + kolab/issue3329 (Can not accept/deny invitations in Dimp) kolab/issue3420 (web client prefs and hooks should be configurable via templates) - kolab/issue3329 (Can not accept/deny invitations in Dimp) kolab/issue3455 (There is no convenient/dimp-like way in dimp to set folder acls) kolab/issue3456 (There is no view in dimp that allows folder From cvs at kolab.org Thu May 14 18:29:53 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 14 May 2009 18:29:53 +0200 (CEST) Subject: thomas: server/kolab-webclient kolab-webclient.spec, 1.23.2.7, 1.23.2.8 Message-ID: <20090514162953.D3369600828@lists.intevation.de> Author: thomas Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv32463/kolab-webclient Modified Files: Tag: kolab_2_2_branch kolab-webclient.spec Log Message: webclient: update release number and notes Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.23.2.7 retrieving revision 1.23.2.8 diff -u -d -r1.23.2.7 -r1.23.2.8 --- kolab-webclient.spec 13 May 2009 10:05:03 -0000 1.23.2.7 +++ kolab-webclient.spec 14 May 2009 16:29:51 -0000 1.23.2.8 @@ -3,7 +3,7 @@ %define V_package kolab-webclient %define V_year 2009 %define V_month 05 -%define V_day 13 +%define V_day 14 %define V_version 1.2.0 %define V_source_version 1.2 %define V_passwd_version 3.0.1 From cvs at kolab.org Fri May 15 11:41:08 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 15 May 2009 11:41:08 +0200 (CEST) Subject: thomas: server release-notes.txt,1.398.2.46,1.398.2.47 Message-ID: <20090515094108.41C88600167@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv11982 Modified Files: Tag: kolab_2_2_branch release-notes.txt Log Message: updated release notes Index: release-notes.txt =================================================================== RCS file: /kolabrepository/server/release-notes.txt,v retrieving revision 1.398.2.46 retrieving revision 1.398.2.47 diff -u -d -r1.398.2.46 -r1.398.2.47 --- release-notes.txt 14 May 2009 16:29:51 -0000 1.398.2.46 +++ release-notes.txt 15 May 2009 09:41:05 -0000 1.398.2.47 @@ -82,9 +82,152 @@ kolab/issue3456 (There is no view in dimp that allows folder subscription) + Packages in the OpenPKG based Kolab server release: - ??? + - Kolab packages: + + Updated: + + Kolab_Filter-0.1.4-20090504 + kolab-webadmin-2.2.2-20090514 + kolab-webclient-1.2.0-20090514 + kolabd-2.2.2-20090514 + + Unchanged: + + Horde_Argv-0.1.0-20081209 + Horde_Auth-0.1.1-20081209 + Horde_Browser-0.0.2-20081209 + Horde_CLI-0.0.2-20081209 + Horde_Cache-0.0.2-20081209 + Horde_Cipher-0.0.2-20081209 + Horde_DOM-0.1.0-20081209 + Horde_DataTree-0.0.3-20081209 + Horde_Date-0.1.0-20081209 + Horde_Framework-0.0.2-20081209 + Horde_Group-0.1.0-20081209 + Horde_History-0.0.2-20081209 + Horde_LDAP-0.0.2-20081209 + Horde_MIME-0.0.2-20081209 + Horde_NLS-0.0.2-20081209 + Horde_Notification-0.0.2-20090223 + Horde_Perms-0.1.0-20081209 + Horde_Prefs-0.0.3-20090223 + Horde_Secret-0.0.2-20081209 + Horde_Serialize-0.0.2-20081209 + Horde_SessionObjects-0.0.2-20081209 + Horde_Util-0.1.0-20081209 + Horde_iCalendar-0.1.0-20081209 + Kolab_Format-1.0.0-20090402 + Kolab_FreeBusy-0.1.2-20090406 + Kolab_Server-0.4.0-20090224 + Kolab_Storage-0.4.0-20090224 + PEAR-Auth_SASL-1.0.2-1 + PEAR-Date-1.4.7-1 + PEAR-HTTP_Request-1.4.3-1 + PEAR-Horde-Channel-1.0-20090119 + PEAR-Log-1.11.2-1 + PEAR-Mail-1.1.14-1 + PEAR-Mail_mimeDecode-1.5.0-20081209 + PEAR-Net_LMTP-1.0.1-1 + PEAR-Net_SMTP-1.3.1-1 + PEAR-Net_Socket-1.0.9-1 + PEAR-Net_URL-1.0.15-1 + PEAR-PHPUnit-Channel-1.0-20090119 + PHPUnit-3.3.3-1 + kolab-fbview-1.2.0-20081227 + openldap-2.3.43-20081212 + perl-kolab-2.2.1-20090331 + perl-ldap-5.10.0-20081028_kolab1 + php-smarty-2.6.20-20081212 + sqlite-3.6.4-20081212 + + - OpenPKG packages: + + Updated: + + clamav-0.95.1-20090409 + + Unchanged: + + amavisd-2.5.3-20080101 + apache-2.2.10-20081111 + apache-php-5.2.8-20081209_kolab2 + apr-1.2.12-20080101 + autoconf-2.61-20080101 + automake-1.10-20080101 + bc-1.06-20080101 + binutils-2.18-20080101 + bison-2.3-20080101 + bzip2-1.0.5-20080318 + config-20060923-20080101 + curl-7.17.1-20080101 + db-4.5.20.2-20070628 + diffutils-2.8.7-20080101 + expat-2.0.1-20080101 + file-4.23-20080101 + flex-2.5.34-20080101 + freetype-2.3.5-20080101 + fsl-1.7.0-20080101 + gawk-3.1.6-20080101 + gcc-4.2.2-20080101 + gd-2.0.35-20080101 + gettext-0.17-20080101 + gmp-4.2.2-20080101_kolab + grep-2.5.3-20080101 + groff-1.19.2-20080101 + gzip-1.3.12-20080101 + imap-2006k-20080101 + imapd-2.3.13-20081020_kolab2 + jpeg-6b-20080101 + libiconv-1.12-20080101 + libmcrypt-2.5.8-20080101 + libxml-2.6.31-20080111 + libxslt-1.1.22-20080101 + lzo-2.02-20080101 + m4-1.4.9-20080101 + make-3.81-20080101 + mhash-0.9.9-20080101 + mm-1.4.2-20080101 + ncurses-5.6.20080112-20080113 + openpkg-20071227-20071227_kolab1 + openpkg-tools-1.4.6-20071231 + openssl-0.9.8g-20080101 + pcre-7.5-20080110 + perl-5.10.0-20080103 + perl-comp-5.10.0-20080110 + perl-conv-5.10.0-20080101 + perl-crypto-5.10.0-20080101 + perl-db-5.10.0-20080118 + perl-dns-5.10.0-20080101 + perl-ds-5.10.0-20080104 + perl-locale-5.10.0-20080112 + perl-mail-5.10.0-20080117 + perl-module-5.10.0-20080101 + perl-net-5.10.0-20080101 + perl-openpkg-5.10.0-20080109 + perl-parse-5.10.0-20080117 + perl-ssl-5.10.0-20080101 + perl-stats-5.10.0-20080101 + perl-sys-5.10.0-20080101 + perl-term-5.10.0-20080116 + perl-text-5.10.0-20080101 + perl-time-5.10.0-20080101 + perl-util-5.10.0-20080116 + perl-www-5.10.0-20080103 + perl-xml-5.10.0-20080101 + php-5.2.8-20081209_kolab2 + pkgconfig-0.23-20080117 + png-1.2.24-20080101 + postfix-2.4.6-20080101_kolab + procmail-3.22-20080101 + readline-5.2.12-20080101 + sasl-2.1.22-20080101 + sed-4.1.5-20080101 + spamassassin-3.2.4-20080107 + texinfo-4.11-20080101 + zlib-1.2.3-20080101 Changes between 2.2.1-rc-1 and 2.2.1: From cvs at kolab.org Fri May 15 11:42:29 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 15 May 2009 11:42:29 +0200 (CEST) Subject: thomas: server release-notes.txt,1.450,1.451 Message-ID: <20090515094229.75962600169@lists.intevation.de> Author: thomas Update of /kolabrepository/server In directory doto:/tmp/cvs-serv12064 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.450 retrieving revision 1.451 diff -u -d -r1.450 -r1.451 --- release-notes.txt 14 May 2009 16:06:49 -0000 1.450 +++ release-notes.txt 15 May 2009 09:42:27 -0000 1.451 @@ -135,7 +135,149 @@ Packages in the OpenPKG based Kolab server release: - ??? + - Kolab packages: + + Updated: + + Kolab_Filter-0.1.4-20090504 + kolab-webadmin-2.2.2-20090514 + kolab-webclient-1.2.0-20090514 + kolabd-2.2.2-20090514 + + Unchanged: + + Horde_Argv-0.1.0-20081209 + Horde_Auth-0.1.1-20081209 + Horde_Browser-0.0.2-20081209 + Horde_CLI-0.0.2-20081209 + Horde_Cache-0.0.2-20081209 + Horde_Cipher-0.0.2-20081209 + Horde_DOM-0.1.0-20081209 + Horde_DataTree-0.0.3-20081209 + Horde_Date-0.1.0-20081209 + Horde_Framework-0.0.2-20081209 + Horde_Group-0.1.0-20081209 + Horde_History-0.0.2-20081209 + Horde_LDAP-0.0.2-20081209 + Horde_MIME-0.0.2-20081209 + Horde_NLS-0.0.2-20081209 + Horde_Notification-0.0.2-20090223 + Horde_Perms-0.1.0-20081209 + Horde_Prefs-0.0.3-20090223 + Horde_Secret-0.0.2-20081209 + Horde_Serialize-0.0.2-20081209 + Horde_SessionObjects-0.0.2-20081209 + Horde_Util-0.1.0-20081209 + Horde_iCalendar-0.1.0-20081209 + Kolab_Format-1.0.0-20090402 + Kolab_FreeBusy-0.1.2-20090406 + Kolab_Server-0.4.0-20090224 + Kolab_Storage-0.4.0-20090224 + PEAR-Auth_SASL-1.0.2-1 + PEAR-Date-1.4.7-1 + PEAR-HTTP_Request-1.4.3-1 + PEAR-Horde-Channel-1.0-20090119 + PEAR-Log-1.11.2-1 + PEAR-Mail-1.1.14-1 + PEAR-Mail_mimeDecode-1.5.0-20081209 + PEAR-Net_LMTP-1.0.1-1 + PEAR-Net_SMTP-1.3.1-1 + PEAR-Net_Socket-1.0.9-1 + PEAR-Net_URL-1.0.15-1 + PEAR-PHPUnit-Channel-1.0-20090119 + PHPUnit-3.3.3-1 + kolab-fbview-1.2.0-20081227 + openldap-2.3.43-20081212 + perl-kolab-2.2.1-20090331 + perl-ldap-5.10.0-20081028_kolab1 + php-smarty-2.6.20-20081212 + sqlite-3.6.4-20081212 + + - OpenPKG packages: + + Updated: + + clamav-0.95.1-20090409 + + Unchanged: + + amavisd-2.5.3-20080101 + apache-2.2.10-20081111 + apache-php-5.2.8-20081209_kolab2 + apr-1.2.12-20080101 + autoconf-2.61-20080101 + automake-1.10-20080101 + bc-1.06-20080101 + binutils-2.18-20080101 + bison-2.3-20080101 + bzip2-1.0.5-20080318 + config-20060923-20080101 + curl-7.17.1-20080101 + db-4.5.20.2-20070628 + diffutils-2.8.7-20080101 + expat-2.0.1-20080101 + file-4.23-20080101 + flex-2.5.34-20080101 + freetype-2.3.5-20080101 + fsl-1.7.0-20080101 + gawk-3.1.6-20080101 + gcc-4.2.2-20080101 + gd-2.0.35-20080101 + gettext-0.17-20080101 + gmp-4.2.2-20080101_kolab + grep-2.5.3-20080101 + groff-1.19.2-20080101 + gzip-1.3.12-20080101 + imap-2006k-20080101 + imapd-2.3.13-20081020_kolab2 + jpeg-6b-20080101 + libiconv-1.12-20080101 + libmcrypt-2.5.8-20080101 + libxml-2.6.31-20080111 + libxslt-1.1.22-20080101 + lzo-2.02-20080101 + m4-1.4.9-20080101 + make-3.81-20080101 + mhash-0.9.9-20080101 + mm-1.4.2-20080101 + ncurses-5.6.20080112-20080113 + openpkg-20071227-20071227_kolab1 + openpkg-tools-1.4.6-20071231 + openssl-0.9.8g-20080101 + pcre-7.5-20080110 + perl-5.10.0-20080103 + perl-comp-5.10.0-20080110 + perl-conv-5.10.0-20080101 + perl-crypto-5.10.0-20080101 + perl-db-5.10.0-20080118 + perl-dns-5.10.0-20080101 + perl-ds-5.10.0-20080104 + perl-locale-5.10.0-20080112 + perl-mail-5.10.0-20080117 + perl-module-5.10.0-20080101 + perl-net-5.10.0-20080101 + perl-openpkg-5.10.0-20080109 + perl-parse-5.10.0-20080117 + perl-ssl-5.10.0-20080101 + perl-stats-5.10.0-20080101 + perl-sys-5.10.0-20080101 + perl-term-5.10.0-20080116 + perl-text-5.10.0-20080101 + perl-time-5.10.0-20080101 + perl-util-5.10.0-20080116 + perl-www-5.10.0-20080103 + perl-xml-5.10.0-20080101 + php-5.2.8-20081209_kolab2 + pkgconfig-0.23-20080117 + png-1.2.24-20080101 + postfix-2.4.6-20080101_kolab + procmail-3.22-20080101 + readline-5.2.12-20080101 + sasl-2.1.22-20080101 + sed-4.1.5-20080101 + spamassassin-3.2.4-20080107 + texinfo-4.11-20080101 + zlib-1.2.3-20080101 Changes between 2.2.1-rc-1 and 2.2.1: From cvs at kolab.org Fri May 15 15:48:24 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 15 May 2009 15:48:24 +0200 (CEST) Subject: thomas: doc/www/src download.html.m4, 1.19, 1.20 index.html.m4, 1.163, 1.164 roadmap.html.m4, 1.28, 1.29 Message-ID: <20090515134824.180AA60082B@lists.intevation.de> Author: thomas Update of /kolabrepository/doc/www/src In directory doto:/tmp/cvs-serv22754 Modified Files: download.html.m4 index.html.m4 roadmap.html.m4 Log Message: Kolab Server 2.2.2 released: Update news, downloads and roadmap. Index: download.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/download.html.m4,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- download.html.m4 7 Apr 2009 16:09:57 -0000 1.19 +++ download.html.m4 15 May 2009 13:48:21 -0000 1.20 @@ -73,10 +73,10 @@

   server/
    |--release/                      - stable releases of Kolab Server
-   |   `--kolab-server-2.2.1/       - current stable release 2.2.1
+   |   |--kolab-server-2.2.1/       - previous stable release 2.2.1
+   |   `--kolab-server-2.2.2/       - current stable release 2.2.2
    |--security-updates/             - files referenced by Kolab Security Issues
-   |--beta/                         - beta versions and release candidates
-       `--kolab-server-2.2.1-rc-1/  - previous release candidate 2.2.1-rc-1
+   `--beta/                         - beta versions and release candidates
 
(alternatively use one of our download mirrors) @@ -87,7 +87,7 @@

For some operating systems you might find additional -directories containing pre-compiled packages (e.g. +directories containing pre-compiled packages, e.g. ix86-debian4.0 for Debian/etch on 32bit x86 systems. Using them usually considerably reduces installation time. Index: index.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/index.html.m4,v retrieving revision 1.163 retrieving revision 1.164 diff -u -d -r1.163 -r1.164 --- index.html.m4 8 Apr 2009 12:13:39 -0000 1.163 +++ index.html.m4 15 May 2009 13:48:21 -0000 1.164 @@ -60,6 +60,20 @@

+ + +
May 15th, 2009» + Kolab Server 2.2.2 Final Release +
+
+ This release contains 12 enhancements and fixes compared to 2.2.1.
+ Source and binary packages are available from the download page.
+ See the announcement for details. +
+

+ + + @@ -37,7 +37,7 @@
-

KDE Kontact for GNU/Linux (enterprise35 | beta)

+

KDE Kontact for GNU/Linux (enterprise35)

@@ -170,7 +170,7 @@
-

KDE Kontact for Windows (enterprise4 | alpha, 2008-06-30)

+

KDE Kontact for Windows (enterprise4 | 2008-06-30)

@@ -254,7 +254,7 @@
-

KDE Kontact for Mac OS X (enterprise4 | alpha, 2008-05-25)

+

KDE Kontact for Mac OS X (enterprise4 | 2008-05-25)

From cvs at kolab.org Wed May 20 09:56:22 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 20 May 2009 09:56:22 +0200 (CEST) Subject: gunnar: server/pear/Horde_Argv Makefile, 1.1, 1.2 Horde_Argv.spec, 1.3, 1.4 ChangeLog, 1.1, 1.2 .cvsignore, 1.1, 1.2 Message-ID: <20090520075622.F012C600835@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Argv In directory doto:/tmp/cvs-serv31723/Horde_Argv Modified Files: Makefile Horde_Argv.spec ChangeLog .cvsignore Log Message: Update to the Horde_3_3_4 tag and adapted to the newer packaging method. Index: Makefile =================================================================== RCS file: /kolabrepository/server/pear/Horde_Argv/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Makefile 24 Sep 2008 16:46:34 -0000 1.1 +++ Makefile 20 May 2009 07:56:20 -0000 1.2 @@ -1,44 +1 @@ -HORDE_PACKAGE = $(shell grep "%define[ ]*V_horde_package" *.spec | sed -e "s/.*V_horde_package \([A-Za-z\-\_]*\).*/\1/") -PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") -RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") - -ifeq "x$(RPM)" "x" - RPM = $(HOME)/bin/openpkg rpm -endif -ifeq "x$(KOLABRPMSRC)" "x" - KOLABRPMSRC = $(HOME)/RPM/SRC -endif -ifeq "x$(KOLABRPMPKG)" "x" - KOLABRPMPKG = $(HOME)/RPM/PKG -endif -ifeq "x$(KOLABRPMTMP)" "x" - KOLABRPMTMP = $(HOME)/RPM/TMP -endif - -SOURCE_0=http://pear.horde.org/get/$(HORDE_PACKAGE)-$(VERSION).tgz -PATCHES = $(shell grep "^Patch[0-9]*:" *.spec | sed -e "s/^Patch[0-9]*:\s*\(.*\).*/\1/") - -.PHONY: all -all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - -.PHONY: dist -dist: all - cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm ../../stage/ - -.PHONY: clean -clean: - rm -rf /kolab/RPM/TMP/$(PACKAGE)* - rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - rm -rf *~ - -$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec ChangeLog - test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) - cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_0)" - - for PATCH in $(PATCHES); do cp "$$PATCH" $(KOLABRPMSRC)/$(PACKAGE); done - - cp $(PACKAGE).spec $(KOLABRPMSRC)/$(PACKAGE) - cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec - - cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . +include ../Horde.mk Index: Horde_Argv.spec =================================================================== RCS file: /kolabrepository/server/pear/Horde_Argv/Horde_Argv.spec,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Horde_Argv.spec 9 Dec 2008 20:32:47 -0000 1.3 +++ Horde_Argv.spec 20 May 2009 07:56:20 -0000 1.4 @@ -1,8 +1,15 @@ # Variables +%define V_horde_pkgdir Argv %define V_horde_package Argv %define V_package Horde_Argv -%define V_version 0.1.0 -%define V_release 20081209 +%define V_package_origin VC-CVS +%define V_repo_commit HORDE_3_3_4 +%define V_repo_release 20090501 +%define V_version 0.1.0dev20090501 +%define V_release 20090518 +%define V_sourceurl http://pear.horde.org/get +%define V_php_lib_loc php +%define V_www_loc client # Package Information Name: %{V_package} @@ -16,7 +23,10 @@ Distribution: OpenPKG # List of Sources -Source: http://pear.horde.org/get/%{V_horde_package}-%{V_version}.tgz +Source: %{V_sourceurl}/%{V_horde_package}-%{V_version}.tgz + +# List of patches +Patch0: package.patch # Build Info Prefix: %{l_prefix} @@ -32,6 +42,9 @@ Provides: horde-framework-kolab = 3.2_rc3-20081209 Obsoletes: horde-framework-kolab < 3.2_rc3-20081209 +# Package options +%option with_chroot no + %description This package provides classes for parsing command line arguments with various actions, providing help, grouping options, and more. @@ -39,13 +52,28 @@ %prep %setup -n %{V_horde_package}-%{V_version} + if [ -n "`cat %{PATCH0}`" ]; then + %patch -p0 -P 0 + fi + + cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml + %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ - %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz - rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/php/{.filemap,.lock,.channels,.depdb,.depdblock} + %{l_prefix}/bin/pear -d www_dir="%{l_prefix}/var/kolab/www/%{V_www_loc}" \ + -d php_dir="%{l_prefix}/lib/%{V_php_lib_loc}" \ + install --offline --force --nodeps -P $RPM_BUILD_ROOT \ + $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz + rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc}/{.filemap,.lock,.channels,.depdb,.depdblock} + + # With chroot + %if "%{with_chroot}" == "yes" + %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib + cp -a $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib/ + %endif %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/pear/Horde_Argv/ChangeLog,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ChangeLog 24 Sep 2008 16:46:34 -0000 1.1 +++ ChangeLog 20 May 2009 07:56:20 -0000 1.2 @@ -1,3 +1,7 @@ +2009-05-20 Gunnar Wrobel

+ + * Horde_Argv.spec: Update to the HORDE_3_3_4 tag. + 2008-09-24 Gunnar Wrobel

* Horde_Argv.spec: Added package to Kolab CVS. Index: .cvsignore =================================================================== RCS file: /kolabrepository/server/pear/Horde_Argv/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- .cvsignore 24 Sep 2008 16:46:34 -0000 1.1 +++ .cvsignore 20 May 2009 07:56:20 -0000 1.2 @@ -1 +1,3 @@ *.src.rpm +*.tgz +package.patch From cvs at kolab.org Wed May 20 09:56:46 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 20 May 2009 09:56:46 +0200 (CEST) Subject: gunnar: server/pear/Horde_Argv-H4 .cvsignore,1.1,1.2 Message-ID: <20090520075646.4179D600836@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Argv-H4 In directory doto:/tmp/cvs-serv31773/Horde_Argv-H4 Modified Files: .cvsignore Log Message: Ignore some more files. Index: .cvsignore =================================================================== RCS file: /kolabrepository/server/pear/Horde_Argv-H4/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- .cvsignore 18 May 2009 22:31:06 -0000 1.1 +++ .cvsignore 20 May 2009 07:56:44 -0000 1.2 @@ -1 +1,3 @@ *.src.rpm +*.tgz +package.patch From cvs at kolab.org Wed May 20 10:13:31 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 20 May 2009 10:13:31 +0200 (CEST) Subject: gunnar: server/pear/Horde_Framework Makefile, 1.1, 1.2 Horde_Framework.spec, 1.3, 1.4 ChangeLog, 1.1, 1.2 .cvsignore, 1.1, 1.2 Message-ID: <20090520081331.0F135600922@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Framework In directory doto:/tmp/cvs-serv32549 Modified Files: Makefile Horde_Framework.spec ChangeLog .cvsignore Log Message: Update to the newer method of PEAR packaging. Updated to the HORDE_3_3_4 tag. Index: Makefile =================================================================== RCS file: /kolabrepository/server/pear/Horde_Framework/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Makefile 11 Sep 2008 16:26:09 -0000 1.1 +++ Makefile 20 May 2009 08:13:29 -0000 1.2 @@ -1,40 +1 @@ -PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") -RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") - -ifeq "x$(RPM)" "x" - RPM = $(HOME)/bin/openpkg rpm -endif -ifeq "x$(KOLABRPMSRC)" "x" - KOLABRPMSRC = $(HOME)/RPM/SRC -endif -ifeq "x$(KOLABRPMPKG)" "x" - KOLABRPMPKG = $(HOME)/RPM/PKG -endif -ifeq "x$(KOLABRPMTMP)" "x" - KOLABRPMTMP = $(HOME)/RPM/TMP -endif - -SOURCE_0=http://pear.horde.org/get/$(PACKAGE)-$(VERSION).tgz - -.PHONY: all -all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - -.PHONY: dist -dist: all - cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm ../../stage/ - -.PHONY: clean -clean: - rm -rf /kolab/RPM/TMP/$(PACKAGE)* - rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - rm -rf *~ - -$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec ChangeLog - test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) - cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_0)" - - cp $(PACKAGE).spec $(KOLABRPMSRC)/$(PACKAGE) - cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec - - cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . +include ../Horde.mk Index: Horde_Framework.spec =================================================================== RCS file: /kolabrepository/server/pear/Horde_Framework/Horde_Framework.spec,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Horde_Framework.spec 9 Dec 2008 20:32:47 -0000 1.3 +++ Horde_Framework.spec 20 May 2009 08:13:29 -0000 1.4 @@ -1,12 +1,20 @@ # Variables +%define V_horde_pkgdir Horde +%define V_horde_package Horde_Framework %define V_package Horde_Framework -%define V_version 0.0.2 -%define V_release 20081209 +%define V_package_origin VC-CVS +%define V_repo_commit HORDE_3_3_4 +%define V_repo_release 20090501 +%define V_version 0.0.2dev20090501 +%define V_release 20090520 +%define V_sourceurl http://pear.horde.org/get +%define V_php_lib_loc php +%define V_www_loc client # Package Information Name: %{V_package} Summary: Horde core Framework libraries -URL: http://pear.horde.org/index.php?package=%{V_package} +URL: http://pear.horde.org/index.php?package=%{V_horde_package} Packager: Gunnar Wrobel (p at rdus) Version: %{V_version} Release: %{V_release} @@ -15,7 +23,10 @@ Distribution: OpenPKG # List of Sources -Source: http://pear.horde.org/get/%{V_package}-%{V_version}.tgz +Source: %{V_sourceurl}/%{V_horde_package}-%{V_version}.tgz + +# List of patches +Patch0: package.patch # Build Info Prefix: %{l_prefix} @@ -35,20 +46,38 @@ Provides: horde-framework-kolab = 3.2_rc3-20081209 Obsoletes: horde-framework-kolab < 3.2_rc3-20081209 +# Package options +%option with_chroot no + %description These classes provide the core functionality of the Horde Application Framework. %prep - %setup -n %{V_package}-%{V_version} + %setup -n %{V_horde_package}-%{V_version} + + if [ -n "`cat %{PATCH0}`" ]; then + %patch -p0 -P 0 + fi + + cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ - %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT $RPM_SOURCE_DIR/%{V_package}-%{V_version}.tgz - rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/php/{.filemap,.lock,.channels,.depdb,.depdblock} + %{l_prefix}/bin/pear -d www_dir="%{l_prefix}/var/kolab/www/%{V_www_loc}" \ + -d php_dir="%{l_prefix}/lib/%{V_php_lib_loc}" \ + install --offline --force --nodeps -P $RPM_BUILD_ROOT \ + $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz + rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc}/{.filemap,.lock,.channels,.depdb,.depdblock} + + # With chroot + %if "%{with_chroot}" == "yes" + %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib + cp -a $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib/ + %endif %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/pear/Horde_Framework/ChangeLog,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ChangeLog 11 Sep 2008 16:26:09 -0000 1.1 +++ ChangeLog 20 May 2009 08:13:29 -0000 1.2 @@ -1,4 +1,8 @@ +2009-05-20 Gunnar Wrobel

+ + * Horde_Framework.spec: Updated to the HORDE_3_3_4 tag. + 2008-09-11 Gunnar Wrobel

- * Horde_DOM.spec: Added package to Kolab CVS. + * Horde_Framework.spec: Added package to Kolab CVS. Index: .cvsignore =================================================================== RCS file: /kolabrepository/server/pear/Horde_Framework/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- .cvsignore 11 Sep 2008 16:26:09 -0000 1.1 +++ .cvsignore 20 May 2009 08:13:29 -0000 1.2 @@ -1 +1,3 @@ *.src.rpm +*.tgz +package.patch From cvs at kolab.org Wed May 20 10:21:59 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 20 May 2009 10:21:59 +0200 (CEST) Subject: gunnar: server/pear/Horde_Framework-H4 - New directory Message-ID: <20090520082159.B80E6600930@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Framework-H4 In directory doto:/tmp/cvs-serv393/Horde_Framework-H4 Log Message: Directory /kolabrepository/server/pear/Horde_Framework-H4 added to the repository From cvs at kolab.org Wed May 20 10:24:02 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 20 May 2009 10:24:02 +0200 (CEST) Subject: gunnar: server/pear/Horde_Framework-H4 .cvsignore, NONE, 1.1 ChangeLog, NONE, 1.1 Horde_Framework-H4.spec, NONE, 1.1 Makefile, NONE, 1.1 Message-ID: <20090520082402.4D7B7600934@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Framework-H4 In directory doto:/tmp/cvs-serv471 Added Files: .cvsignore ChangeLog Horde_Framework-H4.spec Makefile Log Message: Added the Horde 4 version of Horde_Framework to CVS: --- NEW FILE: .cvsignore --- *.src.rpm *.tgz package.patch --- NEW FILE: ChangeLog --- 2009-05-20 Gunnar Wrobel

* Horde_Framework.spec: Added package to Kolab CVS. --- NEW FILE: Horde_Framework-H4.spec --- # Variables %define V_horde_pkgdir Horde %define V_horde_package Horde_Framework %define V_package Horde_Framework-H4 %define V_package_origin VC-CVS %define V_repo_commit HEAD:20090520 %define V_repo_release 20090520 %define V_version 0.0.2dev20090520 %define V_release 20090520 %define V_sourceurl http://pear.horde.org/get %define V_php_lib_loc php-h4 %define V_www_loc client # Package Information Name: %{V_package} Summary: Horde core Framework libraries URL: http://pear.horde.org/index.php?package=%{V_horde_package} Packager: Gunnar Wrobel (p at rdus) Version: %{V_version} Release: %{V_release} License: LGPL Group: Development/Libraries Distribution: OpenPKG # List of Sources Source: %{V_sourceurl}/%{V_horde_package}-%{V_version}.tgz # List of patches Patch0: package.patch # Build Info Prefix: %{l_prefix} BuildRoot: %{l_buildroot} #Pre requisites BuildPreReq: OpenPKG, openpkg >= 20070603 BuildPreReq: php, php::with_pear = yes BuildPreReq: PEAR-Horde-Channel PreReq: OpenPKG, openpkg >= 20070603 PreReq: php, php::with_pear = yes PreReq: PEAR-Log PreReq: Horde_CLI PreReq: Horde_DOM PreReq: Horde_Util Provides: horde-framework-kolab = 3.2_rc3-20081209 Obsoletes: horde-framework-kolab < 3.2_rc3-20081209 # Package options %option with_chroot no %description These classes provide the core functionality of the Horde Application Framework. %prep %setup -n %{V_horde_package}-%{V_version} if [ -n "`cat %{PATCH0}`" ]; then %patch -p0 -P 0 fi cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ %{l_prefix}/bin/pear -d www_dir="%{l_prefix}/var/kolab/www/%{V_www_loc}" \ -d php_dir="%{l_prefix}/lib/%{V_php_lib_loc}" \ install --offline --force --nodeps -P $RPM_BUILD_ROOT \ $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc}/{.filemap,.lock,.channels,.depdb,.depdblock} # With chroot %if "%{with_chroot}" == "yes" %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib cp -a $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib/ %endif %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} %clean rm -rf $RPM_BUILD_ROOT %files -f files --- NEW FILE: Makefile --- include ../Horde.mk From cvs at kolab.org Thu May 21 10:51:35 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 21 May 2009 10:51:35 +0200 (CEST) Subject: richard: server/kolabd/kolabd ChangeLog,1.256,1.257 Message-ID: <20090521085135.5E1EC60016F@lists.intevation.de> Author: richard Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv24085 Modified Files: ChangeLog Log Message: added resmgr_locksdir Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.256 retrieving revision 1.257 diff -u -d -r1.256 -r1.257 --- ChangeLog 14 May 2009 10:58:33 -0000 1.256 +++ ChangeLog 21 May 2009 08:51:33 -0000 1.257 @@ -1,3 +1,7 @@ +2009-05-21 Richard Bos + + * dist_conf/suse: added resmgr_locksdir + 2009-05-14 Thomas Arendsen Hein * templates/main.cf.template.in, templates/master.cf.template.in: From cvs at kolab.org Thu May 21 10:51:35 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 21 May 2009 10:51:35 +0200 (CEST) Subject: richard: server/kolabd/kolabd/dist_conf suse,1.89,1.90 Message-ID: <20090521085135.68897600803@lists.intevation.de> Author: richard Update of /kolabrepository/server/kolabd/kolabd/dist_conf In directory doto:/tmp/cvs-serv24085/dist_conf Modified Files: suse Log Message: added resmgr_locksdir Index: suse =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/suse,v retrieving revision 1.89 retrieving revision 1.90 diff -u -d -r1.89 -r1.90 --- suse 3 May 2009 21:31:36 -0000 1.89 +++ suse 21 May 2009 08:51:33 -0000 1.90 @@ -166,6 +166,7 @@ resmgr_grp=www resmgr_log_type=file resmgr_log_name=${resmgr_logdir}/filter.log +resmgr_locksdir=${localstatedir}/lock/kolab fbview_logfile=${localstatedir}/log/kolab/fbview.log freebusy_logdir=${localstatedir}/log/kolab/freebusy From cvs at kolab.org Fri May 22 10:42:12 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 22 May 2009 10:42:12 +0200 (CEST) Subject: richard: server/kolabd/kolabd/dist_conf suse,1.90,1.91 Message-ID: <20090522084212.855CE60081F@lists.intevation.de> Author: richard Update of /kolabrepository/server/kolabd/kolabd/dist_conf In directory doto:/tmp/cvs-serv18932 Modified Files: suse Log Message: add variable resmgr_tmpdir, but leave it undefined Index: suse =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/suse,v retrieving revision 1.90 retrieving revision 1.91 diff -u -d -r1.90 -r1.91 --- suse 21 May 2009 08:51:33 -0000 1.90 +++ suse 22 May 2009 08:42:10 -0000 1.91 @@ -167,6 +167,7 @@ resmgr_log_type=file resmgr_log_name=${resmgr_logdir}/filter.log resmgr_locksdir=${localstatedir}/lock/kolab +#resmgr_tmpdir= fbview_logfile=${localstatedir}/log/kolab/fbview.log freebusy_logdir=${localstatedir}/log/kolab/freebusy From cvs at kolab.org Fri May 22 21:10:30 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 22 May 2009 21:10:30 +0200 (CEST) Subject: richard: server/kolabd/kolabd/templates httpd.conf.template.in, 1.29, 1.30 Message-ID: <20090522191030.3926C600834@lists.intevation.de> Author: richard Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv2704/templates Modified Files: httpd.conf.template.in Log Message: Change relative redirect from /horde to /client into a full path redirect (https://@@@fqdnhostname@@@/client). See, kolab/issue3602 Index: httpd.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/httpd.conf.template.in,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- httpd.conf.template.in 17 Mar 2009 13:15:16 -0000 1.29 +++ httpd.conf.template.in 22 May 2009 19:10:28 -0000 1.30 @@ -164,7 +164,7 @@ # Redirect from the old Kolab web client location (Kolab-Server-2.2.0) # to the new one (Kolab-Server >= 2.2.1) -Redirect /horde /client +Redirect /horde https://@@@fqdnhostname@@@/client Order allow,deny From cvs at kolab.org Fri May 22 21:10:30 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 22 May 2009 21:10:30 +0200 (CEST) Subject: richard: server/kolabd/kolabd ChangeLog,1.257,1.258 Message-ID: <20090522191030.37E3A60082C@lists.intevation.de> Author: richard Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv2704 Modified Files: ChangeLog Log Message: Change relative redirect from /horde to /client into a full path redirect (https://@@@fqdnhostname@@@/client). See, kolab/issue3602 Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.257 retrieving revision 1.258 diff -u -d -r1.257 -r1.258 --- ChangeLog 21 May 2009 08:51:33 -0000 1.257 +++ ChangeLog 22 May 2009 19:10:27 -0000 1.258 @@ -1,3 +1,8 @@ +2009-05-22 Richard Bos + + * templates/httpd.conf.template.in: Change relative /horde redirect + to /client into a full path redirect. See, kolab/issue3602 + 2009-05-21 Richard Bos * dist_conf/suse: added resmgr_locksdir From cvs at kolab.org Mon May 25 18:48:39 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 25 May 2009 18:48:39 +0200 (CEST) Subject: gunnar: server/pear Horde.mk,1.8,1.9 Message-ID: <20090525164839.DAC69600167@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear In directory doto:/tmp/cvs-serv29862 Modified Files: Horde.mk Log Message: Allow to specify the repository to use and copy additional php/template files. Index: Horde.mk =================================================================== RCS file: /kolabrepository/server/pear/Horde.mk,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- Horde.mk 19 May 2009 08:02:44 -0000 1.8 +++ Horde.mk 25 May 2009 16:48:37 -0000 1.9 @@ -34,6 +34,9 @@ # Determine the release number from the *.spec file RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") +# Determine the repository +REPO = $(shell grep "%define[ ]*V_repo " *.spec | sed -e "s/.*V_repo\s*\([A-Za-z0-9_\-]*\).*/\1/") + # Determine the exact commit that should be retrieved from the repository COMMIT = $(shell grep "%define[ ]*V_repo_commit" *.spec | sed -e "s/.*V_repo_commit\s*\([A-Za-z0-9_]*\).*/\1/") @@ -55,8 +58,14 @@ # Get the list of patches if there are any in the patch directory PATCHES = $(shell ls patches/$(PACKAGE)-$(VERSION)/*.patch 2> /dev/null) +# Get the list of php (config) files if there are any in this directory +PHP_FILES = $(shell ls *.php 2> /dev/null) + +# Get the list of template files if there are any in this directory +TEMPLATE_FILES = $(shell ls *.template 2> /dev/null) + # Generate a list of extra files for the package -EXTRA=ChangeLog package.patch +EXTRA=ChangeLog package.patch $(PHP_FILES) $(TEMPLATE_FILES) # Temporary repository checkout location ifeq ($(PACKAGE_VC),CVS) @@ -71,14 +80,22 @@ DATE=$(shell date +%Y-%m-%d) # CVS information +ifeq ($(REPO),) CVS_REPO=framework +else +CVS_REPO=$(REPO) +endif CVS_REPO_URL=:pserver:cvsread at anoncvs.horde.org:/repository CVS_REPO_UP_CMD=cvs update CVS_REPO_CO_CMD=cvs -d $(CVS_REPO_URL) co CVS_REPO_SC_CMD=cvs update -r # GIT information +ifeq ($(REPO),) GIT_REPO=horde +else +GIT_REPO=$(REPO) +endif GIT_REPO_URL=git://dev.horde.org/horde/git/$(GIT_REPO) GIT_REPO_UP_CMD=git pull origin master GIT_REPO_CO_CMD=git clone From cvs at kolab.org Mon May 25 18:48:39 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 25 May 2009 18:48:39 +0200 (CEST) Subject: gunnar: server/pear/Horde_NLS Horde_NLS.spec,1.6,1.7 Message-ID: <20090525164839.DD26060016F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_NLS In directory doto:/tmp/cvs-serv29862/Horde_NLS Modified Files: Horde_NLS.spec Log Message: Allow to specify the repository to use and copy additional php/template files. Index: Horde_NLS.spec =================================================================== RCS file: /kolabrepository/server/pear/Horde_NLS/Horde_NLS.spec,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Horde_NLS.spec 18 May 2009 19:50:15 -0000 1.6 +++ Horde_NLS.spec 25 May 2009 16:48:37 -0000 1.7 @@ -14,7 +14,7 @@ # Package Information Name: %{V_package} Summary: Localization package. -URL: http://pear.horde.org/index.php?package=%{V_package} +URL: http://pear.horde.org/index.php?package=%{V_horde_package} Packager: Gunnar Wrobel (p at rdus) Version: %{V_version} Release: %{V_release} From cvs at kolab.org Tue May 26 07:09:47 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 26 May 2009 07:09:47 +0200 (CEST) Subject: gunnar: server/pear/Horde_Cache-H4 - New directory Message-ID: <20090526050947.70849600175@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Cache-H4 In directory doto:/tmp/cvs-serv3023/Horde_Cache-H4 Log Message: Directory /kolabrepository/server/pear/Horde_Cache-H4 added to the repository From cvs at kolab.org Tue May 26 07:10:28 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 26 May 2009 07:10:28 +0200 (CEST) Subject: gunnar: server/pear/Horde_Cache-H4 .cvsignore, NONE, 1.1 ChangeLog, NONE, 1.1 Horde_Cache-H4.spec, NONE, 1.1 Makefile, NONE, 1.1 Message-ID: <20090526051028.D691560081A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Cache-H4 In directory doto:/tmp/cvs-serv3074/Horde_Cache-H4 Added Files: .cvsignore ChangeLog Horde_Cache-H4.spec Makefile Log Message: Added Horde_Cache-H4 --- NEW FILE: .cvsignore --- *.src.rpm *.tgz package.patch --- NEW FILE: ChangeLog --- 2009-05-25 Gunnar Wrobel

* Horde_Cache-H4.spec: Added package to CVS. --- NEW FILE: Horde_Cache-H4.spec --- # Variables %define V_horde_pkgdir framework/Cache %define V_horde_package Cache %define V_package Horde_Cache-H4 %define V_package_origin VC-GIT %define V_repo_commit 4ae1f5f04ea6229e3a714e8c2e946ce1dc13a10a %define V_repo_release 20090427 %define V_version 0.2.0dev20090427 %define V_release 20090525 %define V_sourceurl http://pear.horde.org/get %define V_php_lib_loc php-h4 %define V_www_loc client # Package Information Name: %{V_package} Summary: Caching API URL: http://pear.horde.org/index.php?package=%{V_horde_package} Packager: Gunnar Wrobel (p at rdus) Version: %{V_version} Release: %{V_release} License: LGPL Group: Development/Libraries Distribution: OpenPKG # List of Sources Source: %{V_sourceurl}/%{V_horde_package}-%{V_version}.tgz # List of patches Patch0: package.patch # Build Info Prefix: %{l_prefix} BuildRoot: %{l_buildroot} #Pre requisites BuildPreReq: OpenPKG, openpkg >= 20070603 BuildPreReq: php, php::with_pear = yes BuildPreReq: PEAR-Horde-Channel PreReq: OpenPKG, openpkg >= 20070603 PreReq: php, php::with_pear = yes PreReq: Horde_Util Provides: horde-framework-kolab = 3.2_rc3-20081209 Obsoletes: horde-framework-kolab < 3.2_rc3-20081209 # Package options %option with_chroot no %description This package provides a simple, functional Caching API, with the option to store the cached data either on the filesystem, or using the Zend Performance Suites content cache. %prep %setup -n %{V_horde_package}-%{V_version} if [ -n "`cat %{PATCH0}`" ]; then %patch -p0 -P 0 fi cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ %{l_prefix}/bin/pear -d www_dir="%{l_prefix}/var/kolab/www/%{V_www_loc}" \ -d php_dir="%{l_prefix}/lib/%{V_php_lib_loc}" \ install --offline --force --nodeps -P $RPM_BUILD_ROOT \ $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc}/{.filemap,.lock,.channels,.depdb,.depdblock} # With chroot %if "%{with_chroot}" == "yes" %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib cp -a $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib/ %endif %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} %clean rm -rf $RPM_BUILD_ROOT %files -f files --- NEW FILE: Makefile --- include ../Horde.mk From cvs at kolab.org Tue May 26 07:10:59 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 26 May 2009 07:10:59 +0200 (CEST) Subject: gunnar: server/pear/Horde_Cache .cvsignore, 1.1, 1.2 ChangeLog, 1.1, 1.2 Horde_Cache.spec, 1.3, 1.4 Makefile, 1.1, 1.2 Message-ID: <20090526051059.75372600823@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Cache In directory doto:/tmp/cvs-serv3092 Modified Files: .cvsignore ChangeLog Horde_Cache.spec Makefile Log Message: Update to the HORDE_3_3_4 release tag. Index: .cvsignore =================================================================== RCS file: /kolabrepository/server/pear/Horde_Cache/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- .cvsignore 11 Sep 2008 16:25:07 -0000 1.1 +++ .cvsignore 26 May 2009 05:10:57 -0000 1.2 @@ -1 +1,3 @@ *.src.rpm +*.tgz +package.patch Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/pear/Horde_Cache/ChangeLog,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ChangeLog 11 Sep 2008 16:23:46 -0000 1.1 +++ ChangeLog 26 May 2009 05:10:57 -0000 1.2 @@ -1,3 +1,7 @@ +2009-05-26 Gunnar Wrobel

+ + * Horde_Cache.spec: Update to the HORDE_3_3_4 release tag. + 2008-09-11 Gunnar Wrobel

* Horde_DOM.spec: Added package to Kolab CVS. Index: Horde_Cache.spec =================================================================== RCS file: /kolabrepository/server/pear/Horde_Cache/Horde_Cache.spec,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Horde_Cache.spec 9 Dec 2008 20:32:47 -0000 1.3 +++ Horde_Cache.spec 26 May 2009 05:10:57 -0000 1.4 @@ -1,12 +1,20 @@ # Variables +%define V_horde_pkgdir Cache +%define V_horde_package Horde_Cache %define V_package Horde_Cache -%define V_version 0.0.2 -%define V_release 20081209 +%define V_package_origin VC-CVS +%define V_repo_commit HORDE_3_3_4 +%define V_repo_release 20090501 +%define V_version 0.1.0dev20090501 +%define V_release 20090525 +%define V_sourceurl http://pear.horde.org/get +%define V_php_lib_loc php +%define V_www_loc client # Package Information Name: %{V_package} Summary: Caching API -URL: http://pear.horde.org/index.php?package=%{V_package} +URL: http://pear.horde.org/index.php?package=%{V_horde_package} Packager: Gunnar Wrobel (p at rdus) Version: %{V_version} Release: %{V_release} @@ -15,7 +23,10 @@ Distribution: OpenPKG # List of Sources -Source: http://pear.horde.org/get/%{V_package}-%{V_version}.tgz +Source: %{V_sourceurl}/%{V_horde_package}-%{V_version}.tgz + +# List of patches +Patch0: package.patch # Build Info Prefix: %{l_prefix} @@ -32,21 +43,39 @@ Provides: horde-framework-kolab = 3.2_rc3-20081209 Obsoletes: horde-framework-kolab < 3.2_rc3-20081209 +# Package options +%option with_chroot no + %description This package provides a simple, functional Caching API, with the option to store the cached data either on the filesystem, or using the Zend Performance Suites content cache. %prep - %setup -n %{V_package}-%{V_version} + %setup -n %{V_horde_package}-%{V_version} + + if [ -n "`cat %{PATCH0}`" ]; then + %patch -p0 -P 0 + fi + + cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ - %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT $RPM_SOURCE_DIR/%{V_package}-%{V_version}.tgz - rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/php/{.filemap,.lock,.channels,.depdb,.depdblock} + %{l_prefix}/bin/pear -d www_dir="%{l_prefix}/var/kolab/www/%{V_www_loc}" \ + -d php_dir="%{l_prefix}/lib/%{V_php_lib_loc}" \ + install --offline --force --nodeps -P $RPM_BUILD_ROOT \ + $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz + rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc}/{.filemap,.lock,.channels,.depdb,.depdblock} + + # With chroot + %if "%{with_chroot}" == "yes" + %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib + cp -a $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib/ + %endif %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} Index: Makefile =================================================================== RCS file: /kolabrepository/server/pear/Horde_Cache/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Makefile 11 Sep 2008 16:23:46 -0000 1.1 +++ Makefile 26 May 2009 05:10:57 -0000 1.2 @@ -1,40 +1 @@ -PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/") -RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") - -ifeq "x$(RPM)" "x" - RPM = $(HOME)/bin/openpkg rpm -endif -ifeq "x$(KOLABRPMSRC)" "x" - KOLABRPMSRC = $(HOME)/RPM/SRC -endif -ifeq "x$(KOLABRPMPKG)" "x" - KOLABRPMPKG = $(HOME)/RPM/PKG -endif -ifeq "x$(KOLABRPMTMP)" "x" - KOLABRPMTMP = $(HOME)/RPM/TMP -endif - -SOURCE_0=http://pear.horde.org/get/$(PACKAGE)-$(VERSION).tgz - -.PHONY: all -all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - -.PHONY: dist -dist: all - cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm ../../stage/ - -.PHONY: clean -clean: - rm -rf /kolab/RPM/TMP/$(PACKAGE)* - rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - rm -rf *~ - -$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec ChangeLog - test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) - cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_0)" - - cp $(PACKAGE).spec $(KOLABRPMSRC)/$(PACKAGE) - cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec - - cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . +include ../Horde.mk From cvs at kolab.org Tue May 26 07:11:14 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 26 May 2009 07:11:14 +0200 (CEST) Subject: gunnar: server/pear/Horde_Notification .cvsignore,1.1,1.2 Message-ID: <20090526051114.7A283600824@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Notification In directory doto:/tmp/cvs-serv3107/Horde_Notification Modified Files: .cvsignore Log Message: Update cvsignore. Index: .cvsignore =================================================================== RCS file: /kolabrepository/server/pear/Horde_Notification/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- .cvsignore 24 Feb 2009 11:57:46 -0000 1.1 +++ .cvsignore 26 May 2009 05:11:12 -0000 1.2 @@ -1 +1,3 @@ *.src.rpm +*.tgz +package.patch From cvs at kolab.org Tue May 26 07:11:31 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 26 May 2009 07:11:31 +0200 (CEST) Subject: gunnar: server/pear/Horde_Browser-H4 Horde_Browser-H4.spec,1.1,1.2 Message-ID: <20090526051131.58CA6600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Browser-H4 In directory doto:/tmp/cvs-serv3129/Horde_Browser-H4 Modified Files: Horde_Browser-H4.spec Log Message: Fix package url. Index: Horde_Browser-H4.spec =================================================================== RCS file: /kolabrepository/server/pear/Horde_Browser-H4/Horde_Browser-H4.spec,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Horde_Browser-H4.spec 18 May 2009 17:37:52 -0000 1.1 +++ Horde_Browser-H4.spec 26 May 2009 05:11:29 -0000 1.2 @@ -14,7 +14,7 @@ # Package Information Name: %{V_package} Summary: Horde Browser API -URL: http://pear.horde.org/index.php?package=%{V_package} +URL: http://pear.horde.org/index.php?package=%{V_horde_package} Packager: Gunnar Wrobel (p at rdus) Version: %{V_version} Release: %{V_release} From cvs at kolab.org Tue May 26 17:11:07 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 26 May 2009 17:11:07 +0200 (CEST) Subject: gunnar: server/pear/Kolab_Server-H4 - New directory Message-ID: <20090526151107.65FB3600175@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Kolab_Server-H4 In directory doto:/tmp/cvs-serv23740/Kolab_Server-H4 Log Message: Directory /kolabrepository/server/pear/Kolab_Server-H4 added to the repository From cvs at kolab.org Tue May 26 17:11:50 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 26 May 2009 17:11:50 +0200 (CEST) Subject: gunnar: server/pear/Kolab_Server-H4 .cvsignore, NONE, 1.1 ChangeLog, NONE, 1.1 Kolab_Server-H4.spec, NONE, 1.1 Makefile, NONE, 1.1 Message-ID: <20090526151150.E71A860081A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Kolab_Server-H4 In directory doto:/tmp/cvs-serv23793 Added Files: .cvsignore ChangeLog Kolab_Server-H4.spec Makefile Log Message: Added the Horde4 branch version of the Kolab_Server package to CVS. --- NEW FILE: .cvsignore --- *.src.rpm *.tgz package.patch --- NEW FILE: ChangeLog --- 2009-05-26 Gunnar Wrobel

* Kolab_Server-H4.spec: Added horde4 branch version of the Kolab_Server package to CVS. --- NEW FILE: Kolab_Server-H4.spec --- # Variables %define V_horde_pkgdir framework/Kolab_Server %define V_horde_package Kolab_Server %define V_package Kolab_Server-H4 %define V_package_origin VC-GIT %define V_repo_commit d576e52c6c9d3772ab2f6e385c31a2e32da213a2 %define V_repo_release 20090515 %define V_version 0.5.0dev20090515 %define V_release 20090526 %define V_sourceurl http://pear.horde.org/get %define V_php_lib_loc php-h4 %define V_www_loc client # Package Information Name: %{V_package} Summary: A package for manipulating the Kolab user database. URL: http://pear.horde.org/index.php?package=%{V_horde_package} Packager: Gunnar Wrobel (p at rdus) Version: %{V_version} Release: %{V_release} License: LGPL Group: Development/Libraries Distribution: OpenPKG # List of Sources Source: %{V_sourceurl}/%{V_horde_package}-%{V_version}.tgz # List of patches Patch0: package.patch # Build Info Prefix: %{l_prefix} BuildRoot: %{l_buildroot} #Pre requisites BuildPreReq: OpenPKG, openpkg >= 20070603 BuildPreReq: php, php::with_pear = yes BuildPreReq: PEAR-Horde-Channel PreReq: OpenPKG, openpkg >= 20070603 PreReq: php, php::with_pear = yes PreReq: Horde_LDAP PreReq: PHPUnit # Package options %option with_chroot no %description This package allows read/write entries in the Kolab user database stored in LDAP. %prep %setup -n %{V_horde_package}-%{V_version} if [ -n "`cat %{PATCH0}`" ]; then %patch -p0 -P 0 fi cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ %{l_prefix}/bin/pear -d www_dir="%{l_prefix}/var/kolab/www/%{V_www_loc}" \ -d php_dir="%{l_prefix}/lib/%{V_php_lib_loc}" \ install --offline --force --nodeps -P $RPM_BUILD_ROOT \ $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc}/{.filemap,.lock,.channels,.depdb,.depdblock} # With chroot %if "%{with_chroot}" == "yes" %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib cp -a $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib/ %endif %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} %clean rm -rf $RPM_BUILD_ROOT %files -f files --- NEW FILE: Makefile --- include ../Horde.mk From cvs at kolab.org Tue May 26 22:05:08 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 26 May 2009 22:05:08 +0200 (CEST) Subject: gunnar: server/pear Horde.mk,1.9,1.10 Message-ID: <20090526200508.0078060016F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear In directory doto:/tmp/cvs-serv3682 Modified Files: Horde.mk Log Message: Allow numbers in package names. Index: Horde.mk =================================================================== RCS file: /kolabrepository/server/pear/Horde.mk,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- Horde.mk 25 May 2009 16:48:37 -0000 1.9 +++ Horde.mk 26 May 2009 20:05:05 -0000 1.10 @@ -14,10 +14,10 @@ PEAR=$(HOME)/bin/pear # Determine the horde package name from the *.spec file -HORDE_PKGDIR = $(shell grep "%define[ ]*V_horde_pkgdir" *.spec | sed -e "s/.*V_horde_pkgdir \([A-Za-z\-\_]*\)\s*/\1/") +HORDE_PKGDIR = $(shell grep "%define[ ]*V_horde_pkgdir" *.spec | sed -e "s/.*V_horde_pkgdir \([A-Za-z0-9\-\_]*\)\s*/\1/") # Determine the horde package name from the *.spec file -HORDE_PACKAGE = $(shell grep "%define[ ]*V_horde_package" *.spec | sed -e "s/.*V_horde_package \([A-Za-z\-\_]*\).*/\1/") +HORDE_PACKAGE = $(shell grep "%define[ ]*V_horde_package" *.spec | sed -e "s/.*V_horde_package \([A-Za-z0-9\-\_]*\).*/\1/") # Determine the package origin from the *.spec file PACKAGE_ORIGIN = $(shell grep "%define[ ]*V_package_origin" *.spec | sed -e "s/.*V_package_origin \([A-Z]*\).*/\1/") @@ -26,7 +26,7 @@ PACKAGE_VC = $(shell grep "%define[ ]*V_package_origin" *.spec | sed -e "s/.*V_package_origin [A-Z]*-\([A-Z]*\).*/\1/") # Determine the package name from the *.spec file -PACKAGE = $(shell grep "%define[ ]*V_package " *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\)\s*/\1/") +PACKAGE = $(shell grep "%define[ ]*V_package " *.spec | sed -e "s/.*V_package \([A-Za-z0-9\-\_]*\)\s*/\1/") # Determine the package version from the *.spec file VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.a-z]*\).*/\1/") From cvs at kolab.org Tue May 26 22:05:25 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 26 May 2009 22:05:25 +0200 (CEST) Subject: gunnar: server/pear/Kolab_Server-H4 Kolab_Server-H4.spec,1.1,1.2 Message-ID: <20090526200525.EA546600175@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Kolab_Server-H4 In directory doto:/tmp/cvs-serv3939/Kolab_Server-H4 Modified Files: Kolab_Server-H4.spec Log Message: Bump commit id. Index: Kolab_Server-H4.spec =================================================================== RCS file: /kolabrepository/server/pear/Kolab_Server-H4/Kolab_Server-H4.spec,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Kolab_Server-H4.spec 26 May 2009 15:11:48 -0000 1.1 +++ Kolab_Server-H4.spec 26 May 2009 20:05:23 -0000 1.2 @@ -3,9 +3,9 @@ %define V_horde_package Kolab_Server %define V_package Kolab_Server-H4 %define V_package_origin VC-GIT -%define V_repo_commit d576e52c6c9d3772ab2f6e385c31a2e32da213a2 -%define V_repo_release 20090515 -%define V_version 0.5.0dev20090515 +%define V_repo_commit dc0ba05b97f5fd7b8b6a81e548e6edbe134de1f2 +%define V_repo_release 20090526 +%define V_version 0.5.0dev20090526 %define V_release 20090526 %define V_sourceurl http://pear.horde.org/get %define V_php_lib_loc php-h4 From cvs at kolab.org Tue May 26 22:05:33 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 26 May 2009 22:05:33 +0200 (CEST) Subject: gunnar: server/pear/Horde_Autoloader - New directory Message-ID: <20090526200533.8489F600821@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Autoloader In directory doto:/tmp/cvs-serv3954/Horde_Autoloader Log Message: Directory /kolabrepository/server/pear/Horde_Autoloader added to the repository From cvs at kolab.org Tue May 26 22:06:29 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 26 May 2009 22:06:29 +0200 (CEST) Subject: gunnar: server/pear/Horde_Autoloader .cvsignore, NONE, 1.1 ChangeLog, NONE, 1.1 Horde_Autoloader.spec, NONE, 1.1 Makefile, NONE, 1.1 Message-ID: <20090526200629.033ED600825@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Autoloader In directory doto:/tmp/cvs-serv4008 Added Files: .cvsignore ChangeLog Horde_Autoloader.spec Makefile Log Message: Added the Horde_Autoloader package to CVS. --- NEW FILE: .cvsignore --- *.src.rpm *.tgz package.patch --- NEW FILE: ChangeLog --- 2009-05-26 Gunnar Wrobel

* Horde_Autoloader.spec: Added the Horde_Autoloader package to CVS. --- NEW FILE: Horde_Autoloader.spec --- # Variables %define V_horde_pkgdir framework/Autoloader %define V_horde_package Autoloader %define V_package Horde_Autoloader %define V_package_origin VC-GIT %define V_repo_commit dc0ba05b97f5fd7b8b6a81e548e6edbe134de1f2 %define V_repo_release 20090526 %define V_version 0.2.0dev20090526 %define V_release 20090526 %define V_sourceurl http://pear.horde.org/get %define V_php_lib_loc php %define V_www_loc client # Package Information Name: %{V_package} Summary: Horde Class Autoloader URL: http://pear.horde.org/index.php?package=%{V_horde_package} Packager: Gunnar Wrobel (p at rdus) Version: %{V_version} Release: %{V_release} License: LGPL Group: Development/Libraries Distribution: OpenPKG # List of Sources Source: %{V_sourceurl}/%{V_horde_package}-%{V_version}.tgz # List of patches Patch0: package.patch # Build Info Prefix: %{l_prefix} BuildRoot: %{l_buildroot} #Pre requisites BuildPreReq: OpenPKG, openpkg >= 20070603 BuildPreReq: php, php::with_pear = yes BuildPreReq: PEAR-Horde-Channel PreReq: OpenPKG, openpkg >= 20070603 PreReq: php, php::with_pear = yes # Package options %option with_chroot no %description Autoload implementation and class loading manager for Horde. %prep %setup -n %{V_horde_package}-%{V_version} if [ -n "`cat %{PATCH0}`" ]; then %patch -p0 -P 0 fi cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ %{l_prefix}/bin/pear -d www_dir="%{l_prefix}/var/kolab/www/%{V_www_loc}" \ -d php_dir="%{l_prefix}/lib/%{V_php_lib_loc}" \ install --offline --force --nodeps -P $RPM_BUILD_ROOT \ $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc}/{.filemap,.lock,.channels,.depdb,.depdblock} # With chroot %if "%{with_chroot}" == "yes" %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib cp -a $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib/ %endif %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} %clean rm -rf $RPM_BUILD_ROOT %files -f files --- NEW FILE: Makefile --- include ../Horde.mk From cvs at kolab.org Tue May 26 22:07:00 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 26 May 2009 22:07:00 +0200 (CEST) Subject: gunnar: server/pear/Kolab_Server-H4 Kolab_Server-H4.spec,1.2,1.3 Message-ID: <20090526200700.9EFF9600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Kolab_Server-H4 In directory doto:/tmp/cvs-serv4044/Kolab_Server-H4 Modified Files: Kolab_Server-H4.spec Log Message: Add the Autoloader dependency. Index: Kolab_Server-H4.spec =================================================================== RCS file: /kolabrepository/server/pear/Kolab_Server-H4/Kolab_Server-H4.spec,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Kolab_Server-H4.spec 26 May 2009 20:05:23 -0000 1.2 +++ Kolab_Server-H4.spec 26 May 2009 20:06:58 -0000 1.3 @@ -38,6 +38,7 @@ BuildPreReq: PEAR-Horde-Channel PreReq: OpenPKG, openpkg >= 20070603 PreReq: php, php::with_pear = yes +PreReq: Horde_Autoloader PreReq: Horde_LDAP PreReq: PHPUnit From cvs at kolab.org Wed May 27 21:36:00 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 27 May 2009 21:36:00 +0200 (CEST) Subject: richard: server/kolabd/kolabd/dist_conf suse,1.91,1.92 Message-ID: <20090527193600.EB12D60016F@lists.intevation.de> Author: richard Update of /kolabrepository/server/kolabd/kolabd/dist_conf In directory doto:/tmp/cvs-serv3744/dist_conf Modified Files: suse Log Message: Changed the user from kolab to wwwrun, adapted some log file location, due to the change mentioned before. Index: suse =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/dist_conf/suse,v retrieving revision 1.91 retrieving revision 1.92 diff -u -d -r1.91 -r1.92 --- suse 22 May 2009 08:42:10 -0000 1.91 +++ suse 27 May 2009 19:35:58 -0000 1.92 @@ -61,8 +61,8 @@ emailserver_grp=root emailserver_mail_owner=postfix emailserver_setgid_grp=maildrop -emailserver_default_privs=kolab -emailserver_master_usr=kolab +emailserver_default_privs=wwwrun +emailserver_master_usr=wwwrun emailserver_tables_usr=root imap_confdir=${sysconfdir} @@ -83,7 +83,7 @@ kolab_pidfile=${sysrundir}/kolab.pid kolab_mailboxuiddb=${kolab_statedir}/mailbox-uidcache.db kolab_pkgs=spamassassin openldap2 clamav amavisd-new postfix kolab apache2 kolab-server kolab-freebusy kolab-filter perl-kolab kolab-format kolab-webadmin kolab-storage -kolab_smtpdpolicy_conffile_usr=kolab +kolab_smtpdpolicy_conffile_usr=wwwrun kolab_smtpdpolicy_conffile_grp=root kolab_scriptsdir=$(datadir)/kolab/scripts @@ -157,11 +157,11 @@ sasl_authdconffile=${sysconfdir}/saslauthd.conf sasl_logfile=${localstatedir}/log/saslauthd.log -resmgr_logdir=${localstatedir}/log/kolab/filter +resmgr_logdir=${localstatedir}/log/kolab resmgr_scriptsdir=${bindir} -resmgr_confdir=${sysconfdir}/kolab/filter -resmgr_conffile_usr=kolab -resmgr_conffile_grp=root +resmgr_confdir=${sysconfdir}/kolab +resmgr_conffile_usr=wwwrun +resmgr_conffile_grp=www resmgr_usr=root resmgr_grp=www resmgr_log_type=file @@ -170,7 +170,7 @@ #resmgr_tmpdir= fbview_logfile=${localstatedir}/log/kolab/fbview.log -freebusy_logdir=${localstatedir}/log/kolab/freebusy +freebusy_logdir=${localstatedir}/log/kolab freebusy_confdir=${webserver_document_root}${webserver_web_prefix}/freebusy freebusy_cachedir=${localstatedir}/cache/freebusy freebusy_usr=wwwrun From cvs at kolab.org Wed May 27 21:36:00 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Wed, 27 May 2009 21:36:00 +0200 (CEST) Subject: richard: server/kolabd/kolabd ChangeLog,1.258,1.259 Message-ID: <20090527193600.EA131600165@lists.intevation.de> Author: richard Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv3744 Modified Files: ChangeLog Log Message: Changed the user from kolab to wwwrun, adapted some log file location, due to the change mentioned before. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.258 retrieving revision 1.259 diff -u -d -r1.258 -r1.259 --- ChangeLog 22 May 2009 19:10:27 -0000 1.258 +++ ChangeLog 27 May 2009 19:35:58 -0000 1.259 @@ -1,3 +1,9 @@ +2009-05-27 Richard Bos + + * dist_conf/suse: change the user from kolab to wwwrun, + adapted some log file location, due to the change mentioned + before. + 2009-05-22 Richard Bos * templates/httpd.conf.template.in: Change relative /horde redirect From cvs at kolab.org Thu May 28 16:26:38 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 28 May 2009 16:26:38 +0200 (CEST) Subject: gunnar: server/kolab-webclient ChangeLog, 1.10.2.3.2.3, 1.10.2.3.2.4 kolab-webclient.spec, 1.23.2.6.2.7, 1.23.2.6.2.8 webclient-kolab-conf.template, 1.2.4.1, 1.2.4.2 Message-ID: <20090528142638.419D8600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv16622/kolab-webclient Modified Files: Tag: suc_branch ChangeLog kolab-webclient.spec webclient-kolab-conf.template Log Message: Added functionality for anonymous ics (iCal data) download. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolab-webclient/ChangeLog,v retrieving revision 1.10.2.3.2.3 retrieving revision 1.10.2.3.2.4 diff -u -d -r1.10.2.3.2.3 -r1.10.2.3.2.4 --- ChangeLog 14 May 2009 14:32:14 -0000 1.10.2.3.2.3 +++ ChangeLog 28 May 2009 14:26:36 -0000 1.10.2.3.2.4 @@ -1,3 +1,8 @@ +2009-05-28 Gunnar Wrobel

+ + * kolab-webclient.spec: Added functionality for anonymous + ics (iCal data) download. + 2009-05-13 Gunnar Wrobel

* kolab-webclient.spec: Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.23.2.6.2.7 retrieving revision 1.23.2.6.2.8 diff -u -d -r1.23.2.6.2.7 -r1.23.2.6.2.8 --- kolab-webclient.spec 14 May 2009 14:32:14 -0000 1.23.2.6.2.7 +++ kolab-webclient.spec 28 May 2009 14:26:36 -0000 1.23.2.6.2.8 @@ -3,7 +3,7 @@ %define V_package kolab-webclient %define V_year 2009 %define V_month 05 -%define V_day 13 +%define V_day 28 %define V_version 1.2.0 %define V_source_version 1.2 %define V_passwd_version 3.0.1 Index: webclient-kolab-conf.template =================================================================== RCS file: /kolabrepository/server/kolab-webclient/webclient-kolab-conf.template,v retrieving revision 1.2.4.1 retrieving revision 1.2.4.2 diff -u -d -r1.2.4.1 -r1.2.4.2 --- webclient-kolab-conf.template 23 Apr 2009 07:13:20 -0000 1.2.4.1 +++ webclient-kolab-conf.template 28 May 2009 14:26:36 -0000 1.2.4.2 @@ -35,4 +35,11 @@ $conf['kolab']['imap']['server'] = '@@@local_addr@@@'; @@@endif@@@ $conf['kolab']['imap']['maildomain'] = '@@@postfix-mydomain@@@'; + +/* Credentials for a proxy user to allow quasi anonymous ICS access + * via kronolith/ics_kolab.php. You will need to create this user + * first. + */ +//$conf['ics']['default_user'] = 'proxy@@@@postfix-mydomain@@@'; +//$conf['ics']['default_pass'] = 'proxy'; ?> From cvs at kolab.org Thu May 28 16:26:39 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 28 May 2009 16:26:39 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0 horde-webmail-1.2.0_kolab_openpkg.patch, 1.32.2.4.2.7, 1.32.2.4.2.8 Message-ID: <20090528142639.095A660081B@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0 In directory doto:/tmp/cvs-serv16622/patches/horde-webmail/1.2.0 Modified Files: Tag: suc_branch horde-webmail-1.2.0_kolab_openpkg.patch Log Message: Added functionality for anonymous ics (iCal data) download. Index: horde-webmail-1.2.0_kolab_openpkg.patch =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/Attic/horde-webmail-1.2.0_kolab_openpkg.patch,v retrieving revision 1.32.2.4.2.7 retrieving revision 1.32.2.4.2.8 diff -u -d -r1.32.2.4.2.7 -r1.32.2.4.2.8 --- horde-webmail-1.2.0_kolab_openpkg.patch 14 May 2009 14:32:15 -0000 1.32.2.4.2.7 +++ horde-webmail-1.2.0_kolab_openpkg.patch 28 May 2009 14:26:36 -0000 1.32.2.4.2.8 @@ -26916,6 +26916,149 @@ Date: Thu Apr 23 13:45:14 2009 +0200 Allow to configurable LDAP attribute mapping. +From: Gunnar Wrobel

+Subject: [PATCH] t/kronolith/HK/GW/AnonymousiCalDownload + +This patch allows anonymous access via kronolith/ics_kolab.php by +using a proxy user that needs to be given access to user calendars +that should be exported anonymously. + +STATUS: HACK + +Signed-off-by: Gunnar Wrobel

+ +--- + horde-webmail/config/kolab.php | 4 ++ + horde-webmail/kronolith/ics_kolab.php | 95 +++++++++++++++++++++++++++++++++ + 2 files changed, 99 insertions(+), 0 deletions(-) + +diff --git a/horde-webmail/config/kolab.php b/horde-webmail/config/kolab.php +index ed41da4..118788a 100644 +--- a/horde-webmail/config/kolab.php ++++ b/horde-webmail/config/kolab.php +@@ -35,6 +35,10 @@ $conf['kolab']['imap']['server'] = 'localhost'; + /* Primary mail domain of your Kolab server */ + $conf['kolab']['imap']['maildomain'] = 'example.com'; + ++/* Credentials for a proxy user to allow quasi anonymous ICS access via kronolith/ics_kolab.php */ ++//$conf['ics']['default_user'] = ''; ++//$conf['ics']['default_pass'] = ''; ++ + if (file_exists(dirname(__FILE__) . '/kolab.local.php')) { + require(dirname(__FILE__) . '/kolab.local.php'); + } +diff --git a/horde-webmail/kronolith/ics_kolab.php b/horde-webmail/kronolith/ics_kolab.php +new file mode 100644 +index 0000000..bb26d64 +--- /dev/null ++++ b/horde-webmail/kronolith/ics_kolab.php +@@ -0,0 +1,95 @@ ++ ++ */ ++ ++ at define('AUTH_HANDLER', true); ++ at define('HORDE_BASE', dirname(__FILE__) . '/..'); ++require_once HORDE_BASE . '/lib/base.php'; ++ ++// We want to always generate UTF-8 iCalendar data. ++NLS::setCharset('UTF-8'); ++ ++// Determine which calendar to export. ++$calendar = Util::getFormData('c'); ++if (empty($calendar) && !empty($_SERVER['PATH_INFO'])) { ++ $calendar = basename($_SERVER['PATH_INFO']); ++} ++ ++// Authenticate. ++$auth = &Auth::singleton($conf['auth']['driver']); ++if (!isset($_SERVER['PHP_AUTH_USER'])) { ++ if (isset($conf['ics']['default_user']) ++ && isset($conf['ics']['default_pass'])) { ++ $user = $conf['ics']['default_user']; ++ $pass = $conf['ics']['default_pass']; ++ } ++} else { ++ $user = $_SERVER['PHP_AUTH_USER']; ++ $pass = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : null; ++} ++ ++if (!isset($user) || !$auth->authenticate($user, array('password' => $pass))) { ++ header('WWW-Authenticate: Basic realm="Kronolith iCalendar Interface"'); ++ header('HTTP/1.0 401 Unauthorized'); ++ echo '401 Unauthorized'; ++ exit; ++} ++ ++ at define('KRONOLITH_BASE', dirname(__FILE__)); ++require_once KRONOLITH_BASE . '/lib/base.php'; ++require_once 'Horde/Cache.php'; ++require_once 'Horde/iCalendar.php'; ++ ++$share = $kronolith_shares->getShare($calendar); ++if (is_a($share, 'PEAR_Error')) { ++ header('HTTP/1.0 400 Bad Request'); ++ echo '400 Bad Request'; ++ exit; ++} ++ ++if (!$share->hasPermission(Auth::getAuth(), PERMS_READ)) { ++ header('WWW-Authenticate: Basic realm="Kronolith iCalendar Interface"'); ++ header('HTTP/1.0 401 Unauthorized'); ++ echo '401 Unauthorized'; ++ exit; ++} ++ ++$cache = &Horde_Cache::singleton($conf['cache']['driver'], Horde::getDriverConfig('cache', $conf['cache']['driver'])); ++$key = 'kronolith.ics.' . $calendar; ++ ++$ics = $cache->get($key, 360); ++if (!$ics) { ++ $kronolith_driver->open(urlencode($calendar)); ++ $events = $kronolith_driver->listEvents(); ++ ++ $iCal = new Horde_iCalendar(); ++ $iCal->setAttribute('X-WR-CALNAME', String::convertCharset($share->get('name'), NLS::getCharset(), 'utf-8')); ++ ++ foreach ($events as $id) { ++ $event = &$kronolith_driver->getEvent($id); ++ if (is_a($event, 'PEAR_Error')) { ++ continue; ++ } ++ $iCal->addComponent($event->toiCalendar($iCal)); ++ } ++ ++ $ics = $iCal->exportvCalendar(); ++ $cache->set($key, $ics); ++} ++ ++$browser->downloadHeaders($calendar . '.ics', ++ 'text/calendar; charset=' . NLS::getCharset(), ++ true, ++ strlen($ics)); ++echo $ics; ++ ++Auth::clearAuth(); ++ at session_destroy(); +-- +tg: (b5749f0..) t/kronolith/HK/GW/AnonymousiCalDownload (depends on: t/dimp/H/GW/AclView) +-- +TOPGIT patch commit log +======================= + +commit 0df1aefd621efbe8a2d7e306fbc79dace5760280 +Author: Gunnar Wrobel

+Date: Thu May 28 12:42:44 2009 +0200 + + First version of the anonymous ics download patch. diff -c a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php From cvs at kolab.org Thu May 28 16:26:38 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 28 May 2009 16:26:38 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0/tg t_kronolith_HK_GW_AnonymousiCalDownload.diff, NONE, 1.1.2.1 series, 1.5.2.3.2.2, 1.5.2.3.2.3 Message-ID: <20090528142638.F0D98600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0/tg In directory doto:/tmp/cvs-serv16622/patches/horde-webmail/1.2.0/tg Modified Files: Tag: suc_branch series Added Files: Tag: suc_branch t_kronolith_HK_GW_AnonymousiCalDownload.diff Log Message: Added functionality for anonymous ics (iCal data) download. --- NEW FILE: t_kronolith_HK_GW_AnonymousiCalDownload.diff --- From: Gunnar Wrobel

Subject: [PATCH] t/kronolith/HK/GW/AnonymousiCalDownload This patch allows anonymous access via kronolith/ics_kolab.php by using a proxy user that needs to be given access to user calendars that should be exported anonymously. STATUS: HACK Signed-off-by: Gunnar Wrobel

--- horde-webmail/config/kolab.php | 4 ++ horde-webmail/kronolith/ics_kolab.php | 95 +++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+), 0 deletions(-) diff --git a/horde-webmail/config/kolab.php b/horde-webmail/config/kolab.php index ed41da4..118788a 100644 --- a/horde-webmail/config/kolab.php +++ b/horde-webmail/config/kolab.php @@ -35,6 +35,10 @@ $conf['kolab']['imap']['server'] = 'localhost'; /* Primary mail domain of your Kolab server */ $conf['kolab']['imap']['maildomain'] = 'example.com'; +/* Credentials for a proxy user to allow quasi anonymous ICS access via kronolith/ics_kolab.php */ +//$conf['ics']['default_user'] = ''; +//$conf['ics']['default_pass'] = ''; + if (file_exists(dirname(__FILE__) . '/kolab.local.php')) { require(dirname(__FILE__) . '/kolab.local.php'); } diff --git a/horde-webmail/kronolith/ics_kolab.php b/horde-webmail/kronolith/ics_kolab.php new file mode 100644 index 0000000..bb26d64 --- /dev/null +++ b/horde-webmail/kronolith/ics_kolab.php @@ -0,0 +1,95 @@ + + */ + + at define('AUTH_HANDLER', true); + at define('HORDE_BASE', dirname(__FILE__) . '/..'); +require_once HORDE_BASE . '/lib/base.php'; + +// We want to always generate UTF-8 iCalendar data. +NLS::setCharset('UTF-8'); + +// Determine which calendar to export. +$calendar = Util::getFormData('c'); +if (empty($calendar) && !empty($_SERVER['PATH_INFO'])) { + $calendar = basename($_SERVER['PATH_INFO']); +} + +// Authenticate. +$auth = &Auth::singleton($conf['auth']['driver']); +if (!isset($_SERVER['PHP_AUTH_USER'])) { + if (isset($conf['ics']['default_user']) + && isset($conf['ics']['default_pass'])) { + $user = $conf['ics']['default_user']; + $pass = $conf['ics']['default_pass']; + } +} else { + $user = $_SERVER['PHP_AUTH_USER']; + $pass = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : null; +} + +if (!isset($user) || !$auth->authenticate($user, array('password' => $pass))) { + header('WWW-Authenticate: Basic realm="Kronolith iCalendar Interface"'); + header('HTTP/1.0 401 Unauthorized'); + echo '401 Unauthorized'; + exit; +} + + at define('KRONOLITH_BASE', dirname(__FILE__)); +require_once KRONOLITH_BASE . '/lib/base.php'; +require_once 'Horde/Cache.php'; +require_once 'Horde/iCalendar.php'; + +$share = $kronolith_shares->getShare($calendar); +if (is_a($share, 'PEAR_Error')) { + header('HTTP/1.0 400 Bad Request'); + echo '400 Bad Request'; + exit; +} + +if (!$share->hasPermission(Auth::getAuth(), PERMS_READ)) { + header('WWW-Authenticate: Basic realm="Kronolith iCalendar Interface"'); + header('HTTP/1.0 401 Unauthorized'); + echo '401 Unauthorized'; + exit; +} + +$cache = &Horde_Cache::singleton($conf['cache']['driver'], Horde::getDriverConfig('cache', $conf['cache']['driver'])); +$key = 'kronolith.ics.' . $calendar; + +$ics = $cache->get($key, 360); +if (!$ics) { + $kronolith_driver->open(urlencode($calendar)); + $events = $kronolith_driver->listEvents(); + + $iCal = new Horde_iCalendar(); + $iCal->setAttribute('X-WR-CALNAME', String::convertCharset($share->get('name'), NLS::getCharset(), 'utf-8')); + + foreach ($events as $id) { + $event = &$kronolith_driver->getEvent($id); + if (is_a($event, 'PEAR_Error')) { + continue; + } + $iCal->addComponent($event->toiCalendar($iCal)); + } + + $ics = $iCal->exportvCalendar(); + $cache->set($key, $ics); +} + +$browser->downloadHeaders($calendar . '.ics', + 'text/calendar; charset=' . NLS::getCharset(), + true, + strlen($ics)); +echo $ics; + +Auth::clearAuth(); + at session_destroy(); -- tg: (b5749f0..) t/kronolith/HK/GW/AnonymousiCalDownload (depends on: t/dimp/H/GW/AclView) -- TOPGIT patch commit log ======================= commit 0df1aefd621efbe8a2d7e306fbc79dace5760280 Author: Gunnar Wrobel

Date: Thu May 28 12:42:44 2009 +0200 First version of the anonymous ics download patch. Index: series =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/tg/Attic/series,v retrieving revision 1.5.2.3.2.2 retrieving revision 1.5.2.3.2.3 diff -u -d -r1.5.2.3.2.2 -r1.5.2.3.2.3 --- series 23 Apr 2009 12:05:10 -0000 1.5.2.3.2.2 +++ series 28 May 2009 14:26:36 -0000 1.5.2.3.2.3 @@ -70,3 +70,4 @@ t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff -p1 t_pear_HK_GW_AddNetLDAP2.diff -p1 t_Kolab__Server_HK_GW_MappableAttributes.diff -p1 +t_kronolith_HK_GW_AnonymousiCalDownload.diff -p1 From cvs at kolab.org Thu May 28 16:59:29 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 28 May 2009 16:59:29 +0200 (CEST) Subject: gunnar: server/kolab-webclient kolab-webclient.spec, 1.23.2.6.2.8, 1.23.2.6.2.9 Message-ID: <20090528145929.5D71D600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv17358/kolab-webclient Modified Files: Tag: suc_branch kolab-webclient.spec Log Message: Now that we have templates we don't need to mark the single php config files as config. In addition templates don't need the noreplace option. Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.23.2.6.2.8 retrieving revision 1.23.2.6.2.9 diff -u -d -r1.23.2.6.2.8 -r1.23.2.6.2.9 --- kolab-webclient.spec 28 May 2009 14:26:36 -0000 1.23.2.6.2.8 +++ kolab-webclient.spec 28 May 2009 14:59:27 -0000 1.23.2.6.2.9 @@ -148,63 +148,53 @@ $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/passwd/config %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-kolab-conf.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-kronolith-kolab-conf.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-config_hooks.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-config_mime_drivers.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-config_motd.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-config_nls.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-config_prefs.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-config_registry.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-dimp_conf.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-dimp_hooks.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-dimp_menu.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-dimp_portal.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-dimp_prefs.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-dimp_servers.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-imp_conf.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-imp_header.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-imp_hooks.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-imp_menu.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-imp_mime_drivers.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-imp_motd.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-imp_prefs.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-imp_servers.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-imp_spelling.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-ingo_backends.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-ingo_conf.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-ingo_fields.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-ingo_hooks.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-ingo_prefs.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-kronolith_keywords.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-kronolith_menu.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-kronolith_prefs.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-mimp_conf.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-mimp_menu.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-mimp_mime_drivers.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-mimp_prefs.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-mnemo_conf.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-mnemo_prefs.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-nag_conf.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-nag_menu.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-nag_prefs.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-turba_attributes.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-turba_conf.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-turba_hooks.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-turba_menu.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-turba_mime_drivers.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-turba_prefs.php.template' \ - '%config(noreplace) %{l_prefix}/etc/kolab/templates/webclient-turba_sources.php.template' \ - '%config(noreplace) %{l_prefix}/var/kolab/www/client/config/*.php' \ - '%config(noreplace) %{l_prefix}/var/kolab/www/client/dimp/config/*.php' \ - '%config(noreplace) %{l_prefix}/var/kolab/www/client/imp/config/*.php' \ - '%config(noreplace) %{l_prefix}/var/kolab/www/client/ingo/config/*.php' \ - '%config(noreplace) %{l_prefix}/var/kolab/www/client/kronolith/config/*.php' \ - '%config(noreplace) %{l_prefix}/var/kolab/www/client/mimp/config/*.php' \ - '%config(noreplace) %{l_prefix}/var/kolab/www/client/mnemo/config/*.php' \ - '%config(noreplace) %{l_prefix}/var/kolab/www/client/nag/config/*.php' \ - '%config(noreplace) %{l_prefix}/var/kolab/www/client/passwd/config/*.php' \ - '%config(noreplace) %{l_prefix}/var/kolab/www/client/turba/config/*.php' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-kolab-conf.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-kronolith-kolab-conf.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-config_hooks.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-config_mime_drivers.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-config_motd.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-config_nls.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-config_prefs.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-config_registry.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-dimp_conf.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-dimp_hooks.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-dimp_menu.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-dimp_portal.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-dimp_prefs.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-dimp_servers.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-imp_conf.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-imp_header.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-imp_hooks.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-imp_menu.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-imp_mime_drivers.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-imp_motd.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-imp_prefs.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-imp_servers.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-imp_spelling.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-ingo_backends.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-ingo_conf.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-ingo_fields.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-ingo_hooks.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-ingo_prefs.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-kronolith_keywords.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-kronolith_menu.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-kronolith_prefs.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-mimp_conf.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-mimp_menu.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-mimp_mime_drivers.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-mimp_prefs.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-mnemo_conf.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-mnemo_prefs.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-nag_conf.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-nag_menu.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-nag_prefs.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-turba_attributes.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-turba_conf.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-turba_hooks.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-turba_menu.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-turba_mime_drivers.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-turba_prefs.php.template' \ + '%config %{l_prefix}/etc/kolab/templates/webclient-turba_sources.php.template' \ %dir '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/kolab/www/client/log \ %dir '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/kolab/www/client/tmp \ %dir '%defattr(-,%{l_nusr},%{l_ngrp})' %{l_prefix}/var/kolab/www/client/storage \ From cvs at kolab.org Thu May 28 17:17:06 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 28 May 2009 17:17:06 +0200 (CEST) Subject: wilde: server/kolabd/kolabd/templates httpd.conf.template.in, 1.28, 1.28.4.1 Message-ID: <20090528151706.0F1E1600174@lists.intevation.de> Author: wilde Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv17867/kolabd/templates Modified Files: Tag: suc_branch httpd.conf.template.in Log Message: Added alias /public-cal/ics for easy, non-ssl access to the public calendar. Index: httpd.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/httpd.conf.template.in,v retrieving revision 1.28 retrieving revision 1.28.4.1 diff -u -d -r1.28 -r1.28.4.1 --- httpd.conf.template.in 3 Mar 2009 16:59:00 -0000 1.28 +++ httpd.conf.template.in 28 May 2009 15:17:04 -0000 1.28.4.1 @@ -191,6 +191,8 @@ Alias /icons/ "@webserver_document_root@/icons/" +Alias /public-cal/ics "@webserver_document_root@/client/kronolith/ics_kolab.php" + Options Indexes MultiViews AllowOverride None From cvs at kolab.org Thu May 28 17:28:17 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 28 May 2009 17:28:17 +0200 (CEST) Subject: wilde: server/kolab-webclient webclient-kolab-conf.template, 1.2.4.2, 1.2.4.3 Message-ID: <20090528152817.47E6B600174@lists.intevation.de> Author: wilde Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv18108 Modified Files: Tag: suc_branch webclient-kolab-conf.template Log Message: Changed public ICS export path in comment to new alias /public-cal/ics. Index: webclient-kolab-conf.template =================================================================== RCS file: /kolabrepository/server/kolab-webclient/webclient-kolab-conf.template,v retrieving revision 1.2.4.2 retrieving revision 1.2.4.3 diff -u -d -r1.2.4.2 -r1.2.4.3 --- webclient-kolab-conf.template 28 May 2009 14:26:36 -0000 1.2.4.2 +++ webclient-kolab-conf.template 28 May 2009 15:28:15 -0000 1.2.4.3 @@ -37,8 +37,7 @@ $conf['kolab']['imap']['maildomain'] = '@@@postfix-mydomain@@@'; /* Credentials for a proxy user to allow quasi anonymous ICS access - * via kronolith/ics_kolab.php. You will need to create this user - * first. + * via /public-cal/ics. You will need to create this user first. */ //$conf['ics']['default_user'] = 'proxy@@@@postfix-mydomain@@@'; //$conf['ics']['default_pass'] = 'proxy'; From cvs at kolab.org Thu May 28 17:43:15 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 28 May 2009 17:43:15 +0200 (CEST) Subject: wilde: server/kolab-webclient kolab-webclient.spec, 1.23.2.6.2.9, 1.23.2.6.2.10 Message-ID: <20090528154315.828B6600174@lists.intevation.de> Author: wilde Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv18422 Modified Files: Tag: suc_branch kolab-webclient.spec Log Message: Bumped suc version one up... Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.23.2.6.2.9 retrieving revision 1.23.2.6.2.10 diff -u -d -r1.23.2.6.2.9 -r1.23.2.6.2.10 --- kolab-webclient.spec 28 May 2009 14:59:27 -0000 1.23.2.6.2.9 +++ kolab-webclient.spec 28 May 2009 15:43:13 -0000 1.23.2.6.2.10 @@ -8,7 +8,7 @@ %define V_source_version 1.2 %define V_passwd_version 3.0.1 %define V_date %{V_year}-%{V_month}-%{V_day} -%define V_release %{V_year}%{V_month}%{V_day}suc01 +%define V_release %{V_year}%{V_month}%{V_day}suc02 # Package Information Name: %{V_package} From cvs at kolab.org Sun May 31 22:07:05 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sun, 31 May 2009 22:07:05 +0200 (CEST) Subject: gunnar: server/perl-kolab/sbin kolab_bootstrap.in,1.9,1.10 Message-ID: <20090531200705.00720600817@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/perl-kolab/sbin In directory doto:/tmp/cvs-serv26018/sbin Modified Files: kolab_bootstrap.in Log Message: kolab_config is the filename where we stored the kolab.conf file. I'm pretty certain we want to access the kolab configuration hash value directory_mode here. Index: kolab_bootstrap.in =================================================================== RCS file: /kolabrepository/server/perl-kolab/sbin/kolab_bootstrap.in,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- kolab_bootstrap.in 7 May 2009 18:42:37 -0000 1.9 +++ kolab_bootstrap.in 31 May 2009 20:07:02 -0000 1.10 @@ -781,7 +781,7 @@ chmod 0600, $kolab_config; kolab_chown "$Kolab::config{'kolab_musr'}","$Kolab::config{'kolab_mgrp'}",$kolab_config; - if ($kolab_config{'directory_mode'} ne "syncrepl" ) { + if ($Kolab::config{'directory_mode'} ne "syncrepl" ) { print << 'EOS'; Now the master server needs to be stopped briefly while the contents of the LDAP database is copied over to this slave. Please make sure that this slave is entered into the list From cvs at kolab.org Mon Jun 1 23:10:46 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 1 Jun 2009 23:10:46 +0200 (CEST) Subject: gunnar: doc/www/src download.html.m4,1.20,1.21 Message-ID: <20090601211046.81E5B600838@lists.intevation.de> Author: gunnar Update of /kolabrepository/doc/www/src In directory doto:/tmp/cvs-serv23171/www/src Modified Files: download.html.m4 Log Message: Fixed link to the current release. Index: download.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/download.html.m4,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- download.html.m4 15 May 2009 13:48:21 -0000 1.20 +++ download.html.m4 1 Jun 2009 21:10:44 -0000 1.21 @@ -74,7 +74,7 @@ server/ |--release/ - stable releases of Kolab Server | |--kolab-server-2.2.1/ - previous stable release 2.2.1 - | `--kolab-server-2.2.2/ - current stable release 2.2.2 + | `--kolab-server-2.2.2/ - current stable release 2.2.2 |--security-updates/ - files referenced by Kolab Security Issues `--beta/ - beta versions and release candidates From cvs at kolab.org Tue Jun 2 07:17:53 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 2 Jun 2009 07:17:53 +0200 (CEST) Subject: gunnar: server/kolabd/kolabd Makefile.am,1.52,1.53 Message-ID: <20090602051753.0FBD6600832@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv12319/kolabd Modified Files: Makefile.am Log Message: Correct commit for kolab/issue3490 (Please include dist_conf/kolabsrv.in in source packages). The dist_conf/kolabsrv file needs to be generated. Index: Makefile.am =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/Makefile.am,v retrieving revision 1.52 retrieving revision 1.53 diff -u -d -r1.52 -r1.53 --- Makefile.am 9 May 2009 08:46:37 -0000 1.52 +++ Makefile.am 2 Jun 2009 05:17:50 -0000 1.53 @@ -151,7 +151,8 @@ generated_files = $(kolabspecial_DATA) \ $(kolabtemplate_DATA) \ - $(kolabdoc_GENERATED) + $(kolabdoc_GENERATED) \ + dist_conf/kolabsrv generated_executables = $(kolabsbin_DATA) \ $(kolab_SCRIPTS) \ @@ -169,7 +170,7 @@ $(generated_files): %: %.in - @$(mkinstalldirs) . templates/ doc/ + @$(mkinstalldirs) . templates/ doc/ dist_conf/ $(do_subst) <$(srcdir)/$< >$@ $(generated_executables): %: %.in From cvs at kolab.org Thu Jun 4 06:40:30 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 4 Jun 2009 06:40:30 +0200 (CEST) Subject: gunnar: server/kolab-webclient Makefile,1.6.4.2,1.6.4.3 Message-ID: <20090604044030.01995600817@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv24598 Modified Files: Tag: suc_branch Makefile Log Message: Fix the release number in the Makefile. Index: Makefile =================================================================== RCS file: /kolabrepository/server/kolab-webclient/Makefile,v retrieving revision 1.6.4.2 retrieving revision 1.6.4.3 diff -u -d -r1.6.4.2 -r1.6.4.3 --- Makefile 24 Apr 2009 19:47:37 -0000 1.6.4.2 +++ Makefile 4 Jun 2009 04:40:27 -0000 1.6.4.3 @@ -26,7 +26,7 @@ VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9._a-z]*\).*/\1/") SOURCE_VERSION = $(shell grep "%define[ ]*V_source_version" *.spec | sed -e "s/.*V_source_version\s*\([0-9._a-z-]*\).*/\1/") PASSWD_VERSION = $(shell grep "%define[ ]*V_passwd_version" *.spec | sed -e "s/.*V_passwd_version\s*\([0-9._a-z]*\).*/\1/") -RELEASE = ${YEAR}${MONTH}${DAY}suc01 +RELEASE = ${YEAR}${MONTH}${DAY}suc02 PATCHES = ../patches/horde-webmail/$(VERSION)/horde-webmail-$(VERSION)_kolab_openpkg.patch TEMPLATES = $(shell find . -name "*.template") From cvs at kolab.org Thu Jun 4 11:42:06 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 4 Jun 2009 11:42:06 +0200 (CEST) Subject: gunnar: server/kolab-webclient Makefile, 1.6.4.3, 1.6.4.4 kolab-webclient.spec, 1.23.2.6.2.10, 1.23.2.6.2.11 webclient-kolab-conf.template, 1.2.4.3, 1.2.4.4 Message-ID: <20090604094206.B31AB60081C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv2207/kolab-webclient Modified Files: Tag: suc_branch Makefile kolab-webclient.spec webclient-kolab-conf.template Log Message: Allow hiding teh organizer attribute when downloading ics data. Index: Makefile =================================================================== RCS file: /kolabrepository/server/kolab-webclient/Makefile,v retrieving revision 1.6.4.3 retrieving revision 1.6.4.4 diff -u -d -r1.6.4.3 -r1.6.4.4 --- Makefile 4 Jun 2009 04:40:27 -0000 1.6.4.3 +++ Makefile 4 Jun 2009 09:42:04 -0000 1.6.4.4 @@ -26,7 +26,7 @@ VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9._a-z]*\).*/\1/") SOURCE_VERSION = $(shell grep "%define[ ]*V_source_version" *.spec | sed -e "s/.*V_source_version\s*\([0-9._a-z-]*\).*/\1/") PASSWD_VERSION = $(shell grep "%define[ ]*V_passwd_version" *.spec | sed -e "s/.*V_passwd_version\s*\([0-9._a-z]*\).*/\1/") -RELEASE = ${YEAR}${MONTH}${DAY}suc02 +RELEASE = ${YEAR}${MONTH}${DAY}suc01 PATCHES = ../patches/horde-webmail/$(VERSION)/horde-webmail-$(VERSION)_kolab_openpkg.patch TEMPLATES = $(shell find . -name "*.template") Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.23.2.6.2.10 retrieving revision 1.23.2.6.2.11 diff -u -d -r1.23.2.6.2.10 -r1.23.2.6.2.11 --- kolab-webclient.spec 28 May 2009 15:43:13 -0000 1.23.2.6.2.10 +++ kolab-webclient.spec 4 Jun 2009 09:42:04 -0000 1.23.2.6.2.11 @@ -2,13 +2,13 @@ %define V_horde_name horde-webmail %define V_package kolab-webclient %define V_year 2009 -%define V_month 05 -%define V_day 28 +%define V_month 06 +%define V_day 04 %define V_version 1.2.0 %define V_source_version 1.2 %define V_passwd_version 3.0.1 %define V_date %{V_year}-%{V_month}-%{V_day} -%define V_release %{V_year}%{V_month}%{V_day}suc02 +%define V_release %{V_year}%{V_month}%{V_day}suc01 # Package Information Name: %{V_package} Index: webclient-kolab-conf.template =================================================================== RCS file: /kolabrepository/server/kolab-webclient/webclient-kolab-conf.template,v retrieving revision 1.2.4.3 retrieving revision 1.2.4.4 diff -u -d -r1.2.4.3 -r1.2.4.4 --- webclient-kolab-conf.template 28 May 2009 15:28:15 -0000 1.2.4.3 +++ webclient-kolab-conf.template 4 Jun 2009 09:42:04 -0000 1.2.4.4 @@ -41,4 +41,8 @@ */ //$conf['ics']['default_user'] = 'proxy@@@@postfix-mydomain@@@'; //$conf['ics']['default_pass'] = 'proxy'; +/** + * Uncomment if you wish to hide the organizer which is currently the proxy user. + */ +//$conf['ics']['hide_organizer'] = true; ?> From cvs at kolab.org Thu Jun 4 11:42:07 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 4 Jun 2009 11:42:07 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0/tg t_kronolith_HK_GW_AnonymousiCalDownload.diff, 1.1.2.1, 1.1.2.2 Message-ID: <20090604094207.54DDF60081C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0/tg In directory doto:/tmp/cvs-serv2207/patches/horde-webmail/1.2.0/tg Modified Files: Tag: suc_branch t_kronolith_HK_GW_AnonymousiCalDownload.diff Log Message: Allow hiding teh organizer attribute when downloading ics data. Index: t_kronolith_HK_GW_AnonymousiCalDownload.diff =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/tg/Attic/t_kronolith_HK_GW_AnonymousiCalDownload.diff,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- t_kronolith_HK_GW_AnonymousiCalDownload.diff 28 May 2009 14:26:36 -0000 1.1.2.1 +++ t_kronolith_HK_GW_AnonymousiCalDownload.diff 4 Jun 2009 09:42:05 -0000 1.1.2.2 @@ -10,9 +10,9 @@ Signed-off-by: Gunnar Wrobel

--- - horde-webmail/config/kolab.php | 4 ++ - horde-webmail/kronolith/ics_kolab.php | 95 +++++++++++++++++++++++++++++++++ - 2 files changed, 99 insertions(+), 0 deletions(-) + horde-webmail/config/kolab.php | 4 + + horde-webmail/kronolith/ics_kolab.php | 110 +++++++++++++++++++++++++++++++++ + 2 files changed, 114 insertions(+), 0 deletions(-) diff --git a/horde-webmail/config/kolab.php b/horde-webmail/config/kolab.php index ed41da4..118788a 100644 @@ -31,10 +31,10 @@ } diff --git a/horde-webmail/kronolith/ics_kolab.php b/horde-webmail/kronolith/ics_kolab.php new file mode 100644 -index 0000000..bb26d64 +index 0000000..2b81832 --- /dev/null +++ b/horde-webmail/kronolith/ics_kolab.php -@@ -0,0 +1,95 @@ +@@ -0,0 +1,110 @@ + + */ + ++function logout() ++{ ++ Auth::clearAuth(); ++ @session_destroy(); ++} ++ + at define('AUTH_HANDLER', true); + at define('HORDE_BASE', dirname(__FILE__) . '/..'); +require_once HORDE_BASE . '/lib/base.php'; @@ -67,6 +73,7 @@ + && isset($conf['ics']['default_pass'])) { + $user = $conf['ics']['default_user']; + $pass = $conf['ics']['default_pass']; ++ $proxied = true; + } +} else { + $user = $_SERVER['PHP_AUTH_USER']; @@ -89,6 +96,9 @@ +if (is_a($share, 'PEAR_Error')) { + header('HTTP/1.0 400 Bad Request'); + echo '400 Bad Request'; ++ if ($proxied) { ++ logout(); ++ } + exit; +} + @@ -115,7 +125,11 @@ + if (is_a($event, 'PEAR_Error')) { + continue; + } -+ $iCal->addComponent($event->toiCalendar($iCal)); ++ $iCalEvent = $event->toiCalendar($iCal); ++ if (!empty($conf['ics']['hide_organizer'])) { ++ $iCalEvent->removeAttribute('ORGANIZER'); ++ } ++ $iCal->addComponent($iCalEvent); + } + + $ics = $iCal->exportvCalendar(); @@ -128,13 +142,20 @@ + strlen($ics)); +echo $ics; + -+Auth::clearAuth(); -+ at session_destroy(); ++if ($proxied) { ++ logout(); ++} -- tg: (b5749f0..) t/kronolith/HK/GW/AnonymousiCalDownload (depends on: t/dimp/H/GW/AclView) -- TOPGIT patch commit log ======================= + +commit 4ac58a4d646865d74ac26c0439f29ceacfdfea82 +Author: Gunnar Wrobel

+Date: Thu Jun 4 09:40:25 2009 +0200 + + Allow to hide the organizer. commit 0df1aefd621efbe8a2d7e306fbc79dace5760280 Author: Gunnar Wrobel

From cvs at kolab.org Thu Jun 4 11:42:07 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 4 Jun 2009 11:42:07 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0 horde-webmail-1.2.0_kolab_openpkg.patch, 1.32.2.4.2.8, 1.32.2.4.2.9 Message-ID: <20090604094207.9227C60081C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0 In directory doto:/tmp/cvs-serv2207/patches/horde-webmail/1.2.0 Modified Files: Tag: suc_branch horde-webmail-1.2.0_kolab_openpkg.patch Log Message: Allow hiding teh organizer attribute when downloading ics data. Index: horde-webmail-1.2.0_kolab_openpkg.patch =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/Attic/horde-webmail-1.2.0_kolab_openpkg.patch,v retrieving revision 1.32.2.4.2.8 retrieving revision 1.32.2.4.2.9 diff -u -d -r1.32.2.4.2.8 -r1.32.2.4.2.9 --- horde-webmail-1.2.0_kolab_openpkg.patch 28 May 2009 14:26:36 -0000 1.32.2.4.2.8 +++ horde-webmail-1.2.0_kolab_openpkg.patch 4 Jun 2009 09:42:04 -0000 1.32.2.4.2.9 @@ -26928,9 +26928,9 @@ Signed-off-by: Gunnar Wrobel

--- - horde-webmail/config/kolab.php | 4 ++ - horde-webmail/kronolith/ics_kolab.php | 95 +++++++++++++++++++++++++++++++++ - 2 files changed, 99 insertions(+), 0 deletions(-) + horde-webmail/config/kolab.php | 4 + + horde-webmail/kronolith/ics_kolab.php | 110 +++++++++++++++++++++++++++++++++ + 2 files changed, 114 insertions(+), 0 deletions(-) diff --git a/horde-webmail/config/kolab.php b/horde-webmail/config/kolab.php index ed41da4..118788a 100644 @@ -26949,10 +26949,10 @@ } diff --git a/horde-webmail/kronolith/ics_kolab.php b/horde-webmail/kronolith/ics_kolab.php new file mode 100644 -index 0000000..bb26d64 +index 0000000..2b81832 --- /dev/null +++ b/horde-webmail/kronolith/ics_kolab.php -@@ -0,0 +1,95 @@ +@@ -0,0 +1,110 @@ + + */ + ++function logout() ++{ ++ Auth::clearAuth(); ++ @session_destroy(); ++} ++ + at define('AUTH_HANDLER', true); + at define('HORDE_BASE', dirname(__FILE__) . '/..'); +require_once HORDE_BASE . '/lib/base.php'; @@ -26985,6 +26991,7 @@ + && isset($conf['ics']['default_pass'])) { + $user = $conf['ics']['default_user']; + $pass = $conf['ics']['default_pass']; ++ $proxied = true; + } +} else { + $user = $_SERVER['PHP_AUTH_USER']; @@ -27007,6 +27014,9 @@ +if (is_a($share, 'PEAR_Error')) { + header('HTTP/1.0 400 Bad Request'); + echo '400 Bad Request'; ++ if ($proxied) { ++ logout(); ++ } + exit; +} + @@ -27033,7 +27043,11 @@ + if (is_a($event, 'PEAR_Error')) { + continue; + } -+ $iCal->addComponent($event->toiCalendar($iCal)); ++ $iCalEvent = $event->toiCalendar($iCal); ++ if (!empty($conf['ics']['hide_organizer'])) { ++ $iCalEvent->removeAttribute('ORGANIZER'); ++ } ++ $iCal->addComponent($iCalEvent); + } + + $ics = $iCal->exportvCalendar(); @@ -27046,13 +27060,20 @@ + strlen($ics)); +echo $ics; + -+Auth::clearAuth(); -+ at session_destroy(); ++if ($proxied) { ++ logout(); ++} -- tg: (b5749f0..) t/kronolith/HK/GW/AnonymousiCalDownload (depends on: t/dimp/H/GW/AclView) -- TOPGIT patch commit log ======================= + +commit 4ac58a4d646865d74ac26c0439f29ceacfdfea82 +Author: Gunnar Wrobel

+Date: Thu Jun 4 09:40:25 2009 +0200 + + Allow to hide the organizer. commit 0df1aefd621efbe8a2d7e306fbc79dace5760280 Author: Gunnar Wrobel

From cvs at kolab.org Fri Jun 5 14:54:04 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 5 Jun 2009 14:54:04 +0200 (CEST) Subject: richard: server/kolabd/kolabd ChangeLog,1.259,1.260 Message-ID: <20090605125404.368C2600815@lists.intevation.de> Author: richard Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv3202 Modified Files: ChangeLog Log Message: Include pid in kolabfilter log file. See kolab/issue3661 Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.259 retrieving revision 1.260 diff -u -d -r1.259 -r1.260 --- ChangeLog 27 May 2009 19:35:58 -0000 1.259 +++ ChangeLog 5 Jun 2009 12:54:01 -0000 1.260 @@ -1,3 +1,8 @@ +2009-06-05 Richard Bos + + * templates/resmgr.conf.template.in: Include pid in kolabfilter log + file. See kolab/issue3661 + 2009-05-27 Richard Bos * dist_conf/suse: change the user from kolab to wwwrun, From cvs at kolab.org Fri Jun 5 14:54:04 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 5 Jun 2009 14:54:04 +0200 (CEST) Subject: richard: server/kolabd/kolabd/templates resmgr.conf.template.in, 1.35, 1.36 Message-ID: <20090605125404.37A3E600817@lists.intevation.de> Author: richard Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv3202/templates Modified Files: resmgr.conf.template.in Log Message: Include pid in kolabfilter log file. See kolab/issue3661 Index: resmgr.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/resmgr.conf.template.in,v retrieving revision 1.35 retrieving revision 1.36 diff -u -d -r1.35 -r1.36 --- resmgr.conf.template.in 6 Mar 2009 08:40:56 -0000 1.35 +++ resmgr.conf.template.in 5 Jun 2009 12:54:02 -0000 1.36 @@ -192,7 +192,8 @@ $conf['log']['priority'] = PEAR_LOG_DEBUG; // Leave this on DEBUG for now. We just restructured the package... $conf['log']['type'] = '@resmgr_log_type@'; $conf['log']['name'] = '@resmgr_log_name@'; -$conf['log']['ident'] = 'Kolab Filter'; +//$conf['log']['name'] = '@resmgr_log_name at .'.getmypid(); +$conf['log']['ident'] = 'Kolab Filter (pid='.getmypid().')'; $conf['log']['params']['append'] = true; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! From cvs at kolab.org Fri Jun 5 16:14:08 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 5 Jun 2009 16:14:08 +0200 (CEST) Subject: martin: server/kolabd/kolabd kolab2.schema,1.35,1.36 Message-ID: <20090605141408.5855660082F@lists.intevation.de> Author: martin Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv6278 Modified Files: kolab2.schema Log Message: MArtin Konold: Added many new attributes and objectclasses for future use. (ob derived stuff) Index: kolab2.schema =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolab2.schema,v retrieving revision 1.35 retrieving revision 1.36 diff -u -d -r1.35 -r1.36 --- kolab2.schema 9 Feb 2009 15:32:37 -0000 1.35 +++ kolab2.schema 5 Jun 2009 14:14:05 -0000 1.36 @@ -1,6 +1,6 @@ # $Id$ # (c) 2003, 2004 Tassilo Erlewein -# (c) 2003-2007 Martin Konold +# (c) 2003-2009 Martin Konold # (c) 2003 Achim Frank # # Redistribution and use in source and binary forms, with or without @@ -38,19 +38,25 @@ # include /kolab/etc/openldap/schema/rfc2739.schema # include /kolab/etc/openldap/schema/kolab2.schema +# Prefix for OIDs: 1.3.6.1.4.1.19414 <- registered +# Prefix for OIDs: 1.3.6.1.4.1.19414.2000 <-- temporarily reserved for ob +# Prefix for attributes: 1.3.6.1.4.1.19414.1 +# Prefix for attributes: 1.3.6.1.4.1.19414.2 +# Prefix for objectclasses: 1.3.6.1.4.1.19414.3 +# nameprefix: kolab # #################### # kolab attributes # #################### -# helper attribute to make the kolab root easily findable in +# helper attribute to make the kolab root easily findable in # a big ldap directory attributetype ( 1.3.6.1.4.1.19414.2.1.1 NAME ( 'k' 'kolab' ) DESC 'Kolab attribute' SUP name ) -# kolabDeleteflag used to be a boolean but describes with Kolab 2 +# kolabDeleteflag used to be a boolean but describes with Kolab 2 # the fqdn of the server which is requested to delete this objects # in its local store attributetype ( 1.3.6.1.4.1.19414.2.1.2 @@ -72,8 +78,8 @@ # cleartext password. This is required in order to pass the password from # the maintainance/administration application to the kolabHomeServer running the # resource handler application in a secure manner. -# Actually this attribute is deprecated as of Kolab 2.1. Instead we grant the -# calendar user dn: cn=calendar,cn=internal,dc=yourcompany,dc=com access to +# Actually this attribute is deprecated as of Kolab 2.1. Instead we grant the +# calendar user dn: cn=calendar,cn=internal,dc=yourcompany,dc=com access to # the respective calendar folder using IMAP ACLs. attributetype ( 1.3.6.1.4.1.19414.2.1.4 NAME 'kolabEncryptedPassword' @@ -111,7 +117,7 @@ SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 ) # Specifies the email delegates. -# An email delegate can send email on behalf of the account +# An email delegate can send email on behalf of the account # which means using the "from" of the account. # Delegates are specified by the syntax of rfc822 email addresses. attributetype ( 1.3.6.1.4.1.19414.1.1.1.3 @@ -131,7 +137,7 @@ # ACT_REJECT_IF_CONFLICTS # ACT_MANUAL_IF_CONFLICTS # ACT_MANUAL -# In addition one of these values may be prefixed with a primary email +# In addition one of these values may be prefixed with a primary email # address followed by a colon like # user at domain.tld: ACT_ALWAYS_ACCEPT attributetype ( 1.3.6.1.4.1.19414.1.1.1.4 @@ -144,10 +150,10 @@ # time span from now to the future used for the free busy data # measured in days attributetype ( 1.3.6.1.4.1.19414.1.1.1.5 - NAME 'kolabFreeBusyFuture' + NAME 'kolabFreeBusyFuture' DESC 'time in days for fb data towards the future' EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # time span from now to the past used for the free busy data @@ -204,7 +210,7 @@ SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE ) -# Intervall in days after which senders get +# Intervall in days after which senders get # another vacation message. # Currently this attribute is not used in Kolab. attributetype ( 1.3.6.1.4.1.19414.1.1.1.10 @@ -248,11 +254,11 @@ DESC 'Multivalued -- Email domain for vacation to response upon' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) # Forward all incoming emails except UCE if kolabForwardUCE # is not set to this email address. -# There can be multiple kolabForwardAddress entries for +# There can be multiple kolabForwardAddress entries for # each kolabInetOrgPerson. # Currently this attribute is not used in Kolab. attributetype ( 1.3.6.1.4.1.19414.1.1.1.14 @@ -263,7 +269,7 @@ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) # Keep local copy when forwarding emails to list of -# kolabForwardAddress. +# kolabForwardAddress. # Default is no. # Currently this attribute is not used in Kolab. attributetype ( 1.3.6.1.4.1.19414.1.1.1.15 @@ -273,21 +279,21 @@ SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) -# Enable forwarding of UCE. +# Enable forwarding of UCE. # Default is yes. # Currently this attribute is not used in Kolab. attributetype ( 1.3.6.1.4.1.19414.1.1.1.16 NAME 'kolabForwardUCE' DESC 'Enable forwarding of mails known as UCE' EQUALITY booleanMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 + SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) # comment when creating or deleting a kolab object # a comment might be appropriate. This is most useful -# for tracability when users get moved to the graveyard +# for tracability when users get moved to the graveyard # instead of being really deleted. Every entry must be prefixed -# with an ISO 8601 date string e.g 200604301458Z. All times must +# with an ISO 8601 date string e.g 200604301458Z. All times must # be in zulu timezone. attributetype ( 1.3.6.1.4.1.19414.1.1.1.17 NAME 'kolabComment' @@ -296,7 +302,7 @@ SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} ) -# describes the allowed or disallowed smtp addresses for +# describes the allowed or disallowed smtp addresses for # recipients. If this attribute is not set for a user no # kolab recipient policy does apply. # example entries: @@ -323,24 +329,163 @@ NAME 'kolabHomeServerOnly' DESC 'Create the user mailbox on the kolabHomeServer only' EQUALITY booleanMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 + SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.19414.1.1.1.19 + NAME 'kolabSalutation' + DESC 'Salutation like Mr., Mrs, Herr, Frau)' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} ) + + +attributetype ( 1.3.6.1.4.1.19414.1.1.1.20 + NAME 'kolabMaritalStatus' + DESC 'ledig(0), verh.(1)} DEFAULT ledig' + EQUALITY integerMatch + SINGLE-VALUE + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27{1} ) + +attributetype ( 1.3.6.1.4.1.19414.1.1.1.21 + NAME ( 'homeFacsimileTelephoneNumber' 'homeFaxNumber' ) + DESC 'private facsimilie telephone number' + SUP telephoneNumber ) + +attributetype ( 1.3.6.1.4.1.19414.1.1.1.25 + NAME 'bylawURI' + DESC 'URI pointing at the bylaw' + SUP labeledURI + SINGLE-VALUE ) + +# Single string with $ seperated lines consisting of +# surname $ +# givenName $ +# dateOfBirth $ +# restrictions $ +# signer of contract ('true'/'false') +attributetype ( 1.3.6.1.4.1.19414.1.1.1.27 + NAME 'legalRepresentative' + DESC 'legal representative' + EQUALITY caseIgnoreListMatch + SUBSTR caseIgnoreListSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 ) + +# Single string with $ seperated lines consisting of +# surname $ +# givenName $ +# dateOfBirth $ +# restrictions $ +# signer of contract ('true'/'false') +attributetype ( 1.3.6.1.4.1.19414.1.1.1.28 + NAME 'commercialProcuration' + DESC 'described person which has commercial procuration' + EQUALITY caseIgnoreListMatch + SUBSTR caseIgnoreListSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 ) + +attributetype ( 1.3.6.1.4.1.19414.1.1.1.29 + NAME 'legalRepresentationPolicy' + DESC 'described how legal representation works' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) + +attributetype ( 1.3.6.1.4.1.19414.1.1.1.31 + NAME 'inLiquidation' + EQUALITY booleanMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 ): + +attributetype ( 1.3.6.1.4.1.19414.1.1.1.32 + NAME 'tradeRegisterRegisteredCapital' + EQUALITY integerMatch + SINGLE-VALUE + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) + +attributetype ( 1.3.6.1.4.1.19414.1.1.1.33 + NAME 'tradeRegisterType' + SINGLE-VALUE + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.19414.1.1.1.36 + NAME 'tradeRegisterURI' + SUP labeledURI + SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.19414.1.1.1.37 + NAME 'tradeRegisterLastChangedDate' + EQUALITY generalizedTimeMatch + SINGLE-VALUE + SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 ) + +attributetype ( 1.3.6.1.4.1.19414.1.1.1.38 + NAME 'kolabGermanBankAccountNumber' + DESC 'The 8-digits number of a german bank account without spaces' + SINGLE-VALUE + SYNTAX 1.3.6.1.4.1.1466.115.121.1.36{10} ) + +attributetype ( 1.3.6.1.4.1.19414.1.1.1.39 + NAME 'kolabGermanBankCode' + DESC 'The 8-digits number of a german bank code (BLZ) without spaces' + SINGLE-VALUE + SYNTAX 1.3.6.1.4.1.1466.115.121.1.36{8} ) + +attributetype ( 1.3.6.1.4.1.19414.1.1.1.40 + NAME 'kolabGermanBankName' + DESC 'The name of a german bank registered in the BLZ table published by Deutsche Bundesbank.' + SUP name + SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.19414.1.1.1.41 + NAME 'kolabGermanBankAccountInfo' + DESC 'Composed field containing a one-line human-readable representation of all necessary information.' + SINGLE-VALUE + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) + +attributetype ( 1.3.6.1.4.1.19414.1.1.1.42 + NAME 'kolabGermanBankAccountHolder' + DESC 'The name of the holder of a german bank account commonly used as recipient name.' + SINGLE-VALUE + SUP name ) + +# describes the allowed or disallowed smtp addresses for +# receiving. If this attribute is not set for a user no +# kolab recieving address policy does apply. +# example entries: +# .tld - allow mail from every sender for this tld +# domain.tld - allow mail from everyone in domain.tld +# .domain.tld - allow mail from everyone in domain.tld and its subdomains +# user at domain.tld - allow mail from explicit user at domain.tld +# user@ - allow mail from this user but any domain +# -.tld - disallow mail from every sender for this tld +# -domain.tld - disallow mail from everyone in domain.tld +# -.domain.tld - disallow mail from everyone in domain.tld and its subdomains +# -user at domain.tld - disallow mail from explicit user at domain.tld +# -user@ - disallow mail from this user but any domain + +attributetype ( 1.3.6.1.4.1.19414.1.1.1.43 + NAME 'kolabAllowSMTPFrom' + DESC 'SMTP address accepted for receiving (multi-valued)' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{512} ) + # kolabFolderType describes the kind of Kolab folder -# as defined in the kolab format specification. -# We will annotate all folders with an entry -# /vendor/kolab/folder-type containing the attribute -# value.shared set to: [.]. -# The can be: mail, event, journal, task, note, -# or contact. The for a mail folder can be -# inbox, drafts, sentitems, or junkemail (this one holds -# spam mails). For the other s, it can only be -# default, or not set. For other types of folders -# supported by the clients, these should be prefixed with -# "k-" for KMail, "h-" for Horde and "o-" for Outlook, and +# as defined in the kolab format specification. +# We will annotate all folders with an entry +# /vendor/kolab/folder-type containing the attribute +# value.shared set to: [.]. +# The can be: mail, event, journal, task, note, +# or contact. The for a mail folder can be +# inbox, drafts, sentitems, or junkemail (this one holds +# spam mails). For the other s, it can only be +# default, or not set. For other types of folders +# supported by the clients, these should be prefixed with +# "k-" for KMail, "h-" for Horde and "o-" for Outlook, and # look like for example "kolab.o-voicemail". Other third-party # clients shall use the "x-" prefix. -# We then use the ANNOTATEMORE IMAP extension to +# We then use the ANNOTATEMORE IMAP extension to # associate the folder type with a folder. attributetype ( 1.3.6.1.4.1.19414.2.1.7 NAME 'kolabFolderType' @@ -399,7 +544,7 @@ attributetype ( 1.3.6.1.4.1.19414.2.1.508 NAME 'postfix-allow-unauthenticated' EQUALITY booleanMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 + SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( 1.3.6.1.4.1.19414.2.1.509 @@ -426,7 +571,7 @@ attributetype ( 1.3.6.1.4.1.19414.2.1.601 NAME 'cyrus-autocreatequota' EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( 1.3.6.1.4.1.19414.2.1.602 @@ -435,11 +580,11 @@ SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) -# enable plain imap without ssl +# enable plain imap without ssl attributetype ( 1.3.6.1.4.1.19414.2.1.603 NAME 'cyrus-imap' EQUALITY booleanMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 + SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) # enable legacy pop3 @@ -463,7 +608,7 @@ SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) -# enable secure imap +# enable secure imap attributetype ( 1.3.6.1.4.1.19414.2.1.606 NAME 'cyrus-imaps' EQUALITY booleanMatch @@ -481,7 +626,7 @@ EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 ) -# installation wide percentage which determines when to send a +# installation wide percentage which determines when to send a # warning to the user attributetype ( 1.3.6.1.4.1.19414.2.1.609 NAME 'cyrus-quotawarn' @@ -578,6 +723,81 @@ NAME 'proftpd-userPassword' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) +######################################################################## +# pop3 service attributes (suitable to integrate external pop3 sources # +######################################################################## + +attributetype ( 1.3.6.1.4.1.19414.2.1.1001 + NAME 'externalPop3AccountDescription' + DESC 'a human readable description of the external POP3 account e.g. my gmail account' + SUP description + SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.19414.2.1.1002 + NAME 'externalPop3AccountMail' + DESC 'email address associated with the external POP3 account e.g. givenname.surname at gmail.com' + SUP mail ) + +attributetype ( 1.3.6.1.4.1.19414.2.1.1003 + NAME 'externalPop3AccountServer' + DESC 'Pop3 server associated with the external POP3 account e.g. pop3.provider.com' + SUP fqdnhostname + SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.19414.2.1.1004 + NAME 'externalPop3AccountPort' + DESC 'TCP port number used for pop3 service associated with the external POP3 account e.g. 110' + EQUALITY integerMatch + SINGLE-VALUE + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27{5} ) + +attributetype ( 1.3.6.1.4.1.19414.2.1.1005 + NAME 'externalPop3AccountUseSSL' + DESC 'boolean defining if SSL must be used for external POP3 account - requires suitable externalPop3AccountPort' + EQUALITY booleanMatch + SINGLE-VALUE + SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 ) + +attributetype ( 1.3.6.1.4.1.19414.2.1.1006 + NAME 'externalPop3AccountUseTLS' + DESC 'boolean defining if TLS must be used for external POP3 account' + EQUALITY booleanMatch + SINGLE-VALUE + SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 ) + +# sometimes useful for self-signed certificates +attributetype ( 1.3.6.1.4.1.19414.2.1.1007 + NAME 'externalPop3AccountCheckServerCertificate' + DESC 'allows to disable checking server certificates when using SSL or TLS - beware of MIT-attacks!' + EQUALITY booleanMatch + SINGLE-VALUE + SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 ) + +attributetype ( 1.3.6.1.4.1.19414.2.1.1008 + NAME 'externalPop3AccountLoginName' + DESC 'name used to login into pop3 account often this uid is equivalent to the email address' + SUP uid + SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.19414.2.1.1009 + NAME 'externalPop3EncryptedAccountPassword' + DESC 'encryped password for the external POP3 account - secret key must be known to the pop3 fetch service' + SINGLE-VALUE + SYNTAX 1.3.6.1.4.1.1466.115.121.1.40) + +attributetype ( 1.3.6.1.4.1.19414.2.1.1010 + NAME 'externalPop3AccountKeepMailOnServer' + DESC 'controls if fetched message shall remain on external POP3 server - beware this is often unreliable' + EQUALITY booleanMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 ) + +attributetype ( 1.3.6.1.4.1.19414.2.1.1011 + NAME 'externalPop3AccountLoginMethod' + DESC 'login method used for external POP3 account - currently these are plainText, LOGIN, PLAIN, NTLM, DIGEST-MD5, CRAM-MD5, GSSAPI and APOP' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} ) + ######################## # kolab object classes # ######################## @@ -627,12 +847,12 @@ uid $ userPassword ) ) -# public folders are typically visible to everyone subscribed to +# public folders are typically visible to everyone subscribed to # the server without the need for an extra login. Subfolders are # defined using the hiarchy seperator '/' e.g. "sf/sub1". Please note -# that the term public folder is prefered to shared folder because +# that the term public folder is prefered to shared folder because # normal user mailboxes can also share folders using acls. -objectclass ( 1.3.6.1.4.1.19414.2.2.9 +objectclass ( 1.3.6.1.4.1.19414.2.2.9 NAME 'kolabSharedFolder' DESC 'Kolab public shared folder' SUP top STRUCTURAL @@ -644,12 +864,12 @@ kolabFolderType $ kolabDeleteflag ) ) -# kolabNamedObject is used as a plain node for the LDAP tree. -# In contrast to unix filesystem directories LDAP nodes can -# and often do also have contents/attributes. We use the -# kolabNamedObject in order to put some structure in the +# kolabNamedObject is used as a plain node for the LDAP tree. +# In contrast to unix filesystem directories LDAP nodes can +# and often do also have contents/attributes. We use the +# kolabNamedObject in order to put some structure in the # LDAP directory tree. -objectclass ( 1.3.6.1.4.1.5322.13.1.1 +objectclass ( 1.3.6.1.4.1.5322.13.1.1 NAME 'kolabNamedObject' SUP top STRUCTURAL MAY (cn $ ou) ) @@ -657,15 +877,16 @@ # kolab account # we use an auxiliary in order to ease integration # with existing inetOrgPerson objects -# Please note that userPassword is a may +# Please note that userPassword is a may # attribute in the schema but is mandatory for -# Kolab +# Kolab objectclass ( 1.3.6.1.4.1.19414.3.2.2 NAME 'kolabInetOrgPerson' DESC 'Kolab Internet Organizational Person' SUP top AUXILIARY MAY ( c $ alias $ + pseudonym $ kolabHomeServer $ kolabHomeServerOnly $ kolabHomeMTA $ @@ -686,11 +907,25 @@ kolabForwardKeepCopy $ kolabForwardUCE $ kolabAllowSMTPRecipient $ + kolabAllowSMTPFrom $ + kolabSalutation $ + kolabMaritalStatus $ + dateOfBirth $ + placeOfBirth $ + birthName $ + gender $ + countryOfCitizenship $ + countryOfResidence $ + legalForm $ + tradeRegisterLocation $ + tradeRegisterIdentifier $ + VATNumber $ + germanTaxId $ kolabDeleteflag $ kolabComment ) ) # kolab organization with country support -objectclass ( 1.3.6.1.4.1.19414.3.2.3 +objectclass ( 1.3.6.1.4.1.19414.3.2.3 NAME 'kolabOrganization' DESC 'RFC2256: a Kolab organization' SUP organization STRUCTURAL @@ -700,7 +935,7 @@ alias ) ) # kolab organizational unit with country support -objectclass ( 1.3.6.1.4.1.19414.3.2.4 +objectclass ( 1.3.6.1.4.1.19414.3.2.4 NAME 'kolabOrganizationalUnit' DESC 'a Kolab organizational unit' SUP organizationalUnit STRUCTURAL @@ -709,7 +944,7 @@ kolabDeleteflag $ alias ) ) -# kolab groupOfNames with extra kolabDeleteflag and the required +# kolab groupOfNames with extra kolabDeleteflag and the required # attribute mail. # The mail attribute for kolab objects of the type kolabGroupOfNames # is not arbitrary but MUST be a single attribute of the form @@ -722,3 +957,29 @@ SUP groupOfNames STRUCTURAL MAY ( mail $ kolabDeleteflag ) ) + +objectclass ( 1.3.6.1.4.1.19414.3.2.6 + NAME 'kolabExternalPop3Account' + DESC 'kolab fetch messages via POP3 from external sources' + SUP top STRUCTURAL + MUST ( externalPop3AccountServer $ + externalPop3AccountLoginName $ + externalPop3EncryptedAccountPassword ) + MAY ( externalPop3AccountDescription $ + externalPop3AccountMail $ + externalPop3AccountPort $ + externalPop3AccountUseSSL $ + externalPop3AccountUseTLS $ + externalPop3AccountLoginMethod $ + externalPop3AccountCheckServerCertificate $ + externalPop3AccountKeepMailOnServer ) ) + +objectclass ( 1.3.6.1.4.1.19414.3.2.7 + NAME 'kolabGermanBankArrangement' + DESC 'German bank account information' + SUP top STRUCTURAL + MUST ( kolabGermanBankAccountNumber $ + kolabGermanBankCode ) + MAY ( kolabGermanBankAccountHolder $ + kolabGermanBankName $ + kolabGermanBankAccountInfo ) ) From cvs at kolab.org Mon Jun 8 13:06:21 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 8 Jun 2009 13:06:21 +0200 (CEST) Subject: emanuel: doc/www/src webclient.html.m4,1.7,1.8 Message-ID: <20090608110621.10345600812@lists.intevation.de> Author: emanuel Update of /kolabrepository/doc/www/src In directory doto:/tmp/cvs-serv24342 Modified Files: webclient.html.m4 Log Message: Update webclient Index: webclient.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/webclient.html.m4,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- webclient.html.m4 21 Aug 2006 13:16:57 -0000 1.7 +++ webclient.html.m4 8 Jun 2009 11:06:18 -0000 1.8 @@ -7,7 +7,7 @@  

-
+ + +

Webclient

+ + +
+

The Horde webclient is integrated in Kolab Server since v2.2. +See Kolab Clients for current +information.

The Horde webclient is discussed on the @@ -29,5 +41,7 @@

  • Horde

    + +
  • m4_include(footer.html.m4) From cvs at kolab.org Mon Jun 15 23:16:48 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 15 Jun 2009 23:16:48 +0200 (CEST) Subject: martin: server/kolabd/kolabd/templates saslauthd.conf.template.in, 1.4, 1.5 Message-ID: <20090615211648.C3EB5600826@lists.intevation.de> Author: martin Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv28578 Modified Files: saslauthd.conf.template.in Log Message: Martin Konold: avoid match for non kolabInetOrgPerson objects Index: saslauthd.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/saslauthd.conf.template.in,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- saslauthd.conf.template.in 17 Mar 2009 11:20:57 -0000 1.4 +++ saslauthd.conf.template.in 15 Jun 2009 21:16:46 -0000 1.5 @@ -75,7 +75,7 @@ # uses userPassword attribute to verify the password. Currently, {CRYPT} # hash is supported. -ldap_filter: (&(|(mail=%u@%d)(mail=%u)(uid=%u@%d)(uid=%u))(!(kolabdeleteflag=*))) +ldap_filter: (&(|(mail=%u@%d)(mail=%u)(uid=%u@%d)(uid=%u))(!(kolabdeleteflag=*))(objectClass=kolabInetOrgPerson)) #ldap_filter: # Specify a filter. Use the %u and %r tokens for the username and realm # substitution. The %u token has to be used at minimum for the filter to From cvs at kolab.org Thu Jun 18 17:45:41 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 18 Jun 2009 17:45:41 +0200 (CEST) Subject: wilde: server/kolabd/kolabd/templates clamd.conf.template.in, 1.3.4.1, 1.3.4.1.2.1 main.cf.template.in, 1.22, 1.22.4.1 master.cf.template.in, 1.25, 1.25.4.1 Message-ID: <20090618154541.A80B6600829@lists.intevation.de> Author: wilde Update of /kolabrepository/server/kolabd/kolabd/templates In directory doto:/tmp/cvs-serv17170/kolabd/templates Modified Files: Tag: suc_branch clamd.conf.template.in main.cf.template.in master.cf.template.in Log Message: Merged changes from 2.2.2 release. Index: clamd.conf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/clamd.conf.template.in,v retrieving revision 1.3.4.1 retrieving revision 1.3.4.1.2.1 diff -u -d -r1.3.4.1 -r1.3.4.1.2.1 --- clamd.conf.template.in 6 Apr 2009 16:17:55 -0000 1.3.4.1 +++ clamd.conf.template.in 18 Jun 2009 15:45:39 -0000 1.3.4.1.2.1 @@ -121,6 +121,26 @@ # Default: 120 #ReadTimeout 300 +# This option specifies the time (in seconds) after which clamd should +# timeout if a client doesn't provide any initial command after connecting. +# Default: 5 +#CommandReadTimeout 5 + +# This option specifies how long to wait (in miliseconds) if the send buffer is full. +# Keep this value low to prevent clamd hanging +# +# Default: 500 +#SendBufTimeout 200 + +# Maximum number of queued items (including those being processed by MaxThreads threads) +# It is recommended to have this value at least twice MaxThreads if possible. +# WARNING: you shouldn't increase this too much to avoid running out of file descriptors, +# the following condition should hold: +# MaxThreads*MaxRecursion + (MaxQueue - MaxThreads) + 6< RLIMIT_NOFILE (usual max is 1024) +# +# Default: 100 +#MaxQueue 200 + # Waiting for a new job will timeout after this time (seconds). # Default: 30 #IdleTimeout 60 @@ -144,7 +164,7 @@ #FollowFileSymlinks yes # Perform a database check. -# Default: 1800 (30 min) +# Default: 600 (10 min) #SelfCheck 600 # Execute a command when virus is found. In the command string %v will @@ -341,11 +361,6 @@ # ClamAV can scan within archives and compressed files. # Default: yes #ScanArchive yes - -# Use slower but memory efficient decompression algorithm. -# only affects the bzip2 decompressor. -# Default: no -#ArchiveLimitMemoryUsage yes # Mark encrypted archives as viruses (Encrypted.Zip, Encrypted.RAR). # Default: no Index: main.cf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/main.cf.template.in,v retrieving revision 1.22 retrieving revision 1.22.4.1 diff -u -d -r1.22 -r1.22.4.1 --- main.cf.template.in 30 Jan 2009 12:00:49 -0000 1.22 +++ main.cf.template.in 18 Jun 2009 15:45:39 -0000 1.22.4.1 @@ -55,6 +55,10 @@ masquerade_classes = envelope_sender, envelope_recipient, header_sender, header_recipient +# See kolab/issue3549 (append_dot_mydomain allows circumventing kolabfilter-verify-from-header) +append_dot_mydomain = no +remote_header_rewrite_domain = domain.invalid + # smtp daemon #smtpd_banner = $myhostname ESMTP $mail_name @@@if bind_any@@@ Index: master.cf.template.in =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/templates/master.cf.template.in,v retrieving revision 1.25 retrieving revision 1.25.4.1 diff -u -d -r1.25 -r1.25.4.1 --- master.cf.template.in 8 Nov 2008 11:59:28 -0000 1.25 +++ master.cf.template.in 18 Jun 2009 15:45:39 -0000 1.25.4.1 @@ -48,7 +48,7 @@ #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 @@@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_alias_maps= +post-cleanup unix n - n - 0 cleanup -o virtual_alias_maps= -o masquerade_domains= smtp-amavis unix - - n - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes From cvs at kolab.org Thu Jun 18 17:45:41 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 18 Jun 2009 17:45:41 +0200 (CEST) Subject: wilde: server/kolabd/kolabd ChangeLog, 1.234.2.7.2.2, 1.234.2.7.2.3 configure.ac, 1.12, 1.12.4.1 Message-ID: <20090618154541.A694C600826@lists.intevation.de> Author: wilde Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv17170/kolabd Modified Files: Tag: suc_branch ChangeLog configure.ac Log Message: Merged changes from 2.2.2 release. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/ChangeLog,v retrieving revision 1.234.2.7.2.2 retrieving revision 1.234.2.7.2.3 diff -u -d -r1.234.2.7.2.2 -r1.234.2.7.2.3 --- ChangeLog 23 Apr 2009 07:22:23 -0000 1.234.2.7.2.2 +++ ChangeLog 18 Jun 2009 15:45:39 -0000 1.234.2.7.2.3 @@ -1,3 +1,17 @@ +2009-05-14 Thomas Arendsen Hein + + * templates/main.cf.template.in, templates/master.cf.template.in: + Use append_dot_mydomain = no and remote_header_rewrite_domain = + domain.invalid and disable masquerade_domains for post-cleanup. + Fixes kolab/issue3549 (append_dot_mydomain allows circumventing + kolabfilter-verify-from-header) + +2009-05-13 Thomas Arendsen Hein + + * templates/clamd.conf.template.in: + Updated templates for clamav-0.95.1-20090409 for + kolab/issue3513 (Clamav - new upstream version 0.95.1) + 2009-04-23 Gunnar Wrobel

    * templates/freebusy.conf.template.in: Configuration support for Index: configure.ac =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/configure.ac,v retrieving revision 1.12 retrieving revision 1.12.4.1 diff -u -d -r1.12 -r1.12.4.1 --- configure.ac 12 Dec 2008 13:33:25 -0000 1.12 +++ configure.ac 18 Jun 2009 15:45:39 -0000 1.12.4.1 @@ -1,7 +1,7 @@ AC_PREREQ(2.59) # not the real version -m4_define(_VERSION,2.2.1) +m4_define(_VERSION,2.2.2) AC_INIT([kolabd],[_VERSION],[kolab-devel at kolab.org]) AC_CONFIG_AUX_DIR(.) From cvs at kolab.org Mon Jun 22 00:13:50 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 22 Jun 2009 00:13:50 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0 horde-webmail-1.2.0_kolab_openpkg.patch, 1.32.2.4.2.9, 1.32.2.4.2.10 Message-ID: <20090621221350.DADE9600830@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0 In directory doto:/tmp/cvs-serv28499 Modified Files: Tag: suc_branch horde-webmail-1.2.0_kolab_openpkg.patch Log Message: Translations. Index: horde-webmail-1.2.0_kolab_openpkg.patch =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/Attic/horde-webmail-1.2.0_kolab_openpkg.patch,v retrieving revision 1.32.2.4.2.9 retrieving revision 1.32.2.4.2.10 diff -u -d -r1.32.2.4.2.9 -r1.32.2.4.2.10 --- horde-webmail-1.2.0_kolab_openpkg.patch 4 Jun 2009 09:42:04 -0000 1.32.2.4.2.9 +++ horde-webmail-1.2.0_kolab_openpkg.patch 21 Jun 2009 22:13:47 -0000 1.32.2.4.2.10 @@ -27165,12 +27165,14 @@ Signed-off-by: Gunnar Wrobel

    --- - horde-webmail/dimp/js/DimpBase.js | 1 + - horde-webmail/dimp/lib/DIMP.php | 1 + - horde-webmail/dimp/templates/index/index.inc | 1 + - horde-webmail/imp/acl.php | 12 ++++++++++-- - horde-webmail/imp/templates/acl/acl.html | 6 ++++++ - 5 files changed, 19 insertions(+), 2 deletions(-) + horde-webmail/dimp/js/DimpBase.js | 1 + + horde-webmail/dimp/lib/DIMP.php | 1 + + .../dimp/locale/de_DE/LC_MESSAGES/dimp.mo | Bin 168731 -> 168778 bytes + horde-webmail/dimp/po/de_DE.po | 3 +++ + horde-webmail/dimp/templates/index/index.inc | 1 + + horde-webmail/imp/acl.php | 12 ++++++++++-- + horde-webmail/imp/templates/acl/acl.html | 6 ++++++ + 7 files changed, 22 insertions(+), 2 deletions(-) diff --git a/horde-webmail/dimp/js/DimpBase.js b/horde-webmail/dimp/js/DimpBase.js index 39a728b..c4eb9f4 100644 @@ -27196,6 +27198,20 @@ 'sortthread' => SORTTHREAD, 'sortdate' => SORTDATE, +diff --git a/horde-webmail/dimp/locale/de_DE/LC_MESSAGES/dimp.mo b/horde-webmail/dimp/locale/de_DE/LC_MESSAGES/dimp.mo +index 2f1c11c..973776f 100644 +Binary files a/horde-webmail/dimp/locale/de_DE/LC_MESSAGES/dimp.mo and b/horde-webmail/dimp/locale/de_DE/LC_MESSAGES/dimp.mo differ +diff --git a/horde-webmail/dimp/po/de_DE.po b/horde-webmail/dimp/po/de_DE.po +index c1a6f52..6de9591 100644 +--- a/horde-webmail/dimp/po/de_DE.po ++++ b/horde-webmail/dimp/po/de_DE.po +@@ -791,3 +791,6 @@ msgstr "entfernen" + #: lib/DIMP.php:191 + msgid "results found" + msgstr "Ergebnisse gefunden" ++ ++msgid "Share Folder" ++msgstr "Gemeinsame Ordner" diff --git a/horde-webmail/dimp/templates/index/index.inc b/horde-webmail/dimp/templates/index/index.inc index 21939e0..7c02fe7 100644 --- a/horde-webmail/dimp/templates/index/index.inc @@ -27272,11 +27288,17 @@

    -- -tg: (3c3721f..) t/dimp/H/GW/AclView (depends on: t/dimp/H/GW/FoldersView) +tg: (ad147a4..) t/dimp/H/GW/AclView (depends on: t/dimp/H/GW/FoldersView) -- TOPGIT patch commit log ======================= +commit 57041c04c322dd7dc57da5b171923b7ab000ec0a +Author: Gunnar Wrobel

    +Date: Sun Jun 21 23:58:30 2009 +0200 + + German translation. + commit cac1482cec6c96a8a1d7fb7c0e8c2433877728f5 Author: Gunnar Wrobel

    Date: Fri Mar 13 12:04:03 2009 +0000 @@ -27308,28 +27330,46 @@ Signed-off-by: Gunnar Wrobel

    --- - horde-webmail/dimp/config/menu.php | 6 ++++++ + horde-webmail/dimp/config/menu.php | 9 ++++++++- + horde-webmail/dimp/po/de_DE.po | 3 +++ horde-webmail/imp/folders.php | 17 ++++++++++++----- horde-webmail/imp/templates/folders/actions.html | 2 ++ - 3 files changed, 20 insertions(+), 5 deletions(-) + 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/horde-webmail/dimp/config/menu.php b/horde-webmail/dimp/config/menu.php -index 5dcf354..99a4b8c 100644 +index 0c6ebe9..b5e0a5c 100644 --- a/horde-webmail/dimp/config/menu.php +++ b/horde-webmail/dimp/config/menu.php -@@ -28,6 +28,12 @@ +@@ -28,7 +28,14 @@ // 'text' => 'Say Hi!', // 'icon' => $GLOBALS['registry']->getImageDir('horde') . '/horde.png'), // ); ++ +$site_menu = array( + 'folders' => array( + 'action' => 'DimpBase.go("app:horde", "' . Horde::url($GLOBALS['registry']->get('webroot', 'imp') . '/folders.php', true) . '")', -+ 'text' => _('Folders'), -+ 'icon' => $GLOBALS['registry']->getImageDir('imp') . '/folders/folder.png'), ++ 'text' => _('Folder Subscription'), ++ 'icon' => $GLOBALS['registry']->getImageDir('horde') . '/prefs.png'), +); ++ if (file_exists(dirname(__FILE__) . '/menu.local.php')) { - require_once(dirname(__FILE__) . '/menu.local.php'); + require(dirname(__FILE__) . '/menu.local.php'); } +- +diff --git a/horde-webmail/dimp/po/de_DE.po b/horde-webmail/dimp/po/de_DE.po +index 65e8824..c1a6f52 100644 +--- a/horde-webmail/dimp/po/de_DE.po ++++ b/horde-webmail/dimp/po/de_DE.po +@@ -16,6 +16,9 @@ msgstr "" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=2; plural=(n != 1);\n" + ++msgid "Folder Subscription" ++mststr "Ordner verwalten" ++ + #: lib/Views/ShowMessage.php:295 + #, php-format + msgid "%d Attachment" diff --git a/horde-webmail/imp/folders.php b/horde-webmail/imp/folders.php index a0425aa..c46b0e5 100644 --- a/horde-webmail/imp/folders.php @@ -27399,10 +27439,16 @@ -- -tg: (eff636a..) t/dimp/H/GW/FoldersView (depends on: t/kronolith/H/GW/UseDayHourStartEndAlsoInFBView) +tg: (3678979..) t/dimp/H/GW/FoldersView (depends on: t/kronolith/H/GW/UseDayHourStartEndAlsoInFBView) -- TOPGIT patch commit log ======================= + +commit ad147a4b42d61800400a2a779e884ee050358811 +Author: Gunnar Wrobel

    +Date: Mon Jun 22 00:06:14 2009 +0200 + + Fixed menu entry name, added translation, fixed image. commit a1966161022108d9bf4831a8613b1db9a4e68c4d Author: Gunnar Wrobel

    From cvs at kolab.org Mon Jun 22 00:13:50 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 22 Jun 2009 00:13:50 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0/merges t_dimp_H_GW_AclView.diff, 1.1.2.1, 1.1.2.2 t_dimp_H_GW_FoldersView.diff, 1.1.2.1, 1.1.2.2 Message-ID: <20090621221350.C9C1260082F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0/merges In directory doto:/tmp/cvs-serv28499/merges Modified Files: Tag: suc_branch t_dimp_H_GW_AclView.diff t_dimp_H_GW_FoldersView.diff Log Message: Translations. Index: t_dimp_H_GW_AclView.diff =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/merges/Attic/t_dimp_H_GW_AclView.diff,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- t_dimp_H_GW_AclView.diff 22 Apr 2009 16:00:46 -0000 1.1.2.1 +++ t_dimp_H_GW_AclView.diff 21 Jun 2009 22:13:48 -0000 1.1.2.2 @@ -12,12 +12,14 @@ Signed-off-by: Gunnar Wrobel

    --- - horde-webmail/dimp/js/DimpBase.js | 1 + - horde-webmail/dimp/lib/DIMP.php | 1 + - horde-webmail/dimp/templates/index/index.inc | 1 + - horde-webmail/imp/acl.php | 12 ++++++++++-- - horde-webmail/imp/templates/acl/acl.html | 6 ++++++ - 5 files changed, 19 insertions(+), 2 deletions(-) + horde-webmail/dimp/js/DimpBase.js | 1 + + horde-webmail/dimp/lib/DIMP.php | 1 + + .../dimp/locale/de_DE/LC_MESSAGES/dimp.mo | Bin 168731 -> 168778 bytes + horde-webmail/dimp/po/de_DE.po | 3 +++ + horde-webmail/dimp/templates/index/index.inc | 1 + + horde-webmail/imp/acl.php | 12 ++++++++++-- + horde-webmail/imp/templates/acl/acl.html | 6 ++++++ + 7 files changed, 22 insertions(+), 2 deletions(-) diff --git a/horde-webmail/dimp/js/DimpBase.js b/horde-webmail/dimp/js/DimpBase.js index 39a728b..c4eb9f4 100644 @@ -43,6 +45,20 @@ 'sortthread' => SORTTHREAD, 'sortdate' => SORTDATE, +diff --git a/horde-webmail/dimp/locale/de_DE/LC_MESSAGES/dimp.mo b/horde-webmail/dimp/locale/de_DE/LC_MESSAGES/dimp.mo +index 2f1c11c..973776f 100644 +Binary files a/horde-webmail/dimp/locale/de_DE/LC_MESSAGES/dimp.mo and b/horde-webmail/dimp/locale/de_DE/LC_MESSAGES/dimp.mo differ +diff --git a/horde-webmail/dimp/po/de_DE.po b/horde-webmail/dimp/po/de_DE.po +index c1a6f52..6de9591 100644 +--- a/horde-webmail/dimp/po/de_DE.po ++++ b/horde-webmail/dimp/po/de_DE.po +@@ -791,3 +791,6 @@ msgstr "entfernen" + #: lib/DIMP.php:191 + msgid "results found" + msgstr "Ergebnisse gefunden" ++ ++msgid "Share Folder" ++msgstr "Gemeinsame Ordner" diff --git a/horde-webmail/dimp/templates/index/index.inc b/horde-webmail/dimp/templates/index/index.inc index 21939e0..7c02fe7 100644 --- a/horde-webmail/dimp/templates/index/index.inc @@ -119,10 +135,16 @@

    -- -tg: (3c3721f..) t/dimp/H/GW/AclView (depends on: t/dimp/H/GW/FoldersView) +tg: (ad147a4..) t/dimp/H/GW/AclView (depends on: t/dimp/H/GW/FoldersView) -- TOPGIT patch commit log ======================= + +commit 57041c04c322dd7dc57da5b171923b7ab000ec0a +Author: Gunnar Wrobel

    +Date: Sun Jun 21 23:58:30 2009 +0200 + + German translation. commit cac1482cec6c96a8a1d7fb7c0e8c2433877728f5 Author: Gunnar Wrobel

    Index: t_dimp_H_GW_FoldersView.diff =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/merges/Attic/t_dimp_H_GW_FoldersView.diff,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- t_dimp_H_GW_FoldersView.diff 22 Apr 2009 16:18:51 -0000 1.1.2.1 +++ t_dimp_H_GW_FoldersView.diff 21 Jun 2009 22:13:48 -0000 1.1.2.2 @@ -12,28 +12,46 @@ Signed-off-by: Gunnar Wrobel

    --- - horde-webmail/dimp/config/menu.php | 6 ++++++ + horde-webmail/dimp/config/menu.php | 9 ++++++++- + horde-webmail/dimp/po/de_DE.po | 3 +++ horde-webmail/imp/folders.php | 17 ++++++++++++----- horde-webmail/imp/templates/folders/actions.html | 2 ++ - 3 files changed, 20 insertions(+), 5 deletions(-) + 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/horde-webmail/dimp/config/menu.php b/horde-webmail/dimp/config/menu.php -index 5dcf354..99a4b8c 100644 +index 0c6ebe9..b5e0a5c 100644 --- a/horde-webmail/dimp/config/menu.php +++ b/horde-webmail/dimp/config/menu.php -@@ -28,6 +28,12 @@ +@@ -28,7 +28,14 @@ // 'text' => 'Say Hi!', // 'icon' => $GLOBALS['registry']->getImageDir('horde') . '/horde.png'), // ); ++ +$site_menu = array( + 'folders' => array( + 'action' => 'DimpBase.go("app:horde", "' . Horde::url($GLOBALS['registry']->get('webroot', 'imp') . '/folders.php', true) . '")', -+ 'text' => _('Folders'), -+ 'icon' => $GLOBALS['registry']->getImageDir('imp') . '/folders/folder.png'), ++ 'text' => _('Folder Subscription'), ++ 'icon' => $GLOBALS['registry']->getImageDir('horde') . '/prefs.png'), +); ++ if (file_exists(dirname(__FILE__) . '/menu.local.php')) { - require_once(dirname(__FILE__) . '/menu.local.php'); + require(dirname(__FILE__) . '/menu.local.php'); } +- +diff --git a/horde-webmail/dimp/po/de_DE.po b/horde-webmail/dimp/po/de_DE.po +index 65e8824..c1a6f52 100644 +--- a/horde-webmail/dimp/po/de_DE.po ++++ b/horde-webmail/dimp/po/de_DE.po +@@ -16,6 +16,9 @@ msgstr "" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=2; plural=(n != 1);\n" + ++msgid "Folder Subscription" ++mststr "Ordner verwalten" ++ + #: lib/Views/ShowMessage.php:295 + #, php-format + msgid "%d Attachment" diff --git a/horde-webmail/imp/folders.php b/horde-webmail/imp/folders.php index a0425aa..c46b0e5 100644 --- a/horde-webmail/imp/folders.php @@ -103,10 +121,16 @@ -- -tg: (eff636a..) t/dimp/H/GW/FoldersView (depends on: t/kronolith/H/GW/UseDayHourStartEndAlsoInFBView) +tg: (3678979..) t/dimp/H/GW/FoldersView (depends on: t/kronolith/H/GW/UseDayHourStartEndAlsoInFBView) -- TOPGIT patch commit log ======================= + +commit ad147a4b42d61800400a2a779e884ee050358811 +Author: Gunnar Wrobel

    +Date: Mon Jun 22 00:06:14 2009 +0200 + + Fixed menu entry name, added translation, fixed image. commit a1966161022108d9bf4831a8613b1db9a4e68c4d Author: Gunnar Wrobel

    From cvs at kolab.org Mon Jun 22 08:52:37 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 22 Jun 2009 08:52:37 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0/merges t_dimp_H_GW_FoldersView.diff, 1.1.2.2, 1.1.2.3 Message-ID: <20090622065237.9C07060082F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0/merges In directory doto:/tmp/cvs-serv24913/merges Modified Files: Tag: suc_branch t_dimp_H_GW_FoldersView.diff Log Message: Correct typo. Index: t_dimp_H_GW_FoldersView.diff =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/merges/Attic/t_dimp_H_GW_FoldersView.diff,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -u -d -r1.1.2.2 -r1.1.2.3 --- t_dimp_H_GW_FoldersView.diff 21 Jun 2009 22:13:48 -0000 1.1.2.2 +++ t_dimp_H_GW_FoldersView.diff 22 Jun 2009 06:52:35 -0000 1.1.2.3 @@ -39,7 +39,7 @@ } - diff --git a/horde-webmail/dimp/po/de_DE.po b/horde-webmail/dimp/po/de_DE.po -index 65e8824..c1a6f52 100644 +index 65e8824..a536db6 100644 --- a/horde-webmail/dimp/po/de_DE.po +++ b/horde-webmail/dimp/po/de_DE.po @@ -16,6 +16,9 @@ msgstr "" @@ -47,7 +47,7 @@ "Plural-Forms: nplurals=2; plural=(n != 1);\n" +msgid "Folder Subscription" -+mststr "Ordner verwalten" ++msgstr "Ordner verwalten" + #: lib/Views/ShowMessage.php:295 #, php-format @@ -125,6 +125,12 @@ -- TOPGIT patch commit log ======================= + +commit 93403a869ff14d7868d4cc9c4687ea1270e3c225 +Author: Gunnar Wrobel

    +Date: Mon Jun 22 08:39:51 2009 +0200 + + Typo commit ad147a4b42d61800400a2a779e884ee050358811 Author: Gunnar Wrobel

    From cvs at kolab.org Mon Jun 22 08:52:37 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 22 Jun 2009 08:52:37 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0 horde-webmail-1.2.0_kolab_openpkg.patch, 1.32.2.4.2.10, 1.32.2.4.2.11 Message-ID: <20090622065237.9C3F8600830@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0 In directory doto:/tmp/cvs-serv24913 Modified Files: Tag: suc_branch horde-webmail-1.2.0_kolab_openpkg.patch Log Message: Correct typo. Index: horde-webmail-1.2.0_kolab_openpkg.patch =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/Attic/horde-webmail-1.2.0_kolab_openpkg.patch,v retrieving revision 1.32.2.4.2.10 retrieving revision 1.32.2.4.2.11 diff -u -d -r1.32.2.4.2.10 -r1.32.2.4.2.11 --- horde-webmail-1.2.0_kolab_openpkg.patch 21 Jun 2009 22:13:47 -0000 1.32.2.4.2.10 +++ horde-webmail-1.2.0_kolab_openpkg.patch 22 Jun 2009 06:52:34 -0000 1.32.2.4.2.11 @@ -27357,7 +27357,7 @@ } - diff --git a/horde-webmail/dimp/po/de_DE.po b/horde-webmail/dimp/po/de_DE.po -index 65e8824..c1a6f52 100644 +index 65e8824..a536db6 100644 --- a/horde-webmail/dimp/po/de_DE.po +++ b/horde-webmail/dimp/po/de_DE.po @@ -16,6 +16,9 @@ msgstr "" @@ -27365,7 +27365,7 @@ "Plural-Forms: nplurals=2; plural=(n != 1);\n" +msgid "Folder Subscription" -+mststr "Ordner verwalten" ++msgstr "Ordner verwalten" + #: lib/Views/ShowMessage.php:295 #, php-format @@ -27443,6 +27443,12 @@ -- TOPGIT patch commit log ======================= + +commit 93403a869ff14d7868d4cc9c4687ea1270e3c225 +Author: Gunnar Wrobel

    +Date: Mon Jun 22 08:39:51 2009 +0200 + + Typo commit ad147a4b42d61800400a2a779e884ee050358811 Author: Gunnar Wrobel

    From cvs at kolab.org Mon Jun 22 09:07:17 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 22 Jun 2009 09:07:17 +0200 (CEST) Subject: gunnar: server/kolab-webclient kolab-webclient.spec, 1.23.2.6.2.11, 1.23.2.6.2.12 Message-ID: <20090622070717.13B2C60082F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv25788 Modified Files: Tag: suc_branch kolab-webclient.spec Log Message: Added translations within dimp. Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.23.2.6.2.11 retrieving revision 1.23.2.6.2.12 diff -u -d -r1.23.2.6.2.11 -r1.23.2.6.2.12 --- kolab-webclient.spec 4 Jun 2009 09:42:04 -0000 1.23.2.6.2.11 +++ kolab-webclient.spec 22 Jun 2009 07:07:14 -0000 1.23.2.6.2.12 @@ -3,7 +3,7 @@ %define V_package kolab-webclient %define V_year 2009 %define V_month 06 -%define V_day 04 +%define V_day 22 %define V_version 1.2.0 %define V_source_version 1.2 %define V_passwd_version 3.0.1 @@ -143,6 +143,9 @@ sed -i -e 's#@@@mnemo_confdir@@@#%{l_prefix}/var/kolab/www/client/mnemo/config#' $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates/*.php.template sed -i -e 's#@@@nag_confdir@@@#%{l_prefix}/var/kolab/www/client/nag/config#' $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates/*.php.template sed -i -e 's#@@@turba_confdir@@@#%{l_prefix}/var/kolab/www/client/turba/config#' $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates/*.php.template + + # Refresh the translations + $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/po/translation.php make --module dimp --no-compendium %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:4} %{S:5} \ $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/passwd/config From cvs at kolab.org Mon Jun 22 15:18:44 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 22 Jun 2009 15:18:44 +0200 (CEST) Subject: martin: server/kolabd/kolabd kolab2.schema,1.36,1.37 Message-ID: <20090622131844.850B9600839@lists.intevation.de> Author: martin Update of /kolabrepository/server/kolabd/kolabd In directory doto:/tmp/cvs-serv4267 Modified Files: kolab2.schema Log Message: Martin Konold: Added new attribute which contains a comma separated list of secure ciphers. (Required for SSL/TLS) Index: kolab2.schema =================================================================== RCS file: /kolabrepository/server/kolabd/kolabd/kolab2.schema,v retrieving revision 1.36 retrieving revision 1.37 diff -u -d -r1.36 -r1.37 --- kolab2.schema 5 Jun 2009 14:14:05 -0000 1.36 +++ kolab2.schema 22 Jun 2009 13:18:42 -0000 1.37 @@ -1,7 +1,7 @@ # $Id$ -# (c) 2003, 2004 Tassilo Erlewein -# (c) 2003-2009 Martin Konold -# (c) 2003 Achim Frank +# (c) 2003-2004 Tassilo Erlewein +# (c) 2003-2009 Martin Konold +# (c) 2003 Achim Frank # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: @@ -705,6 +705,17 @@ EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 ) +# Configurable list of ciphers considered to be secure enough for our purposes. +# E.g. TLS 1.0 and SSL 3.0 +attributetype ( 1.3.6.1.4.1.19414.2.1.801 + NAME 'kolabSecureCiphers' + DESC 'comma separated list of ciphers considered to be secure' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SINGLE-VALUE + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) + + ###################################################### # proftpd attributes (unused since Kolab Server 2.2) # ###################################################### @@ -840,6 +851,7 @@ kolabfilter-allow-sender-header $ kolabfilter-reject-forged-from-header $ kolabPolicyDaemon $ + kolabSecureCiphers $ proftpd-ftp $ proftpd-defaultquota $ kolabFreeBusyFuture $ From cvs at kolab.org Mon Jun 22 15:54:16 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 22 Jun 2009 15:54:16 +0200 (CEST) Subject: gunnar: server/kolab-webclient kolab-webclient.spec, 1.23.2.6.2.12, 1.23.2.6.2.13 Message-ID: <20090622135416.8E98360016D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv5346 Modified Files: Tag: suc_branch kolab-webclient.spec Log Message: Use /kolab/bin/php instead of /usr/bin/php. Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.23.2.6.2.12 retrieving revision 1.23.2.6.2.13 diff -u -d -r1.23.2.6.2.12 -r1.23.2.6.2.13 --- kolab-webclient.spec 22 Jun 2009 07:07:14 -0000 1.23.2.6.2.12 +++ kolab-webclient.spec 22 Jun 2009 13:54:14 -0000 1.23.2.6.2.13 @@ -145,6 +145,7 @@ sed -i -e 's#@@@turba_confdir@@@#%{l_prefix}/var/kolab/www/client/turba/config#' $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates/*.php.template # Refresh the translations + sed -i -e 's#/usr/bin/php#/kolab/bin/php#' $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/po/translation.php $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/po/translation.php make --module dimp --no-compendium %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:4} %{S:5} \ From cvs at kolab.org Mon Jun 22 22:54:40 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 22 Jun 2009 22:54:40 +0200 (CEST) Subject: gunnar: server/kolab-webclient kolab-webclient.spec, 1.23.2.6.2.13, 1.23.2.6.2.14 Message-ID: <20090622205440.C1F4460081F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv19243 Modified Files: Tag: suc_branch kolab-webclient.spec Log Message: Use the gettext binaries from within the /kolab installation. Explicitely turn off the safe_mode to allow correct detection of the binaries. It is not possible to catch an error in the script at the moment as the exit codes from translation.php are not correct. Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.23.2.6.2.13 retrieving revision 1.23.2.6.2.14 diff -u -d -r1.23.2.6.2.13 -r1.23.2.6.2.14 --- kolab-webclient.spec 22 Jun 2009 13:54:14 -0000 1.23.2.6.2.13 +++ kolab-webclient.spec 22 Jun 2009 20:54:38 -0000 1.23.2.6.2.14 @@ -145,8 +145,7 @@ sed -i -e 's#@@@turba_confdir@@@#%{l_prefix}/var/kolab/www/client/turba/config#' $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/templates/*.php.template # Refresh the translations - sed -i -e 's#/usr/bin/php#/kolab/bin/php#' $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/po/translation.php - $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/po/translation.php make --module dimp --no-compendium + PATH="%{l_prefix}/bin" %{l_prefix}/bin/php -d safe_mode=0 -f $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/po/translation.php make --module dimp --no-compendium %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:4} %{S:5} \ $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/passwd/config From cvs at kolab.org Tue Jun 23 09:52:25 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Jun 2009 09:52:25 +0200 (CEST) Subject: gunnar: server/pear/Horde_Util-H4 - New directory Message-ID: <20090623075225.3F410600801@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Util-H4 In directory doto:/tmp/cvs-serv13151/Horde_Util-H4 Log Message: Directory /kolabrepository/server/pear/Horde_Util-H4 added to the repository From cvs at kolab.org Tue Jun 23 09:56:10 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Jun 2009 09:56:10 +0200 (CEST) Subject: gunnar: server/pear/Horde_Util-H4 .cvsignore, NONE, 1.1 ChangeLog, NONE, 1.1 Horde_Util-H4.spec, NONE, 1.1 Makefile, NONE, 1.1 Message-ID: <20090623075610.76DB5600834@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Util-H4 In directory doto:/tmp/cvs-serv13272/Horde_Util-H4 Added Files: .cvsignore ChangeLog Horde_Util-H4.spec Makefile Log Message: Added Horde_Util-H4 to CVS and set Horde_Framework-H4 to depend on it. --- NEW FILE: .cvsignore --- *.src.rpm *.tgz package.patch --- NEW FILE: ChangeLog --- 2009-06-22 Gunnar Wrobel

    * Horde_Util-H4.spec: Added package to Kolab CVS. --- NEW FILE: Horde_Util-H4.spec --- # Variables %define V_horde_pkgdir framework/Util %define V_horde_package Util %define V_package Horde_Util-H4 %define V_package_origin VC-GIT %define V_repo_commit d556d0479479187a835f0bf2c95676e7626728cf %define V_repo_release 20090622 %define V_version 0.2.0dev20090622 %define V_release 20090622 %define V_sourceurl http://pear.horde.org/get %define V_php_lib_loc php-h4 %define V_www_loc client # Package Information Name: %{V_package} Summary: Horde Utility Libraries URL: http://pear.horde.org/index.php?package=%{V_horde_package} Packager: Gunnar Wrobel (p at rdus) Version: %{V_version} Release: %{V_release} License: LGPL Group: Development/Libraries Distribution: OpenPKG # List of Sources Source: %{V_sourceurl}/%{V_horde_package}-%{V_version}.tgz # List of patches Patch0: package.patch # Build Info Prefix: %{l_prefix} BuildRoot: %{l_buildroot} #Pre requisites BuildPreReq: OpenPKG, openpkg >= 20070603 BuildPreReq: php, php::with_pear = yes BuildPreReq: PEAR-Horde-Channel PreReq: OpenPKG, openpkg >= 20070603 PreReq: php, php::with_pear = yes # Package options %option with_chroot no %description These classes provide functionality useful for all kind of applications. %prep %setup -n %{V_horde_package}-%{V_version} if [ -n "`cat %{PATCH0}`" ]; then %patch -p0 -P 0 fi cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ %{l_prefix}/bin/pear -d www_dir="%{l_prefix}/var/kolab/www/%{V_www_loc}" \ -d php_dir="%{l_prefix}/lib/%{V_php_lib_loc}" \ install --offline --force --nodeps -P $RPM_BUILD_ROOT \ $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc}/{.filemap,.lock,.channels,.depdb,.depdblock} # With chroot %if "%{with_chroot}" == "yes" %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib cp -a $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib/ %endif %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} %clean rm -rf $RPM_BUILD_ROOT %files -f files --- NEW FILE: Makefile --- include ../Horde.mk From cvs at kolab.org Tue Jun 23 09:56:10 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Jun 2009 09:56:10 +0200 (CEST) Subject: gunnar: server/pear Horde.mk,1.10,1.11 Message-ID: <20090623075610.6E791600801@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear In directory doto:/tmp/cvs-serv13272 Modified Files: Horde.mk Log Message: Added Horde_Util-H4 to CVS and set Horde_Framework-H4 to depend on it. Index: Horde.mk =================================================================== RCS file: /kolabrepository/server/pear/Horde.mk,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- Horde.mk 26 May 2009 20:05:05 -0000 1.10 +++ Horde.mk 23 Jun 2009 07:56:08 -0000 1.11 @@ -17,7 +17,7 @@ HORDE_PKGDIR = $(shell grep "%define[ ]*V_horde_pkgdir" *.spec | sed -e "s/.*V_horde_pkgdir \([A-Za-z0-9\-\_]*\)\s*/\1/") # Determine the horde package name from the *.spec file -HORDE_PACKAGE = $(shell grep "%define[ ]*V_horde_package" *.spec | sed -e "s/.*V_horde_package \([A-Za-z0-9\-\_]*\).*/\1/") +HORDE_PACKAGE = $(shell grep "%define[ ]*V_horde_package" *.spec | sed -e "s/.*V_horde_package \([A-Za-z0-9\_-]*\).*/\1/") # Determine the package origin from the *.spec file PACKAGE_ORIGIN = $(shell grep "%define[ ]*V_package_origin" *.spec | sed -e "s/.*V_package_origin \([A-Z]*\).*/\1/") @@ -26,11 +26,14 @@ PACKAGE_VC = $(shell grep "%define[ ]*V_package_origin" *.spec | sed -e "s/.*V_package_origin [A-Z]*-\([A-Z]*\).*/\1/") # Determine the package name from the *.spec file -PACKAGE = $(shell grep "%define[ ]*V_package " *.spec | sed -e "s/.*V_package \([A-Za-z0-9\-\_]*\)\s*/\1/") +PACKAGE = $(shell grep "%define[ ]*V_package " *.spec | sed -e "s/.*V_package \([A-Za-z0-9\_-]*\)\s*/\1/") # Determine the package version from the *.spec file VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.a-z]*\).*/\1/") +# Determine the file end of the source package +FILEEND = $(shell grep "%define[ ]*V_pkg_fileend" *.spec | sed -e "s/.*V_pkg_fileend\s*\([0-9.a-z]*\).*/\1/") + # Determine the release number from the *.spec file RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") @@ -51,9 +54,13 @@ ALTERNATE_MAINTAINER= $(shell grep "%define[ ]*V_alternate_maintainer " *.spec | sed -e "s/.*V_alternate_maintainer\s*\(.*\)$$/\1/") ALTERNATE_MAINTAINER_SNIPPET= $(shell grep "%define[ ]*V_alternate_maintainer_snippet" *.spec | sed -e "s/.*V_alternate_maintainer_snippet\s*\(.*\)$$/\1/") +# Set the default package file end +ifeq "x$(FILEEND)" "x" + FILEEND=tgz +endif # Generate the full package name -SOURCE_0=$(HORDE_PACKAGE)-$(VERSION).tgz +SOURCE_0=$(HORDE_PACKAGE)-$(VERSION).$(FILEEND) # Get the list of patches if there are any in the patch directory PATCHES = $(shell ls patches/$(PACKAGE)-$(VERSION)/*.patch 2> /dev/null) From cvs at kolab.org Tue Jun 23 09:56:10 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Jun 2009 09:56:10 +0200 (CEST) Subject: gunnar: server/pear/Horde_Framework-H4 Horde_Framework-H4.spec, 1.1, 1.2 Message-ID: <20090623075610.7404960082E@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Framework-H4 In directory doto:/tmp/cvs-serv13272/Horde_Framework-H4 Modified Files: Horde_Framework-H4.spec Log Message: Added Horde_Util-H4 to CVS and set Horde_Framework-H4 to depend on it. Index: Horde_Framework-H4.spec =================================================================== RCS file: /kolabrepository/server/pear/Horde_Framework-H4/Horde_Framework-H4.spec,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Horde_Framework-H4.spec 20 May 2009 08:24:00 -0000 1.1 +++ Horde_Framework-H4.spec 23 Jun 2009 07:56:08 -0000 1.2 @@ -3,10 +3,10 @@ %define V_horde_package Horde_Framework %define V_package Horde_Framework-H4 %define V_package_origin VC-CVS -%define V_repo_commit HEAD:20090520 -%define V_repo_release 20090520 -%define V_version 0.0.2dev20090520 -%define V_release 20090520 +%define V_repo_commit HEAD:20090622 +%define V_repo_release 20090622 +%define V_version 0.0.2dev20090622 +%define V_release 20090622 %define V_sourceurl http://pear.horde.org/get %define V_php_lib_loc php-h4 %define V_www_loc client @@ -41,7 +41,7 @@ PreReq: PEAR-Log PreReq: Horde_CLI PreReq: Horde_DOM -PreReq: Horde_Util +PreReq: Horde_Util-H4 Provides: horde-framework-kolab = 3.2_rc3-20081209 Obsoletes: horde-framework-kolab < 3.2_rc3-20081209 From cvs at kolab.org Tue Jun 23 13:20:09 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Jun 2009 13:20:09 +0200 (CEST) Subject: gunnar: server/pear Horde.mk,1.11,1.12 Message-ID: <20090623112009.C0579600168@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear In directory doto:/tmp/cvs-serv18620 Modified Files: Horde.mk Log Message: Allow to select git commit ids. Index: Horde.mk =================================================================== RCS file: /kolabrepository/server/pear/Horde.mk,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- Horde.mk 23 Jun 2009 07:56:08 -0000 1.11 +++ Horde.mk 23 Jun 2009 11:20:07 -0000 1.12 @@ -144,10 +144,12 @@ ifeq ($(PACKAGE_VC),GIT) .PHONY: $(UPSTREAM)/$(GIT_REPO) $(UPSTREAM)/$(GIT_REPO): - if [ -e $(UPSTREAM)/$(GIT_REPO) ]; then \ - cd $(UPSTREAM)/$(GIT_REPO) && $(GIT_REPO_UP_CMD); \ - else \ - cd $(UPSTREAM) && $(GIT_REPO_CO_CMD) $(GIT_REPO_URL); \ + if [ -e $(UPSTREAM)/$(GIT_REPO) ]; then \ + cd $(UPSTREAM)/$(GIT_REPO) && $(GIT_REPO_UP_CMD); \ + $(GIT_REPO_SC_CMD) "$(COMMIT)"; \ + else \ + cd $(UPSTREAM) && $(GIT_REPO_CO_CMD) $(GIT_REPO_URL); \ + $(GIT_REPO_SC_CMD) "$(COMMIT)"; \ fi; endif endif From cvs at kolab.org Tue Jun 23 13:29:38 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Jun 2009 13:29:38 +0200 (CEST) Subject: gunnar: server .cvsignore,1.1,1.2 Message-ID: <20090623112938.06615600168@lists.intevation.de> Author: gunnar Update of /kolabrepository/server In directory doto:/tmp/cvs-serv18931 Modified Files: .cvsignore Log Message: Move the upstream directory to a higher level. Index: .cvsignore =================================================================== RCS file: /kolabrepository/server/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- .cvsignore 12 Mar 2007 14:31:31 -0000 1.1 +++ .cvsignore 23 Jun 2009 11:29:34 -0000 1.2 @@ -1 +1,2 @@ stage +upstream From cvs at kolab.org Tue Jun 23 13:29:38 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Jun 2009 13:29:38 +0200 (CEST) Subject: gunnar: server/pear Horde.mk,1.12,1.13 Message-ID: <20090623112938.4327C600168@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear In directory doto:/tmp/cvs-serv18931/pear Modified Files: Horde.mk Log Message: Move the upstream directory to a higher level. Index: Horde.mk =================================================================== RCS file: /kolabrepository/server/pear/Horde.mk,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- Horde.mk 23 Jun 2009 11:20:07 -0000 1.12 +++ Horde.mk 23 Jun 2009 11:29:36 -0000 1.13 @@ -7,7 +7,7 @@ # Set the default upstream directory. ifeq "x$(UPSTREAM_DIR)" "x" - UPSTREAM_DIR = ../upstream + UPSTREAM_DIR = ../../upstream endif # Location of the PEAR script @@ -149,7 +149,7 @@ $(GIT_REPO_SC_CMD) "$(COMMIT)"; \ else \ cd $(UPSTREAM) && $(GIT_REPO_CO_CMD) $(GIT_REPO_URL); \ - $(GIT_REPO_SC_CMD) "$(COMMIT)"; \ + cd $(GIT_REPO) && $(GIT_REPO_SC_CMD) "$(COMMIT)"; \ fi; endif endif From cvs at kolab.org Tue Jun 23 16:15:43 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Jun 2009 16:15:43 +0200 (CEST) Subject: gunnar: server/pear pear.spec.template,NONE,1.1 Pear.mk,NONE,1.1 Message-ID: <20090623141543.84187600801@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear In directory doto:/tmp/cvs-serv23315 Added Files: pear.spec.template Pear.mk Log Message: use a template based approach for the pear based spec files. --- NEW FILE: pear.spec.template --- # Variables %define V_horde_pkgdir @horde_pkgdir@ %define V_horde_package @horde_package@ %define V_package @package@ %define V_package_origin @package_origin@ %define V_repo_commit @repo_commit@ %define V_repo_release @repo_release@ %define V_version @version@ %define V_release @release@ %define V_sourceurl @sourceurl@ %define V_php_lib_loc @php_lib_loc@ %define V_www_loc @www_loc@ %define V_summary @summary@ %define V_license @license@ # Package Information Name: %{V_package} Summary: %{V_summary} URL: http://pear.horde.org/index.php?package=%{V_horde_package} Packager: Gunnar Wrobel (p at rdus) Version: %{V_version} Release: %{V_release} License: %{V_license} Group: Development/Libraries Distribution: OpenPKG # List of Sources Source: %{V_sourceurl}/%{V_horde_package}-%{V_version}.tgz # List of patches Patch0: package.patch # Build Info Prefix: %{l_prefix} BuildRoot: %{l_buildroot} #Pre requisites @buildprereq@ @prereq@ # Package options %option with_chroot no %description @description@ %prep %setup -n %{V_horde_package}-%{V_version} if [ -n "`cat %{PATCH0}`" ]; then %patch -p0 -P 0 fi cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M"\ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ %{l_prefix}/bin/pear -d www_dir="%{l_prefix}/var/kolab/www/%{V_www_loc}" \ -d php_dir="%{l_prefix}/lib/%{V_php_lib_loc}" \ install --offline --force --nodeps -P $RPM_BUILD_ROOT \ package.xml rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc}/{.filemap,.lock,.channels,.depdb,.depdblock} # With chroot %if "%{with_chroot}" == "yes" %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib cp -a $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib/ %endif %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} %clean rm -rf $RPM_BUILD_ROOT %files -f files --- NEW FILE: Pear.mk --- include ../Base.mk # Determine the staging area for collecting new source rpms ifeq "x$(STAGING)" "x" STAGING = ../../stage endif # Set the default upstream directory. ifeq "x$(UPSTREAM_DIR)" "x" UPSTREAM_DIR = ../../upstream endif # Location of the PEAR script PEAR=$(HOME)/bin/pear # Determine the horde package name from the *.spec file HORDE_PKGDIR = $(shell grep "^horde_pkgdir=" package.info | sed -e "s/horde_pkgdir='\([A-Za-z0-9\-\_]*\)'\s*/\1/") # Determine the horde package name from the *.spec file HORDE_PACKAGE = $(shell grep "^horde_package=" package.info | sed -e "s/horde_package='\([A-Za-z0-9\_-]*\)'.*/\1/") # Determine the package origin from the *.spec file PACKAGE_ORIGIN = $(shell grep "^package_origin=" package.info | sed -e "s/package_origin='\([A-Z]*\)'.*/\1/") # Determine the package version control type from the *.spec file PACKAGE_VC = $(shell grep "^package_vc=" package.info | sed -e "s/package_vc='[A-Z]*-\([A-Z]*\)'.*/\1/") # Determine the package name from the *.spec file PACKAGE = $(shell grep "^package=" package.info | sed -e "s/package='\([A-Za-z0-9\_-]*\)'.*/\1/") # Determine the package version from the *.spec file VERSION = $(shell grep "^version=" package.info | sed -e "s/version='\([0-9.a-z]*\)'.*/\1/") # Determine the file end of the source package FILEEND = $(shell grep "^pkg_fileend=" package.info | sed -e "s/pkg_fileend='*\([0-9.a-z]*\)'.*/\1/") # Determine the release number from the *.spec file RELEASE = $(shell grep "^release=" package.info | sed -e "s/release='\([0-9]*\)'.*/\1/") # Determine the repository REPO = $(shell grep "^repo=" package.info | sed -e "s/repo='\([A-Za-z0-9_\-]*\)'.*/\1/") # Determine the exact commit that should be retrieved from the repository COMMIT = $(shell grep "^repo_commit=" package.info | sed -e "s/repo_commit='\([A-Za-z0-9_]*\)'.*/\1/") # Determine the release tag a package derived from a repository checkout should get RELTAG = $(shell grep "^repo_release=" package.info | sed -e "s/repo_release='*\([0-9]*\)'.*/\1/") # Determine the download url for the PEAR package from the *.spec file SOURCE_URL=$(shell grep "^sourceurl=" package.info | sed -e "s/sourceurl='\(.*\)'$$/\1/") # Additional variables for tweaking the PEAR package.xml ALTERNATE_CHANNEL= $(shell grep "^alternate_channel=" package.info | sed -e "s/alternate_channel='\(.*\)'$$/\1/") ALTERNATE_MAINTAINER= $(shell grep "^alternate_maintainer=" package.info | sed -e "s/alternate_maintainer='\(.*\)'$$/\1/") ALTERNATE_MAINTAINER_SNIPPET= $(shell grep "^alternate_maintainer_snippet=" package.info | sed -e "s/alternate_maintainer_snippet='\(.*\)'$$/\1/") # Set the default package file end ifeq "x$(FILEEND)" "x" FILEEND=tgz endif # Generate the full package name SOURCE_0=$(HORDE_PACKAGE)-$(VERSION).$(FILEEND) # Get the list of patches if there are any in the patch directory PATCHES = $(shell ls patches/$(PACKAGE)-$(VERSION)/*.patch 2> /dev/null) # Get the list of php (config) files if there are any in this directory PHP_FILES = $(shell ls *.php 2> /dev/null) # Get the list of template files if there are any in this directory TEMPLATE_FILES = $(shell ls *.template 2> /dev/null) # Generate a list of extra files for the package EXTRA=ChangeLog package.patch $(PHP_FILES) $(TEMPLATE_FILES) # Temporary repository checkout location ifeq ($(PACKAGE_VC),CVS) UPSTREAM=$(UPSTREAM_DIR)/cvs else ifeq ($(PACKAGE_VC),GIT) UPSTREAM=$(UPSTREAM_DIR)/git endif endif # The current date DATE=$(shell date +%Y-%m-%d) # CVS information ifeq ($(REPO),) CVS_REPO=framework else CVS_REPO=$(REPO) endif CVS_REPO_URL=:pserver:cvsread at anoncvs.horde.org:/repository CVS_REPO_UP_CMD=cvs update CVS_REPO_CO_CMD=cvs -d $(CVS_REPO_URL) co CVS_REPO_SC_CMD=cvs update -r # GIT information ifeq ($(REPO),) GIT_REPO=horde else GIT_REPO=$(REPO) endif GIT_REPO_URL=git://dev.horde.org/horde/git/$(GIT_REPO) GIT_REPO_UP_CMD=git pull origin master GIT_REPO_CO_CMD=git clone GIT_REPO_SC_CMD=git checkout # Default target to generate the source rpm package .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm # Target for placing the source rpm in the staging area .PHONY: dist dist: all test -d $(STAGING) || mkdir $(STAGING) cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm $(STAGING) # Target for installing the binary rpm package in our current Kolab # server installation .PHONY: install install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm # Target location for the repository checkout $(UPSTREAM): mkdir -p $(UPSTREAM) # Target for generating the repository checkout ifeq ($(PACKAGE_VC),CVS) .PHONY: $(UPSTREAM)/$(CVS_REPO) $(UPSTREAM)/$(CVS_REPO): @if [ -e $(UPSTREAM)/$(CVS_REPO) ]; then \ cd $(UPSTREAM)/$(CVS_REPO) && $(CVS_REPO_SC_CMD) "$(COMMIT)"; \ else \ echo The password is 'horde'; \ cvs -d $(CVS_REPO_URL) login; \ cd $(UPSTREAM) && $(CVS_REPO_CO_CMD) $(CVS_REPO); \ cd $(CVS_REPO) && $(CVS_REPO_SC_CMD) "$(COMMIT)"; \ fi; else ifeq ($(PACKAGE_VC),GIT) .PHONY: $(UPSTREAM)/$(GIT_REPO) $(UPSTREAM)/$(GIT_REPO): if [ -e $(UPSTREAM)/$(GIT_REPO) ]; then \ cd $(UPSTREAM)/$(GIT_REPO) && $(GIT_REPO_UP_CMD); \ $(GIT_REPO_SC_CMD) "$(COMMIT)"; \ else \ cd $(UPSTREAM) && $(GIT_REPO_CO_CMD) $(GIT_REPO_URL); \ cd $(GIT_REPO) && $(GIT_REPO_SC_CMD) "$(COMMIT)"; \ fi; endif endif # Generate the source package from the repository checkout ifeq ($(PACKAGE_VC),CVS) tmp/$(PACKAGE): $(UPSTREAM) $(UPSTREAM)/$(CVS_REPO) rm -rf tmp mkdir tmp cp -r $(UPSTREAM)/$(CVS_REPO)/$(HORDE_PKGDIR) tmp/$(PACKAGE) else ifeq ($(PACKAGE_VC),GIT) tmp/$(PACKAGE): $(UPSTREAM) $(UPSTREAM)/$(GIT_REPO) rm -rf tmp mkdir tmp cp -r $(UPSTREAM)/$(GIT_REPO)/$(HORDE_PKGDIR) tmp/$(PACKAGE) endif endif ifneq ($(PACKAGE_VC),) # Short name for the source package as a target for the command line. .PHONY:source source: tmp/$(PACKAGE) sed -i -e "/version/,+1 s#\(.*\)#\1dev$(RELTAG)#" tmp/$(PACKAGE)/package.xml sed -i -e "/lead/,+1 s#.*#$(DATE)#" tmp/$(PACKAGE)/package.xml ifneq ($(ALTERNATE_CHANNEL),) sed -i -e 's#.*#$(ALTERNATE_CHANNEL)#' tmp/$(PACKAGE)/package.xml endif ifneq ($(ALTERNATE_MAINTAINER),) if [ -z "`grep $(ALTERNATE_MAINTAINER) tmp/$(PACKAGE)/package.xml`" ]; then \ sed -i -e '/lead/,/\/lead/ D' tmp/$(PACKAGE)/package.xml; \ sed -i -e '/date.*\/date/ i\ $(ALTERNATE_MAINTAINER_SNIPPET)' tmp/$(PACKAGE)/package.xml; \ fi endif $(PEAR) package tmp/$(PACKAGE)/package.xml rm -rf tmp endif # Target for retrieving the source package ifeq ($(PACKAGE_ORIGIN),VC) $(SOURCE_0): tmp/$(PACKAGE) sed -i -e "/version/,+1 s#\(.*\)#\1dev$(RELTAG)#" tmp/$(PACKAGE)/package.xml sed -i -e "/lead/,+1 s#.*#$(DATE)#" tmp/$(PACKAGE)/package.xml ifneq ($(ALTERNATE_CHANNEL),) sed -i -e 's#.*#$(ALTERNATE_CHANNEL)#' tmp/$(PACKAGE)/package.xml endif ifneq ($(ALTERNATE_MAINTAINER),) if [ -z "`grep $(ALTERNATE_MAINTAINER) tmp/$(PACKAGE)/package.xml`" ]; then \ sed -i -e '/lead/,/\/lead/ D' tmp/$(PACKAGE)/package.xml; \ sed -i -e '/date.*\/date/ i\ $(ALTERNATE_MAINTAINER_SNIPPET)' tmp/$(PACKAGE)/package.xml; \ fi endif $(PEAR) package tmp/$(PACKAGE)/package.xml rm -rf tmp else $(SOURCE_0): wget -c "$(SOURCE_URL)/$(SOURCE_0)" endif # Target for the src rpm directory. $(KOLABRPMSRC)/$(PACKAGE): test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) # Target for the source file in the src rpm directory. $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): $(KOLABRPMSRC)/$(PACKAGE) $(SOURCE_0) cp $(SOURCE_0) $(KOLABRPMSRC)/$(PACKAGE)/ # Prepare the patch for the package. package.patch: $(PATCHES) echo > package.patch for PATCH in $(PATCHES); \ do \ cat $$PATCH >> package.patch; \ done $(PACKAGE).spec: ../pear.spec.template package.info source package.info && \ cat ../pear.spec.template | \ sed -e "s#[@]horde_pkgdir[@]#$${horde_pkgdir}#g" \ -e "s#[@]horde_package[@]#$${horde_package}#g" \ -e "s#[@]package[@]#$${package}#g" \ -e "s#[@]package_origin[@]#$${package_origin}#g" \ -e "s#[@]repo_commit[@]#$${repo_commit}#g" \ -e "s#[@]repo_release[@]#$${repo_release}#g" \ -e "s#[@]version[@]#$${version}#g" \ -e "s#[@]release[@]#$${release}#g" \ -e "s#[@]sourceurl[@]#$${sourceurl}#g" \ -e "s#[@]php_lib_loc[@]#$${php_lib_loc}#g" \ -e "s#[@]www_loc[@]#$${www_loc}#g" \ -e "s#[@]summary[@]#$${summary}#g" \ -e "s#[@]license[@]#$${license}#g" \ -e "s#[@]buildprereq[@]#$${buildprereq}#g" \ -e "s#[@]prereq[@]#$${prereq}#g" \ -e "s#[@]description[@]#$${description}#g" > \ $(PACKAGE).spec # Target for preparing the source area and building the package $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: Makefile $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) cp $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec # Target for fetching the source rpm into the current directory $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . # Target for cleaning up the files that can be generated with this Makefile .PHONY: clean clean: rm -rf $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm rm -rf $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm rm -rf $(KOLABRPMSRC)/$(PACKAGE) rm -rf $(KOLABRPMTMP)/$(PACKAGE)* rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm rm -rf $(SOURCE_0) rm -rf *~ rm -rf package.patch From cvs at kolab.org Tue Jun 23 16:16:10 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Jun 2009 16:16:10 +0200 (CEST) Subject: gunnar: server/pear/Horde_Util-H4 package.info, NONE, 1.1 .cvsignore, 1.1, 1.2 Makefile, 1.1, 1.2 Horde_Util-H4.spec, 1.1, NONE Message-ID: <20090623141610.861E6600834@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Util-H4 In directory doto:/tmp/cvs-serv23364 Modified Files: .cvsignore Makefile Added Files: package.info Removed Files: Horde_Util-H4.spec Log Message: Convert to the template based pear spec file. --- NEW FILE: package.info --- horde_pkgdir='framework/Util' horde_package='Util' package='Horde_Util-H4' package_origin='VC-GIT' repo_commit='d556d0479479187a835f0bf2c95676e7626728cf' repo_release='20090622' version='0.2.0dev20090622' release='20090622' sourceurl='http://pear.horde.org/get' php_lib_loc='php-h4' www_loc='client' summary='Horde Utility Libraries' license='LGPL' buildprereq='BuildPreReq: OpenPKG, openpkg >= 20070603\nBuildPreReq: php, php::with_pear = yes\nBuildPreReq: PEAR-Horde-Channel' prereq='PreReq: OpenPKG, openpkg >= 20070603\nPreReq: php, php::with_pear = yes' description='These classes provide functionality useful for all kind of applications.' Index: .cvsignore =================================================================== RCS file: /kolabrepository/server/pear/Horde_Util-H4/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- .cvsignore 23 Jun 2009 07:56:08 -0000 1.1 +++ .cvsignore 23 Jun 2009 14:16:08 -0000 1.2 @@ -1,3 +1,4 @@ *.src.rpm *.tgz +*.spec package.patch Index: Makefile =================================================================== RCS file: /kolabrepository/server/pear/Horde_Util-H4/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Makefile 23 Jun 2009 07:56:08 -0000 1.1 +++ Makefile 23 Jun 2009 14:16:08 -0000 1.2 @@ -1 +1 @@ -include ../Horde.mk +include ../Pear.mk --- Horde_Util-H4.spec DELETED --- From cvs at kolab.org Tue Jun 23 16:24:10 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Jun 2009 16:24:10 +0200 (CEST) Subject: gunnar: server/pear Pear.mk,1.1,1.2 Message-ID: <20090623142410.3B5A9600801@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear In directory doto:/tmp/cvs-serv23601 Modified Files: Pear.mk Log Message: Fix variable parsing Index: Pear.mk =================================================================== RCS file: /kolabrepository/server/pear/Pear.mk,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Pear.mk 23 Jun 2009 14:15:41 -0000 1.1 +++ Pear.mk 23 Jun 2009 14:24:08 -0000 1.2 @@ -14,16 +14,16 @@ PEAR=$(HOME)/bin/pear # Determine the horde package name from the *.spec file -HORDE_PKGDIR = $(shell grep "^horde_pkgdir=" package.info | sed -e "s/horde_pkgdir='\([A-Za-z0-9\-\_]*\)'\s*/\1/") +HORDE_PKGDIR = $(shell grep "^horde_pkgdir=" package.info | sed -e "s/horde_pkgdir='\([A-Za-z0-9\-\_\/]*\)'\s*/\1/") # Determine the horde package name from the *.spec file HORDE_PACKAGE = $(shell grep "^horde_package=" package.info | sed -e "s/horde_package='\([A-Za-z0-9\_-]*\)'.*/\1/") # Determine the package origin from the *.spec file -PACKAGE_ORIGIN = $(shell grep "^package_origin=" package.info | sed -e "s/package_origin='\([A-Z]*\)'.*/\1/") +PACKAGE_ORIGIN = $(shell grep "^package_origin=" package.info | sed -e "s/package_origin='\([A-Z]*\).*/\1/") # Determine the package version control type from the *.spec file -PACKAGE_VC = $(shell grep "^package_vc=" package.info | sed -e "s/package_vc='[A-Z]*-\([A-Z]*\)'.*/\1/") +PACKAGE_VC = $(shell grep "^package_origin=" package.info | sed -e "s/package_origin='[A-Z]*-\([A-Z]*\)'.*/\1/") # Determine the package name from the *.spec file PACKAGE = $(shell grep "^package=" package.info | sed -e "s/package='\([A-Za-z0-9\_-]*\)'.*/\1/") From cvs at kolab.org Tue Jun 23 16:56:39 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Jun 2009 16:56:39 +0200 (CEST) Subject: gunnar: server/pear Pear.mk,1.2,1.3 Message-ID: <20090623145639.7B691600801@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear In directory doto:/tmp/cvs-serv24476 Modified Files: Pear.mk Log Message: Fix variable parsing. Index: Pear.mk =================================================================== RCS file: /kolabrepository/server/pear/Pear.mk,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Pear.mk 23 Jun 2009 14:24:08 -0000 1.2 +++ Pear.mk 23 Jun 2009 14:56:37 -0000 1.3 @@ -41,10 +41,10 @@ REPO = $(shell grep "^repo=" package.info | sed -e "s/repo='\([A-Za-z0-9_\-]*\)'.*/\1/") # Determine the exact commit that should be retrieved from the repository -COMMIT = $(shell grep "^repo_commit=" package.info | sed -e "s/repo_commit='\([A-Za-z0-9_]*\)'.*/\1/") +COMMIT = $(shell grep "^repo_commit=" package.info | sed -e "s/repo_commit='\([A-Za-z0-9_:]*\)'.*/\1/") # Determine the release tag a package derived from a repository checkout should get -RELTAG = $(shell grep "^repo_release=" package.info | sed -e "s/repo_release='*\([0-9]*\)'.*/\1/") +RELTAG = $(shell grep "^repo_release=" package.info | sed -e "s/repo_release='\([0-9]*\)'.*/\1/") # Determine the download url for the PEAR package from the *.spec file SOURCE_URL=$(shell grep "^sourceurl=" package.info | sed -e "s/sourceurl='\(.*\)'$$/\1/") @@ -132,7 +132,7 @@ ifeq ($(PACKAGE_VC),CVS) .PHONY: $(UPSTREAM)/$(CVS_REPO) $(UPSTREAM)/$(CVS_REPO): - @if [ -e $(UPSTREAM)/$(CVS_REPO) ]; then \ + if [ -e $(UPSTREAM)/$(CVS_REPO) ]; then \ cd $(UPSTREAM)/$(CVS_REPO) && $(CVS_REPO_SC_CMD) "$(COMMIT)"; \ else \ echo The password is 'horde'; \ From cvs at kolab.org Tue Jun 23 16:57:53 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 23 Jun 2009 16:57:53 +0200 (CEST) Subject: gunnar: server/pear/Horde_Framework-H4 package.info, NONE, 1.1 .cvsignore, 1.1, 1.2 Makefile, 1.1, 1.2 Horde_Framework-H4.spec, 1.2, NONE Message-ID: <20090623145753.69E0960082E@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Framework-H4 In directory doto:/tmp/cvs-serv24554 Modified Files: .cvsignore Makefile Added Files: package.info Removed Files: Horde_Framework-H4.spec Log Message: Convert to template based spec file. --- NEW FILE: package.info --- horde_pkgdir='Horde' horde_package='Horde_Framework' package='Horde_Framework-H4' package_origin='VC-CVS' repo_commit=':20090622' repo_release='20090622' version='0.0.2dev20090622' release='20090622' sourceurl='http://pear.horde.org/get' php_lib_loc='php-h4' www_loc='client' summary='Horde core Framework libraries' license='LGPL' buildprereq='BuildPreReq: OpenPKG, openpkg >= 20070603\nBuildPreReq: php, php::with_pear = yes\nBuildPreReq: PEAR-Horde-Channel\n' prereq='PreReq: OpenPKG, openpkg >= 20070603\nPreReq: php, php::with_pear = yes\nPreReq: PEAR-Log\nPreReq: Horde_CLI\nPreReq: Horde_DOM\nPreReq: Horde_Util-H4 >= 0.2.0dev20090622' description='These classes provide the core functionality of the Horde Application\nFramework.' Index: .cvsignore =================================================================== RCS file: /kolabrepository/server/pear/Horde_Framework-H4/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- .cvsignore 20 May 2009 08:24:00 -0000 1.1 +++ .cvsignore 23 Jun 2009 14:57:51 -0000 1.2 @@ -1,3 +1,4 @@ *.src.rpm *.tgz +*.spec package.patch Index: Makefile =================================================================== RCS file: /kolabrepository/server/pear/Horde_Framework-H4/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Makefile 20 May 2009 08:24:00 -0000 1.1 +++ Makefile 23 Jun 2009 14:57:51 -0000 1.2 @@ -1 +1 @@ -include ../Horde.mk +include ../Pear.mk --- Horde_Framework-H4.spec DELETED --- From cvs at kolab.org Thu Jun 25 10:04:33 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 25 Jun 2009 10:04:33 +0200 (CEST) Subject: gunnar: server/pear Pear.mk,1.3,1.4 Message-ID: <20090625080433.3E08B600803@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear In directory doto:/tmp/cvs-serv18482 Modified Files: Pear.mk Log Message: Allow to indicate the we want to build with the chroot option by the presence of a file. Split the generation of source and binary rpms. Index: Pear.mk =================================================================== RCS file: /kolabrepository/server/pear/Pear.mk,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Pear.mk 23 Jun 2009 14:56:37 -0000 1.3 +++ Pear.mk 25 Jun 2009 08:04:30 -0000 1.4 @@ -54,6 +54,12 @@ ALTERNATE_MAINTAINER= $(shell grep "^alternate_maintainer=" package.info | sed -e "s/alternate_maintainer='\(.*\)'$$/\1/") ALTERNATE_MAINTAINER_SNIPPET= $(shell grep "^alternate_maintainer_snippet=" package.info | sed -e "s/alternate_maintainer_snippet='\(.*\)'$$/\1/") +# Allow to set the with_chroot option +WITH_CHROOT = $(shell test -e ../.opt.chroot && echo "-D 'with_chroot yes'") + +# RPM options +RPM_OPTIONS = $(WITH_CHROOT) + # Set the default package file end ifeq "x$(FILEEND)" "x" FILEEND=tgz @@ -247,12 +253,19 @@ $(PACKAGE).spec # Target for preparing the source area and building the package -$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: Makefile $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) +$(KOLABRPMSRC)/$(PACKAGE)/$(PACKAGE).spec: Makefile $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) cp $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE) - cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec + +# Target for building the binary package +$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: $(KOLABRPMSRC)/$(PACKAGE)/$(PACKAGE).spec + cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(RPM_OPTIONS) $(PACKAGE).spec + +# Target for building the source package +$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMSRC)/$(PACKAGE)/$(PACKAGE).spec + cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -bs $(RPM_OPTIONS) $(PACKAGE).spec # Target for fetching the source rpm into the current directory -$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm +$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . # Target for cleaning up the files that can be generated with this Makefile From cvs at kolab.org Thu Jun 25 15:07:41 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 25 Jun 2009 15:07:41 +0200 (CEST) Subject: khruskowski: server/php Makefile,1.21,1.22 Message-ID: <20090625130741.D5A1260082E@lists.intevation.de> Author: khruskowski Update of /kolabrepository/server/php In directory doto:/tmp/cvs-serv3158/php Modified Files: Makefile Log Message: Corrected paths for patches, after they have been moved Index: Makefile =================================================================== RCS file: /kolabrepository/server/php/Makefile,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- Makefile 24 Mar 2009 16:29:41 -0000 1.21 +++ Makefile 25 Jun 2009 13:07:39 -0000 1.22 @@ -23,8 +23,8 @@ RELEASE=20081209 KOLABRELEASE=20081209_kolab3 -PATCHES=../patches/php/php-$(VERSION)/KOLAB_php-$(VERSION)_Annotations.patch \ - ../patches/php/php-$(VERSION)/KOLAB_php-$(VERSION)_myrights.patch +PATCHES=../php/patches/php-$(VERSION)/KOLAB_php-$(VERSION)_Annotations.patch \ + ../php/patches/php-$(VERSION)/KOLAB_php-$(VERSION)_myrights.patch .PHONY: all all: $(PACKAGE)-$(VERSION)-$(KOLABRELEASE).src.rpm From cvs at kolab.org Thu Jun 25 15:07:41 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 25 Jun 2009 15:07:41 +0200 (CEST) Subject: khruskowski: server/apache-php Makefile,1.11,1.12 Message-ID: <20090625130741.D5A99600839@lists.intevation.de> Author: khruskowski Update of /kolabrepository/server/apache-php In directory doto:/tmp/cvs-serv3158/apache-php Modified Files: Makefile Log Message: Corrected paths for patches, after they have been moved Index: Makefile =================================================================== RCS file: /kolabrepository/server/apache-php/Makefile,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- Makefile 24 Mar 2009 16:29:41 -0000 1.11 +++ Makefile 25 Jun 2009 13:07:39 -0000 1.12 @@ -23,8 +23,8 @@ RELEASE=20081209 KOLABRELEASE=20081209_kolab3 -PATCHES=../patches/php/php-$(VERSION)/KOLAB_php-$(VERSION)_Annotations.patch \ - ../patches/php/php-$(VERSION)/KOLAB_php-$(VERSION)_myrights.patch +PATCHES=../php/patches/php-$(VERSION)/KOLAB_php-$(VERSION)_Annotations.patch \ + ../php/patches/php-$(VERSION)/KOLAB_php-$(VERSION)_myrights.patch .PHONY: all all: $(PACKAGE)-$(VERSION)-$(KOLABRELEASE).src.rpm From cvs at kolab.org Thu Jun 25 15:08:57 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 25 Jun 2009 15:08:57 +0200 (CEST) Subject: khruskowski: server/imapd Makefile,1.42,1.43 Message-ID: <20090625130857.ABBFA600839@lists.intevation.de> Author: khruskowski Update of /kolabrepository/server/imapd In directory doto:/tmp/cvs-serv3232/imapd Modified Files: Makefile Log Message: Corrected releasenumber to match spec file Index: Makefile =================================================================== RCS file: /kolabrepository/server/imapd/Makefile,v retrieving revision 1.42 retrieving revision 1.43 diff -u -d -r1.42 -r1.43 --- Makefile 23 Apr 2009 21:43:17 -0000 1.42 +++ Makefile 25 Jun 2009 13:08:55 -0000 1.43 @@ -21,7 +21,7 @@ PACKAGE=imapd VERSION=2.3.13 RELEASE=20081020 -KOLABRELEASE=20081020_kolab1 +KOLABRELEASE=20081020_kolab2 PATCHES=patches/cyrus-imapd-$(VERSION)/KOLAB_cyrus-imapd-$(VERSION)_Cyradm_Annotations.patch \ patches/cyrus-imapd-$(VERSION)/KOLAB_cyrus-imapd-$(VERSION)_Annotations2.patch \ From cvs at kolab.org Thu Jun 25 16:20:51 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 25 Jun 2009 16:20:51 +0200 (CEST) Subject: khruskowski: server Makefile,1.79,1.80 Message-ID: <20090625142051.72BAD60082E@lists.intevation.de> Author: khruskowski Update of /kolabrepository/server In directory doto:/tmp/cvs-serv4750 Modified Files: Makefile Log Message: Corrected name of '1st.Readme' in main makefile Index: Makefile =================================================================== RCS file: /kolabrepository/server/Makefile,v retrieving revision 1.79 retrieving revision 1.80 diff -u -d -r1.79 -r1.80 --- Makefile 25 Apr 2009 23:01:57 -0000 1.79 +++ Makefile 25 Jun 2009 14:20:49 -0000 1.80 @@ -74,7 +74,7 @@ php-kolab/Kolab_Filter \ BASE_FILES=install-kolab.sh \ - README.1st + 1st.README # These are the packages that already provide a "make install" # procedure that will allow to update packages from CVS. From cvs at kolab.org Thu Jun 25 21:08:47 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 25 Jun 2009 21:08:47 +0200 (CEST) Subject: gunnar: server/pear/Horde_Framework-H4 package.info,1.1,1.2 Message-ID: <20090625190847.EAADE600823@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Framework-H4 In directory doto:/tmp/cvs-serv21682/Horde_Framework-H4 Modified Files: package.info Log Message: Installing these pacakges also requires the PEAR-Horde-Channel Index: package.info =================================================================== RCS file: /kolabrepository/server/pear/Horde_Framework-H4/package.info,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- package.info 23 Jun 2009 14:57:51 -0000 1.1 +++ package.info 25 Jun 2009 19:08:44 -0000 1.2 @@ -12,5 +12,5 @@ summary='Horde core Framework libraries' license='LGPL' buildprereq='BuildPreReq: OpenPKG, openpkg >= 20070603\nBuildPreReq: php, php::with_pear = yes\nBuildPreReq: PEAR-Horde-Channel\n' -prereq='PreReq: OpenPKG, openpkg >= 20070603\nPreReq: php, php::with_pear = yes\nPreReq: PEAR-Log\nPreReq: Horde_CLI\nPreReq: Horde_DOM\nPreReq: Horde_Util-H4 >= 0.2.0dev20090622' +prereq='PreReq: OpenPKG, openpkg >= 20070603\nPreReq: php, php::with_pear = yes\nPreReq: PEAR-Log\nPreReq: Horde_CLI\nPreReq: Horde_DOM\nPreReq: Horde_Util-H4 >= 0.2.0dev20090622\nPreReq: PEAR-Horde-Channel' description='These classes provide the core functionality of the Horde Application\nFramework.' From cvs at kolab.org Thu Jun 25 21:08:47 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 25 Jun 2009 21:08:47 +0200 (CEST) Subject: gunnar: server/pear/Horde_Util-H4 package.info,1.1,1.2 Message-ID: <20090625190847.EABAC60082E@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Util-H4 In directory doto:/tmp/cvs-serv21682/Horde_Util-H4 Modified Files: package.info Log Message: Installing these pacakges also requires the PEAR-Horde-Channel Index: package.info =================================================================== RCS file: /kolabrepository/server/pear/Horde_Util-H4/package.info,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- package.info 23 Jun 2009 14:16:08 -0000 1.1 +++ package.info 25 Jun 2009 19:08:44 -0000 1.2 @@ -12,5 +12,5 @@ summary='Horde Utility Libraries' license='LGPL' buildprereq='BuildPreReq: OpenPKG, openpkg >= 20070603\nBuildPreReq: php, php::with_pear = yes\nBuildPreReq: PEAR-Horde-Channel' -prereq='PreReq: OpenPKG, openpkg >= 20070603\nPreReq: php, php::with_pear = yes' +prereq='PreReq: OpenPKG, openpkg >= 20070603\nPreReq: php, php::with_pear = yes\nPreReq: PEAR-Horde-Channel' description='These classes provide functionality useful for all kind of applications.' From cvs at kolab.org Thu Jun 25 21:16:03 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Thu, 25 Jun 2009 21:16:03 +0200 (CEST) Subject: gunnar: server/pear Pear.mk,1.4,1.5 pear.spec.template,1.1,1.2 Message-ID: <20090625191603.271CE600172@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear In directory doto:/tmp/cvs-serv21907 Modified Files: Pear.mk pear.spec.template Log Message: Solve the with_chroot option via the spec template. Index: Pear.mk =================================================================== RCS file: /kolabrepository/server/pear/Pear.mk,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Pear.mk 25 Jun 2009 08:04:30 -0000 1.4 +++ Pear.mk 25 Jun 2009 19:16:00 -0000 1.5 @@ -55,10 +55,7 @@ ALTERNATE_MAINTAINER_SNIPPET= $(shell grep "^alternate_maintainer_snippet=" package.info | sed -e "s/alternate_maintainer_snippet='\(.*\)'$$/\1/") # Allow to set the with_chroot option -WITH_CHROOT = $(shell test -e ../.opt.chroot && echo "-D 'with_chroot yes'") - -# RPM options -RPM_OPTIONS = $(WITH_CHROOT) +WITH_CHROOT = $(shell if [ -e ../.opt.chroot ]; then echo "yes"; else echo "no"; fi) # Set the default package file end ifeq "x$(FILEEND)" "x" @@ -249,7 +246,8 @@ -e "s#[@]license[@]#$${license}#g" \ -e "s#[@]buildprereq[@]#$${buildprereq}#g" \ -e "s#[@]prereq[@]#$${prereq}#g" \ - -e "s#[@]description[@]#$${description}#g" > \ + -e "s#[@]description[@]#$${description}#g" \ + -e "s#[@]with_chroot[@]#$(WITH_CHROOT)#g" > \ $(PACKAGE).spec # Target for preparing the source area and building the package @@ -258,11 +256,11 @@ # Target for building the binary package $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: $(KOLABRPMSRC)/$(PACKAGE)/$(PACKAGE).spec - cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(RPM_OPTIONS) $(PACKAGE).spec + cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec # Target for building the source package $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMSRC)/$(PACKAGE)/$(PACKAGE).spec - cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -bs $(RPM_OPTIONS) $(PACKAGE).spec + cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -bs $(PACKAGE).spec # Target for fetching the source rpm into the current directory $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm Index: pear.spec.template =================================================================== RCS file: /kolabrepository/server/pear/pear.spec.template,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- pear.spec.template 23 Jun 2009 14:15:41 -0000 1.1 +++ pear.spec.template 25 Jun 2009 19:16:00 -0000 1.2 @@ -39,7 +39,7 @@ @prereq@ # Package options -%option with_chroot no +%option with_chroot @with_chroot@ %description @description@ From cvs at kolab.org Fri Jun 26 10:05:00 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 26 Jun 2009 10:05:00 +0200 (CEST) Subject: gunnar: server/pear/Horde_Notification-H4 - New directory Message-ID: <20090626080500.BA88A60082E@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Notification-H4 In directory doto:/tmp/cvs-serv23828/Horde_Notification-H4 Log Message: Directory /kolabrepository/server/pear/Horde_Notification-H4 added to the repository From cvs at kolab.org Fri Jun 26 10:05:26 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 26 Jun 2009 10:05:26 +0200 (CEST) Subject: gunnar: server/pear/Horde_Notification-H4 .cvsignore, NONE, 1.1 ChangeLog, NONE, 1.1 Makefile, NONE, 1.1 package.info, NONE, 1.1 Message-ID: <20090626080526.BC29D600839@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Notification-H4 In directory doto:/tmp/cvs-serv24088/Horde_Notification-H4 Added Files: .cvsignore ChangeLog Makefile package.info Log Message: Added Horde_Notification-H4 --- NEW FILE: .cvsignore --- *.src.rpm *.tgz *.spec package.patch --- NEW FILE: ChangeLog --- 2009-06-26 Gunnar Wrobel

    * Horde_Notification-H4.spec: Added package to Kolab CVS. --- NEW FILE: Makefile --- include ../Pear.mk --- NEW FILE: package.info --- horde_pkgdir='framework/Notification' horde_package='Notification' package='Horde_Notification-H4' package_origin='VC-GIT' repo_commit='0f47b93b52221dfc0e9af669938981452012d9b8' repo_release='20090626' version='0.1.0dev20090626' release='20090626' sourceurl='http://pear.horde.org/get' php_lib_loc='php-h4' www_loc='client' summary='Horde Notification System' license='LGPL' buildprereq='BuildPreReq: OpenPKG, openpkg >= 20070603\nBuildPreReq: php, php::with_pear = yes\nBuildPreReq: PEAR-Horde-Channel' prereq='PreReq: OpenPKG, openpkg >= 20070603\nPreReq: php, php::with_pear = yes\nPreReq: PEAR-Horde-Channel' description='The Notification:: class provides a subject-observer pattern for raising and showing messages of different types and to different listeners.' From cvs at kolab.org Fri Jun 26 10:05:26 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 26 Jun 2009 10:05:26 +0200 (CEST) Subject: gunnar: server/pear/Horde_Argv-H4 Horde_Argv-H4.spec,1.1,1.2 Message-ID: <20090626080526.BCBE760083A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Argv-H4 In directory doto:/tmp/cvs-serv24088/Horde_Argv-H4 Modified Files: Horde_Argv-H4.spec Log Message: Added Horde_Notification-H4 Index: Horde_Argv-H4.spec =================================================================== RCS file: /kolabrepository/server/pear/Horde_Argv-H4/Horde_Argv-H4.spec,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Horde_Argv-H4.spec 18 May 2009 22:31:06 -0000 1.1 +++ Horde_Argv-H4.spec 26 Jun 2009 08:05:24 -0000 1.2 @@ -66,7 +66,8 @@ %{l_prefix}/bin/pear -d www_dir="%{l_prefix}/var/kolab/www/%{V_www_loc}" \ -d php_dir="%{l_prefix}/lib/%{V_php_lib_loc}" \ install --offline --force --nodeps -P $RPM_BUILD_ROOT \ - $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz + package.xml + rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc}/{.filemap,.lock,.channels,.depdb,.depdblock} # With chroot From cvs at kolab.org Fri Jun 26 10:21:05 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 26 Jun 2009 10:21:05 +0200 (CEST) Subject: gunnar: server/pear/Horde_Notification-H4 package.info,1.1,1.2 Message-ID: <20090626082105.853C460C4A2@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Notification-H4 In directory doto:/tmp/cvs-serv24389 Modified Files: package.info Log Message: Update to commit id with corrected package.xml. Index: package.info =================================================================== RCS file: /kolabrepository/server/pear/Horde_Notification-H4/package.info,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- package.info 26 Jun 2009 08:05:24 -0000 1.1 +++ package.info 26 Jun 2009 08:21:03 -0000 1.2 @@ -2,7 +2,7 @@ horde_package='Notification' package='Horde_Notification-H4' package_origin='VC-GIT' -repo_commit='0f47b93b52221dfc0e9af669938981452012d9b8' +repo_commit='8f17470c090a8098eb1e519314dfdf0e19fc6942' repo_release='20090626' version='0.1.0dev20090626' release='20090626' From cvs at kolab.org Fri Jun 26 11:43:33 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 26 Jun 2009 11:43:33 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0/tg t_kronolith_HK_SB_SaveEventAttendees.diff, 1.3, 1.3.4.1 Message-ID: <20090626094333.6D0A960083D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0/tg In directory doto:/tmp/cvs-serv26104/tg Modified Files: Tag: suc_branch t_kronolith_HK_SB_SaveEventAttendees.diff Log Message: Translate the new strings on the attendees screen. Index: t_kronolith_HK_SB_SaveEventAttendees.diff =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/tg/Attic/t_kronolith_HK_SB_SaveEventAttendees.diff,v retrieving revision 1.3 retrieving revision 1.3.4.1 diff -u -d -r1.3 -r1.3.4.1 --- t_kronolith_HK_SB_SaveEventAttendees.diff 9 Feb 2009 14:25:55 -0000 1.3 +++ t_kronolith_HK_SB_SaveEventAttendees.diff 26 Jun 2009 09:43:31 -0000 1.3.4.1 @@ -10,11 +10,12 @@ --- horde-webmail/kronolith/attendees.php | 18 +++++ horde-webmail/kronolith/config/prefs.php.dist | 8 ++ + horde-webmail/kronolith/po/de_DE.po | 6 ++ horde-webmail/kronolith/savedattlist.php | 77 ++++++++++++++++++++ .../kronolith/templates/attendees/attendees.inc | 2 + .../templates/javascript/open_savedattlist_win.js | 36 +++++++++ .../templates/savedattlist/savedattlist.inc | 68 +++++++++++++++++ - 6 files changed, 209 insertions(+), 0 deletions(-) + 7 files changed, 215 insertions(+), 0 deletions(-) diff --git a/horde-webmail/kronolith/attendees.php b/horde-webmail/kronolith/attendees.php index a2d8b3e..e1b15c0 100644 @@ -68,6 +69,20 @@ + 'type' => 'implicit', + 'desc' => _("A saved list of attendees") +); +diff --git a/horde-webmail/kronolith/po/de_DE.po b/horde-webmail/kronolith/po/de_DE.po +index 2b555a2..8cd3fe0 100644 +--- a/horde-webmail/kronolith/po/de_DE.po ++++ b/horde-webmail/kronolith/po/de_DE.po +@@ -2674,3 +2674,9 @@ msgstr "Jahr(e) am gleichen Jahrestag" + #: templates/view/view.inc:116 templates/edit/edit.inc:271 + msgid "year(s) on the same weekday and month of the year" + msgstr "Jahr(e) am gleichen Wochentag und Monat des Jahres" ++ ++msgid "Save Attendee List" ++msgstr "Teilnehmerliste speichern" ++ ++msgid "Clear all attendees" ++msgstr "Alle Teilnehmer löschen" diff --git a/horde-webmail/kronolith/savedattlist.php b/horde-webmail/kronolith/savedattlist.php new file mode 100644 index 0000000..631b994 @@ -282,3 +297,24 @@ + -- tg: (6938161..) t/kronolith/HK/SB/SaveEventAttendees (depends on: master) +-- +TOPGIT patch commit log +======================= + +commit ced8db79fc783d16931dfcecea9bc823c2f5737f +Author: Gunnar Wrobel

    +Date: Fri Jun 26 11:15:43 2009 +0200 + + German translations. + +commit cd7f4fe16072b7b40a1a75bd5c9a296e23bca779 +Author: Gunnar Wrobel

    +Date: Sat Mar 14 01:10:10 2009 +0100 + + Remove stray .orig file. + +commit e508e429dcac35ef7ac223c771a9973f823db53f +Author: Gunnar Wrobel

    +Date: Sun Feb 1 22:21:11 2009 +0000 + + Added patch kronolith/HK-SB-Fbview_save_attendees.patch from the mercurial release queue. From cvs at kolab.org Fri Jun 26 11:43:33 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 26 Jun 2009 11:43:33 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0 horde-webmail-1.2.0_kolab_openpkg.patch, 1.32.2.4.2.11, 1.32.2.4.2.12 Message-ID: <20090626094333.76AD760083F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0 In directory doto:/tmp/cvs-serv26104 Modified Files: Tag: suc_branch horde-webmail-1.2.0_kolab_openpkg.patch Log Message: Translate the new strings on the attendees screen. Index: horde-webmail-1.2.0_kolab_openpkg.patch =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/Attic/horde-webmail-1.2.0_kolab_openpkg.patch,v retrieving revision 1.32.2.4.2.11 retrieving revision 1.32.2.4.2.12 diff -u -d -r1.32.2.4.2.11 -r1.32.2.4.2.12 --- horde-webmail-1.2.0_kolab_openpkg.patch 22 Jun 2009 06:52:34 -0000 1.32.2.4.2.11 +++ horde-webmail-1.2.0_kolab_openpkg.patch 26 Jun 2009 09:43:30 -0000 1.32.2.4.2.12 @@ -14254,11 +14254,12 @@ --- horde-webmail/kronolith/attendees.php | 18 +++++ horde-webmail/kronolith/config/prefs.php.dist | 8 ++ + horde-webmail/kronolith/po/de_DE.po | 6 ++ horde-webmail/kronolith/savedattlist.php | 77 ++++++++++++++++++++ .../kronolith/templates/attendees/attendees.inc | 2 + .../templates/javascript/open_savedattlist_win.js | 36 +++++++++ .../templates/savedattlist/savedattlist.inc | 68 +++++++++++++++++ - 6 files changed, 209 insertions(+), 0 deletions(-) + 7 files changed, 215 insertions(+), 0 deletions(-) diff --git a/horde-webmail/kronolith/attendees.php b/horde-webmail/kronolith/attendees.php index a2d8b3e..e1b15c0 100644 @@ -14312,6 +14313,20 @@ + 'type' => 'implicit', + 'desc' => _("A saved list of attendees") +); +diff --git a/horde-webmail/kronolith/po/de_DE.po b/horde-webmail/kronolith/po/de_DE.po +index 2b555a2..8cd3fe0 100644 +--- a/horde-webmail/kronolith/po/de_DE.po ++++ b/horde-webmail/kronolith/po/de_DE.po +@@ -2674,3 +2674,9 @@ msgstr "Jahr(e) am gleichen Jahrestag" + #: templates/view/view.inc:116 templates/edit/edit.inc:271 + msgid "year(s) on the same weekday and month of the year" + msgstr "Jahr(e) am gleichen Wochentag und Monat des Jahres" ++ ++msgid "Save Attendee List" ++msgstr "Teilnehmerliste speichern" ++ ++msgid "Clear all attendees" ++msgstr "Alle Teilnehmer löschen" diff --git a/horde-webmail/kronolith/savedattlist.php b/horde-webmail/kronolith/savedattlist.php new file mode 100644 index 0000000..631b994 @@ -14526,6 +14541,27 @@ + -- tg: (6938161..) t/kronolith/HK/SB/SaveEventAttendees (depends on: master) +-- +TOPGIT patch commit log +======================= + +commit ced8db79fc783d16931dfcecea9bc823c2f5737f +Author: Gunnar Wrobel

    +Date: Fri Jun 26 11:15:43 2009 +0200 + + German translations. + +commit cd7f4fe16072b7b40a1a75bd5c9a296e23bca779 +Author: Gunnar Wrobel

    +Date: Sat Mar 14 01:10:10 2009 +0100 + + Remove stray .orig file. + +commit e508e429dcac35ef7ac223c771a9973f823db53f +Author: Gunnar Wrobel

    +Date: Sun Feb 1 22:21:11 2009 +0000 + + Added patch kronolith/HK-SB-Fbview_save_attendees.patch from the mercurial release queue. From: Gunnar Wrobel

    Subject: [PATCH] t/kronolith/HK/SB/ExtraParameters From cvs at kolab.org Fri Jun 26 11:46:34 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 26 Jun 2009 11:46:34 +0200 (CEST) Subject: gunnar: server/kolab-webclient kolab-webclient.spec, 1.23.2.6.2.14, 1.23.2.6.2.15 Message-ID: <20090626094634.0DA4260083F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv26225 Modified Files: Tag: suc_branch kolab-webclient.spec Log Message: Also update the kronolith translations. Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.23.2.6.2.14 retrieving revision 1.23.2.6.2.15 diff -u -d -r1.23.2.6.2.14 -r1.23.2.6.2.15 --- kolab-webclient.spec 22 Jun 2009 20:54:38 -0000 1.23.2.6.2.14 +++ kolab-webclient.spec 26 Jun 2009 09:46:31 -0000 1.23.2.6.2.15 @@ -3,7 +3,7 @@ %define V_package kolab-webclient %define V_year 2009 %define V_month 06 -%define V_day 22 +%define V_day 26 %define V_version 1.2.0 %define V_source_version 1.2 %define V_passwd_version 3.0.1 @@ -146,6 +146,7 @@ # Refresh the translations PATH="%{l_prefix}/bin" %{l_prefix}/bin/php -d safe_mode=0 -f $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/po/translation.php make --module dimp --no-compendium + PATH="%{l_prefix}/bin" %{l_prefix}/bin/php -d safe_mode=0 -f $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/po/translation.php make --module kronolith --no-compendium %{l_shtool} install -c -m 644 %{l_value -s -a} %{S:4} %{S:5} \ $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/client/passwd/config From cvs at kolab.org Fri Jun 26 12:12:13 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 26 Jun 2009 12:12:13 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0 horde-webmail-1.2.0_kolab_openpkg.patch, 1.32.2.4.2.12, 1.32.2.4.2.13 Message-ID: <20090626101213.D719F60C4A8@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0 In directory doto:/tmp/cvs-serv27038 Modified Files: Tag: suc_branch horde-webmail-1.2.0_kolab_openpkg.patch Log Message: Update kronolith translations. Index: horde-webmail-1.2.0_kolab_openpkg.patch =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/Attic/horde-webmail-1.2.0_kolab_openpkg.patch,v retrieving revision 1.32.2.4.2.12 retrieving revision 1.32.2.4.2.13 diff -u -d -r1.32.2.4.2.12 -r1.32.2.4.2.13 --- horde-webmail-1.2.0_kolab_openpkg.patch 26 Jun 2009 09:43:30 -0000 1.32.2.4.2.12 +++ horde-webmail-1.2.0_kolab_openpkg.patch 26 Jun 2009 10:12:10 -0000 1.32.2.4.2.13 @@ -14314,7 +14314,7 @@ + 'desc' => _("A saved list of attendees") +); diff --git a/horde-webmail/kronolith/po/de_DE.po b/horde-webmail/kronolith/po/de_DE.po -index 2b555a2..8cd3fe0 100644 +index 2b555a2..68ed35c 100644 --- a/horde-webmail/kronolith/po/de_DE.po +++ b/horde-webmail/kronolith/po/de_DE.po @@ -2674,3 +2674,9 @@ msgstr "Jahr(e) am gleichen Jahrestag" @@ -14322,11 +14322,11 @@ msgid "year(s) on the same weekday and month of the year" msgstr "Jahr(e) am gleichen Wochentag und Monat des Jahres" + ++msgid "Load Attendee List" ++msgstr "Teilnehmerliste laden" ++ +msgid "Save Attendee List" +msgstr "Teilnehmerliste speichern" -+ -+msgid "Clear all attendees" -+msgstr "Alle Teilnehmer löschen" diff --git a/horde-webmail/kronolith/savedattlist.php b/horde-webmail/kronolith/savedattlist.php new file mode 100644 index 0000000..631b994 @@ -14544,6 +14544,12 @@ -- TOPGIT patch commit log ======================= + +commit 3715013c5b1c184a72130bab132e3157d7e4b0ca +Author: Gunnar Wrobel

    +Date: Fri Jun 26 12:06:46 2009 +0200 + + Fixed translations. commit ced8db79fc783d16931dfcecea9bc823c2f5737f Author: Gunnar Wrobel

    From cvs at kolab.org Fri Jun 26 12:12:13 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 26 Jun 2009 12:12:13 +0200 (CEST) Subject: gunnar: server/patches/horde-webmail/1.2.0/tg t_kronolith_HK_SB_SaveEventAttendees.diff, 1.3.4.1, 1.3.4.2 Message-ID: <20090626101213.5C0C460C4A8@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/horde-webmail/1.2.0/tg In directory doto:/tmp/cvs-serv27038/tg Modified Files: Tag: suc_branch t_kronolith_HK_SB_SaveEventAttendees.diff Log Message: Update kronolith translations. Index: t_kronolith_HK_SB_SaveEventAttendees.diff =================================================================== RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/tg/Attic/t_kronolith_HK_SB_SaveEventAttendees.diff,v retrieving revision 1.3.4.1 retrieving revision 1.3.4.2 diff -u -d -r1.3.4.1 -r1.3.4.2 --- t_kronolith_HK_SB_SaveEventAttendees.diff 26 Jun 2009 09:43:31 -0000 1.3.4.1 +++ t_kronolith_HK_SB_SaveEventAttendees.diff 26 Jun 2009 10:12:11 -0000 1.3.4.2 @@ -70,7 +70,7 @@ + 'desc' => _("A saved list of attendees") +); diff --git a/horde-webmail/kronolith/po/de_DE.po b/horde-webmail/kronolith/po/de_DE.po -index 2b555a2..8cd3fe0 100644 +index 2b555a2..68ed35c 100644 --- a/horde-webmail/kronolith/po/de_DE.po +++ b/horde-webmail/kronolith/po/de_DE.po @@ -2674,3 +2674,9 @@ msgstr "Jahr(e) am gleichen Jahrestag" @@ -78,11 +78,11 @@ msgid "year(s) on the same weekday and month of the year" msgstr "Jahr(e) am gleichen Wochentag und Monat des Jahres" + ++msgid "Load Attendee List" ++msgstr "Teilnehmerliste laden" ++ +msgid "Save Attendee List" +msgstr "Teilnehmerliste speichern" -+ -+msgid "Clear all attendees" -+msgstr "Alle Teilnehmer löschen" diff --git a/horde-webmail/kronolith/savedattlist.php b/horde-webmail/kronolith/savedattlist.php new file mode 100644 index 0000000..631b994 @@ -300,6 +300,12 @@ -- TOPGIT patch commit log ======================= + +commit 3715013c5b1c184a72130bab132e3157d7e4b0ca +Author: Gunnar Wrobel

    +Date: Fri Jun 26 12:06:46 2009 +0200 + + Fixed translations. commit ced8db79fc783d16931dfcecea9bc823c2f5737f Author: Gunnar Wrobel

    From cvs at kolab.org Fri Jun 26 12:54:48 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 26 Jun 2009 12:54:48 +0200 (CEST) Subject: emanuel: doc/www/src index.html.m4, 1.164, 1.165 newsarchive.html.m4, 1.17, 1.18 Message-ID: <20090626105448.E301460C4A7@lists.intevation.de> Author: emanuel Update of /kolabrepository/doc/www/src In directory doto:/tmp/cvs-serv27997 Modified Files: index.html.m4 newsarchive.html.m4 Log Message: added news. Archived old news. Index: index.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/index.html.m4,v retrieving revision 1.164 retrieving revision 1.165 diff -u -d -r1.164 -r1.165 --- index.html.m4 15 May 2009 13:48:21 -0000 1.164 +++ index.html.m4 26 Jun 2009 10:54:46 -0000 1.165 @@ -58,6 +58,22 @@ -->

    +
    April 8th, 2009 » Kolab Server 2.2.1 Final Release Index: roadmap.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/roadmap.html.m4,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- roadmap.html.m4 16 Apr 2009 10:23:01 -0000 1.28 +++ roadmap.html.m4 15 May 2009 13:48:21 -0000 1.29 @@ -25,8 +25,10 @@ Improvements include the SyncML improvements to the Kolab Webclient, code cleanup and eliminating defects.

    -It is planned to have a bugfix release 2.2.2 in April or early May 2009 and -to have further improvements in a release 2.3.0 in the second half of 2009. +2.2.2 was published on May 15th, 2009. +It contains some bugfixes and small improvements. +

    +It is planned to have further improvements in a release 2.3.0 in the second half of 2009.

    Kolab Server 2.1 release series

    Current is 2.1.0 Final. No further releases planned. From cvs at kolab.org Mon May 18 10:16:59 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:16:59 +0200 (CEST) Subject: gunnar: server/imapd README,1.5,NONE Message-ID: <20090518081659.68AE6600167@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/imapd In directory doto:/tmp/cvs-serv19035 Removed Files: README Log Message: I believe this file has become obsolete. --- README DELETED --- From cvs at kolab.org Mon May 18 10:42:41 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:42:41 +0200 (CEST) Subject: gunnar: server/php/patches/php-5.2.6 - New directory Message-ID: <20090518084241.E2387600827@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php/patches/php-5.2.6 In directory doto:/tmp/cvs-serv19883/patches/php-5.2.6 Log Message: Directory /kolabrepository/server/php/patches/php-5.2.6 added to the repository From cvs at kolab.org Mon May 18 10:42:41 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:42:41 +0200 (CEST) Subject: gunnar: server/php/patches/php-5.2.5 - New directory Message-ID: <20090518084241.DDC06600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php/patches/php-5.2.5 In directory doto:/tmp/cvs-serv19883/patches/php-5.2.5 Log Message: Directory /kolabrepository/server/php/patches/php-5.2.5 added to the repository From cvs at kolab.org Mon May 18 10:42:41 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:42:41 +0200 (CEST) Subject: gunnar: server/php/patches/php-5.2.4 - New directory Message-ID: <20090518084241.E4A2260082B@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php/patches/php-5.2.4 In directory doto:/tmp/cvs-serv19883/patches/php-5.2.4 Log Message: Directory /kolabrepository/server/php/patches/php-5.2.4 added to the repository From cvs at kolab.org Mon May 18 10:42:41 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:42:41 +0200 (CEST) Subject: gunnar: server/php/patches/php-5.2.3 - New directory Message-ID: <20090518084241.E711060082C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php/patches/php-5.2.3 In directory doto:/tmp/cvs-serv19883/patches/php-5.2.3 Log Message: Directory /kolabrepository/server/php/patches/php-5.2.3 added to the repository From cvs at kolab.org Mon May 18 10:42:41 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:42:41 +0200 (CEST) Subject: gunnar: server/php/patches/php-5.2.8 - New directory Message-ID: <20090518084241.EAB4860082F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php/patches/php-5.2.8 In directory doto:/tmp/cvs-serv19883/patches/php-5.2.8 Log Message: Directory /kolabrepository/server/php/patches/php-5.2.8 added to the repository From cvs at kolab.org Mon May 18 10:42:41 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:42:41 +0200 (CEST) Subject: gunnar: server/php/patches - New directory Message-ID: <20090518084241.DB681600825@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php/patches In directory doto:/tmp/cvs-serv19883/patches Log Message: Directory /kolabrepository/server/php/patches added to the repository From cvs at kolab.org Mon May 18 10:42:41 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:42:41 +0200 (CEST) Subject: gunnar: server/php/patches/php-5.2.9 - New directory Message-ID: <20090518084241.E97BE60082D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php/patches/php-5.2.9 In directory doto:/tmp/cvs-serv19883/patches/php-5.2.9 Log Message: Directory /kolabrepository/server/php/patches/php-5.2.9 added to the repository From cvs at kolab.org Mon May 18 10:43:40 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:43:40 +0200 (CEST) Subject: gunnar: server/php/patches/php-5.2.4 KOLAB_Annotations.patch, NONE, 1.1 Message-ID: <20090518084340.C123660082D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php/patches/php-5.2.4 In directory doto:/tmp/cvs-serv20014/patches/php-5.2.4 Added Files: KOLAB_Annotations.patch Log Message: Moved php patches from the server/patches dir into server/php. --- 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 Mon May 18 10:43:40 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:43:40 +0200 (CEST) Subject: gunnar: server/php/patches/php-5.2.5 KOLAB_Annotations.patch, NONE, 1.1 Message-ID: <20090518084340.C362F600830@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php/patches/php-5.2.5 In directory doto:/tmp/cvs-serv20014/patches/php-5.2.5 Added Files: KOLAB_Annotations.patch Log Message: Moved php patches from the server/patches dir into server/php. --- 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 Mon May 18 10:43:40 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:43:40 +0200 (CEST) Subject: gunnar: server/php/patches/php-5.2.3 KOLAB_Annotations.patch, NONE, 1.1 Message-ID: <20090518084340.BE19560082C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php/patches/php-5.2.3 In directory doto:/tmp/cvs-serv20014/patches/php-5.2.3 Added Files: KOLAB_Annotations.patch Log Message: Moved php patches from the server/patches dir into server/php. --- 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 Mon May 18 10:43:40 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:43:40 +0200 (CEST) Subject: gunnar: server/php/patches/php-5.2.6 KOLAB_php-5.2.6_Annotations.patch, NONE, 1.1 KOLAB_php-5.2.6_myrights.patch, NONE, 1.1 Message-ID: <20090518084340.C746C60082C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php/patches/php-5.2.6 In directory doto:/tmp/cvs-serv20014/patches/php-5.2.6 Added Files: KOLAB_php-5.2.6_Annotations.patch KOLAB_php-5.2.6_myrights.patch Log Message: Moved php patches from the server/patches dir into server/php. --- NEW FILE: KOLAB_php-5.2.6_Annotations.patch --- Provides get/set ANNOTATIONS support to PHP. [Version: 5.2.6] diff -r 4f78d3c907b7 ext/imap/php_imap.c --- a/ext/imap/php_imap.c Fri May 02 11:21:11 2008 +0200 +++ b/ext/imap/php_imap.c Mon Jun 09 10:35:56 2008 +0200 @@ -129,6 +129,7 @@ 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 @@ 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) @@ -416,6 +421,30 @@ #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 */ static PHP_GINIT_FUNCTION(imap) @@ -441,6 +470,7 @@ #if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001) imap_globals->quota_return = NIL; imap_globals->imap_acl_list = NIL; + imap_globals->imap_annotation_list = NIL; #endif imap_globals->gets_stream = NIL; } @@ -1097,6 +1127,117 @@ #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(); + if (!attributes) + RETURN_FALSE; + cur = attributes; + cur->text.data = (unsigned char *)cpystr (Z_STRVAL_PP(attr)); + cur->text.size = Z_STRLEN_PP(attr); + cur->next = NIL; + + 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 */ @@ -2707,6 +2848,42 @@ } /* }}} */ +/* {{{ 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); + } +} +/* }}} */ + /* {{{ proto object imap_status(resource stream_id, string mailbox, int options) Get status info from a mailbox */ PHP_FUNCTION(imap_status) diff -r 4f78d3c907b7 ext/imap/php_imap.h --- a/ext/imap/php_imap.h Fri May 02 11:21:11 2008 +0200 +++ b/ext/imap/php_imap.h Mon Jun 09 10:35:56 2008 +0200 @@ -152,6 +152,7 @@ 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_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_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 @@ 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) --- NEW FILE: KOLAB_php-5.2.6_myrights.patch --- diff -r daa11c358bd5 ext/imap/php_imap.c --- a/ext/imap/php_imap.c Mon Jun 09 10:36:42 2008 +0200 +++ b/ext/imap/php_imap.c Mon Jun 09 10:37:25 2008 +0200 @@ -155,6 +155,7 @@ PHP_FE(imap_set_quota, NULL) PHP_FE(imap_setacl, NULL) PHP_FE(imap_getacl, NULL) + PHP_FE(imap_myrights, NULL) #endif #if defined(HAVE_IMAP2005) PHP_FE(imap_setannotation, NULL) @@ -415,6 +416,20 @@ for(; alist; alist = alist->next) { add_assoc_stringl(IMAPG(imap_acl_list), alist->identifier, alist->rights, strlen(alist->rights), 1); } +} +/* }}} */ + +/* {{{ mail_myrights + * + * Mail MYRIGHTS callback + * Called via the mail_parameter function in c-client:src/c-client/mail.c + */ +void mail_myrights(MAILSTREAM *stream, char *mailbox, char *rights) +{ + TSRMLS_FETCH(); + + ZVAL_STRING(IMAPG(imap_acl_list), rights, 1) + } /* }}} */ @@ -1125,6 +1140,35 @@ } /* }}} */ +/* {{{ proto string imap_myrights(resource stream_id, string mailbox) + Gets my rights (ACL) for a given mailbox */ +PHP_FUNCTION(imap_myrights) +{ + zval **streamind, **mailbox; + pils *imap_le_struct; + + if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &streamind, &mailbox) == FAILURE) { + ZEND_WRONG_PARAM_COUNT(); + } + + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); + + convert_to_string_ex(mailbox); + + IMAPG(imap_acl_list) = return_value; + + /* set the callback for the GET_ACL function */ + mail_parameters(NIL, SET_MYRIGHTS, (void *) mail_myrights); + if(!imap_myrights(imap_le_struct->imap_stream, Z_STRVAL_PP(mailbox))) { + php_error(E_WARNING, "c-client imap_myrights failed"); + zval_dtor(return_value); + RETURN_FALSE; + } + + IMAPG(imap_acl_list) = NIL; +} +/* }}} */ + #endif /* HAVE_IMAP2000 || HAVE_IMAP2001 */ #if defined(HAVE_IMAP2005) diff -r daa11c358bd5 ext/imap/php_imap.h --- a/ext/imap/php_imap.h Mon Jun 09 10:36:42 2008 +0200 +++ b/ext/imap/php_imap.h Mon Jun 09 10:37:25 2008 +0200 @@ -178,6 +178,7 @@ PHP_FUNCTION(imap_set_quota); PHP_FUNCTION(imap_setacl); PHP_FUNCTION(imap_getacl); +PHP_FUNCTION(imap_myrights); #endif #if defined(HAVE_IMAP2005) PHP_FUNCTION(imap_setannotation); From cvs at kolab.org Mon May 18 10:43:40 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:43:40 +0200 (CEST) Subject: gunnar: server/php/patches/php-5.2.9 KOLAB_php-5.2.9_Annotations.patch, NONE, 1.1 KOLAB_php-5.2.9_myrights.patch, NONE, 1.1 series, NONE, 1.1 Message-ID: <20090518084340.CDB9860082C@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php/patches/php-5.2.9 In directory doto:/tmp/cvs-serv20014/patches/php-5.2.9 Added Files: KOLAB_php-5.2.9_Annotations.patch KOLAB_php-5.2.9_myrights.patch series Log Message: Moved php patches from the server/patches dir into server/php. --- NEW FILE: KOLAB_php-5.2.9_Annotations.patch --- Provides get/set ANNOTATIONS support to PHP. [Version: 5.2.6] diff -r 4f78d3c907b7 ext/imap/php_imap.c --- a/ext/imap/php_imap.c Fri May 02 11:21:11 2008 +0200 +++ b/ext/imap/php_imap.c Mon Jun 09 10:35:56 2008 +0200 @@ -129,6 +129,7 @@ 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 @@ 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) @@ -416,6 +421,30 @@ #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 */ static PHP_GINIT_FUNCTION(imap) @@ -441,6 +470,7 @@ #if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001) imap_globals->quota_return = NIL; imap_globals->imap_acl_list = NIL; + imap_globals->imap_annotation_list = NIL; #endif imap_globals->gets_stream = NIL; } @@ -1097,6 +1127,117 @@ #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(); + if (!attributes) + RETURN_FALSE; + cur = attributes; + cur->text.data = (unsigned char *)cpystr (Z_STRVAL_PP(attr)); + cur->text.size = Z_STRLEN_PP(attr); + cur->next = NIL; + + 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 */ @@ -2707,6 +2848,42 @@ } /* }}} */ +/* {{{ 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); + } +} +/* }}} */ + /* {{{ proto object imap_status(resource stream_id, string mailbox, int options) Get status info from a mailbox */ PHP_FUNCTION(imap_status) diff -r 4f78d3c907b7 ext/imap/php_imap.h --- a/ext/imap/php_imap.h Fri May 02 11:21:11 2008 +0200 +++ b/ext/imap/php_imap.h Mon Jun 09 10:35:56 2008 +0200 @@ -152,6 +152,7 @@ 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_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_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 @@ 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) --- NEW FILE: KOLAB_php-5.2.9_myrights.patch --- diff -r 591dd6329e97 ext/imap/php_imap.c --- a/ext/imap/php_imap.c Mon Dec 22 06:35:22 2008 +0100 +++ b/ext/imap/php_imap.c Mon Dec 22 06:35:27 2008 +0100 @@ -157,6 +157,7 @@ PHP_FE(imap_set_quota, NULL) PHP_FE(imap_setacl, NULL) PHP_FE(imap_getacl, NULL) + PHP_FE(imap_myrights, NULL) #endif #if defined(HAVE_IMAP2005) PHP_FE(imap_setannotation, NULL) @@ -417,6 +418,20 @@ for(; alist; alist = alist->next) { add_assoc_stringl(IMAPG(imap_acl_list), alist->identifier, alist->rights, strlen(alist->rights), 1); } +} +/* }}} */ + +/* {{{ mail_myrights + * + * Mail MYRIGHTS callback + * Called via the mail_parameter function in c-client:src/c-client/mail.c + */ +void mail_myrights(MAILSTREAM *stream, char *mailbox, char *rights) +{ + TSRMLS_FETCH(); + + ZVAL_STRING(IMAPG(imap_acl_list), rights, 1) + } /* }}} */ @@ -1130,6 +1145,35 @@ } /* }}} */ +/* {{{ proto string imap_myrights(resource stream_id, string mailbox) + Gets my rights (ACL) for a given mailbox */ +PHP_FUNCTION(imap_myrights) +{ + zval **streamind, **mailbox; + pils *imap_le_struct; + + if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &streamind, &mailbox) == FAILURE) { + ZEND_WRONG_PARAM_COUNT(); + } + + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); + + convert_to_string_ex(mailbox); + + IMAPG(imap_acl_list) = return_value; + + /* set the callback for the GET_ACL function */ + mail_parameters(NIL, SET_MYRIGHTS, (void *) mail_myrights); + if(!imap_myrights(imap_le_struct->imap_stream, Z_STRVAL_PP(mailbox))) { + php_error(E_WARNING, "c-client imap_myrights failed"); + zval_dtor(return_value); + RETURN_FALSE; + } + + IMAPG(imap_acl_list) = NIL; +} +/* }}} */ + #endif /* HAVE_IMAP2000 || HAVE_IMAP2001 */ #if defined(HAVE_IMAP2005) diff -r 591dd6329e97 ext/imap/php_imap.h --- a/ext/imap/php_imap.h Mon Dec 22 06:35:22 2008 +0100 +++ b/ext/imap/php_imap.h Mon Dec 22 06:35:27 2008 +0100 @@ -178,6 +178,7 @@ PHP_FUNCTION(imap_set_quota); PHP_FUNCTION(imap_setacl); PHP_FUNCTION(imap_getacl); +PHP_FUNCTION(imap_myrights); #endif #if defined(HAVE_IMAP2005) PHP_FUNCTION(imap_setannotation); --- NEW FILE: series --- KOLAB_Annotations.patch KOLAB_myrights.patch From cvs at kolab.org Mon May 18 10:43:40 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:43:40 +0200 (CEST) Subject: gunnar: server/php/patches/php-5.2.8 KOLAB_php-5.2.8_Annotations.patch, NONE, 1.1 KOLAB_php-5.2.8_myrights.patch, NONE, 1.1 series, NONE, 1.1 Message-ID: <20090518084340.CAF0F60082D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php/patches/php-5.2.8 In directory doto:/tmp/cvs-serv20014/patches/php-5.2.8 Added Files: KOLAB_php-5.2.8_Annotations.patch KOLAB_php-5.2.8_myrights.patch series Log Message: Moved php patches from the server/patches dir into server/php. --- NEW FILE: KOLAB_php-5.2.8_Annotations.patch --- Provides get/set ANNOTATIONS support to PHP. [Version: 5.2.6] diff -r 4f78d3c907b7 ext/imap/php_imap.c --- a/ext/imap/php_imap.c Fri May 02 11:21:11 2008 +0200 +++ b/ext/imap/php_imap.c Mon Jun 09 10:35:56 2008 +0200 @@ -129,6 +129,7 @@ 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 @@ 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) @@ -416,6 +421,30 @@ #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 */ static PHP_GINIT_FUNCTION(imap) @@ -441,6 +470,7 @@ #if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001) imap_globals->quota_return = NIL; imap_globals->imap_acl_list = NIL; + imap_globals->imap_annotation_list = NIL; #endif imap_globals->gets_stream = NIL; } @@ -1097,6 +1127,117 @@ #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(); + if (!attributes) + RETURN_FALSE; + cur = attributes; + cur->text.data = (unsigned char *)cpystr (Z_STRVAL_PP(attr)); + cur->text.size = Z_STRLEN_PP(attr); + cur->next = NIL; + + 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 */ @@ -2707,6 +2848,42 @@ } /* }}} */ +/* {{{ 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); + } +} +/* }}} */ + /* {{{ proto object imap_status(resource stream_id, string mailbox, int options) Get status info from a mailbox */ PHP_FUNCTION(imap_status) diff -r 4f78d3c907b7 ext/imap/php_imap.h --- a/ext/imap/php_imap.h Fri May 02 11:21:11 2008 +0200 +++ b/ext/imap/php_imap.h Mon Jun 09 10:35:56 2008 +0200 @@ -152,6 +152,7 @@ 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_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_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 @@ 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) --- NEW FILE: KOLAB_php-5.2.8_myrights.patch --- diff -r 591dd6329e97 ext/imap/php_imap.c --- a/ext/imap/php_imap.c Mon Dec 22 06:35:22 2008 +0100 +++ b/ext/imap/php_imap.c Mon Dec 22 06:35:27 2008 +0100 @@ -157,6 +157,7 @@ PHP_FE(imap_set_quota, NULL) PHP_FE(imap_setacl, NULL) PHP_FE(imap_getacl, NULL) + PHP_FE(imap_myrights, NULL) #endif #if defined(HAVE_IMAP2005) PHP_FE(imap_setannotation, NULL) @@ -417,6 +418,20 @@ for(; alist; alist = alist->next) { add_assoc_stringl(IMAPG(imap_acl_list), alist->identifier, alist->rights, strlen(alist->rights), 1); } +} +/* }}} */ + +/* {{{ mail_myrights + * + * Mail MYRIGHTS callback + * Called via the mail_parameter function in c-client:src/c-client/mail.c + */ +void mail_myrights(MAILSTREAM *stream, char *mailbox, char *rights) +{ + TSRMLS_FETCH(); + + ZVAL_STRING(IMAPG(imap_acl_list), rights, 1) + } /* }}} */ @@ -1130,6 +1145,35 @@ } /* }}} */ +/* {{{ proto string imap_myrights(resource stream_id, string mailbox) + Gets my rights (ACL) for a given mailbox */ +PHP_FUNCTION(imap_myrights) +{ + zval **streamind, **mailbox; + pils *imap_le_struct; + + if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &streamind, &mailbox) == FAILURE) { + ZEND_WRONG_PARAM_COUNT(); + } + + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); + + convert_to_string_ex(mailbox); + + IMAPG(imap_acl_list) = return_value; + + /* set the callback for the GET_ACL function */ + mail_parameters(NIL, SET_MYRIGHTS, (void *) mail_myrights); + if(!imap_myrights(imap_le_struct->imap_stream, Z_STRVAL_PP(mailbox))) { + php_error(E_WARNING, "c-client imap_myrights failed"); + zval_dtor(return_value); + RETURN_FALSE; + } + + IMAPG(imap_acl_list) = NIL; +} +/* }}} */ + #endif /* HAVE_IMAP2000 || HAVE_IMAP2001 */ #if defined(HAVE_IMAP2005) diff -r 591dd6329e97 ext/imap/php_imap.h --- a/ext/imap/php_imap.h Mon Dec 22 06:35:22 2008 +0100 +++ b/ext/imap/php_imap.h Mon Dec 22 06:35:27 2008 +0100 @@ -178,6 +178,7 @@ PHP_FUNCTION(imap_set_quota); PHP_FUNCTION(imap_setacl); PHP_FUNCTION(imap_getacl); +PHP_FUNCTION(imap_myrights); #endif #if defined(HAVE_IMAP2005) PHP_FUNCTION(imap_setannotation); --- NEW FILE: series --- KOLAB_Annotations.patch KOLAB_myrights.patch From cvs at kolab.org Mon May 18 10:43:40 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:43:40 +0200 (CEST) Subject: gunnar: server/php/patches Makefile, NONE, 1.1 README_Annotations.patch, NONE, 1.1 README_myrights.patch, NONE, 1.1 hgrc, NONE, 1.1 Message-ID: <20090518084340.BB5A7600827@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/php/patches In directory doto:/tmp/cvs-serv20014/patches Added Files: Makefile README_Annotations.patch README_myrights.patch hgrc Log Message: Moved php patches from the server/patches dir into server/php. --- NEW FILE: Makefile --- # This is a very rough draft for updating a patch series using # mercurial queues. The Makefile could see some optimizations but for # the occasional upstream update it hopefully does fine. # # Author: G. Wrobel OLD_VERSION=5.2.8 NEW_VERSION=5.2.9 PN=php SOURCE_URL=http://www.php.net/distributions/ .PHONY: update update: @if [ -d $(PN)-$(NEW_VERSION) ]; then echo "Patches for the new version do already exist!" && exit 1; fi rm -rf tmp mkdir -p tmp cd tmp && wget $(SOURCE_URL)/$(PN)-$(OLD_VERSION).tar.bz2 cd tmp && tar xfj $(PN)-$(OLD_VERSION).tar.bz2 cd tmp/$(PN)-$(OLD_VERSION) && hg init && hg commit --addremove -m "$(PN)-$(OLD_VERSION)" cd tmp && hg clone $(PN)-$(OLD_VERSION) $(PN)-PATCHED cp hgrc tmp/$(PN)-PATCHED/.hg/ cd tmp/$(PN)-PATCHED && hg qinit cp $(PN)-$(OLD_VERSION)/series tmp/$(PN)-PATCHED/.hg/patches/ cd $(PN)-$(OLD_VERSION); \ for FL in KOLAB*; do \ cp $$FL ../tmp/$(PN)-PATCHED/.hg/patches/$${FL/$(PN)-$(OLD_VERSION)_/}; \ done cp $(PN)-$(OLD_VERSION)/series tmp/$(PN)-PATCHED/.hg/patches/ cd tmp/$(PN)-PATCHED && hg qpush -a && hg qpop -a cd tmp && hg clone $(PN)-$(OLD_VERSION) $(PN)-$(NEW_VERSION) cd tmp/$(PN)-$(NEW_VERSION) && hg locate -0 | xargs -0 rm cd tmp && wget $(SOURCE_URL)/$(PN)-$(NEW_VERSION).tar.bz2 cd tmp && tar xfj $(PN)-$(NEW_VERSION).tar.bz2 cd tmp/$(PN)-$(NEW_VERSION) && hg commit --addremove -m "$(PN)-$(NEW_VERSION)" cd tmp/$(PN)-PATCHED && hg pull ../$(PN)-$(NEW_VERSION) && hg update @echo @echo @echo "The patch series will be pushed now. If errors occur you will need to fix them" @echo "run \"hg qrefresh\" and continue with \"hg qpush\" until the full series applied" @echo "successfully. Finally you may move back to the current directory and run \"make patches\"" @echo @echo cd tmp/$(PN)-PATCHED && hg qpush -a .PHONY: patches patches: @if [ -d $(PN)-$(NEW_VERSION) ]; then echo "Patches for the new version do already exist!" && exit 1; fi mkdir $(PN)-$(NEW_VERSION) cd tmp/$(PN)-PATCHED/.hg/patches; \ for FL in KOLAB*; do \ cp $$FL ../../../../$(PN)-$(NEW_VERSION)/$${FL/KOLAB_/KOLAB_$(PN)-$(NEW_VERSION)_}; \ done cp tmp/$(PN)-PATCHED/.hg/patches/series $(PN)-$(NEW_VERSION)/ rm -rf tmp --- NEW FILE: README_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. --- NEW FILE: README_myrights.patch --- DESCRIPTION: This provides the imap_myrights function within PHP. This is needed for correct share handling within Horde-3.2. IMPACT: The Horde share system won't work without this patch. User won't be able to share folders. REFERENCES: Kolab bug tracker merge: https://intevation.de/roundup/kolab/merge77 Mercurial patch repository: http://hg.pardus.de/cgi-bin/hg.cgi/kolab/patches/php/summary HISTORY The patch has been submitted upstream: http://aspn.activestate.com/ASPN/Mail/Message/php-dev/3602193 --- NEW FILE: hgrc --- [extensions] hgext.mq = From cvs at kolab.org Mon May 18 10:46:01 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:46:01 +0200 (CEST) Subject: gunnar: server/patches/php README_Annotations.patch, 1.1, NONE README_myrights.patch, 1.1, NONE Message-ID: <20090518084601.7B06660082B@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/php In directory doto:/tmp/cvs-serv20186 Removed Files: README_Annotations.patch README_myrights.patch Log Message: Moved php patches from the server/patches dir into server/php. --- README_Annotations.patch DELETED --- --- README_myrights.patch DELETED --- From cvs at kolab.org Mon May 18 10:46:01 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:46:01 +0200 (CEST) Subject: gunnar: server/patches/php/php-5.2.4 KOLAB_Annotations.patch, 1.1, NONE Message-ID: <20090518084601.818A3600830@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/php/php-5.2.4 In directory doto:/tmp/cvs-serv20186/php-5.2.4 Removed Files: KOLAB_Annotations.patch Log Message: Moved php patches from the server/patches dir into server/php. --- KOLAB_Annotations.patch DELETED --- From cvs at kolab.org Mon May 18 10:46:01 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:46:01 +0200 (CEST) Subject: gunnar: server/patches/php/php-5.2.3 KOLAB_Annotations.patch, 1.1, NONE Message-ID: <20090518084601.7EC7A60082D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/php/php-5.2.3 In directory doto:/tmp/cvs-serv20186/php-5.2.3 Removed Files: KOLAB_Annotations.patch Log Message: Moved php patches from the server/patches dir into server/php. --- KOLAB_Annotations.patch DELETED --- From cvs at kolab.org Mon May 18 10:46:01 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:46:01 +0200 (CEST) Subject: gunnar: server/patches/php/php-5.2.5 KOLAB_Annotations.patch, 1.1, NONE Message-ID: <20090518084601.8449E600832@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/php/php-5.2.5 In directory doto:/tmp/cvs-serv20186/php-5.2.5 Removed Files: KOLAB_Annotations.patch Log Message: Moved php patches from the server/patches dir into server/php. --- KOLAB_Annotations.patch DELETED --- From cvs at kolab.org Mon May 18 10:46:01 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:46:01 +0200 (CEST) Subject: gunnar: server/patches/php/php-5.2.6 KOLAB_php-5.2.6_Annotations.patch, 1.2, NONE KOLAB_php-5.2.6_myrights.patch, 1.2, NONE Message-ID: <20090518084601.8897D600833@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/php/php-5.2.6 In directory doto:/tmp/cvs-serv20186/php-5.2.6 Removed Files: KOLAB_php-5.2.6_Annotations.patch KOLAB_php-5.2.6_myrights.patch Log Message: Moved php patches from the server/patches dir into server/php. --- KOLAB_php-5.2.6_Annotations.patch DELETED --- --- KOLAB_php-5.2.6_myrights.patch DELETED --- From cvs at kolab.org Mon May 18 10:46:01 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 10:46:01 +0200 (CEST) Subject: gunnar: server/patches/php/php-5.2.8 KOLAB_php-5.2.8_Annotations.patch, 1.1, NONE KOLAB_php-5.2.8_myrights.patch, 1.1, NONE Message-ID: <20090518084601.8A43E600834@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/patches/php/php-5.2.8 In directory doto:/tmp/cvs-serv20186/php-5.2.8 Removed Files: KOLAB_php-5.2.8_Annotations.patch KOLAB_php-5.2.8_myrights.patch Log Message: Moved php patches from the server/patches dir into server/php. --- KOLAB_php-5.2.8_Annotations.patch DELETED --- --- KOLAB_php-5.2.8_myrights.patch DELETED --- From cvs at kolab.org Mon May 18 18:12:30 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 18:12:30 +0200 (CEST) Subject: gunnar: server/pear/Horde_Browser .cvsignore, 1.1, 1.2 Horde_Browser.spec, 1.5, 1.6 Makefile, 1.3, 1.4 Message-ID: <20090518161230.AF43F600175@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Browser In directory doto:/tmp/cvs-serv4343/Horde_Browser Modified Files: .cvsignore Horde_Browser.spec Makefile Log Message: Started centralizing the PEAR package Makefile. This reduces the amount of Makefile code and should streamline the way we generate RPMs from PEAR packages. At the same time it should allow to deal with PEAR packages derived from CVS/git as we still need to cope with the bad package management Horde 3 provides. Index: .cvsignore =================================================================== RCS file: /kolabrepository/server/pear/Horde_Browser/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- .cvsignore 10 Sep 2008 10:04:49 -0000 1.1 +++ .cvsignore 18 May 2009 16:12:28 -0000 1.2 @@ -1 +1,3 @@ *.src.rpm +*.tgz +package.patch Index: Horde_Browser.spec =================================================================== RCS file: /kolabrepository/server/pear/Horde_Browser/Horde_Browser.spec,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Horde_Browser.spec 11 May 2009 19:38:46 -0000 1.5 +++ Horde_Browser.spec 18 May 2009 16:12:28 -0000 1.6 @@ -2,8 +2,14 @@ %define V_horde_pkgdir Browser %define V_horde_package Horde_Browser %define V_package Horde_Browser +%define V_package_origin VC-CVS +%define V_repo_commit HORDE_3_3_4 +%define V_repo_release 20090501 %define V_version 0.0.2dev20090501 -%define V_release 1 +%define V_release 20090518 +%define V_sourceurl http://pear.horde.org/get +%define V_php_lib_loc php +%define V_www_loc client # Package Information Name: %{V_package} @@ -17,7 +23,10 @@ Distribution: OpenPKG # List of Sources -Source: http://pear.horde.org/get/%{V_horde_package}-%{V_version}.tgz +Source: %{V_sourceurl}/%{V_package}-%{V_version}.tgz + +# List of patches +Patch0: package.patch # Build Info Prefix: %{l_prefix} @@ -25,15 +34,18 @@ #Pre requisites BuildPreReq: OpenPKG, openpkg >= 20070603 -BuildPreReq: php, php::with_pear = yes +BuildPreReq: php >= 5.2.8, php::with_pear = yes BuildPreReq: PEAR-Horde-Channel PreReq: OpenPKG, openpkg >= 20070603 -PreReq: php, php::with_pear = yes +PreReq: php >= 5.2.8, php::with_pear = yes PreReq: Horde_Util Provides: horde-framework-kolab = 3.2_rc3-20081209 Obsoletes: horde-framework-kolab < 3.2_rc3-20081209 +# Package options +%option with_chroot no + %description The Horde_Browser:: class provides an API for getting information about the current users browser and its capabilities. @@ -41,13 +53,28 @@ %prep %setup -n %{V_horde_package}-%{V_version} + if [ -n "`cat %{PATCH0}`" ]; then + %patch -p0 -P 0 + fi + + cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml + %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ - %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz - rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/php/{.filemap,.lock,.channels,.depdb,.depdblock} + %{l_prefix}/bin/pear -d www_dir="%{l_prefix}/var/kolab/www/%{V_www_loc}" \ + -d php_dir="%{l_prefix}/lib/%{V_php_lib_loc}" \ + install --offline --force --nodeps -P $RPM_BUILD_ROOT \ + $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz + rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc}/{.filemap,.lock,.channels,.depdb,.depdblock} + + # With chroot + %if "%{with_chroot}" == "yes" + %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib + cp -a $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib/ + %endif %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} Index: Makefile =================================================================== RCS file: /kolabrepository/server/pear/Horde_Browser/Makefile,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Makefile 11 May 2009 19:38:46 -0000 1.3 +++ Makefile 18 May 2009 16:12:28 -0000 1.4 @@ -1,155 +1 @@ -# If home is unset this Makefile assumes the Kolab server installation -# resides in /kolab. If this is not the case this Makefile must be -# called using -# -# HOME="/mykolabroot" make TARGET -# -ifeq "x$(HOME)" "x" - HOME = /kolab -endif - -# If HOME is set to /root it is likely that somebody is calling this -# Makefile as root user. In this case this Makefile assumes that the -# Kolab server installation resides in /kolab. -# -# In the (hopefully) unlikely event that somebody really installed the -# Kolab server in /root this Makefile will fail. -ifeq "x$(HOME)" "x/root" - HOME = /kolab -endif - -# Set the location of the rpm binary -ifeq "x$(RPM)" "x" - RPM = $(HOME)/bin/openpkg rpm -endif - -# Set the location for rpm source package installations -ifeq "x$(KOLABRPMSRC)" "x" - KOLABRPMSRC = $(HOME)/RPM/SRC -endif - -# Set the location for rpm packages -ifeq "x$(KOLABRPMPKG)" "x" - KOLABRPMPKG = $(HOME)/RPM/PKG -endif - -# Set the location for the rpm temporary directory -ifeq "x$(KOLABRPMTMP)" "x" - KOLABRPMTMP = $(HOME)/RPM/TMP -endif - -# Determine the suffix for binary packages on this system -ifeq "x$(PLATTAG)" "x" - PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) -endif - -# Determine the staging area for collecting new source rpms -ifeq "x$(STAGING)" "x" - STAGING = ../../stage -endif - -# Determine the horde package name from the *.spec file -HORDE_PKGDIR = $(shell grep "%define[ ]*V_horde_pkgdir" *.spec | sed -e "s/.*V_horde_pkgdir \([A-Za-z\-\_]*\).*/\1/") - -# Determine the horde package name from the *.spec file -HORDE_PACKAGE = $(shell grep "%define[ ]*V_horde_package" *.spec | sed -e "s/.*V_horde_package \([A-Za-z\-\_]*\).*/\1/") - -# Determine the package name from the *.spec file -PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") - -# Determine the package version from the *.spec file -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.a-z]*\).*/\1/") - -# Determine the release number from the *.spec file -RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") - -# Determine the download url for the PEAR package from the *.spec file -SOURCE_URL=$(shell grep "%define[ ]*V_sourceurl" *.spec | sed -e "s/.*V_sourceurl\s*\(.*\)/\1/") - -# Get the list of patches if there are any in this directory -PATCHES = $(shell ls *.patch 2> /dev/null) - -# Generate the full package name -SOURCE_0=$(HORDE_PACKAGE)-$(VERSION).tgz - -# Generate a list of extra files for the package -EXTRA=ChangeLog $(PATCHES) - -# CVS information -UPSTREAM=../upstream/cvs -REPO=framework -REPO_URL=:pserver:cvsread at anoncvs.horde.org:/repository -REPO_UP_CMD=cvs update -REPO_CO_CMD=cvs -d $(REPO_URL) co -REPO_SC_CMD=cvs update -r -COMMIT=HORDE_3_3_4 -RELTAG=20090501 -DATE=$(shell date +%Y-%m-%d) -PEAR=$(HOME)/bin/pear - -# Default target to generate the source rpm package -.PHONY: all -all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - -# Target for placing the source rpm in the staging area -.PHONY: dist -dist: all - test -d $(STAGING) || mkdir $(STAGING) - cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm $(STAGING) - -# Target for installing the binary rpm package in our current Kolab -# server installation -.PHONY: install -install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm - $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm - -# Target location for the CVS checkout -$(UPSTREAM): - mkdir -p $(UPSTREAM) - -# Target for generating the CVS checkout -.PHONY: $(UPSTREAM)/$(REPO) -$(UPSTREAM)/$(REPO): - if [ -e $(UPSTREAM)/$(REPO) ]; then \ - cd $(UPSTREAM)/$(REPO) && $(REPO_SC_CMD) "$(COMMIT)"; \ - else \ - @echo The password is 'horde'; \ - cvs -d $(REPO_URL) login; \ - cd $(UPSTREAM) && $(REPO_CO_CMD) $(REPO); \ - cd $(UPSTREAM)/$(REPO) && $(REPO_SC_CMD) "$(COMMIT)"; \ - fi; - -# Generate the source pacakge fron the CVS checkout -.PHONY: $(SOURCE_0) -$(SOURCE_0): $(UPSTREAM) $(UPSTREAM)/$(REPO) - rm -rf tmp - mkdir tmp - cp -r $(UPSTREAM)/$(REPO)/$(HORDE_PKGDIR) tmp/$(PACKAGE) - sed -i -e "/version/,+1 s#\(.*\)#\1dev$(RELTAG)#" tmp/$(PACKAGE)/package.xml - sed -i -e "/lead/,+1 s#.*#$(DATE)#" tmp/$(PACKAGE)/package.xml - $(PEAR) package tmp/$(PACKAGE)/package.xml - rm -rf tmp - -# Target for retrieving the source package -$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): $(SOURCE_0) - test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) - cp $(SOURCE_0) $(KOLABRPMSRC)/$(PACKAGE)/ - -# Target for preparing the source area and building the package -$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: Makefile $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) - cp $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE) - cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec - -# Target for fetching the source rpm into the current directory -$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm - cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . - -# Target for cleaning up the files that can be generated with this Makefile -.PHONY: clean -clean: - rm -rf $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm - rm -rf $(KOLABRPMSRC)/$(PACKAGE) - rm -rf $(KOLABRPMTMP)/$(PACKAGE)* - rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - rm -rf *~ - +include ../Horde.mk From cvs at kolab.org Mon May 18 18:12:30 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 18:12:30 +0200 (CEST) Subject: gunnar: server/pear .cvsignore,NONE,1.1 Horde.mk,NONE,1.1 Message-ID: <20090518161230.B1FD8600825@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear In directory doto:/tmp/cvs-serv4343 Added Files: .cvsignore Horde.mk Log Message: Started centralizing the PEAR package Makefile. This reduces the amount of Makefile code and should streamline the way we generate RPMs from PEAR packages. At the same time it should allow to deal with PEAR packages derived from CVS/git as we still need to cope with the bad package management Horde 3 provides. --- NEW FILE: .cvsignore --- upstream --- NEW FILE: Horde.mk --- # If home is unset this Makefile assumes the Kolab server installation # resides in /kolab. If this is not the case this Makefile must be # called using # # HOME="/mykolabroot" make TARGET # ifeq "x$(HOME)" "x" HOME = /kolab endif # If HOME is set to /root it is likely that somebody is calling this # Makefile as root user. In this case this Makefile assumes that the # Kolab server installation resides in /kolab. # # In the (hopefully) unlikely event that somebody really installed the # Kolab server in /root this Makefile will fail. ifeq "x$(HOME)" "x/root" HOME = /kolab endif # Set the location of the rpm binary ifeq "x$(RPM)" "x" RPM = $(HOME)/bin/openpkg rpm endif # Set the location for rpm source package installations ifeq "x$(KOLABRPMSRC)" "x" KOLABRPMSRC = $(HOME)/RPM/SRC endif # Set the location for rpm packages ifeq "x$(KOLABRPMPKG)" "x" KOLABRPMPKG = $(HOME)/RPM/PKG endif # Set the location for the rpm temporary directory ifeq "x$(KOLABRPMTMP)" "x" KOLABRPMTMP = $(HOME)/RPM/TMP endif # Determine the suffix for binary packages on this system ifeq "x$(PLATTAG)" "x" PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) endif # Determine the staging area for collecting new source rpms ifeq "x$(STAGING)" "x" STAGING = ../../stage endif # Determine the horde package name from the *.spec file HORDE_PKGDIR = $(shell grep "%define[ ]*V_horde_pkgdir" *.spec | sed -e "s/.*V_horde_pkgdir \([A-Za-z\-\_]*\).*/\1/") # Determine the horde package name from the *.spec file HORDE_PACKAGE = $(shell grep "%define[ ]*V_horde_package" *.spec | sed -e "s/.*V_horde_package \([A-Za-z\-\_]*\).*/\1/") # Determine the package origin from the *.spec file PACKAGE_ORIGIN = $(shell grep "%define[ ]*V_package_origin" *.spec | sed -e "s/.*V_package_origin \([A-Z]*\).*/\1/") # Determine the package version control type from the *.spec file PACKAGE_VC = $(shell grep "%define[ ]*V_package_origin" *.spec | sed -e "s/.*V_package_origin VC-\([A-Z]*\).*/\1/") # Determine the package name from the *.spec file PACKAGE = $(shell grep "%define[ ]*V_package " *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") # Determine the package version from the *.spec file VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.a-z]*\).*/\1/") # Determine the release number from the *.spec file RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") # Determine the exact commit that should be retrieved from the repository COMMIT = $(shell grep "%define[ ]*V_repo_commit" *.spec | sed -e "s/.*V_repo_commit\s*\([A-Za-z0-9_]*\).*/\1/") # Determine the release tag a package derived from a repository checkout should get RELTAG = $(shell grep "%define[ ]*V_repo_release" *.spec | sed -e "s/.*V_repo_release\s*\([0-9]*\).*/\1/") # Determine the download url for the PEAR package from the *.spec file SOURCE_URL=$(shell grep "%define[ ]*V_sourceurl" *.spec | sed -e "s/.*V_sourceurl\s*\(.*\)/\1/") # Generate the full package name SOURCE_0=$(HORDE_PACKAGE)-$(VERSION).tgz # Get the list of patches if there are any in the patch directory PATCHES = $(shell ls patches/$(PACKAGE)-$(VERSION)/*.patch 2> /dev/null) # Generate a list of extra files for the package EXTRA=ChangeLog package.patch # CVS information UPSTREAM=../upstream/cvs CVS_REPO=framework CVS_REPO_URL=:pserver:cvsread at anoncvs.horde.org:/repository CVS_REPO_UP_CMD=cvs update CVS_REPO_CO_CMD=cvs -d $(CVS_REPO_URL) co CVS_REPO_SC_CMD=cvs update -r DATE=$(shell date +%Y-%m-%d) PEAR=$(HOME)/bin/pear # Default target to generate the source rpm package .PHONY: all all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm # Target for placing the source rpm in the staging area .PHONY: dist dist: all test -d $(STAGING) || mkdir $(STAGING) cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm $(STAGING) # Target for installing the binary rpm package in our current Kolab # server installation .PHONY: install install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm # Target location for the repository checkout $(UPSTREAM): mkdir -p $(UPSTREAM) # Target for generating the repository checkout ifeq ($(PACKAGE_VC),CVS) .PHONY: $(UPSTREAM)/$(CVS_REPO) $(UPSTREAM)/$(CVS_REPO): if [ -e $(UPSTREAM)/$(CVS_REPO) ]; then \ cd $(UPSTREAM)/$(CVS_REPO) && $(CVS_REPO_SC_CMD) "$(COMMIT)"; \ else \ @echo The password is 'horde'; \ cvs -d $(CVS_REPO_URL) login; \ cd $(UPSTREAM) && $(CVS_REPO_CO_CMD) $(CVS_REPO); \ cd $(UPSTREAM)/$(CVS_REPO) && $(CVS_REPO_SC_CMD) "$(COMMIT)"; \ fi; else ifeq ($(PACKAGE_VC),GIT) .PHONY: $(UPSTREAM)/$(GIT_REPO) $(UPSTREAM)/$(GIT_REPO): if [ -e $(UPSTREAM)/$(GIT_REPO) ]; then \ cd $(UPSTREAM)/$(GIT_REPO) && $(GIT_REPO_SC_CMD) "$(COMMIT)"; \ else \ cvs -d $(GIT_REPO_URL) login; \ cd $(UPSTREAM) && $(GIT_REPO_CO_CMD) $(GIT_REPO); \ cd $(UPSTREAM)/$(GIT_REPO) && $(GIT_REPO_SC_CMD) "$(COMMIT)"; \ fi; endif endif # Generate the source package from the repository checkout ifeq ($(PACKAGE_VC),CVS) tmp/$(PACKAGE): $(UPSTREAM) $(UPSTREAM)/$(CVS_REPO) rm -rf tmp mkdir tmp cp -r $(UPSTREAM)/$(CVS_REPO)/$(HORDE_PKGDIR) tmp/$(PACKAGE) else ifeq ($(PACKAGE_VC),GIT) tmp/$(PACKAGE): $(UPSTREAM) $(UPSTREAM)/$(GIT_REPO) rm -rf tmp mkdir tmp cp -r $(UPSTREAM)/$(GIT_REPO)/$(HORDE_PKGDIR) tmp/$(PACKAGE) endif endif # Short name for the source package as a target for the command line. .PHONY:source source: $(SOURCE_0) # Target for retrieving the source package ifeq ($(PACKAGE_ORIGIN),VC) $(SOURCE_0): tmp/$(PACKAGE) sed -i -e "/version/,+1 s#\(.*\)#\1dev$(RELTAG)#" tmp/$(PACKAGE)/package.xml sed -i -e "/lead/,+1 s#.*#$(DATE)#" tmp/$(PACKAGE)/package.xml $(PEAR) package tmp/$(PACKAGE)/package.xml rm -rf tmp else $(SOURCE_0): wget -c "$(SOURCE_URL)/$(SOURCE_0)" endif # Target for the src rpm directory. $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): $(SOURCE_0) test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) cp $(SOURCE_0) $(KOLABRPMSRC)/$(PACKAGE)/ # Prepare the patch for the package. package.patch: $(PATCHES) echo > package.patch for PATCH in $(PATCHES); \ do \ cat $$PATCH >> package.patch; \ done # Target for preparing the source area and building the package $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: Makefile $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) cp $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE) cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec # Target for fetching the source rpm into the current directory $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . # Target for cleaning up the files that can be generated with this Makefile .PHONY: clean clean: rm -rf $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm rm -rf $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm rm -rf $(KOLABRPMSRC)/$(PACKAGE) rm -rf $(KOLABRPMTMP)/$(PACKAGE)* rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm rm -rf $(SOURCE_0) rm -rf *~ rm -rf package.patch From cvs at kolab.org Mon May 18 19:21:13 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 19:21:13 +0200 (CEST) Subject: bh: utils/testing create_ldap_users.py,1.5,1.6 Message-ID: <20090518172113.5E452600825@lists.intevation.de> Author: bh Update of /kolabrepository/utils/testing In directory doto:/tmp/cvs-serv6261/testing Modified Files: create_ldap_users.py Log Message: Honor offset properly when creating groups. Index: create_ldap_users.py =================================================================== RCS file: /kolabrepository/utils/testing/create_ldap_users.py,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- create_ldap_users.py 16 Feb 2009 15:50:16 -0000 1.5 +++ create_ldap_users.py 18 May 2009 17:21:11 -0000 1.6 @@ -110,15 +110,13 @@ 'objectClass': ['top', 'groupOfNames', 'kolabGroupOfNames'], } - users = [("testgrp%d@%s" % (n, mail_domain), "auto", "autotest%d" % n) - for n in range(offset, offset + num_entries)] - for n in range(num_entries): - mail = "testgrp%d@%s" % (n, mail_domain) + groups = ["testgrp%d@%s" % (n, mail_domain) + for n in range(offset, offset + num_entries)] + for mailuid in groups: descr = common_attrs.copy() - descr["cn"] = [mail] - descr["mail"] = [mail] + descr["cn"] = descr["mail"] = [mailuid] descr["member"] = [member] - dn = "cn=" + mail + "," + base_dn + dn = "cn=" + mailuid + "," + base_dn print dn, descr print conn.add_s(dn, ldap.modlist.addModlist(descr)) From cvs at kolab.org Mon May 18 19:23:40 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 19:23:40 +0200 (CEST) Subject: bh: utils/testing create_ldap_users.py,1.6,1.7 Message-ID: <20090518172340.BB364600828@lists.intevation.de> Author: bh Update of /kolabrepository/utils/testing In directory doto:/tmp/cvs-serv6411/testing Modified Files: create_ldap_users.py Log Message: Fix some problems with command line argument handling: --offset wasn't accepted by getopt even though the later code would have recognizedit the check for --member accidentally used substring matching Index: create_ldap_users.py =================================================================== RCS file: /kolabrepository/utils/testing/create_ldap_users.py,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- create_ldap_users.py 18 May 2009 17:21:11 -0000 1.6 +++ create_ldap_users.py 18 May 2009 17:23:38 -0000 1.7 @@ -138,7 +138,7 @@ offset = 0 opts, args = getopt.getopt(sys.argv[1:], 'h:p:u:n:o:t:', - ["host=", "port=", "user=", "num=", + ["host=", "port=", "user=", "num=", "offset=", "type=", "member="]) for optchar, value in opts: if optchar in ("-h", "--host"): @@ -151,7 +151,7 @@ offset = int(value) elif optchar in ("-t", "--type"): entry_type = value - elif optchar in "--member": + elif optchar == "--member": # dn of the initial member. groups may not be empty in Kolab group_member = value elif optchar in ("-n", "--num"): From cvs at kolab.org Mon May 18 19:34:06 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 19:34:06 +0200 (CEST) Subject: gunnar: server/pear/PEAR-Horde-Channel ChangeLog, 1.4, 1.5 Makefile, 1.3, 1.4 PEAR-Horde-Channel.spec, 1.7, 1.8 Message-ID: <20090518173406.0FDA0600825@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/PEAR-Horde-Channel In directory doto:/tmp/cvs-serv6692 Modified Files: ChangeLog Makefile PEAR-Horde-Channel.spec Log Message: Prepare the channel installation for Horde 4 packages. Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/pear/PEAR-Horde-Channel/ChangeLog,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ChangeLog 19 Jan 2009 16:35:53 -0000 1.4 +++ ChangeLog 18 May 2009 17:34:04 -0000 1.5 @@ -1,3 +1,8 @@ +2009-05-18 Gunnar Wrobel

    + + * PEAR-Horde-Channel.spec: Prepare the channel installation for + Horde 4 packages. + 2009-01-19 Thomas Arendsen Hein * Makefile: Fix build after kolab/issue3315. Index: Makefile =================================================================== RCS file: /kolabrepository/server/pear/PEAR-Horde-Channel/Makefile,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Makefile 19 Jan 2009 16:35:53 -0000 1.3 +++ Makefile 18 May 2009 17:34:04 -0000 1.4 @@ -1,15 +1,4 @@ -ifeq "x$(RPM)" "x" - RPM = $(HOME)/bin/openpkg rpm -endif -ifeq "x$(KOLABRPMSRC)" "x" - KOLABRPMSRC = $(HOME)/RPM/SRC -endif -ifeq "x$(KOLABRPMPKG)" "x" - KOLABRPMPKG = $(HOME)/RPM/PKG -endif -ifeq "x$(KOLABRPMTMP)" "x" - KOLABRPMTMP = $(HOME)/RPM/TMP -endif +include ../Base.mk PACKAGE = PEAR-Horde-Channel VERSION = $(shell grep "^Version:" *.spec | sed -e "s/^Version:\s*\([0-9.]*\).*/\1/") @@ -24,11 +13,31 @@ dist: all cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm ../../stage/ +# Target for installing the binary rpm package in our current Kolab +# server installation +.PHONY: install +install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + .PHONY: clean clean: rm -rf /kolab/RPM/TMP/$(PACKAGE) rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm rm -rf *~ + +# Target for the src rpm directory. +$(KOLABRPMSRC)/$(PACKAGE): + test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) + +# Target for preparing the source area and building the package +$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: $(KOLABRPMSRC)/$(PACKAGE) Makefile $(PACKAGE).spec $(EXTRA) + cp $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE) + cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec + +# Target for fetching the source rpm into the current directory +$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm + cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . + $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec $(EXTRA) test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) Index: PEAR-Horde-Channel.spec =================================================================== RCS file: /kolabrepository/server/pear/PEAR-Horde-Channel/PEAR-Horde-Channel.spec,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- PEAR-Horde-Channel.spec 19 Jan 2009 16:35:53 -0000 1.7 +++ PEAR-Horde-Channel.spec 18 May 2009 17:34:04 -0000 1.8 @@ -46,11 +46,20 @@ env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off" \ %{l_prefix}/bin/pear -d php_dir=%{l_prefix}/lib/php channel-update %{pear_xmldir}/pear.horde.org.xml || \ echo "Could not update channel pear.horde.org!" && sleep 1 +env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off" \ + %{l_prefix}/bin/pear -d php_dir=%{l_prefix}/lib/php-h4 channel-add %{pear_xmldir}/pear.horde.org.xml || \ + echo "Channel already exists!" && sleep 1 +env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off" \ + %{l_prefix}/bin/pear -d php_dir=%{l_prefix}/lib/php-h4 channel-update %{pear_xmldir}/pear.horde.org.xml || \ + echo "Could not update channel pear.horde.org!" && sleep 1 rm -rf %{l_prefix}/RPM/TMP/pear %postun env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off" \ %{l_prefix}/bin/pear -d php_dir=%{l_prefix}/lib/php channel-delete pear.horde.org || \ + echo "Could not delete channel pear.horde.org!" && sleep 1 +env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off" \ + %{l_prefix}/bin/pear -d php_dir=%{l_prefix}/lib/php-h4 channel-delete pear.horde.org || \ echo "Could not delete channel pear.horde.org!" && sleep 1 rm -rf %{l_prefix}/RPM/TMP/pear From cvs at kolab.org Mon May 18 19:35:06 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 19:35:06 +0200 (CEST) Subject: gunnar: server/pear/Horde_Browser Horde_Browser.spec,1.6,1.7 Message-ID: <20090518173506.4358B600826@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Browser In directory doto:/tmp/cvs-serv6779 Modified Files: Horde_Browser.spec Log Message: Fix the source url. Index: Horde_Browser.spec =================================================================== RCS file: /kolabrepository/server/pear/Horde_Browser/Horde_Browser.spec,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Horde_Browser.spec 18 May 2009 16:12:28 -0000 1.6 +++ Horde_Browser.spec 18 May 2009 17:35:04 -0000 1.7 @@ -23,7 +23,7 @@ Distribution: OpenPKG # List of Sources -Source: %{V_sourceurl}/%{V_package}-%{V_version}.tgz +Source: %{V_sourceurl}/%{V_horde_package}-%{V_version}.tgz # List of patches Patch0: package.patch From cvs at kolab.org Mon May 18 19:36:04 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 19:36:04 +0200 (CEST) Subject: gunnar: server/pear Base.mk,NONE,1.1 Message-ID: <20090518173604.F0913600828@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear In directory doto:/tmp/cvs-serv6826 Added Files: Base.mk Log Message: Add another Makefile with basic variables for inclusion. --- NEW FILE: Base.mk --- # If home is unset this Makefile assumes the Kolab server installation # resides in /kolab. If this is not the case this Makefile must be # called using # # HOME="/mykolabroot" make TARGET # ifeq "x$(HOME)" "x" HOME = /kolab endif # If HOME is set to /root it is likely that somebody is calling this # Makefile as root user. In this case this Makefile assumes that the # Kolab server installation resides in /kolab. # # In the (hopefully) unlikely event that somebody really installed the # Kolab server in /root this Makefile will fail. ifeq "x$(HOME)" "x/root" HOME = /kolab endif # Set the location of the rpm binary ifeq "x$(RPM)" "x" RPM = $(HOME)/bin/openpkg rpm endif # Set the location for rpm source package installations ifeq "x$(KOLABRPMSRC)" "x" KOLABRPMSRC = $(HOME)/RPM/SRC endif # Set the location for rpm packages ifeq "x$(KOLABRPMPKG)" "x" KOLABRPMPKG = $(HOME)/RPM/PKG endif # Set the location for the rpm temporary directory ifeq "x$(KOLABRPMTMP)" "x" KOLABRPMTMP = $(HOME)/RPM/TMP endif # Determine the suffix for binary packages on this system ifeq "x$(PLATTAG)" "x" PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) endif From cvs at kolab.org Mon May 18 19:36:22 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 19:36:22 +0200 (CEST) Subject: gunnar: server/pear Horde.mk,1.1,1.2 Message-ID: <20090518173622.D3FD760082B@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear In directory doto:/tmp/cvs-serv6840 Modified Files: Horde.mk Log Message: Enable git snapshots for Horde packages. Index: Horde.mk =================================================================== RCS file: /kolabrepository/server/pear/Horde.mk,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Horde.mk 18 May 2009 16:12:28 -0000 1.1 +++ Horde.mk 18 May 2009 17:36:20 -0000 1.2 @@ -1,55 +1,15 @@ -# If home is unset this Makefile assumes the Kolab server installation -# resides in /kolab. If this is not the case this Makefile must be -# called using -# -# HOME="/mykolabroot" make TARGET -# -ifeq "x$(HOME)" "x" - HOME = /kolab -endif - -# If HOME is set to /root it is likely that somebody is calling this -# Makefile as root user. In this case this Makefile assumes that the -# Kolab server installation resides in /kolab. -# -# In the (hopefully) unlikely event that somebody really installed the -# Kolab server in /root this Makefile will fail. -ifeq "x$(HOME)" "x/root" - HOME = /kolab -endif - -# Set the location of the rpm binary -ifeq "x$(RPM)" "x" - RPM = $(HOME)/bin/openpkg rpm -endif - -# Set the location for rpm source package installations -ifeq "x$(KOLABRPMSRC)" "x" - KOLABRPMSRC = $(HOME)/RPM/SRC -endif - -# Set the location for rpm packages -ifeq "x$(KOLABRPMPKG)" "x" - KOLABRPMPKG = $(HOME)/RPM/PKG -endif - -# Set the location for the rpm temporary directory -ifeq "x$(KOLABRPMTMP)" "x" - KOLABRPMTMP = $(HOME)/RPM/TMP -endif - -# Determine the suffix for binary packages on this system -ifeq "x$(PLATTAG)" "x" - PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) -endif +include ../Base.mk # Determine the staging area for collecting new source rpms ifeq "x$(STAGING)" "x" STAGING = ../../stage endif +# Location of the PEAR script +PEAR=$(HOME)/bin/pear + # Determine the horde package name from the *.spec file -HORDE_PKGDIR = $(shell grep "%define[ ]*V_horde_pkgdir" *.spec | sed -e "s/.*V_horde_pkgdir \([A-Za-z\-\_]*\).*/\1/") +HORDE_PKGDIR = $(shell grep "%define[ ]*V_horde_pkgdir" *.spec | sed -e "s/.*V_horde_pkgdir \([A-Za-z\-\_]*\)\s*/\1/") # Determine the horde package name from the *.spec file HORDE_PACKAGE = $(shell grep "%define[ ]*V_horde_package" *.spec | sed -e "s/.*V_horde_package \([A-Za-z\-\_]*\).*/\1/") @@ -61,7 +21,7 @@ PACKAGE_VC = $(shell grep "%define[ ]*V_package_origin" *.spec | sed -e "s/.*V_package_origin VC-\([A-Z]*\).*/\1/") # Determine the package name from the *.spec file -PACKAGE = $(shell grep "%define[ ]*V_package " *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") +PACKAGE = $(shell grep "%define[ ]*V_package " *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\)\s*/\1/") # Determine the package version from the *.spec file VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.a-z]*\).*/\1/") @@ -87,15 +47,31 @@ # Generate a list of extra files for the package EXTRA=ChangeLog package.patch -# CVS information +# Temporary repository checkout location +ifeq ($(PACKAGE_VC),CVS) UPSTREAM=../upstream/cvs +else +ifeq ($(PACKAGE_VC),GIT) +UPSTREAM=../upstream/git +endif +endif + +# The current date +DATE=$(shell date +%Y-%m-%d) + +# CVS information CVS_REPO=framework CVS_REPO_URL=:pserver:cvsread at anoncvs.horde.org:/repository CVS_REPO_UP_CMD=cvs update CVS_REPO_CO_CMD=cvs -d $(CVS_REPO_URL) co CVS_REPO_SC_CMD=cvs update -r -DATE=$(shell date +%Y-%m-%d) -PEAR=$(HOME)/bin/pear + +# GIT information +GIT_REPO=horde +GIT_REPO_URL=git://dev.horde.org/horde/git/$(GIT_REPO) +GIT_REPO_UP_CMD=git pull origin master +GIT_REPO_CO_CMD=git clone +GIT_REPO_SC_CMD=git checkout # Default target to generate the source rpm package .PHONY: all @@ -121,11 +97,11 @@ ifeq ($(PACKAGE_VC),CVS) .PHONY: $(UPSTREAM)/$(CVS_REPO) $(UPSTREAM)/$(CVS_REPO): - if [ -e $(UPSTREAM)/$(CVS_REPO) ]; then \ + if [ -e $(UPSTREAM)/$(CVS_REPO) ]; then \ cd $(UPSTREAM)/$(CVS_REPO) && $(CVS_REPO_SC_CMD) "$(COMMIT)"; \ - else \ - @echo The password is 'horde'; \ - cvs -d $(CVS_REPO_URL) login; \ + else \ + @echo The password is 'horde'; \ + cvs -d $(CVS_REPO_URL) login; \ cd $(UPSTREAM) && $(CVS_REPO_CO_CMD) $(CVS_REPO); \ cd $(UPSTREAM)/$(CVS_REPO) && $(CVS_REPO_SC_CMD) "$(COMMIT)"; \ fi; @@ -133,12 +109,10 @@ ifeq ($(PACKAGE_VC),GIT) .PHONY: $(UPSTREAM)/$(GIT_REPO) $(UPSTREAM)/$(GIT_REPO): - if [ -e $(UPSTREAM)/$(GIT_REPO) ]; then \ - cd $(UPSTREAM)/$(GIT_REPO) && $(GIT_REPO_SC_CMD) "$(COMMIT)"; \ + if [ -e $(UPSTREAM)/$(GIT_REPO) ]; then \ + cd $(UPSTREAM)/$(GIT_REPO) && $(GIT_REPO_UP_CMD); \ else \ - cvs -d $(GIT_REPO_URL) login; \ - cd $(UPSTREAM) && $(GIT_REPO_CO_CMD) $(GIT_REPO); \ - cd $(UPSTREAM)/$(GIT_REPO) && $(GIT_REPO_SC_CMD) "$(COMMIT)"; \ + cd $(UPSTREAM) && $(GIT_REPO_CO_CMD) $(GIT_REPO_URL); \ fi; endif endif @@ -175,8 +149,11 @@ endif # Target for the src rpm directory. -$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): $(SOURCE_0) +$(KOLABRPMSRC)/$(PACKAGE): test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) + +# Target for the source file in the src rpm directory. +$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): $(KOLABRPMSRC)/$(PACKAGE) $(SOURCE_0) cp $(SOURCE_0) $(KOLABRPMSRC)/$(PACKAGE)/ # Prepare the patch for the package. From cvs at kolab.org Mon May 18 19:36:42 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 19:36:42 +0200 (CEST) Subject: gunnar: server/pear/Horde_Browser-H4 - New directory Message-ID: <20090518173642.643CF60082D@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Browser-H4 In directory doto:/tmp/cvs-serv6879/Horde_Browser-H4 Log Message: Directory /kolabrepository/server/pear/Horde_Browser-H4 added to the repository From cvs at kolab.org Mon May 18 19:37:54 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 19:37:54 +0200 (CEST) Subject: gunnar: server/pear/Horde_Browser-H4 .cvsignore, NONE, 1.1 ChangeLog, NONE, 1.1 Horde_Browser-H4.spec, NONE, 1.1 Makefile, NONE, 1.1 Message-ID: <20090518173754.1873560082F@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Browser-H4 In directory doto:/tmp/cvs-serv6951 Added Files: .cvsignore ChangeLog Horde_Browser-H4.spec Makefile Log Message: Added a first Horde 4 package to Kolab CVS. --- NEW FILE: .cvsignore --- *.src.rpm *.tgz package.patch --- NEW FILE: ChangeLog --- 2009-05-18 Gunnar Wrobel

    * Horde_Browser-H4.spec: Added package to Kolab CVS. --- NEW FILE: Horde_Browser-H4.spec --- # Variables %define V_horde_pkgdir framework/Browser %define V_horde_package Browser %define V_package Horde_Browser-H4 %define V_package_origin VC-GIT %define V_repo_commit 4ae1f5f04ea6229e3a714e8c2e946ce1dc13a10a %define V_repo_release 20090427 %define V_version 0.1.0dev20090427 %define V_release 20090518 %define V_sourceurl http://pear.horde.org/get %define V_php_lib_loc php-h4 %define V_www_loc client # Package Information Name: %{V_package} Summary: Horde Browser API URL: http://pear.horde.org/index.php?package=%{V_package} Packager: Gunnar Wrobel (p at rdus) Version: %{V_version} Release: %{V_release} License: LGPL Group: Development/Libraries Distribution: OpenPKG # List of Sources Source: %{V_sourceurl}/%{V_horde_package}-%{V_version}.tgz # List of patches Patch0: package.patch # Build Info Prefix: %{l_prefix} BuildRoot: %{l_buildroot} #Pre requisites BuildPreReq: OpenPKG, openpkg >= 20070603 BuildPreReq: php >= 5.2.8, php::with_pear = yes BuildPreReq: PEAR-Horde-Channel PreReq: OpenPKG, openpkg >= 20070603 PreReq: php >= 5.2.8, php::with_pear = yes PreReq: Horde_Util Provides: horde-framework-kolab = 3.2_rc3-20081209 Obsoletes: horde-framework-kolab < 3.2_rc3-20081209 # Package options %option with_chroot no %description The Horde_Browser:: class provides an API for getting information about the current users browser and its capabilities. %prep %setup -n %{V_horde_package}-%{V_version} if [ -n "`cat %{PATCH0}`" ]; then %patch -p0 -P 0 fi cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ %{l_prefix}/bin/pear -d www_dir="%{l_prefix}/var/kolab/www/%{V_www_loc}" \ -d php_dir="%{l_prefix}/lib/%{V_php_lib_loc}" \ install --offline --force --nodeps -P $RPM_BUILD_ROOT \ $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc}/{.filemap,.lock,.channels,.depdb,.depdblock} # With chroot %if "%{with_chroot}" == "yes" %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib cp -a $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib/ %endif %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} %clean rm -rf $RPM_BUILD_ROOT %files -f files --- NEW FILE: Makefile --- include ../Horde.mk From cvs at kolab.org Mon May 18 20:30:38 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 20:30:38 +0200 (CEST) Subject: gunnar: server/pear/Horde_Util .cvsignore, 1.1, 1.2 Horde_Util.spec, 1.7, 1.8 Makefile, 1.5, 1.6 Message-ID: <20090518183038.C657C600828@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Util In directory doto:/tmp/cvs-serv11093 Modified Files: .cvsignore Horde_Util.spec Makefile Log Message: Adapt to the new packaging mechanism. Index: .cvsignore =================================================================== RCS file: /kolabrepository/server/pear/Horde_Util/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- .cvsignore 10 Sep 2008 09:55:48 -0000 1.1 +++ .cvsignore 18 May 2009 18:30:36 -0000 1.2 @@ -1 +1,3 @@ *.src.rpm +*.tgz +package.patch Index: Horde_Util.spec =================================================================== RCS file: /kolabrepository/server/pear/Horde_Util/Horde_Util.spec,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Horde_Util.spec 11 May 2009 15:58:14 -0000 1.7 +++ Horde_Util.spec 18 May 2009 18:30:36 -0000 1.8 @@ -2,8 +2,14 @@ %define V_horde_pkgdir Util %define V_horde_package Util %define V_package Horde_Util +%define V_package_origin VC-CVS +%define V_repo_commit HORDE_3_3_4 +%define V_repo_release 20090501 %define V_version 0.1.0dev20090501 -%define V_release 1 +%define V_release 20090518 +%define V_sourceurl http://pear.horde.org/get +%define V_php_lib_loc php +%define V_www_loc client # Package Information Name: %{V_package} @@ -17,7 +23,10 @@ Distribution: OpenPKG # List of Sources -Source: http://pear.horde.org/get/%{V_horde_package}-%{V_version}.tgz +Source: %{V_sourceurl}/%{V_horde_package}-%{V_version}.tgz + +# List of patches +Patch0: package.patch # Build Info Prefix: %{l_prefix} @@ -33,19 +42,37 @@ Provides: horde-framework-kolab = 3.2_rc3-20081209 Obsoletes: horde-framework-kolab < 3.2_rc3-20081209 +# Package options +%option with_chroot no + %description These classes provide functionality useful for all kind of applications. %prep %setup -n %{V_horde_package}-%{V_version} + if [ -n "`cat %{PATCH0}`" ]; then + %patch -p0 -P 0 + fi + + cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml + %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ - %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz - rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/php/{.filemap,.lock,.channels,.depdb,.depdblock} + %{l_prefix}/bin/pear -d www_dir="%{l_prefix}/var/kolab/www/%{V_www_loc}" \ + -d php_dir="%{l_prefix}/lib/%{V_php_lib_loc}" \ + install --offline --force --nodeps -P $RPM_BUILD_ROOT \ + $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz + rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc}/{.filemap,.lock,.channels,.depdb,.depdblock} + + # With chroot + %if "%{with_chroot}" == "yes" + %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib + cp -a $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib/ + %endif %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} Index: Makefile =================================================================== RCS file: /kolabrepository/server/pear/Horde_Util/Makefile,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Makefile 11 May 2009 15:58:14 -0000 1.5 +++ Makefile 18 May 2009 18:30:36 -0000 1.6 @@ -1,155 +1 @@ -# If home is unset this Makefile assumes the Kolab server installation -# resides in /kolab. If this is not the case this Makefile must be -# called using -# -# HOME="/mykolabroot" make TARGET -# -ifeq "x$(HOME)" "x" - HOME = /kolab -endif - -# If HOME is set to /root it is likely that somebody is calling this -# Makefile as root user. In this case this Makefile assumes that the -# Kolab server installation resides in /kolab. -# -# In the (hopefully) unlikely event that somebody really installed the -# Kolab server in /root this Makefile will fail. -ifeq "x$(HOME)" "x/root" - HOME = /kolab -endif - -# Set the location of the rpm binary -ifeq "x$(RPM)" "x" - RPM = $(HOME)/bin/openpkg rpm -endif - -# Set the location for rpm source package installations -ifeq "x$(KOLABRPMSRC)" "x" - KOLABRPMSRC = $(HOME)/RPM/SRC -endif - -# Set the location for rpm packages -ifeq "x$(KOLABRPMPKG)" "x" - KOLABRPMPKG = $(HOME)/RPM/PKG -endif - -# Set the location for the rpm temporary directory -ifeq "x$(KOLABRPMTMP)" "x" - KOLABRPMTMP = $(HOME)/RPM/TMP -endif - -# Determine the suffix for binary packages on this system -ifeq "x$(PLATTAG)" "x" - PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) -endif - -# Determine the staging area for collecting new source rpms -ifeq "x$(STAGING)" "x" - STAGING = ../../stage -endif - -# Determine the horde package name from the *.spec file -HORDE_PKGDIR = $(shell grep "%define[ ]*V_horde_pkgdir" *.spec | sed -e "s/.*V_horde_pkgdir \([A-Za-z\-\_]*\).*/\1/") - -# Determine the horde package name from the *.spec file -HORDE_PACKAGE = $(shell grep "%define[ ]*V_horde_package" *.spec | sed -e "s/.*V_horde_package \([A-Za-z\-\_]*\).*/\1/") - -# Determine the package name from the *.spec file -PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") - -# Determine the package version from the *.spec file -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.a-z]*\).*/\1/") - -# Determine the release number from the *.spec file -RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") - -# Determine the download url for the PEAR package from the *.spec file -SOURCE_URL=$(shell grep "%define[ ]*V_sourceurl" *.spec | sed -e "s/.*V_sourceurl\s*\(.*\)/\1/") - -# Get the list of patches if there are any in this directory -PATCHES = $(shell ls *.patch 2> /dev/null) - -# Generate the full package name -SOURCE_0=$(HORDE_PACKAGE)-$(VERSION).tgz - -# Generate a list of extra files for the package -EXTRA=ChangeLog $(PATCHES) - -# CVS information -UPSTREAM=../upstream/cvs -REPO=framework -REPO_URL=:pserver:cvsread at anoncvs.horde.org:/repository -REPO_UP_CMD=cvs update -REPO_CO_CMD=cvs -d $(REPO_URL) co -REPO_SC_CMD=cvs update -r -COMMIT=HORDE_3_3_4 -RELTAG=20090501 -DATE=$(shell date +%Y-%m-%d) -PEAR=$(HOME)/bin/pear - -# Default target to generate the source rpm package -.PHONY: all -all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - -# Target for placing the source rpm in the staging area -.PHONY: dist -dist: all - test -d $(STAGING) || mkdir $(STAGING) - cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm $(STAGING) - -# Target for installing the binary rpm package in our current Kolab -# server installation -.PHONY: install -install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm - $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm - -# Target location for the CVS checkout -$(UPSTREAM): - mkdir -p $(UPSTREAM) - -# Target for generating the CVS checkout -.PHONY: $(UPSTREAM)/$(REPO) -$(UPSTREAM)/$(REPO): - if [ -e $(UPSTREAM)/$(REPO) ]; then \ - cd $(UPSTREAM)/$(REPO) && $(REPO_SC_CMD) "$(COMMIT)"; \ - else \ - @echo The password is 'horde'; \ - cvs -d $(REPO_URL) login; \ - cd $(UPSTREAM) && $(REPO_CO_CMD) $(REPO); \ - cd $(UPSTREAM)/$(REPO) && $(REPO_SC_CMD) "$(COMMIT)"; \ - fi; - -# Generate the source pacakge fron the CVS checkout -.PHONY: $(SOURCE_0) -$(SOURCE_0): $(UPSTREAM) $(UPSTREAM)/$(REPO) - rm -rf tmp - mkdir tmp - cp -r $(UPSTREAM)/$(REPO)/$(HORDE_PKGDIR) tmp/$(PACKAGE) - sed -i -e "/version/,+1 s#\(.*\)#\1dev$(RELTAG)#" tmp/$(PACKAGE)/package.xml - sed -i -e "/lead/,+1 s#.*#$(DATE)#" tmp/$(PACKAGE)/package.xml - $(PEAR) package tmp/$(PACKAGE)/package.xml - rm -rf tmp - -# Target for retrieving the source package -$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): $(SOURCE_0) - test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) - cp $(SOURCE_0) $(KOLABRPMSRC)/$(PACKAGE)/ - -# Target for preparing the source area and building the package -$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: Makefile $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) - cp $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE) - cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec - -# Target for fetching the source rpm into the current directory -$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm - cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . - -# Target for cleaning up the files that can be generated with this Makefile -.PHONY: clean -clean: - rm -rf $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm - rm -rf $(KOLABRPMSRC)/$(PACKAGE) - rm -rf $(KOLABRPMTMP)/$(PACKAGE)* - rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - rm -rf *~ - +include ../Horde.mk From cvs at kolab.org Mon May 18 20:31:05 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 20:31:05 +0200 (CEST) Subject: bh: utils/testing create_ldap_users.py,1.7,1.8 Message-ID: <20090518183105.0F56D60082D@lists.intevation.de> Author: bh Update of /kolabrepository/utils/testing In directory doto:/tmp/cvs-serv11134/testing Modified Files: create_ldap_users.py Log Message: Add --set-password option to set the password of the new user accounts. The password is salted and hashed using the SSHA method and put into the userPassword attribute. Index: create_ldap_users.py =================================================================== RCS file: /kolabrepository/utils/testing/create_ldap_users.py,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- create_ldap_users.py 18 May 2009 17:23:38 -0000 1.7 +++ create_ldap_users.py 18 May 2009 18:31:03 -0000 1.8 @@ -43,6 +43,8 @@ import ldap.modlist import getpass import time +import sha +import base64 def open_ldap(ldapuri, admin_dn_part, pwd = None): conn = ldap.initialize(ldapuri) @@ -65,8 +67,23 @@ conn.modify_s(dn, [(ldap.MOD_ADD, "kolabDeleteFlag", hosts)]) print dn, hosts +def random_salt(length): + """Returns a random salt for use with salted password hashes""" + random = open("/dev/urandom") + try: + return random.read(length) + finally: + random.close() -def add_user(conn, num_users, offset): +SSHA_PREFIX = "{SSHA}" +def encode_ssha(password, salt): + """SSHA-Encodes the password with the given salt""" + digester = sha.new(password) + digester.update(salt) + return SSHA_PREFIX + base64.b64encode(digester.digest() + salt) + + +def add_user(conn, num_users, offset, set_password=None): kolab_info = fetch_kolab_info(conn) mail_domain = kolab_info["postfix-mydomain"][0] @@ -79,6 +96,9 @@ 'kolabInvitationPolicy': ['ACT_MANUAL'], } + if set_password is not None: + common_attrs["userPassword"] = encode_ssha(set_password, random_salt(8)) + users = [("test%d" % n, "auto", "autotest%d" % n) for n in range(offset, num_users + offset)] for sn, givenName, mailuid in users: @@ -136,10 +156,11 @@ entry_type = "user" group_member = None offset = 0 + set_password = None opts, args = getopt.getopt(sys.argv[1:], 'h:p:u:n:o:t:', ["host=", "port=", "user=", "num=", "offset=", - "type=", "member="]) + "set-password=", "type=", "member="]) for optchar, value in opts: if optchar in ("-h", "--host"): hostname = value @@ -149,6 +170,8 @@ admin_dn_part = value elif optchar in ("-o", "--offset"): offset = int(value) + elif optchar == "--set-password": + set_password = value elif optchar in ("-t", "--type"): entry_type = value elif optchar == "--member": @@ -183,7 +206,7 @@ conn = open_ldap(uri, admin_dn_part, pwd) if entry_type == "user": if cmd == "add": - add_user(conn, num_entries, offset) + add_user(conn, num_entries, offset, set_password=set_password) elif cmd == "delete": delete_auto_users(conn, offset) elif entry_type == "group": From cvs at kolab.org Mon May 18 21:49:58 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 21:49:58 +0200 (CEST) Subject: gunnar: server/pear Base.mk,1.1,1.2 Message-ID: <20090518194958.7DB0D60082A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear In directory doto:/tmp/cvs-serv16758 Modified Files: Base.mk Log Message: Do not let the Makefile fail on non-openpkg systems. Index: Base.mk =================================================================== RCS file: /kolabrepository/server/pear/Base.mk,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Base.mk 18 May 2009 17:36:02 -0000 1.1 +++ Base.mk 18 May 2009 19:49:56 -0000 1.2 @@ -18,10 +18,22 @@ HOME = /kolab endif +# Is this an openpkg system? +OPENPKG=$(shell test -e $(HOME)/bin/openpkg && echo YES) + +ifeq "x$(OPENPKG)" "xYES" # Set the location of the rpm binary ifeq "x$(RPM)" "x" RPM = $(HOME)/bin/openpkg rpm endif +# Determine the suffix for binary packages on this system +ifeq "x$(PLATTAG)" "x" + PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) +endif +else + RPM = + PLATTAG = unknown +endif # Set the location for rpm source package installations ifeq "x$(KOLABRPMSRC)" "x" @@ -36,9 +48,4 @@ # Set the location for the rpm temporary directory ifeq "x$(KOLABRPMTMP)" "x" KOLABRPMTMP = $(HOME)/RPM/TMP -endif - -# Determine the suffix for binary packages on this system -ifeq "x$(PLATTAG)" "x" - PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) endif From cvs at kolab.org Mon May 18 21:50:17 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 21:50:17 +0200 (CEST) Subject: gunnar: server/pear/Horde_NLS .cvsignore, 1.1, 1.2 ChangeLog, 1.2, 1.3 Horde_NLS.spec, 1.5, 1.6 Makefile, 1.3, 1.4 Message-ID: <20090518195017.8D61860082E@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_NLS In directory doto:/tmp/cvs-serv16825/Horde_NLS Modified Files: .cvsignore ChangeLog Horde_NLS.spec Makefile Log Message: Convert Horde_NLS to the new packaging system. Index: .cvsignore =================================================================== RCS file: /kolabrepository/server/pear/Horde_NLS/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- .cvsignore 10 Sep 2008 10:35:22 -0000 1.1 +++ .cvsignore 18 May 2009 19:50:15 -0000 1.2 @@ -1 +1,3 @@ *.src.rpm +*.tgz +package.patch Index: ChangeLog =================================================================== RCS file: /kolabrepository/server/pear/Horde_NLS/ChangeLog,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- ChangeLog 11 May 2009 19:00:16 -0000 1.2 +++ ChangeLog 18 May 2009 19:50:15 -0000 1.3 @@ -4,5 +4,5 @@ 2008-09-10 Gunnar Wrobel

    - * Horde_DOM.spec: Added package to Kolab CVS. + * Horde_NLS.spec: Added package to Kolab CVS. Index: Horde_NLS.spec =================================================================== RCS file: /kolabrepository/server/pear/Horde_NLS/Horde_NLS.spec,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Horde_NLS.spec 11 May 2009 19:00:16 -0000 1.5 +++ Horde_NLS.spec 18 May 2009 19:50:15 -0000 1.6 @@ -2,8 +2,14 @@ %define V_horde_pkgdir NLS %define V_horde_package Horde_NLS %define V_package Horde_NLS +%define V_package_origin VC-CVS +%define V_repo_commit HORDE_3_3_4 +%define V_repo_release 20090501 %define V_version 0.0.2dev20090501 -%define V_release 1 +%define V_release 20090518 +%define V_sourceurl http://pear.horde.org/get +%define V_php_lib_loc php +%define V_www_loc client # Package Information Name: %{V_package} @@ -17,7 +23,10 @@ Distribution: OpenPKG # List of Sources -Source: http://pear.horde.org/get/%{V_horde_package}-%{V_version}.tgz +Source: %{V_sourceurl}/%{V_horde_package}-%{V_version}.tgz + +# List of patches +Patch0: package.patch # Build Info Prefix: %{l_prefix} @@ -35,19 +44,37 @@ Provides: horde-framework-kolab = 3.2_rc3-20081209 Obsoletes: horde-framework-kolab < 3.2_rc3-20081209 +# Package options +%option with_chroot no + %description Localization package. %prep %setup -n %{V_horde_package}-%{V_version} + if [ -n "`cat %{PATCH0}`" ]; then + %patch -p0 -P 0 + fi + + cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml + %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ - %{l_prefix}/bin/pear install --offline --force --nodeps -P $RPM_BUILD_ROOT $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz - rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/php/{.filemap,.lock,.channels,.depdb,.depdblock} + %{l_prefix}/bin/pear -d www_dir="%{l_prefix}/var/kolab/www/%{V_www_loc}" \ + -d php_dir="%{l_prefix}/lib/%{V_php_lib_loc}" \ + install --offline --force --nodeps -P $RPM_BUILD_ROOT \ + $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz + rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc}/{.filemap,.lock,.channels,.depdb,.depdblock} + + # With chroot + %if "%{with_chroot}" == "yes" + %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib + cp -a $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib/ + %endif %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} Index: Makefile =================================================================== RCS file: /kolabrepository/server/pear/Horde_NLS/Makefile,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Makefile 11 May 2009 19:00:16 -0000 1.3 +++ Makefile 18 May 2009 19:50:15 -0000 1.4 @@ -1,155 +1 @@ -# If home is unset this Makefile assumes the Kolab server installation -# resides in /kolab. If this is not the case this Makefile must be -# called using -# -# HOME="/mykolabroot" make TARGET -# -ifeq "x$(HOME)" "x" - HOME = /kolab -endif - -# If HOME is set to /root it is likely that somebody is calling this -# Makefile as root user. In this case this Makefile assumes that the -# Kolab server installation resides in /kolab. -# -# In the (hopefully) unlikely event that somebody really installed the -# Kolab server in /root this Makefile will fail. -ifeq "x$(HOME)" "x/root" - HOME = /kolab -endif - -# Set the location of the rpm binary -ifeq "x$(RPM)" "x" - RPM = $(HOME)/bin/openpkg rpm -endif - -# Set the location for rpm source package installations -ifeq "x$(KOLABRPMSRC)" "x" - KOLABRPMSRC = $(HOME)/RPM/SRC -endif - -# Set the location for rpm packages -ifeq "x$(KOLABRPMPKG)" "x" - KOLABRPMPKG = $(HOME)/RPM/PKG -endif - -# Set the location for the rpm temporary directory -ifeq "x$(KOLABRPMTMP)" "x" - KOLABRPMTMP = $(HOME)/RPM/TMP -endif - -# Determine the suffix for binary packages on this system -ifeq "x$(PLATTAG)" "x" - PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%) -endif - -# Determine the staging area for collecting new source rpms -ifeq "x$(STAGING)" "x" - STAGING = ../../stage -endif - -# Determine the horde package name from the *.spec file -HORDE_PKGDIR = $(shell grep "%define[ ]*V_horde_pkgdir" *.spec | sed -e "s/.*V_horde_pkgdir \([A-Za-z\-\_]*\).*/\1/") - -# Determine the horde package name from the *.spec file -HORDE_PACKAGE = $(shell grep "%define[ ]*V_horde_package" *.spec | sed -e "s/.*V_horde_package \([A-Za-z\-\_]*\).*/\1/") - -# Determine the package name from the *.spec file -PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/") - -# Determine the package version from the *.spec file -VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.a-z]*\).*/\1/") - -# Determine the release number from the *.spec file -RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/") - -# Determine the download url for the PEAR package from the *.spec file -SOURCE_URL=$(shell grep "%define[ ]*V_sourceurl" *.spec | sed -e "s/.*V_sourceurl\s*\(.*\)/\1/") - -# Get the list of patches if there are any in this directory -PATCHES = $(shell ls *.patch 2> /dev/null) - -# Generate the full package name -SOURCE_0=$(HORDE_PACKAGE)-$(VERSION).tgz - -# Generate a list of extra files for the package -EXTRA=ChangeLog $(PATCHES) - -# CVS information -UPSTREAM=../upstream/cvs -REPO=framework -REPO_URL=:pserver:cvsread at anoncvs.horde.org:/repository -REPO_UP_CMD=cvs update -REPO_CO_CMD=cvs -d $(REPO_URL) co -REPO_SC_CMD=cvs update -r -COMMIT=HORDE_3_3_4 -RELTAG=20090501 -DATE=$(shell date +%Y-%m-%d) -PEAR=$(HOME)/bin/pear - -# Default target to generate the source rpm package -.PHONY: all -all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - -# Target for placing the source rpm in the staging area -.PHONY: dist -dist: all - test -d $(STAGING) || mkdir $(STAGING) - cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm $(STAGING) - -# Target for installing the binary rpm package in our current Kolab -# server installation -.PHONY: install -install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm - $(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm - -# Target location for the CVS checkout -$(UPSTREAM): - mkdir -p $(UPSTREAM) - -# Target for generating the CVS checkout -.PHONY: $(UPSTREAM)/$(REPO) -$(UPSTREAM)/$(REPO): - if [ -e $(UPSTREAM)/$(REPO) ]; then \ - cd $(UPSTREAM)/$(REPO) && $(REPO_SC_CMD) "$(COMMIT)"; \ - else \ - @echo The password is 'horde'; \ - cvs -d $(REPO_URL) login; \ - cd $(UPSTREAM) && $(REPO_CO_CMD) $(REPO); \ - cd $(UPSTREAM)/$(REPO) && $(REPO_SC_CMD) "$(COMMIT)"; \ - fi; - -# Generate the source pacakge fron the CVS checkout -.PHONY: $(SOURCE_0) -$(SOURCE_0): $(UPSTREAM) $(UPSTREAM)/$(REPO) - rm -rf tmp - mkdir tmp - cp -r $(UPSTREAM)/$(REPO)/$(HORDE_PKGDIR) tmp/$(PACKAGE) - sed -i -e "/version/,+1 s#\(.*\)#\1dev$(RELTAG)#" tmp/$(PACKAGE)/package.xml - sed -i -e "/lead/,+1 s#.*#$(DATE)#" tmp/$(PACKAGE)/package.xml - $(PEAR) package tmp/$(PACKAGE)/package.xml - rm -rf tmp - -# Target for retrieving the source package -$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): $(SOURCE_0) - test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE) - cp $(SOURCE_0) $(KOLABRPMSRC)/$(PACKAGE)/ - -# Target for preparing the source area and building the package -$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: Makefile $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0) - cp $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE) - cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec - -# Target for fetching the source rpm into the current directory -$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm - cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm . - -# Target for cleaning up the files that can be generated with this Makefile -.PHONY: clean -clean: - rm -rf $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm - rm -rf $(KOLABRPMSRC)/$(PACKAGE) - rm -rf $(KOLABRPMTMP)/$(PACKAGE)* - rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm - rm -rf *~ - +include ../Horde.mk From cvs at kolab.org Mon May 18 21:58:55 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 21:58:55 +0200 (CEST) Subject: gunnar: server/pear Horde.mk,1.2,1.3 Message-ID: <20090518195855.C206060082A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear In directory doto:/tmp/cvs-serv17232 Modified Files: Horde.mk Log Message: Allow to build the source package separately. Index: Horde.mk =================================================================== RCS file: /kolabrepository/server/pear/Horde.mk,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Horde.mk 18 May 2009 17:36:20 -0000 1.2 +++ Horde.mk 18 May 2009 19:58:53 -0000 1.3 @@ -18,7 +18,7 @@ PACKAGE_ORIGIN = $(shell grep "%define[ ]*V_package_origin" *.spec | sed -e "s/.*V_package_origin \([A-Z]*\).*/\1/") # Determine the package version control type from the *.spec file -PACKAGE_VC = $(shell grep "%define[ ]*V_package_origin" *.spec | sed -e "s/.*V_package_origin VC-\([A-Z]*\).*/\1/") +PACKAGE_VC = $(shell grep "%define[ ]*V_package_origin" *.spec | sed -e "s/.*V_package_origin [A-Z]*-\([A-Z]*\).*/\1/") # Determine the package name from the *.spec file PACKAGE = $(shell grep "%define[ ]*V_package " *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\)\s*/\1/") @@ -132,9 +132,15 @@ endif endif +ifneq ($(PACKAGE_VC),) # Short name for the source package as a target for the command line. .PHONY:source -source: $(SOURCE_0) +source: tmp/$(PACKAGE) + sed -i -e "/version/,+1 s#\(.*\)#\1dev$(RELTAG)#" tmp/$(PACKAGE)/package.xml + sed -i -e "/lead/,+1 s#.*#$(DATE)#" tmp/$(PACKAGE)/package.xml + $(PEAR) package tmp/$(PACKAGE)/package.xml + rm -rf tmp +endif # Target for retrieving the source package ifeq ($(PACKAGE_ORIGIN),VC) From cvs at kolab.org Mon May 18 22:03:04 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 22:03:04 +0200 (CEST) Subject: gunnar: server/pear Horde.mk,1.3,1.4 Message-ID: <20090518200304.9466E60082A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear In directory doto:/tmp/cvs-serv17393 Modified Files: Horde.mk Log Message: Fix the initial checkout procedure. Index: Horde.mk =================================================================== RCS file: /kolabrepository/server/pear/Horde.mk,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Horde.mk 18 May 2009 19:58:53 -0000 1.3 +++ Horde.mk 18 May 2009 20:03:02 -0000 1.4 @@ -97,13 +97,13 @@ ifeq ($(PACKAGE_VC),CVS) .PHONY: $(UPSTREAM)/$(CVS_REPO) $(UPSTREAM)/$(CVS_REPO): - if [ -e $(UPSTREAM)/$(CVS_REPO) ]; then \ + @if [ -e $(UPSTREAM)/$(CVS_REPO) ]; then \ cd $(UPSTREAM)/$(CVS_REPO) && $(CVS_REPO_SC_CMD) "$(COMMIT)"; \ else \ - @echo The password is 'horde'; \ + echo The password is 'horde'; \ cvs -d $(CVS_REPO_URL) login; \ cd $(UPSTREAM) && $(CVS_REPO_CO_CMD) $(CVS_REPO); \ - cd $(UPSTREAM)/$(CVS_REPO) && $(CVS_REPO_SC_CMD) "$(COMMIT)"; \ + cd $(CVS_REPO) && $(CVS_REPO_SC_CMD) "$(COMMIT)"; \ fi; else ifeq ($(PACKAGE_VC),GIT) From cvs at kolab.org Mon May 18 22:11:41 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 22:11:41 +0200 (CEST) Subject: gunnar: server/pear Horde.mk,1.4,1.5 Message-ID: <20090518201141.84936600830@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear In directory doto:/tmp/cvs-serv17904 Modified Files: Horde.mk Log Message: Allow to override the location of the upstream directory. Index: Horde.mk =================================================================== RCS file: /kolabrepository/server/pear/Horde.mk,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Horde.mk 18 May 2009 20:03:02 -0000 1.4 +++ Horde.mk 18 May 2009 20:11:39 -0000 1.5 @@ -5,6 +5,11 @@ STAGING = ../../stage endif +# Set the default upstream directory. +ifeq "x$(UPSTREAM_DIR)" "x" + UPSTREAM_DIR = ../upstream +endif + # Location of the PEAR script PEAR=$(HOME)/bin/pear @@ -49,10 +54,10 @@ # Temporary repository checkout location ifeq ($(PACKAGE_VC),CVS) -UPSTREAM=../upstream/cvs +UPSTREAM=$(UPSTREAM_DIR)/cvs else ifeq ($(PACKAGE_VC),GIT) -UPSTREAM=../upstream/git +UPSTREAM=$(UPSTREAM_DIR)/git endif endif From cvs at kolab.org Mon May 18 23:37:33 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 23:37:33 +0200 (CEST) Subject: gunnar: server/pear/Horde_NLS-H4 - New directory Message-ID: <20090518213733.10AB160082A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_NLS-H4 In directory doto:/tmp/cvs-serv20408/Horde_NLS-H4 Log Message: Directory /kolabrepository/server/pear/Horde_NLS-H4 added to the repository From cvs at kolab.org Mon May 18 23:40:12 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Mon, 18 May 2009 23:40:12 +0200 (CEST) Subject: gunnar: server/pear/Horde_NLS-H4 .cvsignore, NONE, 1.1 ChangeLog, NONE, 1.1 Horde_NLS-H4.spec, NONE, 1.1 Makefile, NONE, 1.1 Message-ID: <20090518214012.D9526600831@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_NLS-H4 In directory doto:/tmp/cvs-serv20518 Added Files: .cvsignore ChangeLog Horde_NLS-H4.spec Makefile Log Message: Added Horde-NLS-H4 to the list of packages. --- NEW FILE: .cvsignore --- *.src.rpm *.tgz package.patch --- NEW FILE: ChangeLog --- 2009-05-18 Gunnar Wrobel

    * Horde_NLS-H4.spec: Added package to Kolab CVS. --- NEW FILE: Horde_NLS-H4.spec --- # Variables %define V_horde_pkgdir NLS %define V_horde_package Horde_NLS %define V_package Horde_NLS-H4 %define V_package_origin VC-CVS %define V_repo_commit HEAD:20090518 %define V_repo_release 20090518 %define V_version 0.0.2dev20090518 %define V_release 20090518 %define V_sourceurl http://pear.horde.org/get %define V_php_lib_loc php-h4 %define V_www_loc client # Package Information Name: %{V_package} Summary: Localization package. URL: http://pear.horde.org/index.php?package=%{V_package} Packager: Gunnar Wrobel (p at rdus) Version: %{V_version} Release: %{V_release} License: LGPL Group: Development/Libraries Distribution: OpenPKG # List of Sources Source: %{V_sourceurl}/%{V_horde_package}-%{V_version}.tgz # List of patches Patch0: package.patch # Build Info Prefix: %{l_prefix} BuildRoot: %{l_buildroot} #Pre requisites BuildPreReq: OpenPKG, openpkg >= 20070603 BuildPreReq: php, php::with_pear = yes BuildPreReq: PEAR-Horde-Channel PreReq: OpenPKG, openpkg >= 20070603 PreReq: php, php::with_pear = yes PreReq: Horde_Browser PreReq: Horde_Util Provides: horde-framework-kolab = 3.2_rc3-20081209 Obsoletes: horde-framework-kolab < 3.2_rc3-20081209 # Package options %option with_chroot no %description Localization package. %prep %setup -n %{V_horde_package}-%{V_version} if [ -n "`cat %{PATCH0}`" ]; then %patch -p0 -P 0 fi cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ %{l_prefix}/bin/pear -d www_dir="%{l_prefix}/var/kolab/www/%{V_www_loc}" \ -d php_dir="%{l_prefix}/lib/%{V_php_lib_loc}" \ install --offline --force --nodeps -P $RPM_BUILD_ROOT \ $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc}/{.filemap,.lock,.channels,.depdb,.depdblock} # With chroot %if "%{with_chroot}" == "yes" %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib cp -a $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib/ %endif %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} %clean rm -rf $RPM_BUILD_ROOT %files -f files --- NEW FILE: Makefile --- include ../Horde.mk From cvs at kolab.org Tue May 19 00:30:44 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 19 May 2009 00:30:44 +0200 (CEST) Subject: gunnar: server/pear/Horde_Argv-H4 - New directory Message-ID: <20090518223044.472E8600174@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Argv-H4 In directory doto:/tmp/cvs-serv22229/Horde_Argv-H4 Log Message: Directory /kolabrepository/server/pear/Horde_Argv-H4 added to the repository From cvs at kolab.org Tue May 19 00:31:08 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 19 May 2009 00:31:08 +0200 (CEST) Subject: gunnar: server/pear/Horde_Argv-H4 .cvsignore, NONE, 1.1 ChangeLog, NONE, 1.1 Horde_Argv-H4.spec, NONE, 1.1 Makefile, NONE, 1.1 Message-ID: <20090518223108.D0C7E600825@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Argv-H4 In directory doto:/tmp/cvs-serv22283/Horde_Argv-H4 Added Files: .cvsignore ChangeLog Horde_Argv-H4.spec Makefile Log Message: Added Horde-Argv-H4. --- NEW FILE: .cvsignore --- *.src.rpm --- NEW FILE: ChangeLog --- 2009-05-19 Gunnar Wrobel

    * Horde_Argv-H4.spec: Added package to Kolab CVS. --- NEW FILE: Horde_Argv-H4.spec --- # Variables %define V_horde_pkgdir framework/Argv %define V_horde_package Argv %define V_package Horde_Argv-H4 %define V_package_origin VC-GIT %define V_repo_commit d576e52c6c9d3772ab2f6e385c31a2e32da213a2 %define V_repo_release 20090518 %define V_version 0.1.0dev20090518 %define V_release 20090519 %define V_sourceurl http://pear.horde.org/get %define V_php_lib_loc php-h4 %define V_www_loc client # Package Information Name: %{V_package} Summary: Horde command-line argument parsing package URL: http://pear.horde.org/index.php?package=%{V_horde_package} Packager: Gunnar Wrobel (p at rdus) Version: %{V_version} Release: %{V_release} License: LGPL Group: Development/Libraries Distribution: OpenPKG # List of Sources Source: %{V_sourceurl}/%{V_horde_package}-%{V_version}.tgz # List of patches Patch0: package.patch # Build Info Prefix: %{l_prefix} BuildRoot: %{l_buildroot} #Pre requisites BuildPreReq: OpenPKG, openpkg >= 20070603 BuildPreReq: php, php::with_pear = yes BuildPreReq: PEAR-Horde-Channel PreReq: OpenPKG, openpkg >= 20070603 PreReq: php, php::with_pear = yes Provides: horde-framework-kolab = 3.2_rc3-20081209 Obsoletes: horde-framework-kolab < 3.2_rc3-20081209 # Package options %option with_chroot no %description This package provides classes for parsing command line arguments with various actions, providing help, grouping options, and more. %prep %setup -n %{V_horde_package}-%{V_version} if [ -n "`cat %{PATCH0}`" ]; then %patch -p0 -P 0 fi cat ../package.xml | sed -e 's/md5sum="[^"]*"//' > package.xml %build %install env PHP_PEAR_PHP_BIN="%{l_prefix}/bin/php -d safe_mode=off -d memory_limit=40M" \ PHP_PEAR_CACHE_DIR="/tmp/pear/cache" \ %{l_prefix}/bin/pear -d www_dir="%{l_prefix}/var/kolab/www/%{V_www_loc}" \ -d php_dir="%{l_prefix}/lib/%{V_php_lib_loc}" \ install --offline --force --nodeps -P $RPM_BUILD_ROOT \ $RPM_SOURCE_DIR/%{V_horde_package}-%{V_version}.tgz rm -rf $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc}/{.filemap,.lock,.channels,.depdb,.depdblock} # With chroot %if "%{with_chroot}" == "yes" %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib cp -a $RPM_BUILD_ROOT/%{l_prefix}/lib/%{V_php_lib_loc} $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/%{l_prefix}/lib/ %endif %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} %clean rm -rf $RPM_BUILD_ROOT %files -f files --- NEW FILE: Makefile --- include ../Horde.mk From cvs at kolab.org Tue May 19 09:53:01 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 19 May 2009 09:53:01 +0200 (CEST) Subject: gunnar: server/pear Horde.mk,1.5,1.6 Message-ID: <20090519075301.9BA9F60082A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear In directory doto:/tmp/cvs-serv16980 Modified Files: Horde.mk Log Message: Allow modifications of the package.xml. Index: Horde.mk =================================================================== RCS file: /kolabrepository/server/pear/Horde.mk,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Horde.mk 18 May 2009 20:11:39 -0000 1.5 +++ Horde.mk 19 May 2009 07:52:59 -0000 1.6 @@ -43,6 +43,12 @@ # Determine the download url for the PEAR package from the *.spec file SOURCE_URL=$(shell grep "%define[ ]*V_sourceurl" *.spec | sed -e "s/.*V_sourceurl\s*\(.*\)/\1/") +# Additional variables for tweaking the PEAR package.xml +ALTERNATE_CHANNEL= $(shell grep "%define[ ]*V_alternate_channel" *.spec | sed -e "s/.*V_alternate_channel\s*\(.*\)/\1/") +ALTERNATE_MAINTAINER= $(shell grep "%define[ ]*V_alternate_maintainer " *.spec | sed -e "s/.*V_alternate_maintainer\s*\(.*\)/\1/") +ALTERNATE_MAINTAINER_SNIPPET= $(shell grep "%define[ ]*V_alternate_maintainer_snippet" *.spec | sed -e "s/.*V_alternate_maintainer_snippet\s*\(.*\)/\1/") + + # Generate the full package name SOURCE_0=$(HORDE_PACKAGE)-$(VERSION).tgz @@ -143,6 +149,16 @@ source: tmp/$(PACKAGE) sed -i -e "/version/,+1 s#\(.*\)#\1dev$(RELTAG)#" tmp/$(PACKAGE)/package.xml sed -i -e "/lead/,+1 s#.*#$(DATE)#" tmp/$(PACKAGE)/package.xml +ifneq ($(ALTERNATE_CHANNEL),) + sed -i -e 's#.*#$(ALTERNATE_CHANNEL#' tmp/$(PACKAGE)/package.xml +endif +ifneq ($(ALTERNATE_MAINTAINER),) + if [ -z "`grep $(ALTERNATE_MAINTAINER) tmp/$(PACKAGE)/package.xml`" ]; then \ + sed -i -e '/lead/,/\/lead/ D' tmp/$(PACKAGE)/package.xml; \ + sed -i -e '/date.*\/date/ i\ $(ALTERNATE_MAINTAINER_SNIPPET)' tmp/$(PACKAGE)/package.xml; \ + fi +endif + $(PEAR) package tmp/$(PACKAGE)/package.xml rm -rf tmp endif From cvs at kolab.org Tue May 19 09:57:56 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 19 May 2009 09:57:56 +0200 (CEST) Subject: gunnar: server/pear Horde.mk,1.6,1.7 Message-ID: <20090519075756.E9A5F60082A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear In directory doto:/tmp/cvs-serv17145 Modified Files: Horde.mk Log Message: WS Index: Horde.mk =================================================================== RCS file: /kolabrepository/server/pear/Horde.mk,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Horde.mk 19 May 2009 07:52:59 -0000 1.6 +++ Horde.mk 19 May 2009 07:57:54 -0000 1.7 @@ -150,13 +150,13 @@ sed -i -e "/version/,+1 s#\(.*\)#\1dev$(RELTAG)#" tmp/$(PACKAGE)/package.xml sed -i -e "/lead/,+1 s#.*#$(DATE)#" tmp/$(PACKAGE)/package.xml ifneq ($(ALTERNATE_CHANNEL),) - sed -i -e 's#.*#$(ALTERNATE_CHANNEL#' tmp/$(PACKAGE)/package.xml + sed -i -e 's#.*#$(ALTERNATE_CHANNEL#' tmp/$(PACKAGE)/package.xml endif ifneq ($(ALTERNATE_MAINTAINER),) - if [ -z "`grep $(ALTERNATE_MAINTAINER) tmp/$(PACKAGE)/package.xml`" ]; then \ - sed -i -e '/lead/,/\/lead/ D' tmp/$(PACKAGE)/package.xml; \ - sed -i -e '/date.*\/date/ i\ $(ALTERNATE_MAINTAINER_SNIPPET)' tmp/$(PACKAGE)/package.xml; \ - fi + if [ -z "`grep $(ALTERNATE_MAINTAINER) tmp/$(PACKAGE)/package.xml`" ]; then \ + sed -i -e '/lead/,/\/lead/ D' tmp/$(PACKAGE)/package.xml; \ + sed -i -e '/date.*\/date/ i\ $(ALTERNATE_MAINTAINER_SNIPPET)' tmp/$(PACKAGE)/package.xml; \ + fi endif $(PEAR) package tmp/$(PACKAGE)/package.xml From cvs at kolab.org Tue May 19 10:02:46 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 19 May 2009 10:02:46 +0200 (CEST) Subject: gunnar: server/pear Horde.mk,1.7,1.8 Message-ID: <20090519080246.2AD4560082A@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear In directory doto:/tmp/cvs-serv17278 Modified Files: Horde.mk Log Message: Fix package.xml editing. Index: Horde.mk =================================================================== RCS file: /kolabrepository/server/pear/Horde.mk,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Horde.mk 19 May 2009 07:57:54 -0000 1.7 +++ Horde.mk 19 May 2009 08:02:44 -0000 1.8 @@ -44,9 +44,9 @@ SOURCE_URL=$(shell grep "%define[ ]*V_sourceurl" *.spec | sed -e "s/.*V_sourceurl\s*\(.*\)/\1/") # Additional variables for tweaking the PEAR package.xml -ALTERNATE_CHANNEL= $(shell grep "%define[ ]*V_alternate_channel" *.spec | sed -e "s/.*V_alternate_channel\s*\(.*\)/\1/") -ALTERNATE_MAINTAINER= $(shell grep "%define[ ]*V_alternate_maintainer " *.spec | sed -e "s/.*V_alternate_maintainer\s*\(.*\)/\1/") -ALTERNATE_MAINTAINER_SNIPPET= $(shell grep "%define[ ]*V_alternate_maintainer_snippet" *.spec | sed -e "s/.*V_alternate_maintainer_snippet\s*\(.*\)/\1/") +ALTERNATE_CHANNEL= $(shell grep "%define[ ]*V_alternate_channel" *.spec | sed -e "s/.*V_alternate_channel\s*\(.*\)$$/\1/") +ALTERNATE_MAINTAINER= $(shell grep "%define[ ]*V_alternate_maintainer " *.spec | sed -e "s/.*V_alternate_maintainer\s*\(.*\)$$/\1/") +ALTERNATE_MAINTAINER_SNIPPET= $(shell grep "%define[ ]*V_alternate_maintainer_snippet" *.spec | sed -e "s/.*V_alternate_maintainer_snippet\s*\(.*\)$$/\1/") # Generate the full package name @@ -150,7 +150,7 @@ sed -i -e "/version/,+1 s#\(.*\)#\1dev$(RELTAG)#" tmp/$(PACKAGE)/package.xml sed -i -e "/lead/,+1 s#.*#$(DATE)#" tmp/$(PACKAGE)/package.xml ifneq ($(ALTERNATE_CHANNEL),) - sed -i -e 's#.*#$(ALTERNATE_CHANNEL#' tmp/$(PACKAGE)/package.xml + sed -i -e 's#.*#$(ALTERNATE_CHANNEL)#' tmp/$(PACKAGE)/package.xml endif ifneq ($(ALTERNATE_MAINTAINER),) if [ -z "`grep $(ALTERNATE_MAINTAINER) tmp/$(PACKAGE)/package.xml`" ]; then \ @@ -158,7 +158,6 @@ sed -i -e '/date.*\/date/ i\ $(ALTERNATE_MAINTAINER_SNIPPET)' tmp/$(PACKAGE)/package.xml; \ fi endif - $(PEAR) package tmp/$(PACKAGE)/package.xml rm -rf tmp endif @@ -168,6 +167,15 @@ $(SOURCE_0): tmp/$(PACKAGE) sed -i -e "/version/,+1 s#\(.*\)#\1dev$(RELTAG)#" tmp/$(PACKAGE)/package.xml sed -i -e "/lead/,+1 s#.*#$(DATE)#" tmp/$(PACKAGE)/package.xml +ifneq ($(ALTERNATE_CHANNEL),) + sed -i -e 's#.*#$(ALTERNATE_CHANNEL)#' tmp/$(PACKAGE)/package.xml +endif +ifneq ($(ALTERNATE_MAINTAINER),) + if [ -z "`grep $(ALTERNATE_MAINTAINER) tmp/$(PACKAGE)/package.xml`" ]; then \ + sed -i -e '/lead/,/\/lead/ D' tmp/$(PACKAGE)/package.xml; \ + sed -i -e '/date.*\/date/ i\ $(ALTERNATE_MAINTAINER_SNIPPET)' tmp/$(PACKAGE)/package.xml; \ + fi +endif $(PEAR) package tmp/$(PACKAGE)/package.xml rm -rf tmp else From cvs at kolab.org Tue May 19 11:13:58 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Tue, 19 May 2009 11:13:58 +0200 (CEST) Subject: emanuel: doc/www/src about-kolab-clients.html.m4, 1.28, 1.29 screenshots.html.m4, 1.11, 1.12 Message-ID: <20090519091358.0FB07600167@lists.intevation.de> Author: emanuel Update of /kolabrepository/doc/www/src In directory doto:/tmp/cvs-serv19569 Modified Files: about-kolab-clients.html.m4 screenshots.html.m4 Log Message: Update versions Index: about-kolab-clients.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/about-kolab-clients.html.m4,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- about-kolab-clients.html.m4 27 Feb 2009 08:33:20 -0000 1.28 +++ about-kolab-clients.html.m4 19 May 2009 09:13:56 -0000 1.29 @@ -100,7 +100,7 @@

    MAPI Storage Provider for Microsoft Outlook: KONSEC Konnektor

    License: proprietary, with a gratis 30 day evaluation
    -Status: stable release 2.1.x for Kolab 2
    +Status: stable release 2.3.x for Kolab 2
    Homepage: http://www.konsec.com

    The KONSEC Konnektor is a Microsoft MAPI Storage Provider supporting @@ -125,7 +125,7 @@

    Webclient: Horde

    License: Free Software (GPL)
    -Status: beta quality, integrated in Kolab Server 2.2
    +Status: beta quality 3.3, integrated in Kolab Server since v2.2
    Homepage: http://www.horde.org

    Currently part of Horde CVS, this is still Index: screenshots.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/screenshots.html.m4,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- screenshots.html.m4 11 Jul 2008 14:08:51 -0000 1.11 +++ screenshots.html.m4 19 May 2009 09:13:56 -0000 1.12 @@ -12,7 +12,7 @@

  • KDE Kontact for GNU/Linux
  • KDE Kontact for Windows
  • KDE Kontact for Mac OS X
  • -
  • Webclient: Horde (beta)
  • +
  • Webclient: Horde
  •  
     
    + + +
    June 26th, 2009» + Kontact for Windows 20090605-7 (beta) released +
    +

    + A new Kontact Installer for Windows is available from the Kolab +download server.
    + See the corresponding + wikipage for details. +
    +

    + @@ -73,6 +89,11 @@

    + +

    +

    + +
    May 15th, 2009
    April 8th, 2009 » @@ -120,313 +141,6 @@ >MacOS.

    - - - - - -
    December 12th, 2008» - Kolab Server 2.2.1 Beta 1 released -
    -

    - This release contains an improved version of the Kolab Web Client, restructured packages and many important fixes.
    - Source and binary packages are available from the download mirrors.
    - See the announcement for details. -
    -

    - - - - - -
    December 2nd, 2008» - Security Issue 23 for Kolab Server (ClamAV) -
    -

    - A new ClamAV RPM with various fixes is available. See the - Kolab Security Issue 23 for details. -
    -

    - - -

    -

    - - - - -
    September 11th, 2008» - Security Issue 22 for Kolab Server (ClamAV) -
    -
    - A new ClamAV RPM with various fixes for DoS vulnerabilities is available. See the - Kolab Security Issue 22 for -details. -
    -

    - - - - -
    August 14th, 2008» - Univention Corporate Server 2.1 includes new Kolab components -
    -

    - Univention, a Kolab Konsortium business partner, integrates the current - version of Kontact Enterprise35 and Kolab web client into the groupware part - of its enterprise all-in-one solution. -
    - Further information can be found in - Univention's press - release (German only). -
    -

    - - - - -
    July 11th, 2008» - Kolab Server 2.2.0 Final Release -
    -

    - Source and binary packages for Kolab Server 2.2.0 - are available from the download mirrors. -
    - See the - - announcement for details. -
    -

    - - - - -
    July 9th, 2008» - Kolab integrates mobile devices via SyncML -
    -

    - Kolab Konsortium and Pardus have implemented an extension - to the Kolab Webclient for Univention GmbH, - which allows users to connect mobile devices -directly to the groupware server. Now it is possible to synchronize appointment -times and contact information being offroad.
    - This was done by integrating the SyncML protocol into the Horde part of Kolab -server. SyncML is a platform independent standard designed for the exchange of -data between servers, clients and mobile devices.
    - The Horde interface is going to be integrated into Kolab Server/OpenPKG 2.2.0 -as a beta version. Version 2.2.1 is then expected to integrate the SyncML -extensions for tasks and contacts. - In Univention's UGS the SyncML extensions are available as release candidates -for testing purposes. -
    - You can find more information in Univention's press release -(German only). -
    -

    - - - - -
    June 18th, 2008» - Security Issue 21 for Kolab Server (ClamAV) -
    -

    - A new ClamAV RPM with a fix for a DoS vulnerability is available. See the - Kolab Security Issue 21 for -details. -
    -

    - - - - -
    June 9th, 2008» - Kontact for Windows and Mac OS X (developer version) presented -
    -

    - The german Federal Office for Information Security (BSI) has presented -a prototype of KDE Kolab Client Kontact on Windows and Mac OS X at the -LinuxTag 2008 (may 28th to 31th) in Berlin. -These new Kolab clients based on KDE and Qt. They are still in development. -A stable release is planed for the end of 2008. -

    -More information: -

    -
    -

    - - - - - -
    June 8th, 2008» - Thunderbird Plugin SyncKolab 1.0.0 available -
    -

    - SyncKolab was written to add Kolab functionality to Thunderbird. It -reads a selected Imap folder and synchronizes it with the local -address book and calendar. It has been tested under Thunderbird for Windows (XP and Vista), MacOSX and Linux. -Version 1.0 had 61 prereleases and 83 nightly releases with over 100 bugs fixed and is known to work nicely with Thunderbird 2 and Lightning 0.8. -
    -

    - - - - - -
    May 23rd, 2008» - Kolab Server 2.2 Release Candidate 3 released -
    -

    - Source and binary packages for Kolab Server 2.2 Release Candidate 3 - are available for download. -
    - See the - - announcement for details. -
    -

    - - - - - -
    April 17th, 2008» - German-speaking Kolab users mailinglist available -
    -

    - A new mailinglist for german-speaking Kolab users is now -available. See here for - subscribe -to the kolab-users-de list. -
    -

    - - - - - -
    April 16th, 2008» - Security Issue 20 for Kolab Server (ClamAV) -
    -

    - A new ClamAV RPM with various fixes is available. See the - Kolab Security Issue 20 for details. -
    -

    - - - - - -
    March 19th, 2008» - Kolab KDE Client 2.1.12 released -
    -

    -This release contains bug fixes and some new minor features. Source and binary packages for Kolab KDE Client 2.1.12 - are available for download. -
    - See the - - announcement for details. -
    -

    - - - - -
    March 17th, 2008» - Kolab Server 2.2 Release Candidate 2 released -
    -

    - Source and binary packages for Kolab Server 2.2 Release Candidate 2 - are available for download. -
    - See the - - announcement for details. -
    -

    - - - - - -
    February 18th, 2008» - Security Issue 19 for Kolab Server (ClamAV) -
    -

    - A new ClamAV RPM with various fixes is available. See the - Kolab Security Issue 19 for details. -
    -

    - - - - - -
    February 5th, 2008» - Kolab Server 2.2 Release Candidate 1 released -
    -

    - Source and binary packages for Kolab Server 2.2 Release Candidate 1 - 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. -
    -

    - - - - - -
    January 30th, 2008» - New Kolab documentation material - german only -
    -

    - The new "Operating manual for Kolab Server 2.2" and example slides for Kolab presentations - can be downloaded from the - documentation page. -
    - See the - announcement for details. -
    -

    - - - - - -
    January 9th, 2008» - Security Issue 18 for Kolab Server (ClamAV) -
    -

    - A new ClamAV RPM with various fixes is available. See the - Kolab Security Issue 18 for details. -
    -

    -

    Index: newsarchive.html.m4 =================================================================== RCS file: /kolabrepository/doc/www/src/newsarchive.html.m4,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- newsarchive.html.m4 8 Apr 2009 12:15:26 -0000 1.17 +++ newsarchive.html.m4 26 Jun 2009 10:54:46 -0000 1.18 @@ -5,6 +5,7 @@

    Archived News

    Go to main page for current news.

    + + +

    News 2008

    +
    + + + + +
    December 12th, 2008» + Kolab Server 2.2.1 Beta 1 released +
    +
    + This release contains an improved version of the Kolab Web Client, restructured packages and many important fixes.
    + Source and binary packages are available from the download mirrors.
    + See the announcement for details. +
    +

    + + + + + +
    December 2nd, 2008» + Security Issue 23 for Kolab Server (ClamAV) +
    +

    + A new ClamAV RPM with various fixes is available. See the + Kolab Security Issue 23 for details. +
    +

    + + + + + +
    September 11th, 2008» + Security Issue 22 for Kolab Server (ClamAV) +
    +

    + A new ClamAV RPM with various fixes for DoS vulnerabilities is available. See the + Kolab Security Issue 22 for +details. +
    +

    + + + + +
    August 14th, 2008» + Univention Corporate Server 2.1 includes new Kolab components +
    +

    + Univention, a Kolab Konsortium business partner, integrates the current + version of Kontact Enterprise35 and Kolab web client into the groupware part + of its enterprise all-in-one solution. +
    + Further information can be found in + Univention's press + release (German only). +
    +

    + + + + +
    July 11th, 2008» + Kolab Server 2.2.0 Final Release +
    +

    + Source and binary packages for Kolab Server 2.2.0 + are available from the download mirrors. +
    + See the + + announcement for details. +
    +

    + + + + +
    July 9th, 2008» + Kolab integrates mobile devices via SyncML +
    +

    + Kolab Konsortium and Pardus have implemented an extension + to the Kolab Webclient for Univention GmbH, + which allows users to connect mobile devices +directly to the groupware server. Now it is possible to synchronize appointment +times and contact information being offroad.
    + This was done by integrating the SyncML protocol into the Horde part of Kolab +server. SyncML is a platform independent standard designed for the exchange of +data between servers, clients and mobile devices.
    + The Horde interface is going to be integrated into Kolab Server/OpenPKG 2.2.0 +as a beta version. Version 2.2.1 is then expected to integrate the SyncML +extensions for tasks and contacts. + In Univention's UGS the SyncML extensions are available as release candidates +for testing purposes. +
    + You can find more information in Univention's press release +(German only). +
    +

    + + + + +
    June 18th, 2008» + Security Issue 21 for Kolab Server (ClamAV) +
    +

    + A new ClamAV RPM with a fix for a DoS vulnerability is available. See the + Kolab Security Issue 21 for +details. +
    +

    + + + + +
    June 9th, 2008» + Kontact for Windows and Mac OS X (developer version) presented +
    +

    + The german Federal Office for Information Security (BSI) has presented +a prototype of KDE Kolab Client Kontact on Windows and Mac OS X at the +LinuxTag 2008 (may 28th to 31th) in Berlin. +These new Kolab clients based on KDE and Qt. They are still in development. +A stable release is planed for the end of 2008. +

    +More information: +

    +
    +

    + + + + + +
    June 8th, 2008» + Thunderbird Plugin SyncKolab 1.0.0 available +
    +

    + SyncKolab was written to add Kolab functionality to Thunderbird. It +reads a selected Imap folder and synchronizes it with the local +address book and calendar. It has been tested under Thunderbird for Windows (XP and Vista), MacOSX and Linux. +Version 1.0 had 61 prereleases and 83 nightly releases with over 100 bugs fixed and is known to work nicely with Thunderbird 2 and Lightning 0.8. +
    +

    + + + + + +
    May 23rd, 2008» + Kolab Server 2.2 Release Candidate 3 released +
    +

    + Source and binary packages for Kolab Server 2.2 Release Candidate 3 + are available for download. +
    + See the + + announcement for details. +
    +

    + + + + + +
    April 17th, 2008» + German-speaking Kolab users mailinglist available +
    +

    + A new mailinglist for german-speaking Kolab users is now +available. See here for + subscribe +to the kolab-users-de list. +
    +

    + + + + + +
    April 16th, 2008» + Security Issue 20 for Kolab Server (ClamAV) +
    +

    + A new ClamAV RPM with various fixes is available. See the + Kolab Security Issue 20 for details. +
    +

    + + + + + +
    March 19th, 2008» + Kolab KDE Client 2.1.12 released +
    +

    +This release contains bug fixes and some new minor features. Source and binary packages for Kolab KDE Client 2.1.12 + are available for download. +
    + See the + + announcement for details. +
    +

    + + + + +
    March 17th, 2008» + Kolab Server 2.2 Release Candidate 2 released +
    +

    + Source and binary packages for Kolab Server 2.2 Release Candidate 2 + are available for download. +
    + See the + + announcement for details. +
    +

    + + + + + +
    February 18th, 2008» + Security Issue 19 for Kolab Server (ClamAV) +
    +

    + A new ClamAV RPM with various fixes is available. See the + Kolab Security Issue 19 for details. +
    +

    + + + + + +
    February 5th, 2008» + Kolab Server 2.2 Release Candidate 1 released +
    +

    + Source and binary packages for Kolab Server 2.2 Release Candidate 1 + 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. +
    +

    + + + + + +
    January 30th, 2008» + New Kolab documentation material - german only +
    +

    + The new "Operating manual for Kolab Server 2.2" and example slides for Kolab presentations + can be downloaded from the + documentation page. +
    + See the + announcement for details. +
    +

    + + + + + +
    January 9th, 2008» + Security Issue 18 for Kolab Server (ClamAV) +
    +

    + A new ClamAV RPM with various fixes is available. See the + Kolab Security Issue 18 for details. +
    +

    + +

    News 2007

    From cvs at kolab.org Fri Jun 26 15:23:12 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 26 Jun 2009 15:23:12 +0200 (CEST) Subject: gunnar: server/kolab-webclient Makefile, 1.6.4.4, 1.6.4.5 kolab-webclient.spec, 1.23.2.6.2.15, 1.23.2.6.2.16 Message-ID: <20090626132312.8F28C60C4AC@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient In directory doto:/tmp/cvs-serv32289 Modified Files: Tag: suc_branch Makefile kolab-webclient.spec Log Message: Bump release number Index: Makefile =================================================================== RCS file: /kolabrepository/server/kolab-webclient/Makefile,v retrieving revision 1.6.4.4 retrieving revision 1.6.4.5 diff -u -d -r1.6.4.4 -r1.6.4.5 --- Makefile 4 Jun 2009 09:42:04 -0000 1.6.4.4 +++ Makefile 26 Jun 2009 13:23:09 -0000 1.6.4.5 @@ -26,7 +26,7 @@ VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9._a-z]*\).*/\1/") SOURCE_VERSION = $(shell grep "%define[ ]*V_source_version" *.spec | sed -e "s/.*V_source_version\s*\([0-9._a-z-]*\).*/\1/") PASSWD_VERSION = $(shell grep "%define[ ]*V_passwd_version" *.spec | sed -e "s/.*V_passwd_version\s*\([0-9._a-z]*\).*/\1/") -RELEASE = ${YEAR}${MONTH}${DAY}suc01 +RELEASE = ${YEAR}${MONTH}${DAY}suc03 PATCHES = ../patches/horde-webmail/$(VERSION)/horde-webmail-$(VERSION)_kolab_openpkg.patch TEMPLATES = $(shell find . -name "*.template") Index: kolab-webclient.spec =================================================================== RCS file: /kolabrepository/server/kolab-webclient/kolab-webclient.spec,v retrieving revision 1.23.2.6.2.15 retrieving revision 1.23.2.6.2.16 diff -u -d -r1.23.2.6.2.15 -r1.23.2.6.2.16 --- kolab-webclient.spec 26 Jun 2009 09:46:31 -0000 1.23.2.6.2.15 +++ kolab-webclient.spec 26 Jun 2009 13:23:09 -0000 1.23.2.6.2.16 @@ -8,7 +8,7 @@ %define V_source_version 1.2 %define V_passwd_version 3.0.1 %define V_date %{V_year}-%{V_month}-%{V_day} -%define V_release %{V_year}%{V_month}%{V_day}suc01 +%define V_release %{V_year}%{V_month}%{V_day}suc03 # Package Information Name: %{V_package} From cvs at kolab.org Fri Jun 26 17:02:07 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Fri, 26 Jun 2009 17:02:07 +0200 (CEST) Subject: gunnar: server/pear/Horde_Framework-H4 package.info,1.2,1.3 Message-ID: <20090626150207.4160160082E@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/pear/Horde_Framework-H4 In directory doto:/tmp/cvs-serv2079 Modified Files: package.info Log Message: Update Horde_Framework-H4 Index: package.info =================================================================== RCS file: /kolabrepository/server/pear/Horde_Framework-H4/package.info,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- package.info 25 Jun 2009 19:08:44 -0000 1.2 +++ package.info 26 Jun 2009 15:02:05 -0000 1.3 @@ -2,15 +2,15 @@ horde_package='Horde_Framework' package='Horde_Framework-H4' package_origin='VC-CVS' -repo_commit=':20090622' -repo_release='20090622' -version='0.0.2dev20090622' -release='20090622' +repo_commit=':20090626' +repo_release='20090626' +version='0.0.2dev20090626' +release='20090626' sourceurl='http://pear.horde.org/get' php_lib_loc='php-h4' www_loc='client' summary='Horde core Framework libraries' license='LGPL' buildprereq='BuildPreReq: OpenPKG, openpkg >= 20070603\nBuildPreReq: php, php::with_pear = yes\nBuildPreReq: PEAR-Horde-Channel\n' -prereq='PreReq: OpenPKG, openpkg >= 20070603\nPreReq: php, php::with_pear = yes\nPreReq: PEAR-Log\nPreReq: Horde_CLI\nPreReq: Horde_DOM\nPreReq: Horde_Util-H4 >= 0.2.0dev20090622\nPreReq: PEAR-Horde-Channel' +prereq='PreReq: OpenPKG, openpkg >= 20070603\nPreReq: php, php::with_pear = yes\nPreReq: PEAR-Log\nPreReq: Horde_CLI\nPreReq: Horde_DOM\nPreReq: Horde_Util-H4 >= 0.2.0dev20090622\nPreReq: PEAR-Horde-Channel\nPreReq: Horde_Notification-H4' description='These classes provide the core functionality of the Horde Application\nFramework.' From cvs at kolab.org Sat Apr 25 23:04:33 2009 From: cvs at kolab.org (cvs@kolab.org) Date: Sat, 25 Apr 2009 21:04:33 -0000 Subject: gunnar: server/kolab-webclient/patches/1.2.0/KOLAB series, NONE, 1.1 t_COPYRIGHT.diff, NONE, 1.1 t_COPYRIGHT2.diff, NONE, 1.1 t_COPYRIGHT3.diff, NONE, 1.1 t_GLOBAL_HK_GW_Config.diff, NONE, 1.1 t_GLOBAL_HK_GW_ConfigOpenPKG.diff, NONE, 1.1 t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff, NONE, 1.1 t_Kolab__Server_HK_GW_DenyLogin.diff, NONE, 1.1 t_Kolab__Server_HK_GW_FixAddrForIdOrMail.diff, NONE, 1.1 t_Kolab__Server_HK_GW_FixBodyHeaderBreakInTestDriver.diff, NONE, 1.1 t_Kolab__Server_HK_GW_FixLowerCaseObjectClasses.diff, NONE, 1.1 t_Kolab__Server_HK_GW_FixNotics.diff, NONE, 1.1 t_Kolab__Server_HK_GW_UserMailAndFullname.diff, NONE, 1.1 t_Kolab__Storage_HK_GW_MultipleListCaches.diff, NONE, 1.1 t_Kolab__Storage_HK_GW_SuppressTriggering.diff, NONE, 1.1 t_Prefs_HK_GW_FixLDAPAuthForIngo.diff, NONE, 1.1 t_SyncML_HK_GW_CombinedFixes.diff, NONE, 1.1 t_Text_Filter_SC_CH_Xss.diff, NONE, 1.1 t_dimp_HK_GW_ItipHandling.diff, NONE, 1.1 t_dimp_H_MS_FixBrokenFolderImages.diff, NONE, 1.1 t_framework_HK_GW_Auth_InvalidCh eck.diff, NONE, 1.1 t_framework_HK_GW_Auth_ListUsers.diff, NONE, 1.1 t_framework_HK_GW_Auth_SafetyCheck.diff, NONE, 1.1 t_framework_HK_GW_Auth_UseKolabServer.diff, NONE, 1.1 t_framework_HK_GW_Auth_UseSession.diff, NONE, 1.1 t_framework_HK_GW_DB_SqliteErrorChecking.diff, NONE, 1.1 t_framework_HK_GW_Kolab_AttachmentSupport.diff, NONE, 1.1 t_framework_HK_GW_Kolab_MoveIMAP.diff, NONE, 1.1 t_framework_HK_GW_Kolab_XfbFixes.diff, NONE, 1.1 t_framework_HK_GW_Kolab__Fbview_XfbConcept.diff, NONE, 1.1 t_framework_HK_GW_Kolab__Format_ImprovedPreferencesHandling.diff, NONE, 1.1 t_framework_HK_GW_Kolab__Server_AdditionalGetFeeBusyServerFixes.diff, NONE, 1.1 t_framework_HK_GW_Kolab__Server_FixAddressObjectIdentification.diff, NONE, 1.1 t_framework_HK_GW_Kolab__Server_FixGetGroups.diff, NONE, 1.1 t_framework_HK_GW_Kolab__Server_ImprovedFreebusyServerFallback.diff, NONE, 1.1 t_framework_HK_GW_Kolab__Server_ImprovedServerFallbacks.diff, NONE, 1.1 t_framework_HK_GW_Kolab__Server_ListObjects.diff, NONE, 1.1 t_framework_HK_GW_Ko lab__Server_RequireIMAP.diff, NONE, 1.1 t_framework_HK_GW_Kolab__Server_RewriteExtend.diff, NONE, 1.1 t_framework_HK_GW_Kolab__Server_SafetyCheck.diff, NONE, 1.1 t_framework_HK_GW_Kolab__Server_Session.diff, NONE, 1.1 t_framework_HK_GW_Kolab__Server_getFreebusyServer.diff, NONE, 1.1 t_framework_HK_GW_Kolab__Storage_CatchPossibleError.diff, NONE, 1.1 t_framework_HK_GW_Kolab__Storage_FixTriggerOnFolderCreation.diff, NONE, 1.1 t_framework_HK_GW_Kolab__Storage_FixTriggerOnFolderRename.diff, NONE, 1.1 t_framework_HK_GW_Kolab__Storage_Foreign__owner.patch.diff, NONE, 1.1 t_framework_HK_GW_Kolab__Storage_Restructuring__Fixes.diff, NONE, 1.1 t_framework_HK_GW_Kolab__Storage_ShareIdFix.diff, NONE, 1.1 t_framework_HK_GW_Kolab__Storage_Trigger.diff, NONE, 1.1 t_framework_HK_GW_Kolab__Storgae_FixedUpdateTriggering.diff, NONE, 1.1 t_framework_HK_GW_Prefs__KolabImapApplicationTag.diff, NONE, 1.1 t_framework_HK_GW_Vfs_KolabDriver.diff, NONE, 1.1 t_framework_HK_GW_framework_Kolab_DeprecatedGetServer.diff, NONE, 1.1 t_fram ework_HK_GW_framework_Kolab_MoveSessionHandler.diff, NONE, 1.1 t_framework_HK_GW_framework_Kolab__Format_WS.diff, NONE, 1.1 t_framework_HK_GW_horde_conf__xmlUpdates.diff, NONE, 1.1 t_framework_HK_GW_iCalendar_QuotedParameters.diff, NONE, 1.1 t_horde_SC_CH_SecIssues20090128.diff, NONE, 1.1 t_imp_HK_GW_AuthForInvitations.diff, NONE, 1.1 t_imp_H_GW_DefaultLoginView.diff, NONE, 1.1 t_imp_H_GW_LoginRetries.diff, NONE, 1.1 t_imp_H_JS_bug7739.diff, NONE, 1.1 t_imp_H_MS_bug7438.diff, NONE, 1.1 t_imp_HideGroupwareFolders.diff, NONE, 1.1 t_imp_SC_CH_SecIssues20090128.diff, NONE, 1.1 t_kronolith_HK_GW_AuthenticatedFreeBusy.diff, NONE, 1.1 t_kronolith_HK_GW_CalendarRenaming.diff, NONE, 1.1 t_kronolith_HK_GW_FbviewRelevance.diff, NONE, 1.1 t_kronolith_HK_GW_SyncMLrefresh.diff, NONE, 1.1 t_kronolith_HK_GW_XfbAccess.diff, NONE, 1.1 t_kronolith_HK_GW_getFreebusyServer.diff, NONE, 1.1 t_kronolith_HK_SB_ExtraParameters.diff, NONE, 1.1 t_kronolith_HK_SB_SaveEventAttendees.diff, NONE, 1.1 t_nag_H_MR_Bug__7400.diff, NONE, 1.1 t_pear_HK_ GW_AddNetIMAP.diff, NONE, 1.1 t_turba_HK_GW_AutomaticFreeBusyUrl.diff, NONE, 1.1 t_turba_HK_GW_FixAddressbookDeletion.diff, NONE, 1.1 t_turba_HK_GW_FixSyncMLAttributeDeletion.diff, NONE, 1.1 t_turba_HK_GW_PhotoSupport.diff, NONE, 1.1 t_turba_HK_GW_SyncMLrefresh.diff, NONE, 1.1 Message-ID: <20090425210421.F055B600830@lists.intevation.de> Author: gunnar Update of /kolabrepository/server/kolab-webclient/patches/1.2.0/KOLAB In directory doto:/tmp/cvs-serv28792 Added Files: series t_COPYRIGHT.diff t_COPYRIGHT2.diff t_COPYRIGHT3.diff t_GLOBAL_HK_GW_Config.diff t_GLOBAL_HK_GW_ConfigOpenPKG.diff t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff t_Kolab__Server_HK_GW_DenyLogin.diff t_Kolab__Server_HK_GW_FixAddrForIdOrMail.diff t_Kolab__Server_HK_GW_FixBodyHeaderBreakInTestDriver.diff t_Kolab__Server_HK_GW_FixLowerCaseObjectClasses.diff t_Kolab__Server_HK_GW_FixNotics.diff t_Kolab__Server_HK_GW_UserMailAndFullname.diff t_Kolab__Storage_HK_GW_MultipleListCaches.diff t_Kolab__Storage_HK_GW_SuppressTriggering.diff t_Prefs_HK_GW_FixLDAPAuthForIngo.diff t_SyncML_HK_GW_CombinedFixes.diff t_Text_Filter_SC_CH_Xss.diff t_dimp_HK_GW_ItipHandling.diff t_dimp_H_MS_FixBrokenFolderImages.diff t_framework_HK_GW_Auth_InvalidCheck.diff t_framework_HK_GW_Auth_ListUsers.diff t_framework_HK_GW_Auth_SafetyCheck.diff t_framework_HK_GW_Auth_UseKolabServer.diff t_framework_HK_GW_Auth_UseSession.diff t_framework_HK_GW_DB_SqliteErrorChecking.diff t_framework_HK_GW_Kolab_AttachmentSupport.diff t_framework_HK_GW_Kolab_MoveIMAP.diff t_framework_HK_GW_Kolab_XfbFixes.diff t_framework_HK_GW_Kolab__Fbview_XfbConcept.diff t_framework_HK_GW_Kolab__Format_ImprovedPreferencesHandling.diff t_framework_HK_GW_Kolab__Server_AdditionalGetFeeBusyServerFixes.diff t_framework_HK_GW_Kolab__Server_FixAddressObjectIdentification.diff t_framework_HK_GW_Kolab__Server_FixGetGroups.diff t_framework_HK_GW_Kolab__Server_ImprovedFreebusyServerFallback.diff t_framework_HK_GW_Kolab__Server_ImprovedServerFallbacks.diff t_framework_HK_GW_Kolab__Server_ListObjects.diff t_framework_HK_GW_Kolab__Server_RequireIMAP.diff t_framework_HK_GW_Kolab__Server_RewriteExtend.diff t_framework_HK_GW_Kolab__Server_SafetyCheck.diff t_framework_HK_GW_Kolab__Server_Session.diff t_framework_HK_GW_Kolab__Server_getFreebusyServer.diff t_framework_HK_GW_Kolab__Storage_CatchPossibleError.diff t_framework_HK_GW_Kolab__Storage_FixTriggerOnFolderCreation.diff t_framework_HK_GW_Kolab__Storage_FixTriggerOnFolderRename.diff t_framework_HK_GW_Kolab__Storage_Foreign__owner.patch.diff t_framework_HK_GW_Kolab__Storage_Restructuring__Fixes.diff t_framework_HK_GW_Kolab__Storage_ShareIdFix.diff t_framework_HK_GW_Kolab__Storage_Trigger.diff t_framework_HK_GW_Kolab__Storgae_FixedUpdateTriggering.diff t_framework_HK_GW_Prefs__KolabImapApplicationTag.diff t_framework_HK_GW_Vfs_KolabDriver.diff t_framework_HK_GW_framework_Kolab_DeprecatedGetServer.diff t_framework_HK_GW_framework_Kolab_MoveSessionHandler.diff t_framework_HK_GW_framework_Kolab__Format_WS.diff t_framework_HK_GW_horde_conf__xmlUpdates.diff t_framework_HK_GW_iCalendar_QuotedParameters.diff t_horde_SC_CH_SecIssues20090128.diff t_imp_HK_GW_AuthForInvitations.diff t_imp_H_GW_DefaultLoginView.diff t_imp_H_GW_LoginRetries.diff t_imp_H_JS_bug7739.diff t_imp_H_MS_bug7438.diff t_imp_HideGroupwareFolders.diff t_imp_SC_CH_SecIssues20090128.diff t_kronolith_HK_GW_AuthenticatedFreeBusy.diff t_kronolith_HK_GW_CalendarRenaming.diff t_kronolith_HK_GW_FbviewRelevance.diff t_kronolith_HK_GW_SyncMLrefresh.diff t_kronolith_HK_GW_XfbAccess.diff t_kronolith_HK_GW_getFreebusyServer.diff t_kronolith_HK_SB_ExtraParameters.diff t_kronolith_HK_SB_SaveEventAttendees.diff t_nag_H_MR_Bug__7400.diff t_pear_HK_GW_AddNetIMAP.diff t_turba_HK_GW_AutomaticFreeBusyUrl.diff t_turba_HK_GW_FixAddressbookDeletion.diff t_turba_HK_GW_FixSyncMLAttributeDeletion.diff t_turba_HK_GW_PhotoSupport.diff t_turba_HK_GW_SyncMLrefresh.diff Log Message: Moved the patches from patches/horde-webmail/1.2.0/tg into kolab-webclient/patches/1.2.0/KOLAB. This is an exact copy of the tg dir besides the series file. Here the unnecessary -p1 bits were removed from each line. --- NEW FILE: series --- t_SyncML_HK_GW_CombinedFixes.diff t_Prefs_HK_GW_FixLDAPAuthForIngo.diff t_Text_Filter_SC_CH_Xss.diff t_framework_HK_GW_framework_Kolab__Format_WS.diff t_framework_HK_GW_Kolab__Format_ImprovedPreferencesHandling.diff t_framework_HK_GW_Prefs__KolabImapApplicationTag.diff t_framework_HK_GW_horde_conf__xmlUpdates.diff t_kronolith_HK_GW_AuthenticatedFreeBusy.diff t_nag_H_MR_Bug__7400.diff t_GLOBAL_HK_GW_Config.diff t_GLOBAL_HK_GW_ConfigOpenPKG.diff t_kronolith_HK_GW_SyncMLrefresh.diff t_turba_HK_GW_FixAddressbookDeletion.diff t_turba_HK_GW_FixSyncMLAttributeDeletion.diff t_turba_HK_GW_SyncMLrefresh.diff t_imp_HideGroupwareFolders.diff t_imp_SC_CH_SecIssues20090128.diff t_horde_SC_CH_SecIssues20090128.diff t_dimp_H_MS_FixBrokenFolderImages.diff t_dimp_HK_GW_ItipHandling.diff t_framework_HK_GW_Kolab__Server_Session.diff t_framework_HK_GW_Auth_UseSession.diff t_framework_HK_GW_Kolab__Server_getFreebusyServer.diff t_kronolith_HK_GW_getFreebusyServer.diff t_framework_HK_GW_Kolab__Storage_Foreign__owner.patch.diff t_framework_HK_GW_Kolab__Storage_Trigger.diff t_framework_HK_GW_framework_Kolab_MoveSessionHandler.diff t_framework_HK_GW_framework_Kolab_DeprecatedGetServer.diff t_framework_HK_GW_Kolab__Storage_Restructuring__Fixes.diff t_framework_HK_GW_Kolab__Server_ListObjects.diff t_framework_HK_GW_Auth_ListUsers.diff t_framework_HK_GW_Kolab__Server_RewriteExtend.diff t_framework_HK_GW_Kolab__Storage_CatchPossibleError.diff t_framework_HK_GW_Auth_UseKolabServer.diff t_framework_HK_GW_Kolab__Server_SafetyCheck.diff t_framework_HK_GW_Kolab_MoveIMAP.diff t_framework_HK_GW_Auth_SafetyCheck.diff t_framework_HK_GW_Kolab__Server_RequireIMAP.diff t_framework_HK_GW_Auth_InvalidCheck.diff t_framework_HK_GW_Kolab_AttachmentSupport.diff t_framework_HK_GW_Vfs_KolabDriver.diff t_turba_HK_GW_PhotoSupport.diff t_framework_HK_GW_Kolab__Server_ImprovedFreebusyServerFallback.diff t_framework_HK_GW_Kolab__Server_ImprovedServerFallbacks.diff t_framework_HK_GW_Kolab__Storgae_FixedUpdateTriggering.diff t_turba_HK_GW_AutomaticFreeBusyUrl.diff t_framework_HK_GW_Kolab__Server_FixGetGroups.diff t_kronolith_HK_GW_CalendarRenaming.diff t_framework_HK_GW_Kolab__Storage_FixTriggerOnFolderRename.diff t_framework_HK_GW_Kolab__Storage_FixTriggerOnFolderCreation.diff t_framework_HK_GW_Kolab__Server_AdditionalGetFeeBusyServerFixes.diff t_framework_HK_GW_Kolab__Server_FixAddressObjectIdentification.diff t_framework_HK_GW_Kolab__Fbview_XfbConcept.diff t_framework_HK_GW_Kolab_XfbFixes.diff t_framework_HK_GW_DB_SqliteErrorChecking.diff t_framework_HK_GW_Kolab__Storage_ShareIdFix.diff t_framework_HK_GW_iCalendar_QuotedParameters.diff t_Kolab__Server_HK_GW_DenyLogin.diff t_Kolab__Server_HK_GW_UserMailAndFullname.diff t_imp_HK_GW_AuthForInvitations.diff t_Kolab__Storage_HK_GW_MultipleListCaches.diff t_Kolab__Server_HK_GW_FixAddrForIdOrMail.diff t_COPYRIGHT.diff t_Kolab__Server_HK_GW_FixLowerCaseObjectClasses.diff t_Kolab__Server_HK_GW_FixNotics.diff t_COPYRIGHT2.diff t_Kolab__Storage_HK_GW_SuppressTriggering.diff t_COPYRIGHT3.diff t_imp_H_MS_bug7438.diff t_imp_H_JS_bug7739.diff t_imp_H_GW_DefaultLoginView.diff t_imp_H_GW_LoginRetries.diff t_Kolab__Server_HK_GW_FixBodyHeaderBreakInTestDriver.diff t_pear_HK_GW_AddNetIMAP.diff t_kronolith_HK_SB_SaveEventAttendees.diff t_kronolith_HK_SB_ExtraParameters.diff t_kronolith_HK_GW_FbviewRelevance.diff t_kronolith_HK_GW_XfbAccess.diff --- NEW FILE: t_COPYRIGHT.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/COPYRIGHT Fixes the copyright information. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Format.php | 6 +++--- horde-webmail/lib/Horde/Kolab/Format/Date.php | 7 ++++--- horde-webmail/lib/Horde/Kolab/Format/XML.php | 6 +++--- .../lib/Horde/Kolab/Format/XML/annotation.php | 6 +++--- .../lib/Horde/Kolab/Format/XML/contact.php | 6 +++--- .../Horde/Kolab/Format/XML/distributionlist.php | 6 +++--- horde-webmail/lib/Horde/Kolab/Format/XML/event.php | 6 +++--- .../lib/Horde/Kolab/Format/XML/hprefs.php | 6 +++--- horde-webmail/lib/Horde/Kolab/Format/XML/note.php | 6 +++--- horde-webmail/lib/Horde/Kolab/Format/XML/task.php | 6 +++--- 10 files changed, 31 insertions(+), 30 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Format.php b/horde-webmail/lib/Horde/Kolab/Format.php index 372fa4f..cae1966 100644 --- a/horde-webmail/lib/Horde/Kolab/Format.php +++ b/horde-webmail/lib/Horde/Kolab/Format.php @@ -14,12 +14,12 @@ require_once 'PEAR.php'; * The Horde_Kolab_Format:: class provides the means to read/write the * Kolab format. * - * $Horde: framework/Kolab_Format/lib/Horde/Kolab/Format.php,v 1.4.2.3 2008/08/01 07:13:20 wrobel Exp $ + * $Horde: framework/Kolab_Format/lib/Horde/Kolab/Format.php,v 1.4.2.4 2008/12/12 11:39:03 wrobel Exp $ * - * Copyright 2007-2008 The Horde Project (http://www.horde.org/) + * Copyright 2007-2008 Klarälvdalens Datakonsult AB * * See the enclosed file COPYING for license information (LGPL). If you - * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. + * did not receive this file, see http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. * * @since Horde 3.2 * @author Gunnar Wrobel diff --git a/horde-webmail/lib/Horde/Kolab/Format/Date.php b/horde-webmail/lib/Horde/Kolab/Format/Date.php index da1e9c2..58244b2 100644 --- a/horde-webmail/lib/Horde/Kolab/Format/Date.php +++ b/horde-webmail/lib/Horde/Kolab/Format/Date.php @@ -10,13 +10,14 @@ /** * Kolab date handling functions. Based upon Kolab.php from Stuart Binge. * - * $Horde: framework/Kolab_Format/lib/Horde/Kolab/Format/Date.php,v 1.2.2.3 2008/08/01 07:13:20 wrobel Exp $ + * $Horde: framework/Kolab_Format/lib/Horde/Kolab/Format/Date.php,v 1.2.2.5 2009/01/06 15:23:13 jan Exp $ * - * Copyright 2007-2008 The Horde Project (http://www.horde.org/) + * Copyright 2004-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you - * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. + * did not receive this file, see http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. * + * @author Stuart Binge * @author Thomas Jarosch * @package Kolab_Format */ diff --git a/horde-webmail/lib/Horde/Kolab/Format/XML.php b/horde-webmail/lib/Horde/Kolab/Format/XML.php index fefa362..2472c83 100644 --- a/horde-webmail/lib/Horde/Kolab/Format/XML.php +++ b/horde-webmail/lib/Horde/Kolab/Format/XML.php @@ -95,12 +95,12 @@ define('HORDE_KOLAB_XML_TYPE_MULTIPLE', 8); * For implementing a new format type you will have to inherit this * class and provide a _load/_save function. * - * $Horde: framework/Kolab_Format/lib/Horde/Kolab/Format/XML.php,v 1.5.2.6 2008/09/16 16:22:54 wrobel Exp $ + * $Horde: framework/Kolab_Format/lib/Horde/Kolab/Format/XML.php,v 1.5.2.10 2008/12/12 11:39:04 wrobel Exp $ * - * Copyright 2007-2008 The Horde Project (http://www.horde.org/) + * Copyright 2007-2008 Klarälvdalens Datakonsult AB * * See the enclosed file COPYING for license information (LGPL). If you - * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. + * did not receive this file, see http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. * * @since Horde 3.2 * @author Thomas Jarosch diff --git a/horde-webmail/lib/Horde/Kolab/Format/XML/annotation.php b/horde-webmail/lib/Horde/Kolab/Format/XML/annotation.php index cff091f..d3a8981 100644 --- a/horde-webmail/lib/Horde/Kolab/Format/XML/annotation.php +++ b/horde-webmail/lib/Horde/Kolab/Format/XML/annotation.php @@ -10,12 +10,12 @@ /** * Kolab XML handler for IMAP folder annotations. * - * $Horde: framework/Kolab_Format/lib/Horde/Kolab/Format/XML/annotation.php,v 1.1.2.3 2008/08/13 10:54:19 wrobel Exp $ + * $Horde: framework/Kolab_Format/lib/Horde/Kolab/Format/XML/annotation.php,v 1.1.2.5 2009/01/06 15:23:14 jan Exp $ * - * Copyright 2008 The Horde Project (http://www.horde.org/) + * Copyright 2008-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you - * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. + * did not receive this file, see http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. * * @since Horde 3.2 * @author Gunnar Wrobel diff --git a/horde-webmail/lib/Horde/Kolab/Format/XML/contact.php b/horde-webmail/lib/Horde/Kolab/Format/XML/contact.php index 66fa525..ffdfbc7 100644 --- a/horde-webmail/lib/Horde/Kolab/Format/XML/contact.php +++ b/horde-webmail/lib/Horde/Kolab/Format/XML/contact.php @@ -10,12 +10,12 @@ /** * Kolab XML handler for contact groupware objects * - * $Horde: framework/Kolab_Format/lib/Horde/Kolab/Format/XML/contact.php,v 1.2.2.5 2008/08/21 04:31:49 wrobel Exp $ + * $Horde: framework/Kolab_Format/lib/Horde/Kolab/Format/XML/contact.php,v 1.2.2.6 2008/12/12 11:39:04 wrobel Exp $ * - * Copyright 2007-2008 The Horde Project (http://www.horde.org/) + * Copyright 2007-2008 Klarälvdalens Datakonsult AB * * See the enclosed file COPYING for license information (LGPL). If you - * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. + * did not receive this file, see http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. * * @since Horde 3.2 * @author Thomas Jarosch diff --git a/horde-webmail/lib/Horde/Kolab/Format/XML/distributionlist.php b/horde-webmail/lib/Horde/Kolab/Format/XML/distributionlist.php index 4c789f6..d628be7 100644 --- a/horde-webmail/lib/Horde/Kolab/Format/XML/distributionlist.php +++ b/horde-webmail/lib/Horde/Kolab/Format/XML/distributionlist.php @@ -10,12 +10,12 @@ /** * Kolab XML handler for distributionlist groupware objects * - * $Horde: framework/Kolab_Format/lib/Horde/Kolab/Format/XML/distributionlist.php,v 1.2.2.4 2008/08/13 10:54:19 wrobel Exp $ + * $Horde: framework/Kolab_Format/lib/Horde/Kolab/Format/XML/distributionlist.php,v 1.2.2.5 2008/12/12 11:39:04 wrobel Exp $ * - * Copyright 2007-2008 The Horde Project (http://www.horde.org/) + * Copyright 2007-2008 Klarälvdalens Datakonsult AB * * See the enclosed file COPYING for license information (LGPL). If you - * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. + * did not receive this file, see http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. * * @since Horde 3.2 * @author Thomas Jarosch diff --git a/horde-webmail/lib/Horde/Kolab/Format/XML/event.php b/horde-webmail/lib/Horde/Kolab/Format/XML/event.php index 38d8850..9f71239 100644 --- a/horde-webmail/lib/Horde/Kolab/Format/XML/event.php +++ b/horde-webmail/lib/Horde/Kolab/Format/XML/event.php @@ -13,12 +13,12 @@ require_once 'Horde/Kolab/Format/Date.php'; /** * Kolab XML handler for event groupware objects. * - * $Horde: framework/Kolab_Format/lib/Horde/Kolab/Format/XML/event.php,v 1.2.2.2 2008/08/01 07:13:21 wrobel Exp $ + * $Horde: framework/Kolab_Format/lib/Horde/Kolab/Format/XML/event.php,v 1.2.2.3 2008/12/12 11:39:04 wrobel Exp $ * - * Copyright 2007-2008 The Horde Project (http://www.horde.org/) + * Copyright 2007-2008 Klarälvdalens Datakonsult AB * * See the enclosed file COPYING for license information (LGPL). If you - * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. + * did not receive this file, see http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. * * @since Horde 3.2 * @author Thomas Jarosch diff --git a/horde-webmail/lib/Horde/Kolab/Format/XML/hprefs.php b/horde-webmail/lib/Horde/Kolab/Format/XML/hprefs.php index 22a94bc..f45b26c 100644 --- a/horde-webmail/lib/Horde/Kolab/Format/XML/hprefs.php +++ b/horde-webmail/lib/Horde/Kolab/Format/XML/hprefs.php @@ -10,12 +10,12 @@ /** * Kolab XML handler for client preferences. * - * $Horde: framework/Kolab_Format/lib/Horde/Kolab/Format/XML/hprefs.php,v 1.2.2.3 2008/08/20 20:25:28 wrobel Exp $ + * $Horde: framework/Kolab_Format/lib/Horde/Kolab/Format/XML/hprefs.php,v 1.2.2.7 2009/01/06 15:23:14 jan Exp $ * - * Copyright 2007 The Horde Project (http://www.horde.org/) + * Copyright 2007-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you - * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. + * did not receive this file, see http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. * * @since Horde 3.2 * @author Gunnar Wrobel diff --git a/horde-webmail/lib/Horde/Kolab/Format/XML/note.php b/horde-webmail/lib/Horde/Kolab/Format/XML/note.php index 84c6326..37b1d73 100644 --- a/horde-webmail/lib/Horde/Kolab/Format/XML/note.php +++ b/horde-webmail/lib/Horde/Kolab/Format/XML/note.php @@ -10,12 +10,12 @@ /** * Kolab XML handler for note groupware objects. * - * $Horde: framework/Kolab_Format/lib/Horde/Kolab/Format/XML/note.php,v 1.2.2.4 2008/08/13 10:54:19 wrobel Exp $ + * $Horde: framework/Kolab_Format/lib/Horde/Kolab/Format/XML/note.php,v 1.2.2.5 2008/12/12 11:39:04 wrobel Exp $ * - * Copyright 2007-2008 The Horde Project (http://www.horde.org/) + * Copyright 2007-2008 Klarälvdalens Datakonsult AB * * See the enclosed file COPYING for license information (LGPL). If you - * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. + * did not receive this file, see http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. * * @since Horde 3.2 * @author Thomas Jarosch diff --git a/horde-webmail/lib/Horde/Kolab/Format/XML/task.php b/horde-webmail/lib/Horde/Kolab/Format/XML/task.php index d700b89..5c71267 100644 --- a/horde-webmail/lib/Horde/Kolab/Format/XML/task.php +++ b/horde-webmail/lib/Horde/Kolab/Format/XML/task.php @@ -10,12 +10,12 @@ /** * Kolab XML handler for task groupware objects. * - * $Horde: framework/Kolab_Format/lib/Horde/Kolab/Format/XML/task.php,v 1.2.2.5 2008/08/13 10:54:19 wrobel Exp $ + * $Horde: framework/Kolab_Format/lib/Horde/Kolab/Format/XML/task.php,v 1.2.2.6 2008/12/12 11:39:04 wrobel Exp $ * - * Copyright 2007-2008 The Horde Project (http://www.horde.org/) + * Copyright 2007-2008 Klarälvdalens Datakonsult AB * * See the enclosed file COPYING for license information (LGPL). If you - * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. + * did not receive this file, see http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. * * @since Horde 3.2 * @author Thomas Jarosch -- tg: (6e63b1b..) t/COPYRIGHT (depends on: t/Kolab_Server/HK/GW/FixAddrForIdOrMail) -- TOPGIT patch commit log ======================= commit a3542e35d21c42304c3809074411981bfc88d8b3 Author: Gunnar Wrobel

    Date: Tue Feb 24 06:12:30 2009 +0000 Synced the Kolab_Format package with horde-fw3. --- NEW FILE: t_COPYRIGHT2.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/COPYRIGHT2 Syncs the Kolab_Server module in the kolab-webclient with horde-fw3. STATUS: MERGED Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/IMAP.php | 4 +- horde-webmail/lib/Horde/Kolab/IMAP/cclient.php | 4 +- horde-webmail/lib/Horde/Kolab/IMAP/pear.php | 4 +- horde-webmail/lib/Horde/Kolab/IMAP/test.php | 4 +- horde-webmail/lib/Horde/Kolab/Server.php | 4 +- horde-webmail/lib/Horde/Kolab/Server/Object.php | 4 +- .../lib/Horde/Kolab/Server/Object/address.php | 4 +- .../Horde/Kolab/Server/Object/administrator.php | 4 +- .../lib/Horde/Kolab/Server/Object/adminrole.php | 4 +- .../lib/Horde/Kolab/Server/Object/distlist.php | 4 +- .../Horde/Kolab/Server/Object/domainmaintainer.php | 4 +- .../lib/Horde/Kolab/Server/Object/group.php | 4 +- .../lib/Horde/Kolab/Server/Object/maintainer.php | 4 +- .../lib/Horde/Kolab/Server/Object/server.php | 4 +- .../lib/Horde/Kolab/Server/Object/sharedfolder.php | 4 +- .../lib/Horde/Kolab/Server/Object/user.php | 4 +- horde-webmail/lib/Horde/Kolab/Server/ldap.php | 4 +- horde-webmail/lib/Horde/Kolab/Server/test.php | 4 +- horde-webmail/lib/Horde/Kolab/Session.php | 23 +++++++++++++------ 19 files changed, 52 insertions(+), 43 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/IMAP.php b/horde-webmail/lib/Horde/Kolab/IMAP.php index 20a31b2..a7cf592 100644 --- a/horde-webmail/lib/Horde/Kolab/IMAP.php +++ b/horde-webmail/lib/Horde/Kolab/IMAP.php @@ -9,9 +9,9 @@ * The Horde_Kolab_IMAP class provides a wrapper around two different Kolab IMAP * connection types. * - * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Storage/IMAP.php,v 1.2 2008/08/18 13:32:56 wrobel Exp $ + * $Horde: framework/Kolab_Server/lib/Horde/Kolab/IMAP.php,v 1.1.2.2 2009/01/06 15:23:15 jan Exp $ * - * Copyright 2007-2008 The Horde Project (http://www.horde.org/) + * Copyright 2007-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/IMAP/cclient.php b/horde-webmail/lib/Horde/Kolab/IMAP/cclient.php index 78aa997..e31cd08 100644 --- a/horde-webmail/lib/Horde/Kolab/IMAP/cclient.php +++ b/horde-webmail/lib/Horde/Kolab/IMAP/cclient.php @@ -9,9 +9,9 @@ * The Horde_Kolab_IMAP_Connection_cclient class connects to an IMAP server using * the IMAP functionality within PHP. * - * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Storage/IMAP/cclient.php,v 1.3 2008/10/06 17:22:42 slusarz Exp $ + * $Horde: framework/Kolab_Server/lib/Horde/Kolab/IMAP/cclient.php,v 1.1.2.2 2009/01/06 15:23:15 jan Exp $ * - * Copyright 2007-2008 The Horde Project (http://www.horde.org/) + * Copyright 2007-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/IMAP/pear.php b/horde-webmail/lib/Horde/Kolab/IMAP/pear.php index d9c2c86..8afff30 100644 --- a/horde-webmail/lib/Horde/Kolab/IMAP/pear.php +++ b/horde-webmail/lib/Horde/Kolab/IMAP/pear.php @@ -17,9 +17,9 @@ require_once 'Net/IMAP.php'; * The Horde_Kolab_IMAP_Connection_pear class connects to an IMAP server using the * Net_IMAP PEAR package. * - * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Storage/IMAP/pear.php,v 1.2 2008/08/18 13:32:56 wrobel Exp $ + * $Horde: framework/Kolab_Server/lib/Horde/Kolab/IMAP/pear.php,v 1.1.2.2 2009/01/06 15:23:15 jan Exp $ * - * Copyright 2007-2008 The Horde Project (http://www.horde.org/) + * Copyright 2007-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/IMAP/test.php b/horde-webmail/lib/Horde/Kolab/IMAP/test.php index b6f1e49..5a804af 100644 --- a/horde-webmail/lib/Horde/Kolab/IMAP/test.php +++ b/horde-webmail/lib/Horde/Kolab/IMAP/test.php @@ -14,9 +14,9 @@ define('KOLAB_IMAP_FLAG_DELETED', 1); * The Horde_Kolab_IMAP_Connection_test class simulates an IMAP server for * testing purposes. * - * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Storage/IMAP/test.php,v 1.2 2008/08/18 13:32:56 wrobel Exp $ + * $Horde: framework/Kolab_Server/lib/Horde/Kolab/IMAP/test.php,v 1.1.2.3 2009/02/23 23:02:30 wrobel Exp $ * - * Copyright 2007-2008 The Horde Project (http://www.horde.org/) + * Copyright 2007-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Server.php b/horde-webmail/lib/Horde/Kolab/Server.php index fea438a..bf251f5 100644 --- a/horde-webmail/lib/Horde/Kolab/Server.php +++ b/horde-webmail/lib/Horde/Kolab/Server.php @@ -28,9 +28,9 @@ define('KOLAB_SERVER_RESULT_MANY', 3); * This class provides methods to deal with Kolab objects stored in * the Kolab object db. * - * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server.php,v 1.2.2.3 2008/09/22 12:22:33 wrobel Exp $ + * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server.php,v 1.2.2.8 2009/01/08 09:33:35 wrobel Exp $ * - * Copyright 2008 The Horde Project (http://www.horde.org/) + * Copyright 2008-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object.php b/horde-webmail/lib/Horde/Kolab/Server/Object.php index e3b38e0..2e5ada2 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object.php @@ -71,9 +71,9 @@ define('KOLAB_UT_RESOURCE', 3); * This class provides methods to deal with Kolab objects stored in * the Kolab db. * - * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object.php,v 1.2.2.3 2008/09/22 16:20:59 wrobel Exp $ + * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object.php,v 1.2.2.8 2009/01/08 21:07:32 wrobel Exp $ * - * Copyright 2008 The Horde Project (http://www.horde.org/) + * Copyright 2008-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/address.php b/horde-webmail/lib/Horde/Kolab/Server/Object/address.php index 8f3aac2..98ed518 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/address.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/address.php @@ -17,9 +17,9 @@ * This class provides methods to deal with global address book * entries for Kolab. * - * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object/address.php,v 1.2.2.2 2008/08/01 07:56:20 wrobel Exp $ + * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object/address.php,v 1.2.2.5 2009/01/08 21:07:32 wrobel Exp $ * - * Copyright 2008 The Horde Project (http://www.horde.org/) + * Copyright 2008-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/administrator.php b/horde-webmail/lib/Horde/Kolab/Server/Object/administrator.php index f03ac86..2566c51 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/administrator.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/administrator.php @@ -19,9 +19,9 @@ require_once 'Horde/Kolab/Server/Object/adminrole.php'; * This class provides methods to deal with administrator * entries for Kolab. * - * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object/administrator.php,v 1.2.2.2 2008/08/01 07:56:20 wrobel Exp $ + * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object/administrator.php,v 1.2.2.4 2009/01/06 15:23:15 jan Exp $ * - * Copyright 2008 The Horde Project (http://www.horde.org/) + * Copyright 2008-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/adminrole.php b/horde-webmail/lib/Horde/Kolab/Server/Object/adminrole.php index ac1ae87..aea4410 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/adminrole.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/adminrole.php @@ -16,9 +16,9 @@ /** * This class provides methods to deal with administrator object types. * - * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object/maintainer.php,v 1.3 2008/08/01 07:49:26 wrobel Exp $ + * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object/adminrole.php,v 1.1.2.3 2009/01/06 15:23:15 jan Exp $ * - * Copyright 2008 The Horde Project (http://www.horde.org/) + * Copyright 2008-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/distlist.php b/horde-webmail/lib/Horde/Kolab/Server/Object/distlist.php index 945c047..7965e0d 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/distlist.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/distlist.php @@ -18,9 +18,9 @@ require_once 'Horde/Kolab/Server/Object/group.php'; /** * This class provides methods to deal with distribution lists for Kolab. * - * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object/group.php,v 1.3 2008/08/01 07:49:26 wrobel Exp $ + * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object/distlist.php,v 1.1.2.2 2009/01/06 15:23:15 jan Exp $ * - * Copyright 2008 The Horde Project (http://www.horde.org/) + * Copyright 2008-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/domainmaintainer.php b/horde-webmail/lib/Horde/Kolab/Server/Object/domainmaintainer.php index 7fdfd53..a76070c 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/domainmaintainer.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/domainmaintainer.php @@ -18,9 +18,9 @@ require_once 'Horde/Kolab/Server/Object/adminrole.php'; /** * This class provides methods associated to Kolab domain maintainers. * - * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object/domainmaintainer.php,v 1.2.2.2 2008/08/01 07:56:20 wrobel Exp $ + * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object/domainmaintainer.php,v 1.2.2.5 2009/01/06 15:23:15 jan Exp $ * - * Copyright 2008 The Horde Project (http://www.horde.org/) + * Copyright 2008-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/group.php b/horde-webmail/lib/Horde/Kolab/Server/Object/group.php index 1b4163c..91c1bd2 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/group.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/group.php @@ -16,9 +16,9 @@ /** * This class provides methods to deal with groups for Kolab. * - * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object/group.php,v 1.2.2.2 2008/08/01 07:56:20 wrobel Exp $ + * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object/group.php,v 1.2.2.4 2009/01/06 15:23:15 jan Exp $ * - * Copyright 2008 The Horde Project (http://www.horde.org/) + * Copyright 2008-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/maintainer.php b/horde-webmail/lib/Horde/Kolab/Server/Object/maintainer.php index 485ae2d..d93a64e 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/maintainer.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/maintainer.php @@ -19,9 +19,9 @@ require_once 'Horde/Kolab/Server/Object/adminrole.php'; * This class provides methods to deal with maintainer * entries for Kolab. * - * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object/maintainer.php,v 1.2.2.2 2008/08/01 07:56:20 wrobel Exp $ + * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object/maintainer.php,v 1.2.2.4 2009/01/06 15:23:15 jan Exp $ * - * Copyright 2008 The Horde Project (http://www.horde.org/) + * Copyright 2008-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/server.php b/horde-webmail/lib/Horde/Kolab/Server/Object/server.php index 5db7261..965eb84 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/server.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/server.php @@ -16,9 +16,9 @@ /** * This class provides methods to deal with Kolab server configuration. * - * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object/server.php,v 1.2.2.2 2008/08/01 07:56:20 wrobel Exp $ + * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object/server.php,v 1.2.2.4 2009/01/06 15:23:15 jan Exp $ * - * Copyright 2008 The Horde Project (http://www.horde.org/) + * Copyright 2008-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/sharedfolder.php b/horde-webmail/lib/Horde/Kolab/Server/Object/sharedfolder.php index c909c05..3b68862 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/sharedfolder.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/sharedfolder.php @@ -17,9 +17,9 @@ * This class provides methods to deal with shared folders * entries for Kolab. * - * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object/sharedfolder.php,v 1.2.2.2 2008/08/01 07:56:20 wrobel Exp $ + * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object/sharedfolder.php,v 1.2.2.4 2009/01/06 15:23:15 jan Exp $ * - * Copyright 2008 The Horde Project (http://www.horde.org/) + * Copyright 2008-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/user.php b/horde-webmail/lib/Horde/Kolab/Server/Object/user.php index 99b5975..d4e57a0 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/user.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/user.php @@ -17,9 +17,9 @@ * This class provides methods to deal with Kolab users stored in * the Kolab db. * - * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object/user.php,v 1.2.2.3 2008/09/12 16:52:07 wrobel Exp $ + * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/Object/user.php,v 1.2.2.10 2009/01/08 21:07:32 wrobel Exp $ * - * Copyright 2008 The Horde Project (http://www.horde.org/) + * Copyright 2008-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Server/ldap.php b/horde-webmail/lib/Horde/Kolab/Server/ldap.php index 87d6b1b..a50ba2c 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/ldap.php +++ b/horde-webmail/lib/Horde/Kolab/Server/ldap.php @@ -20,9 +20,9 @@ require_once 'Horde/LDAP.php'; * This class provides methods to deal with Kolab objects stored in * the standard Kolab LDAP db. * - * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/ldap.php,v 1.2.2.2 2008/08/01 07:56:19 wrobel Exp $ + * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/ldap.php,v 1.2.2.10 2009/02/24 07:39:47 wrobel Exp $ * - * Copyright 2008 The Horde Project (http://www.horde.org/) + * Copyright 2008-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Server/test.php b/horde-webmail/lib/Horde/Kolab/Server/test.php index 2b07122..47f985a 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/test.php +++ b/horde-webmail/lib/Horde/Kolab/Server/test.php @@ -19,9 +19,9 @@ require_once 'Horde/Kolab/Server/ldap.php'; /** * This class provides a class for testing the Kolab Server DB. * - * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/test.php,v 1.2.2.2 2008/08/01 07:56:19 wrobel Exp $ + * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Server/test.php,v 1.2.2.7 2009/01/06 15:23:15 jan Exp $ * - * Copyright 2008 The Horde Project (http://www.horde.org/) + * Copyright 2008-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Session.php b/horde-webmail/lib/Horde/Kolab/Session.php index bcbda7e..135bcb5 100644 --- a/horde-webmail/lib/Horde/Kolab/Session.php +++ b/horde-webmail/lib/Horde/Kolab/Session.php @@ -1,8 +1,17 @@ + * @license http://www.fsf.org/copyleft/lgpl.html LGPL + * @link http://pear.horde.org/index.php?package=Kolab_Server */ /** We need the Auth library */ @@ -18,9 +27,9 @@ require_once 'Horde/Auth.php'; * relevant for the user session should be accessed via the Horde_Kolab_Session * class. * - * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Storage/Session.php,v 1.4 2008/09/22 16:15:51 wrobel Exp $ + * $Horde: framework/Kolab_Server/lib/Horde/Kolab/Session.php,v 1.1.2.11 2009/02/07 14:09:56 wrobel Exp $ * - * Copyright 2008 The Horde Project (http://www.horde.org/) + * Copyright 2008-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. @@ -287,14 +296,14 @@ class Horde_Kolab_Session { { if (!isset($this->_imap)) { - /** We need the Kolab IMAP library now. */ - require_once 'Horde/Kolab/IMAP.php'; - $params = $this->getImapParams(); if (is_a($params, 'PEAR_Error')) { return $params; } + /** We need the Kolab IMAP library now. */ + require_once 'Horde/Kolab/IMAP.php'; + $imap = &Horde_Kolab_IMAP::singleton($params['hostspec'], $params['port'], true, false); if (is_a($imap, 'PEAR_Error')) { -- tg: (7a64fc0..) t/COPYRIGHT2 (depends on: t/Kolab_Server/HK/GW/FixNotics) -- TOPGIT patch commit log ======================= commit 31b74193f0fce276c94a91cdc9a2c34e7f450cce Author: Gunnar Wrobel

    Date: Sun Mar 8 22:36:28 2009 +0000 Remove stray files. commit 9e9b402b7dd46a893a57fe12b46834fdf46cdd74 Author: Gunnar Wrobel

    Date: Sun Mar 8 05:14:36 2009 +0000 Sync the kolab-webclient Kolab_Server module with fw3. --- NEW FILE: t_COPYRIGHT3.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/COPYRIGHT3 Syncs the Kolab_Storage module with Horde fw3. STATUS: MERGED Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Deprecated.php | 4 ++-- horde-webmail/lib/Horde/Kolab/Storage.php | 4 ++-- horde-webmail/lib/Horde/Kolab/Storage/Cache.php | 4 ++-- horde-webmail/lib/Horde/Kolab/Storage/Data.php | 4 ++-- horde-webmail/lib/Horde/Kolab/Storage/Folder.php | 4 ++-- horde-webmail/lib/Horde/Kolab/Storage/List.php | 4 ++-- horde-webmail/lib/Horde/Kolab/Storage/Perms.php | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Deprecated.php b/horde-webmail/lib/Horde/Kolab/Deprecated.php index e2ade05..a627821 100644 --- a/horde-webmail/lib/Horde/Kolab/Deprecated.php +++ b/horde-webmail/lib/Horde/Kolab/Deprecated.php @@ -17,9 +17,9 @@ require_once 'Horde/Kolab/Storage.php'; * backward compatibility. The intended way of using the Kolab storage * handling is to use the main Kolab_Storage class only. * - * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Deprecated.php,v 1.1.2.1 2008/08/18 13:48:57 wrobel Exp $ + * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Deprecated.php,v 1.1.2.4 2009/01/06 15:23:17 jan Exp $ * - * Copyright 2004-2008 The Horde Project (http://www.horde.org/) + * Copyright 2004-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Storage.php b/horde-webmail/lib/Horde/Kolab/Storage.php index 0531243..96a905b 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage.php +++ b/horde-webmail/lib/Horde/Kolab/Storage.php @@ -34,9 +34,9 @@ require_once 'Horde/Kolab/Storage/List.php'; * $folder = Kolab_Storage::getShareData(Auth::getAuth(), 'event'); * * - * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Storage.php,v 1.2.2.2 2008/09/12 16:09:51 wrobel Exp $ + * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Storage.php,v 1.2.2.3 2009/01/06 15:23:17 jan Exp $ * - * Copyright 2004-2008 The Horde Project (http://www.horde.org/) + * Copyright 2004-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Cache.php b/horde-webmail/lib/Horde/Kolab/Storage/Cache.php index 908a5d8..d60ceeb 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Cache.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Cache.php @@ -12,9 +12,9 @@ require_once 'Horde/Cache.php'; * The Kolab_Cache class provides a cache for the Kolab * storage for groupware objects * - * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Storage/Cache.php,v 1.2.2.2 2008/09/06 09:19:31 jan Exp $ + * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Storage/Cache.php,v 1.2.2.4 2009/01/06 15:23:18 jan Exp $ * - * Copyright 2007-2008 The Horde Project (http://www.horde.org/) + * Copyright 2007-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Data.php b/horde-webmail/lib/Horde/Kolab/Storage/Data.php index 472a131..213d1f2 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Data.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Data.php @@ -12,9 +12,9 @@ require_once 'Horde/Kolab/Storage/Cache.php'; * The Kolab_Data class represents a data type in an IMAP folder on the Kolab * server. * - * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Storage/Data.php,v 1.5.2.1 2008/08/18 13:48:57 wrobel Exp $ + * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Storage/Data.php,v 1.5.2.4 2009/01/06 15:23:18 jan Exp $ * - * Copyright 2004-2008 The Horde Project (http://www.horde.org/) + * Copyright 2004-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php index 8c74322..4d3e0f3 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php @@ -59,9 +59,9 @@ define('HORDE_ANNOT_SHARE_ATTR', '/vendor/horde/share-'); * The Kolab_Folder class represents an IMAP folder on the Kolab * server. * - * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Storage/Folder.php,v 1.7.2.3 2008/09/25 14:44:03 wrobel Exp $ + * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Storage/Folder.php,v 1.7.2.19 2009/02/24 07:40:40 wrobel Exp $ * - * Copyright 2004-2008 The Horde Project (http://www.horde.org/) + * Copyright 2004-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Storage/List.php b/horde-webmail/lib/Horde/Kolab/Storage/List.php index d7af1b2..583f41f 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/List.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/List.php @@ -12,9 +12,9 @@ require_once 'Horde/Kolab/Storage/Folder.php'; * The Kolab_List class represents all IMAP folders on the Kolab * server visible to the current user. * - * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Storage/List.php,v 1.3.2.2 2008/09/25 09:20:07 wrobel Exp $ + * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Storage/List.php,v 1.3.2.7 2009/02/23 21:33:19 wrobel Exp $ * - * Copyright 2007-2008 The Horde Project (http://www.horde.org/) + * Copyright 2007-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Perms.php b/horde-webmail/lib/Horde/Kolab/Storage/Perms.php index 114fda9..8b3dd72 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Perms.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Perms.php @@ -13,9 +13,9 @@ require_once 'Horde/Perms.php'; * Permission handling and the IMAP permission system used on the * Kolab server. * - * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Storage/Perms.php,v 1.2.2.1 2008/08/18 13:48:57 wrobel Exp $ + * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Storage/Perms.php,v 1.2.2.2 2009/01/06 15:23:18 jan Exp $ * - * Copyright 2006-2008 The Horde Project (http://www.horde.org/) + * Copyright 2006-2009 The Horde Project (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. -- tg: (b79b990..) t/COPYRIGHT3 (depends on: t/Kolab_Storage/HK/GW/SuppressTriggering) -- TOPGIT patch commit log ======================= commit f6c131c0e081c7fec9baf44bb96080b3f8e99918 Author: Gunnar Wrobel

    Date: Sun Mar 8 22:37:24 2009 +0000 Remove stray files. commit adc83aafb0abaaeadb86a06f210928f1ee7c1bdb Author: Gunnar Wrobel

    Date: Sun Mar 8 06:07:04 2009 +0000 Sync Kolab_Storage within kolab-webclient with horde fw3. --- NEW FILE: t_GLOBAL_HK_GW_Config.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/GLOBAL/HK/GW/Config The Horde configuration for Kolab. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/config/conf.php | 116 ++++++++++++++ horde-webmail/config/hooks.php | 52 +++---- horde-webmail/config/kolab.php | 40 +++++ horde-webmail/config/prefs.php | 4 +- horde-webmail/dimp/config/servers.php | 255 ++++++++++++++++++++++++++++++ horde-webmail/imp/config/conf.php | 14 +- horde-webmail/imp/config/hooks.php | 7 + horde-webmail/imp/config/servers.php | 67 +++++++- horde-webmail/ingo/config/backends.php | 4 + horde-webmail/ingo/config/conf.php | 3 +- horde-webmail/kronolith/config/conf.php | 15 +- [...1125 lines suppressed...] Switch to authentication via imp to allow direct selection of DIMP. commit 85d406d86c124d48ba5f58b014a59042984547bb Author: Gunnar Wrobel

    Date: Sun Feb 8 21:08:46 2009 +0000 Allow local kolab.php configuration files. commit 6f3d56d64443a9d456b03ba364506c61dc609b1c Author: Gunnar Wrobel

    Date: Mon Feb 2 00:03:06 2009 +0000 Use only cookies for session management. commit 58c0d2b40ea52c6c7a143efeaaaf87619d105b12 Author: Gunnar Wrobel

    Date: Sun Feb 1 22:17:11 2009 +0000 Added patch release/HK-GW-Config.patch from the mercurial release queue. --- NEW FILE: t_GLOBAL_HK_GW_ConfigOpenPKG.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/GLOBAL/HK/GW/ConfigOpenPKG Specific OpenPKG configuration bits. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/config/conf.php | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/horde-webmail/config/conf.php b/horde-webmail/config/conf.php index f5c85a6..ae2acef 100644 --- a/horde-webmail/config/conf.php +++ b/horde-webmail/config/conf.php @@ -41,7 +41,8 @@ $conf['log']['params']['append'] = true; $conf['log']['type'] = 'file'; $conf['log']['enabled'] = true; $conf['log_accesskeys'] = false; -$conf['prefs']['driver'] = 'kolab_imap'; +$conf['prefs']['driver'] = 'file'; +$conf['prefs']['params']['directory'] = dirname(__FILE__) . '/../storage/'; $conf['alarms']['params']['driverconfig'] = 'horde'; $conf['alarms']['params']['ttl'] = 300; $conf['alarms']['driver'] = 'sql'; -- tg: (5c96f93..) t/GLOBAL/HK/GW/ConfigOpenPKG (depends on: t/GLOBAL/HK/GW/Config) -- TOPGIT patch commit log ======================= commit 0a7bb75c1aa1f659664a8e3ae5d18f0f1e680ebd Author: Gunnar Wrobel

    Date: Sun Feb 1 22:31:59 2009 +0000 Added patch release/HK-GW-Config_OpenPKG.patch from the mercurial release queue. --- NEW FILE: t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/Kolab_Format/HK/GW/HandleEmptyXmlParserReturn Correct handling of empty return values from the XML parser. An empty return might occur if the XML document is broken (e.g. broken encoding). ISSUE: kolab/issue3520 (calendar with certain entries does not display in web client) ISSUE: kolab/issue3525 (free/busy regeneration aborts for unparsable events) ISSUE: kolab/issue3528 (Events with broken encoding should work) LINK: https://www.intevation.de/roundup/kolab/issue3520 LINK: https://www.intevation.de/roundup/kolab/issue3525 LINK: https://www.intevation.de/roundup/kolab/issue3528 STATUS: MERGED REF: http://cvs.horde.org/diff.php/framework/Kolab_Format/lib/Horde/Kolab/Format/XML.php?r1=1.5.2.10&r2=1.5.2.11 REF: http://cvs.horde.org/diff.php/framework/Kolab_Format/lib/Horde/Kolab/Format/XML.php?r1=1.15&r2=1.16 Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Format/XML.php | 22 +++++++++++++++++++++- 1 files changed, 21 insertions(+), 1 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Format/XML.php b/horde-webmail/lib/Horde/Kolab/Format/XML.php index d3d7def..3ed41b9 100644 --- a/horde-webmail/lib/Horde/Kolab/Format/XML.php +++ b/horde-webmail/lib/Horde/Kolab/Format/XML.php @@ -364,6 +364,9 @@ class Horde_Kolab_Format_XML /** * Load an object based on the given XML string. * + * @todo Check encoding of the returned array. It seems to be ISO-8859-1 at + * the moment and UTF-8 would seem more appropriate. + * * @param string $xmltext The XML of the message as string. * * @return array|PEAR_Error The data array representing the object. @@ -371,7 +374,24 @@ class Horde_Kolab_Format_XML function load(&$xmltext) { $noderoot = $this->_parseXml($xmltext); - if ($noderoot === false) { + if (is_a($noderoot, 'PEAR_Error') || empty($noderoot)) { + /** + * If the first call does not return successfully this might mean we + * got an attachment with broken encoding. There are some Kolab + * client versions in the wild that might have done that. So the + * next section starts a second attempt by guessing the encoding and + * trying again. + */ + if (strcasecmp(mb_detect_encoding($xmltext, 'UTF-8, ISO-8859-1'), 'UTF-8') !== 0) { + $xmltext = mb_convert_encoding($xmltext, 'UTF-8', 'ISO-8859-1'); + } + $noderoot = $this->_parseXml($xmltext); + } + + if (is_a($noderoot, 'PEAR_Error')) { + return $noderoot; + } + if (empty($noderoot)) { return false; } -- tg: (2d1588f..) t/Kolab_Format/HK/GW/HandleEmptyXmlParserReturn (depends on: t/kronolith/HK/GW/XfbAccess) -- TOPGIT patch commit log ======================= commit adba3be1192f9ea9fb90c4418da8e4f5fc388c4e Author: Gunnar Wrobel

    Date: Sat Apr 25 22:14:40 2009 +0200 Merged the patch in slightly modified form upstream. commit 1883efc257b2e50646e11da79cc47fb0f7f328ca Author: Gunnar Wrobel

    Date: Thu Apr 2 11:36:17 2009 +0200 Correct handling of empty return values from the XML parser. An empty return might occur if the XML document is broken (e.g. broken encoding). ISSUE: kolab/issue3520 (calendar with certain entries does not display in web client) ISSUE: kolab/issue3525 (free/busy regeneration aborts for unparsable events) ISSUE: kolab/issue3528 (Events with broken encoding should work) LINK: https://www.intevation.de/roundup/kolab/issue3520 LINK: https://www.intevation.de/roundup/kolab/issue3525 LINK: https://www.intevation.de/roundup/kolab/issue3528 --- NEW FILE: t_Kolab__Server_HK_GW_DenyLogin.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/Kolab_Server/HK/GW/DenyLogin Allow/Deny login to specific Kolab user groups. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Server.php | 39 ++++++++++++++++++++++-- horde-webmail/lib/Horde/Kolab/Server/ldap.php | 18 +++++++++++ horde-webmail/lib/Horde/Kolab/Session.php | 30 +++++++++++++++++++ 3 files changed, 83 insertions(+), 4 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Server.php b/horde-webmail/lib/Horde/Kolab/Server.php index 7954b21..fea438a 100644 --- a/horde-webmail/lib/Horde/Kolab/Server.php +++ b/horde-webmail/lib/Horde/Kolab/Server.php @@ -414,7 +414,7 @@ class Horde_Kolab_Server { } /** - * Identify the UID for the first object found using a specified + * Identify the UID for the first user found using a specified * attribute value. * * @param string $attr The name of the attribute used for searching. @@ -431,6 +431,23 @@ class Horde_Kolab_Server { } /** + * Identify the GID for the first group found using a specified + * attribute value. + * + * @param string $attr The name of the attribute used for searching. + * @param string $value The desired value of the attribute. + * @param int $restrict A KOLAB_SERVER_RESULT_* result restriction. + * + * @return mixed|PEAR_Error The GID or false if there was no result. + */ + function gidForAttr($attr, $value, + $restrict = KOLAB_SERVER_RESULT_SINGLE) + { + /* In the default class we just return false */ + return false; + } + + /** * Is the given UID member of the group with the given mail address? * * @param string $uid UID of the user. @@ -460,20 +477,34 @@ class Horde_Kolab_Server { } /** - * Identify the UID for the first object found with the given mail. + * Identify the UID for the first user found with the given mail. * - * @param string $mail Search for objects with this mail address. + * @param string $mail Search for users with this mail address. * @param int $restrict A KOLAB_SERVER_RESULT_* result restriction. * * @return mixed|PEAR_Error The UID or false if there was no result. */ function uidForMail($mail, - $restrict = KOLAB_SERVER_RESULT_SINGLE) + $restrict = KOLAB_SERVER_RESULT_SINGLE) { return $this->uidForAttr('mail', $mail); } /** + * Identify the GID for the first group found with the given mail. + * + * @param string $mail Search for groups with this mail address. + * @param int $restrict A KOLAB_SERVER_RESULT_* result restriction. + * + * @return mixed|PEAR_Error The GID or false if there was no result. + */ + function gidForMail($mail, + $restrict = KOLAB_SERVER_RESULT_SINGLE) + { + return $this->gidForAttr('mail', $mail); + } + + /** * Identify the UID for the first object found with the given ID or mail. * * @param string $id Search for objects with this uid/mail. diff --git a/horde-webmail/lib/Horde/Kolab/Server/ldap.php b/horde-webmail/lib/Horde/Kolab/Server/ldap.php index a09f74d..d4079b8 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/ldap.php +++ b/horde-webmail/lib/Horde/Kolab/Server/ldap.php @@ -784,6 +784,24 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } /** + * Identify the GID for the first group found using a specified + * attribute value. + * + * @param string $attr The name of the attribute used for searching. + * @param string $value The desired value of the attribute. + * @param int $restrict A KOLAB_SERVER_RESULT_* result restriction. + * + * @return mixed|PEAR_Error The GID or false if there was no result. + */ + function gidForAttr($attr, $value, + $restrict = KOLAB_SERVER_RESULT_SINGLE) + { + $filter = '(&(objectClass=kolabGroupOfNames)(' . $attr . + '=' . Horde_LDAP::quote($value) . '))'; + return $this->_dnForFilter($filter, $restrict); + } + + /** * Is the given UID member of the group with the given mail address? * * @param string $uid UID of the user. diff --git a/horde-webmail/lib/Horde/Kolab/Session.php b/horde-webmail/lib/Horde/Kolab/Session.php index a0e3cf3..d47f8b0 100644 --- a/horde-webmail/lib/Horde/Kolab/Session.php +++ b/horde-webmail/lib/Horde/Kolab/Session.php @@ -123,6 +123,32 @@ class Horde_Kolab_Session { if (empty($conf['kolab']['imap']['allow_special_users']) && !is_a($user_object, 'Horde_Kolab_Server_Object_user')) { $this->auth = PEAR::raiseError(_('Access to special Kolab users is denied.')); + } else if (isset($conf['kolab']['server']['deny_group'])) { + $dn = $server->gidForMail($conf['kolab']['server']['deny_group']); + if (is_a($dn, 'PEAR_Error')) { + $this->auth = $dn; + } else if (empty($dn)) { + Horde::logMessage('The Kolab configuratin setting $conf[\'kolab\'][\'server\'][\'deny_group\'] holds a non-existing group!', + __FILE__, __LINE__, PEAR_LOG_WARNING); + $this->auth = true; + } else if (in_array($dn, $user_object->getGroups())) { + $this->auth = PEAR::raiseError(_('You are member of a group that may not login on this server.')); + } else { + $this->auth = true; + } + } else if (isset($conf['kolab']['server']['allow_group'])) { + $dn = $server->gidForMail($conf['kolab']['server']['allow_group']); + if (is_a($dn, 'PEAR_Error')) { + $this->auth = $dn; + } else if (empty($dn)) { + Horde::logMessage('The Kolab configuratin setting $conf[\'kolab\'][\'server\'][\'allow_group\'] holds a non-existing group!', + __FILE__, __LINE__, PEAR_LOG_WARNING); + $this->auth = true; + } else if (!in_array($dn, $user_object->getGroups())) { + $this->auth = PEAR::raiseError(_('You are no member of a group that may login on this server.')); + } else { + $this->auth = true; + } } else { /** * At this point we can be certain the user is an @@ -131,6 +157,10 @@ class Horde_Kolab_Session { $this->auth = true; } + if (empty($this->auth) || is_a($this->auth, 'PEAR_Error')) { + return; + } + $result = $user_object->get(KOLAB_ATTR_MAIL); if (!empty($result) && !is_a($result, 'PEAR_Error')) { $this->user_mail = $result; -- tg: (f425aea..) t/Kolab_Server/HK/GW/DenyLogin (depends on: t/framework/HK/GW/iCalendar/QuotedParameters) -- TOPGIT patch commit log ======================= commit 553b6a6a3b5f42bcc314b3ccb8dc271c094739d4 Author: Gunnar Wrobel

    Date: Sun Feb 1 23:39:21 2009 +0000 Remove patch remains. commit ec2569d9f53c41b19c033cc8cdeceb5169e18106 Author: Gunnar Wrobel

    Date: Sun Feb 1 17:54:16 2009 +0000 Added patch release/HK-GW-Kolab_Server-Deny_login.patch from the mercurial release queue. --- NEW FILE: t_Kolab__Server_HK_GW_FixAddrForIdOrMail.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/Kolab_Server/HK/GW/FixAddrForIdOrMail Downcase the array of returned mail addresses. Ensure we always return an array. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/IMAP/test.php | 2 +- horde-webmail/lib/Horde/Kolab/Server/ldap.php | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/IMAP/test.php b/horde-webmail/lib/Horde/Kolab/IMAP/test.php index ce5609a..b6f1e49 100644 --- a/horde-webmail/lib/Horde/Kolab/IMAP/test.php +++ b/horde-webmail/lib/Horde/Kolab/IMAP/test.php @@ -75,7 +75,7 @@ class Horde_Kolab_IMAP_test extends Horde_Kolab_IMAP { $tls = ($tls) ? 'tls' : 'notls'; $this->_connected = $login . ':' . $password . ':' . $tls; $this->_user = $login; - $this->_mbox = null; + unset($this->_mbox); $this->_mboxname = null; } diff --git a/horde-webmail/lib/Horde/Kolab/Server/ldap.php b/horde-webmail/lib/Horde/Kolab/Server/ldap.php index d4079b8..5ff4786 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/ldap.php +++ b/horde-webmail/lib/Horde/Kolab/Server/ldap.php @@ -721,7 +721,10 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { . Horde_LDAP::quote($id) . ')))'; $result = $this->_attrsForFilter($filter, array('mail', 'alias'), KOLAB_SERVER_RESULT_STRICT); - if (empty($result) || is_a($result, 'PEAR_Error')) { + if (empty($result)) { + return array(); + } + if (is_a($result, 'PEAR_Error')) { return $result; } $addrs = array_merge((array) $result['mail'], (array) $result['alias']); @@ -746,6 +749,8 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } } + $addrs = array_map('strtolower', $addrs); + return $addrs; } -- tg: (0bd4e3e..) t/Kolab_Server/HK/GW/FixAddrForIdOrMail (depends on: t/Kolab_Storage/HK/GW/MultipleListCaches) -- TOPGIT patch commit log ======================= commit 799ad34f530b4f3936ffa7ac278a64443b3c3d5e Author: Gunnar Wrobel

    Date: Tue Feb 24 05:53:09 2009 +0000 Fix recursive tg dependency. commit 64ac03c4ba437b3ce0fa994f0030a6fca9643f23 Author: Gunnar Wrobel

    Date: Tue Feb 24 05:52:00 2009 +0000 New TopGit dependency: t/Kolab_Storage/HK/GW/MultipleListCaches commit f3c256bfe91fcea559d5d8f08dabf1c280f33b11 Author: Gunnar Wrobel

    Date: Tue Feb 24 00:05:22 2009 +0100 Fix addrsForIdOrMail. --- NEW FILE: t_Kolab__Server_HK_GW_FixBodyHeaderBreakInTestDriver.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/Kolab_Server/HK/GW/FixBodyHeaderBreakInTestDriver Fixes handling the line break between mail header and body in the IMAP test driver. STATUS: MERGED Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/IMAP/test.php | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/IMAP/test.php b/horde-webmail/lib/Horde/Kolab/IMAP/test.php index 5a804af..6e1f0e4 100644 --- a/horde-webmail/lib/Horde/Kolab/IMAP/test.php +++ b/horde-webmail/lib/Horde/Kolab/IMAP/test.php @@ -550,7 +550,7 @@ class Horde_Kolab_IMAP_test extends Horde_Kolab_IMAP { */ function appendMessage($msg) { - $split = strpos('\r\n\r\n', $msg); + $split = strpos($msg, "\r\n\r\n"); $mail = array('header' => substr($msg, 0, $split + 2), 'body' => substr($msg, $split + 3)); return $this->_appendMessage($mail); -- tg: (9cfd718..) t/Kolab_Server/HK/GW/FixBodyHeaderBreakInTestDriver (depends on: t/imp/H/GW/LoginRetries) -- TOPGIT patch commit log ======================= commit a632bbd56954bed61abb308bd8d8d5551887ba84 Author: Gunnar Wrobel

    Date: Fri Mar 13 00:16:18 2009 +0100 Four patches went missing when I reordered the patch queue. The reordering was an operation I shouldn't have done. This commit removes the attempt to readd the four patches at a later queue position. commit 8a3ca1d315a184f38667fc10e7f34488301d5d47 Author: Gunnar Wrobel

    Date: Mon Mar 9 06:00:41 2009 +0000 Add missing to sync Kolab_Server with horde fw3. --- NEW FILE: t_Kolab__Server_HK_GW_FixLowerCaseObjectClasses.diff --- From: root Subject: [PATCH] t/Kolab_Server/HK/GW/FixLowerCaseObjectClasses Fixed objectClass evaluation to respect case-insensitivity (Bug: #7694) http://bugs.horde.org/ticket/7694 STATUS: MERGED http://cvs.horde.org/diff.php/framework/Kolab_Server/lib/Horde/Kolab/Server/ldap.php?sa=1&r1=1.2.2.5&r2=1.2.2.6 Signed-off-by: root --- horde-webmail/lib/Horde/Kolab/Server/ldap.php | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Server/ldap.php b/horde-webmail/lib/Horde/Kolab/Server/ldap.php index 5ff4786..055174c 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/ldap.php +++ b/horde-webmail/lib/Horde/Kolab/Server/ldap.php @@ -570,13 +570,13 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } // Not a user type? - if (!in_array('kolabInetOrgPerson', $oc)) { + if (!in_array('kolabinetorgperson', $oc)) { // Is it a group? - if (in_array('kolabGroupOfNames', $oc)) { + if (in_array('kolabgroupofnames', $oc)) { return KOLAB_OBJECT_GROUP; } // Is it a shared Folder? - if (in_array('kolabSharedFolder', $oc)) { + if (in_array('kolabsharedfolder', $oc)) { return KOLAB_OBJECT_SHAREDFOLDER; } return PEAR::raiseError(sprintf(_("Unkown Kolab object type for DN %s."), @@ -626,7 +626,8 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } unset($object['count']); unset($object['objectClass']['count']); - return $object['objectClass']; + $result = array_map('strtolower', $object['objectClass']); + return $result; } /** -- tg: (a3542e3..) t/Kolab_Server/HK/GW/FixLowerCaseObjectClasses (depends on: t/COPYRIGHT) -- TOPGIT patch commit log ======================= commit d3af838ddf2055eddb27316024ffe98f6e6c8e1f Author: Gunnar Wrobel

    Date: Sun Mar 8 04:59:05 2009 +0000 Merged fix for http://bugs.horde.org/ticket/7694 into the kolab-webclient. --- NEW FILE: t_Kolab__Server_HK_GW_FixNotics.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/Kolab_Server/HK/GW/FixNotics Merged upstream patch to fix Kolab_Server notices into the kolab-webclient. STATUS: MERGED http://cvs.horde.org/diff.php/framework/Kolab_Server/lib/Horde/Kolab/Server/diff.php?sa=1&f=framework%2FKolab_Server%2Flib%2FHorde%2FKolab%2FServer%2Fldap.php&r1=1.2.2.9&r2=1.2.2.10&t=unified Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Server/ldap.php | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Server/ldap.php b/horde-webmail/lib/Horde/Kolab/Server/ldap.php index 055174c..87d6b1b 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/ldap.php +++ b/horde-webmail/lib/Horde/Kolab/Server/ldap.php @@ -519,7 +519,7 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { $result = array(); foreach ($attrs as $attr) { - if ($entry[$attr]['count'] > 0) { + if (isset($entry[$attr]) && $entry[$attr]['count'] > 0) { unset($entry[$attr]['count']); $result[$attr] = $entry[$attr]; } @@ -728,7 +728,11 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { if (is_a($result, 'PEAR_Error')) { return $result; } - $addrs = array_merge((array) $result['mail'], (array) $result['alias']); + if (isset($result['alias'])) { + $addrs = array_merge((array) $result['mail'], (array) $result['alias']); + } else { + $addrs = $result['mail']; + } $mail = $result['mail'][0]; $filter = '(&(objectClass=kolabInetOrgPerson)(kolabDelegate=' -- tg: (d3af838..) t/Kolab_Server/HK/GW/FixNotics (depends on: t/Kolab_Server/HK/GW/FixLowerCaseObjectClasses) -- TOPGIT patch commit log ======================= commit 7a64fc01eb5d94557ac5fa8e44ea135094b1e8b6 Author: Gunnar Wrobel

    Date: Sun Mar 8 05:02:38 2009 +0000 Merged missing upstream patch into Kolab-Filter. --- NEW FILE: t_Kolab__Server_HK_GW_UserMailAndFullname.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/Kolab_Server/HK/GW/UserMailAndFullname Identify the users full name and make it accessible via the Kolab session handler. FIXME: This has been reported by Thomas to be only partially working (fullname not be correctly accessible). Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Server/Object.php | 5 ++++ .../lib/Horde/Kolab/Server/Object/address.php | 10 +++++++++ .../lib/Horde/Kolab/Server/Object/user.php | 2 + horde-webmail/lib/Horde/Kolab/Session.php | 21 ++++++++++++++++++- 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object.php b/horde-webmail/lib/Horde/Kolab/Server/Object.php index 663281e..e3b38e0 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object.php @@ -33,6 +33,7 @@ define('KOLAB_ATTR_CN', 'cn'); define('KOLAB_ATTR_GIVENNAME', 'givenName'); define('KOLAB_ATTR_FN', 'fn'); define('KOLAB_ATTR_LNFN', 'lnfn'); +define('KOLAB_ATTR_FNLN', 'fnln'); define('KOLAB_ATTR_MAIL', 'mail'); define('KOLAB_ATTR_SID', 'uid'); define('KOLAB_ATTR_ACL', 'acl'); @@ -366,6 +367,10 @@ class Horde_Kolab_Server_Object { $gn = $this->_get(KOLAB_ATTR_GIVENNAME, true); $sn = $this->_get(KOLAB_ATTR_SN, true); return sprintf('%s, %s', $sn, $gn); + case KOLAB_ATTR_FNLN: + $gn = $this->_get(KOLAB_ATTR_GIVENNAME, true); + $sn = $this->_get(KOLAB_ATTR_SN, true); + return sprintf('%s %s', $gn, $sn); default: return false; } diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/address.php b/horde-webmail/lib/Horde/Kolab/Server/Object/address.php index bcf905e..8f3aac2 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/address.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/address.php @@ -55,6 +55,16 @@ class Horde_Kolab_Server_Object_address extends Horde_Kolab_Server_Object { ); /** + * Attributes derived from the LDAP values. + * + * @var array + */ + var $_derived_attributes = array( + KOLAB_ATTR_LNFN, + KOLAB_ATTR_FNLN, + ); + + /** * The attributes required when creating an object of this class. * * @var array diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/user.php b/horde-webmail/lib/Horde/Kolab/Server/Object/user.php index 62b71e8..99b5975 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/user.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/user.php @@ -69,6 +69,8 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object { var $_derived_attributes = array( KOLAB_ATTR_ID, KOLAB_ATTR_USERTYPE, + KOLAB_ATTR_LNFN, + KOLAB_ATTR_FNLN, ); /** diff --git a/horde-webmail/lib/Horde/Kolab/Session.php b/horde-webmail/lib/Horde/Kolab/Session.php index d47f8b0..bcbda7e 100644 --- a/horde-webmail/lib/Horde/Kolab/Session.php +++ b/horde-webmail/lib/Horde/Kolab/Session.php @@ -55,6 +55,13 @@ class Horde_Kolab_Session { var $user_mail; /** + * Full name. + * + * @var string + */ + var $user_name = ''; + + /** * True if the Kolab_Server login was successfull. * * @var boolean|PEAR_Error @@ -171,6 +178,11 @@ class Horde_Kolab_Session { $this->user_id = $result; } + $result = $user_object->get(KOLAB_ATTR_FNLN); + if (!empty($result) && !is_a($result, 'PEAR_Error')) { + $this->user_name = $result; + } + $result = $user_object->getServer('imap'); if (!empty($result) && !is_a($result, 'PEAR_Error')) { $server = explode(':', $result, 2); @@ -249,6 +261,8 @@ class Horde_Kolab_Session { $params['user'] = $user; if (isset($credentials['password'])) { $params['pass'] = $credentials['password']; + } else { + $params['pass'] = Auth::getCredential('password'); } } return Horde_Kolab_Server::singleton($params); @@ -332,9 +346,12 @@ class Horde_Kolab_Session { $session = $hs->query('kolab_session'); } + if (empty($user)) { + $user = Auth::getAuth(); + } + if ($destruct || empty($session) - || (!empty($user) && $user != $session->user_mail - && $user != $session->user_id)) { + || ($user != $session->user_mail && $user != $session->user_id)) { $session = new Horde_Kolab_Session($user, $credentials); } -- tg: (a5a1f3e..) t/Kolab_Server/HK/GW/UserMailAndFullname (depends on: t/Kolab_Server/HK/GW/DenyLogin) -- TOPGIT patch commit log ======================= commit 4c997afbb54e494cdcc52969b158d2817ce84d44 Author: Gunnar Wrobel

    Date: Sat Feb 7 10:02:15 2009 +0000 If we are authenticated and create a session without any information, the user will be set but the getServer() method has no access to the password. So it should be fetched here. commit 3a9e1f04cf73d8576104715c48a8a26c8cd9c190 Author: Gunnar Wrobel

    Date: Sun Feb 1 18:07:49 2009 +0000 Added fixme in the patch description. commit c69914c9e65d971428760fc139da66fb962e0016 Author: Gunnar Wrobel

    Date: Sun Feb 1 18:06:20 2009 +0000 Added patch release/HK-GW-Kolab_Server-User_Id.patch from the mercurial release queue. --- NEW FILE: t_Kolab__Storage_HK_GW_MultipleListCaches.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/Kolab_Storage/HK/GW/MultipleListCaches Fix testing when authenticating twice. Using different caches is required in that case. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Storage/List.php | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Storage/List.php b/horde-webmail/lib/Horde/Kolab/Storage/List.php index 6e6a16e..d7af1b2 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/List.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/List.php @@ -107,15 +107,15 @@ class Kolab_List { $list = $session->query('kolab_folderlist'); } - if (empty($list)) { - $list = new Kolab_List(); + if (empty($list[Auth::getAuth()])) { + $list[Auth::getAuth()] = new Kolab_List(); } if (!empty($GLOBALS['conf']['kolab']['imap']['cache_folders'])) { register_shutdown_function(array(&$list, 'shutdown')); } - return $list; + return $list[Auth::getAuth()]; } /** -- tg: (017e19d..) t/Kolab_Storage/HK/GW/MultipleListCaches (depends on: t/imp/HK/GW/AuthForInvitations) -- TOPGIT patch commit log ======================= commit 1e071de95f289b72a7b03bbffba4e533406e2b2e Author: Gunnar Wrobel

    Date: Mon Feb 23 22:57:52 2009 +0000 Use different List caches so that we avoid problems when authenticating twice during testing. --- NEW FILE: t_Kolab__Storage_HK_GW_SuppressTriggering.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/Kolab_Storage/HK/GW/SuppressTriggering Allow to supress triggering (relevant for testing). STATUS: MERGED http://cvs.horde.org/diff.php/framework/Kolab_Storage/lib/Horde/Kolab/Storage/diff.php?sa=1&f=framework%2FKolab_Storage%2Flib%2FHorde%2FKolab%2FStorage%2FFolder.php&r1=1.27&r2=1.28&t=unified Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Storage/Folder.php | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php index 6596559..8c74322 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php @@ -1208,8 +1208,6 @@ class Kolab_Folder { */ function trigger($name = null) { - global $conf; - $type = $this->getType(); if (is_a($type, 'PEAR_Error')) { return $type; @@ -1252,6 +1250,12 @@ class Kolab_Folder { */ function triggerUrl($url) { + global $conf; + + if (!empty($conf['kolab']['no_triggering'])) { + return true; + } + $options['method'] = 'GET'; $options['timeout'] = 5; $options['allowRedirects'] = true; -- tg: (31b7419..) t/Kolab_Storage/HK/GW/SuppressTriggering (depends on: t/COPYRIGHT2) -- TOPGIT patch commit log ======================= commit d7fd24cc6662987d4887e253e54c4b4e20ea88f1 Author: Gunnar Wrobel

    Date: Sun Mar 8 05:38:16 2009 +0000 Merged missing upstream commit into kolab-webclient. --- NEW FILE: t_Prefs_HK_GW_FixLDAPAuthForIngo.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/Prefs/HK/GW/FixLDAPAuthForIngo Fix the authentication with the Kolab/LDAP backend to always use the credentials of the current user. Without this it won't be possible to store the filters within Ingo in LDAP. FIXME: This is only a hack. The right thing to do would be to store the filter settings within the Kolab format rather than the preferences. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Prefs/kolab.php | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/horde-webmail/lib/Horde/Prefs/kolab.php b/horde-webmail/lib/Horde/Prefs/kolab.php index 55075db..0ebd4fd 100644 --- a/horde-webmail/lib/Horde/Prefs/kolab.php +++ b/horde-webmail/lib/Horde/Prefs/kolab.php @@ -1,5 +1,6 @@ $GLOBALS['conf']['kolab']['ldap']['phppw'], 'uid' => 'mail'); - parent::Prefs_ldap($user, $password, $scope, $params, $caching); + parent::Prefs_ldap(Auth::getAuth(), Auth::getCredential('password'), + $scope, $params, $caching); } } -- tg: (ba51448..) t/Prefs/HK/GW/FixLDAPAuthForIngo (depends on: t/SyncML/HK/GW/CombinedFixes) -- TOPGIT patch commit log ======================= commit 1f1947c6b2ead4f66d54f280b2b243f4fcb8ef1f Author: Gunnar Wrobel

    Date: Sun Feb 1 18:30:02 2009 +0000 Added patch release/HK-GW-Fix_Prefs_for_Ingo.patch from the mercurial release queue. --- NEW FILE: t_SyncML_HK_GW_CombinedFixes.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/SyncML/HK/GW/CombinedFixes Combined set of Univention SyncML patches. FIXME: At least one of these has been rejected upstream. Rework the patch and update this one. Actually this patch should be splitted into the single parts. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/iCalendar.php | 35 ++++++++++++ horde-webmail/lib/SyncML/Backend.php | 18 ++++++ horde-webmail/lib/SyncML/Backend/Horde.php | 80 ++++++++++++++++++++++++++++ horde-webmail/lib/SyncML/Constants.php | 2 +- horde-webmail/lib/SyncML/Device.php | 69 ++++++++++++++++++++++++ horde-webmail/lib/SyncML/Sync.php | 27 +++++++++- 6 files changed, 228 insertions(+), 3 deletions(-) diff --git a/horde-webmail/lib/Horde/iCalendar.php b/horde-webmail/lib/Horde/iCalendar.php index decf66a..4b7143e 100644 --- a/horde-webmail/lib/Horde/iCalendar.php +++ b/horde-webmail/lib/Horde/iCalendar.php @@ -155,6 +155,41 @@ class Horde_iCalendar { } /** + * Sets an attribute empty. + * + * @param string $name The name of the attribute. + * @param array $params Array containing any addition parameters for + * this attribute. + * @param boolean $append True to append the attribute, False to replace + * the first matching attribute found. + */ + function setAttributeEmpty($name, $params = array(), $append = false) + { + switch ($name) { + case 'EXDATE': + case 'RDATE': + $this->setAttribute($name, array(), $params, $append, true); + break; + case 'COMPLETED': + case 'CREATED': + case 'DCREATED': + case 'LAST-MODIFIED': + case 'DTEND': + case 'DTSTART': + case 'DTSTAMP': + case 'DUE': + case 'AALARM': + case 'RECURRENCE-ID': + /* These values expect a date and there is no sensible + default so we better leave them alone for now. */ + break; + default: + $this->setAttribute($name, '', $params, $append); + break; + } + } + + /** * Sets parameter(s) for an (already existing) attribute. The * parameter set is merged into the existing set. * diff --git a/horde-webmail/lib/SyncML/Backend.php b/horde-webmail/lib/SyncML/Backend.php index b445b3a..a13174a 100644 --- a/horde-webmail/lib/SyncML/Backend.php +++ b/horde-webmail/lib/SyncML/Backend.php @@ -567,6 +567,24 @@ class SyncML_Backend { } /** + * Checks if the entry specified by $cuid has been modified on the server. + * + * @param string $databaseURI URI of Database to sync. Like + * calendar, tasks, contacts or notes. + * May include optional parameters: + * tasks?options=ignorecompleted. + * @param string $cuid Client ID of this entry + * @param integer $from_ts Start timestamp. + * + * @return boolean True if the client entry has been modified on + * the server. False otherwise. + */ + function unchanged($databaseURI, $cuid, $from_ts) + { + die ("Not implemented!"); + } + + /** * Authenticates the user at the backend. * * For some types of authentications (notably auth:basic) the username diff --git a/horde-webmail/lib/SyncML/Backend/Horde.php b/horde-webmail/lib/SyncML/Backend/Horde.php index a9be55d..a71b5f8 100644 --- a/horde-webmail/lib/SyncML/Backend/Horde.php +++ b/horde-webmail/lib/SyncML/Backend/Horde.php @@ -204,6 +204,11 @@ class SyncML_Backend_Horde extends SyncML_Backend { __FILE__, __LINE__, PEAR_LOG_DEBUG); continue; } + if ($suid_ts > $to_ts) { + // Add delayed to the next sync operation + $this->logMessage("Add ignored, lies in sync future: $suid", __FILE__, __LINE__, PEAR_LOG_DEBUG); + continue; + } $this->logMessage( "Adding to client from db $database, server id $suid", __FILE__, __LINE__, PEAR_LOG_DEBUG); @@ -251,6 +256,11 @@ class SyncML_Backend_Horde extends SyncML_Backend { __FILE__, __LINE__, PEAR_LOG_DEBUG); continue; } + if ($suid_ts > $to_ts) { + // Change delayed to the next sync operation + $this->logMessage("Change ignored, lies in sync future: $suid", __FILE__, __LINE__, PEAR_LOG_DEBUG); + continue; + } $cuid = $this->_getCuid($database, $suid); if (!$cuid) { $this->logMessage( @@ -311,6 +321,11 @@ class SyncML_Backend_Horde extends SyncML_Backend { __FILE__, __LINE__, PEAR_LOG_DEBUG); continue; } + if ($suid_ts > $to_ts) { + // Delete delayed to the next sync operation + $this->logMessage("Delete ignored, lies in sync future: $suid", __FILE__, __LINE__, PEAR_LOG_DEBUG); + continue; + } $cuid = $this->_getCuid($database, $suid); if (!$cuid) { $this->logMessage( @@ -512,6 +527,71 @@ class SyncML_Backend_Horde extends SyncML_Backend { } /** + * Checks if the entry specified by $cuid has been modified on the server. + * + * @param string $databaseURI URI of Database to sync. Like + * calendar, tasks, contacts or notes. + * May include optional parameters: + * tasks?options=ignorecompleted. + * @param string $cuid Client ID of this entry + * @param integer $from_ts Last server sync time. + * + * @return boolean True if the client entry has been modified on + * the server. False otherwise. + */ + function getConflict($databaseURI, $cuid, $server_ts) + { + global $registry; + + $database = $this->_normalize($databaseURI); + + // Only server needs to do a cuid<->suid map + if ($this->_backendMode == SYNCML_BACKENDMODE_SERVER) { + $suid = $this->_getSuid($database, $cuid); + } else { + $suid = $cuid; + } + $this->logMessage("checking modification date of entry suid $suid in $database", __FILE__, __LINE__, PEAR_LOG_DEBUG); + + if ($suid) { + $mod_ts = $registry->call($database . '/getActionTimestamp', array($suid, 'modify', SyncML_Backend::getParameter($databaseURI,'source'))); + $client_ts = $this->_getChangeTS($database, $suid); + // Check that the last server anchor is smaller than the + // last modification stamp (this means that a change + // occurred after the last sync started). This might still + // be a client change so check that the last client update + // also happened before the last modification) + if ($server_ts < $mod_ts && $client_ts < $mod_ts) { + // Duplicate the server entry + $this->logMessage("Conflict detected. Returning conflicting server entry $suid.", __FILE__, __LINE__, PEAR_LOG_DEBUG); + $device = &$_SESSION['SyncML.state']->getDevice(); + $contentType = $device->getPreferredContentType($databaseURI); + return $this->retrieveEntry($databaseURI, $suid, $contentType); + } + } + return false; + } + + function duplicateConflict($databaseURI, $content) + { + global $registry; + + $database = $this->_normalize($databaseURI); + $device = &$_SESSION['SyncML.state']->getDevice(); + $contentType = $device->getPreferredContentType($databaseURI); + $content = preg_replace('/(\r\n|\r|\n)UID:.*?(\r\n|\r|\n)/', '\1', $content, 1); + $duid = $registry->call($database. '/import', + array($content, $contentType, + SyncML_Backend::getParameter($databaseURI,'source'))); + if (is_a($duid, 'PEAR_Error')) { + $this->logMessage("duplicating entry failed.", __FILE__, __LINE__, PEAR_LOG_DEBUG); + return false; + } + $this->logMessage("duplicated server entry to $duid.", __FILE__, __LINE__, PEAR_LOG_DEBUG); + return true; + } + + /** * Authenticates the user at the backend. * * For some types of authentications (notably auth:basic) the username diff --git a/horde-webmail/lib/SyncML/Constants.php b/horde-webmail/lib/SyncML/Constants.php index e0d0f9b..7ca925a 100644 --- a/horde-webmail/lib/SyncML/Constants.php +++ b/horde-webmail/lib/SyncML/Constants.php @@ -66,7 +66,7 @@ define('RESPONSE_RESET_CONTENT', 205); define('RESPONSE_PARTIAL_CONTENT', 206); define('RESPONSE_CONFLICT_RESOLVED_WITH_MERGE', 207); define('RESPONSE_CONFLICT_RESOLVED_WITH_CLIENT_WINNING', 208); -define('RESPONSE_CONFILCT_RESOLVED_WITH_DUPLICATE', 209); +define('RESPONSE_CONFLICT_RESOLVED_WITH_DUPLICATE', 209); define('RESPONSE_DELETE_WITHOUT_ARCHIVE', 210); define('RESPONSE_ITEM_NO_DELETED', 211); define('RESPONSE_AUTHENTICATION_ACCEPTED', 212); diff --git a/horde-webmail/lib/SyncML/Device.php b/horde-webmail/lib/SyncML/Device.php index 196dfbb..dd793c7 100644 --- a/horde-webmail/lib/SyncML/Device.php +++ b/horde-webmail/lib/SyncML/Device.php @@ -159,6 +159,8 @@ class SyncML_Device { SYNCML_LOGFILE_DATA, "\nInput received from client ($contentType):\n$content\n"); + $content = $this->_completeEmptyAttributes($content, $contentType); + // Always remove client UID. UID will be seperately passed in XML. $content = preg_replace('/(\r\n|\r|\n)UID:.*?(\r\n|\r|\n)/', '\1', $content, 1); @@ -167,6 +169,73 @@ class SyncML_Device { } /** + * Complete any attributes that the client supports but did not + * provide. In case the user did delete an attribute on the client + * this action is required to indicate to the server that the + * attribute needs to be deleted. A completely missing attribute + * would be considered as "no change" by the server. + * + * @param string $content The content to convert + * @param string $contentType The contentType of the content + * + * @return string The converted content + */ + function _completeEmptyAttributes($content, $contentType) + { + + $di = $_SESSION['SyncML.state']->deviceInfo; + + if (empty($di) || !isset($di->_CTCap) || !isset($di->_CTCap[$contentType])) { + return $content; + } + + require_once 'Horde/iCalendar.php'; + $iCal = new Horde_iCalendar(); + if (!$iCal->parsevCalendar($content)) { + // We cant parse the content, return it unchanged + return $content; + } + $components = $iCal->getComponents(); + $attributes = $di->_CTCap[$contentType]; + + foreach ($components as $component) { + foreach ($attributes as $name => $properties) { + if ($name == 'BEGIN' || $name == 'END') { + continue; + } + $values = $component->getAllAttributes($name); + if (!isset($properties->_params)) { + if (empty($values)) { + // Undefined attribute -> replace it with + // the correct empty value + $component->setAttributeEmpty($name); + } + } else { + foreach ($properties->_params as $key => $property) { + if (!empty($values)) { + $present = true; + } else { + $present = false; + foreach ($values as $value) { + if (in_array($key, array_keys($value['params']))) { + $present = true; + break; + } + } + } + if (!$present) { + // Undefined attribute -> replace it with + // the correct empty value + $component->setAttributeEmpty($name, array($key => null), true); + } + } + } + } + } + return $iCal->exportvCalendar(); + } + + /** * Converts the content from the backend to a format suitable for the * client device. * diff --git a/horde-webmail/lib/SyncML/Sync.php b/horde-webmail/lib/SyncML/Sync.php index 2342389..57e233b 100644 --- a/horde-webmail/lib/SyncML/Sync.php +++ b/horde-webmail/lib/SyncML/Sync.php @@ -283,7 +283,13 @@ class SyncML_Sync { } } elseif ($item->elementType == 'Delete') { /* Handle client delete requests. */ + $duplicate = $backend->getConflict($hordedatabase, $cuid, $this->_serverAnchorLast); $ok = $backend->deleteEntry($database, $cuid); + $duplicated = false; + if ($duplicate) { + $duplicated = $backend->duplicateConflict($hordedatabase, $duplicate); + } + if (!$ok && $tasksincalendar) { $backend->logMessage( 'Task ' . $cuid . ' deletion sent with calendar request', @@ -293,8 +299,14 @@ class SyncML_Sync { if ($ok) { $this->_client_delete_count++; - $item->responseCode = RESPONSE_OK; $backend->logMessage('Deleted entry ' . $suid . ' due to client request', __FILE__, __LINE__, PEAR_LOG_DEBUG); + if (!$duplicated) { + $item->responseCode = RESPONSE_OK; + } else { + $this->_client_add_count++; + $backend->logMessage('Duplicated entry ' . $suid . ' due to client/server conflict', __FILE__, __LINE__, PEAR_LOG_INFO); + $item->responseCode = RESPONSE_CONFLICT_RESOLVED_WITH_DUPLICATE; + } } else { $this->_errors++; $item->responseCode = RESPONSE_ITEM_NO_DELETED; @@ -303,13 +315,24 @@ class SyncML_Sync { } elseif ($item->elementType == 'Replace') { /* Handle client replace requests. */ + $duplicate = $backend->getConflict($hordedatabase, $cuid, $this->_serverAnchorLast); $suid = $backend->replaceEntry($hordedatabase, $content, $contentType, $cuid); + $duplicated = false; + if ($duplicate) { + $duplicated = $backend->duplicateConflict($hordedatabase, $duplicate); + } if (!is_a($suid, 'PEAR_Error')) { $this->_client_replace_count++; - $item->responseCode = RESPONSE_OK; $backend->logMessage('Replaced entry ' . $suid . ' due to client request', __FILE__, __LINE__, PEAR_LOG_DEBUG); + if (!$duplicated) { + $item->responseCode = RESPONSE_OK; + } else { + $this->_client_add_count++; + $backend->logMessage('Duplicated entry ' . $suid . ' due to client/server conflict', __FILE__, __LINE__, PEAR_LOG_INFO); + $item->responseCode = RESPONSE_CONFLICT_RESOLVED_WITH_DUPLICATE; + } } else { $backend->logMessage($suid->message, __FILE__, __LINE__, PEAR_LOG_DEBUG); -- tg: (6938161..) t/SyncML/HK/GW/CombinedFixes (depends on: master) -- TOPGIT patch commit log ======================= commit 3c12e523cdbac5e2d0c1add78fcb25f500af2877 Author: Gunnar Wrobel

    Date: Sun Feb 1 18:22:13 2009 +0000 Added patch release/HK-GW-SyncML.patch from the mercurial release queue. --- NEW FILE: t_Text_Filter_SC_CH_Xss.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/Text/Filter/SC/CH/Xss Fixes a potential security issue with Internet Explorer. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Text/Filter/xss.php | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/horde-webmail/lib/Horde/Text/Filter/xss.php b/horde-webmail/lib/Horde/Text/Filter/xss.php index 26ba9db..fbd60e2 100644 --- a/horde-webmail/lib/Horde/Text/Filter/xss.php +++ b/horde-webmail/lib/Horde/Text/Filter/xss.php @@ -193,7 +193,7 @@ class Text_Filter_xss extends Text_Filter { /* Comment out style/link tags. */ if ($this->_params['strip_styles']) { if ($this->_params['strip_style_attributes']) { - $patterns['/\s+style\s*=/i'] = ' ' . $this->_params['replace'] . '='; + $patterns['/(\s+|([\'"]))style\s*=/i'] = '$2 ' . $this->_params['replace'] . '='; } $patterns['|]*>(?:\s*<\!--)*|i'] = '\s*)*|i'] = '-->'; -- tg: (6938161..) t/Text/Filter/SC/CH/Xss (depends on: master) -- TOPGIT patch commit log ======================= commit 0138238299582204ebb0e613985378ee36cf6fc7 Author: Gunnar Wrobel

    Date: Sun Feb 1 17:50:47 2009 +0000 Added patch release/H-CH-Xss_fix.patch from the mercurial release queue. --- NEW FILE: t_dimp_HK_GW_ItipHandling.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/dimp/HK/GW/ItipHandling Allow handling iTip messages in dimp. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/dimp/imp.php | 23 +++++++ horde-webmail/dimp/js/DimpBase.js | 14 ++++ horde-webmail/imp/lib/MIME/Viewer/itip.php | 98 ++++++++++++++++++++-------- 3 files changed, 108 insertions(+), 27 deletions(-) diff --git a/horde-webmail/dimp/imp.php b/horde-webmail/dimp/imp.php index f8b9b5c..70264fe 100644 --- a/horde-webmail/dimp/imp.php +++ b/horde-webmail/dimp/imp.php @@ -710,6 +710,29 @@ case 'SendMDN': $imp_ui = new IMP_UI_Message(); $imp_ui->MDNCheck($ob->header, true); break; + +case 'iTip': + $selection = Util::getPost('selection'); + $component = Util::getPost('component'); + $action = str_replace('_', '-', $selection); + $_POST['action'] = array($component => $action); + + if (empty($indices)) { + break; + } + $idx_string = _getIdxString($indices); + + /* Parse MIME info and create the body of the message. */ + require_once IMP_BASE . '/lib/MIME/Contents.php'; + $imp_contents = &IMP_Contents::singleton($idx_string); + + $cr = !$imp_contents->buildMessage(); + + if (is_a($cr, 'PEAR_Error')) { + $notification->push($cr, 'horde.error'); + } + + break; } // Clear the output buffer that we started above, and log any unexpected diff --git a/horde-webmail/dimp/js/DimpBase.js b/horde-webmail/dimp/js/DimpBase.js index 96cd917..39a728b 100644 --- a/horde-webmail/dimp/js/DimpBase.js +++ b/horde-webmail/dimp/js/DimpBase.js @@ -1663,6 +1663,20 @@ var DimpBase = { nf.setStyle({ height: (document.viewport.getHeight() - nf.cumulativeOffset()[1] - 10) + 'px' }); }, + itip: function(action, index, folder, component) + { + var args, vs; + + vs = this.viewport.getViewportSelection().search({ imapuid: { equal: [ index ] }, view: { equal: [ folder ] } }); + if (!vs.size() && folder != this.folder) { + vs = this.viewport.getViewportSelection(folder).search({ imapuid: { equal: [ index ] } }); + } + + args = this.viewport.addRequestParams({ selection: action, component: component }); + + DimpCore.doAction('iTip', args, DimpCore.toUIDArray(vs)); + }, + /* Flag actions for message list. */ flag: function(action, index, folder) { diff --git a/horde-webmail/imp/lib/MIME/Viewer/itip.php b/horde-webmail/imp/lib/MIME/Viewer/itip.php index 1f8fe1e..e030413 100644 --- a/horde-webmail/imp/lib/MIME/Viewer/itip.php +++ b/horde-webmail/imp/lib/MIME/Viewer/itip.php @@ -122,7 +122,7 @@ class IMP_MIME_Viewer_itip extends MIME_Viewer { break; case 'import': - case 'accept-import': + case 'acceptimport': // vFreebusy reply. // vFreebusy publish. // vEvent request. @@ -202,12 +202,12 @@ class IMP_MIME_Viewer_itip extends MIME_Viewer { $this->_msgs[$key][] = array('warning', _("This action is not yet implemented.")); } - if ($action != 'accept-import') { + if ($action != 'acceptimport') { break; } case 'accept': - case 'accept-import': + case 'acceptimport': case 'deny': case 'tentative': // vEvent request. @@ -279,7 +279,7 @@ class IMP_MIME_Viewer_itip extends MIME_Viewer { switch ($action) { case 'accept': - case 'accept-import': + case 'acceptimport': $message = sprintf(_("%s has accepted."), $name); $subject = _("Accepted: ") . $vEvent->getAttribute('SUMMARY'); $params['PARTSTAT'] = 'ACCEPTED'; @@ -622,7 +622,7 @@ class IMP_MIME_Viewer_itip extends MIME_Viewer { case 'PUBLISH': $desc = _("%s wishes to make you aware of \"%s\"."); if ($registry->hasMethod('calendar/import')) { - $options[] = ''; + $options['import'] = _("Add this to my calendar"); } break; @@ -655,35 +655,35 @@ class IMP_MIME_Viewer_itip extends MIME_Viewer { : _("%s wishes to make you aware of \"%s\"."); } if ($is_update && $registry->hasMethod('calendar/replace')) { - $options[] = ''; - $options[] = ''; + $options['acceptimport'] = _("Accept and update in my calendar"); + $options['import'] = _("Update in my calendar"); } elseif ($registry->hasMethod('calendar/import')) { - $options[] = ''; - $options[] = ''; + $options['acceptimport'] = _("Accept and add to my calendar"); + $options['import'] = _("Add to my calendar"); } - $options[] = ''; - $options[] = ''; - $options[] = ''; - // $options[] = ''; + $options['accept'] = _("Accept request"); + $options['tentative'] = _("Tentatively Accept request"); + $options['deny'] = _("Deny request"); + // $options['delegate'] = _("Delegate position"); break; case 'ADD': $desc = _("%s wishes to ammend \"%s\"."); if ($registry->hasMethod('calendar/import')) { - $options[] = ''; + $options['import'] = _("Update this event on my calendar"); } break; case 'REFRESH': $desc = _("%s wishes to receive the latest information about \"%s\"."); - $options[] = ''; + $options['send'] = _("Send Latest Information"); break; case 'REPLY': $desc = _("%s has replied to the invitation to \"%s\"."); $sender = $this->_headers->getValue('From'); if ($registry->hasMethod('calendar/updateAttendee')) { - $options[] = ''; + $options['update'] = _("Update respondent status"); } break; @@ -691,12 +691,12 @@ class IMP_MIME_Viewer_itip extends MIME_Viewer { if (is_a($instance = $vevent->getAttribute('RECURRENCE-ID'), 'PEAR_Error')) { $desc = _("%s has cancelled \"%s\"."); if ($registry->hasMethod('calendar/delete')) { - $options[] = ''; + $options['delete'] = _("Delete from my calendar"); } } else { $desc = _("%s has cancelled an instance of the recurring \"%s\"."); if ($registry->hasMethod('calendar/replace')) { - $options[] = ''; + $options['import'] = _("Update in my calendar"); } } break; @@ -709,6 +709,36 @@ class IMP_MIME_Viewer_itip extends MIME_Viewer { $desc = sprintf($desc, htmlspecialchars($sender), htmlspecialchars($summary)); } + if ($_SESSION['imp']['viewmode'] == 'dimp') { + require_once DIMP_BASE . '/lib/DIMP.php'; + + function _createMEntry($text, $image, $id, $class = '', $show_text = true, $app = null) + { + $params = array('icon' => $image, 'id' => $id, 'class' => $class); + if ($show_text) { + $params['title'] = $text; + } else { + $params['tooltip'] = $text; + } + if (isset($app)) { + $params['app'] = $app; + } + return DIMP::actionButton($params); + } + + $script = 'if (DIMP.baseWindow) {var B = DIMP.baseWindow.DimpBase;} else {B = DimpBase;};DimpCore.addMouseEvents({ id: \'button_invitation_cont\', type: \'itippopdown\', offset: \'button_invitation_cont\', left: true});'; + $script .= '[ \'acceptimport\', \'import\', \'accept\', \'tentative\', \'deny\', \'update\', \'send\' ].each(function(a) {var d = $(\'ctx_itippopdown_\' + a); if (d) { DimpCore.clickObserveHandler({ d: d, f: function(a) { B.itip(a, DIMP.conf.msg_index, DIMP.conf.msg_folder, ' . $id . '); window.close(); }.curry(a) })}})'; + + $html .= '

    ' . _createMEntry(_("Invitation"), 'kronolith.png', 'button_invitation', 'hasmenu', true, 'kronolith') . Horde::img('popdown.png', '', array(), $GLOBALS['registry']->getImageDir('dimp')) . '

    '; + + if ($this->_msgs) { + global $notification; + foreach ($this->_msgs[$id] as $msg) { + $notification->push($msg[1], 'horde.' . $msg[0]); + } + } + } + $html .= '

    ' . $desc . '

    '; if ($this->_msgs) { @@ -796,16 +826,30 @@ class IMP_MIME_Viewer_itip extends MIME_Viewer { $html .= '
    '; } - if ($_SESSION['imp']['viewmode'] != 'imp') { - return $html; - } - if ($options) { - $html .= '

    ' . _("Actions") . '

    ' . - '' . - ' '; + + if ($_SESSION['imp']['viewmode'] == 'imp') { + + $html .= '

    ' . _("Actions") . '

    ' . + '' . + ' '; + + } else if ($_SESSION['imp']['viewmode'] == 'dimp') { + + $html .= '
    '; + + foreach ($options as $key => $description) { + $html .= '
    ' . _createMEntry($description, 'kronolith.png', 'ctx_itippopdown_' . $key, '', true, 'kronolith') . '
    '; + } + + $html .= '
    '; + } } return $html; -- tg: (667dce6..) t/dimp/HK/GW/ItipHandling (depends on: master t/dimp/H/MS/FixBrokenFolderImages) -- TOPGIT patch commit log ======================= commit 2650c064ee6792752d58f6b1b974c05383ea80e7 Author: root Date: Fri Feb 20 14:52:48 2009 +0000 Fixed accept import and moved script initialization from onmouseover event. commit ea8089c0665f52fb45c90993d85bef7c6ac40ee8 Author: root Date: Fri Feb 20 10:03:43 2009 +0000 Handle all available options. commit e964c911e211a203a85f020748679fcb0fc63703 Author: root Date: Fri Feb 20 04:26:45 2009 +0000 Remove stray config file. commit b283064e483d73c9be827a58eba57ec149a4731d Author: Gunnar Wrobel

    Date: Mon Feb 9 08:13:32 2009 +0000 Complete the iTip handling in IMP (draft version). commit a72190bb95b05e4a3dd78238a4c3d95ba0a968a7 Author: Gunnar Wrobel

    Date: Mon Feb 9 08:12:05 2009 +0000 New TopGit dependency: t/dimp/H/MS/FixBrokenFolderImages commit debda05a3fc8546913ce79e9c1cf36e72bda6e97 Author: Gunnar Wrobel

    Date: Sun Feb 8 22:46:26 2009 +0000 Started patching dimp for iTip handling. --- NEW FILE: t_dimp_H_MS_FixBrokenFolderImages.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/dimp/H/MS/FixBrokenFolderImages Fixes broken custom folder images within DIMP. http://bugs.horde.org/ticket/7831 https://www.intevation.de/roundup/kolab/issue3328 Signed-off-by: Gunnar Wrobel

    --- horde-webmail/dimp/js/DimpBase.js | 2149 ++++++++++++++++++++++++++++++++- horde-webmail/dimp/js/src/DimpBase.js | 2 +- horde-webmail/dimp/lib/DIMP.php | 9 +- horde-webmail/dimp/themes/screen.css | 2 +- 4 files changed, 2157 insertions(+), 5 deletions(-) diff --git a/horde-webmail/dimp/js/DimpBase.js b/horde-webmail/dimp/js/DimpBase.js [...2197 lines suppressed...] display: inline; float: left; width: 20px; -- tg: (6938161..) t/dimp/H/MS/FixBrokenFolderImages (depends on: master) -- TOPGIT patch commit log ======================= commit 12a42ba2183476ce329b567490ff5013727d8a39 Author: Gunnar Wrobel

    Date: Sat Feb 7 23:54:51 2009 +0000 Fix the style name. commit 8588d2b184f6244655c219104b4d8119f0ea4644 Author: Gunnar Wrobel

    Date: Sat Feb 7 18:43:00 2009 +0000 kolab/issue3328 ([Webclient] DIMP groupware folder names display bug) --- NEW FILE: t_framework_HK_GW_Auth_InvalidCheck.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Auth/InvalidCheck Remove an obsolete check. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Auth/kolab.php | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/horde-webmail/lib/Horde/Auth/kolab.php b/horde-webmail/lib/Horde/Auth/kolab.php index ae846c8..7fbc55b 100644 --- a/horde-webmail/lib/Horde/Auth/kolab.php +++ b/horde-webmail/lib/Horde/Auth/kolab.php @@ -101,7 +101,7 @@ class Auth_kolab extends Auth { $max_count = $conf['auth']['params']['login_block_count']; - if ($count > $max_count || !$login_ok) { + if ($count > $max_count) { // Add entry for current failed login. $entry = array(); $entry[ 'timestamp' ] = time(); -- tg: (493930b..) t/framework/HK/GW/Auth/InvalidCheck (depends on: t/framework/HK/GW/Kolab_Server/RequireIMAP) -- TOPGIT patch commit log ======================= commit c01dce5512d9422c0a2aa907b6201f65ba2330db Author: Gunnar Wrobel

    Date: Sat Jan 31 00:06:59 2009 +0000 Added patch framework/HK-GW-Auth-Typo_fix.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Auth_ListUsers.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Auth/ListUsers Implement listing users in the Kolab Auth driver. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Auth/kolab.php | 33 ++++++++++++++++++++++++++++++++ 1 files changed, 33 insertions(+), 0 deletions(-) diff --git a/horde-webmail/lib/Horde/Auth/kolab.php b/horde-webmail/lib/Horde/Auth/kolab.php index 55dcb6e..235e72a 100644 --- a/horde-webmail/lib/Horde/Auth/kolab.php +++ b/horde-webmail/lib/Horde/Auth/kolab.php @@ -21,6 +21,18 @@ require_once 'Horde/Auth/imap.php'; class Auth_kolab extends Auth_imap { /** + * An array of capabilities, so that the driver can report which + * operations it supports and which it doesn't. + * + * @var array + */ + var $capabilities = array('add' => false, + 'update' => false, + 'resetpassword' => false, + 'remove' => false, + 'list' => true, + 'transparent' => false); + /** * Find out if a set of login credentials are valid. * * @access private @@ -148,4 +160,25 @@ class Auth_kolab extends Auth_imap { return parent::setAuth($userId, $credentials, $realm, $changeRequested); } + /** + * List Users + * + * @return array List of Users + */ + function listUsers() + { + @include_once 'Horde/Kolab/Server.php'; + + if (class_exists('Horde_Kolab_Server')) { + $server = Horde_Kolab_Server::singleton(); + $users = $server->listObjects(KOLAB_OBJECT_USER); + $mails = array(); + foreach ($users as $user) { + $mails[] = $user->get(KOLAB_ATTR_MAIL); + } + return $mails; + } else { + return PEAR::raiseError("The class \"Horde_Kolab_Server\" is not available."); + } + } } -- tg: (d75006c..) t/framework/HK/GW/Auth/ListUsers (depends on: t/framework/HK/GW/Kolab_Server/ListObjects) -- TOPGIT patch commit log ======================= commit 4bb7043665e636375b842317dfd6f8685ba4c5ac Author: Gunnar Wrobel

    Date: Sun Feb 1 23:21:05 2009 +0000 Removed patch remains. commit d84a437b9d2acb9fdca37070a5c22ff5d7d69934 Author: Gunnar Wrobel

    Date: Fri Jan 30 22:48:42 2009 +0000 Added patch release/HK-GW-Auth-KolabUserList.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Auth_SafetyCheck.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Auth/SafetyCheck A tiny safety check. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Auth/kolab.php | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/horde-webmail/lib/Horde/Auth/kolab.php b/horde-webmail/lib/Horde/Auth/kolab.php index b790c1e..ae846c8 100644 --- a/horde-webmail/lib/Horde/Auth/kolab.php +++ b/horde-webmail/lib/Horde/Auth/kolab.php @@ -60,7 +60,7 @@ class Auth_kolab extends Auth { return false; } - if ($conf['auth']['params']['login_block'] != 1) { + if (!isset($conf['auth']['params']) || $conf['auth']['params']['login_block'] != 1) { // Return if feature is disabled. return $session->auth; } -- tg: (a71d158..) t/framework/HK/GW/Auth/SafetyCheck (depends on: t/framework/HK/GW/Kolab/MoveIMAP) -- TOPGIT patch commit log ======================= commit 1b1b2443155c09a313726728cc3eda6dc01b3bb6 Author: Gunnar Wrobel

    Date: Fri Jan 30 23:33:46 2009 +0000 Added patch /release/HK-GW-Kolab_Freebusy-Use_new_Kolab_Server.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Auth_UseKolabServer.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Auth/UseKolabServer Support adding users and switch over to using Kolab_Server (and LDAP). Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Auth/kolab.php | 71 +++++++++++++++++-------- horde-webmail/lib/Horde/Kolab/Server/test.php | 7 ++- horde-webmail/lib/Horde/Kolab/Session.php | 7 +-- 3 files changed, 57 insertions(+), 28 deletions(-) diff --git a/horde-webmail/lib/Horde/Auth/kolab.php b/horde-webmail/lib/Horde/Auth/kolab.php index 235e72a..b790c1e 100644 --- a/horde-webmail/lib/Horde/Auth/kolab.php +++ b/horde-webmail/lib/Horde/Auth/kolab.php @@ -1,7 +1,5 @@ false, + var $capabilities = array('add' => true, 'update' => false, 'resetpassword' => false, 'remove' => false, @@ -39,7 +37,7 @@ class Auth_kolab extends Auth_imap { * * @param string $userId The userId to check. * @param array $credentials An array of login credentials. For Kolab, - * this must contain a password entry. + * this must contain a "password" entry. * * @return boolean Whether or not the credentials are valid. */ @@ -52,12 +50,9 @@ class Auth_kolab extends Auth_imap { @include_once 'Horde/Kolab/Session.php'; if (class_exists('Horde_Kolab_Session')) { - $session = &Horde_Kolab_Session::singleton($userId); - $userId = $session->user_mail; - $params = $session->getImapParams(); - if (is_a($params, 'PEAR_Error')) { - $this->_setAuthError(AUTH_REASON_MESSAGE, $params->getMessage()); - return false; + $session = &Horde_Kolab_Session::singleton($userId, $credentials, true); + if (is_a($session->auth, 'PEAR_Error')) { + $this->_setAuthError(AUTH_REASON_MESSAGE, $session->auth->getMessage()); } } else { $this->_setAuthError(AUTH_REASON_MESSAGE, @@ -65,18 +60,14 @@ class Auth_kolab extends Auth_imap { return false; } - $this->_setParams($params); - - $login_ok = parent::_authenticate($userId, $credentials); - if ($conf['auth']['params']['login_block'] != 1) { // Return if feature is disabled. - return $login_ok; + return $session->auth; } @include_once 'Horde/History.php'; - if (class_exists('Horde_History')) { + if ($session->auth !== true && class_exists('Horde_History')) { $history = &Horde_History::singleton(); $history_identifier = "$userId at logins.kolab"; @@ -132,7 +123,7 @@ class Auth_kolab extends Auth_imap { } } - return $login_ok; + return $session->auth === true; } /** @@ -167,10 +158,14 @@ class Auth_kolab extends Auth_imap { */ function listUsers() { - @include_once 'Horde/Kolab/Server.php'; + @include_once 'Horde/Kolab/Session.php'; - if (class_exists('Horde_Kolab_Server')) { - $server = Horde_Kolab_Server::singleton(); + if (class_exists('Horde_Kolab_Session')) { + $session = &Horde_Kolab_Session::singleton(); + $server = $session->getServer(); + if (is_a($server, 'PEAR_Error')) { + return $server; + } $users = $server->listObjects(KOLAB_OBJECT_USER); $mails = array(); foreach ($users as $user) { @@ -178,7 +173,39 @@ class Auth_kolab extends Auth_imap { } return $mails; } else { - return PEAR::raiseError("The class \"Horde_Kolab_Server\" is not available."); + return PEAR::raiseError("The class \"Horde_Kolab_Session\" is not available."); + } + } + + /** + * Add a set of authentication credentials. + * + * @param string $userId The userId to add. + * @param array $credentials The credentials to be set. + * + * @return boolean|PEAR_Error True on success. + */ + function addUser($userId, $credentials) + { + @include_once 'Horde/Kolab/Session.php'; + + if (class_exists('Horde_Kolab_Session')) { + $session = &Horde_Kolab_Session::singleton(); + $server = $session->getServer(); + if (is_a($server, 'PEAR_Error')) { + return $server; + } + $result = $server->store(KOLAB_OBJECT_USER, $userId, $credentials); + if (is_a($result, KOLAB_OBJECT_USER)) { + return true; + } else if (is_a($result, 'PEAR_Error')) { + return $result; + } else { + return PEAR::raiseError(sprintf('The new Kolab object is a %s rather than a ' . KOLAB_OBJECT_USER, + get_class($result))); + } + } else { + return PEAR::raiseError("The class \"Horde_Kolab_Session\" is not available."); } } } diff --git a/horde-webmail/lib/Horde/Kolab/Server/test.php b/horde-webmail/lib/Horde/Kolab/Server/test.php index 6f8a237..6565bbc 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/test.php +++ b/horde-webmail/lib/Horde/Kolab/Server/test.php @@ -125,21 +125,24 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { $data = $this->_read($dn, $attrs = array('userPassword')); if (is_a($data, 'PEAR_Error')) { + $this->_bound = false; return $data; } if (!isset($data['userPassword'])) { + $this->_bound = false; return PEAR::raiseError('User has no password entry!'); } - $this->_bound = $data['userPassword'][0] = $pw; + $this->_bound = $data['userPassword'][0] == $pw; if (!$this->_bound) { return PEAR::raiseError('Incorrect password!'); } } else if ($this->_params['no_anonymous_bind']) { + $this->_bound = false; return PEAR::raiseError('Anonymous bind is not allowed!'); } else { $this->_bound = true; } - return true; + return $this->_bound; } /** diff --git a/horde-webmail/lib/Horde/Kolab/Session.php b/horde-webmail/lib/Horde/Kolab/Session.php index 7c73496..616b285 100644 --- a/horde-webmail/lib/Horde/Kolab/Session.php +++ b/horde-webmail/lib/Horde/Kolab/Session.php @@ -129,7 +129,7 @@ class Horde_Kolab_Session { $this->user_mail = $result; } - $result = $user_object->get(KOLAB_ATTR_UID); + $result = $user_object->get(KOLAB_ATTR_SID); if (!empty($result) && !is_a($result, 'PEAR_Error')) { $this->user_id = $result; } @@ -209,7 +209,6 @@ class Horde_Kolab_Session { $params['pass'] = $credentials['password']; } } - return Horde_Kolab_Server::singleton($params); } @@ -242,7 +241,7 @@ class Horde_Kolab_Session { * * @return Horde_Kolab_Session The concrete Session reference. */ - function &singleton($user = null, $credentials = null) + function &singleton($user = null, $credentials = null, $destruct = false) { static $session; @@ -258,7 +257,7 @@ class Horde_Kolab_Session { $session = $hs->query('kolab_session'); } - if (empty($session) + if ($destruct || empty($session) || (!empty($user) && $user != $session->user_mail && $user != $session->user_id)) { $session = new Horde_Kolab_Session($user, $credentials); -- tg: (a00ff66..) t/framework/HK/GW/Auth/UseKolabServer (depends on: t/framework/HK/GW/Kolab_Storage/CatchPossibleError) -- TOPGIT patch commit log ======================= commit a92d02c65183a8af5418101133be2c8df95e705a Author: Gunnar Wrobel

    Date: Fri Jan 30 23:20:41 2009 +0000 Added patch release/HK-GW-Auth-Use_Kolab_Server.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Auth_UseSession.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Auth/UseSession Switches Kolab authentication to use the Kolab_Session handler. This effectively switches from IMAP based authentication to LDAP based authentication. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Auth/kolab.php | 130 +++++++------------------------- 1 files changed, 28 insertions(+), 102 deletions(-) diff --git a/horde-webmail/lib/Horde/Auth/kolab.php b/horde-webmail/lib/Horde/Auth/kolab.php index fda2d9b..55dcb6e 100644 --- a/horde-webmail/lib/Horde/Auth/kolab.php +++ b/horde-webmail/lib/Horde/Auth/kolab.php @@ -21,18 +21,6 @@ require_once 'Horde/Auth/imap.php'; class Auth_kolab extends Auth_imap { /** - * Constructs a new Kolab authentication object. - * - * @param array $params A hash containing connection parameters. - */ - function Auth_kolab($params = array()) - { - $params['protocol'] = 'imap/notls/novalidate-cert'; - - parent::Auth_imap($params); - } - - /** * Find out if a set of login credentials are valid. * * @access private @@ -47,17 +35,26 @@ class Auth_kolab extends Auth_imap { { global $conf; - /** - * Determine the IMAP server for the user and update the - * connection parameters */ - $result = $this->_getImapServer($userId); - if (is_a($result, 'PEAR_Error')) { - $this->_setAuthError(AUTH_REASON_MESSAGE, $result->getMessage()); - return false; + $params = array(); + + @include_once 'Horde/Kolab/Session.php'; + + if (class_exists('Horde_Kolab_Session')) { + $session = &Horde_Kolab_Session::singleton($userId); + $userId = $session->user_mail; + $params = $session->getImapParams(); + if (is_a($params, 'PEAR_Error')) { + $this->_setAuthError(AUTH_REASON_MESSAGE, $params->getMessage()); + return false; + } } else { - $this->_setParams($result); + $this->_setAuthError(AUTH_REASON_MESSAGE, + 'The class Horde_Kolab_Session is required for the Kolab auth driver but it is missing!'); + return false; } + $this->_setParams($params); + $login_ok = parent::_authenticate($userId, $credentials); if ($conf['auth']['params']['login_block'] != 1) { @@ -108,11 +105,13 @@ class Auth_kolab extends Auth_imap { $new_history_list[] = $entry; // Write back history. - $history->log($history_identifier, array('action' => 'add', 'who' => $userId, - 'history_list' => $new_history_list), true); + $history->log($history_identifier, + array('action' => 'add', 'who' => $userId, + 'history_list' => $new_history_list), true); if ($count > $max_count) { - $this->_setAuthError(AUTH_REASON_MESSAGE, _("Too many invalid logins during the last minutes.")); + $this->_setAuthError(AUTH_REASON_MESSAGE, + _("Too many invalid logins during the last minutes.")); } else { $this->_setAuthError(AUTH_REASON_BADLOGIN); } @@ -125,73 +124,11 @@ class Auth_kolab extends Auth_imap { } /** - * Identify the IMAP server we should authenticate against. - * - * @access private - * - * @param string $userId The userId to check. - * @param array $credentials An array of login credentials. For Kolab, - * this must contain a password entry. - * - * @return boolean Whether or not the credentials are valid. - */ - function _getImapServer($userId) - { - $params = array(); - - @include_once 'Horde/Kolab/Server.php'; - - if (class_exists('Horde_Kolab_Server')) { - $db = Horde_Kolab_Server::singleton(); - if (is_a($db, 'PEAR_Error')) { - return $db; - } - $dn = $db->dnForUidOrMail($userId); - if (is_a($dn, 'PEAR_Error')) { - return $dn; - } - $user = $db->fetch($dn); - if (is_a($user, 'PEAR_Error')) { - return $user; - } - - global $conf; - - if (empty($conf['kolab']['misc']['allow_special']) - && !is_a($user, 'Horde_Kolab_Server_Object_user')) { - return PEAR::raiseError(_('User is not a standard Kolab user.')); - } - $result = $user->getServer('imap'); - if (!empty($result) && !is_a($result, 'PEAR_Error')) { - $server = explode(':', $result, 2); - if (!empty($server[0])) { - $params['hostspec'] = $server[0]; - } - if (!empty($server[1])) { - $params['port'] = $server[1]; - } - } - } - - if (empty($params['hostspec']) - && isset($conf['kolab']['imap']['server'])) { - $params['hostspec'] = $conf['kolab']['imap']['server']; - } - - if (!isset($params['port']) - && isset($conf['kolab']['imap']['port'])) { - $params['port'] = $conf['kolab']['imap']['port']; - } - - return $params; - } - - /** * Sets a variable in the session saying that authorization has succeeded, * note which userId was authorized, and note when the login took place. * * The kolab driver rewrites UIDs into the correct mail addresses that - * need to be used to log into the system. + * need to be used to log into the IMAP server. * * @param string $userId The userId who has been authorized. * @param array $credentials The credentials of the user. @@ -201,22 +138,11 @@ class Auth_kolab extends Auth_imap { */ function setAuth($userId, $credentials, $realm = null, $changeRequested = false) { - @include_once 'Horde/Kolab/Server.php'; - - if (class_exists('Horde_Kolab_Server')) { - $db = Horde_Kolab_Server::singleton(); - if (!is_a($db, 'PEAR_Error')) { - $userMail = $db->mailForUidOrMail($userId); - if (is_a($userMail, 'PEAR_Error')) { - Horde::logMessage(sprintf("Error while fetching the Kolab ID: %s", - $userMail->getMessage()), - __FILE__, __LINE__, PEAR_LOG_ERR); - } else { - if (!empty($userMail)) { - $userId = $userMail; - } - } - } + @include_once 'Horde/Kolab/Session.php'; + + if (class_exists('Horde_Kolab_Session')) { + $session = &Horde_Kolab_Session::singleton($userId); + $userId = $session->user_mail; } return parent::setAuth($userId, $credentials, $realm, $changeRequested); -- tg: (ef1f7b1..) t/framework/HK/GW/Auth/UseSession (depends on: t/framework/HK/GW/Kolab_Server/Session) -- TOPGIT patch commit log ======================= commit 6b1cf18d426950b48f589787255085f2deed89a2 Author: Gunnar Wrobel

    Date: Fri Jan 30 20:30:29 2009 +0000 Added patch release/HK-GW-Auth-SessionMove.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_DB_SqliteErrorChecking.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/DB/SqliteErrorChecking Fix error checking in the sqlite PEAR implementation. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/pear/DB/sqlite.php | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/horde-webmail/pear/DB/sqlite.php b/horde-webmail/pear/DB/sqlite.php index bf2acec..00e65f4 100644 --- a/horde-webmail/pear/DB/sqlite.php +++ b/horde-webmail/pear/DB/sqlite.php @@ -742,7 +742,7 @@ class DB_sqlite extends DB_common // PHP 5.2+ prepends the function name to $php_errormsg, so we need // this hack to work around it, per bug #9599. - $errormsg = preg_replace('/^sqlite[a-z_]+\(\): /', '', $errormsg); + $errormsg = preg_replace('/^sqlite[a-z_]+\(\) \[[^\]]*\]: /', '', $errormsg); if (!isset($error_regexps)) { $error_regexps = array( -- tg: (018dab9..) t/framework/HK/GW/DB/SqliteErrorChecking (depends on: t/framework/HK/GW/Kolab/XfbFixes) -- TOPGIT patch commit log ======================= commit 1dd36cf01fd707c95af690339799bc5ce73a05c0 Author: Gunnar Wrobel

    Date: Sun Feb 1 16:52:24 2009 +0000 Added patch release/HK-GW-DB_sqlite-Incorrect_error_check.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab_AttachmentSupport.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab/AttachmentSupport Attachment support as specified in the Kolab format. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Format/XML.php | 51 +++++- horde-webmail/lib/Horde/Kolab/Storage/Cache.php | 25 +++ horde-webmail/lib/Horde/Kolab/Storage/Data.php | 70 +++++-- horde-webmail/lib/Horde/Kolab/Storage/Folder.php | 229 ++++++++++++++++------ 4 files changed, 294 insertions(+), 81 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Format/XML.php b/horde-webmail/lib/Horde/Kolab/Format/XML.php index d3d7def..f225477 100644 --- a/horde-webmail/lib/Horde/Kolab/Format/XML.php +++ b/horde-webmail/lib/Horde/Kolab/Format/XML.php @@ -117,11 +117,18 @@ class Horde_Kolab_Format_XML var $_version = 1; /** + * The name of the resulting document. + * + * @var string + */ + var $_name = 'kolab.xml'; + + /** * The XML document this driver works with. * * @var Horde_DOM_Document */ - var $_xmldoc = null; + var $_xmldoc = null; /** * The name of the root element. @@ -319,12 +326,20 @@ class Horde_Kolab_Format_XML 'default' => 'public', ), 'inline-attachment' => array( - 'type' => HORDE_KOLAB_XML_TYPE_STRING, + 'type' => HORDE_KOLAB_XML_TYPE_MULTIPLE, 'value' => HORDE_KOLAB_XML_VALUE_MAYBE_MISSING, + 'array' => array( + 'type' => HORDE_KOLAB_XML_TYPE_STRING, + 'value' => HORDE_KOLAB_XML_VALUE_MAYBE_MISSING, + ), ), 'link-attachment' => array( - 'type' => HORDE_KOLAB_XML_TYPE_STRING, + 'type' => HORDE_KOLAB_XML_TYPE_MULTIPLE, 'value' => HORDE_KOLAB_XML_VALUE_MAYBE_MISSING, + 'array' => array( + 'type' => HORDE_KOLAB_XML_TYPE_STRING, + 'value' => HORDE_KOLAB_XML_VALUE_MAYBE_MISSING, + ), ), 'product-id' => array( 'type' => HORDE_KOLAB_XML_TYPE_STRING, @@ -362,6 +377,36 @@ class Horde_Kolab_Format_XML } /** + * Return the name of the resulting document. + * + * @return string The name that may be used as filename. + */ + function getName() + { + return $this->_name; + } + + /** + * Return the mime type of the resulting document. + * + * @return string The mime type of the result. + */ + function getMimeType() + { + return 'application/x-vnd.kolab.' . $this->_root_name; + } + + /** + * Return the disposition of the resulting document. + * + * @return string The disportion of this document. + */ + function getDisposition() + { + return 'attachment'; + } + + /** * Load an object based on the given XML string. * * @param string $xmltext The XML of the message as string. diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Cache.php b/horde-webmail/lib/Horde/Kolab/Storage/Cache.php index f2bed55..908a5d8 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Cache.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Cache.php @@ -187,6 +187,31 @@ class Kolab_Cache { } /** + * Load a cached attachment. + * + * @param string $key Access key to the cached data. + * + * @return mixed The data of the object. + */ + function loadAttachment($key) + { + return $this->_horde_cache->get($key, 0); + } + + /** + * Cache an attachment. + * + * @param string $key Access key to the cached data. + * @param string $data The data to be cached. + * + * @return boolean True if successfull. + */ + function storeAttachment($key, $data) + { + return $this->_horde_cache->set($key, $data); + } + + /** * Initialize the cache structure. */ function reset() diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Data.php b/horde-webmail/lib/Horde/Kolab/Storage/Data.php index 4e3b39c..472a131 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Data.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Data.php @@ -48,14 +48,6 @@ class Kolab_Data { var $_object_type; /** - * The full mime type string of the current Kolab object format we're - * dealing with. - * - * @var string - */ - var $_mime_type; - - /** * The version of the data. * * @var int @@ -108,8 +100,6 @@ class Kolab_Data { } $this->_data_version = $data_version; - $this->_mime_type = 'application/x-vnd.kolab.' . $this->_object_type; - if ($this->_object_type != $this->_type) { $this->_type_key = '@' . $this->_object_type; } else { @@ -286,12 +276,6 @@ class Kolab_Data { */ function save($object, $old_object_id = null) { - $handler = Horde_Kolab_Format::factory('XML', $this->_object_type, - $this->_data_version); - if (is_a($handler, 'PEAR_Error')) { - return $handler; - } - // update existing kolab object if ($old_object_id != null) { // check if object really exists @@ -306,12 +290,15 @@ class Kolab_Data { return PEAR::raiseError(sprintf(_("Old object %s does not map to a uid."), $old_object_id)); } + + $old_object = $this->getObject($old_object_id); } else { $id = null; + $old_object = null; } - $result = $this->_folder->saveObject($object, $handler, $this->_object_type, - $this->_mime_type, $id); + $result = $this->_folder->saveObject($object, $this->_data_version, + $this->_object_type, $id, $old_object); if (is_a($result, 'PEAR_Error')) { return $result; } @@ -346,6 +333,8 @@ class Kolab_Data { $recent_uids = array_diff($ids, array_keys($this->_cache->uids)); + $formats = $this->_folder->getFormats(); + $handler = Horde_Kolab_Format::factory('XML', $this->_object_type, $this->_data_version); if (is_a($handler, 'PEAR_Error')) { return $handler; @@ -358,7 +347,13 @@ class Kolab_Data { continue; } - $text = $this->_folder->fetch($id, $this->_mime_type); + $mime = $this->_folder->parseMessage($id, $handler->getMimeType(), false); + if (is_a($mime, 'PEAR_Error')) { + Horde::logMessage($text, __FILE__, __LINE__, PEAR_LOG_WARNING); + $text = false; + } else { + $text = $mime[0]; + } if ($text) { $object = $handler->load($text); @@ -373,6 +368,31 @@ class Kolab_Data { } if ($object !== false) { + $message = &$mime[2]; + $handler_type = $handler->getMimeType(); + foreach ($message->getParts() as $part) { + $name = $part->getName(); + $type = $part->getType(); + $dp = $part->getDispositionParameter('x-kolab-type'); + if (!empty($name) && $type != $handler_type + || (!empty($dp) && in_array($dp, $formats))) { + $object['_attachments'][$name]['type'] = $type; + $object['_attachments'][$name]['key'] = $this->_cache_key . '/' . $object['uid'] . ':' . $name; + $part->transferDecodeContents(); + $result = $this->_cache->storeAttachment($object['_attachments'][$name]['key'], + $part->getContents()); + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage(sprintf('Failed storing attachment of object %s: %s', + $id, $result->getMessage()), + __FILE__, __LINE__, PEAR_LOG_ERR); + $object = false; + break; + } + } + } + } + + if ($object !== false) { $this->_cache->store($id, $object['uid'], $object); $mod_ts = time(); if (is_array($changes) && in_array($object['uid'], $changes) @@ -577,6 +597,18 @@ class Kolab_Data { } /** + * Return the specified attachment. + * + * @param string $attachment_id The attachment id. + * + * @return string|PEAR_Error The attachment data as a string. + */ + function getAttachment($attachment_id) + { + return $this->_cache->loadAttachment($attachment_id); + } + + /** * Retrieve all object ids in the current folder. * * @return array The object ids. diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php index f1fd7e7..ddcfbe8 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php @@ -307,7 +307,7 @@ class Kolab_Folder { if (isset($attributes['type'])) { if ($attributes['type'] != $type) { - Horde::logMessage(sprintf("Cannot modify the type of a folder from %s to %s!", + Horde::logMessage(sprintf('Cannot modify the type of a folder from %s to %s!', $type, $attributes['type']), __FILE__, __LINE__, PEAR_LOG_ERR); } @@ -352,7 +352,7 @@ class Kolab_Folder { if (isset($attributes['owner'])) { if ($attributes['owner'] != $this->getOwner()) { - Horde::logMessage(sprintf("Cannot modify the owner of a folder from %s to %s!", + Horde::logMessage(sprintf('Cannot modify the owner of a folder from %s to %s!', $this->getOwner(), $attributes['owner']), __FILE__, __LINE__, PEAR_LOG_ERR); } @@ -763,19 +763,43 @@ class Kolab_Folder { } /** + * Retrieve the supported formats. + * + * @return array The names of the supported formats. + */ + function getFormats() + { + global $conf; + + if (empty($conf['kolab']['misc']['formats'])) { + $formats = array('XML'); + } else { + $formats = $conf['kolab']['misc']['formats']; + } + if (!is_array($formats)) { + $formats = array($formats); + } + if (!in_array('XML', $formats)) { + $formats[] = 'XML'; + } + return $formats; + } + + /** * Save an object in this folder. * - * @param array $object The array that holds the data of - * the object. - * @param Horde_Kolab_Format $handler The handler for the Kolab Format. - * @param string $object_type The type of the kolab object. - * @param string $mime_type The mime type for the kolab object. - * @param string $id The IMAP id of the old object if it - * existed before + * @param array $object The array that holds the data of the object. + * @param int $data_version The format handler version. + * @param string $object_type The type of the kolab object. + * @param string $id The IMAP id of the old object if it + * existed before + * @param array $old_object The array that holds the current data of the + * object. * * @return boolean|PEAR_Error True on success. */ - function saveObject(&$object, &$handler, $object_type, $mime_type, $id = null) + function saveObject(&$object, $data_version, $object_type, $id = null, + &$old_object = null) { $session = &Horde_Kolab_Session::singleton(); $imap = &$session->getImap(); @@ -791,25 +815,77 @@ class Kolab_Folder { $new_headers = new MIME_Headers(); + $formats = $this->getFormats(); + + $handlers = array(); + foreach ($formats as $type) { + $handlers[$type] = &Horde_Kolab_Format::factory($type, $object_type, + $data_version); + if (is_a($handlers[$type], 'PEAR_Error')) { + if ($type == 'XML') { + return $handlers[$type]; + } + Horde::logMessage(sprintf('Loading format handler "%s" failed: %s', + $type, $handlers[$type]->getMessage()), + __FILE__, __LINE__, PEAR_LOG_ERR); + continue; + } + } + if ($id != null) { /** Update an existing kolab object */ + $session = &Horde_Kolab_Session::singleton(); + $imap = &$session->getImap(); + if (is_a($imap, 'PEAR_Error')) { + return $imap; + } + + if (!in_array($id, $imap->getUids())) { + return PEAR::raiseError(sprintf(_("The message with ID %s does not exist. This probably means that the Kolab object has been modified by somebody else while you were editing it. Your edits have been lost."), + $id)); + } /** Parse email and load Kolab format structure */ - $result = $this->_parseMessage($id, $mime_type); + $result = $this->parseMessage($id, $handlers['XML']->getMimeType(), + true, $formats); if (is_a($result, 'PEAR_Error')) { return $result; } - list($old_message, $mime_part_id, $mime_message, $mime_headers) = $result; + list($old_message, $part_ids, $mime_message, $mime_headers) = $result; if (is_a($old_message, 'PEAR_Error')) { return $old_message; } - $result = $handler->load($old_message); - if (is_a($result, 'PEAR_Error')) { - return $result; + if (isset($object['_attachments']) && isset($old_object['_attachments'])) { + $attachments = array_keys($object['_attachments']); + foreach (array_keys($old_object['_attachments']) as $attachment) { + if (!in_array($attachment, $attachments)) { + foreach ($mime_message->getParts() as $part) { + if ($part->getName() === $attachment) { + foreach (array_keys($mime_message->_parts) as $key) { + if ($mime_message->_parts[$key]->getMIMEId() == $part->getMIMEId()) { + unset($mime_message->_parts[$key]); + break; + } + } + $mime_message->_generateIdMap($mime_message->_parts); + } + } + } + } + } + $object = array_merge($old_object, $object); + + if (isset($attachments)) { + foreach ($mime_message->getParts() as $part) { + $name = $part->getName(); + foreach ($attachments as $attachment) { + if ($name === $attachment) { + $object['_attachments'][$attachment]['id'] = $part->getMIMEId(); + } + } + } } - - $object = array_merge($result, $object); /** Copy email header */ if (!empty($mime_headers) && !$mime_headers === false) { @@ -822,20 +898,53 @@ class Kolab_Folder { $mime_part_id = false; } - $new_content = $handler->save($object); - if (is_a($new_content, 'PEAR_Error')) { - return $new_content; + if (isset($object['_attachments'])) { + $attachments = array_keys($object['_attachments']); + foreach ($attachments as $attachment) { + $data = $object['_attachments'][$attachment]; + + if (!isset($data['content']) && !isset($data['path'])) { + /** + * There no new content and no new path. Do not rewrite the + * attachment. + */ + continue; + } + + $part = new MIME_Part(isset($data['type']) ? $data['type'] : null, + isset($data['content']) ? $data['content'] : file_get_contents($data['path']), + NLS::getCharset()); + $part->setTransferEncoding('quoted-printable'); + $part->setDisposition('attachment'); + $part->setName($attachment); + + if (!isset($data['id'])) { + $mime_message->addPart($part); + } else { + $mime_message->alterPart($data['id'], $part); + } + } } - /** Update mime part */ - $part = new MIME_Part($mime_type, $new_content, NLS::getCharset()); - $part->setTransferEncoding("quoted-printable"); - $part->setName($object_type . ".xml"); + foreach ($formats as $type) { + $new_content = $handlers[$type]->save($object); + if (is_a($new_content, 'PEAR_Error')) { + return $new_content; + } - if ($mime_part_id === false) { - $mime_message->addPart($part); - } else { - $mime_message->alterPart($mime_part_id, $part); + /** Update mime part */ + $part = new MIME_Part($handlers[$type]->getMimeType(), + $new_content, NLS::getCharset()); + $part->setTransferEncoding('quoted-printable'); + $part->setDisposition($handlers[$type]->getDisposition()); + $part->setDispositionParameter('x-kolab-type', $type); + $part->setName($handlers[$type]->getName()); + + if (!isset($part_ids) || $part_ids[$type] === false) { + $mime_message->addPart($part); + } else { + $mime_message->alterPart($part_ids[$type], $part); + } } $session = &Horde_Kolab_Session::singleton(); @@ -844,9 +953,9 @@ class Kolab_Folder { $new_headers->addHeader('From', $session->user_mail); $new_headers->addHeader('To', $session->user_mail); $new_headers->addHeader('Date', date('r')); - $new_headers->addHeader('X-Kolab-Type', $mime_type); - $new_headers->addHeader('Subject', $object["uid"]); - $new_headers->addHeader('User-Agent', 'Horde::Kolab v1.1'); + $new_headers->addHeader('X-Kolab-Type', $handlers['XML']->getMimeType()); + $new_headers->addHeader('Subject', $object['uid']); + $new_headers->addHeader('User-Agent', 'Horde::Kolab::Storage v0.2'); $new_headers->addMIMEHeaders($mime_message); $msg = preg_replace("/\r\n|\n|\r/s", "\r\n", @@ -891,30 +1000,12 @@ class Kolab_Folder { } /** - * Fetch an IMAP message. - * - * @param int $id The message to retrieve - * @param string $mime_type The mime type of the part to retrieve - * - * @return mixed A string containing the Kolab XML object or false - * if an error occured. - */ - function fetch($id, $mime_type) - { - $result = $this->_parseMessage($id, $mime_type, false); - if (is_a($result, 'PEAR_Error')) { - Horde::logMessage($text, __FILE__, __LINE__, PEAR_LOG_WARNING); - return false; - } - return $result[0]; - } - - /** * Get an IMAP message and retrieve the Kolab Format object. * * @param int $id The message to retrieve. * @param string $mime_type The mime type of the part to retrieve. * @param boolean $parse_headers Should the heades be MIME parsed? + * @param array $formats The list of possible format parts. * * @return array|PEAR_Error An array that list the Kolab XML * object text, the mime ID of the part @@ -922,7 +1013,8 @@ class Kolab_Folder { * message and the MIME parsed headers if * requested. */ - function _parseMessage($id, $mime_type, $parse_headers = true) + function parseMessage($id, $mime_type, $parse_headers = true, + $formats = array('XML')) { $session = &Horde_Kolab_Session::singleton(); $imap = &$session->getImap(); @@ -932,12 +1024,14 @@ class Kolab_Folder { $raw_headers = $imap->getMessageHeader($id); if (is_a($raw_headers, 'PEAR_Error')) { - return $raw_headers; + return PEAR::raiseError(sprintf(_("Failed retrieving the message with ID %s. Original error: %s."), + $id, $raw_headers->getMessage())); } $body = $imap->getMessageBody($id); if (is_a($body, 'PEAR_Error')) { - return $body; + return PEAR::raiseError(sprintf(_("Failed retrieving the message with ID %s. Original error: %s."), + $id, $body->getMessage())); } $mime_message = MIME_Structure::parseTextMIMEMessage($raw_headers . $body); @@ -947,17 +1041,34 @@ class Kolab_Folder { $xml = false; // Read in a Kolab event object, if one exists - $mime_part_id = array_search($mime_type, $parts); - if ($mime_part_id !== false) { + $part_ids['XML'] = array_search($mime_type, $parts); + if ($part_ids['XML'] !== false) { if ($parse_headers) { $mime_headers = MIME_Structure::parseMIMEHeaders($raw_headers); } - $part = $mime_message->getPart($mime_part_id); + $part = $mime_message->getPart($part_ids['XML']); $part->transferDecodeContents(); $xml = $part->getContents(); } - $result = array($xml, $mime_part_id, $mime_message, $mime_headers); + + $alternate_formats = array_diff(array('XML'), $formats); + if (!empty($alternate_formats)) { + foreach ($alternate_formats as $type) { + $part_ids[$type] = false; + } + foreach ($mime_message->getParts() as $part) { + $params = $part->getDispositionParameters(); + foreach ($alternate_formats as $type) { + if (isset($params['x-kolab-format']) + && $params['x-kolab-format'] == $type) { + $part_ids[$type] = $part->getMIMEId(); + } + } + } + } + + $result = array($xml, $part_ids, $mime_message, $mime_headers); return $result; } @@ -1270,7 +1381,7 @@ class Kolab_Folder { } $data = $this->_annotation_data->getObject('KOLAB_FOLDER_CONFIGURATION'); if (is_a($data, 'PEAR_Error')) { - Horde::logMessage(sprintf("Error retrieving annotation data on folder %s: %s", + Horde::logMessage(sprintf('Error retrieving annotation data on folder %s: %s', $this->name, $data->getMessage()), __FILE__, __LINE__, PEAR_LOG_ERR); return ''; @@ -1308,7 +1419,7 @@ class Kolab_Folder { } $data = $this->_annotation_data->getObject('KOLAB_FOLDER_CONFIGURATION'); if (is_a($data, 'PEAR_Error')) { - Horde::logMessage(sprintf("Error retrieving annotation data on folder %s: %s", + Horde::logMessage(sprintf('Error retrieving annotation data on folder %s: %s', $this->name, $data->getMessage()), __FILE__, __LINE__, PEAR_LOG_ERR); $data = array(); -- tg: (cda64a2..) t/framework/HK/GW/Kolab/AttachmentSupport (depends on: t/framework/HK/GW/Auth/InvalidCheck) -- TOPGIT patch commit log ======================= commit 3f524003ae3a20c6ff04899b06ad780649676746 Author: Gunnar Wrobel

    Date: Sat Jan 31 00:10:37 2009 +0000 Added patches framework/HK-GW-Kolab_Format-Support_Attachments.patch and framework/HK-GW-Kolab_Storage-Support_Attachments.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab_MoveIMAP.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab/MoveIMAP Move the IMAP handlers from Kolab_Storage to Kolab_Server. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Deprecated.php | 4 +- horde-webmail/lib/Horde/Kolab/IMAP.php | 139 ++++ horde-webmail/lib/Horde/Kolab/IMAP/cclient.php | 778 ++++++++++++++++++++ horde-webmail/lib/Horde/Kolab/IMAP/pear.php | 520 +++++++++++++ horde-webmail/lib/Horde/Kolab/IMAP/test.php | 728 ++++++++++++++++++ .../lib/Horde/Kolab/Server/Object/adminrole.php | 2 +- .../Horde/Kolab/Server/Object/domainmaintainer.php | 2 +- horde-webmail/lib/Horde/Kolab/Server/test.php | 2 +- horde-webmail/lib/Horde/Kolab/Session.php | 40 + horde-webmail/lib/Horde/Kolab/Storage/Folder.php | 177 ++--- horde-webmail/lib/Horde/Kolab/Storage/IMAP.php | 139 ---- [...4231 lines suppressed...] if (is_a($result, 'PEAR_Error')) { return $result; } -- tg: (9a3fc7a..) t/framework/HK/GW/Kolab/MoveIMAP (depends on: t/framework/HK/GW/Kolab_Server/SafetyCheck) -- TOPGIT patch commit log ======================= commit 69e24b73af698051835806775a1ddacbd543a225 Author: Gunnar Wrobel

    Date: Sat Jan 31 00:01:58 2009 +0000 Forgot to remove files commit 6b9f9868700129d3f12471273613b27f3d7ae7ca Author: Gunnar Wrobel

    Date: Fri Jan 30 23:31:53 2009 +0000 Added patch release/HK-GW-Kolab-IMAP_Move.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab_XfbFixes.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab/XfbFixes Fixes to support the extended free/busy concept. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Storage/Folder.php | 19 ++++++++++++++++++- horde-webmail/lib/Horde/Share/kolab.php | 9 +++++---- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php index 36844f9..1da391b 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php @@ -406,6 +406,22 @@ class Kolab_Folder { $attributes = array($attributes); } foreach ($attributes as $key => $value) { + if ($key == 'params') { + $params = unserialize($value); + if (isset($params['xfbaccess'])) { + $result = $this->setXfbAccess($params['xfbaccess']); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + } + if (isset($params['fbrelevance'])) { + $result = $this->setFbrelevance(join(' ', $params['fbrelevance'])); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + } + } + // setAnnotation apparently does not suppoort UTF-8 nor any special characters $store = base64_encode($value); if ($key == 'desc') { @@ -1614,7 +1630,8 @@ class Kolab_Folder { */ function setXfbaccess($access) { + $value = join(' ', $access); return $this->_setAnnotation(KOLAB_ANNOT_ROOT . 'pxfb-readable-for', - $access); + $value); } } diff --git a/horde-webmail/lib/Horde/Share/kolab.php b/horde-webmail/lib/Horde/Share/kolab.php index 10ac08f..43ae960 100644 --- a/horde-webmail/lib/Horde/Share/kolab.php +++ b/horde-webmail/lib/Horde/Share/kolab.php @@ -526,10 +526,10 @@ class Horde_Share_Object_kolab extends Horde_Share_Object { 'default' => $this->get('default'), 'name' => $this->get('name')); $type = $this->get('type'); - if (!is_a($type, 'PEAR_Error') && $type[0] == 'event') { + if (!is_a($type, 'PEAR_Error') && $type == 'event') { $default = array_merge($default, array( - 'fbrelevance' => $this->getFbrelevance(), - 'xfbaccess' => $this->getXfbaccess() + 'fbrelevance' => $this->_folder->getFbrelevance(), + 'xfbaccess' => $this->_folder->getXfbaccess() )); } if (is_a($params, 'PEAR_Error') || $params == '') { @@ -584,8 +584,9 @@ class Horde_Share_Object_kolab extends Horde_Share_Object { $value = unserialize($value); if (isset($value['default'])) { $this->_data['default'] = $value['default']; + unset($value['default']); } - break; + $value = serialize($value); default: $this->_data[$attribute] = $value; -- tg: (84604ae..) t/framework/HK/GW/Kolab/XfbFixes (depends on: t/framework/HK/GW/Kolab_Fbview/XfbConcept) -- TOPGIT patch commit log ======================= commit 07447788c136353d40cc6c5b4d9f1d1f0d13ef76 Author: Gunnar Wrobel

    Date: Sun Feb 1 16:49:49 2009 +0000 Added patch framework/HK-GW-Kolab-XFB_access_fixes.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab__Fbview_XfbConcept.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Fbview/XfbConcept Implementation of the extended free/busy concept. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Storage/Folder.php | 88 ++++++++++++++++++++++ horde-webmail/lib/Horde/Share/kolab.php | 7 ++ 2 files changed, 95 insertions(+), 0 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php index b39f678..36844f9 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php @@ -44,6 +44,13 @@ define('KOLAB_ANNOT_ROOT', '/vendor/kolab/'); define('KOLAB_ANNOT_FOLDER_TYPE', KOLAB_ANNOT_ROOT . 'folder-type'); /** + * Kolab specific free/busy relevance + */ +define('KOLAB_FBRELEVANCE_ADMINS', 0); +define('KOLAB_FBRELEVANCE_READERS', 1); +define('KOLAB_FBRELEVANCE_NOBODY', 2); + +/** * Horde-specific annotations on the imap folder have this prefix. */ define('HORDE_ANNOT_SHARE_ATTR', '/vendor/horde/share-'); @@ -1529,4 +1536,85 @@ class Kolab_Folder { $data['uid'] = 'KOLAB_FOLDER_CONFIGURATION'; return $this->_annotation_data->save($data, $uid); } + + + + /** + * Get the free/busy relevance for this folder + * + * @return int Value containing the FB_RELEVANCE. + */ + function getFbrelevance() + { + $result = $this->getKolabAttribute('incidences-for'); + if (is_a($result, 'PEAR_Error') || empty($result)) { + return KOLAB_FBRELEVANCE_ADMINS; + } + switch ($result) { + 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'; + } + + return $this->_setAnnotation(KOLAB_ANNOT_ROOT . 'incidences-for', + $value); + } + + /** + * Get the extended free/busy access settings for this folder + * + * @return array Array containing the users with access to the + * extended information. + */ + function getXfbaccess() + { + $result = $this->getKolabAttribute('pxfb-readable-for'); + if (is_a($result, 'PEAR_Error') || empty($result)) { + return array(); + } + return explode(' ', $result); + } + + /** + * 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) + { + return $this->_setAnnotation(KOLAB_ANNOT_ROOT . 'pxfb-readable-for', + $access); + } } diff --git a/horde-webmail/lib/Horde/Share/kolab.php b/horde-webmail/lib/Horde/Share/kolab.php index b4d6f16..10ac08f 100644 --- a/horde-webmail/lib/Horde/Share/kolab.php +++ b/horde-webmail/lib/Horde/Share/kolab.php @@ -525,6 +525,13 @@ class Horde_Share_Object_kolab extends Horde_Share_Object { $default = array('source' => 'kolab', 'default' => $this->get('default'), 'name' => $this->get('name')); + $type = $this->get('type'); + if (!is_a($type, 'PEAR_Error') && $type[0] == 'event') { + $default = array_merge($default, array( + 'fbrelevance' => $this->getFbrelevance(), + 'xfbaccess' => $this->getXfbaccess() + )); + } if (is_a($params, 'PEAR_Error') || $params == '') { $params = $default; } -- tg: (faa8655..) t/framework/HK/GW/Kolab_Fbview/XfbConcept (depends on: t/framework/HK/GW/Kolab_Server/FixAddressObjectIdentification) -- TOPGIT patch commit log ======================= commit 0cdca1ac8e05cffe0b14de2e572fc71b0a86df7c Author: Gunnar Wrobel

    Date: Sun Feb 1 16:47:08 2009 +0000 Added patch framework/HK-GW-Fbview_xfb_concept.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab__Format_ImprovedPreferencesHandling.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Format/ImprovedPreferencesHandling Ensure the preferences is known and only call it if it is really available. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Format/XML.php | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Format/XML.php b/horde-webmail/lib/Horde/Kolab/Format/XML.php index e66d49e..3123bee 100644 --- a/horde-webmail/lib/Horde/Kolab/Format/XML.php +++ b/horde-webmail/lib/Horde/Kolab/Format/XML.php @@ -968,6 +968,8 @@ class Horde_Kolab_Format_XML */ function _loadMultipleCategories(&$object) { + global $prefs; + if (empty($object['categories'])) { return; } @@ -975,7 +977,8 @@ class Horde_Kolab_Format_XML // Create horde category if needed @include_once 'Horde/Prefs/CategoryManager.php'; if ($this->_create_categories - && class_exists('Prefs_CategoryManager')) { + && class_exists('Prefs_CategoryManager') + && isset($prefs) && is_a($prefs, 'Prefs')) { $cManager = new Prefs_CategoryManager(); $horde_categories = $cManager->get(); } else { -- tg: (7214163..) t/framework/HK/GW/Kolab_Format/ImprovedPreferencesHandling (depends on: t/framework/HK/GW/framework/Kolab_Format/WS) -- TOPGIT patch commit log ======================= commit 8320631427755105ed2ee15bec8859d423f88c91 Author: Gunnar Wrobel

    Date: Fri Jan 30 22:43:10 2009 +0000 Added patch release/HK-GW-Kolab_Format-PrefsHandling.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab__Server_AdditionalGetFeeBusyServerFixes.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Server/AdditionalGetFeeBusyServerFixes Another fix to the getServer('freebusy') call. Signed-off-by: Gunnar Wrobel

    --- .../lib/Horde/Kolab/Server/Object/user.php | 3 +++ horde-webmail/lib/Horde/Kolab/Session.php | 8 -------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/user.php b/horde-webmail/lib/Horde/Kolab/Server/Object/user.php index 556933f..62b71e8 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/user.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/user.php @@ -208,6 +208,9 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object { if (empty($server)) { $server = $_SERVER['SERVER_NAME']; } + if (isset($conf['kolab']['freebusy']['server'])) { + return $conf['kolab']['freebusy']['server']; + } if (isset($conf['kolab']['server']['freebusy_url_format'])) { return sprintf($conf['kolab']['server']['freebusy_url_format'], $server); diff --git a/horde-webmail/lib/Horde/Kolab/Session.php b/horde-webmail/lib/Horde/Kolab/Session.php index 2ac507a..a0e3cf3 100644 --- a/horde-webmail/lib/Horde/Kolab/Session.php +++ b/horde-webmail/lib/Horde/Kolab/Session.php @@ -181,14 +181,6 @@ class Horde_Kolab_Session { } $this->_imap_params['protocol'] = 'imap/notls/novalidate-cert'; - - if (!isset($this->freebusy_server)) { - if (isset($conf['kolab']['freebusy']['server'])) { - $this->freebusy_server = $conf['kolab']['freebusy']['server']; - } else { - $this->freebusy_server = 'https://localhost/freebusy'; - } - } } /** -- tg: (3e0f3f4..) t/framework/HK/GW/Kolab_Server/AdditionalGetFeeBusyServerFixes (depends on: t/framework/HK/GW/Kolab_Storage/FixTriggerOnFolderCreation) -- TOPGIT patch commit log ======================= commit f2d30e95bea6393624c2f298e45be176e275aecc Author: Gunnar Wrobel

    Date: Sun Feb 1 16:38:40 2009 +0000 Added patch framework/HK-GW-Kolab_Server-Another_get_freebusy_server.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab__Server_FixAddressObjectIdentification.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Server/FixAddressObjectIdentification Fix the identification of address objects. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Server/ldap.php | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Server/ldap.php b/horde-webmail/lib/Horde/Kolab/Server/ldap.php index 7b52476..a09f74d 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/ldap.php +++ b/horde-webmail/lib/Horde/Kolab/Server/ldap.php @@ -601,7 +601,7 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } } - if (strpos($dn, 'cn=internal') !== false) { + if (strpos($dn, 'cn=external') !== false) { return KOLAB_OBJECT_ADDRESS; } @@ -930,7 +930,7 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { return sprintf('cn=%s,%s', $id, $this->_base_dn); } case KOLAB_OBJECT_ADDRESS: - return sprintf('cn=%s,cn=internal,%s', $id, $this->_base_dn); + return sprintf('cn=%s,cn=external,%s', $id, $this->_base_dn); case KOLAB_OBJECT_SHAREDFOLDER: case KOLAB_OBJECT_ADMINISTRATOR: case KOLAB_OBJECT_MAINTAINER: -- tg: (72d0535..) t/framework/HK/GW/Kolab_Server/FixAddressObjectIdentification (depends on: t/framework/HK/GW/Kolab_Server/AdditionalGetFeeBusyServerFixes) -- TOPGIT patch commit log ======================= commit 7eddb3186e0bbb13420e3fd3ee55bbb940e83e2e Author: Gunnar Wrobel

    Date: Sun Feb 1 16:40:40 2009 +0000 Added patch framework/HK-GW-Kolab_Server-Fix_address_identification.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab__Server_FixGetGroups.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Server/FixGetGroups Fix the retrieval of user groups. Signed-off-by: Gunnar Wrobel

    --- .../lib/Horde/Kolab/Server/Object/user.php | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/user.php b/horde-webmail/lib/Horde/Kolab/Server/Object/user.php index 76b202b..556933f 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/user.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/user.php @@ -179,7 +179,7 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object { */ function getGroups() { - return $this->_db->getGroups($this->_dn); + return $this->_db->getGroups($this->_uid); } /** -- tg: (59cb337..) t/framework/HK/GW/Kolab_Server/FixGetGroups (depends on: t/turba/HK/GW/AutomaticFreeBusyUrl) -- TOPGIT patch commit log ======================= commit 8c62525963066a04f92ca69d54429e5a6162b7f3 Author: Gunnar Wrobel

    Date: Sun Feb 1 16:24:55 2009 +0000 Added patch framework/HK-GW-Kolab_Server-Fix_getGroups.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab__Server_ImprovedFreebusyServerFallback.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Server/ImprovedFreebusyServerFallback An improved fallback value for the Free/Busy server. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Session.php | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Session.php b/horde-webmail/lib/Horde/Kolab/Session.php index d7c56d8..2ac507a 100644 --- a/horde-webmail/lib/Horde/Kolab/Session.php +++ b/horde-webmail/lib/Horde/Kolab/Session.php @@ -186,7 +186,7 @@ class Horde_Kolab_Session { if (isset($conf['kolab']['freebusy']['server'])) { $this->freebusy_server = $conf['kolab']['freebusy']['server']; } else { - $this->freebusy_server = 'localhost'; + $this->freebusy_server = 'https://localhost/freebusy'; } } } -- tg: (8ab103d..) t/framework/HK/GW/Kolab_Server/ImprovedFreebusyServerFallback (depends on: t/turba/HK/GW/PhotoSupport) -- TOPGIT patch commit log ======================= commit 6c4eda4dc0b4658fe17034bb540bc5829bfa4fcd Author: Gunnar Wrobel

    Date: Sat Jan 31 00:21:26 2009 +0000 Added patch /framework/HK-GW-Fix_freebusy_server_fallback.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab__Server_ImprovedServerFallbacks.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Server/ImprovedServerFallbacks Improved fallbacks for getServer(). Signed-off-by: Gunnar Wrobel

    --- .../lib/Horde/Kolab/Server/Object/user.php | 19 ++++++++++++++++--- 1 files changed, 16 insertions(+), 3 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/user.php b/horde-webmail/lib/Horde/Kolab/Server/Object/user.php index 73e108d..76b202b 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/user.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/user.php @@ -193,6 +193,8 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object { */ function getServer($server_type) { + global $conf; + switch ($server_type) { case 'freebusy': $server = $this->get(KOLAB_ATTR_FREEBUSYHOST); @@ -203,7 +205,15 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object { if (is_a($server, 'PEAR_Error')) { return $server; } - return 'https://' . $server . '/freebusy'; + if (empty($server)) { + $server = $_SERVER['SERVER_NAME']; + } + if (isset($conf['kolab']['server']['freebusy_url_format'])) { + return sprintf($conf['kolab']['server']['freebusy_url_format'], + $server); + } else { + return 'https://' . $server . '/freebusy'; + } case 'imap': $server = $this->get(KOLAB_ATTR_IMAPHOST); if (!is_a($server, 'PEAR_Error') && !empty($server)) { @@ -211,8 +221,11 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object { } case 'homeserver': default: - $home = $this->get(KOLAB_ATTR_HOMESERVER); - return $home; + $server = $this->get(KOLAB_ATTR_HOMESERVER); + if (empty($server)) { + $server = $_SERVER['SERVER_NAME']; + } + return $server; } } -- tg: (2185342..) t/framework/HK/GW/Kolab_Server/ImprovedServerFallbacks (depends on: t/framework/HK/GW/Kolab_Server/ImprovedFreebusyServerFallback) -- TOPGIT patch commit log ======================= commit d0d1a70bc27ac4ae027e9bece298f957cf2f9102 Author: Gunnar Wrobel

    Date: Sat Jan 31 00:26:41 2009 +0000 Added patch framework/HK-GW-Kolab_Server-Fix_getServor_on_empty_homeserver.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab__Server_ListObjects.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Server/ListObjects Implement listing objects in the Kolab user database. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Server.php | 31 +++ horde-webmail/lib/Horde/Kolab/Server/Object.php | 1 + horde-webmail/lib/Horde/Kolab/Server/ldap.php | 260 +++++++++++++++++++++-- horde-webmail/lib/Horde/Kolab/Server/test.php | 110 +++++++++- 4 files changed, 371 insertions(+), 31 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Server.php b/horde-webmail/lib/Horde/Kolab/Server.php index 33441d5..0d6fbd7 100644 --- a/horde-webmail/lib/Horde/Kolab/Server.php +++ b/horde-webmail/lib/Horde/Kolab/Server.php @@ -394,4 +394,35 @@ class Horde_Kolab_Server { } return $dn; } + + /** + * List all objects of a specific type + * + * @param string $type The type of the objects to be listed + * @param array $params Additional parameters. + * + * @return array|PEAR_Error An array of Kolab objects. + */ + function listObjects($type, $params = null) + { + if (!in_array($type, $this->valid_types)) { + return PEAR::raiseError(sprintf(_("Invalid Kolab object type \"%s\"."), + $type)); + } + + return $this->_listObjects($type, $params); + } + + /** + * List all objects of a specific type + * + * @param string $type The type of the objects to be listed + * @param array $params Additional parameters. + * + * @return array|PEAR_Error An array of Kolab objects. + */ + function _listObjects($type, $params = null) + { + return array(); + } }; diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object.php b/horde-webmail/lib/Horde/Kolab/Server/Object.php index b4ae799..1d49fa7 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object.php @@ -32,6 +32,7 @@ define('KOLAB_ATTR_HOMESERVER', 'kolabHomeServer'); define('KOLAB_ATTR_IPOLICY', 'kolabInvitationPolicy'); define('KOLAB_ATTR_FBPAST', 'kolabFreeBusyPast'); define('KOLAB_ATTR_FBFUTURE', 'kolabFreeBusyFuture'); +define('KOLAB_ATTR_FOLDERTYPE', 'kolabFolderType'); /** * This class provides methods to deal with Kolab objects stored in diff --git a/horde-webmail/lib/Horde/Kolab/Server/ldap.php b/horde-webmail/lib/Horde/Kolab/Server/ldap.php index 9ed679f..ed5bc84 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/ldap.php +++ b/horde-webmail/lib/Horde/Kolab/Server/ldap.php @@ -133,11 +133,12 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { * @param string $filter Filter criteria. * @param array $attributes Restrict the search result to * these attributes. + * @param string $base The base location for searching. * * @return array|PEAR_Error A LDAP search result. */ - function _search($filter, - $attributes = null) { + function _search($filter, $attributes = null, $base = null) + { if (!$this->_bound) { $result = $this->_bind(); if (is_a($result, 'PEAR_Error')) { @@ -145,10 +146,14 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } } + if (empty($base)) { + $base = $this->_base_dn; + } + if (isset($attributes)) { - $result = @ldap_search($this->_connection, $this->_base_dn, $filter, $attributes); + $result = @ldap_search($this->_connection, $base, $filter, $attributes); } else { - $result = @ldap_search($this->_connection, $this->_base_dn, $filter); + $result = @ldap_search($this->_connection, $base, $filter); } if (!$result && $this->_errno()) { return PEAR::raiseError(sprintf(_("LDAP Error: Failed to search using filter %s. Error was: %s"), @@ -247,18 +252,65 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } /** + * Return the next entry of a result. + * + * @param resource $entry The current LDAP entry. + * + * @return resource The next entry of the result. + */ + function _nextEntry($entry) + { + return @ldap_next_entry($this->_connection, $entry); + } + + /** * Return the entries of a result. * * @param resource $result The LDAP search result. + * @param int $from Only return results after this position. + * @param int $to Only return results until this position. * * @return array The entries of the result. */ - function _getEntries($result) + function _getEntries($result, $from = -1, $to = -1) { + if ($from >= 0 || $to >= 0) { + $result = array(); + $i = 0; + for ($entry = $this->_firstEntry($result); + $entry != false; + $entry = $this->_nextEntry($entry)) { + if (!$entry && $this->_errno()) { + return false; + } + if ($i > $from && ($i <= $to || $to == -1)) { + $attributes = $this->_getAttributes($entry); + if (!$attributes && $this->_errno()) { + return false; + } + $result[] = $attributes; + } + $i++; + } + return $result; + } return @ldap_get_entries($this->_connection, $result); } /** + * Sort the entries of a result. + * + * @param resource $result The LDAP search result. + * @param string $attribute The attribute used for sorting. + * + * @return boolean True if sorting succeeded. + */ + function _sort($result, $attribute) + { + return @ldap_sort($this->_connection, $result, $attribute); + } + + /** * Return the current LDAP error number. * * @return int The current LDAP error number. @@ -285,15 +337,46 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { */ /** + * Return the DNs of a result. + * + * @param resource $result The LDAP search result. + * @param int $from Only return results after this position. + * @param int $to Only return results until this position. + * + * @return array The DNs of the result. + */ + function _getDns($result, $from = -1, $to = -1) + { + $dns = array(); + $entry = $this->_firstEntry($result); + $i = 0; + for ($entry = $this->_firstEntry($result); + $entry != false; + $entry = $this->_nextEntry($entry)) { + if ($i > $from && ($i <= $to || $to == -1)) { + $dn = $this->_getDn($entry); + if (!$dn && $this->_errno()) { + return false; + } + $dns[] = $dn; + } + $i++; + } + if ($this->_errno()) { + return false; + } + return $dns; + } + + /** * Identify the DN of the first result entry. * - * @param array $result The LDAP search result. + * @param array $result The LDAP search result. * @param int $restrict A KOLAB_SERVER_RESULT_* result restriction. * * @return string|PEAR_Error The DN. */ - function _dnFromResult($result, - $restrict = KOLAB_SERVER_RESULT_SINGLE) + function _dnFromResult($result, $restrict = KOLAB_SERVER_RESULT_SINGLE) { switch ($restrict) { case KOLAB_SERVER_RESULT_STRICT: @@ -320,20 +403,15 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } return $dn; case KOLAB_SERVER_RESULT_MANY: - $entries = $this->_getEntries($result); - if (!$entries) { - return false; - } + $entries = $this->_getDns($result); if (!$entries && $this->_errno()) { return PEAR::raiseError(sprintf(_("Search failed. Error was: %s"), $this->_error())); } - unset($entries['count']); - $result = array(); - foreach ($entries as $entry) { - $result[] = $entry['dn']; + if (!$entries) { + return false; } - return $result; + return $entries; } return false; } @@ -387,13 +465,13 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { return $result; case KOLAB_SERVER_RESULT_MANY: $entries = $this->_getEntries($result); - if (!$entries) { - return false; - } if (!$entries && $this->_errno()) { return PEAR::raiseError(sprintf(_("Search failed. Error was: %s"), $this->_error())); } + if (!$entries) { + return false; + } unset($entries['count']); $result = array(); $i = 0; @@ -677,4 +755,146 @@ class Horde_Kolab_Server_ldap extends Horde_Kolab_Server { } return $result; } + + /** + * List all objects of a specific type + * + * @param string $type The type of the objects to be listed + * @param array $params Additional parameters. + * + * @return array|PEAR_Error An array of Kolab objects. + */ + function _listObjects($type, $params = null) + { + if (empty($params['base_dn'])) { + $base = $this->_base_dn; + } else { + $base = $params['base_dn']; + } + + switch ($type) { + case KOLAB_OBJECT_USER: + $filter = '(&(objectClass=kolabInetOrgPerson)(uid=*)(mail=*)(sn=*))'; + $attributes = array( + KOLAB_ATTR_SN, + KOLAB_ATTR_CN, + KOLAB_ATTR_UID, + KOLAB_ATTR_MAIL, + KOLAB_ATTR_DELETED, + ); + $sort = KOLAB_ATTR_SN; + break; + case KOLAB_OBJECT_ADDRESS: + $filter = '(&(objectClass=inetOrgPerson)(!(uid=*))(sn=*))'; + $attributes = array( + KOLAB_ATTR_SN, + KOLAB_ATTR_CN, + KOLAB_ATTR_MAIL, + KOLAB_ATTR_DELETED, + ); + $sort = KOLAB_ATTR_SN; + break; + case KOLAB_OBJECT_ADMINISTRATOR: + $filter = '(&(cn=*)(objectClass=inetOrgPerson)(uid=*)(sn=*))'; + $attributes = array( + KOLAB_ATTR_SN, + KOLAB_ATTR_CN, + KOLAB_ATTR_UID, + KOLAB_ATTR_DELETED, + ); + $sort = KOLAB_ATTR_SN; + break; + case KOLAB_OBJECT_DOMAINMAINTAINER: + $filter = '(&(cn=*)(objectClass=kolabInetOrgPerson)(!(uid=manager))(sn=*))'; + $attributes = array( + KOLAB_ATTR_SN, + KOLAB_ATTR_CN, + KOLAB_ATTR_UID, + KOLAB_ATTR_DELETED, + ); + $sort = KOLAB_ATTR_SN; + break; + case KOLAB_OBJECT_GROUP: + $filter = '(&(!(cn=domains))(objectClass=kolabGroupOfNames))'; + $attributes = array( + KOLAB_ATTR_CN, + KOLAB_ATTR_MAIL, + KOLAB_ATTR_DELETED, + ); + $sort = KOLAB_ATTR_CN; + break; + case KOLAB_OBJECT_MAINTAINER: + $filter = '(&(cn=*)(objectClass=inetOrgPerson)(!(uid=manager))(sn=*))'; + $attributes = array( + KOLAB_ATTR_SN, + KOLAB_ATTR_CN, + KOLAB_ATTR_UID, + KOLAB_ATTR_DELETED, + ); + $sort = KOLAB_ATTR_SN; + break; + case KOLAB_OBJECT_SHAREDFOLDER: + $filter = '(objectClass=kolabSharedFolder)'; + $attributes = array( + KOLAB_ATTR_CN, + KOLAB_ATTR_DELETED, + KOLAB_ATTR_FOLDERTYPE, + ); + $sort = KOLAB_ATTR_CN; + break; + case KOLAB_OBJECT_SERVER: + $filter = '(&((k=kolab))(objectClass=kolab))'; + $attributes = false; + $sort = false; + break; + } + + if (isset($params['attributes'])) { + $attributes = $params['attributes']; + } + + if (isset($params['sort'])) { + $sort = $params['sort']; + } + + $result = $this->_search($filter, $attributes, $base); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + + if ($sort) { + $this->_sort($result, $sort); + } + + if (isset($params['from'])) { + $from = $params['from']; + } else { + $from = -1; + } + + if (isset($params['to'])) { + $sort = $params['to']; + } else { + $to = -1; + } + + $entries = $this->_getDns($result, $from, $to); + if (!$entries && $this->_errno()) { + return PEAR::raiseError(sprintf(_("Search failed. Error was: %s"), + $this->_error())); + } + if (!$entries) { + return false; + } + + $objects = array(); + foreach ($entries as $dn) { + $result = $this->fetch($dn, $type); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + $objects[] = $result; + } + return $objects; + } } diff --git a/horde-webmail/lib/Horde/Kolab/Server/test.php b/horde-webmail/lib/Horde/Kolab/Server/test.php index 94945e0..d4ece0d 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/test.php +++ b/horde-webmail/lib/Horde/Kolab/Server/test.php @@ -47,6 +47,27 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { var $_error = ''; /** + * Attribute used for sorting. + * + * @var string + */ + var $_sort_by; + + /** + * A result cache for iterating over the result. + * + * @var array + */ + var $_current_result; + + /** + * An index into the current result for iterating. + * + * @var int + */ + var $_current_index; + + /** * Parse LDAP filter. * Partially derived from Net_LDAP_Filter. * @@ -126,7 +147,7 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { * * @return array|PEAR_Error A LDAP serach result. */ - function _search($filter, $attributes = null) { + function _search($filter, $attributes = null, $base = null) { $filter = $this->_parse($filter); if (is_a($filter, 'PEAR_Error')) { return $filter; @@ -135,6 +156,16 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { if (empty($result)) { return null; } + if ($base) { + $subtree = array(); + foreach ($result as $entry) { + if (strpos($entry['dn'], $base)) { + $subtree[] = $entry; + } + } + $result = $subtree; + } + return $result; } @@ -156,7 +187,7 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { switch ($filter['log']) { case '=': $value = $element['data'][$filter['att']]; - if ($value == $filter['val'] + if ($filter['val'] == '*' || $value == $filter['val'] || (is_array($value) && in_array($filter['val'], $value))) { if (empty($attributes)) { @@ -290,32 +321,58 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { } /** - * Return the first entry of a result. - * - * @param array $result The LDAP search result. + * Return the current entry of a result. * - * @return mixe The first entry of the result or false. + * @return mixe The current entry of the result or false. */ - function _firstEntry($result) + function _fetchEntry() { - if (is_array($result)) { - $data = array_keys($result[0]['data']); + if (is_array($this->_current_result) + && $this->_current_index < count($this->_current_result)) { + $data = array_keys($this->_current_result[$this->_current_index]['data']); $data['count'] = 1; - $data['dn'] = array($result[0]['dn']); + $data['dn'] = array($this->_current_result[$this->_current_index]['dn']); $data['dn']['count'] = 1; - foreach ($result[0]['data'] as $attr => $value) { + foreach ($this->_current_result[$this->_current_index]['data'] as $attr => $value) { if (!is_array($value)) { $value = array($value); } $data[$attr] = $value; $data[$attr]['count'] = count($value); } + $this->_current_index++; return $data; } return false; } /** + * Return the first entry of a result. + * + * @param array $result The LDAP search result. + * + * @return mixe The first entry of the result or false. + */ + function _firstEntry($result) + { + $this->_current_result = $result; + $this->_current_index = 0; + return $this->_fetchEntry(); + } + + /** + * Return the next entry of a result. + * + * @param resource $entry The current LDAP entry. + * + * @return resource The next entry of the result. + */ + function _nextEntry($entry) + { + return $this->_fetchEntry(); + } + + /** * Return the entries of a result. * * @param array $result The LDAP search result. @@ -338,6 +395,37 @@ class Horde_Kolab_Server_test extends Horde_Kolab_Server_ldap { } /** + * Sort the entries of a result. + * + * @param resource $result The LDAP search result. + * @param string $attribute The attribute used for sorting. + * + * @return boolean True if sorting succeeded. + */ + function _sort(&$result, $attribute) + { + $this->_sort_by = $attribute; + usort($result, array($this, '_resultSort')); + return false; + } + + /** + * Sort two entries. + * + * @param array $a First entry. + * @param array $b Second entry. + * + * @return int Comparison result. + */ + function _resultSort($a, $b) + { + $x = isset($a['data'][$this->_sort_by][0])?$a['data'][$this->_sort_by][0]:''; + $y = isset($b['data'][$this->_sort_by][0])?$b['data'][$this->_sort_by][0]:''; + return strcasecmp($x, $y); + } + + + /** * Return the current LDAP error number. * * @return int The current LDAP error number. -- tg: (53715c4..) t/framework/HK/GW/Kolab_Server/ListObjects (depends on: t/framework/HK/GW/Kolab_Storage/Restructuring_Fixes) -- TOPGIT patch commit log ======================= commit 25572367d02bd92e5e9c2e329695bd780851d67e Author: Gunnar Wrobel

    Date: Fri Jan 30 22:45:52 2009 +0000 Added patch release/HK-GW-Kolab_Server-ListObjects.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab__Server_RequireIMAP.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Server/RequireIMAP Add missing requires. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab.php | 7 +++++++ horde-webmail/lib/Horde/Kolab/Session.php | 19 ++++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab.php b/horde-webmail/lib/Horde/Kolab.php index 9ed8949..2ec113d 100644 --- a/horde-webmail/lib/Horde/Kolab.php +++ b/horde-webmail/lib/Horde/Kolab.php @@ -805,4 +805,11 @@ class Kolab { return ''; } } + + /** + * @deprecated + */ + function triggerFreeBusyUpdate() + { + } } diff --git a/horde-webmail/lib/Horde/Kolab/Session.php b/horde-webmail/lib/Horde/Kolab/Session.php index fa58066..d7c56d8 100644 --- a/horde-webmail/lib/Horde/Kolab/Session.php +++ b/horde-webmail/lib/Horde/Kolab/Session.php @@ -192,6 +192,19 @@ class Horde_Kolab_Session { } /** + * 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; + } + + /** * Get the Kolab Server connection. * * @param string $user The session will be setup for the user with @@ -238,14 +251,14 @@ class Horde_Kolab_Session { { if (!isset($this->_imap)) { + /** We need the Kolab IMAP library now. */ + require_once 'Horde/Kolab/IMAP.php'; + $params = $this->getImapParams(); if (is_a($params, 'PEAR_Error')) { return $params; } - /** We need the Kolab IMAP library now. */ - require_once 'Horde/Kolab/IMAP.php'; - $imap = &Horde_Kolab_IMAP::singleton($params['hostspec'], $params['port'], true, false); if (is_a($imap, 'PEAR_Error')) { -- tg: (d4fffeb..) t/framework/HK/GW/Kolab_Server/RequireIMAP (depends on: t/framework/HK/GW/Auth/SafetyCheck) -- TOPGIT patch commit log ======================= commit d0f864a8b75a23948f9b85032773a95ba81fd96e Author: Gunnar Wrobel

    Date: Sun Feb 1 23:32:59 2009 +0000 Removed patch remains. commit c788193b98fbbceb373fa2c5f61306a53a5d2e05 Author: Gunnar Wrobel

    Date: Fri Jan 30 23:58:08 2009 +0000 Added patch release/HK-GW-Kolab_Storage-Require_IMAP.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab__Server_RewriteExtend.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Server/RewriteExtend Rewritten/extended the first Kolab_Server version. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Server.php | 404 +++++++++++++++----- horde-webmail/lib/Horde/Kolab/Server/Object.php | 388 +++++++++++++++---- .../lib/Horde/Kolab/Server/Object/address.php | 58 +++- .../Horde/Kolab/Server/Object/administrator.php | 37 +- .../lib/Horde/Kolab/Server/Object/adminrole.php | 157 ++++++++ .../lib/Horde/Kolab/Server/Object/distlist.php | 52 +++ .../Horde/Kolab/Server/Object/domainmaintainer.php | 106 +++++- .../lib/Horde/Kolab/Server/Object/group.php | 206 ++++++++++- .../lib/Horde/Kolab/Server/Object/maintainer.php | 38 +- .../lib/Horde/Kolab/Server/Object/server.php | 17 +- .../lib/Horde/Kolab/Server/Object/sharedfolder.php | 74 ++++- [...3797 lines suppressed...] */ function shutdown() { @@ -243,4 +280,5 @@ class Horde_Kolab_Session { $session = &Horde_SessionObjects::singleton(); $session->overwrite('kolab_session', $this, false); } + } -- tg: (d10384d..) t/framework/HK/GW/Kolab_Server/RewriteExtend (depends on: t/framework/HK/GW/Auth/ListUsers) -- TOPGIT patch commit log ======================= commit d9464b0512a4d1ea3adf651ca48fe97ef035a1f0 Author: Gunnar Wrobel

    Date: Fri Jan 30 22:51:46 2009 +0000 Added patch release/HK-GW-Kolab_Server-Version2.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab__Server_SafetyCheck.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Server/SafetyCheck A tiny safety check. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Server.php | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Server.php b/horde-webmail/lib/Horde/Kolab/Server.php index 5be2505..7954b21 100644 --- a/horde-webmail/lib/Horde/Kolab/Server.php +++ b/horde-webmail/lib/Horde/Kolab/Server.php @@ -194,7 +194,7 @@ class Horde_Kolab_Server { } $sparam = $server_params; - $sparam['pass'] = md5($sparam['pass']); + $sparam['pass'] = isset($sparam['pass']) ? md5($sparam['pass']) : ''; $signature = serialize(array($driver, $sparam)); if (empty($instances[$signature])) { $instances[$signature] = &Horde_Kolab_Server::factory($driver, -- tg: (022752c..) t/framework/HK/GW/Kolab_Server/SafetyCheck (depends on: t/framework/HK/GW/Auth/UseKolabServer) -- TOPGIT patch commit log ======================= commit 4618c36aa9740cfa90578aefceaba610d121d9c1 Author: Gunnar Wrobel

    Date: Fri Jan 30 23:28:39 2009 +0000 Added patch release/HK-GW-Share-Testing.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab__Server_Session.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Server/Session Adds the Kolab Session handler. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Session.php | 246 +++++++++++++++++++++++++++++ 1 files changed, 246 insertions(+), 0 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Session.php b/horde-webmail/lib/Horde/Kolab/Session.php new file mode 100644 index 0000000..83e4ec1 --- /dev/null +++ b/horde-webmail/lib/Horde/Kolab/Session.php @@ -0,0 +1,246 @@ +Auth::getAuth() respectively + * Auth::getCredential('password'). Any additional Kolab user data + * relevant for the user session should be accessed via the Horde_Kolab_Session + * class. + * + * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Storage/Session.php,v 1.4 2008/09/22 16:15:51 wrobel Exp $ + * + * Copyright 2008 The Horde Project (http://www.horde.org/) + * + * See the enclosed file COPYING for license information (LGPL). If you + * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. + * + * @author Gunnar Wrobel + * @package Kolab_Server + */ +class Horde_Kolab_Session { + + /** + * User ID. + * + * @var string + */ + var $user_id; + + /** + * Primary user mail address. + * + * @var string + */ + var $user_mail; + + /** + * The connection parameters for the IMAP server. + * + * @var array|PEAR_Error + */ + var $_imap_params; + + /** + * The free/busy server for the current user. + * + * @var array|PEAR_Error + */ + var $freebusy_server; + + /** + * Constructor. + * + * @param string $user The session will be setup for the user with this ID. + */ + function Horde_Kolab_Session($user = null) + { + global $conf; + + if (empty($user)) { + $user = Auth::getAuth(); + if (empty($user)) { + $user = 'anonymous'; + } else if (!strpos($user, '@')) { + $user = $user . '@' . (!empty($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'localhost'); + } + } + + $this->user_id = $user; + $this->_imap_params = array(); + + $user_object = $this->_fetchUser($user); + if (!is_a($user_object, 'PEAR_Error')) { + $result = $user_object->get(KOLAB_ATTR_MAIL); + if (!empty($result) && !is_a($result, 'PEAR_Error')) { + $this->user_mail = $result; + } + + $result = $user_object->get(KOLAB_ATTR_UID); + if (!empty($result) && !is_a($result, 'PEAR_Error')) { + $this->user_id = $result; + } + + $result = $user_object->getServer('imap'); + if (!empty($result) && !is_a($result, 'PEAR_Error')) { + $server = explode(':', $result, 2); + if (!empty($server[0])) { + $this->_imap_params['hostspec'] = $server[0]; + } + if (!empty($server[1])) { + $this->_imap_params['port'] = $server[1]; + } + } + + $result = $user_object->getServer('freebusy'); + if (!empty($result) && !is_a($result, 'PEAR_Error')) { + $this->freebusy_server = $result; + } + } + + if (empty($conf['kolab']['imap']['allow_special_users']) + && (is_a($user_object, 'PEAR_Error') + || !is_a($user_object, 'Horde_Kolab_Server_Object_user'))) { + $this->_imap_params = PEAR::raiseError(_('Access to special Kolab users is denied.')); + return; + } + + if (empty($this->user_mail)) { + $this->user_mail = $user; + } + + if (!isset($this->_imap_params['hostspec'])) { + if (isset($conf['kolab']['imap']['server'])) { + $this->_imap_params['hostspec'] = $conf['kolab']['imap']['server']; + } else { + $this->_imap_params['hostspec'] = 'localhost'; + } + } + + if (!isset($this->_imap_params['port'])) { + if (isset($conf['kolab']['imap']['port'])) { + $this->_imap_params['port'] = $conf['kolab']['imap']['port']; + } else { + $this->_imap_params['port'] = 143; + } + } + + $this->_imap_params['protocol'] = 'imap/notls/novalidate-cert'; + + if (!isset($this->freebusy_server)) { + if (isset($conf['kolab']['freebusy']['server'])) { + $this->freebusy_server = $conf['kolab']['freebusy']['server']; + } else { + $this->freebusy_server = 'localhost'; + } + } + } + + /** + * Fetch the Kolab_Object representing the current user. + * + * @param string $user The id of the user to retrieve. + * + * @return Kolab_Object_user|PEAR_Error The object representing + * the current user. + */ + function _fetchUser($user = null) + { + if (empty($user)) { + $user = Auth::getAuth(); + if (empty($user)) { + return PEAR::raiseError(_('Anonymous user.')); + } + } + + /** We need the Kolab Server access. */ + require_once 'Horde/Kolab/Server.php'; + $server = Horde_Kolab_Server::singleton(); + if (is_a($server, 'PEAR_Error')) { + return $server; + } + + $dn = $server->dnForUidOrMail($user); + if (empty($dn)) { + return PEAR::raiseError(_('No such user.')); + } + if (is_a($dn, 'PEAR_Error')) { + return $dn; + } + + return $server->fetch($dn); + } + + /** + * Get the IMAP connection parameters. + * + * @return array|PEAR_Error The IMAP connection parameters. + */ + function &getImapParams() + { + return $this->_imap_params; + } + + /** + * Attempts to return a reference to a concrete Horde_Kolab_Session instance. + * + * It will only create a new instance if no Horde_Kolab_Session instance + * currently exists or if a user ID has been specified that does not match the + * user ID/user mail of the current session. + * + * This method must be invoked as: + * $var = &Horde_Kolab_Session::singleton(); + * + * @static + * + * @param string $user The session will be setup for the user with this ID. + * + * @return Horde_Kolab_Session The concrete Session reference. + */ + function &singleton($user = null) + { + static $session; + + if (!isset($session)) { + /** + * Horde_Kolab_Server currently has no caching so we mainly + * cache some user information here as reading this data + * may be expensive when running in a multi-host + * environment. + */ + require_once 'Horde/SessionObjects.php'; + $hs = &Horde_SessionObjects::singleton(); + $session = $hs->query('kolab_session'); + } + + if (empty($session) + || (!empty($user) && $user != $session->user_mail + && $user != $session->user_id)) { + $session = new Horde_Kolab_Session($user); + } + + register_shutdown_function(array(&$session, 'shutdown')); + + return $session; + } + + /** + * Stores the object in the session cache. + */ + function shutdown() + { + require_once 'Horde/SessionObjects.php'; + $session = &Horde_SessionObjects::singleton(); + $session->overwrite('kolab_session', $this, false); + } +} -- tg: (6938161..) t/framework/HK/GW/Kolab_Server/Session (depends on: master) -- TOPGIT patch commit log ======================= commit 1211d81d2f9da103a0a7387eb1e4956eec48004d Author: Gunnar Wrobel

    Date: Fri Jan 30 20:11:36 2009 +0000 Added patch release/HK-GW-Kolab_Server-SessionMove.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab__Server_getFreebusyServer.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Server/getFreebusyServer Allow to retrieve the free/busy server of a user. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Server/Object.php | 26 ++++++++++--------- .../lib/Horde/Kolab/Server/Object/user.php | 8 ++++++ 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object.php b/horde-webmail/lib/Horde/Kolab/Server/Object.php index 82170f5..b4ae799 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object.php @@ -19,18 +19,19 @@ define('KOLAB_OBJECT_USER', 'Horde_Kolab_Server_Object_user'); define('KOLAB_OBJECT_SERVER', 'Horde_Kolab_Server_Object_server'); /** Define the possible Kolab object attributes */ -define('KOLAB_ATTR_DN', 'dn'); -define('KOLAB_ATTR_SN', 'sn'); -define('KOLAB_ATTR_CN', 'cn'); -define('KOLAB_ATTR_FN', 'fn'); -define('KOLAB_ATTR_MAIL', 'mail'); -define('KOLAB_ATTR_UID', 'uid'); -define('KOLAB_ATTR_DELETED', 'kolabDeleteFlag'); -define('KOLAB_ATTR_IMAPHOST', 'kolabImapServer'); -define('KOLAB_ATTR_HOMESERVER','kolabHomeServer'); -define('KOLAB_ATTR_IPOLICY', 'kolabInvitationPolicy'); -define('KOLAB_ATTR_FBPAST', 'kolabFreeBusyPast'); -define('KOLAB_ATTR_FBFUTURE', 'kolabFreeBusyFuture'); +define('KOLAB_ATTR_DN', 'dn'); +define('KOLAB_ATTR_SN', 'sn'); +define('KOLAB_ATTR_CN', 'cn'); +define('KOLAB_ATTR_FN', 'fn'); +define('KOLAB_ATTR_MAIL', 'mail'); +define('KOLAB_ATTR_UID', 'uid'); +define('KOLAB_ATTR_DELETED', 'kolabDeleteFlag'); +define('KOLAB_ATTR_FREEBUSYHOST', 'kolabFreeBusyServer'); +define('KOLAB_ATTR_IMAPHOST', 'kolabImapServer'); +define('KOLAB_ATTR_HOMESERVER', 'kolabHomeServer'); +define('KOLAB_ATTR_IPOLICY', 'kolabInvitationPolicy'); +define('KOLAB_ATTR_FBPAST', 'kolabFreeBusyPast'); +define('KOLAB_ATTR_FBFUTURE', 'kolabFreeBusyFuture'); /** * This class provides methods to deal with Kolab objects stored in @@ -200,6 +201,7 @@ class Horde_Kolab_Server_Object { case KOLAB_ATTR_MAIL: case KOLAB_ATTR_UID: case KOLAB_ATTR_IMAPHOST: + case KOLAB_ATTR_FREEBUSYHOST: case KOLAB_ATTR_HOMESERVER: return $this->_get($attr, true); default: diff --git a/horde-webmail/lib/Horde/Kolab/Server/Object/user.php b/horde-webmail/lib/Horde/Kolab/Server/Object/user.php index a4cd05f..d6b9e97 100644 --- a/horde-webmail/lib/Horde/Kolab/Server/Object/user.php +++ b/horde-webmail/lib/Horde/Kolab/Server/Object/user.php @@ -43,6 +43,7 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object { KOLAB_ATTR_MAIL, KOLAB_ATTR_DELETED, KOLAB_ATTR_IMAPHOST, + KOLAB_ATTR_FREEBUSYHOST, KOLAB_ATTR_HOMESERVER, KOLAB_ATTR_IPOLICY, KOLAB_ATTR_FBFUTURE, @@ -69,11 +70,18 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object { function getServer($server_type) { switch ($server_type) { + case 'freebusy': + $server = $this->get(KOLAB_ATTR_FREEBUSYHOST); + if (!is_a($server, 'PEAR_Error') && !empty($server)) { + return $server; + } + return 'https://' . $this->getServer('homeserver') . '/freebusy'; case 'imap': $server = $this->get(KOLAB_ATTR_IMAPHOST); if (!is_a($server, 'PEAR_Error') && !empty($server)) { return $server; } + case 'homeserver': default: $home = $this->get(KOLAB_ATTR_HOMESERVER); return $home; -- tg: (6938161..) t/framework/HK/GW/Kolab_Server/getFreebusyServer (depends on: master) -- TOPGIT patch commit log ======================= commit 7d8c722ee5e3307f7aa0c4b5f0580fb10beb7c8f Author: Gunnar Wrobel

    Date: Fri Jan 30 20:14:18 2009 +0000 Added patch /release/HK-GW-Kolab_Server-getFreeBusyServer.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab__Storage_CatchPossibleError.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Storage/CatchPossibleError Catch a possible error in Kolab_Storage. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Storage/Folder.php | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php index 2ee6983..2769446 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php @@ -667,12 +667,15 @@ class Kolab_Folder { * * @param Kolab_List $list The handler for the list of folders. * - * @return Kolab_Data The data handler. + * @return Kolab_Data|PEAR_Error The data handler. */ function &getData($object_type = null, $data_version = 1) { if (empty($object_type)) { $object_type = $this->getType(); + if (is_a($object_type, 'PEAR_Error')) { + return $object_type; + } } if ($this->tainted) { -- tg: (324e066..) t/framework/HK/GW/Kolab_Storage/CatchPossibleError (depends on: t/framework/HK/GW/Kolab_Server/RewriteExtend) -- TOPGIT patch commit log ======================= commit c5b10e7b77b6cc89480ed7c3ff90954fa286a41e Author: Gunnar Wrobel

    Date: Fri Jan 30 23:15:19 2009 +0000 Added patch release/HK-GW-Kolab_Storage-Catch_Error.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab__Storage_FixTriggerOnFolderCreation.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Storage/FixTriggerOnFolderCreation Fix triggering when creating a folder. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Storage/Folder.php | 61 +++++++++++----------- 1 files changed, 31 insertions(+), 30 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php index df6e967..b39f678 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php @@ -348,7 +348,11 @@ class Kolab_Folder { $result->getMessage()), __FILE__, __LINE__, PEAR_LOG_ERR); } - $result = $this->trigger(); + $imap->setAnnotation(KOLAB_ANNOT_FOLDER_TYPE, + array('value.shared' => $this->_type), + $this->name); + + $result = $this->trigger($this->name); if (is_a($result, 'PEAR_Error')) { Horde::logMessage(sprintf('Failed triggering dummy folder: %s!', $result->getMessage()), @@ -378,19 +382,10 @@ class Kolab_Folder { unset($attributes['owner']); } - /** Now save the folder permissions */ - if (isset($this->_perms)) { - $result = $this->_perms->save(); - if (is_a($result, 'PEAR_Error')) { - return $result; - } - } - /** Handle the folder type */ $folder_type = $this->_type . ($this->_default ? '.default' : ''); if ($this->_type_annotation != $folder_type) { - $result = $this->_setAnnotation(KOLAB_ANNOT_FOLDER_TYPE, - $folder_type, $this->name); + $result = $this->_setAnnotation(KOLAB_ANNOT_FOLDER_TYPE, $folder_type); if (is_a($result, 'PEAR_Error')) { $this->_type = null; $this->_default = false; @@ -411,8 +406,7 @@ class Kolab_Folder { } else { $entry = HORDE_ANNOT_SHARE_ATTR . $key; } - $result = $this->_setAnnotation($entry, - $store, $this->name); + $result = $this->_setAnnotation($entry, $store); if (is_a($result, 'PEAR_Error')) { return $result; } @@ -420,6 +414,14 @@ class Kolab_Folder { $this->_attributes = $attributes; } + /** Now save the folder permissions */ + if (isset($this->_perms)) { + $result = $this->_perms->save(); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + } + $result = $this->trigger(); if (is_a($result, 'PEAR_Error')) { Horde::logMessage(sprintf('Failed triggering folder %s! Error was: %s', @@ -442,13 +444,6 @@ class Kolab_Folder { return $result; } - $result = $this->trigger(); - if (is_a($result, 'PEAR_Error')) { - Horde::logMessage(sprintf('Failed triggering folder %s! Error was: %s', - $this->name, $result->getMessage()), - __FILE__, __LINE__, PEAR_LOG_ERR); - } - return true; } @@ -488,15 +483,19 @@ class Kolab_Folder { /** * Returns the subpath of the folder. * + * @param string $name Name of the folder that should be triggered. + * * @return string|PEAR_Error The subpath of this folder. */ - function getSubpath() + function getSubpath($name = null) { - if (!isset($this->_subpath)) { - if (!isset($this->name) && isset($this->new_name)) { - $name = $this->new_name; - } else { - $name = $this->name; + if (!isset($this->_subpath) || isset($name)) { + if (!isset($name)) { + if (!isset($this->name) && isset($this->new_name)) { + $name = $this->new_name; + } else { + $name = $this->name; + } } if (!preg_match(";(shared\.|INBOX[/]?|user/([^/]+)[/]?)([^@]*)(@.*)?;", $name, $matches)) { @@ -1179,9 +1178,11 @@ class Kolab_Folder { * folder. This is currently only required for handling free/busy * information with Kolab. * + * @param string $name Name of the folder that should be triggered. + * * @return boolean|PEAR_Error True if successfull. */ - function trigger() + function trigger($name = null) { global $conf; @@ -1195,7 +1196,7 @@ class Kolab_Folder { return $owner; } - $subpath = $this->getSubpath(); + $subpath = $this->getSubpath($name); if (is_a($subpath, 'PEAR_Error')) { return $subpath; } @@ -1507,8 +1508,8 @@ class Kolab_Folder { return $imap; } return $imap->setAnnotation($key, - array('value.shared' => $value), - $this->name); + array('value.shared' => $value), + $this->name); } if (!isset($this->_annotation_data)) { -- tg: (4a6bd9f..) t/framework/HK/GW/Kolab_Storage/FixTriggerOnFolderCreation (depends on: t/framework/HK/GW/Kolab_Storage/FixTriggerOnFolderRename) -- TOPGIT patch commit log ======================= commit 534947cac14b588de735123d83f0b5061719013e Author: Gunnar Wrobel

    Date: Sun Feb 1 16:36:34 2009 +0000 Added patch framework/HK-GW-Kolab_Storage-Fix_trigger_on_creation.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab__Storage_FixTriggerOnFolderRename.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Storage/FixTriggerOnFolderRename Fix folder triggering on folder rename. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Storage/Folder.php | 27 ++++++++++++++++++--- 1 files changed, 23 insertions(+), 4 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php index a668a24..df6e967 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php @@ -337,11 +337,30 @@ class Kolab_Folder { } /** - * Trigger the old folder name but ignore the error this will - * elicit. While we get an error because of the missing folder - * the corresponding cache value will get purged. + * Trigger the old folder on an empty IMAP folder. */ - $result = $this->trigger(); + $session = &Horde_Kolab_Session::singleton(); + $imap = &$session->getImap(); + if (!is_a($imap, 'PEAR_Error')) { + $result = $imap->create($this->name); + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage(sprintf('Failed creating dummy folder: %s!', + $result->getMessage()), + __FILE__, __LINE__, PEAR_LOG_ERR); + } + $result = $this->trigger(); + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage(sprintf('Failed triggering dummy folder: %s!', + $result->getMessage()), + __FILE__, __LINE__, PEAR_LOG_ERR); + } + $result = $imap->delete($this->name); + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage(sprintf('Failed deleting dummy folder: %s!', + $result->getMessage()), + __FILE__, __LINE__, PEAR_LOG_ERR); + } + } $this->name = $this->new_name; $this->new_name = null; -- tg: (ba404b5..) t/framework/HK/GW/Kolab_Storage/FixTriggerOnFolderRename (depends on: t/kronolith/HK/GW/CalendarRenaming) -- TOPGIT patch commit log ======================= commit 911c0394af77c700df40dc632e636b861c049a6c Author: Gunnar Wrobel

    Date: Sun Feb 1 16:33:08 2009 +0000 Added patch framework/HK-GW-Kolab_Storage-Fix_rename_trigger.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab__Storage_Foreign__owner.patch.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Storage/Foreign_owner.patch Correctly determine the foreign folder owners. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Storage/Folder.php | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php index 408ae54..ab9ecfd 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php @@ -420,7 +420,7 @@ class Kolab_Folder { function getOwner() { if (!isset($this->_owner)) { - if (!preg_match(";(shared\.|INBOX[/]?|user/([^/]+)/)([^@]+)(@.*)?;", $this->name, $matches)) { + if (!preg_match(";(shared\.|INBOX[/]?|user/([^/]+))([^@]+)(@.*)?;", $this->name, $matches)) { return PEAR::raiseError(sprintf(_("Owner of folder %s cannot be determined."), $this->name)); } -- tg: (6938161..) t/framework/HK/GW/Kolab_Storage/Foreign_owner.patch (depends on: master) -- TOPGIT patch commit log ======================= commit 72fc4db48cc2448f1e5e476b1781c276aab28686 Author: Gunnar Wrobel

    Date: Fri Jan 30 20:09:47 2009 +0000 Added patch description. commit 555c9aec2a85f9c0d2e2ef62a481590281ca75cb Author: Gunnar Wrobel

    Date: Fri Jan 30 19:56:26 2009 +0000 Added patch release/HK-GW-Kolab_Storage-ForeignOwner.patch from the mercurial patch queue. --- NEW FILE: t_framework_HK_GW_Kolab__Storage_Restructuring__Fixes.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Storage/Restructuring_Fixes Some fixes of issues caused by restructuring the Kolab modules. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Storage/Folder.php | 15 +++++++++++---- horde-webmail/lib/Horde/Kolab/Storage/List.php | 8 ++++---- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php index 97a2603..2ee6983 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php @@ -238,8 +238,8 @@ class Kolab_Folder { return $imap; } - $result = $this->_imap->connect(Auth::getAuth(), - Auth::getCredential('password')); + $result = $imap->connect(Auth::getAuth(), + Auth::getCredential('password')); if (is_a($result, 'PEAR_Error')) { return $result; } @@ -385,6 +385,7 @@ class Kolab_Folder { $this->new_name = null; $this->_title = null; + $this->_owner = null; } } @@ -475,8 +476,14 @@ class Kolab_Folder { function getOwner() { if (!isset($this->_owner)) { - if (!preg_match(";(shared\.|INBOX[/]?|user/([^/]+))([^@]+)(@.*)?;", $this->name, $matches)) { - return PEAR::raiseError(sprintf(_("Owner of folder %s cannot be determined."), $this->name)); + if (!isset($this->name) && isset($this->new_name)) { + $name = $this->new_name; + } else { + $name = $this->name; + } + + if (!preg_match(";(shared\.|INBOX[/]?|user/([^/]+)[/]?)([^@]*)(@.*)?;", $name, $matches)) { + return PEAR::raiseError(sprintf(_("Owner of folder %s cannot be determined."), $name)); } if (substr($matches[1], 0, 6) == 'INBOX/') { diff --git a/horde-webmail/lib/Horde/Kolab/Storage/List.php b/horde-webmail/lib/Horde/Kolab/Storage/List.php index 6d31c19..8cfed66 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/List.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/List.php @@ -475,19 +475,19 @@ class Kolab_List { $type = $folder->getType(); if (is_a($type, 'PEAR_Error')) { Horde::logMessage(sprintf("Error while updating the Kolab folder list cache: %s.", - $type->getMessage()), __FILE__, __LINE__, PEAR_LOG_ERROR); + $type->getMessage()), __FILE__, __LINE__, PEAR_LOG_ERR); return; } $default = $folder->isDefault(); if (is_a($default, 'PEAR_Error')) { Horde::logMessage(sprintf("Error while updating the Kolab folder list cache: %s.", - $default->getMessage()), __FILE__, __LINE__, PEAR_LOG_ERROR); + $default->getMessage()), __FILE__, __LINE__, PEAR_LOG_ERR); return; } - $owner = $folder->isDefault(); + $owner = $folder->getOwner(); if (is_a($owner, 'PEAR_Error')) { Horde::logMessage(sprintf("Error while updating the Kolab folder list cache: %s.", - $owner->getMessage()), __FILE__, __LINE__, PEAR_LOG_ERROR); + $owner->getMessage()), __FILE__, __LINE__, PEAR_LOG_ERR); return; } -- tg: (4868827..) t/framework/HK/GW/Kolab_Storage/Restructuring_Fixes (depends on: t/framework/HK/GW/framework/Kolab/DeprecatedGetServer) -- TOPGIT patch commit log ======================= commit 47a6392250c3cc5112d25cf4b599cb9112cf8d32 Author: Gunnar Wrobel

    Date: Fri Jan 30 21:51:53 2009 +0000 Added patch release/HK-GW-Kolab_Format-MoreTesting.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab__Storage_ShareIdFix.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Storage/ShareIdFix Fix deriving share id for default folders. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Storage/Folder.php | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php index 1da391b..6596559 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php @@ -265,8 +265,9 @@ class Kolab_Folder { */ function getShareId() { - if ($this->isDefault()) { - return Auth::getAuth(); + $current_user = Auth::getAuth(); + if ($this->isDefault() && $this->getOwner() == $current_user) { + return $current_user; } return rawurlencode($this->name); } -- tg: (1f4cc03..) t/framework/HK/GW/Kolab_Storage/ShareIdFix (depends on: t/framework/HK/GW/DB/SqliteErrorChecking) -- TOPGIT patch commit log ======================= commit 7b70f82b05f55cd3e8e450ade6848c33e6c6fc9c Author: Gunnar Wrobel

    Date: Sun Feb 1 16:54:22 2009 +0000 Added patch framework/HK-GW-Kolab_Storage-Shared_default_folders.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab__Storage_Trigger.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Storage/Trigger A better trigger implementation that gets called automatically when storing stuff and is independant from the folder type. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab.php | 50 +--------- horde-webmail/lib/Horde/Kolab/Storage/Data.php | 10 ++- horde-webmail/lib/Horde/Kolab/Storage/Folder.php | 125 ++++++++++++++++++++-- 3 files changed, 128 insertions(+), 57 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab.php b/horde-webmail/lib/Horde/Kolab.php index 70e9fc1..4338b8e 100644 --- a/horde-webmail/lib/Horde/Kolab.php +++ b/horde-webmail/lib/Horde/Kolab.php @@ -711,7 +711,7 @@ class Kolab { * Returns an array of application-specific constants, that are used in * a generic manner throughout the library. * - * FIXME: Move to IMAP.php + * @deprecated * * @param string $app The application whose constants to query. * @@ -811,52 +811,4 @@ class Kolab { } } } - - /** - * Triggers the freebusy update for the given share uid. - * - * @return boolean True if update was successfull, false otherwise. - */ - function triggerFreeBusyUpdate($share_uid) - { - global $conf; - - $folder_path = rawurldecode($share_uid); - if (!preg_match(";(shared\.|INBOX[/]?|user/([^/]+)/)([^@]+)(@.*)?;", $folder_path, $matches)) { - return PEAR::raiseError(sprintf(_("Owner of folder %s cannot be determined."), $folder_path)); - } - - if (substr($matches[1], 0, 6) == 'INBOX/') { - $owner = Auth::getAuth(); - } elseif (substr($matches[1], 0, 5) == 'user/') { - $domain = strstr(Auth::getAuth(), '@'); - $user_domain = isset($matches[4]) ? $matches[4] : $domain; - $owner = $matches[2] . $user_domain; - } elseif ($matches[1] == 'shared.') { - return PEAR::raiseError(sprintf(_("Cannot trigger shared folder %s."), $folder_path)); - } - $folder = isset($matches[3]) ? $matches[3] : ''; - - $url = 'https://' . Kolab::getServer("imap") . - '/freebusy/trigger/' . $owner . '/' . $folder . '.pfb'; - - // now start the request - $options['method'] = 'GET'; - $options['timeout'] = 5; - $options['allowRedirects'] = true; - - if (isset($conf['http']['proxy']) && !empty($conf['http']['proxy']['proxy_host'])) { - $options = array_merge($options, $conf['http']['proxy']); - } - require_once 'HTTP/Request.php'; - $http = new HTTP_Request($url, $options); - $http->setBasicAuth(Auth::getAuth(), Auth::getCredential('password')); - @$http->sendRequest(); - if ($http->getResponseCode() != 200) { - return PEAR::raiseError(sprintf(_("Unable to trigger free/busy update for folder %s on URL %s"), - $share_uid, $url)); - } - - return true; - } } diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Data.php b/horde-webmail/lib/Horde/Kolab/Storage/Data.php index 2560e0a..4e3b39c 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Data.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Data.php @@ -219,7 +219,7 @@ class Kolab_Data { return true; } foreach ($this->_cache->uids as $id => $object_uid) { - $result = $this->_folder->deleteMessage($id); + $result = $this->_folder->deleteMessage($id, false); if (is_a($result, 'PEAR_Error')) { return $result; } @@ -230,6 +230,14 @@ class Kolab_Data { unset($this->_cache->uids[$id]); } $this->_cache->save(); + + $result = $this->_folder->trigger(); + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage(sprintf('Failed triggering folder %s!', + $this->_folder->name), + __FILE__, __LINE__, PEAR_LOG_ERR); + } + return true; } diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php index ab9ecfd..827faa9 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php @@ -335,7 +335,22 @@ class Kolab_Folder { return $result; } + $result = $this->trigger(); + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage(sprintf('Failed triggering folder %s!', + $this->name), + __FILE__, __LINE__, PEAR_LOG_ERR); + } + $this->name = $this->new_name; + + $result = $this->trigger(); + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage(sprintf('Failed triggering folder %s!', + $this->name), + __FILE__, __LINE__, PEAR_LOG_ERR); + } + $this->new_name = null; $this->_title = null; } @@ -409,6 +424,14 @@ class Kolab_Folder { if (is_a($result, 'PEAR_Error')) { return $result; } + + $result = $this->trigger(); + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage(sprintf('Failed triggering folder %s!', + $this->name), + __FILE__, __LINE__, PEAR_LOG_ERR); + } + return true; } @@ -638,11 +661,12 @@ class Kolab_Folder { /** * Delete the specified message from this folder. * - * @param string $id IMAP id of the message to be deleted. + * @param string $id IMAP id of the message to be deleted. + * @param boolean $trigger Should the folder be triggered? * * @return boolean|PEAR_Error True if successful. */ - function deleteMessage($id) + function deleteMessage($id, $trigger = true) { if (is_a($this->_imap, 'PEAR_Error')) { return $this->_imap; @@ -663,6 +687,16 @@ class Kolab_Folder { if (is_a($result, 'PEAR_Error')) { return $result; } + + if ($trigger) { + $result = $this->trigger(); + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage(sprintf('Failed triggering folder %s!', + $this->name), + __FILE__, __LINE__, PEAR_LOG_ERR); + } + } + return true; } @@ -695,6 +729,14 @@ class Kolab_Folder { if (is_a($result, 'PEAR_Error')) { return $result; } + + $result = $this->trigger(); + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage(sprintf('Failed triggering folder %s!', + $this->name), + __FILE__, __LINE__, PEAR_LOG_ERR); + } + return true; } @@ -713,7 +755,16 @@ class Kolab_Folder { return $folder; } $folder->tainted = true; - return $this->moveMessage($id, $folder->name); + + $success = $this->moveMessage($id, $folder->name); + + $result = $folder->trigger(); + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage(sprintf('Failed triggering folder %s!', + $this->name), + __FILE__, __LINE__, PEAR_LOG_ERR); + } + return $success; } /** @@ -831,6 +882,14 @@ class Kolab_Folder { return $result; } } + + $result = $this->trigger(); + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage(sprintf('Failed triggering folder %s!', + $this->name), + __FILE__, __LINE__, PEAR_LOG_ERR); + } + return true; } @@ -951,6 +1010,58 @@ class Kolab_Folder { } /** + * Triggers any required updates after changes within the + * folder. This is currently only required for handling free/busy + * information with Kolab. + * + * @return boolean|PEAR_Error True if successfull. + */ + function trigger() + { + global $conf; + + $type = $this->getType(); + if (is_a($type, 'PEAR_Error')) { + return $type; + } + + $owner = $this->getOwner(); + if (is_a($owner, 'PEAR_Error')) { + return $owner; + } + + switch($type) { + case 'event': + $session = &Horde_Kolab_Session::singleton(); + $url = sprintf('%s/trigger/%s/%s.pfb', + $session->freebusy_server, $owner, $this->name); + break; + default: + return true; + } + + // now start the request + $options['method'] = 'GET'; + $options['timeout'] = 5; + $options['allowRedirects'] = true; + + if (isset($conf['http']['proxy']) && !empty($conf['http']['proxy']['proxy_host'])) { + $options = array_merge($options, $conf['http']['proxy']); + } + + require_once 'HTTP/Request.php'; + $http = new HTTP_Request($url, $options); + $http->setBasicAuth(Auth::getAuth(), Auth::getCredential('password')); + @$http->sendRequest(); + if ($http->getResponseCode() != 200) { + return PEAR::raiseError(sprintf(_("Unable to trigger free/busy update for folder %s on URL %s"), + $this->name, $url)); + } + + return true; + } + + /** * Checks to see if a user has a given permission. * * @param string $userid The userid of the user. @@ -1056,7 +1167,7 @@ class Kolab_Folder { if (!is_a($acl, 'PEAR_Error')) { return $acl; } - + $my_rights = $this->_imap->getMyrights($this->name); if (is_a($my_rights, 'PEAR_Error')) { return $my_rights; @@ -1124,7 +1235,7 @@ class Kolab_Folder { { $this->_annotation_data = $this->getData('annotation'); } - + /** * Get an annotation value of this folder. @@ -1144,7 +1255,7 @@ class Kolab_Folder { return $this->_imap->getAnnotation($key, 'value.shared', $this->name); } - + if (!isset($this->_annotation_data)) { $this->_getAnnotationData(); } @@ -1180,7 +1291,7 @@ class Kolab_Folder { array('value.shared' => $value), $this->name); } - + if (!isset($this->_annotation_data)) { $this->_getAnnotationData(); } -- tg: (a47b2ab..) t/framework/HK/GW/Kolab_Storage/Trigger (depends on: t/framework/HK/GW/Kolab_Storage/Foreign_owner.patch) -- TOPGIT patch commit log ======================= commit f53c2ff7849165fa9cbf59d27a36276023d693c4 Author: Gunnar Wrobel

    Date: Fri Jan 30 20:21:25 2009 +0000 Added patch release/HK-GW-Kolab_Storage-Trigger.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Kolab__Storgae_FixedUpdateTriggering.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Kolab_Storgae/FixedUpdateTriggering Complete/fix the triggering when updating folders. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Storage/Folder.php | 143 +++++++++++++++++----- 1 files changed, 110 insertions(+), 33 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php index ddcfbe8..64a438b 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php @@ -110,6 +110,13 @@ class Kolab_Folder { var $_owner; /** + * The pure folder. + * + * @var string + */ + var $_subpath; + + /** * Additional Horde folder attributes. * * @var array @@ -330,23 +337,15 @@ class Kolab_Folder { $result = $this->trigger(); if (is_a($result, 'PEAR_Error')) { - Horde::logMessage(sprintf('Failed triggering folder %s!', - $this->name), - __FILE__, __LINE__, PEAR_LOG_ERR); - } - - $this->name = $this->new_name; - - $result = $this->trigger(); - if (is_a($result, 'PEAR_Error')) { - Horde::logMessage(sprintf('Failed triggering folder %s!', - $this->name), + Horde::logMessage(sprintf('Failed triggering folder %s! Error was: %s', + $this->name, $result->getMessage()), __FILE__, __LINE__, PEAR_LOG_ERR); } + $this->name = $this->new_name; $this->new_name = null; - $this->_title = null; - $this->_owner = null; + $this->_title = null; + $this->_owner = null; } } @@ -400,6 +399,14 @@ class Kolab_Folder { } $this->_attributes = $attributes; } + + $result = $this->trigger(); + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage(sprintf('Failed triggering folder %s! Error was: %s', + $this->name, $result->getMessage()), + __FILE__, __LINE__, PEAR_LOG_ERR); + } + return true; } @@ -417,8 +424,8 @@ class Kolab_Folder { $result = $this->trigger(); if (is_a($result, 'PEAR_Error')) { - Horde::logMessage(sprintf('Failed triggering folder %s!', - $this->name), + Horde::logMessage(sprintf('Failed triggering folder %s! Error was: %s', + $this->name, $result->getMessage()), __FILE__, __LINE__, PEAR_LOG_ERR); } @@ -443,6 +450,8 @@ class Kolab_Folder { return PEAR::raiseError(sprintf(_("Owner of folder %s cannot be determined."), $name)); } + $this->_subpath = $matches[3]; + if (substr($matches[1], 0, 6) == 'INBOX/') { $this->_owner = Auth::getAuth(); } elseif (substr($matches[1], 0, 5) == 'user/') { @@ -457,6 +466,30 @@ class Kolab_Folder { } /** + * Returns the subpath of the folder. + * + * @return string|PEAR_Error The subpath of this folder. + */ + function getSubpath() + { + if (!isset($this->_subpath)) { + if (!isset($this->name) && isset($this->new_name)) { + $name = $this->new_name; + } else { + $name = $this->name; + } + + if (!preg_match(";(shared\.|INBOX[/]?|user/([^/]+)[/]?)([^@]*)(@.*)?;", $name, $matches)) { + return PEAR::raiseError(sprintf(_("Subpath of folder %s cannot be determined."), $name)); + } + + $this->_subpath = $matches[3]; + + } + return $this->_subpath; + } + + /** * Returns a readable title for this folder. * * @return string The folder title. @@ -684,8 +717,8 @@ class Kolab_Folder { if ($trigger) { $result = $this->trigger(); if (is_a($result, 'PEAR_Error')) { - Horde::logMessage(sprintf('Failed triggering folder %s!', - $this->name), + Horde::logMessage(sprintf('Failed triggering folder %s! Error was: %s', + $this->name, $result->getMessage()), __FILE__, __LINE__, PEAR_LOG_ERR); } } @@ -727,8 +760,8 @@ class Kolab_Folder { $result = $this->trigger(); if (is_a($result, 'PEAR_Error')) { - Horde::logMessage(sprintf('Failed triggering folder %s!', - $this->name), + Horde::logMessage(sprintf('Failed triggering folder %s! Error was: %s', + $this->name, $result->getMessage()), __FILE__, __LINE__, PEAR_LOG_ERR); } @@ -753,10 +786,10 @@ class Kolab_Folder { $success = $this->moveMessage($id, $folder->name); - $result = $folder->trigger(); + $result = $this->trigger(); if (is_a($result, 'PEAR_Error')) { - Horde::logMessage(sprintf('Failed triggering folder %s!', - $this->name), + Horde::logMessage(sprintf('Failed triggering folder %s! Error was: %s', + $this->name, $result->getMessage()), __FILE__, __LINE__, PEAR_LOG_ERR); } return $success; @@ -870,7 +903,7 @@ class Kolab_Folder { } $mime_message->_generateIdMap($mime_message->_parts); } - } + } } } } @@ -991,8 +1024,8 @@ class Kolab_Folder { $result = $this->trigger(); if (is_a($result, 'PEAR_Error')) { - Horde::logMessage(sprintf('Failed triggering folder %s!', - $this->name), + Horde::logMessage(sprintf('Failed triggering folder %s! Error was: %s', + $this->name, $result->getMessage()), __FILE__, __LINE__, PEAR_LOG_ERR); } @@ -1142,17 +1175,38 @@ class Kolab_Folder { return $owner; } + $subpath = $this->getSubpath(); + if (is_a($subpath, 'PEAR_Error')) { + return $subpath; + } + switch($type) { case 'event': $session = &Horde_Kolab_Session::singleton(); $url = sprintf('%s/trigger/%s/%s.pfb', - $session->freebusy_server, $owner, $this->name); + $session->freebusy_server, $owner, $subpath); break; default: return true; } - // now start the request + $result = $this->triggerUrl($url); + if (is_a($result, 'PEAR_Error')) { + return PEAR::raiseError(sprintf(_("Failed triggering folder %s. Error was: %s"), + $this->name, $result->getMessage())); + } + return $result; + } + + /** + * Triggers a URL. + * + * @param string $url The URL to be triggered. + * + * @return boolean|PEAR_Error True if successfull. + */ + function triggerUrl($url) + { $options['method'] = 'GET'; $options['timeout'] = 5; $options['allowRedirects'] = true; @@ -1166,10 +1220,9 @@ class Kolab_Folder { $http->setBasicAuth(Auth::getAuth(), Auth::getCredential('password')); @$http->sendRequest(); if ($http->getResponseCode() != 200) { - return PEAR::raiseError(sprintf(_("Unable to trigger free/busy update for folder %s on URL %s"), - $this->name, $url)); + return PEAR::raiseError(sprintf(_("Unable to trigger URL %s. Response: %s"), + $url, $http->getResponseCode())); } - return true; } @@ -1315,7 +1368,19 @@ class Kolab_Folder { return true; } - return $imap->setACL($this->name, $user, $acl); + $iresult = $imap->setACL($this->name, $user, $acl); + if (is_a($iresult, 'PEAR_Error')) { + return $iresult; + } + + $result = $this->trigger(); + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage(sprintf('Failed triggering folder %s! Error was: %s', + $this->name, $result->getMessage()), + __FILE__, __LINE__, PEAR_LOG_ERR); + } + + return $iresult; } /** @@ -1339,7 +1404,19 @@ class Kolab_Folder { return true; } - return $imap->deleteACL($this->name, $user); + $iresult = $imap->deleteACL($this->name, $user); + if (is_a($iresult, 'PEAR_Error')) { + return $iresult; + } + + $result = $this->trigger(); + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage(sprintf('Failed triggering folder %s! Error was: %s', + $this->name, $result->getMessage()), + __FILE__, __LINE__, PEAR_LOG_ERR); + } + + return $iresult; } @@ -1349,7 +1426,7 @@ class Kolab_Folder { * * @return array|PEAR_Error The anotations of this folder. */ - function _getAnnotationData() + function _getAnnotationData() { $this->_annotation_data = $this->getData('annotation'); } -- tg: (2cf9df2..) t/framework/HK/GW/Kolab_Storgae/FixedUpdateTriggering (depends on: t/framework/HK/GW/Kolab_Server/ImprovedServerFallbacks) -- TOPGIT patch commit log ======================= commit 18952be0440a4f12a6ea15bb4683f13d1cc9f061 Author: Gunnar Wrobel

    Date: Sun Feb 1 16:18:48 2009 +0000 Added patch framework/HK-GW-Kolab_Storage-Trigger_fix.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Prefs__KolabImapApplicationTag.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Prefs_KolabImapApplicationTag Switches from the "categories" tag in the Kolab IMAP preferences driver to the new "application" tag. Signed-off-by: Gunnar Wrobel

    --- .../lib/Horde/Kolab/Format/XML/hprefs.php | 48 ++++++++++++++++++++ horde-webmail/lib/Horde/Prefs/kolab_imap.php | 4 +- 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Format/XML/hprefs.php b/horde-webmail/lib/Horde/Kolab/Format/XML/hprefs.php index e646ad6..22a94bc 100644 --- a/horde-webmail/lib/Horde/Kolab/Format/XML/hprefs.php +++ b/horde-webmail/lib/Horde/Kolab/Format/XML/hprefs.php @@ -46,6 +46,10 @@ class Horde_Kolab_Format_XML_hprefs extends Horde_Kolab_Format_XML { /** Specific preferences fields, in kolab format specification order */ $this->_fields_specific = array( + 'application' => array ( + 'type' => HORDE_KOLAB_XML_TYPE_STRING, + 'value' => HORDE_KOLAB_XML_VALUE_MAYBE_MISSING, + ), 'pref' => array( 'type' => HORDE_KOLAB_XML_TYPE_MULTIPLE, 'value' => HORDE_KOLAB_XML_VALUE_MAYBE_MISSING, @@ -58,4 +62,48 @@ class Horde_Kolab_Format_XML_hprefs extends Horde_Kolab_Format_XML { parent::Horde_Kolab_Format_XML(); } + + /** + * Load an object based on the given XML string. + * + * @param string $xmltext The XML of the message as string. + * + * @return array|PEAR_Error The data array representing the object. + */ + function load(&$xmltext) + { + $object = parent::load($xmltext); + + if (empty($object['application'])) { + if (!empty($object['categories'])) { + $object['application'] = $object['categories']; + unset($object['categories']); + } else { + return PEAR::raiseError('Preferences XML object is missing an application setting.'); + } + } + + return $object; + } + + /** + * Convert the data to a XML string. + * + * @param array $attributes The data array representing the note. + * + * @return string|PEAR_Error The data as XML string. + */ + function save($object) + { + if (empty($object['application'])) { + if (!empty($object['categories'])) { + $object['application'] = $object['categories']; + unset($object['categories']); + } else { + return PEAR::raiseError('Preferences XML object is missing an application setting.'); + } + } + + return parent::save($object); + } } diff --git a/horde-webmail/lib/Horde/Prefs/kolab_imap.php b/horde-webmail/lib/Horde/Prefs/kolab_imap.php index db332c6..4a24e6a 100644 --- a/horde-webmail/lib/Horde/Prefs/kolab_imap.php +++ b/horde-webmail/lib/Horde/Prefs/kolab_imap.php @@ -163,7 +163,7 @@ class Prefs_kolab_imap extends Prefs { } foreach ($prefs as $pref) { - if ($pref['categories'] == $scope) { + if ($pref['application'] == $scope) { return $pref; } } @@ -218,7 +218,7 @@ class Prefs_kolab_imap extends Prefs { } $object = array('uid' => $prefs_uid, - 'categories' => $scope, + 'application' => $scope, 'pref' => $new_values); $result = $this->_connection->_storage->save($object, $old_uid); -- tg: (6938161..) t/framework/HK/GW/Prefs_KolabImapApplicationTag (depends on: master) -- TOPGIT patch commit log ======================= commit 68891b53f52ce54e318990731b1e6c7ecb5d3544 Author: Gunnar Wrobel

    Date: Thu Jan 29 22:07:23 2009 +0000 Added patch release/HK-GW-Prefs-KolabImapApplicationTag.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_Vfs_KolabDriver.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/Vfs/KolabDriver Support the Horde virtual filesystem with Kolab. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/VFS/kolab.php | 631 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 631 insertions(+), 0 deletions(-) diff --git a/horde-webmail/lib/VFS/kolab.php b/horde-webmail/lib/VFS/kolab.php new file mode 100644 index 0000000..e8b75c5 --- /dev/null +++ b/horde-webmail/lib/VFS/kolab.php @@ -0,0 +1,631 @@ + + * @package VFS + */ +class VFS_kolab extends VFS { + + /** + * Variable holding the connection to the Kolab storage system. + * + * @var Horde_Kolab_IMAP + */ + var $_imap = false; + + /** + * Cache for the list of folders. + * + * @var array + */ + var $_folders; + + /** + * Retrieves a file from the VFS. + * + * @param string $path The pathname to the file. + * @param string $name The filename to retrieve. + * + * @return string The file data. + */ + function read($path, $name) + { + list($app, $uid) = $this->_getAppUid($path); + if ($app && $uid) { + $handler = &$this->_getAppHandler($app, $uid); + if (is_a($handler, 'PEAR_Error')) { + return $handler; + } + $object = $handler->getObject($uid); + + if (isset($object['_attachments'][$name])) { + return $handler->getAttachment($object['_attachments'][$name]['key']); + } + } + + //FIXME + if ($this->isFolder(dirname($path), basename($path))) { + $session = &Horde_Kolab_Session::singleton(); + $imap = &$session->getImap(); + + $result = $imap->select(substr($path,1)); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + + $file = explode('/', $name); + + return $this->_getFile($imap, $file[0], $file[1]); + } + return ''; + } + + /** + * Stores a file in the VFS. + * + * @param string $path The path to store the file in. + * @param string $name The filename to use. + * @param string $tmpFile The temporary file containing the data to + * be stored. + * @param boolean $autocreate Automatically create directories? + * + * @return mixed True on success or a PEAR_Error object on failure. + */ + function write($path, $name, $tmpFile, $autocreate = false) + { + list($app, $uid) = $this->_getAppUid($path); + if ($app) { + $handler = &$this->_getAppHandler($app, $uid); + if (is_a($handler, 'PEAR_Error')) { + return $handler; + } + $object = $handler->getObject($uid); + $object['_attachments'][$name]['path'] = $tmpFile; + if (empty($object['link-attachment'])) { + $object['link-attachment'] = array($name); + } else { + $object['link-attachment'][] = $name; + } + + return $handler->save($object, $uid); + } + + if ($autocreate && !$this->isFolder(dirname($path), basename($path))) { + $result = $this->autocreatePath($path); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + } + + //FIXME + return PEAR::raiseError(_("Not supported.")); + } + + /** + * Deletes a file from the VFS. + * + * @abstract + * + * @param string $path The path to delete the file from. + * @param string $name The filename to delete. + * + * @return mixed True on success or a PEAR_Error object on failure. + */ + function deleteFile($path, $name) + { + list($app, $uid) = $this->_getAppUid($path); + if ($app) { + $handler = &$this->_getAppHandler($app, $uid); + if (is_a($handler, 'PEAR_Error')) { + return $handler; + } + $object = $handler->getObject($uid); + if (!isset($object['_attachments'][$name])) { + return PEAR::raiseError(_("Unable to delete VFS file.")); + } + unset($object['_attachments'][$name]); + $object['link-attachment'] = array_values(array_diff($object['link-attachment'], array($name))); + + return $handler->save($object, $uid); + } + + //FIXME + return PEAR::raiseError(_("Not supported.")); + } + + /** + * Creates a folder on the VFS. + * + * @param string $path The parent folder. + * @param string $name The name of the new folder. + * + * @return mixed True on success or a PEAR_Error object on failure. + */ + function createFolder($path, $name) + { + $list = Kolab_List::singleton(); + $folder = $this->_getFolder($path, $name); + + $object = $list->getNewFolder(); + $object->setName($folder); + + $result = $object->save(array('type' => 'h-file')); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + + $this->_folders = null; + } + + /** + * Deletes a folder from the VFS. + * + * @param string $path The parent folder. + * @param string $name The name of the folder to delete. + * @param boolean $recursive Force a recursive delete? + * + * @return mixed True on success or a PEAR_Error object on failure. + */ + function deleteFolder($path, $name, $recursive = false) + { + if ($recursive) { + $result = $this->emptyFolder($path . '/' . $name); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + } else { + $list = $this->listFolder($path . '/' . $name, null, false); + if (is_a($list, 'PEAR_Error')) { + return $list; + } + if (count($list)) { + return PEAR::raiseError(sprintf(_("Unable to delete %s, the directory is not empty"), + $path . '/' . $name)); + } + } + + list($app, $uid) = $this->_getAppUid($path . '/' . $name); + if ($app) { + /** + * Objects provide no real folders and we don't delete them. + */ + return true; + } + + $folders = $this->_getFolders(); + if (is_a($folders, 'PEAR_Error')) { + return $folders; + } + $folder = $this->_getFolder($path, $name); + + if (!empty($folders['/' . $folder])) { + $result = $folders['/' . $folder]->delete(); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + + $this->_folders = null; + + return true; + } + return PEAR::raiseError(sprintf('No such folder %s!', '/' . $folder)); + } + + /** + * Recursively remove all files and subfolders from the given + * folder. + * + * @param string $path The path of the folder to empty. + * + * @return mixed True on success or a PEAR_Error object on failure. + */ + function emptyFolder($path) + { + // Get and delete the subfolders. + $list = $this->listFolder($path, null, false, true); + if (is_a($list, 'PEAR_Error')) { + return $list; + } + foreach ($list as $folder) { + $result = $this->deleteFolder($path, $folder['name'], true); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + } + // Only files are left, get and delete them. + $list = $this->listFolder($path, null, false); + if (is_a($list, 'PEAR_Error')) { + return $list; + } + foreach ($list as $file) { + $result = $this->deleteFile($path, $file['name']); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + } + + return true; + } + + /** + * Returns an an unsorted file list of the specified directory. + * + * @param string $path The path of the directory. + * @param mixed $filter String/hash to filter file/dirname on. + * @param boolean $dotfiles Show dotfiles? + * @param boolean $dironly Show only directories? + * + * @return array File list on success or PEAR_Error on failure. + */ + function _listFolder($path = '', $filter = null, $dotfiles = true, + $dironly = false) + { + list($app, $uid) = $this->_getAppUid($path); + if ($app) { + if ($dironly) { + /** + * Objects dont support directories. + */ + return array(); + } + if ($uid) { + $handler = &$this->_getAppHandler($app, $uid); + if (is_a($handler, 'PEAR_Error')) { + return $handler; + } + $object = $handler->getObject($uid); + + $filenames = isset($object['_attachments']) ? array_keys($object['_attachments']) : array(); + } else { + $filenames = $this->_getAppUids($app); + } + + $owner = Auth::getAuth(); + + $files = array(); + $file = array(); + foreach($filenames as $filename) { + + $name = explode('.', $filename); + + if (count($name) == 1) { + $file['type'] = '**none'; + } else { + $file['type'] = VFS::strtolower($name[count($name) - 1]); + } + + $file['size'] = '-1'; + $file['name'] = $filename; + $file['group'] = 'none'; + $file['owner'] = $owner; + $file['date'] = 0; + $file['perms'] = 'rwxrwx---'; + + $files[$file['name']] = $file; + } + return $files; + } + + $owner = Auth::getAuth(); + + $files = array(); + + $folders = $this->listFolders($path, $filter, $dotfiles); + if (is_a($folders, 'PEAR_Error')) { + return $folders; + } + + $list = $this->_getFolders(); + + $file = array(); + foreach ($folders as $folder) { + $file['type'] = '**dir'; + $file['size'] = -1; + $file['name'] = $folder['abbrev']; + //FIXME + $file['group'] = 'none'; + //FIXME + $file['owner'] = $owner; + //FIXME + $file['date'] = 0; + //FIXME + $file['perms'] = 'rwxrwx---'; + + $files[$file['name']] = $file; + } + + if (!$dironly + && $this->isFolder(basename($path), basename($path)) + && !empty($list[$path])) { + + $session = &Horde_Kolab_Session::singleton(); + $imap = &$session->getImap(); + + $result = $imap->select(substr($path, 1)); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + + $uids = $imap->getUids(); + if (is_a($uids, 'PEAR_Error')) { + return $uids; + } + + foreach ($uids as $uid) { + $mFiles = $this->_parseMessage($imap, $uid); + if (is_a($mFiles, 'PEAR_Error')) { + return $mFiles; + } + $result = array_merge($files, $mFiles); + $files = $result; + } + } + + return $files; + } + + function _parseMessage($imap, $uid) + { + $result = $imap->getMessageHeader($uid); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + + $raw_headers = $result; + + $body = $imap->getMessageBody($uid); + if (is_a($body, 'PEAR_Error')) { + return $body; + } + + $raw_message = $raw_headers . $body; + + $mime_message = &MIME_Structure::parseTextMIMEMessage($raw_message); + $parts = $mime_message->contentTypeMap(); + + $owner = Auth::getAuth(); + + $files = array(); + $file = array(); + + foreach ($parts as $part_id => $disposition) { + $part = $mime_message->getPart($part_id); + + $filename = $part->getDispositionParameter('filename'); + + if ($filename) { + $file['type'] = '**file'; + $file['size'] = $part->getSize(); + $file['name'] = $uid . '/' . $filename; + //FIXME + $file['group'] = 'none'; + //FIXME + $file['owner'] = $owner; + //FIXME + $file['date'] = 0; + //FIXME + $file['perms'] = 'rwxrwx---'; + + $files[$file['name']] = $file; + } + + } + + return $files; + } + + + function _getFile($imap, $uid, $filename) + { + $result = $imap->getMessageHeader($uid); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + + $raw_headers = $result; + + $body = $imap->getMessageBody($uid); + if (is_a($body, 'PEAR_Error')) { + return $body; + } + + $raw_message = $raw_headers . $body; + + $mime_message = &MIME_Structure::parseTextMIMEMessage($raw_message); + $parts = $mime_message->contentTypeMap(); + + $owner = Auth::getAuth(); + + $files = array(); + $file = array(); + + foreach ($parts as $part_id => $disposition) { + $part = $mime_message->getPart($part_id); + + $f= $part->getDispositionParameter('filename'); + + if ($f && $f == $filename ) { + return $part->transferDecode(); + } + } + return ''; + } + + + /** + * Returns a sorted list of folders in the specified directory. + * + * @param string $path The path of the directory to get the + * directory list for. + * @param mixed $filter Hash of items to filter based on folderlist. + * @param boolean $dotfolders Include dotfolders? + * + * @return mixed Folder list on success or a PEAR_Error object on failure. + */ + function listFolders($path = '', $filter = null, $dotfolders = true) + { + if (substr($path, -1) != '/') { + $path .= '/'; + } + + $aFolders = array(); + $aFolder = array(); + + if ($dotfolders && $path != '/') { + $aFolder['val'] = dirname($path); + $aFolder['abbrev'] = '..'; + $aFolder['label'] = '..'; + + $aFolders[$aFolder['val']] = $aFolder; + } + + $folders = $this->_getFolders(); + + $base_len = strlen($path); + foreach (array_keys($folders) as $folder) { + if (substr($folder, 0, $base_len) == $path) { + $name = substr($folder, $base_len); + if (!strpos($name, '/')) { + $aFolder['val'] = $folder; + $aFolder['abbrev'] = $name; + $aFolder['label'] = $folder; + $aFolders[$aFolder['val']] = $aFolder; + } + } + } + + ksort($aFolders); + return $aFolders; + } + + function _getFolder($path, $name) + { + $folder = $path . '/' . $name; + + while (substr($folder, 0, 1) == '/') { + $folder = substr($folder, 1); + } + + while (substr($folder, -1) == '/') { + $folder = substr($folder, 0, -1); + } + + return $folder; + } + + + function _getFolders() + { + if (!isset($this->_folders)) { + + $vfs_folders = array(); + + $list = Kolab_List::singleton(); + + if (!empty($this->_params['all_folders'])) { + $folders = $list->getFolders(); + } else { + $folders = $list->getByType('h-file'); + } + + if (is_a($folders, 'PEAR_Error')) { + return $folders; + } + + foreach ($folders as $folder) { + $vfs_folders['/' . $folder->name] = &$folder; + } + + foreach (array_keys($vfs_folders) as $name) { + $dir = dirname($name); + while ($dir != '/') { + if (!isset($vfs_folders[$dir])) { + $vfs_folders[$dir] = null; + } + $dir = dirname($dir); + } + } + $this->_folders = $vfs_folders; + } + return $this->_folders; + } + + function _getAppUid($path) + { + if (defined('TURBA_VFS_PATH') + && substr($path, 0, strlen(TURBA_VFS_PATH)) == TURBA_VFS_PATH) { + return array('turba', substr($path, strlen(TURBA_VFS_PATH) + 1)); + } + return array(false, false); + } + + function &_getAppHandler($app, $uid) + { + global $registry; + + switch ($app) { + case 'turba': + $sources = $registry->call('contacts/sources', + array('writeable' => true)); + $fields = array(); + foreach (array_keys($sources) as $source) { + $fields[$source] = array('__uid'); + } + $result = $registry->call('contacts/search', + array('names' => $uid, + 'sources' => array_keys($sources), + 'fields' => $fields)); + $list = Kolab_List::singleton(); + $share = &$list->getByShare($result[$uid][0]['source'], 'contact'); + if (is_a($share, 'PEAR_Error')) { + return $share; + } + return $share->getData(); + } + } + + function _getAppUids($app) + { + global $registry; + + switch ($app) { + case 'turba': + $sources = $registry->call('contacts/sources', + array('writeable' => true)); + $result = $registry->call('contacts/search', + array('names' => '', + 'sources' => array_keys($sources), + 'fields' => array())); + $uids = array(); + foreach ($result[''] as $contact) { + if (isset($contact['__uid'])) { + $uids[] = $contact['__uid']; + } + } + return $uids; + } + } + + /** + * Connecting is not required for this driver. + * + * @access private + * + * @return NULL + */ + function _connect() + { + } +} -- tg: (864fbe8..) t/framework/HK/GW/Vfs/KolabDriver (depends on: t/framework/HK/GW/Kolab/AttachmentSupport) -- TOPGIT patch commit log ======================= commit e1219c6a3362b1979d889a3b88b4ea4ac79ff631 Author: Gunnar Wrobel

    Date: Sat Jan 31 00:12:50 2009 +0000 Added patch framework/HK-GW-VFS-Kolab.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_framework_Kolab_DeprecatedGetServer.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/framework/Kolab/DeprecatedGetServer Deprecates the old getServer routines in Horde/Kolab.php. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab.php | 24 +++++++++--------------- 1 files changed, 9 insertions(+), 15 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab.php b/horde-webmail/lib/Horde/Kolab.php index 4338b8e..9ed8949 100644 --- a/horde-webmail/lib/Horde/Kolab.php +++ b/horde-webmail/lib/Horde/Kolab.php @@ -794,21 +794,15 @@ class Kolab { { global $conf; - if (!empty($conf['kolab']['misc']['multidomain']) && - !empty($_SESSION['kolabHomeserver'])) { - // in multidomain mode we return the kolabHomeserver - return $_SESSION['kolabHomeserver']; - } else { - switch ($server_type) { - case 'imap': - return $conf['kolab']['imap']['server']; - case 'ldap': - return $conf['kolab']['ldap']['server']; - case 'smtp': - return $conf['kolab']['smtp']['server']; - default: - return ''; - } + switch ($server_type) { + case 'imap': + return $conf['kolab']['imap']['server']; + case 'ldap': + return $conf['kolab']['ldap']['server']; + case 'smtp': + return $conf['kolab']['smtp']['server']; + default: + return ''; } } } -- tg: (ca94278..) t/framework/HK/GW/framework/Kolab/DeprecatedGetServer (depends on: t/framework/HK/GW/framework/Kolab/MoveSessionHandler) -- TOPGIT patch commit log ======================= commit afeb05387ac5e55f1a29dbe129c07c9acc31c42f Author: Gunnar Wrobel

    Date: Fri Jan 30 21:43:43 2009 +0000 Added patch release/HK-GW-Kolab-DeprecateGetServer.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_framework_Kolab_MoveSessionHandler.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/framework/Kolab/MoveSessionHandler Move several Kolab specific components to the new Kolab_Session handler. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Deprecated.php | 4 +- horde-webmail/lib/Horde/Kolab/Storage/Folder.php | 38 +++- horde-webmail/lib/Horde/Kolab/Storage/List.php | 10 +- horde-webmail/lib/Horde/Kolab/Storage/Session.php | 244 --------------------- 4 files changed, 40 insertions(+), 256 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Deprecated.php b/horde-webmail/lib/Horde/Kolab/Deprecated.php index af78ceb..6f45013 100644 --- a/horde-webmail/lib/Horde/Kolab/Deprecated.php +++ b/horde-webmail/lib/Horde/Kolab/Deprecated.php @@ -180,7 +180,7 @@ class Kolab_Storage_Deprecated extends Kolab_Storage { /** We need the DOM library for xml handling (PHP4/5). */ require_once 'Horde/DOM.php'; - $session = &Kolab_Session::singleton(); + $session = &Horde_Kolab_Session::singleton(); $this->_imap = &$session->getImap(); $this->_object_type = $app_consts['mime_type_suffix']; @@ -449,7 +449,7 @@ class Kolab_Storage_Deprecated extends Kolab_Storage { */ function listObjectsInFolder($folder) { - $session = &Kolab_Session::singleton(); + $session = &Horde_Kolab_Session::singleton(); $imap = &$session->getImap(); // Select mailbox to search in diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php index 827faa9..97a2603 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php @@ -5,6 +5,9 @@ * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Storage/Folder.php,v 1.7.2.3 2008/09/25 14:44:03 wrobel Exp $ */ +/** We need the current user session. */ +require_once 'Horde/Kolab/Session.php'; + /** Data handling for Kolab **/ require_once 'Horde/Kolab/Storage/Data.php'; @@ -186,8 +189,7 @@ class Kolab_Folder { */ function __wakeup() { - $session = &Kolab_Session::singleton(); - $this->_imap = &$session->getImap(); + $this->_imap = &$this->getImap(); if (!isset($this->_data)) { $this->_data = array(); @@ -216,6 +218,36 @@ class Kolab_Folder { } /** + * Create an IMAP connection. + * + * @return Kolab_IMAP|PEAR_Error The IMAP connection. + */ + function &getImap() + { + $session = &Horde_Kolab_Session::singleton(); + $params = &$session->getImapParams(); + if (is_a($params, 'PEAR_Error')) { + return $params; + } else { + /** We need the Kolab IMAP library now. */ + require_once 'Horde/Kolab/Storage/IMAP.php'; + + $imap = &Kolab_IMAP::singleton($params['hostspec'], + $params['port'], true, false); + if (is_a($imap, 'PEAR_Error')) { + return $imap; + } + + $result = $this->_imap->connect(Auth::getAuth(), + Auth::getCredential('password')); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + return $imap; + } + } + + /** * Set the list handler. * * @param Kolab_List $list The handler for the list of folders. @@ -841,7 +873,7 @@ class Kolab_Folder { $mime_message->alterPart($mime_part_id, $part); } - $session = &Kolab_Session::singleton(); + $session = &Horde_Kolab_Session::singleton(); // Update email headers $new_headers->addHeader('From', $session->user_mail); diff --git a/horde-webmail/lib/Horde/Kolab/Storage/List.php b/horde-webmail/lib/Horde/Kolab/Storage/List.php index 3306df5..6d31c19 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/List.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/List.php @@ -5,9 +5,6 @@ * $Horde: framework/Kolab_Storage/lib/Horde/Kolab/Storage/List.php,v 1.3.2.2 2008/09/25 09:20:07 wrobel Exp $ */ -/** We need the IMAP connection. */ -require_once 'Horde/Kolab/Storage/Session.php'; - /** Kolab IMAP folder representation. **/ require_once 'Horde/Kolab/Storage/Folder.php'; @@ -84,8 +81,7 @@ class Kolab_List { */ function __wakeup() { - $session = &Kolab_Session::singleton(); - $this->_imap = &$session->getImap(); + $this->_imap = &Kolab_Folder::getImap(); if (!isset($this->_folders)) { $this->_folders = array(); @@ -127,7 +123,7 @@ class Kolab_List { static $list; if (!isset($list) && - !empty($GLOBALS['conf']['kolab']['cache_folders'])) { + !empty($GLOBALS['conf']['kolab']['imap']['cache_folders'])) { require_once 'Horde/SessionObjects.php'; $session = &Horde_SessionObjects::singleton(); $list = $session->query('kolab_folderlist'); @@ -137,7 +133,7 @@ class Kolab_List { $list = new Kolab_List(); } - if (!empty($GLOBALS['conf']['kolab']['cache_folders'])) { + if (!empty($GLOBALS['conf']['kolab']['imap']['cache_folders'])) { register_shutdown_function(array(&$list, 'shutdown')); } diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Session.php b/horde-webmail/lib/Horde/Kolab/Storage/Session.php deleted file mode 100644 index 840ad98..0000000 --- a/horde-webmail/lib/Horde/Kolab/Storage/Session.php +++ /dev/null @@ -1,244 +0,0 @@ - - * @package Kolab_Storage - */ -class Kolab_Session { - - /** - * The name of the IMAP server. - * - * @var string - */ - var $_imap_server; - - /** - * The IMAP port of the server. - * - * @var int - */ - var $_imap_port; - - /** - * Primary user mail address. - * - * @var string - */ - var $user_mail; - - /** - * Our Kolab_IMAP object, used to communicate with the IMAP server. - * - * @var Kolab_IMAP - */ - var $_imap; - - /** - * Constructor. - */ - function Kolab_Session() - { - global $conf; - - $user = $this->_fetchUser(); - if (!is_a($user, 'PEAR_Error')) { - $result = $user->get(KOLAB_ATTR_MAIL); - if (!empty($result) && !is_a($result, 'PEAR_Error')) { - $this->user_mail = $result; - } - - if (!empty($conf['kolab']['misc']['multidomain'])) { - $result = $user->getServer('imap'); - if (!empty($result) && !is_a($result, 'PEAR_Error')) { - $server = explode(':', $result, 2); - if (!empty($server[0])) { - $this->_imap_server = $server[0]; - } - if (!empty($server[1])) { - $this->_imap_port = $server[1]; - } - } - } - } - - if (!isset($this->_imap_server) - && isset($conf['kolab']['imap']['server'])) { - $this->_imap_server = $conf['kolab']['imap']['server']; - } - - if (!isset($this->_imap_port) - && isset($conf['kolab']['imap']['port'])) { - $this->_imap_port = $conf['kolab']['imap']['port']; - } else { - $this->_imap_port = 143; - } - - if (!isset($this->user_mail)) { - $auth = Auth::getAuth(); - if (empty($auth)) { - $auth = 'anonymous'; - } - if (strpos($auth, '@')) { - $this->user_mail = $auth; - } else { - $this->user_mail = $auth . '@' . (!empty($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'localhost'); - } - } - } - - /** - * 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; - } - - /** - * Fetch the Kolab_Object representing the current user. - * - * @return Kolab_Object_user|PEAR_Error The object representing - * the current user. - */ - function _fetchUser() - { - $user = Auth::getAuth(); - if (empty($user)) { - return PEAR::raiseError(_('Anonymous user.')); - } - - /** We need the Kolab Server access. */ - require_once 'Horde/Kolab/Server.php'; - $server = Horde_Kolab_Server::singleton(); - if (is_a($server, 'PEAR_Error')) { - return $server; - } - - $dn = $server->dnForUidOrMail($user); - if (empty($dn)) { - return PEAR::raiseError(_('No such user.')); - } - if (is_a($dn, 'PEAR_Error')) { - return $dn; - } - - $user = $server->fetch($dn); - if (is_a($user, 'PEAR_Error')) { - return $user; - } - - global $conf; - - if (empty($conf['kolab']['misc']['allow_special']) - && !is_a($user, 'Horde_Kolab_Server_Object_user')) { - return PEAR::raiseError(_('Current user is not a standard Kolab user.')); - } - return $user; - } - - /** - * Returns the current IMAP connection. - * - * @return Kolab_IMAP|PEAR_Error An open IMAP connection. - */ - function &getImap() - { - if (isset($this->_imap)) { - return $this->_imap; - } - - if (!isset($this->_imap_server)) { - $this->_imap = PEAR::raiseError(_("The URL for the Kolab IMAP Server is not available!")); - return $this->_imap; - } - - /** We need the Kolab IMAP library now. */ - require_once 'Horde/Kolab/Storage/IMAP.php'; - - $this->_imap = &Kolab_IMAP::singleton($this->_imap_server, $this->_imap_port, - true, false); - if (is_a($this->_imap, 'PEAR_Error')) { - return $this->_imap; - } - $result = $this->_imap->connect(Auth::getAuth(), - Auth::getCredential('password')); - if (is_a($result, 'PEAR_Error')) { - $this->_imap = &$result; - return $result; - } - - return $this->_imap; - } - - /** - * Attempts to return a reference to a concrete Kolab_Session instance. - * - * It will only create a new instance if no Kolab_Session instance - * currently exists. - * - * This method must be invoked as: - * $var = &Kolab_Session::singleton(); - * - * @static - * - * @return Kolab_Session The concrete Session reference. - */ - function &singleton() - { - static $session; - - if (!isset($session)) { - /** - * Horde_Kolab_Server currently has no caching so we mainly - * cache some user information here as reading this data - * may be expensive when running in a multi-host - * environment. - */ - require_once 'Horde/SessionObjects.php'; - $hs = &Horde_SessionObjects::singleton(); - $session = $hs->query('kolab_session'); - } - - if (empty($session)) { - $session = new Kolab_Session(); - } - - register_shutdown_function(array(&$session, 'shutdown')); - - return $session; - } - - /** - * Stores the object in the session cache. - */ - function shutdown() - { - require_once 'Horde/SessionObjects.php'; - $session = &Horde_SessionObjects::singleton(); - $session->overwrite('kolab_session', $this, false); - } -} -- tg: (049b435..) t/framework/HK/GW/framework/Kolab/MoveSessionHandler (depends on: t/framework/HK/GW/Auth/UseSession t/kronolith/HK/GW/getFreebusyServer t/framework/HK/GW/Kolab_Storage/Trigger) -- TOPGIT patch commit log ======================= commit 9bc50d7cb446fd82cf2416781d10d4952acf83d5 Author: Gunnar Wrobel

    Date: Fri Jan 30 21:39:39 2009 +0000 Added dependency on t/framework/HK/GW/Kolab_Storage/Trigger. commit c7d3f02e77aa7e3899b828acf8041e38309ddf7d Author: Gunnar Wrobel

    Date: Fri Jan 30 21:38:03 2009 +0000 New TopGit dependency: t/framework/HK/GW/Kolab_Storage/Trigger commit fd2f1ee045e95340f5880c1fc8bed3dc2743cb43 Author: Gunnar Wrobel

    Date: Fri Jan 30 20:42:51 2009 +0000 Added patch release/HK-GW-Kolab-Move_Session_handler.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_framework_Kolab__Format_WS.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/framework/Kolab_Format/WS Whitespace. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Kolab/Format/XML.php | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/horde-webmail/lib/Horde/Kolab/Format/XML.php b/horde-webmail/lib/Horde/Kolab/Format/XML.php index d3d7def..e66d49e 100644 --- a/horde-webmail/lib/Horde/Kolab/Format/XML.php +++ b/horde-webmail/lib/Horde/Kolab/Format/XML.php @@ -982,7 +982,7 @@ class Horde_Kolab_Format_XML $cManager = null; $horde_categories = null; } - + $kolab_categories = explode (',', $object['categories']); $primary_category = ''; -- tg: (6938161..) t/framework/HK/GW/framework/Kolab_Format/WS (depends on: master) -- TOPGIT patch commit log ======================= commit 83ea6082e87acd8fc235100a90f32937e94c152e Author: Gunnar Wrobel

    Date: Fri Jan 30 20:35:02 2009 +0000 Added patch release/HK-GW-Kolab_Format-WS.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_horde_conf__xmlUpdates.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/horde/conf_xmlUpdates Adapt the Kolab configuration to recent changes in the Kolab modules. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/config/conf.xml | 21 +++++++++++++++------ 1 files changed, 15 insertions(+), 6 deletions(-) diff --git a/horde-webmail/config/conf.xml b/horde-webmail/config/conf.xml index 34a340c..f9f44cd 100644 --- a/horde-webmail/config/conf.xml +++ b/horde-webmail/config/conf.xml @@ -1803,8 +1803,8 @@ 2000 example.com - true + true Kolab SMTP Server Settings @@ -1812,10 +1812,19 @@ address:">localhost 25 - Kolab Misc - - false + Kolab Free/Busy Application Settings + + + Enter the leading part of the URL to the Kolab Free/Busy + application here. This will usually be + "https://localhost/freebusy" but if you installed it so that + you reach the application at "https://freebusy.example.org" + then you would enter "https://freebusy.example.org". The URL + "https://freebusy.example.org/freebusy" would thus need the + setting "https://freebusy.example.org/freebusy". + + https://localhost/freebusy -- tg: (6938161..) t/framework/HK/GW/horde/conf_xmlUpdates (depends on: master) -- TOPGIT patch commit log ======================= commit 1feb7eb8d50a04ed097834f1d46fc4ba4f170e58 Author: Gunnar Wrobel

    Date: Fri Jan 30 21:47:20 2009 +0000 Added patch horde/HK-GW-conf_xml_kolab.patch from the mercurial release queue. --- NEW FILE: t_framework_HK_GW_iCalendar_QuotedParameters.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/framework/HK/GW/iCalendar/QuotedParameters Fix handling of quoting in the iCalendar library. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/iCalendar.php | 30 ++++++++++++++++++++++++++++-- 1 files changed, 28 insertions(+), 2 deletions(-) diff --git a/horde-webmail/lib/Horde/iCalendar.php b/horde-webmail/lib/Horde/iCalendar.php index decf66a..2a2db6a 100644 --- a/horde-webmail/lib/Horde/iCalendar.php +++ b/horde-webmail/lib/Horde/iCalendar.php @@ -604,9 +604,12 @@ class Horde_iCalendar { // Parse parameters. if (!empty($parts[2])) { - preg_match_all('/;(([^;=]*)(=([^;]*))?)/', $parts[2], $param_parts); + preg_match_all('/;(([^;=]*)(=("[^"]*"|[^;]*))?)/', $parts[2], $param_parts); foreach ($param_parts[2] as $key => $paramName) { $paramValue = $param_parts[4][$key]; + if (preg_match('/"([^"]*)"/', $paramValue, $parts)) { + $paramValue = $parts[1]; + } $params[String::upper($paramName)] = $paramValue; } } @@ -832,7 +835,30 @@ class Horde_iCalendar { if ($param_value === null) { $params_str .= ";$param_name"; } else { - $params_str .= ";$param_name=$param_value"; + $len = strlen($param_value); + $safe_value = ''; + $quote = false; + for ($i = 0; $i < $len; ++$i) { + $ord = ord($param_value[$i]); + // Accept only valid characters. + if ($ord == 9 || $ord == 32 || $ord == 33 || + ($ord >= 35 && $ord <= 126) || + $ord >= 128) { + $safe_value .= $param_value[$i]; + /** + * Characters above 128 do not need to be quoted + * as per RFC2445 but Outlook requires this. + */ + if ($ord == 44 || $ord == 58 || $ord == 59 || + $ord >= 128) { + $quote = true; + } + } + } + if ($quote) { + $safe_value = '"' . $safe_value . '"'; + } + $params_str .= ";$param_name=$safe_value"; } } } -- tg: (af8ebe5..) t/framework/HK/GW/iCalendar/QuotedParameters (depends on: t/framework/HK/GW/Kolab_Storage/ShareIdFix) -- TOPGIT patch commit log ======================= commit 71f301253fbb754496093d6e6905a395a228c494 Author: Gunnar Wrobel

    Date: Sun Feb 1 17:45:38 2009 +0000 Added patch release/HK-GW-iCalendar-Quoted_parameters.patch from the mercurial release queue. --- NEW FILE: t_horde_SC_CH_SecIssues20090128.diff --- From: Gunnar Wrobel

    Subject: [PATCH] t/horde/SC/CH/SecIssues20090128 Security issues that were patched on 20090128. Signed-off-by: Gunnar Wrobel

    --- horde-webmail/lib/Horde/Image.php | 1 + horde-webmail/services/portal/cloud_search.php | 2 +- 2 files changed, 2 insertions(+), 1 deletions(-) diff --git a/horde-webmail/lib/Horde/Image.php b/horde-webmail/lib/Horde/Image.php index 2d48777..1288ef5 100644 --- a/horde-webmail/lib/Horde/Image.php +++ b/horde-webmail/lib/Horde/Image.php @@ -551,6 +551,7 @@ class Horde_Image { list($app, $driver) = $driver; } + $driver = basename($driver); $class = 'Horde_Image_' . $driver; if (!class_exists($class)) { if (!empty($app)) { diff --git a/horde-webmail/services/portal/cloud_search.php b/horde-webmail/services/portal/cloud_search.php index 0d0bc53..7e22aa6 100644 --- a/horde-webmail/services/portal/cloud_search.php +++ b/horde-webmail/services/portal/cloud_search.php @@ -28,7 +28,7 @@ $results = $registry->call('images/searchTags', array(array($tag))); $results = array_merge($results, $registry->call('news/searchTags', array(array($tag)))); echo '

    ' - . sprintf(_("Results for %s"), '' . $tag . '') + . sprintf(_("Results for %s"), '' . htmlspecialchars($tag) . '') . '' . Horde::link('#', '', '', '', '$(\'cloudsearch\').hide();', '', '', array('style' => 'font-size:75%;')) . '(' . _("Hide Results") . ')
      '; -- tg: (6938161..) t/horde/SC/CH/SecIssues20090128 (depends on: master) -- TOPGIT patch commit log ======================= commit 360162337f2e7e5e65a6e19d46a0fbb7a0a091c0 Author: Gunnar Wrobel

      Date: Fri Feb 6 06:57:28 2009 +0000 Security fixes from 20090128. --- NEW FILE: t_imp_HK_GW_AuthForInvitations.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/imp/HK/GW/AuthForInvitations Correctly authenticate to the SMTP server when responding to invitations. FIXME: I believe this was solved with slight modifications upstream. Adapt this patch. Signed-off-by: Gunnar Wrobel

      --- horde-webmail/imp/lib/MIME/Viewer/itip.php | 29 ++++++++++++++++++++++++++- 1 files changed, 27 insertions(+), 2 deletions(-) diff --git a/horde-webmail/imp/lib/MIME/Viewer/itip.php b/horde-webmail/imp/lib/MIME/Viewer/itip.php index 1f8fe1e..4f6beab 100644 --- a/horde-webmail/imp/lib/MIME/Viewer/itip.php +++ b/horde-webmail/imp/lib/MIME/Viewer/itip.php @@ -87,6 +87,29 @@ class IMP_MIME_Viewer_itip extends MIME_Viewer { // Get the iCalendar file components. $components = $vCal->getComponents(); + $mailer_driver = $GLOBALS['conf']['mailer']['type']; + $mailer_params = $GLOBALS['conf']['mailer']['params']; + + /* Force the SMTP host and port value to the current SMTP server if + * one has been selected for this connection. */ + if (!empty($_SESSION['imp']['smtphost'])) { + $mailer_params['host'] = $_SESSION['imp']['smtphost']; + } + if (!empty($_SESSION['imp']['smtpport'])) { + $mailer_params['port'] = $_SESSION['imp']['smtpport']; + } + + /* If SMTP authentication has been requested, use either the username + * and password provided in the configuration or populate the username + * and password fields based on the current values for the user. Note + * that we assume that the username and password values from the + * current IMAP / POP3 connection are valid for SMTP authentication as + * well. */ + if (!empty($mailer_params['auth']) && empty($mailer_params['username'])) { + $mailer_params['username'] = $_SESSION['imp']['user']; + $mailer_params['password'] = Secret::read(Secret::getKey('imp'), $_SESSION['imp']['pass']); + } + // Handle the action requests. $actions = Util::getFormData('action', array()); foreach ($actions as $key => $action) { @@ -332,7 +355,8 @@ class IMP_MIME_Viewer_itip extends MIME_Viewer { $msg_headers->addMIMEHeaders($mime); // Send the reply. - $status = $mime->send($organizerEmail, $msg_headers); + $status = $mime->send($organizerEmail, $msg_headers, + $mailer_driver, $mailer_params); if (is_a($status, 'PEAR_Error')) { $this->_msgs[$key][] = array('error', sprintf(_("Error sending reply: %s."), $status->getMessage())); } else { @@ -435,7 +459,8 @@ class IMP_MIME_Viewer_itip extends MIME_Viewer { $msg_headers->addMIMEHeaders($mime); // Send the reply. - $status = $mime->send($organizerEmail, $msg_headers); + $status = $mime->send($organizerEmail, $msg_headers, + $mailer_driver, $mailer_params); if (is_a($status, 'PEAR_Error')) { $this->_msgs[$key][] = array('error', sprintf(_("Error sending reply: %s."), $status->getMessage())); } else { -- tg: (066c7a2..) t/imp/HK/GW/AuthForInvitations (depends on: t/Kolab_Server/HK/GW/UserMailAndFullname) -- TOPGIT patch commit log ======================= commit 7bddd3610cfadd4c16b624018d6ccd77e3e908b5 Author: Gunnar Wrobel

      Date: Sun Feb 1 18:09:57 2009 +0000 Added patch release/HK-GW-Auth_for_invitations.patch from the mercurial release queue. --- NEW FILE: t_imp_H_GW_DefaultLoginView.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/imp/H/GW/DefaultLoginView Allow to configure the default imp view shown to the user. STATUS: SUBMIT Signed-off-by: Gunnar Wrobel

      --- horde-webmail/imp/config/conf.php | 1 + horde-webmail/imp/config/conf.xml | 8 ++++++++ horde-webmail/imp/login.php | 3 ++- 3 files changed, 11 insertions(+), 1 deletions(-) diff --git a/horde-webmail/imp/config/conf.php b/horde-webmail/imp/config/conf.php index 3a0f1d6..6cea64b 100644 --- a/horde-webmail/imp/config/conf.php +++ b/horde-webmail/imp/config/conf.php @@ -13,6 +13,7 @@ $conf['user']['allow_resume_all'] = false; $conf['user']['allow_view_source'] = true; $conf['user']['alternate_login'] = false; $conf['user']['redirect_on_logout'] = false; +$conf['user']['default_view'] = 'imp'; $conf['user']['select_view'] = true; $conf['server']['change_server'] = false; $conf['server']['change_port'] = false; diff --git a/horde-webmail/imp/config/conf.xml b/horde-webmail/imp/config/conf.xml index 517556e..92171b7 100644 --- a/horde-webmail/imp/config/conf.xml +++ b/horde-webmail/imp/config/conf.xml @@ -103,6 +103,14 @@ + imp + + imp + dimp + mimp + + diff --git a/horde-webmail/imp/login.php b/horde-webmail/imp/login.php index e6cd3c9..4644e93 100644 --- a/horde-webmail/imp/login.php +++ b/horde-webmail/imp/login.php @@ -257,7 +257,8 @@ if (!empty($conf['user']['select_view'])) { $apps = $registry->listApps(null, true); $view_cookie = isset($_COOKIE['default_imp_view']) ? $_COOKIE['default_imp_view'] - : ($browser->isMobile() && isset($apps['mimp']) ? 'mimp' : 'imp'); + : ($browser->isMobile() && isset($apps['mimp']) ? 'mimp' + : isset($conf['user']['default_view']) ? $conf['user']['default_view'] : 'imp'); if (isset($apps['dimp']) || isset($apps['mimp'])) { $views[] = array('sel' => $view_cookie == 'imp', 'val' => 'imp', 'name' => _("Traditional")); -- tg: (3a70f58..) t/imp/H/GW/DefaultLoginView (depends on: t/imp/H/JS/bug7739) -- TOPGIT patch commit log ======================= commit e2430d5bafced289bb0b8ac9d073fca9a4e9bb4a Author: Gunnar Wrobel

      Date: Sun Mar 8 20:09:33 2009 +0000 Add the conf.xml part of the new configuration variable. commit df4a014051b707ab4bf5ded96264c3b4f3b62ac4 Author: Gunnar Wrobel

      Date: Sun Mar 8 08:14:20 2009 +0000 Allow to configure the default view for imp. --- NEW FILE: t_imp_H_GW_LoginRetries.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/imp/H/GW/LoginRetries Fix the number of retries the c-client libraries uses when connecting to the IMAP server. Signed-off-by: Gunnar Wrobel

      --- horde-webmail/imp/config/servers.php | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/horde-webmail/imp/config/servers.php b/horde-webmail/imp/config/servers.php index 1c6e537..d050122 100644 --- a/horde-webmail/imp/config/servers.php +++ b/horde-webmail/imp/config/servers.php @@ -264,7 +264,7 @@ if ($GLOBALS['conf']['kolab']['enabled']) { $imapParams = array( 'hostspec' => $server, 'port' => $GLOBALS['conf']['kolab']['imap']['port'], - 'protocol' => $GLOBALS['conf']['auth']['params']['protocol'] + 'protocol' => 'imap/novalidate-cert', ); } @@ -284,5 +284,6 @@ if ($GLOBALS['conf']['kolab']['enabled']) { 'acl' => array( 'driver' => 'rfc2086', ), + 'login_tries' => 1, ); } -- tg: (4f99941..) t/imp/H/GW/LoginRetries (depends on: t/imp/H/GW/DefaultLoginView) -- TOPGIT patch commit log ======================= commit 7540b6dc7fee180870333d1cbd8e2a173bdae751 Author: Gunnar Wrobel

      Date: Sun Mar 8 20:27:01 2009 +0000 Fix the number of login retries. --- NEW FILE: t_imp_H_JS_bug7739.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/imp/H/JS/bug7739 [#7739] Folders tree not updated after an add (new) folder action http://bugs.horde.org/ticket/7739 STATUS: MERGED Signed-off-by: Gunnar Wrobel

      --- horde-webmail/imp/lib/IMAP/Tree.php | 9 ++++++++- horde-webmail/imp/lib/Search.php | 17 +++++++++++------ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/horde-webmail/imp/lib/IMAP/Tree.php b/horde-webmail/imp/lib/IMAP/Tree.php index e249c1c..1fb857c 100644 --- a/horde-webmail/imp/lib/IMAP/Tree.php +++ b/horde-webmail/imp/lib/IMAP/Tree.php @@ -1584,7 +1584,14 @@ class IMP_Tree { } foreach (array_keys($id) as $key) { - $adds[] = IMPTREE_VFOLDER_KEY . $this->_delimiter . $key; + $id_key = IMPTREE_VFOLDER_KEY . $this->_delimiter . $key; + if (!isset($this->_tree[$id_key])) { + $adds[] = $id_key; + } + } + + if (empty($adds)) { + return; } $this->insert($adds); diff --git a/horde-webmail/imp/lib/Search.php b/horde-webmail/imp/lib/Search.php index ddb86e5..f14a8e4 100644 --- a/horde-webmail/imp/lib/Search.php +++ b/horde-webmail/imp/lib/Search.php @@ -204,12 +204,15 @@ class IMP_Search { /** * Deletes an IMAP search query. * - * @param string $id The search query id to use (by default, will use - * the current ID set in the object). + * @param string $id The search query id to use (by default, will + * use the current ID set in the object). + * @param boolean $no_delete Don't delete the entry in the tree object. + * + * * * @return string Returns the search query id. */ - function deleteSearchQuery($id = null) + function deleteSearchQuery($id = null, $no_delete = false) { $id = $this->_strip($id); $is_vfolder = !empty($_SESSION['imp']['search']['q'][$id]['vfolder']); @@ -219,7 +222,9 @@ class IMP_Search { $vfolders = $this->_getVFolderList(); unset($vfolders[$id]); $this->_saveVFolderList($vfolders); - $this->_updateIMPTree('delete', $id); + if (!$no_delete) { + $this->_updateIMPTree('delete', $id); + } } } @@ -355,7 +360,7 @@ class IMP_Search { /* Delete the current Virtual Trash folder, if it exists. */ $vtrash_id = $GLOBALS['prefs']->getValue('vtrash_id'); if (!empty($vtrash_id)) { - $this->deleteSearchQuery($vtrash_id); + $this->deleteSearchQuery($vtrash_id, true); } if (!$GLOBALS['prefs']->getValue('use_vtrash')) { @@ -418,7 +423,7 @@ class IMP_Search { /* Delete the current Virtual Inbox folder, if it exists. */ $vinbox_id = $GLOBALS['prefs']->getValue('vinbox_id'); if (!empty($vinbox_id)) { - $this->deleteSearchQuery($vinbox_id); + $this->deleteSearchQuery($vinbox_id, true); } if (!$GLOBALS['prefs']->getValue('use_vinbox')) { -- tg: (38b4949..) t/imp/H/JS/bug7739 (depends on: t/imp/H/MS/bug7438) -- TOPGIT patch commit log ======================= commit 1a74763ee823d7cc74b9b2f8585bcd71963c805e Author: Gunnar Wrobel

      Date: Sun Mar 8 07:56:27 2009 +0000 Merged [#7739] Folders tree not updated after an add (new) folder action. --- NEW FILE: t_imp_H_MS_bug7438.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/imp/H/MS/bug7438 [#7438] Failed login not passed back to login screen http://bugs.horde.org/ticket/7438 STATUS: MERGED Signed-off-by: Gunnar Wrobel

      --- horde-webmail/imp/lib/Auth/imp.php | 2 +- horde-webmail/imp/redirect.php | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/horde-webmail/imp/lib/Auth/imp.php b/horde-webmail/imp/lib/Auth/imp.php index c94b0b1..6b55015 100644 --- a/horde-webmail/imp/lib/Auth/imp.php +++ b/horde-webmail/imp/lib/Auth/imp.php @@ -142,7 +142,7 @@ class Auth_imp extends Auth { if (isset($prefs)) { $prefs->cleanup(true); } - $this->_setAuthError(AUTH_REASON_FAILED); + $this->_setAuthError(AUTH_REASON_BADLOGIN); return false; } diff --git a/horde-webmail/imp/redirect.php b/horde-webmail/imp/redirect.php index 7e5c045..e2f0daa 100644 --- a/horde-webmail/imp/redirect.php +++ b/horde-webmail/imp/redirect.php @@ -237,12 +237,10 @@ if (($imapuser !== null) && ($pass !== null)) { IMP_Session::loginTasks(); - $url = _newSessionUrl($actionID, $isLogin, $view); - } else { - $url = Auth::addLogoutParameters(IMP::logoutUrl()); + _redirect(_framesetUrl(_newSessionUrl($actionID, $isLogin, $view))); } - _redirect(_framesetUrl($url)); + _redirect(Auth::addLogoutParameters(IMP::logoutUrl())); } /* No session, and no login attempt. Just go to the login page. */ -- tg: (461f8df..) t/imp/H/MS/bug7438 (depends on: t/COPYRIGHT3) -- TOPGIT patch commit log ======================= commit 38b4949c93b00cae793ace9ae861ade22e0bb3c1 Author: Gunnar Wrobel

      Date: Sun Mar 8 22:57:16 2009 +0000 Removed stray patch file. commit 42660a8ab771c9f54731f24022409089aef6a09f Author: Gunnar Wrobel

      Date: Sun Mar 8 20:02:39 2009 +0000 Fix base patch. commit 0ae1d51e9802057c3aa2805a4088fe1eb6df8a53 Author: Gunnar Wrobel

      Date: Sun Mar 8 07:23:20 2009 +0000 Fix [#7438] Failed login not passed back to login screen --- NEW FILE: t_imp_HideGroupwareFolders.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/imp/HideGroupwareFolders Hides special Kolab groupware folders. Signed-off-by: Gunnar Wrobel

      --- horde-webmail/imp/config/conf.xml | 4 +++ horde-webmail/imp/config/hooks.php.dist | 11 +++++++- horde-webmail/imp/lib/IMAP/Tree.php | 40 ++++++++++++++++++++++++++++-- 3 files changed, 50 insertions(+), 5 deletions(-) diff --git a/horde-webmail/imp/config/conf.xml b/horde-webmail/imp/config/conf.xml index 9be5108..517556e 100644 --- a/horde-webmail/imp/config/conf.xml +++ b/horde-webmail/imp/config/conf.xml @@ -445,6 +445,10 @@ a custom function to provide additional information/custom formatting of messages in the mailbox message list? If so, make sure you define _imp_hook_msglist_format() in hooks.php.">false + false diff --git a/horde-webmail/imp/config/hooks.php.dist b/horde-webmail/imp/config/hooks.php.dist index 98e429e..f690ef5 100644 --- a/horde-webmail/imp/config/hooks.php.dist +++ b/horde-webmail/imp/config/hooks.php.dist @@ -426,7 +426,7 @@ if (!empty($GLOBALS['conf']['kolab']['enabled'])) { case 'contact': return $GLOBALS['registry']->get('webroot', 'turba'); - case 'prefs': + case 'h-prefs': return $GLOBALS['registry']->get('webroot', 'horde') . '/services/prefs.php?app=horde'; default: @@ -480,7 +480,7 @@ if (!empty($GLOBALS['conf']['kolab']['enabled'])) { ); break; - case 'prefs': + case 'h-prefs': $icons[$name] = array( 'icon' => 'prefs.png', 'icondir' => $GLOBALS['registry']->getImageDir('horde'), @@ -493,6 +493,13 @@ if (!empty($GLOBALS['conf']['kolab']['enabled'])) { return $icons; } } + if (!function_exists('_imp_hook_display_folder')) { + function _imp_hook_display_folder($mailbox) + { + $type = Kolab::getMailboxType($mailbox); + return empty($type) || $type == 'mail'; + } + } } // Sample function for returning the quota. Uses the PECL ssh2 diff --git a/horde-webmail/imp/lib/IMAP/Tree.php b/horde-webmail/imp/lib/IMAP/Tree.php index ce69fe8..e249c1c 100644 --- a/horde-webmail/imp/lib/IMAP/Tree.php +++ b/horde-webmail/imp/lib/IMAP/Tree.php @@ -32,6 +32,7 @@ define('IMPTREE_ELT_IS_POLLED', 32); define('IMPTREE_ELT_NEED_SORT', 64); define('IMPTREE_ELT_VFOLDER', 128); define('IMPTREE_ELT_NONIMAP', 256); +define('IMPTREE_ELT_INVISIBLE', 512); /* The isOpen() expanded mode constants. */ define('IMPTREE_OPEN_NONE', 0); @@ -395,6 +396,13 @@ class IMP_Tree { /* Convert 'INBOX' to localized name. */ $elt['l'] = ($elt['v'] == 'INBOX') ? _("Inbox") : String::convertCharset($tmp[$elt['c']], 'UTF7-IMAP'); + if (!empty($GLOBALS['conf']['hooks']['display_folder'])) { + if (!Horde::callHook('_imp_hook_display_folder', array($elt['v']), + 'imp')) { + $this->_setInvisible($elt, true); + } + } + if ($_SESSION['imp']['base_protocol'] != 'pop3') { if ($elt['c'] != 0) { $elt['p'] = implode(is_null($ns_info) ? $this->_delimiter : $ns_info['delimiter'], array_slice($tmp, 0, $elt['c'])); @@ -1274,6 +1282,31 @@ class IMP_Tree { } /** + * Set the invisible attribute for an element. + * + * @access private + * + * @param array &$elt A tree element. + * @param boolean $bool The setting. + */ + function _setInvisible(&$elt, $bool) + { + $this->_setAttribute($elt, IMPTREE_ELT_INVISIBLE, $bool); + } + + /** + * Is the element invisible? + * + * @param array $elt A tree element. + * + * @return integer True if the element is invisible. + */ + function isInvisible($elt) + { + return $elt['a'] & IMPTREE_ELT_INVISIBLE; + } + + /** * Flag the element as needing its children to be sorted. * * @access private @@ -1441,9 +1474,10 @@ class IMP_Tree { */ function _activeElt($elt) { - return ($this->_showunsub || - ($this->isSubscribed($elt) && !$this->isContainer($elt)) || - $this->hasChildren($elt)); + return (!$this->isInvisible($elt) && + ($this->_showunsub || + ($this->isSubscribed($elt) && !$this->isContainer($elt)) || + $this->hasChildren($elt))); } /** -- tg: (6938161..) t/imp/HideGroupwareFolders (depends on: master) -- TOPGIT patch commit log ======================= commit 1614756bd145f6c129efc989a7b52e8a3e5e3e61 Author: Gunnar Wrobel

      Date: Thu Feb 5 22:07:03 2009 +0000 Added patch imp/HK-MP-Hide_groupware_folders.patch from the mercurial patch queue. --- NEW FILE: t_imp_SC_CH_SecIssues20090128.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/imp/SC/CH/SecIssues20090128 Security issues patched on 20090128 Signed-off-by: Gunnar Wrobel

      --- horde-webmail/imp/message.php | 10 +++++----- horde-webmail/imp/pgp.php | 4 ++-- horde-webmail/imp/smime.php | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/horde-webmail/imp/message.php b/horde-webmail/imp/message.php index c822e0b..0488af7 100644 --- a/horde-webmail/imp/message.php +++ b/horde-webmail/imp/message.php @@ -444,7 +444,7 @@ if (!$printer_friendly && !empty($conf['maillog']['use_maillog'])) { /* Do MDN processing now. */ if ($imp_ui->MDNCheck($ob->header, Util::getFormData('mdn_confirm'))) { - $confirm_link = Horde::link(Util::addParameter($selfURL, 'mdn_confirm', 1)) . _("HERE") . ''; + $confirm_link = Horde::link(htmlspecialchars(Util::addParameter($selfURL, 'mdn_confirm', 1))) . _("HERE") . ''; $notification->push(sprintf(_("The sender of this message is requesting a Message Disposition Notification from you when you have read this message. Please click %s to send the notification message."), $confirm_link), 'horde.message', array('content.raw')); } } @@ -617,13 +617,13 @@ if (!$printer_friendly) { $a_template->set('headers', Horde::widget('#', _("Headers"), 'widget hasmenu', '', '', _("Headers"), true)); if ($all_headers || $list_headers) { - $a_template->set('common_headers', Horde::widget($headersURL, _("Show Common Headers"), 'widget', '', '', _("Show Common Headers"), true)); + $a_template->set('common_headers', Horde::widget(htmlspecialchars($headersURL), _("Show Common Headers"), 'widget', '', '', _("Show Common Headers"), true)); } if (!$all_headers) { - $a_template->set('all_headers', Horde::widget(Util::addParameter($headersURL, 'show_all_headers', 1), _("Show All Headers"), 'widget', '', '', _("Show All Headers"), true)); + $a_template->set('all_headers', Horde::widget(htmlspecialchars(Util::addParameter($headersURL, 'show_all_headers', 1)), _("Show All Headers"), 'widget', '', '', _("Show All Headers"), true)); } if ($list_info['exists'] && !$list_headers) { - $a_template->set('list_headers', Horde::widget(Util::addParameter($headersURL, 'show_list_headers', 1), _("Show Mailing List Information"), 'widget', '', '', _("Show Mailing List Information"), true)); + $a_template->set('list_headers', Horde::widget(htmlspecialchars(Util::addParameter($headersURL, 'show_list_headers', 1)), _("Show Mailing List Information"), 'widget', '', '', _("Show Mailing List Information"), true)); } echo $a_template->fetch(IMP_TEMPLATES . '/message/navbar_actions.html'); @@ -681,7 +681,7 @@ if ($show_parts || ($downloadall_link && !$printer_friendly)) { $url = Horde::selfUrl(true); $url = Util::removeParameter($url, array('actionID')); $url = Util::addParameter($url, array('actionID' => 'strip_all', 'message_token' => $message_token)); - $val .= '
      ' . Horde::link($url, _("Strip All Attachments"), null, null, "return window.confirm('" . addslashes(_("Are you sure you wish to PERMANENTLY delete all attachments?")) . "');") . _("Strip All Attachments") . ' ' . Horde::img('delete.png', _("Strip Attachments"), null, $registry->getImageDir('horde')) . ''; + $val .= '
      ' . Horde::link(htmlspecialchars($url), _("Strip All Attachments"), null, null, "return window.confirm('" . addslashes(_("Are you sure you wish to PERMANENTLY delete all attachments?")) . "');") . _("Strip All Attachments") . ' ' . Horde::img('delete.png', _("Strip Attachments"), null, $registry->getImageDir('horde')) . ''; } } $hdrs[] = array('name' => _("Part(s)"), 'val' => $val, 'i' => (++$i % 2)); diff --git a/horde-webmail/imp/pgp.php b/horde-webmail/imp/pgp.php index 35c733c..e88e910 100644 --- a/horde-webmail/imp/pgp.php +++ b/horde-webmail/imp/pgp.php @@ -40,7 +40,7 @@ function _outputPassphraseDialog($secure_check, $symmetric = false) $t->set('symmetric', $symmetric); $t->set('submit_url', Util::addParameter(Horde::applicationUrl('pgp.php'), 'actionID', $symmetric ? 'process_symmetric_passphrase_dialog' : 'process_passphrase_dialog')); $t->set('reload', htmlspecialchars(Util::getFormData('reload'))); - $t->set('action', Util::getFormData('passphrase_action')); + $t->set('action', htmlspecialchars(Util::getFormData('passphrase_action'))); $t->set('locked_img', Horde::img('locked.png', _("PGP"), null, $GLOBALS['registry']->getImageDir('horde'))); echo $t->fetch(IMP_TEMPLATES . '/pgp/passphrase.html'); } @@ -66,7 +66,7 @@ function _importKeyDialog($target) function _reloadWindow() { - Util::closeWindowJS('opener.focus();opener.location.href="' . Util::getFormData('reload') . '";'); + Util::closeWindowJS('opener.focus();opener.location.href="' . htmlspecialchars(Util::getFormData('reload')) . '";'); } function _getImportKey() diff --git a/horde-webmail/imp/smime.php b/horde-webmail/imp/smime.php index 6ba24c6..d05c454 100644 --- a/horde-webmail/imp/smime.php +++ b/horde-webmail/imp/smime.php @@ -63,7 +63,7 @@ function _outputPassphraseDialog($secure_check) $t->setOption('gettext', true); $t->set('submit_url', Util::addParameter(Horde::applicationUrl('smime.php'), 'actionID', 'process_passphrase_dialog')); $t->set('reload', htmlspecialchars(html_entity_decode(Util::getFormData('reload')))); - $t->set('action', Util::getFormData('passphrase_action')); + $t->set('action', htmlspecialchars(Util::getFormData('passphrase_action'))); $t->set('locked_img', Horde::img('locked.png', _("S/MIME"), null, $GLOBALS['registry']->getImageDir('horde'))); echo $t->fetch(IMP_TEMPLATES . '/smime/passphrase.html'); } @@ -79,7 +79,7 @@ function _actionWindow() function _reloadWindow() { - Util::closeWindowJS('opener.focus();opener.location.href="' . Util::getFormData('reload') . '";'); + Util::closeWindowJS('opener.focus();opener.location.href="' . htmlspecialchars(Util::getFormData('reload')) . '";'); } function _textWindowOutput($filename, $msg, $html = false) -- tg: (6938161..) t/imp/SC/CH/SecIssues20090128 (depends on: master) -- TOPGIT patch commit log ======================= commit a6149778434f9d0c94bd4bbf2b7b8cb15ed8135e Author: Gunnar Wrobel

      Date: Fri Feb 6 06:39:50 2009 +0000 Security fixes from 20090128. --- NEW FILE: t_kronolith_HK_GW_AuthenticatedFreeBusy.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/kronolith/HK/GW/AuthenticatedFreeBusy Allow the use of authenticated Free/Busy with Kolab. FIXME: Check if that has been commited/submitted upstream. Signed-off-by: Gunnar Wrobel

      --- horde-webmail/kronolith/config/conf.xml | 6 ++++++ horde-webmail/kronolith/lib/FreeBusy.php | 3 +++ 2 files changed, 9 insertions(+), 0 deletions(-) diff --git a/horde-webmail/kronolith/config/conf.xml b/horde-webmail/kronolith/config/conf.xml index aa72858..0ed2387 100644 --- a/horde-webmail/kronolith/config/conf.xml +++ b/horde-webmail/kronolith/config/conf.xml @@ -49,6 +49,12 @@ + + Use authenticated free/busy + true + + Metadata Settings Date: Sun Feb 1 18:19:43 2009 +0000 Remove stuff from broken patching. commit ebb26e5d1fbfae64d93da8fc83c82589a82812f2 Author: Gunnar Wrobel

      Date: Sun Feb 1 18:18:21 2009 +0000 Added patch kronolith/HK-GW-Authenticated_FB.patch from the mercurial release queue. --- NEW FILE: t_kronolith_HK_GW_CalendarRenaming.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/kronolith/HK/GW/CalendarRenaming Fix the renaming of calendars. Signed-off-by: Gunnar Wrobel

      --- horde-webmail/kronolith/lib/Forms/EditCalendar.php | 9 +++++---- horde-webmail/lib/Horde/Kolab/Storage/Folder.php | 11 ++++++----- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/horde-webmail/kronolith/lib/Forms/EditCalendar.php b/horde-webmail/kronolith/lib/Forms/EditCalendar.php index 0a76c57..bef123d 100644 --- a/horde-webmail/kronolith/lib/Forms/EditCalendar.php +++ b/horde-webmail/kronolith/lib/Forms/EditCalendar.php @@ -49,11 +49,12 @@ class Kronolith_EditCalendarForm extends Horde_Form { function execute() { $original_name = $this->_calendar->get('name'); - $this->_calendar->set('name', $this->_vars->get('name')); + $new_name = $this->_vars->get('name'); + $this->_calendar->set('name', $new_name); $this->_calendar->set('desc', $this->_vars->get('description')); - if ($original_name != $this->_vars->get('name')) { - $result = $GLOBALS['kronolith_driver']->rename($original_name, $this->_vars->get('name')); + if ($original_name != $new_name) { + $result = $GLOBALS['kronolith_driver']->rename($original_name, $new_name); if (is_a($result, 'PEAR_Error')) { return PEAR::raiseError(sprintf(_("Unable to rename \"%s\": %s"), $original_name, $result->getMessage())); } @@ -61,7 +62,7 @@ class Kronolith_EditCalendarForm extends Horde_Form { $result = $this->_calendar->save(); if (is_a($result, 'PEAR_Error')) { - return PEAR::raiseError(sprintf(_("Unable to save calendar \"%s\": %s"), $id, $result->getMessage())); + return PEAR::raiseError(sprintf(_("Unable to save calendar \"%s\": %s"), $new_name, $result->getMessage())); } return true; } diff --git a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php index 64a438b..a668a24 100644 --- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php +++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php @@ -323,6 +323,7 @@ class Kolab_Folder { if (isset($attributes['default'])) { $this->_default = $attributes['default']; + unset($attributes['default']); } else { $this->_default = $this->isDefault(); } @@ -335,12 +336,12 @@ class Kolab_Folder { return $result; } + /** + * Trigger the old folder name but ignore the error this will + * elicit. While we get an error because of the missing folder + * the corresponding cache value will get purged. + */ $result = $this->trigger(); - if (is_a($result, 'PEAR_Error')) { - Horde::logMessage(sprintf('Failed triggering folder %s! Error was: %s', - $this->name, $result->getMessage()), - __FILE__, __LINE__, PEAR_LOG_ERR); - } $this->name = $this->new_name; $this->new_name = null; -- tg: (1b6a9e5..) t/kronolith/HK/GW/CalendarRenaming (depends on: t/framework/HK/GW/Kolab_Server/FixGetGroups) -- TOPGIT patch commit log ======================= commit 3179737578e80232c88ff68099839a9d720212ac Author: Gunnar Wrobel

      Date: Sun Feb 1 16:27:18 2009 +0000 Added patch kronolith/HK-GW-Renaming_fix.patch from the mercurial release queue. --- NEW FILE: t_kronolith_HK_GW_FbviewRelevance.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/kronolith/HK/GW/FbviewRelevance Heed the Free/Busy relevance setting. Signed-off-by: Gunnar Wrobel

      --- horde-webmail/kronolith/calendars/edit.php | 4 ++++ .../kronolith/lib/Forms/CreateCalendar.php | 4 ++++ horde-webmail/kronolith/lib/Forms/EditCalendar.php | 4 ++++ 3 files changed, 12 insertions(+), 0 deletions(-) diff --git a/horde-webmail/kronolith/calendars/edit.php b/horde-webmail/kronolith/calendars/edit.php index 67137d2..6357a2c 100644 --- a/horde-webmail/kronolith/calendars/edit.php +++ b/horde-webmail/kronolith/calendars/edit.php @@ -53,6 +53,10 @@ if ($form->validate($vars)) { $vars->set('name', $calendar->get('name')); $vars->set('description', $calendar->get('desc')); +$params = @unserialize($calendar->get('params')); +if (isset($params['fbrelevance'])) { + $vars->set('fbrelevance', $params['fbrelevance']); +} $title = $form->getTitle(); require KRONOLITH_TEMPLATES . '/common-header.inc'; require KRONOLITH_TEMPLATES . '/menu.inc'; diff --git a/horde-webmail/kronolith/lib/Forms/CreateCalendar.php b/horde-webmail/kronolith/lib/Forms/CreateCalendar.php index f11ae06..8d1154e 100644 --- a/horde-webmail/kronolith/lib/Forms/CreateCalendar.php +++ b/horde-webmail/kronolith/lib/Forms/CreateCalendar.php @@ -35,6 +35,9 @@ class Kronolith_CreateCalendarForm extends Horde_Form { $this->addVariable(_("Name"), 'name', 'text', true); $this->addVariable(_("Description"), 'description', 'longtext', false, false, null, array(4, 60)); + $this->addVariable(_("Relevance"), 'fbrelevance', 'radio', false, false, null, + array(array('owners/administrators', 'readers', 'no one'), + 'This calendar is only included into the free/busy data for ...')); $this->setButtons(array(_("Create"))); } @@ -48,6 +51,7 @@ class Kronolith_CreateCalendarForm extends Horde_Form { } $calendar->set('name', $this->_vars->get('name')); $calendar->set('desc', $this->_vars->get('description')); + $calendar->set('params', serialize(array('fbrelevance' => (int) $this->_vars->get('fbrelevance', 0)))); return $GLOBALS['kronolith_shares']->addShare($calendar); } diff --git a/horde-webmail/kronolith/lib/Forms/EditCalendar.php b/horde-webmail/kronolith/lib/Forms/EditCalendar.php index 0a76c57..e0b4659 100644 --- a/horde-webmail/kronolith/lib/Forms/EditCalendar.php +++ b/horde-webmail/kronolith/lib/Forms/EditCalendar.php @@ -42,6 +42,9 @@ class Kronolith_EditCalendarForm extends Horde_Form { $this->addHidden('', 'c', 'text', true); $this->addVariable(_("Name"), 'name', 'text', true); $this->addVariable(_("Description"), 'description', 'longtext', false, false, null, array(4, 60)); + $this->addVariable(_("Relevance"), 'fbrelevance', 'radio', false, false, null, + array(array('owners/administrators', 'readers', 'no one'), + 'This calendar is only included into the free/busy data for ...')); $this->setButtons(array(_("Save"))); } @@ -51,6 +54,7 @@ class Kronolith_EditCalendarForm extends Horde_Form { $original_name = $this->_calendar->get('name'); $this->_calendar->set('name', $this->_vars->get('name')); $this->_calendar->set('desc', $this->_vars->get('description')); + $this->_calendar->set('params', serialize(array('fbrelevance' => (int) $this->_vars->get('fbrelevance', 0)))); if ($original_name != $this->_vars->get('name')) { $result = $GLOBALS['kronolith_driver']->rename($original_name, $this->_vars->get('name')); -- tg: (67b6582..) t/kronolith/HK/GW/FbviewRelevance (depends on: t/kronolith/HK/SB/ExtraParameters) -- TOPGIT patch commit log ======================= commit dae3753e368fefa0e825f97b03b146bb7f9fc44a Author: Gunnar Wrobel

      Date: Fri Mar 13 01:25:36 2009 +0100 Remove stray .orig file. commit adae108bd20332a0383b10ecbc0123d6d5c00fed Author: Gunnar Wrobel

      Date: Sun Feb 1 22:27:55 2009 +0000 Added patch kronolith/HK-GW-Fbview_relevance.patch from the mercurial release queue. --- NEW FILE: t_kronolith_HK_GW_SyncMLrefresh.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/kronolith/HK/GW/SyncMLrefresh Refresh calendars before running a SyncML synchronization. Signed-off-by: Gunnar Wrobel

      --- horde-webmail/kronolith/lib/Driver/kolab.php | 10 ++++++++++ horde-webmail/kronolith/lib/api.php | 3 +++ 2 files changed, 13 insertions(+), 0 deletions(-) diff --git a/horde-webmail/kronolith/lib/Driver/kolab.php b/horde-webmail/kronolith/lib/Driver/kolab.php index 6133d74..de49c81 100644 --- a/horde-webmail/kronolith/lib/Driver/kolab.php +++ b/horde-webmail/kronolith/lib/Driver/kolab.php @@ -62,6 +62,7 @@ class Kronolith_Driver_kolab extends Kronolith_Driver { $this->_calendar = $calendar; $this->_wrapper->reset(); } + $this->_wrapper->open($calendar); return true; } @@ -215,6 +216,10 @@ class Kronolith_Driver_kolab_wrapper { $this->_driver = &$driver; $this->_kolab = &$driver->_kolab; } + + function open($calendar) + { + } } @@ -991,6 +996,11 @@ class Kronolith_Driver_kolab_wrapper_new extends Kronolith_Driver_kolab_wrapper $this->reset(); } + function open($calendar) + { + $this->synchronize(); + } + /** * Reset internal variable on share change */ diff --git a/horde-webmail/kronolith/lib/api.php b/horde-webmail/kronolith/lib/api.php index 68a52d0..202b85e 100644 --- a/horde-webmail/kronolith/lib/api.php +++ b/horde-webmail/kronolith/lib/api.php @@ -694,6 +694,7 @@ function _kronolith_list($calendar = null, $startstamp = 0, $endstamp = 0) function _kronolith_listBy($action, $timestamp, $calendar = null) { require_once dirname(__FILE__) . '/base.php'; + global $kronolith_driver; if (empty($calendar)) { $calendar = Kronolith::getDefaultCalendar(); @@ -704,6 +705,8 @@ function _kronolith_listBy($action, $timestamp, $calendar = null) return PEAR::raiseError(_("Permission Denied")); } + $kronolith_driver->open($calendar); + $history = &Horde_History::singleton(); $histories = $history->getByTimestamp('>', $timestamp, array(array('op' => '=', 'field' => 'action', 'value' => $action)), 'kronolith:' . $calendar); if (is_a($histories, 'PEAR_Error')) { -- tg: (6938161..) t/kronolith/HK/GW/SyncMLrefresh (depends on: master) -- TOPGIT patch commit log ======================= commit d66c36f15b0ee0524d4cc2660ea8d092e82df1b2 Author: Gunnar Wrobel

      Date: Sun Feb 1 23:54:50 2009 +0000 Added patch kronolith/HK-GW-SyncML_refresh.patch from the mercurial release queue. --- NEW FILE: t_kronolith_HK_GW_XfbAccess.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/kronolith/HK/GW/XfbAccess Allows to set the extended free/busy view access parameters via the calendar settings. Signed-off-by: Gunnar Wrobel

      --- horde-webmail/kronolith/perms.php | 48 ++++++++++++++++++ horde-webmail/kronolith/templates/perms/perms.inc | 55 +++++++++++++++++++++ 2 files changed, 103 insertions(+), 0 deletions(-) diff --git a/horde-webmail/kronolith/perms.php b/horde-webmail/kronolith/perms.php index f9bed71..4966bd4 100644 --- a/horde-webmail/kronolith/perms.php +++ b/horde-webmail/kronolith/perms.php @@ -15,6 +15,34 @@ 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; @@ -226,6 +256,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)); + $result = $share->setPermission($perm, false); if (is_a($result, 'PEAR_Error')) { $notification->push($result, 'horde.error'); diff --git a/horde-webmail/kronolith/templates/perms/perms.inc b/horde-webmail/kronolith/templates/perms/perms.inc index 4ca65a6..2174167 100644 --- a/horde-webmail/kronolith/templates/perms/perms.inc +++ b/horde-webmail/kronolith/templates/perms/perms.inc @@ -330,6 +330,61 @@ foreach ($userList as $user) {   + + + + getImageDir('horde')) . ' ' . _("Extended free/busy access") ?> + +   + +   +   +   +   + + $fbperm) { if ($user != $owner) { ?> + + +   + + /> + + +   +   +   +   + + + + +hasCapability('list')): ?> + + + + + + + + + + +   + + + + +   +   +   +   + +   -- tg: (d2b5eee..) t/kronolith/HK/GW/XfbAccess (depends on: t/kronolith/HK/GW/FbviewRelevance) -- TOPGIT patch commit log ======================= commit 56a0438a5135d9dc3cde040531ad8d7dbc654f8c Author: Gunnar Wrobel

      Date: Fri Mar 13 01:27:45 2009 +0100 Remove stray .orig file. commit a6a8bb95cc237651c51fa16bd64dd30f122553bf Author: Gunnar Wrobel

      Date: Sun Feb 1 22:29:11 2009 +0000 Added patch kronolith/HK-GW-Fbview_xfb_access.patch from the mercurial release queue. --- NEW FILE: t_kronolith_HK_GW_getFreebusyServer.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/kronolith/HK/GW/getFreebusyServer Use the capability to retrieve the Free/Busy server provided in Kolab_Server. Signed-off-by: Gunnar Wrobel

      --- horde-webmail/kronolith/lib/Storage/kolab.php | 23 +++++++++++++++-------- 1 files changed, 15 insertions(+), 8 deletions(-) diff --git a/horde-webmail/kronolith/lib/Storage/kolab.php b/horde-webmail/kronolith/lib/Storage/kolab.php index a099702..5f4c8bb 100644 --- a/horde-webmail/kronolith/lib/Storage/kolab.php +++ b/horde-webmail/kronolith/lib/Storage/kolab.php @@ -29,17 +29,24 @@ class Kronolith_Storage_kolab extends Kronolith_Storage { { global $conf; - if (!is_callable('Kolab', 'getServer')) { - $server = $conf['kolab']['imap']['server']; + @include_once 'Horde/Kolab/Session.php'; + + if (class_exists('Horde_Kolab_Session')) { + $session = &Horde_Kolab_Session::singleton(); + $server = $session->freebusy_server; + } else if (!is_callable('Kolab', 'getServer')) { + $server = sprintf('%s://%s:%d/freebusy/', + $conf['storage']['freebusy']['protocol'], + $conf['kolab']['imap']['server'], + $conf['storage']['freebusy']['port']); } else { - $server = Kolab::getServer('imap'); + $server = sprintf('%s://%s:%d/freebusy/', + $conf['storage']['freebusy']['protocol'], + Kolab::getServer('imap'), + $conf['storage']['freebusy']['port']); } - $fb_url = sprintf('%s://%s:%d/freebusy/%s.xfb', - $conf['storage']['freebusy']['protocol'], - $server, - $conf['storage']['freebusy']['port'], - $email); + $fb_url = sprintf('%s/%s.xfb', $server, $email); $options['method'] = 'GET'; $options['timeout'] = 5; -- tg: (e52fa15..) t/kronolith/HK/GW/getFreebusyServer (depends on: t/framework/HK/GW/Kolab_Server/getFreebusyServer) -- TOPGIT patch commit log ======================= commit e5954131256e7fba29a3dd6827f872114b1ddcb7 Author: Gunnar Wrobel

      Date: Fri Jan 30 20:16:49 2009 +0000 Added patch kronolith/HK-GW-Kolab_Server-getFreeBusyServer.patch from the mercurial release queue. --- NEW FILE: t_kronolith_HK_SB_ExtraParameters.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/kronolith/HK/SB/ExtraParameters Add additional event parameters to the Free/Busy view. Signed-off-by: Gunnar Wrobel

      --- horde-webmail/kronolith/lib/FBView.php | 27 +++++++++++++++++-- .../kronolith/templates/fbview/busyblock.html | 2 +- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/horde-webmail/kronolith/lib/FBView.php b/horde-webmail/kronolith/lib/FBView.php index f0bb03f..db402d3 100644 --- a/horde-webmail/kronolith/lib/FBView.php +++ b/horde-webmail/kronolith/lib/FBView.php @@ -87,7 +87,7 @@ class Kronolith_FreeBusy_View { $rows = ''; foreach ($this->_requiredMembers as $member) { $member->simplify(); - $blocks = $this->_getBlocks($member, $member->getBusyPeriods(), 'busyblock.html', _("Busy")); + $blocks = $this->_getBlocks($member, $member->getBusyPeriods(), 'busyblock.html', _("Busy"), $member->getExtraParams()); $template = new Horde_Template(); $template->set('blocks', $blocks); $template->set('name', $member->getName()); @@ -109,7 +109,7 @@ class Kronolith_FreeBusy_View { $rows = ''; foreach ($this->_optionalMembers as $member) { $member->simplify(); - $blocks = $this->_getBlocks($member, $member->getBusyPeriods(), 'busyblock.html', _("Busy")); + $blocks = $this->_getBlocks($member, $member->getBusyPeriods(), 'busyblock.html', _("Busy"), $member->getExtraParams()); $template = new Horde_Template(); $template->set('blocks', $blocks); $template->set('name', $member->getName()); @@ -125,6 +125,9 @@ class Kronolith_FreeBusy_View { $html .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/section.html'); } + //********** + //This has been disabled in kolab-fbview. Make this optional? + // Possible meeting times. $optimal->setAttribute('ORGANIZER', _("All Attendees")); $blocks = $this->_getBlocks($optimal, @@ -147,6 +150,9 @@ class Kronolith_FreeBusy_View { $template->set('blocks', $blocks); $rows .= $template->fetch(KRONOLITH_TEMPLATES . '/fbview/row.html'); + //This has been disabled in kolab-fbview. Make this optional? + //********** + // Reset locale. setlocale(LC_NUMERIC, $lc); @@ -215,7 +221,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); @@ -248,6 +254,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 --git a/horde-webmail/kronolith/templates/fbview/busyblock.html b/horde-webmail/kronolith/templates/fbview/busyblock.html index 223ee21..a442b54 100644 --- a/horde-webmail/kronolith/templates/fbview/busyblock.html +++ b/horde-webmail/kronolith/templates/fbview/busyblock.html @@ -1 +1 @@ -

       
      +
       
      -- tg: (917327f..) t/kronolith/HK/SB/ExtraParameters (depends on: t/kronolith/HK/SB/SaveEventAttendees) -- TOPGIT patch commit log ======================= commit 0c5a8f2db1f17bcc46f24ca0cc7c5395abb289dc Author: Gunnar Wrobel

      Date: Fri Mar 13 01:19:17 2009 +0100 Removed stray .orig file. commit c9a3d3d22933a4b7c27288c49250ff7535bcbfbf Author: Gunnar Wrobel

      Date: Sun Feb 1 22:26:49 2009 +0000 Added patch kronolith/HK-SB-Fbview_extra_params.patch from the mercurial release queue. --- NEW FILE: t_kronolith_HK_SB_SaveEventAttendees.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/kronolith/HK/SB/SaveEventAttendees Allow to save attendees when adding them to kronolith events. FIXME: It would be better to save these as distribution lists now. Signed-off-by: Gunnar Wrobel

      --- horde-webmail/kronolith/attendees.php | 18 +++++ horde-webmail/kronolith/config/prefs.php.dist | 8 ++ horde-webmail/kronolith/savedattlist.php | 77 ++++++++++++++++++++ .../kronolith/templates/attendees/attendees.inc | 2 + .../templates/javascript/open_savedattlist_win.js | 36 +++++++++ .../templates/savedattlist/savedattlist.inc | 68 +++++++++++++++++ 6 files changed, 209 insertions(+), 0 deletions(-) diff --git a/horde-webmail/kronolith/attendees.php b/horde-webmail/kronolith/attendees.php index a2d8b3e..e1b15c0 100644 --- a/horde-webmail/kronolith/attendees.php +++ b/horde-webmail/kronolith/attendees.php @@ -178,6 +178,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. @@ -264,6 +274,14 @@ Imple::factory('ContactAutoCompleter', array('triggerId' => 'newAttendees')); $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 --git a/horde-webmail/kronolith/config/prefs.php.dist b/horde-webmail/kronolith/config/prefs.php.dist index 22c08c3..b1c49d8 100644 --- a/horde-webmail/kronolith/config/prefs.php.dist +++ b/horde-webmail/kronolith/config/prefs.php.dist @@ -497,3 +497,11 @@ $_prefs['last_kronolith_maintenance'] = array( '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 --git a/horde-webmail/kronolith/savedattlist.php b/horde-webmail/kronolith/savedattlist.php new file mode 100644 index 0000000..631b994 --- /dev/null +++ b/horde-webmail/kronolith/savedattlist.php @@ -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 --git a/horde-webmail/kronolith/templates/attendees/attendees.inc b/horde-webmail/kronolith/templates/attendees/attendees.inc index b057ea0..88f77eb 100644 --- a/horde-webmail/kronolith/templates/attendees/attendees.inc +++ b/horde-webmail/kronolith/templates/attendees/attendees.inc @@ -92,6 +92,8 @@ function switchDateView(view, timestamp)

      " /> " /> + " onclick="" /> + " onclick="performAction('save', '');" /> " />
      diff --git a/horde-webmail/kronolith/templates/javascript/open_savedattlist_win.js b/horde-webmail/kronolith/templates/javascript/open_savedattlist_win.js new file mode 100644 index 0000000..388a4b7 --- /dev/null +++ b/horde-webmail/kronolith/templates/javascript/open_savedattlist_win.js @@ -0,0 +1,36 @@ + + diff --git a/horde-webmail/kronolith/templates/savedattlist/savedattlist.inc b/horde-webmail/kronolith/templates/savedattlist/savedattlist.inc new file mode 100644 index 0000000..2489f25 --- /dev/null +++ b/horde-webmail/kronolith/templates/savedattlist/savedattlist.inc @@ -0,0 +1,68 @@ + + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + $list): ?> + + ', Horde::link("javascript:updateMessage('" . addslashes(implode(', ', $list)) . "')", _("Load this list")), $loadimg, ""; + ?> + ', Horde::link("javascript:performAction('remove', '" . $index . "')", _("Remove this list")), $delimg, ""; + ?> + + + +
      +
      +
      -- tg: (6938161..) t/kronolith/HK/SB/SaveEventAttendees (depends on: master) -- TOPGIT patch commit log ======================= commit 917327fa2943eff049d5cb98cd33ffcb8cea880c Author: Gunnar Wrobel

      Date: Fri Mar 13 07:44:50 2009 +0100 Remove stray .orig file. commit 026a99dd501ffc926853a2d8af9a7cdd7e30c9a0 Author: Gunnar Wrobel

      Date: Sun Feb 1 22:21:11 2009 +0000 Added patch kronolith/HK-SB-Fbview_save_attendees.patch from the mercurial release queue. --- NEW FILE: t_nag_H_MR_Bug__7400.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/nag/H/MR/Bug_7400 Fixes Horde bug [#7400] Error when marking task "completed" Signed-off-by: Gunnar Wrobel

      --- horde-webmail/nag/lib/Driver.php | 55 +++++++++++++++++++++---------------- 1 files changed, 31 insertions(+), 24 deletions(-) diff --git a/horde-webmail/nag/lib/Driver.php b/horde-webmail/nag/lib/Driver.php index 2cd926a..c8fd4ee 100644 --- a/horde-webmail/nag/lib/Driver.php +++ b/horde-webmail/nag/lib/Driver.php @@ -319,33 +319,40 @@ class Nag_Driver { $new_task = $this->get($task->id); $log_tasklist = $this->_tasklist; - if ($task->tasklist != $tasklist) { + if (!is_null($tasklist) && $task->tasklist != $tasklist) { /* Moving the task to another tasklist. */ $share = $GLOBALS['nag_shares']->getShare($task->tasklist); - if (!is_a($share, 'PEAR_Error') && - $share->hasPermission(Auth::getAuth(), PERMS_DELETE)) { - $share = $GLOBALS['nag_shares']->getShare($tasklist); - if (!is_a($share, 'PEAR_Error') && - $share->hasPermission(Auth::getAuth(), PERMS_EDIT)) { - $moved = $this->_move($task->id, $tasklist); - if (is_a($moved, 'PEAR_Error')) { - return $moved; - } - $new_storage = &Nag_Driver::singleton($tasklist); - $new_task = $new_storage->get($task->id); - - /* Log the moving of this item in the history log. */ - if (!empty($task->uid)) { - $history = &Horde_History::singleton(); - $history->log('nag:' . $task->tasklist . ':' . $task->uid, array('action' => 'delete'), true); - $history->log('nag:' . $tasklist . ':' . $task->uid, array('action' => 'add'), true); - $log_tasklist = $tasklist; - } - } else { - $GLOBALS['notification']->push(sprintf(_("Access denied moving the task to %s."), $share->get('name')), 'horde.error'); - } - } else { + if (is_a($share, 'PEAR_Error')) { + return $share; + } + + if (!$share->hasPermission(Auth::getAuth(), PERMS_DELETE)) { $GLOBALS['notification']->push(sprintf(_("Access denied removing task from %s."), $share->get('name')), 'horde.error'); + return false; + } + + $share = $GLOBALS['nag_shares']->getShare($tasklist); + if (is_a($share, 'PEAR_Error')) { + return $share; + } + + if (!$share->hasPermission(Auth::getAuth(), PERMS_EDIT)) { + $GLOBALS['notification']->push(sprintf(_("Access denied moving the task to %s."), $share->get('name')), 'horde.error'); + } + + $moved = $this->_move($task->id, $tasklist); + if (is_a($moved, 'PEAR_Error')) { + return $moved; + } + $new_storage = &Nag_Driver::singleton($tasklist); + $new_task = $new_storage->get($task->id); + + /* Log the moving of this item in the history log. */ + if (!empty($task->uid)) { + $history = &Horde_History::singleton(); + $history->log('nag:' . $task->tasklist . ':' . $task->uid, array('action' => 'delete'), true); + $history->log('nag:' . $tasklist . ':' . $task->uid, array('action' => 'add'), true); + $log_tasklist = $tasklist; } } -- tg: (6938161..) t/nag/H/MR/Bug_7400 (depends on: master) -- TOPGIT patch commit log ======================= commit e1ffc45a709692e0d13252f21ce6af7a91a6f42c Author: Gunnar Wrobel

      Date: Thu Jan 29 22:46:42 2009 +0100 Included patch nag/H-MR-bug_7400.patch from the mercurial patch queue. --- NEW FILE: t_pear_HK_GW_AddNetIMAP.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/pear/HK/GW/AddNetIMAP Adds the PEAR Net_IMAP library in case the user does not have a PHP patched for Kolab. Signed-off-by: Gunnar Wrobel

      --- horde-webmail/pear/Net/IMAP.php | 2981 ++++++++++++++++++++++++ horde-webmail/pear/Net/IMAPProtocol.php | 3797 +++++++++++++++++++++++++++++++ 2 files changed, 6778 insertions(+), 0 deletions(-) diff --git a/horde-webmail/pear/Net/IMAP.php b/horde-webmail/pear/Net/IMAP.php new file mode 100644 index 0000000..491b63f --- /dev/null +++ b/horde-webmail/pear/Net/IMAP.php @@ -0,0 +1,2981 @@ + -- tg: (56f3df6..) t/pear/HK/GW/AddNetIMAP (depends on: t/Kolab_Server/HK/GW/FixBodyHeaderBreakInTestDriver) -- TOPGIT patch commit log ======================= commit 451b1fbef4b6acf4fb332cecd2d96bd67b34fa19 Author: Gunnar Wrobel

      Date: Wed Mar 11 21:52:31 2009 +0000 Adds the PEAR Net_IMAP library in case the user does not have a PHP patched for Kolab. --- NEW FILE: t_turba_HK_GW_AutomaticFreeBusyUrl.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/turba/HK/GW/AutomaticFreeBusyUrl Determine the free/busy URL of Kolab users automatically. Signed-off-by: Gunnar Wrobel

      --- horde-webmail/turba/config/attributes.php | 6 ++++++ horde-webmail/turba/config/attributes.php.dist | 6 ++++++ horde-webmail/turba/config/sources.php.dist | 4 +++- 3 files changed, 15 insertions(+), 1 deletions(-) diff --git a/horde-webmail/turba/config/attributes.php b/horde-webmail/turba/config/attributes.php index ce124f0..5a127d8 100644 --- a/horde-webmail/turba/config/attributes.php +++ b/horde-webmail/turba/config/attributes.php @@ -356,6 +356,12 @@ $attributes['category'] = array( ); /* Additional attributes supported by Kolab */ +$attributes['kolabHomeServer'] = array( + 'label' => _("Kolab Home Server"), + 'type' => 'text', + 'required' => false, + 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) +); $attributes['initials'] = array( 'label' => _("Initials"), 'type' => 'text', diff --git a/horde-webmail/turba/config/attributes.php.dist b/horde-webmail/turba/config/attributes.php.dist index 0332682..3afb76f 100644 --- a/horde-webmail/turba/config/attributes.php.dist +++ b/horde-webmail/turba/config/attributes.php.dist @@ -402,6 +402,12 @@ $attributes['category'] = array( // ); /* Additional attributes supported by Kolab */ +$attributes['kolabHomeServer'] = array( + 'label' => _("Kolab Home Server"), + 'type' => 'text', + 'required' => false, + 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) +); $attributes['initials'] = array( 'label' => _("Initials"), 'type' => 'text', diff --git a/horde-webmail/turba/config/sources.php.dist b/horde-webmail/turba/config/sources.php.dist index 3d5adf4..fd6eb7a 100644 --- a/horde-webmail/turba/config/sources.php.dist +++ b/horde-webmail/turba/config/sources.php.dist @@ -825,7 +825,9 @@ if (!empty($GLOBALS['conf']['kolab']['enabled'])) { 'cellPhone' => 'mobile', 'fax' => 'fax', 'notes' => 'description', - 'freebusyUrl' => 'kolabHomeServer', + 'kolabHomeServer' => 'kolabHomeServer', + 'freebusyUrl' => array('fields' => array('kolabHomeServer', 'email'), + 'format' => 'https://%s/freebusy/%s.ifb'), ), 'search' => array( 'name', -- tg: (3e628f4..) t/turba/HK/GW/AutomaticFreeBusyUrl (depends on: t/framework/HK/GW/Kolab_Storgae/FixedUpdateTriggering) -- TOPGIT patch commit log ======================= commit 358bad0ddf162ff032066b1045fec1f76d427e56 Author: Gunnar Wrobel

      Date: Sun Feb 1 16:21:52 2009 +0000 Added patch turba/HK-GW-Fix_freebusyurl.patch from the mercurial release queue. --- NEW FILE: t_turba_HK_GW_FixAddressbookDeletion.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/turba/HK/GW/FixAddressbookDeletion Fixes a Kolab specific problem with addressbook deletion. The fix is considered a hack by upstream and needs to be fixed at some point. Signed-off-by: Gunnar Wrobel

      --- horde-webmail/turba/lib/Driver/share.php | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/horde-webmail/turba/lib/Driver/share.php b/horde-webmail/turba/lib/Driver/share.php index 57222a4..2776a8f 100644 --- a/horde-webmail/turba/lib/Driver/share.php +++ b/horde-webmail/turba/lib/Driver/share.php @@ -145,7 +145,7 @@ class Turba_Driver_share extends Turba_Driver { function _deleteAll($sourceName = null) { if (is_null($sourceName)) { - $sourceName = $this->getContactOwner(); + $sourceName = $this->getName(); } return $this->_driver->_deleteAll($sourceName); } -- tg: (6938161..) t/turba/HK/GW/FixAddressbookDeletion (depends on: master) -- TOPGIT patch commit log ======================= commit cd7fd7431e30f5d645276f3b7cafe12935bcb836 Author: Gunnar Wrobel

      Date: Sun Feb 1 23:48:17 2009 +0000 Added patch turba/HK-GW-Fix_address_book_deletion_2.patch from the mercurial release queue. --- NEW FILE: t_turba_HK_GW_FixSyncMLAttributeDeletion.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/turba/HK/GW/FixSyncMLAttributeDeletion Fix the deletion of contact attributes when using SyncML. Signed-off-by: Gunnar Wrobel

      --- horde-webmail/turba/lib/Driver.php | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-) diff --git a/horde-webmail/turba/lib/Driver.php b/horde-webmail/turba/lib/Driver.php index 248e5d3..efc61f8 100644 --- a/horde-webmail/turba/lib/Driver.php +++ b/horde-webmail/turba/lib/Driver.php @@ -1466,9 +1466,6 @@ class Turba_Driver { $hash = array(); $attr = $vcard->getAllAttributes(); foreach ($attr as $item) { - if (empty($item['value'])) { - continue; - } switch ($item['name']) { case 'FN': -- tg: (6938161..) t/turba/HK/GW/FixSyncMLAttributeDeletion (depends on: master) -- TOPGIT patch commit log ======================= commit 3e71b03529030111cea5a55dbe3b4e2cbd98a6b0 Author: Gunnar Wrobel

      Date: Mon Feb 2 00:16:42 2009 +0000 Remove patch remains. commit a3ce2f6066fe85019312ff354f5bca6ba5e3d2ab Author: Gunnar Wrobel

      Date: Sun Feb 1 23:50:06 2009 +0000 Added patch turba/HK-GW-SyncML_delete_attributes.patch from the mercurial release queue. --- NEW FILE: t_turba_HK_GW_PhotoSupport.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/turba/HK/GW/PhotoSupport Support photos in turba. Signed-off-by: Gunnar Wrobel

      --- horde-webmail/turba/config/sources.php.dist | 4 +- horde-webmail/turba/lib/Driver/kolab.php | 54 +++++++++++++++----------- horde-webmail/turba/lib/Object.php | 5 ++- 3 files changed, 38 insertions(+), 25 deletions(-) diff --git a/horde-webmail/turba/config/sources.php.dist b/horde-webmail/turba/config/sources.php.dist index eae2039..3d5adf4 100644 --- a/horde-webmail/turba/config/sources.php.dist +++ b/horde-webmail/turba/config/sources.php.dist @@ -893,6 +893,8 @@ if (!empty($GLOBALS['conf']['kolab']['enabled'])) { 'nameSuffix' => 'suffix', 'initials' => 'initials', 'nickname' => 'nick-name', + 'photo' => 'photo', + 'phototype' => 'phototype', 'gender' => 'gender', 'birthday' => 'birthday', 'spouse' => 'spouse-name', @@ -939,7 +941,7 @@ if (!empty($GLOBALS['conf']['kolab']['enabled'])) { 'tabs' => array( _("Personal") => array('name', 'firstname', 'lastname', 'middlenames', 'namePrefix', 'nameSuffix', 'initials', 'nickname', - 'gender', 'birthday', 'spouse', 'anniversary', + 'photo', 'gender', 'birthday', 'spouse', 'anniversary', 'children'), _("Location") => array('homeStreet', 'homeCity', 'homeProvince', 'homePostalCode', 'homeCountry', 'workStreet', diff --git a/horde-webmail/turba/lib/Driver/kolab.php b/horde-webmail/turba/lib/Driver/kolab.php index f97f75a..a585950 100644 --- a/horde-webmail/turba/lib/Driver/kolab.php +++ b/horde-webmail/turba/lib/Driver/kolab.php @@ -751,6 +751,14 @@ class Turba_Driver_kolab_wrapper_new extends Turba_Driver_kolab_wrapper { if (isset($contact['email'])) { unset($contact['email']); } + if (isset($contact['picture'])) { + $name = $contact['picture']; + if (isset($contact['_attachments'][$name])) { + $contact['photo'] = $this->_store->_data->getAttachment($contact['_attachments'][$name]['key']); + $contact['phototype'] = $contact['_attachments'][$name]['type']; + } + } + $contacts[$id] = $contact; } @@ -1088,29 +1096,11 @@ class Turba_Driver_kolab_wrapper_new extends Turba_Driver_kolab_wrapper { $attributes['full-name'] = $attributes['given-name'] . ' ' . $attributes['full-name']; } - $group = false; - if (isset($attributes['__type']) && $attributes['__type'] == 'Group') { - $group = true; - $result = $this->_store->setObjectType('distribution-list'); - if (is_a($result, 'PEAR_Error')) { - return $result; - } - $this->_convertMembers($attributes); - } - - $object_id = $this->_store->save($attributes, null); - if (is_a($object_id, 'PEAR_Error')) { - return $object_id; - } - - if ($group) { - $result = $this->_store->setObjectType('contact'); - if (is_a($result, 'PEAR_Error')) { - return $result; - } + $result = $this->_store($attributes); + if (is_a($result, 'PEAR_Error')) { + return $result; } - - return $object_id; + return true; } /** @@ -1126,9 +1116,19 @@ class Turba_Driver_kolab_wrapper_new extends Turba_Driver_kolab_wrapper { } if ($object_key != 'uid') { - return PEAR::raiseError(sprintf(_("Key for saving must be a UID not %s!"), $object_key)); + return PEAR::raiseError(sprintf(_("Key for saving must be \'uid\' not %s!"), $object_key)); } + return $this->_store($attributes, $object_id); + } + + /** + * Stores an object in the Kolab message store. + * + * @return string The object id, possibly updated. + */ + function _store($attributes, $object_id = null) + { $group = false; if (isset($attributes['__type']) && $attributes['__type'] == 'Group') { $group = true; @@ -1139,6 +1139,14 @@ class Turba_Driver_kolab_wrapper_new extends Turba_Driver_kolab_wrapper { $this->_convertMembers($attributes); } + if (isset($attributes['photo']) && isset($attributes['phototype'])) { + $attributes['_attachments']['photo.attachment'] = array('type' => $attributes['phototype'], + 'content' => $attributes['photo']); + $attributes['picture'] = 'photo.attachment'; + unset($attributes['photo']); + unset($attributes['phototype']); + } + $result = $this->_store->save($attributes, $object_id); if (is_a($result, 'PEAR_Error')) { return $result; diff --git a/horde-webmail/turba/lib/Object.php b/horde-webmail/turba/lib/Object.php index ed7f65f..57c9368 100644 --- a/horde-webmail/turba/lib/Object.php +++ b/horde-webmail/turba/lib/Object.php @@ -249,7 +249,10 @@ class Turba_Object { */ function addFile($info) { - $this->_vfsInit(); + $result = $this->_vfsInit(); + if (is_a($result, 'PEAR_Error')) { + return $result; + } $dir = TURBA_VFS_PATH . '/' . $this->getValue('__uid'); $file = $info['name']; -- tg: (ea9082a..) t/turba/HK/GW/PhotoSupport (depends on: t/framework/HK/GW/Vfs/KolabDriver) -- TOPGIT patch commit log ======================= commit 051c43e74fd790df114eb5a9c6aefc6f86c82d96 Author: Gunnar Wrobel

      Date: Sat Jan 31 00:14:04 2009 +0000 Added patch /turba/HK-GW-Photo_support.patch from the mercurial release queue. --- NEW FILE: t_turba_HK_GW_SyncMLrefresh.diff --- From: Gunnar Wrobel

      Subject: [PATCH] t/turba/HK/GW/SyncMLrefresh Refresh addressbooks before running a synchronization. Signed-off-by: Gunnar Wrobel

      --- horde-webmail/turba/lib/Driver/kolab.php | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/horde-webmail/turba/lib/Driver/kolab.php b/horde-webmail/turba/lib/Driver/kolab.php index f97f75a..786f2e2 100644 --- a/horde-webmail/turba/lib/Driver/kolab.php +++ b/horde-webmail/turba/lib/Driver/kolab.php @@ -56,6 +56,7 @@ class Turba_Driver_kolab extends Turba_Driver { } $this->_wrapper = &new $wrapper($this->name, $this->_kolab); + $this->_wrapper->connect(); } /** -- tg: (015e842..) t/turba/HK/GW/SyncMLrefresh (depends on: t/turba/HK/GW/FixSyncMLAttributeDeletion) -- TOPGIT patch commit log ======================= commit d59cb82e5725f53d3f6fa2a84e17ad3e46078e99 Author: Gunnar Wrobel

      Date: Sun Feb 1 23:53:10 2009 +0000 Added patch turba/HK-GW-SyncML_refresh.patch from the mercurial release queue.