roundcubemailにkolab/calendarとkolab/tasklistをインストールする

スポンサーリンク
Linux
スポンサーリンク
スポンサーリンク

概要

roundcubemailの利便性を上げるためにカレンダーやタスクリストをインストールした記録です。
そのため以下のパッケージのインストールやバージョンアップを行う。
・kolab/calendarをインストールする。
・kolab/tasklistをインストールする。
・libkolabxmlパッケージのインストールに必要なパッケージをインストールする。
・libkolabxmlソースをビルドしてインストールする。
・phpをバージョンアップする。

kolab/calendarのインストール

READMEを確認してインストールする

以下のREADMEの内容に従ってインストールする。

1. Get the source from git
 
  $ cd /tmp
  $ git clone https://git.kolab.org/diffusion/RPK/roundcubemail-plugins-kolab.git
  $ cd /<path-to-roundcube>/plugins
  $ cp -r /tmp/roundcubemail-plugins-kolab/plugins/calendar .
  $ cp -r /tmp/roundcubemail-plugins-kolab/plugins/libcalendaring .
  $ cp -r /tmp/roundcubemail-plugins-kolab/plugins/libkolab .
 
2. Create calendar plugin configuration
 
  $ cd calendar/
  $ cp config.inc.php.dist config.inc.php
  $ edit config.inc.php
 
3. Initialize the calendar database tables
 
  $ cd ../../
  $ bin/initdb.sh --dir=plugins/calendar/drivers/database/SQL
 
4. Build css styles for the Elastic skin
 
  $ lessc --relative-urls -x plugins/libkolab/skins/elastic/libkolab.less > plugins/libkolab/skins/elastic/libkolab.min.css
 
5. Enable the calendar plugin
 
  $ edit config/config.inc.php
 
Add 'calendar' to the list of active plugins:
 
  $config['plugins'] = array(
    (...)
    'calendar',
  );

 

動作を確認する。

カレンダーの画面は表示されるが、ボタンがグレーアウトのため使用できない。

kolab/tasklistのインストール

READMEを確認すしてインストールする

以下のREADMEの内容に従ってインストールする。

1. Get the source from git

  $ cd /tmp
  $ git clone https://git.kolab.org/diffusion/RPK/roundcubemail-plugins-kolab.git
  $ cd /<path-to-roundcube>/plugins
  $ cp -r /tmp/roundcubemail-plugins-kolab/plugins/calendar .
  $ cp -r /tmp/roundcubemail-plugins-kolab/plugins/libcalendaring .
  $ cp -r /tmp/roundcubemail-plugins-kolab/plugins/libkolab .

2. Create calendar plugin configuration

  $ cd calendar/
  $ cp config.inc.php.dist config.inc.php
  $ edit config.inc.php

3. Initialize the calendar database tables

  $ cd ../../
  $ bin/initdb.sh --dir=plugins/calendar/drivers/database/SQL

4. Build css styles for the Elastic skin

  $ lessc --relative-urls -x plugins/libkolab/skins/elastic/libkolab.less > plugins/libkolab/skins/elastic/libkolab.min.css

5. Enable the calendar plugin

  $ edit config/config.inc.php

Add 'calendar' to the list of active plugins:

  $config['plugins'] = array(
    (...)
    'calendar',
  );

 

動作を確認する。

タスクの画面は表示されるが、ボタンがグレーアウトのため使用できない。

 

libkolabパッケージのREADME確認

READMEには、以下のライブラリやパッケージのインストールが必要との記載がある。

REQUIREMENTS
------------
* libkolabxml PHP bindings
  - kolabformat.so loaded into PHP
  - kolabformat.php placed somewhere in the include_path
* PEAR: HTTP/Request2
* PEAR: Net/URL2

 

libkolabxmlパッケージのインストールをこころみる

php-kolabformatパッケージをインストールしてみる

