Opened 4 years ago

Closed 4 years ago

#8139 closed Bug/Something is broken (fixed)

consider testing roundcube 1.0 RC on roundcube.dev.mayfirst.org

Reported by: https://id.mayfirst.org/dkg Owned by: https://id.mayfirst.org/srevilak
Priority: Medium Component: Tech
Keywords: roundcube.dev.mayfirst.org roundcube Cc:
Sensitive: no

Description

roundcube 1.0 beta was recently released. We should consider trying it out on https://roundcube.dev.mayfirst.org.

This is not an urgent upgrade, but it would be useful for us to note any problems we run into with it so that those problems can be noted (and hopefully fixed) before the official 1.0 release, if possible.

Attachments (1)

merge-roundcube-configs.php (745 bytes) - added by https://id.mayfirst.org/srevilak 4 years ago.
Small PHP script to merge roundcube configuration files (db.inc + main.inc = config.inc)

Download all attachments as: .zip

Change History (18)

comment:1 Changed 4 years ago by https://id.mayfirst.org/dskallman

  • Owner set to https://id.mayfirst.org/srevilak
  • Status changed from new to assigned

Steve, looping you in as it's RoundCube related.

comment:2 Changed 4 years ago by https://id.mayfirst.org/srevilak

I thought this might be related to #8046, but they're clearly different issues.

I'll work on upgrading roundcube.dev to their roundcube 1.0 beta.

comment:3 Changed 4 years ago by https://id.mayfirst.org/srevilak

0 sunny:roundcube$ git branch -r --contains v1.0-beta
  origin/HEAD -> origin/master
  origin/master
0 sunny:roundcube$ 

so, it probably makes sense to move gmo/master to that point, and cherry pick our differentials from there (as opposed to cutting a separate branch, as I did for the 0.9 upgrade).

0 sunny:roundcube$ git branch -D master
Deleted branch master (was 6d65902).
0 sunny:roundcube$ git checkout -b master gmo/master
Branch master set up to track remote branch master from gmo.
Switched to a new branch 'master'
0 sunny:roundcube$ 

0 sunny:roundcube$ git rebase v1.0-beta
First, rewinding head to replay your work on top of it...
Fast-forwarded master to v1.0-beta.
0 sunny:roundcube$

0 sunny:roundcube$ git diff v1.0-beta...HEAD
0 sunny:roundcube$ git diff v1.0-beta..HEAD
0 sunny:roundcube$

Now, to cherry pick our modifications.

0 sunny:roundcube$ git log --oneline v0.9.5..roundcube-0.9.5-mfpl1
31b7b7e (fetch_identity_objects): avoid redundant call to unserialize
3a256e8 Adding two plugins: import_horde_contacts, import_horde_identities
0 sunny:roundcube$

0 sunny:roundcube$ git cherry-pick 3a256e8
[master 38a7507] Adding two plugins: import_horde_contacts, import_horde_identities
 2 files changed, 212 insertions(+)
 create mode 100644 plugins/import_horde_contacts/import_horde_contacts.php
 create mode 100644 plugins/import_horde_identities/import_horde_identities.php
0 sunny:roundcube$ git cherry-pick 31b7b7e
[master 1a71369] (fetch_identity_objects): avoid redundant call to unserialize
 1 file changed, 1 insertion(+), 1 deletion(-)
0 sunny:roundcube$ 

Finally, tag:

0 sunny:roundcube$ git tag -v roundcube-v1.0-beta-mfpl1
object 1a713692dc258286be3e42c05a5cf2e8cc149611
type commit
tag roundcube-v1.0-beta-mfpl1
tagger Steve Revilak <steve@srevilak.net> 1388872168 -0500

Upgrading roundcube to v1.0-beta, for
https://support.mayfirst.org/ticket/8139
gpg: Signature made Sat 04 Jan 2014 04:50:23 PM EST
gpg:                using RSA key 0x3EB22DE4E594DCF2
gpg: Good signature from "Steve Revilak <steve@srevilak.net>"
0 sunny:roundcube$ 

And push

