summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore4
-rw-r--r--composer.json29
-rw-r--r--plugins/acl/composer.json24
-rw-r--r--plugins/additional_message_headers/composer.json24
-rw-r--r--plugins/archive/composer.json29
-rw-r--r--plugins/attachment_reminder/composer.json29
-rw-r--r--plugins/autologon/composer.json24
-rw-r--r--plugins/autologout/composer.json17
-rw-r--r--plugins/database_attachments/composer.json30
-rw-r--r--plugins/debug_logger/composer.json24
-rw-r--r--plugins/emoticons/composer.json29
-rw-r--r--plugins/enigma/composer.json25
-rw-r--r--plugins/example_addressbook/composer.json24
-rw-r--r--plugins/filesystem_attachments/composer.json29
-rw-r--r--plugins/help/composer.json24
-rw-r--r--plugins/hide_blockquote/composer.json24
-rw-r--r--plugins/http_authentication/composer.json24
-rw-r--r--plugins/identicon/composer.json25
-rw-r--r--plugins/identity_select/composer.json24
-rw-r--r--plugins/jqueryui/composer.json29
-rw-r--r--plugins/krb_authentication/composer.json24
-rw-r--r--plugins/managesieve/composer.json25
-rw-r--r--plugins/markasjunk/composer.json29
-rw-r--r--plugins/new_user_dialog/composer.json24
-rw-r--r--plugins/new_user_identity/composer.json24
-rw-r--r--plugins/newmail_notifier/composer.json24
-rw-r--r--plugins/password/composer.json24
-rw-r--r--plugins/reconnect/composer.json23
-rw-r--r--plugins/redundant_attachments/composer.json30
-rw-r--r--plugins/show_additional_headers/composer.json24
-rw-r--r--plugins/squirrelmail_usercopy/composer.json24
-rw-r--r--plugins/subscriptions_option/composer.json29
-rw-r--r--plugins/userinfo/composer.json24
-rw-r--r--plugins/vcard_attachments/composer.json29
-rw-r--r--plugins/virtuser_file/composer.json24
-rw-r--r--plugins/virtuser_query/composer.json24
-rw-r--r--plugins/zipdownload/composer.json30
-rw-r--r--pubkey.asc102
-rw-r--r--roundcubemail-1.6-confpath.patch (renamed from roundcubemail-1.4-confpath.patch)36
-rw-r--r--roundcubemail-bundled.php48
-rw-r--r--roundcubemail.spec319
41 files changed, 1282 insertions, 149 deletions
diff --git a/.gitignore b/.gitignore
index 1ab5c4f..704ca87 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,8 @@
-package-*.xml
+clog
*.tgz
+*.tar.bz2
*.tar.gz
+*.tar.gz.asc
*.tar.xz
*.tar.xz.asc
*.src.rpm
diff --git a/composer.json b/composer.json
index 6553f3f..85a5491 100644
--- a/composer.json
+++ b/composer.json
@@ -1,7 +1,7 @@
{
"name": "roundcube/roundcubemail",
"description": "The Roundcube Webmail suite",
- "license": "GPL-3.0+",
+ "license": "GPL-3.0-or-later",
"repositories": [
{
"type": "composer",
@@ -9,24 +9,29 @@
}
],
"require": {
- "php": ">=5.4.0",
+ "php": ">=7.3.0",
"pear/pear-core-minimal": "~1.10.1",
"pear/auth_sasl": "~1.1.0",
- "pear/net_idna2": "~0.2.0",
"pear/mail_mime": "~1.10.0",
- "pear/net_smtp": "~1.8.1",
+ "pear/net_smtp": "~1.10.0",
"pear/crypt_gpg": "~1.6.3",
- "pear/net_sieve": "~1.4.3",
- "roundcube/plugin-installer": "~0.1.6",
- "masterminds/html5": "~2.3.0",
- "endroid/qr-code": "~1.6.5",
- "pear/net_ldap2": "~2.2.0",
- "kolab/net_ldap3": "~1.0.6"
+ "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",
+ "kolab/net_ldap3": "~1.1.1"
},
"require-dev": {
- "phpunit/phpunit": "^4.8.36 || ^5.7.21"
+ "phpunit/phpunit": "^9"
},
"suggest": {
- "mkopinsky/zxcvbn-php": "^4.4.2 required for Zxcvbn password strength driver"
+ "bjeavons/zxcvbn-php": "^1.0 required for Zxcvbn password strength driver"
+ },
+ "config": {
+ "allow-plugins": {
+ "roundcube/plugin-installer": true
+ }
}
}
diff --git a/plugins/acl/composer.json b/plugins/acl/composer.json
new file mode 100644
index 0000000..888641d
--- /dev/null
+++ b/plugins/acl/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "roundcube/acl",
+ "type": "roundcube-plugin",
+ "description": "IMAP Folders Access Control Lists Management (RFC4314, RFC2086).",
+ "license": "GPL-3.0-or-later",
+ "version": "1.8",
+ "authors": [
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/additional_message_headers/composer.json b/plugins/additional_message_headers/composer.json
new file mode 100644
index 0000000..08f422d
--- /dev/null
+++ b/plugins/additional_message_headers/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "roundcube/additional_message_headers",
+ "type": "roundcube-plugin",
+ "description": "Very simple plugin which will add additional headers to or remove them from outgoing messages.",
+ "license": "GPL-3.0-or-later",
+ "version": "1.2.1",
+ "authors": [
+ {
+ "name": "Ziba Scott",
+ "email": "email@example.org",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/archive/composer.json b/plugins/archive/composer.json
new file mode 100644
index 0000000..9ef4cb1
--- /dev/null
+++ b/plugins/archive/composer.json
@@ -0,0 +1,29 @@
+{
+ "name": "roundcube/archive",
+ "type": "roundcube-plugin",
+ "description": "This adds a button to move the selected messages to an archive folder. The folder (and the optional structure of subfolders) can be selected in the settings panel.",
+ "license": "GPL-3.0-or-later",
+ "version": "3.5",
+ "authors": [
+ {
+ "name": "Thomas Bruederli",
+ "email": "roundcube@gmail.com",
+ "role": "Lead"
+ },
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Developer"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/attachment_reminder/composer.json b/plugins/attachment_reminder/composer.json
new file mode 100644
index 0000000..0a0e884
--- /dev/null
+++ b/plugins/attachment_reminder/composer.json
@@ -0,0 +1,29 @@
+{
+ "name": "roundcube/attachment_reminder",
+ "type": "roundcube-plugin",
+ "description": "This Roundcube plugin reminds the user to attach a file if the composed message text indicates that there should be any.",
+ "license": "GPL-3.0-or-later",
+ "version": "1.1",
+ "authors": [
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Lead"
+ },
+ {
+ "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"
+ }
+}
diff --git a/plugins/autologon/composer.json b/plugins/autologon/composer.json
new file mode 100644
index 0000000..5797fb9
--- /dev/null
+++ b/plugins/autologon/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "roundcube/autologon",
+ "type": "roundcube-plugin",
+ "description": "Sample plugin to try out some hooks",
+ "license": "GPL-3.0-or-later",
+ "version": "1.0",
+ "authors": [
+ {
+ "name": "Thomas Bruederli",
+ "email": "roundcube@gmail.com",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/autologout/composer.json b/plugins/autologout/composer.json
new file mode 100644
index 0000000..98ab1d9
--- /dev/null
+++ b/plugins/autologout/composer.json
@@ -0,0 +1,17 @@
+{
+ "name": "roundcube/autologout",
+ "type": "roundcube-plugin",
+ "description": "Plugin to auto log out users with a POST request sent from an external site.",
+ "license": "GPLv3+",
+ "version": "1.0",
+ "authors": [
+ {
+ "name": "Cover Tower LLC",
+ "email": "contact@covertower.com"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/database_attachments/composer.json b/plugins/database_attachments/composer.json
new file mode 100644
index 0000000..16b3311
--- /dev/null
+++ b/plugins/database_attachments/composer.json
@@ -0,0 +1,30 @@
+{
+ "name": "roundcube/database_attachments",
+ "type": "roundcube-plugin",
+ "description": "This plugin which provides database backed storage for temporary attachment file handling. The primary advantage of this plugin is its compatibility with round-robin dns multi-server Roundcube installations.",
+ "license": "GPL-3.0-or-later",
+ "version": "1.2",
+ "authors": [
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Lead"
+ },
+ {
+ "name": "Ziba Scott",
+ "email": "ziba@umich.edu",
+ "role": "Developer"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3",
+ "roundcube/filesystem_attachments": ">=1.0.0"
+ }
+}
diff --git a/plugins/debug_logger/composer.json b/plugins/debug_logger/composer.json
new file mode 100644
index 0000000..bdd516c
--- /dev/null
+++ b/plugins/debug_logger/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "roundcube/debug_logger",
+ "type": "roundcube-plugin",
+ "description": "Enhanced logging for debugging purposes. It is not recommended to be enabled on production systems without testing because of the somewhat increased memory, cpu and disk i/o overhead.",
+ "license": "GPL-3.0-or-later",
+ "version": "1.0",
+ "authors": [
+ {
+ "name": "Ziba Scott",
+ "email": "ziba@umich.edu",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/emoticons/composer.json b/plugins/emoticons/composer.json
new file mode 100644
index 0000000..3b9faa9
--- /dev/null
+++ b/plugins/emoticons/composer.json
@@ -0,0 +1,29 @@
+{
+ "name": "roundcube/emoticons",
+ "type": "roundcube-plugin",
+ "description": "Plugin that adds emoticons support.",
+ "license": "GPL-3.0-or-later",
+ "version": "3.0",
+ "authors": [
+ {
+ "name": "Thomas Bruederli",
+ "email": "roundcube@gmail.com",
+ "role": "Lead"
+ },
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Developer"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/enigma/composer.json b/plugins/enigma/composer.json
new file mode 100644
index 0000000..f86c03d
--- /dev/null
+++ b/plugins/enigma/composer.json
@@ -0,0 +1,25 @@
+{
+ "name": "roundcube/enigma",
+ "type": "roundcube-plugin",
+ "description": "Server-side PGP Encryption for Roundcube",
+ "license": "GPL-3.0-or-later",
+ "version": "0.9",
+ "authors": [
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": "~0.1.6",
+ "pear/crypt_gpg": "~1.6.3"
+ }
+}
diff --git a/plugins/example_addressbook/composer.json b/plugins/example_addressbook/composer.json
new file mode 100644
index 0000000..3a20e16
--- /dev/null
+++ b/plugins/example_addressbook/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "roundcube/example_addressbook",
+ "type": "roundcube-plugin",
+ "description": "Sample plugin to add a new address book with just a static list of contacts",
+ "license": "GPL-3.0-or-later",
+ "version": "1.0",
+ "authors": [
+ {
+ "name": "Thomas Bruederli",
+ "email": "roundcube@gmail.com",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/filesystem_attachments/composer.json b/plugins/filesystem_attachments/composer.json
new file mode 100644
index 0000000..4bb4466
--- /dev/null
+++ b/plugins/filesystem_attachments/composer.json
@@ -0,0 +1,29 @@
+{
+ "name": "roundcube/filesystem_attachments",
+ "type": "roundcube-plugin",
+ "description": "This is a core plugin which provides basic, filesystem based attachment temporary file handling. This includes storing attachments of messages currently being composed, writing attachments to disk when drafts with attachments are re-opened and writing attachments to disk for inline display in current html compositions.",
+ "license": "GPL-3.0-or-later",
+ "version": "1.0",
+ "authors": [
+ {
+ "name": "Thomas Bruederli",
+ "email": "roundcube@gmail.com",
+ "role": "Lead"
+ },
+ {
+ "name": "Ziba Scott",
+ "email": "ziba@umich.edu",
+ "role": "Developer"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/help/composer.json b/plugins/help/composer.json
new file mode 100644
index 0000000..121b1d0
--- /dev/null
+++ b/plugins/help/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "roundcube/help",
+ "type": "roundcube-plugin",
+ "description": "Plugin adds a new item (Help) in taskbar.",
+ "license": "GPL-3.0-or-later",
+ "version": "1.4",
+ "authors": [
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/hide_blockquote/composer.json b/plugins/hide_blockquote/composer.json
new file mode 100644
index 0000000..9d44b95
--- /dev/null
+++ b/plugins/hide_blockquote/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "roundcube/hide_blockquote",
+ "type": "roundcube-plugin",
+ "description": "This allows to hide long blocks of cited text in messages.",
+ "license": "GPL-3.0-or-later",
+ "version": "1.0",
+ "authors": [
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/http_authentication/composer.json b/plugins/http_authentication/composer.json
new file mode 100644
index 0000000..e996b15
--- /dev/null
+++ b/plugins/http_authentication/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "roundcube/http_authentication",
+ "type": "roundcube-plugin",
+ "description": "HTTP Basic Authentication",
+ "license": "GPL-3.0-or-later",
+ "version": "1.5",
+ "authors": [
+ {
+ "name": "Thomas Bruederli",
+ "email": "roundcube@gmail.com",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/identicon/composer.json b/plugins/identicon/composer.json
new file mode 100644
index 0000000..cb1017f
--- /dev/null
+++ b/plugins/identicon/composer.json
@@ -0,0 +1,25 @@
+{
+ "name": "roundcube/identicon",
+ "type": "roundcube-plugin",
+ "description": "Displays Github-like identicons for contacts/addresses without photo specified.",
+ "license": "GPL-3.0-or-later",
+ "version": "0.1",
+ "authors": [
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "php-gd": "*",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/identity_select/composer.json b/plugins/identity_select/composer.json
new file mode 100644
index 0000000..07eb570
--- /dev/null
+++ b/plugins/identity_select/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "roundcube/identity_select",
+ "type": "roundcube-plugin",
+ "description": "On reply to a message user identity selection is based on\n\t\tcontent of standard headers like From, To, Cc and Return-Path.\n\t\tHere you can add header(s) set by your SMTP server (e.g.\n\t\tDelivered-To, Envelope-To, X-Envelope-To, X-RCPT-TO) to make\n\t\tidentity selection more accurate.",
+ "license": "GPL-3.0-or-later",
+ "version": "1.1",
+ "authors": [
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/jqueryui/composer.json b/plugins/jqueryui/composer.json
new file mode 100644
index 0000000..10cf660
--- /dev/null
+++ b/plugins/jqueryui/composer.json
@@ -0,0 +1,29 @@
+{
+ "name": "roundcube/jqueryui",
+ "type": "roundcube-plugin",
+ "description": "Plugin adds the complete jQuery-UI library including the smoothness theme to Roundcube. This allows other plugins to use jQuery-UI without having to load their own version. The benefit of using one central jQuery-UI is that we wont run into problems of conflicting jQuery libraries being loaded. All plugins that want to use jQuery-UI should use this plugin as a requirement.",
+ "license": "GPL-3.0-or-later",
+ "version": "1.13.1",
+ "authors": [
+ {
+ "name": "Thomas Bruederli",
+ "email": "roundcube@gmail.com",
+ "role": "Lead"
+ },
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/krb_authentication/composer.json b/plugins/krb_authentication/composer.json
new file mode 100644
index 0000000..9c4c304
--- /dev/null
+++ b/plugins/krb_authentication/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "roundcube/krb_authentication",
+ "type": "roundcube-plugin",
+ "description": "Kerberos Authentication",
+ "license": "GPL-3.0-or-later",
+ "version": "1.2",
+ "authors": [
+ {
+ "name": "Jeroen van Meeuwen",
+ "email": "vanmeeuwen@kolabsys.com",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/managesieve/composer.json b/plugins/managesieve/composer.json
new file mode 100644
index 0000000..534cbc5
--- /dev/null
+++ b/plugins/managesieve/composer.json
@@ -0,0 +1,25 @@
+{
+ "name": "roundcube/managesieve",
+ "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",
+ "authors": [
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3",
+ "pear/net_sieve": "~1.4.4"
+ }
+}
diff --git a/plugins/markasjunk/composer.json b/plugins/markasjunk/composer.json
new file mode 100644
index 0000000..dc68f61
--- /dev/null
+++ b/plugins/markasjunk/composer.json
@@ -0,0 +1,29 @@
+{
+ "name": "roundcube/markasjunk",
+ "type": "roundcube-plugin",
+ "description": "Adds buttons to mark messages as Junk/Non-Junk with moving to the Junk folder and Spam/Ham learning.",
+ "license": "GPL-3.0-or-later",
+ "version": "2.0",
+ "authors": [
+ {
+ "name": "Thomas Bruederli",
+ "email": "roundcube@gmail.com",
+ "role": "Lead"
+ },
+ {
+ "name": "Philip Weir",
+ "email": "roundcube@tehinterweb.co.uk",
+ "role": "Developer"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/new_user_dialog/composer.json b/plugins/new_user_dialog/composer.json
new file mode 100644
index 0000000..2b9cd50
--- /dev/null
+++ b/plugins/new_user_dialog/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "roundcube/new_user_dialog",
+ "type": "roundcube-plugin",
+ "description": "When a new user is created, this plugin checks the default identity and sets a session flag in case it is incomplete. An overlay box will appear on the screen until the user has reviewed/completed his identity.",
+ "license": "GPL-3.0-or-later",
+ "version": "2.4",
+ "authors": [
+ {
+ "name": "Thomas Bruederli",
+ "email": "roundcube@gmail.com",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/new_user_identity/composer.json b/plugins/new_user_identity/composer.json
new file mode 100644
index 0000000..4f0ba5c
--- /dev/null
+++ b/plugins/new_user_identity/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "roundcube/new_user_identity",
+ "type": "roundcube-plugin",
+ "description": "Populates a new user's default identity from LDAP on their first visit.",
+ "license": "GPL-3.0-or-later",
+ "version": "1.2",
+ "authors": [
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/newmail_notifier/composer.json b/plugins/newmail_notifier/composer.json
new file mode 100644
index 0000000..d98a8d6
--- /dev/null
+++ b/plugins/newmail_notifier/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "roundcube/newmail_notifier",
+ "type": "roundcube-plugin",
+ "description": "Supports three methods of notification: 1. Basic - focus browser window and change favicon 2. Sound - play wav file 3. Desktop - display desktop notification (using HTML5 Notification API feature).",
+ "license": "GPL-3.0-or-later",
+ "version": "0.8",
+ "authors": [
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/password/composer.json b/plugins/password/composer.json
new file mode 100644
index 0000000..fba1cc2
--- /dev/null
+++ b/plugins/password/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "roundcube/password",
+ "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",
+ "authors": [
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/reconnect/composer.json b/plugins/reconnect/composer.json
new file mode 100644
index 0000000..23faaa6
--- /dev/null
+++ b/plugins/reconnect/composer.json
@@ -0,0 +1,23 @@
+{
+ "name": "reconnect",
+ "type": "roundcube-plugin",
+ "description": "Reconnects to server for several attempts.",
+ "license": "GPL-3.0-or-later",
+ "version": "0.1",
+ "authors": [
+ {
+ "name": "Sandro Knauß",
+ "email": "hefee@debian.org"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/redundant_attachments/composer.json b/plugins/redundant_attachments/composer.json
new file mode 100644
index 0000000..b893918
--- /dev/null
+++ b/plugins/redundant_attachments/composer.json
@@ -0,0 +1,30 @@
+{
+ "name": "roundcube/redundant_attachments",
+ "type": "roundcube-plugin",
+ "description": "This plugin provides a redundant storage for temporary uploaded attachment files. They are stored in both the database backend as well as on the local file system. It provides also memcache store as a fallback.",
+ "license": "GPL-3.0-or-later",
+ "version": "1.2",
+ "authors": [
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Lead"
+ },
+ {
+ "name": "Thomas Bruederli",
+ "email": "roundcube@gmail.com",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3",
+ "roundcube/filesystem_attachments": ">=1.0.0"
+ }
+}
diff --git a/plugins/show_additional_headers/composer.json b/plugins/show_additional_headers/composer.json
new file mode 100644
index 0000000..7ca83ca
--- /dev/null
+++ b/plugins/show_additional_headers/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "roundcube/show_additional_headers",
+ "type": "roundcube-plugin",
+ "description": "Proof-of-concept plugin which will fetch additional headers and display them in the message view.",
+ "license": "GPL-3.0-or-later",
+ "version": "2.0",
+ "authors": [
+ {
+ "name": "Thomas Bruederli",
+ "email": "roundcube@gmail.com",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/squirrelmail_usercopy/composer.json b/plugins/squirrelmail_usercopy/composer.json
new file mode 100644
index 0000000..0272b22
--- /dev/null
+++ b/plugins/squirrelmail_usercopy/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "roundcube/squirrelmail_usercopy",
+ "type": "roundcube-plugin",
+ "description": "Copy a new users identity and settings from a nearby Squirrelmail installation",
+ "license": "GPL-3.0-or-later",
+ "version": "1.6",
+ "authors": [
+ {
+ "name": "Thomas Bruederli",
+ "email": "roundcube@gmail.com",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/subscriptions_option/composer.json b/plugins/subscriptions_option/composer.json
new file mode 100644
index 0000000..a0fbcab
--- /dev/null
+++ b/plugins/subscriptions_option/composer.json
@@ -0,0 +1,29 @@
+{
+ "name": "roundcube/subscriptions_option",
+ "type": "roundcube-plugin",
+ "description": "A plugin which can enable or disable the use of imap subscriptions. It includes a toggle on the settings page under \"Server Settings\". The preference can also be locked.",
+ "license": "GPL-3.0-or-later",
+ "version": "1.4",
+ "authors": [
+ {
+ "name": "Thomas Bruederli",
+ "email": "roundcube@gmail.com",
+ "role": "Lead"
+ },
+ {
+ "name": "Ziba Scott",
+ "email": "ziba@umich.edu",
+ "role": "Developer"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/userinfo/composer.json b/plugins/userinfo/composer.json
new file mode 100644
index 0000000..e41c015
--- /dev/null
+++ b/plugins/userinfo/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "roundcube/userinfo",
+ "type": "roundcube-plugin",
+ "description": "Sample plugin that adds a new tab to the settings section to display some information about the current user.",
+ "license": "GPL-3.0-or-later",
+ "version": "1.2",
+ "authors": [
+ {
+ "name": "Thomas Bruederli",
+ "email": "roundcube@gmail.com",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/vcard_attachments/composer.json b/plugins/vcard_attachments/composer.json
new file mode 100644
index 0000000..cd593e9
--- /dev/null
+++ b/plugins/vcard_attachments/composer.json
@@ -0,0 +1,29 @@
+{
+ "name": "roundcube/vcard_attachments",
+ "type": "roundcube-plugin",
+ "description": "Detects vCard attachments and allows to add them to address book. Also allows to attach vCards of your contacts to composed messages",
+ "license": "GPL-3.0-or-later",
+ "version": "4.2",
+ "authors": [
+ {
+ "name": "Thomas Bruederli",
+ "email": "roundcube@gmail.com",
+ "role": "Lead"
+ },
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/virtuser_file/composer.json b/plugins/virtuser_file/composer.json
new file mode 100644
index 0000000..83c2f07
--- /dev/null
+++ b/plugins/virtuser_file/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "roundcube/virtuser_file",
+ "type": "roundcube-plugin",
+ "description": "Plugin adds possibility to resolve user email/login according to lookup tables in files.",
+ "license": "GPL-3.0-or-later",
+ "version": "1.0",
+ "authors": [
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/virtuser_query/composer.json b/plugins/virtuser_query/composer.json
new file mode 100644
index 0000000..cc9367b
--- /dev/null
+++ b/plugins/virtuser_query/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "roundcube/virtuser_query",
+ "type": "roundcube-plugin",
+ "description": "Plugin adds possibility to resolve user email/login according to lookup tables in SQL database.",
+ "license": "GPL-3.0-or-later",
+ "version": "2.0",
+ "authors": [
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/zipdownload/composer.json b/plugins/zipdownload/composer.json
new file mode 100644
index 0000000..f5b5ab5
--- /dev/null
+++ b/plugins/zipdownload/composer.json
@@ -0,0 +1,30 @@
+{
+ "name": "roundcube/zipdownload",
+ "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",
+ "authors": [
+ {
+ "name": "Thomas Bruederli",
+ "email": "roundcube@gmail.com",
+ "role": "Lead"
+ },
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=7.3.0",
+ "roundcube/plugin-installer": ">=0.1.3",
+ "ext-zip": "*"
+ }
+}
diff --git a/pubkey.asc b/pubkey.asc
new file mode 100644
index 0000000..3d4449c
--- /dev/null
+++ b/pubkey.asc
@@ -0,0 +1,102 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+0dXJnhEe7eXkwBbfEzk=
+=lBKd
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/roundcubemail-1.4-confpath.patch b/roundcubemail-1.6-confpath.patch
index 4c0240c..0b372ee 100644
--- a/roundcubemail-1.4-confpath.patch
+++ b/roundcubemail-1.6-confpath.patch
@@ -1,21 +1,21 @@
diff -up ./config/defaults.inc.php.rpm ./config/defaults.inc.php
---- ./config/defaults.inc.php.rpm 2018-08-24 21:42:24.000000000 +0200
-+++ ./config/defaults.inc.php 2018-09-17 15:27:15.758441986 +0200
-@@ -404,11 +404,11 @@ $config['user_aliases'] = false;
+--- ./config/defaults.inc.php.rpm 2022-03-06 21:32:08.000000000 +0100
++++ ./config/defaults.inc.php 2022-03-07 11:48:41.252956405 +0100
+@@ -525,11 +525,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/';
- // use this folder to store temp files
+ // 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
-@@ -632,7 +632,7 @@ $config['mime_magic'] = null;
+@@ -763,7 +763,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 http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
@@ -24,7 +24,7 @@ diff -up ./config/defaults.inc.php.rpm ./config/defaults.inc.php
// path to imagemagick identify binary (if not set we'll use Imagick or GD extensions)
$config['im_identify_path'] = null;
-@@ -1265,3 +1265,7 @@ $config['message_show_email'] = false;
+@@ -1452,3 +1452,7 @@ $config['message_show_email'] = false;
// 0 - Reply-All always
// 1 - Reply-List if mailing list is detected
$config['reply_all_mode'] = 0;
@@ -33,8 +33,8 @@ diff -up ./config/defaults.inc.php.rpm ./config/defaults.inc.php
+// 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 2018-09-17 15:22:35.041631063 +0200
-+++ ./plugins/enigma/config.inc.php.dist 2018-09-17 15:23:04.918823805 +0200
+--- ./plugins/enigma/config.inc.php.dist.rpm 2022-03-06 21:32:08.000000000 +0100
++++ ./plugins/enigma/config.inc.php.dist 2022-03-07 11:48:41.252956405 +0100
@@ -12,10 +12,6 @@ $config['enigma_smime_driver'] = 'phpssl
// Enables logging of enigma operations (including Crypt_GPG debug info)
$config['enigma_debug'] = false;
@@ -47,30 +47,30 @@ diff -up ./plugins/enigma/config.inc.php.dist.rpm ./plugins/enigma/config.inc.ph
// 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 2018-08-24 21:42:26.000000000 +0200
-+++ ./program/include/iniset.php 2018-09-17 15:22:35.041631063 +0200
-@@ -29,7 +29,7 @@ if (!defined('INSTALL_PATH')) {
+--- ./program/include/iniset.php.rpm 2022-03-06 21:32:09.000000000 +0100
++++ ./program/include/iniset.php 2022-03-07 11:49:54.668718920 +0100
+@@ -32,7 +32,7 @@ if (!defined('INSTALL_PATH')) {
}
if (!defined('RCMAIL_CONFIG_DIR')) {
-- define('RCMAIL_CONFIG_DIR', INSTALL_PATH . 'config');
+- define('RCMAIL_CONFIG_DIR', getenv('ROUNDCUBE_CONFIG_DIR') ?: (INSTALL_PATH . 'config'));
+ define('RCMAIL_CONFIG_DIR', '/etc/roundcubemail');
}
if (!defined('RCUBE_LOCALIZATION_DIR')) {
-@@ -37,7 +37,7 @@ 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/');
-
- // RC include folders MUST be included FIRST to avoid other
+ // 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 2018-08-24 21:42:27.000000000 +0200
-+++ ./program/lib/Roundcube/bootstrap.php 2018-09-17 15:22:35.041631063 +0200
-@@ -69,7 +69,7 @@ if (!defined('RCUBE_INSTALL_PATH')) {
+--- ./program/lib/Roundcube/bootstrap.php.rpm 2022-03-06 21:32:09.000000000 +0100
++++ ./program/lib/Roundcube/bootstrap.php 2022-03-07 11:48:41.252956405 +0100
+@@ -71,7 +71,7 @@ if (!defined('RCUBE_INSTALL_PATH')) {
}
if (!defined('RCUBE_CONFIG_DIR')) {
diff --git a/roundcubemail-bundled.php b/roundcubemail-bundled.php
new file mode 100644
index 0000000..c963e9e
--- /dev/null
+++ b/roundcubemail-bundled.php
@@ -0,0 +1,48 @@
+<?php
+
+if (!isset($_SERVER['argv'][1])) {
+ echo "Missing arg\n";
+ exit(1);
+}
+$pkgs = file_get_contents($_SERVER['argv'][1]);
+if (!$pkgs) {
+ echo "can't read json file\n";
+ exit(2);
+}
+
+$pkgs = json_decode($pkgs, true);
+if (!is_array($pkgs)) {
+ echo "can't decode json file\n";
+ exit(3);
+}
+
+if (isset($pkgs['packages'])) {
+ $res = [];
+ foreach($pkgs["packages"] as $pkg) {
+ $lic = implode(" and ", $pkg["license"]);
+ if (!isset($res[$lic])) $res[$lic] = [];
+ $res[$lic][] = sprintf("Provides: bundled(php-%s) = %s", str_replace(["/", "_"], ["-", "-"], $pkg["name"]), $pkg["version"]);
+ }
+ ksort($res);
+ foreach($res as $lic => $lib) {
+ sort($lib);
+ printf("# License %s\n%s\n", $lic, implode("\n", $lib));
+ }
+} else if (isset($pkgs['dependencies'])) {
+ $res = [];
+ foreach($pkgs['dependencies'] as $pkg) {
+ $n = strtolower($pkg['name'] ?? $pkg['lib']);
+ $n = str_replace('.js', '', $n);
+ $lic = ($pkg['license'] ?? "Unkown");
+ if (!isset($res[$lic])) $res[$lic] = [];
+ $res[$lic][] = sprintf("Provides: bundled(js-%s) = %s", $n, $pkg['version']);
+ }
+ ksort($res);
+ foreach($res as $lic => $lib) {
+ sort($lib);
+ printf("# License %s\n%s\n", $lic, implode("\n", $lib));
+ }
+} else {
+ echo "unkown content\n";
+ exit(4);
+}
diff --git a/roundcubemail.spec b/roundcubemail.spec
index 137ac8c..40c3f3b 100644
--- a/roundcubemail.spec
+++ b/roundcubemail.spec
@@ -8,6 +8,7 @@
# Please preserve changelog entries
#
+%bcond_with internet
# remirepo:1
%if 0%{?fedora} >= 21 || 0%{?rhel} >= 8
@@ -17,8 +18,8 @@
%else
%global with_phpfpm 0
%endif
-%global upstream_version 1.4
-%global upstream_prever rc1
+%global upstream_version 1.6.6
+#global upstream_prever rc
%global roundcubedir %{_datadir}/roundcubemail
%global _logdir /var/log
@@ -38,43 +39,28 @@ Summary: Round Cube Webmail is a browser-based multilingual IMAP client
# https://github.com/pear/Crypt_GPG
# http://jqueryui.com/
# http://www.tinymce.com/
-License: GPLv3+ with exceptions and GPLv3+ and GPLv2 and LGPLv2+ and CC-BY-SA and (MIT or GPLv2)
+License: GPL-3.0-or-later AND GPL-2.0-only AND LGPL-2.0-or-later AND CC-BY-SA-3.0 AND MIT AND BSD-2-Clause AND BSD-3-Clause AND PHP-3.01
URL: http://www.roundcube.net
Source0: https://github.com/roundcube/roundcubemail/releases/download/%{upstream_version}%{?upstream_prever:-%{upstream_prever}}/roundcubemail-%{upstream_version}%{?upstream_prever:-%{upstream_prever}}-complete.tar.gz
+Source8: https://github.com/roundcube/roundcubemail/releases/download/%{upstream_version}%{?upstream_prever:-%{upstream_prever}}/roundcubemail-%{upstream_version}%{?upstream_prever:-%{upstream_prever}}-complete.tar.gz.asc
+Source9: https://roundcube.net/download/pubkey.asc
Source1: roundcubemail.httpd
Source3: roundcubemail.nginx
Source2: roundcubemail.logrotate
Source4: roundcubemail-README-rpm.txt
+# Simple script to dump name, version and licenses of bundled libraries
+Source5: roundcubemail-bundled.php
# Non-upstreamable: Adjusts config path to Fedora policy
-Patch1: roundcubemail-1.4-confpath.patch
+Patch1: roundcubemail-1.6-confpath.patch
BuildArch: noarch
+BuildRequires: gnupg2
+BuildRequires: php(language) >= 7.3
# For test
BuildRequires: php-cli
-BuildRequires: php-pear(PEAR) >= 1.10.1
-BuildRequires: php-pear(Auth_SASL) >= 1.1.0
-BuildRequires: php-pear(Net_IDNA2) >= 0.2.0
-BuildRequires: php-pear(Mail_Mime) >= 1.10.0
-BuildRequires: php-pear(Net_SMTP) >= 1.8.1
-BuildRequires: php-pear(Crypt_GPG) >= 1.6.0
-BuildRequires: php-pear(Net_Sieve) >= 1.4.3
-BuildRequires: php-pear(Net_LDAP2) >= 2.2.0
-BuildRequires: php-composer(kolab/net_ldap3) >= 1.0.6
-BuildRequires: php-composer(fedora/autoloader)
-# remirepo:1
-%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
-BuildRequires: (php-composer(endroid/qrcode) >= 1.6.5 with php-composer(endroid/qrcode) < 2)
-BuildRequires: (php-composer(masterminds/html5) >= 2.3.0 with php-composer(masterminds/html5) < 3)
-# remirepo:6
-%else
-BuildRequires: php-composer(endroid/qrcode) < 2
-BuildRequires: php-composer(endroid/qrcode) >= 1.6.5
-BuildRequires: php-composer(masterminds/html5) < 3
-BuildRequires: php-composer(masterminds/html5) >= 2.3.0
-%endif
%if %{with_phpfpm}
Requires: webserver
@@ -85,6 +71,8 @@ Requires: php(httpd)
Requires: httpd
Requires: mod_php
%endif
+Requires: php(language) >= 7.3
+Requires: php-ctype
Requires: php-curl
Requires: php-date
Requires: php-dom
@@ -96,92 +84,101 @@ Requires: php-iconv
Requires: php-intl
Requires: php-json
Requires: php-ldap
+Requires: php-libxml
Requires: php-mbstring
Requires: php-openssl
Requires: php-pcre
Requires: php-pdo
-Requires: php-pspell
+Requires: php-posix
+Requires: php-reflection
Requires: php-session
Requires: php-simplexml
Requires: php-sockets
Requires: php-spl
-Requires: php-xml
-# From composer.json-dist, require
-# "php": ">=5.4.0",
-# "pear/pear-core-minimal": "~1.10.1",
-# "pear/auth_sasl": "~1.1.0",
-# "pear/net_idna2": "~0.2.0",
-# "pear/mail_mime": "~1.10.0",
-# "pear/net_smtp": "~1.8.1",
-# "pear/crypt_gpg": "~1.6.0",
-# "pear/net_sieve": "~1.4.3",
-# "roundcube/plugin-installer": "~0.1.6",
-# "masterminds/html5": "~2.3.0",
-# "endroid/qrcode": "~1.6.5"
-# "pear/net_ldap2": "~2.2.0",
-# "kolab/net_ldap3": "~1.0.6"
-# not available and doesn't make sense roundcube/plugin-installer
-Requires: php-pear(PEAR) >= 1.10.1
-Requires: php-pear(Auth_SASL) >= 1.1.0
-Requires: php-pear(Net_IDNA2) >= 0.2.0
-Requires: php-pear(Mail_Mime) >= 1.10.0
-Requires: php-pear(Net_SMTP) >= 1.8.1
-Requires: php-pear(Crypt_GPG) >= 1.6.0
-Requires: php-pear(Net_Sieve) >= 1.4.3
-Requires: php-pear(Net_LDAP2) >= 2.2.0
-Requires: php-composer(kolab/net_ldap3) >= 1.0.6
-# remirepo:1
-%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
-Requires: (php-composer(endroid/qrcode) >= 1.6.5 with php-composer(endroid/qrcode) < 2)
-Requires: (php-composer(masterminds/html5) >= 2.3.0 with php-composer(masterminds/html5) < 3)
-# From composer.json-dist, "suggest": {
-# "mkopinsky/zxcvbn-php": "^4.4.2 required for Zxcvbn password strength driver"
-Suggests: (php-composer(mkopinsky/zxcvbn-php) >= 4.4.2 with php-composer(mkopinsky/zxcvbn-php) < 5)
-# remirepo:6
-%else
-Requires: php-composer(endroid/qrcode) < 2
-Requires: php-composer(endroid/qrcode) >= 1.6.5
-Requires: php-composer(masterminds/html5) < 3
-Requires: php-composer(masterminds/html5) >= 2.3.0
-%endif
+Requires: php-tokenizer
# mailcap for /etc/mime.types
Requires: mailcap
-# Autoloader
-Requires: php-composer(fedora/autoloader)
-
# EXIF images
Requires: php-exif
-# Upload progress (shock!)
-#Suggests: php-uploadprogress
# ZIP download plugin
Requires: php-zip
# remirepo:1
%if 0%{?fedora} >= 21 || 0%{?rhel} >= 8
# Optional deps
+# Upload progress (shock!)
+Suggests: php-uploadprogress
+# Crypto
+Suggests: php-sodium
# Spell check
-Suggests: php-enchant
+Recommends: php-enchant
+Suggests: php-pspell
# Caching
-Suggests: php-apc
-Suggests: php-memcache
-Suggests: php-redis
+Suggests: php-apcu
+Suggests: php-memcache
+Suggests: php-memcached
+Suggests: php-redis
# Gearman support
-Suggests: php-gearman
-# PAM password support
-#Optional: php-pam
+Suggests: php-gearman
+# Authent
+Suggests: php-krb5
+Suggests: php-pam
# remirepo:1
%endif
# Bundled JS libraries
# see https://github.com/roundcube/roundcubemail/blob/master/jsdeps.json
-Provides: bundled(js-jquery) = 3.3.1
-Provides: bundled(js-jstz) = 1.0.6
-Provides: bundled(js-publickey)
-Provides: bundled(js-tinymce) = 4.8.2
-Provides: bundled(js-openpgp) = 2.6.2
-Provides: bundled(js-codemirror) = 5.34.0
-Provides: bundled(js-bootstrap) = 4.1.2
-Provides: bundled(js-less) = 2.7.3
+# License Apache-2.0
+Provides: bundled(js-lessjs) = 3.13.0
+# License GPLv3
+Provides: bundled(js-publickey) = 0e011cb1
+# License LGPL
+Provides: bundled(js-openpgp) = 5.0.0
+Provides: bundled(js-tinymce) = 5.8.2
+# 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
+# License Unkown
+Provides: bundled(js-tinymce-langs) = 5.8.2
+
+# Bundled PHP libraries
+# see vendor/composer/installed.json
+# License BSD
+Provides: bundled(php-pear-auth-sasl) = v1.1.0
+# License BSD-2-Clause
+Provides: bundled(php-bacon-bacon-qr-code) = 2.0.8
+Provides: bundled(php-dasprid-enum) = 1.0.5
+Provides: bundled(php-pear-console-getopt) = v1.4.3
+Provides: bundled(php-pear-net-sieve) = 1.4.6
+Provides: bundled(php-pear-net-smtp) = 1.10.1
+Provides: bundled(php-pear-pear-exception) = v1.0.2
+# License BSD-3-Clause
+Provides: bundled(php-pear-mail-mime) = 1.10.11
+Provides: bundled(php-pear-pear-core-minimal) = v1.10.14
+# License GPL-2.0
+Provides: bundled(php-roundcube-rtf-html-php) = v2.2
+# License GPL-3.0+
+Provides: bundled(php-kolab-net-ldap3) = v1.1.5
+Provides: bundled(php-roundcube-plugin-installer) = 0.3.2
+# License LGPL-2.1
+Provides: bundled(php-pear-crypt-gpg) = v1.6.8
+# License LGPL-3.0
+Provides: bundled(php-pear-net-ldap2) = v2.3.0
+# License MIT
+Provides: bundled(php-guzzlehttp-guzzle) = 7.8.1
+Provides: bundled(php-guzzlehttp-promises) = 2.0.2
+Provides: bundled(php-guzzlehttp-psr7) = 2.6.2
+Provides: bundled(php-masterminds-html5) = 2.7.6
+Provides: bundled(php-pear-console-commandline) = v1.2.6
+Provides: bundled(php-psr-http-client) = 1.0.3
+Provides: bundled(php-psr-http-factory) = 1.0.2
+Provides: bundled(php-psr-http-message) = 2.0
+Provides: bundled(php-ralouphie-getallheaders) = 3.0.3
+Provides: bundled(php-symfony-deprecation-contracts) = v2.5.2
+# License PHP License
+Provides: bundled(php-pear-net-socket) = v1.2.2
%description
@@ -196,12 +193,22 @@ CSS 2.
%prep
+%{?gpgverify: %{gpgverify} --keyring=%{SOURCE9} --signature=%{SOURCE8} --data=%{SOURCE0}}
+
%setup -q -n roundcubemail-%{upstream_version}%{?upstream_prever:-%{upstream_prever}}
-%patch1 -p1 -b .rpm
+%patch -P1 -p1 -b .rpm
+
+: PHP bundled libraries
+php %{SOURCE5} vendor/composer/installed.json
+
+%if %{with internet}
+: JS bundled libraries
+php %{SOURCE5} https://raw.githubusercontent.com/roundcube/roundcubemail/%{upstream_version}%{?upstream_prever:-%{upstream_prever}}/jsdeps.json
+%endif
# fix permissions and remove any .htaccess files
find . -type f -print | xargs chmod a-x
-find . -name \.htaccess -print | xargs rm -f
+find . -name \.htaccess -delete -print
# drop file from patch
find . -type f -name '*.orig' -o -name '*.rpm' -exec rm {} \; -print
@@ -211,26 +218,6 @@ find . -type f -name '*.orig' -o -name '*.rpm' -exec rm {} \; -print
echo "CVE-2012-4230: removing tinymce bbcode plugin, check path if this fails."
test -d program/js/*mce/plugins/bbcode && rm -rf program/js/*mce/plugins/bbcode || exit 1
-# Create simple autoloader for PEAR
-rm -r vendor/*
-cat << EOF | tee vendor/autoload.php
-<?php
-/* Autoloader for %{name} dependencies */
-require_once '%{_datadir}/php/Fedora/Autoloader/autoload.php';
-
-# PEAR components
-\Fedora\Autoloader\Autoload::addIncludePath();
-
-# Composer components
-\Fedora\Autoloader\Dependencies::required([
- '%{_datadir}/php/Endroid/QrCode/autoload.php',
- '%{_datadir}/php/Masterminds/HTML5/autoload.php',
-]);
-\Fedora\Autoloader\Dependencies::optional([
- '%{_datadir}/php/ZxcvbnPhp/autoload.php',
-]);
-EOF
-
%build
# Nothing
@@ -249,13 +236,7 @@ install -Dpm 0644 %{SOURCE3} %{buildroot}/%{_sysconfdir}/nginx/default.d/%{name}
%endif
mkdir -p %{buildroot}%{_sysconfdir}/roundcubemail
-mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
-cp -pr %SOURCE2 %{buildroot}%{_sysconfdir}/logrotate.d/roundcubemail
-
-%if 0%{?rhel} == 5 || 0%{?rhel} == 6
-: Remove "su" option from logrotate configuration file - requires logrotate 3.8+
-sed -e '/su /d' -i %{buildroot}%{_sysconfdir}/logrotate.d/roundcubemail
-%endif
+install -pDm644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/roundcubemail
# Log files
mkdir -p %{buildroot}/var/log/roundcubemail
@@ -289,7 +270,7 @@ popd
# clean up the buildroot
rm -r %{buildroot}%{roundcubedir}/{config,logs,temp}
-rm -r %{buildroot}%{roundcubedir}/{CHANGELOG,INSTALL,LICENSE,README.md,UPGRADING}
+rm -r %{buildroot}%{roundcubedir}/{CHANGELOG.md,INSTALL,LICENSE,README.md,UPGRADING}
rm %{buildroot}%{roundcubedir}/composer.json-dist
@@ -297,8 +278,8 @@ rm %{buildroot}%{roundcubedir}/composer.json-dist
: Check our autoloader for needed classes
php -r '
require "%{buildroot}%{roundcubedir}/vendor/autoload.php";
-$cl = [ "Auth_SASL", "Crypt_GPG", "Mail_mime", "Net_IDNA2", "Net_LDAP2", "Masterminds\\HTML5",
- "Net_LDAP3", "Net_Sieve", "Net_SMTP", "PEAR" , "Endroid\\QrCode\\QrCode" ];
+$cl = [ "Auth_SASL", "Crypt_GPG", "Mail_mime", "Net_LDAP2", "Masterminds\\HTML5", "GuzzleHttp\\Client",
+ "Net_LDAP3", "Net_Sieve", "Net_SMTP", "PEAR" , "BaconQrCode\\Writer", "RtfHtmlPhp\\Document" ];
$ret = 0;
foreach ($cl as $c) {
if (class_exists($c)) {
@@ -325,7 +306,7 @@ fi
# remirepo:1
%{!?_licensedir:%global license %%doc}
%license LICENSE
-%doc CHANGELOG INSTALL README.md UPGRADING README-rpm.txt
+%doc CHANGELOG.md INSTALL README.md UPGRADING README-rpm.txt
%doc composer.json-dist
%{roundcubedir}
%dir %{_sysconfdir}/%{name}
@@ -351,6 +332,108 @@ fi
%changelog
+* Mon Jan 22 2024 Remi Collet <remi@remirepo.net> - 1.6.6-1
+- update to 1.6.6
+
+* Mon Nov 6 2023 Remi Collet <remi@remirepo.net> - 1.6.5-1
+- update to 1.6.5
+
+* Mon Oct 16 2023 Remi Collet <remi@remirepo.net> - 1.6.4-1
+- update to 1.6.4
+
+* Fri Sep 15 2023 Remi Collet <remi@remirepo.net> - 1.6.3-1
+- update to 1.6.3
+
+* Sun Jul 2 2023 Remi Collet <remi@remirepo.net> - 1.6.2-1
+- update to 1.6.2
+
+* Tue Jan 24 2023 Remi Collet <remi@remirepo.net> - 1.6.1-1
+- update to 1.6.1
+- use SPDX license id
+
+* Wed Aug 3 2022 Remi Collet <remi@remirepo.net> - 1.6.0-1
+- update to 1.6.0
+
+* Mon Jun 13 2022 Remi Collet <remi@remirepo.net> - 1.6~rc-1
+- update to 1.6-rc
+- drop patch merged upstream
+
+* Mon Mar 7 2022 Remi Collet <remi@remirepo.net> - 1.6~beta-1
+- update to 1.6-beta
+- raise dependency on PHP 7.3
+- add patch to keep use default_host and smtp_server
+ from https://github.com/roundcube/roundcubemail/pull/8467
+
+* Thu Dec 30 2021 Remi Collet <remi@remirepo.net> - 1.5.2-1
+- update to 1.5.2
+
+* Fri Dec 3 2021 Remi Collet <remi@remirepo.net> - 1.5.1-2
+- use all PHP bundled libraries
+
+* Mon Nov 29 2021 Remi Collet <remi@remirepo.net> - 1.5.1-1
+- update to 1.5.1
+
+* Tue Oct 19 2021 Remi Collet <remi@remirepo.net> - 1.5.0-1
+- update to 1.5.0
+
+* Mon Jul 5 2021 Remi Collet <remi@remirepo.net> - 1.5~rc-2
+- update to 1.5-rc
+- raise dependency on pear/net_smtp 1.10
+- raise dependency on pear/net_sieve 1.4.5
+
+* Thu Apr 22 2021 Remi Collet <remi@remirepo.net> - 1.5~beta-1
+- update to 1.5-beta
+- drop dependency on pear/net_idna2
+- raise dependency on pear/net_smtp 1.9
+- raise dependency on masterminds/html5 2.7
+- add dependency on guzzlehttp/guzzle
+- switch from mkopinsky/zxcvbn-php to bjeavons/zxcvbn-php
+
+* Tue Feb 9 2021 Remi Collet <remi@remirepo.net> - 1.4.11-1
+- update to 1.4.11
+
+* Mon Dec 28 2020 Remi Collet <remi@remirepo.net> - 1.4.10-1
+- update to 1.4.10
+
+* Mon Sep 28 2020 Remi Collet <remi@remirepo.net> - 1.4.9-1
+- update to 1.4.9
+
+* Tue Aug 11 2020 Remi Collet <remi@remirepo.net> - 1.4.8-1
+- update to 1.4.8
+
+* Mon Jul 6 2020 Remi Collet <remi@remirepo.net> - 1.4.7-1
+- update to 1.4.7
+
+* Mon Jun 8 2020 Remi Collet <remi@remirepo.net> - 1.4.6-1
+- update to 1.4.6
+
+* Tue Jun 2 2020 Remi Collet <remi@remirepo.net> - 1.4.5-1
+- update to 1.4.5
+
+* Tue May 5 2020 Remi Collet <remi@remirepo.net> - 1.4.4-2
+- fix logrotate configuration file permissions
+ https://github.com/remicollet/remirepo/issues/145
+
+* Thu Apr 30 2020 Remi Collet <remi@remirepo.net> - 1.4.4-1
+- update to 1.4.4
+
+* Thu Feb 20 2020 Remi Collet <remi@remirepo.net> - 1.4.3-1
+- update to 1.4.3
+
+* Thu Jan 2 2020 Remi Collet <remi@remirepo.net> - 1.4.2-1
+- update to 1.4.2
+
+* Fri Nov 22 2019 Remi Collet <remi@remirepo.net> - 1.4.1-1
+- update to 1.4.1
+
+* Sun Nov 10 2019 Remi Collet <remi@remirepo.net> - 1.4.0-1
+- Update to 1.4.0
+
+* Tue Sep 17 2019 Remi Collet <remi@remirepo.net> - 1.4~rc2-1
+- Update to 1.4-rc2
+- raise dependency on masterminds/html5 2.5.0
+- raise dependency on kolab/net_ldap3 1.1.1
+
* Fri Mar 1 2019 Remi Collet <remi@remirepo.net> - 1.4~rc1-1
- Update to 1.4-rc1
- raise dependency on pear/net_smtp 1.8.1