Forum OpenACS Q&A: upgrade OpenACS 5.2.3 to 5.9.1, advice?

I'm planning to upgrade a customized website from OpenACS 5.2.3 (from c. 2006) to the latest 5.9.1, on Oracle.  Any advice for me, problems you ran into, gotchas to look out for, etc.?

The old website I want to upgrade is running AOLserver 4.0.x on an old Ubuntu 12.04.5 machine.  The new machine runs Ubuntu 16.04.2 LTS, which cannot run nor compile that ancient version of AOLserver 4.0.x (I tried).  On the new machine, I have NaviServer 4.99.16d9, NSF/XOTcl/NX 2.1.0, and Tcl 8.6.5.  (I haven't tried building NaviServer on the old machine, but probably it would work.)

The relevant upgrade links I found so far are:

That upgrade-oacs-5-9 page says to first upgrade to OpenACS 5.8, and then to 5.9.  Is that solely because of compatibility with different versions of PostgreSQL?  (I am on Oracle so that doesn't matter to me.)  Or are there other reasons too?

From the compatibility matrix, I see that AOLserver 4.0 is supported through OpenACS 5.7, while NaviServer support only started with version 5.6.  Does that mean I should first upgrade to 5.7 running AOLserver, switch to NaviServer, and then upgrade the rest of the way?

I see that XOTcl 2.0 support starts with OpenACS 5.8.  But do any versions of OpenACS actually need XOTcl during an upgrade?  My old 5.2.3 site doesn't use XOTcl at all, so I'd rather skip 1.x and jump right to busing 2.0.

In addition to the 21 acs-* core packages, what packages do you think are particularly important or useful, such that I should add (cvs import) them to my system even though I've never used them before?  I suspect:  xotcl-core, xotcl-request-monitor

For upgrading from 5.2.3 through 5.8 or so, should I get the latest 5.8.1 or 5.9.1 files and do the entire upgrade at once?  Or is it better for some reason to actually upgrade to each individual 5.x version along the way, first to 5.3.2, then 5.4.3, 5.5.1, etc.?

Fortunately, I see that the OpenACS CVS does include tags for every major version I care about:
openacs-5-2-3, openacs-5-3-2-final, openacs-5-4-3-final, openacs-5-5-1-final, openacs-5-6-0-final, openacs-5-7-0-final, openacs-5-8-1-final, openacs-5-9-1-final

(Thanks in advance for your help and advice!)

Posted by Gustaf Neumann on
Well, this is an upgrade of a more than 10 years old code, quite a journey.

Since you are on oracle, then the stepwise upgrade to 5.8 is not necessary (concerns mostly the upgrade scripts) up to my knowledge - but i have no Oracle installation. For Oracle the upgrade scripts are maintained by best effort, so don't not expect a fully paved road. Brian Fenton has upgraded a Oracle-OpenACS site to OpenACS 5.9.0, the necessary fixes for that are included in 5.9.1.

The red in the compatibility matrix means "don't run a site with this version", if something is broke, there will be no fixes for this version. For example, there is a bug in older versions of AOLserver (including at least 4.5.0), where "funny characters" might show up, this is for e.g. the upgrade process not relevant. Also concerning XOTcl, i would not be concerned, when you do not use XOTcl packages.

Since on Oracle, I would try the following:

a) prepare
- Get everything compiled for the new NaviServer,
- Make configurations in the openacs-config file coming for NaviServer (don't expect, the old AOLserver config file will work)
- make a copy of your existing OpenACS tree (such you can
quickly switch to the old version, in case the upgrade does not work, will take longer)
- since you are on CVS, get openacs-5-9-1 of OpenACS and merge local changes, if these exists ("cvs ... upgrade -r ..." will do this, conflicts might show up)

b) backup and boot new version
- shutdown your old instance
- backup everything (DB + OpenACS tree)
- start the new server - it should boot up sufficiently well to get to the upgrade scripts

c) run upgrade scripts
- first OpenACS core packages
- then application packages

This recommendation is on weak grounds, since we have no Oracle experiences.

Posted by Brian Fenton on

yes, we are running on Oracle (just moved to 12c), but we haven't actually upgraded our product to a recent OpenACS version. What we have done is:

upgraded database from 11g to 12c
switched from Linux to Windows 2012
switched from AOLserver to Naviserver

The job to upgrade to latest OpenACS is still on our list, but we have too long a list of client demands to be able to fit it in at the moment. It looks like a huge task, as there has been quite a bit of customisation to the core made over the years.

I did look into running the latest OpenACS on Oracle 12c (on Windows) and reported any issues to Gustaf, which are all now patched on head.

I'm happy to help out or answer any other questions you may have.


Posted by Brian Fenton on
Oh yes, one point about upgrading OpenACS to multiple versions ahead, is that it doesn't work the way you intuitively might think it would.

For example if you are upgrading from 5.3.2 to 5.5.1, you might think that it would upgrade all packages first to 5.4.3 and then 5.5.1. But in fact, it upgrades each package individually to 5.5.1, before moving on to the next package in the dependency hierarchy. This can cause problems e.g. imagine a scenario where you have package A before package B in the dependency hierarchy. Now imagine that package A has a 5.5.1 upgrade script, which makes a reference to a 5.4.3 feature in package B. That 5.4.3 feature won't be yet available as package B hasn't been upgraded yet, so the package A upgrade to 5.5.1 fails.

Posted by Andrew Piskorski on
See also Brian's February OpenACS 5.9.0 and Oracle 12c post.