Forum OpenACS Q&A: Response to Windows, AOLServer, and OACS

Posted by Jamie Rasmussen on
I think having a fast, easy, reliable, out-of-the-box system for Windows could be very beneficial to the OpenACS community. Lots of people just need basic bboard functionality, or just want a simple ticket-tracker for their nightly tarballs. And some of the engineering that could be done for Windows would also give Unix users more flexibility.

If you were installing today, native AOLserver is the best option. (Really the only option.) But there are several possibilities in the short term. To my knowledge, nobody is actually working on AOLserver 4 on Cygwin. The problem is that AOLserver uses some functions that have not been implemented in Cygwin yet. For example, pthread_rwlock_* and sigwait. The LGPL Win32 pthread library at supports these things so I think it is only a matter of time until Cygwin does. With Cygwin, the OS choice would be almost completely transparent to OpenACS package developers. There might be some minor performance hit, and it might be difficult to configure with a native Windows RDBMS.

mod_aolserver on Apache 2.0 seems like it might be the most "bang for your buck". It should be relatively easy to maintain. It might be slightly harder to write portable package code than with Cygwin, but not much I think. And though it hasn't been tested with Apache 2.0, the existing work should provide a good starting point.

I've only used SQL Server a bit, but wouldn't it be a huge effort to add support for another DB? Porting all of the existing queries, keeping all of the packages synchronized on the various platforms, testing new code on another DB, yet another set of installation/configuration decisions and documentation, ... It seems to me that lack of database choice isn't what is keeping people from using OpenACS on Windows, it's lack of web server choice. If the Apache module worked cross-platform it would also be quite useful to the Unix community.

Switching gears to Windows installers, the standard Cygwin installer already includes PostgreSQL. The main problem I found was a lack of clear instructions. Once you figure out what to do, the actual installation is quite pleasant. At least compared to Oracle. Installing AOLserver is the only step that could really use a good installer at this point. The problem right now isn't that installation is that complicated, just that the necessary correct files, when they exist, are distributed throughout the web in many separate confusing versions.

I don't think an installer for OpenACS files would be very useful, except for showing which packages are known to work on Windows and what their dependencies are. It wouldn't be worth the effort given how quickly files in OpenACS do (and should) get updated. Rather than having an installer, how about a web page for every available package that includes, among other relevant information, whether or not it works on Windows.

There's no problem using Windows Installer (.MSI) files to distribute GPL'd applications. ActiveState uses it to distribute Perl. A MSI installer requires someone with the time, knowledge, and interest to maintain it, who is also willing to spend $1000 for a tool like Wise for Windows Installer. Another option is NSIS, the installer system for Winamp. It isn't standard, but it is open source.