From c082411c992b3e182d30cc08133db5e14b6e1633 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Fri, 12 Dec 2025 16:14:29 +0100 Subject: update to 1.7-rc raise dependency on PHP 8.1 --- composer.json | 43 +++++++------ plugins/acl/composer.json | 15 ++--- plugins/additional_message_headers/composer.json | 13 ++-- plugins/archive/composer.json | 13 ++-- plugins/attachment_reminder/composer.json | 14 ++-- plugins/autologon/composer.json | 13 ++-- plugins/autologout/composer.json | 9 ++- plugins/database_attachments/composer.json | 13 ++-- plugins/debug_logger/composer.json | 14 ++-- plugins/emoticons/composer.json | 13 ++-- plugins/enigma/composer.json | 14 ++-- plugins/example_addressbook/composer.json | 14 ++-- plugins/filesystem_attachments/composer.json | 13 ++-- plugins/help/composer.json | 13 ++-- plugins/hide_blockquote/composer.json | 13 ++-- plugins/http_authentication/composer.json | 13 ++-- plugins/identicon/composer.json | 16 ++--- plugins/identity_select/composer.json | 13 ++-- plugins/jqueryui/composer.json | 13 ++-- plugins/krb_authentication/composer.json | 13 ++-- plugins/managesieve/composer.json | 16 ++--- plugins/markasjunk/composer.json | 14 ++-- plugins/markdown_editor/composer.json | 22 +++++++ plugins/new_user_dialog/composer.json | 13 ++-- plugins/new_user_identity/composer.json | 13 ++-- plugins/newmail_notifier/composer.json | 13 ++-- plugins/password/composer.json | 16 ++--- plugins/reconnect/composer.json | 15 ++--- plugins/redundant_attachments/composer.json | 13 ++-- plugins/show_additional_headers/composer.json | 13 ++-- plugins/squirrelmail_usercopy/composer.json | 13 ++-- plugins/subscriptions_option/composer.json | 13 ++-- plugins/userinfo/composer.json | 13 ++-- plugins/vcard_attachments/composer.json | 13 ++-- plugins/virtuser_file/composer.json | 13 ++-- plugins/virtuser_query/composer.json | 13 ++-- plugins/zipdownload/composer.json | 15 ++--- roundcubemail-1.6-confpath.patch | 81 ------------------------ roundcubemail-1.7-confpath.patch | 81 ++++++++++++++++++++++++ roundcubemail.httpd | 35 +--------- roundcubemail.nginx | 11 +--- roundcubemail.spec | 35 +++++----- 42 files changed, 372 insertions(+), 407 deletions(-) create mode 100644 plugins/markdown_editor/composer.json delete mode 100644 roundcubemail-1.6-confpath.patch create mode 100644 roundcubemail-1.7-confpath.patch diff --git a/composer.json b/composer.json index 8d3f7ec..b0e833a 100644 --- a/composer.json +++ b/composer.json @@ -2,33 +2,40 @@ "name": "roundcube/roundcubemail", "description": "The Roundcube Webmail suite", "license": "GPL-3.0-or-later", - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { - "php": ">=7.3.0", - "pear/pear-core-minimal": "~1.10.1", - "pear/auth_sasl": "~1.1.0", - "pear/mail_mime": "~1.10.0", - "pear/net_smtp": "~1.10.0", + "php": ">=8.1 <8.6", + "bacon/bacon-qr-code": "^3.0.0", + "guzzlehttp/guzzle": "^7.10.0", + "guzzlehttp/promises": "^2.0", + "league/commonmark": "^2.7", + "masterminds/html5": "~2.9.0", + "pear/auth_sasl": "~1.2.0", "pear/crypt_gpg": "~1.6.3", - "pear/net_sieve": "~1.4.5", - "roundcube/plugin-installer": "~0.3.1", - "roundcube/rtf-html-php": "~2.1", - "masterminds/html5": "~2.7.0", - "bacon/bacon-qr-code": "^2.0.0", - "guzzlehttp/guzzle": "^7.3.0", + "pear/mail_mime": "~1.10.11", + "pear/net_sieve": "~1.4.7", + "pear/net_smtp": "~1.12.0", + "pear/pear-core-minimal": "~1.10.15", + "roundcube/plugin-installer": "~0.3.5", + "roundcube/rtf-html-php": "^2.1", + "symfony/polyfill-php85": "^1.33.0", "kolab/net_ldap3": "~1.1.4" }, "suggest": { "bjeavons/zxcvbn-php": "^1.0 required for Zxcvbn password strength driver" }, + "autoload": { + "classmap": [ + "program/actions/", + "program/include/", + "program/lib/" + ] + }, "config": { "allow-plugins": { + "ergebnis/composer-normalize": true, + "phpstan/extension-installer": true, "roundcube/plugin-installer": true } - } + }, + "version": "1.7-rc" } diff --git a/plugins/acl/composer.json b/plugins/acl/composer.json index 888641d..5d672ef 100644 --- a/plugins/acl/composer.json +++ b/plugins/acl/composer.json @@ -3,7 +3,7 @@ "type": "roundcube-plugin", "description": "IMAP Folders Access Control Lists Management (RFC4314, RFC2086).", "license": "GPL-3.0-or-later", - "version": "1.8", + "version": "1.9", "authors": [ { "name": "Aleksander Machniak", @@ -11,14 +11,13 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "acl.php" + ] } } diff --git a/plugins/additional_message_headers/composer.json b/plugins/additional_message_headers/composer.json index 08f422d..9c6c768 100644 --- a/plugins/additional_message_headers/composer.json +++ b/plugins/additional_message_headers/composer.json @@ -11,14 +11,13 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "additional_message_headers.php" + ] } } diff --git a/plugins/archive/composer.json b/plugins/archive/composer.json index 9ef4cb1..27d0135 100644 --- a/plugins/archive/composer.json +++ b/plugins/archive/composer.json @@ -16,14 +16,13 @@ "role": "Developer" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "archive.php" + ] } } diff --git a/plugins/attachment_reminder/composer.json b/plugins/attachment_reminder/composer.json index 0a0e884..1680a68 100644 --- a/plugins/attachment_reminder/composer.json +++ b/plugins/attachment_reminder/composer.json @@ -12,18 +12,16 @@ }, { "name": "Thomas Yu - Sian, Liu", - "email": "", "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "attachment_reminder.php" + ] } } diff --git a/plugins/autologon/composer.json b/plugins/autologon/composer.json index 5797fb9..422231e 100644 --- a/plugins/autologon/composer.json +++ b/plugins/autologon/composer.json @@ -11,14 +11,13 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "autologon.php" + ] } } diff --git a/plugins/autologout/composer.json b/plugins/autologout/composer.json index 98ab1d9..261b09b 100644 --- a/plugins/autologout/composer.json +++ b/plugins/autologout/composer.json @@ -2,7 +2,7 @@ "name": "roundcube/autologout", "type": "roundcube-plugin", "description": "Plugin to auto log out users with a POST request sent from an external site.", - "license": "GPLv3+", + "license": "GPL-3.0-or-later", "version": "1.0", "authors": [ { @@ -12,6 +12,11 @@ ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "autologout.php" + ] } } diff --git a/plugins/database_attachments/composer.json b/plugins/database_attachments/composer.json index 16b3311..0fa3341 100644 --- a/plugins/database_attachments/composer.json +++ b/plugins/database_attachments/composer.json @@ -16,15 +16,14 @@ "role": "Developer" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3", + "roundcube/plugin-installer": "~0.3.5", "roundcube/filesystem_attachments": ">=1.0.0" + }, + "autoload": { + "classmap": [ + "database_attachments.php" + ] } } diff --git a/plugins/debug_logger/composer.json b/plugins/debug_logger/composer.json index bdd516c..d3c39ff 100644 --- a/plugins/debug_logger/composer.json +++ b/plugins/debug_logger/composer.json @@ -11,14 +11,14 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "debug_logger.php", + "runlog/runlog.php" + ] } } diff --git a/plugins/emoticons/composer.json b/plugins/emoticons/composer.json index 3b9faa9..8da0ba0 100644 --- a/plugins/emoticons/composer.json +++ b/plugins/emoticons/composer.json @@ -16,14 +16,13 @@ "role": "Developer" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "emoticons.php" + ] } } diff --git a/plugins/enigma/composer.json b/plugins/enigma/composer.json index f86c03d..8b6097a 100644 --- a/plugins/enigma/composer.json +++ b/plugins/enigma/composer.json @@ -11,15 +11,15 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": "~0.1.6", + "roundcube/plugin-installer": "~0.3.5", "pear/crypt_gpg": "~1.6.3" + }, + "autoload": { + "classmap": [ + "lib/", + "enigma.php" + ] } } diff --git a/plugins/example_addressbook/composer.json b/plugins/example_addressbook/composer.json index 3a20e16..72809cd 100644 --- a/plugins/example_addressbook/composer.json +++ b/plugins/example_addressbook/composer.json @@ -11,14 +11,14 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "example_addressbook.php", + "example_addressbook_backend.php" + ] } } diff --git a/plugins/filesystem_attachments/composer.json b/plugins/filesystem_attachments/composer.json index 4bb4466..fb22de0 100644 --- a/plugins/filesystem_attachments/composer.json +++ b/plugins/filesystem_attachments/composer.json @@ -16,14 +16,13 @@ "role": "Developer" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "filesystem_attachments.php" + ] } } diff --git a/plugins/help/composer.json b/plugins/help/composer.json index 121b1d0..717b22c 100644 --- a/plugins/help/composer.json +++ b/plugins/help/composer.json @@ -11,14 +11,13 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "help.php" + ] } } diff --git a/plugins/hide_blockquote/composer.json b/plugins/hide_blockquote/composer.json index 9d44b95..c11005c 100644 --- a/plugins/hide_blockquote/composer.json +++ b/plugins/hide_blockquote/composer.json @@ -11,14 +11,13 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "hide_blockquote.php" + ] } } diff --git a/plugins/http_authentication/composer.json b/plugins/http_authentication/composer.json index e996b15..8d4b509 100644 --- a/plugins/http_authentication/composer.json +++ b/plugins/http_authentication/composer.json @@ -11,14 +11,13 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "http_authentication.php" + ] } } diff --git a/plugins/identicon/composer.json b/plugins/identicon/composer.json index cb1017f..477950a 100644 --- a/plugins/identicon/composer.json +++ b/plugins/identicon/composer.json @@ -11,15 +11,15 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "php-gd": "*", - "roundcube/plugin-installer": ">=0.1.3" + "ext-gd": "*", + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "identicon.php", + "identicon_engine.php" + ] } } diff --git a/plugins/identity_select/composer.json b/plugins/identity_select/composer.json index 07eb570..e38a4fa 100644 --- a/plugins/identity_select/composer.json +++ b/plugins/identity_select/composer.json @@ -11,14 +11,13 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "identity_select.php" + ] } } diff --git a/plugins/jqueryui/composer.json b/plugins/jqueryui/composer.json index 97ed998..d742faa 100644 --- a/plugins/jqueryui/composer.json +++ b/plugins/jqueryui/composer.json @@ -16,14 +16,13 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "jqueryui.php" + ] } } diff --git a/plugins/krb_authentication/composer.json b/plugins/krb_authentication/composer.json index 9c4c304..ef424ca 100644 --- a/plugins/krb_authentication/composer.json +++ b/plugins/krb_authentication/composer.json @@ -11,14 +11,13 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "krb_authentication.php" + ] } } diff --git a/plugins/managesieve/composer.json b/plugins/managesieve/composer.json index 534cbc5..4fd383a 100644 --- a/plugins/managesieve/composer.json +++ b/plugins/managesieve/composer.json @@ -3,7 +3,7 @@ "type": "roundcube-plugin", "description": "Adds a possibility to manage Sieve scripts (incoming mail filters). It's clickable interface which operates on text scripts and communicates with server using managesieve protocol. Adds Filters tab in Settings.", "license": "GPL-3.0-or-later", - "version": "9.4", + "version": "9.6", "authors": [ { "name": "Aleksander Machniak", @@ -11,15 +11,15 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3", + "roundcube/plugin-installer": "~0.3.5", "pear/net_sieve": "~1.4.4" + }, + "autoload": { + "classmap": [ + "lib/", + "managesieve.php" + ] } } diff --git a/plugins/markasjunk/composer.json b/plugins/markasjunk/composer.json index dc68f61..c15943b 100644 --- a/plugins/markasjunk/composer.json +++ b/plugins/markasjunk/composer.json @@ -16,14 +16,14 @@ "role": "Developer" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "drivers/", + "markasjunk.php" + ] } } diff --git a/plugins/markdown_editor/composer.json b/plugins/markdown_editor/composer.json new file mode 100644 index 0000000..9759d13 --- /dev/null +++ b/plugins/markdown_editor/composer.json @@ -0,0 +1,22 @@ +{ + "name": "roundcube/markdown_editor", + "type": "roundcube-plugin", + "description": "An editor to compose emails in Markdown syntax, which gets converted into HTML before sending.", + "license": "GPL-3.0-or-later", + "version": "0.1", + "authors": [ + { + "name": "Pablo Zimdahl", + "homepage": "https://github.com/pabzm" + } + ], + "require": { + "php": ">=8.1.0", + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "markdown_editor.php" + ] + } +} diff --git a/plugins/new_user_dialog/composer.json b/plugins/new_user_dialog/composer.json index 2b9cd50..d96e5e8 100644 --- a/plugins/new_user_dialog/composer.json +++ b/plugins/new_user_dialog/composer.json @@ -11,14 +11,13 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "new_user_dialog.php" + ] } } diff --git a/plugins/new_user_identity/composer.json b/plugins/new_user_identity/composer.json index 4f0ba5c..2ad3129 100644 --- a/plugins/new_user_identity/composer.json +++ b/plugins/new_user_identity/composer.json @@ -11,14 +11,13 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "new_user_identity.php" + ] } } diff --git a/plugins/newmail_notifier/composer.json b/plugins/newmail_notifier/composer.json index d98a8d6..6890466 100644 --- a/plugins/newmail_notifier/composer.json +++ b/plugins/newmail_notifier/composer.json @@ -11,14 +11,13 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "newmail_notifier.php" + ] } } diff --git a/plugins/password/composer.json b/plugins/password/composer.json index fba1cc2..21a1c2f 100644 --- a/plugins/password/composer.json +++ b/plugins/password/composer.json @@ -3,7 +3,7 @@ "type": "roundcube-plugin", "description": "Password Change for Roundcube. Plugin adds a possibility to change user password using many methods (drivers) via Settings/Password tab.", "license": "GPL-3.0-or-later", - "version": "5.3", + "version": "5.5", "authors": [ { "name": "Aleksander Machniak", @@ -11,14 +11,14 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "drivers/", + "password.php" + ] } } diff --git a/plugins/reconnect/composer.json b/plugins/reconnect/composer.json index c7a990b..266cb34 100644 --- a/plugins/reconnect/composer.json +++ b/plugins/reconnect/composer.json @@ -1,5 +1,5 @@ { - "name": "reconnect", + "name": "roundcube/reconnect", "type": "roundcube-plugin", "description": "Reconnects to server for several attempts.", "license": "GPL-3.0-or-later", @@ -10,14 +10,13 @@ "email": "hefee@debian.org" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "reconnect.php" + ] } } diff --git a/plugins/redundant_attachments/composer.json b/plugins/redundant_attachments/composer.json index b893918..e5d53fc 100644 --- a/plugins/redundant_attachments/composer.json +++ b/plugins/redundant_attachments/composer.json @@ -16,15 +16,14 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3", + "roundcube/plugin-installer": "~0.3.5", "roundcube/filesystem_attachments": ">=1.0.0" + }, + "autoload": { + "classmap": [ + "redundant_attachments.php" + ] } } diff --git a/plugins/show_additional_headers/composer.json b/plugins/show_additional_headers/composer.json index 7ca83ca..2322f4d 100644 --- a/plugins/show_additional_headers/composer.json +++ b/plugins/show_additional_headers/composer.json @@ -11,14 +11,13 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "show_additional_headers.php" + ] } } diff --git a/plugins/squirrelmail_usercopy/composer.json b/plugins/squirrelmail_usercopy/composer.json index 0272b22..e4a7997 100644 --- a/plugins/squirrelmail_usercopy/composer.json +++ b/plugins/squirrelmail_usercopy/composer.json @@ -11,14 +11,13 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "squirrelmail_usercopy.php" + ] } } diff --git a/plugins/subscriptions_option/composer.json b/plugins/subscriptions_option/composer.json index a0fbcab..690611c 100644 --- a/plugins/subscriptions_option/composer.json +++ b/plugins/subscriptions_option/composer.json @@ -16,14 +16,13 @@ "role": "Developer" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "subscriptions_option.php" + ] } } diff --git a/plugins/userinfo/composer.json b/plugins/userinfo/composer.json index e41c015..ead6521 100644 --- a/plugins/userinfo/composer.json +++ b/plugins/userinfo/composer.json @@ -11,14 +11,13 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "userinfo.php" + ] } } diff --git a/plugins/vcard_attachments/composer.json b/plugins/vcard_attachments/composer.json index cd593e9..75ad4db 100644 --- a/plugins/vcard_attachments/composer.json +++ b/plugins/vcard_attachments/composer.json @@ -16,14 +16,13 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "vcard_attachments.php" + ] } } diff --git a/plugins/virtuser_file/composer.json b/plugins/virtuser_file/composer.json index 83c2f07..0e8a51a 100644 --- a/plugins/virtuser_file/composer.json +++ b/plugins/virtuser_file/composer.json @@ -11,14 +11,13 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "virtuser_file.php" + ] } } diff --git a/plugins/virtuser_query/composer.json b/plugins/virtuser_query/composer.json index cc9367b..a586594 100644 --- a/plugins/virtuser_query/composer.json +++ b/plugins/virtuser_query/composer.json @@ -11,14 +11,13 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3" + "roundcube/plugin-installer": "~0.3.5" + }, + "autoload": { + "classmap": [ + "virtuser_query.php" + ] } } diff --git a/plugins/zipdownload/composer.json b/plugins/zipdownload/composer.json index f5b5ab5..0f9aa2a 100644 --- a/plugins/zipdownload/composer.json +++ b/plugins/zipdownload/composer.json @@ -3,7 +3,7 @@ "type": "roundcube-plugin", "description": "Adds an option to download all attachments to a message in one zip file, when a message has multiple attachments. Also allows the download of a selection of messages in one zip file. Supports mbox and maildir format.", "license": "GPL-3.0-or-later", - "version": "3.4", + "version": "3.5", "authors": [ { "name": "Thomas Bruederli", @@ -16,15 +16,14 @@ "role": "Lead" } ], - "repositories": [ - { - "type": "composer", - "url": "https://plugins.roundcube.net" - } - ], "require": { "php": ">=7.3.0", - "roundcube/plugin-installer": ">=0.1.3", + "roundcube/plugin-installer": "~0.3.5", "ext-zip": "*" + }, + "autoload": { + "classmap": [ + "zipdownload.php" + ] } } diff --git a/roundcubemail-1.6-confpath.patch b/roundcubemail-1.6-confpath.patch deleted file mode 100644 index d9d50e3..0000000 --- a/roundcubemail-1.6-confpath.patch +++ /dev/null @@ -1,81 +0,0 @@ -diff -up roundcubemail-1.6.10/config/defaults.inc.php.rpm roundcubemail-1.6.10/config/defaults.inc.php ---- roundcubemail-1.6.10/config/defaults.inc.php.rpm 2025-02-08 09:47:42.000000000 +0100 -+++ roundcubemail-1.6.10/config/defaults.inc.php 2025-02-09 08:05:33.268275358 +0100 -@@ -540,11 +540,11 @@ $config['user_aliases'] = false; - // use this folder to store log files - // must be writeable for the user who runs PHP process (Apache user if mod_php is being used) - // This is used by the 'file' log driver. --$config['log_dir'] = RCUBE_INSTALL_PATH . 'logs/'; -+$config['log_dir'] = '/var/log/roundcubemail/'; - - // Location of temporary saved files such as attachments and cache files - // must be writeable for the user who runs PHP process (Apache user if mod_php is being used) --$config['temp_dir'] = RCUBE_INSTALL_PATH . 'temp/'; -+$config['temp_dir'] = '/var/lib/roundcubemail/temp/'; - - // expire files in temp_dir after 48 hours - // possible units: s, m, h, d, w -@@ -778,7 +778,7 @@ $config['mime_magic'] = null; - // This is used to derive mime-types from the filename extension or vice versa. - // Such a file is usually part of the apache webserver. If you don't find a file named mime.types on your system, - // download it from https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types --$config['mime_types'] = null; -+$config['mime_types'] = '/etc/mime.types'; - - // path to imagemagick identify binary (if not set we'll use Imagick or GD extensions) - $config['im_identify_path'] = null; -@@ -1480,3 +1480,7 @@ $config['message_show_email'] = false; - // 0 - Reply-All always - // 1 - Reply-List if mailing list is detected - $config['reply_all_mode'] = 0; -+ -+// Keys directory for all users. -+// Must be writeable by PHP process, and not in the web server document root -+$config['enigma_pgp_homedir'] = '/var/lib/roundcubemail/enigma'; -diff -up roundcubemail-1.6.10/plugins/enigma/config.inc.php.dist.rpm roundcubemail-1.6.10/plugins/enigma/config.inc.php.dist ---- roundcubemail-1.6.10/plugins/enigma/config.inc.php.dist.rpm 2025-02-08 09:47:42.000000000 +0100 -+++ roundcubemail-1.6.10/plugins/enigma/config.inc.php.dist 2025-02-09 08:04:38.723191340 +0100 -@@ -12,10 +12,6 @@ $config['enigma_smime_driver'] = 'phpssl - // Enables logging of enigma operations (including Crypt_GPG debug info) - $config['enigma_debug'] = false; - --// REQUIRED! Keys directory for all users. --// Must be writeable by PHP process, and not in the web server document root --$config['enigma_pgp_homedir'] = null; -- - // Location of gpg binary. By default it will be auto-detected. - // This is also a way to force gpg2 use if there are both 1.x and 2.x on the system. - $config['enigma_pgp_binary'] = ''; -diff -up roundcubemail-1.6.10/program/include/iniset.php.rpm roundcubemail-1.6.10/program/include/iniset.php ---- roundcubemail-1.6.10/program/include/iniset.php.rpm 2025-02-08 09:47:42.000000000 +0100 -+++ roundcubemail-1.6.10/program/include/iniset.php 2025-02-09 08:04:38.723191340 +0100 -@@ -32,7 +32,7 @@ if (!defined('INSTALL_PATH')) { - } - - if (!defined('RCMAIL_CONFIG_DIR')) { -- define('RCMAIL_CONFIG_DIR', getenv('ROUNDCUBE_CONFIG_DIR') ?: (INSTALL_PATH . 'config')); -+ define('RCMAIL_CONFIG_DIR', '/etc/roundcubemail'); - } - - if (!defined('RCUBE_LOCALIZATION_DIR')) { -@@ -40,7 +40,7 @@ if (!defined('RCUBE_LOCALIZATION_DIR')) - } - - define('RCUBE_INSTALL_PATH', INSTALL_PATH); --define('RCUBE_CONFIG_DIR', RCMAIL_CONFIG_DIR.'/'); -+define('RCUBE_CONFIG_DIR', '/etc/roundcubemail/'); - - // Show basic error message on fatal PHP error - register_shutdown_function('rcmail_error_handler'); -diff -up roundcubemail-1.6.10/program/lib/Roundcube/bootstrap.php.rpm roundcubemail-1.6.10/program/lib/Roundcube/bootstrap.php ---- roundcubemail-1.6.10/program/lib/Roundcube/bootstrap.php.rpm 2025-02-08 09:47:42.000000000 +0100 -+++ roundcubemail-1.6.10/program/lib/Roundcube/bootstrap.php 2025-02-09 08:04:38.723191340 +0100 -@@ -71,7 +71,7 @@ if (!defined('RCUBE_INSTALL_PATH')) { - } - - if (!defined('RCUBE_CONFIG_DIR')) { -- define('RCUBE_CONFIG_DIR', RCUBE_INSTALL_PATH . 'config/'); -+ define('RCUBE_CONFIG_DIR', '/etc/roundcubemail/'); - } - - if (!defined('RCUBE_PLUGINS_DIR')) { diff --git a/roundcubemail-1.7-confpath.patch b/roundcubemail-1.7-confpath.patch new file mode 100644 index 0000000..f48a072 --- /dev/null +++ b/roundcubemail-1.7-confpath.patch @@ -0,0 +1,81 @@ +diff -up ./config/defaults.inc.php.rpm ./config/defaults.inc.php +--- ./config/defaults.inc.php.rpm 2025-12-11 17:54:02.000000000 +0100 ++++ ./config/defaults.inc.php 2025-12-12 15:08:17.363515508 +0100 +@@ -590,11 +590,11 @@ $config['user_aliases'] = false; + // use this folder to store log files + // must be writeable for the user who runs PHP process (Apache user if mod_php is being used) + // This is used by the 'file' log driver. +-$config['log_dir'] = RCUBE_INSTALL_PATH . 'logs/'; ++$config['log_dir'] = '/var/log/roundcubemail/'; + + // Location of temporary saved files such as attachments and cache files + // must be writeable for the user who runs PHP process (Apache user if mod_php is being used) +-$config['temp_dir'] = RCUBE_INSTALL_PATH . 'temp/'; ++$config['temp_dir'] = '/var/lib/roundcubemail/temp/'; + + // expire files in temp_dir after 48 hours + // possible units: s, m, h, d, w +@@ -828,7 +828,7 @@ $config['mime_magic'] = null; + // This is used to derive mime-types from the filename extension or vice versa. + // Such a file is usually part of the apache webserver. If you don't find a file named mime.types on your system, + // download it from https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types +-$config['mime_types'] = null; ++$config['mime_types'] = '/etc/mime.types'; + + // path to imagemagick identify binary (if not set we'll use Imagick or GD extensions) + $config['im_identify_path'] = null; +@@ -1568,3 +1568,7 @@ $config['message_show_email'] = false; + // 0 - Reply-All always + // 1 - Reply-List if mailing list is detected + $config['reply_all_mode'] = 0; ++ ++// Keys directory for all users. ++// Must be writeable by PHP process, and not in the web server document root ++$config['enigma_pgp_homedir'] = '/var/lib/roundcubemail/enigma'; +diff -up ./plugins/enigma/config.inc.php.dist.rpm ./plugins/enigma/config.inc.php.dist +--- ./plugins/enigma/config.inc.php.dist.rpm 2025-12-11 17:54:02.000000000 +0100 ++++ ./plugins/enigma/config.inc.php.dist 2025-12-12 15:08:17.364179921 +0100 +@@ -14,10 +14,6 @@ $config['enigma_smime_driver'] = 'phpssl + // Enables logging of enigma operations (including Crypt_GPG debug info) + $config['enigma_debug'] = false; + +-// REQUIRED! Keys directory for all users. +-// Must be writeable by PHP process, and not in the web server document root +-$config['enigma_pgp_homedir'] = null; +- + // Location of gpg binary. By default it will be auto-detected. + // This is also a way to force gpg2 use if there are both 1.x and 2.x on the system. + $config['enigma_pgp_binary'] = ''; +diff -up ./program/include/iniset.php.rpm ./program/include/iniset.php +--- ./program/include/iniset.php.rpm 2025-12-11 17:54:03.000000000 +0100 ++++ ./program/include/iniset.php 2025-12-12 15:09:11.387611544 +0100 +@@ -33,7 +33,7 @@ if (!defined('INSTALL_PATH')) { + } + + if (!defined('RCMAIL_CONFIG_DIR')) { +- define('RCMAIL_CONFIG_DIR', getenv('ROUNDCUBE_CONFIG_DIR') ?: (INSTALL_PATH . 'config')); ++ define('RCMAIL_CONFIG_DIR', '/etc/roundcubemail'); + } + + if (!defined('RCUBE_LOCALIZATION_DIR')) { +@@ -41,7 +41,7 @@ if (!defined('RCUBE_LOCALIZATION_DIR')) + } + + define('RCUBE_INSTALL_PATH', INSTALL_PATH); +-define('RCUBE_CONFIG_DIR', RCMAIL_CONFIG_DIR . '/'); ++define('RCUBE_CONFIG_DIR', '/etc/roundcubemail/'); + + // Show basic error message on fatal PHP error + register_shutdown_function('rcmail_error_handler'); +diff -up ./program/lib/Roundcube/bootstrap.php.rpm ./program/lib/Roundcube/bootstrap.php +--- ./program/lib/Roundcube/bootstrap.php.rpm 2025-12-11 17:54:03.000000000 +0100 ++++ ./program/lib/Roundcube/bootstrap.php 2025-12-12 15:08:17.364326762 +0100 +@@ -67,7 +67,7 @@ if (!defined('RCUBE_INSTALL_PATH')) { + } + + if (!defined('RCUBE_CONFIG_DIR')) { +- define('RCUBE_CONFIG_DIR', RCUBE_INSTALL_PATH . 'config/'); ++ define('RCUBE_CONFIG_DIR', '/etc/roundcubemail/'); + } + + if (!defined('RCUBE_PLUGINS_DIR')) { diff --git a/roundcubemail.httpd b/roundcubemail.httpd index 5b67c20..38f5f8a 100644 --- a/roundcubemail.httpd +++ b/roundcubemail.httpd @@ -2,48 +2,19 @@ # Round Cube Webmail is a browser-based multilingual IMAP client # -Alias /roundcubemail /usr/share/roundcubemail +Alias /roundcubemail /usr/share/roundcubemail/public_html # Define who can access the Webmail # You can enlarge permissions once configured - - # Apache 2.4 Require local - - - # Apache 2.2 - Order Deny,Allow - Deny from all - Allow from 127.0.0.1 - Allow from ::1 - # Define who can access the installer # keep this secured once configured - - - # Apache 2.4 + Require local - - - # Apache 2.2 - Order Deny,Allow - Deny from all - Allow from 127.0.0.1 - Allow from ::1 - - + -# Those directories should not be viewed by Web clients. - - Order Allow,Deny - Deny from all - - - Order Allow,Deny - Deny from all - diff --git a/roundcubemail.nginx b/roundcubemail.nginx index 8866792..c63dfce 100644 --- a/roundcubemail.nginx +++ b/roundcubemail.nginx @@ -1,22 +1,15 @@ location = /roundcubemail { - alias /usr/share/roundcubemail/; + alias /usr/share/roundcubemail/public_html/; } location /roundcubemail/ { root /usr/share; index index.php; - location ~ ^/roundcubemail/bin/(.+)$ { - deny all; - } - location ~ ^/roundcubemail/plugins/enigma/home/(.+)$ { - deny all; - } - # Define who can access the installer # keep this secured once configured - location ~ ^/roundcubemail/installer/(.+\.php)$ { + location ~ ^/roundcubemail/installer\.php$ { allow 127.0.0.1; allow ::1; deny all; diff --git a/roundcubemail.spec b/roundcubemail.spec index 7177948..2baf771 100644 --- a/roundcubemail.spec +++ b/roundcubemail.spec @@ -12,8 +12,8 @@ # support for apache / nginx / php-fpm %global with_phpfpm 1 -%global upstream_version 1.6.11 -#global upstream_prever rc +%global upstream_version 1.7 +%global upstream_prever rc %global roundcubedir %{_datadir}/roundcubemail %global _logdir /var/log @@ -47,12 +47,12 @@ Source4: roundcubemail-README-rpm.txt Source5: roundcubemail-bundled.php # Non-upstreamable: Adjusts config path to Fedora policy -Patch1: roundcubemail-1.6-confpath.patch +Patch1: roundcubemail-1.7-confpath.patch BuildArch: noarch BuildRequires: gnupg2 -BuildRequires: php(language) >= 7.3 +BuildRequires: php(language) >= 8.1 # For test BuildRequires: php-cli BuildRequires: composer-generators @@ -66,15 +66,12 @@ Requires: php(httpd) Requires: httpd Requires: mod_php %endif -Requires: php(language) >= 7.3 +Requires: php(language) >= 8.1 Requires: php-ctype Requires: php-curl -Requires: php-date Requires: php-dom Requires: php-fileinfo -Requires: php-filter Requires: php-gd -Requires: php-hash Requires: php-iconv Requires: php-intl Requires: php-json @@ -82,14 +79,10 @@ Requires: php-ldap Requires: php-libxml Requires: php-mbstring Requires: php-openssl -Requires: php-pcre Requires: php-pdo Requires: php-posix -Requires: php-reflection -Requires: php-session Requires: php-simplexml Requires: php-sockets -Requires: php-spl Requires: php-tokenizer # mailcap for /etc/mime.types Requires: mailcap @@ -120,7 +113,7 @@ Suggests: php-pam # Bundled JS libraries # see https://github.com/roundcube/roundcubemail/blob/master/jsdeps.json # License Apache-2.0 -Provides: bundled(js-lessjs) = 3.13.0 +Provides: bundled(js-lessjs) = 4.4.2 # License GPLv3 Provides: bundled(js-publickey) = 0e011cb1 # License LGPL @@ -129,8 +122,7 @@ Provides: bundled(js-tinymce) = 5.10.9 # License MIT Provides: bundled(js-bootstrap) = 4.5.3 Provides: bundled(js-codemirror) = 5.58.3 -Provides: bundled(js-jquery) = 3.5.1 -Provides: bundled(js-jstimezonedetect) = 1.0.7 +Provides: bundled(js-jquery) = 3.7.1 # License Unkown Provides: bundled(js-tinymce-langs) = 5.10.9 @@ -221,8 +213,7 @@ popd # clean up the buildroot rm -r %{buildroot}%{roundcubedir}/{config,logs,temp} -rm -r %{buildroot}%{roundcubedir}/{CHANGELOG.md,INSTALL,LICENSE,README.md,UPGRADING} -rm %{buildroot}%{roundcubedir}/composer.json-dist +rm -r %{buildroot}%{roundcubedir}/README.md %check @@ -254,9 +245,9 @@ fi %files -%license LICENSE -%doc CHANGELOG.md INSTALL README.md UPGRADING README-rpm.txt -%doc composer.json-dist +%license docs/LICENSE.md +%doc README.md +%doc docs %{roundcubedir} %dir %{_sysconfdir}/%{name} # OLD config files from previous version @@ -281,6 +272,10 @@ fi %changelog +* Fri Dec 12 2025 Remi Collet - 1.7~rc-1 +- update to 1.7-rc +- raise dependency on PHP 8.1 + * Mon Jun 2 2025 Remi Collet - 1.6.11-1 - update to 1.6.11 -- cgit