Administrator_Guide/en-US

Jeroen van Meeuwen vanmeeuwen at kolabsys.com
Thu Aug 9 17:24:31 CEST 2012


 Administrator_Guide/en-US/Upgrading_Accounts_from_Kolab_Format_version_2.xml |   99 +++
 Administrator_Guide/en-US/Upgrading_Cyrus_IMAP_from_2.3_to_2.4.xml           |  212 ++++++
 Administrator_Guide/en-US/Upgrading_from_Kolab_2_on_OpenPKG.xml              |  308 ++++++++++
 Administrator_Guide/en-US/Verifying_the_Installation.xml                     |   11 
 Administrator_Guide/en-US/part-Kolab_Server.xml                              |    6 
 Administrator_Guide/en-US/step-convert-seen-databases.xml                    |   23 
 Administrator_Guide/en-US/step-select-all-mailboxes.xml                      |   78 ++
 7 files changed, 736 insertions(+), 1 deletion(-)

New commits:
commit 2a386ddbf170d04e58423076dad9b5cc9a072dc6
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Thu Aug 9 16:24:07 2012 +0100

    Add new files on upgrading and such, that are not yet ready for publication

diff --git a/Administrator_Guide/en-US/Upgrading_Accounts_from_Kolab_Format_version_2.xml b/Administrator_Guide/en-US/Upgrading_Accounts_from_Kolab_Format_version_2.xml
new file mode 100644
index 0000000..c22bdc0
--- /dev/null
+++ b/Administrator_Guide/en-US/Upgrading_Accounts_from_Kolab_Format_version_2.xml
@@ -0,0 +1,99 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Administrator_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<chapter id="chap-Administrator_Guide-Upgrading_Accounts_from_Kolab_Format_version_2">
+    <title>Upgrading Accounts from Kolab Format version 2</title>
+    <para>
+        Upgrading the existing accounts from a Kolab 2 server to a Kolab 3 server is a question of upgrading the server itself, but also upgrading the format from Kolab XML format version 2, to Kolab XML Format version 3.
+    </para>
+    <para>
+        Upgrading the server itself is documented in a different chapter (TODO, link to that chapter). This chapter concerns the upgrading of IMAP Accounts from the Kolab v2 format to the Kolab v3 format.
+    </para>
+    <para>
+        imapsync --host1 kolab2.example.org --tls1 --authuser1 john.doe at example.org --user1 cyrus-admin --proxyauth1 --password1 Welcome2KolabSystems --host2 kolab3.example.org --tls2 --authuser2 john.doe at example.org --user2 cyrus-admin --proxyauth2 --password2 Welcome2KolabSystems --include="INBOX"
+    </para>
+
+<programlisting language="Bash">#!/bin/bash
+
+kolab -c /etc/kolab/kolab2.conf list-mailbox-acls user/*@example.org | \
+    while read line; do
+        if [ ! -z "$(echo $line | grep ^Folder)" ]; then
+            current_folder=$(echo $line | cut -d' ' -f2-)
+
+            echo "Folder: '${current_folder}'"
+        else
+            aci_permissions=$(echo $line | awk '{print $1}')
+            aci_subject=$(echo $line | awk '{print $2}')
+            echo "Setting ${aci_subject} rights ${aci_permissions}"
+            kolab set-mailbox-acl \
+                "${current_folder}" \
+                "${aci_subject}" \
+                "${aci_permissions}"
+        fi
+    done</programlisting>
+    <para>
+        warning about --useuid
+    </para>
+    <para>
+        rsync -aHvz --progress --partial --exclude="Archive/" --exclude="Administrativia/" --exclude="Bugzilla/" --exclude="Ham/" --exclude="Spam/" root at kolab.kolabsys.com:/kolab/var/imapd/spool/domain/k/kolabsys.com/v/user/vanmeeuwen/ /var/spool/imap/domain/k/kolabsys.com/v/user/vanmeeuwen/
+    </para>
+    <para>
+        /kolab/var/imapd/domain/k/kolabsys.com/user/v/vanmeeuwen.seen
+    </para>
+    <para>
+        /kolab/var/imapd/domain/k/kolabsys.com/user/v/vanmeeuwen.sub
+    </para>
+    <procedure id="proc-Administrator_Guide-Upgrading_Accounts_from_Kolab_Format_version_2-Synchronizing_IMAP_Accounts_using_Offlineimap">
+        <title>Synchronizing IMAP Accounts using Offlineimap</title>
+        <step>
+            <para>
+                Obtain the SSL certificate fingerprints needed with the following command:
+            </para>
+            <para>
+
+<screen># <userinput>openssl x509 -fingerprint \</userinput>
+> <userinput>-in /etc/pki/cyrus-imapd/cyrus-imapd.pem | head -n 1</userinput></screen>
+
+            </para>
+
+        </step>
+
+    </procedure>
+
+
+<programlisting language="INI Files">[general]
+metadata = ~/.offlineimap
+accounts = kolab2to3
+maxsyncaccounts = 1
+ui = Blinkenlights
+socktimeout = 5
+
+[Account kolab2to3]
+localrepository = kolab30
+remoterepository = kolab24
+
+[Repository kolab30]
+type = IMAP
+remotehost = 192.168.122.22
+ssl = yes
+cert_fingerprint = FF:C5:F2:CF:AC:51:29:DA:B6:4D:93:CE:60:97:B4:44:0E:CF:91:E2
+remoteuser = john.doe at example.org
+remotepass = Welcome2KolabSystems
+maxconnections = 1
+expunge = no
+readonly = False
+
+[Repository kolab24]
+type = IMAP
+remotehost = 192.168.122.146
+ssl = yes
+cert_fingerprint = 40:6E:DD:DD:67:DB:C3:BA:D9:72:F2:C2:97:BF:E8:9D:50:D2:3B:7F
+remoteuser = john.doe at example.org
+remotepass = Welcome2KolabSystems
+maxconnections = 5
+expunge = no
+readonly = True</programlisting>
+</chapter>
+
diff --git a/Administrator_Guide/en-US/Upgrading_Cyrus_IMAP_from_2.3_to_2.4.xml b/Administrator_Guide/en-US/Upgrading_Cyrus_IMAP_from_2.3_to_2.4.xml
new file mode 100644
index 0000000..3151c27
--- /dev/null
+++ b/Administrator_Guide/en-US/Upgrading_Cyrus_IMAP_from_2.3_to_2.4.xml
@@ -0,0 +1,212 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Administrator_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<chapter id="chap-Administrator_Guide-Upgrading_Cyrus_IMAP_from_2.3_to_2.4">
+    <title>Upgrading Cyrus IMAP from 2.3 to 2.4</title>
+    <para>
+        As a seperate set of procedures, we have documented for you, the process of upgrading Cyrus IMAP 2.3 to Cyrus IMAP 2.4 on the same server system. This process involves getting some information out of Cyrus IMAP 2.3 before shutting it down and upgrading Cyrus IMAP 2.3 to 2.4.
+    </para>
+    <procedure id="proc-Administrator_Guide-Upgrading_Cyrus_IMAP_from_2.3_to_2.4-Preparations">
+        <title>Preparations</title>
+        <step>
+            <para>
+                During the migration, the Kolab 2 server cannot be allowed to;
+            </para>
+            <para>
+                <orderedlist>
+                    <listitem>
+                        <para>
+                            Receive new email.
+                        </para>
+
+                    </listitem>
+                    <listitem>
+                        <para>
+                            Let users post/submit new data.
+                        </para>
+
+                    </listitem>
+
+                </orderedlist>
+
+            </para>
+            <para>
+                The easiest way to prevent any of this happening is to shut down the MTA and restrict access to the IMAP and POP services through firewalling.
+            </para>
+
+        </step>
+        <step>
+            <para>
+                Remember to create a backup of the data.
+            </para>
+
+        </step>
+
+    </procedure>
+
+    <procedure id="proc-Administrator_Guide-Upgrading_Cyrus_IMAP_from_2.3_to_2.4-Upgrading_to_Cyrus_IMAP_2.4">
+        <title>Upgrading to Cyrus IMAP 2.4</title>
+        <step>
+            <para>
+                List the existing folder annotations, and save them to a file:
+            </para>
+            <para>
+
+<screen># <userinput>kolab list-mailbox-metadata \</userinput>
+> <userinput>"user/*@example.org" > metadata.txt</userinput>
+# <userinput>kolab list-mailbox-metadata \</userinput>
+> <userinput>"shared/*@example.org" >> metadata.txt</userinput></screen>
+
+            </para>
+
+        </step>
+        <step>
+            <para>
+                Stop the Cyrus IMAP 2.3 service.
+            </para>
+
+        </step>
+        <step>
+            <para>
+                Convert the annotations database to flat. This example converts the database from skiplist:
+            </para>
+            <para>
+
+<screen># <userinput>/path/to/cvt_cyrusdb /path/to/annotations.db skiplist /path/to/annotations.txt flat</userinput></screen>
+
+            </para>
+
+        </step>
+        <step>
+            <para>
+                Copy both annotations.db and annotations.txt to a safe location.
+            </para>
+
+        </step>
+        <step>
+            <para>
+                Upgrade to Cyrus IMAP 2.4.
+            </para>
+
+        </step>
+        <xi:include href="step-convert-seen-databases.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+        <step>
+            <para>
+                Start the Cyrus IMAP 2.4 service:
+            </para>
+            <para>
+
+<screen># <userinput>service cyrus-imapd start</userinput></screen>
+
+            </para>
+            <important>
+                <para>
+                    Users should not yet be allowed to interact with the system at this point. We suggest closing access to the system through the firewall.
+                </para>
+
+            </important>
+
+        </step>
+        <xi:include href="step-select-all-mailboxes.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+        <step>
+            <para>
+                Verify annotations have been preserved:
+            </para>
+            <para>
+
+<screen># <userinput>kolab -c conf/kolab-kolab2.example.org.conf \</userinput>
+> <userinput>list-mailbox-metadata "user/john.doe/Calendar*@example.org"</userinput>
+Folder user/john.doe/Calendar at example.org
+  /shared/vendor/cmu/cyrus-imapd/lastpop
+  /shared/vendor/cmu/cyrus-imapd/partition          default
+  /shared/vendor/cmu/cyrus-imapd/lastupdate         8-Aug-2012 16:16:06 +0200
+  /shared/vendor/cmu/cyrus-imapd/size               266564
+  /shared/vendor/cmu/cyrus-imapd/pop3newuidl        true
+  /shared/vendor/cmu/cyrus-imapd/sharedseen         false
+  /shared/vendor/kolab/folder-type                  event.default
+  /shared/vendor/cmu/cyrus-imapd/condstore          true
+  /shared/vendor/cmu/cyrus-imapd/duplicatedeliver   false
+  /shared/vendor/kolab/incidences-for               admins
+  /shared/vendor/kolab/folder-test                  true
+Folder user/john.doe/Calendar/Private at example.org
+  /shared/vendor/cmu/cyrus-imapd/lastpop
+  /shared/vendor/cmu/cyrus-imapd/partition          default
+  /shared/vendor/cmu/cyrus-imapd/lastupdate         8-Aug-2012 16:08:58 +0200
+  /shared/vendor/cmu/cyrus-imapd/condstore          true
+  /shared/vendor/cmu/cyrus-imapd/pop3newuidl        true
+  /shared/vendor/cmu/cyrus-imapd/size               305426
+  /shared/vendor/cmu/cyrus-imapd/sharedseen         false
+  /shared/vendor/kolab/folder-type                  event
+  /shared/vendor/cmu/cyrus-imapd/duplicatedeliver   false
+# <userinput>kolab list-mailbox-metadata "user/john.doe/Calendar*@example.org"</userinput>
+Folder user/john.doe/Calendar at example.org
+  /shared/vendor/cmu/cyrus-imapd/lastpop
+  /shared/vendor/cmu/cyrus-imapd/partition          default
+  /shared/vendor/cmu/cyrus-imapd/lastupdate         8-Aug-2012 16:16:27 +0200
+  /shared/vendor/cmu/cyrus-imapd/duplicatedeliver   false
+  /shared/vendor/cmu/cyrus-imapd/pop3newuidl        true
+  /shared/vendor/cmu/cyrus-imapd/size               266564
+  /shared/vendor/cmu/cyrus-imapd/sharedseen         false
+  /shared/vendor/kolab/folder-type                  event.default
+Folder user/john.doe/Calendar/Private at example.org
+  /shared/vendor/cmu/cyrus-imapd/lastpop
+  /shared/vendor/cmu/cyrus-imapd/partition          default
+  /shared/vendor/cmu/cyrus-imapd/lastupdate         8-Aug-2012 16:27:44 +0200
+  /shared/vendor/cmu/cyrus-imapd/duplicatedeliver   false
+  /shared/vendor/cmu/cyrus-imapd/pop3newuidl        true
+  /shared/vendor/cmu/cyrus-imapd/size               305426
+  /shared/vendor/cmu/cyrus-imapd/sharedseen         false</screen>
+
+            </para>
+            <para>
+                If not, like in the example, use the previously saved <filename>metadata.txt</filename> to restore the annotations:
+            </para>
+
+<programlisting language="Bash">#!/bin/bash
+
+# Interesting Annotations
+declare -a ia
+
+ia[${#ia[@]}]="/shared/vendor/kolab/folder-type"
+ia[${#ia[@]}]="/shared/vendor/kolab/folder-test"
+
+cat metadata.txt | \
+    while read line; do
+        if [ ! -z "$(echo $line | grep ^Folder)" ]; then
+            current_folder=$(echo $line | cut -d' ' -f2-)
+
+            echo "Folder: '${current_folder}'"
+        else
+            annotation_key=$(echo $line | awk '{print $1}')
+            annotation_value=$(echo $line | awk '{print $2}')
+
+            i=0
+            set_annotation=0
+            while [ $i -lt ${#ia[@]} ]; do
+                if [ "${ia[$i]}" == "${annotation_key}" ]; then
+                    set_annotation=1
+                    break
+                fi
+                let i++
+            done
+
+            if [ ${set_annotation} -eq 0 ]; then
+                continue
+            fi
+
+            echo "Setting ${annotation_key} to ${annotation_value}"
+
+            kolab set-mailbox-metadata "${current_folder}" \
+                "${annotation_key}" "${annotation_value}"
+        fi
+    done</programlisting>
+
+        </step>
+
+    </procedure>
+
+
+</chapter>
+
diff --git a/Administrator_Guide/en-US/Upgrading_from_Kolab_2_on_OpenPKG.xml b/Administrator_Guide/en-US/Upgrading_from_Kolab_2_on_OpenPKG.xml
new file mode 100644
index 0000000..12d2f89
--- /dev/null
+++ b/Administrator_Guide/en-US/Upgrading_from_Kolab_2_on_OpenPKG.xml
@@ -0,0 +1,308 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Administrator_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<chapter id="chap-Administrator_Guide-Upgrading_from_Kolab_2_on_OpenPKG">
+    <title>Upgrading from Kolab 2 on OpenPKG</title>
+    <para>
+        As Kolab Groupware used to be distributed as an OpenPKG stack, with different locations for files, the upgrade of a Kolab 2 server to a Kolab 3 server is a largely manual process.
+    </para>
+    <note>
+        <para>
+            The Kolab 3 server used here has been set up for the same domain name space as the Kolab 2 server. No users have been created on the Kolab 3 server.
+        </para>
+
+    </note>
+    <para>
+        <literal>kolab2.example.org</literal> refers to the Kolab 2 server, <literal>kolab3.example.org</literal> refers to the Kolab 3 server.
+    </para>
+    <procedure id="proc-Administrator_Guide-Upgrading_from_Kolab_2_on_OpenPKG-Preparations">
+        <title>Preparations</title>
+        <step>
+            <para>
+                During the migration, the Kolab 2 server cannot be allowed to;
+            </para>
+            <para>
+                <orderedlist>
+                    <listitem>
+                        <para>
+                            Receive new email.
+                        </para>
+
+                    </listitem>
+                    <listitem>
+                        <para>
+                            Let users post/submit new data.
+                        </para>
+
+                    </listitem>
+
+                </orderedlist>
+
+            </para>
+            <para>
+                The easiest way to prevent any of this happening is to shut down all Kolab Groupware related services on <literal>kolab2.example.org</literal>:
+            </para>
+            <para>
+
+<screen># <userinput>/kolab/bin/openpkg rc stop all</userinput></screen>
+
+            </para>
+
+        </step>
+        <step>
+            <para>
+                Shut down the Cyrus IMAP service on <literal>kolab3.example.org</literal>:
+            </para>
+            <para>
+
+<screen># <userinput>service cyrus-imapd stop</userinput></screen>
+
+            </para>
+
+        </step>
+        <step>
+            <para>
+                Create a backup of the data from <literal>kolab2.example.org</literal>.
+            </para>
+
+        </step>
+
+    </procedure>
+
+    <procedure id="proc-Administrator_Guide-Upgrading_from_Kolab_2_on_OpenPKG-Migrate_the_Data_Through_Copying">
+        <title>Migrate the Data Through Copying</title>
+        <step>
+            <para>
+                Login to <literal>kolab3.example.org</literal> to execute the steps in this procedure.
+            </para>
+
+        </step>
+        <!--
+
+   It doesn't seem this step causes the annotations.{db,txt} to transfer 1:1
+        <step>
+            <para>
+                Export the annotations database as flat, from skiplist:
+            </para>
+            <para>
+
+<screen># <userinput>/kolab/bin/cvt_cyrusdb /kolab/var/imapd/annotations.db skiplist \</userinput>
+> <userinput>/kolab/var/imapd/annotations.txt flat</userinput></screen>
+
+            </para>
+
+        </step>
+        //    --> <step>
+            <para>
+                Copy mailboxes.db and annotations.db. These files are located in <filename>/kolab/var/imapd/</filename> on your Kolab 2 server.
+            </para>
+            <para>
+
+<screen># <userinput>scp root at kolab2.example.org:/kolab/var/imapd/annotations.db \</userinput>
+>    <userinput>/var/lib/imap/annotations.db</userinput>
+(...)
+# <userinput>scp root at kolab2.example.org:/kolab/var/imapd/mailboxes.db \</userinput>
+>    <userinput>/var/lib/imap/mailboxes.db</userinput>
+(...)</screen>
+
+            </para>
+
+        </step>
+        <step>
+            <para>
+                Migrate the mail spool:
+            </para>
+            <para>
+
+<screen># <userinput>rsync -rltpHvz --progress --partial \</userinput>
+>    <userinput>kolab2.example.org:/var/imapd/spool/ \</userinput>
+>    <userinput>/var/spool/imap/</userinput>
+(...)</screen>
+
+            </para>
+
+        </step>
+        <step>
+            <para>
+                Migrate the seen and subscription databases:
+            </para>
+            <para>
+
+<screen># <userinput>rsync -rltpHvz --progress --partial \</userinput>
+>    <userinput>kolab2.example.org:/var/imapd/domain/ \</userinput>
+>    <userinput>/var/lib/imap/domain/</userinput>
+(...)
+# <userinput>rsync -rltpHvz --progress --partial \</userinput>
+>    <userinput>kolab2.example.org:/var/imapd/user/ \</userinput>
+>    <userinput>/var/lib/imap/user/</userinput>
+(...)</screen>
+
+            </para>
+
+        </step>
+        <step>
+            <para>
+                Ensure the filesystem permissions are correct:
+            </para>
+            <para>
+
+<screen># <userinput>chown -R cyrus:mail /var/lib/imap/ /var/spool/imap/</userinput></screen>
+
+            </para>
+
+        </step>
+        <step>
+            <para>
+                Ensure only the cyrus user can read and write, and the mail group can read the contents of either directory tree:
+            </para>
+            <para>
+
+<screen># <userinput>find /var/lib/imap -type f -exec chmod 640 {} \;</userinput>
+# <userinput>find /var/lib/imap -type d -exec chmod 750 {} \;</userinput>
+# <userinput>find /var/spool/imap -type f -exec chmod 640 {} \;</userinput>
+# <userinput>find /var/spool/imap -type d -exec chmod 750 {} \;</userinput></screen>
+
+            </para>
+
+        </step>
+        <xi:include href="step-convert-seen-databases.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+        <step>
+            <para>
+                Stop the Kolab daemon:
+            </para>
+            <para>
+
+<screen># <userinput>service kolabd stop</userinput></screen>
+
+            </para>
+
+        </step>
+        <step>
+            <para>
+                Start the Cyrus IMAP service on <literal>kolab3.example.org</literal>:
+            </para>
+            <para>
+
+<screen># <userinput>service cyrus-imapd start</userinput></screen>
+
+            </para>
+            <important>
+                <para>
+                    Users should not yet be allowed to interact with the system at this point. We suggest closing access to the system through the firewall.
+                </para>
+
+            </important>
+
+        </step>
+        <xi:include href="step-select-all-mailboxes.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+        <step>
+            <para>
+                Annotations...
+            </para>
+            <para>
+
+<screen># <userinput>kolab -c conf/kolab-kolab2.example.org.conf \</userinput>
+> <userinput>list-mailbox-metadata "user/john.doe/Calendar*@example.org"</userinput>
+Folder user/john.doe/Calendar at example.org
+  /shared/vendor/cmu/cyrus-imapd/lastpop
+  /shared/vendor/cmu/cyrus-imapd/partition          default
+  /shared/vendor/cmu/cyrus-imapd/lastupdate         8-Aug-2012 16:16:06 +0200
+  /shared/vendor/cmu/cyrus-imapd/size               266564
+  /shared/vendor/cmu/cyrus-imapd/pop3newuidl        true
+  /shared/vendor/cmu/cyrus-imapd/sharedseen         false
+  /shared/vendor/kolab/folder-type                  event.default
+  /shared/vendor/cmu/cyrus-imapd/condstore          true
+  /shared/vendor/cmu/cyrus-imapd/duplicatedeliver   false
+  /shared/vendor/kolab/incidences-for               admins
+  /shared/vendor/kolab/folder-test                  true
+Folder user/john.doe/Calendar/Private at example.org
+  /shared/vendor/cmu/cyrus-imapd/lastpop
+  /shared/vendor/cmu/cyrus-imapd/partition          default
+  /shared/vendor/cmu/cyrus-imapd/lastupdate         8-Aug-2012 16:08:58 +0200
+  /shared/vendor/cmu/cyrus-imapd/condstore          true
+  /shared/vendor/cmu/cyrus-imapd/pop3newuidl        true
+  /shared/vendor/cmu/cyrus-imapd/size               305426
+  /shared/vendor/cmu/cyrus-imapd/sharedseen         false
+  /shared/vendor/kolab/folder-type                  event
+  /shared/vendor/cmu/cyrus-imapd/duplicatedeliver   false
+# <userinput>kolab list-mailbox-metadata "user/john.doe/Calendar*@example.org"</userinput>
+Folder user/john.doe/Calendar at example.org
+  /shared/vendor/cmu/cyrus-imapd/lastpop
+  /shared/vendor/cmu/cyrus-imapd/partition          default
+  /shared/vendor/cmu/cyrus-imapd/lastupdate         8-Aug-2012 16:16:27 +0200
+  /shared/vendor/cmu/cyrus-imapd/duplicatedeliver   false
+  /shared/vendor/cmu/cyrus-imapd/pop3newuidl        true
+  /shared/vendor/cmu/cyrus-imapd/size               266564
+  /shared/vendor/cmu/cyrus-imapd/sharedseen         false
+  /shared/vendor/kolab/folder-type                  event.default
+Folder user/john.doe/Calendar/Private at example.org
+  /shared/vendor/cmu/cyrus-imapd/lastpop
+  /shared/vendor/cmu/cyrus-imapd/partition          default
+  /shared/vendor/cmu/cyrus-imapd/lastupdate         8-Aug-2012 16:27:44 +0200
+  /shared/vendor/cmu/cyrus-imapd/duplicatedeliver   false
+  /shared/vendor/cmu/cyrus-imapd/pop3newuidl        true
+  /shared/vendor/cmu/cyrus-imapd/size               305426
+  /shared/vendor/cmu/cyrus-imapd/sharedseen         false</screen>
+
+            </para>
+            <para>
+                Fix'em:
+            </para>
+
+<programlisting language="Bash">#!/bin/bash
+
+# Interesting Annotations
+declare -a ia
+
+ia[${#ia[@]}]="/shared/vendor/kolab/folder-type"
+ia[${#ia[@]}]="/shared/vendor/kolab/folder-test"
+
+for folder_search in user/*@example.org shared/*@example.org; do
+    kolab -c conf/kolab-kolab.kolabsys.com.conf \
+        list-mailbox-metadata "${folder_search}" | \
+        while read line; do
+            if [ ! -z "$(echo $line | grep ^Folder)" ]; then
+                current_folder=$(echo $line | cut -d' ' -f2-)
+
+                echo "Folder: '${current_folder}'"
+            else
+                annotation_key=$(echo $line | awk '{print $1}')
+                annotation_value=$(echo $line | awk '{print $2}')
+
+                i=0
+                set_annotation=0
+                while [ $i -lt ${#ia[@]} ]; do
+                    if [ "${ia[$i]}" == "${annotation_key}" ]; then
+                        set_annotation=1
+                        break
+                    fi
+                    let i++
+                done
+
+                if [ ${set_annotation} -eq 0 ]; then
+                    continue
+                fi
+
+                echo "Setting ${annotation_key} to ${annotation_value}"
+
+                kolab set-mailbox-metadata \
+                    "${current_folder}" \
+                    "${annotation_key}" \
+                    "${annotation_value}"
+            fi
+        done
+
+done</programlisting>
+
+        </step>
+
+    </procedure>
+
+    <para>
+        find /var/spool/imap -type f -name "*." | sort | while read file ; do grep -l "X-Mailer: z-push-Kolab Backend" "$file" ; done
+    </para>
+
+</chapter>
+
diff --git a/Administrator_Guide/en-US/Verifying_the_Installation.xml b/Administrator_Guide/en-US/Verifying_the_Installation.xml
index 73d4a22..c53e3fd 100644
--- a/Administrator_Guide/en-US/Verifying_the_Installation.xml
+++ b/Administrator_Guide/en-US/Verifying_the_Installation.xml
@@ -64,6 +64,17 @@
                             </note>
 
                         </step>
+                        <step>
+                            <para>
+                                Perform a search:
+                            </para>
+                            <para>
+
+<screen># <userinput>ldapsearch -x -h localhost -D "${binddn}" -w "${bindpw}" -b "${basedn}"</userinput></screen>
+
+                            </para>
+
+                        </step>
 
                     </procedure>
 
diff --git a/Administrator_Guide/en-US/part-Kolab_Server.xml b/Administrator_Guide/en-US/part-Kolab_Server.xml
index f98606e..7f4f9dc 100755
--- a/Administrator_Guide/en-US/part-Kolab_Server.xml
+++ b/Administrator_Guide/en-US/part-Kolab_Server.xml
@@ -5,7 +5,11 @@
 ]>
 <part id="part-Administrator_Guide-Kolab_Groupware_Server">
     <title>Kolab Groupware Server</title>
-    <xi:include href="Verifying_the_Installation.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <!--
+    <xi:include href="Upgrading_from_Kolab_2_on_OpenPKG.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href="Upgrading_Accounts_from_Kolab_Format_version_2.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href="Upgrading_Cyrus_IMAP_from_2.3_to_2.4.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    // --> <xi:include href="Verifying_the_Installation.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
     <xi:include href="Configuring_the_Kolab_Server.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
     <xi:include href="Detailed_Kolab_Server_Overview.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
     <xi:include href="Kolab_Web_Administration_Panel.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
diff --git a/Administrator_Guide/en-US/step-convert-seen-databases.xml b/Administrator_Guide/en-US/step-convert-seen-databases.xml
new file mode 100644
index 0000000..334a57e
--- /dev/null
+++ b/Administrator_Guide/en-US/step-convert-seen-databases.xml
@@ -0,0 +1,23 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE step PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Administrator_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<step>
+    <para>
+        As the seen databases are particularly hard for Cyrus IMAP 2.4 to upgrade real-time, convert the seen databases with, for example:
+    </para>
+
+<programlisting language="Bash">#!/bin/bash
+
+find /var/lib/imap/ -type f -name "*.seen" | \
+    sort | while read seendb; do
+        /usr/lib/cyrus-imapd/cvt_cyrusdb ${seendb} skiplist ${seendb}.txt flat
+        mv ${seendb} ${seendb}.orig
+        /usr/lib/cyrus-imapd/cvt_cyrusdb ${seendb}.txt flat ${seendb} skiplist
+        chown cyrus:mail ${seendb} ${seendb}.txt ${seendb}.orig
+    done
+</programlisting>
+
+</step>
+
diff --git a/Administrator_Guide/en-US/step-select-all-mailboxes.xml b/Administrator_Guide/en-US/step-select-all-mailboxes.xml
new file mode 100644
index 0000000..81715d1
--- /dev/null
+++ b/Administrator_Guide/en-US/step-select-all-mailboxes.xml
@@ -0,0 +1,78 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE step PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Administrator_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<step>
+    <para>
+        Use the Cyrus IMAP administrator account to select all mailboxes, to make sure the format upgrade is not taking place while the user is attempting to login / select a mailbox.
+    </para>
+    <note>
+        <para>
+            Optionally, enable full so-called telemetry logging:
+        </para>
+        <para>
+
+<screen># <userinput>mkdir -p /var/lib/imap/log/cyrus-admin</userinput>
+# <userinput>chown cyrus:mail /var/lib/imap/log/cyrus-admin</userinput></screen>
+
+        </para>
+
+    </note>
+
+<programlisting language="Bash">#!/bin/bash
+
+kolab lm | while read folder; do
+    echo ". SELECT \"${folder}\""
+done | \
+    imtest -t "" \
+        -u ${cyrus_admin} \
+        -a ${cyrus_admin} \
+        -w "${cyrus_admin_pw}" \
+        ${imap_host}</programlisting>
+    <para>
+        or, alternatively;
+    </para>
+
+<programlisting language="Bash">#!/bin/bash
+
+ . ./settings.sh
+
+echo '. LIST "" "*"' | \
+    imtest \
+        -t "" \
+        -u ${cyrus_admin} \
+        -a ${cyrus_admin} \
+        -w "${cyrus_admin_pw}" \
+        ${imap_host} | \
+
+        sed -r \
+            -e '/^\* LIST/!d' \
+            -e 's/.*\"\/\"\s(.*)/\1/g' \
+            -e 's/^"//g' \
+            -e 's/"$//g' \
+            -e 's/\s*\r*\n*$//g' | \
+
+        while read folder; do
+            echo ". SELECT \"${folder}\""
+        done | \
+            imtest -t "" \
+                -u ${cyrus_admin} \
+                -a ${cyrus_admin} \
+                -w "${cyrus_admin_pw}" \
+                ${imap_host}</programlisting>
+    <para>
+        On your console display, you will see some errors stating <emphasis>NO Permission Denied</emphasis>. These errors you can ignore.
+    </para>
+    <para>
+        You'll see messages such as the following appear in <filename>/var/log/maillog</filename>:
+    </para>
+    <para>
+
+<screen>Aug  8 16:40:10 kolab imap[4644]: Index upgrade: example.org!shared.lists.example^org.memo (10 -> 12)
+Aug  8 16:40:10 kolab imap[4644]: seen_db: user cyrus-admin opened /var/lib/imap/user/c/cyrus-admin.seen</screen>
+
+    </para>
+
+</step>
+





More information about the commits mailing list