Forum OpenACS Q&A: Painful progress

Collapse
Posted by Chris Usher on
Here's the rub...

I've used Unix for 20 years, Tcl for about 12 years, Apache for half that.
I sing the praises of Tcl at every opportunity, and lately I've been asked to get my whole team capable of programming and supporting Tcl applications.

I have just __stumbled__ across OpenACS after starting to author a complete wiki+bug-tracker+forum+blog system in Tcl.

With a view to saving myself several months of development time, I have now spent two days trying to get the various dependencies of OpenACS to work, on Solaris 10, Ubuntu and VectorLinux (Slackware). My achievements so far have been:
- Tcl won't compile easily with threads on Slackware,
- PostgreSQL won't compile easily on Ubuntu
- Aolserver only compiled after two days of jumping through hoops on Solaris.

I am so damned stubborn that I am going to beat this install into submission, but it's driving me crazy! Why is it so difficult to put together an enterprise level application with Tcl that doesn't cost the earth to set up and install?

I understand the philosophy of "it works for me" and Tcl is a "getting jobs done" kind of tool, therefore anyone able to compile and install Tcl, Aolserver and Postgres then move onto the business of setting up OpenACS. The Tcl community are their (our) own worst enemy in this respect - people that use Tcl tend to get the job done and move on to the next, they aren't in it for the glamour or kudos. It's a self perpetuating problem.

In the long run, Aolserver isn't going to win anyone over unless they fancy a challenge, same with OpenACS. I haven't even got as far as a working version of OpenACS yet, but I want so much for it to be worth the effort. How many others are willing to put in that effort when there are other easy-install tools that are "close enough" to what they want?

I suppose I want it all: My favourite development platform, my favoured programming language, speed, reliability, ease of use, and an easy install. Is that too much to ask?

Chris U

Collapse
2: Re: Painful progress (response to 1)
Posted by Dave Bauer on
With a view to saving myself several months of development time, I have now spent two days trying to get the various dependencies of OpenACS to work, on Solaris 10, Ubuntu and VectorLinux (Slackware). My achievements so far have been:
- Tcl won't compile easily with threads on Slackware,
Not sure.
- PostgreSQL won't compile easily on Ubuntu
Use ubuntu standard postgres!

- Aolserver only compiled after two days of jumping through hoops on Solaris.
Not sure.

Unfortunately the latest ubuntu uses aolserver 4.5 and has a problem with Postgresql Driver.
Some folks in the community are working on fixing this.

Personally I can install OpenACS in 5 mins :) so I am not a good example. Once you have a working setup, its pretty simple to create a new database and add a new aolserver instance.

The initial setup is a pain. I recommend you pick a platform, any platform, then if you come back with specific questions we'll be glad to help out.

You can join us in #openacs in IRC on freenode.net. The Tcl and Postgresql and AOLserver channels there are also helpful.

Collapse
3: Re: Painful progress (response to 1)
Posted by Nima Mazloumi on
yeah, join #openacs and get some help
Collapse
4: Re: Painful progress (response to 2)
Posted by Chris Usher on
Thanks for the offer of help, I'll be back with more specific details when I decide how few platforms I can get away with.

Chris.

Collapse
5: Re: Painful progress (response to 4)
Posted by Don Baccus on
Also we're resurrecting an effort to make easy-to-install debian packages for unstable and ubuntu, and one of our folks involved in that is also working with the Tcl debian packagers.

So hopefully there will be an easier path by ... (dare I hope) ... summer?

Using debian packages we host here, at first ...

Collapse
6: Re: Painful progress (response to 1)
Posted by Andrew Grumet on
Just did a fresh install after not having touched
infrastructure for a few years, seems like as good a place
as any to do a brain dump, should it be useful to Chris or
anyone else 😊

-- CentOS 5.x

-- AOLserver 4.0.10
  -- mod aolserver/include/Makefile.global
    -- -nostartfiles to CFLAGS_EXTRA
    -- see http://panoptic.com/aolserver/chat/20070817.html
  -- mod aolserver/nsd/unix.c
    -- see https://openacs.org/forums/message-view?message_id=343657
  -- mod aolserver/nsd/conn.c
    -- see  https://openacs.org/forums/message-view?message_id=309845 
  -- When making modules
    -- Set both NSHOME and AOLSERVER to the installdir
    -- Remember to set ACS=1 when making nspostgres

-- Oracle 11g
  -- nsoracle: HEAD of CVS at Sourceforge
    -- Set these manually in Makefile...autodetection doesn't work
      -- OCI_VERSION=11.1
      -- OCI_MAJOR_VERSION=11

-- Postgres 8.3
  -- tsearch2 is integrated, no need to install it
     unless you're migrating in an existing pre 8.3. db.
  -- if you're migrating in a pre pg8.3 openacs, you need
     to define this

     create or replace function bitfromint4 (integer)
     returns bit varying as '
     begin
     return $1::bit(32);
     end;' language 'plpgsql' immutable strict;