php-kolabformatパッケージにkolabformat.soライブラリが入っているので、php-kolabformatパッケージのインストールを実行するがエラーとなる。
php-8.0用(php-common-8.0.30-XX)のphp-kolabformat-1.2.0-12パッケージしか無いと言っているらしい。

# yum -y install php-kolabformat
メタデータの期限切れの最終確認: 0:10:39 前の 2025年01月23日 19時32分02秒 に実施しました。
エラー: 
 問題: package php-kolabformat-1.2.0-12.el9.x86_64 from epel requires php(api) = 20200930-64, but none of the providers can be installed
  - package php-kolabformat-1.2.0-12.el9.x86_64 from epel requires php(zend-abi) = 20200930-64, but none of the providers can be installed
  - 競合するリクエスト
  - package php-common-8.0.30-10.el9.remi.x86_64 from remi-modular is filtered out by modular filtering
  - package php-common-8.0.30-11.el9.remi.x86_64 from remi-modular is filtered out by modular filtering
  - package php-common-8.0.30-1.el9_2.x86_64 from appstream is filtered out by modular filtering
(インストール不可のパッケージをスキップするには、'--skip-broken' を追加してみてください または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください)
#

 

phpをバージョンアップする

phpをphp-8.3にバージョンアップすれば対応するphp-kolabformatパッケージが存在して、インストールできるかもしれないと思い、phpを8.3にバージョンアップしてみた。

# dnf module list php
メタデータの期限切れの最終確認: 0:00:29 前の 2025年01月27日 20時58分14秒 に実施しました。
Remi's Modular repository for Enterprise Linux 9 - x86_64
Name             Stream               Profiles                               Summary                          
php              remi-7.4             common [d], devel, minimal             PHP scripting language           
php              remi-8.0             common [d], devel, minimal             PHP scripting language           
php              remi-8.1             common [d], devel, minimal             PHP scripting language           
php              remi-8.2             common [d], devel, minimal             PHP scripting language           
php              remi-8.3             common [d], devel, minimal             PHP scripting language           
php              remi-8.4             common [d], devel, minimal             PHP scripting language           
 
ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled
# 
#  dnf module -y switch-to php:remi-8.3
メタデータの期限切れの最終確認: 0:01:06 前の 2025年01月27日 20時58分14秒 に実施しました。
依存関係が解決しました。
==============================================================================================================
 パッケージ                     Arch            バージョン                        リポジトリー          サイズ
==============================================================================================================
アップグレード:
 php                            x86_64          8.3.16-1.el9.remi                 remi-modular          1.8 M
 php-cli                        x86_64          8.3.16-1.el9.remi                 remi-modular          5.6 M
 php-common                     x86_64          8.3.16-1.el9.remi                 remi-modular          1.3 M
 php-devel                      x86_64          8.3.16-1.el9.remi                 remi-modular          778 k
 php-enchant                    x86_64          8.3.16-1.el9.remi                 remi-modular           28 k
 php-fpm                        x86_64          8.3.16-1.el9.remi                 remi-modular          1.9 M
 php-gd                         x86_64          8.3.16-1.el9.remi                 remi-modular           64 k
 php-intl                       x86_64          8.3.16-1.el9.remi                 remi-modular          231 k
 php-ldap                       x86_64          8.3.16-1.el9.remi                 remi-modular           63 k
 php-mbstring                   x86_64          8.3.16-1.el9.remi                 remi-modular          580 k
 php-mysqlnd                    x86_64          8.3.16-1.el9.remi                 remi-modular          219 k
 php-opcache                    x86_64          8.3.16-1.el9.remi                 remi-modular          577 k
 php-pdo                        x86_64          8.3.16-1.el9.remi                 remi-modular          120 k
 php-pecl-apcu                  x86_64          5.1.24-1.el9.remi.8.3             remi-modular           77 k
 php-pecl-zip                   x86_64          1.22.4-1.el9.remi.8.3             remi-modular           77 k
 php-process                    x86_64          8.3.16-1.el9.remi                 remi-modular           69 k
 php-sodium                     x86_64          8.3.16-1.el9.remi                 remi-modular           61 k
 php-xml                        x86_64          8.3.16-1.el9.remi                 remi-modular          221 k
