Forum OpenACS Q&A: Re: OpenACS 5 Install on Win2k

Collapse
Posted by Frank Bergmann on
Hi Jamie,

incredible work! I don't very much like the the OpenACS installation procedures, so I was very surprised to see a working windows installer...

My only comment is that it might be helpful to include a very first index.tcl page or an index to the html documentation so that a first time user would get feedback after he has "successfully" installed the server.

As I've written in the initial posting, our idea is to create a "cdrom" (or a single file for download) with a preconfigured system to reach unskilled users. So we are looking for an installer that includes OpenACS, Postgres and that automagically loads the data model into Postgres.

I asume that including OpenACS and the database creation scrip is easy, so the real challenge is probably Postgres. Do you consider including Postgres when the native Win32 version comes out? I think they said it's planned for 7.5...

As an alternative we are considering to distribute our preconfigured OpenACS code as a CygWin package and to try to get Apache/mod_nsd running under CygWin. However, I haven't yet figured out if it is possible to include custom packages in the CygWin installer and the mod_nsd stuff doesn't precisely attract me...

Please count on my support/work when including OpenACS and Postgres. I haven't got VC++ running here, but I'm sure to be able to get it somewhere...

Bests,
Frank

Collapse
Posted by Jamie Rasmussen on
I think my distribution includes several config files - one for basic AOLserver API testing without OpenACS (nsd.tcl) and two for OpenACS with PostgreSQL/Oracle - those two should really be merged.  Another good way to test many AOLserver functions is to open the tclsh executable included and run "load nsd".  Updating the documentation with better instructions for new users has been high on my todo list.

The native Win32 PostgreSQL port is still under development, but I do think that would be the way to go when it is finally released.  (It is scheduled for 7.5, but then, it was scheduled for 7.4 too.)  It does seem like they are making good progress on it.  I don't know much about the Cygwin installer or if it would be feasible to package up something separately.  I've never used mod_nsd but I don't think it is being actively maintained so I'm not sure it would give a particularly rich OpenACS experience.  I suspect the PostgreSQL team will build an installer for their binaries and it would probably be feasible to repackage into a single installer with AOLserver and OpenACS.  One thing to consider is which OpenACS modules you need - the installer could become quite large.  (Not an issue for CD.)

I don't know what you have considered for installer creation, but some of the commercial packages allow you to basically watch the system as you do an install manually or with someone else's installer and automagically create an installer that replicates the changes to files, the registry, etc.  You might be able to do something like that to capture a minimal Cygwin install of PostgreSQL.

Hi Jamie,

are you still maintaining your great AOLServer Windows distribution? Did you try the new PostgreSQL 8.0 native?

We (Juanjo Ruiz, Toni Vila and myself) have started to port several Project/Open modules to PostgreSQL with the goal to produce a windows distribution. Our "Project/Open Core Module" is already running, yeah! During this process we have found a minor issue with /library/tdom when using an installation path containing spaces ("ProgramFiles")... Also, there seem to be some issues with the PG 8.0 istself such as changed types in the pg_procs and something with "bit" etc. I'll raise this in another thread.

However, do you think you are going to support AOLServer 4.0.7 in the future? I guess it's going to be a hassle to compile all these modules again, right?

Another question is: Do you think it would be possible to combine your installer with the PostgreSQL installer and with the OpenACS 5.1 code in order to create a "single unified OpenACS" installer? Imagine, people would only need to press "OK" three times...

Bests,
Frank

http://www.project-open.org/

Hi Frank, I am indeed maintaining a Windows version of AOLserver, though at the moment I only have HEAD built (4.1), and not 4.0.8.  I did try native Win32 PostgreSQL back when it was still PostgreSQL 7.5 beta.  It seemed to be running smoothly, but I did see the same 7.4 -> 7.5 problems in OpenACS that you see and that Jeff has committed patches for.  (I haven't tried an install with Jeff's patches.)

I put a zip of recent AOLserver binaries up at http://www.jamierasmussen.com/download/

AOLserver 4.1 is still Alpha, when 4.1 final is released I'm hoping to rebuild the installer and host it on SourceForge.  The installer by Vlassis uses PostgreSQL on Cygwin and some fairly recent binaries from me.  The native PostgreSQL installer is quite nice.  My personal preference would be to have separate (but simple, GUI-based) installers for the database, web server, and OpenACS / dotLRN, since I think maintaining a combined installer will be more difficult.  Vlassis' installer does have some nice features, but requires downloading a whole Java distribution, etc.

Hi Jamie,

thanks for the link. That's great news.

We've managed to install PG 8.0.0 dev3 on Win2k yesterday. After checking out HEAD with the changes from Jeff there was a small issues with timezones, but we could source the SQL manually. The PG installer is great, just make sure to enter different passwords for the postgres Win2k user and the postgres database user...

Concerning the "unified installer": The Postgres 8.0 installer already contains the creation of a new Win2k user ("postgres"), hierarchical installation options (PG, doc, ODBC drivers, etc) and some sanity checks. So maybe it could be actually easier to start with the PG installer and add code to create an additional "aolserver" user and to extract the AOLServer and OpenACS files into some directories. I understand that the main complexity of your installer is really to put together all these modules, right?