0 sunny:roundcube$ git push gmo master
X11 forwarding request failed on channel 0
Counting objects: 2082, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (836/836), done.
Writing objects: 100% (1609/1609), 786.39 KiB, done.
Total 1609 (delta 1074), reused 1285 (delta 761)
remote: To git-roundcube@moses.mayfirst.org:/srv/git/roundcube
remote:    1ece73d..1a71369  master -> master
To ssh://gitosis@git.mayfirst.org/mfpl/roundcube
   1ece73d..1a71369  master -> master

0 sunny:roundcube$ git push --tags gmo
X11 forwarding request failed on channel 0
Counting objects: 1, done.
Writing objects: 100% (1/1), 868 bytes, done.
Total 1 (delta 0), reused 0 (delta 0)
remote: To git-roundcube@moses.mayfirst.org:/srv/git/roundcube
remote:  * [new tag]         roundcube-v1.0-beta-mfpl1 -> roundcube-v1.0-beta-mfpl1
remote:  * [new tag]         v1.0-beta -> v1.0-beta
To ssh://gitosis@git.mayfirst.org/mfpl/roundcube
 * [new tag]         roundcube-v1.0-beta-mfpl1 -> roundcube-v1.0-beta-mfpl1
 * [new tag]         v1.0-beta -> v1.0-beta
0 sunny:roundcube$ 

That's the code management part. Next step: updating roundcube.dev.mayfirst.org's runtime.

comment:4 Changed 4 years ago by https://id.mayfirst.org/srevilak

For reference, #6961 was the last major roundcube upgrade.

comment:5 Changed 4 years ago by https://id.mayfirst.org/srevilak

Next, update code:

0 roundcube-code@stallman:/srv/roundcube-dev$ git remote update
Fetching gmo
remote: Counting objects: 2083, done.
remote: Compressing objects: 100% (524/524), done.
remote: Total 1610 (delta 1074), reused 1609 (delta 1074)
Receiving objects: 100% (1610/1610), 787.33 KiB, done.
Resolving deltas: 100% (1074/1074), completed with 218 local objects.
From git://git.mayfirst.org/mfpl/roundcube
   1ece73d..1a71369  master     -> gmo/master
 * [new tag]         roundcube-v1.0-beta-mfpl1 -> roundcube-v1.0-beta-mfpl1
From git://git.mayfirst.org/mfpl/roundcube
 * [new tag]         v1.0-beta  -> v1.0-beta
0 roundcube-code@stallman:/srv/roundcube-dev$ 


0 roundcube-code@stallman:/srv/roundcube-dev$ git tag -v roundcube-v1.0-beta-mfpl1
object 1a713692dc258286be3e42c05a5cf2e8cc149611
type commit
tag roundcube-v1.0-beta-mfpl1
tagger Steve Revilak <steve@srevilak.net> 1388872168 -0500

Upgrading roundcube to v1.0-beta, for
https://support.mayfirst.org/ticket/8139
gpg: Signature made Sat 04 Jan 2014 04:50:23 PM EST
gpg:                using RSA key 0x3EB22DE4E594DCF2
gpg: Good signature from "Steve Revilak <steve@srevilak.net>"
0 roundcube-code@stallman:/srv/roundcube-dev$ 


0 roundcube-code@stallman:/srv/roundcube-dev$ git checkout roundcube-v1.0-beta-mfpl1
Previous HEAD position was 31b7b7e... (fetch_identity_objects): avoid redundant call to unserialize
HEAD is now at 1a71369... (fetch_identity_objects): avoid redundant call to unserialize
0 roundcube-code@stallman:/srv/roundcube-dev$

Make a copy of roundcube's configuration file

0 roundcube-code@stallman:/srv/roundcube-dev/config$ cp -p main.inc.php main.inc.php.`date +%F`
0 roundcube-code@stallman:/srv/roundcube-dev/config$ 

Then walk through the steps in UPGRADING.

comment:6 Changed 4 years ago by https://id.mayfirst.org/srevilak