依存関係のインストール:
 capstone                       x86_64          4.0.2-0.10.el9.remi               remi-safe             765 k
弱い依存関係のインストール:
 php-nikic-php-parser5          noarch          5.4.0-1.el9                       epel                  174 k
モジュールストリームの有効化中:
 php                                            remi-8.3                                                     
 
トランザクションの概要
==============================================================================================================
インストール     2 パッケージ
アップグレード  18 パッケージ
 
ダウンロードサイズの合計: 15 M
パッケージのダウンロード:
 
アップグレード済み:
  php-8.3.16-1.el9.remi.x86_64                          php-cli-8.3.16-1.el9.remi.x86_64                      
  php-common-8.3.16-1.el9.remi.x86_64                   php-devel-8.3.16-1.el9.remi.x86_64                    
  php-enchant-8.3.16-1.el9.remi.x86_64                  php-fpm-8.3.16-1.el9.remi.x86_64                      
  php-gd-8.3.16-1.el9.remi.x86_64                       php-intl-8.3.16-1.el9.remi.x86_64                     
  php-ldap-8.3.16-1.el9.remi.x86_64                     php-mbstring-8.3.16-1.el9.remi.x86_64                 
  php-mysqlnd-8.3.16-1.el9.remi.x86_64                  php-opcache-8.3.16-1.el9.remi.x86_64                  
  php-pdo-8.3.16-1.el9.remi.x86_64                      php-pecl-apcu-5.1.24-1.el9.remi.8.3.x86_64            
  php-pecl-zip-1.22.4-1.el9.remi.8.3.x86_64             php-process-8.3.16-1.el9.remi.x86_64                  
  php-sodium-8.3.16-1.el9.remi.x86_64                   php-xml-8.3.16-1.el9.remi.x86_64                      
インストール済み:
  capstone-4.0.2-0.10.el9.remi.x86_64                 php-nikic-php-parser5-5.4.0-1.el9.noarch                
 
完了しました!
# 
# php -v
PHP 8.3.16 (cli) (built: Jan 14 2025 18:25:29) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.3.16, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.16, Copyright (c), by Zend Technologies
# 
# dnf module list phpdnf module list php
メタデータの期限切れの最終確認: 0:04:21 前の 2025年01月27日 20時58分14秒 に実施しました。
Remi's Modular repository for Enterprise Linux 9 - x86_64
Name            Stream                  Profiles                              Summary                         
php             remi-7.4                common [d], devel, minimal            PHP scripting language          
php             remi-8.0                common [d], devel, minimal            PHP scripting language          
php             remi-8.1                common [d], devel, minimal            PHP scripting language          
php             remi-8.2                common [d], devel, minimal            PHP scripting language          
php             remi-8.3 [e]            common [d], devel, minimal            PHP scripting language          
php             remi-8.4                common [d], devel, minimal            PHP scripting language          
 
ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled
# 
# systemctl restart nginx 
# 
# systemctl restart php-fpm
#

 

phpを8.3にバージョンアップしたが、やはりphp-8.0のphp-kolabformatパッケージしか無いと言われた。

libkolabxmlパッケージのソースをダウンロードしてbuildする

すでに以下のパッケージのみインストールされています。
libkolabxml-1.2.0-12.el9.x86_64