-- Other random stuff
  -- If want to run behind a reverse proxy, e.g. apache, and 
you're running on something other than port 80, older 
versions of openacs (and newer?), util_current_location 
needs a patch to support the "apparent port" which may be 
different from the port aolserver is listening on:

--- utilities-procs.tcl 6 Nov 2004 05:04:47 -0000       1.1.1.1
+++ utilities-procs.tcl 25 Feb 2008 08:00:03 -0000
@@ -2727,7 +2727,7 @@
     switch [ad_conn driver] {
         nssock {
             set proto http
-            set port [ns_config -int "ns/server/[ns_info server]/module/nssock" Port]
+            set port [ns_config -int "ns/server/[ns_info server]/module/nssock" ApparentPort [ns_config -int "ns/server/[ns_info server]/module/nssock" Port]]
         }
         nsunix {
             set proto http

Collapse
7: Re: Painful progress (response to 1)
Posted by Gustaf Neumann on
Currently, the best OS support for OpenACS/Dotlrn is probably in FreeBSD, where one can get the full set of packages (including the recently released tdom 0.8.2 and xotcl 1.6.0) via ports.

Works very nice!

-gustaf neumann
FreeBSD Ports Search: openacs

dotlrn-2.3.1
    OpenACS-based e-learning platform
    Long description : Sources : Changes : Download
    Maintained by: mm@FreeBSD.org
    Requires: aolserver-4.5.0_5, aolserver-nscache-1.5_2, aolserver-nsopenssl-3.0.b26_1, 
      aolserver-nspostgres-4.1_2, aolserver-nssha1-0.1_1, aolserver-xotcl-1.6.0, gdbm-1.8.3_3, 
      gettext-0.16.1_3, libiconv-1.11_1, postgresql-client-8.2.6_1, tDOM-0.8.2, tcl-8.4.18,1, 
      tcl-threads-8.4.18,1, tcl-wrapper-1.1, tcllib-1.10_1, tclthread-2.6.5, 
      tclwebtest-1.0_3, xotcl-1.6.0
     
openacs-5.3.2
    A modular web application platform for communities
    Long description : Sources : Changes : Download
    Maintained by: mm@FreeBSD.org
    Requires: aolserver-4.5.0_5, aolserver-nscache-1.5_2, aolserver-nsopenssl-3.0.b26_1, 
      aolserver-nspostgres-4.1_2, aolserver-nssha1-0.1_1, aolserver-xotcl-1.6.0, gdbm-1.8.3_3, 
      gettext-0.16.1_3, libiconv-1.11_1, postgresql-client-8.2.6_1, 
      tDOM-0.8.2, tcl-8.4.18,1, tcl-threads-8.4.18,1, tcl-wrapper-1.1, 
      tcllib-1.10_1, tclthread-2.6.5, tclwebtest-1.0_3, xotcl-1.6.0
     
tDOM-0.8.2
    High performance XML data processing with Tcl (ARGS for OpenACS)
    Long description : Sources : Changes : Download
    Maintained by: mm@FreeBSD.org
    Requires: gettext-0.16.1_3, gmake-3.81_2, libiconv-1.11_1, tcl-8.4.18,1, tcl-threads-8.4.18,1
See: http://www.freebsd.org/cgi/ports.cgi?query=openacs&stype=all
Collapse
8: Re: Painful progress (response to 1)
Posted by Malte Sussdorff on
Ubuntu 6.06 LTS as well as Debian stable (current version) compile AOLserver and PostgreSQL without a glitch, even using Nima's new installer (which is very nice by the way). Maybe I'm just lucky with my scripts, but they seem to work reliably on that platform.

As for Slackware or Solaris, this is beyond my grasp.

Collapse
9: Re: Painful progress (response to 7)
Posted by Don Baccus on
Would be nice if it was in mac-ports ... :)
Collapse
10: Re: Painful progress (response to 1)
Posted by Chris Usher on
Thanks to all for the replies.

After some effort, I now have the following platform working:
- Solaris 10
- Aolserver 4.5.0
- Tcl 8.5.1
- tcllib 1.10
- xotcl 1.6
- tdom 0.8.3

It has been a steep learning curve, especially considering the need to upgrade gcc, make, tar, etc on Solaris along the way as well as tweaking makefiles to suit non-standard install locations on this server. Conflicting commands between Ingres and Postgres (createdb +) also causes issues but at least I have a bare-bones system installed.

Now for the packages...

Firewall issues prevent me using CVS to grab files from the outside world, so looking to use a staging area offsite to grab packages then tarball them all before installing.

...should be fun!

Collapse
11: Re: Painful progress (response to 10)
Posted by Chris Usher on
Forgot to mention
- Openacs version 5.4
- Postgres 8.1.3