Uruchomienie kalendarza w roundcube

Dodatek kalendarza dla roundcube nie znajduje się w drzewie ports. Dlatego też źródła trzeba pobrać z gitlab. A następnie wykonać niezbędną konfigurację. Cały poniższy przepis powstał na bazie howto (patrz źródła z sieci internet).

Pobranie źródeł za pomocą git

cd /tmp
git clone https://git.kolab.org/diffusion/RPK/roundcubemail-plugins-kolab.git 

Przekopiowanie plików do katalogu z roundcube

cp -pr /tmp/roundcubemail-plugins-kolab/plugins/calendar /usr/local/www/roundcube/plugins/
cp -pr /tmp/roundcubemail-plugins-kolab/plugins/libcalendaring /usr/local/www/roundcube/plugins/

Instalacja dodatkowych pakietów

Za pomocą własnego repozytorium pakietów należy doinstalować następujące oprogramowanie:

pkg install -Uy www/sabredav

Konfiguracja pluginu

Utworzenie właściwych plików

mv /usr/local/www/roundcube/plugins/calendar/config.inc.php.dist /usr/local/www/roundcube/plugins/calendar/config.dist.inc.php
cp -p /usr/local/www/roundcube/plugins/calendar/config.dist.inc.php /usr/local/www/roundcube/plugins/calendar/config.inc.php

Nałożenie ustawień lokalnych (w stosunku do domyślnych)

diff -udp /usr/local/www/roundcube/plugins/calendar/config.dist.inc.php /usr/local/www/roundcube/plugins/calendar/config.inc.php

--- /usr/local/www/roundcube/plugins/calendar/config.dist.inc.php       2017-11-23 21:38:55.096519000 +0100
+++ /usr/local/www/roundcube/plugins/calendar/config.inc.php    2017-11-23 22:15:16.949681000 +0100
@@ -47,19 +47,19 @@ $config['calendar_date_format_sets'] = a
 );

 // general date format (only set if different from default date format and not user configurable)
-// $config['calendar_date_format'] = "yyyy-MM-dd";
+$config['calendar_date_format'] = "yyyy-MM-dd";

 // time format  (only set if different from default date format)
-// $config['calendar_time_format'] = "HH:mm";
+$config['calendar_time_format'] = "HH:mm";

 // short date format (used for column titles)
-// $config['calendar_date_short'] = 'M-d';
+$config['calendar_date_short'] = 'M-d';

 // long date format (used for calendar title)
-// $config['calendar_date_long'] = 'MMM d yyyy';
+$config['calendar_date_long'] = 'yyyy MMM d';

 // date format used for agenda view
-// $config['calendar_date_agenda'] = 'ddd MM-dd';
+$config['calendar_date_agenda'] = 'ddd MM-dd';

 // timeslots per hour (1, 2, 3, 4, 6)
 $config['calendar_timeslots'] = 2;
@@ -141,13 +141,13 @@ $config['calendar_include_freebusy_data'
 // To override the SMTP port or connection method, provide a full URL like 'tls://somehost:587'
 // This will add a link to invitation messages to allow users from outside
 // to reply when their mail clients do not support iTip format.
-$config['calendar_itip_smtp_server'] = null;
+$config['calendar_itip_smtp_server'] = 'tls://localhost.bsdserwis.com:587';

 // SMTP username used to send (anonymous) itip messages
-$config['calendar_itip_smtp_user'] = 'smtpauth';
+$config['calendar_itip_smtp_user'] = '************';

 // SMTP password used to send (anonymous) itip messages
-$config['calendar_itip_smtp_pass'] = '123456';
+$config['calendar_itip_smtp_pass'] = '************';

 // show virtual invitation calendars (Kolab driver only)
 $config['kolab_invitation_calendars'] = false;

Dodanie tabel do bazy danych

cat /usr/local/www/roundcube/plugins/calendar/drivers/database/SQL/postgres.initial.sql | psql -U roundcube roundcubemail

Poprawka dla plugins/libcalendaring/libcalendaring.php

W pliku /usr/local/www/roundcube/plugins/libcalendaring/libcalendaring.php należy dodać kod, jak na poniższej łatce:

--- /usr/local/www/roundcube/plugins/libcalendaring/libvcalendar.php.orig       2017-11-23 21:38:55.000000000 +0100
+++ /usr/local/www/roundcube/plugins/libcalendaring/libvcalendar.php    2017-11-25 20:59:46.199850000 +0100
@@ -21,6 +21,8 @@
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */

+require_once ("/usr/local/www/sabredav/vendor/autoload.php");
+
 use \Sabre\VObject;
 use \Sabre\VObject\DateTimeParser;

Pozwala to na możliwość wyświetlania zawartości pojedynczego emaila.

Włączenie pluginu w konfiguracji całego panelu

Na koniec pozostaje uruchomić plugin calendar w całym panelu. W tym celu należy zmienić plik /usr/local/www/roundcube/config/config.inc.php:

// List of active plugins (in plugins/ directory)
$config['plugins'] = array(
   [...]
    'calendar',
);