インストールするパッケージが無いならパッケージを作ろうと思い、すでにインストールされているパッケージと同じバージョンのlibkolabxmlパッケージのソースバージョンをダウンロードする。
libkolabxmlソースをbuildすると以下のパッケージが作成される。
・java-kolabformat-1.2.0-12.el9.x86_64.rpm
・libkolabxml-1.2.0-12.el9.x86_64.rpm
・libkolabxml-debuginfo-1.2.0-12.el9.x86_64.rpm
・libkolabxml-debugsource-1.2.0-12.el9.x86_64.rpm
・libkolabxml-devel-1.2.0-12.el9.x86_64.rpm
・php-kolabformat-1.2.0-12.el9.x86_64.rpm
・php-kolabformat-debuginfo-1.2.0-12.el9.x86_64.rpm
・python3-kolabformat-1.2.0-12.el9.x86_64.rpm
・python3-kolabformat-debuginfo-1.2.0-12.el9.x86_64.rpm
ソースファイルをrpmbuildするが、libkolabxmlパッケージ作成に必要な他のパッケージが不足しているため、作成できない。

# rpmbuild --rebuild libkolabxml-1.2.0-12.el9.src.rpm
libkolabxml-1.2.0-12.el9.src.rpm をインストール中です。
警告: user mockbuild does not exist - using root
警告: group mock does not exist - using root
警告: user mockbuild does not exist - using root
警告: group mock does not exist - using root
警告: Macro expanded in comment on line 80: %{version}-%{release}
 
setting SOURCE_DATE_EPOCH=1658361600
エラー: ビルド依存性の失敗:
    e2fsprogs-devel は libkolabxml-1.2.0-12.el9.x86_64 に必要とされています
    libcurl-devel は libkolabxml-1.2.0-12.el9.x86_64 に必要とされています
    swig は libkolabxml-1.2.0-12.el9.x86_64 に必要とされています
    uuid-devel は libkolabxml-1.2.0-12.el9.x86_64 に必要とされています
    xerces-c-devel は libkolabxml-1.2.0-12.el9.x86_64 に必要とされています
    xsd は libkolabxml-1.2.0-12.el9.x86_64 に必要とされています
#

 

yumコマンドでインストールできるパッケージをインストールする

すべてのパッケージではないが、yumコマンドでインストールできる以下のパッケージをインストールする。
・swig
・xsd
・xerces-c-devel

# yum -y install swig
依存関係が解決しました。
==============================================================================================================
 パッケージ             アーキテクチャー         バージョン                       リポジトリー          サイズ
==============================================================================================================
インストール:
 swig                   x86_64                   4.0.2-8.el9                      crb                   1.5 M
 
トランザクションの概要
==============================================================================================================
インストール  1 パッケージ
インストール済み:
  swig-4.0.2-8.el9.x86_64                                                                                     
 
完了しました!
# 
# yum -y install xsd
メタデータの期限切れの最終確認: 0:00:16 前の 2025年01月26日 14時43分58秒 に実施しました。
依存関係が解決しました。
==============================================================================================================
 パッケージ              アーキテクチャー       バージョン                         リポジトリー         サイズ
==============================================================================================================
インストール:
 xsd                     x86_64                 4.1.0-0.8.a11.el9                  epel                 1.2 M
依存関係のインストール:
 libcutl                 x86_64                 1.10.0-23.el9                      epel                 311 k
 
トランザクションの概要
==============================================================================================================
インストール  2 パッケージ
インストール済み:
  libcutl-1.10.0-23.el9.x86_64                          xsd-4.1.0-0.8.a11.el9.x86_64                         
 
完了しました!
# 
# yum -y install xerces-c-devel
メタデータの期限切れの最終確認: 0:01:33 前の 2025年01月26日 14時43分58秒 に実施しました。
依存関係が解決しました。
==============================================================================================================
 パッケージ                     アーキテクチャー       バージョン                  リポジトリー         サイズ
==============================================================================================================
インストール:
 xerces-c-devel                 x86_64                 3.2.5-1.el9                 epel                 435 k
 
トランザクションの概要
==============================================================================================================
インストール  1 パッケージ
インストール済み:
  xerces-c-devel-3.2.5-1.el9.x86_64                                                                           
 
完了しました!
#

 

パッケージをダウンロードしてインストールする

