Kolab 3.2

Chwala

I have to force using the “curl” Adapter for HTTP_Request2:

/usr/share/kolab-chwala/lib/file_ui_api.php
    public function post($action, $url_args = array(), $post = array())
    {   
        $url = $this->build_url($action, $url_args);
 
//        Log::trace("Calling API POST: $url");
 
        $this->request->setAdapter("curl"); // HERE
        $this->request->setMethod(HTTP_Request2::METHOD_POST);
        $this->request->addPostParameter($post);
 
        return $this->get_response($url);
    }   

This might be due to the local test setup.

Libkolab/libkolabxml

After properly setup 'libkolabxml' and 'libkolab' that provides the PHP extensions required for the www-apps, the php-fpm workers started to crash:

[18-Sep-2014 00:00:37] WARNING: [pool kolab-roundcube] child 29896 exited with code 255 after 7.656082 seconds from start
[18-Sep-2014 00:00:37] NOTICE: [pool kolab-roundcube] child 29931 started
[18-Sep-2014 00:00:38] WARNING: [pool kolab-roundcube] child 29931 exited with code 255 after 1.525064 seconds from start
[18-Sep-2014 00:00:38] NOTICE: [pool kolab-roundcube] child 29944 started
[18-Sep-2014 00:00:45] WARNING: [pool kolab-roundcube] child 29944 exited with code 255 after 6.855387 seconds from start
[18-Sep-2014 00:00:45] NOTICE: [pool kolab-roundcube] child 29971 started

A 'strace' to a php-fprm worker form the kolab-roundcube pool looked like:

mmap(0x6dd1d2ecc000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 8, 0x2000) = 0x6dd1d2ecc000
close(8)                                = 0
mprotect(0x6dd1d2ecc000, 4096, PROT_READ) = 0
brk(0x73fa49e1000)                      = 0x73fa49e1000
open("/usr/share/locale/C/XercesMessages_en_US.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/C/LC_MESSAGES/XercesMessages_en_US.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/C/XercesMessages_en_US.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/C/LC_MESSAGES/XercesMessages_en_US.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/C/XercesMessages_en_US.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/C/LC_MESSAGES/XercesMessages_en_US.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/C/XercesMessages_en_US.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/C/LC_MESSAGES/XercesMessages_en_US.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
fstat(1, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 3), ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, 0x7b8dd40de200) = -1 ENOTTY (Inappropriate ioctl for device)
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x6dd1e734a000
write(2, "Cannot load message domain\n", 27) = 27
write(1, "Could not open catalog:\n XercesM"..., 79) = 79
exit_group(-1)                          = ?
+++ exited with 255 +++

So it seems that some components did not properly set the Xerces environment and 'XercesMessages_en_US.cat' is expected at '/usr/share/locale/C' but it is located at '/usr/share/xerces-c/msg/XercesMessages_en_US.cat'. So the following is a workaround for this issue:

$ ln -s /usr/share/xerces-c/msg /usr/share/locale/C

Roundcube Attachments

The plugin redundant_attachment seems to falsely remove all attachments when sending a mail (see #3683. We recommend to disable the plugin until the issue is solved:

/etc/kolab-roundcube/config.inc.php
    $config['plugins'] = array(
            'acl',
            'archive',
            'calendar',
            'jqueryui',
            'kolab_activesync',
            'kolab_addressbook',
            'kolab_auth',
            'kolab_config',
            'kolab_files',
            'kolab_folders',
            'libkolab',
            'libcalendaring',
            'managesieve',
            'newmail_notifier',
            'odfviewer',
            'password',
            // 'redundant_attachments', see issue #3683
            'tasklist',
            'threading_as_default',
            // contextmenu must be after kolab_addressbook (#444)
            'contextmenu',
            'identity_smtp',
            'getmail',
            'persistent_login'
        );