Roundcube 1.5.1 released

Tristan

Verified User
Joined
Feb 11, 2005
Messages
684
Location
The Netherlands
This is the first service release to update the new stable version 1.5. It provides a bunch of small fixes and improvements after getting your feedback from the 1.5.0 release. See the full changelog below.

Important note for MySQL and MariaDB database backends​

The change to full UTF-8 support in MySQL/MariaDB didn't work for everybody migrating an existing DB. Hence here's an important notice from the UPGRADING instructions:

If you use MySQL < 5.7.7 or MariaDB < 10.2.2 make sure to configure it with:

innodb_large_prefix=1
innodb_file_per_table=1
innodb_file_format=Barracuda

This version is considered stable and we recommend to update all productive installations of Roundcube with it. Please do backup your data before updating!

CHANGELOG​

  • Fix importing contacts with no email address (#8227)
  • Fix so session's search scope is not used if search is not active (#8199)
  • Fix some PHP8 warnings (#8239)
  • Fix so dark mode state is retained after closing the browser (#8237)
  • Fix bug where new messages were not added to the list on refresh if skip_deleted=true (#8234)
  • Fix colors on "Show source" page in dark mode (#8246)
  • Fix handling of dark_mode_support:false setting in skins meta.json - also when devel_mode=false (#8249)
  • Fix database initialization if db_prefix is a schema prefix (#8221)
  • Fix undefined constant error in Installer on Windows (#8258)
  • Fix installation/upgrade on MySQL 5.5 - Index column size too large (#8231)
  • Fix regression in setting of contact listing name (#8260)
  • Fix bug in Larry skin where headers toggle state was reset on full page preview (#8203)
  • Fix bug where \u200b characters were added into the recipient input preventing mail delivery (#8269)
  • Fix charset conversion errors on PHP < 8 for charsets not supported by mbstring (#8252)
  • Fix bug where adding a contact to trusted senders via "Always allow from..." button didn't work (#8264, #8268)
  • Fix bug with show_images setting where option 1 and 3 were swapped (#8268)
  • Fix PHP fatal error on an undefined constant in contacts import action (#8277)
  • Fix fetching headers of multiple message parts at once in rcube_imap_generic::fetchMIMEHeaders() (#8282)
  • Fix bug where attachment download could sometimes fail with a CSRF check error (#8283)
  • Fix an infinite loop when parsing environment variables with float/integer values (#8293)
  • Fix so 'small-dark' logo has more priority than the 'small' logo (#8298)
 
When I try to pin Roundcube 1.4.12 (LTS) in custom_versions.txt:
Code:
roundcubemail:1.4.12:
Custombuild gives the same error as for 1.5.1:
Code:
root@box:/usr/local/directadmin/custombuild# ./build update_versions
Updating RoundCube.
RoundCube 1.4.12 requires newer version of MySQL than 5.6, alternatively, the following my.cnf configuration can be set:
innodb_large_prefix=1
innodb_file_per_table=1
innodb_file_format=Barracuda
I'd like to keep the LTS version for now without upgrading MySQL.

Is that possible?
 
It seems that build does not check the Roundcube version, only the MySQL version:
Code:
if ${OLD_MYSQL}; then
        echo "${boldon}RoundCube ${ROUNDCUBE_VER} requires newer version of ${MYSQLNAME} than ${MYSQLV}, alternatively, the following my.cnf configuration can be set:${bold$
        echo "innodb_large_prefix=1"
        echo "innodb_file_per_table=1"
        echo "innodb_file_format=Barracuda"
        exit 1
fi
Workaround is replacing the check in the build script:
Code:
cd /usr/local/directadmin/custombuild
cp -a build build.bak
sed 's/if \${OLD_MYSQL}\; then/if \${OLD_MYSQL} \&\& \[ "${ROUNDCUBE_VER}" -ge "1.5.0" \]\; then/' -i build
It should look like this:
Code:
if ${OLD_MYSQL} && [ "${ROUNDCUBE_VER}" -ge "1.5.0" ]; then
After the change it is possible to install or downgrade to Roundcube 1.4.x.
 
Last edited:
I hope DA custombuild build script can detect the MySQL / MariaDB and determine to use RoundCube 1.4 (1.4.12 now) or 1.5 automatically.
 
MySQL version check for RoundCube versions <1.5 has been removed in CB 2.0 rev. 2797.
 
MySQL version check for RoundCube versions <1.5 has been removed in CB 2.0 rev. 2797.
Ok, but when we have old MySQL/MariaDB with
Code:
innodb_large_prefix=1
innodb_file_per_table=1
innodb_file_format=Barracuda

custombuild does not upgraded RC.
 
Ok, but when we have old MySQL/MariaDB with
Code:
innodb_large_prefix=1
innodb_file_per_table=1
innodb_file_format=Barracuda

custombuild does not upgraded RC.
Fixed in CB 2.0 rev. 2800.
 
Please let me know the output of:
Code:
grep 'innodb_file_format=Barracuda' /etc/my.cnf
 
Please let me know the output of:
Code:
grep 'innodb_file_format=Barracuda' /etc/my.cnf
Nothing. I have:
Code:
innodb_file_format = Barracuda

in /etc/my.cnf.d/server.cnf

Code:
mysql --defaults-file=/usr/local/directadmin/conf/my.cnf -e 'show variables like "innodb_file_format"' |grep Barracuda
I think this is a better solution than grep in file.

Or check like in other section in custombuild
Code:
#To make sure local-infile is disabled
setup_my_cnf() {
        echo "Ensuring local-infile is disabled for security reasons in MySQL configuration file..."
        MY_CNF_FILE=/etc/my.cnf
        if [ -e ${MY_CNF_FILE} ]; then
                if grep -m1 -q -F 'includedir /etc/my.cnf.d' ${MY_CNF_FILE}; then
                        if [ -e /etc/my.cnf.d/server.cnf ]; then
                                MY_CNF_FILE=/etc/my.cnf.d/server.cnf
                        fi
                fi
                if grep -m1 -q '[mysqld]' ${MY_CNF_FILE}; then
                        if ! grep -m1 -q 'local-infile' ${MY_CNF_FILE}; then
                                perl -pi -e 's#\[mysqld\]#[mysqld]\nlocal-infile = 0#' ${MY_CNF_FILE}
                        fi
                else
                        if ! grep -m1 -q 'local-infile' ${MY_CNF_FILE}; then
                                echo '[mysqld]' >> ${MY_CNF_FILE}
                                echo 'local-infile = 0' >> ${MY_CNF_FILE}
                        fi
                fi
                if ! grep -m1 -q 'max_allowed_packet' ${MY_CNF_FILE}; then
                        if ! grep -m1 -q 'max-allowed-packet' ${MY_CNF_FILE}; then
                                perl -pi -e 's#\[mysqld\]#[mysqld]\nmax_allowed_packet=64M#' ${MY_CNF_FILE}
                        fi
                fi
        fi
}
 
Last edited:
Back
Top