yumコマンドでインストできない以下のパッケージをhttps://rpmfind.netサイトからダウンロードしてインストールする。
・e2fsprogs-devel-1.46.5-5.el9.x86_64.rpm
・libcurl-devel-7.76.1-31.el9.x86_64.rpm
・uuid-1.6.2-55.el9.x86_64.rpm
・uuid-devel-1.6.2-55.el9.x86_64.rpm

# rpm -ivf e2fsprogs-devel-1.46.5-5.el9.x86_64.rpm
警告: e2fsprogs-devel-1.46.5-5.el9.x86_64.rpm: ヘッダー V4 RSA/SHA256 Signature、鍵 ID 8483c65d: NOKEY
Verifying packages...
パッケージの準備中...
e2fsprogs-devel-1.46.5-5.el9.x86_64
# 
# rpm -ivf libcurl-devel-7.76.1-31.el9.x86_64.rpm
警告: libcurl-devel-7.76.1-31.el9.x86_64.rpm: ヘッダー V4 RSA/SHA256 Signature、鍵 ID 8483c65d: NOKEY
Verifying packages...
パッケージの準備中...
libcurl-devel-7.76.1-31.el9.x86_64
# 
# rpm -ivf uuid-1.6.2-55.el9.x86_64.rpm
警告: uuid-1.6.2-55.el9.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID 8483c65d: NOKEY
Verifying packages...
パッケージの準備中...
uuid-1.6.2-55.el9.x86_64
# 
# rpm -vi ivf uuid-devel-1.6.2-55.el9.x86_64.rpm
警告: uuid-devel-1.6.2-55.el9.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID 8483c65d: NOKEY
Verifying packages...
パッケージの準備中...
uuid-devel-1.6.2-55.el9.x86_64
#

 

libkolabxmlをbuildする

やっと、libkolabxmlのビルドができるので環境ができたので、ビルドする。

# rpmbuild --rebuild libkolabxml-1.2.0-12.el9.src.rpm
libkolabxml-1.2.0-12.el9.src.rpm をインストール中です。
警告: user mockbuild does not exist - using root
警告: group mock does not exist - using root
警告: user mockbuild does not exist - using root
警告: group mock does not exist - using root
警告: Macro expanded in comment on line 80: %{version}-%{release}
 
setting SOURCE_DATE_EPOCH=1658361600
実行中(%prep): /bin/sh -e /var/tmp/rpm-tmp.RwRI8b
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd /root/rpmbuild/BUILD
+ rm -rf libkolabxml-1.2.0
+ /usr/bin/gzip -dc /root/rpmbuild/SOURCES/libkolabxml-1.2.0.tar.gz
+ /usr/bin/tar -xof -
+ STATUS=0
   :
書き込み完了: /root/rpmbuild/RPMS/x86_64/java-kolabformat-1.2.0-12.el9.x86_64.rpm
書き込み完了: /root/rpmbuild/RPMS/x86_64/libkolabxml-devel-1.2.0-12.el9.x86_64.rpm
書き込み完了: /root/rpmbuild/RPMS/x86_64/php-kolabformat-1.2.0-12.el9.x86_64.rpm
書き込み完了: /root/rpmbuild/RPMS/x86_64/python3-kolabformat-1.2.0-12.el9.x86_64.rpm
書き込み完了: /root/rpmbuild/RPMS/x86_64/libkolabxml-1.2.0-12.el9.x86_64.rpm
書き込み完了: /root/rpmbuild/RPMS/x86_64/php-kolabformat-debuginfo-1.2.0-12.el9.x86_64.rpm
書き込み完了: /root/rpmbuild/RPMS/x86_64/libkolabxml-debugsource-1.2.0-12.el9.x86_64.rpm
書き込み完了: /root/rpmbuild/RPMS/x86_64/python3-kolabformat-debuginfo-1.2.0-12.el9.x86_64.rpm
書き込み完了: /root/rpmbuild/RPMS/x86_64/libkolabxml-debuginfo-1.2.0-12.el9.x86_64.rpm
実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.vH3BHe
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd libkolabxml-1.2.0
+ /usr/bin/rm -rf /root/rpmbuild/BUILDROOT/libkolabxml-1.2.0-12.el9.x86_64
+ RPM_EC=0
++ jobs -p
+ exit 0
実行中(--clean): /bin/sh -e /var/tmp/rpm-tmp.GTEGDZ
+ umask 022
+ cd /root/rpmbuild/BUILD
+ rm -rf libkolabxml-1.2.0
+ RPM_EC=0
++ jobs -p
+ exit 0
#

 

