From 30b92695ce9d7dfc7e92508408c672b0f034724d Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Mon, 17 Sep 2018 16:14:10 +0200 Subject: Update to 1.4-beta raise dependency on pear/net_sieve 1.4.3 raise dependency on kolab/net_ldap3 1.0.6 add dependency on masterminds/html5 --- composer.json | 17 +++----- roundcubemail-1.3.4-confpath.patch | 82 -------------------------------------- roundcubemail-1.4-confpath.patch | 81 +++++++++++++++++++++++++++++++++++++ roundcubemail-pr313.patch | 82 -------------------------------------- roundcubemail.spec | 77 +++++++++++++++++++++-------------- 5 files changed, 135 insertions(+), 204 deletions(-) delete mode 100644 roundcubemail-1.3.4-confpath.patch create mode 100644 roundcubemail-1.4-confpath.patch delete mode 100644 roundcubemail-pr313.patch diff --git a/composer.json b/composer.json index 537cbb5..a37bf57 100644 --- a/composer.json +++ b/composer.json @@ -6,10 +6,6 @@ { "type": "composer", "url": "https://plugins.roundcube.net/" - }, - { - "type": "vcs", - "url": "https://git.kolab.org/diffusion/PNL/php-net_ldap.git" } ], "require": { @@ -21,15 +17,14 @@ "pear/mail_mime": "~1.10.0", "pear/net_smtp": "~1.7.1", "pear/crypt_gpg": "~1.6.3", - "pear/net_sieve": "~1.4.0", + "pear/net_sieve": "~1.4.3", "roundcube/plugin-installer": "~0.1.6", - "endroid/qr-code": "~1.6.5" + "masterminds/html5": "~2.3.0", + "endroid/qr-code": "~1.6.5", + "pear/net_ldap2": "~2.2.0", + "kolab/net_ldap3": "~1.0.6" }, "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^5.7.15" - }, - "suggest": { - "pear/net_ldap2": "~2.2.0 required for connecting to LDAP", - "kolab/Net_LDAP3": "dev-master required for connecting to LDAP" + "phpunit/phpunit": "^4.8.36 || ^5.7.21" } } diff --git a/roundcubemail-1.3.4-confpath.patch b/roundcubemail-1.3.4-confpath.patch deleted file mode 100644 index dc3ebc2..0000000 --- a/roundcubemail-1.3.4-confpath.patch +++ /dev/null @@ -1,82 +0,0 @@ -diff -up ./config/defaults.inc.php.rpm ./config/defaults.inc.php ---- ./config/defaults.inc.php.rpm 2018-01-14 14:00:49.000000000 +0100 -+++ ./config/defaults.inc.php 2018-01-15 07:19:24.805118072 +0100 -@@ -382,11 +382,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 - // 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 -@@ -601,7 +601,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 --$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; -@@ -1236,3 +1236,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. Default 'enigma/home'. -+// Must be writeable by PHP process -+$config['enigma_pgp_homedir'] = '/var/lib/roundcubemail/enigma'; -diff -up ./installer/index.php.rpm ./installer/index.php -diff -up ./plugins/enigma/config.inc.php.dist.rpm ./plugins/enigma/config.inc.php.dist ---- ./plugins/enigma/config.inc.php.dist.rpm 2018-01-14 14:00:50.000000000 +0100 -+++ ./plugins/enigma/config.inc.php.dist 2018-01-15 07:19:24.805118072 +0100 -@@ -12,10 +12,6 @@ $config['enigma_smime_driver'] = 'phpssl - // Enables logging of enigma operations (including Crypt_GPG debug info) - $config['enigma_debug'] = false; - --// Keys directory for all users. Default 'enigma/home'. --// Must be writeable by PHP process --$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 2018-01-14 14:00:51.000000000 +0100 -+++ ./program/include/iniset.php 2018-01-15 07:19:24.806118078 +0100 -@@ -29,7 +29,7 @@ if (!defined('INSTALL_PATH')) { - } - - if (!defined('RCMAIL_CONFIG_DIR')) { -- define('RCMAIL_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')) - } - - 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 -diff -up ./program/lib/Roundcube/bootstrap.php.rpm ./program/lib/Roundcube/bootstrap.php ---- ./program/lib/Roundcube/bootstrap.php.rpm 2018-01-14 14:00:51.000000000 +0100 -+++ ./program/lib/Roundcube/bootstrap.php 2018-01-15 07:19:24.806118078 +0100 -@@ -65,7 +65,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.4-confpath.patch b/roundcubemail-1.4-confpath.patch new file mode 100644 index 0000000..4c0240c --- /dev/null +++ b/roundcubemail-1.4-confpath.patch @@ -0,0 +1,81 @@ +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; + // 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 + // 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; + // 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 +-$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; +@@ -1265,3 +1265,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 2018-09-17 15:22:35.041631063 +0200 ++++ ./plugins/enigma/config.inc.php.dist 2018-09-17 15:23:04.918823805 +0200 +@@ -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 ./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')) { + } + + if (!defined('RCMAIL_CONFIG_DIR')) { +- define('RCMAIL_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')) + } + + 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 +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')) { + } + + 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-pr313.patch b/roundcubemail-pr313.patch deleted file mode 100644 index 2490e1a..0000000 --- a/roundcubemail-pr313.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 132a807dff7fc2d173e2e3bebb18ee181c7b27d9 Mon Sep 17 00:00:00 2001 -From: Remi Collet -Date: Mon, 28 Dec 2015 08:47:37 +0100 -Subject: [PATCH 1/2] add .log suffix to all log file names - ---- - program/lib/Roundcube/rcube.php | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/program/lib/Roundcube/rcube.php b/program/lib/Roundcube/rcube.php -index 3694c5c4b..ef5dcb94e 100644 ---- a/program/lib/Roundcube/rcube.php -+++ b/program/lib/Roundcube/rcube.php -@@ -1246,7 +1246,7 @@ public static function write_log($name, $line) - $log_dir = RCUBE_INSTALL_PATH . 'logs'; - } - -- return file_put_contents("$log_dir/$name", $line, FILE_APPEND) !== false; -+ return file_put_contents("$log_dir/$name.log", $line, FILE_APPEND) !== false; - } - - /** - -From 6ca4eab399adad22ed93b26c5870896425631dfa Mon Sep 17 00:00:00 2001 -From: Remi Collet -Date: Tue, 27 Jun 2017 13:35:01 +0200 -Subject: [PATCH 2/2] add 'log_file_ext' configuration option - ---- - config/defaults.inc.php | 3 +++ - program/lib/Roundcube/rcube.php | 8 +++++++- - 2 files changed, 10 insertions(+), 1 deletion(-) - -diff --git a/config/defaults.inc.php b/config/defaults.inc.php -index e2db2b726..050803231 100644 ---- a/config/defaults.inc.php -+++ b/config/defaults.inc.php -@@ -77,6 +77,9 @@ - // set to 0 to avoid session IDs being logged. - $config['log_session_id'] = 8; - -+// Default extension used for log file name -+$config['log_file_ext'] = '.log'; -+ - // Syslog ident string to use, if using the 'syslog' log driver. - $config['syslog_id'] = 'roundcube'; - -diff --git a/program/lib/Roundcube/rcube.php b/program/lib/Roundcube/rcube.php -index ef5dcb94e..401cd3f86 100644 ---- a/program/lib/Roundcube/rcube.php -+++ b/program/lib/Roundcube/rcube.php -@@ -1242,11 +1242,17 @@ public static function write_log($name, $line) - } - } - -+ if (self::$instance) { -+ $log_suf = self::$instance->config->get('log_file_ext', '.log'); -+ } else { -+ $log_suf = '.log'; -+ } -+ - if (empty($log_dir)) { - $log_dir = RCUBE_INSTALL_PATH . 'logs'; - } - -- return file_put_contents("$log_dir/$name.log", $line, FILE_APPEND) !== false; -+ return file_put_contents("$log_dir/$name$log_suf", $line, FILE_APPEND) !== false; - } - - /** -diff -up ./program/lib/Roundcube/rcube_config.php.suf ./program/lib/Roundcube/rcube_config.php ---- ./program/lib/Roundcube/rcube_config.php.suf 2018-01-15 07:32:16.149315868 +0100 -+++ ./program/lib/Roundcube/rcube_config.php 2018-01-15 07:32:19.436332757 +0100 -@@ -253,7 +253,7 @@ class rcube_config - ini_set('error_log', 'syslog'); - } - else { -- ini_set('error_log', $this->prop['log_dir'].'/errors'); -+ ini_set('error_log', $this->prop['log_dir'].'/errors.log'); - } - } - diff --git a/roundcubemail.spec b/roundcubemail.spec index 52f4b57..c487ce6 100644 --- a/roundcubemail.spec +++ b/roundcubemail.spec @@ -15,12 +15,13 @@ %else %global with_phpfpm 0 %endif -#global prever rc +%global upstream_version 1.4 +%global upstream_prever beta %global roundcubedir %{_datadir}/roundcubemail %global _logdir /var/log Name: roundcubemail -Version: 1.3.7 +Version: %{upstream_version}%{?upstream_prever:~%{upstream_prever}} Release: 1%{?dist} Summary: Round Cube Webmail is a browser-based multilingual IMAP client @@ -37,7 +38,7 @@ Summary: Round Cube Webmail is a browser-based multilingual IMAP client # http://www.tinymce.com/ License: GPLv3+ with exceptions and GPLv3+ and GPLv2 and LGPLv2+ and CC-BY-SA and (MIT or GPLv2) URL: http://www.roundcube.net -Source0: https://github.com/roundcube/roundcubemail/releases/download/%{version}%{?prever:-%{prever}}/roundcubemail-%{version}%{?prever:-%{prever}}-complete.tar.gz +Source0: https://github.com/roundcube/roundcubemail/releases/download/%{upstream_version}%{?upstream_prever:-%{upstream_prever}}/roundcubemail-%{upstream_version}%{?upstream_prever:-%{upstream_prever}}-complete.tar.gz Source1: roundcubemail.httpd Source3: roundcubemail.nginx @@ -45,11 +46,8 @@ Source2: roundcubemail.logrotate Source4: roundcubemail-README-rpm.txt # Non-upstreamable: Adjusts config path to Fedora policy -Patch1: roundcubemail-1.3.4-confpath.patch +Patch1: roundcubemail-1.4-confpath.patch -# add .log prefix to all log file names -# see https://github.com/roundcube/roundcubemail/pull/313 -Patch2: roundcubemail-pr313.patch BuildArch: noarch # For test @@ -61,13 +59,19 @@ BuildRequires: php-pear(Net_IDNA2) >= 0.2.0 BuildRequires: php-pear(Mail_Mime) >= 1.10.0 BuildRequires: php-pear(Net_SMTP) >= 1.7.1 BuildRequires: php-pear(Crypt_GPG) >= 1.6.0 -BuildRequires: php-pear(Net_Sieve) >= 1.4.0 -BuildRequires: php-composer(endroid/qrcode) < 2 -BuildRequires: php-composer(endroid/qrcode) >= 1.6.5 +BuildRequires: php-pear(Net_Sieve) >= 1.4.3 BuildRequires: php-pear(Net_LDAP2) >= 2.2.0 -BuildRequires: php-composer(kolab/Net_LDAP3) +BuildRequires: php-composer(kolab/net_ldap3) >= 1.0.6 BuildRequires: php-composer(fedora/autoloader) - +%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) +%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 @@ -108,9 +112,12 @@ Requires: php-xml # "pear/mail_mime": "~1.10.0", # "pear/net_smtp": "~1.7.1", # "pear/crypt_gpg": "~1.6.0", -# "pear/net_sieve": "~1.4.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(Net_Socket) >= 1.2.1 @@ -119,14 +126,18 @@ Requires: php-pear(Net_IDNA2) >= 0.2.0 Requires: php-pear(Mail_Mime) >= 1.10.0 Requires: php-pear(Net_SMTP) >= 1.7.1 Requires: php-pear(Crypt_GPG) >= 1.6.0 -Requires: php-pear(Net_Sieve) >= 1.4.0 -Requires: php-composer(endroid/qrcode) < 2 -Requires: php-composer(endroid/qrcode) >= 1.6.5 -# From composer.json-dist, suggest -# "pear/net_ldap2": "~2.2.0 required for connecting to LDAP", -# "kolab/Net_LDAP3": "dev-master required for connecting to LDAP" +Requires: php-pear(Net_Sieve) >= 1.4.3 Requires: php-pear(Net_LDAP2) >= 2.2.0 -Requires: php-composer(kolab/Net_LDAP3) +Requires: php-composer(kolab/net_ldap3) >= 1.0.6 +%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) +%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 # mailcap for /etc/mime.types Requires: mailcap # Autoloader @@ -155,12 +166,14 @@ Suggests: php-gearman # Bundled JS libraries # see https://github.com/roundcube/roundcubemail/blob/master/jsdeps.json -Provides: bundled(js-jquery) = 3.2.1 +Provides: bundled(js-jquery) = 3.3.1 Provides: bundled(js-jstz) = 1.0.6 Provides: bundled(js-publickey) -Provides: bundled(js-tinymce) = 4.5.7 -Provides: bundled(js-openpgp) = 1.6.2 -Provides: bundled(js-codemirror) = 5.21.0 +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 %description @@ -175,16 +188,15 @@ CSS 2. %prep -%setup -q -n roundcubemail-%{version}%{?prever:-%{prever}} -%patch1 -p1 -%patch2 -p1 +%setup -q -n roundcubemail-%{upstream_version}%{?upstream_prever:-%{upstream_prever}} +%patch1 -p1 -b .rpm # fix permissions and remove any .htaccess files find . -type f -print | xargs chmod a-x find . -name \.htaccess -print | xargs rm -f # drop file from patch -find . -type f -name '*.orig' -exec rm {} \; -print +find . -type f -name '*.orig' -o -name '*.rpm' -exec rm {} \; -print # Wipe bbcode plugin from bundled TinyMCE to make doubleplus sure we cannot # be vulnerable to CVE-2012-4230, unaddressed upstream @@ -204,6 +216,7 @@ require_once '%{_datadir}/php/Fedora/Autoloader/autoload.php'; # Composer components \Fedora\Autoloader\Dependencies::required([ '%{_datadir}/php/Endroid/QrCode/autoload.php', + '%{_datadir}/php/Masterminds/HTML5/autoload.php', ]); EOF @@ -273,7 +286,7 @@ 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", +$cl = [ "Auth_SASL", "Crypt_GPG", "Mail_mime", "Net_IDNA2", "Net_LDAP2", "Masterminds\\HTML5", "Net_LDAP3", "Net_Sieve", "Net_SMTP", "Net_Socket", "PEAR" , "Endroid\\QrCode\\QrCode" ]; $ret = 0; foreach ($cl as $c) { @@ -326,6 +339,12 @@ fi %changelog +* Mon Sep 17 2018 Remi Collet - 1.4~beta-1 +- Update to 1.4-beta +- raise dependency on pear/net_sieve 1.4.3 +- raise dependency on kolab/net_ldap3 1.0.6 +- add dependency on masterminds/html5 + * Wed Aug 01 2018 Kevin Fenzi - 1.3.7-1 - Update to 1.3.7. Fixes bug #1609445 -- cgit