0 roundcube-dev@stallman:/srv/roundcube-dev$ php -d suhosin.session.encrypt=off bin/update.sh 
What version are you upgrading from? Type '?' if you don't know.
0.9.5
WARNING: Replaced config options:
(These config options have been replaced or renamed)
- 'min_keep_alive' was replaced by 'min_refresh_interval'
- 'keep_alive' was replaced by 'refresh_interval'

NOTICE: Obsolete config options:
(You still have some obsolete or inexistent properties set. This isn't a problem but should be noticed)
- 'mime_magic'

Do you want me to fix your local configuration? (y/N)
N
Please update your config files manually according to the above messages.
WARNING: File type detection doesn't work properly!
Please check the 'mime_magic' config option or the finfo functions of PHP andrun this script again.
WARNING: Mimetype to file extension mapping doesn't work properly!
Please check the 'mime_types' config option and run this script again.
Executing database schema update.
Updating database schema (2013042700)... [OK]
Updating database schema (2013052500)... [OK]
Updating database schema (2013061000)... [OK]
This instance of Roundcube is up-to-date.
Have fun!
0 roundcube-dev@stallman:/srv/roundcube-dev$

I commented out the 'mime_magic' config option, and attempted to run update.sh again. This time, a contrary warning:

WARNING: File type detection doesn't work properly!
Please check the 'mime_magic' config option or the finfo functions of PHP andrun this script again.
WARNING: Mimetype to file extension mapping doesn't work properly!
Please check the 'mime_types' config option and run this script again.
Executing database schema update.
This instance of Roundcube is up-to-date.
Have fun!

So, I'll restore the mime_magic setting.

Here's the final set of configuration diffs

0 roundcube-code@stallman:/srv/roundcube-dev/config$ diff -u main.inc.php.2014-01-04  main.inc.php
--- main.inc.php.2014-01-04     2013-08-10 14:25:11.000000000 -0400
+++ main.inc.php        2014-01-04 17:42:19.000000000 -0500
@@ -474,9 +474,8 @@
 // don't let users set pagesize to more than this value if set
 $rcmail_config['max_pagesize'] = 200;
 
-// Minimal value of user's 'keep_alive' setting (in seconds)
-// Must be less than 'session_lifetime'
-$rcmail_config['min_keep_alive'] = 60;
+// Minimal value of user's 'refresh_interval' setting (in seconds)
+$rcmail_config['min_refresh_interval'] = 60;
 
 // Enables files upload indicator. Requires APC installed and enabled apc.rfc1867 option.
 // By default refresh time is set to 1 second. You can set this value to true
@@ -728,9 +727,10 @@
 // Use 'Purge' to remove messages marked as deleted
 $rcmail_config['flag_for_deletion'] = false;
 
-// Default interval for keep-alive/check-recent requests (in seconds)
-// Must be greater than or equal to 'min_keep_alive' and less than 'session_lifetime'
-$rcmail_config['keep_alive'] = 60;
+// Default interval for auto-refresh requests (in seconds)
+// These are requests for system state updates e.g. checking for new messages, etc.
+// Setting it to 0 disables the feature.
+$rcmail_config['refresh_interval'] = 60;
 
 // If true all folders will be checked for recent messages
 $rcmail_config['check_all_folders'] = false;
1 roundcube-code@stallman:/srv/roundcube-dev/config$

comment:7 Changed 4 years ago by https://id.mayfirst.org/srevilak

Index contacts

0 roundcube-dev@stallman:/srv/roundcube-dev$ php -d suhosin.session.encrypt=off bin/indexcontacts.sh 
Indexing contacts for user 1...done.
Indexing contacts for user 2...done.
  [...]
Indexing contacts for user 47...done.
Indexing contacts for user 48...done.
0 roundcube-dev@stallman:/srv/roundcube-dev$

comment:8 Changed 4 years ago by https://id.mayfirst.org/srevilak

I've done a little testing with https://roundcube.dev.mayfirst.org/. So far, no issues encountered. I'll do more testing; others are free to test as well.

There is one area where I'd like to do some additional investigation.

Roundcube's config directory contains a defaults.inc.php and a config.inc.php.sample; note "config.inc.php", rather than the configuration file names that we use: "db.inc.php" and "main.inc.php".

Also, main.inc.php defines variables in an associative array called $rcmail_config while defaults.inc.php and config.inc.php use an associative array called $config.

update.sh succeeded in finding obsolete variables in our configuration, which implies that it read our configuration values. However, I'd like to understand what's going on with the name changes.

comment:9 Changed 4 years ago by https://id.mayfirst.org/srevilak

Here's an announcement that mentions the configuration file changes.

http://www.roundcubeforum.net/index.php/topic,15463.0.html

WARNING: the old configuration files named main.inc.php and db.inc.php are now deprecated and should be replaced with one single config.inc.php file. Run the ./bin/update.sh script to get this conversion done or manually merge the files. NOTE: the new config.inc.php should only contain options that differ from the ones listed in defaults.inc.php.

I'll work on this next.

My first (naive) attempt at merging resulted in roundcube not being able to talk to Postgres, so I'll have to rewind and give that another shot.

comment:10 Changed 4 years ago by https://id.mayfirst.org/dkg

  • Summary changed from consider testing roundcube 1.0 beta on roundcube.dev.mayfirst.org to consider testing roundcube 1.0 RC on roundcube.dev.mayfirst.org

the roundcube 1.0 release candidate is now out. we should update https://roundcube.dev.mayfirst.org to use the RC and make sure it works for us.

comment:11 Changed 4 years ago by https://id.mayfirst.org/srevilak

I think that going to to 1.0 RC makes sense.

I still have to do the configuration file reorganization (comment:9). I'll do the configuration file reorg, then upgrade to RC.

comment:12 Changed 4 years ago by https://id.mayfirst.org/srevilak

Roundcube 1.0 recommends the use of a single configuration file (config.inc.php), which contains only settings that differ from the default.

I wrote a little php program to do most of this work (the output needs a small bit of touching up). I'll attach a copy of the php script to this script; but the 'working' copy lives in roundcube-code@stallman:merge-roundcube-configs.php.

At any rate, we've got a working RELEASE 1.0-beta installed on roundcube.dev.mayfirst.org. Now, onto 1.0-RC.

Changed 4 years ago by https://id.mayfirst.org/srevilak

Small PHP script to merge roundcube configuration files (db.inc + main.inc = config.inc)

comment:13 Changed 4 years ago by https://id.mayfirst.org/srevilak

Cursory outline of upstream merge

git remote add gmo  gitosis@git.mayfirst.org:mfpl/roundcube.git
git remote add origin https://github.com/roundcube/roundcubemail
git remote update
git branch -r --contains v1.0-rc

git branch -D master
git checkout -b master origin/release-1.0
git log --oneline v1.0-rc..roundcube-v1.0-beta-mfpl1

git cherry-pick 3a256e8
git cherry-pick 1a71369

# master no longer fast forwards on gmo.  So, use a new branch.
git checkout -b mfpl-release-1.0 master
git push gmo mfpl-release-1.0

git tag -s roundcube-v1.0-rc-mfpl1
git push gmo --tags

comment:14 Changed 4 years ago by https://id.mayfirst.org/srevilak

Deploy

0 roundcube-code@stallman:/srv/roundcube-dev$ git checkout roundcube-v1.0-rc-mfpl1
Previous HEAD position was 1a71369... (fetch_identity_objects): avoid redundant call to unserialize
HEAD is now at 643a027... (fetch_identity_objects): avoid redundant call to unserialize
0 roundcube-code@stallman:/srv/roundcube-dev$

comment:15 Changed 4 years ago by https://id.mayfirst.org/srevilak

After deploying code, run as roundcube-dev user

php -d suhosin.session.encrypt=off bin/update.sh 
php -d suhosin.session.encrypt=off bin/indexcontacts.sh 

comment:16 Changed 4 years ago by https://id.mayfirst.org/srevilak

  • Resolution set to fixed
  • Status changed from assigned to feedback

Upgrade to 1.0-RC done. Will put out a call for testers.

comment:17 Changed 4 years ago by automatic

  • Status changed from feedback to closed

No news is good news (we hope)! Given the lack of feedback, we think this ticket can be closed.

Please login to add comments to this ticket.

Note: See TracTickets for help on using tickets.