buildしたパッケージをインストールする

libkolabxml-1.2.0-12.el9.x86_64はすでにインストールされているためインストールできない(しなくてよい)。

# cd /root/rpmbuild/RPMS
#
# rpm -ivf java-kolabformat-1.2.0-12.el9.x86_64.rpm \
libkolabxml-1.2.0-12.el9.x86_64.rpm \
libkolabxml-debuginfo-1.2.0-12.el9.x86_64.rpm \
libkolabxml-debugsource-1.2.0-12.el9.x86_64.rpm \
libkolabxml-devel-1.2.0-12.el9.x86_64.rpm \
php-kolabformat-1.2.0-12.el9.x86_64.rpm \
php-kolabformat-debuginfo-1.2.0-12.el9.x86_64.rpm \
python3-kolabformat-1.2.0-12.el9.x86_64.rpm \
python3-kolabformat-debuginfo-1.2.0-12.el9.x86_64.rpm
Verifying packages...
パッケージの準備中...
    パッケージ libkolabxml-1.2.0-12.el9.x86_64 は既にインストールされています。
    ファイル /usr/lib64/libkolabxml.so.1.2.0 (パッケージ libkolabxml-1.2.0-12.el9.x86_64 から) は、パッケージ libkolabxml-1.2.0-12.el9.x86_64 からのファイルと競合しています。
# 
# rpm -ivf java-kolabformat-1.2.0-12.el9.x86_64.rpm \
libkolabxml-debuginfo-1.2.0-12.el9.x86_64.rpm \
libkolabxml-debugsource-1.2.0-12.el9.x86_64.rpm \
libkolabxml-devel-1.2.0-12.el9.x86_64.rpm \
php-kolabformat-1.2.0-12.el9.x86_64.rpm \
php-kolabformat-debuginfo-1.2.0-12.el9.x86_64.rpm \
python3-kolabformat-1.2.0-12.el9.x86_64.rpm \
python3-kolabformat-debuginfo-1.2.0-12.el9.x86_64.rpm
Verifying packages...
パッケージの準備中...
libkolabxml-debugsource-1.2.0-12.el9.x86_64
libkolabxml-debuginfo-1.2.0-12.el9.x86_64
php-kolabformat-debuginfo-1.2.0-12.el9.x86_64
python3-kolabformat-debuginfo-1.2.0-12.el9.x86_64
python3-kolabformat-1.2.0-12.el9.x86_64
php-kolabformat-1.2.0-12.el9.x86_64
libkolabxml-devel-1.2.0-12.el9.x86_64
java-kolabformat-1.2.0-12.el9.x86_64
#

 

php.iniファイルにライブラリ定義を追加する

kolabformat.soライブラリをphp.iniに記述し、再読み込みのためにnginxとphp-fpmを起動する。

# cp php.ini php.ini_org
#
# vi php.ini
#
# diff -c php.ini.org php.ini
*** php.ini.rpmsave     2025-01-19 19:15:14.008636341 +0900
--- php.ini     2025-02-16 20:14:27.755572671 +0900
***************
*** 908,913 ****
--- 907,914 ----
  ; directory, You may specify an absolute path to the library file:
  ;
  ;   extension=/path/to/extension/mysqli.so