What's missing then for us is loading a database dump into PG and to start a browser on the right host/port because "non sophisticated users" want to see results immeditately. So we would include a sample "company configuration" as a DB dump with a lot of predefined users, customers, prices, projects, forum discussions and a special home page that would let the user log in as one of several demo users. Checkout http://ptdemo.dnsalias.com/ for an example of what I mean.

What development environment do you use to compile your installer? Is it just M$ Dev Studio?

Bests,
Frank

http://www.project-open.com/

To build AOLserver, I use Microsoft Visual Studio .NET 2003, there are project files (like Makefiles) for Visual C++ 6.0 in the SourceForge repository, as well as a Tcl script Dossy wrote that can be used with Microsoft's free (to download) version of the .NET 2003 compiler.  Dossy's Tcl script currently only builds the core modules though, I have project files for all of the modules you see in the binary zip.  They haven't been checked in because Dossy and I think enhancing the Tcl-based make is a better long-term solution.

The AOLserver installer I built used some custome Perl wrappers to PerlMSI, which is part of ActiveState's Perl Dev Kit.  MSI installers have some nice features, but I may switch to Inno Setup for the next installer, since Inno Setup is free to download and rather easy to use, which would make it easier for other people to contribute to the installer code.  It will depend on how much free time I have before 4.1 goes final.  I think PostgreSQL uses WiX to build an MSI installer from an XML source file - I haven't used that tool myself so I'm not certain how hard it would be to do what you suggest.

Installing AOLserver from a zip file is only slightly harder than using an installer.  The main difficulty in building AOLserver on Windows is that there are a lot of modules, some of which need to be tweaked to compile, and many of which have dependencies that you also have to track down and build.

Hi Jamie,