+ extension=imagick.so
+ extension=kolabformat.so
  ;
  ; Note : The syntax used in previous PHP versions ('extension=&lt;ext&gt;.so' and
  ; 'extension='php_&lt;ext&gt;.dll') is supported for legacy reasons and may be
#
# systemctl restart nginx
#
# systemctl restart php-fpm
#

 

ブラウザででphpの情報を確認する。

phpinfo.phpファイルに「phpinfo();」を記述してブラウザでアクセスして、kolabformatが読み込まれているか確認する。
設定したkolabformatが「Additional  Modules」に表示されたことを確認した。

phpのpearパッケージをインストールする

以下のphpパッケージをpearコマンドでインストールする。
・HTTP/Request2
・Net/URL2
同時に2つのパッケージがインストールできた。

# which pear
/usr/bin/pear
#
# pear install HTTP_Request2
WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-update pear.php.net" to update
downloading HTTP_Request2-2.6.0.tgz ...
Starting to download HTTP_Request2-2.6.0.tgz (127,945 bytes)
.............................done: 127,945 bytes
downloading Net_URL2-2.2.1.tgz ...
Starting to download Net_URL2-2.2.1.tgz (20,010 bytes)
...done: 20,010 bytes
install ok: channel://pear.php.net/Net_URL2-2.2.1
install ok: channel://pear.php.net/HTTP_Request2-2.6.0
#

 

roundcubemailの動作を確認する。

サーバエラーになりroundcubemailに動作しない

ブラウザでアクセスするとサーバエラーになり動作しない。
nginxのエラーログを確認すると以下のエラーメッセージ有った。
phpを8.3アップグレードしたため、初期定義されていない変数に関してエラーになる。
※本文は一行であるが、理解できるように改行している。

2025/02/01 08:11:02 [error] 157396#157396: *9 FastCGI sent in stderr: "
PHP message: PHP Deprecated:  Creation of dynamic property thunderbird_labels::$name is deprecated in /usr/share/roundcubemail/plugins/thunderbird_labels/thunderbird_labels.php on line 50; 
PHP message: PHP Deprecated:  Creation of dynamic property thunderbird_labels::$add_tb_flags is deprecated in /usr/share/roundcubemail/plugins/thunderbird_labels/thunderbird_labels.php on line 52; 
PHP message: PHP Deprecated:  Creation of dynamic property thunderbird_labels::$message_tb_labels is deprecated in /usr/share/roundcubemail/plugins/thunderbird_labels/thunderbird_labels.php on line 59; 
PHP message: PHP Deprecated:  Creation of dynamic property tasklist::$driver is deprecated in /usr/share/roundcubemail/plugins/tasklist/tasklist.php on line 195; 
PHP message: PHP Fatal error:  Uncaught Error: Class "Sabre\VObject\Property\Text" not found in /usr/share/roundcubemail/plugins/libcalendaring/lib/libcalendaring_vcalendar.php:1577

 

プログラムを修正する。

エラー修正のため以下のソースを修正する。
・thunderbird_labels.php(今回の関連するパッケージではない)
・tasklist.php

# cd /usr/share/roundcubemail/plugins
#
# cd thunderbird_labels
#
# cp thunderbird_labels.php_org thunderbird_labels.php
#
# vi thunderbird_labels.php
#
# diff -c thunderbird_labels.php_org thunderbird_labels.php
*** thunderbird_labels.php_org  2025-02-01 08:19:41.453083991 +0900
--- thunderbird_labels.php      2025-02-01 08:32:00.168201753 +0900
***************
*** 16,21 ****
--- 16,25 ----
        private $_custom_flags_allowed = null;
        const LABEL_STYLES = ['thunderbird', 'bullets', 'badges'];
 
+       public $name;
+       public $add_tb_flags;
+       public $message_tb_labels;
+
        function init()
        {
                $this-&gt;rc = rcmail::get_instance();
#
# cd ../tasklist
#
# cp -p tasklist.php tasklist.php_org
# 
# vi tasklist.php
#
# diff -c tasklist.php_org tasklist.php
*** tasklist.php_org    2021-05-09 16:14:59.000000000 +0900
--- tasklist.php        2025-02-01 08:32:26.610595188 +0900
***************
*** 68,73 ****
--- 68,74 ----
      private $message_tasks   = array();
      private $task_titles     = array();
 
+     public $driver;
 
      /**
       * Plugin initialization.
#

 

他に必要な情報が無いかと、他のパッケージのREADMEを確認する

他に必要なパッケージが有るか確認する、

libcalendaringパッケージのREADMEを確認する

# cat libcalendaring/README
Library providing common functions for calendar-based plugins
-------------------------------------------------------------
 
Provides utility functions for calendar-related modules such as
 
* alarms display and dismissal
* attachment handling
* iCal parsing and exporting
* iTip invitations handling
 
iCal parsing and exporting is done with the help of the Sabre VObject
library [1]. It needs to be insalled with Roundcube using composer:
 
  $ composer require "sabre/vobject" "~4.5.1"
 
[1]: http://sabre.io/vobject/
#

 

sabre/vobjectパッケージをインストールする

# cd /usr/share/roundcubemail/
# composer require sabre/vobject ~4.5
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Continue as root/super user [yes]?
Composer could not detect the root package (roundcube/roundcubemail) version, defaulting to '1.0.0'. See https://getcomposer.org/root-version
./composer.json has been updated
Composer could not detect the root package (roundcube/roundcubemail) version, defaulting to '1.0.0'. See https://getcomposer.org/root-version
Running composer update sabre/vobject
Loading composer repositories with package information
Updating dependencies
Lock file operations: 3 installs, 0 updates, 0 removals
  - Locking sabre/uri (3.0.2)
  - Locking sabre/vobject (4.5.6)
  - Locking sabre/xml (4.0.6)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 3 installs, 0 updates, 0 removals
  - Downloading sabre/uri (3.0.2)
  - Downloading sabre/xml (4.0.6)
  - Downloading sabre/vobject (4.5.6)
  - Installing sabre/uri (3.0.2): Extracting archive
  - Installing sabre/xml (4.0.6): Extracting archive
  - Installing sabre/vobject (4.5.6): Extracting archive
 0/3 [&gt;---------------------------]   0%    Skipped installation of bin bin/vobject for package sabre/vobject: name conflicts with an existing file
    Skipped installation of bin bin/generate_vcards for package sabre/vobject: name conflicts with an existing file
1 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
4 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
No security vulnerability advisories found.
#

 

インストールしたphpパッケージを自動ロードするように設定する

php.iniファイルを修正するため、phpの再読み込みを行うためphp-fpmの再起動を行う。

# cp /etc/php.ini /etc/php.ini_org
# vi /etc/php.ini
# diff -c php.ini_org php.ini
*** php.ini_org 2024-12-27 20:59:42.927231405 +0900
--- php.ini     2025-02-01 08:59:52.408596490 +0900
***************
*** 918,923 ****
--- 920,927 ----
  ; found in the directory /etc/php.d; these are loaded by default.
  ;;;;
 
+ include 'vendor/autoload.php';
+
  ;;;;;;;;;;;;;;;;;;;
  ; Module Settings ;
  ;;;;;;;;;;;;;;;;;;;
#
# systemctl restart nginx
#
# systemctl restart php-fpm
#

 

roundcubemailのカレンダーとタスクリストの動作確認

カレンダーとタスクリストのプラグインの動作を確認する。
ボタンが有効化となり利用可能となった。
ただし、css変換が正しく行われないためなのか、calendarに「personal」や「work」のカテゴリで色が変わるはずですが、すべて色が赤で登録される。

 

カテゴリの代わりにカレンダー種別で色を変える。

画面左下の「+」をクリックし、カテゴリごとの種別のカレンダーを記述を登録する。
新規イベント登録時に、カレンダー種別登録時に上記手順で登録したカテゴリにに対応するカレンダーを指定して登録する。

 

まとめ

WEBの情報では記述されていないパッケージをたくさんインストールして動作する様になった。
カテゴリでの色指定は正常に動作していないが、結果的には目的の動作はできていると思われる。