more then a month has gone since our last attempts with OpenACS and Project/Open under Windows. We have used this time to port nearly all Project/Open functionality to PostgreSQL and to internationalize the code. This part of our project is finishing slowly (we're testing and writing a "QC-script" now, very challenging job ... 😟 ), so attention gets back to the Windows stuff.

So we've got an error here: AOLServer 4.0 beta 10 does strange things with GIF images. Please check this screenshot: http://www.project-open.com/aol4error.gif

Did you see something like this before? Is there a bug tracker for your distro where we could post errors in the future?

Apart from this bug we are going to work on porting the P/O filestorage module to windows, because it currently relies on "mv /tmp/file dir/file", "find dir -type f" and similar stuff...

Bests,
Frank

mailto:frank_bergmann_at_project_dash_open_dot_com
http://www.project-open.com/

Frank, AOLserver 4.0 beta 10 ?? Why are you running such an old version? 4.0.8 is current, and Dossy should be releasing 4.0.9 sometime soon with some additional bugfixes. Are you running Jamie's old binary distribution of AOLserver on Windows? It's just that, old. There have been lots of little bug fixes since then.

Unfortunately the current build situation for AOLserver on Windows is a little confused, and definitely incomplete. Dossy's Tcl script does build the core just fine for Windows. I also hacked it up in order to build nsopenssl on Windows, but last I heard no one else has built any of the other modules that way. Dossy also was undecided whether to stick with a Tcl-based make script or just write nmake files for Windows.

If I ever find the time and motivation, I would like to try using one of the several Tcl-based make replacements for building AOLserve and all its modules on Windows - and maybe on Unix too. So far, having used none of them, I'm leaning towards bras, as it seems the most powerful and complete. (It even mentions "Recursive Make Considered Harmful" on its homepage, which is a good sign.)

Collapse
14: mv and find in Tcl (response to 12)
Posted by Andrew Piskorski on
Any code exec'ing "mv" should be easily replaced with Tcl's file rename command. Replacing "find" seems a bit harder, but in fact there's an implementation of find in Tcl on the Tcl'ers wiki, and it's also in Tcllib as ::fileutil::find.
Hi Andrew,

thank a lot for the hint with "mv" and "find" in TCL. This probably saves me _a_lot_ of time.

<blockquote> Jamie's old binary distribution
</blockquote>

Yes in dead. I don't have all the M$ stuff running on my machine (http://panoptic.com/wiki/aolserver/1332) and my last M$ programming experiences is >8 years ago (Borland Pascal 7.0...), so it would probably take me _a_lot_ of time getting started again.

What's funny is that Vlassis also used Jamie's binary distribution. It seem that Vlassis with his "graphical installer" hasn't managed to compile all these modules necessary neither, because he's also using Jamie's stuff...

So you've got everything running at home? Would it be possible to post a ZIP of your binaries somewhere?

Bests, and thanks a lot for your replies,
Frank

Collapse
Posted by Frank Bergmann on
Hi Andrew,

I've finally managed to building AOLServer under Windows as described in http://panoptic.com/wiki/aolserver/1332 .
It actually has worked out relatively easily with only a few issues quickly resolved (HEAD didn't compile, so I had to copy the built.tcl from HEAD into version 4.0.7 which I happened to have in both source and binary distribution. Also, I had to tweak build.tcl by removing limits.obj and pools.obj from the make list).

However, my cool new AOLServer doesn't load the OpenACS modules when starting. How did you go ahead with this in your installation? Also, all of these libraries that Jamie describes in http://empoweringminds.mle.ie/openacs/aolserver_modules are missing.

I've checked around a bit but I'm not very familiar with AOLServer so it's a bit tricky for me to diagnose the issue(s)...

Bests,
Frank

Collapse
Posted by Jamie Rasmussen on
Hi Frank, sorry for the slow response.  I don't know what is causing your broken gif problem.  If using a newer version doesn't fix it, you may want to check out that the proper headers are coming through via Mozilla's livehttpheaders or Ethereal or similar.  Does this happen only to some gif files or all, and does it happen all the time?

Vlassis is using a binary distribution from me, but he isn't using 4.0b10, he's using a nightly build of 4.1a from a couple of months ago.  I've put another nightly build of 4.1a up at
http://jamierasmussen.com/download/ if you want to try that.  There's no online bugtracker for my build.  I'm afraid that this is an untested build from HEAD with some Win32 and other patches (and I haven't looked at the recent changes by Jim that it includes).  But it does include all of the modules that OpenACS uses and many that OpenACS doesn't.

When I last checked, Dossy's script didn't build any non-core modules.

Collapse
Posted by Frank Bergmann on
Hi Jamie,

I've downloaded your nsd410a-bin-rel-20041101.zip binary distribution and more or less successfully installed it. However, when running it instead in Vlassis configuration instead of his 4.0 beta 10 version (not your 4.1 stuff...), I get the error:

"0-acs-init.tcl: error loading tdom: too many recursions".

I've tweaked a bit the tDom's pkgIndex by comparing it to the original and was able to make it working using:

package ifneeded tdom 0.7.8  "load [file join $dir libtdom078[info sharedlibextension]] tdom; source [file join $dir tdom.tcl]"

Using this command the infinite loop seems to disappear, but I'm now getting the error: "0-acs-init.tcl: error loading tdom: tDOM wasn't compiled for multithreading". Any idea?

Bests,
Frank

Collapse
Posted by Jamie Rasmussen on
Oh, Vlassis may have ended up using the 4.0b10 stuff after all, I remember now that he had some problems with getting 4.1 to shutdown cleanly.  I unfortunately never had time to look at his installer closely.

There should be tDOM 0.8.0 binaries in the zip you downloaded from me.  If you copied the files from my zip over an older installation of AOLserver you may be mixing files from two different version of tDOM?  I'm not sure why you're getting the multithreading message.  My zip just includes the pre-built win32 dlls from tdom.org - I think that download used to be a multithreaded build...

I'm afraid that's the only thing that comes to mind, if you don't figure it out, you might ask on the AOLserver mailing list and Zoran or someone else could know what's happening.

Is the nsxml compatibility layer still working?

Collapse
Posted by Frank Bergmann on
Hi Jamie,

thanks a lot.

<blockquote> I don't have OpenACS installed at the moment
</blockquote>

There is a very, very quick option for this. Just download the "Vlassis" installer and you'll have OpenACS running (on Cygwin PostgreSQL 7.3) within 3 minutes. Impressive really.

In order to test your distro, you would only have to replace Vlassis' "nsd4" subdirectory by your distro, and there you go. I imagine that testing in a final system is going to be much quicker and will produce less errors then with a partial configuration...

Btw., I've got OpenACS and Project/Open running with PostgreSQL 8.0 beta 3 on my Win2k box, and I haven't had a single problem, not with the install nor with the operations (there were some problems with beta-1 and beta-2 though). Jeff actually made some changes to HEAD during 5.1.1 for PG 8.0, so these changes should be in 5.1.2 now. So you actually might start to go ahead.

Bests,
Frank

Collapse
Posted by Frank Bergmann on
Hi Jamie,

thanks for sending me the threaded tdom-0.8.0. I've installed it and AOLServer 4.1.0a loads correctly. Also, the load time for OpenACS has gone down remarkebly. Is there some whichcraft going on???

However, I'm now getting problems with some Project/Open transactions. For example I'm getting a timeout when I try to create a new company. The log file doesn't say anything in this case, it's as if I would never have selected the page. It does work fine with AOLServer 4.0.beta10, I've renamed the directory and it works fine now again.

So I think I'll have to do the same as Vlassis and revert to 4.0.beta10 again because I'm running out of time. However, I can provide you with my test setu-up here if you want. It consists of Vlassis' install results, replacing his C:\OpenACS\nsd4 by your 4.1.0a distro and by adding some P/O packages. I can send you the P/O packages as a ZIP if you want.

Cheers,
Frank

Collapse
Posted by Henry Ma on
Hi Frank,

Do you still have the threaded tDOM-0.8.0 dlls? I was trying to install openacs into my aolserver on Windows XP yesterday. When I checked the server log, I got the same error you had - "tDOM wasn't compiled for multithreading." If you still have the files, can you email it to me at mailto:hema6833@mail.usyd.edu.au? Also, did you just put all the dlls into lib directory under aolserver root directory?